rivetkit 2.0.41 → 2.0.42

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 (110) 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-2IJTYN6K.cjs +278 -0
  5. package/dist/tsup/chunk-2IJTYN6K.cjs.map +1 -0
  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-QDVKDX7G.cjs → chunk-3VP5CSHV.cjs} +9 -9
  9. package/dist/tsup/chunk-3VP5CSHV.cjs.map +1 -0
  10. package/dist/tsup/{chunk-4J5EFV3E.js → chunk-AQFSQMBG.js} +5 -5
  11. package/dist/tsup/{chunk-DSNSFYDL.cjs → chunk-EJVBH5VF.cjs} +3 -3
  12. package/dist/tsup/chunk-EJVBH5VF.cjs.map +1 -0
  13. package/dist/tsup/{chunk-LMG4QMDO.js → chunk-FJ3KTN4V.js} +15 -5
  14. package/dist/tsup/chunk-FJ3KTN4V.js.map +1 -0
  15. package/dist/tsup/chunk-GBENOENJ.cjs.map +1 -1
  16. package/dist/tsup/{chunk-WYZLRPQM.cjs → chunk-GD7UXGOE.cjs} +269 -269
  17. package/dist/tsup/chunk-GD7UXGOE.cjs.map +1 -0
  18. package/dist/tsup/{chunk-OXN6EZUB.js → chunk-GMAVRZSF.js} +3 -3
  19. package/dist/tsup/{chunk-S6F7EKC7.cjs → chunk-H4TB4X25.cjs} +20 -10
  20. package/dist/tsup/chunk-H4TB4X25.cjs.map +1 -0
  21. package/dist/tsup/{chunk-7KIR3QLO.js → chunk-JDAD2YFA.js} +6 -6
  22. package/dist/tsup/{chunk-NRP2OHSW.js → chunk-KCOVZOPS.js} +5 -5
  23. package/dist/tsup/chunk-KDFWJKMJ.cjs.map +1 -1
  24. package/dist/tsup/{chunk-2YHR67M4.js → chunk-LFVF5SCU.js} +4 -4
  25. package/dist/tsup/chunk-LFVF5SCU.js.map +1 -0
  26. package/dist/tsup/{chunk-UGOCTUBG.js → chunk-Q6W7RJJP.js} +5 -5
  27. package/dist/tsup/{chunk-GTQKDCM4.cjs → chunk-RUW5CZ5Z.cjs} +49 -49
  28. package/dist/tsup/chunk-RUW5CZ5Z.cjs.map +1 -0
  29. package/dist/tsup/{chunk-B5UXC4QV.cjs → chunk-RZW2DNND.cjs} +78 -78
  30. package/dist/tsup/chunk-RZW2DNND.cjs.map +1 -0
  31. package/dist/tsup/chunk-TCOEBUUE.js +278 -0
  32. package/dist/tsup/chunk-TCOEBUUE.js.map +1 -0
  33. package/dist/tsup/{chunk-4UHJ3ADW.cjs → chunk-X35U3YNX.cjs} +97 -97
  34. package/dist/tsup/chunk-X35U3YNX.cjs.map +1 -0
  35. package/dist/tsup/{chunk-Y7ZDTLD2.js → chunk-XXGJCOL6.js} +2 -2
  36. package/dist/tsup/client/mod.cjs +6 -6
  37. package/dist/tsup/client/mod.cjs.map +1 -1
  38. package/dist/tsup/client/mod.d.cts +2 -2
  39. package/dist/tsup/client/mod.d.ts +2 -2
  40. package/dist/tsup/client/mod.js +5 -5
  41. package/dist/tsup/common/log.cjs +3 -3
  42. package/dist/tsup/common/log.cjs.map +1 -1
  43. package/dist/tsup/common/log.d.cts +2 -2
  44. package/dist/tsup/common/log.d.ts +2 -2
  45. package/dist/tsup/common/log.js +2 -2
  46. package/dist/tsup/common/websocket.cjs +4 -4
  47. package/dist/tsup/common/websocket.cjs.map +1 -1
  48. package/dist/tsup/common/websocket.js +3 -3
  49. package/dist/tsup/{config-D43N-CFi.d.ts → config-CLnylLYY.d.ts} +10 -10
  50. package/dist/tsup/{config-COyis_uH.d.cts → config-CZB2-W8x.d.cts} +10 -10
  51. package/dist/tsup/{driver-KyM2v645.d.ts → driver-D0QX9M11.d.ts} +1 -1
  52. package/dist/tsup/driver-helpers/mod.cjs +4 -4
  53. package/dist/tsup/driver-helpers/mod.cjs.map +1 -1
  54. package/dist/tsup/driver-helpers/mod.d.cts +2 -2
  55. package/dist/tsup/driver-helpers/mod.d.ts +2 -2
  56. package/dist/tsup/driver-helpers/mod.js +3 -3
  57. package/dist/tsup/{driver-Bt7B-qMd.d.cts → driver-q-zqG7fc.d.cts} +1 -1
  58. package/dist/tsup/driver-test-suite/mod.cjs +187 -448
  59. package/dist/tsup/driver-test-suite/mod.cjs.map +1 -1
  60. package/dist/tsup/driver-test-suite/mod.d.cts +2 -2
  61. package/dist/tsup/driver-test-suite/mod.d.ts +2 -2
  62. package/dist/tsup/driver-test-suite/mod.js +141 -402
  63. package/dist/tsup/driver-test-suite/mod.js.map +1 -1
  64. package/dist/tsup/inspector/mod.cjs.map +1 -1
  65. package/dist/tsup/mod.cjs +8 -8
  66. package/dist/tsup/mod.cjs.map +1 -1
  67. package/dist/tsup/mod.d.cts +4 -4
  68. package/dist/tsup/mod.d.ts +4 -4
  69. package/dist/tsup/mod.js +7 -7
  70. package/dist/tsup/serve-test-suite/mod.cjs +1499 -0
  71. package/dist/tsup/serve-test-suite/mod.cjs.map +1 -0
  72. package/dist/tsup/serve-test-suite/mod.d.cts +9 -0
  73. package/dist/tsup/serve-test-suite/mod.d.ts +9 -0
  74. package/dist/tsup/serve-test-suite/mod.js +1496 -0
  75. package/dist/tsup/serve-test-suite/mod.js.map +1 -0
  76. package/dist/tsup/test/mod.cjs +8 -8
  77. package/dist/tsup/test/mod.cjs.map +1 -1
  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 +7 -7
  81. package/dist/tsup/utils.cjs +3 -3
  82. package/dist/tsup/utils.cjs.map +1 -1
  83. package/dist/tsup/utils.js +2 -2
  84. package/package.json +14 -4
  85. package/src/actor/errors.ts +4 -4
  86. package/src/serve-test-suite/mod.ts +147 -0
  87. package/dist/schemas/actor-persist/v1.js +0 -167
  88. package/dist/schemas/actor-persist/v2.js +0 -200
  89. package/dist/schemas/actor-persist/v3.js +0 -200
  90. package/dist/schemas/client-protocol/v1.js +0 -301
  91. package/dist/schemas/client-protocol/v2.js +0 -299
  92. package/dist/schemas/file-system-driver/v1.js +0 -76
  93. package/dist/schemas/file-system-driver/v2.js +0 -103
  94. package/dist/schemas/file-system-driver/v3.js +0 -122
  95. package/dist/tsup/chunk-2YHR67M4.js.map +0 -1
  96. package/dist/tsup/chunk-4UHJ3ADW.cjs.map +0 -1
  97. package/dist/tsup/chunk-B5UXC4QV.cjs.map +0 -1
  98. package/dist/tsup/chunk-DSNSFYDL.cjs.map +0 -1
  99. package/dist/tsup/chunk-GTQKDCM4.cjs.map +0 -1
  100. package/dist/tsup/chunk-LMG4QMDO.js.map +0 -1
  101. package/dist/tsup/chunk-QDVKDX7G.cjs.map +0 -1
  102. package/dist/tsup/chunk-S6F7EKC7.cjs.map +0 -1
  103. package/dist/tsup/chunk-SNAUKDDK.cjs.map +0 -1
  104. package/dist/tsup/chunk-WYZLRPQM.cjs.map +0 -1
  105. /package/dist/tsup/{chunk-4J5EFV3E.js.map → chunk-AQFSQMBG.js.map} +0 -0
  106. /package/dist/tsup/{chunk-OXN6EZUB.js.map → chunk-GMAVRZSF.js.map} +0 -0
  107. /package/dist/tsup/{chunk-7KIR3QLO.js.map → chunk-JDAD2YFA.js.map} +0 -0
  108. /package/dist/tsup/{chunk-NRP2OHSW.js.map → chunk-KCOVZOPS.js.map} +0 -0
  109. /package/dist/tsup/{chunk-UGOCTUBG.js.map → chunk-Q6W7RJJP.js.map} +0 -0
  110. /package/dist/tsup/{chunk-Y7ZDTLD2.js.map → chunk-XXGJCOL6.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/serve-test-suite/mod.ts","../../../fixtures/driver-test-suite/action-inputs.ts","../../../fixtures/driver-test-suite/action-timeout.ts","../../../fixtures/driver-test-suite/action-types.ts","../../../fixtures/driver-test-suite/actor-onstatechange.ts","../../../fixtures/driver-test-suite/conn-params.ts","../../../fixtures/driver-test-suite/conn-state.ts","../../../fixtures/driver-test-suite/counter.ts","../../../fixtures/driver-test-suite/counter-conn.ts","../../../fixtures/driver-test-suite/destroy.ts","../../../fixtures/driver-test-suite/error-handling.ts","../../../fixtures/driver-test-suite/inline-client.ts","../../../fixtures/driver-test-suite/kv.ts","../../../fixtures/driver-test-suite/large-payloads.ts","../../../fixtures/driver-test-suite/lifecycle.ts","../../../fixtures/driver-test-suite/metadata.ts","../../../fixtures/driver-test-suite/raw-http.ts","../../../fixtures/driver-test-suite/raw-http-request-properties.ts","../../../fixtures/driver-test-suite/raw-websocket.ts","../../../fixtures/driver-test-suite/request-access.ts","../../../fixtures/driver-test-suite/reject-connection.ts","../../../fixtures/driver-test-suite/scheduled.ts","../../../fixtures/driver-test-suite/vars.ts","../../../fixtures/driver-test-suite/registry.ts"],"sourcesContent":["import { serve as honoServe } from \"@hono/node-server\";\nimport { createNodeWebSocket } from \"@hono/node-ws\";\nimport { createServer } from \"node:net\";\nimport { fileURLToPath } from \"node:url\";\nimport invariant from \"invariant\";\nimport { buildManagerRouter } from \"@/manager/router\";\nimport { createFileSystemOrMemoryDriver } from \"@/drivers/file-system/mod\";\nimport { logger } from \"@/driver-test-suite/log\";\nimport { registry } from \"../../fixtures/driver-test-suite/registry\";\n\nexport interface ServeTestSuiteResult {\n\tendpoint: string;\n\tnamespace: string;\n\trunnerName: string;\n\tclose(): Promise<void>;\n}\n\nasync function getPort(): Promise<number> {\n\tconst MIN_PORT = 10000;\n\tconst MAX_PORT = 65535;\n\tconst getRandomPort = () =>\n\t\tMath.floor(Math.random() * (MAX_PORT - MIN_PORT + 1)) + MIN_PORT;\n\n\tlet port = getRandomPort();\n\tlet maxAttempts = 10;\n\n\twhile (maxAttempts > 0) {\n\t\ttry {\n\t\t\tconst server = await new Promise<any>((resolve, reject) => {\n\t\t\t\tconst server = createServer();\n\n\t\t\t\tserver.once(\"error\", (err: Error & { code?: string }) => {\n\t\t\t\t\tif (err.code === \"EADDRINUSE\") {\n\t\t\t\t\t\treject(new Error(`Port ${port} is in use`));\n\t\t\t\t\t} else {\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tserver.once(\"listening\", () => {\n\t\t\t\t\tresolve(server);\n\t\t\t\t});\n\n\t\t\t\tserver.listen(port);\n\t\t\t});\n\n\t\t\tawait new Promise<void>((resolve) => {\n\t\t\t\tserver.close(() => resolve());\n\t\t\t});\n\n\t\t\treturn port;\n\t\t} catch {\n\t\t\tmaxAttempts--;\n\t\t\tif (maxAttempts <= 0) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tport = getRandomPort();\n\t\t}\n\t}\n\n\tthrow new Error(\"Could not find an available port after multiple attempts\");\n}\n\nexport async function serveTestSuite(): Promise<ServeTestSuiteResult> {\n\tregistry.config.test = { ...registry.config.test, enabled: true };\n\tregistry.config.inspector = {\n\t\tenabled: true,\n\t\ttoken: () => \"token\",\n\t};\n\tconst port = await getPort();\n\tregistry.config.managerPort = port;\n\tregistry.config.serverless = {\n\t\t...registry.config.serverless,\n\t\tpublicEndpoint: `http://127.0.0.1:${port}`,\n\t};\n\n\tconst driver = await createFileSystemOrMemoryDriver(\n\t\ttrue,\n\t\t`/tmp/rivetkit-test-suite-${crypto.randomUUID()}`,\n\t);\n\tregistry.config.driver = driver;\n\n\tlet upgradeWebSocket: any;\n\n\tconst parsedConfig = registry.parseConfig();\n\tconst managerDriver = driver.manager?.(parsedConfig);\n\tinvariant(managerDriver, \"missing manager driver\");\n\tconst { router } = buildManagerRouter(\n\t\tparsedConfig,\n\t\tmanagerDriver,\n\t\t() => upgradeWebSocket,\n\t);\n\n\tconst nodeWebSocket = createNodeWebSocket({ app: router });\n\tupgradeWebSocket = nodeWebSocket.upgradeWebSocket;\n\tmanagerDriver.setGetUpgradeWebSocket(() => upgradeWebSocket);\n\n\tconst server = honoServe({\n\t\tfetch: router.fetch,\n\t\thostname: \"127.0.0.1\",\n\t\tport,\n\t});\n\tinvariant(\n\t\tnodeWebSocket.injectWebSocket !== undefined,\n\t\t\"should have injectWebSocket\",\n\t);\n\tnodeWebSocket.injectWebSocket(server);\n\tconst endpoint = `http://127.0.0.1:${port}`;\n\n\tlogger().info({ msg: \"test suite server listening\", port });\n\n\treturn {\n\t\tendpoint,\n\t\tnamespace: \"default\",\n\t\trunnerName: \"default\",\n\t\tclose: async () => {\n\t\t\tawait new Promise((resolve) => server.close(() => resolve(undefined)));\n\t\t},\n\t};\n}\n\nasync function runCli() {\n\tconst result = await serveTestSuite();\n\tprocess.stdout.write(\n\t\t`${JSON.stringify({\n\t\t\tendpoint: result.endpoint,\n\t\t\tnamespace: result.namespace,\n\t\t\trunnerName: result.runnerName,\n\t\t})}\\n`,\n\t);\n\n\tconst shutdown = async () => {\n\t\tawait result.close();\n\t\tprocess.exit(0);\n\t};\n\n\tprocess.on(\"SIGINT\", shutdown);\n\tprocess.on(\"SIGTERM\", shutdown);\n}\n\nconst mainPath = process.argv[1];\nif (mainPath && mainPath === fileURLToPath(import.meta.url)) {\n\trunCli().catch((err) => {\n\t\tlogger().error({ msg: \"serve-test-suite failed\", error: err });\n\t\tprocess.exit(1);\n\t});\n}\n","import { actor } from \"rivetkit\";\n\nexport interface State {\n\tinitialInput?: unknown;\n\tonCreateInput?: unknown;\n}\n\n// Test actor that can capture input during creation\nexport const inputActor = actor({\n\tcreateState: (c, input): State => {\n\t\treturn {\n\t\t\tinitialInput: input,\n\t\t\tonCreateInput: undefined,\n\t\t};\n\t},\n\n\tonCreate: (c, input) => {\n\t\tc.state.onCreateInput = input;\n\t},\n\n\tactions: {\n\t\tgetInputs: (c) => {\n\t\t\treturn {\n\t\t\t\tinitialInput: c.state.initialInput,\n\t\t\t\tonCreateInput: c.state.onCreateInput,\n\t\t\t};\n\t\t},\n\t},\n});\n","import { actor } from \"rivetkit\";\n\n// Short timeout actor\nexport const shortTimeoutActor = actor({\n\tstate: { value: 0 },\n\toptions: {\n\t\tactionTimeout: 50, // 50ms timeout\n\t},\n\tactions: {\n\t\tquickAction: async (c) => {\n\t\t\treturn \"quick response\";\n\t\t},\n\t\tslowAction: async (c) => {\n\t\t\t// This action should timeout\n\t\t\tawait new Promise((resolve) => setTimeout(resolve, 100));\n\t\t\treturn \"slow response\";\n\t\t},\n\t},\n});\n\n// Long timeout actor\nexport const longTimeoutActor = actor({\n\tstate: { value: 0 },\n\toptions: {\n\t\tactionTimeout: 200, // 200ms timeout\n\t},\n\tactions: {\n\t\tdelayedAction: async (c) => {\n\t\t\t// This action should complete within timeout\n\t\t\tawait new Promise((resolve) => setTimeout(resolve, 100));\n\t\t\treturn \"delayed response\";\n\t\t},\n\t},\n});\n\n// Default timeout actor\nexport const defaultTimeoutActor = actor({\n\tstate: { value: 0 },\n\tactions: {\n\t\tnormalAction: async (c) => {\n\t\t\tawait new Promise((resolve) => setTimeout(resolve, 50));\n\t\t\treturn \"normal response\";\n\t\t},\n\t},\n});\n\n// Sync actor (timeout shouldn't apply)\nexport const syncTimeoutActor = actor({\n\tstate: { value: 0 },\n\toptions: {\n\t\tactionTimeout: 50, // 50ms timeout\n\t},\n\tactions: {\n\t\tsyncAction: (c) => {\n\t\t\treturn \"sync response\";\n\t\t},\n\t},\n});\n","import { actor, UserError } from \"rivetkit\";\n\n// Actor with synchronous actions\nexport const syncActionActor = actor({\n\tstate: { value: 0 },\n\tactions: {\n\t\t// Simple synchronous action that returns a value directly\n\t\tincrement: (c, amount = 1) => {\n\t\t\tc.state.value += amount;\n\t\t\treturn c.state.value;\n\t\t},\n\t\t// Synchronous action that returns an object\n\t\tgetInfo: (c) => {\n\t\t\treturn {\n\t\t\t\tcurrentValue: c.state.value,\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t};\n\t\t},\n\t\t// Synchronous action with no return value (void)\n\t\treset: (c) => {\n\t\t\tc.state.value = 0;\n\t\t},\n\t},\n});\n\n// Actor with asynchronous actions\nexport const asyncActionActor = actor({\n\tstate: { value: 0, data: null as any },\n\tactions: {\n\t\t// Async action with a delay\n\t\tdelayedIncrement: async (c, amount = 1) => {\n\t\t\tawait Promise.resolve();\n\t\t\tc.state.value += amount;\n\t\t\treturn c.state.value;\n\t\t},\n\t\t// Async action that simulates an API call\n\t\tfetchData: async (c, id: string) => {\n\t\t\tawait Promise.resolve();\n\n\t\t\t// Simulate response data\n\t\t\tconst data = { id, timestamp: Date.now() };\n\t\t\tc.state.data = data;\n\t\t\treturn data;\n\t\t},\n\t\t// Async action with error handling\n\t\tasyncWithError: async (c, shouldError: boolean) => {\n\t\t\tawait Promise.resolve();\n\n\t\t\tif (shouldError) {\n\t\t\t\tthrow new UserError(\"Intentional error\");\n\t\t\t}\n\n\t\t\treturn \"Success\";\n\t\t},\n\t},\n});\n\n// Actor with promise actions\nexport const promiseActor = actor({\n\tstate: { results: [] as string[] },\n\tactions: {\n\t\t// Action that returns a resolved promise\n\t\tresolvedPromise: (c) => {\n\t\t\treturn Promise.resolve(\"resolved value\");\n\t\t},\n\t\t// Action that returns a promise that resolves after a delay\n\t\tdelayedPromise: (c): Promise<string> => {\n\t\t\treturn new Promise<string>((resolve) => {\n\t\t\t\tc.state.results.push(\"delayed\");\n\t\t\t\tresolve(\"delayed value\");\n\t\t\t});\n\t\t},\n\t\t// Action that returns a rejected promise\n\t\trejectedPromise: (c) => {\n\t\t\treturn Promise.reject(new UserError(\"promised rejection\"));\n\t\t},\n\t\t// Action to check the collected results\n\t\tgetResults: (c) => {\n\t\t\treturn c.state.results;\n\t\t},\n\t},\n});\n","import { actor } from \"rivetkit\";\n\nexport const onStateChangeActor = actor({\n\tstate: {\n\t\tvalue: 0,\n\t\tchangeCount: 0,\n\t},\n\tactions: {\n\t\t// Action that modifies state - should trigger onStateChange\n\t\tsetValue: (c, newValue: number) => {\n\t\t\tc.state.value = newValue;\n\t\t\treturn c.state.value;\n\t\t},\n\t\t// Action that modifies state multiple times - should trigger onStateChange for each change\n\t\tincrementMultiple: (c, times: number) => {\n\t\t\tfor (let i = 0; i < times; i++) {\n\t\t\t\tc.state.value++;\n\t\t\t}\n\t\t\treturn c.state.value;\n\t\t},\n\t\t// Action that doesn't modify state - should NOT trigger onStateChange\n\t\tgetValue: (c) => {\n\t\t\treturn c.state.value;\n\t\t},\n\t\t// Action that reads and returns without modifying - should NOT trigger onStateChange\n\t\tgetDoubled: (c) => {\n\t\t\tconst doubled = c.state.value * 2;\n\t\t\treturn doubled;\n\t\t},\n\t\t// Get the count of how many times onStateChange was called\n\t\tgetChangeCount: (c) => {\n\t\t\treturn c.state.changeCount;\n\t\t},\n\t\t// Reset change counter for testing\n\t\tresetChangeCount: (c) => {\n\t\t\tc.state.changeCount = 0;\n\t\t},\n\t},\n\t// Track onStateChange calls\n\tonStateChange: (c) => {\n\t\tc.state.changeCount++;\n\t},\n});\n","import { actor } from \"rivetkit\";\n\nexport const counterWithParams = actor({\n\tstate: { count: 0, initializers: [] as string[] },\n\tcreateConnState: (c, params: { name?: string }) => {\n\t\treturn {\n\t\t\tname: params.name || \"anonymous\",\n\t\t};\n\t},\n\tonConnect: (c, conn) => {\n\t\t// Record connection name\n\t\tc.state.initializers.push(conn.state.name);\n\t},\n\tactions: {\n\t\tincrement: (c, x: number) => {\n\t\t\tc.state.count += x;\n\t\t\tc.broadcast(\"newCount\", {\n\t\t\t\tcount: c.state.count,\n\t\t\t\tby: c.conn.state.name,\n\t\t\t});\n\t\t\treturn c.state.count;\n\t\t},\n\t\tgetInitializers: (c) => {\n\t\t\treturn c.state.initializers;\n\t\t},\n\t},\n});\n","import { actor } from \"rivetkit\";\n\nexport type ConnState = {\n\tusername: string;\n\trole: string;\n\tcounter: number;\n\tcreatedAt: number;\n\tnoCount: boolean;\n};\n\nexport const connStateActor = actor({\n\tstate: {\n\t\tsharedCounter: 0,\n\t\tdisconnectionCount: 0,\n\t},\n\t// Define connection state\n\tcreateConnState: (\n\t\tc,\n\t\tparams: { username?: string; role?: string; noCount?: boolean },\n\t): ConnState => {\n\t\treturn {\n\t\t\tusername: params?.username || \"anonymous\",\n\t\t\trole: params?.role || \"user\",\n\t\t\tcounter: 0,\n\t\t\tcreatedAt: Date.now(),\n\t\t\tnoCount: params?.noCount ?? false,\n\t\t};\n\t},\n\t// Lifecycle hook when a connection is established\n\tonConnect: (c, conn) => {\n\t\t// Broadcast event about the new connection\n\t\tc.broadcast(\"userConnected\", {\n\t\t\tid: conn.id,\n\t\t\tusername: \"anonymous\",\n\t\t\trole: \"user\",\n\t\t});\n\t},\n\t// Lifecycle hook when a connection is closed\n\tonDisconnect: (c, conn) => {\n\t\tif (!conn.state?.noCount) {\n\t\t\tc.state.disconnectionCount += 1;\n\t\t\tc.broadcast(\"userDisconnected\", {\n\t\t\t\tid: conn.id,\n\t\t\t});\n\t\t}\n\t},\n\tactions: {\n\t\t// Action to increment the connection's counter\n\t\tincrementConnCounter: (c, amount = 1) => {\n\t\t\tc.conn.state.counter += amount;\n\t\t},\n\n\t\t// Action to increment the shared counter\n\t\tincrementSharedCounter: (c, amount = 1) => {\n\t\t\tc.state.sharedCounter += amount;\n\t\t\treturn c.state.sharedCounter;\n\t\t},\n\n\t\t// Get the connection state\n\t\tgetConnectionState: (c) => {\n\t\t\treturn { id: c.conn.id, ...c.conn.state };\n\t\t},\n\n\t\t// Check all active connections\n\t\tgetConnectionIds: (c) => {\n\t\t\treturn c.conns\n\t\t\t\t.entries()\n\t\t\t\t.filter((c) => !c[1].state?.noCount)\n\t\t\t\t.map((x) => x[0])\n\t\t\t\t.toArray();\n\t\t},\n\n\t\t// Get disconnection count\n\t\tgetDisconnectionCount: (c) => {\n\t\t\treturn c.state.disconnectionCount;\n\t\t},\n\n\t\t// Get all active connection states\n\t\tgetAllConnectionStates: (c) => {\n\t\t\treturn c.conns\n\t\t\t\t.entries()\n\t\t\t\t.map(([id, conn]) => ({ id, ...conn.state }))\n\t\t\t\t.toArray();\n\t\t},\n\n\t\t// Send message to a specific connection with matching ID\n\t\tsendToConnection: (c, targetId: string, message: string) => {\n\t\t\tif (c.conns.has(targetId)) {\n\t\t\t\tc.conns\n\t\t\t\t\t.get(targetId)!\n\t\t\t\t\t.send(\"directMessage\", { from: c.conn.id, message });\n\t\t\t\treturn true;\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\n\t\t// Update connection state (simulated for tests)\n\t\tupdateConnection: (\n\t\t\tc,\n\t\t\tupdates: Partial<{ username: string; role: string }>,\n\t\t) => {\n\t\t\tif (updates.username) c.conn.state.username = updates.username;\n\t\t\tif (updates.role) c.conn.state.role = updates.role;\n\t\t\treturn c.conn.state;\n\t\t},\n\t\tdisconnectSelf: (c, reason?: string) => {\n\t\t\tc.conn.disconnect(reason ?? \"test.disconnect\");\n\t\t\treturn true;\n\t\t},\n\t},\n});\n","import { actor } from \"rivetkit\";\n\nexport const counter = actor({\n\tstate: { count: 0 },\n\tactions: {\n\t\tincrement: (c, x: number) => {\n\t\t\tc.state.count += x;\n\t\t\tc.broadcast(\"newCount\", c.state.count);\n\t\t\treturn c.state.count;\n\t\t},\n\t\tsetCount: (c, x: number) => {\n\t\t\tc.state.count = x;\n\t\t\tc.broadcast(\"newCount\", x);\n\t\t\treturn c.state.count;\n\t\t},\n\t\tgetCount: (c) => {\n\t\t\treturn c.state.count;\n\t\t},\n\t},\n});\n","import { actor } from \"rivetkit\";\n\nexport const counterConn = actor({\n\tstate: {\n\t\tconnectionCount: 0,\n\t},\n\tconnState: { count: 0 },\n\tonConnect: (c, conn) => {\n\t\tc.state.connectionCount += 1;\n\t},\n\tonDisconnect: (c, conn) => {\n\t\t// Note: We can't determine if disconnect was graceful from here\n\t\t// For testing purposes, we'll decrement on all disconnects\n\t\t// In real scenarios, you'd use connection tracking with timeouts\n\t\tc.state.connectionCount -= 1;\n\t},\n\tactions: {\n\t\tincrement: (c, x: number) => {\n\t\t\tc.conn.state.count += x;\n\t\t\tc.broadcast(\"newCount\", c.conn.state.count);\n\t\t},\n\t\tsetCount: (c, x: number) => {\n\t\t\tc.conn.state.count = x;\n\t\t\tc.broadcast(\"newCount\", x);\n\t\t},\n\t\tgetCount: (c) => {\n\t\t\treturn c.conn.state.count;\n\t\t},\n\t\tgetConnectionCount: (c) => {\n\t\t\treturn c.state.connectionCount;\n\t\t},\n\t},\n});\n","import { actor } from \"rivetkit\";\nimport type { registry } from \"./registry\";\n\nexport const destroyObserver = actor({\n\tstate: { destroyedActors: [] as string[] },\n\tactions: {\n\t\tnotifyDestroyed: (c, actorKey: string) => {\n\t\t\tc.state.destroyedActors.push(actorKey);\n\t\t},\n\t\twasDestroyed: (c, actorKey: string) => {\n\t\t\treturn c.state.destroyedActors.includes(actorKey);\n\t\t},\n\t\treset: (c) => {\n\t\t\tc.state.destroyedActors = [];\n\t\t},\n\t},\n});\n\nexport const destroyActor = actor({\n\tstate: { value: 0, key: \"\" },\n\tonWake: (c) => {\n\t\t// Store the actor key so we can reference it in onDestroy\n\t\tc.state.key = c.key.join(\"/\");\n\t},\n\tonDestroy: async (c) => {\n\t\tconst client = c.client<typeof registry>();\n\t\tconst observer = client.destroyObserver.getOrCreate([\"observer\"]);\n\t\tawait observer.notifyDestroyed(c.state.key);\n\t},\n\tactions: {\n\t\tsetValue: async (c, newValue: number) => {\n\t\t\tc.state.value = newValue;\n\t\t\tawait c.saveState({ immediate: true });\n\t\t\treturn c.state.value;\n\t\t},\n\t\tgetValue: (c) => {\n\t\t\treturn c.state.value;\n\t\t},\n\t\tdestroy: (c) => {\n\t\t\tc.destroy();\n\t\t},\n\t},\n});\n","import { actor, UserError } from \"rivetkit\";\n\nexport const errorHandlingActor = actor({\n\tstate: {\n\t\terrorLog: [] as string[],\n\t},\n\tactions: {\n\t\t// Action that throws a UserError with just a message\n\t\tthrowSimpleError: () => {\n\t\t\tthrow new UserError(\"Simple error message\");\n\t\t},\n\n\t\t// Action that throws a UserError with code and metadata\n\t\tthrowDetailedError: () => {\n\t\t\tthrow new UserError(\"Detailed error message\", {\n\t\t\t\tcode: \"detailed_error\",\n\t\t\t\tmetadata: {\n\t\t\t\t\treason: \"test\",\n\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\n\t\t// Action that throws an internal error\n\t\tthrowInternalError: () => {\n\t\t\tthrow new Error(\"This is an internal error\");\n\t\t},\n\n\t\t// Action that returns successfully\n\t\tsuccessfulAction: () => {\n\t\t\treturn \"success\";\n\t\t},\n\n\t\t// Action that times out (simulated with a long delay)\n\t\ttimeoutAction: async (c) => {\n\t\t\t// This action should time out if the timeout is configured\n\t\t\treturn new Promise((resolve) => {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tresolve(\"This should not be reached if timeout works\");\n\t\t\t\t}, 10000); // 10 seconds\n\t\t\t});\n\t\t},\n\n\t\t// Action with configurable delay to test timeout edge cases\n\t\tdelayedAction: async (c, delayMs: number) => {\n\t\t\treturn new Promise((resolve) => {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tresolve(`Completed after ${delayMs}ms`);\n\t\t\t\t}, delayMs);\n\t\t\t});\n\t\t},\n\n\t\t// Log an error for inspection\n\t\tlogError: (c, error: string) => {\n\t\t\tc.state.errorLog.push(error);\n\t\t\treturn c.state.errorLog;\n\t\t},\n\n\t\t// Get the error log\n\t\tgetErrorLog: (c) => {\n\t\t\treturn c.state.errorLog;\n\t\t},\n\n\t\t// Clear the error log\n\t\tclearErrorLog: (c) => {\n\t\t\tc.state.errorLog = [];\n\t\t\treturn true;\n\t\t},\n\t},\n\toptions: {\n\t\tactionTimeout: 500, // 500ms timeout for actions\n\t},\n});\n\n// Actor with custom timeout\nexport const customTimeoutActor = actor({\n\tstate: {},\n\tactions: {\n\t\tquickAction: async () => {\n\t\t\tawait new Promise((resolve) => setTimeout(resolve, 50));\n\t\t\treturn \"Quick action completed\";\n\t\t},\n\t\tslowAction: async () => {\n\t\t\tawait new Promise((resolve) => setTimeout(resolve, 300));\n\t\t\treturn \"Slow action completed\";\n\t\t},\n\t},\n\toptions: {\n\t\tactionTimeout: 200, // 200ms timeout\n\t},\n});\n","import { actor } from \"rivetkit\";\nimport type { registry } from \"./registry\";\n\nexport const inlineClientActor = actor({\n\tstate: { messages: [] as string[] },\n\tactions: {\n\t\t// Action that uses client to call another actor (stateless)\n\t\tcallCounterIncrement: async (c, amount: number) => {\n\t\t\tconst client = c.client<typeof registry>();\n\t\t\tconst result = await client.counter\n\t\t\t\t.getOrCreate([\"inline-test\"])\n\t\t\t\t.increment(amount);\n\t\t\tc.state.messages.push(\n\t\t\t\t`Called counter.increment(${amount}), result: ${result}`,\n\t\t\t);\n\t\t\treturn result;\n\t\t},\n\n\t\t// Action that uses client to get counter state (stateless)\n\t\tgetCounterState: async (c) => {\n\t\t\tconst client = c.client<typeof registry>();\n\t\t\tconst count = await client.counter\n\t\t\t\t.getOrCreate([\"inline-test\"])\n\t\t\t\t.getCount();\n\t\t\tc.state.messages.push(`Got counter state: ${count}`);\n\t\t\treturn count;\n\t\t},\n\n\t\t// Action that uses client with .connect() for stateful communication\n\t\tconnectToCounterAndIncrement: async (c, amount: number) => {\n\t\t\tconst client = c.client<typeof registry>();\n\t\t\tconst handle = client.counter.getOrCreate([\"inline-test-stateful\"]);\n\t\t\tconst connection = handle.connect();\n\n\t\t\t// Set up event listener\n\t\t\tconst events: number[] = [];\n\t\t\tconnection.on(\"newCount\", (count: number) => {\n\t\t\t\tevents.push(count);\n\t\t\t});\n\n\t\t\t// Perform increments\n\t\t\tconst result1 = await connection.increment(amount);\n\t\t\tconst result2 = await connection.increment(amount * 2);\n\n\t\t\tawait connection.dispose();\n\n\t\t\tc.state.messages.push(\n\t\t\t\t`Connected to counter, incremented by ${amount} and ${amount * 2}, results: ${result1}, ${result2}, events: ${JSON.stringify(events)}`,\n\t\t\t);\n\n\t\t\treturn { result1, result2, events };\n\t\t},\n\n\t\t// Get all messages from this actor's state\n\t\tgetMessages: (c) => {\n\t\t\treturn c.state.messages;\n\t\t},\n\n\t\t// Clear messages\n\t\tclearMessages: (c) => {\n\t\t\tc.state.messages = [];\n\t\t},\n\t},\n});\n","import { actor, type ActorContext } from \"rivetkit\";\n\nexport const kvActor = actor({\n\tactions: {\n\t\tputText: async (\n\t\t\tc: ActorContext<any, any, any, any, any, any>,\n\t\t\tkey: string,\n\t\t\tvalue: string,\n\t\t) => {\n\t\t\tawait c.kv.put(key, value);\n\t\t\treturn true;\n\t\t},\n\t\tgetText: async (\n\t\t\tc: ActorContext<any, any, any, any, any, any>,\n\t\t\tkey: string,\n\t\t) => {\n\t\t\treturn await c.kv.get(key);\n\t\t},\n\t\tlistText: async (\n\t\t\tc: ActorContext<any, any, any, any, any, any>,\n\t\t\tprefix: string,\n\t\t) => {\n\t\t\tconst results = await c.kv.list(prefix, { keyType: \"text\" });\n\t\t\treturn results.map(([key, value]) => ({\n\t\t\t\tkey,\n\t\t\t\tvalue,\n\t\t\t}));\n\t\t},\n\t\troundtripArrayBuffer: async (\n\t\t\tc: ActorContext<any, any, any, any, any, any>,\n\t\t\tkey: string,\n\t\t\tvalues: number[],\n\t\t) => {\n\t\t\tconst buffer = new Uint8Array(values).buffer;\n\t\t\tawait c.kv.put(key, buffer, { type: \"arrayBuffer\" });\n\t\t\tconst result = await c.kv.get(key, { type: \"arrayBuffer\" });\n\t\t\tif (!result) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\treturn Array.from(new Uint8Array(result));\n\t\t},\n\t},\n});\n","import { actor } from \"rivetkit\";\n\n/**\n * Actor for testing large payloads without connections\n */\nexport const largePayloadActor = actor({\n\tstate: {},\n\tactions: {\n\t\t/**\n\t\t * Accepts a large request payload and returns its size\n\t\t */\n\t\tprocessLargeRequest: (c, data: { items: string[] }) => {\n\t\t\treturn {\n\t\t\t\titemCount: data.items.length,\n\t\t\t\tfirstItem: data.items[0],\n\t\t\t\tlastItem: data.items[data.items.length - 1],\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * Returns a large response payload\n\t\t */\n\t\tgetLargeResponse: (c, itemCount: number) => {\n\t\t\tconst items: string[] = [];\n\t\t\tfor (let i = 0; i < itemCount; i++) {\n\t\t\t\titems.push(`Item ${i} with some additional text to increase size`);\n\t\t\t}\n\t\t\treturn { items };\n\t\t},\n\n\t\t/**\n\t\t * Echo back the request data\n\t\t */\n\t\techo: (c, data: unknown) => {\n\t\t\treturn data;\n\t\t},\n\t},\n});\n\n/**\n * Actor for testing large payloads with connections\n */\nexport const largePayloadConnActor = actor({\n\tstate: {},\n\tconnState: {\n\t\tlastRequestSize: 0,\n\t},\n\tactions: {\n\t\t/**\n\t\t * Accepts a large request payload and returns its size\n\t\t */\n\t\tprocessLargeRequest: (c, data: { items: string[] }) => {\n\t\t\tc.conn.state.lastRequestSize = data.items.length;\n\t\t\treturn {\n\t\t\t\titemCount: data.items.length,\n\t\t\t\tfirstItem: data.items[0],\n\t\t\t\tlastItem: data.items[data.items.length - 1],\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * Returns a large response payload\n\t\t */\n\t\tgetLargeResponse: (c, itemCount: number) => {\n\t\t\tconst items: string[] = [];\n\t\t\tfor (let i = 0; i < itemCount; i++) {\n\t\t\t\titems.push(`Item ${i} with some additional text to increase size`);\n\t\t\t}\n\t\t\treturn { items };\n\t\t},\n\n\t\t/**\n\t\t * Echo back the request data\n\t\t */\n\t\techo: (c, data: unknown) => {\n\t\t\treturn data;\n\t\t},\n\n\t\t/**\n\t\t * Get the last request size\n\t\t */\n\t\tgetLastRequestSize: (c) => {\n\t\t\treturn c.conn.state.lastRequestSize;\n\t\t},\n\t},\n});\n","import { actor } from \"rivetkit\";\n\ntype ConnParams = { trackLifecycle?: boolean } | undefined;\n\nexport const counterWithLifecycle = actor({\n\tstate: {\n\t\tcount: 0,\n\t\tevents: [] as string[],\n\t},\n\tcreateConnState: (c, params: ConnParams) => ({\n\t\tjoinTime: Date.now(),\n\t}),\n\tonWake: (c) => {\n\t\tc.state.events.push(\"onWake\");\n\t},\n\tonBeforeConnect: (c, params: ConnParams) => {\n\t\tif (params?.trackLifecycle) c.state.events.push(\"onBeforeConnect\");\n\t},\n\tonConnect: (c, conn) => {\n\t\tif (conn.params?.trackLifecycle) c.state.events.push(\"onConnect\");\n\t},\n\tonDisconnect: (c, conn) => {\n\t\tif (conn.params?.trackLifecycle) c.state.events.push(\"onDisconnect\");\n\t},\n\tactions: {\n\t\tgetEvents: (c) => {\n\t\t\treturn c.state.events;\n\t\t},\n\t\tincrement: (c, x: number) => {\n\t\t\tc.state.count += x;\n\t\t\treturn c.state.count;\n\t\t},\n\t},\n});\n","import { actor } from \"rivetkit\";\n\n// Note: For testing only - metadata API will need to be mocked\n// in tests since this is implementation-specific\nexport const metadataActor = actor({\n\tstate: {\n\t\tlastMetadata: null as any,\n\t\tactorName: \"\",\n\t\t// Store tags and region in state for testing since they may not be\n\t\t// available in the context in all environments\n\t\tstoredTags: {} as Record<string, string>,\n\t\tstoredRegion: null as string | null,\n\t},\n\tonWake: (c) => {\n\t\t// Store the actor name during initialization\n\t\tc.state.actorName = c.name;\n\t},\n\tactions: {\n\t\t// Set up test tags - this will be called by tests to simulate tags\n\t\tsetupTestTags: (c, tags: Record<string, string>) => {\n\t\t\tc.state.storedTags = tags;\n\t\t\treturn tags;\n\t\t},\n\n\t\t// Set up test region - this will be called by tests to simulate region\n\t\tsetupTestRegion: (c, region: string) => {\n\t\t\tc.state.storedRegion = region;\n\t\t\treturn region;\n\t\t},\n\n\t\t// Get all available metadata\n\t\tgetMetadata: (c) => {\n\t\t\t// Create metadata object from stored values\n\t\t\tconst metadata = {\n\t\t\t\tname: c.name,\n\t\t\t\ttags: c.state.storedTags,\n\t\t\t\tregion: c.state.storedRegion,\n\t\t\t};\n\n\t\t\t// Store for later inspection\n\t\t\tc.state.lastMetadata = metadata;\n\t\t\treturn metadata;\n\t\t},\n\n\t\t// Get the actor name\n\t\tgetActorName: (c) => {\n\t\t\treturn c.name;\n\t\t},\n\n\t\t// Get a specific tag by key\n\t\tgetTag: (c, key: string) => {\n\t\t\treturn c.state.storedTags[key] || null;\n\t\t},\n\n\t\t// Get all tags\n\t\tgetTags: (c) => {\n\t\t\treturn c.state.storedTags;\n\t\t},\n\n\t\t// Get the region\n\t\tgetRegion: (c) => {\n\t\t\treturn c.state.storedRegion;\n\t\t},\n\n\t\t// Get the stored actor name (from onWake)\n\t\tgetStoredActorName: (c) => {\n\t\t\treturn c.state.actorName;\n\t\t},\n\n\t\t// Get last retrieved metadata\n\t\tgetLastMetadata: (c) => {\n\t\t\treturn c.state.lastMetadata;\n\t\t},\n\t},\n});\n","import { Hono } from \"hono\";\nimport { actor, type RequestContext } from \"rivetkit\";\n\nexport const rawHttpActor = actor({\n\tstate: {\n\t\trequestCount: 0,\n\t},\n\tonRequest(\n\t\tctx: RequestContext<any, any, any, any, any, any>,\n\t\trequest: Request,\n\t) {\n\t\tconst url = new URL(request.url);\n\t\tconst method = request.method;\n\n\t\t// Track request count\n\t\tctx.state.requestCount++;\n\n\t\t// Handle different endpoints\n\t\tif (url.pathname === \"/api/hello\") {\n\t\t\treturn new Response(\n\t\t\t\tJSON.stringify({ message: \"Hello from actor!\" }),\n\t\t\t\t{\n\t\t\t\t\theaders: { \"Content-Type\": \"application/json\" },\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\n\t\tif (url.pathname === \"/api/echo\" && method === \"POST\") {\n\t\t\treturn new Response(request.body, {\n\t\t\t\theaders: request.headers,\n\t\t\t});\n\t\t}\n\n\t\tif (url.pathname === \"/api/state\") {\n\t\t\treturn new Response(\n\t\t\t\tJSON.stringify({\n\t\t\t\t\trequestCount: ctx.state.requestCount,\n\t\t\t\t}),\n\t\t\t\t{\n\t\t\t\t\theaders: { \"Content-Type\": \"application/json\" },\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\n\t\tif (url.pathname === \"/api/headers\") {\n\t\t\tconst headers: Record<string, string> = {};\n\t\t\trequest.headers.forEach((value, key) => {\n\t\t\t\theaders[key] = value;\n\t\t\t});\n\t\t\treturn new Response(JSON.stringify(headers), {\n\t\t\t\theaders: { \"Content-Type\": \"application/json\" },\n\t\t\t});\n\t\t}\n\n\t\t// Return 404 for unhandled paths\n\t\treturn new Response(\"Not Found\", { status: 404 });\n\t},\n\tactions: {},\n});\n\nexport const rawHttpNoHandlerActor = actor({\n\tactions: {},\n});\n\nexport const rawHttpVoidReturnActor = actor({\n\tonRequest(ctx, request) {\n\t\t// Intentionally return void to test error handling\n\t\treturn undefined as any;\n\t},\n\tactions: {},\n});\n\nexport const rawHttpHonoActor = actor({\n\tcreateVars() {\n\t\tconst router = new Hono();\n\n\t\t// Set up routes\n\t\trouter.get(\"/\", (c: any) =>\n\t\t\tc.json({ message: \"Welcome to Hono actor!\" }),\n\t\t);\n\n\t\trouter.get(\"/users\", (c: any) =>\n\t\t\tc.json([\n\t\t\t\t{ id: 1, name: \"Alice\" },\n\t\t\t\t{ id: 2, name: \"Bob\" },\n\t\t\t]),\n\t\t);\n\n\t\trouter.get(\"/users/:id\", (c: any) => {\n\t\t\tconst id = c.req.param(\"id\");\n\t\t\treturn c.json({\n\t\t\t\tid: parseInt(id),\n\t\t\t\tname: id === \"1\" ? \"Alice\" : \"Bob\",\n\t\t\t});\n\t\t});\n\n\t\trouter.post(\"/users\", async (c: any) => {\n\t\t\tconst body = await c.req.json();\n\t\t\treturn c.json({ id: 3, ...body }, 201);\n\t\t});\n\n\t\trouter.put(\"/users/:id\", async (c: any) => {\n\t\t\tconst id = c.req.param(\"id\");\n\t\t\tconst body = await c.req.json();\n\t\t\treturn c.json({ id: parseInt(id), ...body });\n\t\t});\n\n\t\trouter.delete(\"/users/:id\", (c: any) => {\n\t\t\tconst id = c.req.param(\"id\");\n\t\t\treturn c.json({ message: `User ${id} deleted` });\n\t\t});\n\n\t\t// Return the router as a var\n\t\treturn { router };\n\t},\n\tonRequest(\n\t\tctx: RequestContext<any, any, any, any, any, any>,\n\t\trequest: Request,\n\t) {\n\t\t// Use the Hono router from vars\n\t\treturn ctx.vars.router.fetch(request);\n\t},\n\tactions: {},\n});\n","import { actor, type RequestContext } from \"rivetkit\";\n\nexport const rawHttpRequestPropertiesActor = actor({\n\tactions: {},\n\tonRequest(\n\t\tctx: RequestContext<any, any, any, any, any, any>,\n\t\trequest: Request,\n\t) {\n\t\t// Extract all relevant Request properties\n\t\tconst url = new URL(request.url);\n\t\tconst method = request.method;\n\n\t\t// Get all headers\n\t\tconst headers: Record<string, string> = {};\n\t\trequest.headers.forEach((value, key) => {\n\t\t\theaders[key] = value;\n\t\t});\n\n\t\t// Handle body based on content type\n\t\tconst handleBody = async () => {\n\t\t\tif (!request.body) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst contentType = request.headers.get(\"content-type\") || \"\";\n\n\t\t\ttry {\n\t\t\t\tif (contentType.includes(\"application/json\")) {\n\t\t\t\t\tconst text = await request.text();\n\t\t\t\t\treturn text ? JSON.parse(text) : null;\n\t\t\t\t} else {\n\t\t\t\t\t// For non-JSON, return as text\n\t\t\t\t\tconst text = await request.text();\n\t\t\t\t\treturn text || null; // Return null for empty bodies\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\t// If body parsing fails, return null\n\t\t\t\treturn null;\n\t\t\t}\n\t\t};\n\n\t\t// Special handling for HEAD and OPTIONS requests\n\t\tif (method === \"HEAD\") {\n\t\t\treturn new Response(null, {\n\t\t\t\tstatus: 200,\n\t\t\t});\n\t\t}\n\n\t\tif (method === \"OPTIONS\") {\n\t\t\treturn new Response(null, {\n\t\t\t\tstatus: 204,\n\t\t\t});\n\t\t}\n\n\t\t// Return all request properties as JSON\n\t\treturn handleBody().then((body) => {\n\t\t\tconst responseData = {\n\t\t\t\t// URL properties\n\t\t\t\turl: request.url,\n\t\t\t\tpathname: url.pathname,\n\t\t\t\tsearch: url.search,\n\t\t\t\tsearchParams: Object.fromEntries(url.searchParams.entries()),\n\t\t\t\thash: url.hash,\n\n\t\t\t\t// Method\n\t\t\t\tmethod: request.method,\n\n\t\t\t\t// Headers\n\t\t\t\theaders: headers,\n\n\t\t\t\t// Body\n\t\t\t\tbody,\n\t\t\t\tbodyText:\n\t\t\t\t\ttypeof body === \"string\"\n\t\t\t\t\t\t? body\n\t\t\t\t\t\t: body === null && request.body !== null\n\t\t\t\t\t\t\t? \"\"\n\t\t\t\t\t\t\t: null,\n\n\t\t\t\t// Additional properties that might be available\n\t\t\t\t// Note: Some properties like cache, credentials, mode, etc.\n\t\t\t\t// might not be available in all environments\n\t\t\t\tcache: request.cache || null,\n\t\t\t\tcredentials: request.credentials || null,\n\t\t\t\tmode: request.mode || null,\n\t\t\t\tredirect: request.redirect || null,\n\t\t\t\treferrer: request.referrer || null,\n\t\t\t};\n\n\t\t\treturn new Response(JSON.stringify(responseData), {\n\t\t\t\theaders: { \"Content-Type\": \"application/json\" },\n\t\t\t});\n\t\t});\n\t},\n});\n","import { type ActorContext, actor, type UniversalWebSocket } from \"rivetkit\";\n\nexport const rawWebSocketActor = actor({\n\tstate: {\n\t\tconnectionCount: 0,\n\t\tmessageCount: 0,\n\t},\n\tonWebSocket(ctx, websocket) {\n\t\tctx.state.connectionCount = ctx.state.connectionCount + 1;\n\t\tconsole.log(\n\t\t\t`[ACTOR] New connection, count: ${ctx.state.connectionCount}`,\n\t\t);\n\n\t\t// Send welcome message\n\t\twebsocket.send(\n\t\t\tJSON.stringify({\n\t\t\t\ttype: \"welcome\",\n\t\t\t\tconnectionCount: ctx.state.connectionCount,\n\t\t\t}),\n\t\t);\n\t\tconsole.log(\"[ACTOR] Sent welcome message\");\n\n\t\t// Echo messages back\n\t\twebsocket.addEventListener(\"message\", (event: any) => {\n\t\t\tctx.state.messageCount = ctx.state.messageCount + 1;\n\t\t\tconsole.log(\n\t\t\t\t`[ACTOR] Message received, total count: ${ctx.state.messageCount}, data:`,\n\t\t\t\tevent.data,\n\t\t\t);\n\n\t\t\tconst data = event.data;\n\t\t\tif (typeof data === \"string\") {\n\t\t\t\ttry {\n\t\t\t\t\tconst parsed = JSON.parse(data);\n\t\t\t\t\tif (parsed.type === \"ping\") {\n\t\t\t\t\t\twebsocket.send(\n\t\t\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\t\t\ttype: \"pong\",\n\t\t\t\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if (parsed.type === \"getStats\") {\n\t\t\t\t\t\tconsole.log(\n\t\t\t\t\t\t\t`[ACTOR] Sending stats - connections: ${ctx.state.connectionCount}, messages: ${ctx.state.messageCount}`,\n\t\t\t\t\t\t);\n\t\t\t\t\t\twebsocket.send(\n\t\t\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\t\t\ttype: \"stats\",\n\t\t\t\t\t\t\t\tconnectionCount: ctx.state.connectionCount,\n\t\t\t\t\t\t\t\tmessageCount: ctx.state.messageCount,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if (parsed.type === \"getRequestInfo\") {\n\t\t\t\t\t\t// Send back the request URL info if available\n\t\t\t\t\t\tconst url = ctx.request?.url || \"ws://actor/websocket\";\n\t\t\t\t\t\tconst urlObj = new URL(url);\n\t\t\t\t\t\twebsocket.send(\n\t\t\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\t\t\ttype: \"requestInfo\",\n\t\t\t\t\t\t\t\turl: url,\n\t\t\t\t\t\t\t\tpathname: urlObj.pathname,\n\t\t\t\t\t\t\t\tsearch: urlObj.search,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Echo back\n\t\t\t\t\t\twebsocket.send(data);\n\t\t\t\t\t}\n\t\t\t\t} catch {\n\t\t\t\t\t// If not JSON, just echo it back\n\t\t\t\t\twebsocket.send(data);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Echo binary data\n\t\t\t\twebsocket.send(data);\n\t\t\t}\n\t\t});\n\n\t\t// Handle close\n\t\twebsocket.addEventListener(\"close\", () => {\n\t\t\tctx.state.connectionCount = ctx.state.connectionCount - 1;\n\t\t\tconsole.log(\n\t\t\t\t`[ACTOR] Connection closed, count: ${ctx.state.connectionCount}`,\n\t\t\t);\n\t\t});\n\t},\n\tactions: {\n\t\tgetStats(ctx: any) {\n\t\t\treturn {\n\t\t\t\tconnectionCount: ctx.state.connectionCount,\n\t\t\t\tmessageCount: ctx.state.messageCount,\n\t\t\t};\n\t\t},\n\t},\n});\n\nexport const rawWebSocketBinaryActor = actor({\n\tonWebSocket(ctx, websocket) {\n\t\t// Handle binary data\n\t\twebsocket.addEventListener(\"message\", (event: any) => {\n\t\t\tconst data = event.data;\n\t\t\tif (data instanceof ArrayBuffer || data instanceof Uint8Array) {\n\t\t\t\t// Reverse the bytes and send back\n\t\t\t\tconst bytes = new Uint8Array(data);\n\t\t\t\tconst reversed = new Uint8Array(bytes.length);\n\t\t\t\tfor (let i = 0; i < bytes.length; i++) {\n\t\t\t\t\treversed[i] = bytes[bytes.length - 1 - i];\n\t\t\t\t}\n\t\t\t\twebsocket.send(reversed);\n\t\t\t}\n\t\t});\n\t},\n\tactions: {},\n});\n","import { actor, type RivetMessageEvent } from \"rivetkit\";\n\n/**\n * Test fixture to verify request object access in all lifecycle hooks\n */\nexport const requestAccessActor = actor({\n\tstate: {\n\t\t// Track request info from different hooks\n\t\tonBeforeConnectRequest: {\n\t\t\thasRequest: false,\n\t\t\trequestUrl: null as string | null,\n\t\t\trequestMethod: null as string | null,\n\t\t\trequestHeaders: {} as Record<string, string>,\n\t\t},\n\t\tcreateConnStateRequest: {\n\t\t\thasRequest: false,\n\t\t\trequestUrl: null as string | null,\n\t\t\trequestMethod: null as string | null,\n\t\t\trequestHeaders: {} as Record<string, string>,\n\t\t},\n\t\tonRequestRequest: {\n\t\t\thasRequest: false,\n\t\t\trequestUrl: null as string | null,\n\t\t\trequestMethod: null as string | null,\n\t\t\trequestHeaders: {} as Record<string, string>,\n\t\t},\n\t\tonWebSocketRequest: {\n\t\t\thasRequest: false,\n\t\t\trequestUrl: null as string | null,\n\t\t\trequestMethod: null as string | null,\n\t\t\trequestHeaders: {} as Record<string, string>,\n\t\t},\n\t},\n\tcreateConnState: (c, params: { trackRequest?: boolean }) => {\n\t\t// In createConnState, the state isn't available yet.\n\n\t\tlet requestInfo: {\n\t\t\thasRequest: boolean;\n\t\t\trequestUrl: string;\n\t\t\trequestMethod: string;\n\t\t\trequestHeaders: Record<string, string>;\n\t\t} | null = null;\n\n\t\tif (params?.trackRequest && c.request) {\n\t\t\tconst headers: Record<string, string> = {};\n\t\t\tc.request.headers.forEach((value, key) => {\n\t\t\t\theaders[key] = value;\n\t\t\t});\n\t\t\trequestInfo = {\n\t\t\t\thasRequest: true,\n\t\t\t\trequestUrl: c.request.url,\n\t\t\t\trequestMethod: c.request.method,\n\t\t\t\trequestHeaders: headers,\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\ttrackRequest: params?.trackRequest || false,\n\t\t\trequestInfo,\n\t\t};\n\t},\n\tonConnect: (c, conn) => {\n\t\t// Copy request info from connection state if it was tracked\n\t\tif (conn.state.requestInfo) {\n\t\t\tc.state.createConnStateRequest = conn.state.requestInfo;\n\t\t}\n\t},\n\tonBeforeConnect: (c, params) => {\n\t\tif (params?.trackRequest) {\n\t\t\tif (c.request) {\n\t\t\t\tc.state.onBeforeConnectRequest.hasRequest = true;\n\t\t\t\tc.state.onBeforeConnectRequest.requestUrl = c.request.url;\n\t\t\t\tc.state.onBeforeConnectRequest.requestMethod = c.request.method;\n\n\t\t\t\t// Store select headers\n\t\t\t\tconst headers: Record<string, string> = {};\n\t\t\t\tc.request.headers.forEach((value, key) => {\n\t\t\t\t\theaders[key] = value;\n\t\t\t\t});\n\t\t\t\tc.state.onBeforeConnectRequest.requestHeaders = headers;\n\t\t\t} else {\n\t\t\t\t// Track that we tried but request was not available\n\t\t\t\tc.state.onBeforeConnectRequest.hasRequest = false;\n\t\t\t}\n\t\t}\n\t},\n\tonRequest: (c, request) => {\n\t\t// Store request info\n\t\tc.state.onRequestRequest.hasRequest = true;\n\t\tc.state.onRequestRequest.requestUrl = request.url;\n\t\tc.state.onRequestRequest.requestMethod = request.method;\n\n\t\t// Store select headers\n\t\tconst headers: Record<string, string> = {};\n\t\trequest.headers.forEach((value, key) => {\n\t\t\theaders[key] = value;\n\t\t});\n\t\tc.state.onRequestRequest.requestHeaders = headers;\n\n\t\t// Return response with request info\n\t\treturn new Response(\n\t\t\tJSON.stringify({\n\t\t\t\thasRequest: true,\n\t\t\t\trequestUrl: request.url,\n\t\t\t\trequestMethod: request.method,\n\t\t\t\trequestHeaders: headers,\n\t\t\t}),\n\t\t\t{\n\t\t\t\tstatus: 200,\n\t\t\t\theaders: { \"Content-Type\": \"application/json\" },\n\t\t\t},\n\t\t);\n\t},\n\tonWebSocket: (c, websocket) => {\n\t\tif (!c.request) throw \"Missing request\";\n\t\t// Store request info\n\t\tc.state.onWebSocketRequest.hasRequest = true;\n\t\tc.state.onWebSocketRequest.requestUrl = c.request.url;\n\t\tc.state.onWebSocketRequest.requestMethod = c.request.method;\n\n\t\t// Store select headers\n\t\tconst headers: Record<string, string> = {};\n\t\tc.request.headers.forEach((value, key) => {\n\t\t\theaders[key] = value;\n\t\t});\n\t\tc.state.onWebSocketRequest.requestHeaders = headers;\n\n\t\t// Send request info on connection\n\t\twebsocket.send(\n\t\t\tJSON.stringify({\n\t\t\t\thasRequest: true,\n\t\t\t\trequestUrl: c.request.url,\n\t\t\t\trequestMethod: c.request.method,\n\t\t\t\trequestHeaders: headers,\n\t\t\t}),\n\t\t);\n\n\t\t// Echo messages back\n\t\twebsocket.addEventListener(\"message\", (event: RivetMessageEvent) => {\n\t\t\twebsocket.send(event.data);\n\t\t});\n\t},\n\tactions: {\n\t\tgetRequestInfo: (c) => {\n\t\t\treturn {\n\t\t\t\tonBeforeConnect: c.state.onBeforeConnectRequest,\n\t\t\t\tcreateConnState: c.state.createConnStateRequest,\n\t\t\t\tonRequest: c.state.onRequestRequest,\n\t\t\t\tonWebSocket: c.state.onWebSocketRequest,\n\t\t\t};\n\t\t},\n\t},\n});\n","import { actor, UserError } from \"rivetkit\";\n\nexport const rejectConnectionActor = actor({\n\tonBeforeConnect: async (_c, params: { reject?: boolean }) => {\n\t\tif (params?.reject) {\n\t\t\tawait new Promise((resolve) => setTimeout(resolve, 500));\n\t\t\tthrow new UserError(\"Rejected connection\", {\n\t\t\t\tcode: \"rejected\",\n\t\t\t});\n\t\t}\n\t},\n\tactions: {\n\t\tping: () => \"pong\",\n\t},\n});\n","import { actor } from \"rivetkit\";\n\nexport const scheduled = actor({\n\tstate: {\n\t\tlastRun: 0,\n\t\tscheduledCount: 0,\n\t\ttaskHistory: [] as string[],\n\t},\n\tactions: {\n\t\t// Schedule using 'at' with specific timestamp\n\t\tscheduleTaskAt: (c, timestamp: number) => {\n\t\t\tc.schedule.at(timestamp, \"onScheduledTask\");\n\t\t\treturn timestamp;\n\t\t},\n\n\t\t// Schedule using 'after' with delay\n\t\tscheduleTaskAfter: (c, delayMs: number) => {\n\t\t\tc.schedule.after(delayMs, \"onScheduledTask\");\n\t\t\treturn Date.now() + delayMs;\n\t\t},\n\n\t\t// Schedule with a task ID for ordering tests\n\t\tscheduleTaskAfterWithId: (c, taskId: string, delayMs: number) => {\n\t\t\tc.schedule.after(delayMs, \"onScheduledTaskWithId\", taskId);\n\t\t\treturn { taskId, scheduledFor: Date.now() + delayMs };\n\t\t},\n\n\t\t// Original method for backward compatibility\n\t\tscheduleTask: (c, delayMs: number) => {\n\t\t\tconst timestamp = Date.now() + delayMs;\n\t\t\tc.schedule.at(timestamp, \"onScheduledTask\");\n\t\t\treturn timestamp;\n\t\t},\n\n\t\t// Getters for state\n\t\tgetLastRun: (c) => {\n\t\t\treturn c.state.lastRun;\n\t\t},\n\n\t\tgetScheduledCount: (c) => {\n\t\t\treturn c.state.scheduledCount;\n\t\t},\n\n\t\tgetTaskHistory: (c) => {\n\t\t\treturn c.state.taskHistory;\n\t\t},\n\n\t\tclearHistory: (c) => {\n\t\t\tc.state.taskHistory = [];\n\t\t\tc.state.scheduledCount = 0;\n\t\t\tc.state.lastRun = 0;\n\t\t\treturn true;\n\t\t},\n\n\t\t// Scheduled task handlers\n\t\tonScheduledTask: (c) => {\n\t\t\tc.state.lastRun = Date.now();\n\t\t\tc.state.scheduledCount++;\n\t\t\tc.broadcast(\"scheduled\", {\n\t\t\t\ttime: c.state.lastRun,\n\t\t\t\tcount: c.state.scheduledCount,\n\t\t\t});\n\t\t},\n\n\t\tonScheduledTaskWithId: (c, taskId: string) => {\n\t\t\tc.state.lastRun = Date.now();\n\t\t\tc.state.scheduledCount++;\n\t\t\tc.state.taskHistory.push(taskId);\n\t\t\tc.broadcast(\"scheduledWithId\", {\n\t\t\t\ttaskId,\n\t\t\t\ttime: c.state.lastRun,\n\t\t\t\tcount: c.state.scheduledCount,\n\t\t\t});\n\t\t},\n\t},\n});\n","import { actor } from \"rivetkit\";\n\n// Actor with static vars\nexport const staticVarActor = actor({\n\tstate: { value: 0 },\n\tconnState: { hello: \"world\" },\n\tvars: { counter: 42, name: \"test-actor\" },\n\tactions: {\n\t\tgetVars: (c) => {\n\t\t\treturn c.vars;\n\t\t},\n\t\tgetName: (c) => {\n\t\t\treturn c.vars.name;\n\t\t},\n\t},\n});\n\n// Actor with nested vars\nexport const nestedVarActor = actor({\n\tstate: { value: 0 },\n\tconnState: { hello: \"world\" },\n\tvars: {\n\t\tcounter: 42,\n\t\tnested: {\n\t\t\tvalue: \"original\",\n\t\t\tarray: [1, 2, 3],\n\t\t\tobj: { key: \"value\" },\n\t\t},\n\t},\n\tactions: {\n\t\tgetVars: (c) => {\n\t\t\treturn c.vars;\n\t\t},\n\t\tmodifyNested: (c) => {\n\t\t\t// Attempt to modify the nested object\n\t\t\tc.vars.nested.value = \"modified\";\n\t\t\tc.vars.nested.array.push(4);\n\t\t\tc.vars.nested.obj.key = \"new-value\";\n\t\t\treturn c.vars;\n\t\t},\n\t},\n});\n\n// Actor with dynamic vars\nexport const dynamicVarActor = actor({\n\tstate: { value: 0 },\n\tconnState: { hello: \"world\" },\n\tcreateVars: () => {\n\t\treturn {\n\t\t\trandom: Math.random(),\n\t\t\tcomputed: `Actor-${Math.floor(Math.random() * 1000)}`,\n\t\t};\n\t},\n\tactions: {\n\t\tgetVars: (c) => {\n\t\t\treturn c.vars;\n\t\t},\n\t},\n});\n\n// Actor with unique vars per instance\nexport const uniqueVarActor = actor({\n\tstate: { value: 0 },\n\tconnState: { hello: \"world\" },\n\tcreateVars: () => {\n\t\treturn {\n\t\t\tid: Math.floor(Math.random() * 1000000),\n\t\t};\n\t},\n\tactions: {\n\t\tgetVars: (c) => {\n\t\t\treturn c.vars;\n\t\t},\n\t},\n});\n\n// Actor that uses driver context\nexport const driverCtxActor = actor({\n\tstate: { value: 0 },\n\tconnState: { hello: \"world\" },\n\tcreateVars: (c, driverCtx: any) => {\n\t\treturn {\n\t\t\thasDriverCtx: Boolean(driverCtx?.isTest),\n\t\t};\n\t},\n\tactions: {\n\t\tgetVars: (c) => {\n\t\t\treturn c.vars;\n\t\t},\n\t},\n});\n","import { setup } from \"rivetkit\";\n\nimport { inputActor } from \"./action-inputs\";\nimport {\n\tdefaultTimeoutActor,\n\tlongTimeoutActor,\n\tshortTimeoutActor,\n\tsyncTimeoutActor,\n} from \"./action-timeout\";\nimport {\n\tasyncActionActor,\n\tpromiseActor,\n\tsyncActionActor,\n} from \"./action-types\";\nimport { onStateChangeActor } from \"./actor-onstatechange\";\nimport { counterWithParams } from \"./conn-params\";\nimport { connStateActor } from \"./conn-state\";\n// Import actors from individual files\nimport { counter } from \"./counter\";\nimport { counterConn } from \"./counter-conn\";\nimport { destroyActor, destroyObserver } from \"./destroy\";\nimport { customTimeoutActor, errorHandlingActor } from \"./error-handling\";\nimport { hibernationActor } from \"./hibernation\";\nimport { inlineClientActor } from \"./inline-client\";\nimport { kvActor } from \"./kv\";\nimport { largePayloadActor, largePayloadConnActor } from \"./large-payloads\";\nimport { counterWithLifecycle } from \"./lifecycle\";\nimport { metadataActor } from \"./metadata\";\nimport {\n\trawHttpActor,\n\trawHttpHonoActor,\n\trawHttpNoHandlerActor,\n\trawHttpVoidReturnActor,\n} from \"./raw-http\";\nimport { rawHttpRequestPropertiesActor } from \"./raw-http-request-properties\";\nimport { rawWebSocketActor, rawWebSocketBinaryActor } from \"./raw-websocket\";\nimport { requestAccessActor } from \"./request-access\";\nimport { rejectConnectionActor } from \"./reject-connection\";\nimport { scheduled } from \"./scheduled\";\nimport {\n\tsleep,\n\tsleepWithLongRpc,\n\tsleepWithNoSleepOption,\n\tsleepWithRawHttp,\n\tsleepWithRawWebSocket,\n} from \"./sleep\";\nimport {\n\tdriverCtxActor,\n\tdynamicVarActor,\n\tnestedVarActor,\n\tstaticVarActor,\n\tuniqueVarActor,\n} from \"./vars\";\n\n// Consolidated setup with all actors\nexport const registry = setup({\n\tuse: {\n\t\t// From counter.ts\n\t\tcounter,\n\t\t// From counter-conn.ts\n\t\tcounterConn,\n\t\t// From lifecycle.ts\n\t\tcounterWithLifecycle,\n\t\t// From scheduled.ts\n\t\tscheduled,\n\t\t// From sleep.ts\n\t\tsleep,\n\t\tsleepWithLongRpc,\n\t\tsleepWithRawHttp,\n\t\tsleepWithRawWebSocket,\n\t\tsleepWithNoSleepOption,\n\t\t// From error-handling.ts\n\t\terrorHandlingActor,\n\t\tcustomTimeoutActor,\n\t\t// From inline-client.ts\n\t\tinlineClientActor,\n\t\t// From kv.ts\n\t\tkvActor,\n\t\t// From action-inputs.ts\n\t\tinputActor,\n\t\t// From action-timeout.ts\n\t\tshortTimeoutActor,\n\t\tlongTimeoutActor,\n\t\tdefaultTimeoutActor,\n\t\tsyncTimeoutActor,\n\t\t// From action-types.ts\n\t\tsyncActionActor,\n\t\tasyncActionActor,\n\t\tpromiseActor,\n\t\t// From conn-params.ts\n\t\tcounterWithParams,\n\t\t// From conn-state.ts\n\t\tconnStateActor,\n\t\t// From metadata.ts\n\t\tmetadataActor,\n\t\t// From vars.ts\n\t\tstaticVarActor,\n\t\tnestedVarActor,\n\t\tdynamicVarActor,\n\t\tuniqueVarActor,\n\t\tdriverCtxActor,\n\t\t// From raw-http.ts\n\t\trawHttpActor,\n\t\trawHttpNoHandlerActor,\n\t\trawHttpVoidReturnActor,\n\t\trawHttpHonoActor,\n\t\t// From raw-http-request-properties.ts\n\t\trawHttpRequestPropertiesActor,\n\t\t// From raw-websocket.ts\n\t\trawWebSocketActor,\n\t\trawWebSocketBinaryActor,\n\t\t// From reject-connection.ts\n\t\trejectConnectionActor,\n\t\t// From request-access.ts\n\t\trequestAccessActor,\n\t\t// From actor-onstatechange.ts\n\t\tonStateChangeActor,\n\t\t// From destroy.ts\n\t\tdestroyActor,\n\t\tdestroyObserver,\n\t\t// From hibernation.ts\n\t\thibernationActor,\n\t\t// From large-payloads.ts\n\t\tlargePayloadActor,\n\t\tlargePayloadConnActor,\n\t},\n});\n"],"mappings":"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","names":["c","server"]}
