@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,37 @@
1
+ import type { OrgId } from "@ryanstark24/sfgraph-shared";
2
+ import { wrapConnectionReadOnly } from "./read-only-proxy.js";
3
+ export interface ResolvedOrg {
4
+ orgId: OrgId;
5
+ alias: string;
6
+ username: string;
7
+ instanceUrl: string;
8
+ apiVersion: string;
9
+ conn: any;
10
+ }
11
+ /** Strip secrets from anything that might be logged/persisted. */
12
+ export declare function safeOrgInfo<T extends Record<string, unknown>>(info: T): Omit<T, "accessToken">;
13
+ export interface ResolveOrgDeps {
14
+ AuthInfo?: any;
15
+ Connection?: any;
16
+ StateAggregator?: any;
17
+ }
18
+ /**
19
+ * Resolve a Salesforce org by alias/username using @salesforce/core. Returns a
20
+ * read-only-wrapped jsforce Connection.
21
+ *
22
+ * @throws SfgraphError with code E_SF_AUTH on authentication failures.
23
+ */
24
+ export declare function resolveOrg(alias: string, deps?: ResolveOrgDeps): Promise<ResolvedOrg>;
25
+ export { wrapConnectionReadOnly };
26
+ /**
27
+ * Resolve the default org alias for the current process. Reads `target-org`
28
+ * (sfdx-style `defaultusername` is also accepted) from the @salesforce/core
29
+ * ConfigAggregator, which transparently merges local `.sf/config.json`,
30
+ * project `sfdx-project.json`, and global `~/.sf/config.json`.
31
+ *
32
+ * @returns the resolved alias/username string, or `null` if none configured.
33
+ */
34
+ export declare function resolveDefaultOrgAlias(deps?: {
35
+ ConfigAggregator?: any;
36
+ }): Promise<string | null>;
37
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/extractors/live-org/auth.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,GAAG,CAAC;CACX;AAED,kEAAkE;AAClE,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,aAAa,CAAC,CAG9F;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,eAAe,CAAC,EAAE,GAAG,CAAC;CACvB;AA+BD;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,CA8D/F;AAED,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAElC;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,GAAE;IACJ,gBAAgB,CAAC,EAAE,GAAG,CAAC;CACnB,GACL,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAoBxB"}
@@ -0,0 +1,124 @@
1
+ import { ErrorCode, SfgraphError, asOrgId } from "@ryanstark24/sfgraph-shared";
2
+ import { wrapConnectionReadOnly } from "./read-only-proxy.js";
3
+ /** Strip secrets from anything that might be logged/persisted. */
4
+ export function safeOrgInfo(info) {
5
+ const { accessToken: _ignored, ...rest } = info;
6
+ return rest;
7
+ }
8
+ /**
9
+ * Resolve an alias to its underlying username via @salesforce/core's
10
+ * StateAggregator. Returns the alias unchanged when no binding exists OR
11
+ * when the aggregator can't be loaded (we let AuthInfo.create error
12
+ * naturally in that case so the user gets a clear "not authenticated"
13
+ * message instead of a swallowed lookup failure).
14
+ */
15
+ async function resolveAliasToUsername(alias, StateAggregator) {
16
+ let SA = StateAggregator;
17
+ if (!SA) {
18
+ try {
19
+ const mod = await import("@salesforce/core");
20
+ SA = mod.StateAggregator;
21
+ }
22
+ catch {
23
+ return alias;
24
+ }
25
+ }
26
+ try {
27
+ const agg = await SA.create();
28
+ const resolved = agg?.aliases?.getUsername?.(alias);
29
+ return typeof resolved === "string" && resolved.length > 0 ? resolved : alias;
30
+ }
31
+ catch {
32
+ return alias;
33
+ }
34
+ }
35
+ /**
36
+ * Resolve a Salesforce org by alias/username using @salesforce/core. Returns a
37
+ * read-only-wrapped jsforce Connection.
38
+ *
39
+ * @throws SfgraphError with code E_SF_AUTH on authentication failures.
40
+ */
41
+ export async function resolveOrg(alias, deps = {}) {
42
+ if (!alias || typeof alias !== "string") {
43
+ throw new SfgraphError(ErrorCode.E_SF_AUTH, `resolveOrg: invalid alias ${JSON.stringify(alias)}`);
44
+ }
45
+ let AuthInfo = deps.AuthInfo;
46
+ let Connection = deps.Connection;
47
+ if (!AuthInfo || !Connection) {
48
+ try {
49
+ const sfCore = await import("@salesforce/core");
50
+ AuthInfo = AuthInfo ?? sfCore.AuthInfo;
51
+ Connection = Connection ?? sfCore.Connection;
52
+ }
53
+ catch (e) {
54
+ throw new SfgraphError(ErrorCode.E_SF_AUTH, `resolveOrg: failed to load @salesforce/core for alias '${alias}': ${e.message}`, { cause: e });
55
+ }
56
+ }
57
+ // Resolve alias -> username FIRST. AuthInfo.create({ username }) does not
58
+ // reliably accept aliases in every @salesforce/core version / project
59
+ // context; using the alias name as the username key fails with
60
+ // "No authorization information found for X" even when the alias is
61
+ // properly registered and connected per `sf org list`.
62
+ const username = await resolveAliasToUsername(alias, deps.StateAggregator);
63
+ let authInfo;
64
+ try {
65
+ authInfo = await AuthInfo.create({ username });
66
+ }
67
+ catch (e) {
68
+ throw new SfgraphError(ErrorCode.E_SF_AUTH, `resolveOrg: AuthInfo.create failed for alias '${alias}' (resolved username '${username}'). Run 'sf org login web --alias ${alias}' to authenticate. Cause: ${e.message}`, { cause: e });
69
+ }
70
+ let rawConn;
71
+ try {
72
+ rawConn = await Connection.create({ authInfo });
73
+ }
74
+ catch (e) {
75
+ throw new SfgraphError(ErrorCode.E_SF_AUTH, `resolveOrg: Connection.create failed for alias '${alias}': ${e.message}`, { cause: e });
76
+ }
77
+ const fields = typeof authInfo.getFields === "function" ? authInfo.getFields() : {};
78
+ const resolvedUsername = fields.username ?? username;
79
+ const orgIdRaw = fields.orgId ?? rawConn.userInfo?.organizationId ?? `unknown_${alias}`;
80
+ const instanceUrl = rawConn.instanceUrl ?? fields.instanceUrl ?? "";
81
+ const apiVersion = rawConn.version ?? rawConn.getApiVersion?.() ?? "60.0";
82
+ const conn = wrapConnectionReadOnly(rawConn);
83
+ return {
84
+ orgId: asOrgId(orgIdRaw),
85
+ alias,
86
+ username: resolvedUsername,
87
+ instanceUrl,
88
+ apiVersion,
89
+ conn,
90
+ };
91
+ }
92
+ export { wrapConnectionReadOnly };
93
+ /**
94
+ * Resolve the default org alias for the current process. Reads `target-org`
95
+ * (sfdx-style `defaultusername` is also accepted) from the @salesforce/core
96
+ * ConfigAggregator, which transparently merges local `.sf/config.json`,
97
+ * project `sfdx-project.json`, and global `~/.sf/config.json`.
98
+ *
99
+ * @returns the resolved alias/username string, or `null` if none configured.
100
+ */
101
+ export async function resolveDefaultOrgAlias(deps = {}) {
102
+ let ConfigAggregator = deps.ConfigAggregator;
103
+ if (!ConfigAggregator) {
104
+ try {
105
+ const sfCore = await import("@salesforce/core");
106
+ ConfigAggregator = sfCore.ConfigAggregator;
107
+ }
108
+ catch {
109
+ return null;
110
+ }
111
+ }
112
+ try {
113
+ const aggregator = await ConfigAggregator.create();
114
+ const info = aggregator.getInfo?.("target-org") ?? aggregator.getInfo?.("defaultusername") ?? null;
115
+ const value = info?.value;
116
+ if (typeof value === "string" && value.length > 0)
117
+ return value;
118
+ return null;
119
+ }
120
+ catch {
121
+ return null;
122
+ }
123
+ }
124
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/extractors/live-org/auth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import type { OrgId } from "@ryanstark24/sfgraph-shared";
2
+ import type { RawMember } from "../interfaces/metadata-source.js";
3
+ import type { OrgCapabilities } from "./capabilities.js";
4
+ /** Aggregate of every source that errored during a bulkRetrieve run.
5
+ * bulkRetrieve mutates this in-place via onError; live-ingest reads it at
6
+ * end of run to print a consolidated summary instead of warning per-source
7
+ * in the middle of progress output. */
8
+ export interface IngestSkipReport {
9
+ skips: Array<{
10
+ label: string;
11
+ reason: string;
12
+ category: SkipCategory;
13
+ }>;
14
+ }
15
+ export type SkipCategory = "insufficient_access" | "not_found" | "rate_limit" | "network" | "unknown";
16
+ /** Naive sequential merge — predictable order, simpler back-pressure semantics.
17
+ * Kept for back-compat and tests; production ingest uses
18
+ * {@link mergeAsyncIterablesParallel} so different pools (Tooling/Metadata/
19
+ * Data) can saturate simultaneously instead of one extractor at a time. */
20
+ export declare function mergeAsyncIterables<T>(...iters: Array<AsyncIterable<T>>): AsyncIterable<T>;
21
+ /**
22
+ * Sliding-window parallel merge. Keeps exactly `concurrency` iterators
23
+ * live at any moment — when one completes (done:true), the next queued
24
+ * iterator is started in its slot. Within the window, iterators race via
25
+ * `Promise.race` for max throughput.
26
+ *
27
+ * Replaces the previous wave-based merger, which had a synchronisation
28
+ * barrier at each wave boundary: all 6 iterators in a wave had to finish
29
+ * before any of wave 2 could start. One hung source (very common for
30
+ * `generic:Layout` on managed-package-heavy orgs) parked the whole wave
31
+ * indefinitely with zero observable progress.
32
+ *
33
+ * Default concurrency = 8: enough to saturate the three rate-limit pools
34
+ * (Tooling 5 / Metadata 5 / Data 10) with headroom for one slot to be
35
+ * blocked on a slow source without starving the others. Override via
36
+ * `SFGRAPH_SOURCE_CONCURRENCY=<n>` (1 = strictly sequential).
37
+ *
38
+ * Output ordering is non-deterministic. `live-ingest`'s processOne is
39
+ * order-independent (idempotent per-record upserts), so this is safe.
40
+ */
41
+ export declare function mergeAsyncIterablesParallel<T>(...iters: Array<AsyncIterable<T>>): AsyncIterable<T>;
42
+ export interface BulkRetrieveOpts {
43
+ skipReport?: IngestSkipReport;
44
+ /** When set, only invoke source labels in this set. Labels are the same
45
+ * source-keys used by the dispatch table: 'apex', 'lwc', 'flow', 'object',
46
+ * 'security', 'integration', 'vlocity', 'omnistudio', or
47
+ * 'generic:<MetadataType>' for the long tail. */
48
+ onlyLabels?: Set<string>;
49
+ }
50
+ export declare function bulkRetrieve(conn: any, caps: OrgCapabilities, orgId: OrgId, opts?: BulkRetrieveOpts | IngestSkipReport): AsyncIterable<RawMember>;
51
+ //# sourceMappingURL=bulk-retrieve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bulk-retrieve.d.ts","sourceRoot":"","sources":["../../../src/extractors/live-org/bulk-retrieve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAazD;;;wCAGwC;AACxC,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,CAAC,CAAC;CACzE;AAED,MAAM,MAAM,YAAY,GACpB,qBAAqB,GACrB,WAAW,GACX,YAAY,GACZ,SAAS,GACT,SAAS,CAAC;AAgBd;;;4EAG4E;AAC5E,wBAAuB,mBAAmB,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAIjG;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAuB,2BAA2B,CAAC,CAAC,EAClD,GAAG,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAChC,aAAa,CAAC,CAAC,CAAC,CA+ClB;AAuND,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B;;;sDAGkD;IAClD,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC1B;AAED,wBAAuB,YAAY,CACjC,IAAI,EAAE,GAAG,EACT,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,KAAK,EACZ,IAAI,GAAE,gBAAgB,GAAG,gBAAqB,GAC7C,aAAa,CAAC,SAAS,CAAC,CAiH1B"}
@@ -0,0 +1,416 @@
1
+ import { discoverMetadataTypes } from "./discovery.js";
2
+ import { buildDispatchTable } from "./dispatch.js";
3
+ import { iterApex } from "./extractors/apex.js";
4
+ import { iterFlow } from "./extractors/flow.js";
5
+ import { iterGenericMetadata } from "./extractors/generic-metadata.js";
6
+ import { iterIntegration } from "./extractors/integration.js";
7
+ import { iterLwc } from "./extractors/lwc.js";
8
+ import { iterObject } from "./extractors/object.js";
9
+ import { iterOmnistudio } from "./extractors/omnistudio.js";
10
+ import { iterSecurity } from "./extractors/security.js";
11
+ import { iterVlocity } from "./extractors/vlocity.js";
12
+ /** Best-effort classification so the end-of-run recommendation is targeted. */
13
+ function classifySkip(msg) {
14
+ const m = msg.toUpperCase();
15
+ if (m.includes("INSUFFICIENT_ACCESS") || m.includes("INSUFFICIENT") || m.includes("FORBIDDEN")) {
16
+ return "insufficient_access";
17
+ }
18
+ if (m.includes("NOT_FOUND") || m.includes("INVALID_TYPE"))
19
+ return "not_found";
20
+ if (m.includes("REQUEST_LIMIT_EXCEEDED") || m.includes("RATE_LIMIT"))
21
+ return "rate_limit";
22
+ if (m.includes("ECONNREFUSED") || m.includes("ENOTFOUND") || m.includes("ETIMEDOUT")) {
23
+ return "network";
24
+ }
25
+ return "unknown";
26
+ }
27
+ /** Naive sequential merge — predictable order, simpler back-pressure semantics.
28
+ * Kept for back-compat and tests; production ingest uses
29
+ * {@link mergeAsyncIterablesParallel} so different pools (Tooling/Metadata/
30
+ * Data) can saturate simultaneously instead of one extractor at a time. */
31
+ export async function* mergeAsyncIterables(...iters) {
32
+ for (const it of iters) {
33
+ for await (const v of it)
34
+ yield v;
35
+ }
36
+ }
37
+ /**
38
+ * Sliding-window parallel merge. Keeps exactly `concurrency` iterators
39
+ * live at any moment — when one completes (done:true), the next queued
40
+ * iterator is started in its slot. Within the window, iterators race via
41
+ * `Promise.race` for max throughput.
42
+ *
43
+ * Replaces the previous wave-based merger, which had a synchronisation
44
+ * barrier at each wave boundary: all 6 iterators in a wave had to finish
45
+ * before any of wave 2 could start. One hung source (very common for
46
+ * `generic:Layout` on managed-package-heavy orgs) parked the whole wave
47
+ * indefinitely with zero observable progress.
48
+ *
49
+ * Default concurrency = 8: enough to saturate the three rate-limit pools
50
+ * (Tooling 5 / Metadata 5 / Data 10) with headroom for one slot to be
51
+ * blocked on a slow source without starving the others. Override via
52
+ * `SFGRAPH_SOURCE_CONCURRENCY=<n>` (1 = strictly sequential).
53
+ *
54
+ * Output ordering is non-deterministic. `live-ingest`'s processOne is
55
+ * order-independent (idempotent per-record upserts), so this is safe.
56
+ */
57
+ export async function* mergeAsyncIterablesParallel(...iters) {
58
+ const envConcurrency = Number.parseInt(process.env.SFGRAPH_SOURCE_CONCURRENCY ?? "", 10);
59
+ // Raised 8 -> 12: a wider window lets Tooling-backed sources (apex, lwc)
60
+ // start immediately rather than wait behind the cohort of metadata-pool
61
+ // sources (security, flow, integration, generic:Layout/Workflow/etc.)
62
+ // which spend most of their time queued in Bottleneck. Per-pool concurrency
63
+ // still caps total HTTP fan-out, so this only opens up parallelism that
64
+ // was being throttled at the wrong layer.
65
+ const concurrency = Number.isFinite(envConcurrency) && envConcurrency > 0 ? envConcurrency : 12;
66
+ const iterators = iters.map((it) => it[Symbol.asyncIterator]());
67
+ const pending = new Map();
68
+ let nextIterIdx = 0;
69
+ const advance = (idx) => {
70
+ const it = iterators[idx];
71
+ if (!it)
72
+ return;
73
+ pending.set(idx, it.next().then((result) => ({ idx, result }),
74
+ // Per-iter rejections are handled by the failSoft() wrapper one
75
+ // level up. Anything that reaches here is unexpected; mark the
76
+ // iter done so the outer race makes forward progress.
77
+ () => ({
78
+ idx,
79
+ result: { value: undefined, done: true },
80
+ })));
81
+ };
82
+ // Prime the window with the first `concurrency` iterators.
83
+ while (pending.size < concurrency && nextIterIdx < iterators.length) {
84
+ advance(nextIterIdx++);
85
+ }
86
+ while (pending.size > 0) {
87
+ const { idx, result } = await Promise.race(pending.values());
88
+ if (result.done) {
89
+ pending.delete(idx);
90
+ // A slot opened — start the next queued iterator immediately. A slow
91
+ // / hung source still holds its slot, but its peers keep advancing.
92
+ if (nextIterIdx < iterators.length)
93
+ advance(nextIterIdx++);
94
+ continue;
95
+ }
96
+ yield result.value;
97
+ advance(idx);
98
+ }
99
+ }
100
+ /** Wrap an iterable so a thrown error is captured + the stream ends cleanly
101
+ * instead of aborting the whole ingest. The error is recorded into a
102
+ * shared skip report (consumed at end-of-run) and a compact ✗ line is
103
+ * printed so the user sees something happened without the full error
104
+ * message scrolling past during the run. */
105
+ async function* failSoft(label, factory, onError) {
106
+ const debug = process.env.SFGRAPH_DEBUG_INGEST === "1";
107
+ const startedAt = Date.now();
108
+ let count = 0;
109
+ let started = false;
110
+ // Watchdog at 5 minutes. Per-call withTimeouts (120s) catch hung HTTP;
111
+ // this catches the case where every call ALSO times out and the source
112
+ // never yields a single record. 5 min = ~2.5× the per-call budget,
113
+ // generous for queued-but-healthy, tight enough that a genuinely
114
+ // wedged source surfaces fast and doesn't park its sliding-window slot
115
+ // for half an hour. With the no-retry-on-timeout fix in
116
+ // readMetadataBatchAdaptive, the inner loop also can't balloon, so 5
117
+ // minutes is a real ceiling now.
118
+ const inactivityMs = 5 * 60_000;
119
+ // Tighter deadline for the FIRST record. The 5-min inactivity watchdog
120
+ // is for healthy-but-slow sources that have already started yielding;
121
+ // a source that hasn't yielded a single record in 90s is almost
122
+ // certainly parked on a pre-yield setup call (metadata.list, describe,
123
+ // EntityDefinition pagination) and won't recover. Killing it fast frees
124
+ // the sliding-window slot for queued peers.
125
+ const firstYieldMs = 90_000;
126
+ try {
127
+ if (debug)
128
+ console.log(`ingest: [debug] ${label} ← invoked at ${startedAt}`);
129
+ const it = factory()[Symbol.asyncIterator]();
130
+ while (true) {
131
+ const remainingFirstYield = started
132
+ ? Number.POSITIVE_INFINITY
133
+ : startedAt + firstYieldMs - Date.now();
134
+ const watchdogMs = Math.min(inactivityMs, remainingFirstYield);
135
+ if (watchdogMs <= 0) {
136
+ throw new Error(`source watchdog (first-yield ${firstYieldMs / 1000}s): no record yielded — pre-yield setup wedged`);
137
+ }
138
+ const watchdogLabel = started
139
+ ? `${inactivityMs / 60_000}m inactivity`
140
+ : `first-yield ${firstYieldMs / 1000}s`;
141
+ const next = await Promise.race([
142
+ it.next(),
143
+ new Promise((_resolve, reject) => {
144
+ setTimeout(() => reject(new Error(`source watchdog (${watchdogLabel}): no record yielded — pool jammed or call wedged`)), watchdogMs);
145
+ }),
146
+ ]);
147
+ if (next.done)
148
+ break;
149
+ if (!started) {
150
+ started = true;
151
+ console.log(`ingest: ${label} → starting…`);
152
+ }
153
+ count += 1;
154
+ yield next.value;
155
+ }
156
+ if (started) {
157
+ console.log(`ingest: ${label} ✓ ${count} records (${Date.now() - startedAt}ms)`);
158
+ }
159
+ else {
160
+ console.log(`ingest: ${label} ✓ 0 records (${Date.now() - startedAt}ms)`);
161
+ }
162
+ }
163
+ catch (e) {
164
+ const err = e;
165
+ onError?.(label, err);
166
+ console.log(`ingest: ${label} ✗ skipped (${err?.message?.slice(0, 80) ?? "unknown"})`);
167
+ if (debug) {
168
+ console.error(`ingest: [debug] ${label} failure detail: ${err?.message ?? String(err)}`);
169
+ if (err?.stack)
170
+ console.error(err.stack);
171
+ }
172
+ }
173
+ finally {
174
+ if (debug) {
175
+ console.log(`ingest: [debug] ${label} → finalised (${count} records, ${Date.now() - startedAt}ms)`);
176
+ }
177
+ }
178
+ }
179
+ /** Typed-extractor ownership map: which XML type names a dedicated extractor covers. */
180
+ const APEX_TYPES = new Set(["ApexClass", "ApexTrigger"]);
181
+ const LWC_TYPES = new Set(["LightningComponentBundle"]);
182
+ const FLOW_TYPES = new Set(["Flow"]);
183
+ const OBJECT_TYPES = new Set(["CustomObject"]);
184
+ const SECURITY_TYPES = new Set(["Profile", "PermissionSet", "SharingRules"]);
185
+ const INTEGRATION_TYPES = new Set(["NamedCredential", "ExternalServiceRegistration"]);
186
+ /**
187
+ * High-value generic metadata types we'll route to `iterGenericMetadata` by
188
+ * default. Salesforce's `describeMetadata()` returns 400+ types on modern
189
+ * orgs — most of them platform internals, industry-cloud scaffolding,
190
+ * Setup-internal stuff that returns 0 records or has no graph value AND
191
+ * adds queued HTTP requests to Bottleneck (each one a closure + socket
192
+ * state). Scheduling all 400 at once was causing silent process exits
193
+ * post-object-phase on the user's cleanDemoOrg — too many pending
194
+ * metadata.list calls in the metadata pool's queue.
195
+ *
196
+ * This list is curated for "does user code typically reference this?" /
197
+ * "does it carry graph-relevant edges?". Add types to it as you discover
198
+ * value in them. Override via `SFGRAPH_INCLUDE_ALL_GENERIC=1` to invoke
199
+ * every discovered type (useful for industry-cloud-specific ingest).
200
+ */
201
+ const GENERIC_TYPE_WHITELIST = new Set([
202
+ // UI / pages — typically referenced from FlexiPages / Lightning App Builder
203
+ "FlexiPage",
204
+ "Layout",
205
+ "QuickAction",
206
+ "CustomTab",
207
+ "CustomApplication",
208
+ "HomePageLayout",
209
+ "CustomPageWebLink",
210
+ "WebLink",
211
+ // Apex / VF surfaces routed here (not in core extractors)
212
+ "ApexPage",
213
+ "ApexComponent",
214
+ "AuraDefinitionBundle",
215
+ // Process automation
216
+ "Workflow",
217
+ "ApprovalProcess",
218
+ "AssignmentRules",
219
+ "AutoResponseRules",
220
+ "EscalationRules",
221
+ "FlowDefinition",
222
+ // Data quality
223
+ "DuplicateRule",
224
+ "MatchingRule",
225
+ // Custom Metadata + labels
226
+ "CustomMetadata",
227
+ "CustomLabels",
228
+ "CustomLabel",
229
+ "GlobalValueSet",
230
+ "StandardValueSet",
231
+ "CustomPermission",
232
+ // Custom Notification + Settings
233
+ "CustomNotificationType",
234
+ "CustomSite",
235
+ // Reports / Dashboards / Analytics
236
+ "Report",
237
+ "Dashboard",
238
+ "ReportType",
239
+ // Networks / Communities
240
+ "Network",
241
+ "NetworkBranding",
242
+ "NavigationMenu",
243
+ "Community",
244
+ "ExperienceBundle",
245
+ "DigitalExperienceBundle",
246
+ // Identity / Access
247
+ // NOTE: Profile, PermissionSet, SharingRules intentionally NOT here —
248
+ // they route to iterSecurity (see SECURITY_TYPES + dispatch below).
249
+ // NamedCredential routes to iterIntegration. Listing them here would be
250
+ // dead today (the dispatch checks SECURITY/INTEGRATION_TYPES first) and
251
+ // a trap if dispatch ordering ever changes.
252
+ "ConnectedApp",
253
+ "PermissionSetGroup",
254
+ "MutingPermissionSet",
255
+ "ProfilePasswordPolicy",
256
+ "ProfileSessionSetting",
257
+ "SamlSsoConfig",
258
+ // Sharing
259
+ "SharingSet",
260
+ "GroupMember",
261
+ // Platform Events / CDC
262
+ "PlatformEventChannel",
263
+ "PlatformEventChannelMember",
264
+ "PlatformEventSubscriberConfig",
265
+ // Integrations
266
+ "RemoteSiteSetting",
267
+ "CspTrustedSite",
268
+ // NamedCredential routes to iterIntegration (see INTEGRATION_TYPES).
269
+ "ExternalCredential",
270
+ // Email
271
+ "EmailTemplate",
272
+ "EmailServicesFunction",
273
+ // Misc commonly-used
274
+ "StaticResource",
275
+ "LightningComponentBundle",
276
+ "LightningMessageChannel",
277
+ "RecordActionDeployment",
278
+ "PathAssistant",
279
+ "GenAiPromptTemplate",
280
+ "GenAiFunction",
281
+ "GenAiPlugin",
282
+ // Bot / Einstein
283
+ "Bot",
284
+ "GenAiPlannerBundle",
285
+ // OmniStudio on-Core — exposed via Metadata API, not SObject SOQL.
286
+ // The on-core SObject (OmniProcess) is the storage backing but real
287
+ // metadata access goes through metadata.list/read of these type names.
288
+ "OmniScript",
289
+ "OmniIntegrationProcedure",
290
+ "OmniDataTransform",
291
+ "OmniUiCard",
292
+ "OmniProcess",
293
+ ]);
294
+ function shouldRouteGeneric(type) {
295
+ if (process.env.SFGRAPH_INCLUDE_ALL_GENERIC === "1")
296
+ return true;
297
+ return GENERIC_TYPE_WHITELIST.has(type);
298
+ }
299
+ export async function* bulkRetrieve(conn, caps, orgId, opts = {}) {
300
+ // Back-compat: callers used to pass IngestSkipReport directly as the 4th arg.
301
+ // Accept both shapes.
302
+ const normalized = opts && typeof opts === "object" && "skips" in opts
303
+ ? { skipReport: opts }
304
+ : opts;
305
+ const skipReport = normalized.skipReport;
306
+ const onlyLabels = normalized.onlyLabels;
307
+ // Discover the type list this org actually supports. If discovery fails or
308
+ // returns nothing usable, fall back to invoking every known extractor —
309
+ // preserves Commit-A behavior for mocks that don't implement describe.
310
+ let types = [];
311
+ try {
312
+ types = await discoverMetadataTypes(conn);
313
+ }
314
+ catch {
315
+ types = [];
316
+ }
317
+ const sources = [];
318
+ const invoked = new Set(); // source-key dedup
319
+ const onSkip = skipReport
320
+ ? (label, err) => {
321
+ const reason = err?.message ?? String(err);
322
+ skipReport.skips.push({ label, reason, category: classifySkip(reason) });
323
+ }
324
+ : undefined;
325
+ const invoke = (key, factory) => {
326
+ if (invoked.has(key))
327
+ return;
328
+ invoked.add(key);
329
+ // --only filter: when onlyLabels is set, skip any source not in the set.
330
+ // Filter applies to the exact source key ('apex', 'generic:Profile', etc.)
331
+ // for precise targeting of retry/partial-refresh flows.
332
+ if (onlyLabels && !onlyLabels.has(key))
333
+ return;
334
+ // Each source is wrapped fail-soft so one failing type (e.g. a metadata
335
+ // category the user's profile lacks access to) doesn't abort the whole
336
+ // ingest. The wrapper records the source label + error into skipReport
337
+ // (consumed at end of run for a consolidated summary) and ends the
338
+ // stream cleanly.
339
+ sources.push(failSoft(key, factory, onSkip));
340
+ };
341
+ if (types.length === 0) {
342
+ // Discovery unavailable: invoke every dedicated extractor once.
343
+ invoke("apex", () => iterApex(conn));
344
+ invoke("lwc", () => iterLwc(conn));
345
+ invoke("flow", () => iterFlow(conn));
346
+ invoke("object", () => iterObject(conn));
347
+ invoke("security", () => iterSecurity(conn));
348
+ invoke("integration", () => iterIntegration(conn));
349
+ }
350
+ else {
351
+ const dispatch = buildDispatchTable(types, caps);
352
+ let routedGeneric = 0;
353
+ let skippedGeneric = 0;
354
+ for (const [type, route] of dispatch.entries()) {
355
+ switch (route.strategy) {
356
+ case "toolingSoql":
357
+ if (APEX_TYPES.has(type))
358
+ invoke("apex", () => iterApex(conn));
359
+ else if (LWC_TYPES.has(type))
360
+ invoke("lwc", () => iterLwc(conn));
361
+ else if (shouldRouteGeneric(type)) {
362
+ routedGeneric += 1;
363
+ invoke(`generic:${type}`, () => iterGenericMetadata(conn, String(orgId), type));
364
+ }
365
+ else {
366
+ skippedGeneric += 1;
367
+ }
368
+ break;
369
+ case "metadataReadList":
370
+ if (FLOW_TYPES.has(type))
371
+ invoke("flow", () => iterFlow(conn));
372
+ else if (OBJECT_TYPES.has(type))
373
+ invoke("object", () => iterObject(conn));
374
+ else if (SECURITY_TYPES.has(type))
375
+ invoke("security", () => iterSecurity(conn));
376
+ else if (INTEGRATION_TYPES.has(type))
377
+ invoke("integration", () => iterIntegration(conn));
378
+ else if (shouldRouteGeneric(type)) {
379
+ routedGeneric += 1;
380
+ invoke(`generic:${type}`, () => iterGenericMetadata(conn, String(orgId), type));
381
+ }
382
+ else {
383
+ skippedGeneric += 1;
384
+ }
385
+ break;
386
+ case "vlocityRunner":
387
+ // Single invocation handled below.
388
+ break;
389
+ case "sobjectSoql":
390
+ // Reserved for future CMDT/etc. — none routed here in Commit B.
391
+ break;
392
+ case "genericOpaque":
393
+ // No-op for now: we don't pollute the graph with sentinel-only nodes.
394
+ break;
395
+ }
396
+ }
397
+ }
398
+ if (caps.vlocityLegacy) {
399
+ invoke("vlocity", () => iterVlocity(conn, caps, String(orgId)));
400
+ }
401
+ if (caps.omnistudioOncore) {
402
+ invoke("omnistudio", () => iterOmnistudio(conn));
403
+ }
404
+ // Log the generic-type filter summary once at fan-out start — makes the
405
+ // skip-vs-route decision visible without --debug.
406
+ if (types.length > 0) {
407
+ console.log(`ingest: dispatch routed=${sources.length} sources (${types.length} discovered metadata types; generic-type whitelist active — set SFGRAPH_INCLUDE_ALL_GENERIC=1 to invoke all)`);
408
+ }
409
+ // Parallel by default: fan out across all source iterators so different
410
+ // pools (Tooling/Metadata/Data) saturate simultaneously. Escape hatch:
411
+ // SFGRAPH_SEQUENTIAL_SOURCES=1 falls back to the legacy serial merge for
412
+ // anyone who hits an ordering bug or wants the old log layout.
413
+ const sequential = process.env.SFGRAPH_SEQUENTIAL_SOURCES === "1";
414
+ yield* sequential ? mergeAsyncIterables(...sources) : mergeAsyncIterablesParallel(...sources);
415
+ }
416
+ //# sourceMappingURL=bulk-retrieve.js.map