rivetkit 2.0.2 → 2.0.4-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -5
- package/dist/browser/client.d.ts +2485 -0
- package/dist/browser/client.js +5182 -0
- package/dist/browser/client.js.map +1 -0
- package/dist/browser/inspector/client.d.ts +130 -0
- package/dist/browser/inspector/client.js +2854 -0
- package/dist/browser/inspector/client.js.map +1 -0
- package/dist/browser/v3-DnYObHH3.d.ts +279 -0
- package/dist/inspector.tar.gz +0 -0
- package/dist/schemas/actor-inspector/v1.ts +784 -0
- package/dist/schemas/actor-inspector/v2.ts +796 -0
- package/dist/schemas/actor-inspector/v3.ts +899 -0
- package/dist/schemas/actor-persist/v1.ts +225 -0
- package/dist/schemas/actor-persist/v2.ts +268 -0
- package/dist/schemas/actor-persist/v3.ts +280 -0
- package/dist/schemas/actor-persist/v4.ts +406 -0
- package/dist/schemas/client-protocol/v1.ts +441 -0
- package/dist/schemas/client-protocol/v2.ts +438 -0
- package/dist/schemas/client-protocol/v3.ts +554 -0
- package/dist/schemas/file-system-driver/v1.ts +108 -0
- package/dist/schemas/file-system-driver/v2.ts +142 -0
- package/dist/schemas/file-system-driver/v3.ts +167 -0
- package/dist/schemas/persist/v1.ts +781 -0
- package/dist/schemas/transport/v1.ts +697 -0
- package/dist/tsup/actor/errors.cjs +106 -0
- package/dist/tsup/actor/errors.cjs.map +1 -0
- package/dist/tsup/actor/errors.d.cts +188 -0
- package/dist/tsup/actor/errors.d.ts +188 -0
- package/dist/tsup/actor/errors.js +106 -0
- package/dist/tsup/actor/errors.js.map +1 -0
- package/dist/tsup/actor-router-consts-D29T1Z-K.d.cts +24 -0
- package/dist/tsup/actor-router-consts-D29T1Z-K.d.ts +24 -0
- package/dist/tsup/chunk-325TLXJT.js +1060 -0
- package/dist/tsup/chunk-325TLXJT.js.map +1 -0
- package/dist/tsup/chunk-424PT5DM.js +23 -0
- package/dist/tsup/chunk-424PT5DM.js.map +1 -0
- package/dist/tsup/chunk-4JVIG3SS.cjs +6289 -0
- package/dist/tsup/chunk-4JVIG3SS.cjs.map +1 -0
- package/dist/tsup/chunk-6LJAZ5R4.cjs +96 -0
- package/dist/tsup/chunk-6LJAZ5R4.cjs.map +1 -0
- package/dist/tsup/chunk-6XU3FMCB.cjs +534 -0
- package/dist/tsup/chunk-6XU3FMCB.cjs.map +1 -0
- package/dist/tsup/chunk-7HTNH26M.js +509 -0
- package/dist/tsup/chunk-7HTNH26M.js.map +1 -0
- package/dist/tsup/chunk-AUVH72RE.cjs +5977 -0
- package/dist/tsup/chunk-AUVH72RE.cjs.map +1 -0
- package/dist/tsup/chunk-D4BYUPNQ.js +645 -0
- package/dist/tsup/chunk-D4BYUPNQ.js.map +1 -0
- package/dist/tsup/chunk-HDQ2JUQT.cjs +23 -0
- package/dist/tsup/chunk-HDQ2JUQT.cjs.map +1 -0
- package/dist/tsup/chunk-HHXX2VRM.js +6289 -0
- package/dist/tsup/chunk-HHXX2VRM.js.map +1 -0
- package/dist/tsup/chunk-JEAEA2PB.js +49 -0
- package/dist/tsup/chunk-JEAEA2PB.js.map +1 -0
- package/dist/tsup/chunk-JYSEG3VF.cjs +642 -0
- package/dist/tsup/chunk-JYSEG3VF.cjs.map +1 -0
- package/dist/tsup/chunk-K6DGYILQ.js +2657 -0
- package/dist/tsup/chunk-K6DGYILQ.js.map +1 -0
- package/dist/tsup/chunk-KJSYAUOM.js +96 -0
- package/dist/tsup/chunk-KJSYAUOM.js.map +1 -0
- package/dist/tsup/chunk-L47L3ZWJ.cjs +509 -0
- package/dist/tsup/chunk-L47L3ZWJ.cjs.map +1 -0
- package/dist/tsup/chunk-LXUQ667X.js +2006 -0
- package/dist/tsup/chunk-LXUQ667X.js.map +1 -0
- package/dist/tsup/chunk-MXNPAB5W.js +5977 -0
- package/dist/tsup/chunk-MXNPAB5W.js.map +1 -0
- package/dist/tsup/chunk-N4KRDJ56.js +72 -0
- package/dist/tsup/chunk-N4KRDJ56.js.map +1 -0
- package/dist/tsup/chunk-NIYZDWMW.cjs +2006 -0
- package/dist/tsup/chunk-NIYZDWMW.cjs.map +1 -0
- package/dist/tsup/chunk-PQZHDKRW.cjs +1060 -0
- package/dist/tsup/chunk-PQZHDKRW.cjs.map +1 -0
- package/dist/tsup/chunk-PVOE6BU7.cjs +1050 -0
- package/dist/tsup/chunk-PVOE6BU7.cjs.map +1 -0
- package/dist/tsup/chunk-Q4UD2GA4.cjs +1810 -0
- package/dist/tsup/chunk-Q4UD2GA4.cjs.map +1 -0
- package/dist/tsup/chunk-QUD664YZ.js +1810 -0
- package/dist/tsup/chunk-QUD664YZ.js.map +1 -0
- package/dist/tsup/chunk-RTOCTWME.js +1050 -0
- package/dist/tsup/chunk-RTOCTWME.js.map +1 -0
- package/dist/tsup/chunk-SAZZ4SB2.cjs +2657 -0
- package/dist/tsup/chunk-SAZZ4SB2.cjs.map +1 -0
- package/dist/tsup/chunk-SR3KQE7Q.cjs +72 -0
- package/dist/tsup/chunk-SR3KQE7Q.cjs.map +1 -0
- package/dist/tsup/chunk-V2GHLYC6.cjs +49 -0
- package/dist/tsup/chunk-V2GHLYC6.cjs.map +1 -0
- package/dist/tsup/chunk-V3WG7XTW.cjs +645 -0
- package/dist/tsup/chunk-V3WG7XTW.cjs.map +1 -0
- package/dist/tsup/chunk-VKVNIQRQ.js +257 -0
- package/dist/tsup/chunk-VKVNIQRQ.js.map +1 -0
- package/dist/tsup/chunk-WMPW7JYC.js +642 -0
- package/dist/tsup/chunk-WMPW7JYC.js.map +1 -0
- package/dist/tsup/chunk-Z7HNQ2WF.js +534 -0
- package/dist/tsup/chunk-Z7HNQ2WF.js.map +1 -0
- package/dist/tsup/chunk-ZFY5J2EP.cjs +257 -0
- package/dist/tsup/chunk-ZFY5J2EP.cjs.map +1 -0
- package/dist/tsup/client/mod.cjs +33 -0
- package/dist/tsup/client/mod.cjs.map +1 -0
- package/dist/tsup/client/mod.d.cts +64 -0
- package/dist/tsup/client/mod.d.ts +64 -0
- package/dist/tsup/client/mod.js +33 -0
- package/dist/tsup/client/mod.js.map +1 -0
- package/dist/tsup/common/log.cjs +21 -0
- package/dist/tsup/common/log.cjs.map +1 -0
- package/dist/tsup/common/log.d.cts +34 -0
- package/dist/tsup/common/log.d.ts +34 -0
- package/dist/tsup/common/log.js +21 -0
- package/dist/tsup/common/log.js.map +1 -0
- package/dist/tsup/common/websocket.cjs +10 -0
- package/dist/tsup/common/websocket.cjs.map +1 -0
- package/dist/tsup/common/websocket.d.cts +3 -0
- package/dist/tsup/common/websocket.d.ts +3 -0
- package/dist/tsup/common/websocket.js +10 -0
- package/dist/tsup/common/websocket.js.map +1 -0
- package/dist/tsup/config-BiNoIHRs.d.cts +80 -0
- package/dist/tsup/config-BiNoIHRs.d.ts +80 -0
- package/dist/tsup/config-P3XujgRr.d.ts +2594 -0
- package/dist/tsup/config-_gfywqqI.d.cts +2594 -0
- package/dist/tsup/context-Bxd8Cx4H.d.cts +75 -0
- package/dist/tsup/context-uNA4TRn3.d.ts +75 -0
- package/dist/tsup/db/drizzle/mod.cjs +49 -0
- package/dist/tsup/db/drizzle/mod.cjs.map +1 -0
- package/dist/tsup/db/drizzle/mod.d.cts +17 -0
- package/dist/tsup/db/drizzle/mod.d.ts +17 -0
- package/dist/tsup/db/drizzle/mod.js +49 -0
- package/dist/tsup/db/drizzle/mod.js.map +1 -0
- package/dist/tsup/db/mod.cjs +9 -0
- package/dist/tsup/db/mod.cjs.map +1 -0
- package/dist/tsup/db/mod.d.cts +9 -0
- package/dist/tsup/db/mod.d.ts +9 -0
- package/dist/tsup/db/mod.js +9 -0
- package/dist/tsup/db/mod.js.map +1 -0
- package/dist/tsup/driver-BcLvZcKl.d.cts +13 -0
- package/dist/tsup/driver-CPGHKXyh.d.ts +13 -0
- package/dist/tsup/driver-helpers/mod.cjs +53 -0
- package/dist/tsup/driver-helpers/mod.cjs.map +1 -0
- package/dist/tsup/driver-helpers/mod.d.cts +47 -0
- package/dist/tsup/driver-helpers/mod.d.ts +47 -0
- package/dist/tsup/driver-helpers/mod.js +53 -0
- package/dist/tsup/driver-helpers/mod.js.map +1 -0
- package/dist/tsup/driver-test-suite/mod.cjs +4974 -0
- package/dist/tsup/driver-test-suite/mod.cjs.map +1 -0
- package/dist/tsup/driver-test-suite/mod.d.cts +73 -0
- package/dist/tsup/driver-test-suite/mod.d.ts +73 -0
- package/dist/tsup/driver-test-suite/mod.js +4974 -0
- package/dist/tsup/driver-test-suite/mod.js.map +1 -0
- package/dist/tsup/inspector/mod.cjs +164 -0
- package/dist/tsup/inspector/mod.cjs.map +1 -0
- package/dist/tsup/inspector/mod.d.cts +130 -0
- package/dist/tsup/inspector/mod.d.ts +130 -0
- package/dist/tsup/inspector/mod.js +164 -0
- package/dist/tsup/inspector/mod.js.map +1 -0
- package/dist/tsup/keys-CydblqMh.d.cts +13 -0
- package/dist/tsup/keys-CydblqMh.d.ts +13 -0
- package/dist/tsup/mod.cjs +82 -0
- package/dist/tsup/mod.cjs.map +1 -0
- package/dist/tsup/mod.d.cts +126 -0
- package/dist/tsup/mod.d.ts +126 -0
- package/dist/tsup/mod.js +82 -0
- package/dist/tsup/mod.js.map +1 -0
- package/dist/tsup/serve-test-suite/mod.cjs +2601 -0
- package/dist/tsup/serve-test-suite/mod.cjs.map +1 -0
- package/dist/tsup/serve-test-suite/mod.d.cts +9 -0
- package/dist/tsup/serve-test-suite/mod.d.ts +9 -0
- package/dist/tsup/serve-test-suite/mod.js +2601 -0
- package/dist/tsup/serve-test-suite/mod.js.map +1 -0
- package/dist/tsup/test/mod.cjs +90 -0
- package/dist/tsup/test/mod.cjs.map +1 -0
- package/dist/tsup/test/mod.d.cts +26 -0
- package/dist/tsup/test/mod.d.ts +26 -0
- package/dist/tsup/test/mod.js +90 -0
- package/dist/tsup/test/mod.js.map +1 -0
- package/dist/tsup/utils-fwx3o3K9.d.cts +18 -0
- package/dist/tsup/utils-fwx3o3K9.d.ts +18 -0
- package/dist/tsup/utils.cjs +43 -0
- package/dist/tsup/utils.cjs.map +1 -0
- package/dist/tsup/utils.d.cts +148 -0
- package/dist/tsup/utils.d.ts +148 -0
- package/dist/tsup/utils.js +43 -0
- package/dist/tsup/utils.js.map +1 -0
- package/dist/tsup/v3-DnYObHH3.d.cts +279 -0
- package/dist/tsup/v3-DnYObHH3.d.ts +279 -0
- package/dist/tsup/workflow/mod.cjs +16 -0
- package/dist/tsup/workflow/mod.cjs.map +1 -0
- package/dist/tsup/workflow/mod.d.cts +25 -0
- package/dist/tsup/workflow/mod.d.ts +25 -0
- package/dist/tsup/workflow/mod.js +16 -0
- package/dist/tsup/workflow/mod.js.map +1 -0
- package/package.json +293 -5
- package/src/actor/config.ts +1221 -0
- package/src/actor/conn/driver.ts +61 -0
- package/src/actor/conn/drivers/http.ts +17 -0
- package/src/actor/conn/drivers/raw-request.ts +24 -0
- package/src/actor/conn/drivers/raw-websocket.ts +65 -0
- package/src/actor/conn/drivers/websocket.ts +144 -0
- package/src/actor/conn/mod.ts +288 -0
- package/src/actor/conn/persisted.ts +81 -0
- package/src/actor/conn/state-manager.ts +196 -0
- package/src/actor/contexts/action.ts +47 -0
- package/src/actor/contexts/base/actor.ts +347 -0
- package/src/actor/contexts/base/conn-init.ts +68 -0
- package/src/actor/contexts/base/conn.ts +73 -0
- package/src/actor/contexts/before-action-response.ts +42 -0
- package/src/actor/contexts/before-connect.ts +31 -0
- package/src/actor/contexts/connect.ts +42 -0
- package/src/actor/contexts/create-conn-state.ts +32 -0
- package/src/actor/contexts/create-vars.ts +39 -0
- package/src/actor/contexts/create.ts +39 -0
- package/src/actor/contexts/destroy.ts +42 -0
- package/src/actor/contexts/disconnect.ts +43 -0
- package/src/actor/contexts/index.ts +33 -0
- package/src/actor/contexts/request.ts +80 -0
- package/src/actor/contexts/run.ts +47 -0
- package/src/actor/contexts/sleep.ts +42 -0
- package/src/actor/contexts/state-change.ts +42 -0
- package/src/actor/contexts/wake.ts +42 -0
- package/src/actor/contexts/websocket.ts +80 -0
- package/src/actor/database.ts +13 -0
- package/src/actor/definition.ts +64 -0
- package/src/actor/driver.ts +114 -0
- package/src/actor/errors.ts +556 -0
- package/src/actor/instance/connection-manager.ts +574 -0
- package/src/actor/instance/event-manager.ts +314 -0
- package/src/actor/instance/keys.ts +146 -0
- package/src/actor/instance/kv.ts +241 -0
- package/src/actor/instance/mod.ts +1658 -0
- package/src/actor/instance/persisted.ts +67 -0
- package/src/actor/instance/queue-manager.ts +603 -0
- package/src/actor/instance/queue.ts +345 -0
- package/src/actor/instance/schedule-manager.ts +392 -0
- package/src/actor/instance/state-manager.ts +542 -0
- package/src/actor/instance/traces-driver.ts +128 -0
- package/src/actor/keys.test.ts +275 -0
- package/src/actor/keys.ts +89 -0
- package/src/actor/log.ts +6 -0
- package/src/actor/mod.ts +110 -0
- package/src/actor/protocol/old.ts +416 -0
- package/src/actor/protocol/serde.ts +222 -0
- package/src/actor/router-endpoints.ts +400 -0
- package/src/actor/router-websocket-endpoints.test.ts +54 -0
- package/src/actor/router-websocket-endpoints.ts +405 -0
- package/src/actor/router.ts +380 -0
- package/src/actor/schedule.ts +17 -0
- package/src/actor/schema.ts +291 -0
- package/src/actor/utils.test.ts +48 -0
- package/src/actor/utils.ts +158 -0
- package/src/client/actor-common.ts +32 -0
- package/src/client/actor-conn.ts +1262 -0
- package/src/client/actor-handle.ts +344 -0
- package/src/client/actor-query.ts +112 -0
- package/src/client/client.ts +558 -0
- package/src/client/config.ts +151 -0
- package/src/client/errors.ts +76 -0
- package/src/client/log.ts +5 -0
- package/src/client/mod.browser.ts +2 -0
- package/src/client/mod.ts +70 -0
- package/src/client/queue.ts +146 -0
- package/src/client/raw-utils.ts +149 -0
- package/src/client/test.ts +44 -0
- package/src/client/utils.ts +252 -0
- package/src/common/actor-router-consts.ts +59 -0
- package/src/common/cors.ts +57 -0
- package/src/common/eventsource-interface.ts +47 -0
- package/src/common/eventsource.ts +44 -0
- package/src/common/inline-websocket-adapter.ts +154 -0
- package/src/common/log-levels.ts +27 -0
- package/src/common/log.ts +229 -0
- package/src/common/logfmt.ts +221 -0
- package/src/common/network.ts +2 -0
- package/src/common/router.ts +174 -0
- package/src/common/utils.ts +339 -0
- package/src/common/websocket-interface.ts +7 -0
- package/src/common/websocket.ts +43 -0
- package/src/db/config.ts +100 -0
- package/src/db/drizzle/mod.ts +226 -0
- package/src/db/drizzle/sqlite-core.ts +22 -0
- package/src/db/mod.ts +125 -0
- package/src/db/shared.ts +92 -0
- package/src/db/sqlite-vfs.ts +12 -0
- package/src/devtools-loader/index.ts +33 -0
- package/src/devtools-loader/log.ts +5 -0
- package/src/driver-helpers/mod.ts +33 -0
- package/src/driver-helpers/utils.ts +54 -0
- package/src/driver-test-suite/log.ts +5 -0
- package/src/driver-test-suite/mod.ts +293 -0
- package/src/driver-test-suite/test-inline-client-driver.ts +307 -0
- package/src/driver-test-suite/tests/access-control.ts +218 -0
- package/src/driver-test-suite/tests/action-features.ts +203 -0
- package/src/driver-test-suite/tests/actor-conn-hibernation.ts +152 -0
- package/src/driver-test-suite/tests/actor-conn-state.ts +300 -0
- package/src/driver-test-suite/tests/actor-conn.ts +596 -0
- package/src/driver-test-suite/tests/actor-db-raw.ts +73 -0
- package/src/driver-test-suite/tests/actor-db.ts +477 -0
- package/src/driver-test-suite/tests/actor-destroy.ts +294 -0
- package/src/driver-test-suite/tests/actor-driver.ts +18 -0
- package/src/driver-test-suite/tests/actor-error-handling.ts +150 -0
- package/src/driver-test-suite/tests/actor-handle.ts +312 -0
- package/src/driver-test-suite/tests/actor-inline-client.ts +163 -0
- package/src/driver-test-suite/tests/actor-inspector.ts +264 -0
- package/src/driver-test-suite/tests/actor-kv.ts +65 -0
- package/src/driver-test-suite/tests/actor-metadata.ts +116 -0
- package/src/driver-test-suite/tests/actor-onstatechange.ts +95 -0
- package/src/driver-test-suite/tests/actor-queue.ts +325 -0
- package/src/driver-test-suite/tests/actor-run.ts +181 -0
- package/src/driver-test-suite/tests/actor-schedule.ts +97 -0
- package/src/driver-test-suite/tests/actor-sleep.ts +415 -0
- package/src/driver-test-suite/tests/actor-state.ts +54 -0
- package/src/driver-test-suite/tests/actor-stateless.ts +70 -0
- package/src/driver-test-suite/tests/actor-vars.ts +97 -0
- package/src/driver-test-suite/tests/actor-workflow.ts +118 -0
- package/src/driver-test-suite/tests/manager-driver.ts +388 -0
- package/src/driver-test-suite/tests/raw-http-direct-registry.ts +227 -0
- package/src/driver-test-suite/tests/raw-http-request-properties.ts +454 -0
- package/src/driver-test-suite/tests/raw-http.ts +359 -0
- package/src/driver-test-suite/tests/raw-websocket-direct-registry.ts +393 -0
- package/src/driver-test-suite/tests/raw-websocket.ts +513 -0
- package/src/driver-test-suite/tests/request-access.ts +240 -0
- package/src/driver-test-suite/utils.ts +80 -0
- package/src/drivers/default.ts +38 -0
- package/src/drivers/engine/actor-driver.ts +1027 -0
- package/src/drivers/engine/config.ts +43 -0
- package/src/drivers/engine/log.ts +5 -0
- package/src/drivers/engine/mod.ts +36 -0
- package/src/drivers/file-system/actor.ts +102 -0
- package/src/drivers/file-system/global-state.ts +1445 -0
- package/src/drivers/file-system/kv-limits.ts +70 -0
- package/src/drivers/file-system/log.ts +5 -0
- package/src/drivers/file-system/manager.ts +300 -0
- package/src/drivers/file-system/mod.ts +78 -0
- package/src/drivers/file-system/sqlite-runtime.ts +210 -0
- package/src/drivers/file-system/utils.ts +125 -0
- package/src/engine-process/constants.ts +2 -0
- package/src/engine-process/log.ts +5 -0
- package/src/engine-process/mod.ts +464 -0
- package/src/globals.d.ts +35 -0
- package/src/inspector/actor-inspector.ts +352 -0
- package/src/inspector/config.ts +49 -0
- package/src/inspector/handler.ts +273 -0
- package/src/inspector/log.ts +5 -0
- package/src/inspector/mod.browser.ts +8 -0
- package/src/inspector/mod.ts +4 -0
- package/src/inspector/serve-ui.ts +40 -0
- package/src/inspector/transport.ts +18 -0
- package/src/inspector/utils.ts +32 -0
- package/src/manager/driver.ts +106 -0
- package/src/manager/gateway.ts +668 -0
- package/src/manager/log.ts +5 -0
- package/src/manager/mod.ts +2 -0
- package/src/manager/protocol/mod.ts +22 -0
- package/src/manager/protocol/query.ts +85 -0
- package/src/manager/router-schema.ts +22 -0
- package/src/manager/router.ts +660 -0
- package/src/manager-api/actors.ts +83 -0
- package/src/manager-api/common.ts +4 -0
- package/src/mod.ts +24 -0
- package/src/registry/config/driver.ts +21 -0
- package/src/registry/config/index.ts +510 -0
- package/src/registry/config/legacy-runner.ts +157 -0
- package/src/registry/config/runner.ts +21 -0
- package/src/registry/config/serverless.ts +94 -0
- package/src/registry/index.ts +194 -0
- package/src/registry/log.ts +5 -0
- package/src/remote-manager-driver/actor-http-client.ts +84 -0
- package/src/remote-manager-driver/actor-websocket-client.ts +81 -0
- package/src/remote-manager-driver/api-endpoints.ts +159 -0
- package/src/remote-manager-driver/api-utils.ts +69 -0
- package/src/remote-manager-driver/log.ts +5 -0
- package/src/remote-manager-driver/metadata.ts +64 -0
- package/src/remote-manager-driver/mod.ts +414 -0
- package/src/remote-manager-driver/ws-proxy.ts +189 -0
- package/src/schemas/actor-inspector/mod.ts +1 -0
- package/src/schemas/actor-inspector/versioned.ts +233 -0
- package/src/schemas/actor-persist/mod.ts +1 -0
- package/src/schemas/actor-persist/versioned.ts +217 -0
- package/src/schemas/client-protocol/mod.ts +1 -0
- package/src/schemas/client-protocol/versioned.ts +330 -0
- package/src/schemas/client-protocol-zod/mod.ts +118 -0
- package/src/schemas/file-system-driver/mod.ts +1 -0
- package/src/schemas/file-system-driver/versioned.ts +135 -0
- package/src/schemas/persist/mod.ts +1 -0
- package/src/schemas/transport/mod.ts +1 -0
- package/src/serde.ts +138 -0
- package/src/serve-test-suite/mod.ts +148 -0
- package/src/serverless/configure.ts +82 -0
- package/src/serverless/log.ts +5 -0
- package/src/serverless/router.test.ts +299 -0
- package/src/serverless/router.ts +215 -0
- package/src/test/log.ts +5 -0
- package/src/test/mod.ts +99 -0
- package/src/utils/crypto.ts +24 -0
- package/src/utils/endpoint-parser.test.ts +202 -0
- package/src/utils/endpoint-parser.ts +124 -0
- package/src/utils/env-vars.ts +78 -0
- package/src/utils/node.ts +178 -0
- package/src/utils/router.ts +83 -0
- package/src/utils/serve.ts +212 -0
- package/src/utils.test.ts +34 -0
- package/src/utils.ts +437 -0
- package/src/workflow/constants.ts +2 -0
- package/src/workflow/context.ts +597 -0
- package/src/workflow/driver.ts +194 -0
- package/src/workflow/inspector.ts +268 -0
- package/src/workflow/mod.ts +128 -0
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
import { describe, expect, test } from "vitest";
|
|
2
|
+
import type { DriverTestConfig } from "../mod";
|
|
3
|
+
import { setupDriverTest } from "../utils";
|
|
4
|
+
|
|
5
|
+
export function runRequestAccessTests(driverTestConfig: DriverTestConfig) {
|
|
6
|
+
describe("Request Access in Lifecycle Hooks", () => {
|
|
7
|
+
test("should have access to request object in onBeforeConnect and createConnState", async (c) => {
|
|
8
|
+
const { client } = await setupDriverTest(c, driverTestConfig);
|
|
9
|
+
|
|
10
|
+
// Create actor with request tracking enabled
|
|
11
|
+
const handle = client.requestAccessActor.getOrCreate(
|
|
12
|
+
["test-request"],
|
|
13
|
+
{
|
|
14
|
+
params: { trackRequest: true },
|
|
15
|
+
},
|
|
16
|
+
);
|
|
17
|
+
const connection = handle.connect();
|
|
18
|
+
|
|
19
|
+
// Get request info that was captured in onBeforeConnect
|
|
20
|
+
const requestInfo = await connection.getRequestInfo();
|
|
21
|
+
|
|
22
|
+
// Verify request was accessible in HTTP mode, but not in inline mode
|
|
23
|
+
if (driverTestConfig.clientType === "http") {
|
|
24
|
+
// Check onBeforeConnect
|
|
25
|
+
expect(requestInfo.onBeforeConnect.hasRequest).toBe(true);
|
|
26
|
+
expect(requestInfo.onBeforeConnect.requestUrl).toBeDefined();
|
|
27
|
+
expect(requestInfo.onBeforeConnect.requestMethod).toBeDefined();
|
|
28
|
+
expect(
|
|
29
|
+
requestInfo.onBeforeConnect.requestHeaders,
|
|
30
|
+
).toBeDefined();
|
|
31
|
+
|
|
32
|
+
// Check createConnState
|
|
33
|
+
expect(requestInfo.createConnState.hasRequest).toBe(true);
|
|
34
|
+
expect(requestInfo.createConnState.requestUrl).toBeDefined();
|
|
35
|
+
expect(requestInfo.createConnState.requestMethod).toBeDefined();
|
|
36
|
+
expect(
|
|
37
|
+
requestInfo.createConnState.requestHeaders,
|
|
38
|
+
).toBeDefined();
|
|
39
|
+
} else {
|
|
40
|
+
// Inline client may or may not have request object depending on the driver
|
|
41
|
+
//
|
|
42
|
+
// e.g.
|
|
43
|
+
// - File system does not have a request for inline requests
|
|
44
|
+
// - Rivet Engine proxies the request so it has access to the request object
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// Clean up
|
|
48
|
+
await connection.dispose();
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
test("should not have request when trackRequest is false", async (c) => {
|
|
52
|
+
const { client } = await setupDriverTest(c, driverTestConfig);
|
|
53
|
+
|
|
54
|
+
// Create actor without request tracking
|
|
55
|
+
const handle = client.requestAccessActor.getOrCreate(
|
|
56
|
+
["test-no-request"],
|
|
57
|
+
{
|
|
58
|
+
params: { trackRequest: false },
|
|
59
|
+
},
|
|
60
|
+
);
|
|
61
|
+
const connection = handle.connect();
|
|
62
|
+
|
|
63
|
+
// Get request info
|
|
64
|
+
const requestInfo = await connection.getRequestInfo();
|
|
65
|
+
|
|
66
|
+
// Verify request was not tracked
|
|
67
|
+
expect(requestInfo.onBeforeConnect.hasRequest).toBe(false);
|
|
68
|
+
expect(requestInfo.onBeforeConnect.requestUrl).toBeNull();
|
|
69
|
+
expect(requestInfo.onBeforeConnect.requestMethod).toBeNull();
|
|
70
|
+
expect(
|
|
71
|
+
Object.keys(requestInfo.onBeforeConnect.requestHeaders),
|
|
72
|
+
).toHaveLength(0);
|
|
73
|
+
|
|
74
|
+
expect(requestInfo.createConnState.hasRequest).toBe(false);
|
|
75
|
+
expect(requestInfo.createConnState.requestUrl).toBeNull();
|
|
76
|
+
expect(requestInfo.createConnState.requestMethod).toBeNull();
|
|
77
|
+
expect(
|
|
78
|
+
Object.keys(requestInfo.createConnState.requestHeaders),
|
|
79
|
+
).toHaveLength(0);
|
|
80
|
+
|
|
81
|
+
// Clean up
|
|
82
|
+
await connection.dispose();
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
test("should capture request headers and method", async (c) => {
|
|
86
|
+
const { client } = await setupDriverTest(c, driverTestConfig);
|
|
87
|
+
|
|
88
|
+
// Create actor and connect with request tracking
|
|
89
|
+
const handle = client.requestAccessActor.getOrCreate(
|
|
90
|
+
["test-headers"],
|
|
91
|
+
{
|
|
92
|
+
params: { trackRequest: true },
|
|
93
|
+
},
|
|
94
|
+
);
|
|
95
|
+
const connection = handle.connect();
|
|
96
|
+
|
|
97
|
+
// Get request info
|
|
98
|
+
const requestInfo = await connection.getRequestInfo();
|
|
99
|
+
|
|
100
|
+
if (driverTestConfig.clientType === "http") {
|
|
101
|
+
// Verify request details were captured in both hooks
|
|
102
|
+
expect(requestInfo.onBeforeConnect.hasRequest).toBe(true);
|
|
103
|
+
expect(requestInfo.onBeforeConnect.requestMethod).toBeTruthy();
|
|
104
|
+
expect(requestInfo.onBeforeConnect.requestUrl).toBeTruthy();
|
|
105
|
+
expect(requestInfo.onBeforeConnect.requestHeaders).toBeTruthy();
|
|
106
|
+
expect(typeof requestInfo.onBeforeConnect.requestHeaders).toBe(
|
|
107
|
+
"object",
|
|
108
|
+
);
|
|
109
|
+
|
|
110
|
+
expect(requestInfo.createConnState.hasRequest).toBe(true);
|
|
111
|
+
expect(requestInfo.createConnState.requestMethod).toBeTruthy();
|
|
112
|
+
expect(requestInfo.createConnState.requestUrl).toBeTruthy();
|
|
113
|
+
expect(requestInfo.createConnState.requestHeaders).toBeTruthy();
|
|
114
|
+
expect(typeof requestInfo.createConnState.requestHeaders).toBe(
|
|
115
|
+
"object",
|
|
116
|
+
);
|
|
117
|
+
} else {
|
|
118
|
+
// Inline client may or may not have request object depending on the driver
|
|
119
|
+
//
|
|
120
|
+
// See "should have access to request object in onBeforeConnect and createConnState"
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
// Clean up
|
|
124
|
+
await connection.dispose();
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
// TODO: re-expose this once we can have actor queries on the gateway
|
|
128
|
+
// test("should have access to request object in onRequest", async (c) => {
|
|
129
|
+
// const { client, endpoint } = await setupDriverTest(c, driverTestConfig);
|
|
130
|
+
//
|
|
131
|
+
// // Create actor
|
|
132
|
+
// const handle = client.requestAccessActor.getOrCreate(["test-fetch"]);
|
|
133
|
+
//
|
|
134
|
+
// // Make a raw HTTP request to the actor
|
|
135
|
+
// await handle.resolve(); // Ensure actor is created
|
|
136
|
+
//
|
|
137
|
+
// const actorQuery = {
|
|
138
|
+
// getOrCreateForKey: {
|
|
139
|
+
// name: "requestAccessActor",
|
|
140
|
+
// key: ["test-fetch"],
|
|
141
|
+
// },
|
|
142
|
+
// };
|
|
143
|
+
//
|
|
144
|
+
// const url = `${endpoint}/registry/actors/request/test-path`;
|
|
145
|
+
// const response = await fetch(url, {
|
|
146
|
+
// method: "POST",
|
|
147
|
+
// headers: {
|
|
148
|
+
// "Content-Type": "application/json",
|
|
149
|
+
// "X-Test-Header": "test-value",
|
|
150
|
+
// "X-RivetKit-Query": JSON.stringify(actorQuery),
|
|
151
|
+
// },
|
|
152
|
+
// body: JSON.stringify({ test: "data" }),
|
|
153
|
+
// });
|
|
154
|
+
//
|
|
155
|
+
// if (!response.ok) {
|
|
156
|
+
// const errorText = await response.text();
|
|
157
|
+
// console.error(
|
|
158
|
+
// `HTTP request failed: ${response.status} ${response.statusText}`,
|
|
159
|
+
// errorText,
|
|
160
|
+
// );
|
|
161
|
+
// }
|
|
162
|
+
//
|
|
163
|
+
// expect(response.ok).toBe(true);
|
|
164
|
+
// const data = await response.json();
|
|
165
|
+
//
|
|
166
|
+
// // Verify request info from onRequest
|
|
167
|
+
// expect((data as any).hasRequest).toBe(true);
|
|
168
|
+
// expect((data as any).requestUrl).toContain("/test-path");
|
|
169
|
+
// expect((data as any).requestMethod).toBe("POST");
|
|
170
|
+
// expect((data as any).requestHeaders).toBeDefined();
|
|
171
|
+
// expect((data as any).requestHeaders["content-type"]).toBe(
|
|
172
|
+
// "application/json",
|
|
173
|
+
// );
|
|
174
|
+
// expect((data as any).requestHeaders["x-test-header"]).toBe("test-value");
|
|
175
|
+
// });
|
|
176
|
+
|
|
177
|
+
// test("should have access to request object in onWebSocket", async (c) => {
|
|
178
|
+
// const { client, endpoint } = await setupDriverTest(c, driverTestConfig);
|
|
179
|
+
//
|
|
180
|
+
// // Only test in environments that support WebSocket
|
|
181
|
+
// if (typeof WebSocket !== "undefined") {
|
|
182
|
+
// // Create actor
|
|
183
|
+
// const handle = client.requestAccessActor.getOrCreate([
|
|
184
|
+
// "test-websocket",
|
|
185
|
+
// ]);
|
|
186
|
+
// await handle.resolve(); // Ensure actor is created
|
|
187
|
+
//
|
|
188
|
+
// const actorQuery = {
|
|
189
|
+
// getOrCreateForKey: {
|
|
190
|
+
// name: "requestAccessActor",
|
|
191
|
+
// key: ["test-websocket"],
|
|
192
|
+
// },
|
|
193
|
+
// };
|
|
194
|
+
//
|
|
195
|
+
// // Encode query as WebSocket subprotocol
|
|
196
|
+
// const queryProtocol = `query.${encodeURIComponent(JSON.stringify(actorQuery))}`;
|
|
197
|
+
//
|
|
198
|
+
// // Create raw WebSocket connection
|
|
199
|
+
// const wsUrl = endpoint
|
|
200
|
+
// .replace("http://", "ws://")
|
|
201
|
+
// .replace("https://", "wss://");
|
|
202
|
+
// const ws = new WebSocket(
|
|
203
|
+
// `${wsUrl}/registry/actors/websocket/test-path`,
|
|
204
|
+
// [
|
|
205
|
+
// queryProtocol,
|
|
206
|
+
// "rivetkit", // Required protocol
|
|
207
|
+
// ],
|
|
208
|
+
// );
|
|
209
|
+
//
|
|
210
|
+
// // Wait for connection and first message
|
|
211
|
+
// await new Promise<void>((resolve, reject) => {
|
|
212
|
+
// ws.onopen = () => {
|
|
213
|
+
// // Connection established
|
|
214
|
+
// };
|
|
215
|
+
//
|
|
216
|
+
// ws.onmessage = (event) => {
|
|
217
|
+
// try {
|
|
218
|
+
// const data = JSON.parse(event.data);
|
|
219
|
+
//
|
|
220
|
+
// // Verify request info from onWebSocket
|
|
221
|
+
// expect(data.hasRequest).toBe(true);
|
|
222
|
+
// expect(data.requestUrl).toContain("/test-path");
|
|
223
|
+
// expect(data.requestMethod).toBe("GET");
|
|
224
|
+
// expect(data.requestHeaders).toBeDefined();
|
|
225
|
+
//
|
|
226
|
+
// ws.close();
|
|
227
|
+
// resolve();
|
|
228
|
+
// } catch (error) {
|
|
229
|
+
// reject(error);
|
|
230
|
+
// }
|
|
231
|
+
// };
|
|
232
|
+
//
|
|
233
|
+
// ws.onerror = (error) => {
|
|
234
|
+
// reject(error);
|
|
235
|
+
// };
|
|
236
|
+
// });
|
|
237
|
+
// }
|
|
238
|
+
// });
|
|
239
|
+
});
|
|
240
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { type TestContext, vi } from "vitest";
|
|
2
|
+
import { assertUnreachable } from "@/actor/utils";
|
|
3
|
+
import { type Client, createClient } from "@/client/mod";
|
|
4
|
+
import { createClientWithDriver } from "@/mod";
|
|
5
|
+
import type { registry } from "../../fixtures/driver-test-suite/registry";
|
|
6
|
+
import { logger } from "./log";
|
|
7
|
+
import type { DriverTestConfig } from "./mod";
|
|
8
|
+
import { createTestInlineClientDriver } from "./test-inline-client-driver";
|
|
9
|
+
import { ClientConfigSchema } from "@/client/config";
|
|
10
|
+
|
|
11
|
+
export const FAKE_TIME = new Date("2024-01-01T00:00:00.000Z");
|
|
12
|
+
|
|
13
|
+
// Must use `TestContext` since global hooks do not work when running concurrently
|
|
14
|
+
export async function setupDriverTest(
|
|
15
|
+
c: TestContext,
|
|
16
|
+
driverTestConfig: DriverTestConfig,
|
|
17
|
+
): Promise<{
|
|
18
|
+
client: Client<typeof registry>;
|
|
19
|
+
endpoint: string;
|
|
20
|
+
}> {
|
|
21
|
+
if (!driverTestConfig.useRealTimers) {
|
|
22
|
+
vi.useFakeTimers();
|
|
23
|
+
vi.setSystemTime(FAKE_TIME);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// Build drivers
|
|
27
|
+
const { endpoint, namespace, runnerName, cleanup } =
|
|
28
|
+
await driverTestConfig.start();
|
|
29
|
+
|
|
30
|
+
let client: Client<typeof registry>;
|
|
31
|
+
if (driverTestConfig.clientType === "http") {
|
|
32
|
+
// Create client
|
|
33
|
+
client = createClient<typeof registry>({
|
|
34
|
+
endpoint,
|
|
35
|
+
namespace,
|
|
36
|
+
runnerName,
|
|
37
|
+
encoding: driverTestConfig.encoding,
|
|
38
|
+
// Disable metadata lookup to prevent redirect to the wrong port.
|
|
39
|
+
// Each test starts a new server on a dynamic port, but the
|
|
40
|
+
// registry's publicEndpoint defaults to port 6420.
|
|
41
|
+
disableMetadataLookup: true,
|
|
42
|
+
});
|
|
43
|
+
} else if (driverTestConfig.clientType === "inline") {
|
|
44
|
+
// Use inline client from driver
|
|
45
|
+
const encoding = driverTestConfig.encoding ?? "bare";
|
|
46
|
+
const managerDriver = createTestInlineClientDriver(endpoint, encoding);
|
|
47
|
+
const runConfig = ClientConfigSchema.parse({
|
|
48
|
+
encoding: encoding,
|
|
49
|
+
});
|
|
50
|
+
client = createClientWithDriver(managerDriver, runConfig);
|
|
51
|
+
} else {
|
|
52
|
+
assertUnreachable(driverTestConfig.clientType);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
c.onTestFinished(async () => {
|
|
56
|
+
if (!driverTestConfig.HACK_skipCleanupNet) {
|
|
57
|
+
await client.dispose();
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
logger().info("cleaning up test");
|
|
61
|
+
await cleanup();
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
return {
|
|
65
|
+
client,
|
|
66
|
+
endpoint,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export async function waitFor(
|
|
71
|
+
driverTestConfig: DriverTestConfig,
|
|
72
|
+
ms: number,
|
|
73
|
+
): Promise<void> {
|
|
74
|
+
if (driverTestConfig.useRealTimers) {
|
|
75
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
76
|
+
} else {
|
|
77
|
+
vi.advanceTimersByTime(ms);
|
|
78
|
+
return Promise.resolve();
|
|
79
|
+
}
|
|
80
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { UserError } from "@/actor/errors";
|
|
2
|
+
import { loggerWithoutContext } from "@/actor/log";
|
|
3
|
+
import { createEngineDriver } from "@/drivers/engine/mod";
|
|
4
|
+
import { createFileSystemOrMemoryDriver } from "@/drivers/file-system/mod";
|
|
5
|
+
import { DriverConfig, RegistryConfig } from "@/registry/config";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Chooses the appropriate driver based on the run configuration.
|
|
9
|
+
*/
|
|
10
|
+
export function chooseDefaultDriver(
|
|
11
|
+
config: RegistryConfig,
|
|
12
|
+
): DriverConfig {
|
|
13
|
+
if (config.endpoint && config.driver) {
|
|
14
|
+
throw new UserError(
|
|
15
|
+
"Cannot specify both 'endpoint' and 'driver' in configuration",
|
|
16
|
+
);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
if (config.driver) {
|
|
20
|
+
return config.driver;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
if (config.endpoint || config.token) {
|
|
24
|
+
loggerWithoutContext().debug({
|
|
25
|
+
msg: "using rivet engine driver",
|
|
26
|
+
endpoint: config.endpoint,
|
|
27
|
+
});
|
|
28
|
+
return createEngineDriver();
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
loggerWithoutContext().debug({
|
|
32
|
+
msg: "using default file system driver",
|
|
33
|
+
storagePath: config.storagePath,
|
|
34
|
+
});
|
|
35
|
+
return createFileSystemOrMemoryDriver(true, {
|
|
36
|
+
path: config.storagePath,
|
|
37
|
+
});
|
|
38
|
+
}
|