@@ -1,17 +1,17 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunkQDVKDX7Gcjs = require('../chunk-QDVKDX7G.cjs');
5
- require('../chunk-GTQKDCM4.cjs');
6
- require('../chunk-WYZLRPQM.cjs');
7
- require('../chunk-DSNSFYDL.cjs');
8
- require('../chunk-B5UXC4QV.cjs');
4
+ var _chunk3VP5CSHVcjs = require('../chunk-3VP5CSHV.cjs');
5
+ require('../chunk-RUW5CZ5Z.cjs');
6
+ require('../chunk-GD7UXGOE.cjs');
7
+ require('../chunk-EJVBH5VF.cjs');
8
+ require('../chunk-RZW2DNND.cjs');
9
9
  require('../chunk-KDFWJKMJ.cjs');
10
- require('../chunk-S6F7EKC7.cjs');
11
- require('../chunk-SNAUKDDK.cjs');
10
+ require('../chunk-H4TB4X25.cjs');
11
+ require('../chunk-2XQS746M.cjs');
12
12
  require('../chunk-GBENOENJ.cjs');
13
13
 
14
14
 
15
15
 
16
- exports.getPort = _chunkQDVKDX7Gcjs.getPort; exports.setupTest = _chunkQDVKDX7Gcjs.setupTest;
16
+ exports.getPort = _chunk3VP5CSHVcjs.getPort; exports.setupTest = _chunk3VP5CSHVcjs.setupTest;
17
17
  //# sourceMappingURL=mod.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/nathan/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/test/mod.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACF,yDAA8B;AAC9B,iCAA8B;AAC9B,iCAA8B;AAC9B,iCAA8B;AAC9B,iCAA8B;AAC9B,iCAA8B;AAC9B,iCAA8B;AAC9B,iCAA8B;AAC9B,iCAA8B;AAC9B;AACE;AACA;AACF,6FAAC","file":"/Users/nathan/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/test/mod.cjs"}
