rivetkit 2.1.0-rc.1 → 2.1.0
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.
- package/dist/browser/client.js +1 -1
- package/dist/browser/client.js.map +1 -1
- package/dist/browser/inspector/client.js +1 -1
- package/dist/browser/inspector/client.js.map +1 -1
- package/dist/inspector.tar.gz +0 -0
- package/dist/tsup/{chunk-SSEP6DHP.cjs → chunk-5CI72Y5G.cjs} +152 -152
- package/dist/tsup/{chunk-SSEP6DHP.cjs.map → chunk-5CI72Y5G.cjs.map} +1 -1
- package/dist/tsup/{chunk-7K4CYDGD.js → chunk-7T4AIAQV.js} +10 -5
- package/dist/tsup/chunk-7T4AIAQV.js.map +1 -0
- package/dist/tsup/{chunk-T5YCUGVS.js → chunk-CIXKJYPF.js} +2 -2
- package/dist/tsup/{chunk-TPGXWFQT.cjs → chunk-DQFZ5S3X.cjs} +3 -3
- package/dist/tsup/{chunk-TPGXWFQT.cjs.map → chunk-DQFZ5S3X.cjs.map} +1 -1
- package/dist/tsup/{chunk-6LIBPELE.js → chunk-E2WWZFTQ.js} +2 -2
- package/dist/tsup/chunk-E2WWZFTQ.js.map +1 -0
- package/dist/tsup/{chunk-OMEPCQK2.js → chunk-KGR7K72J.js} +81 -84
- package/dist/tsup/chunk-KGR7K72J.js.map +1 -0
- package/dist/tsup/{chunk-F6JYU5IK.cjs → chunk-LBUMYRTK.cjs} +74 -74
- package/dist/tsup/{chunk-F6JYU5IK.cjs.map → chunk-LBUMYRTK.cjs.map} +1 -1
- package/dist/tsup/{chunk-TYLXNCA5.cjs → chunk-LICW4TVI.cjs} +97 -97
- package/dist/tsup/{chunk-TYLXNCA5.cjs.map → chunk-LICW4TVI.cjs.map} +1 -1
- package/dist/tsup/{chunk-AIYEYMX5.cjs → chunk-OV6UBV6G.cjs} +26 -21
- package/dist/tsup/chunk-OV6UBV6G.cjs.map +1 -0
- package/dist/tsup/{chunk-HIDX4C5Y.cjs → chunk-RYSCONN4.cjs} +3 -3
- package/dist/tsup/{chunk-HIDX4C5Y.cjs.map → chunk-RYSCONN4.cjs.map} +1 -1
- package/dist/tsup/{chunk-5ESWDTHJ.js → chunk-SHX2N2B4.js} +6 -6
- package/dist/tsup/{chunk-YQ4LDVD6.cjs → chunk-TO4U43RL.cjs} +234 -234
- package/dist/tsup/{chunk-YQ4LDVD6.cjs.map → chunk-TO4U43RL.cjs.map} +1 -1
- package/dist/tsup/{chunk-HAZL2EPK.cjs → chunk-UHDLODMO.cjs} +4 -4
- package/dist/tsup/{chunk-HAZL2EPK.cjs.map → chunk-UHDLODMO.cjs.map} +1 -1
- package/dist/tsup/{chunk-LW6KLR7A.cjs → chunk-UN5D22OI.cjs} +2 -2
- package/dist/tsup/chunk-UN5D22OI.cjs.map +1 -0
- package/dist/tsup/{chunk-MZ37VV3P.js → chunk-VSFWZWCC.js} +5 -5
- package/dist/tsup/{chunk-XWBAQO5H.cjs → chunk-WLLTFDMH.cjs} +108 -111
- package/dist/tsup/chunk-WLLTFDMH.cjs.map +1 -0
- package/dist/tsup/{chunk-M2T62AZQ.js → chunk-WUXPLV6G.js} +3 -3
- package/dist/tsup/{chunk-IVG73YCW.js → chunk-XYUY6WQB.js} +2 -2
- package/dist/tsup/{chunk-DIGBC2VI.js → chunk-YLYT7WSZ.js} +5 -5
- package/dist/tsup/{chunk-A6YIZWTK.js → chunk-ZMZNIOTG.js} +2 -2
- package/dist/tsup/client/mod.cjs +6 -6
- package/dist/tsup/client/mod.js +5 -5
- package/dist/tsup/common/log.cjs +2 -2
- package/dist/tsup/common/log.js +1 -1
- package/dist/tsup/common/websocket.cjs +3 -3
- package/dist/tsup/common/websocket.js +2 -2
- package/dist/tsup/context-7X-Dm6_f.d.cts +75 -0
- package/dist/tsup/context-x9zKhx5T.d.ts +75 -0
- package/dist/tsup/driver-helpers/mod.cjs +4 -4
- package/dist/tsup/driver-helpers/mod.js +3 -3
- package/dist/tsup/driver-test-suite/mod.cjs +60 -60
- package/dist/tsup/driver-test-suite/mod.js +10 -10
- package/dist/tsup/inspector/mod.cjs +3 -3
- package/dist/tsup/inspector/mod.js +2 -2
- package/dist/tsup/mod.cjs +8 -8
- package/dist/tsup/mod.d.cts +2 -0
- package/dist/tsup/mod.d.ts +2 -0
- package/dist/tsup/mod.js +7 -7
- package/dist/tsup/serve-test-suite/mod.cjs +99 -99
- package/dist/tsup/serve-test-suite/mod.js +10 -10
- package/dist/tsup/test/mod.cjs +10 -10
- package/dist/tsup/test/mod.js +6 -6
- package/dist/tsup/utils.cjs +2 -2
- package/dist/tsup/utils.js +1 -1
- package/dist/tsup/workflow/mod.cjs +5 -5
- package/dist/tsup/workflow/mod.d.cts +4 -62
- package/dist/tsup/workflow/mod.d.ts +4 -62
- package/dist/tsup/workflow/mod.js +4 -4
- package/package.json +6 -6
- package/src/mod.ts +6 -0
- package/src/workflow/context.ts +75 -15
- package/src/workflow/mod.ts +7 -1
- package/dist/tsup/chunk-6LIBPELE.js.map +0 -1
- package/dist/tsup/chunk-7K4CYDGD.js.map +0 -1
- package/dist/tsup/chunk-AIYEYMX5.cjs.map +0 -1
- package/dist/tsup/chunk-LW6KLR7A.cjs.map +0 -1
- package/dist/tsup/chunk-OMEPCQK2.js.map +0 -1
- package/dist/tsup/chunk-XWBAQO5H.cjs.map +0 -1
- /package/dist/tsup/{chunk-T5YCUGVS.js.map → chunk-CIXKJYPF.js.map} +0 -0
- /package/dist/tsup/{chunk-5ESWDTHJ.js.map → chunk-SHX2N2B4.js.map} +0 -0
- /package/dist/tsup/{chunk-MZ37VV3P.js.map → chunk-VSFWZWCC.js.map} +0 -0
- /package/dist/tsup/{chunk-M2T62AZQ.js.map → chunk-WUXPLV6G.js.map} +0 -0
- /package/dist/tsup/{chunk-IVG73YCW.js.map → chunk-XYUY6WQB.js.map} +0 -0
- /package/dist/tsup/{chunk-DIGBC2VI.js.map → chunk-YLYT7WSZ.js.map} +0 -0
- /package/dist/tsup/{chunk-A6YIZWTK.js.map → chunk-ZMZNIOTG.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/driver-test-suite/log.ts","../../fixtures/driver-test-suite/hibernation.ts","../../fixtures/driver-test-suite/sleep.ts","../../fixtures/driver-test-suite/run.ts","../../fixtures/driver-test-suite/workflow.ts"],"sourcesContent":["import { getLogger } from \"@/common/log\";\n\nexport function logger() {\n\treturn getLogger(\"test-suite\");\n}\n","import { actor } from \"rivetkit\";\n\nexport const HIBERNATION_SLEEP_TIMEOUT = 500;\n\nexport type HibernationConnState = {\n\tcount: number;\n\tconnectCount: number;\n\tdisconnectCount: number;\n};\n\nexport const hibernationActor = actor({\n\tstate: {\n\t\tsleepCount: 0,\n\t\twakeCount: 0,\n\t},\n\tcreateConnState: (c): HibernationConnState => {\n\t\treturn {\n\t\t\tcount: 0,\n\t\t\tconnectCount: 0,\n\t\t\tdisconnectCount: 0,\n\t\t};\n\t},\n\tonWake: (c) => {\n\t\tc.state.wakeCount += 1;\n\t},\n\tonSleep: (c) => {\n\t\tc.state.sleepCount += 1;\n\t},\n\tonConnect: (c, conn) => {\n\t\tconn.state.connectCount += 1;\n\t},\n\tonDisconnect: (c, conn) => {\n\t\tconn.state.disconnectCount += 1;\n\t},\n\tactions: {\n\t\t// Basic RPC that returns a simple value\n\t\tping: (c) => {\n\t\t\treturn \"pong\";\n\t\t},\n\t\t// Increment the connection's count\n\t\tconnIncrement: (c) => {\n\t\t\tc.conn.state.count += 1;\n\t\t\treturn c.conn.state.count;\n\t\t},\n\t\t// Get the connection's count\n\t\tgetConnCount: (c) => {\n\t\t\treturn c.conn.state.count;\n\t\t},\n\t\t// Get the connection's lifecycle counts\n\t\tgetConnLifecycleCounts: (c) => {\n\t\t\treturn {\n\t\t\t\tconnectCount: c.conn.state.connectCount,\n\t\t\t\tdisconnectCount: c.conn.state.disconnectCount,\n\t\t\t};\n\t\t},\n\t\t// Get all connection IDs\n\t\tgetConnectionIds: (c) => {\n\t\t\treturn c.conns\n\t\t\t\t.entries()\n\t\t\t\t.map((x) => x[0])\n\t\t\t\t.toArray();\n\t\t},\n\t\t// Get actor sleep/wake counts\n\t\tgetActorCounts: (c) => {\n\t\t\treturn {\n\t\t\t\tsleepCount: c.state.sleepCount,\n\t\t\t\twakeCount: c.state.wakeCount,\n\t\t\t};\n\t\t},\n\t\t// Trigger sleep\n\t\ttriggerSleep: (c) => {\n\t\t\tc.sleep();\n\t\t},\n\t},\n\toptions: {\n\t\tsleepTimeout: HIBERNATION_SLEEP_TIMEOUT,\n\t},\n});\n","import { actor, type UniversalWebSocket } from \"rivetkit\";\nimport { promiseWithResolvers } from \"rivetkit/utils\";\n\nexport const SLEEP_TIMEOUT = 1000;\n\nexport const sleep = actor({\n\tstate: { startCount: 0, sleepCount: 0 },\n\tonWake: (c) => {\n\t\tc.state.startCount += 1;\n\t},\n\tonSleep: (c) => {\n\t\tc.state.sleepCount += 1;\n\t},\n\tactions: {\n\t\ttriggerSleep: (c) => {\n\t\t\tc.sleep();\n\t\t},\n\t\tgetCounts: (c) => {\n\t\t\treturn {\n\t\t\t\tstartCount: c.state.startCount,\n\t\t\t\tsleepCount: c.state.sleepCount,\n\t\t\t};\n\t\t},\n\t\tsetAlarm: async (c, duration: number) => {\n\t\t\tawait c.schedule.after(duration, \"onAlarm\");\n\t\t},\n\t\tonAlarm: (c) => {\n\t\t\tc.log.info(\"alarm called\");\n\t\t},\n\t},\n\toptions: {\n\t\tsleepTimeout: SLEEP_TIMEOUT,\n\t},\n});\n\nexport const sleepWithLongRpc = actor({\n\tstate: { startCount: 0, sleepCount: 0 },\n\tcreateVars: () =>\n\t\t({}) as { longRunningResolve: PromiseWithResolvers<void> },\n\tonWake: (c) => {\n\t\tc.state.startCount += 1;\n\t},\n\tonSleep: (c) => {\n\t\tc.state.sleepCount += 1;\n\t},\n\tactions: {\n\t\tgetCounts: (c) => {\n\t\t\treturn {\n\t\t\t\tstartCount: c.state.startCount,\n\t\t\t\tsleepCount: c.state.sleepCount,\n\t\t\t};\n\t\t},\n\t\tlongRunningRpc: async (c) => {\n\t\t\tc.log.info(\"starting long running rpc\");\n\t\t\tc.vars.longRunningResolve = promiseWithResolvers((reason) => c.log.warn({ msg: \"unhandled long running rpc rejection\", reason }));\n\t\t\tc.broadcast(\"waiting\");\n\t\t\tawait c.vars.longRunningResolve.promise;\n\t\t\tc.log.info(\"finished long running rpc\");\n\t\t},\n\t\tfinishLongRunningRpc: (c) => c.vars.longRunningResolve?.resolve(),\n\t},\n\toptions: {\n\t\tsleepTimeout: SLEEP_TIMEOUT,\n\t},\n});\n\nexport const sleepWithRawHttp = actor({\n\tstate: { startCount: 0, sleepCount: 0, requestCount: 0 },\n\tonWake: (c) => {\n\t\tc.state.startCount += 1;\n\t},\n\tonSleep: (c) => {\n\t\tc.state.sleepCount += 1;\n\t},\n\tonRequest: async (c, request) => {\n\t\tc.state.requestCount += 1;\n\t\tconst url = new URL(request.url);\n\n\t\tif (url.pathname === \"/long-request\") {\n\t\t\tconst duration = parseInt(\n\t\t\t\turl.searchParams.get(\"duration\") || \"1000\",\n\t\t\t);\n\t\t\tc.log.info({ msg: \"starting long fetch request\", duration });\n\t\t\tawait new Promise((resolve) => setTimeout(resolve, duration));\n\t\t\tc.log.info(\"finished long fetch request\");\n\t\t\treturn new Response(JSON.stringify({ completed: true }), {\n\t\t\t\theaders: { \"Content-Type\": \"application/json\" },\n\t\t\t});\n\t\t}\n\n\t\treturn new Response(\"Not Found\", { status: 404 });\n\t},\n\tactions: {\n\t\tgetCounts: (c) => {\n\t\t\treturn {\n\t\t\t\tstartCount: c.state.startCount,\n\t\t\t\tsleepCount: c.state.sleepCount,\n\t\t\t\trequestCount: c.state.requestCount,\n\t\t\t};\n\t\t},\n\t},\n\toptions: {\n\t\tsleepTimeout: SLEEP_TIMEOUT,\n\t},\n});\n\nexport const sleepWithRawWebSocket = actor({\n\tstate: { startCount: 0, sleepCount: 0, connectionCount: 0 },\n\tonWake: (c) => {\n\t\tc.state.startCount += 1;\n\t},\n\tonSleep: (c) => {\n\t\tc.state.sleepCount += 1;\n\t},\n\tonWebSocket: (c, websocket: UniversalWebSocket) => {\n\t\tc.state.connectionCount += 1;\n\t\tc.log.info({\n\t\t\tmsg: \"websocket connected\",\n\t\t\tconnectionCount: c.state.connectionCount,\n\t\t});\n\n\t\twebsocket.send(\n\t\t\tJSON.stringify({\n\t\t\t\ttype: \"connected\",\n\t\t\t\tconnectionCount: c.state.connectionCount,\n\t\t\t}),\n\t\t);\n\n\t\twebsocket.addEventListener(\"message\", (event: any) => {\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 === \"getCounts\") {\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: \"counts\",\n\t\t\t\t\t\t\t\tstartCount: c.state.startCount,\n\t\t\t\t\t\t\t\tsleepCount: c.state.sleepCount,\n\t\t\t\t\t\t\t\tconnectionCount: c.state.connectionCount,\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 === \"keepAlive\") {\n\t\t\t\t\t\t// Just acknowledge to keep connection alive\n\t\t\t\t\t\twebsocket.send(JSON.stringify({ type: \"ack\" }));\n\t\t\t\t\t}\n\t\t\t\t} catch {\n\t\t\t\t\t// Echo non-JSON messages\n\t\t\t\t\twebsocket.send(data);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\twebsocket.addEventListener(\"close\", () => {\n\t\t\tc.state.connectionCount -= 1;\n\t\t\tc.log.info({\n\t\t\t\tmsg: \"websocket disconnected\",\n\t\t\t\tconnectionCount: c.state.connectionCount,\n\t\t\t});\n\t\t});\n\t},\n\tactions: {\n\t\tgetCounts: (c) => {\n\t\t\treturn {\n\t\t\t\tstartCount: c.state.startCount,\n\t\t\t\tsleepCount: c.state.sleepCount,\n\t\t\t\tconnectionCount: c.state.connectionCount,\n\t\t\t};\n\t\t},\n\t},\n\toptions: {\n\t\tsleepTimeout: SLEEP_TIMEOUT,\n\t},\n});\n\nexport const sleepWithNoSleepOption = actor({\n\tstate: { startCount: 0, sleepCount: 0 },\n\tonWake: (c) => {\n\t\tc.state.startCount += 1;\n\t},\n\tonSleep: (c) => {\n\t\tc.state.sleepCount += 1;\n\t},\n\tactions: {\n\t\tgetCounts: (c) => {\n\t\t\treturn {\n\t\t\t\tstartCount: c.state.startCount,\n\t\t\t\tsleepCount: c.state.sleepCount,\n\t\t\t};\n\t\t},\n\t},\n\toptions: {\n\t\tsleepTimeout: SLEEP_TIMEOUT,\n\t\tnoSleep: true,\n\t},\n});\n","import { actor } from \"rivetkit\";\nimport type { registry } from \"./registry\";\n\nexport const RUN_SLEEP_TIMEOUT = 1000;\n\n// Actor that tracks tick counts and respects abort signal\nexport const runWithTicks = actor({\n\tstate: {\n\t\ttickCount: 0,\n\t\tlastTickAt: 0,\n\t\trunStarted: false,\n\t\trunExited: false,\n\t},\n\trun: async (c) => {\n\t\tc.state.runStarted = true;\n\t\tc.log.info(\"run handler started\");\n\n\t\twhile (!c.aborted) {\n\t\t\tc.state.tickCount += 1;\n\t\t\tc.state.lastTickAt = Date.now();\n\t\t\tc.log.info({ msg: \"tick\", tickCount: c.state.tickCount });\n\n\t\t\t// Wait 50ms between ticks, or exit early if aborted\n\t\t\tawait new Promise<void>((resolve) => {\n\t\t\t\tconst timeout = setTimeout(resolve, 50);\n\t\t\t\tc.abortSignal.addEventListener(\n\t\t\t\t\t\"abort\",\n\t\t\t\t\t() => {\n\t\t\t\t\t\tclearTimeout(timeout);\n\t\t\t\t\t\tresolve();\n\t\t\t\t\t},\n\t\t\t\t\t{ once: true },\n\t\t\t\t);\n\t\t\t});\n\t\t}\n\n\t\tc.state.runExited = true;\n\t\tc.log.info(\"run handler exiting gracefully\");\n\t},\n\tactions: {\n\t\tgetState: (c) => ({\n\t\t\ttickCount: c.state.tickCount,\n\t\t\tlastTickAt: c.state.lastTickAt,\n\t\t\trunStarted: c.state.runStarted,\n\t\t\trunExited: c.state.runExited,\n\t\t}),\n\t},\n\toptions: {\n\t\tsleepTimeout: RUN_SLEEP_TIMEOUT,\n\t\trunStopTimeout: 1000,\n\t},\n});\n\n// Actor that consumes from a queue in the run handler\nexport const runWithQueueConsumer = actor({\n\tstate: {\n\t\tmessagesReceived: [] as Array<{ name: string; body: unknown }>,\n\t\trunStarted: false,\n\t\twakeCount: 0,\n\t},\n\tonWake: (c) => {\n\t\tc.state.wakeCount += 1;\n\t},\n\trun: async (c) => {\n\t\tc.state.runStarted = true;\n\t\tc.log.info(\"run handler started, waiting for messages\");\n\n\t\twhile (!c.aborted) {\n\t\t\tconst messages = await c.queue.next({ names: [\"messages\"] });\n\t\t\tconst message = messages[0];\n\t\t\tif (message) {\n\t\t\t\tc.log.info({ msg: \"received message\", body: message.body });\n\t\t\t\tc.state.messagesReceived.push({\n\t\t\t\t\tname: message.name,\n\t\t\t\t\tbody: message.body,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tc.log.info(\"run handler exiting gracefully\");\n\t},\n\tactions: {\n\t\tgetState: (c) => ({\n\t\t\tmessagesReceived: c.state.messagesReceived,\n\t\t\trunStarted: c.state.runStarted,\n\t\t\twakeCount: c.state.wakeCount,\n\t\t}),\n\t\tsendMessage: async (c, body: unknown) => {\n\t\t\tconst client = c.client<typeof registry>();\n\t\t\tconst handle = client.runWithQueueConsumer.getForId(c.actorId);\n\t\t\tawait handle.send(\"messages\", body);\n\t\t\treturn true;\n\t\t},\n\t},\n\toptions: {\n\t\tsleepTimeout: RUN_SLEEP_TIMEOUT,\n\t\trunStopTimeout: 1000,\n\t},\n});\n\n// Actor that exits the run handler after a short delay to test crash behavior\nexport const runWithEarlyExit = actor({\n\tstate: {\n\t\trunStarted: false,\n\t\tdestroyCalled: false,\n\t},\n\trun: async (c) => {\n\t\tc.state.runStarted = true;\n\t\tc.log.info(\"run handler started, will exit after delay\");\n\t\t// Wait a bit so we can observe the runStarted state before exit\n\t\tawait new Promise((resolve) => setTimeout(resolve, 200));\n\t\tc.log.info(\"run handler exiting early\");\n\t\t// Exit without respecting abort signal\n\t},\n\tonDestroy: (c) => {\n\t\tc.state.destroyCalled = true;\n\t},\n\tactions: {\n\t\tgetState: (c) => ({\n\t\t\trunStarted: c.state.runStarted,\n\t\t\tdestroyCalled: c.state.destroyCalled,\n\t\t}),\n\t},\n\toptions: {\n\t\tsleepTimeout: RUN_SLEEP_TIMEOUT,\n\t},\n});\n\n// Actor that throws an error in the run handler to test crash behavior\nexport const runWithError = actor({\n\tstate: {\n\t\trunStarted: false,\n\t\tdestroyCalled: false,\n\t},\n\trun: async (c) => {\n\t\tc.state.runStarted = true;\n\t\tc.log.info(\"run handler started, will throw error\");\n\t\tawait new Promise((resolve) => setTimeout(resolve, 200));\n\t\tthrow new Error(\"intentional error in run handler\");\n\t},\n\tonDestroy: (c) => {\n\t\tc.state.destroyCalled = true;\n\t},\n\tactions: {\n\t\tgetState: (c) => ({\n\t\t\trunStarted: c.state.runStarted,\n\t\t\tdestroyCalled: c.state.destroyCalled,\n\t\t}),\n\t},\n\toptions: {\n\t\tsleepTimeout: RUN_SLEEP_TIMEOUT,\n\t},\n});\n\n// Actor without a run handler for comparison\nexport const runWithoutHandler = actor({\n\tstate: {\n\t\twakeCount: 0,\n\t},\n\tonWake: (c) => {\n\t\tc.state.wakeCount += 1;\n\t},\n\tactions: {\n\t\tgetState: (c) => ({\n\t\t\twakeCount: c.state.wakeCount,\n\t\t}),\n\t},\n\toptions: {\n\t\tsleepTimeout: RUN_SLEEP_TIMEOUT,\n\t},\n});\n","import { Loop } from \"@rivetkit/workflow-engine\";\nimport { actor, queue } from \"@/actor/mod\";\nimport { db } from \"@/db/mod\";\nimport { WORKFLOW_GUARD_KV_KEY } from \"@/workflow/constants\";\nimport { workflow } from \"@/workflow/mod\";\nimport type { registry } from \"./registry\";\n\nconst WORKFLOW_QUEUE_NAME = \"workflow-default\";\n\nexport const workflowCounterActor = actor({\n\tstate: {\n\t\trunCount: 0,\n\t\tguardTriggered: false,\n\t\thistory: [] as number[],\n\t},\n\trun: workflow(async (ctx) => {\n\t\tawait ctx.loop({\n\t\t\tname: \"counter\",\n\t\t\trun: async (loopCtx) => {\n\t\t\t\tconst actorLoopCtx = loopCtx as any;\n\t\t\t\ttry {\n\t\t\t\t\t// Accessing state outside a step should throw.\n\t\t\t\t\t// biome-ignore lint/style/noUnusedExpressions: intentionally checking accessor.\n\t\t\t\t\tactorLoopCtx.state;\n\t\t\t\t} catch {}\n\n\t\t\t\tawait loopCtx.step(\"increment\", async () => {\n\t\t\t\t\tactorLoopCtx.state.runCount += 1;\n\t\t\t\t\tactorLoopCtx.state.history.push(actorLoopCtx.state.runCount);\n\t\t\t\t});\n\n\t\t\t\tawait loopCtx.sleep(\"idle\", 25);\n\t\t\t\treturn Loop.continue(undefined);\n\t\t\t},\n\t\t});\n\t}),\n\tactions: {\n\t\tgetState: async (c) => {\n\t\t\tconst guardFlag = await c.kv.get(WORKFLOW_GUARD_KV_KEY);\n\t\t\tif (guardFlag === \"true\") {\n\t\t\t\tc.state.guardTriggered = true;\n\t\t\t}\n\t\t\treturn c.state;\n\t\t},\n\t},\n\toptions: {\n\t\tsleepTimeout: 50,\n\t},\n});\n\nexport const workflowQueueActor = actor({\n\tstate: {\n\t\treceived: [] as unknown[],\n\t},\n\tqueues: {\n\t\t[WORKFLOW_QUEUE_NAME]: queue<unknown, { echo: unknown }>(),\n\t},\n\trun: workflow(async (ctx) => {\n\t\tawait ctx.loop({\n\t\t\tname: \"queue\",\n\t\t\trun: async (loopCtx) => {\n\t\t\t\tconst actorLoopCtx = loopCtx as any;\n\t\t\t\tconst [message] = await loopCtx.queue.next(\"queue-wait\", {\n\t\t\t\t\tnames: [WORKFLOW_QUEUE_NAME],\n\t\t\t\t\tcompletable: true,\n\t\t\t\t});\n\t\t\t\tif (!message || !message.complete) {\n\t\t\t\t\treturn Loop.continue(undefined);\n\t\t\t\t}\n\t\t\t\tconst complete = message.complete;\n\t\t\t\tawait loopCtx.step(\"store-message\", async () => {\n\t\t\t\t\tactorLoopCtx.state.received.push(message.body);\n\t\t\t\t\tawait complete({ echo: message.body });\n\t\t\t\t});\n\t\t\t\treturn Loop.continue(undefined);\n\t\t\t},\n\t\t});\n\t}),\n\tactions: {\n\t\tgetMessages: (c) => c.state.received,\n\t\tsendAndWait: async (c, payload: unknown) => {\n\t\t\tconst client = c.client<typeof registry>();\n\t\t\tconst handle = client.workflowQueueActor.getForId(c.actorId);\n\t\t\treturn await handle.send(\n\t\t\t\tWORKFLOW_QUEUE_NAME,\n\t\t\t\tpayload,\n\t\t\t\t{ wait: true, timeout: 1_000 },\n\t\t\t);\n\t\t},\n\t},\n});\n\nexport const workflowAccessActor = actor({\n\tdb: db({\n\t\tonMigrate: async (rawDb) => {\n\t\t\tawait rawDb.execute(`\n\t\t\t\tCREATE TABLE IF NOT EXISTS workflow_access_log (\n\t\t\t\t\tid INTEGER PRIMARY KEY AUTOINCREMENT,\n\t\t\t\t\tcreated_at INTEGER NOT NULL\n\t\t\t\t)\n\t\t\t`);\n\t\t},\n\t}),\n\tstate: {\n\t\toutsideDbError: null as string | null,\n\t\toutsideClientError: null as string | null,\n\t\tinsideDbCount: 0,\n\t\tinsideClientAvailable: false,\n\t},\n\trun: workflow(async (ctx) => {\n\t\tawait ctx.loop({\n\t\t\tname: \"access\",\n\t\t\trun: async (loopCtx) => {\n\t\t\t\tconst actorLoopCtx = loopCtx as any;\n\t\t\t\tlet outsideDbError: string | null = null;\n\t\t\t\tlet outsideClientError: string | null = null;\n\n\t\t\t\ttry {\n\t\t\t\t\t// Accessing db outside a step should throw.\n\t\t\t\t\t// biome-ignore lint/style/noUnusedExpressions: intentionally checking accessor.\n\t\t\t\t\tactorLoopCtx.db;\n\t\t\t\t} catch (error) {\n\t\t\t\t\toutsideDbError =\n\t\t\t\t\t\terror instanceof Error ? error.message : String(error);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tactorLoopCtx.client();\n\t\t\t\t} catch (error) {\n\t\t\t\t\toutsideClientError =\n\t\t\t\t\t\terror instanceof Error ? error.message : String(error);\n\t\t\t\t}\n\n\t\t\t\tawait loopCtx.step(\"access-step\", async () => {\n\t\t\t\t\tawait loopCtx.db.execute(\n\t\t\t\t\t\t`INSERT INTO workflow_access_log (created_at) VALUES (${Date.now()})`,\n\t\t\t\t\t);\n\t\t\t\t\tconst counts = await loopCtx.db.execute<{ count: number }>(\n\t\t\t\t\t\t`SELECT COUNT(*) as count FROM workflow_access_log`,\n\t\t\t\t\t);\n\t\t\t\t\tconst client = loopCtx.client<typeof registry>();\n\n\t\t\t\t\tloopCtx.state.outsideDbError = outsideDbError;\n\t\t\t\t\tloopCtx.state.outsideClientError = outsideClientError;\n\t\t\t\t\tloopCtx.state.insideDbCount = counts[0]?.count ?? 0;\n\t\t\t\t\tloopCtx.state.insideClientAvailable =\n\t\t\t\t\t\ttypeof client.workflowQueueActor.getForId === \"function\";\n\t\t\t\t});\n\n\t\t\t\tawait loopCtx.sleep(\"idle\", 25);\n\t\t\t\treturn Loop.continue(undefined);\n\t\t\t},\n\t\t});\n\t}),\n\tactions: {\n\t\tgetState: (c) => c.state,\n\t},\n});\n\nexport const workflowSleepActor = actor({\n\tstate: {\n\t\tticks: 0,\n\t},\n\trun: workflow(async (ctx) => {\n\t\tawait ctx.loop({\n\t\t\tname: \"sleep\",\n\t\t\trun: async (loopCtx) => {\n\t\t\t\tconst actorLoopCtx = loopCtx as any;\n\t\t\t\tawait loopCtx.step(\"tick\", async () => {\n\t\t\t\t\tactorLoopCtx.state.ticks += 1;\n\t\t\t\t});\n\t\t\t\tawait loopCtx.sleep(\"delay\", 40);\n\t\t\t\treturn Loop.continue(undefined);\n\t\t\t},\n\t\t});\n\t}),\n\tactions: {\n\t\tgetState: (c) => c.state,\n\t},\n\toptions: {\n\t\tsleepTimeout: 50,\n\t},\n});\n\nexport const workflowStopTeardownActor = actor({\n\tstate: {\n\t\twakeAts: [] as number[],\n\t\tsleepAts: [] as number[],\n\t},\n\tqueues: {\n\t\tnever: queue<unknown>(),\n\t},\n\tonWake: (c) => {\n\t\tc.state.wakeAts.push(Date.now());\n\t},\n\tonSleep: (c) => {\n\t\tc.state.sleepAts.push(Date.now());\n\t},\n\trun: workflow(async (ctx) => {\n\t\tawait ctx.loop({\n\t\t\tname: \"wait-forever\",\n\t\t\trun: async (loopCtx) => {\n\t\t\t\tawait loopCtx.queue.next(\"wait-for-never\", {\n\t\t\t\t\tnames: [\"never\"],\n\t\t\t\t});\n\t\t\t\treturn Loop.continue(undefined);\n\t\t\t},\n\t\t});\n\t}),\n\tactions: {\n\t\tgetTimeline: (c) => ({\n\t\t\twakeAts: [...c.state.wakeAts],\n\t\t\tsleepAts: [...c.state.sleepAts],\n\t\t}),\n\t},\n\toptions: {\n\t\tsleepTimeout: 75,\n\t\trunStopTimeout: 2_000,\n\t},\n});\n\nexport { WORKFLOW_QUEUE_NAME };\n"],"mappings":"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","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-XWBAQO5H.cjs","../../src/driver-test-suite/log.ts","../../fixtures/driver-test-suite/hibernation.ts","../../fixtures/driver-test-suite/sleep.ts","../../fixtures/driver-test-suite/run.ts","../../fixtures/driver-test-suite/workflow.ts"],"names":[],"mappings":"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","file":"/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-XWBAQO5H.cjs","sourcesContent":[null,"import { getLogger } from \"@/common/log\";\n\nexport function logger() {\n\treturn getLogger(\"test-suite\");\n}\n","import { actor } from \"rivetkit\";\n\nexport const HIBERNATION_SLEEP_TIMEOUT = 500;\n\nexport type HibernationConnState = {\n\tcount: number;\n\tconnectCount: number;\n\tdisconnectCount: number;\n};\n\nexport const hibernationActor = actor({\n\tstate: {\n\t\tsleepCount: 0,\n\t\twakeCount: 0,\n\t},\n\tcreateConnState: (c): HibernationConnState => {\n\t\treturn {\n\t\t\tcount: 0,\n\t\t\tconnectCount: 0,\n\t\t\tdisconnectCount: 0,\n\t\t};\n\t},\n\tonWake: (c) => {\n\t\tc.state.wakeCount += 1;\n\t},\n\tonSleep: (c) => {\n\t\tc.state.sleepCount += 1;\n\t},\n\tonConnect: (c, conn) => {\n\t\tconn.state.connectCount += 1;\n\t},\n\tonDisconnect: (c, conn) => {\n\t\tconn.state.disconnectCount += 1;\n\t},\n\tactions: {\n\t\t// Basic RPC that returns a simple value\n\t\tping: (c) => {\n\t\t\treturn \"pong\";\n\t\t},\n\t\t// Increment the connection's count\n\t\tconnIncrement: (c) => {\n\t\t\tc.conn.state.count += 1;\n\t\t\treturn c.conn.state.count;\n\t\t},\n\t\t// Get the connection's count\n\t\tgetConnCount: (c) => {\n\t\t\treturn c.conn.state.count;\n\t\t},\n\t\t// Get the connection's lifecycle counts\n\t\tgetConnLifecycleCounts: (c) => {\n\t\t\treturn {\n\t\t\t\tconnectCount: c.conn.state.connectCount,\n\t\t\t\tdisconnectCount: c.conn.state.disconnectCount,\n\t\t\t};\n\t\t},\n\t\t// Get all connection IDs\n\t\tgetConnectionIds: (c) => {\n\t\t\treturn c.conns\n\t\t\t\t.entries()\n\t\t\t\t.map((x) => x[0])\n\t\t\t\t.toArray();\n\t\t},\n\t\t// Get actor sleep/wake counts\n\t\tgetActorCounts: (c) => {\n\t\t\treturn {\n\t\t\t\tsleepCount: c.state.sleepCount,\n\t\t\t\twakeCount: c.state.wakeCount,\n\t\t\t};\n\t\t},\n\t\t// Trigger sleep\n\t\ttriggerSleep: (c) => {\n\t\t\tc.sleep();\n\t\t},\n\t},\n\toptions: {\n\t\tsleepTimeout: HIBERNATION_SLEEP_TIMEOUT,\n\t},\n});\n","import { actor, type UniversalWebSocket } from \"rivetkit\";\nimport { promiseWithResolvers } from \"rivetkit/utils\";\n\nexport const SLEEP_TIMEOUT = 1000;\n\nexport const sleep = actor({\n\tstate: { startCount: 0, sleepCount: 0 },\n\tonWake: (c) => {\n\t\tc.state.startCount += 1;\n\t},\n\tonSleep: (c) => {\n\t\tc.state.sleepCount += 1;\n\t},\n\tactions: {\n\t\ttriggerSleep: (c) => {\n\t\t\tc.sleep();\n\t\t},\n\t\tgetCounts: (c) => {\n\t\t\treturn {\n\t\t\t\tstartCount: c.state.startCount,\n\t\t\t\tsleepCount: c.state.sleepCount,\n\t\t\t};\n\t\t},\n\t\tsetAlarm: async (c, duration: number) => {\n\t\t\tawait c.schedule.after(duration, \"onAlarm\");\n\t\t},\n\t\tonAlarm: (c) => {\n\t\t\tc.log.info(\"alarm called\");\n\t\t},\n\t},\n\toptions: {\n\t\tsleepTimeout: SLEEP_TIMEOUT,\n\t},\n});\n\nexport const sleepWithLongRpc = actor({\n\tstate: { startCount: 0, sleepCount: 0 },\n\tcreateVars: () =>\n\t\t({}) as { longRunningResolve: PromiseWithResolvers<void> },\n\tonWake: (c) => {\n\t\tc.state.startCount += 1;\n\t},\n\tonSleep: (c) => {\n\t\tc.state.sleepCount += 1;\n\t},\n\tactions: {\n\t\tgetCounts: (c) => {\n\t\t\treturn {\n\t\t\t\tstartCount: c.state.startCount,\n\t\t\t\tsleepCount: c.state.sleepCount,\n\t\t\t};\n\t\t},\n\t\tlongRunningRpc: async (c) => {\n\t\t\tc.log.info(\"starting long running rpc\");\n\t\t\tc.vars.longRunningResolve = promiseWithResolvers((reason) => c.log.warn({ msg: \"unhandled long running rpc rejection\", reason }));\n\t\t\tc.broadcast(\"waiting\");\n\t\t\tawait c.vars.longRunningResolve.promise;\n\t\t\tc.log.info(\"finished long running rpc\");\n\t\t},\n\t\tfinishLongRunningRpc: (c) => c.vars.longRunningResolve?.resolve(),\n\t},\n\toptions: {\n\t\tsleepTimeout: SLEEP_TIMEOUT,\n\t},\n});\n\nexport const sleepWithRawHttp = actor({\n\tstate: { startCount: 0, sleepCount: 0, requestCount: 0 },\n\tonWake: (c) => {\n\t\tc.state.startCount += 1;\n\t},\n\tonSleep: (c) => {\n\t\tc.state.sleepCount += 1;\n\t},\n\tonRequest: async (c, request) => {\n\t\tc.state.requestCount += 1;\n\t\tconst url = new URL(request.url);\n\n\t\tif (url.pathname === \"/long-request\") {\n\t\t\tconst duration = parseInt(\n\t\t\t\turl.searchParams.get(\"duration\") || \"1000\",\n\t\t\t);\n\t\t\tc.log.info({ msg: \"starting long fetch request\", duration });\n\t\t\tawait new Promise((resolve) => setTimeout(resolve, duration));\n\t\t\tc.log.info(\"finished long fetch request\");\n\t\t\treturn new Response(JSON.stringify({ completed: true }), {\n\t\t\t\theaders: { \"Content-Type\": \"application/json\" },\n\t\t\t});\n\t\t}\n\n\t\treturn new Response(\"Not Found\", { status: 404 });\n\t},\n\tactions: {\n\t\tgetCounts: (c) => {\n\t\t\treturn {\n\t\t\t\tstartCount: c.state.startCount,\n\t\t\t\tsleepCount: c.state.sleepCount,\n\t\t\t\trequestCount: c.state.requestCount,\n\t\t\t};\n\t\t},\n\t},\n\toptions: {\n\t\tsleepTimeout: SLEEP_TIMEOUT,\n\t},\n});\n\nexport const sleepWithRawWebSocket = actor({\n\tstate: { startCount: 0, sleepCount: 0, connectionCount: 0 },\n\tonWake: (c) => {\n\t\tc.state.startCount += 1;\n\t},\n\tonSleep: (c) => {\n\t\tc.state.sleepCount += 1;\n\t},\n\tonWebSocket: (c, websocket: UniversalWebSocket) => {\n\t\tc.state.connectionCount += 1;\n\t\tc.log.info({\n\t\t\tmsg: \"websocket connected\",\n\t\t\tconnectionCount: c.state.connectionCount,\n\t\t});\n\n\t\twebsocket.send(\n\t\t\tJSON.stringify({\n\t\t\t\ttype: \"connected\",\n\t\t\t\tconnectionCount: c.state.connectionCount,\n\t\t\t}),\n\t\t);\n\n\t\twebsocket.addEventListener(\"message\", (event: any) => {\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 === \"getCounts\") {\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: \"counts\",\n\t\t\t\t\t\t\t\tstartCount: c.state.startCount,\n\t\t\t\t\t\t\t\tsleepCount: c.state.sleepCount,\n\t\t\t\t\t\t\t\tconnectionCount: c.state.connectionCount,\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 === \"keepAlive\") {\n\t\t\t\t\t\t// Just acknowledge to keep connection alive\n\t\t\t\t\t\twebsocket.send(JSON.stringify({ type: \"ack\" }));\n\t\t\t\t\t}\n\t\t\t\t} catch {\n\t\t\t\t\t// Echo non-JSON messages\n\t\t\t\t\twebsocket.send(data);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\twebsocket.addEventListener(\"close\", () => {\n\t\t\tc.state.connectionCount -= 1;\n\t\t\tc.log.info({\n\t\t\t\tmsg: \"websocket disconnected\",\n\t\t\t\tconnectionCount: c.state.connectionCount,\n\t\t\t});\n\t\t});\n\t},\n\tactions: {\n\t\tgetCounts: (c) => {\n\t\t\treturn {\n\t\t\t\tstartCount: c.state.startCount,\n\t\t\t\tsleepCount: c.state.sleepCount,\n\t\t\t\tconnectionCount: c.state.connectionCount,\n\t\t\t};\n\t\t},\n\t},\n\toptions: {\n\t\tsleepTimeout: SLEEP_TIMEOUT,\n\t},\n});\n\nexport const sleepWithNoSleepOption = actor({\n\tstate: { startCount: 0, sleepCount: 0 },\n\tonWake: (c) => {\n\t\tc.state.startCount += 1;\n\t},\n\tonSleep: (c) => {\n\t\tc.state.sleepCount += 1;\n\t},\n\tactions: {\n\t\tgetCounts: (c) => {\n\t\t\treturn {\n\t\t\t\tstartCount: c.state.startCount,\n\t\t\t\tsleepCount: c.state.sleepCount,\n\t\t\t};\n\t\t},\n\t},\n\toptions: {\n\t\tsleepTimeout: SLEEP_TIMEOUT,\n\t\tnoSleep: true,\n\t},\n});\n","import { actor } from \"rivetkit\";\nimport type { registry } from \"./registry\";\n\nexport const RUN_SLEEP_TIMEOUT = 1000;\n\n// Actor that tracks tick counts and respects abort signal\nexport const runWithTicks = actor({\n\tstate: {\n\t\ttickCount: 0,\n\t\tlastTickAt: 0,\n\t\trunStarted: false,\n\t\trunExited: false,\n\t},\n\trun: async (c) => {\n\t\tc.state.runStarted = true;\n\t\tc.log.info(\"run handler started\");\n\n\t\twhile (!c.aborted) {\n\t\t\tc.state.tickCount += 1;\n\t\t\tc.state.lastTickAt = Date.now();\n\t\t\tc.log.info({ msg: \"tick\", tickCount: c.state.tickCount });\n\n\t\t\t// Wait 50ms between ticks, or exit early if aborted\n\t\t\tawait new Promise<void>((resolve) => {\n\t\t\t\tconst timeout = setTimeout(resolve, 50);\n\t\t\t\tc.abortSignal.addEventListener(\n\t\t\t\t\t\"abort\",\n\t\t\t\t\t() => {\n\t\t\t\t\t\tclearTimeout(timeout);\n\t\t\t\t\t\tresolve();\n\t\t\t\t\t},\n\t\t\t\t\t{ once: true },\n\t\t\t\t);\n\t\t\t});\n\t\t}\n\n\t\tc.state.runExited = true;\n\t\tc.log.info(\"run handler exiting gracefully\");\n\t},\n\tactions: {\n\t\tgetState: (c) => ({\n\t\t\ttickCount: c.state.tickCount,\n\t\t\tlastTickAt: c.state.lastTickAt,\n\t\t\trunStarted: c.state.runStarted,\n\t\t\trunExited: c.state.runExited,\n\t\t}),\n\t},\n\toptions: {\n\t\tsleepTimeout: RUN_SLEEP_TIMEOUT,\n\t\trunStopTimeout: 1000,\n\t},\n});\n\n// Actor that consumes from a queue in the run handler\nexport const runWithQueueConsumer = actor({\n\tstate: {\n\t\tmessagesReceived: [] as Array<{ name: string; body: unknown }>,\n\t\trunStarted: false,\n\t\twakeCount: 0,\n\t},\n\tonWake: (c) => {\n\t\tc.state.wakeCount += 1;\n\t},\n\trun: async (c) => {\n\t\tc.state.runStarted = true;\n\t\tc.log.info(\"run handler started, waiting for messages\");\n\n\t\twhile (!c.aborted) {\n\t\t\tconst messages = await c.queue.next({ names: [\"messages\"] });\n\t\t\tconst message = messages[0];\n\t\t\tif (message) {\n\t\t\t\tc.log.info({ msg: \"received message\", body: message.body });\n\t\t\t\tc.state.messagesReceived.push({\n\t\t\t\t\tname: message.name,\n\t\t\t\t\tbody: message.body,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tc.log.info(\"run handler exiting gracefully\");\n\t},\n\tactions: {\n\t\tgetState: (c) => ({\n\t\t\tmessagesReceived: c.state.messagesReceived,\n\t\t\trunStarted: c.state.runStarted,\n\t\t\twakeCount: c.state.wakeCount,\n\t\t}),\n\t\tsendMessage: async (c, body: unknown) => {\n\t\t\tconst client = c.client<typeof registry>();\n\t\t\tconst handle = client.runWithQueueConsumer.getForId(c.actorId);\n\t\t\tawait handle.send(\"messages\", body);\n\t\t\treturn true;\n\t\t},\n\t},\n\toptions: {\n\t\tsleepTimeout: RUN_SLEEP_TIMEOUT,\n\t\trunStopTimeout: 1000,\n\t},\n});\n\n// Actor that exits the run handler after a short delay to test crash behavior\nexport const runWithEarlyExit = actor({\n\tstate: {\n\t\trunStarted: false,\n\t\tdestroyCalled: false,\n\t},\n\trun: async (c) => {\n\t\tc.state.runStarted = true;\n\t\tc.log.info(\"run handler started, will exit after delay\");\n\t\t// Wait a bit so we can observe the runStarted state before exit\n\t\tawait new Promise((resolve) => setTimeout(resolve, 200));\n\t\tc.log.info(\"run handler exiting early\");\n\t\t// Exit without respecting abort signal\n\t},\n\tonDestroy: (c) => {\n\t\tc.state.destroyCalled = true;\n\t},\n\tactions: {\n\t\tgetState: (c) => ({\n\t\t\trunStarted: c.state.runStarted,\n\t\t\tdestroyCalled: c.state.destroyCalled,\n\t\t}),\n\t},\n\toptions: {\n\t\tsleepTimeout: RUN_SLEEP_TIMEOUT,\n\t},\n});\n\n// Actor that throws an error in the run handler to test crash behavior\nexport const runWithError = actor({\n\tstate: {\n\t\trunStarted: false,\n\t\tdestroyCalled: false,\n\t},\n\trun: async (c) => {\n\t\tc.state.runStarted = true;\n\t\tc.log.info(\"run handler started, will throw error\");\n\t\tawait new Promise((resolve) => setTimeout(resolve, 200));\n\t\tthrow new Error(\"intentional error in run handler\");\n\t},\n\tonDestroy: (c) => {\n\t\tc.state.destroyCalled = true;\n\t},\n\tactions: {\n\t\tgetState: (c) => ({\n\t\t\trunStarted: c.state.runStarted,\n\t\t\tdestroyCalled: c.state.destroyCalled,\n\t\t}),\n\t},\n\toptions: {\n\t\tsleepTimeout: RUN_SLEEP_TIMEOUT,\n\t},\n});\n\n// Actor without a run handler for comparison\nexport const runWithoutHandler = actor({\n\tstate: {\n\t\twakeCount: 0,\n\t},\n\tonWake: (c) => {\n\t\tc.state.wakeCount += 1;\n\t},\n\tactions: {\n\t\tgetState: (c) => ({\n\t\t\twakeCount: c.state.wakeCount,\n\t\t}),\n\t},\n\toptions: {\n\t\tsleepTimeout: RUN_SLEEP_TIMEOUT,\n\t},\n});\n","import { Loop } from \"@rivetkit/workflow-engine\";\nimport { actor, queue } from \"@/actor/mod\";\nimport { db } from \"@/db/mod\";\nimport { WORKFLOW_GUARD_KV_KEY } from \"@/workflow/constants\";\nimport { workflow } from \"@/workflow/mod\";\nimport type { registry } from \"./registry\";\n\nconst WORKFLOW_QUEUE_NAME = \"workflow-default\";\n\nexport const workflowCounterActor = actor({\n\tstate: {\n\t\trunCount: 0,\n\t\tguardTriggered: false,\n\t\thistory: [] as number[],\n\t},\n\trun: workflow(async (ctx) => {\n\t\tawait ctx.loop({\n\t\t\tname: \"counter\",\n\t\t\trun: async (loopCtx) => {\n\t\t\t\tconst actorLoopCtx = loopCtx as any;\n\t\t\t\ttry {\n\t\t\t\t\t// Accessing state outside a step should throw.\n\t\t\t\t\t// biome-ignore lint/style/noUnusedExpressions: intentionally checking accessor.\n\t\t\t\t\tactorLoopCtx.state;\n\t\t\t\t} catch {}\n\n\t\t\t\tawait loopCtx.step(\"increment\", async () => {\n\t\t\t\t\tactorLoopCtx.state.runCount += 1;\n\t\t\t\t\tactorLoopCtx.state.history.push(actorLoopCtx.state.runCount);\n\t\t\t\t});\n\n\t\t\t\tawait loopCtx.sleep(\"idle\", 25);\n\t\t\t\treturn Loop.continue(undefined);\n\t\t\t},\n\t\t});\n\t}),\n\tactions: {\n\t\tgetState: async (c) => {\n\t\t\tconst guardFlag = await c.kv.get(WORKFLOW_GUARD_KV_KEY);\n\t\t\tif (guardFlag === \"true\") {\n\t\t\t\tc.state.guardTriggered = true;\n\t\t\t}\n\t\t\treturn c.state;\n\t\t},\n\t},\n\toptions: {\n\t\tsleepTimeout: 50,\n\t},\n});\n\nexport const workflowQueueActor = actor({\n\tstate: {\n\t\treceived: [] as unknown[],\n\t},\n\tqueues: {\n\t\t[WORKFLOW_QUEUE_NAME]: queue<unknown, { echo: unknown }>(),\n\t},\n\trun: workflow(async (ctx) => {\n\t\tawait ctx.loop({\n\t\t\tname: \"queue\",\n\t\t\trun: async (loopCtx) => {\n\t\t\t\tconst actorLoopCtx = loopCtx as any;\n\t\t\t\tconst [message] = await loopCtx.queue.next(\"queue-wait\", {\n\t\t\t\t\tnames: [WORKFLOW_QUEUE_NAME],\n\t\t\t\t\tcompletable: true,\n\t\t\t\t});\n\t\t\t\tif (!message || !message.complete) {\n\t\t\t\t\treturn Loop.continue(undefined);\n\t\t\t\t}\n\t\t\t\tconst complete = message.complete;\n\t\t\t\tawait loopCtx.step(\"store-message\", async () => {\n\t\t\t\t\tactorLoopCtx.state.received.push(message.body);\n\t\t\t\t\tawait complete({ echo: message.body });\n\t\t\t\t});\n\t\t\t\treturn Loop.continue(undefined);\n\t\t\t},\n\t\t});\n\t}),\n\tactions: {\n\t\tgetMessages: (c) => c.state.received,\n\t\tsendAndWait: async (c, payload: unknown) => {\n\t\t\tconst client = c.client<typeof registry>();\n\t\t\tconst handle = client.workflowQueueActor.getForId(c.actorId);\n\t\t\treturn await handle.send(\n\t\t\t\tWORKFLOW_QUEUE_NAME,\n\t\t\t\tpayload,\n\t\t\t\t{ wait: true, timeout: 1_000 },\n\t\t\t);\n\t\t},\n\t},\n});\n\nexport const workflowAccessActor = actor({\n\tdb: db({\n\t\tonMigrate: async (rawDb) => {\n\t\t\tawait rawDb.execute(`\n\t\t\t\tCREATE TABLE IF NOT EXISTS workflow_access_log (\n\t\t\t\t\tid INTEGER PRIMARY KEY AUTOINCREMENT,\n\t\t\t\t\tcreated_at INTEGER NOT NULL\n\t\t\t\t)\n\t\t\t`);\n\t\t},\n\t}),\n\tstate: {\n\t\toutsideDbError: null as string | null,\n\t\toutsideClientError: null as string | null,\n\t\tinsideDbCount: 0,\n\t\tinsideClientAvailable: false,\n\t},\n\trun: workflow(async (ctx) => {\n\t\tawait ctx.loop({\n\t\t\tname: \"access\",\n\t\t\trun: async (loopCtx) => {\n\t\t\t\tconst actorLoopCtx = loopCtx as any;\n\t\t\t\tlet outsideDbError: string | null = null;\n\t\t\t\tlet outsideClientError: string | null = null;\n\n\t\t\t\ttry {\n\t\t\t\t\t// Accessing db outside a step should throw.\n\t\t\t\t\t// biome-ignore lint/style/noUnusedExpressions: intentionally checking accessor.\n\t\t\t\t\tactorLoopCtx.db;\n\t\t\t\t} catch (error) {\n\t\t\t\t\toutsideDbError =\n\t\t\t\t\t\terror instanceof Error ? error.message : String(error);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tactorLoopCtx.client();\n\t\t\t\t} catch (error) {\n\t\t\t\t\toutsideClientError =\n\t\t\t\t\t\terror instanceof Error ? error.message : String(error);\n\t\t\t\t}\n\n\t\t\t\tawait loopCtx.step(\"access-step\", async () => {\n\t\t\t\t\tawait loopCtx.db.execute(\n\t\t\t\t\t\t`INSERT INTO workflow_access_log (created_at) VALUES (${Date.now()})`,\n\t\t\t\t\t);\n\t\t\t\t\tconst counts = await loopCtx.db.execute<{ count: number }>(\n\t\t\t\t\t\t`SELECT COUNT(*) as count FROM workflow_access_log`,\n\t\t\t\t\t);\n\t\t\t\t\tconst client = loopCtx.client<typeof registry>();\n\n\t\t\t\t\tloopCtx.state.outsideDbError = outsideDbError;\n\t\t\t\t\tloopCtx.state.outsideClientError = outsideClientError;\n\t\t\t\t\tloopCtx.state.insideDbCount = counts[0]?.count ?? 0;\n\t\t\t\t\tloopCtx.state.insideClientAvailable =\n\t\t\t\t\t\ttypeof client.workflowQueueActor.getForId === \"function\";\n\t\t\t\t});\n\n\t\t\t\tawait loopCtx.sleep(\"idle\", 25);\n\t\t\t\treturn Loop.continue(undefined);\n\t\t\t},\n\t\t});\n\t}),\n\tactions: {\n\t\tgetState: (c) => c.state,\n\t},\n});\n\nexport const workflowSleepActor = actor({\n\tstate: {\n\t\tticks: 0,\n\t},\n\trun: workflow(async (ctx) => {\n\t\tawait ctx.loop({\n\t\t\tname: \"sleep\",\n\t\t\trun: async (loopCtx) => {\n\t\t\t\tconst actorLoopCtx = loopCtx as any;\n\t\t\t\tawait loopCtx.step(\"tick\", async () => {\n\t\t\t\t\tactorLoopCtx.state.ticks += 1;\n\t\t\t\t});\n\t\t\t\tawait loopCtx.sleep(\"delay\", 40);\n\t\t\t\treturn Loop.continue(undefined);\n\t\t\t},\n\t\t});\n\t}),\n\tactions: {\n\t\tgetState: (c) => c.state,\n\t},\n\toptions: {\n\t\tsleepTimeout: 50,\n\t},\n});\n\nexport const workflowStopTeardownActor = actor({\n\tstate: {\n\t\twakeAts: [] as number[],\n\t\tsleepAts: [] as number[],\n\t},\n\tqueues: {\n\t\tnever: queue<unknown>(),\n\t},\n\tonWake: (c) => {\n\t\tc.state.wakeAts.push(Date.now());\n\t},\n\tonSleep: (c) => {\n\t\tc.state.sleepAts.push(Date.now());\n\t},\n\trun: workflow(async (ctx) => {\n\t\tawait ctx.loop({\n\t\t\tname: \"wait-forever\",\n\t\t\trun: async (loopCtx) => {\n\t\t\t\tawait loopCtx.queue.next(\"wait-for-never\", {\n\t\t\t\t\tnames: [\"never\"],\n\t\t\t\t});\n\t\t\t\treturn Loop.continue(undefined);\n\t\t\t},\n\t\t});\n\t}),\n\tactions: {\n\t\tgetTimeline: (c) => ({\n\t\t\twakeAts: [...c.state.wakeAts],\n\t\t\tsleepAts: [...c.state.sleepAts],\n\t\t}),\n\t},\n\toptions: {\n\t\tsleepTimeout: 75,\n\t\trunStopTimeout: 2_000,\n\t},\n});\n\nexport { WORKFLOW_QUEUE_NAME };\n"]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|