@superblocksteam/sdk 2.0.155 → 2.0.156-next.1

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 (62) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/dist/cli-replacement/automatic-upgrades.d.ts.map +1 -1
  3. package/dist/cli-replacement/automatic-upgrades.js +4 -8
  4. package/dist/cli-replacement/automatic-upgrades.js.map +1 -1
  5. package/dist/cli-replacement/automatic-upgrades.test.js +2 -1
  6. package/dist/cli-replacement/automatic-upgrades.test.js.map +1 -1
  7. package/dist/cli-replacement/dev-s3-restore.test.mjs +6 -2
  8. package/dist/cli-replacement/dev-s3-restore.test.mjs.map +1 -1
  9. package/dist/cli-replacement/dev-startup-git-before-dbfs-order.test.mjs +6 -2
  10. package/dist/cli-replacement/dev-startup-git-before-dbfs-order.test.mjs.map +1 -1
  11. package/dist/cli-replacement/dev-startup-lock-acquisition.test.d.mts +2 -0
  12. package/dist/cli-replacement/dev-startup-lock-acquisition.test.d.mts.map +1 -0
  13. package/dist/cli-replacement/dev-startup-lock-acquisition.test.mjs +487 -0
  14. package/dist/cli-replacement/dev-startup-lock-acquisition.test.mjs.map +1 -0
  15. package/dist/cli-replacement/dev.d.mts +6 -6
  16. package/dist/cli-replacement/dev.d.mts.map +1 -1
  17. package/dist/cli-replacement/dev.interception.test.mjs +12 -12
  18. package/dist/cli-replacement/dev.interception.test.mjs.map +1 -1
  19. package/dist/cli-replacement/dev.mjs +100 -42
  20. package/dist/cli-replacement/dev.mjs.map +1 -1
  21. package/dist/dev-utils/dev-server.d.mts +34 -1
  22. package/dist/dev-utils/dev-server.d.mts.map +1 -1
  23. package/dist/dev-utils/dev-server.mjs +69 -70
  24. package/dist/dev-utils/dev-server.mjs.map +1 -1
  25. package/dist/dev-utils/dev-server.shutdown-lock.test.d.mts +2 -0
  26. package/dist/dev-utils/dev-server.shutdown-lock.test.d.mts.map +1 -0
  27. package/dist/dev-utils/dev-server.shutdown-lock.test.mjs +48 -0
  28. package/dist/dev-utils/dev-server.shutdown-lock.test.mjs.map +1 -0
  29. package/dist/dev-utils/fatal-process-barrier.d.mts +71 -0
  30. package/dist/dev-utils/fatal-process-barrier.d.mts.map +1 -0
  31. package/dist/dev-utils/fatal-process-barrier.mjs +161 -0
  32. package/dist/dev-utils/fatal-process-barrier.mjs.map +1 -0
  33. package/dist/dev-utils/fatal-process-barrier.spawn-fixture.d.mts +2 -0
  34. package/dist/dev-utils/fatal-process-barrier.spawn-fixture.d.mts.map +1 -0
  35. package/dist/dev-utils/fatal-process-barrier.spawn-fixture.mjs +9 -0
  36. package/dist/dev-utils/fatal-process-barrier.spawn-fixture.mjs.map +1 -0
  37. package/dist/dev-utils/fatal-process-barrier.test.d.mts +2 -0
  38. package/dist/dev-utils/fatal-process-barrier.test.d.mts.map +1 -0
  39. package/dist/dev-utils/fatal-process-barrier.test.mjs +281 -0
  40. package/dist/dev-utils/fatal-process-barrier.test.mjs.map +1 -0
  41. package/dist/telemetry/logging.js +1 -1
  42. package/dist/telemetry/logging.js.map +1 -1
  43. package/dist/telemetry/safe-stringify.d.ts.map +1 -1
  44. package/dist/telemetry/safe-stringify.js +25 -9
  45. package/dist/telemetry/safe-stringify.js.map +1 -1
  46. package/package.json +10 -6
  47. package/src/cli-replacement/automatic-upgrades.test.ts +2 -1
  48. package/src/cli-replacement/automatic-upgrades.ts +4 -11
  49. package/src/cli-replacement/dev-s3-restore.test.mts +6 -2
  50. package/src/cli-replacement/dev-startup-git-before-dbfs-order.test.mts +6 -2
  51. package/src/cli-replacement/dev-startup-lock-acquisition.test.mts +573 -0
  52. package/src/cli-replacement/dev.interception.test.mts +12 -12
  53. package/src/cli-replacement/dev.mts +112 -56
  54. package/src/dev-utils/dev-server.mts +93 -88
  55. package/src/dev-utils/dev-server.shutdown-lock.test.mts +58 -0
  56. package/src/dev-utils/fatal-process-barrier.mts +262 -0
  57. package/src/dev-utils/fatal-process-barrier.spawn-fixture.mts +12 -0
  58. package/src/dev-utils/fatal-process-barrier.test.mts +346 -0
  59. package/src/telemetry/logging.ts +1 -1
  60. package/src/telemetry/safe-stringify.ts +25 -10
  61. package/test/safe-stringify.test.mts +25 -0
  62. package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,281 @@
