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.
Files changed (109) hide show
  1. package/dist/tsup/actor/errors.cjs +2 -2
  2. package/dist/tsup/actor/errors.js +1 -1
  3. package/dist/tsup/{chunk-HLLF4B4Q.js → chunk-2MD57QF4.js} +7 -5
  4. package/dist/tsup/chunk-2MD57QF4.js.map +1 -0
  5. package/dist/tsup/{chunk-SBHHJ6QS.cjs → chunk-5QGQK44L.cjs} +2 -2
  6. package/dist/tsup/{chunk-SBHHJ6QS.cjs.map → chunk-5QGQK44L.cjs.map} +1 -1
  7. package/dist/tsup/{chunk-4CXBCT26.cjs → chunk-5YTI25C3.cjs} +7 -7
  8. package/dist/tsup/{chunk-4CXBCT26.cjs.map → chunk-5YTI25C3.cjs.map} +1 -1
  9. package/dist/tsup/{chunk-TQ62L3X7.js → chunk-B2QGJGZQ.js} +18 -5
  10. package/dist/tsup/chunk-B2QGJGZQ.js.map +1 -0
  11. package/dist/tsup/{chunk-PQY7KKTL.js → chunk-CFFKMUYH.js} +32 -7
  12. package/dist/tsup/{chunk-PQY7KKTL.js.map → chunk-CFFKMUYH.js.map} +1 -1
  13. package/dist/tsup/{chunk-H26RP6GD.js → chunk-CKA54YQN.js} +2 -2
  14. package/dist/tsup/chunk-D7NWUCRK.cjs +20 -0
  15. package/dist/tsup/{chunk-4R73YDN3.cjs.map → chunk-D7NWUCRK.cjs.map} +1 -1
  16. package/dist/tsup/{chunk-IH6CKNDW.cjs → chunk-FGFT4FVX.cjs} +9 -9
  17. package/dist/tsup/{chunk-IH6CKNDW.cjs.map → chunk-FGFT4FVX.cjs.map} +1 -1
  18. package/dist/tsup/{chunk-HI3HWJRC.js → chunk-I5VTWPHW.js} +4 -4
  19. package/dist/tsup/{chunk-HI3HWJRC.js.map → chunk-I5VTWPHW.js.map} +1 -1
  20. package/dist/tsup/{chunk-GICQ3YCU.cjs → chunk-IRMBWX36.cjs} +39 -37
  21. package/dist/tsup/chunk-IRMBWX36.cjs.map +1 -0
  22. package/dist/tsup/{chunk-XJQHKJ4P.js → chunk-L7QRXNWP.js} +331 -62
  23. package/dist/tsup/chunk-L7QRXNWP.js.map +1 -0
  24. package/dist/tsup/{chunk-LWNKVZG5.cjs → chunk-LZIBTLEY.cjs} +12 -12
  25. package/dist/tsup/{chunk-LWNKVZG5.cjs.map → chunk-LZIBTLEY.cjs.map} +1 -1
  26. package/dist/tsup/{chunk-VO7ZRVVD.cjs → chunk-MRZS2J4X.cjs} +581 -312
  27. package/dist/tsup/chunk-MRZS2J4X.cjs.map +1 -0
  28. package/dist/tsup/{chunk-QK72M5JB.js → chunk-PG3K2LI7.js} +2 -2
  29. package/dist/tsup/{chunk-QNNXFOQV.cjs → chunk-PHSQJ6QI.cjs} +3 -3
  30. package/dist/tsup/{chunk-QNNXFOQV.cjs.map → chunk-PHSQJ6QI.cjs.map} +1 -1
  31. package/dist/tsup/{chunk-WHBPJNGW.cjs → chunk-RM2SVURR.cjs} +29 -16
  32. package/dist/tsup/chunk-RM2SVURR.cjs.map +1 -0
  33. package/dist/tsup/{chunk-6LJT3QRL.cjs → chunk-WADSS5X4.cjs} +37 -12
  34. package/dist/tsup/chunk-WADSS5X4.cjs.map +1 -0
  35. package/dist/tsup/{chunk-LV2S3OU3.js → chunk-WNGOBAA7.js} +2 -2
  36. package/dist/tsup/{chunk-NFU2BBT5.js → chunk-YPZFLUO6.js} +2 -2
  37. package/dist/tsup/chunk-YPZFLUO6.js.map +1 -0
  38. package/dist/tsup/{chunk-3F2YSRJL.js → chunk-YW6Y6VNE.js} +4 -4
  39. package/dist/tsup/client/mod.cjs +10 -10
  40. package/dist/tsup/client/mod.d.cts +2 -2
  41. package/dist/tsup/client/mod.d.ts +2 -2
  42. package/dist/tsup/client/mod.js +9 -9
  43. package/dist/tsup/common/log.cjs +4 -4
  44. package/dist/tsup/common/log.js +3 -3
  45. package/dist/tsup/common/websocket.cjs +5 -5
  46. package/dist/tsup/common/websocket.js +4 -4
  47. package/dist/tsup/{connection-BI-6UIBJ.d.ts → connection-BvE-Oq7t.d.ts} +22 -11
  48. package/dist/tsup/{connection-Dyd4NLGW.d.cts → connection-DTzmWwU5.d.cts} +22 -11
  49. package/dist/tsup/driver-helpers/mod.cjs +6 -6
  50. package/dist/tsup/driver-helpers/mod.d.cts +2 -2
  51. package/dist/tsup/driver-helpers/mod.d.ts +2 -2
  52. package/dist/tsup/driver-helpers/mod.js +5 -5
  53. package/dist/tsup/driver-test-suite/mod.cjs +606 -140
  54. package/dist/tsup/driver-test-suite/mod.cjs.map +1 -1
  55. package/dist/tsup/driver-test-suite/mod.d.cts +2 -2
  56. package/dist/tsup/driver-test-suite/mod.d.ts +2 -2
  57. package/dist/tsup/driver-test-suite/mod.js +563 -97
  58. package/dist/tsup/driver-test-suite/mod.js.map +1 -1
  59. package/dist/tsup/inspector/mod.cjs +6 -6
  60. package/dist/tsup/inspector/mod.js +5 -5
  61. package/dist/tsup/mod.cjs +9 -9
  62. package/dist/tsup/mod.d.cts +3 -3
  63. package/dist/tsup/mod.d.ts +3 -3
  64. package/dist/tsup/mod.js +8 -8
  65. package/dist/tsup/{router-endpoints-BTe_Rsdn.d.cts → router-endpoints-CctffZNL.d.cts} +1 -1
  66. package/dist/tsup/{router-endpoints-CBSrKHmo.d.ts → router-endpoints-DFm1BglJ.d.ts} +1 -1
  67. package/dist/tsup/test/mod.cjs +10 -10
  68. package/dist/tsup/test/mod.d.cts +1 -1
  69. package/dist/tsup/test/mod.d.ts +1 -1
  70. package/dist/tsup/test/mod.js +9 -9
  71. package/dist/tsup/utils.cjs +5 -3
  72. package/dist/tsup/utils.cjs.map +1 -1
  73. package/dist/tsup/utils.d.cts +18 -1
  74. package/dist/tsup/utils.d.ts +18 -1
  75. package/dist/tsup/utils.js +4 -2
  76. package/package.json +4 -4
  77. package/src/actor/errors.ts +1 -1
  78. package/src/actor/router-endpoints.ts +6 -1
  79. package/src/actor/router.ts +2 -1
  80. package/src/client/mod.ts +1 -1
  81. package/src/client/raw-utils.ts +1 -1
  82. package/src/driver-test-suite/mod.ts +1 -1
  83. package/src/driver-test-suite/test-inline-client-driver.ts +588 -0
  84. package/src/driver-test-suite/tests/actor-error-handling.ts +4 -12
  85. package/src/driver-test-suite/tests/actor-inspector.ts +2 -1
  86. package/src/driver-test-suite/utils.ts +10 -9
  87. package/src/drivers/file-system/global-state.ts +3 -1
  88. package/src/drivers/file-system/manager.ts +16 -21
  89. package/src/manager/router.ts +373 -5
  90. package/src/registry/mod.ts +29 -33
  91. package/src/registry/run-config.ts +16 -1
  92. package/src/remote-manager-driver/actor-http-client.ts +3 -1
  93. package/src/remote-manager-driver/actor-websocket-client.ts +2 -1
  94. package/src/remote-manager-driver/api-utils.ts +4 -1
  95. package/src/remote-manager-driver/mod.ts +2 -1
  96. package/src/utils.ts +53 -0
  97. package/dist/tsup/chunk-4R73YDN3.cjs +0 -20
  98. package/dist/tsup/chunk-6LJT3QRL.cjs.map +0 -1
  99. package/dist/tsup/chunk-GICQ3YCU.cjs.map +0 -1
  100. package/dist/tsup/chunk-HLLF4B4Q.js.map +0 -1
  101. package/dist/tsup/chunk-NFU2BBT5.js.map +0 -1
  102. package/dist/tsup/chunk-TQ62L3X7.js.map +0 -1
  103. package/dist/tsup/chunk-VO7ZRVVD.cjs.map +0 -1
  104. package/dist/tsup/chunk-WHBPJNGW.cjs.map +0 -1
  105. package/dist/tsup/chunk-XJQHKJ4P.js.map +0 -1
  106. /package/dist/tsup/{chunk-H26RP6GD.js.map → chunk-CKA54YQN.js.map} +0 -0
  107. /package/dist/tsup/{chunk-QK72M5JB.js.map → chunk-PG3K2LI7.js.map} +0 -0
  108. /package/dist/tsup/{chunk-LV2S3OU3.js.map → chunk-WNGOBAA7.js.map} +0 -0
  109. /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-H26RP6GD.js";
