@ryanstark24/sfgraph-core 1.1.6 → 1.2.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 (195) hide show
  1. package/dist/analyze/__tests__/find-nodes.test.d.ts +2 -0
  2. package/dist/analyze/__tests__/find-nodes.test.d.ts.map +1 -0
  3. package/dist/analyze/__tests__/find-nodes.test.js +129 -0
  4. package/dist/analyze/__tests__/find-nodes.test.js.map +1 -0
  5. package/dist/analyze/__tests__/findings.test.d.ts +2 -0
  6. package/dist/analyze/__tests__/findings.test.d.ts.map +1 -0
  7. package/dist/analyze/__tests__/findings.test.js +90 -0
  8. package/dist/analyze/__tests__/findings.test.js.map +1 -0
  9. package/dist/analyze/find-nodes.d.ts +38 -0
  10. package/dist/analyze/find-nodes.d.ts.map +1 -0
  11. package/dist/analyze/find-nodes.js +51 -0
  12. package/dist/analyze/find-nodes.js.map +1 -0
  13. package/dist/analyze/findings.d.ts +86 -0
  14. package/dist/analyze/findings.d.ts.map +1 -0
  15. package/dist/analyze/findings.js +143 -0
  16. package/dist/analyze/findings.js.map +1 -0
  17. package/dist/analyze/index.d.ts +2 -0
  18. package/dist/analyze/index.d.ts.map +1 -1
  19. package/dist/analyze/index.js +2 -0
  20. package/dist/analyze/index.js.map +1 -1
  21. package/dist/analyze/test-coverage.d.ts +0 -2
  22. package/dist/analyze/test-coverage.d.ts.map +1 -1
  23. package/dist/analyze/test-coverage.js +0 -10
  24. package/dist/analyze/test-coverage.js.map +1 -1
  25. package/dist/domain/edge-fact.d.ts +25 -0
  26. package/dist/domain/edge-fact.d.ts.map +1 -1
  27. package/dist/domain/rel-types.d.ts +4 -0
  28. package/dist/domain/rel-types.d.ts.map +1 -1
  29. package/dist/domain/rel-types.js +7 -0
  30. package/dist/domain/rel-types.js.map +1 -1
  31. package/dist/embedding/__tests__/embed.test.d.ts +2 -0
  32. package/dist/embedding/__tests__/embed.test.d.ts.map +1 -0
  33. package/dist/embedding/__tests__/embed.test.js +72 -0
  34. package/dist/embedding/__tests__/embed.test.js.map +1 -0
  35. package/dist/extractors/live-org/__tests__/liveness.test.d.ts +2 -0
  36. package/dist/extractors/live-org/__tests__/liveness.test.d.ts.map +1 -0
  37. package/dist/extractors/live-org/__tests__/liveness.test.js +148 -0
  38. package/dist/extractors/live-org/__tests__/liveness.test.js.map +1 -0
  39. package/dist/extractors/live-org/__tests__/mcd-baseline.test.d.ts +2 -0
  40. package/dist/extractors/live-org/__tests__/mcd-baseline.test.d.ts.map +1 -0
  41. package/dist/extractors/live-org/__tests__/mcd-baseline.test.js +174 -0
  42. package/dist/extractors/live-org/__tests__/mcd-baseline.test.js.map +1 -0
  43. package/dist/extractors/live-org/__tests__/metadata-read-batch.test.d.ts +2 -0
  44. package/dist/extractors/live-org/__tests__/metadata-read-batch.test.d.ts.map +1 -0
  45. package/dist/extractors/live-org/__tests__/metadata-read-batch.test.js +75 -0
  46. package/dist/extractors/live-org/__tests__/metadata-read-batch.test.js.map +1 -0
  47. package/dist/extractors/live-org/__tests__/omnistudio-retrieve.test.d.ts +2 -0
  48. package/dist/extractors/live-org/__tests__/omnistudio-retrieve.test.d.ts.map +1 -0
  49. package/dist/extractors/live-org/__tests__/omnistudio-retrieve.test.js +135 -0
  50. package/dist/extractors/live-org/__tests__/omnistudio-retrieve.test.js.map +1 -0
  51. package/dist/extractors/live-org/__tests__/soql-rebatch.test.d.ts +2 -0
  52. package/dist/extractors/live-org/__tests__/soql-rebatch.test.d.ts.map +1 -0
  53. package/dist/extractors/live-org/__tests__/soql-rebatch.test.js +118 -0
  54. package/dist/extractors/live-org/__tests__/soql-rebatch.test.js.map +1 -0
  55. package/dist/extractors/live-org/__tests__/vlocity-runner.test.js +27 -0
  56. package/dist/extractors/live-org/__tests__/vlocity-runner.test.js.map +1 -1
  57. package/dist/extractors/live-org/bulk-retrieve.d.ts +7 -0
  58. package/dist/extractors/live-org/bulk-retrieve.d.ts.map +1 -1
  59. package/dist/extractors/live-org/bulk-retrieve.js +10 -1
  60. package/dist/extractors/live-org/bulk-retrieve.js.map +1 -1
  61. package/dist/extractors/live-org/extractors/mcd-baseline.d.ts +60 -0
  62. package/dist/extractors/live-org/extractors/mcd-baseline.d.ts.map +1 -0
  63. package/dist/extractors/live-org/extractors/mcd-baseline.js +120 -0
  64. package/dist/extractors/live-org/extractors/mcd-baseline.js.map +1 -0
  65. package/dist/extractors/live-org/extractors/omnistudio-retrieve.d.ts +23 -0
  66. package/dist/extractors/live-org/extractors/omnistudio-retrieve.d.ts.map +1 -0
  67. package/dist/extractors/live-org/extractors/omnistudio-retrieve.js +172 -0
  68. package/dist/extractors/live-org/extractors/omnistudio-retrieve.js.map +1 -0
  69. package/dist/extractors/live-org/rate-limit.d.ts +57 -0
  70. package/dist/extractors/live-org/rate-limit.d.ts.map +1 -1
  71. package/dist/extractors/live-org/rate-limit.js +93 -8
  72. package/dist/extractors/live-org/rate-limit.js.map +1 -1
  73. package/dist/extractors/live-org/vlocity/runner.d.ts +1 -1
  74. package/dist/extractors/live-org/vlocity/runner.d.ts.map +1 -1
  75. package/dist/extractors/live-org/vlocity/runner.js +20 -9
  76. package/dist/extractors/live-org/vlocity/runner.js.map +1 -1
  77. package/dist/index.d.ts +1 -0
  78. package/dist/index.d.ts.map +1 -1
  79. package/dist/index.js +1 -0
  80. package/dist/index.js.map +1 -1
  81. package/dist/ingest/__tests__/multi-org-orchestrator.test.js +3 -0
  82. package/dist/ingest/__tests__/multi-org-orchestrator.test.js.map +1 -1
  83. package/dist/ingest/live-ingest.d.ts +70 -1
  84. package/dist/ingest/live-ingest.d.ts.map +1 -1
  85. package/dist/ingest/live-ingest.js +109 -7
  86. package/dist/ingest/live-ingest.js.map +1 -1
  87. package/dist/parsers/__tests__/edge-provenance.test.d.ts +2 -0
  88. package/dist/parsers/__tests__/edge-provenance.test.d.ts.map +1 -0
  89. package/dist/parsers/__tests__/edge-provenance.test.js +44 -0
  90. package/dist/parsers/__tests__/edge-provenance.test.js.map +1 -0
  91. package/dist/parsers/__tests__/lwc-bindings.test.js +72 -0
  92. package/dist/parsers/__tests__/lwc-bindings.test.js.map +1 -1
  93. package/dist/parsers/__tests__/mcd-gap-fills.test.d.ts +2 -0
  94. package/dist/parsers/__tests__/mcd-gap-fills.test.d.ts.map +1 -0
  95. package/dist/parsers/__tests__/mcd-gap-fills.test.js +75 -0
  96. package/dist/parsers/__tests__/mcd-gap-fills.test.js.map +1 -0
  97. package/dist/parsers/__tests__/omnistudio-overlap.test.d.ts +2 -0
  98. package/dist/parsers/__tests__/omnistudio-overlap.test.d.ts.map +1 -0
  99. package/dist/parsers/__tests__/omnistudio-overlap.test.js +163 -0
  100. package/dist/parsers/__tests__/omnistudio-overlap.test.js.map +1 -0
  101. package/dist/parsers/__tests__/omnistudio.golden.test.js +51 -3
  102. package/dist/parsers/__tests__/omnistudio.golden.test.js.map +1 -1
  103. package/dist/parsers/__tests__/reflection-walker.test.d.ts +2 -0
  104. package/dist/parsers/__tests__/reflection-walker.test.d.ts.map +1 -0
  105. package/dist/parsers/__tests__/reflection-walker.test.js +162 -0
  106. package/dist/parsers/__tests__/reflection-walker.test.js.map +1 -0
  107. package/dist/parsers/__tests__/vlocity.golden.test.js +106 -5
  108. package/dist/parsers/__tests__/vlocity.golden.test.js.map +1 -1
  109. package/dist/parsers/apex/__tests__/is-test-attribute.test.d.ts +2 -0
  110. package/dist/parsers/apex/__tests__/is-test-attribute.test.d.ts.map +1 -0
  111. package/dist/parsers/apex/__tests__/is-test-attribute.test.js +54 -0
  112. package/dist/parsers/apex/__tests__/is-test-attribute.test.js.map +1 -0
  113. package/dist/parsers/apex/__tests__/regex-arg-count.test.d.ts +2 -0
  114. package/dist/parsers/apex/__tests__/regex-arg-count.test.d.ts.map +1 -0
  115. package/dist/parsers/apex/__tests__/regex-arg-count.test.js +82 -0
  116. package/dist/parsers/apex/__tests__/regex-arg-count.test.js.map +1 -0
  117. package/dist/parsers/apex/class.d.ts.map +1 -1
  118. package/dist/parsers/apex/class.js +103 -5
  119. package/dist/parsers/apex/class.js.map +1 -1
  120. package/dist/parsers/common.d.ts +4 -1
  121. package/dist/parsers/common.d.ts.map +1 -1
  122. package/dist/parsers/common.js +15 -2
  123. package/dist/parsers/common.js.map +1 -1
  124. package/dist/parsers/contract.d.ts +0 -2
  125. package/dist/parsers/contract.d.ts.map +1 -1
  126. package/dist/parsers/contract.js +0 -7
  127. package/dist/parsers/contract.js.map +1 -1
  128. package/dist/parsers/generic/reflection-walker.d.ts +90 -0
  129. package/dist/parsers/generic/reflection-walker.d.ts.map +1 -0
  130. package/dist/parsers/generic/reflection-walker.js +195 -0
  131. package/dist/parsers/generic/reflection-walker.js.map +1 -0
  132. package/dist/parsers/lwc/html-visitor.d.ts.map +1 -1
  133. package/dist/parsers/lwc/html-visitor.js +81 -3
  134. package/dist/parsers/lwc/html-visitor.js.map +1 -1
  135. package/dist/parsers/object/object.d.ts.map +1 -1
  136. package/dist/parsers/object/object.js +34 -0
  137. package/dist/parsers/object/object.js.map +1 -1
  138. package/dist/parsers/omnistudio/integration-procedure.d.ts.map +1 -1
  139. package/dist/parsers/omnistudio/integration-procedure.js +6 -3
  140. package/dist/parsers/omnistudio/integration-procedure.js.map +1 -1
  141. package/dist/parsers/omnistudio/overlap-detector.d.ts +50 -0
  142. package/dist/parsers/omnistudio/overlap-detector.d.ts.map +1 -0
  143. package/dist/parsers/omnistudio/overlap-detector.js +129 -0
  144. package/dist/parsers/omnistudio/overlap-detector.js.map +1 -0
  145. package/dist/parsers/omnistudio/process.d.ts.map +1 -1
  146. package/dist/parsers/omnistudio/process.js +17 -4
  147. package/dist/parsers/omnistudio/process.js.map +1 -1
  148. package/dist/parsers/omnistudio/ui-card.d.ts.map +1 -1
  149. package/dist/parsers/omnistudio/ui-card.js +6 -3
  150. package/dist/parsers/omnistudio/ui-card.js.map +1 -1
  151. package/dist/parsers/vlocity/common.d.ts +1 -2
  152. package/dist/parsers/vlocity/common.d.ts.map +1 -1
  153. package/dist/parsers/vlocity/common.js +0 -3
  154. package/dist/parsers/vlocity/common.js.map +1 -1
  155. package/dist/parsers/vlocity/integration-procedure.d.ts.map +1 -1
  156. package/dist/parsers/vlocity/integration-procedure.js +19 -3
  157. package/dist/parsers/vlocity/integration-procedure.js.map +1 -1
  158. package/dist/parsers/vlocity/omni-script.d.ts.map +1 -1
  159. package/dist/parsers/vlocity/omni-script.js +5 -2
  160. package/dist/parsers/vlocity/omni-script.js.map +1 -1
  161. package/dist/parsers/vlocity/vlocity-card.d.ts.map +1 -1
  162. package/dist/parsers/vlocity/vlocity-card.js +5 -2
  163. package/dist/parsers/vlocity/vlocity-card.js.map +1 -1
  164. package/dist/render/__tests__/sarif.test.d.ts +2 -0
  165. package/dist/render/__tests__/sarif.test.d.ts.map +1 -0
  166. package/dist/render/__tests__/sarif.test.js +129 -0
  167. package/dist/render/__tests__/sarif.test.js.map +1 -0
  168. package/dist/render/sarif.d.ts +94 -0
  169. package/dist/render/sarif.d.ts.map +1 -0
  170. package/dist/render/sarif.js +133 -0
  171. package/dist/render/sarif.js.map +1 -0
  172. package/dist/storage/__tests__/analysis-tables-migration.test.js +1 -1
  173. package/dist/storage/__tests__/migrations.test.js +4 -4
  174. package/dist/storage/__tests__/rename-stability.test.d.ts +2 -0
  175. package/dist/storage/__tests__/rename-stability.test.d.ts.map +1 -0
  176. package/dist/storage/__tests__/rename-stability.test.js +135 -0
  177. package/dist/storage/__tests__/rename-stability.test.js.map +1 -0
  178. package/dist/storage/index.d.ts +1 -0
  179. package/dist/storage/index.d.ts.map +1 -1
  180. package/dist/storage/index.js +1 -0
  181. package/dist/storage/index.js.map +1 -1
  182. package/dist/storage/interfaces.d.ts +3 -0
  183. package/dist/storage/interfaces.d.ts.map +1 -1
  184. package/dist/storage/sqlite/graph-store.d.ts +6 -0
  185. package/dist/storage/sqlite/graph-store.d.ts.map +1 -1
  186. package/dist/storage/sqlite/graph-store.js +8 -0
  187. package/dist/storage/sqlite/graph-store.js.map +1 -1
  188. package/dist/storage/sqlite/migrations.d.ts.map +1 -1
  189. package/dist/storage/sqlite/migrations.js +19 -0
  190. package/dist/storage/sqlite/migrations.js.map +1 -1
  191. package/dist/storage/sqlite/rename-stability.d.ts +94 -0
  192. package/dist/storage/sqlite/rename-stability.d.ts.map +1 -0
  193. package/dist/storage/sqlite/rename-stability.js +96 -0
  194. package/dist/storage/sqlite/rename-stability.js.map +1 -0
  195. package/package.json +4 -1
