rivetkit 2.0.4 → 2.0.6

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 (140) hide show
  1. package/dist/tsup/actor/errors.cjs +2 -2
  2. package/dist/tsup/actor/errors.js +1 -1
  3. package/dist/tsup/actor-router-consts-BK6arfy8.d.cts +17 -0
  4. package/dist/tsup/actor-router-consts-BK6arfy8.d.ts +17 -0
  5. package/dist/tsup/chunk-2K3JMDAN.js +232 -0
  6. package/dist/tsup/chunk-2K3JMDAN.js.map +1 -0
  7. package/dist/tsup/chunk-42I3OZ3Q.js +15 -0
  8. package/dist/tsup/chunk-42I3OZ3Q.js.map +1 -0
  9. package/dist/tsup/{chunk-XJQHKJ4P.js → chunk-4CKHQRXG.js} +1650 -4147
  10. package/dist/tsup/chunk-4CKHQRXG.js.map +1 -0
  11. package/dist/tsup/{chunk-6LJT3QRL.cjs → chunk-5JBFVV4C.cjs} +37 -12
  12. package/dist/tsup/chunk-5JBFVV4C.cjs.map +1 -0
  13. package/dist/tsup/{chunk-SBHHJ6QS.cjs → chunk-5QGQK44L.cjs} +2 -2
  14. package/dist/tsup/{chunk-SBHHJ6QS.cjs.map → chunk-5QGQK44L.cjs.map} +1 -1
  15. package/dist/tsup/{chunk-IH6CKNDW.cjs → chunk-6P6RA47N.cjs} +9 -9
  16. package/dist/tsup/{chunk-IH6CKNDW.cjs.map → chunk-6P6RA47N.cjs.map} +1 -1
  17. package/dist/tsup/chunk-7OUKNSTU.js +1043 -0
  18. package/dist/tsup/chunk-7OUKNSTU.js.map +1 -0
  19. package/dist/tsup/{chunk-LWNKVZG5.cjs → chunk-DIAYNQTE.cjs} +13 -25
  20. package/dist/tsup/chunk-DIAYNQTE.cjs.map +1 -0
  21. package/dist/tsup/{chunk-3F2YSRJL.js → chunk-G75SVQON.js} +4 -4
  22. package/dist/tsup/{chunk-QNNXFOQV.cjs → chunk-KG3C7MKR.cjs} +3 -3
  23. package/dist/tsup/{chunk-QNNXFOQV.cjs.map → chunk-KG3C7MKR.cjs.map} +1 -1
  24. package/dist/tsup/chunk-KUPQZYUQ.cjs +15 -0
  25. package/dist/tsup/chunk-KUPQZYUQ.cjs.map +1 -0
  26. package/dist/tsup/{chunk-4CXBCT26.cjs → chunk-MRRT2CZD.cjs} +7 -7
  27. package/dist/tsup/{chunk-4CXBCT26.cjs.map → chunk-MRRT2CZD.cjs.map} +1 -1
  28. package/dist/tsup/chunk-NTCUGYSD.cjs +1043 -0
  29. package/dist/tsup/chunk-NTCUGYSD.cjs.map +1 -0
  30. package/dist/tsup/{chunk-PQY7KKTL.js → chunk-RGQR2J7S.js} +32 -7
  31. package/dist/tsup/{chunk-PQY7KKTL.js.map → chunk-RGQR2J7S.js.map} +1 -1
  32. package/dist/tsup/chunk-TCUI5JFE.cjs +232 -0
  33. package/dist/tsup/chunk-TCUI5JFE.cjs.map +1 -0
  34. package/dist/tsup/chunk-TWGATZ3X.cjs +3676 -0
  35. package/dist/tsup/chunk-TWGATZ3X.cjs.map +1 -0
  36. package/dist/tsup/chunk-UFWAK3X2.cjs +3796 -0
  37. package/dist/tsup/chunk-UFWAK3X2.cjs.map +1 -0
  38. package/dist/tsup/chunk-UTI5NCES.cjs +20 -0
  39. package/dist/tsup/{chunk-4R73YDN3.cjs.map → chunk-UTI5NCES.cjs.map} +1 -1
  40. package/dist/tsup/{chunk-QK72M5JB.js → chunk-VCEHU56K.js} +2 -2
  41. package/dist/tsup/{chunk-HI3HWJRC.js → chunk-VPV4MWXR.js} +4 -4
  42. package/dist/tsup/{chunk-HI3HWJRC.js.map → chunk-VPV4MWXR.js.map} +1 -1
  43. package/dist/tsup/chunk-W6LN7AF5.js +3676 -0
  44. package/dist/tsup/chunk-W6LN7AF5.js.map +1 -0
  45. package/dist/tsup/{chunk-LV2S3OU3.js → chunk-WC2PSJWN.js} +2 -2
  46. package/dist/tsup/{chunk-NFU2BBT5.js → chunk-YPZFLUO6.js} +2 -2
  47. package/dist/tsup/chunk-YPZFLUO6.js.map +1 -0
  48. package/dist/tsup/{chunk-H26RP6GD.js → chunk-ZYLTS2EM.js} +3 -15
  49. package/dist/tsup/chunk-ZYLTS2EM.js.map +1 -0
  50. package/dist/tsup/client/mod.cjs +10 -10
  51. package/dist/tsup/client/mod.d.cts +2 -2
  52. package/dist/tsup/client/mod.d.ts +2 -2
  53. package/dist/tsup/client/mod.js +9 -9
  54. package/dist/tsup/common/log.cjs +4 -4
  55. package/dist/tsup/common/log.js +3 -3
  56. package/dist/tsup/common/websocket.cjs +5 -5
  57. package/dist/tsup/common/websocket.js +4 -4
  58. package/dist/tsup/{connection-BI-6UIBJ.d.ts → connection-BLemxi4f.d.ts} +23 -12
  59. package/dist/tsup/{connection-Dyd4NLGW.d.cts → connection-CpDIydXf.d.cts} +23 -12
  60. package/dist/tsup/driver-helpers/mod.cjs +6 -6
  61. package/dist/tsup/driver-helpers/mod.d.cts +2 -2
  62. package/dist/tsup/driver-helpers/mod.d.ts +2 -2
  63. package/dist/tsup/driver-helpers/mod.js +5 -5
  64. package/dist/tsup/driver-test-suite/mod.cjs +614 -140
  65. package/dist/tsup/driver-test-suite/mod.cjs.map +1 -1
  66. package/dist/tsup/driver-test-suite/mod.d.cts +2 -2
  67. package/dist/tsup/driver-test-suite/mod.d.ts +2 -2
  68. package/dist/tsup/driver-test-suite/mod.js +575 -101
  69. package/dist/tsup/driver-test-suite/mod.js.map +1 -1
  70. package/dist/tsup/inspector/mod.cjs +8 -6
  71. package/dist/tsup/inspector/mod.cjs.map +1 -1
  72. package/dist/tsup/inspector/mod.js +10 -8
  73. package/dist/tsup/mod.cjs +12 -9
  74. package/dist/tsup/mod.cjs.map +1 -1
  75. package/dist/tsup/mod.d.cts +52 -7
  76. package/dist/tsup/mod.d.ts +52 -7
  77. package/dist/tsup/mod.js +18 -15
  78. package/dist/tsup/test/mod.cjs +12 -10
  79. package/dist/tsup/test/mod.cjs.map +1 -1
  80. package/dist/tsup/test/mod.d.cts +1 -1
  81. package/dist/tsup/test/mod.d.ts +1 -1
  82. package/dist/tsup/test/mod.js +11 -9
  83. package/dist/tsup/utils.cjs +5 -3
  84. package/dist/tsup/utils.cjs.map +1 -1
  85. package/dist/tsup/utils.d.cts +18 -1
  86. package/dist/tsup/utils.d.ts +18 -1
  87. package/dist/tsup/utils.js +4 -2
  88. package/package.json +4 -4
  89. package/src/actor/errors.ts +1 -1
  90. package/src/actor/mod.ts +5 -3
  91. package/src/actor/router-endpoints.ts +11 -33
  92. package/src/actor/router.ts +11 -9
  93. package/src/client/actor-conn.ts +9 -8
  94. package/src/client/actor-handle.ts +0 -1
  95. package/src/client/client.ts +1 -1
  96. package/src/client/mod.ts +1 -1
  97. package/src/client/raw-utils.ts +2 -2
  98. package/src/client/utils.ts +1 -1
  99. package/src/common/actor-router-consts.ts +38 -0
  100. package/src/driver-helpers/mod.ts +1 -1
  101. package/src/driver-test-suite/mod.ts +1 -1
  102. package/src/driver-test-suite/test-inline-client-driver.ts +588 -0
  103. package/src/driver-test-suite/tests/actor-error-handling.ts +4 -12
  104. package/src/driver-test-suite/tests/actor-inspector.ts +2 -1
  105. package/src/driver-test-suite/utils.ts +16 -10
  106. package/src/drivers/engine/actor-driver.ts +18 -17
  107. package/src/drivers/file-system/global-state.ts +3 -1
  108. package/src/drivers/file-system/manager.ts +16 -21
  109. package/src/manager/driver.ts +1 -1
  110. package/src/manager/protocol/query.ts +1 -1
  111. package/src/manager/router.ts +373 -5
  112. package/src/registry/mod.ts +36 -35
  113. package/src/registry/run-config.ts +16 -1
  114. package/src/registry/serve.ts +8 -3
  115. package/src/remote-manager-driver/actor-http-client.ts +3 -1
  116. package/src/remote-manager-driver/actor-websocket-client.ts +4 -3
  117. package/src/remote-manager-driver/api-utils.ts +4 -1
  118. package/src/remote-manager-driver/mod.ts +4 -6
  119. package/src/utils.ts +53 -0
  120. package/dist/tsup/chunk-4R73YDN3.cjs +0 -20
  121. package/dist/tsup/chunk-6LJT3QRL.cjs.map +0 -1
  122. package/dist/tsup/chunk-GICQ3YCU.cjs +0 -1792
  123. package/dist/tsup/chunk-GICQ3YCU.cjs.map +0 -1
  124. package/dist/tsup/chunk-H26RP6GD.js.map +0 -1
  125. package/dist/tsup/chunk-HLLF4B4Q.js +0 -1792
  126. package/dist/tsup/chunk-HLLF4B4Q.js.map +0 -1
  127. package/dist/tsup/chunk-LWNKVZG5.cjs.map +0 -1
  128. package/dist/tsup/chunk-NFU2BBT5.js.map +0 -1
  129. package/dist/tsup/chunk-TQ62L3X7.js +0 -325
  130. package/dist/tsup/chunk-TQ62L3X7.js.map +0 -1
  131. package/dist/tsup/chunk-VO7ZRVVD.cjs +0 -6293
  132. package/dist/tsup/chunk-VO7ZRVVD.cjs.map +0 -1
  133. package/dist/tsup/chunk-WHBPJNGW.cjs +0 -325
  134. package/dist/tsup/chunk-WHBPJNGW.cjs.map +0 -1
  135. package/dist/tsup/chunk-XJQHKJ4P.js.map +0 -1
  136. package/dist/tsup/router-endpoints-BTe_Rsdn.d.cts +0 -65
  137. package/dist/tsup/router-endpoints-CBSrKHmo.d.ts +0 -65
  138. /package/dist/tsup/{chunk-3F2YSRJL.js.map → chunk-G75SVQON.js.map} +0 -0
  139. /package/dist/tsup/{chunk-QK72M5JB.js.map → chunk-VCEHU56K.js.map} +0 -0
  140. /package/dist/tsup/{chunk-LV2S3OU3.js.map → chunk-WC2PSJWN.js.map} +0 -0
