@stigmer/sdk 3.1.2 → 3.1.3

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.
@@ -65,5 +65,17 @@ describe("toDisplayFileChange", () => {
65
65
  }));
66
66
  expect(fc.after?.isBinary).toBe(true);
67
67
  });
68
+ it("carries the capture-time line counts so renderers can show +N −M without the bodies", () => {
69
+ const fc = toDisplayFileChange(create(CapturedFileChangeSchema, {
70
+ id: "fc1",
71
+ pathBefore: "src/a.ts",
72
+ pathAfter: "src/a.ts",
73
+ kind: FileChangeKind.MODIFY,
74
+ linesAdded: 37,
75
+ linesRemoved: 2,
76
+ }));
77
+ expect(fc.linesAdded).toBe(37);
78
+ expect(fc.linesRemoved).toBe(2);
79
+ });
68
80
  });
69
81
  //# sourceMappingURL=to-display-file-change.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"to-display-file-change.test.js","sourceRoot":"","sources":["../../../src/execution/__tests__/to-display-file-change.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"to-display-file-change.test.js","sourceRoot":"","sources":["../../../src/execution/__tests__/to-display-file-change.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"to-display-file-change.d.ts","sourceRoot":"","sources":["../../src/execution/to-display-file-change.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oEAAoE,CAAC;AAC7G,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iEAAiE,CAAC;AAQlG;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,UAAU,CAU5E"}
1
+ {"version":3,"file":"to-display-file-change.d.ts","sourceRoot":"","sources":["../../src/execution/to-display-file-change.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oEAAoE,CAAC;AAC7G,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iEAAiE,CAAC;AAQlG;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,UAAU,CAgB5E"}
@@ -38,6 +38,12 @@ export function toDisplayFileChange(captured) {
38
38
  captureLevel: FileChangeCaptureLevel.WHOLE_FILE,
39
39
  before: captured.before,
40
40
  after: captured.after,
41
+ // The runner's capture-time display counts ride along so renderers can
42
+ // show `+N −M` even when a body has been offloaded and no inline diff is
43
+ // computable. Zero means "no count exists" (binary/withheld/legacy) —
44
+ // consumers hide the stat, never show "+0 −0".
45
+ linesAdded: captured.linesAdded,
46
+ linesRemoved: captured.linesRemoved,
41
47
  renameFrom: captured.kind === FileChangeKind.RENAME ? captured.pathBefore : "",
42
48
  });
