rivetkit 2.0.24-rc.1 → 2.0.25-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/schemas/actor-persist/v1.ts +6 -0
- package/dist/schemas/actor-persist/v2.ts +9 -3
- package/dist/schemas/actor-persist/v3.ts +280 -0
- package/dist/schemas/client-protocol/v1.ts +6 -0
- package/dist/schemas/client-protocol/v2.ts +438 -0
- package/dist/schemas/file-system-driver/v1.ts +6 -0
- package/dist/schemas/file-system-driver/v2.ts +142 -0
- package/dist/tsup/actor/errors.cjs +2 -4
- package/dist/tsup/actor/errors.cjs.map +1 -1
- package/dist/tsup/actor/errors.d.cts +7 -10
- package/dist/tsup/actor/errors.d.ts +7 -10
- package/dist/tsup/actor/errors.js +9 -11
- package/dist/tsup/{actor-router-consts-B3Lu87yJ.d.cts → actor-router-consts-DzI2szci.d.cts} +5 -9
- package/dist/tsup/{actor-router-consts-B3Lu87yJ.d.ts → actor-router-consts-DzI2szci.d.ts} +5 -9
- package/dist/tsup/{chunk-ZTH3KYFH.cjs → chunk-3FG5OJ3G.cjs} +3 -3
- package/dist/tsup/{chunk-ZTH3KYFH.cjs.map → chunk-3FG5OJ3G.cjs.map} +1 -1
- package/dist/tsup/{chunk-BLK27ES3.js → chunk-6JN6W6G3.js} +44 -56
- package/dist/tsup/chunk-6JN6W6G3.js.map +1 -0
- package/dist/tsup/chunk-7IBNNGQ2.js +514 -0
- package/dist/tsup/chunk-7IBNNGQ2.js.map +1 -0
- package/dist/tsup/{chunk-36JJ4IQB.cjs → chunk-AZATXPR4.cjs} +4 -8
- package/dist/tsup/chunk-AZATXPR4.cjs.map +1 -0
- package/dist/tsup/chunk-B7MENRD5.cjs +5694 -0
- package/dist/tsup/chunk-B7MENRD5.cjs.map +1 -0
- package/dist/tsup/{chunk-BOMZS2TJ.js → chunk-BBVFDEYD.js} +9 -9
- package/dist/tsup/chunk-BBVFDEYD.js.map +1 -0
- package/dist/tsup/{chunk-KSRXX3Z4.cjs → chunk-D6762AOA.cjs} +20 -25
- package/dist/tsup/chunk-D6762AOA.cjs.map +1 -0
- package/dist/tsup/{chunk-2JYPS5YM.cjs → chunk-E63WZNMR.cjs} +6 -6
- package/dist/tsup/chunk-E63WZNMR.cjs.map +1 -0
- package/dist/tsup/{chunk-YBG6R7LX.js → chunk-EDGN4OC7.js} +3 -7
- package/dist/tsup/chunk-EDGN4OC7.js.map +1 -0
- package/dist/tsup/{chunk-BYMKMOBS.js → chunk-FLOQ3UWM.js} +1844 -1681
- package/dist/tsup/chunk-FLOQ3UWM.js.map +1 -0
- package/dist/tsup/{chunk-7L65NNWP.cjs → chunk-H7GV5DIW.cjs} +187 -185
- package/dist/tsup/chunk-H7GV5DIW.cjs.map +1 -0
- package/dist/tsup/{chunk-227FEWMB.js → chunk-HZYZ7JSF.js} +3322 -2251
- package/dist/tsup/chunk-HZYZ7JSF.js.map +1 -0
- package/dist/tsup/{chunk-FX7TWFQR.js → chunk-IDJK7ILQ.js} +2 -6
- package/dist/tsup/chunk-IDJK7ILQ.js.map +1 -0
- package/dist/tsup/{chunk-VHGY7PU5.cjs → chunk-ILFXA4AL.cjs} +1900 -1737
- package/dist/tsup/chunk-ILFXA4AL.cjs.map +1 -0
- package/dist/tsup/chunk-MV6M3FDL.cjs +514 -0
- package/dist/tsup/chunk-MV6M3FDL.cjs.map +1 -0
- package/dist/tsup/{chunk-PLUN2NQT.js → chunk-NWBKMCWC.js} +189 -187
- package/dist/tsup/chunk-NWBKMCWC.js.map +1 -0
- package/dist/tsup/{chunk-CD33GT6Z.js → chunk-QIHBDXTO.js} +2 -2
- package/dist/tsup/{chunk-G64QUEDJ.js → chunk-W6RDS6NW.js} +23 -28
- package/dist/tsup/chunk-W6RDS6NW.js.map +1 -0
- package/dist/tsup/{chunk-INNFK746.cjs → chunk-WQU4M4ZC.cjs} +10 -14
- package/dist/tsup/chunk-WQU4M4ZC.cjs.map +1 -0
- package/dist/tsup/{chunk-SHVX2QUR.cjs → chunk-XKZA47XS.cjs} +17 -17
- package/dist/tsup/chunk-XKZA47XS.cjs.map +1 -0
- package/dist/tsup/{chunk-HHFKKVLR.cjs → chunk-YHWIOWVA.cjs} +45 -57
- package/dist/tsup/chunk-YHWIOWVA.cjs.map +1 -0
- package/dist/tsup/{chunk-YBHYXIP6.js → chunk-YVL6IRUM.js} +3 -3
- package/dist/tsup/chunk-YVL6IRUM.js.map +1 -0
- package/dist/tsup/client/mod.cjs +9 -9
- package/dist/tsup/client/mod.d.cts +5 -7
- package/dist/tsup/client/mod.d.ts +5 -7
- package/dist/tsup/client/mod.js +8 -8
- package/dist/tsup/common/log.cjs +3 -3
- package/dist/tsup/common/log.js +2 -2
- package/dist/tsup/common/websocket.cjs +4 -4
- package/dist/tsup/common/websocket.js +3 -3
- package/dist/tsup/{conn-B3Vhbgnd.d.ts → config-BRDYDraU.d.cts} +1119 -1047
- package/dist/tsup/{conn-DJWL3nGx.d.cts → config-Bo-blHpJ.d.ts} +1119 -1047
- package/dist/tsup/driver-helpers/mod.cjs +5 -13
- package/dist/tsup/driver-helpers/mod.cjs.map +1 -1
- package/dist/tsup/driver-helpers/mod.d.cts +11 -9
- package/dist/tsup/driver-helpers/mod.d.ts +11 -9
- package/dist/tsup/driver-helpers/mod.js +14 -22
- package/dist/tsup/driver-test-suite/mod.cjs +474 -303
- package/dist/tsup/driver-test-suite/mod.cjs.map +1 -1
- package/dist/tsup/driver-test-suite/mod.d.cts +6 -9
- package/dist/tsup/driver-test-suite/mod.d.ts +6 -9
- package/dist/tsup/driver-test-suite/mod.js +1085 -914
- package/dist/tsup/driver-test-suite/mod.js.map +1 -1
- package/dist/tsup/inspector/mod.cjs +6 -6
- package/dist/tsup/inspector/mod.d.cts +5 -7
- package/dist/tsup/inspector/mod.d.ts +5 -7
- package/dist/tsup/inspector/mod.js +5 -5
- package/dist/tsup/mod.cjs +10 -16
- package/dist/tsup/mod.cjs.map +1 -1
- package/dist/tsup/mod.d.cts +23 -25
- package/dist/tsup/mod.d.ts +23 -25
- package/dist/tsup/mod.js +17 -23
- package/dist/tsup/test/mod.cjs +11 -11
- package/dist/tsup/test/mod.d.cts +4 -6
- package/dist/tsup/test/mod.d.ts +4 -6
- package/dist/tsup/test/mod.js +10 -10
- package/dist/tsup/utils.cjs +3 -5
- package/dist/tsup/utils.cjs.map +1 -1
- package/dist/tsup/utils.d.cts +1 -2
- package/dist/tsup/utils.d.ts +1 -2
- package/dist/tsup/utils.js +2 -4
- package/package.json +13 -6
- package/src/actor/config.ts +56 -44
- 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 +129 -0
- package/src/actor/conn/mod.ts +232 -0
- package/src/actor/conn/persisted.ts +81 -0
- package/src/actor/conn/state-manager.ts +196 -0
- package/src/actor/contexts/action.ts +23 -0
- package/src/actor/{context.ts → contexts/actor.ts} +19 -8
- package/src/actor/contexts/conn-init.ts +31 -0
- package/src/actor/contexts/conn.ts +48 -0
- package/src/actor/contexts/create-conn-state.ts +13 -0
- package/src/actor/contexts/on-before-connect.ts +13 -0
- package/src/actor/contexts/on-connect.ts +22 -0
- package/src/actor/contexts/request.ts +48 -0
- package/src/actor/contexts/websocket.ts +48 -0
- package/src/actor/definition.ts +3 -3
- package/src/actor/driver.ts +36 -5
- package/src/actor/errors.ts +19 -24
- package/src/actor/instance/connection-manager.ts +465 -0
- package/src/actor/instance/event-manager.ts +292 -0
- package/src/actor/instance/kv.ts +15 -0
- package/src/actor/instance/mod.ts +1107 -0
- package/src/actor/instance/persisted.ts +67 -0
- package/src/actor/instance/schedule-manager.ts +349 -0
- package/src/actor/instance/state-manager.ts +502 -0
- package/src/actor/mod.ts +13 -16
- package/src/actor/protocol/old.ts +131 -43
- package/src/actor/protocol/serde.ts +19 -4
- package/src/actor/router-endpoints.ts +61 -586
- package/src/actor/router-websocket-endpoints.ts +408 -0
- package/src/actor/router.ts +63 -197
- package/src/actor/schedule.ts +1 -1
- package/src/client/actor-conn.ts +183 -249
- package/src/client/actor-handle.ts +29 -6
- package/src/client/client.ts +0 -4
- package/src/client/config.ts +1 -4
- package/src/client/mod.ts +0 -1
- package/src/client/raw-utils.ts +3 -3
- package/src/client/utils.ts +85 -39
- package/src/common/actor-router-consts.ts +5 -12
- package/src/common/{inline-websocket-adapter2.ts → inline-websocket-adapter.ts} +26 -48
- package/src/common/log.ts +1 -1
- package/src/common/router.ts +28 -17
- package/src/common/utils.ts +2 -0
- package/src/driver-helpers/mod.ts +7 -10
- package/src/driver-helpers/utils.ts +18 -9
- package/src/driver-test-suite/mod.ts +26 -50
- package/src/driver-test-suite/test-inline-client-driver.ts +27 -51
- package/src/driver-test-suite/tests/actor-conn-hibernation.ts +150 -0
- package/src/driver-test-suite/tests/actor-conn-state.ts +1 -4
- package/src/driver-test-suite/tests/actor-conn.ts +5 -9
- package/src/driver-test-suite/tests/actor-destroy.ts +294 -0
- package/src/driver-test-suite/tests/actor-driver.ts +0 -7
- package/src/driver-test-suite/tests/actor-handle.ts +12 -12
- package/src/driver-test-suite/tests/actor-metadata.ts +1 -1
- package/src/driver-test-suite/tests/manager-driver.ts +1 -1
- package/src/driver-test-suite/tests/raw-http-direct-registry.ts +8 -8
- package/src/driver-test-suite/tests/raw-http-request-properties.ts +6 -5
- package/src/driver-test-suite/tests/raw-http.ts +5 -5
- package/src/driver-test-suite/tests/raw-websocket-direct-registry.ts +7 -7
- package/src/driver-test-suite/tests/request-access.ts +4 -4
- package/src/driver-test-suite/utils.ts +6 -10
- package/src/drivers/engine/actor-driver.ts +614 -424
- package/src/drivers/engine/mod.ts +0 -1
- package/src/drivers/file-system/actor.ts +24 -12
- package/src/drivers/file-system/global-state.ts +427 -37
- package/src/drivers/file-system/manager.ts +71 -83
- package/src/drivers/file-system/mod.ts +3 -0
- package/src/drivers/file-system/utils.ts +18 -8
- package/src/engine-process/mod.ts +38 -38
- package/src/inspector/utils.ts +7 -5
- package/src/manager/driver.ts +11 -4
- package/src/manager/gateway.ts +4 -29
- package/src/manager/protocol/mod.ts +0 -2
- package/src/manager/protocol/query.ts +0 -4
- package/src/manager/router.ts +67 -64
- package/src/manager-api/actors.ts +13 -0
- package/src/mod.ts +1 -3
- package/src/registry/mod.ts +20 -20
- package/src/registry/serve.ts +9 -14
- package/src/remote-manager-driver/actor-websocket-client.ts +1 -16
- package/src/remote-manager-driver/api-endpoints.ts +13 -1
- package/src/remote-manager-driver/api-utils.ts +8 -0
- package/src/remote-manager-driver/metadata.ts +58 -0
- package/src/remote-manager-driver/mod.ts +47 -62
- package/src/remote-manager-driver/ws-proxy.ts +1 -1
- package/src/schemas/actor-persist/mod.ts +1 -1
- package/src/schemas/actor-persist/versioned.ts +56 -31
- package/src/schemas/client-protocol/mod.ts +1 -1
- package/src/schemas/client-protocol/versioned.ts +41 -21
- package/src/schemas/client-protocol-zod/mod.ts +103 -0
- package/src/schemas/file-system-driver/mod.ts +1 -1
- package/src/schemas/file-system-driver/versioned.ts +42 -19
- package/src/serde.ts +33 -11
- package/src/test/mod.ts +7 -3
- package/src/utils/node.ts +173 -0
- package/src/utils.ts +0 -4
- package/dist/tsup/chunk-227FEWMB.js.map +0 -1
- package/dist/tsup/chunk-2JYPS5YM.cjs.map +0 -1
- package/dist/tsup/chunk-36JJ4IQB.cjs.map +0 -1
- package/dist/tsup/chunk-7L65NNWP.cjs.map +0 -1
- package/dist/tsup/chunk-BLK27ES3.js.map +0 -1
- package/dist/tsup/chunk-BOMZS2TJ.js.map +0 -1
- package/dist/tsup/chunk-BYMKMOBS.js.map +0 -1
- package/dist/tsup/chunk-FX7TWFQR.js.map +0 -1
- package/dist/tsup/chunk-G64QUEDJ.js.map +0 -1
- package/dist/tsup/chunk-HHFKKVLR.cjs.map +0 -1
- package/dist/tsup/chunk-INNFK746.cjs.map +0 -1
- package/dist/tsup/chunk-KSRXX3Z4.cjs.map +0 -1
- package/dist/tsup/chunk-O44LFKSB.cjs +0 -4623
- package/dist/tsup/chunk-O44LFKSB.cjs.map +0 -1
- package/dist/tsup/chunk-PLUN2NQT.js.map +0 -1
- package/dist/tsup/chunk-S4UJG7ZE.js +0 -1119
- package/dist/tsup/chunk-S4UJG7ZE.js.map +0 -1
- package/dist/tsup/chunk-SHVX2QUR.cjs.map +0 -1
- package/dist/tsup/chunk-VFB23BYZ.cjs +0 -1119
- package/dist/tsup/chunk-VFB23BYZ.cjs.map +0 -1
- package/dist/tsup/chunk-VHGY7PU5.cjs.map +0 -1
- package/dist/tsup/chunk-YBG6R7LX.js.map +0 -1
- package/dist/tsup/chunk-YBHYXIP6.js.map +0 -1
- package/src/actor/action.ts +0 -178
- package/src/actor/conn-drivers.ts +0 -216
- package/src/actor/conn-socket.ts +0 -8
- package/src/actor/conn.ts +0 -272
- package/src/actor/instance.ts +0 -2336
- package/src/actor/persisted.ts +0 -49
- package/src/actor/unstable-react.ts +0 -110
- package/src/driver-test-suite/tests/actor-reconnect.ts +0 -170
- package/src/drivers/engine/kv.ts +0 -3
- package/src/manager/hono-websocket-adapter.ts +0 -393
- /package/dist/tsup/{chunk-CD33GT6Z.js.map → chunk-QIHBDXTO.js.map} +0 -0
package/src/actor/router.ts
CHANGED
|
@@ -1,33 +1,16 @@
|
|
|
1
|
-
import { Hono
|
|
1
|
+
import { Hono } from "hono";
|
|
2
2
|
import invariant from "invariant";
|
|
3
|
-
import { EncodingSchema } from "@/actor/protocol/serde";
|
|
4
3
|
import {
|
|
5
4
|
type ActionOpts,
|
|
6
5
|
type ActionOutput,
|
|
7
|
-
type ConnectSseOpts,
|
|
8
|
-
type ConnectSseOutput,
|
|
9
|
-
type ConnectWebSocketOpts,
|
|
10
|
-
type ConnectWebSocketOutput,
|
|
11
6
|
type ConnsMessageOpts,
|
|
12
7
|
handleAction,
|
|
13
|
-
|
|
14
|
-
handleConnectionMessage,
|
|
15
|
-
handleRawWebSocketHandler,
|
|
16
|
-
handleSseConnect,
|
|
17
|
-
handleWebSocketConnect,
|
|
8
|
+
handleRawRequest,
|
|
18
9
|
} from "@/actor/router-endpoints";
|
|
19
10
|
import {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
HEADER_ENCODING,
|
|
24
|
-
PATH_CONNECT_WEBSOCKET,
|
|
25
|
-
PATH_RAW_WEBSOCKET_PREFIX,
|
|
26
|
-
WS_PROTOCOL_CONN_ID,
|
|
27
|
-
WS_PROTOCOL_CONN_PARAMS,
|
|
28
|
-
WS_PROTOCOL_CONN_TOKEN,
|
|
29
|
-
WS_PROTOCOL_ENCODING,
|
|
30
|
-
WS_PROTOCOL_TOKEN,
|
|
11
|
+
PATH_CONNECT,
|
|
12
|
+
PATH_INSPECTOR_CONNECT,
|
|
13
|
+
PATH_WEBSOCKET_PREFIX,
|
|
31
14
|
} from "@/common/actor-router-consts";
|
|
32
15
|
import {
|
|
33
16
|
handleRouteError,
|
|
@@ -41,21 +24,15 @@ import {
|
|
|
41
24
|
} from "@/inspector/actor";
|
|
42
25
|
import { isInspectorEnabled, secureInspector } from "@/inspector/utils";
|
|
43
26
|
import type { RunnerConfig } from "@/registry/run-config";
|
|
44
|
-
import {
|
|
45
|
-
import { ConnDriverKind } from "./conn-drivers";
|
|
27
|
+
import { CONN_DRIVER_SYMBOL } from "./conn/mod";
|
|
46
28
|
import type { ActorDriver } from "./driver";
|
|
47
|
-
import { InternalError } from "./errors";
|
|
48
29
|
import { loggerWithoutContext } from "./log";
|
|
30
|
+
import {
|
|
31
|
+
parseWebSocketProtocols,
|
|
32
|
+
routeWebSocket,
|
|
33
|
+
} from "./router-websocket-endpoints";
|
|
49
34
|
|
|
50
|
-
export type {
|
|
51
|
-
ConnectWebSocketOpts,
|
|
52
|
-
ConnectWebSocketOutput,
|
|
53
|
-
ConnectSseOpts,
|
|
54
|
-
ConnectSseOutput,
|
|
55
|
-
ActionOpts,
|
|
56
|
-
ActionOutput,
|
|
57
|
-
ConnsMessageOpts,
|
|
58
|
-
};
|
|
35
|
+
export type { ActionOpts, ActionOutput, ConnsMessageOpts };
|
|
59
36
|
|
|
60
37
|
interface ActorRouterBindings {
|
|
61
38
|
actorId: string;
|
|
@@ -80,11 +57,11 @@ export function createActorRouter(
|
|
|
80
57
|
// Track all HTTP requests to prevent actor from sleeping during active requests
|
|
81
58
|
router.use("*", async (c, next) => {
|
|
82
59
|
const actor = await actorDriver.loadActor(c.env.actorId);
|
|
83
|
-
actor.
|
|
60
|
+
actor.beginHonoHttpRequest();
|
|
84
61
|
try {
|
|
85
62
|
await next();
|
|
86
63
|
} finally {
|
|
87
|
-
actor.
|
|
64
|
+
actor.endHonoHttpRequest();
|
|
88
65
|
}
|
|
89
66
|
});
|
|
90
67
|
|
|
@@ -108,101 +85,60 @@ export function createActorRouter(
|
|
|
108
85
|
}
|
|
109
86
|
|
|
110
87
|
const actor = await actorDriver.loadActor(c.env.actorId);
|
|
111
|
-
const conn = actor.
|
|
88
|
+
const conn = actor.connectionManager.getConnForId(connId);
|
|
112
89
|
|
|
113
90
|
if (!conn) {
|
|
114
91
|
return c.text(`Connection not found: ${connId}`, 404);
|
|
115
92
|
}
|
|
116
93
|
|
|
117
|
-
// Force close the
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
const ws = driverState[ConnDriverKind.WEBSOCKET].websocket;
|
|
121
|
-
|
|
122
|
-
// Force close without sending close frame
|
|
123
|
-
(ws.raw as any).terminate();
|
|
124
|
-
} else if (driverState && ConnDriverKind.SSE in driverState) {
|
|
125
|
-
const stream = driverState[ConnDriverKind.SSE].stream;
|
|
126
|
-
|
|
127
|
-
// Force close the SSE stream
|
|
128
|
-
stream.abort();
|
|
94
|
+
// Force close the connection without clean shutdown
|
|
95
|
+
if (conn[CONN_DRIVER_SYMBOL]?.terminate) {
|
|
96
|
+
conn[CONN_DRIVER_SYMBOL].terminate(actor, conn);
|
|
129
97
|
}
|
|
130
98
|
|
|
131
99
|
return c.json({ success: true });
|
|
132
100
|
});
|
|
133
101
|
}
|
|
134
102
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
const
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
connTokenRaw = protocol.substring(
|
|
171
|
-
WS_PROTOCOL_CONN_TOKEN.length,
|
|
172
|
-
);
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
const encoding = EncodingSchema.parse(encodingRaw);
|
|
178
|
-
const connParams = connParamsRaw
|
|
179
|
-
? JSON.parse(connParamsRaw)
|
|
180
|
-
: undefined;
|
|
181
|
-
|
|
182
|
-
return await handleWebSocketConnect(
|
|
183
|
-
c.req.raw,
|
|
184
|
-
runConfig,
|
|
185
|
-
actorDriver,
|
|
186
|
-
c.env.actorId,
|
|
187
|
-
encoding,
|
|
188
|
-
connParams,
|
|
189
|
-
generateConnRequestId(),
|
|
190
|
-
undefined,
|
|
191
|
-
connIdRaw,
|
|
192
|
-
connTokenRaw,
|
|
103
|
+
// Route all WebSocket paths using the same handler
|
|
104
|
+
//
|
|
105
|
+
// All WebSockets use a separate underlying router in routeWebSocket since
|
|
106
|
+
// WebSockets also need to be routed from ManagerDriver.proxyWebSocket and
|
|
107
|
+
// ManagerDriver.openWebSocket.
|
|
108
|
+
router.on(
|
|
109
|
+
"GET",
|
|
110
|
+
[PATH_CONNECT, `${PATH_WEBSOCKET_PREFIX}*`, PATH_INSPECTOR_CONNECT],
|
|
111
|
+
async (c) => {
|
|
112
|
+
const upgradeWebSocket = runConfig.getUpgradeWebSocket?.();
|
|
113
|
+
if (upgradeWebSocket) {
|
|
114
|
+
return upgradeWebSocket(async (c) => {
|
|
115
|
+
const protocols = c.req.header("sec-websocket-protocol");
|
|
116
|
+
const { encoding, connParams } =
|
|
117
|
+
parseWebSocketProtocols(protocols);
|
|
118
|
+
|
|
119
|
+
return await routeWebSocket(
|
|
120
|
+
c.req.raw,
|
|
121
|
+
c.req.path,
|
|
122
|
+
c.req.header(),
|
|
123
|
+
runConfig,
|
|
124
|
+
actorDriver,
|
|
125
|
+
c.env.actorId,
|
|
126
|
+
encoding,
|
|
127
|
+
connParams,
|
|
128
|
+
undefined,
|
|
129
|
+
undefined,
|
|
130
|
+
false,
|
|
131
|
+
false,
|
|
132
|
+
);
|
|
133
|
+
})(c, noopNext());
|
|
134
|
+
} else {
|
|
135
|
+
return c.text(
|
|
136
|
+
"WebSockets are not enabled for this driver.",
|
|
137
|
+
400,
|
|
193
138
|
);
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
"WebSockets are not enabled for this driver. Use SSE instead.",
|
|
198
|
-
400,
|
|
199
|
-
);
|
|
200
|
-
}
|
|
201
|
-
});
|
|
202
|
-
|
|
203
|
-
router.get("/connect/sse", async (c) => {
|
|
204
|
-
return handleSseConnect(c, runConfig, actorDriver, c.env.actorId);
|
|
205
|
-
});
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
);
|
|
206
142
|
|
|
207
143
|
router.post("/action/:action", async (c) => {
|
|
208
144
|
const actionName = c.req.param("action");
|
|
@@ -216,46 +152,11 @@ export function createActorRouter(
|
|
|
216
152
|
);
|
|
217
153
|
});
|
|
218
154
|
|
|
219
|
-
router.
|
|
220
|
-
const connId = c.req.header(HEADER_CONN_ID);
|
|
221
|
-
const connToken = c.req.header(HEADER_CONN_TOKEN);
|
|
222
|
-
if (!connId || !connToken) {
|
|
223
|
-
throw new Error("Missing required parameters");
|
|
224
|
-
}
|
|
225
|
-
return handleConnectionMessage(
|
|
226
|
-
c,
|
|
227
|
-
runConfig,
|
|
228
|
-
actorDriver,
|
|
229
|
-
connId,
|
|
230
|
-
connToken,
|
|
231
|
-
c.env.actorId,
|
|
232
|
-
);
|
|
233
|
-
});
|
|
234
|
-
|
|
235
|
-
router.post("/connections/close", async (c) => {
|
|
236
|
-
const connId = c.req.header(HEADER_CONN_ID);
|
|
237
|
-
const connToken = c.req.header(HEADER_CONN_TOKEN);
|
|
238
|
-
if (!connId || !connToken) {
|
|
239
|
-
throw new Error("Missing required parameters");
|
|
240
|
-
}
|
|
241
|
-
return handleConnectionClose(
|
|
242
|
-
c,
|
|
243
|
-
runConfig,
|
|
244
|
-
actorDriver,
|
|
245
|
-
connId,
|
|
246
|
-
connToken,
|
|
247
|
-
c.env.actorId,
|
|
248
|
-
);
|
|
249
|
-
});
|
|
250
|
-
|
|
251
|
-
// Raw HTTP endpoints - /http/*
|
|
252
|
-
router.all("/raw/http/*", async (c) => {
|
|
253
|
-
const actor = await actorDriver.loadActor(c.env.actorId);
|
|
254
|
-
|
|
155
|
+
router.all("/request/*", async (c) => {
|
|
255
156
|
// TODO: This is not a clean way of doing this since `/http/` might exist mid-path
|
|
256
157
|
// Strip the /http prefix from the URL to get the original path
|
|
257
158
|
const url = new URL(c.req.url);
|
|
258
|
-
const originalPath = url.pathname.replace(/^\/
|
|
159
|
+
const originalPath = url.pathname.replace(/^\/request/, "") || "/";
|
|
259
160
|
|
|
260
161
|
// Create a new request with the corrected URL
|
|
261
162
|
const correctedUrl = new URL(originalPath + url.search, url.origin);
|
|
@@ -272,47 +173,12 @@ export function createActorRouter(
|
|
|
272
173
|
to: correctedRequest.url,
|
|
273
174
|
});
|
|
274
175
|
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
return response;
|
|
284
|
-
});
|
|
285
|
-
|
|
286
|
-
// Raw WebSocket endpoint - /websocket/*
|
|
287
|
-
router.get(`${PATH_RAW_WEBSOCKET_PREFIX}*`, async (c) => {
|
|
288
|
-
const upgradeWebSocket = runConfig.getUpgradeWebSocket?.();
|
|
289
|
-
if (upgradeWebSocket) {
|
|
290
|
-
return upgradeWebSocket(async (c) => {
|
|
291
|
-
const url = new URL(c.req.url);
|
|
292
|
-
const pathWithQuery = c.req.path + url.search;
|
|
293
|
-
|
|
294
|
-
loggerWithoutContext().debug({
|
|
295
|
-
msg: "actor router raw websocket",
|
|
296
|
-
path: c.req.path,
|
|
297
|
-
url: c.req.url,
|
|
298
|
-
search: url.search,
|
|
299
|
-
pathWithQuery,
|
|
300
|
-
});
|
|
301
|
-
|
|
302
|
-
return await handleRawWebSocketHandler(
|
|
303
|
-
c.req.raw,
|
|
304
|
-
pathWithQuery,
|
|
305
|
-
actorDriver,
|
|
306
|
-
c.env.actorId,
|
|
307
|
-
undefined,
|
|
308
|
-
);
|
|
309
|
-
})(c, noopNext());
|
|
310
|
-
} else {
|
|
311
|
-
return c.text(
|
|
312
|
-
"WebSockets are not enabled for this driver. Use SSE instead.",
|
|
313
|
-
400,
|
|
314
|
-
);
|
|
315
|
-
}
|
|
176
|
+
return await handleRawRequest(
|
|
177
|
+
c,
|
|
178
|
+
correctedRequest,
|
|
179
|
+
actorDriver,
|
|
180
|
+
c.env.actorId,
|
|
181
|
+
);
|
|
316
182
|
});
|
|
317
183
|
|
|
318
184
|
if (isInspectorEnabled(runConfig, "actor")) {
|
package/src/actor/schedule.ts
CHANGED