7
+ } from "./chunk-CKA54YQN.js";
8
8
  import {
9
9
  importWebSocket,
10
10
  logger as logger2
11
- } from "./chunk-QK72M5JB.js";
11
+ } from "./chunk-PG3K2LI7.js";
12
12
  import {
13
13
  PERSISTED_ACTOR_VERSIONED,
14
14
  RunConfigSchema,
15
15
  serializeEmptyPersistData
16
- } from "./chunk-TQ62L3X7.js";
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-HLLF4B4Q.js";
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-LV2S3OU3.js";
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-PQY7KKTL.js";
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-NFU2BBT5.js";
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
- ...init,
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 = `${endpoint}${path3}${path3.includes("?") ? "&" : "?"}namespace=${encodeURIComponent(config2.namespace)}`;
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 = `${endpoint}${url.pathname}${url.search}`;
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 = `${endpoint}${path3}`;
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 = `${endpoint}${path3}`;
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(`Actor does exist and cannot be started: ${actorId}`);
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
- if (path3 === PATH_CONNECT_WEBSOCKET) {
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 (path3.startsWith(PATH_RAW_WEBSOCKET_PREFIX) || path3 === "/raw/websocket") {
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
- normalizedPath,
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, authData) {
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
- if (path3 === PATH_CONNECT_WEBSOCKET) {
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
- authData
5644
+ void 0
5634
5645
  );
5635
5646
  return upgradeWebSocket(() => wsHandler)(c, noopNext());
5636
- } else if (path3.startsWith(PATH_RAW_WEBSOCKET_PREFIX) || path3 === "/raw/websocket") {
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
- normalizedPath,
5650
+ path3,
5641
5651
  this.#actorDriver,
5642
5652
  actorId,
5643
- authData
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
- // Not available from driver
6032
- runner_name_selector: "",
6033
- // Not available from driver
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
- // Not available from driver
6083
- runner_name_selector: body.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 ((_a = runConfig.inspector) == null ? void 0 : _a.enabled) {
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
- createServer(inputConfig) {
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
- const _actorDriver = driver.actor(
6232
- this.#config,
6233
- config2,
6234
- managerDriver,
6235
- client
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-XJQHKJ4P.js.map
6562
+ //# sourceMappingURL=chunk-L7QRXNWP.js.map