@ryanstark24/sfgraph-cli 1.2.1 → 1.6.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 (78) hide show
  1. package/dist/commands/audit.d.ts.map +1 -1
  2. package/dist/commands/audit.js +8 -3
  3. package/dist/commands/audit.js.map +1 -1
  4. package/dist/commands/diagnose.d.ts +139 -0
  5. package/dist/commands/diagnose.d.ts.map +1 -0
  6. package/dist/commands/diagnose.js +508 -0
  7. package/dist/commands/diagnose.js.map +1 -0
  8. package/dist/commands/doctor.d.ts.map +1 -1
  9. package/dist/commands/doctor.js +1 -1
  10. package/dist/commands/doctor.js.map +1 -1
  11. package/dist/commands/ingest.d.ts +73 -0
  12. package/dist/commands/ingest.d.ts.map +1 -1
  13. package/dist/commands/ingest.js +362 -19
  14. package/dist/commands/ingest.js.map +1 -1
  15. package/dist/commands/rebuild-bindings.d.ts.map +1 -1
  16. package/dist/commands/rebuild-bindings.js +2 -2
  17. package/dist/commands/rebuild-bindings.js.map +1 -1
  18. package/dist/commands/reset-elemid-map.d.ts.map +1 -1
  19. package/dist/commands/reset-elemid-map.js.map +1 -1
  20. package/dist/commands/serve.d.ts +7 -0
  21. package/dist/commands/serve.d.ts.map +1 -1
  22. package/dist/commands/serve.js +59 -1
  23. package/dist/commands/serve.js.map +1 -1
  24. package/dist/commands/skip-labels.d.ts +11 -0
  25. package/dist/commands/skip-labels.d.ts.map +1 -0
  26. package/dist/commands/skip-labels.js +15 -0
  27. package/dist/commands/skip-labels.js.map +1 -0
  28. package/dist/commands/telemetry.js +1 -1
  29. package/dist/commands/telemetry.js.map +1 -1
  30. package/dist/heap.d.ts +24 -0
  31. package/dist/heap.d.ts.map +1 -0
  32. package/dist/heap.js +45 -0
  33. package/dist/heap.js.map +1 -0
  34. package/dist/index.d.ts +13 -1
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +43 -2
  37. package/dist/index.js.map +1 -1
  38. package/package.json +8 -7
  39. package/dist/__tests__/doctor.test.d.ts +0 -2
  40. package/dist/__tests__/doctor.test.d.ts.map +0 -1
  41. package/dist/__tests__/doctor.test.js +0 -64
  42. package/dist/__tests__/doctor.test.js.map +0 -1
  43. package/dist/__tests__/ingest-db-guard.test.d.ts +0 -2
  44. package/dist/__tests__/ingest-db-guard.test.d.ts.map +0 -1
  45. package/dist/__tests__/ingest-db-guard.test.js +0 -110
  46. package/dist/__tests__/ingest-db-guard.test.js.map +0 -1
  47. package/dist/__tests__/ingest-multi.test.d.ts +0 -2
  48. package/dist/__tests__/ingest-multi.test.d.ts.map +0 -1
  49. package/dist/__tests__/ingest-multi.test.js +0 -51
  50. package/dist/__tests__/ingest-multi.test.js.map +0 -1
  51. package/dist/__tests__/install-dry-run.test.d.ts +0 -2
  52. package/dist/__tests__/install-dry-run.test.d.ts.map +0 -1
  53. package/dist/__tests__/install-dry-run.test.js +0 -29
  54. package/dist/__tests__/install-dry-run.test.js.map +0 -1
  55. package/dist/__tests__/install-e2e.test.d.ts +0 -2
  56. package/dist/__tests__/install-e2e.test.d.ts.map +0 -1
  57. package/dist/__tests__/install-e2e.test.js +0 -33
  58. package/dist/__tests__/install-e2e.test.js.map +0 -1
  59. package/dist/__tests__/mcp-config.test.d.ts +0 -2
  60. package/dist/__tests__/mcp-config.test.d.ts.map +0 -1
  61. package/dist/__tests__/mcp-config.test.js +0 -104
  62. package/dist/__tests__/mcp-config.test.js.map +0 -1
  63. package/dist/__tests__/rebuild.test.d.ts +0 -2
  64. package/dist/__tests__/rebuild.test.d.ts.map +0 -1
  65. package/dist/__tests__/rebuild.test.js +0 -180
  66. package/dist/__tests__/rebuild.test.js.map +0 -1
  67. package/dist/__tests__/serve-guard.test.d.ts +0 -2
  68. package/dist/__tests__/serve-guard.test.d.ts.map +0 -1
  69. package/dist/__tests__/serve-guard.test.js +0 -82
  70. package/dist/__tests__/serve-guard.test.js.map +0 -1
  71. package/dist/__tests__/snapshot.test.d.ts +0 -2
  72. package/dist/__tests__/snapshot.test.d.ts.map +0 -1
  73. package/dist/__tests__/snapshot.test.js +0 -139
  74. package/dist/__tests__/snapshot.test.js.map +0 -1
  75. package/dist/__tests__/telemetry.test.d.ts +0 -2
  76. package/dist/__tests__/telemetry.test.d.ts.map +0 -1
  77. package/dist/__tests__/telemetry.test.js +0 -53
  78. package/dist/__tests__/telemetry.test.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/commands/audit.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,SAAS;IACxB,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IACtC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,6DAA6D;IAC7D,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACrC,GAAG,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC3B;AAyDD,wBAAsB,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CA8C7D"}