1
+ import { spawnSync } from "node:child_process";
2
+ import { createRequire } from "node:module";
3
+ import { fileURLToPath } from "node:url";
4
+ import { afterEach, describe, expect, it, vi } from "vitest";
5
+ import { FATAL_EXIT_EVENT } from "./fatal-exit.mjs";
6
+ import { fatalAwareExitCode, installFatalProcessBarrier, isFatalProcessHandled, } from "./fatal-process-barrier.mjs";
7
+ /**
8
+ * Stands in for `process` so a test can emit crash events without arming the
9
+ * real handlers, which would take the test runner down with them.
10
+ */
11
+ function fakeProcess() {
12
+ const handlers = new Map();
13
+ return {
14
+ emit(event, ...args) {
15
+ for (const handler of handlers.get(event) ?? []) {
16
+ handler(...args);
17
+ }
18
+ },
19
+ listenerCount(event) {
20
+ return handlers.get(event)?.length ?? 0;
21
+ },
22
+ off(event, handler) {
23
+ handlers.set(event, (handlers.get(event) ?? []).filter((each) => each !== handler));
24
+ },
25
+ on(event, handler) {
26
+ handlers.set(event, [...(handlers.get(event) ?? []), handler]);
27
+ },
28
+ };
29
+ }
30
+ describe("installFatalProcessBarrier", () => {
31
+ it("logs a fatal-exit line with error meta and exits 1 when a throw happens before the server exists", async () => {
32
+ const host = fakeProcess();
33
+ const exit = vi.fn();
34
+ const log = vi.fn();
35
+ const crash = new TypeError("cannot read properties of null");
36
+ installFatalProcessBarrier({ exit, isWarm: false, log, process: host });
37
+ host.emit("uncaughtException", crash);
38
+ await vi.waitFor(() => expect(exit).toHaveBeenCalledWith(1));
39
+ expect(log).toHaveBeenCalledTimes(1);
40
+ const [message, meta] = log.mock.calls[0] ?? [];
41
+ expect(message).toContain(`event=${FATAL_EXIT_EVENT}`);
42
+ expect(message).toContain("handler=uncaughtException");
43
+ expect(message).toContain("exit_code=1");
44
+ expect(meta).toEqual({
45
+ error: {
46
+ kind: "TypeError",
47
+ message: "cannot read properties of null",
48
+ stack: crash.stack,
49
+ },
50
+ });
51
+ });
52
+ it("serializes a plain-object rejection so the message is not [object Object]", async () => {
53
+ const host = fakeProcess();
54
+ const exit = vi.fn();
55
+ const log = vi.fn();
56
+ const reason = { code: 8, message: "[internal] Connection closed" };
57
+ installFatalProcessBarrier({ exit, isWarm: false, log, process: host });
58
+ host.emit("unhandledRejection", reason);
59
+ await vi.waitFor(() => expect(exit).toHaveBeenCalledWith(1));
60
+ const [, meta] = log.mock.calls[0] ?? [];
61
+ expect(meta).toEqual({
62
+ error: {
63
+ kind: "Unknown Error",
64
+ message: JSON.stringify(reason),
65
+ },
66
+ });
67
+ });
68
+ it("serializes a BigInt field in a non-Error rejection and still exits 1", async () => {
69
+ const host = fakeProcess();
70
+ const exit = vi.fn();
71
+ const log = vi.fn();
72
+ const reason = { id: 8n, message: "closed" };
73
+ installFatalProcessBarrier({ exit, isWarm: false, log, process: host });
74
+ host.emit("unhandledRejection", reason);
75
+ await vi.waitFor(() => expect(exit).toHaveBeenCalledWith(1));
76
+ const [message, meta] = log.mock.calls[0] ?? [];
77
+ expect(String(message)).toContain(`event=${FATAL_EXIT_EVENT}`);
78
+ expect(meta).toEqual({
79
+ error: {
80
+ kind: "Unknown Error",
81
+ message: '{"id":"8","message":"closed"}',
82
+ },
83
+ });
84
+ });
85
+ it("still writes the fatal-exit line and exits 1 when toJSON throws", async () => {
86
+ const host = fakeProcess();
87
+ const exit = vi.fn();
88
+ const log = vi.fn();
89
+ const reason = {
90
+ toJSON() {
91
+ throw new Error("cannot serialize");
92
+ },
93
+ };
94
+ installFatalProcessBarrier({ exit, isWarm: false, log, process: host });
95
+ host.emit("unhandledRejection", reason);
96
+ await vi.waitFor(() => expect(exit).toHaveBeenCalledWith(1));
97
+ expect(log).toHaveBeenCalledTimes(1);
98
+ const [message, meta] = log.mock.calls[0] ?? [];
99
+ expect(String(message)).toContain(`event=${FATAL_EXIT_EVENT}`);
100
+ expect(meta).toEqual({
101
+ error: {
102
+ kind: "Unknown Error",
103
+ message: "[object Object]",
104
+ },
105
+ });
106
+ expect(isFatalProcessHandled(host)).toBe(true);
107
+ });
108
+ it("still exits 1 when the fatal log itself throws after the barrier is marked handled", async () => {
109
+ const host = fakeProcess();
110
+ const exit = vi.fn();
111
+ installFatalProcessBarrier({
112
+ exit,
113
+ isWarm: false,
114
+ log: () => {
115
+ throw new Error("logger exploded");
116
+ },
117
+ process: host,
118
+ });
119
+ host.emit("uncaughtException", new Error("boom"));
120
+ await vi.waitFor(() => expect(exit).toHaveBeenCalledWith(1));
121
+ expect(isFatalProcessHandled(host)).toBe(true);
122
+ });
123
+ it("labels an unhandled rejection as a rejection, not an exception", async () => {
124
+ const host = fakeProcess();
125
+ const exit = vi.fn();
126
+ const log = vi.fn();
127
+ installFatalProcessBarrier({ exit, isWarm: false, log, process: host });
128
+ host.emit("unhandledRejection", new Error("upstream timed out"));
129
+ await vi.waitFor(() => expect(exit).toHaveBeenCalledWith(1));
130
+ const [message] = log.mock.calls[0] ?? [];
131
+ expect(message).toContain("handler=unhandledRejection");
132
+ });
133
+ it("writes one fatal-exit line for a burst of crashes", async () => {
134
+ const host = fakeProcess();
135
+ const exit = vi.fn();
136
+ const log = vi.fn();
137
+ installFatalProcessBarrier({ exit, isWarm: false, log, process: host });
138
+ host.emit("uncaughtException", new Error("first"));
139
+ host.emit("unhandledRejection", new Error("second"));
140
+ host.emit("uncaughtException", new Error("third"));
141
+ await vi.waitFor(() => expect(exit).toHaveBeenCalledTimes(1));
142
+ expect(log).toHaveBeenCalledTimes(1);
143
+ expect(String(log.mock.calls[0]?.[0])).toContain("handler=uncaughtException");
144
+ });
145
+ it("arms one set of handlers however many times it is installed", async () => {
146
+ const host = fakeProcess();
147
+ const exit = vi.fn();
148
+ const log = vi.fn();
149
+ installFatalProcessBarrier({ exit, isWarm: false, log, process: host });
150
+ installFatalProcessBarrier({ exit, isWarm: false, log, process: host });
151
+ host.emit("uncaughtException", new Error("boom"));
152
+ await vi.waitFor(() => expect(exit).toHaveBeenCalledTimes(1));
153
+ expect(log).toHaveBeenCalledTimes(1);
154
+ });
155
+ it("still exits fatally when isNonFatal throws, and logs the predicate failure", async () => {
156
+ const host = fakeProcess();
157
+ const exit = vi.fn();
158
+ const log = vi.fn();
159
+ const predicateError = new Error("predicate exploded");
160
+ installFatalProcessBarrier({
161
+ exit,
162
+ isNonFatal: () => {
163
+ throw predicateError;
164
+ },
165
+ log,
166
+ process: host,
167
+ });
168
+ host.emit("unhandledRejection", new Error("closed"));
169
+ await vi.waitFor(() => expect(exit).toHaveBeenCalledWith(1));
170
+ expect(log).toHaveBeenCalledTimes(2);
171
+ const [predicateMessage, predicateMeta] = log.mock.calls[0] ?? [];
172
+ expect(String(predicateMessage)).not.toContain(`event=${FATAL_EXIT_EVENT}`);
173
+ expect(predicateMeta).toEqual({
174
+ error: {
175
+ kind: "Error",
176
+ message: "predicate exploded",
177
+ stack: predicateError.stack,
178
+ },
179
+ });
180
+ const [fatalMessage] = log.mock.calls[1] ?? [];
181
+ expect(String(fatalMessage)).toContain(`event=${FATAL_EXIT_EVENT}`);
182
+ });
183
+ it("keeps the process alive when isNonFatal says the reason is recoverable", () => {
184
+ const host = fakeProcess();
185
+ const exit = vi.fn();
186
+ const log = vi.fn();
187
+ installFatalProcessBarrier({
188
+ exit,
189
+ isNonFatal: (_handler, reason) => reason instanceof Error && reason.message === "closed",
190
+ log,
191
+ process: host,
192
+ });
193
+ host.emit("unhandledRejection", new Error("closed"));
194
+ expect(exit).not.toHaveBeenCalled();
195
+ expect(log).not.toHaveBeenCalled();
196
+ });
197
+ it("upgrades onFatal on an already-armed host without a second listener", async () => {
198
+ const host = fakeProcess();
199
+ const exit = vi.fn();
200
+ const log = vi.fn();
201
+ const onFatal = vi.fn();
202
+ installFatalProcessBarrier({ exit, isWarm: false, log, process: host });
203
+ installFatalProcessBarrier({ onFatal, process: host });
204
+ host.emit("uncaughtException", new Error("boom"));
205
+ await vi.waitFor(() => expect(exit).toHaveBeenCalledWith(1));
206
+ expect(onFatal).toHaveBeenCalledTimes(1);
207
+ expect(onFatal.mock.calls[0]?.[0]).toBe("uncaughtException");
208
+ });
209
+ it("reports a crash as exit code 1 so graceful shutdown cannot claim 0", async () => {
210
+ const host = fakeProcess();
211
+ const exit = vi.fn();
212
+ installFatalProcessBarrier({
213
+ exit,
214
+ log: () => undefined,
215
+ onFatal: () => undefined,
216
+ process: host,
217
+ });
218
+ expect(fatalAwareExitCode(host)).toBe(0);
219
+ host.emit("uncaughtException", new Error("boom"));
220
+ await vi.waitFor(() => expect(isFatalProcessHandled(host)).toBe(true));
221
+ expect(fatalAwareExitCode(host)).toBe(1);
222
+ });
223
+ });
224
+ describe("installFatalProcessBarrier across CLI module copies", () => {
225
+ afterEach(() => {
226
+ vi.resetModules();
227
+ });
228
+ it("shares hooks across module instances, as when bin/run.js and the esbuild bundle each load their own", async () => {
229
+ const host = fakeProcess();
230
+ const exit = vi.fn();
231
+ const log = vi.fn();
232
+ const onFatal = vi.fn();
233
+ const early = await import("./fatal-process-barrier.mjs");
234
+ early.installFatalProcessBarrier({
235
+ exit,
236
+ isWarm: false,
237
+ log,
238
+ process: host,
239
+ });
240
+ expect(host.listenerCount("uncaughtException")).toBe(1);
241
+ expect(host.listenerCount("unhandledRejection")).toBe(1);
242
+ vi.resetModules();
243
+ const later = await import("./fatal-process-barrier.mjs");
244
+ later.installFatalProcessBarrier({
245
+ exit,
246
+ isNonFatal: (_handler, reason) => reason instanceof Error && reason.message === "closed",
247
+ log,
248
+ onFatal,
249
+ process: host,
250
+ });
251
+ expect(host.listenerCount("uncaughtException")).toBe(1);
252
+ expect(host.listenerCount("unhandledRejection")).toBe(1);
253
+ host.emit("unhandledRejection", new Error("closed"));
254
+ expect(exit).not.toHaveBeenCalled();
255
+ expect(log).not.toHaveBeenCalled();
256
+ expect(onFatal).not.toHaveBeenCalled();
257
+ host.emit("uncaughtException", new Error("boom"));
258
+ await vi.waitFor(() => expect(exit).toHaveBeenCalledWith(1));
259
+ expect(onFatal).toHaveBeenCalledTimes(1);
260
+ expect(log).toHaveBeenCalledTimes(1);
261
+ });
262
+ });
263
+ describe("installEarlyFatalProcessBarrier in a real Node process", () => {
264
+ it("writes the fatal-exit token and stack to stderr before exiting 1", () => {
265
+ const fixture = fileURLToPath(new URL("./fatal-process-barrier.spawn-fixture.mts", import.meta.url));
266
+ const require = createRequire(fileURLToPath(new URL("../../package.json", import.meta.url)));
267
+ const tsx = require.resolve("tsx");
268
+ const result = spawnSync(process.execPath, ["--import", tsx, fixture], {
269
+ encoding: "utf8",
270
+ env: { ...process.env, NODE_OPTIONS: "" },
271
+ timeout: 30_000,
272
+ });
273
+ const output = `${result.stdout}${result.stderr}`;
274
+ expect(result.status).toBe(1);
275
+ expect(output).toContain(`event=${FATAL_EXIT_EVENT}`);
276
+ expect(output).toContain("handler=uncaughtException");
277
+ expect(output).toContain("spawn-fixture crash");
278
+ expect(output).toMatch(/TypeError/);
279
+ });
280
+ });
281
+ //# sourceMappingURL=fatal-process-barrier.test.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fatal-process-barrier.test.mjs","sourceRoot":"","sources":["../../src/dev-utils/fatal-process-barrier.test.mts"],"names":[],"mappings":"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"}
@@ -149,7 +149,7 @@ export function getErrorMeta(error) {
149
149
  return {
150
150
  error: {
151
151
  kind: "Unknown Error",
152
- message: safeStringify(error) ?? String(error),
152
+ message: safeStringify(error),
153
153
  },
154
154
  };
155
155
  }
