rivetkit 2.1.3 → 2.1.4

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 (112) hide show
  1. package/dist/browser/client.d.ts +11 -0
  2. package/dist/browser/client.js +1 -1
  3. package/dist/browser/client.js.map +1 -1
  4. package/dist/browser/inspector/client.js +1 -1
  5. package/dist/browser/inspector/client.js.map +1 -1
  6. package/dist/inspector.tar.gz +0 -0
  7. package/dist/tsup/{chunk-R64EFI6F.cjs → chunk-3B6PCYJB.cjs} +280 -115
  8. package/dist/tsup/chunk-3B6PCYJB.cjs.map +1 -0
  9. package/dist/tsup/{chunk-6LHZQSWJ.js → chunk-3GTO6H3E.js} +8 -4
  10. package/dist/tsup/chunk-3GTO6H3E.js.map +1 -0
  11. package/dist/tsup/{chunk-ZSJ2OTY4.cjs → chunk-4KSHPFXF.cjs} +2 -2
  12. package/dist/tsup/{chunk-ZSJ2OTY4.cjs.map → chunk-4KSHPFXF.cjs.map} +1 -1
  13. package/dist/tsup/{chunk-OAOF23ZY.js → chunk-5UEFNG7P.js} +2 -2
  14. package/dist/tsup/{chunk-MAXIXG56.js → chunk-ANKZ2FS6.js} +2 -4
  15. package/dist/tsup/chunk-ANKZ2FS6.js.map +1 -0
  16. package/dist/tsup/{chunk-DADGS67O.cjs → chunk-AQD4CBZ2.cjs} +4 -4
  17. package/dist/tsup/{chunk-DADGS67O.cjs.map → chunk-AQD4CBZ2.cjs.map} +1 -1
  18. package/dist/tsup/{chunk-YET3IZD6.js → chunk-DZXDUGLL.js} +2 -2
  19. package/dist/tsup/{chunk-YET3IZD6.js.map → chunk-DZXDUGLL.js.map} +1 -1
  20. package/dist/tsup/{chunk-5AZ6UPEF.cjs → chunk-GXRVSSVD.cjs} +24 -20
  21. package/dist/tsup/chunk-GXRVSSVD.cjs.map +1 -0
  22. package/dist/tsup/{chunk-IJAGZS57.cjs → chunk-H5TSEPN4.cjs} +30 -30
  23. package/dist/tsup/{chunk-IJAGZS57.cjs.map → chunk-H5TSEPN4.cjs.map} +1 -1
  24. package/dist/tsup/{chunk-POUBQA6Z.js → chunk-HBYEYBIC.js} +2 -2
  25. package/dist/tsup/{chunk-BMNB6YRQ.cjs → chunk-HKOSZKKZ.cjs} +212 -305
  26. package/dist/tsup/chunk-HKOSZKKZ.cjs.map +1 -0
  27. package/dist/tsup/{chunk-N7ASEZ2Y.js → chunk-I6PL6QIY.js} +5 -5
  28. package/dist/tsup/{chunk-GNGRMP5E.js → chunk-KTWY3K6Z.js} +18 -11
  29. package/dist/tsup/chunk-KTWY3K6Z.js.map +1 -0
  30. package/dist/tsup/{chunk-KSZZRTOD.cjs → chunk-LK36OGGO.cjs} +3 -5
  31. package/dist/tsup/chunk-LK36OGGO.cjs.map +1 -0
  32. package/dist/tsup/{chunk-YLDDENCZ.js → chunk-M6H4XIF4.js} +126 -219
  33. package/dist/tsup/chunk-M6H4XIF4.js.map +1 -0
  34. package/dist/tsup/{chunk-U6VWVHVW.cjs → chunk-QPADHLDU.cjs} +3 -3
  35. package/dist/tsup/{chunk-U6VWVHVW.cjs.map → chunk-QPADHLDU.cjs.map} +1 -1
  36. package/dist/tsup/{chunk-6T3WSP5M.js → chunk-TEFYRRAK.js} +4 -4
  37. package/dist/tsup/{chunk-HPAX7L72.cjs → chunk-TEUL4UYN.cjs} +152 -152
  38. package/dist/tsup/{chunk-HPAX7L72.cjs.map → chunk-TEUL4UYN.cjs.map} +1 -1
  39. package/dist/tsup/{chunk-QUDLEWGD.js → chunk-UDMRZR6A.js} +212 -47
  40. package/dist/tsup/chunk-UDMRZR6A.js.map +1 -0
  41. package/dist/tsup/{chunk-T6MM5RTW.cjs → chunk-UWAGLDT6.cjs} +250 -243
  42. package/dist/tsup/chunk-UWAGLDT6.cjs.map +1 -0
  43. package/dist/tsup/client/mod.cjs +6 -6
  44. package/dist/tsup/client/mod.d.cts +2 -2
  45. package/dist/tsup/client/mod.d.ts +2 -2
  46. package/dist/tsup/client/mod.js +5 -5
  47. package/dist/tsup/common/log.cjs +2 -2
  48. package/dist/tsup/common/log.js +1 -1
  49. package/dist/tsup/common/websocket.cjs +3 -3
  50. package/dist/tsup/common/websocket.js +2 -2
  51. package/dist/tsup/{config-P3XujgRr.d.ts → config-Qj-zLJPc.d.ts} +11 -0
  52. package/dist/tsup/{config-_gfywqqI.d.cts → config-iPj5l1bL.d.cts} +11 -0
  53. package/dist/tsup/{context-uNA4TRn3.d.ts → context-CQCMuHND.d.ts} +1 -1
  54. package/dist/tsup/{context-Bxd8Cx4H.d.cts → context-DzvH1PBK.d.cts} +1 -1
  55. package/dist/tsup/{driver-CPGHKXyh.d.ts → driver-Jo8v-kbU.d.ts} +1 -1
  56. package/dist/tsup/driver-helpers/mod.cjs +4 -4
  57. package/dist/tsup/driver-helpers/mod.d.cts +4 -4
  58. package/dist/tsup/driver-helpers/mod.d.ts +4 -4
  59. package/dist/tsup/driver-helpers/mod.js +3 -3
  60. package/dist/tsup/{driver-BcLvZcKl.d.cts → driver-iV8J-WMv.d.cts} +1 -1
  61. package/dist/tsup/driver-test-suite/mod.cjs +196 -60
  62. package/dist/tsup/driver-test-suite/mod.cjs.map +1 -1
  63. package/dist/tsup/driver-test-suite/mod.d.cts +2 -2
  64. package/dist/tsup/driver-test-suite/mod.d.ts +2 -2
  65. package/dist/tsup/driver-test-suite/mod.js +971 -835
  66. package/dist/tsup/driver-test-suite/mod.js.map +1 -1
  67. package/dist/tsup/inspector/mod.cjs +3 -3
  68. package/dist/tsup/inspector/mod.js +2 -2
  69. package/dist/tsup/mod.cjs +8 -8
  70. package/dist/tsup/mod.d.cts +5 -5
  71. package/dist/tsup/mod.d.ts +5 -5
  72. package/dist/tsup/mod.js +7 -7
  73. package/dist/tsup/serve-test-suite/mod.cjs +182 -100
  74. package/dist/tsup/serve-test-suite/mod.cjs.map +1 -1
  75. package/dist/tsup/serve-test-suite/mod.js +93 -11
  76. package/dist/tsup/serve-test-suite/mod.js.map +1 -1
  77. package/dist/tsup/test/mod.cjs +10 -10
  78. package/dist/tsup/test/mod.d.cts +1 -1
  79. package/dist/tsup/test/mod.d.ts +1 -1
  80. package/dist/tsup/test/mod.js +6 -6
  81. package/dist/tsup/utils.cjs +2 -2
  82. package/dist/tsup/utils.js +1 -1
  83. package/dist/tsup/workflow/mod.cjs +5 -5
  84. package/dist/tsup/workflow/mod.d.cts +3 -3
  85. package/dist/tsup/workflow/mod.d.ts +3 -3
  86. package/dist/tsup/workflow/mod.js +4 -4
  87. package/package.json +5 -5
  88. package/src/actor/config.ts +0 -2
  89. package/src/actor/instance/mod.ts +17 -4
  90. package/src/actor/router.ts +9 -6
  91. package/src/driver-test-suite/mod.ts +3 -0
  92. package/src/driver-test-suite/tests/actor-driver.ts +4 -0
  93. package/src/driver-test-suite/tests/actor-lifecycle.ts +157 -0
  94. package/src/driver-test-suite/tests/conn-error-serialization.ts +64 -0
  95. package/src/drivers/engine/actor-driver.ts +47 -15
  96. package/src/manager/router.ts +20 -6
  97. package/src/{registry → utils}/serve.ts +38 -4
  98. package/src/workflow/context.ts +4 -0
  99. package/dist/tsup/chunk-5AZ6UPEF.cjs.map +0 -1
  100. package/dist/tsup/chunk-6LHZQSWJ.js.map +0 -1
  101. package/dist/tsup/chunk-BMNB6YRQ.cjs.map +0 -1
  102. package/dist/tsup/chunk-GNGRMP5E.js.map +0 -1
  103. package/dist/tsup/chunk-KSZZRTOD.cjs.map +0 -1
  104. package/dist/tsup/chunk-MAXIXG56.js.map +0 -1
  105. package/dist/tsup/chunk-QUDLEWGD.js.map +0 -1
  106. package/dist/tsup/chunk-R64EFI6F.cjs.map +0 -1
  107. package/dist/tsup/chunk-T6MM5RTW.cjs.map +0 -1
  108. package/dist/tsup/chunk-YLDDENCZ.js.map +0 -1
  109. /package/dist/tsup/{chunk-OAOF23ZY.js.map → chunk-5UEFNG7P.js.map} +0 -0
  110. /package/dist/tsup/{chunk-POUBQA6Z.js.map → chunk-HBYEYBIC.js.map} +0 -0
  111. /package/dist/tsup/{chunk-N7ASEZ2Y.js.map → chunk-I6PL6QIY.js.map} +0 -0
  112. /package/dist/tsup/{chunk-6T3WSP5M.js.map → chunk-TEFYRRAK.js.map} +0 -0