43
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"to-display-file-change.js","sourceRoot":"","sources":["../../src/execution/to-display-file-change.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,iEAAiE;AACjE,EAAE;AACF,8EAA8E;AAC9E,4EAA4E;AAC5E,yEAAyE;AACzE,gFAAgF;AAChF,4EAA4E;AAC5E,6EAA6E;AAC7E,gFAAgF;AAChF,gFAAgF;AAChF,8EAA8E;AAC9E,sDAAsD;AACtD,EAAE;AACF,gFAAgF;AAChF,+EAA+E;AAC/E,8CAA8C;AAC9C,EAAE;AACF,uEAAuE;AACvE,uEAAuE;AAEvE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iEAAiE,CAAC;AACnG,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,cAAc,GACf,MAAM,8DAA8D,CAAC;AAEtE;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAA4B;IAC9D,OAAO,MAAM,CAAC,gBAAgB,EAAE;QAC9B,IAAI,EAAE,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,UAAU;QAC/C,UAAU,EAAE,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC3C,YAAY,EAAE,sBAAsB,CAAC,UAAU;QAC/C,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,UAAU,EACR,QAAQ,CAAC,IAAI,KAAK,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;KACrE,CAAC,CAAC;AACL,CAAC;AAED,sFAAsF;AACtF,SAAS,gBAAgB,CAAC,IAAoB;IAC5C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,cAAc,CAAC,GAAG;YACrB,OAAO,cAAc,CAAC,MAAM,CAAC;QAC/B,KAAK,cAAc,CAAC,MAAM;YACxB,OAAO,cAAc,CAAC,MAAM,CAAC;QAC/B,KAAK,cAAc,CAAC,MAAM;YACxB,OAAO,cAAc,CAAC,MAAM,CAAC;QAC/B;YACE,OAAO,cAAc,CAAC,MAAM,CAAC;IACjC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"to-display-file-change.js","sourceRoot":"","sources":["../../src/execution/to-display-file-change.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,iEAAiE;AACjE,EAAE;AACF,8EAA8E;AAC9E,4EAA4E;AAC5E,yEAAyE;AACzE,gFAAgF;AAChF,4EAA4E;AAC5E,6EAA6E;AAC7E,gFAAgF;AAChF,gFAAgF;AAChF,8EAA8E;AAC9E,sDAAsD;AACtD,EAAE;AACF,gFAAgF;AAChF,+EAA+E;AAC/E,8CAA8C;AAC9C,EAAE;AACF,uEAAuE;AACvE,uEAAuE;AAEvE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iEAAiE,CAAC;AACnG,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,cAAc,GACf,MAAM,8DAA8D,CAAC;AAEtE;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAA4B;IAC9D,OAAO,MAAM,CAAC,gBAAgB,EAAE;QAC9B,IAAI,EAAE,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,UAAU;QAC/C,UAAU,EAAE,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC3C,YAAY,EAAE,sBAAsB,CAAC,UAAU;QAC/C,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,uEAAuE;QACvE,yEAAyE;QACzE,sEAAsE;QACtE,+CAA+C;QAC/C,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,UAAU,EACR,QAAQ,CAAC,IAAI,KAAK,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;KACrE,CAAC,CAAC;AACL,CAAC;AAED,sFAAsF;AACtF,SAAS,gBAAgB,CAAC,IAAoB;IAC5C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,cAAc,CAAC,GAAG;YACrB,OAAO,cAAc,CAAC,MAAM,CAAC;QAC/B,KAAK,cAAc,CAAC,MAAM;YACxB,OAAO,cAAc,CAAC,MAAM,CAAC;QAC/B,KAAK,cAAc,CAAC,MAAM;YACxB,OAAO,cAAc,CAAC,MAAM,CAAC;QAC/B;YACE,OAAO,cAAc,CAAC,MAAM,CAAC;IACjC,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stigmer/sdk",
3
- "version": "3.1.2",
3
+ "version": "3.1.3",
4
4
  "description": "Stigmer TypeScript SDK — typed API client for all Stigmer platform resources",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -44,6 +44,6 @@
44
44
  "peerDependencies": {
45
45
  "@bufbuild/protobuf": "^2.0.0",
46
46
  "@connectrpc/connect-node": "^2.0.0",
47
- "@stigmer/protos": "3.1.2"
47
+ "@stigmer/protos": "3.1.3"
48
48
  }
49
49
  }
@@ -88,4 +88,19 @@ describe("toDisplayFileChange", () => {
88
88
  );
89
89
  expect(fc.after?.isBinary).toBe(true);
90
90
  });
91
+
92
+ it("carries the capture-time line counts so renderers can show +N −M without the bodies", () => {
93
+ const fc = toDisplayFileChange(
94
+ create(CapturedFileChangeSchema, {
95
+ id: "fc1",
96
+ pathBefore: "src/a.ts",
97
+ pathAfter: "src/a.ts",
98
+ kind: FileChangeKind.MODIFY,
99
+ linesAdded: 37,
100
+ linesRemoved: 2,
101
+ }),
102
+ );
103
+ expect(fc.linesAdded).toBe(37);
104
+ expect(fc.linesRemoved).toBe(2);
105
+ });
91
106
  });
@@ -46,6 +46,12 @@ export function toDisplayFileChange(captured: CapturedFileChange): FileChange {
46
46
  captureLevel: FileChangeCaptureLevel.WHOLE_FILE,
47
47
  before: captured.before,
48
48
  after: captured.after,
49
+ // The runner's capture-time display counts ride along so renderers can
50
+ // show `+N −M` even when a body has been offloaded and no inline diff is
51
+ // computable. Zero means "no count exists" (binary/withheld/legacy) —
52
+ // consumers hide the stat, never show "+0 −0".
53
+ linesAdded: captured.linesAdded,
54
+ linesRemoved: captured.linesRemoved,
49
55
  renameFrom:
50
56
  captured.kind === FileChangeKind.RENAME ? captured.pathBefore : "",
51
57
  });