@@ -1 +1 @@
1
- {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/telemetry/logging.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/telemetry/logging.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"safe-stringify.d.ts","sourceRoot":"","sources":["../../src/telemetry/safe-stringify.ts"],"names":[],"mappings":"AAAA,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAsBlD"}
1
+ {"version":3,"file":"safe-stringify.d.ts","sourceRoot":"","sources":["../../src/telemetry/safe-stringify.ts"],"names":[],"mappings":"AAQA,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CA6BlD"}
@@ -1,3 +1,11 @@
1
+ function fallbackString(value) {
2
+ try {
3
+ return String(value);
4
+ }
5
+ catch {
6
+ return "[unserializable]";
7
+ }
8
+ }
1
9
  export function safeStringify(obj) {
2
10
  if (obj === null || obj === undefined) {
3
11
  return String(obj);
@@ -9,15 +17,23 @@ export function safeStringify(obj) {
9
17
  return String(obj);
10
18
  }
11
19
  const seen = new WeakSet();
12
- return JSON.stringify(obj, (_key, value) => {
13
- if (value === null || typeof value !== "object") {
20
+ try {
21
+ return JSON.stringify(obj, (_key, value) => {
22
+ if (typeof value === "bigint") {
23
+ return value.toString();
24
+ }
25
+ if (value === null || typeof value !== "object") {
26
+ return value;
27
+ }
28
+ if (seen.has(value)) {
29
+ return "[Circular]";
30
+ }
31
+ seen.add(value);
14
32
  return value;
15
- }
16
- if (seen.has(value)) {
17
- return "[Circular]";
18
- }
19
- seen.add(value);
20
- return value;
21
- });
33
+ });
34
+ }
35
+ catch {
36
+ return fallbackString(obj);
37
+ }
22
38
  }
23
39
  //# sourceMappingURL=safe-stringify.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"safe-stringify.js","sourceRoot":"","sources":["../../src/telemetry/safe-stringify.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,aAAa,CAAC,GAAY;IACxC,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,GAAG,CAAC;IACb,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,OAAO,EAAE,CAAC;IAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACzC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAChD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACpB,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChB,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"safe-stringify.js","sourceRoot":"","sources":["../../src/telemetry/safe-stringify.ts"],"names":[],"mappings":"AAAA,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,kBAAkB,CAAC;IAC5B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAY;IACxC,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,GAAG,CAAC;IACb,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,OAAO,EAAU,CAAC;IACnC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,KAAc,EAAE,EAAE;YAClD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC1B,CAAC;YACD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAChD,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpB,OAAO,YAAY,CAAC;YACtB,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAChB,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@superblocksteam/sdk",
3
- "version": "2.0.155",
3
+ "version": "2.0.156-next.1",
4
4
  "description": "Superblocks JS SDK",
5
5
  "homepage": "https://www.superblocks.com",
6
6
  "license": "Superblocks Community Software License",
@@ -10,6 +10,10 @@
10
10
  "types": "./dist/index.d.ts",
11
11
  "import": "./dist/index.js"
12
12
  },