@@ -4,20 +4,20 @@
4
4
 
5
5
 
6
6
 
7
- var _chunkIJAGZS57cjs = require('../chunk-IJAGZS57.cjs');
8
- require('../chunk-5AZ6UPEF.cjs');
9
- require('../chunk-DADGS67O.cjs');
10
- require('../chunk-BMNB6YRQ.cjs');
11
- require('../chunk-T6MM5RTW.cjs');
7
+ var _chunkH5TSEPN4cjs = require('../chunk-H5TSEPN4.cjs');
8
+ require('../chunk-GXRVSSVD.cjs');
9
+ require('../chunk-AQD4CBZ2.cjs');
10
+ require('../chunk-HKOSZKKZ.cjs');
11
+ require('../chunk-UWAGLDT6.cjs');
12
12
 
13
13
 
14
14
 
15
15
 
16
16
 
17
- var _chunkHPAX7L72cjs = require('../chunk-HPAX7L72.cjs');
17
+ var _chunkTEUL4UYNcjs = require('../chunk-TEUL4UYN.cjs');
18
18
 
19
19
 
20
- var _chunkU6VWVHVWcjs = require('../chunk-U6VWVHVW.cjs');
20
+ var _chunkQPADHLDUcjs = require('../chunk-QPADHLDU.cjs');
21
21
  require('../chunk-6LJAZ5R4.cjs');
22
22
  require('../chunk-SR3KQE7Q.cjs');
23
23
 
@@ -29,14 +29,14 @@ require('../chunk-SR3KQE7Q.cjs');
29
29
 
30
30
 
31
31
 
32
- var _chunkR64EFI6Fcjs = require('../chunk-R64EFI6F.cjs');
32
+ var _chunk3B6PCYJBcjs = require('../chunk-3B6PCYJB.cjs');
33
33
  require('../chunk-NIYZDWMW.cjs');
34
34
 