@@ -0,0 +1,75 @@
1
+ import { beforeEach, describe, expect, it } from "vitest";
2
+ import { METADATA_READ_BATCH_SIZE, limiter, readMetadataBatchAdaptive, } from "../rate-limit.js";
3
+ function items(n) {
4
+ return Array.from({ length: n }, (_, i) => ({ fullName: `Item${i}` }));
5
+ }
6
+ function recordingConn() {
7
+ const calls = [];
8
+ return {
9
+ calls,
10
+ conn: {
11
+ metadata: {
12
+ read: async (_type, names) => {
13
+ calls.push([...names]);
14
+ return names.map((n) => ({ fullName: n, payload: n }));
15
+ },
16
+ },
17
+ },
18
+ };
19
+ }
20
+ describe("W2-06: readMetadataBatchAdaptive pre-chunks to the Metadata API per-call limit", () => {
21
+ beforeEach(async () => {
22
+ await limiter.incrementReservoir(10_000);
23
+ });
24
+ it("sends a single call when items.length ≤ METADATA_READ_BATCH_SIZE", async () => {
25
+ const { conn, calls } = recordingConn();
26
+ const out = await readMetadataBatchAdaptive(conn, "Flow", items(METADATA_READ_BATCH_SIZE));
27
+ expect(calls.length).toBe(1);
28
+ expect(calls[0]?.length).toBe(METADATA_READ_BATCH_SIZE);
29
+ expect(out.length).toBe(METADATA_READ_BATCH_SIZE);
30
+ });
31
+ it("splits oversized inputs into ceil(n/limit) parallel sub-calls", async () => {
32
+ const { conn, calls } = recordingConn();
33
+ // 25 items @ limit 10 → 3 sub-calls (10, 10, 5)
34
+ const out = await readMetadataBatchAdaptive(conn, "Flow", items(25));
35
+ expect(out.length).toBe(25);
36
+ expect(calls.length).toBe(3);
37
+ expect(calls.map((c) => c.length).sort((a, b) => a - b)).toEqual([5, 10, 10]);
38
+ // Result order must match input order across all chunks.
39
+ expect(out.map((r) => r.fullName)).toEqual(Array.from({ length: 25 }, (_, i) => `Item${i}`));
40
+ });
41
+ it("METADATA_READ_BATCH_SIZE is 10 by default (the Salesforce documented per-call cap)", () => {
42
+ // Guard against accidental bumps to 25 — that value belongs to the
43
+ // Composite REST API, not the SOAP Metadata API path this helper uses.
44
+ expect(METADATA_READ_BATCH_SIZE).toBeLessThanOrEqual(10);
45
+ expect(METADATA_READ_BATCH_SIZE).toBeGreaterThanOrEqual(1);
46
+ });
47
+ it("on per-chunk failure, only the failing chunk bisects (healthy peers unaffected)", async () => {
48
+ const calls = [];
49
+ const conn = {
50
+ metadata: {
51
+ read: async (_type, names) => {
52
+ // Fail the SECOND chunk (Item10..Item19), succeed on others.
53
+ // The bisection will halve, eventually succeeding on smaller slices.
54
+ const failsChunk = names.length > 1 && names[0] === "Item10";
55
+ calls.push({ names: [...names], ok: !failsChunk });
56
+ if (failsChunk) {
57
+ throw new Error("simulated transient failure");
58
+ }
59
+ return names.map((n) => ({ fullName: n }));
60
+ },
61
+ },
62
+ };
63
+ const out = await readMetadataBatchAdaptive(conn, "Flow", items(25));
64
+ expect(out.length).toBe(25);
65
+ // Verify chunks 1 (Item0..Item9) and 3 (Item20..Item24) were single-call,
66
+ // while chunk 2 (Item10..Item19) bisected at least once.
67
+ const chunk1Calls = calls.filter((c) => c.names[0] === "Item0");
68
+ const chunk3Calls = calls.filter((c) => c.names[0] === "Item20");
69
+ const chunk2Calls = calls.filter((c) => c.names[0]?.startsWith("Item1") && c.names[0] !== "Item20");
70
+ expect(chunk1Calls.length).toBe(1);
71
+ expect(chunk3Calls.length).toBe(1);
72
+ expect(chunk2Calls.length).toBeGreaterThan(1);
73
+ });
74
+ });
75
+ //# sourceMappingURL=metadata-read-batch.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-read-batch.test.js","sourceRoot":"","sources":["../../../../src/extractors/live-org/__tests__/metadata-read-batch.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=omnistudio-retrieve.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"omnistudio-retrieve.test.d.ts","sourceRoot":"","sources":["../../../../src/extractors/live-org/__tests__/omnistudio-retrieve.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,135 @@
1
+ import { Buffer } from "node:buffer";
2
+ import JSZip from "jszip";
3
+ import { describe, expect, it } from "vitest";
4
+ import { iterOmnistudioRetrieve, shouldSkipForQuota, } from "../extractors/omnistudio-retrieve.js";
5
+ async function buildFixtureZip(files) {
6
+ const zip = new JSZip();
7
+ for (const [path, content] of Object.entries(files)) {
8
+ zip.file(path, content);
9
+ }
10
+ const buf = await zip.generateAsync({ type: "nodebuffer" });
11
+ return buf.toString("base64");
12
+ }
13
+ function mockConn(behaviors) {
14
+ const requested = [];
15
+ return {
16
+ _sforceLimitInfo: behaviors.limitInfo,
17
+ requested,
18
+ metadata: {
19
+ retrieve(req) {
20
+ const type = req.unpackaged.types[0]?.name ?? "";
21
+ requested.push(type);
22
+ return {
23
+ complete: async () => {
24
+ if (behaviors.failTypes?.has(type)) {
25
+ throw new Error(`simulated retrieve failure for ${type}`);
26
+ }
27
+ const zipFile = behaviors.zipByType.get(type);
28
+ if (!zipFile)
29
+ return { status: "Succeeded", done: true, zipFile: undefined };
30
+ return { status: "Succeeded", done: true, zipFile };
31
+ },
32
+ };
33
+ },
34
+ },
35
+ };
36
+ }
37
+ async function collect(it) {
38
+ const out = [];
39
+ for await (const v of it)
40
+ out.push(v);
41
+ return out;
42
+ }
43
+ describe("W2-02: shouldSkipForQuota", () => {
44
+ it("returns false when limit info is null", () => {
45
+ expect(shouldSkipForQuota(null)).toBe(false);
46
+ });
47
+ it("returns false below 90% utilization", () => {
48
+ expect(shouldSkipForQuota({ current: 8000, limit: 10000 })).toBe(false);
49
+ });
50
+ it("returns true at exactly 90%", () => {
51
+ expect(shouldSkipForQuota({ current: 9000, limit: 10000 })).toBe(true);
52
+ });
53
+ it("returns true above 90%", () => {
54
+ expect(shouldSkipForQuota({ current: 9500, limit: 10000 })).toBe(true);
55
+ });
56
+ });
57
+ describe("W2-02: iterOmnistudioRetrieve", () => {
58
+ it("yields one RawMember per extracted file across all three types", async () => {
59
+ const uiCardZip = await buildFixtureZip({
60
+ "unpackaged/omniUiCards/AccountCard.omniUiCard": "<OmniUiCard><name>AccountCard</name></OmniUiCard>",
61
+ "unpackaged/package.xml": "<Package/>",
62
+ });
63
+ const ipZip = await buildFixtureZip({
64
+ "unpackaged/omniIntegrationProcedures/GetAccount.omniIntegrationProcedure": "<OmniIntegrationProcedure><name>GetAccount</name></OmniIntegrationProcedure>",
65
+ });
66
+ const dtZip = await buildFixtureZip({
67
+ "unpackaged/omniDataTransforms/AccountToContact.omniDataTransform": "<OmniDataTransform><name>AccountToContact</name></OmniDataTransform>",
68
+ });
69
+ const conn = mockConn({
70
+ zipByType: new Map([
71
+ ["OmniUiCard", uiCardZip],
72
+ ["OmniIntegrationProcedure", ipZip],
73
+ ["OmniDataTransform", dtZip],
74
+ ]),
75
+ });
76
+ const out = await collect(iterOmnistudioRetrieve(conn, "00Dxx0000000001", { apiVersion: "60.0" }));
77
+ expect(out.length).toBe(3);
78
+ const types = out.map((r) => r.ref.memberType).sort();
79
+ expect(types).toEqual(["OmniDataTransform", "OmniIntegrationProcedure", "OmniUiCard"]);
80
+ const names = out.map((r) => r.ref.memberName).sort();
81
+ expect(names).toEqual(["AccountCard", "AccountToContact", "GetAccount"]);
82
+ // Package manifest itself is filtered out
83
+ expect(out.some((r) => r.content.includes("<Package"))).toBe(false);
84
+ });
85
+ it("skips entirely when org-wide quota is above 90%", async () => {
86
+ const errors = [];
87
+ const conn = mockConn({
88
+ zipByType: new Map(),
89
+ limitInfo: "api-usage=9500/10000",
90
+ });
91
+ const out = await collect(iterOmnistudioRetrieve(conn, "00Dxx0000000001", {
92
+ apiVersion: "60.0",
93
+ onError: (label, err) => errors.push({ label, message: err.message }),
94
+ }));
95
+ expect(out.length).toBe(0);
96
+ expect(errors[0]?.label).toBe("omnistudio-retrieve:quota-guard");
97
+ expect(errors[0]?.message).toMatch(/9500\/10000/);
98
+ // No retrieve calls attempted
99
+ expect(conn.requested.length).toBe(0);
100
+ });
101
+ it("surfaces per-type retrieve failures via onError; continues to other types", async () => {
102
+ const errors = [];
103
+ const successZip = await buildFixtureZip({
104
+ "unpackaged/omniDataTransforms/X.omniDataTransform": "<X/>",
105
+ });
106
+ const conn = mockConn({
107
+ zipByType: new Map([["OmniDataTransform", successZip]]),
108
+ failTypes: new Set(["OmniUiCard", "OmniIntegrationProcedure"]),
109
+ });
110
+ const out = await collect(iterOmnistudioRetrieve(conn, "00Dxx0000000001", {
111
+ apiVersion: "60.0",
112
+ onError: (label, err) => errors.push({ label, message: err.message }),
113
+ }));
114
+ expect(errors.length).toBe(2);
115
+ expect(errors.map((e) => e.label).sort()).toEqual([
116
+ "omnistudio-retrieve:OmniIntegrationProcedure",
117
+ "omnistudio-retrieve:OmniUiCard",
118
+ ]);
119
+ // OmniDataTransform still yields its one member
120
+ expect(out.length).toBe(1);
121
+ expect(out[0]?.ref.memberType).toBe("OmniDataTransform");
122
+ });
123
+ it("strips the file extension from the memberName", async () => {
124
+ const zip = await buildFixtureZip({
125
+ "unpackaged/omniUiCards/Card1.omniUiCard": "<X/>",
126
+ });
127
+ const conn = mockConn({
128
+ zipByType: new Map([["OmniUiCard", zip]]),
129
+ });
130
+ const out = await collect(iterOmnistudioRetrieve(conn, "00Dxx0000000001", { apiVersion: "60.0" }));
131
+ expect(out[0]?.ref.memberName).toBe("Card1");
132
+ expect(out[0]?.ref.sourceUri).toBe("sf://00Dxx0000000001/OmniUiCard/Card1.xml");
133
+ });
134
+ });
135
+ //# sourceMappingURL=omnistudio-retrieve.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"omnistudio-retrieve.test.js","sourceRoot":"","sources":["../../../../src/extractors/live-org/__tests__/omnistudio-retrieve.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=soql-rebatch.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"soql-rebatch.test.d.ts","sourceRoot":"","sources":["../../../../src/extractors/live-org/__tests__/soql-rebatch.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,118 @@
1
+ import { beforeEach, describe, expect, it } from "vitest";
2
+ import { limiter } from "../rate-limit.js";
3
+ import { isRebatchableSoqlError, runSoqlInRebatchable } from "../rate-limit.js";
4
+ function buildIds(n, prefix = "001") {
5
+ return Array.from({ length: n }, (_, i) => `'${prefix}${String(i).padStart(12, "0")}'`);
6
+ }
7
+ describe("W2-05: isRebatchableSoqlError classifier", () => {
8
+ it("matches 414/431 statusCodes", () => {
9
+ expect(isRebatchableSoqlError({ statusCode: 414, message: "URI Too Long" })).toBe(true);
10
+ expect(isRebatchableSoqlError({ statusCode: 431, message: "header too large" })).toBe(true);
11
+ });
12
+ it("matches jsforce error codes", () => {
13
+ expect(isRebatchableSoqlError({ errorCode: "URI_TOO_LONG" })).toBe(true);
14
+ expect(isRebatchableSoqlError({ errorCode: "REQUEST_HEADER_FIELDS_TOO_LARGE" })).toBe(true);
15
+ });
16
+ it("falls back to message matching", () => {
17
+ expect(isRebatchableSoqlError(new Error("Request URI Too Long"))).toBe(true);
18
+ expect(isRebatchableSoqlError(new Error("MALFORMED_QUERY: query body too many characters"))).toBe(true);
19
+ });
20
+ it("rejects unrelated errors (auth, timeout, etc.)", () => {
21
+ expect(isRebatchableSoqlError({ statusCode: 401 })).toBe(false);
22
+ expect(isRebatchableSoqlError(new Error("ECONNREFUSED"))).toBe(false);
23
+ expect(isRebatchableSoqlError(new Error("soql Foo timeout (60000ms)"))).toBe(false);
24
+ });
25
+ });
26
+ describe("W2-05: runSoqlInRebatchable", () => {
27
+ beforeEach(async () => {
28
+ // Bottleneck's reservoir is consumed by every scheduled call — refill so
29
+ // tests doing 500+ runs don't stall waiting for the 60s refresh window.
30
+ await limiter.incrementReservoir(10_000);
31
+ });
32
+ it("passes through a small ID set in a single call", async () => {
33
+ const ids = buildIds(5);
34
+ const calls = [];
35
+ const records = await runSoqlInRebatchable({
36
+ ids,
37
+ template: "SELECT Id FROM X WHERE Id IN (${IDS})",
38
+ label: "test small",
39
+ runner: async (soql) => {
40
+ calls.push(soql);
41
+ return { records: ids.map((id) => ({ Id: id })) };
42
+ },
43
+ });
44
+ expect(calls.length).toBe(1);
45
+ expect(records.length).toBe(5);
46
+ });
47
+ it("pre-splits when ids.length exceeds rebatchAt", async () => {
48
+ const ids = buildIds(700);
49
+ const callBatchSizes = [];
50
+ const records = await runSoqlInRebatchable({
51
+ ids,
52
+ template: "SELECT Id FROM X WHERE Id IN (${IDS})",
53
+ label: "test large",
54
+ rebatchAt: 300,
55
+ runner: async (soql) => {
56
+ // Count IDs by counting commas + 1
57
+ const inClause = soql.match(/IN \(([^)]+)\)/);
58
+ const count = inClause ? (inClause[1] ?? "").split(",").length : 0;
59
+ callBatchSizes.push(count);
60
+ return { records: [] };
61
+ },
62
+ });
63
+ expect(records.length).toBe(0);
64
+ // 700 ids @ rebatchAt=300 → ceil(700/300) = 3 chunks of (300, 300, 100)
65
+ expect(callBatchSizes.length).toBe(3);
66
+ expect(callBatchSizes.sort((a, b) => a - b)).toEqual([100, 300, 300]);
67
+ });
68
+ it("recursively halves on a rebatchable error", async () => {
69
+ const ids = buildIds(8);
70
+ let firstCall = true;
71
+ const sizes = [];
72
+ await runSoqlInRebatchable({
73
+ ids,
74
+ template: "SELECT Id FROM X WHERE Id IN (${IDS})",
75
+ label: "test rebatch",
76
+ rebatchAt: 8, // don't pre-split; force the error path to do it
77
+ runner: async (soql) => {
78
+ const inClause = soql.match(/IN \(([^)]+)\)/);
79
+ const count = inClause ? (inClause[1] ?? "").split(",").length : 0;
80
+ sizes.push(count);
81
+ if (firstCall) {
82
+ firstCall = false;
83
+ const err = new Error("Request URI Too Long");
84
+ err.statusCode = 414;
85
+ throw err;
86
+ }
87
+ return { records: [] };
88
+ },
89
+ });
90
+ // First call (size 8) fails; helper splits into 4 + 4 which both succeed.
91
+ expect(sizes[0]).toBe(8);
92
+ expect(sizes.slice(1).sort()).toEqual([4, 4]);
93
+ });
94
+ it("does NOT rebatch on non-rebatchable errors — caller's failSoft handles them", async () => {
95
+ const ids = buildIds(4);
96
+ let calls = 0;
97
+ await expect(runSoqlInRebatchable({
98
+ ids,
99
+ template: "SELECT Id FROM X WHERE Id IN (${IDS})",
100
+ label: "test no-rebatch",
101
+ rebatchAt: 4,
102
+ runner: async () => {
103
+ calls += 1;
104
+ throw new Error("INVALID_FIELD: no such column 'Bogus__c'");
105
+ },
106
+ })).rejects.toThrow(/INVALID_FIELD/);
107
+ expect(calls).toBe(1);
108
+ });
109
+ it("rejects a template without the IDS placeholder", async () => {
110
+ await expect(runSoqlInRebatchable({
111
+ ids: buildIds(1),
112
+ template: "SELECT Id FROM X",
113
+ label: "test bad template",
114
+ runner: async () => ({ records: [] }),
115
+ })).rejects.toThrow(/IDS/);
116
+ });
117
+ });
118
+ //# sourceMappingURL=soql-rebatch.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"soql-rebatch.test.js","sourceRoot":"","sources":["../../../../src/extractors/live-org/__tests__/soql-rebatch.test.ts"],"names":[],"mappings":"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"}
@@ -84,5 +84,32 @@ describe("iterVlocityRecords", () => {
84
84
  await collect(iterVlocityRecords(conn, baseCaps, "00Dxx0000000001"));
85
85
  expect(soqls).toEqual([]);
86
86
  });
