rivetkit 2.0.22 → 2.0.23

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/schemas/actor-persist/v2.ts +29 -26
  2. package/dist/tsup/{chunk-2K2LR56Q.js → chunk-3I6ZIJVJ.js} +3 -3
  3. package/dist/tsup/{chunk-B4QZKOMH.cjs → chunk-3JYSUFET.cjs} +24 -10
  4. package/dist/tsup/chunk-3JYSUFET.cjs.map +1 -0
  5. package/dist/tsup/{chunk-CYA35VI3.cjs → chunk-54DVMQPT.cjs} +6 -6
  6. package/dist/tsup/{chunk-CYA35VI3.cjs.map → chunk-54DVMQPT.cjs.map} +1 -1
  7. package/dist/tsup/{chunk-WWAZJHTS.js → chunk-5PKKNNNS.js} +279 -9
  8. package/dist/tsup/chunk-5PKKNNNS.js.map +1 -0
  9. package/dist/tsup/{chunk-D7AA2DK5.js → chunk-5UJQWWO3.js} +2 -2
  10. package/dist/tsup/{chunk-V6C34TVH.cjs → chunk-C56XVVV4.cjs} +280 -10
  11. package/dist/tsup/chunk-C56XVVV4.cjs.map +1 -0
  12. package/dist/tsup/{chunk-HSO2H2SB.cjs → chunk-D6PCH7FR.cjs} +561 -487
  13. package/dist/tsup/chunk-D6PCH7FR.cjs.map +1 -0
  14. package/dist/tsup/{chunk-TQ4OAC2G.js → chunk-DLYZKFRY.js} +2 -2
  15. package/dist/tsup/{chunk-3BJJSSTM.js → chunk-FTQ62XTN.js} +373 -299
  16. package/dist/tsup/chunk-FTQ62XTN.js.map +1 -0
  17. package/dist/tsup/{chunk-3LFMVAJV.cjs → chunk-HNYF4T36.cjs} +14 -14
  18. package/dist/tsup/{chunk-3LFMVAJV.cjs.map → chunk-HNYF4T36.cjs.map} +1 -1
  19. package/dist/tsup/{chunk-TI72NLP3.cjs → chunk-JMLTKMJ7.cjs} +48 -44
  20. package/dist/tsup/chunk-JMLTKMJ7.cjs.map +1 -0
  21. package/dist/tsup/{chunk-AR4S2QJ7.cjs → chunk-NCUALX2Q.cjs} +3 -3
  22. package/dist/tsup/{chunk-AR4S2QJ7.cjs.map → chunk-NCUALX2Q.cjs.map} +1 -1
  23. package/dist/tsup/{chunk-UB4OHFDW.js → chunk-NOZSCUPQ.js} +99 -50
  24. package/dist/tsup/chunk-NOZSCUPQ.js.map +1 -0
  25. package/dist/tsup/{chunk-PBFLG45S.js → chunk-PHNIVSG5.js} +19 -5
  26. package/dist/tsup/chunk-PHNIVSG5.js.map +1 -0
  27. package/dist/tsup/{chunk-EBSGEDD3.js → chunk-RUTBXBRR.js} +27 -23
  28. package/dist/tsup/{chunk-EBSGEDD3.js.map → chunk-RUTBXBRR.js.map} +1 -1
  29. package/dist/tsup/{chunk-2WVCZCJL.js → chunk-RVVUS4X6.js} +6 -6
  30. package/dist/tsup/{chunk-LMZSOCYD.cjs → chunk-SN4KWTRA.cjs} +12 -12
  31. package/dist/tsup/{chunk-LMZSOCYD.cjs.map → chunk-SN4KWTRA.cjs.map} +1 -1
  32. package/dist/tsup/{chunk-2GJILCGQ.cjs → chunk-XSDSNHSE.cjs} +3 -3
  33. package/dist/tsup/{chunk-2GJILCGQ.cjs.map → chunk-XSDSNHSE.cjs.map} +1 -1
  34. package/dist/tsup/{chunk-WVUAO2F7.cjs → chunk-XYK5PY3B.cjs} +283 -234
  35. package/dist/tsup/chunk-XYK5PY3B.cjs.map +1 -0
  36. package/dist/tsup/{chunk-6YQKMAMV.js → chunk-YAYNBR37.js} +2 -2
  37. package/dist/tsup/client/mod.cjs +8 -9
  38. package/dist/tsup/client/mod.cjs.map +1 -1
  39. package/dist/tsup/client/mod.d.cts +2 -2
  40. package/dist/tsup/client/mod.d.ts +2 -2
  41. package/dist/tsup/client/mod.js +7 -8
  42. package/dist/tsup/common/log.cjs +2 -3
  43. package/dist/tsup/common/log.cjs.map +1 -1
  44. package/dist/tsup/common/log.js +1 -2
  45. package/dist/tsup/common/websocket.cjs +3 -4
  46. package/dist/tsup/common/websocket.cjs.map +1 -1
  47. package/dist/tsup/common/websocket.js +2 -3
  48. package/dist/tsup/{conn-BYXlxnh0.d.ts → conn-B3Vhbgnd.d.ts} +5 -1
  49. package/dist/tsup/{conn-BiazosE_.d.cts → conn-DJWL3nGx.d.cts} +5 -1
  50. package/dist/tsup/driver-helpers/mod.cjs +4 -5
  51. package/dist/tsup/driver-helpers/mod.cjs.map +1 -1
  52. package/dist/tsup/driver-helpers/mod.d.cts +1 -1
  53. package/dist/tsup/driver-helpers/mod.d.ts +1 -1
  54. package/dist/tsup/driver-helpers/mod.js +3 -4
  55. package/dist/tsup/driver-test-suite/mod.cjs +70 -72
  56. package/dist/tsup/driver-test-suite/mod.cjs.map +1 -1
  57. package/dist/tsup/driver-test-suite/mod.d.cts +1 -1
  58. package/dist/tsup/driver-test-suite/mod.d.ts +1 -1
  59. package/dist/tsup/driver-test-suite/mod.js +11 -13
  60. package/dist/tsup/driver-test-suite/mod.js.map +1 -1
  61. package/dist/tsup/inspector/mod.cjs +5 -6
  62. package/dist/tsup/inspector/mod.cjs.map +1 -1
  63. package/dist/tsup/inspector/mod.d.cts +2 -2
  64. package/dist/tsup/inspector/mod.d.ts +2 -2
  65. package/dist/tsup/inspector/mod.js +4 -5
  66. package/dist/tsup/mod.cjs +9 -10
  67. package/dist/tsup/mod.cjs.map +1 -1
  68. package/dist/tsup/mod.d.cts +4 -4
  69. package/dist/tsup/mod.d.ts +4 -4
  70. package/dist/tsup/mod.js +8 -9
  71. package/dist/tsup/test/mod.cjs +10 -11
  72. package/dist/tsup/test/mod.cjs.map +1 -1
  73. package/dist/tsup/test/mod.d.cts +1 -1
  74. package/dist/tsup/test/mod.d.ts +1 -1
  75. package/dist/tsup/test/mod.js +9 -10
  76. package/dist/tsup/utils.cjs +2 -2
  77. package/dist/tsup/utils.js +1 -1
  78. package/package.json +2 -2
  79. package/src/actor/conn-drivers.ts +0 -32
  80. package/src/actor/conn-socket.ts +2 -0
  81. package/src/actor/conn.ts +13 -12
  82. package/src/actor/instance.ts +164 -36
  83. package/src/actor/persisted.ts +4 -1
  84. package/src/actor/router-endpoints.ts +14 -0
  85. package/src/actor/router.ts +2 -0
  86. package/src/actor/utils.test.ts +48 -0
  87. package/src/actor/utils.ts +23 -0
  88. package/src/drivers/engine/actor-driver.ts +97 -35
  89. package/src/drivers/file-system/manager.ts +4 -0
  90. package/src/schemas/actor-persist/versioned.ts +4 -0
  91. package/src/utils.ts +15 -6
  92. package/dist/tsup/chunk-3BJJSSTM.js.map +0 -1
  93. package/dist/tsup/chunk-B4QZKOMH.cjs.map +0 -1
  94. package/dist/tsup/chunk-HSO2H2SB.cjs.map +0 -1
  95. package/dist/tsup/chunk-HZ4ZM3FL.cjs +0 -269
  96. package/dist/tsup/chunk-HZ4ZM3FL.cjs.map +0 -1
  97. package/dist/tsup/chunk-PBFLG45S.js.map +0 -1
  98. package/dist/tsup/chunk-ST6FGRCH.js +0 -269
  99. package/dist/tsup/chunk-ST6FGRCH.js.map +0 -1
  100. package/dist/tsup/chunk-TI72NLP3.cjs.map +0 -1
  101. package/dist/tsup/chunk-UB4OHFDW.js.map +0 -1
  102. package/dist/tsup/chunk-V6C34TVH.cjs.map +0 -1
  103. package/dist/tsup/chunk-WVUAO2F7.cjs.map +0 -1
  104. package/dist/tsup/chunk-WWAZJHTS.js.map +0 -1
  105. /package/dist/tsup/{chunk-2K2LR56Q.js.map → chunk-3I6ZIJVJ.js.map} +0 -0
  106. /package/dist/tsup/{chunk-D7AA2DK5.js.map → chunk-5UJQWWO3.js.map} +0 -0
  107. /package/dist/tsup/{chunk-TQ4OAC2G.js.map → chunk-DLYZKFRY.js.map} +0 -0
  108. /package/dist/tsup/{chunk-2WVCZCJL.js.map → chunk-RVVUS4X6.js.map} +0 -0
  109. /package/dist/tsup/{chunk-6YQKMAMV.js.map → chunk-YAYNBR37.js.map} +0 -0
