rivetkit 2.0.41 → 2.0.43-rc.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 (115) hide show
  1. package/dist/tsup/actor/errors.cjs +2 -2
  2. package/dist/tsup/actor/errors.cjs.map +1 -1
  3. package/dist/tsup/actor/errors.js +1 -1
  4. package/dist/tsup/{chunk-LMG4QMDO.js → chunk-2NJQ3DJ5.js} +15 -5
  5. package/dist/tsup/{chunk-LMG4QMDO.js.map → chunk-2NJQ3DJ5.js.map} +1 -1
  6. package/dist/tsup/{chunk-SNAUKDDK.cjs → chunk-2XQS746M.cjs} +4 -4
  7. package/dist/tsup/chunk-2XQS746M.cjs.map +1 -0
  8. package/dist/tsup/{chunk-DSNSFYDL.cjs → chunk-3HKN5HQ7.cjs} +3 -3
  9. package/dist/tsup/chunk-3HKN5HQ7.cjs.map +1 -0
  10. package/dist/tsup/{chunk-B5UXC4QV.cjs → chunk-BEMEUFS2.cjs} +78 -78
  11. package/dist/tsup/chunk-BEMEUFS2.cjs.map +1 -0
  12. package/dist/tsup/chunk-CKBPIXRM.js +278 -0
  13. package/dist/tsup/chunk-CKBPIXRM.js.map +1 -0
  14. package/dist/tsup/{chunk-GTQKDCM4.cjs → chunk-ETNL2HZL.cjs} +49 -49
  15. package/dist/tsup/chunk-ETNL2HZL.cjs.map +1 -0
  16. package/dist/tsup/{chunk-OXN6EZUB.js → chunk-F7ZL4T63.js} +3 -3
  17. package/dist/tsup/chunk-GBENOENJ.cjs.map +1 -1
  18. package/dist/tsup/chunk-KDFWJKMJ.cjs.map +1 -1
  19. package/dist/tsup/{chunk-2YHR67M4.js → chunk-LFVF5SCU.js} +4 -4
  20. package/dist/tsup/chunk-LFVF5SCU.js.map +1 -0
  21. package/dist/tsup/{chunk-4UHJ3ADW.cjs → chunk-MQ3PTGWH.cjs} +115 -99
  22. package/dist/tsup/chunk-MQ3PTGWH.cjs.map +1 -0
  23. package/dist/tsup/{chunk-Y7ZDTLD2.js → chunk-NENM5PQN.js} +2 -2
  24. package/dist/tsup/chunk-R33VIC3W.cjs +278 -0
  25. package/dist/tsup/chunk-R33VIC3W.cjs.map +1 -0
  26. package/dist/tsup/{chunk-QDVKDX7G.cjs → chunk-ROVVTBUE.cjs} +9 -9
  27. package/dist/tsup/chunk-ROVVTBUE.cjs.map +1 -0
  28. package/dist/tsup/{chunk-7KIR3QLO.js → chunk-S22E2HUH.js} +24 -8
  29. package/dist/tsup/chunk-S22E2HUH.js.map +1 -0
  30. package/dist/tsup/{chunk-UGOCTUBG.js → chunk-TFMRMA5S.js} +5 -5
  31. package/dist/tsup/{chunk-WYZLRPQM.cjs → chunk-YR6H6STI.cjs} +269 -269
  32. package/dist/tsup/chunk-YR6H6STI.cjs.map +1 -0
  33. package/dist/tsup/{chunk-S6F7EKC7.cjs → chunk-YZZF7DES.cjs} +20 -10
  34. package/dist/tsup/chunk-YZZF7DES.cjs.map +1 -0
  35. package/dist/tsup/{chunk-4J5EFV3E.js → chunk-Z3BORZE2.js} +5 -5
  36. package/dist/tsup/{chunk-NRP2OHSW.js → chunk-ZKCVZA7Z.js} +5 -5
  37. package/dist/tsup/client/mod.cjs +6 -6
  38. package/dist/tsup/client/mod.cjs.map +1 -1
  39. package/dist/tsup/client/mod.d.cts +2 -2
  40. package/dist/tsup/client/mod.d.ts +2 -2
  41. package/dist/tsup/client/mod.js +5 -5
  42. package/dist/tsup/common/log.cjs +3 -3
  43. package/dist/tsup/common/log.cjs.map +1 -1
  44. package/dist/tsup/common/log.d.cts +2 -2
  45. package/dist/tsup/common/log.d.ts +2 -2
  46. package/dist/tsup/common/log.js +2 -2
  47. package/dist/tsup/common/websocket.cjs +4 -4
  48. package/dist/tsup/common/websocket.cjs.map +1 -1
  49. package/dist/tsup/common/websocket.js +3 -3
  50. package/dist/tsup/{config-D43N-CFi.d.ts → config-CLnylLYY.d.ts} +10 -10
  51. package/dist/tsup/{config-COyis_uH.d.cts → config-CZB2-W8x.d.cts} +10 -10
  52. package/dist/tsup/{driver-KyM2v645.d.ts → driver-D0QX9M11.d.ts} +1 -1
  53. package/dist/tsup/driver-helpers/mod.cjs +4 -4
  54. package/dist/tsup/driver-helpers/mod.cjs.map +1 -1
  55. package/dist/tsup/driver-helpers/mod.d.cts +2 -2
  56. package/dist/tsup/driver-helpers/mod.d.ts +2 -2
  57. package/dist/tsup/driver-helpers/mod.js +3 -3
  58. package/dist/tsup/{driver-Bt7B-qMd.d.cts → driver-q-zqG7fc.d.cts} +1 -1
  59. package/dist/tsup/driver-test-suite/mod.cjs +323 -448
  60. package/dist/tsup/driver-test-suite/mod.cjs.map +1 -1
  61. package/dist/tsup/driver-test-suite/mod.d.cts +2 -2
  62. package/dist/tsup/driver-test-suite/mod.d.ts +2 -2
  63. package/dist/tsup/driver-test-suite/mod.js +916 -1041
  64. package/dist/tsup/driver-test-suite/mod.js.map +1 -1
  65. package/dist/tsup/inspector/mod.cjs.map +1 -1
  66. package/dist/tsup/mod.cjs +8 -8
  67. package/dist/tsup/mod.cjs.map +1 -1
  68. package/dist/tsup/mod.d.cts +4 -4
  69. package/dist/tsup/mod.d.ts +4 -4
  70. package/dist/tsup/mod.js +7 -7
  71. package/dist/tsup/serve-test-suite/mod.cjs +1581 -0
  72. package/dist/tsup/serve-test-suite/mod.cjs.map +1 -0
  73. package/dist/tsup/serve-test-suite/mod.d.cts +9 -0
  74. package/dist/tsup/serve-test-suite/mod.d.ts +9 -0
  75. package/dist/tsup/serve-test-suite/mod.js +1578 -0
  76. package/dist/tsup/serve-test-suite/mod.js.map +1 -0
  77. package/dist/tsup/test/mod.cjs +8 -8
  78. package/dist/tsup/test/mod.cjs.map +1 -1
  79. package/dist/tsup/test/mod.d.cts +1 -1
  80. package/dist/tsup/test/mod.d.ts +1 -1
  81. package/dist/tsup/test/mod.js +7 -7
  82. package/dist/tsup/utils.cjs +3 -3
  83. package/dist/tsup/utils.cjs.map +1 -1
  84. package/dist/tsup/utils.js +2 -2
  85. package/package.json +14 -4
  86. package/src/actor/errors.ts +4 -4
  87. package/src/driver-test-suite/mod.ts +3 -0
  88. package/src/driver-test-suite/tests/actor-driver.ts +4 -0
  89. package/src/driver-test-suite/tests/actor-lifecycle.ts +157 -0
  90. package/src/driver-test-suite/tests/conn-error-serialization.ts +64 -0
  91. package/src/drivers/engine/actor-driver.ts +24 -4
  92. package/src/serve-test-suite/mod.ts +147 -0
  93. package/dist/schemas/actor-persist/v1.js +0 -167
  94. package/dist/schemas/actor-persist/v2.js +0 -200
  95. package/dist/schemas/actor-persist/v3.js +0 -200
  96. package/dist/schemas/client-protocol/v1.js +0 -301
  97. package/dist/schemas/client-protocol/v2.js +0 -299
  98. package/dist/schemas/file-system-driver/v1.js +0 -76
  99. package/dist/schemas/file-system-driver/v2.js +0 -103
  100. package/dist/schemas/file-system-driver/v3.js +0 -122
  101. package/dist/tsup/chunk-2YHR67M4.js.map +0 -1
  102. package/dist/tsup/chunk-4UHJ3ADW.cjs.map +0 -1
  103. package/dist/tsup/chunk-7KIR3QLO.js.map +0 -1
  104. package/dist/tsup/chunk-B5UXC4QV.cjs.map +0 -1
  105. package/dist/tsup/chunk-DSNSFYDL.cjs.map +0 -1
  106. package/dist/tsup/chunk-GTQKDCM4.cjs.map +0 -1
  107. package/dist/tsup/chunk-QDVKDX7G.cjs.map +0 -1
  108. package/dist/tsup/chunk-S6F7EKC7.cjs.map +0 -1
  109. package/dist/tsup/chunk-SNAUKDDK.cjs.map +0 -1
  110. package/dist/tsup/chunk-WYZLRPQM.cjs.map +0 -1
  111. /package/dist/tsup/{chunk-OXN6EZUB.js.map → chunk-F7ZL4T63.js.map} +0 -0
  112. /package/dist/tsup/{chunk-Y7ZDTLD2.js.map → chunk-NENM5PQN.js.map} +0 -0
  113. /package/dist/tsup/{chunk-UGOCTUBG.js.map → chunk-TFMRMA5S.js.map} +0 -0
  114. /package/dist/tsup/{chunk-4J5EFV3E.js.map → chunk-Z3BORZE2.js.map} +0 -0
  115. /package/dist/tsup/{chunk-NRP2OHSW.js.map → chunk-ZKCVZA7Z.js.map} +0 -0