13
+ "./fatal-process-barrier": {
14
+ "types": "./dist/dev-utils/fatal-process-barrier.d.mts",
15
+ "import": "./dist/dev-utils/fatal-process-barrier.mjs"
16
+ },
13
17
  "./otlp-config": {
14
18
  "types": "./dist/telemetry/otlp-config.d.ts",
15
19
  "import": "./dist/telemetry/otlp-config.js"
@@ -57,11 +61,11 @@
57
61
  "vite-tsconfig-paths": "^6.0.4",
58
62
  "winston": "^3.17.0",
59
63
  "yaml": "^2.7.1",
60
- "@superblocksteam/telemetry": "2.0.155",
61
- "@superblocksteam/library-shared": "2.0.155",
62
- "@superblocksteam/vite-plugin-file-sync": "2.0.155",
63
- "@superblocksteam/util": "2.0.155",
64
- "@superblocksteam/shared": "0.9608.3"
64
+ "@superblocksteam/library-shared": "2.0.156-next.1",
65
+ "@superblocksteam/shared": "0.9609.1",
66
+ "@superblocksteam/telemetry": "2.0.156-next.1",
67
+ "@superblocksteam/util": "2.0.156-next.1",
68
+ "@superblocksteam/vite-plugin-file-sync": "2.0.156-next.1"
65
69
  },
