rivetkit 2.0.4 → 2.0.5
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/actor/errors.cjs +2 -2
- package/dist/tsup/actor/errors.js +1 -1
- package/dist/tsup/{chunk-HLLF4B4Q.js → chunk-2MD57QF4.js} +7 -5
- package/dist/tsup/chunk-2MD57QF4.js.map +1 -0
- package/dist/tsup/{chunk-SBHHJ6QS.cjs → chunk-5QGQK44L.cjs} +2 -2
- package/dist/tsup/{chunk-SBHHJ6QS.cjs.map → chunk-5QGQK44L.cjs.map} +1 -1
- package/dist/tsup/{chunk-4CXBCT26.cjs → chunk-5YTI25C3.cjs} +7 -7
- package/dist/tsup/{chunk-4CXBCT26.cjs.map → chunk-5YTI25C3.cjs.map} +1 -1
- package/dist/tsup/{chunk-TQ62L3X7.js → chunk-B2QGJGZQ.js} +18 -5
- package/dist/tsup/chunk-B2QGJGZQ.js.map +1 -0
- package/dist/tsup/{chunk-PQY7KKTL.js → chunk-CFFKMUYH.js} +32 -7
- package/dist/tsup/{chunk-PQY7KKTL.js.map → chunk-CFFKMUYH.js.map} +1 -1
- package/dist/tsup/{chunk-H26RP6GD.js → chunk-CKA54YQN.js} +2 -2
- package/dist/tsup/chunk-D7NWUCRK.cjs +20 -0
- package/dist/tsup/{chunk-4R73YDN3.cjs.map → chunk-D7NWUCRK.cjs.map} +1 -1
- package/dist/tsup/{chunk-IH6CKNDW.cjs → chunk-FGFT4FVX.cjs} +9 -9
- package/dist/tsup/{chunk-IH6CKNDW.cjs.map → chunk-FGFT4FVX.cjs.map} +1 -1
- package/dist/tsup/{chunk-HI3HWJRC.js → chunk-I5VTWPHW.js} +4 -4
- package/dist/tsup/{chunk-HI3HWJRC.js.map → chunk-I5VTWPHW.js.map} +1 -1
- package/dist/tsup/{chunk-GICQ3YCU.cjs → chunk-IRMBWX36.cjs} +39 -37
- package/dist/tsup/chunk-IRMBWX36.cjs.map +1 -0
- package/dist/tsup/{chunk-XJQHKJ4P.js → chunk-L7QRXNWP.js} +331 -62
- package/dist/tsup/chunk-L7QRXNWP.js.map +1 -0
- package/dist/tsup/{chunk-LWNKVZG5.cjs → chunk-LZIBTLEY.cjs} +12 -12
- package/dist/tsup/{chunk-LWNKVZG5.cjs.map → chunk-LZIBTLEY.cjs.map} +1 -1
- package/dist/tsup/{chunk-VO7ZRVVD.cjs → chunk-MRZS2J4X.cjs} +581 -312
- package/dist/tsup/chunk-MRZS2J4X.cjs.map +1 -0
- package/dist/tsup/{chunk-QK72M5JB.js → chunk-PG3K2LI7.js} +2 -2
- package/dist/tsup/{chunk-QNNXFOQV.cjs → chunk-PHSQJ6QI.cjs} +3 -3
- package/dist/tsup/{chunk-QNNXFOQV.cjs.map → chunk-PHSQJ6QI.cjs.map} +1 -1
- package/dist/tsup/{chunk-WHBPJNGW.cjs → chunk-RM2SVURR.cjs} +29 -16
- package/dist/tsup/chunk-RM2SVURR.cjs.map +1 -0
- package/dist/tsup/{chunk-6LJT3QRL.cjs → chunk-WADSS5X4.cjs} +37 -12
- package/dist/tsup/chunk-WADSS5X4.cjs.map +1 -0
- package/dist/tsup/{chunk-LV2S3OU3.js → chunk-WNGOBAA7.js} +2 -2
- package/dist/tsup/{chunk-NFU2BBT5.js → chunk-YPZFLUO6.js} +2 -2
- package/dist/tsup/chunk-YPZFLUO6.js.map +1 -0
- package/dist/tsup/{chunk-3F2YSRJL.js → chunk-YW6Y6VNE.js} +4 -4
- package/dist/tsup/client/mod.cjs +10 -10
- package/dist/tsup/client/mod.d.cts +2 -2
- package/dist/tsup/client/mod.d.ts +2 -2
- package/dist/tsup/client/mod.js +9 -9
- package/dist/tsup/common/log.cjs +4 -4
- package/dist/tsup/common/log.js +3 -3
- package/dist/tsup/common/websocket.cjs +5 -5
- package/dist/tsup/common/websocket.js +4 -4
- package/dist/tsup/{connection-BI-6UIBJ.d.ts → connection-BvE-Oq7t.d.ts} +22 -11
- package/dist/tsup/{connection-Dyd4NLGW.d.cts → connection-DTzmWwU5.d.cts} +22 -11
- package/dist/tsup/driver-helpers/mod.cjs +6 -6
- package/dist/tsup/driver-helpers/mod.d.cts +2 -2
- package/dist/tsup/driver-helpers/mod.d.ts +2 -2
- package/dist/tsup/driver-helpers/mod.js +5 -5
- package/dist/tsup/driver-test-suite/mod.cjs +606 -140
- package/dist/tsup/driver-test-suite/mod.cjs.map +1 -1
- package/dist/tsup/driver-test-suite/mod.d.cts +2 -2
- package/dist/tsup/driver-test-suite/mod.d.ts +2 -2
- package/dist/tsup/driver-test-suite/mod.js +563 -97
- package/dist/tsup/driver-test-suite/mod.js.map +1 -1
- package/dist/tsup/inspector/mod.cjs +6 -6
- package/dist/tsup/inspector/mod.js +5 -5
- package/dist/tsup/mod.cjs +9 -9
- package/dist/tsup/mod.d.cts +3 -3
- package/dist/tsup/mod.d.ts +3 -3
- package/dist/tsup/mod.js +8 -8
- package/dist/tsup/{router-endpoints-BTe_Rsdn.d.cts → router-endpoints-CctffZNL.d.cts} +1 -1
- package/dist/tsup/{router-endpoints-CBSrKHmo.d.ts → router-endpoints-DFm1BglJ.d.ts} +1 -1
- package/dist/tsup/test/mod.cjs +10 -10
- package/dist/tsup/test/mod.d.cts +1 -1
- package/dist/tsup/test/mod.d.ts +1 -1
- package/dist/tsup/test/mod.js +9 -9
- package/dist/tsup/utils.cjs +5 -3
- package/dist/tsup/utils.cjs.map +1 -1
- package/dist/tsup/utils.d.cts +18 -1
- package/dist/tsup/utils.d.ts +18 -1
- package/dist/tsup/utils.js +4 -2
- package/package.json +4 -4
- package/src/actor/errors.ts +1 -1
- package/src/actor/router-endpoints.ts +6 -1
- package/src/actor/router.ts +2 -1
- package/src/client/mod.ts +1 -1
- package/src/client/raw-utils.ts +1 -1
- package/src/driver-test-suite/mod.ts +1 -1
- package/src/driver-test-suite/test-inline-client-driver.ts +588 -0
- package/src/driver-test-suite/tests/actor-error-handling.ts +4 -12
- package/src/driver-test-suite/tests/actor-inspector.ts +2 -1
- package/src/driver-test-suite/utils.ts +10 -9
- package/src/drivers/file-system/global-state.ts +3 -1
- package/src/drivers/file-system/manager.ts +16 -21
- package/src/manager/router.ts +373 -5
- package/src/registry/mod.ts +29 -33
- package/src/registry/run-config.ts +16 -1
- package/src/remote-manager-driver/actor-http-client.ts +3 -1
- package/src/remote-manager-driver/actor-websocket-client.ts +2 -1
- package/src/remote-manager-driver/api-utils.ts +4 -1
- package/src/remote-manager-driver/mod.ts +2 -1
- package/src/utils.ts +53 -0
- package/dist/tsup/chunk-4R73YDN3.cjs +0 -20
- package/dist/tsup/chunk-6LJT3QRL.cjs.map +0 -1
- package/dist/tsup/chunk-GICQ3YCU.cjs.map +0 -1
- package/dist/tsup/chunk-HLLF4B4Q.js.map +0 -1
- package/dist/tsup/chunk-NFU2BBT5.js.map +0 -1
- package/dist/tsup/chunk-TQ62L3X7.js.map +0 -1
- package/dist/tsup/chunk-VO7ZRVVD.cjs.map +0 -1
- package/dist/tsup/chunk-WHBPJNGW.cjs.map +0 -1
- package/dist/tsup/chunk-XJQHKJ4P.js.map +0 -1
- /package/dist/tsup/{chunk-H26RP6GD.js.map → chunk-CKA54YQN.js.map} +0 -0
- /package/dist/tsup/{chunk-QK72M5JB.js.map → chunk-PG3K2LI7.js.map} +0 -0
- /package/dist/tsup/{chunk-LV2S3OU3.js.map → chunk-WNGOBAA7.js.map} +0 -0
- /package/dist/tsup/{chunk-3F2YSRJL.js.map → chunk-YW6Y6VNE.js.map} +0 -0
|
@@ -4,16 +4,16 @@ import {
|
|
|
4
4
|
ForeignKeysSchema,
|
|
5
5
|
PatchSchema,
|
|
6
6
|
TablesSchema
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-CKA54YQN.js";
|
|
8
8
|
import {
|
|
9
9
|
importWebSocket,
|
|
10
10
|
logger as logger2
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-PG3K2LI7.js";
|
|
12
12
|
import {
|
|
13
13
|
PERSISTED_ACTOR_VERSIONED,
|
|
14
14
|
RunConfigSchema,
|
|
15
15
|
serializeEmptyPersistData
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-B2QGJGZQ.js";
|
|
17
17
|
import {
|
|
18
18
|
CONNECTION_CHECK_LIVENESS_SYMBOL,
|
|
19
19
|
CONNECTION_DRIVER_HTTP,
|
|
@@ -23,6 +23,7 @@ import {
|
|
|
23
23
|
Conn,
|
|
24
24
|
DeadlineError,
|
|
25
25
|
EncodingSchema,
|
|
26
|
+
HEADER_ACTOR_ID,
|
|
26
27
|
HEADER_AUTH_DATA,
|
|
27
28
|
HEADER_CONN_ID,
|
|
28
29
|
HEADER_CONN_PARAMS,
|
|
@@ -54,18 +55,19 @@ import {
|
|
|
54
55
|
loggerWithoutContext,
|
|
55
56
|
processMessage,
|
|
56
57
|
serializeWithEncoding
|
|
57
|
-
} from "./chunk-
|
|
58
|
+
} from "./chunk-2MD57QF4.js";
|
|
58
59
|
import {
|
|
59
60
|
configureBaseLogger,
|
|
60
61
|
configureDefaultLogger,
|
|
61
62
|
getBaseLogger,
|
|
62
63
|
getIncludeTarget,
|
|
63
64
|
getLogger
|
|
64
|
-
} from "./chunk-
|
|
65
|
+
} from "./chunk-WNGOBAA7.js";
|
|
65
66
|
import {
|
|
66
67
|
SinglePromiseQueue,
|
|
67
68
|
assertUnreachable,
|
|
68
69
|
bufferToArrayBuffer,
|
|
70
|
+
combineUrlPath,
|
|
69
71
|
deconstructError,
|
|
70
72
|
getEnvUniversal,
|
|
71
73
|
httpUserAgent,
|
|
@@ -74,7 +76,7 @@ import {
|
|
|
74
76
|
package_default,
|
|
75
77
|
setLongTimeout,
|
|
76
78
|
stringifyError
|
|
77
|
-
} from "./chunk-
|
|
79
|
+
} from "./chunk-CFFKMUYH.js";
|
|
78
80
|
import {
|
|
79
81
|
ActionNotFound,
|
|
80
82
|
ActionTimedOut,
|
|
@@ -92,7 +94,7 @@ import {
|
|
|
92
94
|
UserError,
|
|
93
95
|
VarsNotEnabled,
|
|
94
96
|
WebSocketsNotEnabled
|
|
95
|
-
} from "./chunk-
|
|
97
|
+
} from "./chunk-YPZFLUO6.js";
|
|
96
98
|
|
|
97
99
|
// src/actor/config.ts
|
|
98
100
|
import { z } from "zod";
|
|
@@ -2258,7 +2260,8 @@ function createActorRouter(runConfig, actorDriver) {
|
|
|
2258
2260
|
const correctedRequest = new Request(correctedUrl, {
|
|
2259
2261
|
method: c.req.method,
|
|
2260
2262
|
headers: c.req.raw.headers,
|
|
2261
|
-
body: c.req.raw.body
|
|
2263
|
+
body: c.req.raw.body,
|
|
2264
|
+
duplex: "half"
|
|
2262
2265
|
});
|
|
2263
2266
|
loggerWithoutContext().debug({
|
|
2264
2267
|
msg: "rewriting http url",
|
|
@@ -3184,7 +3187,7 @@ async function rawHttpFetch(driver, actorQuery, params, input, init) {
|
|
|
3184
3187
|
proxyRequestHeaders.set(HEADER_CONN_PARAMS, JSON.stringify(params));
|
|
3185
3188
|
}
|
|
3186
3189
|
const proxyRequest = new Request(url, {
|
|
3187
|
-
...
|
|
3190
|
+
...mergedInit,
|
|
3188
3191
|
headers: proxyRequestHeaders
|
|
3189
3192
|
});
|
|
3190
3193
|
return driver.sendRequest(actorId, proxyRequest);
|
|
@@ -4020,7 +4023,9 @@ function getEndpoint(config2) {
|
|
|
4020
4023
|
}
|
|
4021
4024
|
async function apiCall(config2, method, path3, body) {
|
|
4022
4025
|
const endpoint = getEndpoint(config2);
|
|
4023
|
-
const url =
|
|
4026
|
+
const url = combineUrlPath(endpoint, path3, {
|
|
4027
|
+
namespace: config2.namespace
|
|
4028
|
+
});
|
|
4024
4029
|
logger5().debug({ msg: "making api call", method, url });
|
|
4025
4030
|
return await sendHttpRequest({
|
|
4026
4031
|
method,
|
|
@@ -4038,7 +4043,7 @@ async function apiCall(config2, method, path3, body) {
|
|
|
4038
4043
|
async function sendHttpRequestToActor(runConfig, actorId, actorRequest) {
|
|
4039
4044
|
const url = new URL(actorRequest.url);
|
|
4040
4045
|
const endpoint = getEndpoint(runConfig);
|
|
4041
|
-
const guardUrl =
|
|
4046
|
+
const guardUrl = combineUrlPath(endpoint, url.pathname + url.search);
|
|
4042
4047
|
let bodyToSend = null;
|
|
4043
4048
|
const guardHeaders = buildGuardHeadersForHttp(actorRequest, actorId);
|
|
4044
4049
|
if (actorRequest.body && actorRequest.method !== "GET" && actorRequest.method !== "HEAD") {
|
|
@@ -4056,7 +4061,8 @@ async function sendHttpRequestToActor(runConfig, actorId, actorRequest) {
|
|
|
4056
4061
|
const guardRequest = new Request(guardUrl, {
|
|
4057
4062
|
method: actorRequest.method,
|
|
4058
4063
|
headers: guardHeaders,
|
|
4059
|
-
body: bodyToSend
|
|
4064
|
+
body: bodyToSend,
|
|
4065
|
+
signal: actorRequest.signal
|
|
4060
4066
|
});
|
|
4061
4067
|
return mutableResponse(await fetch(guardRequest));
|
|
4062
4068
|
}
|
|
@@ -4078,7 +4084,7 @@ function buildGuardHeadersForHttp(actorRequest, actorId) {
|
|
|
4078
4084
|
async function openWebSocketToActor(runConfig, path3, actorId, encoding, params) {
|
|
4079
4085
|
const WebSocket2 = await importWebSocket();
|
|
4080
4086
|
const endpoint = getEndpoint(runConfig);
|
|
4081
|
-
const guardUrl =
|
|
4087
|
+
const guardUrl = combineUrlPath(endpoint, path3);
|
|
4082
4088
|
logger5().debug({
|
|
4083
4089
|
msg: "opening websocket to actor via guard",
|
|
4084
4090
|
actorId,
|
|
@@ -4420,7 +4426,7 @@ var RemoteManagerDriver = class {
|
|
|
4420
4426
|
const upgradeWebSocket = (_b = (_a = this.#config).getUpgradeWebSocket) == null ? void 0 : _b.call(_a);
|
|
4421
4427
|
invariant7(upgradeWebSocket, "missing getUpgradeWebSocket");
|
|
4422
4428
|
const endpoint = getEndpoint(this.#config);
|
|
4423
|
-
const guardUrl =
|
|
4429
|
+
const guardUrl = combineUrlPath(endpoint, path3);
|
|
4424
4430
|
const wsGuardUrl = guardUrl.replace("http://", "ws://");
|
|
4425
4431
|
logger5().debug({
|
|
4426
4432
|
msg: "forwarding websocket to actor via guard",
|
|
@@ -5255,7 +5261,9 @@ var FileSystemGlobalState = class {
|
|
|
5255
5261
|
var _a;
|
|
5256
5262
|
const entry = await this.loadActor(actorId);
|
|
5257
5263
|
if (!entry.state) {
|
|
5258
|
-
throw new Error(
|
|
5264
|
+
throw new Error(
|
|
5265
|
+
`Actor does not exist and cannot be started: "${actorId}"`
|
|
5266
|
+
);
|
|
5259
5267
|
}
|
|
5260
5268
|
if (entry.startPromise) {
|
|
5261
5269
|
await entry.startPromise.promise;
|
|
@@ -5588,7 +5596,9 @@ var FileSystemManagerDriver = class {
|
|
|
5588
5596
|
});
|
|
5589
5597
|
}
|
|
5590
5598
|
async openWebSocket(path3, actorId, encoding, params) {
|
|
5591
|
-
|
|
5599
|
+
const pathOnly = path3.split("?")[0];
|
|
5600
|
+
const normalizedPath = pathOnly.startsWith("/") ? pathOnly : `/${pathOnly}`;
|
|
5601
|
+
if (normalizedPath === PATH_CONNECT_WEBSOCKET) {
|
|
5592
5602
|
const wsHandler = await handleWebSocketConnect(
|
|
5593
5603
|
void 0,
|
|
5594
5604
|
this.#runConfig,
|
|
@@ -5599,11 +5609,10 @@ var FileSystemManagerDriver = class {
|
|
|
5599
5609
|
void 0
|
|
5600
5610
|
);
|
|
5601
5611
|
return new InlineWebSocketAdapter2(wsHandler);
|
|
5602
|
-
} else if (
|
|
5603
|
-
const normalizedPath = path3 === "/raw/websocket" ? "/raw/websocket/" : path3;
|
|
5612
|
+
} else if (normalizedPath.startsWith(PATH_RAW_WEBSOCKET_PREFIX) || normalizedPath === "/raw/websocket") {
|
|
5604
5613
|
const wsHandler = await handleRawWebSocketHandler(
|
|
5605
5614
|
void 0,
|
|
5606
|
-
|
|
5615
|
+
path3,
|
|
5607
5616
|
this.#actorDriver,
|
|
5608
5617
|
actorId,
|
|
5609
5618
|
void 0
|
|
@@ -5618,11 +5627,13 @@ var FileSystemManagerDriver = class {
|
|
|
5618
5627
|
actorId
|
|
5619
5628
|
});
|
|
5620
5629
|
}
|
|
5621
|
-
async proxyWebSocket(c, path3, actorId, encoding, connParams
|
|
5630
|
+
async proxyWebSocket(c, path3, actorId, encoding, connParams) {
|
|
5622
5631
|
var _a, _b;
|
|
5623
5632
|
const upgradeWebSocket = (_b = (_a = this.#runConfig).getUpgradeWebSocket) == null ? void 0 : _b.call(_a);
|
|
5624
5633
|
invariant10(upgradeWebSocket, "missing getUpgradeWebSocket");
|
|
5625
|
-
|
|
5634
|
+
const pathOnly = path3.split("?")[0];
|
|
5635
|
+
const normalizedPath = pathOnly.startsWith("/") ? pathOnly : `/${pathOnly}`;
|
|
5636
|
+
if (normalizedPath === PATH_CONNECT_WEBSOCKET) {
|
|
5626
5637
|
const wsHandler = await handleWebSocketConnect(
|
|
5627
5638
|
c.req.raw,
|
|
5628
5639
|
this.#runConfig,
|
|
@@ -5630,17 +5641,16 @@ var FileSystemManagerDriver = class {
|
|
|
5630
5641
|
actorId,
|
|
5631
5642
|
encoding,
|
|
5632
5643
|
connParams,
|
|
5633
|
-
|
|
5644
|
+
void 0
|
|
5634
5645
|
);
|
|
5635
5646
|
return upgradeWebSocket(() => wsHandler)(c, noopNext());
|
|
5636
|
-
} else if (
|
|
5637
|
-
const normalizedPath = path3 === "/raw/websocket" ? "/raw/websocket/" : path3;
|
|
5647
|
+
} else if (normalizedPath.startsWith(PATH_RAW_WEBSOCKET_PREFIX) || normalizedPath === "/raw/websocket") {
|
|
5638
5648
|
const wsHandler = await handleRawWebSocketHandler(
|
|
5639
5649
|
c.req.raw,
|
|
5640
|
-
|
|
5650
|
+
path3,
|
|
5641
5651
|
this.#actorDriver,
|
|
5642
5652
|
actorId,
|
|
5643
|
-
|
|
5653
|
+
void 0
|
|
5644
5654
|
);
|
|
5645
5655
|
return upgradeWebSocket(() => wsHandler)(c, noopNext());
|
|
5646
5656
|
} else {
|
|
@@ -5779,6 +5789,7 @@ import * as cbor8 from "cbor-x";
|
|
|
5779
5789
|
import { Hono as Hono4 } from "hono";
|
|
5780
5790
|
import { cors as corsMiddleware } from "hono/cors";
|
|
5781
5791
|
import { createMiddleware as createMiddleware2 } from "hono/factory";
|
|
5792
|
+
import invariant11 from "invariant";
|
|
5782
5793
|
import { z as z9 } from "zod";
|
|
5783
5794
|
|
|
5784
5795
|
// src/manager-api/routes/actors-create.ts
|
|
@@ -5862,7 +5873,7 @@ function buildOpenApiResponses(schema, validateBody) {
|
|
|
5862
5873
|
};
|
|
5863
5874
|
}
|
|
5864
5875
|
function createManagerRouter(registryConfig, runConfig, managerDriver, validateBody) {
|
|
5865
|
-
var _a;
|
|
5876
|
+
var _a, _b;
|
|
5866
5877
|
const router = new OpenAPIHono({ strict: false }).basePath(
|
|
5867
5878
|
runConfig.basePath
|
|
5868
5879
|
);
|
|
@@ -5907,9 +5918,10 @@ function createManagerRouter(registryConfig, runConfig, managerDriver, validateB
|
|
|
5907
5918
|
const url = new URL(c.req.url);
|
|
5908
5919
|
const proxyUrl = new URL(`http://actor${url.pathname}${url.search}`);
|
|
5909
5920
|
const proxyRequest = new Request(proxyUrl, {
|
|
5910
|
-
method: c.req.method,
|
|
5921
|
+
method: c.req.raw.method,
|
|
5911
5922
|
headers: proxyHeaders,
|
|
5912
|
-
body: c.req.raw.body
|
|
5923
|
+
body: c.req.raw.body,
|
|
5924
|
+
signal: c.req.raw.signal
|
|
5913
5925
|
});
|
|
5914
5926
|
return await managerDriver.proxyRequest(c, proxyRequest, actorId);
|
|
5915
5927
|
}
|
|
@@ -6027,10 +6039,10 @@ function createManagerRouter(registryConfig, runConfig, managerDriver, validateB
|
|
|
6027
6039
|
actor_id: actorOutput.actorId,
|
|
6028
6040
|
name: actorOutput.name,
|
|
6029
6041
|
key: actorOutput.key,
|
|
6030
|
-
namespace_id: "",
|
|
6031
|
-
//
|
|
6032
|
-
runner_name_selector: "",
|
|
6033
|
-
//
|
|
6042
|
+
namespace_id: "default",
|
|
6043
|
+
// Assert default namespace
|
|
6044
|
+
runner_name_selector: "rivetkit",
|
|
6045
|
+
// Assert rivetkit runner
|
|
6034
6046
|
create_ts: Date.now(),
|
|
6035
6047
|
// Not available from driver
|
|
6036
6048
|
connectable_ts: null,
|
|
@@ -6078,9 +6090,10 @@ function createManagerRouter(registryConfig, runConfig, managerDriver, validateB
|
|
|
6078
6090
|
actor_id: actorOutput.actorId,
|
|
6079
6091
|
name: actorOutput.name,
|
|
6080
6092
|
key: actorOutput.key,
|
|
6081
|
-
namespace_id: "",
|
|
6082
|
-
//
|
|
6083
|
-
runner_name_selector:
|
|
6093
|
+
namespace_id: "default",
|
|
6094
|
+
// Assert default namespace
|
|
6095
|
+
runner_name_selector: "rivetkit",
|
|
6096
|
+
// Assert rivetkit runner
|
|
6084
6097
|
create_ts: Date.now(),
|
|
6085
6098
|
connectable_ts: null,
|
|
6086
6099
|
destroy_ts: null,
|
|
@@ -6090,7 +6103,104 @@ function createManagerRouter(registryConfig, runConfig, managerDriver, validateB
|
|
|
6090
6103
|
return c.json({ actor: actor2 });
|
|
6091
6104
|
});
|
|
6092
6105
|
}
|
|
6093
|
-
if (
|
|
6106
|
+
if (registryConfig.test.enabled) {
|
|
6107
|
+
router.post(".test/inline-driver/call", async (c) => {
|
|
6108
|
+
const buffer = await c.req.arrayBuffer();
|
|
6109
|
+
const { encoding, transport, method, args } = cbor8.decode(new Uint8Array(buffer));
|
|
6110
|
+
logger().debug({
|
|
6111
|
+
msg: "received inline request",
|
|
6112
|
+
encoding,
|
|
6113
|
+
transport,
|
|
6114
|
+
method,
|
|
6115
|
+
args
|
|
6116
|
+
});
|
|
6117
|
+
let response;
|
|
6118
|
+
try {
|
|
6119
|
+
const output = await managerDriver[method](...args);
|
|
6120
|
+
response = { ok: output };
|
|
6121
|
+
} catch (rawErr) {
|
|
6122
|
+
const err = deconstructError(rawErr, logger(), {}, true);
|
|
6123
|
+
response = { err };
|
|
6124
|
+
}
|
|
6125
|
+
return c.body(cbor8.encode(response));
|
|
6126
|
+
});
|
|
6127
|
+
router.get(".test/inline-driver/connect-websocket/*", async (c) => {
|
|
6128
|
+
var _a2;
|
|
6129
|
+
const upgradeWebSocket = (_a2 = runConfig.getUpgradeWebSocket) == null ? void 0 : _a2.call(runConfig);
|
|
6130
|
+
invariant11(upgradeWebSocket, "websockets not supported on this platform");
|
|
6131
|
+
return upgradeWebSocket(async (c2) => {
|
|
6132
|
+
const {
|
|
6133
|
+
path: path3,
|
|
6134
|
+
actorId,
|
|
6135
|
+
params: paramsRaw,
|
|
6136
|
+
encodingKind
|
|
6137
|
+
} = c2.req.query();
|
|
6138
|
+
const params = paramsRaw !== void 0 ? JSON.parse(paramsRaw) : void 0;
|
|
6139
|
+
logger().debug({
|
|
6140
|
+
msg: "received test inline driver websocket",
|
|
6141
|
+
actorId,
|
|
6142
|
+
params,
|
|
6143
|
+
encodingKind,
|
|
6144
|
+
path: path3
|
|
6145
|
+
});
|
|
6146
|
+
const clientWsPromise = managerDriver.openWebSocket(
|
|
6147
|
+
path3,
|
|
6148
|
+
actorId,
|
|
6149
|
+
encodingKind,
|
|
6150
|
+
params
|
|
6151
|
+
);
|
|
6152
|
+
return await createTestWebSocketProxy(clientWsPromise, "standard");
|
|
6153
|
+
})(c, noopNext());
|
|
6154
|
+
});
|
|
6155
|
+
router.all(".test/inline-driver/send-request/*", async (c) => {
|
|
6156
|
+
const actorId = c.req.header(HEADER_ACTOR_ID);
|
|
6157
|
+
if (!actorId) {
|
|
6158
|
+
return c.text("Missing required headers", 400);
|
|
6159
|
+
}
|
|
6160
|
+
const pathOnly = c.req.path.split("/.test/inline-driver/send-request/")[1] || "";
|
|
6161
|
+
const url = new URL(c.req.url);
|
|
6162
|
+
const pathWithQuery = pathOnly + url.search;
|
|
6163
|
+
logger().debug({
|
|
6164
|
+
msg: "received test inline driver raw http",
|
|
6165
|
+
actorId,
|
|
6166
|
+
path: pathWithQuery,
|
|
6167
|
+
method: c.req.method
|
|
6168
|
+
});
|
|
6169
|
+
try {
|
|
6170
|
+
const response = await managerDriver.sendRequest(
|
|
6171
|
+
actorId,
|
|
6172
|
+
new Request(`http://actor/${pathWithQuery}`, {
|
|
6173
|
+
method: c.req.method,
|
|
6174
|
+
headers: c.req.raw.headers,
|
|
6175
|
+
body: c.req.raw.body
|
|
6176
|
+
})
|
|
6177
|
+
);
|
|
6178
|
+
return response;
|
|
6179
|
+
} catch (error) {
|
|
6180
|
+
logger().error({
|
|
6181
|
+
msg: "error in test inline raw http",
|
|
6182
|
+
error: stringifyError(error)
|
|
6183
|
+
});
|
|
6184
|
+
const err = deconstructError(error, logger(), {}, true);
|
|
6185
|
+
return c.json(
|
|
6186
|
+
{
|
|
6187
|
+
error: {
|
|
6188
|
+
code: err.code,
|
|
6189
|
+
message: err.message,
|
|
6190
|
+
metadata: err.metadata
|
|
6191
|
+
}
|
|
6192
|
+
},
|
|
6193
|
+
err.statusCode
|
|
6194
|
+
);
|
|
6195
|
+
}
|
|
6196
|
+
});
|
|
6197
|
+
}
|
|
6198
|
+
(_a = managerDriver.modifyManagerRouter) == null ? void 0 : _a.call(
|
|
6199
|
+
managerDriver,
|
|
6200
|
+
registryConfig,
|
|
6201
|
+
router
|
|
6202
|
+
);
|
|
6203
|
+
if ((_b = runConfig.inspector) == null ? void 0 : _b.enabled) {
|
|
6094
6204
|
if (!managerDriver.inspector) {
|
|
6095
6205
|
throw new Unsupported("inspector");
|
|
6096
6206
|
}
|
|
@@ -6106,6 +6216,166 @@ function createManagerRouter(registryConfig, runConfig, managerDriver, validateB
|
|
|
6106
6216
|
router.onError(handleRouteError);
|
|
6107
6217
|
return { router, openapi: router };
|
|
6108
6218
|
}
|
|
6219
|
+
async function createTestWebSocketProxy(clientWsPromise, connectionType) {
|
|
6220
|
+
let clientWs = null;
|
|
6221
|
+
try {
|
|
6222
|
+
logger().debug({ msg: "awaiting client websocket promise" });
|
|
6223
|
+
const ws = await clientWsPromise;
|
|
6224
|
+
clientWs = ws;
|
|
6225
|
+
logger().debug({
|
|
6226
|
+
msg: "client websocket promise resolved",
|
|
6227
|
+
constructor: ws == null ? void 0 : ws.constructor.name
|
|
6228
|
+
});
|
|
6229
|
+
await new Promise((resolve, reject) => {
|
|
6230
|
+
const onOpen = () => {
|
|
6231
|
+
logger().debug({ msg: "test websocket connection opened" });
|
|
6232
|
+
resolve();
|
|
6233
|
+
};
|
|
6234
|
+
const onError = (error) => {
|
|
6235
|
+
logger().error({ msg: "test websocket connection failed", error });
|
|
6236
|
+
reject(
|
|
6237
|
+
new Error(`Failed to open WebSocket: ${error.message || error}`)
|
|
6238
|
+
);
|
|
6239
|
+
};
|
|
6240
|
+
ws.addEventListener("open", onOpen);
|
|
6241
|
+
ws.addEventListener("error", onError);
|
|
6242
|
+
});
|
|
6243
|
+
} catch (error) {
|
|
6244
|
+
logger().error({
|
|
6245
|
+
msg: `failed to establish client ${connectionType} websocket connection`,
|
|
6246
|
+
error
|
|
6247
|
+
});
|
|
6248
|
+
return {
|
|
6249
|
+
onOpen: (_evt, serverWs) => {
|
|
6250
|
+
serverWs.close(1011, "Failed to establish connection");
|
|
6251
|
+
},
|
|
6252
|
+
onMessage: () => {
|
|
6253
|
+
},
|
|
6254
|
+
onError: () => {
|
|
6255
|
+
},
|
|
6256
|
+
onClose: () => {
|
|
6257
|
+
}
|
|
6258
|
+
};
|
|
6259
|
+
}
|
|
6260
|
+
return {
|
|
6261
|
+
onOpen: (_evt, serverWs) => {
|
|
6262
|
+
logger().debug({
|
|
6263
|
+
msg: `test ${connectionType} websocket connection opened`
|
|
6264
|
+
});
|
|
6265
|
+
logger().debug({
|
|
6266
|
+
msg: "clientWs info",
|
|
6267
|
+
constructor: clientWs.constructor.name,
|
|
6268
|
+
hasAddEventListener: typeof clientWs.addEventListener === "function",
|
|
6269
|
+
readyState: clientWs.readyState
|
|
6270
|
+
});
|
|
6271
|
+
clientWs.addEventListener("message", (clientEvt) => {
|
|
6272
|
+
var _a, _b;
|
|
6273
|
+
logger().debug({
|
|
6274
|
+
msg: `test ${connectionType} websocket connection message from client`,
|
|
6275
|
+
dataType: typeof clientEvt.data,
|
|
6276
|
+
isBlob: clientEvt.data instanceof Blob,
|
|
6277
|
+
isArrayBuffer: clientEvt.data instanceof ArrayBuffer,
|
|
6278
|
+
dataConstructor: (_b = (_a = clientEvt.data) == null ? void 0 : _a.constructor) == null ? void 0 : _b.name,
|
|
6279
|
+
dataStr: typeof clientEvt.data === "string" ? clientEvt.data.substring(0, 100) : void 0
|
|
6280
|
+
});
|
|
6281
|
+
if (serverWs.readyState === 1) {
|
|
6282
|
+
if (clientEvt.data instanceof Blob) {
|
|
6283
|
+
clientEvt.data.arrayBuffer().then((buffer) => {
|
|
6284
|
+
logger().debug({
|
|
6285
|
+
msg: "converted client blob to arraybuffer, sending to server",
|
|
6286
|
+
bufferSize: buffer.byteLength
|
|
6287
|
+
});
|
|
6288
|
+
serverWs.send(buffer);
|
|
6289
|
+
}).catch((error) => {
|
|
6290
|
+
logger().error({
|
|
6291
|
+
msg: "failed to convert blob to arraybuffer",
|
|
6292
|
+
error
|
|
6293
|
+
});
|
|
6294
|
+
});
|
|
6295
|
+
} else {
|
|
6296
|
+
logger().debug({
|
|
6297
|
+
msg: "sending client data directly to server",
|
|
6298
|
+
dataType: typeof clientEvt.data,
|
|
6299
|
+
dataLength: typeof clientEvt.data === "string" ? clientEvt.data.length : void 0
|
|
6300
|
+
});
|
|
6301
|
+
serverWs.send(clientEvt.data);
|
|
6302
|
+
}
|
|
6303
|
+
}
|
|
6304
|
+
});
|
|
6305
|
+
clientWs.addEventListener("close", (clientEvt) => {
|
|
6306
|
+
logger().debug({
|
|
6307
|
+
msg: `test ${connectionType} websocket connection closed`
|
|
6308
|
+
});
|
|
6309
|
+
if (serverWs.readyState !== 3) {
|
|
6310
|
+
serverWs.close(clientEvt.code, clientEvt.reason);
|
|
6311
|
+
}
|
|
6312
|
+
});
|
|
6313
|
+
clientWs.addEventListener("error", () => {
|
|
6314
|
+
logger().debug({
|
|
6315
|
+
msg: `test ${connectionType} websocket connection error`
|
|
6316
|
+
});
|
|
6317
|
+
if (serverWs.readyState !== 3) {
|
|
6318
|
+
serverWs.close(1011, "Error in client websocket");
|
|
6319
|
+
}
|
|
6320
|
+
});
|
|
6321
|
+
},
|
|
6322
|
+
onMessage: (evt) => {
|
|
6323
|
+
var _a, _b;
|
|
6324
|
+
logger().debug({
|
|
6325
|
+
msg: "received message from server",
|
|
6326
|
+
dataType: typeof evt.data,
|
|
6327
|
+
isBlob: evt.data instanceof Blob,
|
|
6328
|
+
isArrayBuffer: evt.data instanceof ArrayBuffer,
|
|
6329
|
+
dataConstructor: (_b = (_a = evt.data) == null ? void 0 : _a.constructor) == null ? void 0 : _b.name,
|
|
6330
|
+
dataStr: typeof evt.data === "string" ? evt.data.substring(0, 100) : void 0
|
|
6331
|
+
});
|
|
6332
|
+
if (clientWs.readyState === 1) {
|
|
6333
|
+
if (evt.data instanceof Blob) {
|
|
6334
|
+
evt.data.arrayBuffer().then((buffer) => {
|
|
6335
|
+
logger().debug({
|
|
6336
|
+
msg: "converted blob to arraybuffer, sending",
|
|
6337
|
+
bufferSize: buffer.byteLength
|
|
6338
|
+
});
|
|
6339
|
+
clientWs.send(buffer);
|
|
6340
|
+
}).catch((error) => {
|
|
6341
|
+
logger().error({
|
|
6342
|
+
msg: "failed to convert blob to arraybuffer",
|
|
6343
|
+
error
|
|
6344
|
+
});
|
|
6345
|
+
});
|
|
6346
|
+
} else {
|
|
6347
|
+
logger().debug({
|
|
6348
|
+
msg: "sending data directly",
|
|
6349
|
+
dataType: typeof evt.data,
|
|
6350
|
+
dataLength: typeof evt.data === "string" ? evt.data.length : void 0
|
|
6351
|
+
});
|
|
6352
|
+
clientWs.send(evt.data);
|
|
6353
|
+
}
|
|
6354
|
+
}
|
|
6355
|
+
},
|
|
6356
|
+
onClose: (event, serverWs) => {
|
|
6357
|
+
logger().debug({
|
|
6358
|
+
msg: `server ${connectionType} websocket closed`,
|
|
6359
|
+
wasClean: event.wasClean,
|
|
6360
|
+
code: event.code,
|
|
6361
|
+
reason: event.reason
|
|
6362
|
+
});
|
|
6363
|
+
serverWs.close(1e3, "hack_force_close");
|
|
6364
|
+
if (clientWs && clientWs.readyState !== clientWs.CLOSED && clientWs.readyState !== clientWs.CLOSING) {
|
|
6365
|
+
clientWs.close(1e3, event.reason);
|
|
6366
|
+
}
|
|
6367
|
+
},
|
|
6368
|
+
onError: (error) => {
|
|
6369
|
+
logger().error({
|
|
6370
|
+
msg: `error in server ${connectionType} websocket`,
|
|
6371
|
+
error
|
|
6372
|
+
});
|
|
6373
|
+
if (clientWs && clientWs.readyState !== clientWs.CLOSED && clientWs.readyState !== clientWs.CLOSING) {
|
|
6374
|
+
clientWs.close(1011, "Error in server websocket");
|
|
6375
|
+
}
|
|
6376
|
+
}
|
|
6377
|
+
};
|
|
6378
|
+
}
|
|
6109
6379
|
|
|
6110
6380
|
// src/registry/config.ts
|
|
6111
6381
|
import { z as z10 } from "zod";
|
|
@@ -6180,7 +6450,7 @@ var Registry = class {
|
|
|
6180
6450
|
/**
|
|
6181
6451
|
* Runs the registry for a server.
|
|
6182
6452
|
*/
|
|
6183
|
-
|
|
6453
|
+
start(inputConfig) {
|
|
6184
6454
|
var _a, _b, _c, _d, _e;
|
|
6185
6455
|
const config2 = RunConfigSchema.parse(inputConfig);
|
|
6186
6456
|
if ((_a = config2.logging) == null ? void 0 : _a.baseLogger) {
|
|
@@ -6191,6 +6461,13 @@ var Registry = class {
|
|
|
6191
6461
|
const driver = chooseDefaultDriver(config2);
|
|
6192
6462
|
if (driver.name === "engine") {
|
|
6193
6463
|
config2.inspector.enabled = false;
|
|
6464
|
+
config2.disableServer = true;
|
|
6465
|
+
}
|
|
6466
|
+
if (driver.name === "cloudflare-workers") {
|
|
6467
|
+
config2.inspector.enabled = false;
|
|
6468
|
+
config2.disableServer = true;
|
|
6469
|
+
config2.disableActorDriver = true;
|
|
6470
|
+
config2.noWelcome = true;
|
|
6194
6471
|
}
|
|
6195
6472
|
let upgradeWebSocket;
|
|
6196
6473
|
if (!config2.getUpgradeWebSocket) {
|
|
@@ -6228,33 +6505,25 @@ var Registry = class {
|
|
|
6228
6505
|
}
|
|
6229
6506
|
console.log();
|
|
6230
6507
|
}
|
|
6231
|
-
|
|
6232
|
-
|
|
6233
|
-
|
|
6234
|
-
|
|
6235
|
-
|
|
6236
|
-
|
|
6508
|
+
if (!config2.disableActorDriver) {
|
|
6509
|
+
const _actorDriver = driver.actor(
|
|
6510
|
+
this.#config,
|
|
6511
|
+
config2,
|
|
6512
|
+
managerDriver,
|
|
6513
|
+
client
|
|
6514
|
+
);
|
|
6515
|
+
}
|
|
6516
|
+
if (!config2.disableServer) {
|
|
6517
|
+
(async () => {
|
|
6518
|
+
const out = await crossPlatformServe(hono, void 0);
|
|
6519
|
+
upgradeWebSocket = out.upgradeWebSocket;
|
|
6520
|
+
})();
|
|
6521
|
+
}
|
|
6237
6522
|
return {
|
|
6238
|
-
config: config2,
|
|
6239
|
-
driver,
|
|
6240
6523
|
client,
|
|
6241
|
-
hono
|
|
6242
|
-
handler: async (req) => await hono.fetch(req),
|
|
6243
|
-
serve: async (app) => {
|
|
6244
|
-
const out = await crossPlatformServe(hono, app);
|
|
6245
|
-
upgradeWebSocket = out.upgradeWebSocket;
|
|
6246
|
-
}
|
|
6524
|
+
fetch: hono.fetch.bind(hono)
|
|
6247
6525
|
};
|
|
6248
6526
|
}
|
|
6249
|
-
/**
|
|
6250
|
-
* Runs the registry as a standalone server.
|
|
6251
|
-
*/
|
|
6252
|
-
async runServer(inputConfig) {
|
|
6253
|
-
const { driver, serve } = this.createServer(inputConfig);
|
|
6254
|
-
if (driver.name !== "engine") {
|
|
6255
|
-
serve();
|
|
6256
|
-
}
|
|
6257
|
-
}
|
|
6258
6527
|
};
|
|
6259
6528
|
function setup(input) {
|
|
6260
6529
|
const config2 = RegistryConfigSchema.parse(input);
|
|
@@ -6290,4 +6559,4 @@ export {
|
|
|
6290
6559
|
setup
|
|
6291
6560
|
};
|
|
6292
6561
|
//! These configs configs hold anything that's not platform-specific about running actors.
|
|
6293
|
-
//# sourceMappingURL=chunk-
|
|
6562
|
+
//# sourceMappingURL=chunk-L7QRXNWP.js.map
|