@@ -0,0 +1,64 @@
1
+ import { describe, expect, test } from "vitest";
2
+ import type { DriverTestConfig } from "../mod";
3
+ import { setupDriverTest } from "../utils";
4
+
5
+ export function runConnErrorSerializationTests(driverTestConfig: DriverTestConfig) {
6
+ describe("Connection Error Serialization Tests", () => {
7
+ test("error thrown in createConnState preserves group and code through WebSocket serialization", async (c) => {
8
+ const { client } = await setupDriverTest(c, driverTestConfig);
9
+
10
+ const actorKey = `test-error-serialization-${Date.now()}`;
11
+
12
+ // Create actor handle with params that will trigger error in createConnState
13
+ const actor = client.connErrorSerializationActor.getOrCreate(
14
+ [actorKey],
15
+ { params: { shouldThrow: true } },
16
+ );
17
+
18
+ // Try to connect, which will trigger error in createConnState
19
+ const conn = actor.connect();
20
+
21
+ // Wait for connection to fail
22
+ let caughtError: any;
23
+ try {
24
+ // Try to call an action, which should fail because connection couldn't be established
25
+ await conn.getValue();
26
+ } catch (err) {
27
+ caughtError = err;
28
+ }
29
+
30
+ // Verify the error was caught
31
+ expect(caughtError).toBeDefined();
32
+
33
+ // Verify the error has the correct group and code from the original error
34
+ // Original error: new CustomConnectionError("...") with group="connection", code="custom_error"
35
+ expect(caughtError.group).toBe("connection");
36
+ expect(caughtError.code).toBe("custom_error");
37
+
38
+ // Clean up
39
+ await conn.dispose();
40
+ });
41
+
42
+ test("successful createConnState does not throw error", async (c) => {
43
+ const { client } = await setupDriverTest(c, driverTestConfig);
44
+
45
+ const actorKey = `test-no-error-${Date.now()}`;
46
+
47
+ // Create actor handle with params that will NOT trigger error
48
+ const actor = client.connErrorSerializationActor.getOrCreate(
49
+ [actorKey],
50
+ { params: { shouldThrow: false } },
51
+ );
52
+
53
+ // Connect without triggering error
54
+ const conn = actor.connect();
55
+
56
+ // This should succeed
57
+ const value = await conn.getValue();
58
+ expect(value).toBe(0);
59
+
60
+ // Clean up
61
+ await conn.dispose();
62
+ });
63
+ });
64
+ }
@@ -153,7 +153,7 @@ export class EngineActorDriver implements ActorDriver {
153
153
  onConnected: () => {
154
154
  this.#runnerStarted.resolve(undefined);
155
155
  },
156
- onDisconnected: (_code, _reason) => {},
156
+ onDisconnected: (_code, _reason) => { },
157
157
  onShutdown: () => {
158
158
  this.#runnerStopped.resolve(undefined);
159
159
  this.#isRunnerStopped = true;
@@ -358,7 +358,7 @@ export class EngineActorDriver implements ActorDriver {
358
358
  async serverlessHandleStart(c: HonoContext): Promise<Response> {
359
359
  return streamSSE(c, async (stream) => {
360
360
  // NOTE: onAbort does not work reliably
361
- stream.onAbort(() => {});
361
+ stream.onAbort(() => { });
362
362
  c.req.raw.signal.addEventListener("abort", () => {
363
363
  logger().debug("SSE aborted, shutting down runner");
364
364
 
@@ -490,7 +490,26 @@ export class EngineActorDriver implements ActorDriver {
490
490
  this.#actorStopIntent.delete(actorId);
491
491
 
492
492
  const handler = this.#actors.get(actorId);
493
- if (handler?.actor) {
493
+ if (!handler) {
494
+ logger().debug({ msg: "no runner actor handler to stop", actorId, reason });
495
+ return;
496
+ }
497
+
498
+ if (handler.actorStartPromise) {
499
+ try {
500
+ logger().debug({ msg: "runner actor stopping before it started, waiting", actorId, generation });
501
+ await handler.actorStartPromise.promise;
502
+ } catch (err) {
503
+ // Start failed, but we still want to clean up the handler
504
+ logger().debug({
505
+ msg: "actor start failed during stop, cleaning up handler",
506
+ actorId,
507
+ err: stringifyError(err),
508
+ });
509
+ }
510
+ }
511
+
512
+ if (handler.actor) {
494
513
  try {
495
514
  await handler.actor.onStop(reason);
496
515
  } catch (err) {
@@ -499,9 +518,10 @@ export class EngineActorDriver implements ActorDriver {
499
518
  err: stringifyError(err),
500
519
  });
501
520
  }
502
- this.#actors.delete(actorId);
503
521
  }
504
522
 
523
+ this.#actors.delete(actorId);
524
+
505
525
  logger().debug({ msg: "runner actor stopped", actorId, reason });
506
526
  }
507
527
 
@@ -0,0 +1,147 @@
1
+ import { serve as honoServe } from "@hono/node-server";
2
+ import { createNodeWebSocket } from "@hono/node-ws";
3
+ import { createServer } from "node:net";
4
+ import { fileURLToPath } from "node:url";
5
+ import invariant from "invariant";
6
+ import { buildManagerRouter } from "@/manager/router";
7
+ import { createFileSystemOrMemoryDriver } from "@/drivers/file-system/mod";
8
+ import { logger } from "@/driver-test-suite/log";
9
+ import { registry } from "../../fixtures/driver-test-suite/registry";
10
+
11
+ export interface ServeTestSuiteResult {
12
+ endpoint: string;
13
+ namespace: string;
14
+ runnerName: string;
15
+ close(): Promise<void>;
16
+ }
17
+
18
+ async function getPort(): Promise<number> {
19
+ const MIN_PORT = 10000;
20
+ const MAX_PORT = 65535;
21
+ const getRandomPort = () =>
22
+ Math.floor(Math.random() * (MAX_PORT - MIN_PORT + 1)) + MIN_PORT;
23
+
24
+ let port = getRandomPort();
25
+ let maxAttempts = 10;
26
+
27
+ while (maxAttempts > 0) {
28
+ try {
29
+ const server = await new Promise<any>((resolve, reject) => {
30
+ const server = createServer();
31
+
32
+ server.once("error", (err: Error & { code?: string }) => {
33
+ if (err.code === "EADDRINUSE") {
34
+ reject(new Error(`Port ${port} is in use`));
35
+ } else {
36
+ reject(err);
37
+ }
38
+ });
39
+
40
+ server.once("listening", () => {
41
+ resolve(server);
42
+ });
43
+
44
+ server.listen(port);
45
+ });
46
+
47
+ await new Promise<void>((resolve) => {
48
+ server.close(() => resolve());
49
+ });
50
+
51
+ return port;
52
+ } catch {
53
+ maxAttempts--;
54
+ if (maxAttempts <= 0) {
55
+ break;
56
+ }
57
+ port = getRandomPort();
58
+ }
59
+ }
60
+
61
+ throw new Error("Could not find an available port after multiple attempts");
62
+ }
63
+
64
+ export async function serveTestSuite(): Promise<ServeTestSuiteResult> {
65
+ registry.config.test = { ...registry.config.test, enabled: true };
66
+ registry.config.inspector = {
67
+ enabled: true,
68
+ token: () => "token",
69
+ };
70
+ const port = await getPort();
71
+ registry.config.managerPort = port;
72
+ registry.config.serverless = {
73
+ ...registry.config.serverless,
74
+ publicEndpoint: `http://127.0.0.1:${port}`,
75
+ };
76
+
77
+ const driver = await createFileSystemOrMemoryDriver(
78
+ true,
79
+ `/tmp/rivetkit-test-suite-${crypto.randomUUID()}`,
80
+ );
81
+ registry.config.driver = driver;
82
+
83
+ let upgradeWebSocket: any;
84
+
85
+ const parsedConfig = registry.parseConfig();
86
+ const managerDriver = driver.manager?.(parsedConfig);
87
+ invariant(managerDriver, "missing manager driver");
88
+ const { router } = buildManagerRouter(
89
+ parsedConfig,
90
+ managerDriver,
91
+ () => upgradeWebSocket,
92
+ );
93
+
94
+ const nodeWebSocket = createNodeWebSocket({ app: router });
95
+ upgradeWebSocket = nodeWebSocket.upgradeWebSocket;
96
+ managerDriver.setGetUpgradeWebSocket(() => upgradeWebSocket);
97
+
98
+ const server = honoServe({
99
+ fetch: router.fetch,
100
+ hostname: "127.0.0.1",
101
+ port,
102
+ });
103
+ invariant(
104
+ nodeWebSocket.injectWebSocket !== undefined,
105
+ "should have injectWebSocket",
106
+ );
107
+ nodeWebSocket.injectWebSocket(server);
108
+ const endpoint = `http://127.0.0.1:${port}`;
109
+
110
+ logger().info({ msg: "test suite server listening", port });
111
+
112
+ return {
113
+ endpoint,
114
+ namespace: "default",
115
+ runnerName: "default",
116
+ close: async () => {
117
+ await new Promise((resolve) => server.close(() => resolve(undefined)));
118
+ },
119
+ };
120
+ }
121
+
122
+ async function runCli() {
123
+ const result = await serveTestSuite();
124
+ process.stdout.write(
125
+ `${JSON.stringify({
126
+ endpoint: result.endpoint,
127
+ namespace: result.namespace,
128
+ runnerName: result.runnerName,
129
+ })}\n`,
130
+ );
131
+
132
+ const shutdown = async () => {
133
+ await result.close();
134
+ process.exit(0);
135
+ };
136
+
137
+ process.on("SIGINT", shutdown);
138
+ process.on("SIGTERM", shutdown);
139
+ }
140
+
141
+ const mainPath = process.argv[1];
142
+ if (mainPath && mainPath === fileURLToPath(import.meta.url)) {
143
+ runCli().catch((err) => {
144
+ logger().error({ msg: "serve-test-suite failed", error: err });
145
+ process.exit(1);
146
+ });
147
+ }
@@ -1,167 +0,0 @@
1
- // @generated - post-processed by compile-bare.ts
2
- import * as bare from "@rivetkit/bare-ts";
3
- const config = /* @__PURE__ */ bare.Config({});
4
- export function readPersistedSubscription(bc) {
5
- return {
6
- eventName: bare.readString(bc),
7
- };
8
- }
9
- export function writePersistedSubscription(bc, x) {
10
- bare.writeString(bc, x.eventName);
11
- }
12
- function read0(bc) {
13
- const len = bare.readUintSafe(bc);
14
- if (len === 0) {
15
- return [];
16
- }
17
- const result = [readPersistedSubscription(bc)];
18
- for (let i = 1; i < len; i++) {
19
- result[i] = readPersistedSubscription(bc);
20
- }
21
- return result;
22
- }
23
- function write0(bc, x) {
24
- bare.writeUintSafe(bc, x.length);
25
- for (let i = 0; i < x.length; i++) {
26
- writePersistedSubscription(bc, x[i]);
27
- }
28
- }
29
- export function readPersistedConnection(bc) {
30
- return {
31
- id: bare.readString(bc),
32
- token: bare.readString(bc),
33
- parameters: bare.readData(bc),
34
- state: bare.readData(bc),
35
- subscriptions: read0(bc),
36
- lastSeen: bare.readU64(bc),
37
- };
38
- }
39
- export function writePersistedConnection(bc, x) {
40
- bare.writeString(bc, x.id);
41
- bare.writeString(bc, x.token);
42
- bare.writeData(bc, x.parameters);
43
- bare.writeData(bc, x.state);
44
- write0(bc, x.subscriptions);
45
- bare.writeU64(bc, x.lastSeen);
46
- }
47
- function read1(bc) {
48
- return bare.readBool(bc)
49
- ? bare.readData(bc)
50
- : null;
51
- }
52
- function write1(bc, x) {
53
- bare.writeBool(bc, x !== null);
54
- if (x !== null) {
55
- bare.writeData(bc, x);
56
- }
57
- }
58
- export function readGenericPersistedScheduleEvent(bc) {
59
- return {
60
- action: bare.readString(bc),
61
- args: read1(bc),
62
- };
63
- }
64
- export function writeGenericPersistedScheduleEvent(bc, x) {
65
- bare.writeString(bc, x.action);
66
- write1(bc, x.args);
67
- }
68
- export function readPersistedScheduleEventKind(bc) {
69
- const offset = bc.offset;
70
- const tag = bare.readU8(bc);
71
- switch (tag) {
72
- case 0:
73
- return { tag: "GenericPersistedScheduleEvent", val: readGenericPersistedScheduleEvent(bc) };
74
- default: {
75
- bc.offset = offset;
76
- throw new bare.BareError(offset, "invalid tag");
77
- }
78
- }
79
- }
80
- export function writePersistedScheduleEventKind(bc, x) {
81
- switch (x.tag) {
82
- case "GenericPersistedScheduleEvent": {
83
- bare.writeU8(bc, 0);
84
- writeGenericPersistedScheduleEvent(bc, x.val);
85
- break;
86
- }
87
- }
88
- }
89
- export function readPersistedScheduleEvent(bc) {
90
- return {
91
- eventId: bare.readString(bc),
92
- timestamp: bare.readU64(bc),
93
- kind: readPersistedScheduleEventKind(bc),
94
- };
95
- }
96
- export function writePersistedScheduleEvent(bc, x) {
97
- bare.writeString(bc, x.eventId);
98
- bare.writeU64(bc, x.timestamp);
99
- writePersistedScheduleEventKind(bc, x.kind);
100
- }
101
- function read2(bc) {
102
- const len = bare.readUintSafe(bc);
103
- if (len === 0) {
104
- return [];
105
- }
106
- const result = [readPersistedConnection(bc)];
107
- for (let i = 1; i < len; i++) {
108
- result[i] = readPersistedConnection(bc);
109
- }
110
- return result;
111
- }
112
- function write2(bc, x) {
113
- bare.writeUintSafe(bc, x.length);
114
- for (let i = 0; i < x.length; i++) {
115
- writePersistedConnection(bc, x[i]);
116
- }
117
- }
118
- function read3(bc) {
119
- const len = bare.readUintSafe(bc);
120
- if (len === 0) {
121
- return [];
122
- }
123
- const result = [readPersistedScheduleEvent(bc)];
124
- for (let i = 1; i < len; i++) {
125
- result[i] = readPersistedScheduleEvent(bc);
126
- }
127
- return result;
128
- }
129
- function write3(bc, x) {
130
- bare.writeUintSafe(bc, x.length);
131
- for (let i = 0; i < x.length; i++) {
132
- writePersistedScheduleEvent(bc, x[i]);
133
- }
134
- }
135
- export function readPersistedActor(bc) {
136
- return {
137
- input: read1(bc),
138
- hasInitialized: bare.readBool(bc),
139
- state: bare.readData(bc),
140
- connections: read2(bc),
141
- scheduledEvents: read3(bc),
142
- };
143
- }
144
- export function writePersistedActor(bc, x) {
145
- write1(bc, x.input);
146
- bare.writeBool(bc, x.hasInitialized);
147
- bare.writeData(bc, x.state);
148
- write2(bc, x.connections);
149
- write3(bc, x.scheduledEvents);
150
- }
151
- export function encodePersistedActor(x) {
152
- const bc = new bare.ByteCursor(new Uint8Array(config.initialBufferLength), config);
153
- writePersistedActor(bc, x);
154
- return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
155
- }
156
- export function decodePersistedActor(bytes) {
157
- const bc = new bare.ByteCursor(bytes, config);
158
- const result = readPersistedActor(bc);
159
- if (bc.offset < bc.view.byteLength) {
160
- throw new bare.BareError(bc.offset, "remaining bytes");
161
- }
162
- return result;
163
- }
164
- function assert(condition, message) {
165
- if (!condition)
166
- throw new Error(message ?? "Assertion failed");
167
- }
@@ -1,200 +0,0 @@
1
- // @generated - post-processed by compile-bare.ts
2
- import * as bare from "@rivetkit/bare-ts";
3
- const config = /* @__PURE__ */ bare.Config({});
4
- export function readPersistedSubscription(bc) {
5
- return {
6
- eventName: bare.readString(bc),
7
- };
8
- }
9
- export function writePersistedSubscription(bc, x) {
10
- bare.writeString(bc, x.eventName);
11
- }
12
- function read0(bc) {
13
- const len = bare.readUintSafe(bc);
14
- if (len === 0) {
15
- return [];
16
- }
17
- const result = [readPersistedSubscription(bc)];
18
- for (let i = 1; i < len; i++) {
19
- result[i] = readPersistedSubscription(bc);
20
- }
21
- return result;
22
- }
23
- function write0(bc, x) {
24
- bare.writeUintSafe(bc, x.length);
25
- for (let i = 0; i < x.length; i++) {
26
- writePersistedSubscription(bc, x[i]);
27
- }
28
- }
29
- function read1(bc) {
30
- return bare.readBool(bc)
31
- ? bare.readData(bc)
32
- : null;
33
- }
34
- function write1(bc, x) {
35
- bare.writeBool(bc, x !== null);
36
- if (x !== null) {
37
- bare.writeData(bc, x);
38
- }
39
- }
40
- export function readPersistedConnection(bc) {
41
- return {
42
- id: bare.readString(bc),
43
- token: bare.readString(bc),
44
- parameters: bare.readData(bc),
45
- state: bare.readData(bc),
46
- subscriptions: read0(bc),
47
- lastSeen: bare.readI64(bc),
48
- hibernatableRequestId: read1(bc),
49
- };
50
- }
51
- export function writePersistedConnection(bc, x) {
52
- bare.writeString(bc, x.id);
53
- bare.writeString(bc, x.token);
54
- bare.writeData(bc, x.parameters);
55
- bare.writeData(bc, x.state);
56
- write0(bc, x.subscriptions);
57
- bare.writeI64(bc, x.lastSeen);
58
- write1(bc, x.hibernatableRequestId);
59
- }
60
- export function readGenericPersistedScheduleEvent(bc) {
61
- return {
62
- action: bare.readString(bc),
63
- args: read1(bc),
64
- };
65
- }
66
- export function writeGenericPersistedScheduleEvent(bc, x) {
67
- bare.writeString(bc, x.action);
68
- write1(bc, x.args);
69
- }
70
- export function readPersistedScheduleEventKind(bc) {
71
- const offset = bc.offset;
72
- const tag = bare.readU8(bc);
73
- switch (tag) {
74
- case 0:
75
- return { tag: "GenericPersistedScheduleEvent", val: readGenericPersistedScheduleEvent(bc) };
76
- default: {
77
- bc.offset = offset;
78
- throw new bare.BareError(offset, "invalid tag");
79
- }
80
- }
81
- }
82
- export function writePersistedScheduleEventKind(bc, x) {
83
- switch (x.tag) {
84
- case "GenericPersistedScheduleEvent": {
85
- bare.writeU8(bc, 0);
86
- writeGenericPersistedScheduleEvent(bc, x.val);
87
- break;
88
- }
89
- }
90
- }
91
- export function readPersistedScheduleEvent(bc) {
92
- return {
93
- eventId: bare.readString(bc),
94
- timestamp: bare.readI64(bc),
95
- kind: readPersistedScheduleEventKind(bc),
96
- };
97
- }
98
- export function writePersistedScheduleEvent(bc, x) {
99
- bare.writeString(bc, x.eventId);
100
- bare.writeI64(bc, x.timestamp);
101
- writePersistedScheduleEventKind(bc, x.kind);
102
- }
103
- export function readPersistedHibernatableWebSocket(bc) {
104
- return {
105
- requestId: bare.readData(bc),
106
- lastSeenTimestamp: bare.readI64(bc),
107
- msgIndex: bare.readI64(bc),
108
- };
109
- }
110
- export function writePersistedHibernatableWebSocket(bc, x) {
111
- bare.writeData(bc, x.requestId);
112
- bare.writeI64(bc, x.lastSeenTimestamp);
113
- bare.writeI64(bc, x.msgIndex);
114
- }
115
- function read2(bc) {
116
- const len = bare.readUintSafe(bc);
117
- if (len === 0) {
118
- return [];
119
- }
120
- const result = [readPersistedConnection(bc)];
121
- for (let i = 1; i < len; i++) {
122
- result[i] = readPersistedConnection(bc);
123
- }
124
- return result;
125
- }
126
- function write2(bc, x) {
127
- bare.writeUintSafe(bc, x.length);
128
- for (let i = 0; i < x.length; i++) {
129
- writePersistedConnection(bc, x[i]);
130
- }
131
- }
132
- function read3(bc) {
133
- const len = bare.readUintSafe(bc);
134
- if (len === 0) {
135
- return [];
136
- }
137
- const result = [readPersistedScheduleEvent(bc)];
138
- for (let i = 1; i < len; i++) {
139
- result[i] = readPersistedScheduleEvent(bc);
140
- }
141
- return result;
142
- }
143
- function write3(bc, x) {
144
- bare.writeUintSafe(bc, x.length);
145
- for (let i = 0; i < x.length; i++) {
146
- writePersistedScheduleEvent(bc, x[i]);
147
- }
148
- }
149
- function read4(bc) {
150
- const len = bare.readUintSafe(bc);
151
- if (len === 0) {
152
- return [];
153
- }
154
- const result = [readPersistedHibernatableWebSocket(bc)];
155
- for (let i = 1; i < len; i++) {
156
- result[i] = readPersistedHibernatableWebSocket(bc);
157
- }
158
- return result;
159
- }
160
- function write4(bc, x) {
161
- bare.writeUintSafe(bc, x.length);
162
- for (let i = 0; i < x.length; i++) {
163
- writePersistedHibernatableWebSocket(bc, x[i]);
164
- }
165
- }
166
- export function readPersistedActor(bc) {
167
- return {
168
- input: read1(bc),
169
- hasInitialized: bare.readBool(bc),
170
- state: bare.readData(bc),
171
- connections: read2(bc),
172
- scheduledEvents: read3(bc),
173
- hibernatableWebSockets: read4(bc),
174
- };
175
- }
176
- export function writePersistedActor(bc, x) {
177
- write1(bc, x.input);
178
- bare.writeBool(bc, x.hasInitialized);
179
- bare.writeData(bc, x.state);
180
- write2(bc, x.connections);
181
- write3(bc, x.scheduledEvents);
182
- write4(bc, x.hibernatableWebSockets);
183
- }
184
- export function encodePersistedActor(x) {
185
- const bc = new bare.ByteCursor(new Uint8Array(config.initialBufferLength), config);
186
- writePersistedActor(bc, x);
187
- return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
188
- }
189
- export function decodePersistedActor(bytes) {
190
- const bc = new bare.ByteCursor(bytes, config);
191
- const result = readPersistedActor(bc);
192
- if (bc.offset < bc.view.byteLength) {
193
- throw new bare.BareError(bc.offset, "remaining bytes");
194
- }
195
- return result;
196
- }
197
- function assert(condition, message) {
198
- if (!condition)
199
- throw new Error(message ?? "Assertion failed");
200
- }