@@ -2,7 +2,7 @@ import * as bare from "@bare-ts/lib"
2
2
 
3
3
  const config = /* @__PURE__ */ bare.Config({})
4
4
 
5
- export type u64 = bigint
5
+ export type i64 = bigint
6
6
 
7
7
  export type PersistedSubscription = {
8
8
  readonly eventName: string,
@@ -35,13 +35,27 @@ function write0(bc: bare.ByteCursor, x: readonly PersistedSubscription[]): void
35
35
  }
36
36
  }
37
37
 
38
+ function read1(bc: bare.ByteCursor): ArrayBuffer | null {
39
+ return bare.readBool(bc)
40
+ ? bare.readData(bc)
41
+ : null
42
+ }
43
+
44
+ function write1(bc: bare.ByteCursor, x: ArrayBuffer | null): void {
45
+ bare.writeBool(bc, x !== null)
46
+ if (x !== null) {
47
+ bare.writeData(bc, x)
48
+ }
49
+ }
50
+
38
51
  export type PersistedConnection = {
39
52
  readonly id: string,
40
53
  readonly token: string,
41
54
  readonly parameters: ArrayBuffer,
42
55
  readonly state: ArrayBuffer,
43
56
  readonly subscriptions: readonly PersistedSubscription[],
44
- readonly lastSeen: u64,
57
+ readonly lastSeen: i64,
58
+ readonly hibernatableRequestId: ArrayBuffer | null,
45
59
  }
46
60
 
47
61
  export function readPersistedConnection(bc: bare.ByteCursor): PersistedConnection {
@@ -51,7 +65,8 @@ export function readPersistedConnection(bc: bare.ByteCursor): PersistedConnectio
51
65
  parameters: bare.readData(bc),
52
66
  state: bare.readData(bc),
53
67
  subscriptions: read0(bc),
54
- lastSeen: bare.readU64(bc),
68
+ lastSeen: bare.readI64(bc),
69
+ hibernatableRequestId: read1(bc),
55
70
  }
56
71
  }
57
72
 
@@ -61,20 +76,8 @@ export function writePersistedConnection(bc: bare.ByteCursor, x: PersistedConnec
61
76
  bare.writeData(bc, x.parameters)
62
77
  bare.writeData(bc, x.state)
63
78
  write0(bc, x.subscriptions)
64
- bare.writeU64(bc, x.lastSeen)
65
- }
66
-
67
- function read1(bc: bare.ByteCursor): ArrayBuffer | null {
68
- return bare.readBool(bc)
69
- ? bare.readData(bc)
70
- : null
71
- }
72
-
73
- function write1(bc: bare.ByteCursor, x: ArrayBuffer | null): void {
74
- bare.writeBool(bc, x !== null)
75
- if (x !== null) {
76
- bare.writeData(bc, x)
77
- }
79
+ bare.writeI64(bc, x.lastSeen)
80
+ write1(bc, x.hibernatableRequestId)
78
81
  }
79
82
 
80
83
  export type GenericPersistedScheduleEvent = {
@@ -122,42 +125,42 @@ export function writePersistedScheduleEventKind(bc: bare.ByteCursor, x: Persiste
122
125
 
123
126
  export type PersistedScheduleEvent = {
124
127
  readonly eventId: string,
125
- readonly timestamp: u64,
128
+ readonly timestamp: i64,
126
129
  readonly kind: PersistedScheduleEventKind,
127
130
  }
128
131
 
129
132
  export function readPersistedScheduleEvent(bc: bare.ByteCursor): PersistedScheduleEvent {
130
133
  return {
131
134
  eventId: bare.readString(bc),
132
- timestamp: bare.readU64(bc),
135
+ timestamp: bare.readI64(bc),
133
136
  kind: readPersistedScheduleEventKind(bc),
134
137
  }
135
138
  }
136
139
 
137
140
  export function writePersistedScheduleEvent(bc: bare.ByteCursor, x: PersistedScheduleEvent): void {
138
141
  bare.writeString(bc, x.eventId)
139
- bare.writeU64(bc, x.timestamp)
142
+ bare.writeI64(bc, x.timestamp)
140
143
  writePersistedScheduleEventKind(bc, x.kind)
141
144
  }
142
145
 
143
146
  export type PersistedHibernatableWebSocket = {
144
147
  readonly requestId: ArrayBuffer,
145
- readonly lastSeenTimestamp: u64,
146
- readonly msgIndex: u64,
148
+ readonly lastSeenTimestamp: i64,
149
+ readonly msgIndex: i64,
147
150
  }
148
151
 
149
152
  export function readPersistedHibernatableWebSocket(bc: bare.ByteCursor): PersistedHibernatableWebSocket {
150
153
  return {
151
154
  requestId: bare.readData(bc),
152
- lastSeenTimestamp: bare.readU64(bc),
153
- msgIndex: bare.readU64(bc),
155
+ lastSeenTimestamp: bare.readI64(bc),
156
+ msgIndex: bare.readI64(bc),
154
157
  }
155
158
  }
156
159
 
157
160
  export function writePersistedHibernatableWebSocket(bc: bare.ByteCursor, x: PersistedHibernatableWebSocket): void {
158
161
  bare.writeData(bc, x.requestId)
159
- bare.writeU64(bc, x.lastSeenTimestamp)
160
- bare.writeU64(bc, x.msgIndex)
162
+ bare.writeI64(bc, x.lastSeenTimestamp)
163
+ bare.writeI64(bc, x.msgIndex)
161
164
  }
162
165
 
163
166
  function read2(bc: bare.ByteCursor): readonly PersistedConnection[] {
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  RemoteManagerDriver,
3
3
  createClientWithDriver
4
- } from "./chunk-3BJJSSTM.js";
4
+ } from "./chunk-FTQ62XTN.js";
5
5
  import {
6
6
  ClientConfigSchema
7
- } from "./chunk-EBSGEDD3.js";
7
+ } from "./chunk-RUTBXBRR.js";
8
8
 
