rivetkit 2.0.28 → 2.0.29

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 (93) hide show
  1. package/dist/tsup/actor/errors.cjs +2 -2
  2. package/dist/tsup/actor/errors.js +1 -1
  3. package/dist/tsup/{chunk-EJXISR3H.js → chunk-2LOXTB3G.js} +3 -3
  4. package/dist/tsup/{chunk-Y2AKEZRY.cjs → chunk-3RJG3PC3.cjs} +3 -3
  5. package/dist/tsup/{chunk-Y2AKEZRY.cjs.map → chunk-3RJG3PC3.cjs.map} +1 -1
  6. package/dist/tsup/{chunk-DATRTJVZ.js → chunk-5IE76QRF.js} +3 -3
  7. package/dist/tsup/{chunk-NR2N4UA2.cjs → chunk-72P7NQS4.cjs} +10 -10
  8. package/dist/tsup/{chunk-NR2N4UA2.cjs.map → chunk-72P7NQS4.cjs.map} +1 -1
  9. package/dist/tsup/{chunk-3ZC6SBX6.cjs → chunk-7DSWCOGX.cjs} +183 -182
  10. package/dist/tsup/chunk-7DSWCOGX.cjs.map +1 -0
  11. package/dist/tsup/{chunk-M54KFQQP.cjs → chunk-7XZX3T4D.cjs} +8 -8
  12. package/dist/tsup/{chunk-M54KFQQP.cjs.map → chunk-7XZX3T4D.cjs.map} +1 -1
  13. package/dist/tsup/{chunk-AE7BB3M2.js → chunk-EWQE7L3V.js} +2 -2
  14. package/dist/tsup/{chunk-KXSSOVFA.js → chunk-FBPZAU3N.js} +80 -15
  15. package/dist/tsup/chunk-FBPZAU3N.js.map +1 -0
  16. package/dist/tsup/{chunk-ZL3SUOIM.js → chunk-H27UUFLD.js} +9 -9
  17. package/dist/tsup/{chunk-Y5LN2XRH.cjs → chunk-HK6QNZX3.cjs} +8 -8
  18. package/dist/tsup/{chunk-Y5LN2XRH.cjs.map → chunk-HK6QNZX3.cjs.map} +1 -1
  19. package/dist/tsup/{chunk-ILK4JEMF.js → chunk-KMOA3GQ2.js} +2 -2
  20. package/dist/tsup/{chunk-XJMYGATE.cjs → chunk-MAQSR26X.cjs} +8 -3
  21. package/dist/tsup/chunk-MAQSR26X.cjs.map +1 -0
  22. package/dist/tsup/{chunk-CJLXW36F.cjs → chunk-MZ3SRIPM.cjs} +286 -221
  23. package/dist/tsup/chunk-MZ3SRIPM.cjs.map +1 -0
  24. package/dist/tsup/{chunk-NQZ643FB.cjs → chunk-MZCRC64W.cjs} +17 -17
  25. package/dist/tsup/{chunk-NQZ643FB.cjs.map → chunk-MZCRC64W.cjs.map} +1 -1
  26. package/dist/tsup/{chunk-LQOCWGP6.js → chunk-P2RZJPYI.js} +1 -1
  27. package/dist/tsup/{chunk-IDYDUETM.js → chunk-POJ4HHIO.js} +3 -3
  28. package/dist/tsup/chunk-POJ4HHIO.js.map +1 -0
  29. package/dist/tsup/{chunk-JALGQWHW.cjs → chunk-QB7FJ2OK.cjs} +15 -15
  30. package/dist/tsup/{chunk-JALGQWHW.cjs.map → chunk-QB7FJ2OK.cjs.map} +1 -1
  31. package/dist/tsup/{chunk-VQRYS6VW.cjs → chunk-UBBTSSAP.cjs} +3 -3
  32. package/dist/tsup/{chunk-VQRYS6VW.cjs.map → chunk-UBBTSSAP.cjs.map} +1 -1
  33. package/dist/tsup/{chunk-YW2E3UPH.cjs → chunk-UENID7AK.cjs} +6 -6
  34. package/dist/tsup/chunk-UENID7AK.cjs.map +1 -0
  35. package/dist/tsup/{chunk-7IAEY5UZ.js → chunk-UJ6ETM45.js} +2 -2
  36. package/dist/tsup/{chunk-S5URQ3CI.js → chunk-WXLDDJCI.js} +3 -3
  37. package/dist/tsup/{chunk-S5URQ3CI.js.map → chunk-WXLDDJCI.js.map} +1 -1
  38. package/dist/tsup/{chunk-AHPMXTSB.js → chunk-YPHTAWZP.js} +16 -16
  39. package/dist/tsup/chunk-YPHTAWZP.js.map +1 -0
  40. package/dist/tsup/client/mod.cjs +9 -9
  41. package/dist/tsup/client/mod.d.cts +2 -2
  42. package/dist/tsup/client/mod.d.ts +2 -2
  43. package/dist/tsup/client/mod.js +8 -8
  44. package/dist/tsup/common/log.cjs +3 -3
  45. package/dist/tsup/common/log.js +2 -2
  46. package/dist/tsup/common/websocket.cjs +4 -4
  47. package/dist/tsup/common/websocket.js +3 -3
  48. package/dist/tsup/{config-DxlmiJS1.d.cts → config-BEu-kmmR.d.cts} +32 -1
  49. package/dist/tsup/{config-CcMdKDv9.d.ts → config-DELCUYts.d.ts} +32 -1
  50. package/dist/tsup/driver-helpers/mod.cjs +5 -5
  51. package/dist/tsup/driver-helpers/mod.d.cts +1 -1
  52. package/dist/tsup/driver-helpers/mod.d.ts +1 -1
  53. package/dist/tsup/driver-helpers/mod.js +4 -4
  54. package/dist/tsup/driver-test-suite/mod.cjs +192 -74
  55. package/dist/tsup/driver-test-suite/mod.cjs.map +1 -1
  56. package/dist/tsup/driver-test-suite/mod.d.cts +1 -1
  57. package/dist/tsup/driver-test-suite/mod.d.ts +1 -1
  58. package/dist/tsup/driver-test-suite/mod.js +135 -17
  59. package/dist/tsup/driver-test-suite/mod.js.map +1 -1
  60. package/dist/tsup/inspector/mod.cjs +6 -6
  61. package/dist/tsup/inspector/mod.d.cts +2 -2
  62. package/dist/tsup/inspector/mod.d.ts +2 -2
  63. package/dist/tsup/inspector/mod.js +5 -5
  64. package/dist/tsup/mod.cjs +10 -10
  65. package/dist/tsup/mod.cjs.map +1 -1
  66. package/dist/tsup/mod.d.cts +2 -2
  67. package/dist/tsup/mod.d.ts +2 -2
  68. package/dist/tsup/mod.js +9 -9
  69. package/dist/tsup/test/mod.cjs +12 -12
  70. package/dist/tsup/test/mod.d.cts +1 -1
  71. package/dist/tsup/test/mod.d.ts +1 -1
  72. package/dist/tsup/test/mod.js +11 -11
  73. package/dist/tsup/utils.cjs +3 -3
  74. package/dist/tsup/utils.js +2 -2
  75. package/package.json +2 -2
  76. package/src/actor/mod.ts +2 -0
  77. package/src/client/actor-conn.ts +87 -0
  78. package/src/client/mod.ts +5 -1
  79. package/src/driver-test-suite/tests/actor-conn.ts +199 -0
  80. package/dist/tsup/chunk-3ZC6SBX6.cjs.map +0 -1
  81. package/dist/tsup/chunk-AHPMXTSB.js.map +0 -1
  82. package/dist/tsup/chunk-CJLXW36F.cjs.map +0 -1
  83. package/dist/tsup/chunk-IDYDUETM.js.map +0 -1
  84. package/dist/tsup/chunk-KXSSOVFA.js.map +0 -1
  85. package/dist/tsup/chunk-XJMYGATE.cjs.map +0 -1
  86. package/dist/tsup/chunk-YW2E3UPH.cjs.map +0 -1
  87. /package/dist/tsup/{chunk-EJXISR3H.js.map → chunk-2LOXTB3G.js.map} +0 -0
  88. /package/dist/tsup/{chunk-DATRTJVZ.js.map → chunk-5IE76QRF.js.map} +0 -0
  89. /package/dist/tsup/{chunk-AE7BB3M2.js.map → chunk-EWQE7L3V.js.map} +0 -0
  90. /package/dist/tsup/{chunk-ZL3SUOIM.js.map → chunk-H27UUFLD.js.map} +0 -0
  91. /package/dist/tsup/{chunk-ILK4JEMF.js.map → chunk-KMOA3GQ2.js.map} +0 -0
  92. /package/dist/tsup/{chunk-LQOCWGP6.js.map → chunk-P2RZJPYI.js.map} +0 -0
  93. /package/dist/tsup/{chunk-7IAEY5UZ.js.map → chunk-UJ6ETM45.js.map} +0 -0
