rivetkit 2.0.42 → 2.1.0-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/dist/{tsup/config-CLnylLYY.d.ts → browser/client.d.ts} +2127 -1910
- 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/schemas/actor-inspector/v2.ts +796 -0
- package/dist/schemas/actor-inspector/v3.ts +899 -0
- package/dist/schemas/actor-persist/v4.ts +406 -0
- package/dist/schemas/client-protocol/v3.ts +554 -0
- package/dist/schemas/persist/v1.ts +781 -0
- package/dist/schemas/transport/v1.ts +697 -0
- package/dist/tsup/actor/errors.cjs +27 -3
- package/dist/tsup/actor/errors.cjs.map +1 -1
- package/dist/tsup/actor/errors.d.cts +37 -1
- package/dist/tsup/actor/errors.d.ts +37 -1
- package/dist/tsup/actor/errors.js +26 -1
- package/dist/tsup/{actor-router-consts-DzI2szci.d.cts → actor-router-consts-D29T1Z-K.d.cts} +1 -1
- package/dist/tsup/{actor-router-consts-DzI2szci.d.ts → actor-router-consts-D29T1Z-K.d.ts} +1 -1
- package/dist/tsup/chunk-424PT5DM.js +23 -0
- package/dist/tsup/chunk-424PT5DM.js.map +1 -0
- package/dist/tsup/{chunk-JDAD2YFA.js → chunk-5ESWDTHJ.js} +148 -273
- package/dist/tsup/chunk-5ESWDTHJ.js.map +1 -0
- package/dist/tsup/{chunk-FJ3KTN4V.js → chunk-6LIBPELE.js} +119 -11
- package/dist/tsup/chunk-6LIBPELE.js.map +1 -0
- package/dist/tsup/chunk-6LJAZ5R4.cjs +96 -0
- package/dist/tsup/chunk-6LJAZ5R4.cjs.map +1 -0
- package/dist/tsup/{chunk-LFVF5SCU.js → chunk-7HTNH26M.js} +126 -1
- package/dist/tsup/chunk-7HTNH26M.js.map +1 -0
- package/dist/tsup/chunk-7K4CYDGD.js +630 -0
- package/dist/tsup/chunk-7K4CYDGD.js.map +1 -0
- package/dist/tsup/{chunk-XXGJCOL6.js → chunk-A6YIZWTK.js} +2 -2
- package/dist/tsup/chunk-AIYEYMX5.cjs +630 -0
- package/dist/tsup/chunk-AIYEYMX5.cjs.map +1 -0
- package/dist/tsup/{chunk-Q6W7RJJP.js → chunk-DIGBC2VI.js} +211 -2316
- package/dist/tsup/chunk-DIGBC2VI.js.map +1 -0
- package/dist/tsup/{chunk-RZW2DNND.cjs → chunk-F6JYU5IK.cjs} +1957 -1039
- package/dist/tsup/chunk-F6JYU5IK.cjs.map +1 -0
- package/dist/tsup/chunk-HAZL2EPK.cjs +534 -0
- package/dist/tsup/chunk-HAZL2EPK.cjs.map +1 -0
- package/dist/tsup/chunk-HDQ2JUQT.cjs +23 -0
- package/dist/tsup/chunk-HDQ2JUQT.cjs.map +1 -0
- package/dist/tsup/chunk-HIDX4C5Y.cjs +1036 -0
- package/dist/tsup/chunk-HIDX4C5Y.cjs.map +1 -0
- package/dist/tsup/chunk-IVG73YCW.js +534 -0
- package/dist/tsup/chunk-IVG73YCW.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-2XQS746M.cjs → chunk-L47L3ZWJ.cjs} +127 -2
- package/dist/tsup/chunk-L47L3ZWJ.cjs.map +1 -0
- package/dist/tsup/{chunk-H4TB4X25.cjs → chunk-LW6KLR7A.cjs} +126 -18
- package/dist/tsup/chunk-LW6KLR7A.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-GMAVRZSF.js → chunk-M2T62AZQ.js} +1790 -872
- package/dist/tsup/chunk-M2T62AZQ.js.map +1 -0
- package/dist/tsup/chunk-MZ37VV3P.js +5974 -0
- package/dist/tsup/chunk-MZ37VV3P.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-OMEPCQK2.js +649 -0
- package/dist/tsup/chunk-OMEPCQK2.js.map +1 -0
- package/dist/tsup/chunk-SR3KQE7Q.cjs +72 -0
- package/dist/tsup/chunk-SR3KQE7Q.cjs.map +1 -0
- package/dist/tsup/chunk-SSEP6DHP.cjs +2657 -0
- package/dist/tsup/chunk-SSEP6DHP.cjs.map +1 -0
- package/dist/tsup/chunk-T5YCUGVS.js +1036 -0
- package/dist/tsup/chunk-T5YCUGVS.js.map +1 -0
- package/dist/tsup/{chunk-EJVBH5VF.cjs → chunk-TPGXWFQT.cjs} +3 -3
- package/dist/tsup/{chunk-EJVBH5VF.cjs.map → chunk-TPGXWFQT.cjs.map} +1 -1
- package/dist/tsup/{chunk-X35U3YNX.cjs → chunk-TYLXNCA5.cjs} +214 -339
- package/dist/tsup/chunk-TYLXNCA5.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-XWBAQO5H.cjs +649 -0
- package/dist/tsup/chunk-XWBAQO5H.cjs.map +1 -0
- package/dist/tsup/chunk-YQ4LDVD6.cjs +5974 -0
- package/dist/tsup/chunk-YQ4LDVD6.cjs.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 +9 -10
- package/dist/tsup/client/mod.cjs.map +1 -1
- package/dist/tsup/client/mod.d.cts +11 -5
- package/dist/tsup/client/mod.d.ts +11 -5
- package/dist/tsup/client/mod.js +8 -8
- package/dist/tsup/common/log.cjs +4 -4
- package/dist/tsup/common/log.d.cts +2 -2
- package/dist/tsup/common/log.d.ts +2 -2
- package/dist/tsup/common/log.js +3 -2
- package/dist/tsup/common/websocket.cjs +5 -5
- package/dist/tsup/common/websocket.js +4 -3
- package/dist/tsup/config-BFqid9Gr.d.ts +2574 -0
- package/dist/tsup/config-BiNoIHRs.d.cts +80 -0
- package/dist/tsup/config-BiNoIHRs.d.ts +80 -0
- package/dist/tsup/{config-CZB2-W8x.d.cts → config-CAZphOS1.d.cts} +681 -355
- 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-D0QX9M11.d.ts → driver-Bxv62E2p.d.ts} +2 -2
- package/dist/tsup/{driver-q-zqG7fc.d.cts → driver-DYXwJR5D.d.cts} +2 -2
- package/dist/tsup/driver-helpers/mod.cjs +12 -6
- package/dist/tsup/driver-helpers/mod.cjs.map +1 -1
- package/dist/tsup/driver-helpers/mod.d.cts +12 -5
- package/dist/tsup/driver-helpers/mod.d.ts +12 -5
- package/dist/tsup/driver-helpers/mod.js +12 -5
- package/dist/tsup/driver-test-suite/mod.cjs +1370 -116
- package/dist/tsup/driver-test-suite/mod.cjs.map +1 -1
- package/dist/tsup/driver-test-suite/mod.d.cts +10 -4
- package/dist/tsup/driver-test-suite/mod.d.ts +10 -4
- package/dist/tsup/driver-test-suite/mod.js +2093 -838
- package/dist/tsup/driver-test-suite/mod.js.map +1 -1
- package/dist/tsup/inspector/mod.cjs +29 -3
- package/dist/tsup/inspector/mod.cjs.map +1 -1
- package/dist/tsup/inspector/mod.d.cts +124 -3
- package/dist/tsup/inspector/mod.d.ts +124 -3
- package/dist/tsup/inspector/mod.js +72 -45
- package/dist/tsup/keys-CydblqMh.d.cts +13 -0
- package/dist/tsup/keys-CydblqMh.d.ts +13 -0
- package/dist/tsup/mod.cjs +16 -10
- package/dist/tsup/mod.cjs.map +1 -1
- package/dist/tsup/mod.d.cts +26 -14
- package/dist/tsup/mod.d.ts +26 -14
- package/dist/tsup/mod.js +20 -13
- package/dist/tsup/serve-test-suite/mod.cjs +1165 -83
- package/dist/tsup/serve-test-suite/mod.cjs.map +1 -1
- package/dist/tsup/serve-test-suite/mod.js +1114 -29
- package/dist/tsup/serve-test-suite/mod.js.map +1 -1
- package/dist/tsup/test/mod.cjs +84 -11
- package/dist/tsup/test/mod.cjs.map +1 -1
- package/dist/tsup/test/mod.d.cts +10 -5
- package/dist/tsup/test/mod.d.ts +10 -5
- package/dist/tsup/test/mod.js +85 -11
- package/dist/tsup/test/mod.js.map +1 -1
- package/dist/tsup/utils.cjs +10 -4
- package/dist/tsup/utils.cjs.map +1 -1
- package/dist/tsup/utils.d.cts +72 -2
- package/dist/tsup/utils.d.ts +72 -2
- package/dist/tsup/utils.js +9 -2
- 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 +83 -0
- package/dist/tsup/workflow/mod.d.ts +83 -0
- package/dist/tsup/workflow/mod.js +16 -0
- package/dist/tsup/workflow/mod.js.map +1 -0
- package/package.json +62 -5
- package/src/actor/config.ts +478 -68
- package/src/actor/conn/mod.ts +68 -16
- package/src/actor/conn/state-manager.ts +2 -2
- package/src/actor/contexts/action.ts +20 -12
- package/src/actor/contexts/base/actor.ts +137 -7
- package/src/actor/contexts/base/conn-init.ts +27 -7
- package/src/actor/contexts/base/conn.ts +27 -18
- package/src/actor/contexts/before-action-response.ts +9 -2
- package/src/actor/contexts/before-connect.ts +7 -2
- package/src/actor/contexts/connect.ts +9 -2
- package/src/actor/contexts/create-conn-state.ts +7 -2
- package/src/actor/contexts/create-vars.ts +16 -3
- package/src/actor/contexts/create.ts +16 -3
- package/src/actor/contexts/destroy.ts +9 -3
- package/src/actor/contexts/disconnect.ts +10 -4
- package/src/actor/contexts/index.ts +4 -3
- package/src/actor/contexts/request.ts +23 -6
- package/src/actor/contexts/run.ts +47 -0
- package/src/actor/contexts/sleep.ts +9 -3
- package/src/actor/contexts/state-change.ts +9 -3
- package/src/actor/contexts/wake.ts +9 -3
- package/src/actor/contexts/websocket.ts +23 -6
- package/src/actor/database.ts +8 -18
- package/src/actor/definition.ts +20 -6
- package/src/actor/driver.ts +32 -3
- package/src/actor/errors.ts +127 -0
- package/src/actor/instance/connection-manager.ts +183 -80
- package/src/actor/instance/event-manager.ts +26 -15
- package/src/actor/instance/keys.ts +117 -0
- package/src/actor/instance/mod.ts +784 -174
- package/src/actor/instance/queue-manager.ts +603 -0
- package/src/actor/instance/queue.ts +287 -0
- package/src/actor/instance/schedule-manager.ts +49 -7
- package/src/actor/instance/state-manager.ts +35 -11
- package/src/actor/instance/traces-driver.ts +128 -0
- package/src/actor/mod.ts +26 -2
- package/src/actor/protocol/old.ts +28 -13
- package/src/actor/protocol/serde.ts +1 -1
- package/src/actor/router-endpoints.ts +177 -21
- package/src/actor/router-websocket-endpoints.ts +18 -29
- package/src/actor/router.ts +177 -0
- package/src/actor/schema.ts +291 -0
- package/src/actor/utils.ts +40 -0
- package/src/client/actor-common.ts +1 -1
- package/src/client/actor-conn.ts +100 -33
- package/src/client/actor-handle.ts +61 -33
- package/src/client/client.ts +2 -4
- package/src/client/config.ts +1 -1
- package/src/client/mod.browser.ts +2 -0
- package/src/client/mod.ts +1 -4
- package/src/client/queue.ts +146 -0
- package/src/client/utils.ts +1 -1
- package/src/common/log.ts +1 -1
- package/src/common/utils.ts +3 -3
- 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/driver-helpers/mod.ts +1 -0
- package/src/driver-test-suite/mod.ts +69 -43
- package/src/driver-test-suite/tests/access-control.ts +218 -0
- package/src/driver-test-suite/tests/actor-db-raw.ts +73 -0
- package/src/driver-test-suite/tests/actor-db.ts +394 -0
- package/src/driver-test-suite/tests/actor-inspector.ts +259 -358
- package/src/driver-test-suite/tests/actor-kv.ts +41 -20
- package/src/driver-test-suite/tests/actor-queue.ts +324 -0
- package/src/driver-test-suite/tests/actor-run.ts +181 -0
- package/src/driver-test-suite/tests/actor-schedule.ts +5 -2
- package/src/driver-test-suite/tests/actor-sleep.ts +3 -3
- package/src/driver-test-suite/tests/actor-stateless.ts +70 -0
- package/src/driver-test-suite/tests/actor-workflow.ts +108 -0
- package/src/driver-test-suite/tests/manager-driver.ts +11 -0
- package/src/driver-test-suite/tests/raw-http-request-properties.ts +1 -1
- package/src/driver-test-suite/tests/raw-websocket.ts +12 -12
- package/src/drivers/default.ts +7 -2
- package/src/drivers/engine/actor-driver.ts +45 -37
- package/src/drivers/engine/config.ts +1 -1
- package/src/drivers/file-system/actor.ts +20 -2
- package/src/drivers/file-system/global-state.ts +569 -258
- package/src/drivers/file-system/kv-limits.ts +70 -0
- package/src/drivers/file-system/manager.ts +22 -6
- package/src/drivers/file-system/mod.ts +39 -16
- package/src/drivers/file-system/sqlite-runtime.ts +210 -0
- package/src/inspector/actor-inspector.ts +224 -102
- package/src/inspector/config.ts +1 -1
- package/src/inspector/handler.ts +102 -20
- package/src/inspector/mod.browser.ts +8 -0
- package/src/inspector/mod.ts +2 -0
- package/src/inspector/serve-ui.ts +40 -0
- package/src/inspector/transport.ts +18 -0
- package/src/inspector/utils.ts +5 -39
- package/src/manager/gateway.ts +1 -1
- package/src/manager/protocol/mod.ts +1 -1
- package/src/manager/protocol/query.ts +1 -1
- package/src/manager/router-schema.ts +1 -1
- package/src/manager/router.ts +38 -12
- package/src/manager-api/actors.ts +1 -1
- package/src/manager-api/common.ts +1 -1
- package/src/registry/config/driver.ts +1 -1
- package/src/registry/config/index.ts +212 -43
- package/src/registry/config/legacy-runner.ts +1 -1
- package/src/registry/config/runner.ts +1 -1
- package/src/registry/config/serverless.ts +1 -1
- package/src/registry/index.ts +7 -5
- package/src/remote-manager-driver/api-utils.ts +1 -1
- package/src/schemas/actor-inspector/mod.ts +1 -1
- package/src/schemas/actor-inspector/versioned.ts +195 -8
- package/src/schemas/actor-persist/versioned.ts +87 -7
- package/src/schemas/client-protocol/mod.ts +1 -1
- package/src/schemas/client-protocol/versioned.ts +127 -11
- package/src/schemas/client-protocol-zod/mod.ts +16 -1
- package/src/schemas/persist/mod.ts +1 -0
- package/src/schemas/transport/mod.ts +1 -0
- package/src/serde.ts +1 -1
- package/src/serve-test-suite/mod.ts +10 -9
- package/src/test/mod.ts +15 -56
- package/src/utils/endpoint-parser.test.ts +1 -1
- package/src/utils/endpoint-parser.ts +1 -1
- package/src/utils/env-vars.ts +12 -1
- package/src/utils/node.ts +15 -2
- package/src/utils.test.ts +34 -0
- package/src/utils.ts +140 -6
- package/src/workflow/constants.ts +2 -0
- package/src/workflow/context.ts +532 -0
- package/src/workflow/driver.ts +191 -0
- package/src/workflow/inspector.ts +268 -0
- package/src/workflow/mod.ts +122 -0
- package/dist/tsup/chunk-2IJTYN6K.cjs +0 -278
- package/dist/tsup/chunk-2IJTYN6K.cjs.map +0 -1
- package/dist/tsup/chunk-2XQS746M.cjs.map +0 -1
- package/dist/tsup/chunk-3VP5CSHV.cjs +0 -114
- package/dist/tsup/chunk-3VP5CSHV.cjs.map +0 -1
- package/dist/tsup/chunk-AQFSQMBG.js +0 -114
- package/dist/tsup/chunk-AQFSQMBG.js.map +0 -1
- package/dist/tsup/chunk-E6ZE2YEA.js +0 -664
- package/dist/tsup/chunk-E6ZE2YEA.js.map +0 -1
- package/dist/tsup/chunk-FJ3KTN4V.js.map +0 -1
- package/dist/tsup/chunk-GBENOENJ.cjs +0 -8
- package/dist/tsup/chunk-GBENOENJ.cjs.map +0 -1
- package/dist/tsup/chunk-GD7UXGOE.cjs +0 -4762
- package/dist/tsup/chunk-GD7UXGOE.cjs.map +0 -1
- package/dist/tsup/chunk-GMAVRZSF.js.map +0 -1
- package/dist/tsup/chunk-H4TB4X25.cjs.map +0 -1
- package/dist/tsup/chunk-JDAD2YFA.js.map +0 -1
- package/dist/tsup/chunk-KCOVZOPS.js +0 -1946
- package/dist/tsup/chunk-KCOVZOPS.js.map +0 -1
- package/dist/tsup/chunk-KDFWJKMJ.cjs +0 -664
- package/dist/tsup/chunk-KDFWJKMJ.cjs.map +0 -1
- package/dist/tsup/chunk-LFVF5SCU.js.map +0 -1
- package/dist/tsup/chunk-Q6W7RJJP.js.map +0 -1
- package/dist/tsup/chunk-RUW5CZ5Z.cjs +0 -1949
- package/dist/tsup/chunk-RUW5CZ5Z.cjs.map +0 -1
- package/dist/tsup/chunk-RZW2DNND.cjs.map +0 -1
- package/dist/tsup/chunk-TCOEBUUE.js +0 -278
- package/dist/tsup/chunk-TCOEBUUE.js.map +0 -1
- package/dist/tsup/chunk-X35U3YNX.cjs.map +0 -1
- package/dist/tsup/keys-Chhy4ylv.d.cts +0 -8
- package/dist/tsup/keys-Chhy4ylv.d.ts +0 -8
- package/dist/tsup/v1-Gq4avTK3.d.cts +0 -240
- package/dist/tsup/v1-Gq4avTK3.d.ts +0 -240
- /package/dist/tsup/{chunk-XXGJCOL6.js.map → chunk-A6YIZWTK.js.map} +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { AnyDatabaseProvider } from "../database";
|
|
2
2
|
import type { ActorDefinition, AnyActorDefinition } from "../definition";
|
|
3
|
+
import type { EventSchemaConfig, QueueSchemaConfig } from "../schema";
|
|
3
4
|
import { ConnInitContext } from "./base/conn-init";
|
|
4
5
|
|
|
5
6
|
/**
|
|
@@ -11,7 +12,9 @@ export class CreateConnStateContext<
|
|
|
11
12
|
TVars,
|
|
12
13
|
TInput,
|
|
13
14
|
TDatabase extends AnyDatabaseProvider,
|
|
14
|
-
|
|
15
|
+
TEvents extends EventSchemaConfig = Record<never, never>,
|
|
16
|
+
TQueues extends QueueSchemaConfig = Record<never, never>,
|
|
17
|
+
> extends ConnInitContext<TState, TVars, TInput, TDatabase, TEvents, TQueues> {}
|
|
15
18
|
|
|
16
19
|
export type CreateConnStateContextOf<AD extends AnyActorDefinition> =
|
|
17
20
|
AD extends ActorDefinition<
|
|
@@ -21,7 +24,9 @@ export type CreateConnStateContextOf<AD extends AnyActorDefinition> =
|
|
|
21
24
|
infer V,
|
|
22
25
|
infer I,
|
|
23
26
|
infer DB extends AnyDatabaseProvider,
|
|
27
|
+
infer E extends EventSchemaConfig,
|
|
28
|
+
infer Q extends QueueSchemaConfig,
|
|
24
29
|
any
|
|
25
30
|
>
|
|
26
|
-
? CreateConnStateContext<S, V, I, DB>
|
|
31
|
+
? CreateConnStateContext<S, V, I, DB, E, Q>
|
|
27
32
|
: never;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { AnyDatabaseProvider } from "../database";
|
|
2
2
|
import type { ActorDefinition, AnyActorDefinition } from "../definition";
|
|
3
|
+
import type { EventSchemaConfig, QueueSchemaConfig } from "../schema";
|
|
3
4
|
import { ActorContext } from "./base/actor";
|
|
4
5
|
|
|
5
6
|
/**
|
|
@@ -9,8 +10,18 @@ export class CreateVarsContext<
|
|
|
9
10
|
TState,
|
|
10
11
|
TInput,
|
|
11
12
|
TDatabase extends AnyDatabaseProvider,
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
TEvents extends EventSchemaConfig = Record<never, never>,
|
|
14
|
+
TQueues extends QueueSchemaConfig = Record<never, never>,
|
|
15
|
+
> extends ActorContext<
|
|
16
|
+
TState,
|
|
17
|
+
never,
|
|
18
|
+
never,
|
|
19
|
+
never,
|
|
20
|
+
TInput,
|
|
21
|
+
TDatabase,
|
|
22
|
+
TEvents,
|
|
23
|
+
TQueues
|
|
24
|
+
> {}
|
|
14
25
|
|
|
15
26
|
export type CreateVarsContextOf<AD extends AnyActorDefinition> =
|
|
16
27
|
AD extends ActorDefinition<
|
|
@@ -20,7 +31,9 @@ export type CreateVarsContextOf<AD extends AnyActorDefinition> =
|
|
|
20
31
|
any,
|
|
21
32
|
infer I,
|
|
22
33
|
infer DB extends AnyDatabaseProvider,
|
|
34
|
+
infer E extends EventSchemaConfig,
|
|
35
|
+
infer Q extends QueueSchemaConfig,
|
|
23
36
|
any
|
|
24
37
|
>
|
|
25
|
-
? CreateVarsContext<S, I, DB>
|
|
38
|
+
? CreateVarsContext<S, I, DB, E, Q>
|
|
26
39
|
: never;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { AnyDatabaseProvider } from "../database";
|
|
2
2
|
import type { ActorDefinition, AnyActorDefinition } from "../definition";
|
|
3
|
+
import type { EventSchemaConfig, QueueSchemaConfig } from "../schema";
|
|
3
4
|
import { ActorContext } from "./base/actor";
|
|
4
5
|
|
|
5
6
|
/**
|
|
@@ -9,8 +10,18 @@ export class CreateContext<
|
|
|
9
10
|
TState,
|
|
10
11
|
TInput,
|
|
11
12
|
TDatabase extends AnyDatabaseProvider,
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
TEvents extends EventSchemaConfig = Record<never, never>,
|
|
14
|
+
TQueues extends QueueSchemaConfig = Record<never, never>,
|
|
15
|
+
> extends ActorContext<
|
|
16
|
+
TState,
|
|
17
|
+
never,
|
|
18
|
+
never,
|
|
19
|
+
never,
|
|
20
|
+
TInput,
|
|
21
|
+
TDatabase,
|
|
22
|
+
TEvents,
|
|
23
|
+
TQueues
|
|
24
|
+
> {}
|
|
14
25
|
|
|
15
26
|
export type CreateContextOf<AD extends AnyActorDefinition> =
|
|
16
27
|
AD extends ActorDefinition<
|
|
@@ -20,7 +31,9 @@ export type CreateContextOf<AD extends AnyActorDefinition> =
|
|
|
20
31
|
any,
|
|
21
32
|
infer I,
|
|
22
33
|
infer DB extends AnyDatabaseProvider,
|
|
34
|
+
infer E extends EventSchemaConfig,
|
|
35
|
+
infer Q extends QueueSchemaConfig,
|
|
23
36
|
any
|
|
24
37
|
>
|
|
25
|
-
? CreateContext<S, I, DB>
|
|
38
|
+
? CreateContext<S, I, DB, E, Q>
|
|
26
39
|
: never;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { AnyDatabaseProvider } from "../database";
|
|
2
2
|
import type { ActorDefinition, AnyActorDefinition } from "../definition";
|
|
3
|
+
import type { EventSchemaConfig, QueueSchemaConfig } from "../schema";
|
|
3
4
|
import { ActorContext } from "./base/actor";
|
|
4
5
|
|
|
5
6
|
/**
|
|
@@ -12,16 +13,19 @@ export class DestroyContext<
|
|
|
12
13
|
TVars,
|
|
13
14
|
TInput,
|
|
14
15
|
TDatabase extends AnyDatabaseProvider,
|
|
16
|
+
TEvents extends EventSchemaConfig = Record<never, never>,
|
|
17
|
+
TQueues extends QueueSchemaConfig = Record<never, never>,
|
|
15
18
|
> extends ActorContext<
|
|
16
19
|
TState,
|
|
17
20
|
TConnParams,
|
|
18
21
|
TConnState,
|
|
19
22
|
TVars,
|
|
20
23
|
TInput,
|
|
21
|
-
TDatabase
|
|
24
|
+
TDatabase,
|
|
25
|
+
TEvents,
|
|
26
|
+
TQueues
|
|
22
27
|
> {}
|
|
23
28
|
|
|
24
|
-
|
|
25
29
|
export type DestroyContextOf<AD extends AnyActorDefinition> =
|
|
26
30
|
AD extends ActorDefinition<
|
|
27
31
|
infer S,
|
|
@@ -30,7 +34,9 @@ export type DestroyContextOf<AD extends AnyActorDefinition> =
|
|
|
30
34
|
infer V,
|
|
31
35
|
infer I,
|
|
32
36
|
infer DB extends AnyDatabaseProvider,
|
|
37
|
+
infer E extends EventSchemaConfig,
|
|
38
|
+
infer Q extends QueueSchemaConfig,
|
|
33
39
|
any
|
|
34
40
|
>
|
|
35
|
-
? DestroyContext<S, CP, CS, V, I, DB>
|
|
41
|
+
? DestroyContext<S, CP, CS, V, I, DB, E, Q>
|
|
36
42
|
: never;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Conn } from "../conn/mod";
|
|
2
|
-
import type { ActorDefinition, AnyActorDefinition } from "../definition";
|
|
3
2
|
import type { AnyDatabaseProvider } from "../database";
|
|
3
|
+
import type { ActorDefinition, AnyActorDefinition } from "../definition";
|
|
4
|
+
import type { EventSchemaConfig, QueueSchemaConfig } from "../schema";
|
|
4
5
|
import { ActorContext } from "./base/actor";
|
|
5
6
|
|
|
6
7
|
/**
|
|
@@ -13,16 +14,19 @@ export class DisconnectContext<
|
|
|
13
14
|
TVars,
|
|
14
15
|
TInput,
|
|
15
16
|
TDatabase extends AnyDatabaseProvider,
|
|
17
|
+
TEvents extends EventSchemaConfig = Record<never, never>,
|
|
18
|
+
TQueues extends QueueSchemaConfig = Record<never, never>,
|
|
16
19
|
> extends ActorContext<
|
|
17
20
|
TState,
|
|
18
21
|
TConnParams,
|
|
19
22
|
TConnState,
|
|
20
23
|
TVars,
|
|
21
24
|
TInput,
|
|
22
|
-
TDatabase
|
|
25
|
+
TDatabase,
|
|
26
|
+
TEvents,
|
|
27
|
+
TQueues
|
|
23
28
|
> {}
|
|
24
29
|
|
|
25
|
-
|
|
26
30
|
export type DisconnectContextOf<AD extends AnyActorDefinition> =
|
|
27
31
|
AD extends ActorDefinition<
|
|
28
32
|
infer S,
|
|
@@ -31,7 +35,9 @@ export type DisconnectContextOf<AD extends AnyActorDefinition> =
|
|
|
31
35
|
infer V,
|
|
32
36
|
infer I,
|
|
33
37
|
infer DB extends AnyDatabaseProvider,
|
|
38
|
+
infer E extends EventSchemaConfig,
|
|
39
|
+
infer Q extends QueueSchemaConfig,
|
|
34
40
|
any
|
|
35
41
|
>
|
|
36
|
-
? DisconnectContext<S, CP, CS, V, I, DB>
|
|
42
|
+
? DisconnectContext<S, CP, CS, V, I, DB, E, Q>
|
|
37
43
|
: never;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// Base contexts
|
|
2
|
-
export { ActorContext, type ActorContextOf } from "./base/actor";
|
|
3
|
-
export { ConnContext, type ConnContextOf } from "./base/conn";
|
|
4
|
-
export { ConnInitContext, type ConnInitContextOf } from "./base/conn-init";
|
|
5
2
|
|
|
6
3
|
// Lifecycle contexts
|
|
7
4
|
export { ActionContext, type ActionContextOf } from "./action";
|
|
5
|
+
export { ActorContext, type ActorContextOf } from "./base/actor";
|
|
6
|
+
export { ConnContext, type ConnContextOf } from "./base/conn";
|
|
7
|
+
export { ConnInitContext, type ConnInitContextOf } from "./base/conn-init";
|
|
8
8
|
export {
|
|
9
9
|
BeforeActionResponseContext,
|
|
10
10
|
type BeforeActionResponseContextOf,
|
|
@@ -23,6 +23,7 @@ export { CreateVarsContext, type CreateVarsContextOf } from "./create-vars";
|
|
|
23
23
|
export { DestroyContext, type DestroyContextOf } from "./destroy";
|
|
24
24
|
export { DisconnectContext, type DisconnectContextOf } from "./disconnect";
|
|
25
25
|
export { RequestContext, type RequestContextOf } from "./request";
|
|
26
|
+
export { RunContext, type RunContextOf } from "./run";
|
|
26
27
|
export { SleepContext, type SleepContextOf } from "./sleep";
|
|
27
28
|
export {
|
|
28
29
|
StateChangeContext,
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { Conn } from "../conn/mod";
|
|
2
|
-
import type { ActorDefinition, AnyActorDefinition } from "../definition";
|
|
3
2
|
import type { AnyDatabaseProvider } from "../database";
|
|
3
|
+
import type { ActorDefinition, AnyActorDefinition } from "../definition";
|
|
4
4
|
import type { ActorInstance } from "../instance/mod";
|
|
5
|
+
import type { EventSchemaConfig, QueueSchemaConfig } from "../schema";
|
|
5
6
|
import { ConnContext } from "./base/conn";
|
|
6
7
|
|
|
7
8
|
/**
|
|
@@ -14,13 +15,17 @@ export class RequestContext<
|
|
|
14
15
|
TVars,
|
|
15
16
|
TInput,
|
|
16
17
|
TDatabase extends AnyDatabaseProvider,
|
|
18
|
+
TEvents extends EventSchemaConfig = Record<never, never>,
|
|
19
|
+
TQueues extends QueueSchemaConfig = Record<never, never>,
|
|
17
20
|
> extends ConnContext<
|
|
18
21
|
TState,
|
|
19
22
|
TConnParams,
|
|
20
23
|
TConnState,
|
|
21
24
|
TVars,
|
|
22
25
|
TInput,
|
|
23
|
-
TDatabase
|
|
26
|
+
TDatabase,
|
|
27
|
+
TEvents,
|
|
28
|
+
TQueues
|
|
24
29
|
> {
|
|
25
30
|
/**
|
|
26
31
|
* The incoming HTTP request.
|
|
@@ -38,9 +43,20 @@ export class RequestContext<
|
|
|
38
43
|
TConnState,
|
|
39
44
|
TVars,
|
|
40
45
|
TInput,
|
|
41
|
-
TDatabase
|
|
46
|
+
TDatabase,
|
|
47
|
+
TEvents,
|
|
48
|
+
TQueues
|
|
49
|
+
>,
|
|
50
|
+
conn: Conn<
|
|
51
|
+
TState,
|
|
52
|
+
TConnParams,
|
|
53
|
+
TConnState,
|
|
54
|
+
TVars,
|
|
55
|
+
TInput,
|
|
56
|
+
TDatabase,
|
|
57
|
+
TEvents,
|
|
58
|
+
TQueues
|
|
42
59
|
>,
|
|
43
|
-
conn: Conn<TState, TConnParams, TConnState, TVars, TInput, TDatabase>,
|
|
44
60
|
request?: Request,
|
|
45
61
|
) {
|
|
46
62
|
super(actor, conn);
|
|
@@ -48,7 +64,6 @@ export class RequestContext<
|
|
|
48
64
|
}
|
|
49
65
|
}
|
|
50
66
|
|
|
51
|
-
|
|
52
67
|
export type RequestContextOf<AD extends AnyActorDefinition> =
|
|
53
68
|
AD extends ActorDefinition<
|
|
54
69
|
infer S,
|
|
@@ -57,7 +72,9 @@ export type RequestContextOf<AD extends AnyActorDefinition> =
|
|
|
57
72
|
infer V,
|
|
58
73
|
infer I,
|
|
59
74
|
infer DB extends AnyDatabaseProvider,
|
|
75
|
+
infer E extends EventSchemaConfig,
|
|
76
|
+
infer Q extends QueueSchemaConfig,
|
|
60
77
|
any
|
|
61
78
|
>
|
|
62
|
-
? RequestContext<S, CP, CS, V, I, DB>
|
|
79
|
+
? RequestContext<S, CP, CS, V, I, DB, E, Q>
|
|
63
80
|
: never;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { AnyDatabaseProvider } from "../database";
|
|
2
|
+
import type { ActorDefinition, AnyActorDefinition } from "../definition";
|
|
3
|
+
import type { EventSchemaConfig, QueueSchemaConfig } from "../schema";
|
|
4
|
+
import { ActorContext } from "./base/actor";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Context for the run lifecycle hook.
|
|
8
|
+
*
|
|
9
|
+
* This context is passed to the `run` handler which executes after the actor
|
|
10
|
+
* starts. It does not block actor startup and is intended for background tasks.
|
|
11
|
+
*
|
|
12
|
+
* Use `c.aborted` to detect when the actor is stopping and gracefully exit.
|
|
13
|
+
*/
|
|
14
|
+
export class RunContext<
|
|
15
|
+
TState,
|
|
16
|
+
TConnParams,
|
|
17
|
+
TConnState,
|
|
18
|
+
TVars,
|
|
19
|
+
TInput,
|
|
20
|
+
TDatabase extends AnyDatabaseProvider,
|
|
21
|
+
TEvents extends EventSchemaConfig = Record<never, never>,
|
|
22
|
+
TQueues extends QueueSchemaConfig = Record<never, never>,
|
|
23
|
+
> extends ActorContext<
|
|
24
|
+
TState,
|
|
25
|
+
TConnParams,
|
|
26
|
+
TConnState,
|
|
27
|
+
TVars,
|
|
28
|
+
TInput,
|
|
29
|
+
TDatabase,
|
|
30
|
+
TEvents,
|
|
31
|
+
TQueues
|
|
32
|
+
> {}
|
|
33
|
+
|
|
34
|
+
export type RunContextOf<AD extends AnyActorDefinition> =
|
|
35
|
+
AD extends ActorDefinition<
|
|
36
|
+
infer S,
|
|
37
|
+
infer CP,
|
|
38
|
+
infer CS,
|
|
39
|
+
infer V,
|
|
40
|
+
infer I,
|
|
41
|
+
infer DB extends AnyDatabaseProvider,
|
|
42
|
+
infer E extends EventSchemaConfig,
|
|
43
|
+
infer Q extends QueueSchemaConfig,
|
|
44
|
+
any
|
|
45
|
+
>
|
|
46
|
+
? RunContext<S, CP, CS, V, I, DB, E, Q>
|
|
47
|
+
: never;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { AnyDatabaseProvider } from "../database";
|
|
2
2
|
import type { ActorDefinition, AnyActorDefinition } from "../definition";
|
|
3
|
+
import type { EventSchemaConfig, QueueSchemaConfig } from "../schema";
|
|
3
4
|
import { ActorContext } from "./base/actor";
|
|
4
5
|
|
|
5
6
|
/**
|
|
@@ -12,16 +13,19 @@ export class SleepContext<
|
|
|
12
13
|
TVars,
|
|
13
14
|
TInput,
|
|
14
15
|
TDatabase extends AnyDatabaseProvider,
|
|
16
|
+
TEvents extends EventSchemaConfig = Record<never, never>,
|
|
17
|
+
TQueues extends QueueSchemaConfig = Record<never, never>,
|
|
15
18
|
> extends ActorContext<
|
|
16
19
|
TState,
|
|
17
20
|
TConnParams,
|
|
18
21
|
TConnState,
|
|
19
22
|
TVars,
|
|
20
23
|
TInput,
|
|
21
|
-
TDatabase
|
|
24
|
+
TDatabase,
|
|
25
|
+
TEvents,
|
|
26
|
+
TQueues
|
|
22
27
|
> {}
|
|
23
28
|
|
|
24
|
-
|
|
25
29
|
export type SleepContextOf<AD extends AnyActorDefinition> =
|
|
26
30
|
AD extends ActorDefinition<
|
|
27
31
|
infer S,
|
|
@@ -30,7 +34,9 @@ export type SleepContextOf<AD extends AnyActorDefinition> =
|
|
|
30
34
|
infer V,
|
|
31
35
|
infer I,
|
|
32
36
|
infer DB extends AnyDatabaseProvider,
|
|
37
|
+
infer E extends EventSchemaConfig,
|
|
38
|
+
infer Q extends QueueSchemaConfig,
|
|
33
39
|
any
|
|
34
40
|
>
|
|
35
|
-
? SleepContext<S, CP, CS, V, I, DB>
|
|
41
|
+
? SleepContext<S, CP, CS, V, I, DB, E, Q>
|
|
36
42
|
: never;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { AnyDatabaseProvider } from "../database";
|
|
2
2
|
import type { ActorDefinition, AnyActorDefinition } from "../definition";
|
|
3
|
+
import type { EventSchemaConfig, QueueSchemaConfig } from "../schema";
|
|
3
4
|
import { ActorContext } from "./base/actor";
|
|
4
5
|
|
|
5
6
|
/**
|
|
@@ -12,16 +13,19 @@ export class StateChangeContext<
|
|
|
12
13
|
TVars,
|
|
13
14
|
TInput,
|
|
14
15
|
TDatabase extends AnyDatabaseProvider,
|
|
16
|
+
TEvents extends EventSchemaConfig = Record<never, never>,
|
|
17
|
+
TQueues extends QueueSchemaConfig = Record<never, never>,
|
|
15
18
|
> extends ActorContext<
|
|
16
19
|
TState,
|
|
17
20
|
TConnParams,
|
|
18
21
|
TConnState,
|
|
19
22
|
TVars,
|
|
20
23
|
TInput,
|
|
21
|
-
TDatabase
|
|
24
|
+
TDatabase,
|
|
25
|
+
TEvents,
|
|
26
|
+
TQueues
|
|
22
27
|
> {}
|
|
23
28
|
|
|
24
|
-
|
|
25
29
|
export type StateChangeContextOf<AD extends AnyActorDefinition> =
|
|
26
30
|
AD extends ActorDefinition<
|
|
27
31
|
infer S,
|
|
@@ -30,7 +34,9 @@ export type StateChangeContextOf<AD extends AnyActorDefinition> =
|
|
|
30
34
|
infer V,
|
|
31
35
|
infer I,
|
|
32
36
|
infer DB extends AnyDatabaseProvider,
|
|
37
|
+
infer E extends EventSchemaConfig,
|
|
38
|
+
infer Q extends QueueSchemaConfig,
|
|
33
39
|
any
|
|
34
40
|
>
|
|
35
|
-
? StateChangeContext<S, CP, CS, V, I, DB>
|
|
41
|
+
? StateChangeContext<S, CP, CS, V, I, DB, E, Q>
|
|
36
42
|
: never;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { AnyDatabaseProvider } from "../database";
|
|
2
2
|
import type { ActorDefinition, AnyActorDefinition } from "../definition";
|
|
3
|
+
import type { EventSchemaConfig, QueueSchemaConfig } from "../schema";
|
|
3
4
|
import { ActorContext } from "./base/actor";
|
|
4
5
|
|
|
5
6
|
/**
|
|
@@ -12,16 +13,19 @@ export class WakeContext<
|
|
|
12
13
|
TVars,
|
|
13
14
|
TInput,
|
|
14
15
|
TDatabase extends AnyDatabaseProvider,
|
|
16
|
+
TEvents extends EventSchemaConfig = Record<never, never>,
|
|
17
|
+
TQueues extends QueueSchemaConfig = Record<never, never>,
|
|
15
18
|
> extends ActorContext<
|
|
16
19
|
TState,
|
|
17
20
|
TConnParams,
|
|
18
21
|
TConnState,
|
|
19
22
|
TVars,
|
|
20
23
|
TInput,
|
|
21
|
-
TDatabase
|
|
24
|
+
TDatabase,
|
|
25
|
+
TEvents,
|
|
26
|
+
TQueues
|
|
22
27
|
> {}
|
|
23
28
|
|
|
24
|
-
|
|
25
29
|
export type WakeContextOf<AD extends AnyActorDefinition> =
|
|
26
30
|
AD extends ActorDefinition<
|
|
27
31
|
infer S,
|
|
@@ -30,7 +34,9 @@ export type WakeContextOf<AD extends AnyActorDefinition> =
|
|
|
30
34
|
infer V,
|
|
31
35
|
infer I,
|
|
32
36
|
infer DB extends AnyDatabaseProvider,
|
|
37
|
+
infer E extends EventSchemaConfig,
|
|
38
|
+
infer Q extends QueueSchemaConfig,
|
|
33
39
|
any
|
|
34
40
|
>
|
|
35
|
-
? WakeContext<S, CP, CS, V, I, DB>
|
|
41
|
+
? WakeContext<S, CP, CS, V, I, DB, E, Q>
|
|
36
42
|
: never;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { Conn } from "../conn/mod";
|
|
2
|
-
import type { ActorDefinition, AnyActorDefinition } from "../definition";
|
|
3
2
|
import type { AnyDatabaseProvider } from "../database";
|
|
3
|
+
import type { ActorDefinition, AnyActorDefinition } from "../definition";
|
|
4
4
|
import type { ActorInstance } from "../instance/mod";
|
|
5
|
+
import type { EventSchemaConfig, QueueSchemaConfig } from "../schema";
|
|
5
6
|
import { ConnContext } from "./base/conn";
|
|
6
7
|
|
|
7
8
|
/**
|
|
@@ -14,13 +15,17 @@ export class WebSocketContext<
|
|
|
14
15
|
TVars,
|
|
15
16
|
TInput,
|
|
16
17
|
TDatabase extends AnyDatabaseProvider,
|
|
18
|
+
TEvents extends EventSchemaConfig = Record<never, never>,
|
|
19
|
+
TQueues extends QueueSchemaConfig = Record<never, never>,
|
|
17
20
|
> extends ConnContext<
|
|
18
21
|
TState,
|
|
19
22
|
TConnParams,
|
|
20
23
|
TConnState,
|
|
21
24
|
TVars,
|
|
22
25
|
TInput,
|
|
23
|
-
TDatabase
|
|
26
|
+
TDatabase,
|
|
27
|
+
TEvents,
|
|
28
|
+
TQueues
|
|
24
29
|
> {
|
|
25
30
|
/**
|
|
26
31
|
* The incoming HTTP request that initiated the WebSocket upgrade.
|
|
@@ -38,9 +43,20 @@ export class WebSocketContext<
|
|
|
38
43
|
TConnState,
|
|
39
44
|
TVars,
|
|
40
45
|
TInput,
|
|
41
|
-
TDatabase
|
|
46
|
+
TDatabase,
|
|
47
|
+
TEvents,
|
|
48
|
+
TQueues
|
|
49
|
+
>,
|
|
50
|
+
conn: Conn<
|
|
51
|
+
TState,
|
|
52
|
+
TConnParams,
|
|
53
|
+
TConnState,
|
|
54
|
+
TVars,
|
|
55
|
+
TInput,
|
|
56
|
+
TDatabase,
|
|
57
|
+
TEvents,
|
|
58
|
+
TQueues
|
|
42
59
|
>,
|
|
43
|
-
conn: Conn<TState, TConnParams, TConnState, TVars, TInput, TDatabase>,
|
|
44
60
|
request?: Request,
|
|
45
61
|
) {
|
|
46
62
|
super(actor, conn);
|
|
@@ -48,7 +64,6 @@ export class WebSocketContext<
|
|
|
48
64
|
}
|
|
49
65
|
}
|
|
50
66
|
|
|
51
|
-
|
|
52
67
|
export type WebSocketContextOf<AD extends AnyActorDefinition> =
|
|
53
68
|
AD extends ActorDefinition<
|
|
54
69
|
infer S,
|
|
@@ -57,7 +72,9 @@ export type WebSocketContextOf<AD extends AnyActorDefinition> =
|
|
|
57
72
|
infer V,
|
|
58
73
|
infer I,
|
|
59
74
|
infer DB extends AnyDatabaseProvider,
|
|
75
|
+
infer E extends EventSchemaConfig,
|
|
76
|
+
infer Q extends QueueSchemaConfig,
|
|
60
77
|
any
|
|
61
78
|
>
|
|
62
|
-
? WebSocketContext<S, CP, CS, V, I, DB>
|
|
79
|
+
? WebSocketContext<S, CP, CS, V, I, DB, E, Q>
|
|
63
80
|
: never;
|
package/src/actor/database.ts
CHANGED
|
@@ -1,23 +1,13 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
AnyDatabaseProvider,
|
|
3
|
+
DatabaseProvider,
|
|
4
|
+
RawDatabaseClient,
|
|
5
|
+
DrizzleDatabaseClient,
|
|
6
|
+
} from "@/db/config";
|
|
7
|
+
|
|
1
8
|
export type InferDatabaseClient<DBProvider extends AnyDatabaseProvider> =
|
|
2
9
|
DBProvider extends DatabaseProvider<any>
|
|
3
10
|
? Awaited<ReturnType<DBProvider["createClient"]>>
|
|
4
11
|
: never;
|
|
5
12
|
|
|
6
|
-
export type AnyDatabaseProvider
|
|
7
|
-
|
|
8
|
-
export type DatabaseProvider<DB extends { execute: (query: string) => any }> = {
|
|
9
|
-
/**
|
|
10
|
-
* Creates a new database client for the actor.
|
|
11
|
-
* The result is passed to the actor context as `c.db`.
|
|
12
|
-
* @experimental
|
|
13
|
-
*/
|
|
14
|
-
createClient: (ctx: {
|
|
15
|
-
getDatabase: () => Promise<string | unknown>;
|
|
16
|
-
}) => Promise<DB>;
|
|
17
|
-
/**
|
|
18
|
-
* Runs before the actor has started.
|
|
19
|
-
* Use this to run migrations or other setup tasks.
|
|
20
|
-
* @experimental
|
|
21
|
-
*/
|
|
22
|
-
onMigrate: (client: DB) => void | Promise<void>;
|
|
23
|
-
};
|
|
13
|
+
export type { AnyDatabaseProvider, DatabaseProvider, RawDatabaseClient, DrizzleDatabaseClient };
|
package/src/actor/definition.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { RegistryConfig } from "@/registry/config";
|
|
2
|
+
import { DeepMutable } from "@/utils";
|
|
2
3
|
import type { Actions, ActorConfig } from "./config";
|
|
3
4
|
import type { ActionContextOf, ActorContext } from "./contexts";
|
|
4
5
|
import type { AnyDatabaseProvider } from "./database";
|
|
5
6
|
import { ActorInstance } from "./instance/mod";
|
|
6
|
-
import {
|
|
7
|
+
import type { EventSchemaConfig, QueueSchemaConfig } from "./schema";
|
|
7
8
|
|
|
8
9
|
export type AnyActorDefinition = ActorDefinition<
|
|
9
10
|
any,
|
|
@@ -12,6 +13,8 @@ export type AnyActorDefinition = ActorDefinition<
|
|
|
12
13
|
any,
|
|
13
14
|
any,
|
|
14
15
|
any,
|
|
16
|
+
any,
|
|
17
|
+
any,
|
|
15
18
|
any
|
|
16
19
|
>;
|
|
17
20
|
|
|
@@ -22,19 +25,30 @@ export class ActorDefinition<
|
|
|
22
25
|
V,
|
|
23
26
|
I,
|
|
24
27
|
DB extends AnyDatabaseProvider,
|
|
25
|
-
|
|
28
|
+
E extends EventSchemaConfig = Record<never, never>,
|
|
29
|
+
Q extends QueueSchemaConfig = Record<never, never>,
|
|
30
|
+
R extends Actions<S, CP, CS, V, I, DB, E, Q> = Actions<
|
|
31
|
+
S,
|
|
32
|
+
CP,
|
|
33
|
+
CS,
|
|
34
|
+
V,
|
|
35
|
+
I,
|
|
36
|
+
DB,
|
|
37
|
+
E,
|
|
38
|
+
Q
|
|
39
|
+
>,
|
|
26
40
|
> {
|
|
27
|
-
#config: ActorConfig<S, CP, CS, V, I, DB>;
|
|
41
|
+
#config: ActorConfig<S, CP, CS, V, I, DB, E, Q>;
|
|
28
42
|
|
|
29
|
-
constructor(config: ActorConfig<S, CP, CS, V, I, DB>) {
|
|
43
|
+
constructor(config: ActorConfig<S, CP, CS, V, I, DB, E, Q>) {
|
|
30
44
|
this.#config = config;
|
|
31
45
|
}
|
|
32
46
|
|
|
33
|
-
get config(): ActorConfig<S, CP, CS, V, I, DB> {
|
|
47
|
+
get config(): ActorConfig<S, CP, CS, V, I, DB, E, Q> {
|
|
34
48
|
return this.#config;
|
|
35
49
|
}
|
|
36
50
|
|
|
37
|
-
instantiate(): ActorInstance<S, CP, CS, V, I, DB> {
|
|
51
|
+
instantiate(): ActorInstance<S, CP, CS, V, I, DB, E, Q> {
|
|
38
52
|
return new ActorInstance(this.#config);
|
|
39
53
|
}
|
|
40
54
|
}
|
package/src/actor/driver.ts
CHANGED
|
@@ -3,7 +3,12 @@ import type { AnyClient } from "@/client/client";
|
|
|
3
3
|
import type { ManagerDriver } from "@/manager/driver";
|
|
4
4
|
import { type AnyConn } from "./conn/mod";
|
|
5
5
|
import type { AnyActorInstance } from "./instance/mod";
|
|
6
|
-
import { RegistryConfig } from "@/registry/config";
|
|
6
|
+
import type { RegistryConfig } from "@/registry/config";
|
|
7
|
+
import type {
|
|
8
|
+
RawDatabaseClient,
|
|
9
|
+
} from "@/db/config";
|
|
10
|
+
import type { SqliteVfs } from "@rivetkit/sqlite-vfs";
|
|
11
|
+
import { BaseSQLiteDatabase } from "drizzle-orm/sqlite-core";
|
|
7
12
|
|
|
8
13
|
export type ActorDriverBuilder = (
|
|
9
14
|
config: RegistryConfig,
|
|
@@ -46,10 +51,34 @@ export interface ActorDriver {
|
|
|
46
51
|
|
|
47
52
|
// Database
|
|
48
53
|
/**
|
|
54
|
+
* Override the default raw database client for the actor.
|
|
55
|
+
* If not provided, rivetkit will construct a KV-backed SQLite client.
|
|
49
56
|
* @experimental
|
|
50
|
-
* This is an experimental API that may change in the future.
|
|
51
57
|
*/
|
|
52
|
-
|
|
58
|
+
overrideRawDatabaseClient?(
|
|
59
|
+
actorId: string,
|
|
60
|
+
): Promise<RawDatabaseClient | undefined>;
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Override the default Drizzle database client for the actor.
|
|
64
|
+
* If not provided, rivetkit will construct a KV-backed Drizzle client.
|
|
65
|
+
* @experimental
|
|
66
|
+
*/
|
|
67
|
+
overrideDrizzleDatabaseClient?(
|
|
68
|
+
actorId: string,
|
|
69
|
+
): Promise<BaseSQLiteDatabase<any,any,any,any> | undefined>;
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Creates a SQLite VFS instance for creating KV-backed databases.
|
|
73
|
+
* If not provided, the database provider will need an override.
|
|
74
|
+
*
|
|
75
|
+
* @rivetkit/sqlite's async build is not re-entrant per module instance. Drivers
|
|
76
|
+
* should return a new instance per call for actor-level isolation.
|
|
77
|
+
*
|
|
78
|
+
* This is a method (not a property) so drivers can use dynamic imports,
|
|
79
|
+
* keeping the core driver tree-shakeable from @rivetkit/sqlite.
|
|
80
|
+
*/
|
|
81
|
+
createSqliteVfs?(): SqliteVfs | Promise<SqliteVfs>;
|
|
53
82
|
|
|
54
83
|
/**
|
|
55
84
|
* Requests the actor to go to sleep.
|