1
+ {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/commands/audit.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,SAAS;IACxB,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IACtC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,6DAA6D;IAC7D,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACrC,GAAG,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC3B;AA+DD,wBAAsB,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAmD7D"}
@@ -21,11 +21,13 @@ async function resolveOrgIdFromOpts(opts) {
21
21
  function pad(s, n) {
22
22
  return s.length >= n ? s : s + " ".repeat(n - s.length);
23
23
  }
24
- function printTable(orgId, totalEdges, danglingCount, byRel, byDstPrefix, sample) {
24
+ function printTable(orgId, totalEdges, danglingCount, platformRefCount, unexpectedCount, byRel, byDstPrefix, sample) {
25
25
  const pct = totalEdges === 0 ? "0%" : `${((danglingCount / totalEdges) * 100).toFixed(1)}%`;
26
26
  console.log(`audit: org=${orgId}`);
27
27
  console.log(` total edges: ${totalEdges}`);
28
28
  console.log(` dangling: ${danglingCount} (${pct})`);
29
+ console.log(` platform refs (expected — standard tabs / standard-schema fields): ${platformRefCount}`);
30
+ console.log(` unexpected (worth investigating): ${unexpectedCount}`);
29
31
  if (danglingCount === 0)
30
32
  return;
31
33
  console.log("");
@@ -59,7 +61,7 @@ export async function auditCmd(opts) {
59
61
  console.log(JSON.stringify({ orgId, ...result }, null, 2));
60
62
  }
61
63
  else {
62
- printTable(orgId, result.totalEdges, result.danglingCount, result.byRel, result.byDstPrefix, result.sample);
64
+ printTable(orgId, result.totalEdges, result.danglingCount, result.platformRefCount, result.unexpectedCount, result.byRel, result.byDstPrefix, result.sample);
63
65
  }
64
66
  if (opts.deleteDangling) {
65
67
  if (!opts.yes) {
@@ -67,8 +69,11 @@ export async function auditCmd(opts) {
67
69
  process.exitCode = 1;
68
70
  return;
69
71
  }
70
- const { deleted } = deleteDanglingEdges(store, orgId);
72
+ const { deleted, keptPlatformRefs } = deleteDanglingEdges(store, orgId);
71
73
  console.log(`audit: deleted ${deleted} dangling edge${deleted === 1 ? "" : "s"}.`);
74
+ if (keptPlatformRefs > 0) {
75
+ console.log(`audit: kept ${keptPlatformRefs} platform-builtin reference${keptPlatformRefs === 1 ? "" : "s"} (standard tabs / standard-schema fields — real security data with no metadata source).`);
76
+ }
72
77
  }
73
78
  }
74
79
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/commands/audit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/commands/audit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,139 @@
1
+ import type { LiveIngestOpts, LiveIngestResult } from "@ryanstark24/sfgraph-core";
2
+ export type WedgeEventKind = "firstYield" | "inactivity" | "cap-evicted" | "resolvedLate";
3
+ export interface WedgeEvent {
4
+ kind: WedgeEventKind;
5
+ /** ms since this source started; `undefined` when not derivable from the
6
+ * warning string (e.g. cap-evicted carries ageMs, not start-relative). */
7
+ atMs?: number;
8
+ lastYieldedRecord?: string;
9
+ wedgedForMs?: number;
10
+ }
11
+ export interface DiagnoseReportSourceEntry {
12
+ /** Source label (e.g. "lwc", "generic:Profile"). */
13
+ name: string;
14
+ startedAt?: string;
15
+ finishedAt?: string;
16
+ elapsedMs?: number;
17
+ /** Records observed for this source. Populated when the runner supplies
18
+ * onSourceStart/onSourceComplete callbacks. */
19
+ yieldCount: number;
20
+ wedged: boolean;
21
+ lastYieldedRecord?: string;
22
+ wedgeEvents: WedgeEvent[];
23
+ /** W1.5-07: surfaced when this label was refused by the deletion guard. */
24
+ needsDiagnose?: boolean;
25
+ error?: {
26
+ code: string;
27
+ message: string;
28
+ };
29
+ }
30
+ export interface DetectDeletionsRefusal {
31
+ label: string;
32
+ reason: "empty-stream" | "drop-ratio";
33
+ priorCount: number;
34
+ touchedCount?: number;
35
+ ratio?: number;
36
+ }
37
+ export interface DiagnoseReport {
38
+ schemaVersion: 1;
39
+ diagnosticMode: true;
40
+ /** Caveat reproduced inside the report itself so anyone reading it later
41
+ * understands that wall-clock here != production throughput. */
42
+ note: string;
43
+ orgId: string;
44
+ alias?: string;
45
+ startedAt: string;
46
+ finishedAt: string;
47
+ totalElapsedMs: number;
48
+ exitStatus: "ok" | "failed" | "timeout";
49
+ capabilities: Record<string, unknown>;
50
+ config: {
51
+ sourceConcurrency: number;
52
+ toolingPool: number;
53
+ metadataPool: number;
54
+ dataPool: number;
55
+ /** Echo of the runtime watchdog budgets (NOT overridden by diagnose). */
56
+ watchdogFirstYieldMs?: number;
57
+ watchdogInactivityMs?: number;
58
+ backgroundWedgeCap?: number;
59
+ detectDeletionsMaxDropRatio?: number;
60
+ };
61
+ perSource: DiagnoseReportSourceEntry[];
62
+ detectDeletionsRefusals: DetectDeletionsRefusal[];
63
+ /** Raw namespaced warning strings, preserved verbatim. */
64
+ warnings: string[];
65
+ /** Source labels flagged as needing further diagnosis (typically via
66
+ * detect-deletions guard refusal). */
67
+ needsDiagnose: string[];
68
+ /** Optional error message when `exitStatus !== "ok"`. */
69
+ error?: string;
70
+ }
71
+ export declare class DiagnoseReporter {
72
+ private readonly perSource;
73
+ private readonly refusals;
74
+ private readonly startedAt;
75
+ private readonly orgId;
76
+ private readonly alias?;
77
+ constructor(orgId: string, alias?: string, startedAtEpoch?: number);
78
+ /** Called when a source begins. Idempotent. */
79
+ noteSourceStart(label: string, atEpoch?: number): void;
80
+ /** Called when a source completes (success OR caught error). */
81
+ noteSourceComplete(label: string, info?: {
82
+ recordCount: number;
83
+ error?: Error;
84
+ }, atEpoch?: number): void;
85
+ /** Parse warnings produced by the ingest into structured wedge events +
86
+ * detect-deletions refusal records. Warnings are emitted in the
87
+ * documented namespaced format (see bulk-retrieve.ts fmtWedgeWarning +
88
+ * detect-deletions-guard.ts). */
89
+ ingestWarnings(warnings: readonly string[]): void;
90
+ ingestWarning(w: string): void;
91
+ build(opts: {
92
+ finishedAtEpoch?: number;
93
+ capabilities: Record<string, unknown>;
94
+ config: DiagnoseReport["config"];
95
+ warnings: readonly string[];
96
+ exitStatus: DiagnoseReport["exitStatus"];
97
+ error?: string;
98
+ }): DiagnoseReport;
99
+ }
100
+ export declare function defaultReportPath(orgId: string, now?: Date): string;
101
+ export interface DiagnoseOpts {
102
+ /** Salesforce alias / username / orgId. Treated identically to `ingest --org`. */
103
+ orgId: string;
104
+ /** Override the default report path. */
105
+ output?: string;
106
+ /** Overall diagnose timeout in seconds. Default 600 (10min). */
107
+ maxDuration?: number;
108
+ /** Stream per-source timing to stdout in addition to the JSON report. */
109
+ verbose?: boolean;
110
+ /** Write to the real org graph DB instead of a temp DB. Default false. */
111
+ keepGraph?: boolean;
112
+ }
113
+ /** Internal injection seam: the heavy ingest runner. Production code points
114
+ * at `liveIngest` (lazy-imported). Tests pass a stub. */
115
+ export type DiagnoseLiveRunner = (opts: LiveIngestOpts, reporter: DiagnoseReporter) => Promise<LiveIngestResult>;
116
+ /** Internal injection seam: org-alias resolver. Production code points at
117
+ * `resolveOrg`. Tests pass a stub. */
118
+ export type DiagnoseResolveOrg = (alias: string) => Promise<{
119
+ alias: string;
120
+ orgId: string;
121
+ apiVersion?: string;
122
+ conn?: unknown;
123
+ instanceUrl?: string;
124
+ }>;
125
+ export interface DiagnoseDeps {
126
+ runner?: DiagnoseLiveRunner;
127
+ resolveOrg?: DiagnoseResolveOrg;
128
+ /** Override `Date.now()` for deterministic timestamps in tests. */
129
+ now?: () => number;
130
+ }
131
+ export declare function diagnoseCmd(opts: DiagnoseOpts, deps?: DiagnoseDeps): Promise<{
132
+ reportPath: string;
133
+ report: DiagnoseReport;
134
+ }>;
135
+ /** Top-N by elapsedMs descending. Sources without elapsedMs (never
136
+ * completed) sort to the bottom; if they're wedged we still want them
137
+ * visible, so bump their effective elapsed to maxDurationMs-equivalent. */
138
+ export declare function topSlowestSources(perSource: readonly DiagnoseReportSourceEntry[], n: number): DiagnoseReportSourceEntry[];
139
+ //# sourceMappingURL=diagnose.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnose.d.ts","sourceRoot":"","sources":["../../src/commands/diagnose.ts"],"names":[],"mappings":"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"}