@@ -302,5 +302,204 @@ export function runActorConnTests(driverTestConfig: DriverTestConfig) {
302
302
  );
303
303
  });
304
304
  });
305
+
306
+ describe("Connection State", () => {
307
+ test("isConnected should be false before connection opens", async (c) => {
308
+ const { client } = await setupDriverTest(c, driverTestConfig);
309
+
310
+ // Create actor and get connection
311
+ const handle = client.counter.getOrCreate([
312
+ "test-isconnected-initial",
313
+ ]);
314
+ const connection = handle.connect();
315
+
316
+ // isConnected should be false initially (connection not yet established)
317
+ expect(connection.isConnected).toBe(false);
318
+
319
+ // Wait for connection to be established
320
+ await vi.waitFor(() => {
321
+ expect(connection.isConnected).toBe(true);
322
+ });
323
+
324
+ // Clean up
325
+ await connection.dispose();
326
+ });
327
+
328
+ test("onOpen should be called when connection opens", async (c) => {
329
+ const { client } = await setupDriverTest(c, driverTestConfig);
330
+
331
+ // Create actor and get connection
332
+ const handle = client.counter.getOrCreate(["test-onopen"]);
333
+ const connection = handle.connect();
334
+
335
+ // Track open events
336
+ let openCount = 0;
337
+ connection.onOpen(() => {
338
+ openCount++;
339
+ });
340
+
341
+ // Wait for connection to open
342
+ await vi.waitFor(() => {
343
+ expect(openCount).toBe(1);
344
+ });
345
+
346
+ // Verify isConnected is true
347
+ expect(connection.isConnected).toBe(true);
348
+
349
+ // Clean up
350
+ await connection.dispose();
351
+ });
352
+
353
+ test("onClose should be called when connection closes via dispose", async (c) => {
354
+ const { client } = await setupDriverTest(c, driverTestConfig);
355
+
356
+ // Create actor and get connection
357
+ const handle = client.counter.getOrCreate(["test-onclose"]);
358
+ const connection = handle.connect();
359
+
360
+ // Track close events
361
+ let closeCount = 0;
362
+ connection.onClose(() => {
363
+ closeCount++;
364
+ });
365
+
366
+ // Wait for connection to open first
367
+ await vi.waitFor(() => {
368
+ expect(connection.isConnected).toBe(true);
369
+ });
370
+
371
+ // Dispose connection
372
+ await connection.dispose();
373
+
374
+ // Verify onClose was called
375
+ expect(closeCount).toBe(1);
376
+
377
+ // Verify isConnected is false
378
+ expect(connection.isConnected).toBe(false);
379
+ });
380
+
381
+ test("should be able to unsubscribe from onOpen", async (c) => {
382
+ const { client } = await setupDriverTest(c, driverTestConfig);
383
+
384
+ // Create actor and get connection
385
+ const handle = client.counter.getOrCreate([
386
+ "test-onopen-unsub",
387
+ ]);
388
+ const connection = handle.connect();
389
+
390
+ // Track open events
391
+ let openCount = 0;
392
+ const unsubscribe = connection.onOpen(() => {
393
+ openCount++;
394
+ });
395
+
396
+ // Unsubscribe immediately
397
+ unsubscribe();
398
+
399
+ // Wait a bit for connection to potentially open
400
+ await vi.waitFor(() => {
401
+ expect(connection.isConnected).toBe(true);
402
+ });
403
+
404
+ // Open callback should not have been called since we unsubscribed
405
+ expect(openCount).toBe(0);
406
+
407
+ // Clean up
408
+ await connection.dispose();
409
+ });
410
+
411
+ test("should be able to unsubscribe from onClose", async (c) => {
412
+ const { client } = await setupDriverTest(c, driverTestConfig);
413
+
414
+ // Create actor and get connection
415
+ const handle = client.counter.getOrCreate([
416
+ "test-onclose-unsub",
417
+ ]);
418
+ const connection = handle.connect();
419
+
420
+ // Track close events
421
+ let closeCount = 0;
422
+ const unsubscribe = connection.onClose(() => {
423
+ closeCount++;
424
+ });
425
+
426
+ // Wait for connection to open
427
+ await vi.waitFor(() => {
428
+ expect(connection.isConnected).toBe(true);
429
+ });
430
+
431
+ // Unsubscribe before closing
432
+ unsubscribe();
433
+
434
+ // Dispose connection
435
+ await connection.dispose();
436
+
437
+ // Close callback should not have been called since we unsubscribed
438
+ expect(closeCount).toBe(0);
439
+ });
440
+
441
+ test("multiple onOpen handlers should all be called", async (c) => {
442
+ const { client } = await setupDriverTest(c, driverTestConfig);
443
+
444
+ // Create actor and get connection
445
+ const handle = client.counter.getOrCreate([
446
+ "test-multi-onopen",
447
+ ]);
448
+ const connection = handle.connect();
449
+
450
+ // Track open events from multiple handlers
451
+ let handler1Called = false;
452
+ let handler2Called = false;
453
+
454
+ connection.onOpen(() => {
455
+ handler1Called = true;
456
+ });
457
+ connection.onOpen(() => {
458
+ handler2Called = true;
459
+ });
460
+
461
+ // Wait for connection to open
462
+ await vi.waitFor(() => {
463
+ expect(handler1Called).toBe(true);
464
+ expect(handler2Called).toBe(true);
465
+ });
466
+
467
+ // Clean up
468
+ await connection.dispose();
469
+ });
470
+
471
+ test("multiple onClose handlers should all be called", async (c) => {
472
+ const { client } = await setupDriverTest(c, driverTestConfig);
473
+
474
+ // Create actor and get connection
475
+ const handle = client.counter.getOrCreate([
476
+ "test-multi-onclose",
477
+ ]);
478
+ const connection = handle.connect();
479
+
480
+ // Track close events from multiple handlers
481
+ let handler1Called = false;
482
+ let handler2Called = false;
483
+
484
+ connection.onClose(() => {
485
+ handler1Called = true;
486
+ });
487
+ connection.onClose(() => {
488
+ handler2Called = true;
489
+ });
490
+
491
+ // Wait for connection to open first
492
+ await vi.waitFor(() => {
493
+ expect(connection.isConnected).toBe(true);
494
+ });
495
+
496
+ // Dispose connection
497
+ await connection.dispose();
498
+
499
+ // Verify both handlers were called
500
+ expect(handler1Called).toBe(true);
501
+ expect(handler2Called).toBe(true);
502
+ });
503
+ });
305
504
  });
306
505
  }