rivetkit 2.0.5 → 2.0.7-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/schemas/actor-persist/v1.ts +0 -6
- package/dist/tsup/actor-router-consts-B3Lu87yJ.d.cts +28 -0
- package/dist/tsup/actor-router-consts-B3Lu87yJ.d.ts +28 -0
- package/dist/tsup/{chunk-5YTI25C3.cjs → chunk-3MBP4WNC.cjs} +7 -7
- package/dist/tsup/{chunk-5YTI25C3.cjs.map → chunk-3MBP4WNC.cjs.map} +1 -1
- package/dist/tsup/chunk-3Y45CIF4.cjs +3726 -0
- package/dist/tsup/chunk-3Y45CIF4.cjs.map +1 -0
- package/dist/tsup/chunk-4GP7BZSR.js +102 -0
- package/dist/tsup/chunk-4GP7BZSR.js.map +1 -0
- package/dist/tsup/chunk-5ZOHIKWG.cjs +4071 -0
- package/dist/tsup/chunk-5ZOHIKWG.cjs.map +1 -0
- package/dist/tsup/{chunk-WADSS5X4.cjs → chunk-6EUWRXLT.cjs} +21 -7
- package/dist/tsup/chunk-6EUWRXLT.cjs.map +1 -0
- package/dist/tsup/{chunk-D7NWUCRK.cjs → chunk-6OVKCDSH.cjs} +6 -6
- package/dist/tsup/{chunk-D7NWUCRK.cjs.map → chunk-6OVKCDSH.cjs.map} +1 -1
- package/dist/tsup/{chunk-I5VTWPHW.js → chunk-7N56ZUC7.js} +3 -3
- package/dist/tsup/{chunk-LZIBTLEY.cjs → chunk-B3TLRM4Q.cjs} +13 -25
- package/dist/tsup/chunk-B3TLRM4Q.cjs.map +1 -0
- package/dist/tsup/chunk-BW5DPM6Z.js +4071 -0
- package/dist/tsup/chunk-BW5DPM6Z.js.map +1 -0
- package/dist/tsup/chunk-DFS77KAA.cjs +1046 -0
- package/dist/tsup/chunk-DFS77KAA.cjs.map +1 -0
- package/dist/tsup/{chunk-PG3K2LI7.js → chunk-E4UVJKSV.js} +2 -2
- package/dist/tsup/chunk-G4ABMAQY.cjs +102 -0
- package/dist/tsup/chunk-G4ABMAQY.cjs.map +1 -0
- package/dist/tsup/{chunk-CKA54YQN.js → chunk-GZVBFXBI.js} +3 -15
- package/dist/tsup/chunk-GZVBFXBI.js.map +1 -0
- package/dist/tsup/chunk-HPT3I7UU.js +3726 -0
- package/dist/tsup/chunk-HPT3I7UU.js.map +1 -0
- package/dist/tsup/chunk-JD54PXWP.js +1046 -0
- package/dist/tsup/chunk-JD54PXWP.js.map +1 -0
- package/dist/tsup/{chunk-PHSQJ6QI.cjs → chunk-K4ENQCC4.cjs} +3 -3
- package/dist/tsup/{chunk-PHSQJ6QI.cjs.map → chunk-K4ENQCC4.cjs.map} +1 -1
- package/dist/tsup/{chunk-WNGOBAA7.js → chunk-PUSQNDJG.js} +2 -2
- package/dist/tsup/{chunk-CFFKMUYH.js → chunk-RVP5RUSC.js} +20 -6
- package/dist/tsup/chunk-RVP5RUSC.js.map +1 -0
- package/dist/tsup/chunk-SAZCNSVY.cjs +259 -0
- package/dist/tsup/chunk-SAZCNSVY.cjs.map +1 -0
- package/dist/tsup/{chunk-YW6Y6VNE.js → chunk-SBKRVQS2.js} +9 -5
- package/dist/tsup/chunk-SBKRVQS2.js.map +1 -0
- package/dist/tsup/{chunk-FGFT4FVX.cjs → chunk-TZGUSEIJ.cjs} +14 -10
- package/dist/tsup/chunk-TZGUSEIJ.cjs.map +1 -0
- package/dist/tsup/chunk-YQ4XQYPM.js +259 -0
- package/dist/tsup/chunk-YQ4XQYPM.js.map +1 -0
- package/dist/tsup/client/mod.cjs +9 -9
- package/dist/tsup/client/mod.d.cts +7 -8
- package/dist/tsup/client/mod.d.ts +7 -8
- package/dist/tsup/client/mod.js +8 -8
- package/dist/tsup/common/log.cjs +3 -3
- package/dist/tsup/common/log.js +2 -2
- package/dist/tsup/common/websocket.cjs +4 -4
- package/dist/tsup/common/websocket.js +3 -3
- package/dist/tsup/{connection-BvE-Oq7t.d.ts → conn-DCSQgIlw.d.ts} +1605 -1353
- package/dist/tsup/{connection-DTzmWwU5.d.cts → conn-DdzHTm2E.d.cts} +1605 -1353
- package/dist/tsup/driver-helpers/mod.cjs +31 -5
- package/dist/tsup/driver-helpers/mod.cjs.map +1 -1
- package/dist/tsup/driver-helpers/mod.d.cts +7 -8
- package/dist/tsup/driver-helpers/mod.d.ts +7 -8
- package/dist/tsup/driver-helpers/mod.js +33 -7
- package/dist/tsup/driver-test-suite/mod.cjs +319 -216
- package/dist/tsup/driver-test-suite/mod.cjs.map +1 -1
- package/dist/tsup/driver-test-suite/mod.d.cts +7 -7
- package/dist/tsup/driver-test-suite/mod.d.ts +7 -7
- package/dist/tsup/driver-test-suite/mod.js +588 -485
- package/dist/tsup/driver-test-suite/mod.js.map +1 -1
- package/dist/tsup/inspector/mod.cjs +17 -5
- package/dist/tsup/inspector/mod.cjs.map +1 -1
- package/dist/tsup/inspector/mod.d.cts +34 -7
- package/dist/tsup/inspector/mod.d.ts +34 -7
- package/dist/tsup/inspector/mod.js +20 -8
- package/dist/tsup/mod.cjs +10 -17
- package/dist/tsup/mod.cjs.map +1 -1
- package/dist/tsup/mod.d.cts +56 -9
- package/dist/tsup/mod.d.ts +56 -9
- package/dist/tsup/mod.js +17 -24
- package/dist/tsup/test/mod.cjs +11 -9
- package/dist/tsup/test/mod.cjs.map +1 -1
- package/dist/tsup/test/mod.d.cts +6 -7
- package/dist/tsup/test/mod.d.ts +6 -7
- package/dist/tsup/test/mod.js +10 -8
- package/dist/tsup/utils.cjs +4 -2
- package/dist/tsup/utils.cjs.map +1 -1
- package/dist/tsup/utils.d.cts +11 -1
- package/dist/tsup/utils.d.ts +11 -1
- package/dist/tsup/utils.js +3 -1
- package/package.json +8 -4
- package/src/actor/action.ts +1 -1
- package/src/actor/config.ts +1 -1
- package/src/actor/conn-drivers.ts +205 -0
- package/src/actor/conn-socket.ts +6 -0
- package/src/actor/{connection.ts → conn.ts} +78 -84
- package/src/actor/context.ts +1 -1
- package/src/actor/driver.ts +4 -43
- package/src/actor/instance.ts +162 -86
- package/src/actor/mod.ts +6 -14
- package/src/actor/persisted.ts +2 -5
- package/src/actor/protocol/old.ts +1 -1
- package/src/actor/router-endpoints.ts +147 -138
- package/src/actor/router.ts +89 -52
- package/src/actor/utils.ts +5 -1
- package/src/client/actor-conn.ts +163 -31
- package/src/client/actor-handle.ts +0 -1
- package/src/client/client.ts +2 -2
- package/src/client/config.ts +7 -0
- package/src/client/raw-utils.ts +1 -1
- package/src/client/utils.ts +1 -1
- package/src/common/actor-router-consts.ts +59 -0
- package/src/common/router.ts +2 -1
- package/src/common/versioned-data.ts +5 -5
- package/src/driver-helpers/mod.ts +15 -2
- package/src/driver-test-suite/mod.ts +11 -2
- package/src/driver-test-suite/test-inline-client-driver.ts +40 -22
- package/src/driver-test-suite/tests/actor-conn-state.ts +66 -22
- package/src/driver-test-suite/tests/actor-conn.ts +65 -126
- package/src/driver-test-suite/tests/actor-reconnect.ts +160 -0
- package/src/driver-test-suite/tests/actor-sleep.ts +0 -1
- package/src/driver-test-suite/tests/raw-websocket.ts +0 -35
- package/src/driver-test-suite/utils.ts +8 -3
- package/src/drivers/default.ts +8 -7
- package/src/drivers/engine/actor-driver.ts +67 -44
- package/src/drivers/engine/config.ts +4 -0
- package/src/drivers/file-system/actor.ts +0 -6
- package/src/drivers/file-system/global-state.ts +3 -14
- package/src/drivers/file-system/manager.ts +12 -8
- package/src/inspector/actor.ts +4 -3
- package/src/inspector/config.ts +10 -1
- package/src/inspector/mod.ts +1 -0
- package/src/inspector/utils.ts +23 -4
- package/src/manager/driver.ts +12 -2
- package/src/manager/gateway.ts +407 -0
- package/src/manager/protocol/query.ts +1 -1
- package/src/manager/router.ts +269 -468
- package/src/manager-api/actors.ts +61 -0
- package/src/manager-api/common.ts +4 -0
- package/src/mod.ts +1 -1
- package/src/registry/mod.ts +126 -12
- package/src/registry/serve.ts +8 -3
- package/src/remote-manager-driver/actor-http-client.ts +30 -19
- package/src/remote-manager-driver/actor-websocket-client.ts +45 -18
- package/src/remote-manager-driver/api-endpoints.ts +19 -21
- package/src/remote-manager-driver/api-utils.ts +10 -1
- package/src/remote-manager-driver/mod.ts +53 -53
- package/src/remote-manager-driver/ws-proxy.ts +2 -9
- package/src/test/mod.ts +6 -2
- package/src/utils.ts +21 -2
- package/dist/tsup/chunk-2MD57QF4.js +0 -1794
- package/dist/tsup/chunk-2MD57QF4.js.map +0 -1
- package/dist/tsup/chunk-B2QGJGZQ.js +0 -338
- package/dist/tsup/chunk-B2QGJGZQ.js.map +0 -1
- package/dist/tsup/chunk-CFFKMUYH.js.map +0 -1
- package/dist/tsup/chunk-CKA54YQN.js.map +0 -1
- package/dist/tsup/chunk-FGFT4FVX.cjs.map +0 -1
- package/dist/tsup/chunk-IRMBWX36.cjs +0 -1794
- package/dist/tsup/chunk-IRMBWX36.cjs.map +0 -1
- package/dist/tsup/chunk-L7QRXNWP.js +0 -6562
- package/dist/tsup/chunk-L7QRXNWP.js.map +0 -1
- package/dist/tsup/chunk-LZIBTLEY.cjs.map +0 -1
- package/dist/tsup/chunk-MRZS2J4X.cjs +0 -6562
- package/dist/tsup/chunk-MRZS2J4X.cjs.map +0 -1
- package/dist/tsup/chunk-RM2SVURR.cjs +0 -338
- package/dist/tsup/chunk-RM2SVURR.cjs.map +0 -1
- package/dist/tsup/chunk-WADSS5X4.cjs.map +0 -1
- package/dist/tsup/chunk-YW6Y6VNE.js.map +0 -1
- package/dist/tsup/common-CXCe7s6i.d.cts +0 -218
- package/dist/tsup/common-CXCe7s6i.d.ts +0 -218
- package/dist/tsup/router-endpoints-CctffZNL.d.cts +0 -65
- package/dist/tsup/router-endpoints-DFm1BglJ.d.ts +0 -65
- package/src/actor/generic-conn-driver.ts +0 -246
- package/src/common/fake-event-source.ts +0 -267
- package/src/manager-api/routes/actors-create.ts +0 -16
- package/src/manager-api/routes/actors-delete.ts +0 -4
- package/src/manager-api/routes/actors-get-by-id.ts +0 -7
- package/src/manager-api/routes/actors-get-or-create-by-id.ts +0 -29
- package/src/manager-api/routes/actors-get.ts +0 -7
- package/src/manager-api/routes/common.ts +0 -18
- /package/dist/tsup/{chunk-I5VTWPHW.js.map → chunk-7N56ZUC7.js.map} +0 -0
- /package/dist/tsup/{chunk-PG3K2LI7.js.map → chunk-E4UVJKSV.js.map} +0 -0
- /package/dist/tsup/{chunk-WNGOBAA7.js.map → chunk-PUSQNDJG.js.map} +0 -0
|
@@ -0,0 +1,1046 @@
|
|
|
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 }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
var _chunkSAZCNSVYcjs = require('./chunk-SAZCNSVY.cjs');
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
var _chunk3MBP4WNCcjs = require('./chunk-3MBP4WNC.cjs');
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
var _chunk6EUWRXLTcjs = require('./chunk-6EUWRXLT.cjs');
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
var _chunk5QGQK44Lcjs = require('./chunk-5QGQK44L.cjs');
|
|
20
|
+
|
|
21
|
+
// src/registry/run-config.ts
|
|
22
|
+
var _zod = require('zod'); var _zod2 = _interopRequireDefault(_zod);
|
|
23
|
+
|
|
24
|
+
// src/client/config.ts
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
// src/actor/protocol/old.ts
|
|
28
|
+
var _cborx = require('cbor-x'); var cbor = _interopRequireWildcard(_cborx); var cbor2 = _interopRequireWildcard(_cborx);
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
// src/common/versioned-data.ts
|
|
32
|
+
var VersionedDataHandler = class {
|
|
33
|
+
constructor(config3) {
|
|
34
|
+
this.config = config3;
|
|
35
|
+
}
|
|
36
|
+
serializeWithEmbeddedVersion(data) {
|
|
37
|
+
const versioned = {
|
|
38
|
+
version: this.config.currentVersion,
|
|
39
|
+
data: this.config.serializeVersion(data)
|
|
40
|
+
};
|
|
41
|
+
return this.embedVersion(versioned);
|
|
42
|
+
}
|
|
43
|
+
deserializeWithEmbeddedVersion(bytes) {
|
|
44
|
+
const versioned = this.extractVersion(bytes);
|
|
45
|
+
return this.deserialize(versioned.data, versioned.version);
|
|
46
|
+
}
|
|
47
|
+
serialize(data, version) {
|
|
48
|
+
return this.config.serializeVersion(data);
|
|
49
|
+
}
|
|
50
|
+
deserialize(bytes, version) {
|
|
51
|
+
if (version === this.config.currentVersion) {
|
|
52
|
+
return this.config.deserializeVersion(bytes);
|
|
53
|
+
}
|
|
54
|
+
if (version > this.config.currentVersion) {
|
|
55
|
+
throw new Error(
|
|
56
|
+
`Cannot decode data from version ${version}, current version is ${this.config.currentVersion}`
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
let currentData = this.config.deserializeVersion(bytes);
|
|
60
|
+
let currentVersion = version;
|
|
61
|
+
while (currentVersion < this.config.currentVersion) {
|
|
62
|
+
const migration = this.config.migrations.get(currentVersion);
|
|
63
|
+
if (!migration) {
|
|
64
|
+
throw new Error(
|
|
65
|
+
`No migration found from version ${currentVersion} to ${currentVersion + 1}`
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
currentData = migration(currentData);
|
|
69
|
+
currentVersion++;
|
|
70
|
+
}
|
|
71
|
+
return currentData;
|
|
72
|
+
}
|
|
73
|
+
embedVersion(data) {
|
|
74
|
+
const versionBytes = new Uint8Array(2);
|
|
75
|
+
new DataView(versionBytes.buffer).setUint16(0, data.version, true);
|
|
76
|
+
const result = new Uint8Array(versionBytes.length + data.data.length);
|
|
77
|
+
result.set(versionBytes);
|
|
78
|
+
result.set(data.data, versionBytes.length);
|
|
79
|
+
return result;
|
|
80
|
+
}
|
|
81
|
+
extractVersion(bytes) {
|
|
82
|
+
if (bytes.length < 2) {
|
|
83
|
+
throw new Error("Invalid versioned data: too short");
|
|
84
|
+
}
|
|
85
|
+
const version = new DataView(bytes.buffer, bytes.byteOffset).getUint16(
|
|
86
|
+
0,
|
|
87
|
+
true
|
|
88
|
+
);
|
|
89
|
+
const data = bytes.slice(2);
|
|
90
|
+
return { version, data };
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
function createVersionedDataHandler(config3) {
|
|
94
|
+
return new VersionedDataHandler(config3);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
// dist/schemas/client-protocol/v1.ts
|
|
98
|
+
var _lib = require('@bare-ts/lib'); var bare = _interopRequireWildcard(_lib); var bare2 = _interopRequireWildcard(_lib);
|
|
99
|
+
var config = /* @__PURE__ */ bare.Config({});
|
|
100
|
+
function readInit(bc) {
|
|
101
|
+
return {
|
|
102
|
+
actorId: bare.readString(bc),
|
|
103
|
+
connectionId: bare.readString(bc),
|
|
104
|
+
connectionToken: bare.readString(bc)
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
function writeInit(bc, x) {
|
|
108
|
+
bare.writeString(bc, x.actorId);
|
|
109
|
+
bare.writeString(bc, x.connectionId);
|
|
110
|
+
bare.writeString(bc, x.connectionToken);
|
|
111
|
+
}
|
|
112
|
+
function read0(bc) {
|
|
113
|
+
return bare.readBool(bc) ? bare.readData(bc) : null;
|
|
114
|
+
}
|
|
115
|
+
function write0(bc, x) {
|
|
116
|
+
bare.writeBool(bc, x !== null);
|
|
117
|
+
if (x !== null) {
|
|
118
|
+
bare.writeData(bc, x);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
function read1(bc) {
|
|
122
|
+
return bare.readBool(bc) ? bare.readUint(bc) : null;
|
|
123
|
+
}
|
|
124
|
+
function write1(bc, x) {
|
|
125
|
+
bare.writeBool(bc, x !== null);
|
|
126
|
+
if (x !== null) {
|
|
127
|
+
bare.writeUint(bc, x);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
function readError(bc) {
|
|
131
|
+
return {
|
|
132
|
+
group: bare.readString(bc),
|
|
133
|
+
code: bare.readString(bc),
|
|
134
|
+
message: bare.readString(bc),
|
|
135
|
+
metadata: read0(bc),
|
|
136
|
+
actionId: read1(bc)
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
function writeError(bc, x) {
|
|
140
|
+
bare.writeString(bc, x.group);
|
|
141
|
+
bare.writeString(bc, x.code);
|
|
142
|
+
bare.writeString(bc, x.message);
|
|
143
|
+
write0(bc, x.metadata);
|
|
144
|
+
write1(bc, x.actionId);
|
|
145
|
+
}
|
|
146
|
+
function readActionResponse(bc) {
|
|
147
|
+
return {
|
|
148
|
+
id: bare.readUint(bc),
|
|
149
|
+
output: bare.readData(bc)
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
function writeActionResponse(bc, x) {
|
|
153
|
+
bare.writeUint(bc, x.id);
|
|
154
|
+
bare.writeData(bc, x.output);
|
|
155
|
+
}
|
|
156
|
+
function readEvent(bc) {
|
|
157
|
+
return {
|
|
158
|
+
name: bare.readString(bc),
|
|
159
|
+
args: bare.readData(bc)
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
function writeEvent(bc, x) {
|
|
163
|
+
bare.writeString(bc, x.name);
|
|
164
|
+
bare.writeData(bc, x.args);
|
|
165
|
+
}
|
|
166
|
+
function readToClientBody(bc) {
|
|
167
|
+
const offset = bc.offset;
|
|
168
|
+
const tag = bare.readU8(bc);
|
|
169
|
+
switch (tag) {
|
|
170
|
+
case 0:
|
|
171
|
+
return { tag: "Init", val: readInit(bc) };
|
|
172
|
+
case 1:
|
|
173
|
+
return { tag: "Error", val: readError(bc) };
|
|
174
|
+
case 2:
|
|
175
|
+
return { tag: "ActionResponse", val: readActionResponse(bc) };
|
|
176
|
+
case 3:
|
|
177
|
+
return { tag: "Event", val: readEvent(bc) };
|
|
178
|
+
default: {
|
|
179
|
+
bc.offset = offset;
|
|
180
|
+
throw new bare.BareError(offset, "invalid tag");
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
function writeToClientBody(bc, x) {
|
|
185
|
+
switch (x.tag) {
|
|
186
|
+
case "Init": {
|
|
187
|
+
bare.writeU8(bc, 0);
|
|
188
|
+
writeInit(bc, x.val);
|
|
189
|
+
break;
|
|
190
|
+
}
|
|
191
|
+
case "Error": {
|
|
192
|
+
bare.writeU8(bc, 1);
|
|
193
|
+
writeError(bc, x.val);
|
|
194
|
+
break;
|
|
195
|
+
}
|
|
196
|
+
case "ActionResponse": {
|
|
197
|
+
bare.writeU8(bc, 2);
|
|
198
|
+
writeActionResponse(bc, x.val);
|
|
199
|
+
break;
|
|
200
|
+
}
|
|
201
|
+
case "Event": {
|
|
202
|
+
bare.writeU8(bc, 3);
|
|
203
|
+
writeEvent(bc, x.val);
|
|
204
|
+
break;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
function readToClient(bc) {
|
|
209
|
+
return {
|
|
210
|
+
body: readToClientBody(bc)
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
function writeToClient(bc, x) {
|
|
214
|
+
writeToClientBody(bc, x.body);
|
|
215
|
+
}
|
|
216
|
+
function encodeToClient(x) {
|
|
217
|
+
const bc = new bare.ByteCursor(
|
|
218
|
+
new Uint8Array(config.initialBufferLength),
|
|
219
|
+
config
|
|
220
|
+
);
|
|
221
|
+
writeToClient(bc, x);
|
|
222
|
+
return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
|
|
223
|
+
}
|
|
224
|
+
function decodeToClient(bytes) {
|
|
225
|
+
const bc = new bare.ByteCursor(bytes, config);
|
|
226
|
+
const result = readToClient(bc);
|
|
227
|
+
if (bc.offset < bc.view.byteLength) {
|
|
228
|
+
throw new bare.BareError(bc.offset, "remaining bytes");
|
|
229
|
+
}
|
|
230
|
+
return result;
|
|
231
|
+
}
|
|
232
|
+
function readActionRequest(bc) {
|
|
233
|
+
return {
|
|
234
|
+
id: bare.readUint(bc),
|
|
235
|
+
name: bare.readString(bc),
|
|
236
|
+
args: bare.readData(bc)
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
function writeActionRequest(bc, x) {
|
|
240
|
+
bare.writeUint(bc, x.id);
|
|
241
|
+
bare.writeString(bc, x.name);
|
|
242
|
+
bare.writeData(bc, x.args);
|
|
243
|
+
}
|
|
244
|
+
function readSubscriptionRequest(bc) {
|
|
245
|
+
return {
|
|
246
|
+
eventName: bare.readString(bc),
|
|
247
|
+
subscribe: bare.readBool(bc)
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
function writeSubscriptionRequest(bc, x) {
|
|
251
|
+
bare.writeString(bc, x.eventName);
|
|
252
|
+
bare.writeBool(bc, x.subscribe);
|
|
253
|
+
}
|
|
254
|
+
function readToServerBody(bc) {
|
|
255
|
+
const offset = bc.offset;
|
|
256
|
+
const tag = bare.readU8(bc);
|
|
257
|
+
switch (tag) {
|
|
258
|
+
case 0:
|
|
259
|
+
return { tag: "ActionRequest", val: readActionRequest(bc) };
|
|
260
|
+
case 1:
|
|
261
|
+
return { tag: "SubscriptionRequest", val: readSubscriptionRequest(bc) };
|
|
262
|
+
default: {
|
|
263
|
+
bc.offset = offset;
|
|
264
|
+
throw new bare.BareError(offset, "invalid tag");
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
function writeToServerBody(bc, x) {
|
|
269
|
+
switch (x.tag) {
|
|
270
|
+
case "ActionRequest": {
|
|
271
|
+
bare.writeU8(bc, 0);
|
|
272
|
+
writeActionRequest(bc, x.val);
|
|
273
|
+
break;
|
|
274
|
+
}
|
|
275
|
+
case "SubscriptionRequest": {
|
|
276
|
+
bare.writeU8(bc, 1);
|
|
277
|
+
writeSubscriptionRequest(bc, x.val);
|
|
278
|
+
break;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
function readToServer(bc) {
|
|
283
|
+
return {
|
|
284
|
+
body: readToServerBody(bc)
|
|
285
|
+
};
|
|
286
|
+
}
|
|
287
|
+
function writeToServer(bc, x) {
|
|
288
|
+
writeToServerBody(bc, x.body);
|
|
289
|
+
}
|
|
290
|
+
function encodeToServer(x) {
|
|
291
|
+
const bc = new bare.ByteCursor(
|
|
292
|
+
new Uint8Array(config.initialBufferLength),
|
|
293
|
+
config
|
|
294
|
+
);
|
|
295
|
+
writeToServer(bc, x);
|
|
296
|
+
return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
|
|
297
|
+
}
|
|
298
|
+
function decodeToServer(bytes) {
|
|
299
|
+
const bc = new bare.ByteCursor(bytes, config);
|
|
300
|
+
const result = readToServer(bc);
|
|
301
|
+
if (bc.offset < bc.view.byteLength) {
|
|
302
|
+
throw new bare.BareError(bc.offset, "remaining bytes");
|
|
303
|
+
}
|
|
304
|
+
return result;
|
|
305
|
+
}
|
|
306
|
+
function readHttpActionRequest(bc) {
|
|
307
|
+
return {
|
|
308
|
+
args: bare.readData(bc)
|
|
309
|
+
};
|
|
310
|
+
}
|
|
311
|
+
function writeHttpActionRequest(bc, x) {
|
|
312
|
+
bare.writeData(bc, x.args);
|
|
313
|
+
}
|
|
314
|
+
function encodeHttpActionRequest(x) {
|
|
315
|
+
const bc = new bare.ByteCursor(
|
|
316
|
+
new Uint8Array(config.initialBufferLength),
|
|
317
|
+
config
|
|
318
|
+
);
|
|
319
|
+
writeHttpActionRequest(bc, x);
|
|
320
|
+
return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
|
|
321
|
+
}
|
|
322
|
+
function decodeHttpActionRequest(bytes) {
|
|
323
|
+
const bc = new bare.ByteCursor(bytes, config);
|
|
324
|
+
const result = readHttpActionRequest(bc);
|
|
325
|
+
if (bc.offset < bc.view.byteLength) {
|
|
326
|
+
throw new bare.BareError(bc.offset, "remaining bytes");
|
|
327
|
+
}
|
|
328
|
+
return result;
|
|
329
|
+
}
|
|
330
|
+
function readHttpActionResponse(bc) {
|
|
331
|
+
return {
|
|
332
|
+
output: bare.readData(bc)
|
|
333
|
+
};
|
|
334
|
+
}
|
|
335
|
+
function writeHttpActionResponse(bc, x) {
|
|
336
|
+
bare.writeData(bc, x.output);
|
|
337
|
+
}
|
|
338
|
+
function encodeHttpActionResponse(x) {
|
|
339
|
+
const bc = new bare.ByteCursor(
|
|
340
|
+
new Uint8Array(config.initialBufferLength),
|
|
341
|
+
config
|
|
342
|
+
);
|
|
343
|
+
writeHttpActionResponse(bc, x);
|
|
344
|
+
return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
|
|
345
|
+
}
|
|
346
|
+
function decodeHttpActionResponse(bytes) {
|
|
347
|
+
const bc = new bare.ByteCursor(bytes, config);
|
|
348
|
+
const result = readHttpActionResponse(bc);
|
|
349
|
+
if (bc.offset < bc.view.byteLength) {
|
|
350
|
+
throw new bare.BareError(bc.offset, "remaining bytes");
|
|
351
|
+
}
|
|
352
|
+
return result;
|
|
353
|
+
}
|
|
354
|
+
function readHttpResponseError(bc) {
|
|
355
|
+
return {
|
|
356
|
+
group: bare.readString(bc),
|
|
357
|
+
code: bare.readString(bc),
|
|
358
|
+
message: bare.readString(bc),
|
|
359
|
+
metadata: read0(bc)
|
|
360
|
+
};
|
|
361
|
+
}
|
|
362
|
+
function writeHttpResponseError(bc, x) {
|
|
363
|
+
bare.writeString(bc, x.group);
|
|
364
|
+
bare.writeString(bc, x.code);
|
|
365
|
+
bare.writeString(bc, x.message);
|
|
366
|
+
write0(bc, x.metadata);
|
|
367
|
+
}
|
|
368
|
+
function encodeHttpResponseError(x) {
|
|
369
|
+
const bc = new bare.ByteCursor(
|
|
370
|
+
new Uint8Array(config.initialBufferLength),
|
|
371
|
+
config
|
|
372
|
+
);
|
|
373
|
+
writeHttpResponseError(bc, x);
|
|
374
|
+
return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
|
|
375
|
+
}
|
|
376
|
+
function decodeHttpResponseError(bytes) {
|
|
377
|
+
const bc = new bare.ByteCursor(bytes, config);
|
|
378
|
+
const result = readHttpResponseError(bc);
|
|
379
|
+
if (bc.offset < bc.view.byteLength) {
|
|
380
|
+
throw new bare.BareError(bc.offset, "remaining bytes");
|
|
381
|
+
}
|
|
382
|
+
return result;
|
|
383
|
+
}
|
|
384
|
+
function readHttpResolveResponse(bc) {
|
|
385
|
+
return {
|
|
386
|
+
actorId: bare.readString(bc)
|
|
387
|
+
};
|
|
388
|
+
}
|
|
389
|
+
function writeHttpResolveResponse(bc, x) {
|
|
390
|
+
bare.writeString(bc, x.actorId);
|
|
391
|
+
}
|
|
392
|
+
function encodeHttpResolveResponse(x) {
|
|
393
|
+
const bc = new bare.ByteCursor(
|
|
394
|
+
new Uint8Array(config.initialBufferLength),
|
|
395
|
+
config
|
|
396
|
+
);
|
|
397
|
+
writeHttpResolveResponse(bc, x);
|
|
398
|
+
return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
|
|
399
|
+
}
|
|
400
|
+
function decodeHttpResolveResponse(bytes) {
|
|
401
|
+
const bc = new bare.ByteCursor(bytes, config);
|
|
402
|
+
const result = readHttpResolveResponse(bc);
|
|
403
|
+
if (bc.offset < bc.view.byteLength) {
|
|
404
|
+
throw new bare.BareError(bc.offset, "remaining bytes");
|
|
405
|
+
}
|
|
406
|
+
return result;
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
// src/schemas/client-protocol/versioned.ts
|
|
410
|
+
var CURRENT_VERSION = 1;
|
|
411
|
+
var migrations = /* @__PURE__ */ new Map();
|
|
412
|
+
var TO_SERVER_VERSIONED = createVersionedDataHandler({
|
|
413
|
+
currentVersion: CURRENT_VERSION,
|
|
414
|
+
migrations,
|
|
415
|
+
serializeVersion: (data) => encodeToServer(data),
|
|
416
|
+
deserializeVersion: (bytes) => decodeToServer(bytes)
|
|
417
|
+
});
|
|
418
|
+
var TO_CLIENT_VERSIONED = createVersionedDataHandler({
|
|
419
|
+
currentVersion: CURRENT_VERSION,
|
|
420
|
+
migrations,
|
|
421
|
+
serializeVersion: (data) => encodeToClient(data),
|
|
422
|
+
deserializeVersion: (bytes) => decodeToClient(bytes)
|
|
423
|
+
});
|
|
424
|
+
var HTTP_ACTION_REQUEST_VERSIONED = createVersionedDataHandler({
|
|
425
|
+
currentVersion: CURRENT_VERSION,
|
|
426
|
+
migrations,
|
|
427
|
+
serializeVersion: (data) => encodeHttpActionRequest(data),
|
|
428
|
+
deserializeVersion: (bytes) => decodeHttpActionRequest(bytes)
|
|
429
|
+
});
|
|
430
|
+
var HTTP_ACTION_RESPONSE_VERSIONED = createVersionedDataHandler({
|
|
431
|
+
currentVersion: CURRENT_VERSION,
|
|
432
|
+
migrations,
|
|
433
|
+
serializeVersion: (data) => encodeHttpActionResponse(data),
|
|
434
|
+
deserializeVersion: (bytes) => decodeHttpActionResponse(bytes)
|
|
435
|
+
});
|
|
436
|
+
var HTTP_RESPONSE_ERROR_VERSIONED = createVersionedDataHandler({
|
|
437
|
+
currentVersion: CURRENT_VERSION,
|
|
438
|
+
migrations,
|
|
439
|
+
serializeVersion: (data) => encodeHttpResponseError(data),
|
|
440
|
+
deserializeVersion: (bytes) => decodeHttpResponseError(bytes)
|
|
441
|
+
});
|
|
442
|
+
var HTTP_RESOLVE_REQUEST_VERSIONED = createVersionedDataHandler({
|
|
443
|
+
currentVersion: CURRENT_VERSION,
|
|
444
|
+
migrations,
|
|
445
|
+
serializeVersion: (_) => new Uint8Array(),
|
|
446
|
+
deserializeVersion: (bytes) => null
|
|
447
|
+
});
|
|
448
|
+
var HTTP_RESOLVE_RESPONSE_VERSIONED = createVersionedDataHandler({
|
|
449
|
+
currentVersion: CURRENT_VERSION,
|
|
450
|
+
migrations,
|
|
451
|
+
serializeVersion: (data) => encodeHttpResolveResponse(data),
|
|
452
|
+
deserializeVersion: (bytes) => decodeHttpResolveResponse(bytes)
|
|
453
|
+
});
|
|
454
|
+
|
|
455
|
+
// src/actor/action.ts
|
|
456
|
+
var ActionContext = class {
|
|
457
|
+
/**
|
|
458
|
+
* Should not be called directly.
|
|
459
|
+
*
|
|
460
|
+
* @param actorContext - The actor context
|
|
461
|
+
* @param conn - The connection associated with the action
|
|
462
|
+
*/
|
|
463
|
+
constructor(actorContext, conn) {
|
|
464
|
+
this.conn = conn;
|
|
465
|
+
this.#actorContext = actorContext;
|
|
466
|
+
}
|
|
467
|
+
#actorContext;
|
|
468
|
+
/**
|
|
469
|
+
* Get the actor state
|
|
470
|
+
*/
|
|
471
|
+
get state() {
|
|
472
|
+
return this.#actorContext.state;
|
|
473
|
+
}
|
|
474
|
+
/**
|
|
475
|
+
* Get the actor variables
|
|
476
|
+
*/
|
|
477
|
+
get vars() {
|
|
478
|
+
return this.#actorContext.vars;
|
|
479
|
+
}
|
|
480
|
+
/**
|
|
481
|
+
* Broadcasts an event to all connected clients.
|
|
482
|
+
*/
|
|
483
|
+
broadcast(name, ...args) {
|
|
484
|
+
this.#actorContext.broadcast(name, ...args);
|
|
485
|
+
}
|
|
486
|
+
/**
|
|
487
|
+
* Gets the logger instance.
|
|
488
|
+
*/
|
|
489
|
+
get log() {
|
|
490
|
+
return this.#actorContext.log;
|
|
491
|
+
}
|
|
492
|
+
/**
|
|
493
|
+
* Gets actor ID.
|
|
494
|
+
*/
|
|
495
|
+
get actorId() {
|
|
496
|
+
return this.#actorContext.actorId;
|
|
497
|
+
}
|
|
498
|
+
/**
|
|
499
|
+
* Gets the actor name.
|
|
500
|
+
*/
|
|
501
|
+
get name() {
|
|
502
|
+
return this.#actorContext.name;
|
|
503
|
+
}
|
|
504
|
+
/**
|
|
505
|
+
* Gets the actor key.
|
|
506
|
+
*/
|
|
507
|
+
get key() {
|
|
508
|
+
return this.#actorContext.key;
|
|
509
|
+
}
|
|
510
|
+
/**
|
|
511
|
+
* Gets the region.
|
|
512
|
+
*/
|
|
513
|
+
get region() {
|
|
514
|
+
return this.#actorContext.region;
|
|
515
|
+
}
|
|
516
|
+
/**
|
|
517
|
+
* Gets the scheduler.
|
|
518
|
+
*/
|
|
519
|
+
get schedule() {
|
|
520
|
+
return this.#actorContext.schedule;
|
|
521
|
+
}
|
|
522
|
+
/**
|
|
523
|
+
* Gets the map of connections.
|
|
524
|
+
*/
|
|
525
|
+
get conns() {
|
|
526
|
+
return this.#actorContext.conns;
|
|
527
|
+
}
|
|
528
|
+
/**
|
|
529
|
+
* Returns the client for the given registry.
|
|
530
|
+
*/
|
|
531
|
+
client() {
|
|
532
|
+
return this.#actorContext.client();
|
|
533
|
+
}
|
|
534
|
+
/**
|
|
535
|
+
* @experimental
|
|
536
|
+
*/
|
|
537
|
+
get db() {
|
|
538
|
+
return this.#actorContext.db;
|
|
539
|
+
}
|
|
540
|
+
/**
|
|
541
|
+
* Forces the state to get saved.
|
|
542
|
+
*/
|
|
543
|
+
async saveState(opts) {
|
|
544
|
+
return this.#actorContext.saveState(opts);
|
|
545
|
+
}
|
|
546
|
+
/**
|
|
547
|
+
* Prevents the actor from sleeping until promise is complete.
|
|
548
|
+
*/
|
|
549
|
+
waitUntil(promise) {
|
|
550
|
+
this.#actorContext.waitUntil(promise);
|
|
551
|
+
}
|
|
552
|
+
/**
|
|
553
|
+
* AbortSignal that fires when the actor is stopping.
|
|
554
|
+
*/
|
|
555
|
+
get abortSignal() {
|
|
556
|
+
return this.#actorContext.abortSignal;
|
|
557
|
+
}
|
|
558
|
+
/**
|
|
559
|
+
* Forces the actor to sleep.
|
|
560
|
+
*
|
|
561
|
+
* Not supported on all drivers.
|
|
562
|
+
*
|
|
563
|
+
* @experimental
|
|
564
|
+
*/
|
|
565
|
+
sleep() {
|
|
566
|
+
this.#actorContext.sleep();
|
|
567
|
+
}
|
|
568
|
+
};
|
|
569
|
+
|
|
570
|
+
// src/actor/protocol/old.ts
|
|
571
|
+
var TransportSchema = _zod.z.enum(["websocket", "sse"]);
|
|
572
|
+
function getValueLength(value) {
|
|
573
|
+
if (typeof value === "string") {
|
|
574
|
+
return value.length;
|
|
575
|
+
} else if (value instanceof Blob) {
|
|
576
|
+
return value.size;
|
|
577
|
+
} else if (value instanceof ArrayBuffer || value instanceof SharedArrayBuffer || value instanceof Uint8Array) {
|
|
578
|
+
return value.byteLength;
|
|
579
|
+
} else {
|
|
580
|
+
_chunk6EUWRXLTcjs.assertUnreachable.call(void 0, value);
|
|
581
|
+
}
|
|
582
|
+
}
|
|
583
|
+
async function inputDataToBuffer(data) {
|
|
584
|
+
if (typeof data === "string") {
|
|
585
|
+
return data;
|
|
586
|
+
} else if (data instanceof Blob) {
|
|
587
|
+
const arrayBuffer = await data.arrayBuffer();
|
|
588
|
+
return new Uint8Array(arrayBuffer);
|
|
589
|
+
} else if (data instanceof Uint8Array) {
|
|
590
|
+
return data;
|
|
591
|
+
} else if (data instanceof ArrayBuffer || data instanceof SharedArrayBuffer) {
|
|
592
|
+
return new Uint8Array(data);
|
|
593
|
+
} else {
|
|
594
|
+
throw new (0, _chunk5QGQK44Lcjs.MalformedMessage)();
|
|
595
|
+
}
|
|
596
|
+
}
|
|
597
|
+
async function parseMessage(value, opts) {
|
|
598
|
+
const length = getValueLength(value);
|
|
599
|
+
if (length > opts.maxIncomingMessageSize) {
|
|
600
|
+
throw new (0, _chunk5QGQK44Lcjs.MessageTooLong)();
|
|
601
|
+
}
|
|
602
|
+
let buffer = await inputDataToBuffer(value);
|
|
603
|
+
if (buffer instanceof Buffer) {
|
|
604
|
+
buffer = new Uint8Array(buffer);
|
|
605
|
+
}
|
|
606
|
+
return _chunkSAZCNSVYcjs.deserializeWithEncoding.call(void 0, opts.encoding, buffer, TO_SERVER_VERSIONED);
|
|
607
|
+
}
|
|
608
|
+
async function processMessage(message, actor, conn, handler) {
|
|
609
|
+
let actionId;
|
|
610
|
+
let actionName;
|
|
611
|
+
try {
|
|
612
|
+
if (message.body.tag === "ActionRequest") {
|
|
613
|
+
if (handler.onExecuteAction === void 0) {
|
|
614
|
+
throw new (0, _chunk5QGQK44Lcjs.Unsupported)("Action");
|
|
615
|
+
}
|
|
616
|
+
const { id, name, args: argsRaw } = message.body.val;
|
|
617
|
+
actionId = id;
|
|
618
|
+
actionName = name;
|
|
619
|
+
const args = cbor.decode(new Uint8Array(argsRaw));
|
|
620
|
+
actor.rLog.debug({
|
|
621
|
+
msg: "processing action request",
|
|
622
|
+
actionId: id,
|
|
623
|
+
actionName: name
|
|
624
|
+
});
|
|
625
|
+
const ctx = new ActionContext(
|
|
626
|
+
actor.actorContext,
|
|
627
|
+
conn
|
|
628
|
+
);
|
|
629
|
+
const output = await handler.onExecuteAction(ctx, name, args);
|
|
630
|
+
actor.rLog.debug({
|
|
631
|
+
msg: "sending action response",
|
|
632
|
+
actionId: id,
|
|
633
|
+
actionName: name,
|
|
634
|
+
outputType: typeof output,
|
|
635
|
+
isPromise: output instanceof Promise
|
|
636
|
+
});
|
|
637
|
+
conn._sendMessage(
|
|
638
|
+
new (0, _chunkSAZCNSVYcjs.CachedSerializer)(
|
|
639
|
+
{
|
|
640
|
+
body: {
|
|
641
|
+
tag: "ActionResponse",
|
|
642
|
+
val: {
|
|
643
|
+
id,
|
|
644
|
+
output: _chunk6EUWRXLTcjs.bufferToArrayBuffer.call(void 0, cbor.encode(output))
|
|
645
|
+
}
|
|
646
|
+
}
|
|
647
|
+
},
|
|
648
|
+
TO_CLIENT_VERSIONED
|
|
649
|
+
)
|
|
650
|
+
);
|
|
651
|
+
actor.rLog.debug({ msg: "action response sent", id, name });
|
|
652
|
+
} else if (message.body.tag === "SubscriptionRequest") {
|
|
653
|
+
if (handler.onSubscribe === void 0 || handler.onUnsubscribe === void 0) {
|
|
654
|
+
throw new (0, _chunk5QGQK44Lcjs.Unsupported)("Subscriptions");
|
|
655
|
+
}
|
|
656
|
+
const { eventName, subscribe } = message.body.val;
|
|
657
|
+
actor.rLog.debug({
|
|
658
|
+
msg: "processing subscription request",
|
|
659
|
+
eventName,
|
|
660
|
+
subscribe
|
|
661
|
+
});
|
|
662
|
+
if (subscribe) {
|
|
663
|
+
await handler.onSubscribe(eventName, conn);
|
|
664
|
+
} else {
|
|
665
|
+
await handler.onUnsubscribe(eventName, conn);
|
|
666
|
+
}
|
|
667
|
+
actor.rLog.debug({
|
|
668
|
+
msg: "subscription request completed",
|
|
669
|
+
eventName,
|
|
670
|
+
subscribe
|
|
671
|
+
});
|
|
672
|
+
} else {
|
|
673
|
+
_chunk6EUWRXLTcjs.assertUnreachable.call(void 0, message.body);
|
|
674
|
+
}
|
|
675
|
+
} catch (error) {
|
|
676
|
+
const { group, code, message: message2, metadata } = _chunk6EUWRXLTcjs.deconstructError.call(void 0,
|
|
677
|
+
error,
|
|
678
|
+
actor.rLog,
|
|
679
|
+
{
|
|
680
|
+
connectionId: conn.id,
|
|
681
|
+
actionId,
|
|
682
|
+
actionName
|
|
683
|
+
}
|
|
684
|
+
);
|
|
685
|
+
actor.rLog.debug({
|
|
686
|
+
msg: "sending error response",
|
|
687
|
+
actionId,
|
|
688
|
+
actionName,
|
|
689
|
+
code,
|
|
690
|
+
message: message2
|
|
691
|
+
});
|
|
692
|
+
conn._sendMessage(
|
|
693
|
+
new (0, _chunkSAZCNSVYcjs.CachedSerializer)(
|
|
694
|
+
{
|
|
695
|
+
body: {
|
|
696
|
+
tag: "Error",
|
|
697
|
+
val: {
|
|
698
|
+
group,
|
|
699
|
+
code,
|
|
700
|
+
message: message2,
|
|
701
|
+
metadata: _chunk6EUWRXLTcjs.bufferToArrayBuffer.call(void 0, cbor.encode(metadata)),
|
|
702
|
+
actionId: _nullishCoalesce(actionId, () => ( null))
|
|
703
|
+
}
|
|
704
|
+
}
|
|
705
|
+
},
|
|
706
|
+
TO_CLIENT_VERSIONED
|
|
707
|
+
)
|
|
708
|
+
);
|
|
709
|
+
actor.rLog.debug({ msg: "error response sent", actionId, actionName });
|
|
710
|
+
}
|
|
711
|
+
}
|
|
712
|
+
|
|
713
|
+
// src/client/config.ts
|
|
714
|
+
var ClientConfigSchema = _zod2.default.object({
|
|
715
|
+
/** Configure serving the API */
|
|
716
|
+
api: _zod2.default.object({
|
|
717
|
+
host: _zod2.default.string().default("127.0.0.1"),
|
|
718
|
+
port: _zod2.default.number().default(6420)
|
|
719
|
+
}).default({}),
|
|
720
|
+
token: _zod2.default.string().optional().transform((x) => _nullishCoalesce(x, () => ( _chunk6EUWRXLTcjs.getEnvUniversal.call(void 0, "RIVET_TOKEN")))),
|
|
721
|
+
headers: _zod2.default.record(_zod2.default.string()).optional().default({}),
|
|
722
|
+
/** Endpoint to connect to the Rivet engine. Can be configured via RIVET_ENGINE env var. */
|
|
723
|
+
endpoint: _zod2.default.string().nullable().default(() => _nullishCoalesce(_chunk6EUWRXLTcjs.getEnvUniversal.call(void 0, "RIVET_ENGINE"), () => ( null))),
|
|
724
|
+
namespace: _zod2.default.string().default(() => _nullishCoalesce(_chunk6EUWRXLTcjs.getEnvUniversal.call(void 0, "RIVET_NAMESPACE"), () => ( "default"))),
|
|
725
|
+
runnerName: _zod2.default.string().default(() => _nullishCoalesce(_chunk6EUWRXLTcjs.getEnvUniversal.call(void 0, "RIVET_RUNNER"), () => ( "rivetkit"))),
|
|
726
|
+
encoding: _chunkSAZCNSVYcjs.EncodingSchema.default("bare"),
|
|
727
|
+
transport: TransportSchema.default("websocket"),
|
|
728
|
+
// This is a function to allow for lazy configuration of upgradeWebSocket on the
|
|
729
|
+
// fly. This is required since the dependencies that upgradeWebSocket
|
|
730
|
+
// (specifically Node.js) can sometimes only be specified after the router is
|
|
731
|
+
// created or must be imported async using `await import(...)`
|
|
732
|
+
getUpgradeWebSocket: _zod2.default.custom().optional()
|
|
733
|
+
});
|
|
734
|
+
|
|
735
|
+
// src/inspector/config.ts
|
|
736
|
+
|
|
737
|
+
var defaultTokenFn = () => {
|
|
738
|
+
const envToken = _chunk6EUWRXLTcjs.getEnvUniversal.call(void 0, "RIVETKIT_INSPECTOR_TOKEN");
|
|
739
|
+
if (envToken) {
|
|
740
|
+
return envToken;
|
|
741
|
+
}
|
|
742
|
+
return "";
|
|
743
|
+
};
|
|
744
|
+
var defaultEnabled = () => {
|
|
745
|
+
return _chunk6EUWRXLTcjs.getEnvUniversal.call(void 0, "NODE_ENV") !== "production" || !_chunk6EUWRXLTcjs.getEnvUniversal.call(void 0, "RIVETKIT_INSPECTOR_DISABLE");
|
|
746
|
+
};
|
|
747
|
+
var defaultInspectorOrigins = [
|
|
748
|
+
"http://localhost:43708",
|
|
749
|
+
"http://localhost:43709",
|
|
750
|
+
"https://studio.rivet.gg",
|
|
751
|
+
"https://inspect.rivet.dev"
|
|
752
|
+
];
|
|
753
|
+
var defaultCors = {
|
|
754
|
+
origin: (origin) => {
|
|
755
|
+
if (defaultInspectorOrigins.includes(origin) || origin.startsWith("https://") && origin.endsWith("rivet-dev.vercel.app")) {
|
|
756
|
+
return origin;
|
|
757
|
+
} else {
|
|
758
|
+
return null;
|
|
759
|
+
}
|
|
760
|
+
},
|
|
761
|
+
allowMethods: ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"],
|
|
762
|
+
allowHeaders: [
|
|
763
|
+
"Authorization",
|
|
764
|
+
"Content-Type",
|
|
765
|
+
"User-Agent",
|
|
766
|
+
"baggage",
|
|
767
|
+
"sentry-trace",
|
|
768
|
+
"x-rivet-actor",
|
|
769
|
+
"x-rivet-target"
|
|
770
|
+
],
|
|
771
|
+
maxAge: 3600,
|
|
772
|
+
credentials: true
|
|
773
|
+
};
|
|
774
|
+
var InspectorConfigSchema = _zod.z.object({
|
|
775
|
+
enabled: _zod.z.boolean().or(
|
|
776
|
+
_zod.z.object({
|
|
777
|
+
actor: _zod.z.boolean().optional().default(true),
|
|
778
|
+
manager: _zod.z.boolean().optional().default(true)
|
|
779
|
+
})
|
|
780
|
+
).optional().default(defaultEnabled),
|
|
781
|
+
/** CORS configuration for the router. Uses Hono's CORS middleware options. */
|
|
782
|
+
cors: _zod.z.custom().optional().default(() => defaultCors),
|
|
783
|
+
/**
|
|
784
|
+
* Token used to access the Inspector.
|
|
785
|
+
*/
|
|
786
|
+
token: _zod.z.function().returns(_zod.z.string()).optional().default(() => defaultTokenFn),
|
|
787
|
+
/**
|
|
788
|
+
* Default RivetKit server endpoint for Rivet Inspector to connect to. This should be the same endpoint as what you use for your Rivet client to connect to RivetKit.
|
|
789
|
+
*
|
|
790
|
+
* This is a convenience property just for printing out the inspector URL.
|
|
791
|
+
*/
|
|
792
|
+
defaultEndpoint: _zod.z.string().optional()
|
|
793
|
+
}).optional().default(() => ({
|
|
794
|
+
enabled: defaultEnabled(),
|
|
795
|
+
token: defaultTokenFn,
|
|
796
|
+
cors: defaultCors
|
|
797
|
+
}));
|
|
798
|
+
|
|
799
|
+
// src/registry/run-config.ts
|
|
800
|
+
var DriverConfigSchema = _zod.z.object({
|
|
801
|
+
/** Machine-readable name to identify this driver by. */
|
|
802
|
+
name: _zod.z.string(),
|
|
803
|
+
manager: _zod.z.custom(),
|
|
804
|
+
actor: _zod.z.custom()
|
|
805
|
+
});
|
|
806
|
+
var RunConfigSchema = ClientConfigSchema.extend({
|
|
807
|
+
driver: DriverConfigSchema.optional(),
|
|
808
|
+
/** CORS configuration for the router. Uses Hono's CORS middleware options. */
|
|
809
|
+
cors: _zod.z.custom().optional(),
|
|
810
|
+
maxIncomingMessageSize: _zod.z.number().optional().default(65536),
|
|
811
|
+
inspector: InspectorConfigSchema,
|
|
812
|
+
/** @experimental */
|
|
813
|
+
disableServer: _zod.z.boolean().optional().default(false),
|
|
814
|
+
/** @experimental */
|
|
815
|
+
disableActorDriver: _zod.z.boolean().optional().default(false),
|
|
816
|
+
/**
|
|
817
|
+
* @experimental
|
|
818
|
+
*
|
|
819
|
+
* Base path for the router. This is used to prefix all routes.
|
|
820
|
+
* For example, if the base path is `/api`, then the route `/actors` will be
|
|
821
|
+
* available at `/api/actors`.
|
|
822
|
+
*/
|
|
823
|
+
basePath: _zod.z.string().optional().default("/"),
|
|
824
|
+
/**
|
|
825
|
+
* @experimental
|
|
826
|
+
*
|
|
827
|
+
* Disable welcome message.
|
|
828
|
+
* */
|
|
829
|
+
noWelcome: _zod.z.boolean().optional().default(false),
|
|
830
|
+
/**
|
|
831
|
+
* @experimental
|
|
832
|
+
* */
|
|
833
|
+
logging: _zod.z.object({
|
|
834
|
+
baseLogger: _zod.z.custom().optional(),
|
|
835
|
+
level: _chunk3MBP4WNCcjs.LogLevelSchema.optional()
|
|
836
|
+
}).optional().default({})
|
|
837
|
+
}).default({});
|
|
838
|
+
|
|
839
|
+
// src/driver-helpers/utils.ts
|
|
840
|
+
|
|
841
|
+
|
|
842
|
+
// dist/schemas/actor-persist/v1.ts
|
|
843
|
+
|
|
844
|
+
var config2 = /* @__PURE__ */ bare2.Config({});
|
|
845
|
+
function readPersistedSubscription(bc) {
|
|
846
|
+
return {
|
|
847
|
+
eventName: bare2.readString(bc)
|
|
848
|
+
};
|
|
849
|
+
}
|
|
850
|
+
function writePersistedSubscription(bc, x) {
|
|
851
|
+
bare2.writeString(bc, x.eventName);
|
|
852
|
+
}
|
|
853
|
+
function read02(bc) {
|
|
854
|
+
const len = bare2.readUintSafe(bc);
|
|
855
|
+
if (len === 0) {
|
|
856
|
+
return [];
|
|
857
|
+
}
|
|
858
|
+
const result = [readPersistedSubscription(bc)];
|
|
859
|
+
for (let i = 1; i < len; i++) {
|
|
860
|
+
result[i] = readPersistedSubscription(bc);
|
|
861
|
+
}
|
|
862
|
+
return result;
|
|
863
|
+
}
|
|
864
|
+
function write02(bc, x) {
|
|
865
|
+
bare2.writeUintSafe(bc, x.length);
|
|
866
|
+
for (let i = 0; i < x.length; i++) {
|
|
867
|
+
writePersistedSubscription(bc, x[i]);
|
|
868
|
+
}
|
|
869
|
+
}
|
|
870
|
+
function readPersistedConnection(bc) {
|
|
871
|
+
return {
|
|
872
|
+
id: bare2.readString(bc),
|
|
873
|
+
token: bare2.readString(bc),
|
|
874
|
+
parameters: bare2.readData(bc),
|
|
875
|
+
state: bare2.readData(bc),
|
|
876
|
+
subscriptions: read02(bc),
|
|
877
|
+
lastSeen: bare2.readU64(bc)
|
|
878
|
+
};
|
|
879
|
+
}
|
|
880
|
+
function writePersistedConnection(bc, x) {
|
|
881
|
+
bare2.writeString(bc, x.id);
|
|
882
|
+
bare2.writeString(bc, x.token);
|
|
883
|
+
bare2.writeData(bc, x.parameters);
|
|
884
|
+
bare2.writeData(bc, x.state);
|
|
885
|
+
write02(bc, x.subscriptions);
|
|
886
|
+
bare2.writeU64(bc, x.lastSeen);
|
|
887
|
+
}
|
|
888
|
+
function read12(bc) {
|
|
889
|
+
return bare2.readBool(bc) ? bare2.readData(bc) : null;
|
|
890
|
+
}
|
|
891
|
+
function write12(bc, x) {
|
|
892
|
+
bare2.writeBool(bc, x !== null);
|
|
893
|
+
if (x !== null) {
|
|
894
|
+
bare2.writeData(bc, x);
|
|
895
|
+
}
|
|
896
|
+
}
|
|
897
|
+
function readGenericPersistedScheduleEvent(bc) {
|
|
898
|
+
return {
|
|
899
|
+
action: bare2.readString(bc),
|
|
900
|
+
args: read12(bc)
|
|
901
|
+
};
|
|
902
|
+
}
|
|
903
|
+
function writeGenericPersistedScheduleEvent(bc, x) {
|
|
904
|
+
bare2.writeString(bc, x.action);
|
|
905
|
+
write12(bc, x.args);
|
|
906
|
+
}
|
|
907
|
+
function readPersistedScheduleEventKind(bc) {
|
|
908
|
+
const offset = bc.offset;
|
|
909
|
+
const tag = bare2.readU8(bc);
|
|
910
|
+
switch (tag) {
|
|
911
|
+
case 0:
|
|
912
|
+
return { tag: "GenericPersistedScheduleEvent", val: readGenericPersistedScheduleEvent(bc) };
|
|
913
|
+
default: {
|
|
914
|
+
bc.offset = offset;
|
|
915
|
+
throw new bare2.BareError(offset, "invalid tag");
|
|
916
|
+
}
|
|
917
|
+
}
|
|
918
|
+
}
|
|
919
|
+
function writePersistedScheduleEventKind(bc, x) {
|
|
920
|
+
switch (x.tag) {
|
|
921
|
+
case "GenericPersistedScheduleEvent": {
|
|
922
|
+
bare2.writeU8(bc, 0);
|
|
923
|
+
writeGenericPersistedScheduleEvent(bc, x.val);
|
|
924
|
+
break;
|
|
925
|
+
}
|
|
926
|
+
}
|
|
927
|
+
}
|
|
928
|
+
function readPersistedScheduleEvent(bc) {
|
|
929
|
+
return {
|
|
930
|
+
eventId: bare2.readString(bc),
|
|
931
|
+
timestamp: bare2.readU64(bc),
|
|
932
|
+
kind: readPersistedScheduleEventKind(bc)
|
|
933
|
+
};
|
|
934
|
+
}
|
|
935
|
+
function writePersistedScheduleEvent(bc, x) {
|
|
936
|
+
bare2.writeString(bc, x.eventId);
|
|
937
|
+
bare2.writeU64(bc, x.timestamp);
|
|
938
|
+
writePersistedScheduleEventKind(bc, x.kind);
|
|
939
|
+
}
|
|
940
|
+
function read2(bc) {
|
|
941
|
+
const len = bare2.readUintSafe(bc);
|
|
942
|
+
if (len === 0) {
|
|
943
|
+
return [];
|
|
944
|
+
}
|
|
945
|
+
const result = [readPersistedConnection(bc)];
|
|
946
|
+
for (let i = 1; i < len; i++) {
|
|
947
|
+
result[i] = readPersistedConnection(bc);
|
|
948
|
+
}
|
|
949
|
+
return result;
|
|
950
|
+
}
|
|
951
|
+
function write2(bc, x) {
|
|
952
|
+
bare2.writeUintSafe(bc, x.length);
|
|
953
|
+
for (let i = 0; i < x.length; i++) {
|
|
954
|
+
writePersistedConnection(bc, x[i]);
|
|
955
|
+
}
|
|
956
|
+
}
|
|
957
|
+
function read3(bc) {
|
|
958
|
+
const len = bare2.readUintSafe(bc);
|
|
959
|
+
if (len === 0) {
|
|
960
|
+
return [];
|
|
961
|
+
}
|
|
962
|
+
const result = [readPersistedScheduleEvent(bc)];
|
|
963
|
+
for (let i = 1; i < len; i++) {
|
|
964
|
+
result[i] = readPersistedScheduleEvent(bc);
|
|
965
|
+
}
|
|
966
|
+
return result;
|
|
967
|
+
}
|
|
968
|
+
function write3(bc, x) {
|
|
969
|
+
bare2.writeUintSafe(bc, x.length);
|
|
970
|
+
for (let i = 0; i < x.length; i++) {
|
|
971
|
+
writePersistedScheduleEvent(bc, x[i]);
|
|
972
|
+
}
|
|
973
|
+
}
|
|
974
|
+
function readPersistedActor(bc) {
|
|
975
|
+
return {
|
|
976
|
+
input: read12(bc),
|
|
977
|
+
hasInitialized: bare2.readBool(bc),
|
|
978
|
+
state: bare2.readData(bc),
|
|
979
|
+
connections: read2(bc),
|
|
980
|
+
scheduledEvents: read3(bc)
|
|
981
|
+
};
|
|
982
|
+
}
|
|
983
|
+
function writePersistedActor(bc, x) {
|
|
984
|
+
write12(bc, x.input);
|
|
985
|
+
bare2.writeBool(bc, x.hasInitialized);
|
|
986
|
+
bare2.writeData(bc, x.state);
|
|
987
|
+
write2(bc, x.connections);
|
|
988
|
+
write3(bc, x.scheduledEvents);
|
|
989
|
+
}
|
|
990
|
+
function encodePersistedActor(x) {
|
|
991
|
+
const bc = new bare2.ByteCursor(
|
|
992
|
+
new Uint8Array(config2.initialBufferLength),
|
|
993
|
+
config2
|
|
994
|
+
);
|
|
995
|
+
writePersistedActor(bc, x);
|
|
996
|
+
return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
|
|
997
|
+
}
|
|
998
|
+
function decodePersistedActor(bytes) {
|
|
999
|
+
const bc = new bare2.ByteCursor(bytes, config2);
|
|
1000
|
+
const result = readPersistedActor(bc);
|
|
1001
|
+
if (bc.offset < bc.view.byteLength) {
|
|
1002
|
+
throw new bare2.BareError(bc.offset, "remaining bytes");
|
|
1003
|
+
}
|
|
1004
|
+
return result;
|
|
1005
|
+
}
|
|
1006
|
+
|
|
1007
|
+
// src/schemas/actor-persist/versioned.ts
|
|
1008
|
+
var CURRENT_VERSION2 = 1;
|
|
1009
|
+
var migrations2 = /* @__PURE__ */ new Map();
|
|
1010
|
+
var PERSISTED_ACTOR_VERSIONED = createVersionedDataHandler({
|
|
1011
|
+
currentVersion: CURRENT_VERSION2,
|
|
1012
|
+
migrations: migrations2,
|
|
1013
|
+
serializeVersion: (data) => encodePersistedActor(data),
|
|
1014
|
+
deserializeVersion: (bytes) => decodePersistedActor(bytes)
|
|
1015
|
+
});
|
|
1016
|
+
|
|
1017
|
+
// src/driver-helpers/utils.ts
|
|
1018
|
+
function serializeEmptyPersistData(input) {
|
|
1019
|
+
const persistData = {
|
|
1020
|
+
input: input !== void 0 ? _chunk6EUWRXLTcjs.bufferToArrayBuffer.call(void 0, cbor2.encode(input)) : null,
|
|
1021
|
+
hasInitialized: false,
|
|
1022
|
+
state: _chunk6EUWRXLTcjs.bufferToArrayBuffer.call(void 0, cbor2.encode(void 0)),
|
|
1023
|
+
connections: [],
|
|
1024
|
+
scheduledEvents: []
|
|
1025
|
+
};
|
|
1026
|
+
return PERSISTED_ACTOR_VERSIONED.serializeWithEmbeddedVersion(persistData);
|
|
1027
|
+
}
|
|
1028
|
+
|
|
1029
|
+
|
|
1030
|
+
|
|
1031
|
+
|
|
1032
|
+
|
|
1033
|
+
|
|
1034
|
+
|
|
1035
|
+
|
|
1036
|
+
|
|
1037
|
+
|
|
1038
|
+
|
|
1039
|
+
|
|
1040
|
+
|
|
1041
|
+
|
|
1042
|
+
|
|
1043
|
+
|
|
1044
|
+
|
|
1045
|
+
exports.createVersionedDataHandler = createVersionedDataHandler; exports.TO_SERVER_VERSIONED = TO_SERVER_VERSIONED; exports.TO_CLIENT_VERSIONED = TO_CLIENT_VERSIONED; exports.HTTP_ACTION_REQUEST_VERSIONED = HTTP_ACTION_REQUEST_VERSIONED; exports.HTTP_ACTION_RESPONSE_VERSIONED = HTTP_ACTION_RESPONSE_VERSIONED; exports.HTTP_RESPONSE_ERROR_VERSIONED = HTTP_RESPONSE_ERROR_VERSIONED; exports.PERSISTED_ACTOR_VERSIONED = PERSISTED_ACTOR_VERSIONED; exports.ActionContext = ActionContext; exports.inputDataToBuffer = inputDataToBuffer; exports.parseMessage = parseMessage; exports.processMessage = processMessage; exports.ClientConfigSchema = ClientConfigSchema; exports.DriverConfigSchema = DriverConfigSchema; exports.RunConfigSchema = RunConfigSchema; exports.serializeEmptyPersistData = serializeEmptyPersistData;
|
|
1046
|
+
//# sourceMappingURL=chunk-DFS77KAA.cjs.map
|