66
70
  "devDependencies": {
67
71
  "@eslint/js": "^9.39.2",
@@ -190,7 +190,8 @@ const TARGET_LIBRARY_VERSION = "1.9.0";
190
190
  const TARGET_SDK_API_VERSION = "0.5.0";
191
191
 
192
192
  const mockLockService = {
193
- shutdown: vi.fn(async () => undefined),
193
+ relinquishLock: vi.fn(async () => undefined),
194
+ notifyClosedByServer: vi.fn(async () => undefined),
194
195
  } as unknown as Parameters<typeof checkVersionsAndWritePackageJson>[0];
195
196
 
196
197
  const mockConfig: Parameters<typeof checkVersionsAndWritePackageJson>[1] = {
@@ -543,12 +543,10 @@ export async function checkVersionsAndWritePackageJson(
543
543
  getErrorMeta(error),
544
544
  );
545
545
  await traceFunction({
546
- name: "shutdownLockService",
546
+ name: "relinquishLock",
547
547
  tracer,
548
548
  fn: async () => {
549
- await lockService.shutdown({
550
- serverInitiated: false,
551
- });
549
+ await lockService.relinquishLock();
552
550
  },
553
551
  });
554
552
  hasFailedToUpgrade = true;
@@ -751,14 +749,9 @@ export async function checkVersionsAndWritePackageJson(
751
749
  // Restart CLI if anything was updated
752
750
  if (hasFailedToUpgrade) {
753
751
  try {
754
- await lockService.shutdown({
755
- serverInitiated: false,
756
- });
752
+ await lockService.relinquishLock();
757
753
  } catch (error) {
758
- logger.error(
759
- "Error shutting down lock service and releasing lock",
760
- getErrorMeta(error),
761
- );
754
+ logger.error("Error handing the lock back", getErrorMeta(error));
762
755
  }
763
756
  process.exit(1);
764
757
  }
@@ -174,9 +174,11 @@ vi.mock("@superblocksteam/vite-plugin-file-sync/git-service", () => ({
174
174
 
175
175
  const mockLockService = {
176
176
  acquireLock: vi.fn(async () => undefined),
177
- shutdown: vi.fn(async () => undefined),
177
+ relinquishLock: vi.fn(async () => undefined),
178
+ notifyClosedByServer: vi.fn(async () => undefined),
178
179
  shutdownAndExit: vi.fn(async () => undefined),
179
180
  setIsRestarting: vi.fn(),
181
+ setOnLockConflict: vi.fn(),
180
182
  isLocked: false,
181
183
  connectedUsers: [],
182
184
  wasRecentlyActive: false,
@@ -186,9 +188,11 @@ const mockLockService = {
186
188
  vi.mock("@superblocksteam/vite-plugin-file-sync/lock-service", () => ({
187
189
  LockService: class {
188
190
  acquireLock = mockLockService.acquireLock;
189
- shutdown = mockLockService.shutdown;
191
+ relinquishLock = mockLockService.relinquishLock;
192
+ notifyClosedByServer = mockLockService.notifyClosedByServer;
190
193
  shutdownAndExit = mockLockService.shutdownAndExit;
191
194
  setIsRestarting = mockLockService.setIsRestarting;
195
+ setOnLockConflict = mockLockService.setOnLockConflict;
192
196
  isLocked = mockLockService.isLocked;
193
197
  connectedUsers = mockLockService.connectedUsers;
194
198
  wasRecentlyActive = mockLockService.wasRecentlyActive;
@@ -224,9 +224,11 @@ vi.mock("@superblocksteam/vite-plugin-file-sync/git-service", () => ({
224
224
 
225
225
  const mockLockService = {
226
226
  acquireLock: vi.fn(async () => undefined),
227
- shutdown: vi.fn(async () => undefined),
227
+ relinquishLock: vi.fn(async () => undefined),
228
+ notifyClosedByServer: vi.fn(async () => undefined),
228
229
  shutdownAndExit: vi.fn(async () => undefined),
229
230
  setIsRestarting: vi.fn(),
231
+ setOnLockConflict: vi.fn(),
230
232
  isLocked: false,
231
233
  connectedUsers: [],
232
234
  wasRecentlyActive: false,
@@ -236,9 +238,11 @@ const mockLockService = {
236
238
  vi.mock("@superblocksteam/vite-plugin-file-sync/lock-service", () => ({
237
239
  LockService: class {
238
240
  acquireLock = mockLockService.acquireLock;
239
- shutdown = mockLockService.shutdown;
241
+ relinquishLock = mockLockService.relinquishLock;
242
+ notifyClosedByServer = mockLockService.notifyClosedByServer;
240
243
  shutdownAndExit = mockLockService.shutdownAndExit;
241
244
  setIsRestarting = mockLockService.setIsRestarting;
245
+ setOnLockConflict = mockLockService.setOnLockConflict;
242
246
  isLocked = mockLockService.isLocked;
243
247
  connectedUsers = mockLockService.connectedUsers;
244
248
  wasRecentlyActive = mockLockService.wasRecentlyActive;