@@ -15,6 +15,11 @@ import * as errors from "@/actor/errors";
15
15
  import type { AnyActorInstance } from "@/actor/instance";
16
16
  import type { InputData } from "@/actor/protocol/serde";
17
17
  import { type Encoding, EncodingSchema } from "@/actor/protocol/serde";
18
+ import {
19
+ HEADER_ACTOR_QUERY,
20
+ HEADER_CONN_PARAMS,
21
+ HEADER_ENCODING,
22
+ } from "@/common/actor-router-consts";
18
23
  import type { UpgradeWebSocketArgs } from "@/common/inline-websocket-adapter2";
19
24
  import { deconstructError, stringifyError } from "@/common/utils";
20
25
  import type { UniversalWebSocket } from "@/common/websocket-interface";
@@ -373,8 +378,13 @@ export async function handleSseConnect(
373
378
  // Wait for close
374
379
  const abortResolver = Promise.withResolvers();
375
380
 
381
+ // HACK: This is required so the abort handler below works
382
+ //
383
+ // See https://github.com/honojs/hono/issues/1770#issuecomment-2461966225
384
+ stream.onAbort(() => {});
385
+
376
386
  // Handle stream abort (when client closes the connection)
377
- stream.onAbort(async () => {
387
+ c.req.raw.signal.addEventListener("abort", async () => {
378
388
  const rLog = actor?.rLog ?? loggerWithoutContext();
379
389
  try {
380
390
  rLog.debug("sse stream aborted");
@@ -639,38 +649,6 @@ export function getRequestQuery(c: HonoContext): unknown {
639
649
  }
640
650
  }
641
651
 
642
- export const HEADER_ACTOR_QUERY = "X-RivetKit-Query";
643
-
644
- export const HEADER_ENCODING = "X-RivetKit-Encoding";
645
-
646
- // IMPORTANT: Params must be in headers or in an E2EE part of the request (i.e. NOT the URL or query string) in order to ensure that tokens can be securely passed in params.
647
- export const HEADER_CONN_PARAMS = "X-RivetKit-Conn-Params";
648
-
649
- // Internal header
650
- export const HEADER_AUTH_DATA = "X-RivetKit-Auth-Data";
651
-
652
- export const HEADER_ACTOR_ID = "X-RivetKit-Actor";
653
-
654
- export const HEADER_CONN_ID = "X-RivetKit-Conn";
655
-
656
- export const HEADER_CONN_TOKEN = "X-RivetKit-Conn-Token";
657
-
658
- /**
659
- * Headers that publics can send from public clients.
660
- *
661
- * Used for CORS.
662
- **/
663
- export const ALLOWED_PUBLIC_HEADERS = [
664
- "Content-Type",
665
- "User-Agent",
666
- HEADER_ACTOR_QUERY,
667
- HEADER_ENCODING,
668
- HEADER_CONN_PARAMS,
669
- HEADER_ACTOR_ID,
670
- HEADER_CONN_ID,
671
- HEADER_CONN_TOKEN,
672
- ];
673
-
674
652
  // Helper to get connection parameters for the request
675
653
  export function getRequestConnParams(req: HonoRequest): unknown {
676
654
  const paramsParam = req.header(HEADER_CONN_PARAMS);
@@ -10,17 +10,21 @@ import {
10
10
  type ConnectWebSocketOpts,
11
11
  type ConnectWebSocketOutput,
12
12
  type ConnsMessageOpts,
13
- HEADER_AUTH_DATA,
14
- HEADER_CONN_ID,
15
- HEADER_CONN_PARAMS,
16
- HEADER_CONN_TOKEN,
17
- HEADER_ENCODING,
18
13
  handleAction,
19
14
  handleConnectionMessage,
20
15
  handleRawWebSocketHandler,
21
16
  handleSseConnect,
22
17
  handleWebSocketConnect,
23
18
  } from "@/actor/router-endpoints";
19
+ import {
20
+ HEADER_AUTH_DATA,
21
+ HEADER_CONN_ID,
22
+ HEADER_CONN_PARAMS,
23
+ HEADER_CONN_TOKEN,
24
+ HEADER_ENCODING,
25
+ PATH_CONNECT_WEBSOCKET,
26
+ PATH_RAW_WEBSOCKET_PREFIX,
27
+ } from "@/common/actor-router-consts";
24
28
  import {
25
29
  handleRouteError,
26
30
  handleRouteNotFound,
@@ -37,9 +41,6 @@ import type { ActorDriver } from "./driver";
37
41
  import { InternalError } from "./errors";
38
42
  import { loggerWithoutContext } from "./log";
39
43
 
40
- export const PATH_CONNECT_WEBSOCKET = "/connect/websocket";
41
- export const PATH_RAW_WEBSOCKET_PREFIX = "/raw/websocket/";
42
-
43
44
  export type {
44
45
  ConnectWebSocketOpts,
45
46
  ConnectWebSocketOutput,
@@ -175,7 +176,8 @@ export function createActorRouter(
175
176
  method: c.req.method,
176
177
  headers: c.req.raw.headers,
177
178
  body: c.req.raw.body,
178
- });
179
+ duplex: "half",
180
+ } as RequestInit);
179
181
 
180
182
  loggerWithoutContext().debug({
181
183
  msg: "rewriting http url",
@@ -5,6 +5,13 @@ import type { CloseEvent } from "ws";
5
5
  import type { AnyActorDefinition } from "@/actor/definition";
6
6
  import { inputDataToBuffer } from "@/actor/protocol/old";
7
7
  import { type Encoding, jsonStringifyCompat } from "@/actor/protocol/serde";
8
+ import {
9
+ HEADER_CONN_ID,
10
+ HEADER_CONN_PARAMS,
11
+ HEADER_CONN_TOKEN,
12
+ HEADER_ENCODING,
13
+ PATH_CONNECT_WEBSOCKET,
14
+ } from "@/common/actor-router-consts";
8
15
  import { importEventSource } from "@/common/eventsource";
9
16
  import type {
10
17
  UniversalErrorEvent,
@@ -12,15 +19,9 @@ import type {
12
19
  UniversalMessageEvent,
13
20
  } from "@/common/eventsource-interface";
14
21
  import { assertUnreachable, stringifyError } from "@/common/utils";
15
- import {
16
- HEADER_CONN_ID,
17
- HEADER_CONN_PARAMS,
18
- HEADER_CONN_TOKEN,
19
- HEADER_ENCODING,
20
- type ManagerDriver,
21
- } from "@/driver-helpers/mod";
22
+ import type { UniversalWebSocket } from "@/common/websocket-interface";
23
+ import type { ManagerDriver } from "@/driver-helpers/mod";
22
24
  import type { ActorQuery } from "@/manager/protocol/query";
23
- import { PATH_CONNECT_WEBSOCKET, type UniversalWebSocket } from "@/mod";
24
25
  import type * as protocol from "@/schemas/client-protocol/mod";
25
26
  import {
26
27
  TO_CLIENT_VERSIONED,
@@ -4,7 +4,6 @@ import type { AnyActorDefinition } from "@/actor/definition";
4
4
  import type { Encoding } from "@/actor/protocol/serde";
5
5
  import { assertUnreachable } from "@/actor/utils";
6
6
  import { deconstructError } from "@/common/utils";
7
- import { importWebSocket } from "@/common/websocket";
8
7
  import {
9
8
  HEADER_CONN_PARAMS,
10
9
  HEADER_ENCODING,
@@ -3,7 +3,7 @@ import type { Transport } from "@/actor/protocol/old";
3
3
  import type { Encoding } from "@/actor/protocol/serde";
4
4
  import type { ManagerDriver } from "@/driver-helpers/mod";
5
5
  import type { ActorQuery } from "@/manager/protocol/query";
6
- import type { Registry } from "@/mod";
6
+ import type { Registry } from "@/registry/mod";
7
7
  import type { ActorActionFunction } from "./actor-common";
8
8
  import {
9
9
  type ActorConn,
package/src/client/mod.ts CHANGED
@@ -50,7 +50,7 @@ export function createClient<A extends Registry<any>>(
50
50
  endpointOrConfig === undefined
51
51
  ? {}
52
52
  : typeof endpointOrConfig === "string"
53
- ? { engine: endpointOrConfig }
53
+ ? { endpoint: endpointOrConfig }
54
54
  : endpointOrConfig;
55
55
  const config = ClientConfigSchema.parse(configInput);
56
56
 
@@ -1,5 +1,5 @@
1
1
  import invariant from "invariant";
2
- import { PATH_RAW_WEBSOCKET_PREFIX } from "@/actor/router";
2
+ import { PATH_RAW_WEBSOCKET_PREFIX } from "@/common/actor-router-consts";
3
3
  import { deconstructError } from "@/common/utils";
4
4
  import { HEADER_CONN_PARAMS, type ManagerDriver } from "@/driver-helpers/mod";
5
5
  import type { ActorQuery } from "@/manager/protocol/query";
@@ -79,7 +79,7 @@ export async function rawHttpFetch(
79
79
 
80
80
  // Forward the request to the actor
81
81
  const proxyRequest = new Request(url, {
82
- ...init,
82
+ ...mergedInit,
83
83
  headers: proxyRequestHeaders,
84
84
  });
85
85
 
@@ -1,8 +1,8 @@
1
1
  import * as cbor from "cbor-x";
2
2
  import invariant from "invariant";
3
+ import type { Encoding } from "@/actor/protocol/serde";
3
4
  import { assertUnreachable } from "@/common/utils";
4
5
  import type { VersionedDataHandler } from "@/common/versioned-data";
5
- import type { Encoding } from "@/mod";
6
6
  import type { HttpResponseError } from "@/schemas/client-protocol/mod";
7
7
  import { HTTP_RESPONSE_ERROR_VERSIONED } from "@/schemas/client-protocol/versioned";
8
8
  import {
@@ -0,0 +1,38 @@
1
+ // NOTE: This is in a separate file from the router since it needs to be shared between the client & the server. If this was in the router file, the client would end up importing the *entire* actor router and tree shaking would not work.
2
+
3
+ // MARK: Paths
4
+ export const PATH_CONNECT_WEBSOCKET = "/connect/websocket";
5
+ export const PATH_RAW_WEBSOCKET_PREFIX = "/raw/websocket/";
6
+
7
+ // MARK: Headers
8
+ export const HEADER_ACTOR_QUERY = "X-RivetKit-Query";
9
+
10
+ export const HEADER_ENCODING = "X-RivetKit-Encoding";
11
+
12
+ // IMPORTANT: Params must be in headers or in an E2EE part of the request (i.e. NOT the URL or query string) in order to ensure that tokens can be securely passed in params.
13
+ export const HEADER_CONN_PARAMS = "X-RivetKit-Conn-Params";
14
+
15
+ // Internal header
16
+ export const HEADER_AUTH_DATA = "X-RivetKit-Auth-Data";
17
+
18
+ export const HEADER_ACTOR_ID = "X-RivetKit-Actor";
19
+
20
+ export const HEADER_CONN_ID = "X-RivetKit-Conn";
21
+
22
+ export const HEADER_CONN_TOKEN = "X-RivetKit-Conn-Token";
23
+
24
+ /**
25
+ * Headers that publics can send from public clients.
26
+ *
27
+ * Used for CORS.
28
+ **/
29
+ export const ALLOWED_PUBLIC_HEADERS = [
30
+ "Content-Type",
31
+ "User-Agent",
32
+ HEADER_ACTOR_QUERY,
33
+ HEADER_ENCODING,
34
+ HEADER_CONN_PARAMS,
35
+ HEADER_ACTOR_ID,
36
+ HEADER_CONN_ID,
37
+ HEADER_CONN_TOKEN,
38
+ ];
@@ -8,7 +8,7 @@ export {
8
8
  HEADER_CONN_PARAMS,
9
9
  HEADER_CONN_TOKEN,
10
10
  HEADER_ENCODING,
11
- } from "@/actor/router-endpoints";
11
+ } from "@/common/actor-router-consts";
12
12
  export type {
13
13
  ActorOutput,
14
14
  CreateInput,
@@ -36,7 +36,7 @@ export interface SkipTests {
36
36
 
37
37
  export interface DriverTestConfig {
38
38
  /** Deploys an registry and returns the connection endpoint. */
39
- start(projectDir: string): Promise<DriverDeployOutput>;
39
+ start(): Promise<DriverDeployOutput>;
40
40
 
41
41
  /**
42
42
  * If we're testing with an external system, we should use real timers