87
+ it("reports per-type query failures via onError instead of swallowing them", { timeout: 20_000 }, async () => {
88
+ // Fail every parent query for vlocity_cmt; vlocity_ins succeeds with
89
+ // empty results. Before W1-01 these failures were `catch {}` and
90
+ // indistinguishable from "type genuinely absent" — onError now
91
+ // surfaces them so MCP consumers can tell the two apart.
92
+ const errors = [];
93
+ const conn = {
94
+ query: async (soql) => {
95
+ if (soql.includes("vlocity_cmt__"))
96
+ throw new Error("INVALID_TYPE: simulated drift");
97
+ return { records: [], done: true };
98
+ },
99
+ };
100
+ const caps = {
101
+ ...baseCaps,
102
+ vlocityNamespaces: ["vlocity_cmt", "vlocity_ins"],
103
+ vlocityLegacy: true,
104
+ vlocityCmt: true,
105
+ };
106
+ await collect(iterVlocityRecords(conn, caps, "00Dxx0000000001", (label, err) => {
107
+ errors.push({ label, message: err.message });
108
+ }));
109
+ expect(errors.length).toBeGreaterThan(0);
110
+ expect(errors.every((e) => e.label.startsWith("vlocity:"))).toBe(true);
111
+ expect(errors.every((e) => e.label.endsWith(":vlocity_cmt"))).toBe(true);
112
+ expect(errors.every((e) => e.message.includes("INVALID_TYPE"))).toBe(true);
113
+ });
87
114
  });