9
9
  // src/client/mod.ts
10
10
  function createClient(endpointOrConfig) {
@@ -17,4 +17,4 @@ function createClient(endpointOrConfig) {
17
17
  export {
18
18
  createClient
19
19
  };
20
- //# sourceMappingURL=chunk-2K2LR56Q.js.map
20
+ //# sourceMappingURL=chunk-3I6ZIJVJ.js.map
@@ -1,16 +1,14 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
2
 
3
- var _chunkHZ4ZM3FLcjs = require('./chunk-HZ4ZM3FL.cjs');
4
3
 
5
-
6
- var _chunkV6C34TVHcjs = require('./chunk-V6C34TVH.cjs');
4
+ var _chunkC56XVVV4cjs = require('./chunk-C56XVVV4.cjs');
7
5
 
8
6
 
9
7
  var _chunkKSRXX3Z4cjs = require('./chunk-KSRXX3Z4.cjs');
10
8
 
11
9
  // src/actor/log.ts
12
10
  function loggerWithoutContext() {
13
- return _chunkHZ4ZM3FLcjs.getLogger.call(void 0, "actor-runtime");
11
+ return _chunkC56XVVV4cjs.getLogger.call(void 0, "actor-runtime");
14
12
  }
15
13
 
16
14
  // src/actor/utils.ts
@@ -54,6 +52,20 @@ function generateRandomString(length = 32) {
54
52
  }
55
53
  return result;
56
54
  }
55
+ function isStatePath(path) {
56
+ return path === "state" || path.startsWith("state.");
57
+ }
58
+ function isConnStatePath(path) {
59
+ if (!path.startsWith("connections.")) {
60
+ return false;
61
+ }
62
+ const stateIndex = path.indexOf(".state", 12);
63
+ if (stateIndex === -1) {
64
+ return false;
65
+ }
66
+ const afterState = stateIndex + 6;
67
+ return path.length === afterState || path[afterState] === ".";
68
+ }
57
69
 
58
70
  // src/common/actor-router-consts.ts
59
71
  var PATH_CONNECT_WEBSOCKET = "/connect/websocket";
@@ -218,7 +230,7 @@ function encodingIsBinary(encoding) {
218
230
  } else if (encoding === "cbor" || encoding === "bare") {
219
231
  return true;
220
232
  } else {
221
- _chunkV6C34TVHcjs.assertUnreachable.call(void 0, encoding);
233
+ _chunkC56XVVV4cjs.assertUnreachable.call(void 0, encoding);
222
234
  }
223
235
  }
224
236
  function contentTypeForEncoding(encoding) {
@@ -227,7 +239,7 @@ function contentTypeForEncoding(encoding) {
227
239
  } else if (encoding === "cbor" || encoding === "bare") {
228
240
  return "application/octet-stream";
229
241
  } else {
230
- _chunkV6C34TVHcjs.assertUnreachable.call(void 0, encoding);
242
+ _chunkC56XVVV4cjs.assertUnreachable.call(void 0, encoding);
231
243
  }
232
244
  }
233
245
  function serializeWithEncoding(encoding, value, versionedDataHandler) {
@@ -243,7 +255,7 @@ function serializeWithEncoding(encoding, value, versionedDataHandler) {
243
255
  }
244
256
  return versionedDataHandler.serializeWithEmbeddedVersion(value);
245
257
  } else {
246
- _chunkV6C34TVHcjs.assertUnreachable.call(void 0, encoding);
258
+ _chunkC56XVVV4cjs.assertUnreachable.call(void 0, encoding);
247
259
  }
248
260
  }
249
261
  function deserializeWithEncoding(encoding, buffer, versionedDataHandler) {
@@ -273,7 +285,7 @@ function deserializeWithEncoding(encoding, buffer, versionedDataHandler) {
273
285
  }
274
286
  return versionedDataHandler.deserializeWithEmbeddedVersion(buffer);
275
287
  } else {
276
- _chunkV6C34TVHcjs.assertUnreachable.call(void 0, encoding);
288
+ _chunkC56XVVV4cjs.assertUnreachable.call(void 0, encoding);
277
289
  }
278
290
  }
279
291
 