1
+ {"version":3,"sources":["/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/test/mod.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACF,yDAA8B;AAC9B,iCAA8B;AAC9B,iCAA8B;AAC9B,iCAA8B;AAC9B,iCAA8B;AAC9B,iCAA8B;AAC9B,iCAA8B;AAC9B,iCAA8B;AAC9B,iCAA8B;AAC9B;AACE;AACA;AACF,6FAAC","file":"/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/test/mod.cjs"}
@@ -1,5 +1,5 @@
1
1
  import { TestContext } from 'vitest';
2
- import { aa as Registry, C as Client } from '../config-COyis_uH.cjs';
2
+ import { aa as Registry, C as Client } from '../config-CZB2-W8x.cjs';
3
3
  import 'zod';
4
4
  import '@rivetkit/virtual-websocket';
5
5
  import 'hono';
@@ -1,5 +1,5 @@
1
1
  import { TestContext } from 'vitest';
2
- import { aa as Registry, C as Client } from '../config-D43N-CFi.js';
2
+ import { aa as Registry, C as Client } from '../config-CLnylLYY.js';
3
3
  import 'zod';
4
4
  import '@rivetkit/virtual-websocket';
5
5
  import 'hono';
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  getPort,
3
3
  setupTest
4
- } from "../chunk-4J5EFV3E.js";
5
- import "../chunk-NRP2OHSW.js";
6
- import "../chunk-UGOCTUBG.js";
7
- import "../chunk-Y7ZDTLD2.js";
8
- import "../chunk-OXN6EZUB.js";
4
+ } from "../chunk-AQFSQMBG.js";
5
+ import "../chunk-KCOVZOPS.js";
6
+ import "../chunk-Q6W7RJJP.js";
7
+ import "../chunk-XXGJCOL6.js";
8
+ import "../chunk-GMAVRZSF.js";
9
9
  import "../chunk-E6ZE2YEA.js";
