@ryanstark24/sfgraph-core 1.1.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 (797) hide show
  1. package/dist/analyze/__tests__/cross-org-two-store.test.d.ts +2 -0
  2. package/dist/analyze/__tests__/cross-org-two-store.test.d.ts.map +1 -0
  3. package/dist/analyze/__tests__/cross-org-two-store.test.js +68 -0
  4. package/dist/analyze/__tests__/cross-org-two-store.test.js.map +1 -0
  5. package/dist/analyze/__tests__/dead-code-confidence.test.d.ts +2 -0
  6. package/dist/analyze/__tests__/dead-code-confidence.test.d.ts.map +1 -0
  7. package/dist/analyze/__tests__/dead-code-confidence.test.js +66 -0
  8. package/dist/analyze/__tests__/dead-code-confidence.test.js.map +1 -0
  9. package/dist/analyze/__tests__/deployment-manifest.test.d.ts +2 -0
  10. package/dist/analyze/__tests__/deployment-manifest.test.d.ts.map +1 -0
  11. package/dist/analyze/__tests__/deployment-manifest.test.js +66 -0
  12. package/dist/analyze/__tests__/deployment-manifest.test.js.map +1 -0
  13. package/dist/analyze/__tests__/governor-risks-detection.test.d.ts +2 -0
  14. package/dist/analyze/__tests__/governor-risks-detection.test.d.ts.map +1 -0
  15. package/dist/analyze/__tests__/governor-risks-detection.test.js +70 -0
  16. package/dist/analyze/__tests__/governor-risks-detection.test.js.map +1 -0
  17. package/dist/analyze/__tests__/populate.test.d.ts +2 -0
  18. package/dist/analyze/__tests__/populate.test.d.ts.map +1 -0
  19. package/dist/analyze/__tests__/populate.test.js +129 -0
  20. package/dist/analyze/__tests__/populate.test.js.map +1 -0
  21. package/dist/analyze/__tests__/traversal-caps.test.d.ts +2 -0
  22. package/dist/analyze/__tests__/traversal-caps.test.d.ts.map +1 -0
  23. package/dist/analyze/__tests__/traversal-caps.test.js +129 -0
  24. package/dist/analyze/__tests__/traversal-caps.test.js.map +1 -0
  25. package/dist/analyze/__tests__/wip-impact.test.d.ts +2 -0
  26. package/dist/analyze/__tests__/wip-impact.test.d.ts.map +1 -0
  27. package/dist/analyze/__tests__/wip-impact.test.js +134 -0
  28. package/dist/analyze/__tests__/wip-impact.test.js.map +1 -0
  29. package/dist/analyze/cross-org.d.ts +42 -0
  30. package/dist/analyze/cross-org.d.ts.map +1 -0
  31. package/dist/analyze/cross-org.js +64 -0
  32. package/dist/analyze/cross-org.js.map +1 -0
  33. package/dist/analyze/dead-code.d.ts +8 -0
  34. package/dist/analyze/dead-code.d.ts.map +1 -0
  35. package/dist/analyze/dead-code.js +21 -0
  36. package/dist/analyze/dead-code.js.map +1 -0
  37. package/dist/analyze/dependencies.d.ts +5 -0
  38. package/dist/analyze/dependencies.d.ts.map +1 -0
  39. package/dist/analyze/dependencies.js +40 -0
  40. package/dist/analyze/dependencies.js.map +1 -0
  41. package/dist/analyze/dependents.d.ts +19 -0
  42. package/dist/analyze/dependents.d.ts.map +1 -0
  43. package/dist/analyze/dependents.js +47 -0
  44. package/dist/analyze/dependents.js.map +1 -0
  45. package/dist/analyze/deployment-manifest/generate.d.ts +22 -0
  46. package/dist/analyze/deployment-manifest/generate.d.ts.map +1 -0
  47. package/dist/analyze/deployment-manifest/generate.js +91 -0
  48. package/dist/analyze/deployment-manifest/generate.js.map +1 -0
  49. package/dist/analyze/deployment-manifest/member-name-formatters.d.ts +8 -0
  50. package/dist/analyze/deployment-manifest/member-name-formatters.d.ts.map +1 -0
  51. package/dist/analyze/deployment-manifest/member-name-formatters.js +57 -0
  52. package/dist/analyze/deployment-manifest/member-name-formatters.js.map +1 -0
  53. package/dist/analyze/deployment-manifest/member-types.d.ts +6 -0
  54. package/dist/analyze/deployment-manifest/member-types.d.ts.map +1 -0
  55. package/dist/analyze/deployment-manifest/member-types.js +47 -0
  56. package/dist/analyze/deployment-manifest/member-types.js.map +1 -0
  57. package/dist/analyze/freshness.d.ts +9 -0
  58. package/dist/analyze/freshness.d.ts.map +1 -0
  59. package/dist/analyze/freshness.js +31 -0
  60. package/dist/analyze/freshness.js.map +1 -0
  61. package/dist/analyze/git-diff.d.ts +6 -0
  62. package/dist/analyze/git-diff.d.ts.map +1 -0
  63. package/dist/analyze/git-diff.js +38 -0
  64. package/dist/analyze/git-diff.js.map +1 -0
  65. package/dist/analyze/governor.d.ts +14 -0
  66. package/dist/analyze/governor.d.ts.map +1 -0
  67. package/dist/analyze/governor.js +28 -0
  68. package/dist/analyze/governor.js.map +1 -0
  69. package/dist/analyze/index.d.ts +14 -0
  70. package/dist/analyze/index.d.ts.map +1 -0
  71. package/dist/analyze/index.js +14 -0
  72. package/dist/analyze/index.js.map +1 -0
  73. package/dist/analyze/path-to-qname.d.ts +3 -0
  74. package/dist/analyze/path-to-qname.d.ts.map +1 -0
  75. package/dist/analyze/path-to-qname.js +32 -0
  76. package/dist/analyze/path-to-qname.js.map +1 -0
  77. package/dist/analyze/populate.d.ts +15 -0
  78. package/dist/analyze/populate.d.ts.map +1 -0
  79. package/dist/analyze/populate.js +188 -0
  80. package/dist/analyze/populate.js.map +1 -0
  81. package/dist/analyze/security.d.ts +25 -0
  82. package/dist/analyze/security.d.ts.map +1 -0
  83. package/dist/analyze/security.js +70 -0
  84. package/dist/analyze/security.js.map +1 -0
  85. package/dist/analyze/test-coverage.d.ts +6 -0
  86. package/dist/analyze/test-coverage.d.ts.map +1 -0
  87. package/dist/analyze/test-coverage.js +15 -0
  88. package/dist/analyze/test-coverage.js.map +1 -0
  89. package/dist/analyze/wip-impact.d.ts +30 -0
  90. package/dist/analyze/wip-impact.d.ts.map +1 -0
  91. package/dist/analyze/wip-impact.js +314 -0
  92. package/dist/analyze/wip-impact.js.map +1 -0
  93. package/dist/domain/edge-fact.d.ts +12 -0
  94. package/dist/domain/edge-fact.d.ts.map +1 -0
  95. package/dist/domain/edge-fact.js +2 -0
  96. package/dist/domain/edge-fact.js.map +1 -0
  97. package/dist/domain/index.d.ts +7 -0
  98. package/dist/domain/index.d.ts.map +1 -0
  99. package/dist/domain/index.js +7 -0
  100. package/dist/domain/index.js.map +1 -0
  101. package/dist/domain/metadata-category.d.ts +57 -0
  102. package/dist/domain/metadata-category.d.ts.map +1 -0
  103. package/dist/domain/metadata-category.js +57 -0
  104. package/dist/domain/metadata-category.js.map +1 -0
  105. package/dist/domain/node-fact.d.ts +12 -0
  106. package/dist/domain/node-fact.d.ts.map +1 -0
  107. package/dist/domain/node-fact.js +2 -0
  108. package/dist/domain/node-fact.js.map +1 -0
  109. package/dist/domain/org.d.ts +10 -0
  110. package/dist/domain/org.d.ts.map +1 -0
  111. package/dist/domain/org.js +2 -0
  112. package/dist/domain/org.js.map +1 -0
  113. package/dist/domain/rel-types.d.ts +89 -0
  114. package/dist/domain/rel-types.d.ts.map +1 -0
  115. package/dist/domain/rel-types.js +99 -0
  116. package/dist/domain/rel-types.js.map +1 -0
  117. package/dist/domain/snapshot.d.ts +9 -0
  118. package/dist/domain/snapshot.d.ts.map +1 -0
  119. package/dist/domain/snapshot.js +2 -0
  120. package/dist/domain/snapshot.js.map +1 -0
  121. package/dist/embedding/__tests__/queue.test.d.ts +2 -0
  122. package/dist/embedding/__tests__/queue.test.d.ts.map +1 -0
  123. package/dist/embedding/__tests__/queue.test.js +64 -0
  124. package/dist/embedding/__tests__/queue.test.js.map +1 -0
  125. package/dist/embedding/index.d.ts +4 -0
  126. package/dist/embedding/index.d.ts.map +1 -0
  127. package/dist/embedding/index.js +3 -0
  128. package/dist/embedding/index.js.map +1 -0
  129. package/dist/embedding/pool.d.ts +10 -0
  130. package/dist/embedding/pool.d.ts.map +1 -0
  131. package/dist/embedding/pool.js +10 -0
  132. package/dist/embedding/pool.js.map +1 -0
  133. package/dist/embedding/queue.d.ts +39 -0
  134. package/dist/embedding/queue.d.ts.map +1 -0
  135. package/dist/embedding/queue.js +122 -0
  136. package/dist/embedding/queue.js.map +1 -0
  137. package/dist/embedding/worker.d.ts +7 -0
  138. package/dist/embedding/worker.d.ts.map +1 -0
  139. package/dist/embedding/worker.js +7 -0
  140. package/dist/embedding/worker.js.map +1 -0
  141. package/dist/extractors/__tests__/network-egress.test.d.ts +2 -0
  142. package/dist/extractors/__tests__/network-egress.test.d.ts.map +1 -0
  143. package/dist/extractors/__tests__/network-egress.test.js +32 -0
  144. package/dist/extractors/__tests__/network-egress.test.js.map +1 -0
  145. package/dist/extractors/filesystem/__tests__/filesystem.test.d.ts +2 -0
  146. package/dist/extractors/filesystem/__tests__/filesystem.test.d.ts.map +1 -0
  147. package/dist/extractors/filesystem/__tests__/filesystem.test.js +96 -0
  148. package/dist/extractors/filesystem/__tests__/filesystem.test.js.map +1 -0
  149. package/dist/extractors/filesystem/index.d.ts +20 -0
  150. package/dist/extractors/filesystem/index.d.ts.map +1 -0
  151. package/dist/extractors/filesystem/index.js +378 -0
  152. package/dist/extractors/filesystem/index.js.map +1 -0
  153. package/dist/extractors/interfaces/metadata-source.d.ts +21 -0
  154. package/dist/extractors/interfaces/metadata-source.d.ts.map +1 -0
  155. package/dist/extractors/interfaces/metadata-source.js +2 -0
  156. package/dist/extractors/interfaces/metadata-source.js.map +1 -0
  157. package/dist/extractors/live-org/__tests__/_jsforce-mock.d.ts +38 -0
  158. package/dist/extractors/live-org/__tests__/_jsforce-mock.d.ts.map +1 -0
  159. package/dist/extractors/live-org/__tests__/_jsforce-mock.js +96 -0
  160. package/dist/extractors/live-org/__tests__/_jsforce-mock.js.map +1 -0
  161. package/dist/extractors/live-org/__tests__/auth.test.d.ts +2 -0
  162. package/dist/extractors/live-org/__tests__/auth.test.d.ts.map +1 -0
  163. package/dist/extractors/live-org/__tests__/auth.test.js +85 -0
  164. package/dist/extractors/live-org/__tests__/auth.test.js.map +1 -0
  165. package/dist/extractors/live-org/__tests__/bulk-retrieve.test.d.ts +2 -0
  166. package/dist/extractors/live-org/__tests__/bulk-retrieve.test.d.ts.map +1 -0
  167. package/dist/extractors/live-org/__tests__/bulk-retrieve.test.js +150 -0
  168. package/dist/extractors/live-org/__tests__/bulk-retrieve.test.js.map +1 -0
  169. package/dist/extractors/live-org/__tests__/capabilities.test.d.ts +2 -0
  170. package/dist/extractors/live-org/__tests__/capabilities.test.d.ts.map +1 -0
  171. package/dist/extractors/live-org/__tests__/capabilities.test.js +54 -0
  172. package/dist/extractors/live-org/__tests__/capabilities.test.js.map +1 -0
  173. package/dist/extractors/live-org/__tests__/discovery.test.d.ts +2 -0
  174. package/dist/extractors/live-org/__tests__/discovery.test.d.ts.map +1 -0
  175. package/dist/extractors/live-org/__tests__/discovery.test.js +55 -0
  176. package/dist/extractors/live-org/__tests__/discovery.test.js.map +1 -0
  177. package/dist/extractors/live-org/__tests__/dispatch.test.d.ts +2 -0
  178. package/dist/extractors/live-org/__tests__/dispatch.test.d.ts.map +1 -0
  179. package/dist/extractors/live-org/__tests__/dispatch.test.js +68 -0
  180. package/dist/extractors/live-org/__tests__/dispatch.test.js.map +1 -0
  181. package/dist/extractors/live-org/__tests__/extractor-enrichment.test.d.ts +2 -0
  182. package/dist/extractors/live-org/__tests__/extractor-enrichment.test.d.ts.map +1 -0
  183. package/dist/extractors/live-org/__tests__/extractor-enrichment.test.js +312 -0
  184. package/dist/extractors/live-org/__tests__/extractor-enrichment.test.js.map +1 -0
  185. package/dist/extractors/live-org/__tests__/pools.test.d.ts +2 -0
  186. package/dist/extractors/live-org/__tests__/pools.test.d.ts.map +1 -0
  187. package/dist/extractors/live-org/__tests__/pools.test.js +75 -0
  188. package/dist/extractors/live-org/__tests__/pools.test.js.map +1 -0
  189. package/dist/extractors/live-org/__tests__/rate-limit.test.d.ts +2 -0
  190. package/dist/extractors/live-org/__tests__/rate-limit.test.d.ts.map +1 -0
  191. package/dist/extractors/live-org/__tests__/rate-limit.test.js +33 -0
  192. package/dist/extractors/live-org/__tests__/rate-limit.test.js.map +1 -0
  193. package/dist/extractors/live-org/__tests__/read-only-proxy.test.d.ts +2 -0
  194. package/dist/extractors/live-org/__tests__/read-only-proxy.test.d.ts.map +1 -0
  195. package/dist/extractors/live-org/__tests__/read-only-proxy.test.js +376 -0
  196. package/dist/extractors/live-org/__tests__/read-only-proxy.test.js.map +1 -0
  197. package/dist/extractors/live-org/__tests__/source-member.test.d.ts +2 -0
  198. package/dist/extractors/live-org/__tests__/source-member.test.d.ts.map +1 -0
  199. package/dist/extractors/live-org/__tests__/source-member.test.js +84 -0
  200. package/dist/extractors/live-org/__tests__/source-member.test.js.map +1 -0
  201. package/dist/extractors/live-org/__tests__/vlocity-runner.test.d.ts +2 -0
  202. package/dist/extractors/live-org/__tests__/vlocity-runner.test.d.ts.map +1 -0
  203. package/dist/extractors/live-org/__tests__/vlocity-runner.test.js +88 -0
  204. package/dist/extractors/live-org/__tests__/vlocity-runner.test.js.map +1 -0
  205. package/dist/extractors/live-org/auth.d.ts +37 -0
  206. package/dist/extractors/live-org/auth.d.ts.map +1 -0
  207. package/dist/extractors/live-org/auth.js +124 -0
  208. package/dist/extractors/live-org/auth.js.map +1 -0
  209. package/dist/extractors/live-org/bulk-retrieve.d.ts +51 -0
  210. package/dist/extractors/live-org/bulk-retrieve.d.ts.map +1 -0
  211. package/dist/extractors/live-org/bulk-retrieve.js +416 -0
  212. package/dist/extractors/live-org/bulk-retrieve.js.map +1 -0
  213. package/dist/extractors/live-org/capabilities.d.ts +18 -0
  214. package/dist/extractors/live-org/capabilities.d.ts.map +1 -0
  215. package/dist/extractors/live-org/capabilities.js +72 -0
  216. package/dist/extractors/live-org/capabilities.js.map +1 -0
  217. package/dist/extractors/live-org/discovery.d.ts +14 -0
  218. package/dist/extractors/live-org/discovery.d.ts.map +1 -0
  219. package/dist/extractors/live-org/discovery.js +22 -0
  220. package/dist/extractors/live-org/discovery.js.map +1 -0
  221. package/dist/extractors/live-org/dispatch.d.ts +20 -0
  222. package/dist/extractors/live-org/dispatch.d.ts.map +1 -0
  223. package/dist/extractors/live-org/dispatch.js +52 -0
  224. package/dist/extractors/live-org/dispatch.js.map +1 -0
  225. package/dist/extractors/live-org/errors.d.ts +2 -0
  226. package/dist/extractors/live-org/errors.d.ts.map +1 -0
  227. package/dist/extractors/live-org/errors.js +2 -0
  228. package/dist/extractors/live-org/errors.js.map +1 -0
  229. package/dist/extractors/live-org/extractors/apex.d.ts +5 -0
  230. package/dist/extractors/live-org/extractors/apex.d.ts.map +1 -0
  231. package/dist/extractors/live-org/extractors/apex.js +105 -0
  232. package/dist/extractors/live-org/extractors/apex.js.map +1 -0
  233. package/dist/extractors/live-org/extractors/flow.d.ts +9 -0
  234. package/dist/extractors/live-org/extractors/flow.d.ts.map +1 -0
  235. package/dist/extractors/live-org/extractors/flow.js +65 -0
  236. package/dist/extractors/live-org/extractors/flow.js.map +1 -0
  237. package/dist/extractors/live-org/extractors/generic-metadata.d.ts +20 -0
  238. package/dist/extractors/live-org/extractors/generic-metadata.d.ts.map +1 -0
  239. package/dist/extractors/live-org/extractors/generic-metadata.js +114 -0
  240. package/dist/extractors/live-org/extractors/generic-metadata.js.map +1 -0
  241. package/dist/extractors/live-org/extractors/generic-sobject.d.ts +7 -0
  242. package/dist/extractors/live-org/extractors/generic-sobject.d.ts.map +1 -0
  243. package/dist/extractors/live-org/extractors/generic-sobject.js +31 -0
  244. package/dist/extractors/live-org/extractors/generic-sobject.js.map +1 -0
  245. package/dist/extractors/live-org/extractors/integration.d.ts +3 -0
  246. package/dist/extractors/live-org/extractors/integration.d.ts.map +1 -0
  247. package/dist/extractors/live-org/extractors/integration.js +65 -0
  248. package/dist/extractors/live-org/extractors/integration.js.map +1 -0
  249. package/dist/extractors/live-org/extractors/lwc.d.ts +3 -0
  250. package/dist/extractors/live-org/extractors/lwc.d.ts.map +1 -0
  251. package/dist/extractors/live-org/extractors/lwc.js +107 -0
  252. package/dist/extractors/live-org/extractors/lwc.js.map +1 -0
  253. package/dist/extractors/live-org/extractors/object.d.ts +13 -0
  254. package/dist/extractors/live-org/extractors/object.d.ts.map +1 -0
  255. package/dist/extractors/live-org/extractors/object.js +617 -0
  256. package/dist/extractors/live-org/extractors/object.js.map +1 -0
  257. package/dist/extractors/live-org/extractors/omnistudio.d.ts +3 -0
  258. package/dist/extractors/live-org/extractors/omnistudio.d.ts.map +1 -0
  259. package/dist/extractors/live-org/extractors/omnistudio.js +141 -0
  260. package/dist/extractors/live-org/extractors/omnistudio.js.map +1 -0
  261. package/dist/extractors/live-org/extractors/security.d.ts +3 -0
  262. package/dist/extractors/live-org/extractors/security.d.ts.map +1 -0
  263. package/dist/extractors/live-org/extractors/security.js +76 -0
  264. package/dist/extractors/live-org/extractors/security.js.map +1 -0
  265. package/dist/extractors/live-org/extractors/vlocity.d.ts +2 -0
  266. package/dist/extractors/live-org/extractors/vlocity.d.ts.map +1 -0
  267. package/dist/extractors/live-org/extractors/vlocity.js +2 -0
  268. package/dist/extractors/live-org/extractors/vlocity.js.map +1 -0
  269. package/dist/extractors/live-org/index.d.ts +21 -0
  270. package/dist/extractors/live-org/index.d.ts.map +1 -0
  271. package/dist/extractors/live-org/index.js +17 -0
  272. package/dist/extractors/live-org/index.js.map +1 -0
  273. package/dist/extractors/live-org/rate-limit.d.ts +114 -0
  274. package/dist/extractors/live-org/rate-limit.d.ts.map +1 -0
  275. package/dist/extractors/live-org/rate-limit.js +251 -0
  276. package/dist/extractors/live-org/rate-limit.js.map +1 -0
  277. package/dist/extractors/live-org/read-only-proxy.d.ts +2 -0
  278. package/dist/extractors/live-org/read-only-proxy.d.ts.map +1 -0
  279. package/dist/extractors/live-org/read-only-proxy.js +299 -0
  280. package/dist/extractors/live-org/read-only-proxy.js.map +1 -0
  281. package/dist/extractors/live-org/reports.d.ts +4 -0
  282. package/dist/extractors/live-org/reports.d.ts.map +1 -0
  283. package/dist/extractors/live-org/reports.js +10 -0
  284. package/dist/extractors/live-org/reports.js.map +1 -0
  285. package/dist/extractors/live-org/source-member.d.ts +8 -0
  286. package/dist/extractors/live-org/source-member.d.ts.map +1 -0
  287. package/dist/extractors/live-org/source-member.js +47 -0
  288. package/dist/extractors/live-org/source-member.js.map +1 -0
  289. package/dist/extractors/live-org/vlocity/query-definitions.yml +153 -0
  290. package/dist/extractors/live-org/vlocity/runner.d.ts +21 -0
  291. package/dist/extractors/live-org/vlocity/runner.d.ts.map +1 -0
  292. package/dist/extractors/live-org/vlocity/runner.js +214 -0
  293. package/dist/extractors/live-org/vlocity/runner.js.map +1 -0
  294. package/dist/index.d.ts +11 -0
  295. package/dist/index.d.ts.map +1 -0
  296. package/dist/index.js +9 -0
  297. package/dist/index.js.map +1 -0
  298. package/dist/ingest/__tests__/full-sync-deletion.test.d.ts +2 -0
  299. package/dist/ingest/__tests__/full-sync-deletion.test.d.ts.map +1 -0
  300. package/dist/ingest/__tests__/full-sync-deletion.test.js +200 -0
  301. package/dist/ingest/__tests__/full-sync-deletion.test.js.map +1 -0
  302. package/dist/ingest/__tests__/incremental-deletion.test.d.ts +2 -0
  303. package/dist/ingest/__tests__/incremental-deletion.test.d.ts.map +1 -0
  304. package/dist/ingest/__tests__/incremental-deletion.test.js +92 -0
  305. package/dist/ingest/__tests__/incremental-deletion.test.js.map +1 -0
  306. package/dist/ingest/__tests__/live-ingest.test.d.ts +2 -0
  307. package/dist/ingest/__tests__/live-ingest.test.d.ts.map +1 -0
  308. package/dist/ingest/__tests__/live-ingest.test.js +155 -0
  309. package/dist/ingest/__tests__/live-ingest.test.js.map +1 -0
  310. package/dist/ingest/__tests__/multi-org-orchestrator.test.d.ts +2 -0
  311. package/dist/ingest/__tests__/multi-org-orchestrator.test.d.ts.map +1 -0
  312. package/dist/ingest/__tests__/multi-org-orchestrator.test.js +101 -0
  313. package/dist/ingest/__tests__/multi-org-orchestrator.test.js.map +1 -0
  314. package/dist/ingest/__tests__/read-only-wrapping.test.d.ts +2 -0
  315. package/dist/ingest/__tests__/read-only-wrapping.test.d.ts.map +1 -0
  316. package/dist/ingest/__tests__/read-only-wrapping.test.js +62 -0
  317. package/dist/ingest/__tests__/read-only-wrapping.test.js.map +1 -0
  318. package/dist/ingest/index.d.ts +5 -0
  319. package/dist/ingest/index.d.ts.map +1 -0
  320. package/dist/ingest/index.js +3 -0
  321. package/dist/ingest/index.js.map +1 -0
  322. package/dist/ingest/live-ingest.d.ts +59 -0
  323. package/dist/ingest/live-ingest.d.ts.map +1 -0
  324. package/dist/ingest/live-ingest.js +611 -0
  325. package/dist/ingest/live-ingest.js.map +1 -0
  326. package/dist/ingest/multi-org.d.ts +43 -0
  327. package/dist/ingest/multi-org.d.ts.map +1 -0
  328. package/dist/ingest/multi-org.js +93 -0
  329. package/dist/ingest/multi-org.js.map +1 -0
  330. package/dist/parsers/__tests__/_harness.d.ts +13 -0
  331. package/dist/parsers/__tests__/_harness.d.ts.map +1 -0
  332. package/dist/parsers/__tests__/_harness.js +84 -0
  333. package/dist/parsers/__tests__/_harness.js.map +1 -0
  334. package/dist/parsers/__tests__/apex.golden.test.d.ts +2 -0
  335. package/dist/parsers/__tests__/apex.golden.test.d.ts.map +1 -0
  336. package/dist/parsers/__tests__/apex.golden.test.js +28 -0
  337. package/dist/parsers/__tests__/apex.golden.test.js.map +1 -0
  338. package/dist/parsers/__tests__/cross-flavor.test.d.ts +2 -0
  339. package/dist/parsers/__tests__/cross-flavor.test.d.ts.map +1 -0
  340. package/dist/parsers/__tests__/cross-flavor.test.js +56 -0
  341. package/dist/parsers/__tests__/cross-flavor.test.js.map +1 -0
  342. package/dist/parsers/__tests__/flow.golden.test.d.ts +2 -0
  343. package/dist/parsers/__tests__/flow.golden.test.d.ts.map +1 -0
  344. package/dist/parsers/__tests__/flow.golden.test.js +17 -0
  345. package/dist/parsers/__tests__/flow.golden.test.js.map +1 -0
  346. package/dist/parsers/__tests__/integration.golden.test.d.ts +2 -0
  347. package/dist/parsers/__tests__/integration.golden.test.d.ts.map +1 -0
  348. package/dist/parsers/__tests__/integration.golden.test.js +31 -0
  349. package/dist/parsers/__tests__/integration.golden.test.js.map +1 -0
  350. package/dist/parsers/__tests__/long-tail.golden.test.d.ts +2 -0
  351. package/dist/parsers/__tests__/long-tail.golden.test.d.ts.map +1 -0
  352. package/dist/parsers/__tests__/long-tail.golden.test.js +115 -0
  353. package/dist/parsers/__tests__/long-tail.golden.test.js.map +1 -0
  354. package/dist/parsers/__tests__/lwc.golden.test.d.ts +2 -0
  355. package/dist/parsers/__tests__/lwc.golden.test.d.ts.map +1 -0
  356. package/dist/parsers/__tests__/lwc.golden.test.js +16 -0
  357. package/dist/parsers/__tests__/lwc.golden.test.js.map +1 -0
  358. package/dist/parsers/__tests__/object-inline-fields.test.d.ts +2 -0
  359. package/dist/parsers/__tests__/object-inline-fields.test.d.ts.map +1 -0
  360. package/dist/parsers/__tests__/object-inline-fields.test.js +115 -0
  361. package/dist/parsers/__tests__/object-inline-fields.test.js.map +1 -0
  362. package/dist/parsers/__tests__/object.golden.test.d.ts +2 -0
  363. package/dist/parsers/__tests__/object.golden.test.d.ts.map +1 -0
  364. package/dist/parsers/__tests__/object.golden.test.js +33 -0
  365. package/dist/parsers/__tests__/object.golden.test.js.map +1 -0
  366. package/dist/parsers/__tests__/omnistudio.golden.test.d.ts +2 -0
  367. package/dist/parsers/__tests__/omnistudio.golden.test.d.ts.map +1 -0
  368. package/dist/parsers/__tests__/omnistudio.golden.test.js +6 -0
  369. package/dist/parsers/__tests__/omnistudio.golden.test.js.map +1 -0
  370. package/dist/parsers/__tests__/registry.test.d.ts +2 -0
  371. package/dist/parsers/__tests__/registry.test.d.ts.map +1 -0
  372. package/dist/parsers/__tests__/registry.test.js +23 -0
  373. package/dist/parsers/__tests__/registry.test.js.map +1 -0
  374. package/dist/parsers/__tests__/security.golden.test.d.ts +2 -0
  375. package/dist/parsers/__tests__/security.golden.test.d.ts.map +1 -0
  376. package/dist/parsers/__tests__/security.golden.test.js +31 -0
  377. package/dist/parsers/__tests__/security.golden.test.js.map +1 -0
  378. package/dist/parsers/__tests__/vlocity.golden.test.d.ts +2 -0
  379. package/dist/parsers/__tests__/vlocity.golden.test.d.ts.map +1 -0
  380. package/dist/parsers/__tests__/vlocity.golden.test.js +8 -0
  381. package/dist/parsers/__tests__/vlocity.golden.test.js.map +1 -0
  382. package/dist/parsers/__tests__/worker-pool.test.d.ts +2 -0
  383. package/dist/parsers/__tests__/worker-pool.test.d.ts.map +1 -0
  384. package/dist/parsers/__tests__/worker-pool.test.js +48 -0
  385. package/dist/parsers/__tests__/worker-pool.test.js.map +1 -0
  386. package/dist/parsers/_xml-helpers.d.ts +5 -0
  387. package/dist/parsers/_xml-helpers.d.ts.map +1 -0
  388. package/dist/parsers/_xml-helpers.js +12 -0
  389. package/dist/parsers/_xml-helpers.js.map +1 -0
  390. package/dist/parsers/apex/class.d.ts +13 -0
  391. package/dist/parsers/apex/class.d.ts.map +1 -0
  392. package/dist/parsers/apex/class.js +325 -0
  393. package/dist/parsers/apex/class.js.map +1 -0
  394. package/dist/parsers/apex/common.d.ts +11 -0
  395. package/dist/parsers/apex/common.d.ts.map +1 -0
  396. package/dist/parsers/apex/common.js +55 -0
  397. package/dist/parsers/apex/common.js.map +1 -0
  398. package/dist/parsers/apex/index.d.ts +6 -0
  399. package/dist/parsers/apex/index.d.ts.map +1 -0
  400. package/dist/parsers/apex/index.js +9 -0
  401. package/dist/parsers/apex/index.js.map +1 -0
  402. package/dist/parsers/apex/trigger.d.ts +12 -0
  403. package/dist/parsers/apex/trigger.d.ts.map +1 -0
  404. package/dist/parsers/apex/trigger.js +36 -0
  405. package/dist/parsers/apex/trigger.js.map +1 -0
  406. package/dist/parsers/apex/visitor.d.ts +2 -0
  407. package/dist/parsers/apex/visitor.d.ts.map +1 -0
  408. package/dist/parsers/apex/visitor.js +4 -0
  409. package/dist/parsers/apex/visitor.js.map +1 -0
  410. package/dist/parsers/common.d.ts +7 -0
  411. package/dist/parsers/common.d.ts.map +1 -0
  412. package/dist/parsers/common.js +37 -0
  413. package/dist/parsers/common.js.map +1 -0
  414. package/dist/parsers/contract.d.ts +31 -0
  415. package/dist/parsers/contract.d.ts.map +1 -0
  416. package/dist/parsers/contract.js +18 -0
  417. package/dist/parsers/contract.js.map +1 -0
  418. package/dist/parsers/cross-flavor-resolver.d.ts +18 -0
  419. package/dist/parsers/cross-flavor-resolver.d.ts.map +1 -0
  420. package/dist/parsers/cross-flavor-resolver.js +73 -0
  421. package/dist/parsers/cross-flavor-resolver.js.map +1 -0
  422. package/dist/parsers/experience/index.d.ts +2 -0
  423. package/dist/parsers/experience/index.d.ts.map +1 -0
  424. package/dist/parsers/experience/index.js +3 -0
  425. package/dist/parsers/experience/index.js.map +1 -0
  426. package/dist/parsers/flow/element-visitors.d.ts +2 -0
  427. package/dist/parsers/flow/element-visitors.d.ts.map +1 -0
  428. package/dist/parsers/flow/element-visitors.js +3 -0
  429. package/dist/parsers/flow/element-visitors.js.map +1 -0
  430. package/dist/parsers/flow/index.d.ts +4 -0
  431. package/dist/parsers/flow/index.d.ts.map +1 -0
  432. package/dist/parsers/flow/index.js +6 -0
  433. package/dist/parsers/flow/index.js.map +1 -0
  434. package/dist/parsers/flow/parser.d.ts +11 -0
  435. package/dist/parsers/flow/parser.d.ts.map +1 -0
  436. package/dist/parsers/flow/parser.js +101 -0
  437. package/dist/parsers/flow/parser.js.map +1 -0
  438. package/dist/parsers/genai/index.d.ts +2 -0
  439. package/dist/parsers/genai/index.d.ts.map +1 -0
  440. package/dist/parsers/genai/index.js +3 -0
  441. package/dist/parsers/genai/index.js.map +1 -0
  442. package/dist/parsers/generic/index.d.ts +4 -0
  443. package/dist/parsers/generic/index.d.ts.map +1 -0
  444. package/dist/parsers/generic/index.js +6 -0
  445. package/dist/parsers/generic/index.js.map +1 -0
  446. package/dist/parsers/generic/opaque-node-parser.d.ts +16 -0
  447. package/dist/parsers/generic/opaque-node-parser.d.ts.map +1 -0
  448. package/dist/parsers/generic/opaque-node-parser.js +18 -0
  449. package/dist/parsers/generic/opaque-node-parser.js.map +1 -0
  450. package/dist/parsers/index.d.ts +22 -0
  451. package/dist/parsers/index.d.ts.map +1 -0
  452. package/dist/parsers/index.js +23 -0
  453. package/dist/parsers/index.js.map +1 -0
  454. package/dist/parsers/integration/index.d.ts +2 -0
  455. package/dist/parsers/integration/index.d.ts.map +1 -0
  456. package/dist/parsers/integration/index.js +3 -0
  457. package/dist/parsers/integration/index.js.map +1 -0
  458. package/dist/parsers/lwc/bundle.d.ts +11 -0
  459. package/dist/parsers/lwc/bundle.d.ts.map +1 -0
  460. package/dist/parsers/lwc/bundle.js +54 -0
  461. package/dist/parsers/lwc/bundle.js.map +1 -0
  462. package/dist/parsers/lwc/html-visitor.d.ts +8 -0
  463. package/dist/parsers/lwc/html-visitor.d.ts.map +1 -0
  464. package/dist/parsers/lwc/html-visitor.js +57 -0
  465. package/dist/parsers/lwc/html-visitor.js.map +1 -0
  466. package/dist/parsers/lwc/index.d.ts +4 -0
  467. package/dist/parsers/lwc/index.d.ts.map +1 -0
  468. package/dist/parsers/lwc/index.js +6 -0
  469. package/dist/parsers/lwc/index.js.map +1 -0
  470. package/dist/parsers/lwc/js-visitor.d.ts +8 -0
  471. package/dist/parsers/lwc/js-visitor.d.ts.map +1 -0
  472. package/dist/parsers/lwc/js-visitor.js +93 -0
  473. package/dist/parsers/lwc/js-visitor.js.map +1 -0
  474. package/dist/parsers/lwc/xml-meta.d.ts +2 -0
  475. package/dist/parsers/lwc/xml-meta.d.ts.map +1 -0
  476. package/dist/parsers/lwc/xml-meta.js +21 -0
  477. package/dist/parsers/lwc/xml-meta.js.map +1 -0
  478. package/dist/parsers/object/field.d.ts +9 -0
  479. package/dist/parsers/object/field.d.ts.map +1 -0
  480. package/dist/parsers/object/field.js +14 -0
  481. package/dist/parsers/object/field.js.map +1 -0
  482. package/dist/parsers/object/index.d.ts +7 -0
  483. package/dist/parsers/object/index.d.ts.map +1 -0
  484. package/dist/parsers/object/index.js +9 -0
  485. package/dist/parsers/object/index.js.map +1 -0
  486. package/dist/parsers/object/object.d.ts +14 -0
  487. package/dist/parsers/object/object.d.ts.map +1 -0
  488. package/dist/parsers/object/object.js +188 -0
  489. package/dist/parsers/object/object.js.map +1 -0
  490. package/dist/parsers/object/record-type.d.ts +7 -0
  491. package/dist/parsers/object/record-type.d.ts.map +1 -0
  492. package/dist/parsers/object/record-type.js +12 -0
  493. package/dist/parsers/object/record-type.js.map +1 -0
  494. package/dist/parsers/object/validation-rule.d.ts +8 -0
  495. package/dist/parsers/object/validation-rule.d.ts.map +1 -0
  496. package/dist/parsers/object/validation-rule.js +13 -0
  497. package/dist/parsers/object/validation-rule.js.map +1 -0
  498. package/dist/parsers/omnistudio/data-transform.d.ts +11 -0
  499. package/dist/parsers/omnistudio/data-transform.d.ts.map +1 -0
  500. package/dist/parsers/omnistudio/data-transform.js +29 -0
  501. package/dist/parsers/omnistudio/data-transform.js.map +1 -0
  502. package/dist/parsers/omnistudio/index.d.ts +10 -0
  503. package/dist/parsers/omnistudio/index.d.ts.map +1 -0
  504. package/dist/parsers/omnistudio/index.js +15 -0
  505. package/dist/parsers/omnistudio/index.js.map +1 -0
  506. package/dist/parsers/omnistudio/integration-procedure.d.ts +11 -0
  507. package/dist/parsers/omnistudio/integration-procedure.d.ts.map +1 -0
  508. package/dist/parsers/omnistudio/integration-procedure.js +44 -0
  509. package/dist/parsers/omnistudio/integration-procedure.js.map +1 -0
  510. package/dist/parsers/omnistudio/process.d.ts +11 -0
  511. package/dist/parsers/omnistudio/process.d.ts.map +1 -0
  512. package/dist/parsers/omnistudio/process.js +49 -0
  513. package/dist/parsers/omnistudio/process.js.map +1 -0
  514. package/dist/parsers/omnistudio/ui-card.d.ts +11 -0
  515. package/dist/parsers/omnistudio/ui-card.d.ts.map +1 -0
  516. package/dist/parsers/omnistudio/ui-card.js +44 -0
  517. package/dist/parsers/omnistudio/ui-card.js.map +1 -0
  518. package/dist/parsers/presentation/index.d.ts +2 -0
  519. package/dist/parsers/presentation/index.d.ts.map +1 -0
  520. package/dist/parsers/presentation/index.js +3 -0
  521. package/dist/parsers/presentation/index.js.map +1 -0
  522. package/dist/parsers/registry.d.ts +13 -0
  523. package/dist/parsers/registry.d.ts.map +1 -0
  524. package/dist/parsers/registry.js +25 -0
  525. package/dist/parsers/registry.js.map +1 -0
  526. package/dist/parsers/reporting/index.d.ts +2 -0
  527. package/dist/parsers/reporting/index.d.ts.map +1 -0
  528. package/dist/parsers/reporting/index.js +3 -0
  529. package/dist/parsers/reporting/index.js.map +1 -0
  530. package/dist/parsers/rules/__tests__/applies-to.test.d.ts +2 -0
  531. package/dist/parsers/rules/__tests__/applies-to.test.d.ts.map +1 -0
  532. package/dist/parsers/rules/__tests__/applies-to.test.js +31 -0
  533. package/dist/parsers/rules/__tests__/applies-to.test.js.map +1 -0
  534. package/dist/parsers/rules/__tests__/applies-to.test.ts +40 -0
  535. package/dist/parsers/rules/__tests__/engine.test.d.ts +2 -0
  536. package/dist/parsers/rules/__tests__/engine.test.d.ts.map +1 -0
  537. package/dist/parsers/rules/__tests__/engine.test.js +127 -0
  538. package/dist/parsers/rules/__tests__/engine.test.js.map +1 -0
  539. package/dist/parsers/rules/__tests__/engine.test.ts +138 -0
  540. package/dist/parsers/rules/__tests__/loader.test.d.ts +2 -0
  541. package/dist/parsers/rules/__tests__/loader.test.d.ts.map +1 -0
  542. package/dist/parsers/rules/__tests__/loader.test.js +31 -0
  543. package/dist/parsers/rules/__tests__/loader.test.js.map +1 -0
  544. package/dist/parsers/rules/__tests__/loader.test.ts +37 -0
  545. package/dist/parsers/rules/__tests__/schema.test.d.ts +2 -0
  546. package/dist/parsers/rules/__tests__/schema.test.d.ts.map +1 -0
  547. package/dist/parsers/rules/__tests__/schema.test.js +33 -0
  548. package/dist/parsers/rules/__tests__/schema.test.js.map +1 -0
  549. package/dist/parsers/rules/__tests__/schema.test.ts +37 -0
  550. package/dist/parsers/rules/__tests__/selectors.test.d.ts +2 -0
  551. package/dist/parsers/rules/__tests__/selectors.test.d.ts.map +1 -0
  552. package/dist/parsers/rules/__tests__/selectors.test.js +51 -0
  553. package/dist/parsers/rules/__tests__/selectors.test.js.map +1 -0
  554. package/dist/parsers/rules/__tests__/selectors.test.ts +62 -0
  555. package/dist/parsers/rules/_engine.d.ts +18 -0
  556. package/dist/parsers/rules/_engine.d.ts.map +1 -0
  557. package/dist/parsers/rules/_engine.js +159 -0
  558. package/dist/parsers/rules/_engine.js.map +1 -0
  559. package/dist/parsers/rules/_engine.ts +171 -0
  560. package/dist/parsers/rules/_generic-opaque.d.ts +13 -0
  561. package/dist/parsers/rules/_generic-opaque.d.ts.map +1 -0
  562. package/dist/parsers/rules/_generic-opaque.js +15 -0
  563. package/dist/parsers/rules/_generic-opaque.js.map +1 -0
  564. package/dist/parsers/rules/_generic-opaque.ts +16 -0
  565. package/dist/parsers/rules/_loader.d.ts +17 -0
  566. package/dist/parsers/rules/_loader.d.ts.map +1 -0
  567. package/dist/parsers/rules/_loader.js +58 -0
  568. package/dist/parsers/rules/_loader.js.map +1 -0
  569. package/dist/parsers/rules/_loader.ts +65 -0
  570. package/dist/parsers/rules/_schema.d.ts +143 -0
  571. package/dist/parsers/rules/_schema.d.ts.map +1 -0
  572. package/dist/parsers/rules/_schema.js +44 -0
  573. package/dist/parsers/rules/_schema.js.map +1 -0
  574. package/dist/parsers/rules/_schema.ts +54 -0
  575. package/dist/parsers/rules/_selectors.d.ts +37 -0
  576. package/dist/parsers/rules/_selectors.d.ts.map +1 -0
  577. package/dist/parsers/rules/_selectors.js +445 -0
  578. package/dist/parsers/rules/_selectors.js.map +1 -0
  579. package/dist/parsers/rules/_selectors.ts +416 -0
  580. package/dist/parsers/rules/apex-component.yml +26 -0
  581. package/dist/parsers/rules/apex-page.yml +32 -0
  582. package/dist/parsers/rules/approval-process.yml +25 -0
  583. package/dist/parsers/rules/custom-labels.yml +16 -0
  584. package/dist/parsers/rules/custom-metadata-type.yml +26 -0
  585. package/dist/parsers/rules/dashboard.yml +20 -0
  586. package/dist/parsers/rules/duplicate-rule.yml +20 -0
  587. package/dist/parsers/rules/external-service-registration.yml +20 -0
  588. package/dist/parsers/rules/gen-ai-planner.yml +19 -0
  589. package/dist/parsers/rules/gen-ai-plugin.yml +19 -0
  590. package/dist/parsers/rules/layout.yml +20 -0
  591. package/dist/parsers/rules/lightning-page.yml +21 -0
  592. package/dist/parsers/rules/named-credential.yml +15 -0
  593. package/dist/parsers/rules/network.yml +26 -0
  594. package/dist/parsers/rules/permission-set-group.yml +20 -0
  595. package/dist/parsers/rules/permission-set.yml +40 -0
  596. package/dist/parsers/rules/platform-event.yml +15 -0
  597. package/dist/parsers/rules/profile.yml +55 -0
  598. package/dist/parsers/rules/report.yml +25 -0
  599. package/dist/parsers/rules/sharing-rule.yml +78 -0
  600. package/dist/parsers/rules/workflow.yml +37 -0
  601. package/dist/parsers/security/index.d.ts +2 -0
  602. package/dist/parsers/security/index.d.ts.map +1 -0
  603. package/dist/parsers/security/index.js +5 -0
  604. package/dist/parsers/security/index.js.map +1 -0
  605. package/dist/parsers/sf-misc/index.d.ts +4 -0
  606. package/dist/parsers/sf-misc/index.d.ts.map +1 -0
  607. package/dist/parsers/sf-misc/index.js +6 -0
  608. package/dist/parsers/sf-misc/index.js.map +1 -0
  609. package/dist/parsers/sf-misc/matching-rule.d.ts +11 -0
  610. package/dist/parsers/sf-misc/matching-rule.d.ts.map +1 -0
  611. package/dist/parsers/sf-misc/matching-rule.js +17 -0
  612. package/dist/parsers/sf-misc/matching-rule.js.map +1 -0
  613. package/dist/parsers/vf/index.d.ts +2 -0
  614. package/dist/parsers/vf/index.d.ts.map +1 -0
  615. package/dist/parsers/vf/index.js +3 -0
  616. package/dist/parsers/vf/index.js.map +1 -0
  617. package/dist/parsers/vlocity/common.d.ts +26 -0
  618. package/dist/parsers/vlocity/common.d.ts.map +1 -0
  619. package/dist/parsers/vlocity/common.js +66 -0
  620. package/dist/parsers/vlocity/common.js.map +1 -0
  621. package/dist/parsers/vlocity/data-raptor.d.ts +11 -0
  622. package/dist/parsers/vlocity/data-raptor.d.ts.map +1 -0
  623. package/dist/parsers/vlocity/data-raptor.js +46 -0
  624. package/dist/parsers/vlocity/data-raptor.js.map +1 -0
  625. package/dist/parsers/vlocity/fallback.d.ts +7 -0
  626. package/dist/parsers/vlocity/fallback.d.ts.map +1 -0
  627. package/dist/parsers/vlocity/fallback.js +8 -0
  628. package/dist/parsers/vlocity/fallback.js.map +1 -0
  629. package/dist/parsers/vlocity/index.d.ts +7 -0
  630. package/dist/parsers/vlocity/index.d.ts.map +1 -0
  631. package/dist/parsers/vlocity/index.js +10 -0
  632. package/dist/parsers/vlocity/index.js.map +1 -0
  633. package/dist/parsers/vlocity/integration-procedure.d.ts +11 -0
  634. package/dist/parsers/vlocity/integration-procedure.d.ts.map +1 -0
  635. package/dist/parsers/vlocity/integration-procedure.js +53 -0
  636. package/dist/parsers/vlocity/integration-procedure.js.map +1 -0
  637. package/dist/parsers/vlocity/omni-script.d.ts +11 -0
  638. package/dist/parsers/vlocity/omni-script.d.ts.map +1 -0
  639. package/dist/parsers/vlocity/omni-script.js +50 -0
  640. package/dist/parsers/vlocity/omni-script.js.map +1 -0
  641. package/dist/parsers/vlocity/registry.d.ts +3 -0
  642. package/dist/parsers/vlocity/registry.d.ts.map +1 -0
  643. package/dist/parsers/vlocity/registry.js +11 -0
  644. package/dist/parsers/vlocity/registry.js.map +1 -0
  645. package/dist/parsers/vlocity/vlocity-card.d.ts +11 -0
  646. package/dist/parsers/vlocity/vlocity-card.d.ts.map +1 -0
  647. package/dist/parsers/vlocity/vlocity-card.js +55 -0
  648. package/dist/parsers/vlocity/vlocity-card.js.map +1 -0
  649. package/dist/parsers/worker-pool.d.ts +30 -0
  650. package/dist/parsers/worker-pool.d.ts.map +1 -0
  651. package/dist/parsers/worker-pool.js +57 -0
  652. package/dist/parsers/worker-pool.js.map +1 -0
  653. package/dist/render/mermaid/__tests__/mermaid.test.d.ts +2 -0
  654. package/dist/render/mermaid/__tests__/mermaid.test.d.ts.map +1 -0
  655. package/dist/render/mermaid/__tests__/mermaid.test.js +74 -0
  656. package/dist/render/mermaid/__tests__/mermaid.test.js.map +1 -0
  657. package/dist/render/mermaid/dependency-graph.d.ts +15 -0
  658. package/dist/render/mermaid/dependency-graph.d.ts.map +1 -0
  659. package/dist/render/mermaid/dependency-graph.js +43 -0
  660. package/dist/render/mermaid/dependency-graph.js.map +1 -0
  661. package/dist/render/mermaid/diff.d.ts +12 -0
  662. package/dist/render/mermaid/diff.d.ts.map +1 -0
  663. package/dist/render/mermaid/diff.js +22 -0
  664. package/dist/render/mermaid/diff.js.map +1 -0
  665. package/dist/render/mermaid/flow.d.ts +18 -0
  666. package/dist/render/mermaid/flow.d.ts.map +1 -0
  667. package/dist/render/mermaid/flow.js +23 -0
  668. package/dist/render/mermaid/flow.js.map +1 -0
  669. package/dist/render/mermaid/index.d.ts +6 -0
  670. package/dist/render/mermaid/index.d.ts.map +1 -0
  671. package/dist/render/mermaid/index.js +6 -0
  672. package/dist/render/mermaid/index.js.map +1 -0
  673. package/dist/render/mermaid/sequence.d.ts +16 -0
  674. package/dist/render/mermaid/sequence.d.ts.map +1 -0
  675. package/dist/render/mermaid/sequence.js +20 -0
  676. package/dist/render/mermaid/sequence.js.map +1 -0
  677. package/dist/render/mermaid/shared.d.ts +22 -0
  678. package/dist/render/mermaid/shared.d.ts.map +1 -0
  679. package/dist/render/mermaid/shared.js +47 -0
  680. package/dist/render/mermaid/shared.js.map +1 -0
  681. package/dist/storage/__tests__/analysis-tables-migration.test.d.ts +2 -0
  682. package/dist/storage/__tests__/analysis-tables-migration.test.d.ts.map +1 -0
  683. package/dist/storage/__tests__/analysis-tables-migration.test.js +44 -0
  684. package/dist/storage/__tests__/analysis-tables-migration.test.js.map +1 -0
  685. package/dist/storage/__tests__/graph-store.test.d.ts +2 -0
  686. package/dist/storage/__tests__/graph-store.test.d.ts.map +1 -0
  687. package/dist/storage/__tests__/graph-store.test.js +132 -0
  688. package/dist/storage/__tests__/graph-store.test.js.map +1 -0
  689. package/dist/storage/__tests__/identifier.test.d.ts +2 -0
  690. package/dist/storage/__tests__/identifier.test.d.ts.map +1 -0
  691. package/dist/storage/__tests__/identifier.test.js +35 -0
  692. package/dist/storage/__tests__/identifier.test.js.map +1 -0
  693. package/dist/storage/__tests__/load-better-sqlite3.test.d.ts +2 -0
  694. package/dist/storage/__tests__/load-better-sqlite3.test.d.ts.map +1 -0
  695. package/dist/storage/__tests__/load-better-sqlite3.test.js +65 -0
  696. package/dist/storage/__tests__/load-better-sqlite3.test.js.map +1 -0
  697. package/dist/storage/__tests__/migrations.test.d.ts +2 -0
  698. package/dist/storage/__tests__/migrations.test.d.ts.map +1 -0
  699. package/dist/storage/__tests__/migrations.test.js +93 -0
  700. package/dist/storage/__tests__/migrations.test.js.map +1 -0
  701. package/dist/storage/__tests__/perf-50k.test.d.ts +2 -0
  702. package/dist/storage/__tests__/perf-50k.test.d.ts.map +1 -0
  703. package/dist/storage/__tests__/perf-50k.test.js +67 -0
  704. package/dist/storage/__tests__/perf-50k.test.js.map +1 -0
  705. package/dist/storage/__tests__/snapshot-store.test.d.ts +2 -0
  706. package/dist/storage/__tests__/snapshot-store.test.d.ts.map +1 -0
  707. package/dist/storage/__tests__/snapshot-store.test.js +117 -0
  708. package/dist/storage/__tests__/snapshot-store.test.js.map +1 -0
  709. package/dist/storage/__tests__/snippets.test.d.ts +2 -0
  710. package/dist/storage/__tests__/snippets.test.d.ts.map +1 -0
  711. package/dist/storage/__tests__/snippets.test.js +88 -0
  712. package/dist/storage/__tests__/snippets.test.js.map +1 -0
  713. package/dist/storage/__tests__/vector-store-load-failure.test.d.ts +2 -0
  714. package/dist/storage/__tests__/vector-store-load-failure.test.d.ts.map +1 -0
  715. package/dist/storage/__tests__/vector-store-load-failure.test.js +42 -0
  716. package/dist/storage/__tests__/vector-store-load-failure.test.js.map +1 -0
  717. package/dist/storage/__tests__/vector-store.test.d.ts +2 -0
  718. package/dist/storage/__tests__/vector-store.test.d.ts.map +1 -0
  719. package/dist/storage/__tests__/vector-store.test.js +87 -0
  720. package/dist/storage/__tests__/vector-store.test.js.map +1 -0
  721. package/dist/storage/identifier.d.ts +5 -0
  722. package/dist/storage/identifier.d.ts.map +1 -0
  723. package/dist/storage/identifier.js +21 -0
  724. package/dist/storage/identifier.js.map +1 -0
  725. package/dist/storage/index.d.ts +12 -0
  726. package/dist/storage/index.d.ts.map +1 -0
  727. package/dist/storage/index.js +8 -0
  728. package/dist/storage/index.js.map +1 -0
  729. package/dist/storage/interfaces.d.ts +101 -0
  730. package/dist/storage/interfaces.d.ts.map +1 -0
  731. package/dist/storage/interfaces.js +2 -0
  732. package/dist/storage/interfaces.js.map +1 -0
  733. package/dist/storage/sqlite/graph-store.d.ts +62 -0
  734. package/dist/storage/sqlite/graph-store.d.ts.map +1 -0
  735. package/dist/storage/sqlite/graph-store.js +533 -0
  736. package/dist/storage/sqlite/graph-store.js.map +1 -0
  737. package/dist/storage/sqlite/load-better-sqlite3.d.ts +50 -0
  738. package/dist/storage/sqlite/load-better-sqlite3.d.ts.map +1 -0
  739. package/dist/storage/sqlite/load-better-sqlite3.js +188 -0
  740. package/dist/storage/sqlite/load-better-sqlite3.js.map +1 -0
  741. package/dist/storage/sqlite/migrations.d.ts +18 -0
  742. package/dist/storage/sqlite/migrations.d.ts.map +1 -0
  743. package/dist/storage/sqlite/migrations.js +291 -0
  744. package/dist/storage/sqlite/migrations.js.map +1 -0
  745. package/dist/storage/sqlite/snapshot-store.d.ts +31 -0
  746. package/dist/storage/sqlite/snapshot-store.d.ts.map +1 -0
  747. package/dist/storage/sqlite/snapshot-store.js +255 -0
  748. package/dist/storage/sqlite/snapshot-store.js.map +1 -0
  749. package/dist/storage/sqlite/vector-store.d.ts +28 -0
  750. package/dist/storage/sqlite/vector-store.d.ts.map +1 -0
  751. package/dist/storage/sqlite/vector-store.js +174 -0
  752. package/dist/storage/sqlite/vector-store.js.map +1 -0
  753. package/dist/telemetry/__tests__/event-schema.test.d.ts +2 -0
  754. package/dist/telemetry/__tests__/event-schema.test.d.ts.map +1 -0
  755. package/dist/telemetry/__tests__/event-schema.test.js +56 -0
  756. package/dist/telemetry/__tests__/event-schema.test.js.map +1 -0
  757. package/dist/telemetry/__tests__/machine-id.test.d.ts +2 -0
  758. package/dist/telemetry/__tests__/machine-id.test.d.ts.map +1 -0
  759. package/dist/telemetry/__tests__/machine-id.test.js +33 -0
  760. package/dist/telemetry/__tests__/machine-id.test.js.map +1 -0
  761. package/dist/telemetry/__tests__/pipeline.test.d.ts +2 -0
  762. package/dist/telemetry/__tests__/pipeline.test.d.ts.map +1 -0
  763. package/dist/telemetry/__tests__/pipeline.test.js +68 -0
  764. package/dist/telemetry/__tests__/pipeline.test.js.map +1 -0
  765. package/dist/telemetry/__tests__/sanitizer.test.d.ts +2 -0
  766. package/dist/telemetry/__tests__/sanitizer.test.d.ts.map +1 -0
  767. package/dist/telemetry/__tests__/sanitizer.test.js +143 -0
  768. package/dist/telemetry/__tests__/sanitizer.test.js.map +1 -0
  769. package/dist/telemetry/event-schema.d.ts +47 -0
  770. package/dist/telemetry/event-schema.d.ts.map +1 -0
  771. package/dist/telemetry/event-schema.js +64 -0
  772. package/dist/telemetry/event-schema.js.map +1 -0
  773. package/dist/telemetry/index.d.ts +6 -0
  774. package/dist/telemetry/index.d.ts.map +1 -0
  775. package/dist/telemetry/index.js +6 -0
  776. package/dist/telemetry/index.js.map +1 -0
  777. package/dist/telemetry/machine-id.d.ts +7 -0
  778. package/dist/telemetry/machine-id.d.ts.map +1 -0
  779. package/dist/telemetry/machine-id.js +30 -0
  780. package/dist/telemetry/machine-id.js.map +1 -0
  781. package/dist/telemetry/pipeline.d.ts +17 -0
  782. package/dist/telemetry/pipeline.d.ts.map +1 -0
  783. package/dist/telemetry/pipeline.js +33 -0
  784. package/dist/telemetry/pipeline.js.map +1 -0
  785. package/dist/telemetry/sanitizer.d.ts +9 -0
  786. package/dist/telemetry/sanitizer.d.ts.map +1 -0
  787. package/dist/telemetry/sanitizer.js +87 -0
  788. package/dist/telemetry/sanitizer.js.map +1 -0
  789. package/dist/telemetry/sinks.d.ts +22 -0
  790. package/dist/telemetry/sinks.d.ts.map +1 -0
  791. package/dist/telemetry/sinks.js +40 -0
  792. package/dist/telemetry/sinks.js.map +1 -0
  793. package/dist/tools/types.d.ts +7 -0
  794. package/dist/tools/types.d.ts.map +1 -0
  795. package/dist/tools/types.js +2 -0
  796. package/dist/tools/types.js.map +1 -0
  797. package/package.json +89 -0