@@ -315,5 +327,7 @@ function deserializeWithEncoding(encoding, buffer, versionedDataHandler) {
315
327
 
316
328
 
317
329
 
318
- exports.uint8ArrayToBase64 = uint8ArrayToBase64; exports.encodingIsBinary = encodingIsBinary; exports.contentTypeForEncoding = contentTypeForEncoding; exports.serializeWithEncoding = serializeWithEncoding; exports.deserializeWithEncoding = deserializeWithEncoding; exports.loggerWithoutContext = loggerWithoutContext; exports.assertUnreachable = assertUnreachable2; exports.DeadlineError = DeadlineError; exports.deadline = deadline; exports.generateSecureToken = generateSecureToken; exports.generateRandomString = generateRandomString; exports.EncodingSchema = EncodingSchema; exports.CachedSerializer = CachedSerializer; exports.encodeDataToString = encodeDataToString; exports.jsonStringifyCompat = jsonStringifyCompat; exports.PATH_CONNECT_WEBSOCKET = PATH_CONNECT_WEBSOCKET; exports.PATH_RAW_WEBSOCKET_PREFIX = PATH_RAW_WEBSOCKET_PREFIX; exports.HEADER_ACTOR_QUERY = HEADER_ACTOR_QUERY; exports.HEADER_ENCODING = HEADER_ENCODING; exports.HEADER_CONN_PARAMS = HEADER_CONN_PARAMS; exports.HEADER_ACTOR_ID = HEADER_ACTOR_ID; exports.HEADER_CONN_ID = HEADER_CONN_ID; exports.HEADER_CONN_TOKEN = HEADER_CONN_TOKEN; exports.HEADER_RIVET_TOKEN = HEADER_RIVET_TOKEN; exports.HEADER_RIVET_TARGET = HEADER_RIVET_TARGET; exports.HEADER_RIVET_ACTOR = HEADER_RIVET_ACTOR; exports.WS_PROTOCOL_STANDARD = WS_PROTOCOL_STANDARD; exports.WS_PROTOCOL_TARGET = WS_PROTOCOL_TARGET; exports.WS_PROTOCOL_ACTOR = WS_PROTOCOL_ACTOR; exports.WS_PROTOCOL_ENCODING = WS_PROTOCOL_ENCODING; exports.WS_PROTOCOL_CONN_PARAMS = WS_PROTOCOL_CONN_PARAMS; exports.WS_PROTOCOL_CONN_ID = WS_PROTOCOL_CONN_ID; exports.WS_PROTOCOL_CONN_TOKEN = WS_PROTOCOL_CONN_TOKEN; exports.WS_PROTOCOL_TOKEN = WS_PROTOCOL_TOKEN; exports.WS_PROTOCOL_TRANSPORT = WS_PROTOCOL_TRANSPORT; exports.WS_PROTOCOL_PATH = WS_PROTOCOL_PATH; exports.ALLOWED_PUBLIC_HEADERS = ALLOWED_PUBLIC_HEADERS;
319
- //# sourceMappingURL=chunk-B4QZKOMH.cjs.map
330
+
331
+
332
+ exports.uint8ArrayToBase64 = uint8ArrayToBase64; exports.encodingIsBinary = encodingIsBinary; exports.contentTypeForEncoding = contentTypeForEncoding; exports.serializeWithEncoding = serializeWithEncoding; exports.deserializeWithEncoding = deserializeWithEncoding; exports.loggerWithoutContext = loggerWithoutContext; exports.assertUnreachable = assertUnreachable2; exports.DeadlineError = DeadlineError; exports.deadline = deadline; exports.generateSecureToken = generateSecureToken; exports.generateRandomString = generateRandomString; exports.isStatePath = isStatePath; exports.isConnStatePath = isConnStatePath; exports.EncodingSchema = EncodingSchema; exports.CachedSerializer = CachedSerializer; exports.encodeDataToString = encodeDataToString; exports.jsonStringifyCompat = jsonStringifyCompat; exports.PATH_CONNECT_WEBSOCKET = PATH_CONNECT_WEBSOCKET; exports.PATH_RAW_WEBSOCKET_PREFIX = PATH_RAW_WEBSOCKET_PREFIX; exports.HEADER_ACTOR_QUERY = HEADER_ACTOR_QUERY; exports.HEADER_ENCODING = HEADER_ENCODING; exports.HEADER_CONN_PARAMS = HEADER_CONN_PARAMS; exports.HEADER_ACTOR_ID = HEADER_ACTOR_ID; exports.HEADER_CONN_ID = HEADER_CONN_ID; exports.HEADER_CONN_TOKEN = HEADER_CONN_TOKEN; exports.HEADER_RIVET_TOKEN = HEADER_RIVET_TOKEN; exports.HEADER_RIVET_TARGET = HEADER_RIVET_TARGET; exports.HEADER_RIVET_ACTOR = HEADER_RIVET_ACTOR; exports.WS_PROTOCOL_STANDARD = WS_PROTOCOL_STANDARD; exports.WS_PROTOCOL_TARGET = WS_PROTOCOL_TARGET; exports.WS_PROTOCOL_ACTOR = WS_PROTOCOL_ACTOR; exports.WS_PROTOCOL_ENCODING = WS_PROTOCOL_ENCODING; exports.WS_PROTOCOL_CONN_PARAMS = WS_PROTOCOL_CONN_PARAMS; exports.WS_PROTOCOL_CONN_ID = WS_PROTOCOL_CONN_ID; exports.WS_PROTOCOL_CONN_TOKEN = WS_PROTOCOL_CONN_TOKEN; exports.WS_PROTOCOL_TOKEN = WS_PROTOCOL_TOKEN; exports.WS_PROTOCOL_TRANSPORT = WS_PROTOCOL_TRANSPORT; exports.WS_PROTOCOL_PATH = WS_PROTOCOL_PATH; exports.ALLOWED_PUBLIC_HEADERS = ALLOWED_PUBLIC_HEADERS;
333
+ //# sourceMappingURL=chunk-3JYSUFET.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-3JYSUFET.cjs","../../src/actor/log.ts","../../src/actor/utils.ts","../../src/common/actor-router-consts.ts","../../src/serde.ts","../../src/actor/protocol/serde.ts"],"names":["assertUnreachable"],"mappings":"AAAA;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACLO,SAAS,oBAAA,CAAA,EAAuB;AACtC,EAAA,OAAO,yCAAA,eAAyB,CAAA;AACjC;ADOA;AACA;AEVO,SAASA,kBAAAA,CAAkB,CAAA,EAAiB;AAClD,EAAA,oBAAA,CAAqB,CAAA,CAAE,KAAA,CAAM;AAAA,IAC5B,GAAA,EAAK,aAAA;AAAA,IACL,KAAA,EAAO,CAAA,EAAA;AACA,IAAA;AACP,EAAA;AACgB,EAAA;AAClB;AA+Ba;AACZ,EAAA;AACO,IAAA;AACP,EAAA;AACD;AAEgB;AACT,EAAA;AACA,EAAA;AAGA,EAAA;AAEC,EAAA;AACN,IAAA;AACI,IAAA;AACH,MAAA;AACA,IAAA;AACC,EAAA;AACF,IAAA;AACA,EAAA;AACF;AAwBgB;AACT,EAAA;AACC,EAAA;AAEA,EAAA;AAIR;AAEgB;AACT,EAAA;AAEF,EAAA;AACK,EAAA;AACF,IAAA;AACN,IAAA;AACD,EAAA;AACO,EAAA;AACR;AAKgB;AACR,EAAA;AACR;AAKgB;AACL,EAAA;AACF,IAAA;AACR,EAAA;AACM,EAAA;AACF,EAAA;AACI,IAAA;AACR,EAAA;AACM,EAAA;AAEC,EAAA;AACR;AF5DY;AACA;AGlEC;AACA;AAGA;AAEA;AAGA;AAEA;AAEA;AAEA;AAEA;AAGA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAOA;AACZ,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACD;AH8CY;AACA;AI3GA;AACL;AJ6GK;AACA;AK9GH;AAaI;AAUA;AACZ,EAAA;AACS,EAAA;AACT,EAAA;AAEA,EAAA;AACM,IAAA;AACA,IAAA;AACN,EAAA;AAEW,EAAA;AACH,IAAA;AACR,EAAA;AAEiB,EAAA;AACV,IAAA;AACF,IAAA;AACH,MAAA;AACM,IAAA;AACA,MAAA;AACL,QAAA;AACA,QAAA;AACA,QAAA;AACD,MAAA;AACK,MAAA;AACL,MAAA;AACD,IAAA;AACD,EAAA;AACD;AA8CS;AACJ,EAAA;AACE,EAAA;AACG,EAAA;AACR,IAAA;AACD,EAAA;AACO,EAAA;AACR;AAES;AACF,EAAA;AACC,EAAA;AACR;AAGgB;AACX,EAAA;AACI,IAAA;AACR,EAAA;AACQ,IAAA;AACR,EAAA;AACQ,IAAA;AACD,EAAA;AACNA,IAAAA;AACD,EAAA;AACD;AAES;AAEJ,EAAA;AACI,IAAA;AACR,EAAA;AAGM,EAAA;AACA,EAAA;AACA,EAAA;AACG,EAAA;AACD,IAAA;AACR,EAAA;AACO,EAAA;AACR;AAES;AACD,EAAA;AACR;AAGgB;AACR,EAAA;AACF,IAAA;AACH,MAAA;AACD,IAAA;AACC,MAAA;AACD,IAAA;AACC,MAAA;AACD,IAAA;AAIC,IAAA;AAKA,MAAA;AACD,IAAA;AAEO,IAAA;AACP,EAAA;AACF;AAGgB;AACR,EAAA;AAGL,IAAA;AAMI,MAAA;AACH,QAAA;AACD,MAAA;AACC,QAAA;AACD,MAAA;AACC,QAAA;AACD,MAAA;AAGI,MAAA;AACH,QAAA;AACD,MAAA;AAGM,MAAA;AACL,QAAA;AACD,MAAA;AACD,IAAA;AAEO,IAAA;AACP,EAAA;AACF;ALWY;AACA;AI/MI;AAEX,EAAA;AACI,IAAA;AACR,EAAA;AAGI,EAAA;AACE,EAAA;AACG,EAAA;AACR,IAAA;AACD,EAAA;AACO,EAAA;AACR;AAEgB;AACX,EAAA;AACI,IAAA;AACR,EAAA;AACQ,IAAA;AACD,EAAA;AACN,IAAA;AACD,EAAA;AACD;AAEgB;AACX,EAAA;AACI,IAAA;AACR,EAAA;AACQ,IAAA;AACD,EAAA;AACN,IAAA;AACD,EAAA;AACD;AAcgB;AAKX,EAAA;AACI,IAAA;AACR,EAAA;AACa,IAAA;AACb,EAAA;AACM,IAAA;AACE,MAAA;AACL,QAAA;AACD,MAAA;AACD,IAAA;AACO,IAAA;AACD,EAAA;AACN,IAAA;AACD,EAAA;AACD;AAEgB;AAKX,EAAA;AACC,IAAA;AACH,MAAA;AACM,IAAA;AACA,MAAA;AACA,MAAA;AACN,MAAA;AACD,IAAA;AACD,EAAA;AACC,IAAA;AACC,MAAA;AACA,MAAA;AACD,IAAA;AACY,IAAA;AACb,EAAA;AACC,IAAA;AACC,MAAA;AACA,MAAA;AACD,IAAA;AACK,IAAA;AACE,MAAA;AACL,QAAA;AACD,MAAA;AACD,IAAA;AACO,IAAA;AACD,EAAA;AACN,IAAA;AACD,EAAA;AACD;AJsLY;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-3JYSUFET.cjs","sourcesContent":[null,"import { getLogger } from \"@/common/log\";\n\n/** Prever to use ActorInstance.rlog child logger. This does not provide context in the log, should only be used as a last resort if you cannot pass the actor's child logger. */\nexport function loggerWithoutContext() {\n\treturn getLogger(\"actor-runtime\");\n}\n","import * as errors from \"./errors\";\nimport { loggerWithoutContext } from \"./log\";\n\nexport function assertUnreachable(x: never): never {\n\tloggerWithoutContext().error({\n\t\tmsg: \"unreachable\",\n\t\tvalue: `${x}`,\n\t\tstack: new Error().stack,\n\t});\n\tthrow new errors.Unreachable(x);\n}\n\nexport const throttle = <\n\t// biome-ignore lint/suspicious/noExplicitAny: we want to allow any function\n\tFn extends (...args: any) => any,\n>(\n\tfn: Fn,\n\tdelay: number,\n) => {\n\tlet lastRan = false;\n\tlet lastArgs: Parameters<Fn> | null = null;\n\n\treturn (...args: Parameters<Fn>) => {\n\t\tif (!lastRan) {\n\t\t\tfn.apply(this, args);\n\t\t\tlastRan = true;\n\t\t\tconst timer = () =>\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tlastRan = false;\n\t\t\t\t\tif (lastArgs) {\n\t\t\t\t\t\tfn.apply(this, lastArgs);\n\t\t\t\t\t\tlastRan = true;\n\t\t\t\t\t\tlastArgs = null;\n\t\t\t\t\t\ttimer();\n\t\t\t\t\t}\n\t\t\t\t}, delay);\n\t\t\ttimer();\n\t\t} else lastArgs = args;\n\t};\n};\n\nexport class DeadlineError extends Error {\n\tconstructor() {\n\t\tsuper(\"Promise did not complete before deadline.\");\n\t}\n}\n\nexport function deadline<T>(promise: Promise<T>, timeout: number): Promise<T> {\n\tconst controller = new AbortController();\n\tconst signal = controller.signal;\n\n\t// Set a timeout to abort the operation\n\tconst timeoutId = setTimeout(() => controller.abort(), timeout);\n\n\treturn Promise.race<T>([\n\t\tpromise,\n\t\tnew Promise<T>((_, reject) => {\n\t\t\tsignal.addEventListener(\"abort\", () => reject(new DeadlineError()));\n\t\t}),\n\t]).finally(() => {\n\t\tclearTimeout(timeoutId);\n\t});\n}\n\nexport class Lock<T> {\n\tprivate _locked = false;\n\tprivate _waiting: Array<() => void> = [];\n\n\tconstructor(private _value: T) {}\n\n\tasync lock(fn: (value: T) => Promise<void>): Promise<void> {\n\t\tif (this._locked) {\n\t\t\tawait new Promise<void>((resolve) => this._waiting.push(resolve));\n\t\t}\n\t\tthis._locked = true;\n\n\t\ttry {\n\t\t\tawait fn(this._value);\n\t\t} finally {\n\t\t\tthis._locked = false;\n\t\t\tconst next = this._waiting.shift();\n\t\t\tif (next) next();\n\t\t}\n\t}\n}\n\nexport function generateSecureToken(length = 32) {\n\tconst array = new Uint8Array(length);\n\tcrypto.getRandomValues(array);\n\t// Replace base64 chars that are not URL safe with URL-safe chars and strip padding\n\treturn btoa(String.fromCharCode(...array))\n\t\t.replace(/\\+/g, \"-\")\n\t\t.replace(/\\//g, \"_\")\n\t\t.replace(/=/g, \"\");\n}\n\nexport function generateRandomString(length = 32) {\n\tconst characters =\n\t\t\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n\tlet result = \"\";\n\tfor (let i = 0; i < length; i++) {\n\t\tconst randomIndex = Math.floor(Math.random() * characters.length);\n\t\tresult += characters[randomIndex];\n\t}\n\treturn result;\n}\n\n/**\n * Checks if a path is an actor state path within the persisted actor data.\n */\nexport function isStatePath(path: string): boolean {\n\treturn path === \"state\" || path.startsWith(\"state.\");\n}\n\n/**\n * Checks if a path is a connection state path within the persisted actor data.\n */\nexport function isConnStatePath(path: string): boolean {\n\tif (!path.startsWith(\"connections.\")) {\n\t\treturn false;\n\t}\n\tconst stateIndex = path.indexOf(\".state\", 12); // Start after \"connections.\"\n\tif (stateIndex === -1) {\n\t\treturn false;\n\t}\n\tconst afterState = stateIndex + 6; // \".state\".length = 6\n\t// Check if \".state\" is followed by end of string or \".\"\n\treturn path.length === afterState || path[afterState] === \".\";\n}\n","// 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.\n\n// MARK: Paths\nexport const PATH_CONNECT_WEBSOCKET = \"/connect/websocket\";\nexport const PATH_RAW_WEBSOCKET_PREFIX = \"/raw/websocket/\";\n\n// MARK: Headers\nexport const HEADER_ACTOR_QUERY = \"x-rivet-query\";\n\nexport const HEADER_ENCODING = \"x-rivet-encoding\";\n\n// 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.\nexport const HEADER_CONN_PARAMS = \"x-rivet-conn-params\";\n\nexport const HEADER_ACTOR_ID = \"x-rivet-actor\";\n\nexport const HEADER_CONN_ID = \"x-rivet-conn\";\n\nexport const HEADER_CONN_TOKEN = \"x-rivet-conn-token\";\n\nexport const HEADER_RIVET_TOKEN = \"x-rivet-token\";\n\n// MARK: Manager Gateway Headers\nexport const HEADER_RIVET_TARGET = \"x-rivet-target\";\nexport const HEADER_RIVET_ACTOR = \"x-rivet-actor\";\nexport const HEADER_RIVET_NAMESPACE = \"x-rivet-namespace\";\n\n// MARK: WebSocket Protocol Prefixes\n/** Some servers (such as node-ws & Cloudflare) require explicitly match a certain WebSocket protocol. This gives us a static protocol to match against. */\nexport const WS_PROTOCOL_STANDARD = \"rivet\";\nexport const WS_PROTOCOL_TARGET = \"rivet_target.\";\nexport const WS_PROTOCOL_ACTOR = \"rivet_actor.\";\nexport const WS_PROTOCOL_ENCODING = \"rivet_encoding.\";\nexport const WS_PROTOCOL_CONN_PARAMS = \"rivet_conn_params.\";\nexport const WS_PROTOCOL_CONN_ID = \"rivet_conn.\";\nexport const WS_PROTOCOL_CONN_TOKEN = \"rivet_conn_token.\";\nexport const WS_PROTOCOL_TOKEN = \"rivet_token.\";\n\n// MARK: WebSocket Inline Test Protocol Prefixes\nexport const WS_PROTOCOL_TRANSPORT = \"test_transport.\";\nexport const WS_PROTOCOL_PATH = \"test_path.\";\n\n/**\n * Headers that publics can send from public clients.\n *\n * Used for CORS.\n **/\nexport const ALLOWED_PUBLIC_HEADERS = [\n\t\"Content-Type\",\n\t\"User-Agent\",\n\tHEADER_ACTOR_QUERY,\n\tHEADER_ENCODING,\n\tHEADER_CONN_PARAMS,\n\tHEADER_ACTOR_ID,\n\tHEADER_CONN_ID,\n\tHEADER_CONN_TOKEN,\n\tHEADER_RIVET_TARGET,\n\tHEADER_RIVET_ACTOR,\n\tHEADER_RIVET_NAMESPACE,\n\tHEADER_RIVET_TOKEN,\n];\n","import * as cbor from \"cbor-x\";\nimport invariant from \"invariant\";\nimport { assertUnreachable } from \"@/common/utils\";\nimport type { VersionedDataHandler } from \"@/common/versioned-data\";\nimport type { Encoding } from \"@/mod\";\nimport { jsonParseCompat, jsonStringifyCompat } from \"./actor/protocol/serde\";\n\nexport function uint8ArrayToBase64(uint8Array: Uint8Array): string {\n\t// Check if Buffer is available (Node.js)\n\tif (typeof Buffer !== \"undefined\") {\n\t\treturn Buffer.from(uint8Array).toString(\"base64\");\n\t}\n\n\t// Browser environment - use btoa\n\tlet binary = \"\";\n\tconst len = uint8Array.byteLength;\n\tfor (let i = 0; i < len; i++) {\n\t\tbinary += String.fromCharCode(uint8Array[i]);\n\t}\n\treturn btoa(binary);\n}\n\nexport function encodingIsBinary(encoding: Encoding): boolean {\n\tif (encoding === \"json\") {\n\t\treturn false;\n\t} else if (encoding === \"cbor\" || encoding === \"bare\") {\n\t\treturn true;\n\t} else {\n\t\tassertUnreachable(encoding);\n\t}\n}\n\nexport function contentTypeForEncoding(encoding: Encoding): string {\n\tif (encoding === \"json\") {\n\t\treturn \"application/json\";\n\t} else if (encoding === \"cbor\" || encoding === \"bare\") {\n\t\treturn \"application/octet-stream\";\n\t} else {\n\t\tassertUnreachable(encoding);\n\t}\n}\n\nexport function wsBinaryTypeForEncoding(\n\tencoding: Encoding,\n): \"arraybuffer\" | \"blob\" {\n\tif (encoding === \"json\") {\n\t\treturn \"blob\";\n\t} else if (encoding === \"cbor\" || encoding === \"bare\") {\n\t\treturn \"arraybuffer\";\n\t} else {\n\t\tassertUnreachable(encoding);\n\t}\n}\n\nexport function serializeWithEncoding<T>(\n\tencoding: Encoding,\n\tvalue: T,\n\tversionedDataHandler: VersionedDataHandler<T> | undefined,\n): Uint8Array | string {\n\tif (encoding === \"json\") {\n\t\treturn jsonStringifyCompat(value);\n\t} else if (encoding === \"cbor\") {\n\t\treturn cbor.encode(value);\n\t} else if (encoding === \"bare\") {\n\t\tif (!versionedDataHandler) {\n\t\t\tthrow new Error(\n\t\t\t\t\"VersionedDataHandler is required for 'bare' encoding\",\n\t\t\t);\n\t\t}\n\t\treturn versionedDataHandler.serializeWithEmbeddedVersion(value);\n\t} else {\n\t\tassertUnreachable(encoding);\n\t}\n}\n\nexport function deserializeWithEncoding<T>(\n\tencoding: Encoding,\n\tbuffer: Uint8Array | string,\n\tversionedDataHandler: VersionedDataHandler<T> | undefined,\n): T {\n\tif (encoding === \"json\") {\n\t\tif (typeof buffer === \"string\") {\n\t\t\treturn jsonParseCompat(buffer);\n\t\t} else {\n\t\t\tconst decoder = new TextDecoder(\"utf-8\");\n\t\t\tconst jsonString = decoder.decode(buffer);\n\t\t\treturn jsonParseCompat(jsonString);\n\t\t}\n\t} else if (encoding === \"cbor\") {\n\t\tinvariant(\n\t\t\ttypeof buffer !== \"string\",\n\t\t\t\"buffer cannot be string for cbor encoding\",\n\t\t);\n\t\treturn cbor.decode(buffer);\n\t} else if (encoding === \"bare\") {\n\t\tinvariant(\n\t\t\ttypeof buffer !== \"string\",\n\t\t\t\"buffer cannot be string for bare encoding\",\n\t\t);\n\t\tif (!versionedDataHandler) {\n\t\t\tthrow new Error(\n\t\t\t\t\"VersionedDataHandler is required for 'bare' encoding\",\n\t\t\t);\n\t\t}\n\t\treturn versionedDataHandler.deserializeWithEmbeddedVersion(buffer);\n\t} else {\n\t\tassertUnreachable(encoding);\n\t}\n}\n","import * as cbor from \"cbor-x\";\nimport { z } from \"zod\";\nimport * as errors from \"@/actor/errors\";\nimport type { VersionedDataHandler } from \"@/common/versioned-data\";\nimport { serializeWithEncoding } from \"@/serde\";\nimport { loggerWithoutContext } from \"../log\";\nimport { assertUnreachable } from \"../utils\";\n\n/** Data that can be deserialized. */\nexport type InputData = string | Buffer | Blob | ArrayBufferLike | Uint8Array;\n\n/** Data that's been serialized. */\nexport type OutputData = string | Uint8Array;\n\nexport const EncodingSchema = z.enum([\"json\", \"cbor\", \"bare\"]);\n\n/**\n * Encoding used to communicate between the client & actor.\n */\nexport type Encoding = z.infer<typeof EncodingSchema>;\n\n/**\n * Helper class that helps serialize data without re-serializing for the same encoding.\n */\nexport class CachedSerializer<T> {\n\t#data: T;\n\t#cache = new Map<Encoding, OutputData>();\n\t#versionedDataHandler: VersionedDataHandler<T>;\n\n\tconstructor(data: T, versionedDataHandler: VersionedDataHandler<T>) {\n\t\tthis.#data = data;\n\t\tthis.#versionedDataHandler = versionedDataHandler;\n\t}\n\n\tpublic get rawData(): T {\n\t\treturn this.#data;\n\t}\n\n\tpublic serialize(encoding: Encoding): OutputData {\n\t\tconst cached = this.#cache.get(encoding);\n\t\tif (cached) {\n\t\t\treturn cached;\n\t\t} else {\n\t\t\tconst serialized = serializeWithEncoding(\n\t\t\t\tencoding,\n\t\t\t\tthis.#data,\n\t\t\t\tthis.#versionedDataHandler,\n\t\t\t);\n\t\t\tthis.#cache.set(encoding, serialized);\n\t\t\treturn serialized;\n\t\t}\n\t}\n}\n\n///**\n// * Use `CachedSerializer` if serializing the same data repeatedly.\n// */\n//export function serialize<T>(value: T, encoding: Encoding): OutputData {\n//\tif (encoding === \"json\") {\n//\t\treturn JSON.stringify(value);\n//\t} else if (encoding === \"cbor\") {\n//\t\t// TODO: Remove this hack, but cbor-x can't handle anything extra in data structures\n//\t\tconst cleanValue = JSON.parse(JSON.stringify(value));\n//\t\treturn cbor.encode(cleanValue);\n//\t} else {\n//\t\tassertUnreachable(encoding);\n//\t}\n//}\n//\n//export async function deserialize(data: InputData, encoding: Encoding) {\n//\tif (encoding === \"json\") {\n//\t\tif (typeof data !== \"string\") {\n//\t\t\tlogger().warn(\"received non-string for json parse\");\n//\t\t\tthrow new errors.MalformedMessage();\n//\t\t} else {\n//\t\t\treturn JSON.parse(data);\n//\t\t}\n//\t} else if (encoding === \"cbor\") {\n//\t\tif (data instanceof Blob) {\n//\t\t\tconst arrayBuffer = await data.arrayBuffer();\n//\t\t\treturn cbor.decode(new Uint8Array(arrayBuffer));\n//\t\t} else if (data instanceof Uint8Array) {\n//\t\t\treturn cbor.decode(data);\n//\t\t} else if (\n//\t\t\tdata instanceof ArrayBuffer ||\n//\t\t\tdata instanceof SharedArrayBuffer\n//\t\t) {\n//\t\t\treturn cbor.decode(new Uint8Array(data));\n//\t\t} else {\n//\t\t\tlogger().warn(\"received non-binary type for cbor parse\");\n//\t\t\tthrow new errors.MalformedMessage();\n//\t\t}\n//\t} else {\n//\t\tassertUnreachable(encoding);\n//\t}\n//}\n\n// TODO: Encode base 128\nfunction base64EncodeUint8Array(uint8Array: Uint8Array): string {\n\tlet binary = \"\";\n\tconst len = uint8Array.byteLength;\n\tfor (let i = 0; i < len; i++) {\n\t\tbinary += String.fromCharCode(uint8Array[i]);\n\t}\n\treturn btoa(binary);\n}\n\nfunction base64EncodeArrayBuffer(arrayBuffer: ArrayBuffer): string {\n\tconst uint8Array = new Uint8Array(arrayBuffer);\n\treturn base64EncodeUint8Array(uint8Array);\n}\n\n/** Converts data that was encoded to a string. Some formats (like SSE) don't support raw binary data. */\nexport function encodeDataToString(message: OutputData): string {\n\tif (typeof message === \"string\") {\n\t\treturn message;\n\t} else if (message instanceof ArrayBuffer) {\n\t\treturn base64EncodeArrayBuffer(message);\n\t} else if (message instanceof Uint8Array) {\n\t\treturn base64EncodeUint8Array(message);\n\t} else {\n\t\tassertUnreachable(message);\n\t}\n}\n\nfunction base64DecodeToUint8Array(base64: string): Uint8Array {\n\t// Check if Buffer is available (Node.js)\n\tif (typeof Buffer !== \"undefined\") {\n\t\treturn new Uint8Array(Buffer.from(base64, \"base64\"));\n\t}\n\n\t// Browser environment - use atob\n\tconst binary = atob(base64);\n\tconst len = binary.length;\n\tconst bytes = new Uint8Array(len);\n\tfor (let i = 0; i < len; i++) {\n\t\tbytes[i] = binary.charCodeAt(i);\n\t}\n\treturn bytes;\n}\n\nfunction base64DecodeToArrayBuffer(base64: string): ArrayBuffer {\n\treturn base64DecodeToUint8Array(base64).buffer as ArrayBuffer;\n}\n\n/** Stringifies with compat for values that BARE & CBOR supports. */\nexport function jsonStringifyCompat(input: any): string {\n\treturn JSON.stringify(input, (_key, value) => {\n\t\tif (typeof value === \"bigint\") {\n\t\t\treturn [\"$BigInt\", value.toString()];\n\t\t} else if (value instanceof ArrayBuffer) {\n\t\t\treturn [\"$ArrayBuffer\", base64EncodeArrayBuffer(value)];\n\t\t} else if (value instanceof Uint8Array) {\n\t\t\treturn [\"$Uint8Array\", base64EncodeUint8Array(value)];\n\t\t}\n\n\t\t// Escape user arrays that start with $ by prepending another $\n\t\tif (\n\t\t\tArray.isArray(value) &&\n\t\t\tvalue.length === 2 &&\n\t\t\ttypeof value[0] === \"string\" &&\n\t\t\tvalue[0].startsWith(\"$\")\n\t\t) {\n\t\t\treturn [\"$\" + value[0], value[1]];\n\t\t}\n\n\t\treturn value;\n\t});\n}\n\n/** Parses JSON with compat for values that BARE & CBOR supports. */\nexport function jsonParseCompat(input: string): any {\n\treturn JSON.parse(input, (_key, value) => {\n\t\t// Handle arrays with $ prefix\n\t\tif (\n\t\t\tArray.isArray(value) &&\n\t\t\tvalue.length === 2 &&\n\t\t\ttypeof value[0] === \"string\" &&\n\t\t\tvalue[0].startsWith(\"$\")\n\t\t) {\n\t\t\t// Known special types\n\t\t\tif (value[0] === \"$BigInt\") {\n\t\t\t\treturn BigInt(value[1]);\n\t\t\t} else if (value[0] === \"$ArrayBuffer\") {\n\t\t\t\treturn base64DecodeToArrayBuffer(value[1]);\n\t\t\t} else if (value[0] === \"$Uint8Array\") {\n\t\t\t\treturn base64DecodeToUint8Array(value[1]);\n\t\t\t}\n\n\t\t\t// Unescape user arrays that started with $ ($$foo -> $foo)\n\t\t\tif (value[0].startsWith(\"$$\")) {\n\t\t\t\treturn [value[0].substring(1), value[1]];\n\t\t\t}\n\n\t\t\t// Unknown type starting with $ - this is an error\n\t\t\tthrow new Error(\n\t\t\t\t`Unknown JSON encoding type: ${value[0]}. This may indicate corrupted data or a version mismatch.`,\n\t\t\t);\n\t\t}\n\n\t\treturn value;\n\t});\n}\n"]}
@@ -1,20 +1,20 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunkHSO2H2SBcjs = require('./chunk-HSO2H2SB.cjs');
4
+ var _chunkD6PCH7FRcjs = require('./chunk-D6PCH7FR.cjs');
5
5
 
6
6
 
7
- var _chunkTI72NLP3cjs = require('./chunk-TI72NLP3.cjs');
7
+ var _chunkJMLTKMJ7cjs = require('./chunk-JMLTKMJ7.cjs');
8
8
 
9
9
  // src/client/mod.ts
10
10
  function createClient(endpointOrConfig) {
11
11
  const configInput = endpointOrConfig === void 0 ? {} : typeof endpointOrConfig === "string" ? { endpoint: endpointOrConfig } : endpointOrConfig;
12
- const config = _chunkTI72NLP3cjs.ClientConfigSchema.parse(configInput);
13
- const driver = new (0, _chunkHSO2H2SBcjs.RemoteManagerDriver)(config);
14
- return _chunkHSO2H2SBcjs.createClientWithDriver.call(void 0, driver, config);
12
+ const config = _chunkJMLTKMJ7cjs.ClientConfigSchema.parse(configInput);
13
+ const driver = new (0, _chunkD6PCH7FRcjs.RemoteManagerDriver)(config);
14
+ return _chunkD6PCH7FRcjs.createClientWithDriver.call(void 0, driver, config);
15
15
  }
16
16
 
17
17
 
18
18
 
19
19
  exports.createClient = createClient;
20
- //# sourceMappingURL=chunk-CYA35VI3.cjs.map
20
+ //# sourceMappingURL=chunk-54DVMQPT.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-CYA35VI3.cjs","../../src/client/mod.ts"],"names":[],"mappings":"AAAA;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACoCO,SAAS,YAAA,CACf,gBAAA,EACY;AAEZ,EAAA,MAAM,YAAA,EACL,iBAAA,IAAqB,KAAA,EAAA,EAClB,CAAC,EAAA,EACD,OAAO,iBAAA,IAAqB,SAAA,EAC3B,EAAE,QAAA,EAAU,iBAAiB,EAAA,EAC7B,gBAAA;AACL,EAAA,MAAM,OAAA,EAAS,oCAAA,CAAmB,KAAA,CAAM,WAAW,CAAA;AAGnD,EAAA,MAAM,OAAA,EAAS,IAAI,0CAAA,CAAoB,MAAM,CAAA;AAC7C,EAAA,OAAO,sDAAA,MAA0B,EAAQ,MAAM,CAAA;AAChD;AD5CA;AACA;AACE;AACF,oCAAC","file":"/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-CYA35VI3.cjs","sourcesContent":[null,"import type { Registry } from \"@/registry/mod\";\nimport { RemoteManagerDriver } from \"@/remote-manager-driver/mod\";\nimport {\n\ttype Client,\n\ttype ClientConfigInput,\n\tcreateClientWithDriver,\n} from \"./client\";\nimport { ClientConfigSchema } from \"./config\";\n\nexport {\n\tActorDefinition,\n\tAnyActorDefinition,\n} from \"@/actor/definition\";\nexport type { Transport } from \"@/actor/protocol/old\";\nexport type { Encoding } from \"@/actor/protocol/serde\";\nexport {\n\tActorClientError,\n\tActorError,\n\tInternalError,\n\tMalformedResponseMessage,\n\tManagerError,\n} from \"@/client/errors\";\nexport type { CreateRequest } from \"@/manager/protocol/query\";\nexport type { ActorActionFunction } from \"./actor-common\";\nexport type { ActorConn, EventUnsubscribe } from \"./actor-conn\";\nexport { ActorConnRaw } from \"./actor-conn\";\nexport type { ActorHandle } from \"./actor-handle\";\nexport { ActorHandleRaw } from \"./actor-handle\";\nexport type {\n\tActorAccessor,\n\tClient,\n\tClientRaw,\n\tCreateOptions,\n\tExtractActorsFromRegistry,\n\tExtractRegistryFromClient,\n\tGetOptions,\n\tGetWithIdOptions,\n\tQueryOptions,\n\tRegion,\n} from \"./client\";\n\n/**\n * Creates a client with the actor accessor proxy.\n */\nexport function createClient<A extends Registry<any>>(\n\tendpointOrConfig?: string | ClientConfigInput,\n): Client<A> {\n\t// Parse config\n\tconst configInput =\n\t\tendpointOrConfig === undefined\n\t\t\t? {}\n\t\t\t: typeof endpointOrConfig === \"string\"\n\t\t\t\t? { endpoint: endpointOrConfig }\n\t\t\t\t: endpointOrConfig;\n\tconst config = ClientConfigSchema.parse(configInput);\n\n\t// Create client\n\tconst driver = new RemoteManagerDriver(config);\n\treturn createClientWithDriver<A>(driver, config);\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-54DVMQPT.cjs","../../src/client/mod.ts"],"names":[],"mappings":"AAAA;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACoCO,SAAS,YAAA,CACf,gBAAA,EACY;AAEZ,EAAA,MAAM,YAAA,EACL,iBAAA,IAAqB,KAAA,EAAA,EAClB,CAAC,EAAA,EACD,OAAO,iBAAA,IAAqB,SAAA,EAC3B,EAAE,QAAA,EAAU,iBAAiB,EAAA,EAC7B,gBAAA;AACL,EAAA,MAAM,OAAA,EAAS,oCAAA,CAAmB,KAAA,CAAM,WAAW,CAAA;AAGnD,EAAA,MAAM,OAAA,EAAS,IAAI,0CAAA,CAAoB,MAAM,CAAA;AAC7C,EAAA,OAAO,sDAAA,MAA0B,EAAQ,MAAM,CAAA;AAChD;AD5CA;AACA;AACE;AACF,oCAAC","file":"/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-54DVMQPT.cjs","sourcesContent":[null,"import type { Registry } from \"@/registry/mod\";\nimport { RemoteManagerDriver } from \"@/remote-manager-driver/mod\";\nimport {\n\ttype Client,\n\ttype ClientConfigInput,\n\tcreateClientWithDriver,\n} from \"./client\";\nimport { ClientConfigSchema } from \"./config\";\n\nexport {\n\tActorDefinition,\n\tAnyActorDefinition,\n} from \"@/actor/definition\";\nexport type { Transport } from \"@/actor/protocol/old\";\nexport type { Encoding } from \"@/actor/protocol/serde\";\nexport {\n\tActorClientError,\n\tActorError,\n\tInternalError,\n\tMalformedResponseMessage,\n\tManagerError,\n} from \"@/client/errors\";\nexport type { CreateRequest } from \"@/manager/protocol/query\";\nexport type { ActorActionFunction } from \"./actor-common\";\nexport type { ActorConn, EventUnsubscribe } from \"./actor-conn\";\nexport { ActorConnRaw } from \"./actor-conn\";\nexport type { ActorHandle } from \"./actor-handle\";\nexport { ActorHandleRaw } from \"./actor-handle\";\nexport type {\n\tActorAccessor,\n\tClient,\n\tClientRaw,\n\tCreateOptions,\n\tExtractActorsFromRegistry,\n\tExtractRegistryFromClient,\n\tGetOptions,\n\tGetWithIdOptions,\n\tQueryOptions,\n\tRegion,\n} from \"./client\";\n\n/**\n * Creates a client with the actor accessor proxy.\n */\nexport function createClient<A extends Registry<any>>(\n\tendpointOrConfig?: string | ClientConfigInput,\n): Client<A> {\n\t// Parse config\n\tconst configInput =\n\t\tendpointOrConfig === undefined\n\t\t\t? {}\n\t\t\t: typeof endpointOrConfig === \"string\"\n\t\t\t\t? { endpoint: endpointOrConfig }\n\t\t\t\t: endpointOrConfig;\n\tconst config = ClientConfigSchema.parse(configInput);\n\n\t// Create client\n\tconst driver = new RemoteManagerDriver(config);\n\treturn createClientWithDriver<A>(driver, config);\n}\n"]}