88
115
  //# sourceMappingURL=vlocity-runner.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vlocity-runner.test.js","sourceRoot":"","sources":["../../../../src/extractors/live-org/__tests__/vlocity-runner.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vlocity-runner.test.js","sourceRoot":"","sources":["../../../../src/extractors/live-org/__tests__/vlocity-runner.test.ts"],"names":[],"mappings":"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"}
@@ -46,6 +46,13 @@ export interface BulkRetrieveOpts {
46
46
  * 'security', 'integration', 'vlocity', 'omnistudio', or
47
47
  * 'generic:<MetadataType>' for the long tail. */
48
48
  onlyLabels?: Set<string>;
49
+ /** Opt-in: invoke the OmniStudio-on-Core retrieve() extractor in addition
50
+ * to the existing SOQL path. Default off — retrieve() consumes Metadata
51
+ * API quota (10k/24h) and is slower; only enable when the higher-fidelity
52
+ * XML envelope is actually needed by a downstream parser. */
53
+ enableOmnistudioRetrieve?: boolean;
54
+ /** API version string for the retrieve() request envelope. */
55
+ apiVersion?: string;
49
56
  }
50
57
  export declare function bulkRetrieve(conn: any, caps: OrgCapabilities, orgId: OrgId, opts?: BulkRetrieveOpts | IngestSkipReport): AsyncIterable<RawMember>;