@@ -0,0 +1,188 @@
1
+ /**
2
+ * Centralized loader for `better-sqlite3` that converts the cryptic native
3
+ * "NODE_MODULE_VERSION X / was compiled against Y" runtime error into a
4
+ * `SfgraphError(E_NATIVE_ABI_MISMATCH, ...)` with actionable, copy-paste
5
+ * recovery commands.
6
+ *
7
+ * The most common cause is an IDE-spawned MCP child running a different Node
8
+ * binary than the shell that did `pnpm install` / `pnpm rebuild`. Cursor and
9
+ * VS Code ship their own Node; if the shell Node ABI differs, the prebuilt
10
+ * binding loaded into the IDE child fails to dlopen.
11
+ */
12
+ import { spawnSync } from "node:child_process";
13
+ import { existsSync } from "node:fs";
14
+ import { createRequire } from "node:module";
15
+ import path from "node:path";
16
+ import { ErrorCode, SfgraphError } from "@ryanstark24/sfgraph-shared";
17
+ /** ABI mismatch detection heuristic. Matches the V8 / Node-API messages
18
+ * produced when the loaded `.node` file was compiled against a different
19
+ * NODE_MODULE_VERSION than the running process. */
20
+ export function isAbiMismatch(message) {
21
+ return (/NODE_MODULE_VERSION/.test(message) ||
22
+ /was compiled against a different Node\.?js version/i.test(message) ||
23
+ /Module did not self-register/i.test(message));
24
+ }
25
+ function detectPackageManager() {
26
+ const ua = process.env.npm_config_user_agent ?? "";
27
+ if (/pnpm/.test(ua))
28
+ return { pm: "pnpm", rebuildCmd: "pnpm rebuild better-sqlite3" };
29
+ if (/yarn/.test(ua))
30
+ return { pm: "yarn", rebuildCmd: "yarn rebuild better-sqlite3" };
31
+ if (/bun/.test(ua))
32
+ return { pm: "bun", rebuildCmd: "bun pm rebuild better-sqlite3" };
33
+ if (/npm/.test(ua))
34
+ return { pm: "npm", rebuildCmd: "npm rebuild better-sqlite3" };
35
+ return { pm: "unknown", rebuildCmd: "npm rebuild better-sqlite3" };
36
+ }
37
+ /** Attempt to locate the resolved path of the better-sqlite3 binding for
38
+ * diagnostics. Returns null on failure — never throws. */
39
+ function resolveBindingPath(requireFn) {
40
+ try {
41
+ // require.resolve isn't directly typed on the Loader; round-trip via the
42
+ // module record.
43
+ const mod = requireFn("better-sqlite3");
44
+ void mod; // touch to ensure load succeeded; caller already handles that path
45
+ return null;
46
+ }
47
+ catch {
48
+ return null;
49
+ }
50
+ }
51
+ function formatAbiMismatchMessage(original, hint, bindingPath) {
52
+ const lines = [
53
+ "Failed to load native module `better-sqlite3` — ABI mismatch.",
54
+ "",
55
+ ` Node: ${process.version} (ABI / NODE_MODULE_VERSION: ${process.versions.modules})`,
56
+ ` exec path: ${process.execPath}`,
57
+ ];
58
+ if (bindingPath)
59
+ lines.push(` binding path: ${bindingPath}`);
60
+ lines.push("", " Underlying error:", ` ${original.message.split("\n")[0]}`, "", " Recovery:", ` ${hint.rebuildCmd}`, "", " Note: when the MCP server is spawned by an IDE (Cursor, VS Code, Claude", " Desktop), the IDE may use a different Node binary than your shell.", " If `sfgraph doctor` reports a mismatch, re-run the rebuild using the", " IDE's Node (or pin an absolute node path via `sfgraph install --local", " --pin-node <path>`).");
61
+ return lines.join("\n");
62
+ }
63
+ /**
64
+ * If `err` is a native-binding ABI mismatch (matched by `isAbiMismatch`),
65
+ * convert it to a `SfgraphError(E_NATIVE_ABI_MISMATCH, ...)` with the
66
+ * full diagnostic message and recovery commands. Otherwise return null
67
+ * (caller should rethrow the original).
68
+ *
69
+ * Use this around `new Database(...)` calls or in `catch` blocks where
70
+ * `import Database from "better-sqlite3"` was used statically (the binding
71
+ * load is deferred until the first construction in some Node versions).
72
+ */
73
+ export function wrapAbiError(err) {
74
+ if (!(err instanceof Error))
75
+ return null;
76
+ if (!isAbiMismatch(err.message))
77
+ return null;
78
+ const hint = detectPackageManager();
79
+ return new SfgraphError(ErrorCode.E_NATIVE_ABI_MISMATCH, formatAbiMismatchMessage(err, hint, null), { cause: err });
80
+ }
81
+ /**
82
+ * Locate the better-sqlite3 package directory (where package.json lives)
83
+ * by resolving the module entry and walking up. Returns null on failure —
84
+ * the auto-rebuild path then falls through to the manual error.
85
+ */
86
+ function locateBetterSqlite3Dir(req) {
87
+ try {
88
+ if (typeof req.resolve !== "function")
89
+ return null;
90
+ let dir = path.dirname(req.resolve("better-sqlite3"));
91
+ // Walk up until we find package.json with the right name. The require.resolve
92
+ // typically lands inside lib/, so 1-3 levels of ".." gets us there.
93
+ for (let i = 0; i < 6; i++) {
94
+ const pkg = path.join(dir, "package.json");
95
+ if (existsSync(pkg))
96
+ return dir;
97
+ const parent = path.dirname(dir);
98
+ if (parent === dir)
99
+ return null;
100
+ dir = parent;
101
+ }
102
+ return null;
103
+ }
104
+ catch {
105
+ return null;
106
+ }
107
+ }
108
+ /**
109
+ * Compile better-sqlite3 from source against the currently-running Node.
110
+ * Uses the package's own `build-release` npm script, which invokes node-gyp
111
+ * with the right target. process.execPath is inherited via env so node-gyp
112
+ * targets THIS node, not whatever is on PATH.
113
+ *
114
+ * Returns true on success. Prints progress to stderr so the user sees
115
+ * what's happening — a 20-30 second rebuild can otherwise look like a
116
+ * hang.
117
+ */
118
+ function rebuildBetterSqlite3(pkgDir) {
119
+ process.stderr.write(`\nsfgraph: better-sqlite3 native binding doesn't match Node ${process.version} — rebuilding from source…\n`);
120
+ const result = spawnSync("npm", ["run", "build-release"], {
121
+ cwd: pkgDir,
122
+ stdio: ["ignore", "ignore", "inherit"],
123
+ env: {
124
+ ...process.env,
125
+ // Ensure node-gyp targets the running Node, not whatever default it
126
+ // would pick up from PATH.
127
+ npm_config_target: process.versions.node,
128
+ npm_config_runtime: "node",
129
+ npm_config_target_arch: process.arch,
130
+ npm_config_target_platform: process.platform,
131
+ },
132
+ });
133
+ if (result.status === 0) {
134
+ process.stderr.write("sfgraph: rebuild succeeded — retrying load.\n");
135
+ return true;
136
+ }
137
+ process.stderr.write("sfgraph: rebuild failed; falling back to manual remediation.\n");
138
+ return false;
139
+ }
140
+ /**
141
+ * Load `better-sqlite3` via the provided `require` (or one we synthesize from
142
+ * import.meta.url). On ABI mismatch:
143
+ * - if `autoRebuild` is true, attempt a from-source rebuild against the
144
+ * currently-running Node and retry the load. This eliminates the
145
+ * "two Nodes on PATH" foot-gun for nvm + Homebrew users.
146
+ * - otherwise (or if the rebuild fails), throw
147
+ * `SfgraphError(E_NATIVE_ABI_MISMATCH)` with copy-paste recovery.
148
+ * On any other failure, rethrow as-is.
149
+ */
150
+ export function loadBetterSqlite3(requireFn, opts = {}) {
151
+ const req = requireFn ?? createRequire(import.meta.url);
152
+ try {
153
+ return req("better-sqlite3");
154
+ }
155
+ catch (e) {
156
+ const err = e;
157
+ if (!isAbiMismatch(err.message))
158
+ throw err;
159
+ if (opts.autoRebuild) {
160
+ const pkgDir = locateBetterSqlite3Dir(req);
161
+ if (pkgDir && rebuildBetterSqlite3(pkgDir)) {
162
+ // Bust the require cache so the next call re-dlopens the freshly
163
+ // compiled .node file instead of reusing the in-memory failed module.
164
+ try {
165
+ const r = req;
166
+ if (r.cache && r.resolve) {
167
+ const k = r.resolve("better-sqlite3");
168
+ delete r.cache[k];
169
+ }
170
+ }
171
+ catch {
172
+ /* best effort */
173
+ }
174
+ try {
175
+ return req("better-sqlite3");
176
+ }
177
+ catch (retryErr) {
178
+ // Fall through to the formatted error below.
179
+ err.message = `${err.message}\n\nretry after rebuild also failed: ${retryErr.message}`;
180
+ }
181
+ }
182
+ }
183
+ const hint = detectPackageManager();
184
+ const bindingPath = resolveBindingPath(req);
185
+ throw new SfgraphError(ErrorCode.E_NATIVE_ABI_MISMATCH, formatAbiMismatchMessage(err, hint, bindingPath), { cause: err });
186
+ }
187
+ }
188
+ //# sourceMappingURL=load-better-sqlite3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-better-sqlite3.js","sourceRoot":"","sources":["../../../src/storage/sqlite/load-better-sqlite3.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { BetterSqlite3Database, Migration } from "../interfaces.js";
2
+ export declare const MIGRATIONS: Migration[];
3
+ export interface MigrationRunnerOpts {
4
+ backupDir: string;
5
+ retainBackups: number;
6
+ }
7
+ export declare class MigrationRunner {
8
+ private readonly db;
9
+ private readonly migrations;
10
+ private readonly opts;
11
+ constructor(db: BetterSqlite3Database, migrations: Migration[], opts: MigrationRunnerOpts);
12
+ private getCurrentVersion;
13
+ private validateRegistry;
14
+ private backup;
15
+ private rotateBackups;
16
+ applyPending(): void;
17
+ }
18
+ //# sourceMappingURL=migrations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../../src/storage/sqlite/migrations.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEzE,eAAO,MAAM,UAAU,EAAE,SAAS,EAwMjC,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,eAAe;IAExB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAFJ,EAAE,EAAE,qBAAqB,EACzB,UAAU,EAAE,SAAS,EAAE,EACvB,IAAI,EAAE,mBAAmB;IAG5C,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,MAAM;IAcd,OAAO,CAAC,aAAa;IAqBrB,YAAY,IAAI,IAAI;CAsBrB"}
@@ -0,0 +1,291 @@
1
+ import { existsSync, mkdirSync, readdirSync, statSync, unlinkSync } from "node:fs";
2
+ import path from "node:path";
3
+ import { MigrationError } from "@ryanstark24/sfgraph-shared";
4
+ import * as sqliteVec from "sqlite-vec";
5
+ export const MIGRATIONS = [
6
+ {
7
+ version: 1,
8
+ description: "initial registry + snapshot tables",
9
+ up(db) {
10
+ db.exec(`
11
+ CREATE TABLE IF NOT EXISTS _sfgraph_schema_version (
12
+ version INTEGER PRIMARY KEY,
13
+ applied_at INTEGER NOT NULL,
14
+ description TEXT NOT NULL
15
+ );
16
+ CREATE TABLE IF NOT EXISTS _sfgraph_orgs (
17
+ id TEXT PRIMARY KEY,
18
+ alias TEXT NOT NULL,
19
+ instance_url TEXT NOT NULL,
20
+ api_version TEXT NOT NULL,
21
+ created_at INTEGER NOT NULL
22
+ );
23
+ CREATE TABLE IF NOT EXISTS _sfgraph_node_labels (
24
+ label TEXT PRIMARY KEY,
25
+ table_name TEXT NOT NULL,
26
+ created_at INTEGER NOT NULL
27
+ );
28
+ CREATE TABLE IF NOT EXISTS _sfgraph_edge_types (
29
+ rel_type TEXT PRIMARY KEY,
30
+ table_name TEXT NOT NULL,
31
+ created_at INTEGER NOT NULL
32
+ );
33
+ CREATE TABLE IF NOT EXISTS _sfgraph_snapshots (
34
+ id TEXT PRIMARY KEY,
35
+ org_id TEXT NOT NULL,
36
+ label TEXT NOT NULL,
37
+ created_at INTEGER NOT NULL,
38
+ is_auto INTEGER NOT NULL DEFAULT 0
39
+ );
40
+ CREATE INDEX IF NOT EXISTS _sfgraph_snapshots_org_created
41
+ ON _sfgraph_snapshots(org_id, created_at);
42
+ CREATE TABLE IF NOT EXISTS _sfgraph_node_snapshots (
43
+ snapshot_id TEXT NOT NULL,
44
+ org_id TEXT NOT NULL,
45
+ qualified_name TEXT NOT NULL,
46
+ label TEXT NOT NULL,
47
+ attributes TEXT NOT NULL,
48
+ source_hash TEXT NOT NULL,
49
+ first_seen_at INTEGER NOT NULL,
50
+ last_seen_at INTEGER NOT NULL,
51
+ last_modified_at INTEGER NOT NULL,
52
+ PRIMARY KEY(snapshot_id, org_id, qualified_name)
53
+ );
54
+ CREATE TABLE IF NOT EXISTS _sfgraph_edge_snapshots (
55
+ snapshot_id TEXT NOT NULL,
56
+ org_id TEXT NOT NULL,
57
+ src_qname TEXT NOT NULL,
58
+ dst_qname TEXT NOT NULL,
59
+ rel_type TEXT NOT NULL,
60
+ attributes TEXT NOT NULL,
61
+ first_seen_at INTEGER NOT NULL,
62
+ last_seen_at INTEGER NOT NULL,
63
+ PRIMARY KEY(snapshot_id, org_id, src_qname, dst_qname, rel_type)
64
+ );
65
+ `);
66
+ },
67
+ },
68
+ {
69
+ version: 2,
70
+ description: "node index lookup",
71
+ up(db) {
72
+ db.exec(`
73
+ CREATE TABLE IF NOT EXISTS _sfgraph_node_index (
74
+ org_id TEXT NOT NULL,
75
+ qualified_name TEXT NOT NULL,
76
+ label TEXT NOT NULL,
77
+ PRIMARY KEY(org_id, qualified_name)
78
+ );
79
+ `);
80
+ },
81
+ },
82
+ {
83
+ version: 4,
84
+ description: "org last_synced_at",
85
+ up(db) {
86
+ // SQLite forbids ALTER TABLE ADD COLUMN with a non-constant default; NULL is fine.
87
+ db.exec("ALTER TABLE _sfgraph_orgs ADD COLUMN last_synced_at INTEGER");
88
+ },
89
+ },
90
+ {
91
+ version: 5,
92
+ description: "phase 6 analysis tables (findings, dead-code, governor, test coverage)",
93
+ up(db) {
94
+ // NOTE: Spec called for PK using IFNULL(line,0) but SQLite doesn't allow
95
+ // expressions in PRIMARY KEY declarations. Divergence: store -1 sentinel
96
+ // for "no specific line" findings and include `line` as a plain PK column.
97
+ db.exec(`
98
+ CREATE TABLE IF NOT EXISTS _sfgraph_findings (
99
+ org_id TEXT NOT NULL,
100
+ qualified_name TEXT NOT NULL,
101
+ rule_id TEXT NOT NULL,
102
+ line INTEGER NOT NULL DEFAULT -1,
103
+ severity TEXT NOT NULL,
104
+ message TEXT NOT NULL,
105
+ evidence TEXT,
106
+ computed_at INTEGER NOT NULL,
107
+ PRIMARY KEY(org_id, qualified_name, rule_id, line)
108
+ );
109
+ CREATE INDEX IF NOT EXISTS _sfgraph_findings_qname
110
+ ON _sfgraph_findings(org_id, qualified_name);
111
+ CREATE INDEX IF NOT EXISTS _sfgraph_findings_rule
112
+ ON _sfgraph_findings(org_id, rule_id, severity);
113
+
114
+ CREATE TABLE IF NOT EXISTS _sfgraph_dead_code_scores (
115
+ org_id TEXT NOT NULL,
116
+ qualified_name TEXT NOT NULL,
117
+ score REAL NOT NULL,
118
+ confidence TEXT NOT NULL,
119
+ reasons TEXT NOT NULL,
120
+ computed_at INTEGER NOT NULL,
121
+ PRIMARY KEY(org_id, qualified_name)
122
+ );
123
+ CREATE INDEX IF NOT EXISTS _sfgraph_dead_code_conf
124
+ ON _sfgraph_dead_code_scores(org_id, confidence, score);
125
+
126
+ CREATE TABLE IF NOT EXISTS _sfgraph_governor_risks (
127
+ org_id TEXT NOT NULL,
128
+ qualified_name TEXT NOT NULL,
129
+ risk_type TEXT NOT NULL,
130
+ evidence TEXT,
131
+ line INTEGER NOT NULL DEFAULT -1,
132
+ computed_at INTEGER NOT NULL,
133
+ PRIMARY KEY(org_id, qualified_name, risk_type, line)
134
+ );
135
+ CREATE INDEX IF NOT EXISTS _sfgraph_governor_type
136
+ ON _sfgraph_governor_risks(org_id, risk_type);
137
+
138
+ CREATE TABLE IF NOT EXISTS _sfgraph_test_coverage (
139
+ org_id TEXT NOT NULL,
140
+ qualified_name TEXT NOT NULL,
141
+ test_count INTEGER NOT NULL,
142
+ computed_at INTEGER NOT NULL,
143
+ PRIMARY KEY(org_id, qualified_name)
144
+ );
145
+ CREATE INDEX IF NOT EXISTS _sfgraph_test_coverage_low
146
+ ON _sfgraph_test_coverage(org_id, test_count);
147
+ `);
148
+ },
149
+ },
150
+ {
151
+ version: 6,
152
+ description: "snippet store (source text + lazy LLM explanations)",
153
+ up(db) {
154
+ db.exec(`
155
+ CREATE TABLE IF NOT EXISTS _sfgraph_snippets (
156
+ org_id TEXT NOT NULL,
157
+ qualified_name TEXT NOT NULL,
158
+ source_format TEXT NOT NULL,
159
+ source_text TEXT NOT NULL,
160
+ start_line INTEGER,
161
+ end_line INTEGER,
162
+ source_hash TEXT NOT NULL,
163
+ llm_explanation TEXT,
164
+ explained_at INTEGER,
165
+ PRIMARY KEY (org_id, qualified_name)
166
+ );
167
+ CREATE INDEX IF NOT EXISTS idx_snippets_org ON _sfgraph_snippets (org_id);
168
+ `);
169
+ },
170
+ },
171
+ {
172
+ version: 3,
173
+ description: "vector tables (sqlite-vec)",
174
+ up(db) {
175
+ sqliteVec.load(db);
176
+ db.exec(`
177
+ CREATE TABLE IF NOT EXISTS _sfgraph_node_vector_meta (
178
+ org_id TEXT NOT NULL,
179
+ qualified_name TEXT NOT NULL,
180
+ content_hash TEXT NOT NULL,
181
+ label TEXT NOT NULL,
182
+ vec_rowid INTEGER NOT NULL,
183
+ PRIMARY KEY(org_id, qualified_name)
184
+ );
185
+ CREATE INDEX IF NOT EXISTS _sfgraph_node_vector_meta_hash
186
+ ON _sfgraph_node_vector_meta(content_hash);
187
+ CREATE TABLE IF NOT EXISTS _sfgraph_bundle_vector_meta (
188
+ org_id TEXT NOT NULL,
189
+ bundle_id TEXT NOT NULL,
190
+ content_hash TEXT NOT NULL,
191
+ vec_rowid INTEGER NOT NULL,
192
+ PRIMARY KEY(org_id, bundle_id)
193
+ );
194
+ CREATE VIRTUAL TABLE IF NOT EXISTS _sfgraph_node_vectors USING vec0(
195
+ org_id TEXT PARTITION KEY,
196
+ embedding float[384]
197
+ );
198
+ CREATE VIRTUAL TABLE IF NOT EXISTS _sfgraph_bundle_vectors USING vec0(
199
+ org_id TEXT PARTITION KEY,
200
+ embedding float[384]
201
+ );
202
+ `);
203
+ },
204
+ },
205
+ ];
206
+ export class MigrationRunner {
207
+ db;
208
+ migrations;
209
+ opts;
210
+ constructor(db, migrations, opts) {
211
+ this.db = db;
212
+ this.migrations = migrations;
213
+ this.opts = opts;
214
+ }
215
+ getCurrentVersion() {
216
+ const row = this.db
217
+ .prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='_sfgraph_schema_version'")
218
+ .get();
219
+ if (!row)
220
+ return 0;
221
+ const r = this.db.prepare("SELECT MAX(version) AS v FROM _sfgraph_schema_version").get();
222
+ return r?.v ?? 0;
223
+ }
224
+ validateRegistry() {
225
+ const seen = new Set();
226
+ for (const m of this.migrations) {
227
+ if (seen.has(m.version)) {
228
+ throw new MigrationError(`SF_DUPLICATE_MIGRATION: duplicate migration version ${m.version}`);
229
+ }
230
+ seen.add(m.version);
231
+ }
232
+ }
233
+ backup(currentVersion) {
234
+ const dbName = this.db.name;
235
+ if (!dbName || dbName === ":memory:" || dbName === "")
236
+ return;
237
+ if (!existsSync(this.opts.backupDir)) {
238
+ mkdirSync(this.opts.backupDir, { recursive: true });
239
+ }
240
+ const ts = Date.now();
241
+ const base = path.basename(dbName);
242
+ const dest = path.join(this.opts.backupDir, `${base}.v${currentVersion}.${ts}.sqlite`);
243
+ // better-sqlite3 backup is async; use VACUUM INTO for a sync snapshot.
244
+ this.db.exec(`VACUUM INTO '${dest.replace(/'/g, "''")}'`);
245
+ this.rotateBackups();
246
+ }
247
+ rotateBackups() {
248
+ if (!existsSync(this.opts.backupDir))
249
+ return;
250
+ const entries = readdirSync(this.opts.backupDir)
251
+ .filter((f) => f.endsWith(".sqlite"))
252
+ .map((f) => {
253
+ const full = path.join(this.opts.backupDir, f);
254
+ return { full, mtime: statSync(full).mtimeMs };
255
+ })
256
+ .sort((a, b) => b.mtime - a.mtime);
257
+ for (let i = this.opts.retainBackups; i < entries.length; i += 1) {
258
+ const entry = entries[i];
259
+ if (entry) {
260
+ try {
261
+ unlinkSync(entry.full);
262
+ }
263
+ catch {
264
+ /* ignore */
265
+ }
266
+ }
267
+ }
268
+ }
269
+ applyPending() {
270
+ this.validateRegistry();
271
+ const sorted = [...this.migrations].sort((a, b) => a.version - b.version);
272
+ let current = this.getCurrentVersion();
273
+ for (const m of sorted) {
274
+ if (m.version <= current)
275
+ continue;
276
+ // Only back up if there's prior state worth preserving.
277
+ if (current > 0) {
278
+ this.backup(current);
279
+ }
280
+ const apply = this.db.transaction(() => {
281
+ m.up(this.db);
282
+ this.db
283
+ .prepare("INSERT INTO _sfgraph_schema_version(version, applied_at, description) VALUES (?, ?, ?)")
284
+ .run(m.version, Date.now(), m.description);
285
+ });
286
+ apply();
287
+ current = m.version;
288
+ }
289
+ }
290
+ }
291
+ //# sourceMappingURL=migrations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../../src/storage/sqlite/migrations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { OrgId, QualifiedName, Sha256 } from "@ryanstark24/sfgraph-shared";
2
+ import type { Snapshot } from "../../domain/index.js";
3
+ import type { BetterSqlite3Database, EdgeDiff, NodeDiff, SnapshotStore } from "../interfaces.js";
4
+ export interface SqliteSnapshotStoreOptions {
5
+ dbPath: string;
6
+ backupDir?: string;
7
+ retainBackups?: number;
8
+ db?: BetterSqlite3Database;
9
+ skipMigrations?: boolean;
10
+ }
11
+ export declare class SqliteSnapshotStore implements SnapshotStore {
12
+ readonly db: BetterSqlite3Database;
13
+ private readonly ownsDb;
14
+ private readonly opts;
15
+ private initialized;
16
+ constructor(opts: SqliteSnapshotStoreOptions);
17
+ init(): Promise<void>;
18
+ private getNodeLabelTables;
19
+ private getEdgeRelTables;
20
+ createSnapshot(orgId: OrgId, label: string, isAuto: boolean): Snapshot;
21
+ listSnapshots(orgId: OrgId): Snapshot[];
22
+ getSnapshot(id: string): Snapshot | null;
23
+ deleteSnapshot(id: string): void;
24
+ private readNodes;
25
+ private readEdges;
26
+ diffNodes(orgId: OrgId, fromId: string | "current", toId: string | "current"): NodeDiff;
27
+ diffEdges(orgId: OrgId, fromId: string | "current", toId: string | "current"): EdgeDiff;
28
+ prune(orgId: OrgId, retainDays: number): number;
29
+ }
30
+ export type { QualifiedName, Sha256 };
31
+ //# sourceMappingURL=snapshot-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot-store.d.ts","sourceRoot":"","sources":["../../../src/storage/sqlite/snapshot-store.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAEhF,OAAO,KAAK,EAA+B,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACnF,OAAO,KAAK,EAAE,qBAAqB,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIjG,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,EAAE,CAAC,EAAE,qBAAqB,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAkED,qBAAa,mBAAoB,YAAW,aAAa;IACvD,QAAQ,CAAC,EAAE,EAAE,qBAAqB,CAAC;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA6B;IAClD,OAAO,CAAC,WAAW,CAAS;gBAEhB,IAAI,EAAE,0BAA0B;IAqBtC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB3B,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,gBAAgB;IASxB,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,QAAQ;IAoCtE,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,QAAQ,EAAE;IASvC,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAOxC,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAShC,OAAO,CAAC,SAAS;IA4BjB,OAAO,CAAC,SAAS;IA6BjB,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ;IAuBvF,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ;IAgBvF,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;CAUhD;AAGD,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC"}