@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,611 @@
1
+ import { ErrorCode, SfgraphError, asQualifiedName } from "@ryanstark24/sfgraph-shared";
2
+ import { parserRegistry } from "../parsers/registry.js";
3
+ // Ensure all parsers are registered before we look them up.
4
+ import "../parsers/index.js";
5
+ import { populateAnalysisTables } from "../analyze/populate.js";
6
+ import { EmbeddingQueue } from "../embedding/index.js";
7
+ import { resolveOrg } from "../extractors/live-org/auth.js";
8
+ import { bulkRetrieve } from "../extractors/live-org/bulk-retrieve.js";
9
+ import { probeCapabilities } from "../extractors/live-org/capabilities.js";
10
+ import { iterChanges } from "../extractors/live-org/source-member.js";
11
+ import { dataPool, metadataPool, toolingPool } from "../extractors/live-org/rate-limit.js";
12
+ import { loadAllRules } from "../parsers/rules/_loader.js";
13
+ const NOOP_LOG = {
14
+ debug: () => { },
15
+ info: () => { },
16
+ warn: () => { },
17
+ error: () => { },
18
+ };
19
+ /** Print a consolidated end-of-run summary of metadata types that were
20
+ * skipped during ingest, grouped by failure category, with a targeted
21
+ * remediation block per category. */
22
+ function printSkipSummary(report, orgAlias) {
23
+ const byCategory = new Map();
24
+ for (const s of report.skips) {
25
+ const arr = byCategory.get(s.category) ?? [];
26
+ arr.push({ label: s.label, reason: s.reason });
27
+ byCategory.set(s.category, arr);
28
+ }
29
+ const total = report.skips.length;
30
+ console.log("");
31
+ console.log(`⚠ ${total} metadata ${total === 1 ? "type was" : "types were"} skipped during this ingest.`);
32
+ console.log(" The rest of the graph completed successfully — these types are simply absent.");
33
+ if (byCategory.has("insufficient_access")) {
34
+ const list = byCategory.get("insufficient_access") ?? [];
35
+ console.log("");
36
+ console.log(` Insufficient access (${list.length}):`);
37
+ for (const s of list)
38
+ console.log(` • ${s.label}: ${s.reason}`);
39
+ console.log("");
40
+ console.log(" How to fix permanently:");
41
+ console.log(" 1. Have an admin assign your user a permission set with:");
42
+ console.log(" - 'Modify Metadata Through Metadata API Functions'");
43
+ console.log(" - 'View All Data' (or assign the System Administrator profile)");
44
+ console.log(" 2. Re-run with --rebuild to pick up the now-accessible types:");
45
+ console.log(` sfgraph ingest --org ${orgAlias} --rebuild`);
46
+ console.log(" Note: if you ARE already an admin and still see this, it usually means the");
47
+ console.log(" extractor is hitting a system entity that doesn't expose CustomObject metadata.");
48
+ console.log(" File an issue with the error text above so we can deny-list the entity.");
49
+ }
50
+ if (byCategory.has("rate_limit")) {
51
+ const list = byCategory.get("rate_limit") ?? [];
52
+ console.log("");
53
+ console.log(` Rate-limited (${list.length}):`);
54
+ for (const s of list)
55
+ console.log(` • ${s.label}`);
56
+ console.log(" How to fix: wait for the API quota to refresh, then re-fetch ONLY these");
57
+ console.log(" sources (no full rebuild needed):");
58
+ console.log(` sfgraph ingest --org ${orgAlias} --retry-skipped`);
59
+ console.log(" The previous skip report is persisted at <dataDir>/<orgId>.skips.json.");
60
+ }
61
+ if (byCategory.has("not_found")) {
62
+ const list = byCategory.get("not_found") ?? [];
63
+ console.log("");
64
+ console.log(` Not retrievable in this org (${list.length}):`);
65
+ for (const s of list)
66
+ console.log(` • ${s.label}`);
67
+ console.log(" These types were advertised by describeMetadata() but the org refuses to");
68
+ console.log(" return data for them — usually deprecated or feature-gated. Safe to ignore.");
69
+ }
70
+ if (byCategory.has("network")) {
71
+ const list = byCategory.get("network") ?? [];
72
+ console.log("");
73
+ console.log(` Network errors (${list.length}):`);
74
+ for (const s of list)
75
+ console.log(` • ${s.label}: ${s.reason}`);
76
+ console.log(" How to fix: check connectivity to your org and re-run.");
77
+ }
78
+ if (byCategory.has("unknown")) {
79
+ const list = byCategory.get("unknown") ?? [];
80
+ console.log("");
81
+ console.log(` Other (${list.length}):`);
82
+ for (const s of list)
83
+ console.log(` • ${s.label}: ${s.reason}`);
84
+ }
85
+ console.log("");
86
+ }
87
+ /** Live-org Apex extractor wraps body in a `{body, metaXml}` JSON envelope
88
+ * so we can forward Tooling-row ApiVersion/Status to the parser. Filesystem
89
+ * extractor still passes raw body. Detect by trying JSON.parse — if it
90
+ * yields an object with `body`, unwrap; otherwise treat as raw body. */
91
+ function unwrapApexEnvelope(content) {
92
+ if (!content)
93
+ return { body: "" };
94
+ if (content[0] !== "{")
95
+ return { body: content };
96
+ try {
97
+ const parsed = JSON.parse(content);
98
+ if (parsed && typeof parsed === "object" && typeof parsed.body === "string") {
99
+ const out = { body: parsed.body };
100
+ if (typeof parsed.metaXml === "string")
101
+ out.metaXml = parsed.metaXml;
102
+ return out;
103
+ }
104
+ }
105
+ catch {
106
+ /* fallthrough — raw body */
107
+ }
108
+ return { body: content };
109
+ }
110
+ function adaptParserInput(ref, content) {
111
+ switch (ref.memberType) {
112
+ case "ApexClass": {
113
+ const { body, metaXml } = unwrapApexEnvelope(content);
114
+ return {
115
+ type: "ApexClass",
116
+ input: { className: ref.memberName, body, ...(metaXml ? { metaXml } : {}) },
117
+ };
118
+ }
119
+ case "ApexTrigger": {
120
+ const { body, metaXml } = unwrapApexEnvelope(content);
121
+ return {
122
+ type: "ApexTrigger",
123
+ input: { triggerName: ref.memberName, body, ...(metaXml ? { metaXml } : {}) },
124
+ };
125
+ }
126
+ case "LightningComponentBundle": {
127
+ try {
128
+ const parsed = JSON.parse(content || "{}");
129
+ return {
130
+ type: "LightningComponentBundle",
131
+ input: { bundleName: parsed.bundleName ?? ref.memberName, files: parsed.files ?? {} },
132
+ };
133
+ }
134
+ catch {
135
+ return null;
136
+ }
137
+ }
138
+ case "Flow":
139
+ return { type: "Flow", input: { fullName: ref.memberName, xml: content } };
140
+ case "CustomObject":
141
+ return { type: "CustomObject", input: { apiName: ref.memberName, objectXml: content } };
142
+ case "Profile":
143
+ return { type: "Profile", input: { name: ref.memberName, xml: content } };
144
+ case "PermissionSet":
145
+ return { type: "PermissionSet", input: { name: ref.memberName, xml: content } };
146
+ case "SharingRules":
147
+ return { type: "SharingRules", input: { object: ref.memberName, xml: content } };
148
+ case "NamedCredential":
149
+ return { type: "NamedCredential", input: { name: ref.memberName, xml: content } };
150
+ case "ExternalServiceRegistration":
151
+ return { type: "ExternalServiceRegistration", input: { name: ref.memberName, xml: content } };
152
+ case "OmniProcess":
153
+ case "OmniUiCard":
154
+ case "OmniDataTransform":
155
+ case "OmniIntegrationProcedure": {
156
+ let metadata = content;
157
+ try {
158
+ metadata = JSON.parse(content);
159
+ }
160
+ catch {
161
+ /* keep raw */
162
+ }
163
+ return { type: ref.memberType, input: { name: ref.memberName, metadata } };
164
+ }
165
+ case "VlocityDataRaptor":
166
+ case "VlocityIntegrationProcedure":
167
+ case "VlocityCard":
168
+ case "VlocityOmniScript": {
169
+ let datapack = content;
170
+ try {
171
+ datapack = JSON.parse(content);
172
+ }
173
+ catch {
174
+ /* keep raw */
175
+ }
176
+ return { type: ref.memberType, input: { name: ref.memberName, datapack } };
177
+ }
178
+ default:
179
+ return null;
180
+ }
181
+ }
182
+ export async function liveIngest(opts) {
183
+ const logger = opts.logger ?? NOOP_LOG;
184
+ // Load declarative rule parsers (idempotent).
185
+ try {
186
+ await loadAllRules();
187
+ }
188
+ catch (e) {
189
+ logger.warn("live-ingest: rule load failed", { err: e.message });
190
+ }
191
+ const startedAt = Date.now();
192
+ const resolved = opts.preResolved ?? (await resolveOrg(opts.alias, opts.resolveDeps));
193
+ logger.info("live-ingest: resolved org", { alias: resolved.alias, orgId: resolved.orgId });
194
+ const graph = opts.graphStore;
195
+ const now = Date.now();
196
+ const apiVersion = resolved.apiVersion;
197
+ graph.upsertOrg({
198
+ id: resolved.orgId,
199
+ alias: resolved.alias,
200
+ instanceUrl: resolved.instanceUrl,
201
+ apiVersion,
202
+ createdAt: now,
203
+ });
204
+ const caps = await probeCapabilities(resolved.conn);
205
+ logger.info("live-ingest: probed capabilities", { caps });
206
+ // Discovery is also invoked implicitly inside bulkRetrieve, but logging the
207
+ // type-count up-front gives operators a quick coverage signal.
208
+ try {
209
+ const { discoverMetadataTypes } = await import("../extractors/live-org/discovery.js");
210
+ const discovered = await discoverMetadataTypes(resolved.conn, apiVersion);
211
+ logger.info("live-ingest: discovered metadata types", { count: discovered.length });
212
+ }
213
+ catch (e) {
214
+ logger.warn("live-ingest: metadata.describe failed", { err: e.message });
215
+ }
216
+ const existing = graph.getOrg(resolved.orgId);
217
+ const requestedMode = opts.mode ?? "auto";
218
+ let mode;
219
+ if (requestedMode === "auto") {
220
+ mode = existing?.lastSyncedAt && caps.sourceTracking ? "incremental" : "full";
221
+ }
222
+ else {
223
+ mode = requestedMode;
224
+ }
225
+ if (!opts.skipSnapshot && opts.snapshotStore) {
226
+ try {
227
+ opts.snapshotStore.createSnapshot(resolved.orgId, `pre-sync-${new Date(now).toISOString()}`, true);
228
+ }
229
+ catch (e) {
230
+ logger.warn("live-ingest: snapshot failed", { err: e.message });
231
+ }
232
+ }
233
+ let membersProcessed = 0;
234
+ let parseErrors = 0;
235
+ let deletions = 0;
236
+ // Set in the full-sync branch if the bulkRetrieve stream itself throws.
237
+ // Detect-deletions reads it post-fan-out to bail out instead of mass-
238
+ // wiping nodes that were never visited due to the abort.
239
+ let streamAborted = false;
240
+ const touchedQnames = new Set();
241
+ const parseCtxBase = {
242
+ orgId: resolved.orgId,
243
+ parseTimestamp: new Date(now).toISOString(),
244
+ namespace: null,
245
+ logger,
246
+ };
247
+ const embedQueue = opts.vectorStore
248
+ ? new EmbeddingQueue({
249
+ vectorStore: opts.vectorStore,
250
+ onError: (err) => logger.warn("live-ingest: embedding batch failed", { err: err.message }),
251
+ })
252
+ : null;
253
+ const handleParsed = (parsed) => {
254
+ if (parsed.nodes.length) {
255
+ graph.mergeNodes(parsed.nodes);
256
+ for (const n of parsed.nodes)
257
+ touchedQnames.add(String(n.qualifiedName));
258
+ }
259
+ if (parsed.edges.length)
260
+ graph.mergeEdges(parsed.edges);
261
+ if (parsed.snippets?.length) {
262
+ graph.transaction(() => {
263
+ for (const s of parsed.snippets ?? []) {
264
+ graph.upsertSnippet(s);
265
+ }
266
+ });
267
+ }
268
+ if (embedQueue) {
269
+ for (const n of parsed.nodes) {
270
+ const desc = n.attributes?.description;
271
+ const text = `${n.label}: ${n.qualifiedName}\n${typeof desc === "string" ? desc : ""}`;
272
+ embedQueue.push({
273
+ qname: String(n.qualifiedName),
274
+ text,
275
+ orgId: String(n.orgId),
276
+ label: n.label,
277
+ });
278
+ }
279
+ }
280
+ };
281
+ const debugProcess = process.env.SFGRAPH_DEBUG_INGEST === "1";
282
+ const processOne = async (ref, content) => {
283
+ const qnameForLog = `${ref.memberType}:${ref.memberName}`;
284
+ if (ref.obsolete) {
285
+ // Build the qualified name same way parsers would: best-effort by member name.
286
+ const qname = asQualifiedName(`${ref.memberType}:${ref.memberName}`);
287
+ if (debugProcess)
288
+ console.log(`ingest: [trace] delete ← ${qnameForLog}`);
289
+ graph.deleteEdgesFor(resolved.orgId, qname);
290
+ graph.deleteNode(resolved.orgId, qname);
291
+ if (debugProcess)
292
+ console.log(`ingest: [trace] delete ✓ ${qnameForLog}`);
293
+ deletions += 1;
294
+ return;
295
+ }
296
+ const adapted = adaptParserInput(ref, content);
297
+ if (!adapted)
298
+ return;
299
+ const parser = parserRegistry.for(adapted.type);
300
+ if (!parser)
301
+ return;
302
+ try {
303
+ const ctx = {
304
+ ...parseCtxBase,
305
+ sourceUri: ref.sourceUri,
306
+ namespace: ref.namespace ?? null,
307
+ };
308
+ if (debugProcess)
309
+ console.log(`ingest: [trace] parse ← ${qnameForLog}`);
310
+ const result = await parser.parse(adapted.input, ctx);
311
+ if (debugProcess)
312
+ console.log(`ingest: [trace] parse ✓ ${qnameForLog} (nodes=${result.nodes.length} edges=${result.edges.length})`);
313
+ if (debugProcess)
314
+ console.log(`ingest: [trace] graph-merge ← ${qnameForLog}`);
315
+ handleParsed(result);
316
+ if (debugProcess)
317
+ console.log(`ingest: [trace] graph-merge ✓ ${qnameForLog}`);
318
+ membersProcessed += 1;
319
+ }
320
+ catch (e) {
321
+ parseErrors += 1;
322
+ logger.warn("live-ingest: parser failure", {
323
+ type: ref.memberType,
324
+ name: ref.memberName,
325
+ err: e.message,
326
+ });
327
+ if (debugProcess) {
328
+ console.error(`ingest: [trace] FAILURE ${qnameForLog}: ${e.message}\n${e.stack}`);
329
+ }
330
+ }
331
+ };
332
+ if (mode === "incremental") {
333
+ const sinceIso = existing?.lastSyncedAt
334
+ ? new Date(existing.lastSyncedAt).toISOString()
335
+ : new Date(now - 24 * 3600 * 1000).toISOString();
336
+ for await (const ref of iterChanges(resolved.conn, resolved.orgId, sinceIso)) {
337
+ // For incremental, content is best fetched on-demand; for deletions we skip content.
338
+ await processOne(ref, "");
339
+ }
340
+ }
341
+ else {
342
+ // The outer iteration is also wrapped: bulkRetrieve uses fail-soft per
343
+ // source, but a top-level catch protects against any iterator-protocol
344
+ // surprises (e.g. generator throws during `next()` before yielding).
345
+ // Read live pool caps so the log reflects --tooling-pool/--metadata-pool/
346
+ // --data-pool overrides or SFGRAPH_*_POOL env vars rather than hardcoded
347
+ // defaults.
348
+ const { toolingPool, metadataPool, dataPool } = await import("../extractors/live-org/rate-limit.js");
349
+ const tCap = toolingPool._store
350
+ .storeOptions.maxConcurrent;
351
+ const mCap = metadataPool._store
352
+ .storeOptions.maxConcurrent;
353
+ const dCap = dataPool._store
354
+ .storeOptions.maxConcurrent;
355
+ console.log(`ingest: starting full sync (Tooling pool ${tCap} / Metadata pool ${mCap} / Data pool ${dCap} concurrent)`);
356
+ const fanOutStart = Date.now();
357
+ let progressCount = 0;
358
+ let lastTickAt = Date.now();
359
+ let lastActivityAt = Date.now();
360
+ let lastMemberLabel = "(none)";
361
+ const PROGRESS_TICK_MS = 5000; // emit a heartbeat at least every 5s
362
+ const skipReport = { skips: [] };
363
+ if (opts.onlyLabels && opts.onlyLabels.size > 0) {
364
+ console.log(`ingest: --only filter active (${opts.onlyLabels.size} source${opts.onlyLabels.size === 1 ? "" : "s"}): ${[...opts.onlyLabels].join(", ")}`);
365
+ }
366
+ // Debug mode: SFGRAPH_DEBUG_INGEST=1 enables a heartbeat timer that
367
+ // prints heap usage + seconds-since-last-activity every 10s. Critical
368
+ // for diagnosing silent ingest deaths (OOM, native segfault, hung SF
369
+ // call) where the normal progress log just stops without an error.
370
+ const debug = process.env.SFGRAPH_DEBUG_INGEST === "1";
371
+ let heartbeatTimer = null;
372
+ let keepAlive = null;
373
+ // Track signal handlers we register so we can remove them in finally.
374
+ // Without this, every invocation of liveIngest in debug mode leaked one
375
+ // listener per signal (SIGTERM/SIGINT/SIGUSR2), eventually triggering
376
+ // MaxListenersExceededWarning and N-fold handler firing on first ^C in
377
+ // multi-org / programmatic flows. (Audit finding C2.)
378
+ const installedSignalHandlers = [];
379
+ // streamAborted (hoisted at function scope) gates the post-fan-out
380
+ // detect-deletions block. If the bulkRetrieve stream itself throws
381
+ // (vs individual sources fail-softing), we've only seen a fraction of
382
+ // the org and the `touchedQnames` set is not safe to use for stale-
383
+ // qname computation — without this guard a transient SF error would
384
+ // mass-delete the untouched 70% of the graph. (Audit finding C1.)
385
+ try {
386
+ // Keep-alive sentinel: a ref'd timer that exists purely to prevent the
387
+ // event loop from draining while we're awaiting Bottleneck-scheduled
388
+ // work. Bottleneck's local-datastore reservoir-refresh timer is unref'd
389
+ // internally, jsforce's HTTP keep-alive sockets idle between requests,
390
+ // and Node will happily exit(0) on a perfectly healthy pending Promise
391
+ // if no ref'd handle is left.
392
+ keepAlive = setInterval(() => { }, 60_000);
393
+ // Wall-clock heartbeat — always on. Without this, silent phases (where
394
+ // all in-window sources are awaiting Bottleneck-queued metadata reads
395
+ // without yielding) look indistinguishable from a hung process. The
396
+ // per-record progress tick at the bottom of the fan-out loop only
397
+ // fires when a record arrives; this fires on a real timer regardless.
398
+ // Debug mode adds heap/rss; baseline shows processed/lastSource/idle.
399
+ const showPoolCounters = debug || process.env.SFGRAPH_DEBUG_POOLS === "1";
400
+ heartbeatTimer = setInterval(() => {
401
+ const idleSec = Math.round((Date.now() - lastActivityAt) / 1000);
402
+ if (idleSec < 10)
403
+ return; // suppress chatter when records are flowing
404
+ if (debug) {
405
+ const mem = process.memoryUsage();
406
+ const heapMb = Math.round(mem.heapUsed / 1024 / 1024);
407
+ const rssMb = Math.round(mem.rss / 1024 / 1024);
408
+ const externalMb = Math.round(mem.external / 1024 / 1024);
409
+ console.log(`ingest: [heartbeat] processed=${progressCount} lastSource=${lastMemberLabel} idle=${idleSec}s heap=${heapMb}MB rss=${rssMb}MB ext=${externalMb}MB`);
410
+ }
411
+ else {
412
+ console.log(`ingest: …still working — processed=${progressCount} idle=${idleSec}s lastSource=${lastMemberLabel}`);
413
+ }
414
+ // Pool diagnostics: snapshot Bottleneck state so a wedge can be
415
+ // attributed concretely to reservoir starvation vs. stuck-in-flight
416
+ // jobs vs. pre-yield iterator hangs. Counts are synchronous; the
417
+ // reservoir read is async but fire-and-forget — by the time it
418
+ // resolves we just log it.
419
+ if (showPoolCounters) {
420
+ const snapshot = [
421
+ ["tool", toolingPool],
422
+ ["meta", metadataPool],
423
+ ["data", dataPool],
424
+ ];
425
+ for (const [name, p] of snapshot) {
426
+ const c = p.counts();
427
+ p.currentReservoir().then((reservoir) => {
428
+ console.log(`ingest: [pool ${name}] running=${c.RUNNING} executing=${c.EXECUTING} queued=${c.QUEUED} received=${c.RECEIVED} reservoir=${reservoir}`);
429
+ }, () => {
430
+ /* swallow — never let a diag failure kill ingest */
431
+ });
432
+ }
433
+ }
434
+ }, 10_000);
435
+ if (debug) {
436
+ console.log("ingest: [debug] SFGRAPH_DEBUG_INGEST=1 active — heartbeat every 10s");
437
+ // Signal handlers — surface what was running when the user (or OS)
438
+ // sends a kill so silent terminations have at least one breadcrumb.
439
+ const onSig = (sig) => () => {
440
+ console.error(`ingest: [debug] received ${sig} after ${Math.round((Date.now() - fanOutStart) / 1000)}s — processed=${progressCount} lastSource=${lastMemberLabel}`);
441
+ console.error(new Error(`signal:${sig}`).stack);
442
+ process.exitCode = 130;
443
+ };
444
+ const onUsr2 = () => {
445
+ const mem = process.memoryUsage();
446
+ console.error(`ingest: [debug] SIGUSR2 — heap=${Math.round(mem.heapUsed / 1024 / 1024)}MB rss=${Math.round(mem.rss / 1024 / 1024)}MB lastSource=${lastMemberLabel}`);
447
+ };
448
+ installedSignalHandlers.push({ sig: "SIGTERM", fn: onSig("SIGTERM") });
449
+ installedSignalHandlers.push({ sig: "SIGINT", fn: onSig("SIGINT") });
450
+ installedSignalHandlers.push({ sig: "SIGUSR2", fn: onUsr2 });
451
+ for (const h of installedSignalHandlers)
452
+ process.on(h.sig, h.fn);
453
+ }
454
+ try {
455
+ for await (const member of bulkRetrieve(resolved.conn, caps, resolved.orgId, {
456
+ skipReport,
457
+ ...(opts.onlyLabels ? { onlyLabels: opts.onlyLabels } : {}),
458
+ })) {
459
+ try {
460
+ await processOne(member.ref, member.content);
461
+ }
462
+ catch (e) {
463
+ parseErrors += 1;
464
+ logger.warn("live-ingest: processOne failed", {
465
+ qname: `${member.ref.memberType}:${member.ref.memberName}`,
466
+ error: e.message,
467
+ });
468
+ }
469
+ progressCount += 1;
470
+ lastActivityAt = Date.now();
471
+ lastMemberLabel = `${member.ref.memberType}:${member.ref.memberName}`;
472
+ if (progressCount % 200 === 0 || Date.now() - lastTickAt > PROGRESS_TICK_MS) {
473
+ const elapsedSec = Math.round((Date.now() - fanOutStart) / 1000);
474
+ const memSuffix = debug
475
+ ? ` heap=${Math.round(process.memoryUsage().heapUsed / 1024 / 1024)}MB`
476
+ : "";
477
+ console.log(`ingest: …${progressCount} members processed so far (${elapsedSec}s elapsed)${memSuffix}`);
478
+ lastTickAt = Date.now();
479
+ }
480
+ if (progressCount % 500 === 0) {
481
+ const gs = graph;
482
+ if (typeof gs.checkpoint === "function")
483
+ gs.checkpoint();
484
+ }
485
+ }
486
+ console.log(`ingest: fan-out complete (${progressCount} members in ${Math.round((Date.now() - fanOutStart) / 1000)}s)`);
487
+ const gs = graph;
488
+ if (typeof gs.checkpoint === "function")
489
+ gs.checkpoint();
490
+ }
491
+ catch (e) {
492
+ // The stream itself threw (not an individual source — those are
493
+ // captured by failSoft). Mark so detect-deletions stays its hand.
494
+ streamAborted = true;
495
+ logger.warn("live-ingest: bulkRetrieve stream aborted", {
496
+ error: e.message,
497
+ });
498
+ }
499
+ }
500
+ finally {
501
+ if (heartbeatTimer)
502
+ clearInterval(heartbeatTimer);
503
+ if (keepAlive)
504
+ clearInterval(keepAlive);
505
+ for (const h of installedSignalHandlers)
506
+ process.off(h.sig, h.fn);
507
+ }
508
+ // End-of-run skip summary. Grouped by category so the remediation is
509
+ // targeted to the specific class of failure.
510
+ if (skipReport.skips.length > 0) {
511
+ printSkipSummary(skipReport, resolved.alias);
512
+ }
513
+ // Persist the skip report so --retry-skipped can read it next run.
514
+ // Always written (even when empty) so users can tell whether the last
515
+ // run had skips or just hasn't recorded any yet.
516
+ if (opts.skipReportPath) {
517
+ try {
518
+ const { writeFileSync, mkdirSync } = await import("node:fs");
519
+ const { dirname } = await import("node:path");
520
+ mkdirSync(dirname(opts.skipReportPath), { recursive: true });
521
+ writeFileSync(opts.skipReportPath, JSON.stringify({ recordedAt: Date.now(), orgId: resolved.orgId, ...skipReport }, null, 2), "utf8");
522
+ }
523
+ catch (e) {
524
+ logger.warn("live-ingest: skip report write failed", { err: e.message });
525
+ }
526
+ }
527
+ }
528
+ if (embedQueue) {
529
+ try {
530
+ await embedQueue.drain();
531
+ }
532
+ catch (e) {
533
+ logger.warn("live-ingest: embed drain failed", { err: e.message });
534
+ }
535
+ }
536
+ // Full-sync deletion detection: compute previously-known minus touched and
537
+ // delete the difference. Skipped on incremental (SourceMember handles it),
538
+ // skipped if any parse error occurred this run (avoid mass-wipe on
539
+ // transient SF errors).
540
+ if (opts.detectDeletions && mode === "full") {
541
+ if (streamAborted) {
542
+ logger.warn("live-ingest: detect-deletions skipped because bulkRetrieve stream aborted — touchedQnames is incomplete and a full deletion sweep would wrongly wipe untouched-but-still-present nodes");
543
+ }
544
+ else if (parseErrors > 0) {
545
+ logger.warn("live-ingest: detect-deletions skipped due to parseErrors", { parseErrors });
546
+ }
547
+ else {
548
+ try {
549
+ const persisted = graph.listAllQnames(resolved.orgId);
550
+ const stale = [];
551
+ for (const q of persisted) {
552
+ if (!touchedQnames.has(String(q)))
553
+ stale.push(String(q));
554
+ }
555
+ for (const q of stale) {
556
+ graph.deleteEdgesFor(resolved.orgId, asQualifiedName(q));
557
+ graph.deleteNode(resolved.orgId, asQualifiedName(q));
558
+ deletions += 1;
559
+ }
560
+ if (stale.length > 0) {
561
+ logger.info("live-ingest: detect-deletions removed stale qnames", {
562
+ count: stale.length,
563
+ });
564
+ }
565
+ }
566
+ catch (e) {
567
+ logger.warn("live-ingest: detect-deletions failed", { err: e.message });
568
+ }
569
+ }
570
+ }
571
+ const completedIso = new Date().toISOString();
572
+ try {
573
+ graph.touchSync(resolved.orgId, completedIso);
574
+ }
575
+ catch (e) {
576
+ logger.warn("live-ingest: touchSync failed", { err: e.message });
577
+ }
578
+ if (opts.analysisDb) {
579
+ try {
580
+ await populateAnalysisTables(graph, resolved.orgId, opts.analysisDb);
581
+ }
582
+ catch (e) {
583
+ logger.warn("live-ingest: populate analysis tables failed", {
584
+ err: e.message,
585
+ });
586
+ }
587
+ }
588
+ if (opts.snapshotStore) {
589
+ try {
590
+ opts.snapshotStore.prune(resolved.orgId, opts.snapshotRetentionDays ?? 30);
591
+ }
592
+ catch (e) {
593
+ logger.warn("live-ingest: snapshot prune failed", { err: e.message });
594
+ }
595
+ }
596
+ return {
597
+ orgId: resolved.orgId,
598
+ capabilities: caps,
599
+ mode,
600
+ membersProcessed,
601
+ parseErrors,
602
+ deletions,
603
+ durationMs: Date.now() - startedAt,
604
+ };
605
+ }
606
+ export function rethrowAsIngestError(e, ctx) {
607
+ if (e instanceof SfgraphError)
608
+ throw e;
609
+ throw new SfgraphError(ErrorCode.E_SF_INGEST, `${ctx}: ${e.message ?? String(e)}`);
610
+ }
611
+ //# sourceMappingURL=live-ingest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live-ingest.js","sourceRoot":"","sources":["../../src/ingest/live-ingest.ts"],"names":[],"mappings":"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"}