51
58
  //# sourceMappingURL=bulk-retrieve.d.ts.map
@@ -1 +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"}
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;IACzB;;;kEAG8D;IAC9D,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;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,CA4H1B"}
@@ -396,10 +396,19 @@ export async function* bulkRetrieve(conn, caps, orgId, opts = {}) {
396
396
  }
397
397
  }
398
398
  if (caps.vlocityLegacy) {
399
- invoke("vlocity", () => iterVlocity(conn, caps, String(orgId)));
399
+ invoke("vlocity", () => iterVlocity(conn, caps, String(orgId), onSkip));
400
400
  }
401
401
  if (caps.omnistudioOncore) {
402
402
  invoke("omnistudio", () => iterOmnistudio(conn));
403
+ if (normalized.enableOmnistudioRetrieve) {
404
+ invoke("omnistudio-retrieve", async function* () {
405
+ const { iterOmnistudioRetrieve } = await import("./extractors/omnistudio-retrieve.js");
406
+ yield* iterOmnistudioRetrieve(conn, String(orgId), {
407
+ apiVersion: normalized.apiVersion ?? "60.0",
408
+ ...(onSkip ? { onError: onSkip } : {}),
409
+ });
410
+ });
411
+ }
403
412
  }
404
413
  // Log the generic-type filter summary once at fan-out start — makes the