10
- import "../chunk-LMG4QMDO.js";
11
- import "../chunk-2YHR67M4.js";
10
+ import "../chunk-FJ3KTN4V.js";
11
+ import "../chunk-LFVF5SCU.js";
12
12
  export {
13
13
  getPort,
14
14
  setupTest
@@ -14,8 +14,8 @@
14
14
 
15
15
 
16
16
 
17
- var _chunkS6F7EKC7cjs = require('./chunk-S6F7EKC7.cjs');
18
- require('./chunk-SNAUKDDK.cjs');
17
+ var _chunkH4TB4X25cjs = require('./chunk-H4TB4X25.cjs');
18
+ require('./chunk-2XQS746M.cjs');
19
19
  require('./chunk-GBENOENJ.cjs');
20
20
 
21
21
 
@@ -33,5 +33,5 @@ require('./chunk-GBENOENJ.cjs');
33
33
 
34
34
 
35
35
 
36
- exports.EXTRA_ERROR_LOG = _chunkS6F7EKC7cjs.EXTRA_ERROR_LOG; exports.SinglePromiseQueue = _chunkS6F7EKC7cjs.SinglePromiseQueue; exports.VERSION = _chunkS6F7EKC7cjs.VERSION; exports.arrayBuffersEqual = _chunkS6F7EKC7cjs.arrayBuffersEqual; exports.assertUnreachable = _chunkS6F7EKC7cjs.assertUnreachable; exports.bufferToArrayBuffer = _chunkS6F7EKC7cjs.bufferToArrayBuffer; exports.combineUrlPath = _chunkS6F7EKC7cjs.combineUrlPath; exports.dbg = _chunkS6F7EKC7cjs.dbg; exports.detectRuntime = _chunkS6F7EKC7cjs.detectRuntime; exports.getEnvUniversal = _chunkS6F7EKC7cjs.getEnvUniversal; exports.httpUserAgent = _chunkS6F7EKC7cjs.httpUserAgent; exports.promiseWithResolvers = _chunkS6F7EKC7cjs.promiseWithResolvers; exports.setLongTimeout = _chunkS6F7EKC7cjs.setLongTimeout; exports.stringifyError = _chunkS6F7EKC7cjs.stringifyError; exports.toUint8Array = _chunkS6F7EKC7cjs.toUint8Array;
36
+ exports.EXTRA_ERROR_LOG = _chunkH4TB4X25cjs.EXTRA_ERROR_LOG; exports.SinglePromiseQueue = _chunkH4TB4X25cjs.SinglePromiseQueue; exports.VERSION = _chunkH4TB4X25cjs.VERSION; exports.arrayBuffersEqual = _chunkH4TB4X25cjs.arrayBuffersEqual; exports.assertUnreachable = _chunkH4TB4X25cjs.assertUnreachable; exports.bufferToArrayBuffer = _chunkH4TB4X25cjs.bufferToArrayBuffer; exports.combineUrlPath = _chunkH4TB4X25cjs.combineUrlPath; exports.dbg = _chunkH4TB4X25cjs.dbg; exports.detectRuntime = _chunkH4TB4X25cjs.detectRuntime; exports.getEnvUniversal = _chunkH4TB4X25cjs.getEnvUniversal; exports.httpUserAgent = _chunkH4TB4X25cjs.httpUserAgent; exports.promiseWithResolvers = _chunkH4TB4X25cjs.promiseWithResolvers; exports.setLongTimeout = _chunkH4TB4X25cjs.setLongTimeout; exports.stringifyError = _chunkH4TB4X25cjs.stringifyError; exports.toUint8Array = _chunkH4TB4X25cjs.toUint8Array;
37
37
  //# sourceMappingURL=utils.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/nathan/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/utils.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,s3BAAC","file":"/Users/nathan/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/utils.cjs"}
1
+ {"version":3,"sources":["/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/utils.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,s3BAAC","file":"/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/utils.cjs"}
@@ -14,8 +14,8 @@ import {
14
14
  setLongTimeout,
15
15
  stringifyError,
16
16
  toUint8Array
17
- } from "./chunk-LMG4QMDO.js";
18
- import "./chunk-2YHR67M4.js";
17
+ } from "./chunk-FJ3KTN4V.js";
18
+ import "./chunk-LFVF5SCU.js";
19
19
  export {
20
20
  EXTRA_ERROR_LOG,
21
21
  SinglePromiseQueue,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rivetkit",
3
- "version": "2.0.41",
3
+ "version": "2.0.42",
4
4
  "description": "Lightweight libraries for building stateful actors on edge platforms",
5
5
  "license": "Apache-2.0",
6
6
  "keywords": [
@@ -103,6 +103,16 @@
103
103
  "default": "./dist/tsup/driver-test-suite/mod.cjs"
104
104
  }
105
105
  },
106
+ "./serve-test-suite": {
107
+ "import": {
108
+ "types": "./dist/tsup/serve-test-suite/mod.d.ts",
109
+ "default": "./dist/tsup/serve-test-suite/mod.js"
110
+ },
111
+ "require": {
112
+ "types": "./dist/tsup/serve-test-suite/mod.d.cts",
113
+ "default": "./dist/tsup/serve-test-suite/mod.cjs"
114
+ }
115
+ },
106
116
  "./topologies/coordinate": {
107
117
  "import": {
108
118
  "types": "./dist/tsup/topologies/coordinate/mod.d.ts",
@@ -167,12 +177,12 @@
167
177
  "uuid": "^12.0.0",
168
178
  "vbare": "^0.0.4",
169
179
  "zod": "^4.1.0",
170
- "@rivetkit/engine-runner": "2.0.41",
180
+ "@rivetkit/engine-runner": "2.0.42",
171
181
  "@rivetkit/virtual-websocket": "2.0.33"
172
182
  },
173
183
  "devDependencies": {
174
184
  "@bare-ts/tools": "^0.13.0",
175
- "@biomejs/biome": "^2.2.3",
185
+ "@biomejs/biome": "^2.3",
176
186
  "@hono/node-server": "^1.18.2",
177
187
  "@hono/node-ws": "^1.1.1",
178
188
  "@types/invariant": "^2",
@@ -212,7 +222,7 @@
212
222
  },
213
223
  "stableVersion": "0.8.0",
214
224
  "scripts": {
215
- "build": "tsup src/mod.ts src/client/mod.ts src/common/log.ts src/common/websocket.ts src/actor/errors.ts src/topologies/coordinate/mod.ts src/topologies/partition/mod.ts src/utils.ts src/driver-helpers/mod.ts src/driver-test-suite/mod.ts src/test/mod.ts src/inspector/mod.ts",
225
+ "build": "tsup src/mod.ts src/client/mod.ts src/common/log.ts src/common/websocket.ts src/actor/errors.ts src/topologies/coordinate/mod.ts src/topologies/partition/mod.ts src/utils.ts src/driver-helpers/mod.ts src/driver-test-suite/mod.ts src/serve-test-suite/mod.ts src/test/mod.ts src/inspector/mod.ts",
216
226
  "build:schema": "./scripts/compile-bare.ts compile schemas/client-protocol/v1.bare -o dist/schemas/client-protocol/v1.ts && ./scripts/compile-bare.ts compile schemas/client-protocol/v2.bare -o dist/schemas/client-protocol/v2.ts && ./scripts/compile-bare.ts compile schemas/file-system-driver/v1.bare -o dist/schemas/file-system-driver/v1.ts && ./scripts/compile-bare.ts compile schemas/file-system-driver/v2.bare -o dist/schemas/file-system-driver/v2.ts && ./scripts/compile-bare.ts compile schemas/file-system-driver/v3.bare -o dist/schemas/file-system-driver/v3.ts && ./scripts/compile-bare.ts compile schemas/actor-persist/v1.bare -o dist/schemas/actor-persist/v1.ts && ./scripts/compile-bare.ts compile schemas/actor-persist/v2.bare -o dist/schemas/actor-persist/v2.ts && ./scripts/compile-bare.ts compile schemas/actor-persist/v3.bare -o dist/schemas/actor-persist/v3.ts && ./scripts/compile-bare.ts compile schemas/actor-inspector/v1.bare -o dist/schemas/actor-inspector/v1.ts",
217
227
  "check-types": "tsc --noEmit",
218
228
  "lint": "biome check .",
@@ -125,7 +125,7 @@ export class InvalidEncoding extends ActorError {
125
125
  super(
126
126
  "encoding",
127
127
  "invalid",
128
- `Invalid encoding \`${format}\`. (https://www.rivet.dev/docs/actors/clients/#actor-client)`,
128
+ `Invalid encoding \`${format}\`. (https://www.rivet.dev/docs/clients/javascript)`,
129
129
  {
130
130
  public: true,
131
131
  },
@@ -243,8 +243,8 @@ export class ActorNotFound extends ActorError {
243
243
  "actor",
244
244
  "not_found",
245
245
  identifier
246
- ? `Actor not found: ${identifier} (https://www.rivet.dev/docs/actors/clients/#actor-client)`
247
- : "Actor not found (https://www.rivet.dev/docs/actors/clients/#actor-client)",
246
+ ? `Actor not found: ${identifier} (https://www.rivet.dev/docs/clients/javascript)`
247
+ : "Actor not found (https://www.rivet.dev/docs/clients/javascript)",
248
248
  { public: true },
249
249
  );
250
250
  }
@@ -255,7 +255,7 @@ export class ActorDuplicateKey extends ActorError {
255
255
  super(
256
256
  "actor",
257
257
  "duplicate_key",
258
- `Actor already exists with name '${name}' and key '${JSON.stringify(key)}' (https://www.rivet.dev/docs/actors/clients/#actor-client)`,
258
+ `Actor already exists with name '${name}' and key '${JSON.stringify(key)}' (https://www.rivet.dev/docs/clients/javascript)`,
259
259
  { public: true },
260
260
  );
261
261
  }
@@ -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
+ }