35
35
 
36
- var _chunkKSZZRTODcjs = require('../chunk-KSZZRTOD.cjs');
36
+ var _chunkLK36OGGOcjs = require('../chunk-LK36OGGO.cjs');
37
37
 
38
38
 
39
- var _chunkZSJ2OTY4cjs = require('../chunk-ZSJ2OTY4.cjs');
39
+ var _chunk4KSHPFXFcjs = require('../chunk-4KSHPFXF.cjs');
40
40
 
41
41
 
42
42
 
@@ -85,20 +85,20 @@ function createTestInlineClientDriver(endpoint, encoding) {
85
85
  const oldUrl = new URL(actorRequest.url);
86
86
  const normalizedPath = oldUrl.pathname.startsWith("/") ? oldUrl.pathname.slice(1) : oldUrl.pathname;
87
87
  const pathWithQuery = normalizedPath + oldUrl.search;
88
- _chunkIJAGZS57cjs.logger.call(void 0, ).debug({
88
+ _chunkH5TSEPN4cjs.logger.call(void 0, ).debug({
89
89
  msg: "sending raw http request via test inline driver",
90
90
  actorId,
91
91
  encoding,
92
92
  path: pathWithQuery
93
93
  });
94
94
  const url = `${endpoint}/.test/inline-driver/send-request/${pathWithQuery}`;
95
- _chunkIJAGZS57cjs.logger.call(void 0, ).debug({
95
+ _chunkH5TSEPN4cjs.logger.call(void 0, ).debug({
96
96
  msg: "rewriting http url",
97
97
  from: oldUrl,
98
98
  to: url
99
99
  });
100
100
  const headers = new Headers(actorRequest.headers);
101
- headers.set(_chunkR64EFI6Fcjs.HEADER_ACTOR_ID, actorId);
101
+ headers.set(_chunk3B6PCYJBcjs.HEADER_ACTOR_ID, actorId);
102
102
  const response = await fetch(
103
103
  new Request(url, {
104
104
  method: actorRequest.method,
@@ -114,7 +114,7 @@ function createTestInlineClientDriver(endpoint, encoding) {
114
114
  const errorData = await clonedResponse.json();
115
115
  if (errorData.error) {
116
116
  if (typeof errorData.error === "object") {
117
- throw new (0, _chunkHPAX7L72cjs.ActorError)(
117
+ throw new (0, _chunkTEUL4UYNcjs.ActorError)(
118
118
  errorData.error.code,
119
119
  errorData.error.message,
120
120
  errorData.error.metadata
@@ -122,7 +122,7 @@ function createTestInlineClientDriver(endpoint, encoding) {
122
122
  }
123
123
  }
124
124
  } catch (e) {
125
- if (!(e instanceof _chunkHPAX7L72cjs.ActorError)) {
125
+ if (!(e instanceof _chunkTEUL4UYNcjs.ActorError)) {
126
126
  return response;
127
127
  }
128
128
  throw e;
@@ -131,33 +131,33 @@ function createTestInlineClientDriver(endpoint, encoding) {
131
131
  return response;
132
132
  },
133
133
  async openWebSocket(path, actorId, encoding2, params) {
134
- const WebSocket2 = await _chunkU6VWVHVWcjs.importWebSocket.call(void 0, );
134
+ const WebSocket2 = await _chunkQPADHLDUcjs.importWebSocket.call(void 0, );
135
135
  const normalizedPath = path.startsWith("/") ? path.slice(1) : path;
136
136
  const wsUrl = new URL(
137
137
  `${endpoint}/.test/inline-driver/connect-websocket/ws`
138
138
  );
139
- _chunkIJAGZS57cjs.logger.call(void 0, ).debug({
139
+ _chunkH5TSEPN4cjs.logger.call(void 0, ).debug({
140
140
  msg: "creating websocket connection via test inline driver",
141
141
  url: wsUrl.toString()
142
142
  });
143
143
  const wsProtocol = wsUrl.protocol === "https:" ? "wss:" : "ws:";
144
144
  const finalWsUrl = `${wsProtocol}//${wsUrl.host}${wsUrl.pathname}`;
145
145
  const protocols = [];
146
- protocols.push(_chunkR64EFI6Fcjs.WS_PROTOCOL_STANDARD);
147
- protocols.push(`${_chunkR64EFI6Fcjs.WS_PROTOCOL_TARGET}actor`);
146
+ protocols.push(_chunk3B6PCYJBcjs.WS_PROTOCOL_STANDARD);
147
+ protocols.push(`${_chunk3B6PCYJBcjs.WS_PROTOCOL_TARGET}actor`);
148
148
  protocols.push(
149
- `${_chunkR64EFI6Fcjs.WS_PROTOCOL_ACTOR}${encodeURIComponent(actorId)}`
149
+ `${_chunk3B6PCYJBcjs.WS_PROTOCOL_ACTOR}${encodeURIComponent(actorId)}`
150
150
  );
151
- protocols.push(`${_chunkR64EFI6Fcjs.WS_PROTOCOL_ENCODING}${encoding2}`);
151
+ protocols.push(`${_chunk3B6PCYJBcjs.WS_PROTOCOL_ENCODING}${encoding2}`);
152
152
  protocols.push(
153
- `${_chunkR64EFI6Fcjs.WS_TEST_PROTOCOL_PATH}${encodeURIComponent(normalizedPath)}`
153
+ `${_chunk3B6PCYJBcjs.WS_TEST_PROTOCOL_PATH}${encodeURIComponent(normalizedPath)}`
154
154
  );
155
155
  if (params !== void 0) {
156
156
  protocols.push(
157
- `${_chunkR64EFI6Fcjs.WS_PROTOCOL_CONN_PARAMS}${encodeURIComponent(JSON.stringify(params))}`
157
+ `${_chunk3B6PCYJBcjs.WS_PROTOCOL_CONN_PARAMS}${encodeURIComponent(JSON.stringify(params))}`
158
158
  );
159
159
  }
160
- _chunkIJAGZS57cjs.logger.call(void 0, ).debug({
160
+ _chunkH5TSEPN4cjs.logger.call(void 0, ).debug({
161
161
  msg: "connecting to websocket",
162
162
  url: finalWsUrl,
163
163
  protocols
@@ -177,7 +177,7 @@ function createTestInlineClientDriver(endpoint, encoding) {
177
177
  encoding2,
178
178
  params
179
179
  );
180
- return upgradeWebSocket(() => wsHandler)(c, _chunkZSJ2OTY4cjs.noopNext.call(void 0, ));
180
+ return upgradeWebSocket(() => wsHandler)(c, _chunk4KSHPFXFcjs.noopNext.call(void 0, ));
181
181
  },
182
182
  async buildGatewayUrl(actorId) {
183
183
  return `${endpoint}/gateway/${actorId}`;
@@ -194,7 +194,7 @@ function createTestInlineClientDriver(endpoint, encoding) {
194
194
  };
195
195
  }
196
196
  async function makeInlineRequest(endpoint, encoding, method, args) {
197
- _chunkIJAGZS57cjs.logger.call(void 0, ).debug({
197
+ _chunkH5TSEPN4cjs.logger.call(void 0, ).debug({
198
198
  msg: "sending inline request",
199
199
  encoding,
200
200
  method,
@@ -224,14 +224,14 @@ async function makeInlineRequest(endpoint, encoding, method, args) {
224
224
  if ("ok" in callResponse) {
225
225
  return callResponse.ok;
226
226
  } else if ("err" in callResponse) {
227
- throw new (0, _chunkHPAX7L72cjs.ActorError)(
227
+ throw new (0, _chunkTEUL4UYNcjs.ActorError)(
228
228
  callResponse.err.group,
229
229
  callResponse.err.code,
230
230
  callResponse.err.message,
231
231
  callResponse.err.metadata
232
232
  );
233
233
  } else {
234
- _chunkKSZZRTODcjs.assertUnreachable.call(void 0, callResponse);
234
+ _chunkLK36OGGOcjs.assertUnreachable.call(void 0, callResponse);
235
235
  }
236
236
  }
237
237
 
@@ -245,7 +245,7 @@ async function setupDriverTest(c, driverTestConfig) {
245
245
  const { endpoint, namespace, runnerName, cleanup } = await driverTestConfig.start();
246
246
  let client;
247
247
  if (driverTestConfig.clientType === "http") {
248
- client = _chunkHPAX7L72cjs.createClient.call(void 0, {
248
+ client = _chunkTEUL4UYNcjs.createClient.call(void 0, {
249
249
  endpoint,
250
250
  namespace,
251
251
  runnerName,
@@ -258,18 +258,18 @@ async function setupDriverTest(c, driverTestConfig) {
258
258
  } else if (driverTestConfig.clientType === "inline") {
259
259
  const encoding = _nullishCoalesce(driverTestConfig.encoding, () => ( "bare"));
260
260
  const managerDriver = createTestInlineClientDriver(endpoint, encoding);
261
- const runConfig = _chunkHPAX7L72cjs.ClientConfigSchema.parse({
261
+ const runConfig = _chunkTEUL4UYNcjs.ClientConfigSchema.parse({
262
262
  encoding
263
263
  });
264
- client = _chunkHPAX7L72cjs.createClientWithDriver.call(void 0, managerDriver, runConfig);
264
+ client = _chunkTEUL4UYNcjs.createClientWithDriver.call(void 0, managerDriver, runConfig);
265
265
  } else {
266
- _chunkKSZZRTODcjs.assertUnreachable.call(void 0, driverTestConfig.clientType);
266
+ _chunkLK36OGGOcjs.assertUnreachable.call(void 0, driverTestConfig.clientType);
267
267
  }
268
268
  c.onTestFinished(async () => {
269
269
  if (!driverTestConfig.HACK_skipCleanupNet) {
270
270
  await client.dispose();
271
271
  }
272
- _chunkIJAGZS57cjs.logger.call(void 0, ).info("cleaning up test");
272
+ _chunkH5TSEPN4cjs.logger.call(void 0, ).info("cleaning up test");
273
273
  await cleanup();
274
274
  });
275
275
  return {
@@ -989,7 +989,7 @@ function runActorConnHibernationTests(driverTestConfig) {
989
989
  await hibernatingActor.triggerSleep();
990
990
  await waitFor(
991
991
  driverTestConfig,
992
- _chunkIJAGZS57cjs.HIBERNATION_SLEEP_TIMEOUT + 100
992
+ _chunkH5TSEPN4cjs.HIBERNATION_SLEEP_TIMEOUT + 100
993
993
  );
994
994
  const ping2 = await hibernatingActor.ping();
995
995
  _vitest.expect.call(void 0, ping2).toBe("pong");
@@ -1011,7 +1011,7 @@ function runActorConnHibernationTests(driverTestConfig) {
1011
1011
  await hibernatingActor.triggerSleep();
1012
1012
  await waitFor(
1013
1013
  driverTestConfig,
1014
- _chunkIJAGZS57cjs.HIBERNATION_SLEEP_TIMEOUT + 100
1014
+ _chunkH5TSEPN4cjs.HIBERNATION_SLEEP_TIMEOUT + 100
1015
1015
  );
1016
1016
  const count3 = await hibernatingActor.getConnCount();
1017
1017
  _vitest.expect.call(void 0, count3).toBe(2);
@@ -1033,7 +1033,7 @@ function runActorConnHibernationTests(driverTestConfig) {
1033
1033
  await conn1.triggerSleep();
1034
1034
  await waitFor(
1035
1035
  driverTestConfig,
1036
- _chunkIJAGZS57cjs.HIBERNATION_SLEEP_TIMEOUT + 100
1036
+ _chunkH5TSEPN4cjs.HIBERNATION_SLEEP_TIMEOUT + 100
1037
1037
  );
1038
1038
  await conn1.dispose();
1039
1039
  await waitFor(driverTestConfig, 250);
@@ -1642,6 +1642,44 @@ function runActorDbTests(driverTestConfig) {
1642
1642
  });
1643
1643
  }
1644
1644
 
1645
+ // src/driver-test-suite/tests/conn-error-serialization.ts
1646
+
1647
+ function runConnErrorSerializationTests(driverTestConfig) {
1648
+ _vitest.describe.call(void 0, "Connection Error Serialization Tests", () => {
1649
+ _vitest.test.call(void 0, "error thrown in createConnState preserves group and code through WebSocket serialization", async (c) => {
1650
+ const { client } = await setupDriverTest(c, driverTestConfig);
1651
+ const actorKey = `test-error-serialization-${Date.now()}`;
1652
+ const actor = client.connErrorSerializationActor.getOrCreate(
1653
+ [actorKey],
1654
+ { params: { shouldThrow: true } }
1655
+ );
1656
+ const conn = actor.connect();
1657
+ let caughtError;
1658
+ try {
1659
+ await conn.getValue();
1660
+ } catch (err) {
1661
+ caughtError = err;
1662
+ }
1663
+ _vitest.expect.call(void 0, caughtError).toBeDefined();
1664
+ _vitest.expect.call(void 0, caughtError.group).toBe("connection");
1665
+ _vitest.expect.call(void 0, caughtError.code).toBe("custom_error");
1666
+ await conn.dispose();
1667
+ });
1668
+ _vitest.test.call(void 0, "successful createConnState does not throw error", async (c) => {
1669
+ const { client } = await setupDriverTest(c, driverTestConfig);
1670
+ const actorKey = `test-no-error-${Date.now()}`;
1671
+ const actor = client.connErrorSerializationActor.getOrCreate(
1672
+ [actorKey],
1673
+ { params: { shouldThrow: false } }
1674
+ );
1675
+ const conn = actor.connect();
1676
+ const value = await conn.getValue();
1677
+ _vitest.expect.call(void 0, value).toBe(0);
1678
+ await conn.dispose();
1679
+ });
1680
+ });
1681
+ }
1682
+
1645
1683
  // src/driver-test-suite/tests/actor-destroy.ts
1646
1684
 
1647
1685
  function runActorDestroyTests(driverTestConfig) {
@@ -1830,6 +1868,102 @@ function runActorDestroyTests(driverTestConfig) {
1830
1868
  // src/driver-test-suite/tests/actor-driver.ts
1831
1869
 
1832
1870
 
1871
+ // src/driver-test-suite/tests/actor-lifecycle.ts
1872
+
1873
+ function runActorLifecycleTests(driverTestConfig) {
1874
+ _vitest.describe.call(void 0, "Actor Lifecycle Tests", () => {
1875
+ _vitest.test.call(void 0, "actor stop during start waits for start to complete", async (c) => {
1876
+ const { client } = await setupDriverTest(c, driverTestConfig);
1877
+ const actorKey = `test-stop-during-start-${Date.now()}`;
1878
+ const actor = client.startStopRaceActor.getOrCreate([actorKey]);
1879
+ const pingPromise = actor.ping();
1880
+ const actorId = await actor.resolve();
1881
+ await actor.destroy();
1882
+ const result = await pingPromise;
1883
+ _vitest.expect.call(void 0, result).toBe("pong");
1884
+ let destroyed = false;
1885
+ try {
1886
+ await client.startStopRaceActor.getForId(actorId).ping();
1887
+ } catch (err) {
1888
+ destroyed = true;
1889
+ _vitest.expect.call(void 0, err.group).toBe("actor");
1890
+ _vitest.expect.call(void 0, err.code).toBe("not_found");
1891
+ }
1892
+ _vitest.expect.call(void 0, destroyed).toBe(true);
1893
+ });
1894
+ _vitest.test.call(void 0, "actor stop before actor instantiation completes cleans up handler", async (c) => {
1895
+ const { client } = await setupDriverTest(c, driverTestConfig);
1896
+ const actorKey = `test-stop-before-instantiation-${Date.now()}`;
1897
+ const actors = Array.from(
1898
+ { length: 5 },
1899
+ (_, i) => client.startStopRaceActor.getOrCreate([
1900
+ `${actorKey}-${i}`
1901
+ ])
1902
+ );
1903
+ const ids = await Promise.all(actors.map((a) => a.resolve()));
1904
+ await Promise.all(actors.map((a) => a.destroy()));
1905
+ for (const id of ids) {
1906
+ let destroyed = false;
1907
+ try {
1908
+ await client.startStopRaceActor.getForId(id).ping();
1909
+ } catch (err) {
1910
+ destroyed = true;
1911
+ _vitest.expect.call(void 0, err.group).toBe("actor");
1912
+ _vitest.expect.call(void 0, err.code).toBe("not_found");
1913
+ }
1914
+ _vitest.expect.call(void 0, destroyed, `actor ${id} should be destroyed`).toBe(
1915
+ true
1916
+ );
1917
+ }
1918
+ });
1919
+ _vitest.test.call(void 0, "onBeforeActorStart completes before stop proceeds", async (c) => {
1920
+ const { client } = await setupDriverTest(c, driverTestConfig);
1921
+ const actorKey = `test-before-actor-start-${Date.now()}`;
1922
+ const actor = client.startStopRaceActor.getOrCreate([actorKey]);
1923
+ const statePromise = actor.getState();
1924
+ await actor.destroy();
1925
+ const state = await statePromise;
1926
+ _vitest.expect.call(void 0, state.initialized).toBe(true);
1927
+ _vitest.expect.call(void 0, state.startCompleted).toBe(true);
1928
+ });
1929
+ _vitest.test.call(void 0, "multiple rapid create/destroy cycles handle race correctly", async (c) => {
1930
+ const { client } = await setupDriverTest(c, driverTestConfig);
1931
+ for (let i = 0; i < 10; i++) {
1932
+ const actorKey = `test-rapid-cycle-${Date.now()}-${i}`;
1933
+ const actor = client.startStopRaceActor.getOrCreate([
1934
+ actorKey
1935
+ ]);
1936
+ const resolvePromise = actor.resolve();
1937
+ const destroyPromise = actor.destroy();
1938
+ await Promise.all([resolvePromise, destroyPromise]);
1939
+ }
1940
+ _vitest.expect.call(void 0, true).toBe(true);
1941
+ });
1942
+ _vitest.test.call(void 0, "actor stop called with no actor instance cleans up handler", async (c) => {
1943
+ const { client } = await setupDriverTest(c, driverTestConfig);
1944
+ const actorKey = `test-cleanup-no-instance-${Date.now()}`;
1945
+ const actor = client.startStopRaceActor.getOrCreate([actorKey]);
1946
+ const id = await actor.resolve();
1947
+ await actor.destroy();
1948
+ const newActor = client.startStopRaceActor.getOrCreate([
1949
+ actorKey
1950
+ ]);
1951
+ const result = await newActor.ping();
1952
+ _vitest.expect.call(void 0, result).toBe("pong");
1953
+ await newActor.destroy();
1954
+ });
1955
+ _vitest.test.call(void 0, "onDestroy is called even when actor is destroyed during start", async (c) => {
1956
+ const { client } = await setupDriverTest(c, driverTestConfig);
1957
+ const actorKey = `test-ondestroy-during-start-${Date.now()}`;
1958
+ const actor = client.startStopRaceActor.getOrCreate([actorKey]);
1959
+ const statePromise = actor.getState();
1960
+ await actor.destroy();
1961
+ const state = await statePromise;
1962
+ _vitest.expect.call(void 0, state.destroyCalled).toBe(true);
1963
+ });
1964
+ });
1965
+ }
1966
+
1833
1967
  // src/driver-test-suite/tests/actor-schedule.ts
1834
1968
 
1835
1969
  function runActorScheduleTests(driverTestConfig) {
@@ -1924,7 +2058,7 @@ function runActorSleepTests(driverTestConfig) {
1924
2058
  }
1925
2059
  await sleepActor.triggerSleep();
1926
2060
  await sleepActor.dispose();
1927
- await waitFor(driverTestConfig, _chunkIJAGZS57cjs.SLEEP_TIMEOUT + 250);
2061
+ await waitFor(driverTestConfig, _chunkH5TSEPN4cjs.SLEEP_TIMEOUT + 250);
1928
2062
  const sleepActor2 = client.sleep.getOrCreate();
1929
2063
  {
1930
2064
  const { startCount, sleepCount } = await sleepActor2.getCounts();
@@ -1940,7 +2074,7 @@ function runActorSleepTests(driverTestConfig) {
1940
2074
  _vitest.expect.call(void 0, sleepCount).toBe(0);
1941
2075
  _vitest.expect.call(void 0, startCount).toBe(1);
1942
2076
  }
1943
- await waitFor(driverTestConfig, _chunkIJAGZS57cjs.SLEEP_TIMEOUT + 250);
2077
+ await waitFor(driverTestConfig, _chunkH5TSEPN4cjs.SLEEP_TIMEOUT + 250);
1944
2078
  {
1945
2079
  const { startCount, sleepCount } = await sleepActor.getCounts();
1946
2080
  _vitest.expect.call(void 0, sleepCount).toBe(1);
@@ -1956,7 +2090,7 @@ function runActorSleepTests(driverTestConfig) {
1956
2090
  _vitest.expect.call(void 0, startCount).toBe(1);
1957
2091
  }
1958
2092
  await sleepActor.dispose();
1959
- await waitFor(driverTestConfig, _chunkIJAGZS57cjs.SLEEP_TIMEOUT + 250);
2093
+ await waitFor(driverTestConfig, _chunkH5TSEPN4cjs.SLEEP_TIMEOUT + 250);
1960
2094
  const sleepActor2 = client.sleep.getOrCreate();
1961
2095
  {
1962
2096
  const { startCount, sleepCount } = await sleepActor2.getCounts();
@@ -1972,19 +2106,19 @@ function runActorSleepTests(driverTestConfig) {
1972
2106
  _vitest.expect.call(void 0, sleepCount).toBe(0);
1973
2107
  _vitest.expect.call(void 0, startCount).toBe(1);
1974
2108
  }
1975
- await waitFor(driverTestConfig, _chunkIJAGZS57cjs.SLEEP_TIMEOUT - 250);
2109
+ await waitFor(driverTestConfig, _chunkH5TSEPN4cjs.SLEEP_TIMEOUT - 250);
1976
2110
  {
1977
2111
  const { startCount, sleepCount } = await sleepActor.getCounts();
1978
2112
  _vitest.expect.call(void 0, sleepCount).toBe(0);
1979
2113
  _vitest.expect.call(void 0, startCount).toBe(1);
1980
2114
  }
1981
- await waitFor(driverTestConfig, _chunkIJAGZS57cjs.SLEEP_TIMEOUT - 250);
2115
+ await waitFor(driverTestConfig, _chunkH5TSEPN4cjs.SLEEP_TIMEOUT - 250);
1982
2116
  {
1983
2117
  const { startCount, sleepCount } = await sleepActor.getCounts();
1984
2118
  _vitest.expect.call(void 0, sleepCount).toBe(0);
1985
2119
  _vitest.expect.call(void 0, startCount).toBe(1);
1986
2120
  }
1987
- await waitFor(driverTestConfig, _chunkIJAGZS57cjs.SLEEP_TIMEOUT + 250);
2121
+ await waitFor(driverTestConfig, _chunkH5TSEPN4cjs.SLEEP_TIMEOUT + 250);
1988
2122
  {
1989
2123
  const { startCount, sleepCount } = await sleepActor.getCounts();
1990
2124
  _vitest.expect.call(void 0, sleepCount).toBe(1);
@@ -1999,8 +2133,8 @@ function runActorSleepTests(driverTestConfig) {
1999
2133
  _vitest.expect.call(void 0, sleepCount).toBe(0);
2000
2134
  _vitest.expect.call(void 0, startCount).toBe(1);
2001
2135
  }
2002
- await sleepActor.setAlarm(_chunkIJAGZS57cjs.SLEEP_TIMEOUT - 250);
2003
- await waitFor(driverTestConfig, _chunkIJAGZS57cjs.SLEEP_TIMEOUT + 250);
2136
+ await sleepActor.setAlarm(_chunkH5TSEPN4cjs.SLEEP_TIMEOUT - 250);
2137
+ await waitFor(driverTestConfig, _chunkH5TSEPN4cjs.SLEEP_TIMEOUT + 250);
2004
2138
  {
2005
2139
  const { startCount, sleepCount } = await sleepActor.getCounts();
2006
2140
  _vitest.expect.call(void 0, sleepCount).toBe(0);
@@ -2015,8 +2149,8 @@ function runActorSleepTests(driverTestConfig) {
2015
2149
  _vitest.expect.call(void 0, sleepCount).toBe(0);
2016
2150
  _vitest.expect.call(void 0, startCount).toBe(1);
2017
2151
  }
2018
- await sleepActor.setAlarm(_chunkIJAGZS57cjs.SLEEP_TIMEOUT + 250);
2019
- await waitFor(driverTestConfig, _chunkIJAGZS57cjs.SLEEP_TIMEOUT + 200);
2152
+ await sleepActor.setAlarm(_chunkH5TSEPN4cjs.SLEEP_TIMEOUT + 250);
2153
+ await waitFor(driverTestConfig, _chunkH5TSEPN4cjs.SLEEP_TIMEOUT + 200);
2020
2154
  {
2021
2155
  const { startCount, sleepCount } = await sleepActor.getCounts();
2022
2156
  _vitest.expect.call(void 0, sleepCount).toBe(1);
@@ -2036,7 +2170,7 @@ function runActorSleepTests(driverTestConfig) {
2036
2170
  );
2037
2171
  const longRunningPromise = sleepActor.longRunningRpc();
2038
2172
  await waitPromise;
2039
- await waitFor(driverTestConfig, _chunkIJAGZS57cjs.SLEEP_TIMEOUT + 250);
2173
+ await waitFor(driverTestConfig, _chunkH5TSEPN4cjs.SLEEP_TIMEOUT + 250);
2040
2174
  await sleepActor.finishLongRunningRpc();
2041
2175
  await longRunningPromise;
2042
2176
  {
@@ -2045,7 +2179,7 @@ function runActorSleepTests(driverTestConfig) {
2045
2179
  _vitest.expect.call(void 0, startCount).toBe(1);
2046
2180
  }
2047
2181
  await sleepActor.dispose();
2048
- await waitFor(driverTestConfig, _chunkIJAGZS57cjs.SLEEP_TIMEOUT + 250);
2182
+ await waitFor(driverTestConfig, _chunkH5TSEPN4cjs.SLEEP_TIMEOUT + 250);
2049
2183
  const sleepActor2 = client.sleepWithLongRpc.getOrCreate();
2050
2184
  {
2051
2185
  const { startCount, sleepCount } = await sleepActor2.getCounts();
@@ -2077,7 +2211,7 @@ function runActorSleepTests(driverTestConfig) {
2077
2211
  }
2078
2212
  };
2079
2213
  });
2080
- await waitFor(driverTestConfig, _chunkIJAGZS57cjs.SLEEP_TIMEOUT + 250);
2214
+ await waitFor(driverTestConfig, _chunkH5TSEPN4cjs.SLEEP_TIMEOUT + 250);
2081
2215
  ws.send(JSON.stringify({ type: "getCounts" }));
2082
2216
  const counts = await new Promise((resolve) => {
2083
2217
  ws.onmessage = (event) => {
@@ -2090,7 +2224,7 @@ function runActorSleepTests(driverTestConfig) {
2090
2224
  _vitest.expect.call(void 0, counts.sleepCount).toBe(0);
2091
2225
  _vitest.expect.call(void 0, counts.startCount).toBe(1);
2092
2226
  ws.close();
2093
- await waitFor(driverTestConfig, _chunkIJAGZS57cjs.SLEEP_TIMEOUT + 250);
2227
+ await waitFor(driverTestConfig, _chunkH5TSEPN4cjs.SLEEP_TIMEOUT + 250);
2094
2228
  {
2095
2229
  const { startCount, sleepCount } = await sleepActor.getCounts();
2096
2230
  _vitest.expect.call(void 0, sleepCount).toBe(1);
@@ -2108,7 +2242,7 @@ function runActorSleepTests(driverTestConfig) {
2108
2242
  _vitest.expect.call(void 0, sleepCount).toBe(0);
2109
2243
  _vitest.expect.call(void 0, startCount).toBe(1);
2110
2244
  }
2111
- const fetchDuration = _chunkIJAGZS57cjs.SLEEP_TIMEOUT + 250;
2245
+ const fetchDuration = _chunkH5TSEPN4cjs.SLEEP_TIMEOUT + 250;
2112
2246
  const fetchPromise = sleepActor.fetch(
2113
2247
  `long-request?duration=${fetchDuration}`
2114
2248
  );
@@ -2121,7 +2255,7 @@ function runActorSleepTests(driverTestConfig) {
2121
2255
  _vitest.expect.call(void 0, startCount).toBe(1);
2122
2256
  _vitest.expect.call(void 0, requestCount).toBe(1);
2123
2257
  }
2124
- await waitFor(driverTestConfig, _chunkIJAGZS57cjs.SLEEP_TIMEOUT + 250);
2258
+ await waitFor(driverTestConfig, _chunkH5TSEPN4cjs.SLEEP_TIMEOUT + 250);
2125
2259
  {
2126
2260
  const { startCount, sleepCount } = await sleepActor.getCounts();
2127
2261
  _vitest.expect.call(void 0, sleepCount).toBe(1);
@@ -2136,13 +2270,13 @@ function runActorSleepTests(driverTestConfig) {
2136
2270
  _vitest.expect.call(void 0, sleepCount).toBe(0);
2137
2271
  _vitest.expect.call(void 0, startCount).toBe(1);
2138
2272
  }
2139
- await waitFor(driverTestConfig, _chunkIJAGZS57cjs.SLEEP_TIMEOUT + 250);
2273
+ await waitFor(driverTestConfig, _chunkH5TSEPN4cjs.SLEEP_TIMEOUT + 250);
2140
2274
  {
2141
2275
  const { startCount, sleepCount } = await sleepActor.getCounts();
2142
2276
  _vitest.expect.call(void 0, sleepCount).toBe(0);
2143
2277
  _vitest.expect.call(void 0, startCount).toBe(1);
2144
2278
  }
2145
- await waitFor(driverTestConfig, _chunkIJAGZS57cjs.SLEEP_TIMEOUT + 250);
2279
+ await waitFor(driverTestConfig, _chunkH5TSEPN4cjs.SLEEP_TIMEOUT + 250);
2146
2280
  {
2147
2281
  const { startCount, sleepCount } = await sleepActor.getCounts();
2148
2282
  _vitest.expect.call(void 0, sleepCount).toBe(0);
@@ -2195,6 +2329,7 @@ function runActorDriverTests(driverTestConfig) {
2195
2329
  runActorStateTests(driverTestConfig);
2196
2330
  runActorScheduleTests(driverTestConfig);
2197
2331
  runActorSleepTests(driverTestConfig);
2332
+ runActorLifecycleTests(driverTestConfig);
2198
2333
  });
2199
2334
  }
2200
2335
 
@@ -3270,7 +3405,7 @@ function runActorRunTests(driverTestConfig) {
3270
3405
  const state1 = await actor.getState();
3271
3406
  _vitest.expect.call(void 0, state1.runStarted).toBe(true);
3272
3407
  const tickCount1 = state1.tickCount;
3273
- await waitFor(driverTestConfig, _chunkIJAGZS57cjs.RUN_SLEEP_TIMEOUT + 300);
3408
+ await waitFor(driverTestConfig, _chunkH5TSEPN4cjs.RUN_SLEEP_TIMEOUT + 300);
3274
3409
  const state2 = await actor.getState();
3275
3410
  _vitest.expect.call(void 0, state2.runStarted).toBe(true);
3276
3411
  _vitest.expect.call(void 0, state2.runExited).toBe(false);
@@ -3283,7 +3418,7 @@ function runActorRunTests(driverTestConfig) {
3283
3418
  ]);
3284
3419
  const state = await actor.getState();
3285
3420
  _vitest.expect.call(void 0, state.wakeCount).toBe(1);
3286
- await waitFor(driverTestConfig, _chunkIJAGZS57cjs.RUN_SLEEP_TIMEOUT + 300);
3421
+ await waitFor(driverTestConfig, _chunkH5TSEPN4cjs.RUN_SLEEP_TIMEOUT + 300);
3287
3422
  const state2 = await actor.getState();
3288
3423
  _vitest.expect.call(void 0, state2.wakeCount).toBe(2);
3289
3424
  });
@@ -3321,7 +3456,7 @@ function runActorRunTests(driverTestConfig) {
3321
3456
  await waitFor(driverTestConfig, 100);
3322
3457
  const state1 = await actor.getState();
3323
3458
  _vitest.expect.call(void 0, state1.runStarted).toBe(true);
3324
- await waitFor(driverTestConfig, _chunkIJAGZS57cjs.RUN_SLEEP_TIMEOUT + 500);
3459
+ await waitFor(driverTestConfig, _chunkH5TSEPN4cjs.RUN_SLEEP_TIMEOUT + 500);
3325
3460
  const state2 = await actor.getState();
3326
3461
  _vitest.expect.call(void 0, state2.wakeCount).toBeGreaterThan(state1.wakeCount);
3327
3462
  });
@@ -3492,7 +3627,7 @@ function runActorWorkflowTests(driverTestConfig) {
3492
3627
  _vitest.test.call(void 0, "consumes queue messages via workflow queue.next", async (c) => {
3493
3628
  const { client } = await setupDriverTest(c, driverTestConfig);
3494
3629
  const actor = client.workflowQueueActor.getOrCreate(["workflow-queue"]);
3495
- await actor.send(_chunkIJAGZS57cjs.WORKFLOW_QUEUE_NAME, {
3630
+ await actor.send(_chunkH5TSEPN4cjs.WORKFLOW_QUEUE_NAME, {
3496
3631
  hello: "world"
3497
3632
  });
3498
3633
  await waitFor(driverTestConfig, 200);
@@ -4871,6 +5006,7 @@ function runDriverTests(driverTestConfigPartial) {
4871
5006
  runActorConnTests(driverTestConfig);
4872
5007
  runActorConnStateTests(driverTestConfig);
4873
5008
  runActorConnHibernationTests(driverTestConfig);
5009
+ runConnErrorSerializationTests(driverTestConfig);
4874
5010
  runActorDbTests(driverTestConfig);
4875
5011
  runActorDestroyTests(driverTestConfig);
4876
5012
  runRequestAccessTests(driverTestConfig);
@@ -4925,7 +5061,7 @@ async function createTestRuntime(registryPath, driverFactory) {
4925
5061
  const parsedConfig = registry.parseConfig();
4926
5062
  const managerDriver = (_a = driver.manager) == null ? void 0 : _a.call(driver, parsedConfig);
4927
5063
  _invariant2.default.call(void 0, managerDriver, "missing manager driver");
4928
- const { router } = _chunkR64EFI6Fcjs.buildManagerRouter.call(void 0,
5064
+ const { router } = _chunk3B6PCYJBcjs.buildManagerRouter.call(void 0,
4929
5065
  parsedConfig,
4930
5066
  managerDriver,
4931
5067
  () => upgradeWebSocket
@@ -4952,7 +5088,7 @@ async function createTestRuntime(registryPath, driverFactory) {
4952
5088
  _invariant2.default.call(void 0, address && typeof address !== "string", "missing server address");
4953
5089
  const port = address.port;
4954
5090
  const serverEndpoint = `http://127.0.0.1:${port}`;
4955
- _chunkIJAGZS57cjs.logger.call(void 0, ).info({ msg: "test serer listening", port });
5091
+ _chunkH5TSEPN4cjs.logger.call(void 0, ).info({ msg: "test serer listening", port });
4956
5092
  const cleanup = async () => {
4957
5093
  await new Promise(
4958
5094
  (resolve) => server.close(() => resolve(void 0))