405
414
  // skip-vs-route decision visible without --debug.
@@ -1 +1 @@
1
- {"version":3,"file":"bulk-retrieve.js","sourceRoot":"","sources":["../../../src/extractors/live-org/bulk-retrieve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bulk-retrieve.js","sourceRoot":"","sources":["../../../src/extractors/live-org/bulk-retrieve.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAiBtD,+EAA+E;AAC/E,SAAS,YAAY,CAAC,GAAW;IAC/B,MAAM,CAAC,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IAC5B,IAAI,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/F,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IACD,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;QAAE,OAAO,WAAW,CAAC;IAC9E,IAAI,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;QAAE,OAAO,YAAY,CAAC;IAC1F,IAAI,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACrF,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;4EAG4E;AAC5E,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,mBAAmB,CAAI,GAAG,KAA8B;IAC7E,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE;YAAE,MAAM,CAAC,CAAC;IACpC,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,2BAA2B,CAChD,GAAG,KAA8B;IAEjC,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACzF,yEAAyE;IACzE,wEAAwE;IACxE,sEAAsE;IACtE,4EAA4E;IAC5E,wEAAwE;IACxE,0CAA0C;IAC1C,MAAM,WAAW,GACf,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9E,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAEhE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1C,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,MAAM,OAAO,GAAG,CAAC,GAAW,EAAQ,EAAE;QACpC,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,EAAE;YAAE,OAAO;QAChB,OAAO,CAAC,GAAG,CACT,GAAG,EACH,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,CACZ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;QAC7B,gEAAgE;QAChE,+DAA+D;QAC/D,sDAAsD;QACtD,GAAG,EAAE,CAAC,CAAC;YACL,GAAG;YACH,MAAM,EAAE,EAAE,KAAK,EAAE,SAAyB,EAAE,IAAI,EAAE,IAAI,EAAuB;SAC9E,CAAC,CACH,CACF,CAAC;IACJ,CAAC,CAAC;IACF,2DAA2D;IAC3D,OAAO,OAAO,CAAC,IAAI,GAAG,WAAW,IAAI,WAAW,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;QACpE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7D,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACpB,qEAAqE;YACrE,oEAAoE;YACpE,IAAI,WAAW,GAAG,SAAS,CAAC,MAAM;gBAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;YAC3D,SAAS;QACX,CAAC;QACD,MAAM,MAAM,CAAC,KAAK,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;6CAI6C;AAC7C,KAAK,SAAS,CAAC,CAAC,QAAQ,CACtB,KAAa,EACb,OAA+B,EAC/B,OAA6C;IAE7C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,GAAG,CAAC;IACvD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,uEAAuE;IACvE,uEAAuE;IACvE,mEAAmE;IACnE,iEAAiE;IACjE,uEAAuE;IACvE,wDAAwD;IACxD,qEAAqE;IACrE,iCAAiC;IACjC,MAAM,YAAY,GAAG,CAAC,GAAG,MAAM,CAAC;IAChC,uEAAuE;IACvE,sEAAsE;IACtE,gEAAgE;IAChE,uEAAuE;IACvE,wEAAwE;IACxE,4CAA4C;IAC5C,MAAM,YAAY,GAAG,MAAM,CAAC;IAE5B,IAAI,CAAC;QACH,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,iBAAiB,SAAS,EAAE,CAAC,CAAC;QAC7E,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QAC7C,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,mBAAmB,GAAG,OAAO;gBACjC,CAAC,CAAC,MAAM,CAAC,iBAAiB;gBAC1B,CAAC,CAAC,SAAS,GAAG,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;YAC/D,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CACb,gCAAgC,YAAY,GAAG,IAAI,gDAAgD,CACpG,CAAC;YACJ,CAAC;YACD,MAAM,aAAa,GAAG,OAAO;gBAC3B,CAAC,CAAC,GAAG,YAAY,GAAG,MAAM,cAAc;gBACxC,CAAC,CAAC,eAAe,YAAY,GAAG,IAAI,GAAG,CAAC;YAC1C,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;gBAC9B,EAAE,CAAC,IAAI,EAAE;gBACT,IAAI,OAAO,CAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;oBACtC,UAAU,CACR,GAAG,EAAE,CACH,MAAM,CACJ,IAAI,KAAK,CACP,oBAAoB,aAAa,mDAAmD,CACrF,CACF,EACH,UAAU,CACX,CAAC;gBACJ,CAAC,CAAC;aACH,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,IAAI;gBAAE,MAAM;YACrB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,GAAG,IAAI,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,cAAc,CAAC,CAAC;YAChD,CAAC;YACD,KAAK,IAAI,CAAC,CAAC;YACX,MAAM,IAAI,CAAC,KAAK,CAAC;QACnB,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,MAAM,KAAK,aAAa,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,KAAK,CAAC,CAAC;QACrF,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,iBAAiB,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,KAAK,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,CAAU,CAAC;QACvB,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,eAAe,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC;QACzF,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,mBAAmB,KAAK,oBAAoB,GAAG,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACzF,IAAI,GAAG,EAAE,KAAK;gBAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;YAAS,CAAC;QACT,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CACT,mBAAmB,KAAK,iBAAiB,KAAK,aAAa,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,KAAK,CACvF,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC;AACzD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC;AACxD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACrC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;AAC/C,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC,CAAC;AAC7E,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,iBAAiB,EAAE,6BAA6B,CAAC,CAAC,CAAC;AAEtF;;;;;;;;;;;;;;GAcG;AACH,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;IACrC,4EAA4E;IAC5E,WAAW;IACX,QAAQ;IACR,aAAa;IACb,WAAW;IACX,mBAAmB;IACnB,gBAAgB;IAChB,mBAAmB;IACnB,SAAS;IACT,0DAA0D;IAC1D,UAAU;IACV,eAAe;IACf,sBAAsB;IACtB,qBAAqB;IACrB,UAAU;IACV,iBAAiB;IACjB,iBAAiB;IACjB,mBAAmB;IACnB,iBAAiB;IACjB,gBAAgB;IAChB,eAAe;IACf,eAAe;IACf,cAAc;IACd,2BAA2B;IAC3B,gBAAgB;IAChB,cAAc;IACd,aAAa;IACb,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;IAClB,iCAAiC;IACjC,wBAAwB;IACxB,YAAY;IACZ,mCAAmC;IACnC,QAAQ;IACR,WAAW;IACX,YAAY;IACZ,yBAAyB;IACzB,SAAS;IACT,iBAAiB;IACjB,gBAAgB;IAChB,WAAW;IACX,kBAAkB;IAClB,yBAAyB;IACzB,oBAAoB;IACpB,sEAAsE;IACtE,oEAAoE;IACpE,wEAAwE;IACxE,wEAAwE;IACxE,4CAA4C;IAC5C,cAAc;IACd,oBAAoB;IACpB,qBAAqB;IACrB,uBAAuB;IACvB,uBAAuB;IACvB,eAAe;IACf,UAAU;IACV,YAAY;IACZ,aAAa;IACb,wBAAwB;IACxB,sBAAsB;IACtB,4BAA4B;IAC5B,+BAA+B;IAC/B,eAAe;IACf,mBAAmB;IACnB,gBAAgB;IAChB,qEAAqE;IACrE,oBAAoB;IACpB,QAAQ;IACR,eAAe;IACf,uBAAuB;IACvB,qBAAqB;IACrB,gBAAgB;IAChB,0BAA0B;IAC1B,yBAAyB;IACzB,wBAAwB;IACxB,eAAe;IACf,qBAAqB;IACrB,eAAe;IACf,aAAa;IACb,iBAAiB;IACjB,KAAK;IACL,oBAAoB;IACpB,mEAAmE;IACnE,oEAAoE;IACpE,uEAAuE;IACvE,YAAY;IACZ,0BAA0B;IAC1B,mBAAmB;IACnB,YAAY;IACZ,aAAa;CACd,CAAC,CAAC;AAEH,SAAS,kBAAkB,CAAC,IAAY;IACtC,IAAI,OAAO,CAAC,GAAG,CAAC,2BAA2B,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IACjE,OAAO,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC;AAkBD,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,YAAY,CACjC,IAAS,EACT,IAAqB,EACrB,KAAY,EACZ,OAA4C,EAAE;IAE9C,8EAA8E;IAC9E,sBAAsB;IACtB,MAAM,UAAU,GACd,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAK,IAAe;QAC7D,CAAC,CAAC,EAAE,UAAU,EAAE,IAAwB,EAAE;QAC1C,CAAC,CAAE,IAAyB,CAAC;IACjC,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;IACzC,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;IACzC,2EAA2E;IAC3E,wEAAwE;IACxE,uEAAuE;IACvE,IAAI,KAAK,GAAsD,EAAE,CAAC;IAClE,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,KAAK,GAAG,EAAE,CAAC;IACb,CAAC;IAED,MAAM,OAAO,GAAoC,EAAE,CAAC;IACpD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC,CAAC,mBAAmB;IAEtD,MAAM,MAAM,GAAG,UAAU;QACvB,CAAC,CAAC,CAAC,KAAa,EAAE,GAAU,EAAE,EAAE;YAC5B,MAAM,MAAM,GAAG,GAAG,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;YAC3C,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3E,CAAC;QACH,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,OAAuC,EAAE,EAAE;QACtE,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO;QAC7B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjB,yEAAyE;QACzE,2EAA2E;QAC3E,wDAAwD;QACxD,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO;QAC/C,wEAAwE;QACxE,uEAAuE;QACvE,uEAAuE;QACvE,mEAAmE;QACnE,kBAAkB;QAClB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC;IAEF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,gEAAgE;QAChE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;IACrD,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACjD,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YAC/C,QAAQ,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACvB,KAAK,aAAa;oBAChB,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;wBAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;yBAC1D,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;wBAAE,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;yBAC5D,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;wBAClC,aAAa,IAAI,CAAC,CAAC;wBACnB,MAAM,CAAC,WAAW,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;oBAClF,CAAC;yBAAM,CAAC;wBACN,cAAc,IAAI,CAAC,CAAC;oBACtB,CAAC;oBACD,MAAM;gBACR,KAAK,kBAAkB;oBACrB,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;wBAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;yBAC1D,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;wBAAE,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;yBACrE,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;wBAAE,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;yBAC3E,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC;wBAAE,MAAM,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;yBACpF,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;wBAClC,aAAa,IAAI,CAAC,CAAC;wBACnB,MAAM,CAAC,WAAW,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;oBAClF,CAAC;yBAAM,CAAC;wBACN,cAAc,IAAI,CAAC,CAAC;oBACtB,CAAC;oBACD,MAAM;gBACR,KAAK,eAAe;oBAClB,mCAAmC;oBACnC,MAAM;gBACR,KAAK,aAAa;oBAChB,gEAAgE;oBAChE,MAAM;gBACR,KAAK,eAAe;oBAClB,sEAAsE;oBACtE,MAAM;YACV,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,MAAM,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QACjD,IAAI,UAAU,CAAC,wBAAwB,EAAE,CAAC;YACxC,MAAM,CAAC,qBAAqB,EAAE,KAAK,SAAS,CAAC;gBAC3C,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAC7C,qCAAqC,CACtC,CAAC;gBACF,KAAK,CAAC,CAAC,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;oBACjD,UAAU,EAAE,UAAU,CAAC,UAAU,IAAI,MAAM;oBAC3C,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACvC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,wEAAwE;IACxE,kDAAkD;IAClD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CACT,2BAA2B,OAAO,CAAC,MAAM,aAAa,KAAK,CAAC,MAAM,8GAA8G,CACjL,CAAC;IACJ,CAAC;IAED,wEAAwE;IACxE,uEAAuE;IACvE,yEAAyE;IACzE,+DAA+D;IAC/D,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,GAAG,CAAC;IAClE,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,GAAG,OAAO,CAAC,CAAC;AAChG,CAAC"}
@@ -0,0 +1,60 @@
1
+ import type { OrgId } from "@ryanstark24/sfgraph-shared";
2
+ import type { EdgeFact } from "../../../domain/index.js";
3
+ import type { ParseContext } from "../../../parsers/contract.js";
4
+ /**
5
+ * Fast-path baseline coverage for long-tail metadata via the Tooling
6
+ * `MetadataComponentDependency` SObject (MCD). The platform pre-computes
7
+ * dependency edges for ~50 component types; sfgraph hand-rolls parsers for
8
+ * ~20 of them. For the rest (Layouts, FieldSets, EmailTemplates, Tabs,
9
+ * Groups, Queues to start) MCD is the path of least resistance — one
10
+ * Tooling SOQL per type-direction, zero parser code, edges immediately
11
+ * available.
12
+ *
13
+ * Coexistence with parsed edges: every MCD-sourced edge uses relType
14
+ * `REFERENCES` with `attributes.source: 'mcd'`. Real parsers emit more
15
+ * specific relTypes (READS_FIELD, INVOKES_FLOW, etc.) which live in
16
+ * different edge tables — so parsed and MCD edges coexist rather than
17
+ * compete. Consumers wanting MCD-only coverage filter on the source
18
+ * attribute; consumers wanting "all known dependencies" union both.
19
+ *
20
+ * Known caveats (from Pitfalls research):
21
+ * - MCD enforces a 2,000-row hard cap per query with no OFFSET — we
22
+ * paginate via `MetadataComponentId > '<lastId>'` ordered ascending.
23
+ * - MCD has async-refresh lag (minutes between metadata change and MCD
24
+ * reflecting it). Three documented gap classes (lookup-field → object,
25
+ * picklist → GlobalValueSet, dependent-picklist → controlling-field)
26
+ * are missing entirely; those are W2-04's job, not this baseline.
27
+ * - Some types (e.g. CustomLabels) show no rows on certain orgs even
28
+ * when usage exists — this is a platform issue, surfaced as zero
29
+ * edges rather than an error.
30
+ */
31
+ /** Long-tail metadata types covered by the baseline. Each gets one query
32
+ * in each direction (component-as-source, component-as-target) so any
33
+ * edge involving a long-tail type lands in the graph. */
34
+ export declare const MCD_LONG_TAIL_TYPES: readonly ["Layout", "FieldSet", "EmailTemplate", "CustomTab", "Group", "Queue"];
35
+ export interface McdBaselineOpts {
36
+ orgId: OrgId | string;
37
+ ctx: ParseContext;
38
+ /** Types to query. Defaults to MCD_LONG_TAIL_TYPES. */
39
+ types?: readonly string[];
40
+ /** Override the per-query LIMIT cap. Defaults to 2000 (platform-enforced
41
+ * ceiling). Lower values are useful for tests. */
42
+ pageSize?: number;
43
+ /** Maximum pages per (type, direction) pair to fetch before bailing
44
+ * out — defensive bound against an over-broad org with millions of
45
+ * rows. Default 50 pages → 100k edges per direction. */
46
+ maxPagesPerDirection?: number;
47
+ /** Called on each non-fatal failure (per-type query error). Mirrors
48
+ * the vlocity-runner onError contract added in W1-01. */
49
+ onError?: (label: string, err: Error) => void;
50
+ }
51
+ export interface McdBaselineResult {
52
+ edges: EdgeFact[];
53
+ /** Per-(type, direction) row counts for visibility. */
54
+ byType: Record<string, {
55
+ asSource: number;
56
+ asTarget: number;
57
+ }>;
58
+ }
59
+ export declare function runMcdBaseline(conn: any, opts: McdBaselineOpts): Promise<McdBaselineResult>;
60
+ //# sourceMappingURL=mcd-baseline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcd-baseline.d.ts","sourceRoot":"","sources":["../../../../src/extractors/live-org/extractors/mcd-baseline.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAGjE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH;;0DAE0D;AAC1D,eAAO,MAAM,mBAAmB,iFAOtB,CAAC;AAcX,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC;IACtB,GAAG,EAAE,YAAY,CAAC;IAClB,uDAAuD;IACvD,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B;uDACmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;6DAEyD;IACzD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;8DAC0D;IAC1D,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;CAC/C;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChE;AA4CD,wBAAsB,cAAc,CAClC,IAAI,EAAE,GAAG,EACT,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,iBAAiB,CAAC,CA0E5B"}