@rivetkit/supabase 2.3.12-rc.2 → 2.3.12-rc.4
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/mod.js +958 -915
- package/dist/mod.mjs +961 -918
- package/package.json +3 -3
package/dist/mod.mjs
CHANGED
|
@@ -297,6 +297,196 @@ var require_retry2 = __commonJS({
|
|
|
297
297
|
// src/mod.ts
|
|
298
298
|
import * as wasmBindings from "@rivetkit/rivetkit-wasm";
|
|
299
299
|
|
|
300
|
+
// ../rivetkit/dist/tsup/chunk-IXBD7BXC.js
|
|
301
|
+
var INTERNAL_ERROR_CODE = "internal_error";
|
|
302
|
+
var INTERNAL_ERROR_DESCRIPTION = "An internal error occurred";
|
|
303
|
+
var USER_ERROR_CODE = "user_error";
|
|
304
|
+
var BRIDGE_RIVET_ERROR_PREFIX = "__RIVET_ERROR_JSON__:";
|
|
305
|
+
function looksLikeRivetErrorOptions(value) {
|
|
306
|
+
return typeof value === "object" && value !== null && ("public" in value || "metadata" in value || "rayId" in value || "statusCode" in value || "actor" in value || "cause" in value);
|
|
307
|
+
}
|
|
308
|
+
function isTypedErrorTag(value) {
|
|
309
|
+
return value === "ActorError" || value === "RivetError";
|
|
310
|
+
}
|
|
311
|
+
function errorMessage(error46, fallback = String(error46)) {
|
|
312
|
+
if (error46 && typeof error46 === "object" && "message" in error46 && typeof error46.message === "string") {
|
|
313
|
+
return error46.message;
|
|
314
|
+
}
|
|
315
|
+
return fallback;
|
|
316
|
+
}
|
|
317
|
+
function isRivetErrorLike(error46) {
|
|
318
|
+
return typeof error46 === "object" && error46 !== null && "group" in error46 && typeof error46.group === "string" && "code" in error46 && typeof error46.code === "string" && "message" in error46 && typeof error46.message === "string" && (!("rayId" in error46) || error46.rayId === void 0 || typeof error46.rayId === "string") && (!("__type" in error46) || isTypedErrorTag(error46.__type));
|
|
319
|
+
}
|
|
320
|
+
function isActorAbortedError(error46) {
|
|
321
|
+
return isRivetErrorLike(error46) && error46.group === "actor" && error46.code === "aborted";
|
|
322
|
+
}
|
|
323
|
+
function isActorSpecifier(value) {
|
|
324
|
+
return typeof value === "object" && value !== null && "actorId" in value && typeof value.actorId === "string" && "generation" in value && typeof value.generation === "number" && (!("key" in value) || value.key === void 0 || typeof value.key === "string");
|
|
325
|
+
}
|
|
326
|
+
var RivetError = class extends Error {
|
|
327
|
+
__type = "RivetError";
|
|
328
|
+
public;
|
|
329
|
+
metadata;
|
|
330
|
+
rayId;
|
|
331
|
+
statusCode;
|
|
332
|
+
actor;
|
|
333
|
+
group;
|
|
334
|
+
code;
|
|
335
|
+
static isRivetError(error46) {
|
|
336
|
+
return isRivetErrorLike(error46);
|
|
337
|
+
}
|
|
338
|
+
static isActorError(error46) {
|
|
339
|
+
return isRivetErrorLike(error46);
|
|
340
|
+
}
|
|
341
|
+
constructor(group, code, message, options) {
|
|
342
|
+
const normalized = looksLikeRivetErrorOptions(options) ? options : { metadata: options };
|
|
343
|
+
super(message, { cause: normalized.cause });
|
|
344
|
+
this.name = "RivetError";
|
|
345
|
+
this.group = group;
|
|
346
|
+
this.code = code;
|
|
347
|
+
this.public = normalized.public ?? false;
|
|
348
|
+
this.metadata = normalized.metadata;
|
|
349
|
+
this.rayId = normalized.rayId ?? void 0;
|
|
350
|
+
this.statusCode = normalized.statusCode ?? (this.public ? 400 : 500);
|
|
351
|
+
this.actor = normalized.actor;
|
|
352
|
+
}
|
|
353
|
+
toString() {
|
|
354
|
+
return this.message;
|
|
355
|
+
}
|
|
356
|
+
};
|
|
357
|
+
var UserError = class extends RivetError {
|
|
358
|
+
constructor(message, options) {
|
|
359
|
+
super("user", (options == null ? void 0 : options.code) ?? USER_ERROR_CODE, message, {
|
|
360
|
+
public: true,
|
|
361
|
+
metadata: options == null ? void 0 : options.metadata,
|
|
362
|
+
cause: options == null ? void 0 : options.cause
|
|
363
|
+
});
|
|
364
|
+
}
|
|
365
|
+
};
|
|
366
|
+
function toRivetError(error46, fallback) {
|
|
367
|
+
if (typeof error46 === "string") {
|
|
368
|
+
const bridged = decodeBridgeRivetError(error46);
|
|
369
|
+
if (bridged) {
|
|
370
|
+
return bridged;
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
if (error46 instanceof Error) {
|
|
374
|
+
const bridged = decodeBridgeRivetError(error46.message);
|
|
375
|
+
if (bridged) {
|
|
376
|
+
return bridged;
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
if (isRivetErrorLike(error46)) {
|
|
380
|
+
return new RivetError(error46.group, error46.code, error46.message, {
|
|
381
|
+
public: error46.public,
|
|
382
|
+
statusCode: error46.statusCode,
|
|
383
|
+
metadata: error46.metadata,
|
|
384
|
+
rayId: error46.rayId,
|
|
385
|
+
actor: error46.actor,
|
|
386
|
+
cause: error46 instanceof Error ? error46.cause : void 0
|
|
387
|
+
});
|
|
388
|
+
}
|
|
389
|
+
return new RivetError(
|
|
390
|
+
(fallback == null ? void 0 : fallback.group) ?? "actor",
|
|
391
|
+
(fallback == null ? void 0 : fallback.code) ?? INTERNAL_ERROR_CODE,
|
|
392
|
+
errorMessage(error46, (fallback == null ? void 0 : fallback.message) ?? "Unknown error"),
|
|
393
|
+
{
|
|
394
|
+
public: fallback == null ? void 0 : fallback.public,
|
|
395
|
+
statusCode: fallback == null ? void 0 : fallback.statusCode,
|
|
396
|
+
metadata: fallback == null ? void 0 : fallback.metadata,
|
|
397
|
+
rayId: fallback == null ? void 0 : fallback.rayId,
|
|
398
|
+
actor: fallback == null ? void 0 : fallback.actor,
|
|
399
|
+
cause: error46 instanceof Error ? error46 : void 0
|
|
400
|
+
}
|
|
401
|
+
);
|
|
402
|
+
}
|
|
403
|
+
function encodeBridgeRivetError(error46) {
|
|
404
|
+
return `${BRIDGE_RIVET_ERROR_PREFIX}${JSON.stringify({
|
|
405
|
+
group: error46.group,
|
|
406
|
+
code: error46.code,
|
|
407
|
+
message: error46.message,
|
|
408
|
+
metadata: error46.metadata,
|
|
409
|
+
rayId: error46.rayId,
|
|
410
|
+
public: error46.public,
|
|
411
|
+
statusCode: error46.statusCode,
|
|
412
|
+
actor: error46.actor
|
|
413
|
+
})}`;
|
|
414
|
+
}
|
|
415
|
+
function decodeBridgeRivetErrorPayload(value) {
|
|
416
|
+
if (!value.startsWith(BRIDGE_RIVET_ERROR_PREFIX)) {
|
|
417
|
+
return void 0;
|
|
418
|
+
}
|
|
419
|
+
try {
|
|
420
|
+
const raw = JSON.parse(
|
|
421
|
+
value.slice(BRIDGE_RIVET_ERROR_PREFIX.length)
|
|
422
|
+
);
|
|
423
|
+
const payload = {
|
|
424
|
+
...raw,
|
|
425
|
+
rayId: raw.rayId ?? void 0
|
|
426
|
+
};
|
|
427
|
+
if (!isRivetErrorLike(payload)) {
|
|
428
|
+
return void 0;
|
|
429
|
+
}
|
|
430
|
+
if (payload.actor !== void 0 && payload.actor !== null && !isActorSpecifier(payload.actor)) {
|
|
431
|
+
return void 0;
|
|
432
|
+
}
|
|
433
|
+
return payload;
|
|
434
|
+
} catch {
|
|
435
|
+
return void 0;
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
function decodeBridgeRivetError(value) {
|
|
439
|
+
const payload = decodeBridgeRivetErrorPayload(value);
|
|
440
|
+
if (!payload) {
|
|
441
|
+
return void 0;
|
|
442
|
+
}
|
|
443
|
+
return new RivetError(payload.group, payload.code, payload.message, {
|
|
444
|
+
metadata: payload.metadata,
|
|
445
|
+
rayId: payload.rayId,
|
|
446
|
+
public: payload.public,
|
|
447
|
+
statusCode: payload.statusCode,
|
|
448
|
+
actor: payload.actor ?? void 0
|
|
449
|
+
});
|
|
450
|
+
}
|
|
451
|
+
function invalidRequest(error46) {
|
|
452
|
+
return new RivetError(
|
|
453
|
+
"request",
|
|
454
|
+
"invalid",
|
|
455
|
+
`Invalid request: ${errorMessage(error46, String(error46))}`,
|
|
456
|
+
{
|
|
457
|
+
public: true,
|
|
458
|
+
cause: error46 instanceof Error ? error46 : void 0
|
|
459
|
+
}
|
|
460
|
+
);
|
|
461
|
+
}
|
|
462
|
+
function actorNotFound(identifier) {
|
|
463
|
+
return new RivetError(
|
|
464
|
+
"actor",
|
|
465
|
+
"not_found",
|
|
466
|
+
identifier ? `Actor not found: ${identifier} (https://www.rivet.dev/docs/clients/javascript)` : "Actor not found (https://www.rivet.dev/docs/clients/javascript)",
|
|
467
|
+
{ public: true }
|
|
468
|
+
);
|
|
469
|
+
}
|
|
470
|
+
function forbiddenError() {
|
|
471
|
+
return new RivetError("auth", "forbidden", "Forbidden", {
|
|
472
|
+
public: true,
|
|
473
|
+
statusCode: 403
|
|
474
|
+
});
|
|
475
|
+
}
|
|
476
|
+
function unsupportedFeature(feature) {
|
|
477
|
+
return new RivetError(
|
|
478
|
+
"feature",
|
|
479
|
+
"unsupported",
|
|
480
|
+
`Unsupported feature: ${feature}`
|
|
481
|
+
);
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
// ../rivetkit/dist/tsup/chunk-64DT44V2.js
|
|
485
|
+
import {
|
|
486
|
+
pino,
|
|
487
|
+
stdTimeFunctions
|
|
488
|
+
} from "pino";
|
|
489
|
+
|
|
300
490
|
// ../../../node_modules/.pnpm/zod@4.1.13/node_modules/zod/v4/classic/external.js
|
|
301
491
|
var external_exports = {};
|
|
302
492
|
__export(external_exports, {
|
|
@@ -12967,705 +13157,53 @@ var classic_default = external_exports;
|
|
|
12967
13157
|
// ../../../node_modules/.pnpm/zod@4.1.13/node_modules/zod/v4/index.js
|
|
12968
13158
|
var v4_default = classic_default;
|
|
12969
13159
|
|
|
12970
|
-
// ../rivetkit/dist/tsup/chunk-
|
|
12971
|
-
|
|
12972
|
-
|
|
12973
|
-
|
|
12974
|
-
|
|
13160
|
+
// ../rivetkit/dist/tsup/chunk-64DT44V2.js
|
|
13161
|
+
var import_invariant = __toESM(require_invariant(), 1);
|
|
13162
|
+
import * as cbor from "cbor-x";
|
|
13163
|
+
var getRivetEngine = () => getEnvUniversal("RIVET_ENGINE");
|
|
13164
|
+
var getRivetEndpoint = () => getEnvUniversal("RIVET_ENDPOINT");
|
|
13165
|
+
var getRivetToken = () => getEnvUniversal("RIVET_TOKEN");
|
|
13166
|
+
var getRivetNamespace = () => getEnvUniversal("RIVET_NAMESPACE");
|
|
13167
|
+
var getRivetPool = () => getEnvUniversal("RIVET_POOL");
|
|
13168
|
+
var getRivetTotalSlots = () => {
|
|
13169
|
+
const value = getEnvUniversal("RIVET_TOTAL_SLOTS");
|
|
13170
|
+
return value !== void 0 ? parseInt(value, 10) : void 0;
|
|
13171
|
+
};
|
|
13172
|
+
var getRivetRunEngine = () => getEnvUniversal("RIVET_RUN_ENGINE") === "1";
|
|
13173
|
+
var getRivetRunEngineHost = () => getEnvUniversal("RIVET_RUN_ENGINE_HOST");
|
|
13174
|
+
var getRivetRunEnginePort = () => {
|
|
13175
|
+
const value = getEnvUniversal("RIVET_RUN_ENGINE_PORT");
|
|
13176
|
+
return value !== void 0 ? parseInt(value, 10) : void 0;
|
|
13177
|
+
};
|
|
13178
|
+
var getRivetRunEngineVersion = () => getEnvUniversal("RIVET_RUN_ENGINE_VERSION");
|
|
13179
|
+
var getRivetEnvoyVersion = () => {
|
|
13180
|
+
const value = getEnvUniversal("RIVET_ENVOY_VERSION");
|
|
13181
|
+
return value !== void 0 ? parseInt(value, 10) : void 0;
|
|
13182
|
+
};
|
|
13183
|
+
var getRivetPublicEndpoint = () => getEnvUniversal("RIVET_PUBLIC_ENDPOINT");
|
|
13184
|
+
var getRivetPublicToken = () => getEnvUniversal("RIVET_PUBLIC_TOKEN");
|
|
13185
|
+
var getRivetkitRuntime = () => getEnvUniversal("RIVETKIT_RUNTIME");
|
|
13186
|
+
var getRivetkitRuntimeMode = () => {
|
|
13187
|
+
const value = getEnvUniversal("RIVETKIT_RUNTIME_MODE");
|
|
13188
|
+
if (value === void 0) return "envoy";
|
|
13189
|
+
if (value === "envoy" || value === "serverless") return value;
|
|
13190
|
+
throw new Error(
|
|
13191
|
+
`RIVETKIT_RUNTIME_MODE env var must be "envoy" or "serverless"; got "${value}"`
|
|
13192
|
+
);
|
|
13193
|
+
};
|
|
13194
|
+
var getRivetkitPublicDir = () => {
|
|
13195
|
+
const value = getEnvUniversal("RIVETKIT_PUBLIC_DIR");
|
|
13196
|
+
return value === void 0 || value === "" ? void 0 : value;
|
|
13197
|
+
};
|
|
13198
|
+
function parsePortEnv(raw) {
|
|
13199
|
+
if (raw === void 0 || raw === "") return void 0;
|
|
13200
|
+
const parsed = Number.parseInt(raw, 10);
|
|
13201
|
+
if (!Number.isFinite(parsed) || parsed < 1 || parsed > 65535 || String(parsed) !== raw.trim()) {
|
|
13202
|
+
throw new Error(
|
|
13203
|
+
`RIVET_PORT env var must be an integer between 1 and 65535; got "${raw}"`
|
|
13204
|
+
);
|
|
12975
13205
|
}
|
|
12976
|
-
return
|
|
12977
|
-
}
|
|
12978
|
-
function flattenActionInputSchemas(actions, schemas) {
|
|
12979
|
-
if (schemas === void 0) return void 0;
|
|
12980
|
-
if (!isRecord(schemas)) {
|
|
12981
|
-
throw new TypeError("actionInputSchemas must be an object");
|
|
12982
|
-
}
|
|
12983
|
-
const flattened = /* @__PURE__ */ Object.create(null);
|
|
12984
|
-
for (const { name, path: path2 } of collectActionEntries(actions)) {
|
|
12985
|
-
const nestedSchema = lookupNestedSchema(schemas, path2);
|
|
12986
|
-
const flatSchema = schemas[name];
|
|
12987
|
-
if (nestedSchema !== void 0 && flatSchema !== void 0 && nestedSchema !== flatSchema) {
|
|
12988
|
-
throw new TypeError(
|
|
12989
|
-
`Action input schema \`${name}\` is defined by both a nested path and a dotted key`
|
|
12990
|
-
);
|
|
12991
|
-
}
|
|
12992
|
-
const schema = nestedSchema ?? flatSchema;
|
|
12993
|
-
if (schema !== void 0) {
|
|
12994
|
-
flattened[name] = schema;
|
|
12995
|
-
}
|
|
12996
|
-
}
|
|
12997
|
-
return flattened;
|
|
12998
|
-
}
|
|
12999
|
-
function collectActionEntries(actions) {
|
|
13000
|
-
const entries = [];
|
|
13001
|
-
const names = /* @__PURE__ */ new Set();
|
|
13002
|
-
visitActionGroup(actions ?? {}, [], entries, names);
|
|
13003
|
-
return entries;
|
|
13004
|
-
}
|
|
13005
|
-
function visitActionGroup(value, path2, entries, names) {
|
|
13006
|
-
if (!isRecord(value)) {
|
|
13007
|
-
throw new TypeError(
|
|
13008
|
-
`${formatActionPath(path2)} must be an action handler or group`
|
|
13009
|
-
);
|
|
13010
|
-
}
|
|
13011
|
-
for (const [segment, child] of Object.entries(value)) {
|
|
13012
|
-
const childPath = [...path2, segment];
|
|
13013
|
-
if (typeof child === "function") {
|
|
13014
|
-
const name = childPath.join(".");
|
|
13015
|
-
if (names.has(name)) {
|
|
13016
|
-
throw new TypeError(
|
|
13017
|
-
`Multiple action definitions flatten to \`${name}\``
|
|
13018
|
-
);
|
|
13019
|
-
}
|
|
13020
|
-
names.add(name);
|
|
13021
|
-
entries.push({
|
|
13022
|
-
name,
|
|
13023
|
-
path: childPath,
|
|
13024
|
-
handler: child
|
|
13025
|
-
});
|
|
13026
|
-
} else {
|
|
13027
|
-
visitActionGroup(child, childPath, entries, names);
|
|
13028
|
-
}
|
|
13029
|
-
}
|
|
13030
|
-
}
|
|
13031
|
-
function lookupNestedSchema(schemas, path2) {
|
|
13032
|
-
let value = schemas;
|
|
13033
|
-
for (const segment of path2) {
|
|
13034
|
-
if (!isRecord(value) || !Object.hasOwn(value, segment)) {
|
|
13035
|
-
return void 0;
|
|
13036
|
-
}
|
|
13037
|
-
value = value[segment];
|
|
13038
|
-
}
|
|
13039
|
-
return value;
|
|
13040
|
-
}
|
|
13041
|
-
function isRecord(value) {
|
|
13042
|
-
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
13043
|
-
return false;
|
|
13044
|
-
}
|
|
13045
|
-
const prototype = Object.getPrototypeOf(value);
|
|
13046
|
-
return prototype === Object.prototype || prototype === null;
|
|
13047
|
-
}
|
|
13048
|
-
function formatActionPath(path2) {
|
|
13049
|
-
return path2.length === 0 ? "actions" : `Action \`${path2.join(".")}\``;
|
|
13050
|
-
}
|
|
13051
|
-
var DEFAULT_SLEEP_GRACE_PERIOD = 15e3;
|
|
13052
|
-
var ACTOR_CONTEXT_INTERNAL_SYMBOL = /* @__PURE__ */ Symbol(
|
|
13053
|
-
"rivetkit.actor_context_internal"
|
|
13054
|
-
);
|
|
13055
|
-
var RAW_STATE_SYMBOL = /* @__PURE__ */ Symbol("rivetkit.raw_state");
|
|
13056
|
-
var CONN_STATE_MANAGER_SYMBOL = /* @__PURE__ */ Symbol("rivetkit.conn_state_manager");
|
|
13057
|
-
var zFunction = () => external_exports.custom((val) => typeof val === "function");
|
|
13058
|
-
var zActionTree = external_exports.custom((value) => {
|
|
13059
|
-
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
13060
|
-
return false;
|
|
13061
|
-
}
|
|
13062
|
-
const prototype = Object.getPrototypeOf(value);
|
|
13063
|
-
return prototype === Object.prototype || prototype === null;
|
|
13064
|
-
}).superRefine((actions, ctx) => {
|
|
13065
|
-
try {
|
|
13066
|
-
flattenActionHandlers(actions);
|
|
13067
|
-
} catch (error46) {
|
|
13068
|
-
ctx.addIssue({
|
|
13069
|
-
code: "custom",
|
|
13070
|
-
message: error46 instanceof Error ? error46.message : "Invalid action definition"
|
|
13071
|
-
});
|
|
13072
|
-
}
|
|
13073
|
-
});
|
|
13074
|
-
var WorkflowInspectorConfigSchema = external_exports.object({
|
|
13075
|
-
getHistory: zFunction(),
|
|
13076
|
-
getState: zFunction().optional(),
|
|
13077
|
-
onHistoryUpdated: zFunction().optional(),
|
|
13078
|
-
replayFromStep: zFunction().optional()
|
|
13079
|
-
});
|
|
13080
|
-
var RunInspectorConfigSchema = external_exports.object({
|
|
13081
|
-
workflow: WorkflowInspectorConfigSchema.optional()
|
|
13082
|
-
}).optional();
|
|
13083
|
-
var BUILTIN_INSPECTOR_TAB_IDS = [
|
|
13084
|
-
"workflow",
|
|
13085
|
-
"database",
|
|
13086
|
-
"state",
|
|
13087
|
-
"queue",
|
|
13088
|
-
"schedules",
|
|
13089
|
-
"connections",
|
|
13090
|
-
"console"
|
|
13091
|
-
];
|
|
13092
|
-
var BuiltinInspectorTabIdSchema = external_exports.enum(BUILTIN_INSPECTOR_TAB_IDS);
|
|
13093
|
-
var CUSTOM_INSPECTOR_TAB_ID_RE = /^[A-Za-z0-9_-]+$/;
|
|
13094
|
-
var CustomInspectorTabEntrySchema = external_exports.object({
|
|
13095
|
-
id: external_exports.string().regex(
|
|
13096
|
-
CUSTOM_INSPECTOR_TAB_ID_RE,
|
|
13097
|
-
"inspector.tabs[].id must contain only letters, digits, underscore, or dash"
|
|
13098
|
-
),
|
|
13099
|
-
label: external_exports.string().min(1),
|
|
13100
|
-
source: external_exports.string().min(1),
|
|
13101
|
-
/**
|
|
13102
|
-
* Optional icon id. The dashboard maps strings to glyphs (see its
|
|
13103
|
-
* icon registry); unknown ids fall back to a generic icon.
|
|
13104
|
-
*/
|
|
13105
|
-
icon: external_exports.string().min(1).optional(),
|
|
13106
|
-
hidden: external_exports.literal(false).optional()
|
|
13107
|
-
}).strict();
|
|
13108
|
-
var HideInspectorTabEntrySchema = external_exports.object({
|
|
13109
|
-
id: BuiltinInspectorTabIdSchema,
|
|
13110
|
-
hidden: external_exports.literal(true)
|
|
13111
|
-
}).strict();
|
|
13112
|
-
var InspectorTabEntrySchema = external_exports.union([
|
|
13113
|
-
CustomInspectorTabEntrySchema,
|
|
13114
|
-
HideInspectorTabEntrySchema
|
|
13115
|
-
]);
|
|
13116
|
-
var ActorInspectorConfigSchema = external_exports.object({
|
|
13117
|
-
tabs: external_exports.array(InspectorTabEntrySchema).default(() => [])
|
|
13118
|
-
}).strict().refine(
|
|
13119
|
-
(data) => {
|
|
13120
|
-
const ids = data.tabs.map((t) => t.id);
|
|
13121
|
-
return new Set(ids).size === ids.length;
|
|
13122
|
-
},
|
|
13123
|
-
{ message: "Duplicate id in inspector.tabs", path: ["tabs"] }
|
|
13124
|
-
).refine(
|
|
13125
|
-
(data) => {
|
|
13126
|
-
const builtinSet = new Set(BUILTIN_INSPECTOR_TAB_IDS);
|
|
13127
|
-
return data.tabs.every(
|
|
13128
|
-
(t) => t.hidden === true || !builtinSet.has(t.id)
|
|
13129
|
-
);
|
|
13130
|
-
},
|
|
13131
|
-
{
|
|
13132
|
-
message: "Custom inspector tab id collides with a built-in (use hidden: true to hide a built-in)",
|
|
13133
|
-
path: ["tabs"]
|
|
13134
|
-
}
|
|
13135
|
-
);
|
|
13136
|
-
var RunConfigSchema = external_exports.object({
|
|
13137
|
-
/** Display name for the actor in the Inspector UI. */
|
|
13138
|
-
name: external_exports.string().optional(),
|
|
13139
|
-
/** Icon for the actor in the Inspector UI. Can be an emoji or FontAwesome icon name. */
|
|
13140
|
-
icon: external_exports.string().optional(),
|
|
13141
|
-
/** The run handler function. */
|
|
13142
|
-
run: zFunction(),
|
|
13143
|
-
/** Inspector integration for long-running run handlers. */
|
|
13144
|
-
inspector: RunInspectorConfigSchema.optional()
|
|
13145
|
-
});
|
|
13146
|
-
var RUN_FUNCTION_CONFIG_SYMBOL = /* @__PURE__ */ Symbol.for("rivetkit.run_function_config");
|
|
13147
|
-
function defineRunHandler(run, options) {
|
|
13148
|
-
if (options.inspectorKind === void 0 !== (options.createInspector === void 0)) {
|
|
13149
|
-
throw new TypeError(
|
|
13150
|
-
"defineRunHandler requires inspectorKind and createInspector together"
|
|
13151
|
-
);
|
|
13152
|
-
}
|
|
13153
|
-
Object.defineProperty(run, RUN_FUNCTION_CONFIG_SYMBOL, {
|
|
13154
|
-
configurable: false,
|
|
13155
|
-
enumerable: false,
|
|
13156
|
-
writable: false,
|
|
13157
|
-
value: {
|
|
13158
|
-
name: options.name,
|
|
13159
|
-
icon: options.icon,
|
|
13160
|
-
inspectorKind: options.inspectorKind,
|
|
13161
|
-
createInspector: options.createInspector
|
|
13162
|
-
}
|
|
13163
|
-
});
|
|
13164
|
-
return run;
|
|
13165
|
-
}
|
|
13166
|
-
function getRunInspectorKind(run) {
|
|
13167
|
-
var _a2;
|
|
13168
|
-
if (!run || typeof run !== "function") return void 0;
|
|
13169
|
-
return (_a2 = run[RUN_FUNCTION_CONFIG_SYMBOL]) == null ? void 0 : _a2.inspectorKind;
|
|
13170
|
-
}
|
|
13171
|
-
function createRunInspector(run, context) {
|
|
13172
|
-
var _a2, _b;
|
|
13173
|
-
if (!run || typeof run !== "function") return void 0;
|
|
13174
|
-
return (_b = (_a2 = run[RUN_FUNCTION_CONFIG_SYMBOL]) == null ? void 0 : _a2.createInspector) == null ? void 0 : _b.call(_a2, context);
|
|
13175
|
-
}
|
|
13176
|
-
var zRunHandler = external_exports.union([zFunction(), RunConfigSchema]).optional();
|
|
13177
|
-
function getRunFunction(run) {
|
|
13178
|
-
if (!run) return void 0;
|
|
13179
|
-
if (typeof run === "function") return run;
|
|
13180
|
-
return run.run;
|
|
13181
|
-
}
|
|
13182
|
-
function getRunMetadata(run) {
|
|
13183
|
-
if (!run) return {};
|
|
13184
|
-
if (typeof run === "function") {
|
|
13185
|
-
const config3 = run[RUN_FUNCTION_CONFIG_SYMBOL];
|
|
13186
|
-
if (!config3) return {};
|
|
13187
|
-
return { name: config3.name, icon: config3.icon };
|
|
13188
|
-
}
|
|
13189
|
-
return { name: run.name, icon: run.icon };
|
|
13190
|
-
}
|
|
13191
|
-
function getRunInspectorConfig(run, actor2) {
|
|
13192
|
-
if (!run) return void 0;
|
|
13193
|
-
if (typeof run === "function") {
|
|
13194
|
-
const config3 = run[RUN_FUNCTION_CONFIG_SYMBOL];
|
|
13195
|
-
return (config3 == null ? void 0 : config3.inspectorFactory) ? config3.inspectorFactory(actor2) : config3 == null ? void 0 : config3.inspector;
|
|
13196
|
-
}
|
|
13197
|
-
return run.inspector;
|
|
13198
|
-
}
|
|
13199
|
-
function hasRunInspectorConfig(run) {
|
|
13200
|
-
if (!run) return false;
|
|
13201
|
-
if (typeof run !== "function") return run.inspector !== void 0;
|
|
13202
|
-
const config3 = run[RUN_FUNCTION_CONFIG_SYMBOL];
|
|
13203
|
-
return (config3 == null ? void 0 : config3.inspectorKind) !== void 0 || (config3 == null ? void 0 : config3.createInspector) !== void 0 || (config3 == null ? void 0 : config3.inspector) !== void 0 || (config3 == null ? void 0 : config3.inspectorFactory) !== void 0;
|
|
13204
|
-
}
|
|
13205
|
-
function disposeRunInspector(run, actorId) {
|
|
13206
|
-
var _a2;
|
|
13207
|
-
if (!run || typeof run !== "function") {
|
|
13208
|
-
return;
|
|
13209
|
-
}
|
|
13210
|
-
const config3 = run[RUN_FUNCTION_CONFIG_SYMBOL];
|
|
13211
|
-
(_a2 = config3 == null ? void 0 : config3.disposeInspector) == null ? void 0 : _a2.call(config3, actorId);
|
|
13212
|
-
}
|
|
13213
|
-
var GlobalActorOptionsBaseSchema = external_exports.object({
|
|
13214
|
-
/** Display name for the actor in the Inspector UI. */
|
|
13215
|
-
name: external_exports.string().optional(),
|
|
13216
|
-
/** Icon for the actor in the Inspector UI. Can be an emoji or FontAwesome icon name. */
|
|
13217
|
-
icon: external_exports.string().optional(),
|
|
13218
|
-
/** Enables the experimental Actor Runtime Socket for this actor. */
|
|
13219
|
-
enableActorRuntimeSocket: external_exports.boolean().default(false),
|
|
13220
|
-
/**
|
|
13221
|
-
* Can hibernate WebSockets for onWebSocket.
|
|
13222
|
-
*
|
|
13223
|
-
* WebSockets using actions/events are hibernatable by default.
|
|
13224
|
-
*
|
|
13225
|
-
* @experimental
|
|
13226
|
-
**/
|
|
13227
|
-
canHibernateWebSocket: external_exports.union([external_exports.boolean(), zFunction()]).default(false)
|
|
13228
|
-
}).strict();
|
|
13229
|
-
var GlobalActorOptionsSchema = GlobalActorOptionsBaseSchema.prefault(
|
|
13230
|
-
() => ({})
|
|
13231
|
-
);
|
|
13232
|
-
var InstanceActorOptionsBaseSchema = external_exports.object({
|
|
13233
|
-
createVarsTimeout: external_exports.number().positive().default(5e3),
|
|
13234
|
-
createConnStateTimeout: external_exports.number().positive().default(5e3),
|
|
13235
|
-
onBeforeConnectTimeout: external_exports.number().positive().default(5e3),
|
|
13236
|
-
onConnectTimeout: external_exports.number().positive().default(5e3),
|
|
13237
|
-
onMigrateTimeout: external_exports.number().positive().default(3e4),
|
|
13238
|
-
sleepGracePeriod: external_exports.number().positive().default(DEFAULT_SLEEP_GRACE_PERIOD),
|
|
13239
|
-
/** @deprecated `onDestroyTimeout` is folded into `sleepGracePeriod`, which now bounds the entire graceful shutdown window for both sleep and destroy. Will be removed in 2.2.0. */
|
|
13240
|
-
onDestroyTimeout: external_exports.number().positive().optional(),
|
|
13241
|
-
/** @deprecated `waitUntilTimeout` is folded into `sleepGracePeriod`, which now bounds the entire graceful shutdown window for both sleep and destroy. Will be removed in 2.2.0. */
|
|
13242
|
-
waitUntilTimeout: external_exports.number().positive().optional(),
|
|
13243
|
-
stateSaveInterval: external_exports.number().positive().default(1e3),
|
|
13244
|
-
actionTimeout: external_exports.number().positive().default(6e4),
|
|
13245
|
-
connectionLivenessTimeout: external_exports.number().positive().default(2500),
|
|
13246
|
-
connectionLivenessInterval: external_exports.number().positive().default(5e3),
|
|
13247
|
-
/** @deprecated Use `c.keepAwake(promise)` to scope keep-awake to a specific operation, or keep `noSleep` for actors that must stay awake indefinitely. Will be removed in 2.2.0. */
|
|
13248
|
-
noSleep: external_exports.boolean().default(false),
|
|
13249
|
-
sleepTimeout: external_exports.number().positive().default(3e4),
|
|
13250
|
-
maxQueueSize: external_exports.number().positive().default(1e3),
|
|
13251
|
-
/** Maximum pending one-shot and recurring schedules. */
|
|
13252
|
-
maxSchedules: external_exports.number().int().nonnegative().default(1e3),
|
|
13253
|
-
maxQueueMessageSize: external_exports.number().positive().default(64 * 1024),
|
|
13254
|
-
/** @deprecated Internal storage moved to SQLite and no longer uses KV preloading, so this option is ignored. Will be removed in 2.2.0. */
|
|
13255
|
-
preloadMaxWorkflowBytes: external_exports.number().nonnegative().optional(),
|
|
13256
|
-
/** @deprecated Internal storage moved to SQLite and no longer uses KV preloading, so this option is ignored. Will be removed in 2.2.0. */
|
|
13257
|
-
preloadMaxConnectionsBytes: external_exports.number().nonnegative().optional()
|
|
13258
|
-
}).strict();
|
|
13259
|
-
var InstanceActorOptionsSchema = InstanceActorOptionsBaseSchema.prefault(() => ({}));
|
|
13260
|
-
var ActorOptionsSchema = GlobalActorOptionsBaseSchema.extend(
|
|
13261
|
-
InstanceActorOptionsBaseSchema.shape
|
|
13262
|
-
).strict().prefault(() => ({}));
|
|
13263
|
-
var ActorConfigSchema = external_exports.object({
|
|
13264
|
-
onCreate: zFunction().optional(),
|
|
13265
|
-
onDestroy: zFunction().optional(),
|
|
13266
|
-
onMigrate: zFunction().optional(),
|
|
13267
|
-
onWake: zFunction().optional(),
|
|
13268
|
-
onSleep: zFunction().optional(),
|
|
13269
|
-
run: zRunHandler,
|
|
13270
|
-
onStateChange: zFunction().optional(),
|
|
13271
|
-
onBeforeConnect: zFunction().optional(),
|
|
13272
|
-
onConnect: zFunction().optional(),
|
|
13273
|
-
onDisconnect: zFunction().optional(),
|
|
13274
|
-
onBeforeActionResponse: zFunction().optional(),
|
|
13275
|
-
onRequest: zFunction().optional(),
|
|
13276
|
-
onWebSocket: zFunction().optional(),
|
|
13277
|
-
actions: zActionTree.default(() => ({})),
|
|
13278
|
-
actionInputSchemas: external_exports.record(external_exports.string(), external_exports.any()).optional(),
|
|
13279
|
-
connParamsSchema: external_exports.any().optional(),
|
|
13280
|
-
events: external_exports.record(external_exports.string(), external_exports.any()).optional(),
|
|
13281
|
-
queues: external_exports.record(external_exports.string(), external_exports.any()).optional(),
|
|
13282
|
-
state: external_exports.any().optional(),
|
|
13283
|
-
createState: zFunction().optional(),
|
|
13284
|
-
connState: external_exports.any().optional(),
|
|
13285
|
-
createConnState: zFunction().optional(),
|
|
13286
|
-
vars: external_exports.any().optional(),
|
|
13287
|
-
db: external_exports.any().optional(),
|
|
13288
|
-
createVars: zFunction().optional(),
|
|
13289
|
-
options: ActorOptionsSchema,
|
|
13290
|
-
inspector: ActorInspectorConfigSchema.optional()
|
|
13291
|
-
}).strict().refine(
|
|
13292
|
-
(data) => !(data.state !== void 0 && data.createState !== void 0),
|
|
13293
|
-
{
|
|
13294
|
-
message: "Cannot define both 'state' and 'createState'",
|
|
13295
|
-
path: ["state"]
|
|
13296
|
-
}
|
|
13297
|
-
).refine(
|
|
13298
|
-
(data) => !(data.connState !== void 0 && data.createConnState !== void 0),
|
|
13299
|
-
{
|
|
13300
|
-
message: "Cannot define both 'connState' and 'createConnState'",
|
|
13301
|
-
path: ["connState"]
|
|
13302
|
-
}
|
|
13303
|
-
).refine(
|
|
13304
|
-
(data) => !(data.vars !== void 0 && data.createVars !== void 0),
|
|
13305
|
-
{
|
|
13306
|
-
message: "Cannot define both 'vars' and 'createVars'",
|
|
13307
|
-
path: ["vars"]
|
|
13308
|
-
}
|
|
13309
|
-
);
|
|
13310
|
-
var DocActorOptionsSchema = external_exports.object({
|
|
13311
|
-
name: external_exports.string().optional().describe("Display name for the actor in the Inspector UI."),
|
|
13312
|
-
icon: external_exports.string().optional().describe(
|
|
13313
|
-
"Icon for the actor in the Inspector UI. Can be an emoji (e.g., '\u{1F680}') or FontAwesome icon name (e.g., 'rocket')."
|
|
13314
|
-
),
|
|
13315
|
-
enableActorRuntimeSocket: external_exports.boolean().optional().describe(
|
|
13316
|
-
"Enables the experimental Actor Runtime Socket for this actor. Default: false"
|
|
13317
|
-
),
|
|
13318
|
-
createVarsTimeout: external_exports.number().optional().describe("Timeout in ms for createVars handler. Default: 5000"),
|
|
13319
|
-
createConnStateTimeout: external_exports.number().optional().describe(
|
|
13320
|
-
"Timeout in ms for createConnState handler. Default: 5000"
|
|
13321
|
-
),
|
|
13322
|
-
onMigrateTimeout: external_exports.number().optional().describe("Timeout in ms for onMigrate handler. Default: 30000"),
|
|
13323
|
-
onBeforeConnectTimeout: external_exports.number().optional().describe(
|
|
13324
|
-
"Timeout in ms for onBeforeConnect handler. Default: 5000"
|
|
13325
|
-
),
|
|
13326
|
-
onConnectTimeout: external_exports.number().optional().describe("Timeout in ms for onConnect handler. Default: 5000"),
|
|
13327
|
-
sleepGracePeriod: external_exports.number().optional().describe(
|
|
13328
|
-
`Max time in ms for the graceful shutdown window. Covers lifecycle hooks (onSleep, onDestroy), the run handler wait, async raw WebSocket handlers, disconnect callbacks, and final state serialization. Default: ${DEFAULT_SLEEP_GRACE_PERIOD}.`
|
|
13329
|
-
),
|
|
13330
|
-
onDestroyTimeout: external_exports.number().optional().describe(
|
|
13331
|
-
"Deprecated. Folded into sleepGracePeriod, which now bounds the entire graceful shutdown window for both sleep and destroy. Will be removed in 2.2.0."
|
|
13332
|
-
),
|
|
13333
|
-
waitUntilTimeout: external_exports.number().optional().describe(
|
|
13334
|
-
"Deprecated. Folded into sleepGracePeriod, which now bounds the entire graceful shutdown window for both sleep and destroy. Will be removed in 2.2.0."
|
|
13335
|
-
),
|
|
13336
|
-
stateSaveInterval: external_exports.number().optional().describe(
|
|
13337
|
-
"Interval in ms between automatic state saves. Default: 1000"
|
|
13338
|
-
),
|
|
13339
|
-
actionTimeout: external_exports.number().optional().describe("Timeout in ms for action handlers. Default: 60000"),
|
|
13340
|
-
connectionLivenessTimeout: external_exports.number().optional().describe(
|
|
13341
|
-
"Timeout in ms for connection liveness checks. Default: 2500"
|
|
13342
|
-
),
|
|
13343
|
-
connectionLivenessInterval: external_exports.number().optional().describe(
|
|
13344
|
-
"Interval in ms between connection liveness checks. Default: 5000"
|
|
13345
|
-
),
|
|
13346
|
-
noSleep: external_exports.boolean().optional().describe(
|
|
13347
|
-
"Deprecated. If true, the actor will never sleep. Use c.keepAwake(promise) to scope keep-awake to a specific operation instead. Default: false"
|
|
13348
|
-
),
|
|
13349
|
-
sleepTimeout: external_exports.number().optional().describe(
|
|
13350
|
-
"Time in ms of inactivity before the actor sleeps. Default: 30000"
|
|
13351
|
-
),
|
|
13352
|
-
maxQueueSize: external_exports.number().optional().describe(
|
|
13353
|
-
"Maximum number of queue messages before rejecting new messages. Default: 1000"
|
|
13354
|
-
),
|
|
13355
|
-
maxSchedules: external_exports.number().int().nonnegative().optional().describe(
|
|
13356
|
-
"Maximum pending one-shot and recurring schedules before rejecting new schedules. Default: 1000"
|
|
13357
|
-
),
|
|
13358
|
-
maxQueueMessageSize: external_exports.number().optional().describe(
|
|
13359
|
-
"Maximum size of each queue message in bytes. Default: 65536"
|
|
13360
|
-
),
|
|
13361
|
-
canHibernateWebSocket: external_exports.boolean().optional().describe(
|
|
13362
|
-
"Whether WebSockets using onWebSocket can be hibernated. WebSockets using actions/events are hibernatable by default. Default: false"
|
|
13363
|
-
)
|
|
13364
|
-
}).describe("Actor options for timeouts and behavior configuration.");
|
|
13365
|
-
var DocActorConfigSchema = external_exports.object({
|
|
13366
|
-
state: external_exports.unknown().optional().describe(
|
|
13367
|
-
"Initial state value for the actor. Cannot be used with createState."
|
|
13368
|
-
),
|
|
13369
|
-
createState: external_exports.unknown().optional().describe(
|
|
13370
|
-
"Function to create initial state. Receives context and input. Cannot be used with state."
|
|
13371
|
-
),
|
|
13372
|
-
connState: external_exports.unknown().optional().describe(
|
|
13373
|
-
"Initial connection state value. Cannot be used with createConnState."
|
|
13374
|
-
),
|
|
13375
|
-
createConnState: external_exports.unknown().optional().describe(
|
|
13376
|
-
"Function to create connection state. Receives context and connection params. The pending connection is not visible in c.conns until this succeeds. Cannot be used with connState."
|
|
13377
|
-
),
|
|
13378
|
-
vars: external_exports.unknown().optional().describe(
|
|
13379
|
-
"Initial ephemeral variables value. Cannot be used with createVars."
|
|
13380
|
-
),
|
|
13381
|
-
createVars: external_exports.unknown().optional().describe(
|
|
13382
|
-
"Function to create ephemeral variables. Receives context and driver context. Cannot be used with vars."
|
|
13383
|
-
),
|
|
13384
|
-
db: external_exports.unknown().optional().describe("Database provider instance for the actor."),
|
|
13385
|
-
onCreate: external_exports.unknown().optional().describe(
|
|
13386
|
-
"Called when the actor is first initialized. Use to initialize state."
|
|
13387
|
-
),
|
|
13388
|
-
onDestroy: external_exports.unknown().optional().describe("Called when the actor is destroyed."),
|
|
13389
|
-
onMigrate: external_exports.unknown().optional().describe(
|
|
13390
|
-
"Called on every actor start after persisted state loads and before onWake. Use for repeatable schema migrations."
|
|
13391
|
-
),
|
|
13392
|
-
onWake: external_exports.unknown().optional().describe(
|
|
13393
|
-
"Called when the actor wakes up and is ready to receive connections and actions."
|
|
13394
|
-
),
|
|
13395
|
-
onSleep: external_exports.unknown().optional().describe(
|
|
13396
|
-
"Called when the actor is stopping or sleeping. Use to clean up resources."
|
|
13397
|
-
),
|
|
13398
|
-
run: external_exports.unknown().optional().describe(
|
|
13399
|
-
"Called after actor starts. Does not block startup. Use for background tasks like queue processing or tick loops. If it exits, the actor follows the normal idle sleep timeout once idle. If it throws, the actor logs the error and then follows the normal idle sleep timeout once idle."
|
|
13400
|
-
),
|
|
13401
|
-
onStateChange: external_exports.unknown().optional().describe(
|
|
13402
|
-
"Called when the actor's state changes. State changes within this hook won't trigger recursion."
|
|
13403
|
-
),
|
|
13404
|
-
onBeforeConnect: external_exports.unknown().optional().describe(
|
|
13405
|
-
"Called before a client connects. Throw an error to reject the connection. The pending connection is not visible in c.conns while this runs."
|
|
13406
|
-
),
|
|
13407
|
-
onConnect: external_exports.unknown().optional().describe(
|
|
13408
|
-
"Called when a client successfully connects. The connection is visible in c.conns before this runs."
|
|
13409
|
-
),
|
|
13410
|
-
onDisconnect: external_exports.unknown().optional().describe("Called when a client disconnects."),
|
|
13411
|
-
onBeforeActionResponse: external_exports.unknown().optional().describe(
|
|
13412
|
-
"Called before sending an action response. Use to transform output."
|
|
13413
|
-
),
|
|
13414
|
-
onRequest: external_exports.unknown().optional().describe(
|
|
13415
|
-
"Called for raw HTTP requests to /actors/{name}/http/* endpoints."
|
|
13416
|
-
),
|
|
13417
|
-
onWebSocket: external_exports.unknown().optional().describe(
|
|
13418
|
-
"Called for raw WebSocket connections to /actors/{name}/websocket/* endpoints."
|
|
13419
|
-
),
|
|
13420
|
-
actions: external_exports.record(external_exports.string(), external_exports.unknown()).optional().describe(
|
|
13421
|
-
"Tree of action names or nested groups to handler functions. Nested paths use dot-separated low-level action names. Defaults to an empty object."
|
|
13422
|
-
),
|
|
13423
|
-
actionInputSchemas: external_exports.record(external_exports.string(), external_exports.unknown()).optional().describe(
|
|
13424
|
-
"Optional schemas for validating action argument tuples in native runtimes. May mirror nested action groups or use dot-separated low-level action names."
|
|
13425
|
-
),
|
|
13426
|
-
connParamsSchema: external_exports.unknown().optional().describe(
|
|
13427
|
-
"Optional schema for validating connection params in native runtimes."
|
|
13428
|
-
),
|
|
13429
|
-
events: external_exports.record(external_exports.string(), external_exports.unknown()).optional().describe("Map of event names to schemas."),
|
|
13430
|
-
queues: external_exports.record(external_exports.string(), external_exports.unknown()).optional().describe("Map of queue names to schemas."),
|
|
13431
|
-
options: DocActorOptionsSchema.optional()
|
|
13432
|
-
}).describe("Actor configuration passed to the actor() function.");
|
|
13433
|
-
|
|
13434
|
-
// ../rivetkit/dist/tsup/chunk-IXBD7BXC.js
|
|
13435
|
-
var INTERNAL_ERROR_CODE = "internal_error";
|
|
13436
|
-
var INTERNAL_ERROR_DESCRIPTION = "An internal error occurred";
|
|
13437
|
-
var USER_ERROR_CODE = "user_error";
|
|
13438
|
-
var BRIDGE_RIVET_ERROR_PREFIX = "__RIVET_ERROR_JSON__:";
|
|
13439
|
-
function looksLikeRivetErrorOptions(value) {
|
|
13440
|
-
return typeof value === "object" && value !== null && ("public" in value || "metadata" in value || "rayId" in value || "statusCode" in value || "actor" in value || "cause" in value);
|
|
13441
|
-
}
|
|
13442
|
-
function isTypedErrorTag(value) {
|
|
13443
|
-
return value === "ActorError" || value === "RivetError";
|
|
13444
|
-
}
|
|
13445
|
-
function errorMessage(error46, fallback = String(error46)) {
|
|
13446
|
-
if (error46 && typeof error46 === "object" && "message" in error46 && typeof error46.message === "string") {
|
|
13447
|
-
return error46.message;
|
|
13448
|
-
}
|
|
13449
|
-
return fallback;
|
|
13450
|
-
}
|
|
13451
|
-
function isRivetErrorLike(error46) {
|
|
13452
|
-
return typeof error46 === "object" && error46 !== null && "group" in error46 && typeof error46.group === "string" && "code" in error46 && typeof error46.code === "string" && "message" in error46 && typeof error46.message === "string" && (!("rayId" in error46) || error46.rayId === void 0 || typeof error46.rayId === "string") && (!("__type" in error46) || isTypedErrorTag(error46.__type));
|
|
13453
|
-
}
|
|
13454
|
-
function isActorAbortedError(error46) {
|
|
13455
|
-
return isRivetErrorLike(error46) && error46.group === "actor" && error46.code === "aborted";
|
|
13456
|
-
}
|
|
13457
|
-
function isActorSpecifier(value) {
|
|
13458
|
-
return typeof value === "object" && value !== null && "actorId" in value && typeof value.actorId === "string" && "generation" in value && typeof value.generation === "number" && (!("key" in value) || value.key === void 0 || typeof value.key === "string");
|
|
13459
|
-
}
|
|
13460
|
-
var RivetError = class extends Error {
|
|
13461
|
-
__type = "RivetError";
|
|
13462
|
-
public;
|
|
13463
|
-
metadata;
|
|
13464
|
-
rayId;
|
|
13465
|
-
statusCode;
|
|
13466
|
-
actor;
|
|
13467
|
-
group;
|
|
13468
|
-
code;
|
|
13469
|
-
static isRivetError(error46) {
|
|
13470
|
-
return isRivetErrorLike(error46);
|
|
13471
|
-
}
|
|
13472
|
-
static isActorError(error46) {
|
|
13473
|
-
return isRivetErrorLike(error46);
|
|
13474
|
-
}
|
|
13475
|
-
constructor(group, code, message, options) {
|
|
13476
|
-
const normalized = looksLikeRivetErrorOptions(options) ? options : { metadata: options };
|
|
13477
|
-
super(message, { cause: normalized.cause });
|
|
13478
|
-
this.name = "RivetError";
|
|
13479
|
-
this.group = group;
|
|
13480
|
-
this.code = code;
|
|
13481
|
-
this.public = normalized.public ?? false;
|
|
13482
|
-
this.metadata = normalized.metadata;
|
|
13483
|
-
this.rayId = normalized.rayId ?? void 0;
|
|
13484
|
-
this.statusCode = normalized.statusCode ?? (this.public ? 400 : 500);
|
|
13485
|
-
this.actor = normalized.actor;
|
|
13486
|
-
}
|
|
13487
|
-
toString() {
|
|
13488
|
-
return this.message;
|
|
13489
|
-
}
|
|
13490
|
-
};
|
|
13491
|
-
var UserError = class extends RivetError {
|
|
13492
|
-
constructor(message, options) {
|
|
13493
|
-
super("user", (options == null ? void 0 : options.code) ?? USER_ERROR_CODE, message, {
|
|
13494
|
-
public: true,
|
|
13495
|
-
metadata: options == null ? void 0 : options.metadata,
|
|
13496
|
-
cause: options == null ? void 0 : options.cause
|
|
13497
|
-
});
|
|
13498
|
-
}
|
|
13499
|
-
};
|
|
13500
|
-
function toRivetError(error46, fallback) {
|
|
13501
|
-
if (typeof error46 === "string") {
|
|
13502
|
-
const bridged = decodeBridgeRivetError(error46);
|
|
13503
|
-
if (bridged) {
|
|
13504
|
-
return bridged;
|
|
13505
|
-
}
|
|
13506
|
-
}
|
|
13507
|
-
if (error46 instanceof Error) {
|
|
13508
|
-
const bridged = decodeBridgeRivetError(error46.message);
|
|
13509
|
-
if (bridged) {
|
|
13510
|
-
return bridged;
|
|
13511
|
-
}
|
|
13512
|
-
}
|
|
13513
|
-
if (isRivetErrorLike(error46)) {
|
|
13514
|
-
return new RivetError(error46.group, error46.code, error46.message, {
|
|
13515
|
-
public: error46.public,
|
|
13516
|
-
statusCode: error46.statusCode,
|
|
13517
|
-
metadata: error46.metadata,
|
|
13518
|
-
rayId: error46.rayId,
|
|
13519
|
-
actor: error46.actor,
|
|
13520
|
-
cause: error46 instanceof Error ? error46.cause : void 0
|
|
13521
|
-
});
|
|
13522
|
-
}
|
|
13523
|
-
return new RivetError(
|
|
13524
|
-
(fallback == null ? void 0 : fallback.group) ?? "actor",
|
|
13525
|
-
(fallback == null ? void 0 : fallback.code) ?? INTERNAL_ERROR_CODE,
|
|
13526
|
-
errorMessage(error46, (fallback == null ? void 0 : fallback.message) ?? "Unknown error"),
|
|
13527
|
-
{
|
|
13528
|
-
public: fallback == null ? void 0 : fallback.public,
|
|
13529
|
-
statusCode: fallback == null ? void 0 : fallback.statusCode,
|
|
13530
|
-
metadata: fallback == null ? void 0 : fallback.metadata,
|
|
13531
|
-
rayId: fallback == null ? void 0 : fallback.rayId,
|
|
13532
|
-
actor: fallback == null ? void 0 : fallback.actor,
|
|
13533
|
-
cause: error46 instanceof Error ? error46 : void 0
|
|
13534
|
-
}
|
|
13535
|
-
);
|
|
13536
|
-
}
|
|
13537
|
-
function encodeBridgeRivetError(error46) {
|
|
13538
|
-
return `${BRIDGE_RIVET_ERROR_PREFIX}${JSON.stringify({
|
|
13539
|
-
group: error46.group,
|
|
13540
|
-
code: error46.code,
|
|
13541
|
-
message: error46.message,
|
|
13542
|
-
metadata: error46.metadata,
|
|
13543
|
-
rayId: error46.rayId,
|
|
13544
|
-
public: error46.public,
|
|
13545
|
-
statusCode: error46.statusCode,
|
|
13546
|
-
actor: error46.actor
|
|
13547
|
-
})}`;
|
|
13548
|
-
}
|
|
13549
|
-
function decodeBridgeRivetErrorPayload(value) {
|
|
13550
|
-
if (!value.startsWith(BRIDGE_RIVET_ERROR_PREFIX)) {
|
|
13551
|
-
return void 0;
|
|
13552
|
-
}
|
|
13553
|
-
try {
|
|
13554
|
-
const raw = JSON.parse(
|
|
13555
|
-
value.slice(BRIDGE_RIVET_ERROR_PREFIX.length)
|
|
13556
|
-
);
|
|
13557
|
-
const payload = {
|
|
13558
|
-
...raw,
|
|
13559
|
-
rayId: raw.rayId ?? void 0
|
|
13560
|
-
};
|
|
13561
|
-
if (!isRivetErrorLike(payload)) {
|
|
13562
|
-
return void 0;
|
|
13563
|
-
}
|
|
13564
|
-
if (payload.actor !== void 0 && payload.actor !== null && !isActorSpecifier(payload.actor)) {
|
|
13565
|
-
return void 0;
|
|
13566
|
-
}
|
|
13567
|
-
return payload;
|
|
13568
|
-
} catch {
|
|
13569
|
-
return void 0;
|
|
13570
|
-
}
|
|
13571
|
-
}
|
|
13572
|
-
function decodeBridgeRivetError(value) {
|
|
13573
|
-
const payload = decodeBridgeRivetErrorPayload(value);
|
|
13574
|
-
if (!payload) {
|
|
13575
|
-
return void 0;
|
|
13576
|
-
}
|
|
13577
|
-
return new RivetError(payload.group, payload.code, payload.message, {
|
|
13578
|
-
metadata: payload.metadata,
|
|
13579
|
-
rayId: payload.rayId,
|
|
13580
|
-
public: payload.public,
|
|
13581
|
-
statusCode: payload.statusCode,
|
|
13582
|
-
actor: payload.actor ?? void 0
|
|
13583
|
-
});
|
|
13584
|
-
}
|
|
13585
|
-
function invalidRequest(error46) {
|
|
13586
|
-
return new RivetError(
|
|
13587
|
-
"request",
|
|
13588
|
-
"invalid",
|
|
13589
|
-
`Invalid request: ${errorMessage(error46, String(error46))}`,
|
|
13590
|
-
{
|
|
13591
|
-
public: true,
|
|
13592
|
-
cause: error46 instanceof Error ? error46 : void 0
|
|
13593
|
-
}
|
|
13594
|
-
);
|
|
13595
|
-
}
|
|
13596
|
-
function actorNotFound(identifier) {
|
|
13597
|
-
return new RivetError(
|
|
13598
|
-
"actor",
|
|
13599
|
-
"not_found",
|
|
13600
|
-
identifier ? `Actor not found: ${identifier} (https://www.rivet.dev/docs/clients/javascript)` : "Actor not found (https://www.rivet.dev/docs/clients/javascript)",
|
|
13601
|
-
{ public: true }
|
|
13602
|
-
);
|
|
13603
|
-
}
|
|
13604
|
-
function forbiddenError() {
|
|
13605
|
-
return new RivetError("auth", "forbidden", "Forbidden", {
|
|
13606
|
-
public: true,
|
|
13607
|
-
statusCode: 403
|
|
13608
|
-
});
|
|
13609
|
-
}
|
|
13610
|
-
function unsupportedFeature(feature) {
|
|
13611
|
-
return new RivetError(
|
|
13612
|
-
"feature",
|
|
13613
|
-
"unsupported",
|
|
13614
|
-
`Unsupported feature: ${feature}`
|
|
13615
|
-
);
|
|
13616
|
-
}
|
|
13617
|
-
|
|
13618
|
-
// ../rivetkit/dist/tsup/chunk-YW75TS76.js
|
|
13619
|
-
import {
|
|
13620
|
-
pino,
|
|
13621
|
-
stdTimeFunctions
|
|
13622
|
-
} from "pino";
|
|
13623
|
-
var import_invariant = __toESM(require_invariant(), 1);
|
|
13624
|
-
import * as cbor from "cbor-x";
|
|
13625
|
-
var getRivetEngine = () => getEnvUniversal("RIVET_ENGINE");
|
|
13626
|
-
var getRivetEndpoint = () => getEnvUniversal("RIVET_ENDPOINT");
|
|
13627
|
-
var getRivetToken = () => getEnvUniversal("RIVET_TOKEN");
|
|
13628
|
-
var getRivetNamespace = () => getEnvUniversal("RIVET_NAMESPACE");
|
|
13629
|
-
var getRivetPool = () => getEnvUniversal("RIVET_POOL");
|
|
13630
|
-
var getRivetTotalSlots = () => {
|
|
13631
|
-
const value = getEnvUniversal("RIVET_TOTAL_SLOTS");
|
|
13632
|
-
return value !== void 0 ? parseInt(value, 10) : void 0;
|
|
13633
|
-
};
|
|
13634
|
-
var getRivetRunEngine = () => getEnvUniversal("RIVET_RUN_ENGINE") === "1";
|
|
13635
|
-
var getRivetRunEngineHost = () => getEnvUniversal("RIVET_RUN_ENGINE_HOST");
|
|
13636
|
-
var getRivetRunEnginePort = () => {
|
|
13637
|
-
const value = getEnvUniversal("RIVET_RUN_ENGINE_PORT");
|
|
13638
|
-
return value !== void 0 ? parseInt(value, 10) : void 0;
|
|
13639
|
-
};
|
|
13640
|
-
var getRivetRunEngineVersion = () => getEnvUniversal("RIVET_RUN_ENGINE_VERSION");
|
|
13641
|
-
var getRivetEnvoyVersion = () => {
|
|
13642
|
-
const value = getEnvUniversal("RIVET_ENVOY_VERSION");
|
|
13643
|
-
return value !== void 0 ? parseInt(value, 10) : void 0;
|
|
13644
|
-
};
|
|
13645
|
-
var getRivetPublicEndpoint = () => getEnvUniversal("RIVET_PUBLIC_ENDPOINT");
|
|
13646
|
-
var getRivetPublicToken = () => getEnvUniversal("RIVET_PUBLIC_TOKEN");
|
|
13647
|
-
var getRivetkitRuntime = () => getEnvUniversal("RIVETKIT_RUNTIME");
|
|
13648
|
-
var getRivetkitRuntimeMode = () => {
|
|
13649
|
-
const value = getEnvUniversal("RIVETKIT_RUNTIME_MODE");
|
|
13650
|
-
if (value === void 0) return "envoy";
|
|
13651
|
-
if (value === "envoy" || value === "serverless") return value;
|
|
13652
|
-
throw new Error(
|
|
13653
|
-
`RIVETKIT_RUNTIME_MODE env var must be "envoy" or "serverless"; got "${value}"`
|
|
13654
|
-
);
|
|
13655
|
-
};
|
|
13656
|
-
var getRivetkitPublicDir = () => {
|
|
13657
|
-
const value = getEnvUniversal("RIVETKIT_PUBLIC_DIR");
|
|
13658
|
-
return value === void 0 || value === "" ? void 0 : value;
|
|
13659
|
-
};
|
|
13660
|
-
function parsePortEnv(raw) {
|
|
13661
|
-
if (raw === void 0 || raw === "") return void 0;
|
|
13662
|
-
const parsed = Number.parseInt(raw, 10);
|
|
13663
|
-
if (!Number.isFinite(parsed) || parsed < 1 || parsed > 65535 || String(parsed) !== raw.trim()) {
|
|
13664
|
-
throw new Error(
|
|
13665
|
-
`RIVET_PORT env var must be an integer between 1 and 65535; got "${raw}"`
|
|
13666
|
-
);
|
|
13667
|
-
}
|
|
13668
|
-
return parsed;
|
|
13206
|
+
return parsed;
|
|
13669
13207
|
}
|
|
13670
13208
|
var getLogLevel = () => getEnvUniversal("RIVET_LOG_LEVEL") ?? getEnvUniversal("LOG_LEVEL");
|
|
13671
13209
|
var getLogTarget = () => getEnvUniversal("RIVET_LOG_TARGET") === "1";
|
|
@@ -13789,7 +13327,7 @@ function noopNext() {
|
|
|
13789
13327
|
}
|
|
13790
13328
|
var package_default = {
|
|
13791
13329
|
name: "rivetkit",
|
|
13792
|
-
version: "2.3.12-rc.
|
|
13330
|
+
version: "2.3.12-rc.4",
|
|
13793
13331
|
description: "Lightweight libraries for building stateful actors on edge platforms",
|
|
13794
13332
|
license: "Apache-2.0",
|
|
13795
13333
|
keywords: [
|
|
@@ -15092,7 +14630,7 @@ function Config({ initialBufferLength = 1024, maxBufferLength = 1024 * 1024 * 32
|
|
|
15092
14630
|
};
|
|
15093
14631
|
}
|
|
15094
14632
|
|
|
15095
|
-
// ../rivetkit/dist/tsup/chunk-
|
|
14633
|
+
// ../rivetkit/dist/tsup/chunk-BQ7YJ3PG.js
|
|
15096
14634
|
var config2 = /* @__PURE__ */ Config({});
|
|
15097
14635
|
function readWorkflowCbor(bc) {
|
|
15098
14636
|
return readData(bc);
|
|
@@ -15209,31 +14747,155 @@ function readWorkflowLoopEntry(bc) {
|
|
|
15209
14747
|
output: read0(bc)
|
|
15210
14748
|
};
|
|
15211
14749
|
}
|
|
15212
|
-
function readWorkflowSleepEntry(bc) {
|
|
14750
|
+
function readWorkflowSleepEntry(bc) {
|
|
14751
|
+
return {
|
|
14752
|
+
deadline: readU64(bc),
|
|
14753
|
+
state: readWorkflowSleepState(bc)
|
|
14754
|
+
};
|
|
14755
|
+
}
|
|
14756
|
+
function readWorkflowMessageEntry(bc) {
|
|
14757
|
+
return {
|
|
14758
|
+
name: readString(bc),
|
|
14759
|
+
messageData: readWorkflowCbor(bc)
|
|
14760
|
+
};
|
|
14761
|
+
}
|
|
14762
|
+
function readWorkflowRollbackCheckpointEntry(bc) {
|
|
14763
|
+
return {
|
|
14764
|
+
name: readString(bc)
|
|
14765
|
+
};
|
|
14766
|
+
}
|
|
14767
|
+
function readWorkflowBranchStatus(bc) {
|
|
14768
|
+
return {
|
|
14769
|
+
status: readWorkflowBranchStatusType(bc),
|
|
14770
|
+
output: read0(bc),
|
|
14771
|
+
error: read1(bc)
|
|
14772
|
+
};
|
|
14773
|
+
}
|
|
14774
|
+
function read2(bc) {
|
|
14775
|
+
const len = readUintSafe(bc);
|
|
14776
|
+
const result = /* @__PURE__ */ new Map();
|
|
14777
|
+
for (let i = 0; i < len; i++) {
|
|
14778
|
+
const offset = bc.offset;
|
|
14779
|
+
const key = readString(bc);
|
|
14780
|
+
if (result.has(key)) {
|
|
14781
|
+
bc.offset = offset;
|
|
14782
|
+
throw new BareError(offset, "duplicated key");
|
|
14783
|
+
}
|
|
14784
|
+
result.set(key, readWorkflowBranchStatus(bc));
|
|
14785
|
+
}
|
|
14786
|
+
return result;
|
|
14787
|
+
}
|
|
14788
|
+
function readWorkflowJoinEntry(bc) {
|
|
14789
|
+
return {
|
|
14790
|
+
branches: read2(bc)
|
|
14791
|
+
};
|
|
14792
|
+
}
|
|
14793
|
+
function readWorkflowRaceEntry(bc) {
|
|
14794
|
+
return {
|
|
14795
|
+
winner: read1(bc),
|
|
14796
|
+
branches: read2(bc)
|
|
14797
|
+
};
|
|
14798
|
+
}
|
|
14799
|
+
function readWorkflowRemovedEntry(bc) {
|
|
14800
|
+
return {
|
|
14801
|
+
originalType: readString(bc),
|
|
14802
|
+
originalName: read1(bc)
|
|
14803
|
+
};
|
|
14804
|
+
}
|
|
14805
|
+
function readWorkflowVersionCheckEntry(bc) {
|
|
14806
|
+
return {
|
|
14807
|
+
resolved: readU32(bc),
|
|
14808
|
+
latest: readU32(bc)
|
|
14809
|
+
};
|
|
14810
|
+
}
|
|
14811
|
+
function readWorkflowEntryKind(bc) {
|
|
14812
|
+
const offset = bc.offset;
|
|
14813
|
+
const tag = readU8(bc);
|
|
14814
|
+
switch (tag) {
|
|
14815
|
+
case 0:
|
|
14816
|
+
return { tag: "WorkflowStepEntry", val: readWorkflowStepEntry(bc) };
|
|
14817
|
+
case 1:
|
|
14818
|
+
return { tag: "WorkflowLoopEntry", val: readWorkflowLoopEntry(bc) };
|
|
14819
|
+
case 2:
|
|
14820
|
+
return {
|
|
14821
|
+
tag: "WorkflowSleepEntry",
|
|
14822
|
+
val: readWorkflowSleepEntry(bc)
|
|
14823
|
+
};
|
|
14824
|
+
case 3:
|
|
14825
|
+
return {
|
|
14826
|
+
tag: "WorkflowMessageEntry",
|
|
14827
|
+
val: readWorkflowMessageEntry(bc)
|
|
14828
|
+
};
|
|
14829
|
+
case 4:
|
|
14830
|
+
return {
|
|
14831
|
+
tag: "WorkflowRollbackCheckpointEntry",
|
|
14832
|
+
val: readWorkflowRollbackCheckpointEntry(bc)
|
|
14833
|
+
};
|
|
14834
|
+
case 5:
|
|
14835
|
+
return { tag: "WorkflowJoinEntry", val: readWorkflowJoinEntry(bc) };
|
|
14836
|
+
case 6:
|
|
14837
|
+
return { tag: "WorkflowRaceEntry", val: readWorkflowRaceEntry(bc) };
|
|
14838
|
+
case 7:
|
|
14839
|
+
return {
|
|
14840
|
+
tag: "WorkflowRemovedEntry",
|
|
14841
|
+
val: readWorkflowRemovedEntry(bc)
|
|
14842
|
+
};
|
|
14843
|
+
case 8:
|
|
14844
|
+
return {
|
|
14845
|
+
tag: "WorkflowVersionCheckEntry",
|
|
14846
|
+
val: readWorkflowVersionCheckEntry(bc)
|
|
14847
|
+
};
|
|
14848
|
+
default: {
|
|
14849
|
+
bc.offset = offset;
|
|
14850
|
+
throw new BareError(offset, "invalid tag");
|
|
14851
|
+
}
|
|
14852
|
+
}
|
|
14853
|
+
}
|
|
14854
|
+
function readWorkflowEntry(bc) {
|
|
15213
14855
|
return {
|
|
15214
|
-
|
|
15215
|
-
|
|
14856
|
+
id: readString(bc),
|
|
14857
|
+
location: readWorkflowLocation(bc),
|
|
14858
|
+
kind: readWorkflowEntryKind(bc)
|
|
15216
14859
|
};
|
|
15217
14860
|
}
|
|
15218
|
-
function
|
|
15219
|
-
return
|
|
15220
|
-
name: readString(bc),
|
|
15221
|
-
messageData: readWorkflowCbor(bc)
|
|
15222
|
-
};
|
|
14861
|
+
function read3(bc) {
|
|
14862
|
+
return readBool(bc) ? readU64(bc) : null;
|
|
15223
14863
|
}
|
|
15224
|
-
function
|
|
14864
|
+
function readWorkflowEntryMetadata(bc) {
|
|
15225
14865
|
return {
|
|
15226
|
-
|
|
14866
|
+
status: readWorkflowEntryStatus(bc),
|
|
14867
|
+
error: read1(bc),
|
|
14868
|
+
attempts: readU32(bc),
|
|
14869
|
+
lastAttemptAt: readU64(bc),
|
|
14870
|
+
createdAt: readU64(bc),
|
|
14871
|
+
completedAt: read3(bc),
|
|
14872
|
+
rollbackCompletedAt: read3(bc),
|
|
14873
|
+
rollbackError: read1(bc)
|
|
15227
14874
|
};
|
|
15228
14875
|
}
|
|
15229
|
-
function
|
|
15230
|
-
|
|
15231
|
-
|
|
15232
|
-
|
|
15233
|
-
|
|
15234
|
-
|
|
14876
|
+
function read4(bc) {
|
|
14877
|
+
const len = readUintSafe(bc);
|
|
14878
|
+
if (len === 0) {
|
|
14879
|
+
return [];
|
|
14880
|
+
}
|
|
14881
|
+
const result = [readString(bc)];
|
|
14882
|
+
for (let i = 1; i < len; i++) {
|
|
14883
|
+
result[i] = readString(bc);
|
|
14884
|
+
}
|
|
14885
|
+
return result;
|
|
15235
14886
|
}
|
|
15236
|
-
function
|
|
14887
|
+
function read5(bc) {
|
|
14888
|
+
const len = readUintSafe(bc);
|
|
14889
|
+
if (len === 0) {
|
|
14890
|
+
return [];
|
|
14891
|
+
}
|
|
14892
|
+
const result = [readWorkflowEntry(bc)];
|
|
14893
|
+
for (let i = 1; i < len; i++) {
|
|
14894
|
+
result[i] = readWorkflowEntry(bc);
|
|
14895
|
+
}
|
|
14896
|
+
return result;
|
|
14897
|
+
}
|
|
14898
|
+
function read6(bc) {
|
|
15237
14899
|
const len = readUintSafe(bc);
|
|
15238
14900
|
const result = /* @__PURE__ */ new Map();
|
|
15239
14901
|
for (let i = 0; i < len; i++) {
|
|
@@ -15243,152 +14905,509 @@ function read2(bc) {
|
|
|
15243
14905
|
bc.offset = offset;
|
|
15244
14906
|
throw new BareError(offset, "duplicated key");
|
|
15245
14907
|
}
|
|
15246
|
-
result.set(key,
|
|
14908
|
+
result.set(key, readWorkflowEntryMetadata(bc));
|
|
14909
|
+
}
|
|
14910
|
+
return result;
|
|
14911
|
+
}
|
|
14912
|
+
function readWorkflowHistory(bc) {
|
|
14913
|
+
return {
|
|
14914
|
+
nameRegistry: read4(bc),
|
|
14915
|
+
entries: read5(bc),
|
|
14916
|
+
entryMetadata: read6(bc)
|
|
14917
|
+
};
|
|
14918
|
+
}
|
|
14919
|
+
function decodeWorkflowHistory(bytes) {
|
|
14920
|
+
const bc = new ByteCursor(bytes, config2);
|
|
14921
|
+
const result = readWorkflowHistory(bc);
|
|
14922
|
+
if (bc.offset < bc.view.byteLength) {
|
|
14923
|
+
throw new BareError(bc.offset, "remaining bytes");
|
|
14924
|
+
}
|
|
14925
|
+
return result;
|
|
14926
|
+
}
|
|
14927
|
+
function decodeWorkflowHistoryTransport(data) {
|
|
14928
|
+
return decodeWorkflowHistory(toUint8Array(data));
|
|
14929
|
+
}
|
|
14930
|
+
|
|
14931
|
+
// ../rivetkit/dist/tsup/chunk-DLQSZ6Q7.js
|
|
14932
|
+
function flattenActionHandlers(actions) {
|
|
14933
|
+
const flattened = /* @__PURE__ */ Object.create(null);
|
|
14934
|
+
for (const { name, handler } of collectActionEntries(actions)) {
|
|
14935
|
+
flattened[name] = handler;
|
|
14936
|
+
}
|
|
14937
|
+
return flattened;
|
|
14938
|
+
}
|
|
14939
|
+
function flattenActionInputSchemas(actions, schemas) {
|
|
14940
|
+
if (schemas === void 0) return void 0;
|
|
14941
|
+
if (!isRecord(schemas)) {
|
|
14942
|
+
throw new TypeError("actionInputSchemas must be an object");
|
|
14943
|
+
}
|
|
14944
|
+
const flattened = /* @__PURE__ */ Object.create(null);
|
|
14945
|
+
for (const { name, path: path2 } of collectActionEntries(actions)) {
|
|
14946
|
+
const nestedSchema = lookupNestedSchema(schemas, path2);
|
|
14947
|
+
const flatSchema = schemas[name];
|
|
14948
|
+
if (nestedSchema !== void 0 && flatSchema !== void 0 && nestedSchema !== flatSchema) {
|
|
14949
|
+
throw new TypeError(
|
|
14950
|
+
`Action input schema \`${name}\` is defined by both a nested path and a dotted key`
|
|
14951
|
+
);
|
|
14952
|
+
}
|
|
14953
|
+
const schema = nestedSchema ?? flatSchema;
|
|
14954
|
+
if (schema !== void 0) {
|
|
14955
|
+
flattened[name] = schema;
|
|
14956
|
+
}
|
|
14957
|
+
}
|
|
14958
|
+
return flattened;
|
|
14959
|
+
}
|
|
14960
|
+
function collectActionEntries(actions) {
|
|
14961
|
+
const entries = [];
|
|
14962
|
+
const names = /* @__PURE__ */ new Set();
|
|
14963
|
+
visitActionGroup(actions ?? {}, [], entries, names);
|
|
14964
|
+
return entries;
|
|
14965
|
+
}
|
|
14966
|
+
function visitActionGroup(value, path2, entries, names) {
|
|
14967
|
+
if (!isRecord(value)) {
|
|
14968
|
+
throw new TypeError(
|
|
14969
|
+
`${formatActionPath(path2)} must be an action handler or group`
|
|
14970
|
+
);
|
|
14971
|
+
}
|
|
14972
|
+
for (const [segment, child] of Object.entries(value)) {
|
|
14973
|
+
const childPath = [...path2, segment];
|
|
14974
|
+
if (typeof child === "function") {
|
|
14975
|
+
const name = childPath.join(".");
|
|
14976
|
+
if (names.has(name)) {
|
|
14977
|
+
throw new TypeError(
|
|
14978
|
+
`Multiple action definitions flatten to \`${name}\``
|
|
14979
|
+
);
|
|
14980
|
+
}
|
|
14981
|
+
names.add(name);
|
|
14982
|
+
entries.push({
|
|
14983
|
+
name,
|
|
14984
|
+
path: childPath,
|
|
14985
|
+
handler: child
|
|
14986
|
+
});
|
|
14987
|
+
} else {
|
|
14988
|
+
visitActionGroup(child, childPath, entries, names);
|
|
14989
|
+
}
|
|
14990
|
+
}
|
|
14991
|
+
}
|
|
14992
|
+
function lookupNestedSchema(schemas, path2) {
|
|
14993
|
+
let value = schemas;
|
|
14994
|
+
for (const segment of path2) {
|
|
14995
|
+
if (!isRecord(value) || !Object.hasOwn(value, segment)) {
|
|
14996
|
+
return void 0;
|
|
14997
|
+
}
|
|
14998
|
+
value = value[segment];
|
|
14999
|
+
}
|
|
15000
|
+
return value;
|
|
15001
|
+
}
|
|
15002
|
+
function isRecord(value) {
|
|
15003
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
15004
|
+
return false;
|
|
15005
|
+
}
|
|
15006
|
+
const prototype = Object.getPrototypeOf(value);
|
|
15007
|
+
return prototype === Object.prototype || prototype === null;
|
|
15008
|
+
}
|
|
15009
|
+
function formatActionPath(path2) {
|
|
15010
|
+
return path2.length === 0 ? "actions" : `Action \`${path2.join(".")}\``;
|
|
15011
|
+
}
|
|
15012
|
+
var DEFAULT_SLEEP_GRACE_PERIOD = 15e3;
|
|
15013
|
+
var DEFAULT_MAX_ACTIONS = 128;
|
|
15014
|
+
var ACTOR_CONTEXT_INTERNAL_SYMBOL = /* @__PURE__ */ Symbol(
|
|
15015
|
+
"rivetkit.actor_context_internal"
|
|
15016
|
+
);
|
|
15017
|
+
var RAW_STATE_SYMBOL = /* @__PURE__ */ Symbol("rivetkit.raw_state");
|
|
15018
|
+
var CONN_STATE_MANAGER_SYMBOL = /* @__PURE__ */ Symbol("rivetkit.conn_state_manager");
|
|
15019
|
+
var zFunction = () => external_exports.custom((val) => typeof val === "function");
|
|
15020
|
+
var zActionTree = external_exports.custom((value) => {
|
|
15021
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
15022
|
+
return false;
|
|
15023
|
+
}
|
|
15024
|
+
const prototype = Object.getPrototypeOf(value);
|
|
15025
|
+
return prototype === Object.prototype || prototype === null;
|
|
15026
|
+
}).superRefine((actions, ctx) => {
|
|
15027
|
+
try {
|
|
15028
|
+
flattenActionHandlers(actions);
|
|
15029
|
+
} catch (error46) {
|
|
15030
|
+
ctx.addIssue({
|
|
15031
|
+
code: "custom",
|
|
15032
|
+
message: error46 instanceof Error ? error46.message : "Invalid action definition"
|
|
15033
|
+
});
|
|
15034
|
+
}
|
|
15035
|
+
});
|
|
15036
|
+
var WorkflowInspectorConfigSchema = external_exports.object({
|
|
15037
|
+
getHistory: zFunction(),
|
|
15038
|
+
getState: zFunction().optional(),
|
|
15039
|
+
onHistoryUpdated: zFunction().optional(),
|
|
15040
|
+
replayFromStep: zFunction().optional()
|
|
15041
|
+
});
|
|
15042
|
+
var RunInspectorConfigSchema = external_exports.object({
|
|
15043
|
+
workflow: WorkflowInspectorConfigSchema.optional()
|
|
15044
|
+
}).optional();
|
|
15045
|
+
var BUILTIN_INSPECTOR_TAB_IDS = [
|
|
15046
|
+
"workflow",
|
|
15047
|
+
"database",
|
|
15048
|
+
"state",
|
|
15049
|
+
"queue",
|
|
15050
|
+
"schedules",
|
|
15051
|
+
"connections",
|
|
15052
|
+
"console"
|
|
15053
|
+
];
|
|
15054
|
+
var BuiltinInspectorTabIdSchema = external_exports.enum(BUILTIN_INSPECTOR_TAB_IDS);
|
|
15055
|
+
var CUSTOM_INSPECTOR_TAB_ID_RE = /^[A-Za-z0-9_-]+$/;
|
|
15056
|
+
var CustomInspectorTabEntrySchema = external_exports.object({
|
|
15057
|
+
id: external_exports.string().regex(
|
|
15058
|
+
CUSTOM_INSPECTOR_TAB_ID_RE,
|
|
15059
|
+
"inspector.tabs[].id must contain only letters, digits, underscore, or dash"
|
|
15060
|
+
),
|
|
15061
|
+
label: external_exports.string().min(1),
|
|
15062
|
+
source: external_exports.string().min(1),
|
|
15063
|
+
/**
|
|
15064
|
+
* Optional icon id. The dashboard maps strings to glyphs (see its
|
|
15065
|
+
* icon registry); unknown ids fall back to a generic icon.
|
|
15066
|
+
*/
|
|
15067
|
+
icon: external_exports.string().min(1).optional(),
|
|
15068
|
+
hidden: external_exports.literal(false).optional()
|
|
15069
|
+
}).strict();
|
|
15070
|
+
var HideInspectorTabEntrySchema = external_exports.object({
|
|
15071
|
+
id: BuiltinInspectorTabIdSchema,
|
|
15072
|
+
hidden: external_exports.literal(true)
|
|
15073
|
+
}).strict();
|
|
15074
|
+
var InspectorTabEntrySchema = external_exports.union([
|
|
15075
|
+
CustomInspectorTabEntrySchema,
|
|
15076
|
+
HideInspectorTabEntrySchema
|
|
15077
|
+
]);
|
|
15078
|
+
var ActorInspectorConfigSchema = external_exports.object({
|
|
15079
|
+
tabs: external_exports.array(InspectorTabEntrySchema).default(() => [])
|
|
15080
|
+
}).strict().refine(
|
|
15081
|
+
(data) => {
|
|
15082
|
+
const ids = data.tabs.map((t) => t.id);
|
|
15083
|
+
return new Set(ids).size === ids.length;
|
|
15084
|
+
},
|
|
15085
|
+
{ message: "Duplicate id in inspector.tabs", path: ["tabs"] }
|
|
15086
|
+
).refine(
|
|
15087
|
+
(data) => {
|
|
15088
|
+
const builtinSet = new Set(BUILTIN_INSPECTOR_TAB_IDS);
|
|
15089
|
+
return data.tabs.every(
|
|
15090
|
+
(t) => t.hidden === true || !builtinSet.has(t.id)
|
|
15091
|
+
);
|
|
15092
|
+
},
|
|
15093
|
+
{
|
|
15094
|
+
message: "Custom inspector tab id collides with a built-in (use hidden: true to hide a built-in)",
|
|
15095
|
+
path: ["tabs"]
|
|
15096
|
+
}
|
|
15097
|
+
);
|
|
15098
|
+
var RunConfigSchema = external_exports.object({
|
|
15099
|
+
/** Display name for the actor in the Inspector UI. */
|
|
15100
|
+
name: external_exports.string().optional(),
|
|
15101
|
+
/** Icon for the actor in the Inspector UI. Can be an emoji or FontAwesome icon name. */
|
|
15102
|
+
icon: external_exports.string().optional(),
|
|
15103
|
+
/** The run handler function. */
|
|
15104
|
+
run: zFunction(),
|
|
15105
|
+
/** Inspector integration for long-running run handlers. */
|
|
15106
|
+
inspector: RunInspectorConfigSchema.optional()
|
|
15107
|
+
});
|
|
15108
|
+
var RUN_FUNCTION_CONFIG_SYMBOL = /* @__PURE__ */ Symbol.for("rivetkit.run_function_config");
|
|
15109
|
+
function defineRunHandler(run, options) {
|
|
15110
|
+
if (options.inspectorKind === void 0 !== (options.createInspector === void 0)) {
|
|
15111
|
+
throw new TypeError(
|
|
15112
|
+
"defineRunHandler requires inspectorKind and createInspector together"
|
|
15113
|
+
);
|
|
15247
15114
|
}
|
|
15248
|
-
|
|
15249
|
-
|
|
15250
|
-
|
|
15251
|
-
|
|
15252
|
-
|
|
15253
|
-
|
|
15115
|
+
Object.defineProperty(run, RUN_FUNCTION_CONFIG_SYMBOL, {
|
|
15116
|
+
configurable: false,
|
|
15117
|
+
enumerable: false,
|
|
15118
|
+
writable: false,
|
|
15119
|
+
value: {
|
|
15120
|
+
name: options.name,
|
|
15121
|
+
icon: options.icon,
|
|
15122
|
+
inspectorKind: options.inspectorKind,
|
|
15123
|
+
createInspector: options.createInspector
|
|
15124
|
+
}
|
|
15125
|
+
});
|
|
15126
|
+
return run;
|
|
15254
15127
|
}
|
|
15255
|
-
function
|
|
15256
|
-
|
|
15257
|
-
|
|
15258
|
-
|
|
15259
|
-
};
|
|
15128
|
+
function getRunInspectorKind(run) {
|
|
15129
|
+
var _a2;
|
|
15130
|
+
if (!run || typeof run !== "function") return void 0;
|
|
15131
|
+
return (_a2 = run[RUN_FUNCTION_CONFIG_SYMBOL]) == null ? void 0 : _a2.inspectorKind;
|
|
15260
15132
|
}
|
|
15261
|
-
function
|
|
15262
|
-
|
|
15263
|
-
|
|
15264
|
-
|
|
15265
|
-
};
|
|
15133
|
+
function createRunInspector(run, context) {
|
|
15134
|
+
var _a2, _b;
|
|
15135
|
+
if (!run || typeof run !== "function") return void 0;
|
|
15136
|
+
return (_b = (_a2 = run[RUN_FUNCTION_CONFIG_SYMBOL]) == null ? void 0 : _a2.createInspector) == null ? void 0 : _b.call(_a2, context);
|
|
15266
15137
|
}
|
|
15267
|
-
|
|
15268
|
-
|
|
15269
|
-
|
|
15270
|
-
|
|
15271
|
-
|
|
15138
|
+
var zRunHandler = external_exports.union([zFunction(), RunConfigSchema]).optional();
|
|
15139
|
+
function getRunFunction(run) {
|
|
15140
|
+
if (!run) return void 0;
|
|
15141
|
+
if (typeof run === "function") return run;
|
|
15142
|
+
return run.run;
|
|
15272
15143
|
}
|
|
15273
|
-
function
|
|
15274
|
-
|
|
15275
|
-
|
|
15276
|
-
|
|
15277
|
-
|
|
15278
|
-
|
|
15279
|
-
case 1:
|
|
15280
|
-
return { tag: "WorkflowLoopEntry", val: readWorkflowLoopEntry(bc) };
|
|
15281
|
-
case 2:
|
|
15282
|
-
return {
|
|
15283
|
-
tag: "WorkflowSleepEntry",
|
|
15284
|
-
val: readWorkflowSleepEntry(bc)
|
|
15285
|
-
};
|
|
15286
|
-
case 3:
|
|
15287
|
-
return {
|
|
15288
|
-
tag: "WorkflowMessageEntry",
|
|
15289
|
-
val: readWorkflowMessageEntry(bc)
|
|
15290
|
-
};
|
|
15291
|
-
case 4:
|
|
15292
|
-
return {
|
|
15293
|
-
tag: "WorkflowRollbackCheckpointEntry",
|
|
15294
|
-
val: readWorkflowRollbackCheckpointEntry(bc)
|
|
15295
|
-
};
|
|
15296
|
-
case 5:
|
|
15297
|
-
return { tag: "WorkflowJoinEntry", val: readWorkflowJoinEntry(bc) };
|
|
15298
|
-
case 6:
|
|
15299
|
-
return { tag: "WorkflowRaceEntry", val: readWorkflowRaceEntry(bc) };
|
|
15300
|
-
case 7:
|
|
15301
|
-
return {
|
|
15302
|
-
tag: "WorkflowRemovedEntry",
|
|
15303
|
-
val: readWorkflowRemovedEntry(bc)
|
|
15304
|
-
};
|
|
15305
|
-
case 8:
|
|
15306
|
-
return {
|
|
15307
|
-
tag: "WorkflowVersionCheckEntry",
|
|
15308
|
-
val: readWorkflowVersionCheckEntry(bc)
|
|
15309
|
-
};
|
|
15310
|
-
default: {
|
|
15311
|
-
bc.offset = offset;
|
|
15312
|
-
throw new BareError(offset, "invalid tag");
|
|
15313
|
-
}
|
|
15144
|
+
function getRunMetadata(run) {
|
|
15145
|
+
if (!run) return {};
|
|
15146
|
+
if (typeof run === "function") {
|
|
15147
|
+
const config3 = run[RUN_FUNCTION_CONFIG_SYMBOL];
|
|
15148
|
+
if (!config3) return {};
|
|
15149
|
+
return { name: config3.name, icon: config3.icon };
|
|
15314
15150
|
}
|
|
15151
|
+
return { name: run.name, icon: run.icon };
|
|
15315
15152
|
}
|
|
15316
|
-
function
|
|
15317
|
-
return
|
|
15318
|
-
|
|
15319
|
-
|
|
15320
|
-
|
|
15321
|
-
}
|
|
15322
|
-
|
|
15323
|
-
function read3(bc) {
|
|
15324
|
-
return readBool(bc) ? readU64(bc) : null;
|
|
15153
|
+
function getRunInspectorConfig(run, actor2) {
|
|
15154
|
+
if (!run) return void 0;
|
|
15155
|
+
if (typeof run === "function") {
|
|
15156
|
+
const config3 = run[RUN_FUNCTION_CONFIG_SYMBOL];
|
|
15157
|
+
return (config3 == null ? void 0 : config3.inspectorFactory) ? config3.inspectorFactory(actor2) : config3 == null ? void 0 : config3.inspector;
|
|
15158
|
+
}
|
|
15159
|
+
return run.inspector;
|
|
15325
15160
|
}
|
|
15326
|
-
function
|
|
15327
|
-
return
|
|
15328
|
-
|
|
15329
|
-
|
|
15330
|
-
|
|
15331
|
-
lastAttemptAt: readU64(bc),
|
|
15332
|
-
createdAt: readU64(bc),
|
|
15333
|
-
completedAt: read3(bc),
|
|
15334
|
-
rollbackCompletedAt: read3(bc),
|
|
15335
|
-
rollbackError: read1(bc)
|
|
15336
|
-
};
|
|
15161
|
+
function hasRunInspectorConfig(run) {
|
|
15162
|
+
if (!run) return false;
|
|
15163
|
+
if (typeof run !== "function") return run.inspector !== void 0;
|
|
15164
|
+
const config3 = run[RUN_FUNCTION_CONFIG_SYMBOL];
|
|
15165
|
+
return (config3 == null ? void 0 : config3.inspectorKind) !== void 0 || (config3 == null ? void 0 : config3.createInspector) !== void 0 || (config3 == null ? void 0 : config3.inspector) !== void 0 || (config3 == null ? void 0 : config3.inspectorFactory) !== void 0;
|
|
15337
15166
|
}
|
|
15338
|
-
function
|
|
15339
|
-
|
|
15340
|
-
if (
|
|
15341
|
-
return
|
|
15342
|
-
}
|
|
15343
|
-
const result = [readString(bc)];
|
|
15344
|
-
for (let i = 1; i < len; i++) {
|
|
15345
|
-
result[i] = readString(bc);
|
|
15167
|
+
function disposeRunInspector(run, actorId) {
|
|
15168
|
+
var _a2;
|
|
15169
|
+
if (!run || typeof run !== "function") {
|
|
15170
|
+
return;
|
|
15346
15171
|
}
|
|
15347
|
-
|
|
15172
|
+
const config3 = run[RUN_FUNCTION_CONFIG_SYMBOL];
|
|
15173
|
+
(_a2 = config3 == null ? void 0 : config3.disposeInspector) == null ? void 0 : _a2.call(config3, actorId);
|
|
15348
15174
|
}
|
|
15349
|
-
|
|
15350
|
-
|
|
15351
|
-
|
|
15352
|
-
|
|
15353
|
-
|
|
15354
|
-
|
|
15355
|
-
|
|
15356
|
-
|
|
15175
|
+
var GlobalActorOptionsBaseSchema = external_exports.object({
|
|
15176
|
+
/** Display name for the actor in the Inspector UI. */
|
|
15177
|
+
name: external_exports.string().optional(),
|
|
15178
|
+
/** Icon for the actor in the Inspector UI. Can be an emoji or FontAwesome icon name. */
|
|
15179
|
+
icon: external_exports.string().optional(),
|
|
15180
|
+
/** Maximum number of action handlers that may be defined on this actor. */
|
|
15181
|
+
maxActions: external_exports.number().int().nonnegative().default(DEFAULT_MAX_ACTIONS),
|
|
15182
|
+
/** Enables the experimental Actor Runtime Socket for this actor. */
|
|
15183
|
+
enableActorRuntimeSocket: external_exports.boolean().default(false),
|
|
15184
|
+
/**
|
|
15185
|
+
* Can hibernate WebSockets for onWebSocket.
|
|
15186
|
+
*
|
|
15187
|
+
* WebSockets using actions/events are hibernatable by default.
|
|
15188
|
+
*
|
|
15189
|
+
* @experimental
|
|
15190
|
+
**/
|
|
15191
|
+
canHibernateWebSocket: external_exports.union([external_exports.boolean(), zFunction()]).default(false)
|
|
15192
|
+
}).strict();
|
|
15193
|
+
var GlobalActorOptionsSchema = GlobalActorOptionsBaseSchema.prefault(
|
|
15194
|
+
() => ({})
|
|
15195
|
+
);
|
|
15196
|
+
var InstanceActorOptionsBaseSchema = external_exports.object({
|
|
15197
|
+
createVarsTimeout: external_exports.number().positive().default(5e3),
|
|
15198
|
+
createConnStateTimeout: external_exports.number().positive().default(5e3),
|
|
15199
|
+
onBeforeConnectTimeout: external_exports.number().positive().default(5e3),
|
|
15200
|
+
onConnectTimeout: external_exports.number().positive().default(5e3),
|
|
15201
|
+
onMigrateTimeout: external_exports.number().positive().default(3e4),
|
|
15202
|
+
sleepGracePeriod: external_exports.number().positive().default(DEFAULT_SLEEP_GRACE_PERIOD),
|
|
15203
|
+
/** @deprecated `onDestroyTimeout` is folded into `sleepGracePeriod`, which now bounds the entire graceful shutdown window for both sleep and destroy. Will be removed in 2.2.0. */
|
|
15204
|
+
onDestroyTimeout: external_exports.number().positive().optional(),
|
|
15205
|
+
/** @deprecated `waitUntilTimeout` is folded into `sleepGracePeriod`, which now bounds the entire graceful shutdown window for both sleep and destroy. Will be removed in 2.2.0. */
|
|
15206
|
+
waitUntilTimeout: external_exports.number().positive().optional(),
|
|
15207
|
+
stateSaveInterval: external_exports.number().positive().default(1e3),
|
|
15208
|
+
actionTimeout: external_exports.number().positive().default(6e4),
|
|
15209
|
+
connectionLivenessTimeout: external_exports.number().positive().default(2500),
|
|
15210
|
+
connectionLivenessInterval: external_exports.number().positive().default(5e3),
|
|
15211
|
+
/** @deprecated Use `c.keepAwake(promise)` to scope keep-awake to a specific operation, or keep `noSleep` for actors that must stay awake indefinitely. Will be removed in 2.2.0. */
|
|
15212
|
+
noSleep: external_exports.boolean().default(false),
|
|
15213
|
+
sleepTimeout: external_exports.number().positive().default(3e4),
|
|
15214
|
+
maxQueueSize: external_exports.number().positive().default(1e3),
|
|
15215
|
+
/** Maximum pending one-shot and recurring schedules. */
|
|
15216
|
+
maxSchedules: external_exports.number().int().nonnegative().default(1e3),
|
|
15217
|
+
maxQueueMessageSize: external_exports.number().positive().default(64 * 1024),
|
|
15218
|
+
/** @deprecated Internal storage moved to SQLite and no longer uses KV preloading, so this option is ignored. Will be removed in 2.2.0. */
|
|
15219
|
+
preloadMaxWorkflowBytes: external_exports.number().nonnegative().optional(),
|
|
15220
|
+
/** @deprecated Internal storage moved to SQLite and no longer uses KV preloading, so this option is ignored. Will be removed in 2.2.0. */
|
|
15221
|
+
preloadMaxConnectionsBytes: external_exports.number().nonnegative().optional()
|
|
15222
|
+
}).strict();
|
|
15223
|
+
var InstanceActorOptionsSchema = InstanceActorOptionsBaseSchema.prefault(() => ({}));
|
|
15224
|
+
var ActorOptionsSchema = GlobalActorOptionsBaseSchema.extend(
|
|
15225
|
+
InstanceActorOptionsBaseSchema.shape
|
|
15226
|
+
).strict().prefault(() => ({}));
|
|
15227
|
+
var ActorConfigSchema = external_exports.object({
|
|
15228
|
+
onCreate: zFunction().optional(),
|
|
15229
|
+
onDestroy: zFunction().optional(),
|
|
15230
|
+
onMigrate: zFunction().optional(),
|
|
15231
|
+
onWake: zFunction().optional(),
|
|
15232
|
+
onSleep: zFunction().optional(),
|
|
15233
|
+
run: zRunHandler,
|
|
15234
|
+
onStateChange: zFunction().optional(),
|
|
15235
|
+
onBeforeConnect: zFunction().optional(),
|
|
15236
|
+
onConnect: zFunction().optional(),
|
|
15237
|
+
onDisconnect: zFunction().optional(),
|
|
15238
|
+
onBeforeActionResponse: zFunction().optional(),
|
|
15239
|
+
onRequest: zFunction().optional(),
|
|
15240
|
+
onWebSocket: zFunction().optional(),
|
|
15241
|
+
actions: zActionTree.default(() => ({})),
|
|
15242
|
+
actionInputSchemas: external_exports.record(external_exports.string(), external_exports.any()).optional(),
|
|
15243
|
+
connParamsSchema: external_exports.any().optional(),
|
|
15244
|
+
events: external_exports.record(external_exports.string(), external_exports.any()).optional(),
|
|
15245
|
+
queues: external_exports.record(external_exports.string(), external_exports.any()).optional(),
|
|
15246
|
+
state: external_exports.any().optional(),
|
|
15247
|
+
createState: zFunction().optional(),
|
|
15248
|
+
connState: external_exports.any().optional(),
|
|
15249
|
+
createConnState: zFunction().optional(),
|
|
15250
|
+
vars: external_exports.any().optional(),
|
|
15251
|
+
db: external_exports.any().optional(),
|
|
15252
|
+
createVars: zFunction().optional(),
|
|
15253
|
+
options: ActorOptionsSchema,
|
|
15254
|
+
inspector: ActorInspectorConfigSchema.optional()
|
|
15255
|
+
}).strict().refine(
|
|
15256
|
+
(data) => !(data.state !== void 0 && data.createState !== void 0),
|
|
15257
|
+
{
|
|
15258
|
+
message: "Cannot define both 'state' and 'createState'",
|
|
15259
|
+
path: ["state"]
|
|
15357
15260
|
}
|
|
15358
|
-
|
|
15359
|
-
|
|
15360
|
-
|
|
15361
|
-
|
|
15362
|
-
|
|
15363
|
-
for (let i = 0; i < len; i++) {
|
|
15364
|
-
const offset = bc.offset;
|
|
15365
|
-
const key = readString(bc);
|
|
15366
|
-
if (result.has(key)) {
|
|
15367
|
-
bc.offset = offset;
|
|
15368
|
-
throw new BareError(offset, "duplicated key");
|
|
15369
|
-
}
|
|
15370
|
-
result.set(key, readWorkflowEntryMetadata(bc));
|
|
15261
|
+
).refine(
|
|
15262
|
+
(data) => !(data.connState !== void 0 && data.createConnState !== void 0),
|
|
15263
|
+
{
|
|
15264
|
+
message: "Cannot define both 'connState' and 'createConnState'",
|
|
15265
|
+
path: ["connState"]
|
|
15371
15266
|
}
|
|
15372
|
-
|
|
15373
|
-
|
|
15374
|
-
|
|
15375
|
-
|
|
15376
|
-
|
|
15377
|
-
entries: read5(bc),
|
|
15378
|
-
entryMetadata: read6(bc)
|
|
15379
|
-
};
|
|
15380
|
-
}
|
|
15381
|
-
function decodeWorkflowHistory(bytes) {
|
|
15382
|
-
const bc = new ByteCursor(bytes, config2);
|
|
15383
|
-
const result = readWorkflowHistory(bc);
|
|
15384
|
-
if (bc.offset < bc.view.byteLength) {
|
|
15385
|
-
throw new BareError(bc.offset, "remaining bytes");
|
|
15267
|
+
).refine(
|
|
15268
|
+
(data) => !(data.vars !== void 0 && data.createVars !== void 0),
|
|
15269
|
+
{
|
|
15270
|
+
message: "Cannot define both 'vars' and 'createVars'",
|
|
15271
|
+
path: ["vars"]
|
|
15386
15272
|
}
|
|
15387
|
-
|
|
15388
|
-
|
|
15389
|
-
|
|
15390
|
-
|
|
15391
|
-
|
|
15273
|
+
).superRefine((data, ctx) => {
|
|
15274
|
+
const actionCount = Object.keys(
|
|
15275
|
+
flattenActionHandlers(data.actions)
|
|
15276
|
+
).length;
|
|
15277
|
+
if (actionCount > data.options.maxActions) {
|
|
15278
|
+
ctx.addIssue({
|
|
15279
|
+
code: "custom",
|
|
15280
|
+
message: `Actor defines ${actionCount} actions, but maxActions is ${data.options.maxActions}`,
|
|
15281
|
+
path: ["actions"]
|
|
15282
|
+
});
|
|
15283
|
+
}
|
|
15284
|
+
});
|
|
15285
|
+
var DocActorOptionsSchema = external_exports.object({
|
|
15286
|
+
name: external_exports.string().optional().describe("Display name for the actor in the Inspector UI."),
|
|
15287
|
+
icon: external_exports.string().optional().describe(
|
|
15288
|
+
"Icon for the actor in the Inspector UI. Can be an emoji (e.g., '\u{1F680}') or FontAwesome icon name (e.g., 'rocket')."
|
|
15289
|
+
),
|
|
15290
|
+
maxActions: external_exports.number().int().nonnegative().optional().describe(
|
|
15291
|
+
`Maximum number of action handlers that may be defined on this actor. Default: ${DEFAULT_MAX_ACTIONS}`
|
|
15292
|
+
),
|
|
15293
|
+
enableActorRuntimeSocket: external_exports.boolean().optional().describe(
|
|
15294
|
+
"Enables the experimental Actor Runtime Socket for this actor. Default: false"
|
|
15295
|
+
),
|
|
15296
|
+
createVarsTimeout: external_exports.number().optional().describe("Timeout in ms for createVars handler. Default: 5000"),
|
|
15297
|
+
createConnStateTimeout: external_exports.number().optional().describe(
|
|
15298
|
+
"Timeout in ms for createConnState handler. Default: 5000"
|
|
15299
|
+
),
|
|
15300
|
+
onMigrateTimeout: external_exports.number().optional().describe("Timeout in ms for onMigrate handler. Default: 30000"),
|
|
15301
|
+
onBeforeConnectTimeout: external_exports.number().optional().describe(
|
|
15302
|
+
"Timeout in ms for onBeforeConnect handler. Default: 5000"
|
|
15303
|
+
),
|
|
15304
|
+
onConnectTimeout: external_exports.number().optional().describe("Timeout in ms for onConnect handler. Default: 5000"),
|
|
15305
|
+
sleepGracePeriod: external_exports.number().optional().describe(
|
|
15306
|
+
`Max time in ms for the graceful shutdown window. Covers lifecycle hooks (onSleep, onDestroy), the run handler wait, async raw WebSocket handlers, disconnect callbacks, and final state serialization. Default: ${DEFAULT_SLEEP_GRACE_PERIOD}.`
|
|
15307
|
+
),
|
|
15308
|
+
onDestroyTimeout: external_exports.number().optional().describe(
|
|
15309
|
+
"Deprecated. Folded into sleepGracePeriod, which now bounds the entire graceful shutdown window for both sleep and destroy. Will be removed in 2.2.0."
|
|
15310
|
+
),
|
|
15311
|
+
waitUntilTimeout: external_exports.number().optional().describe(
|
|
15312
|
+
"Deprecated. Folded into sleepGracePeriod, which now bounds the entire graceful shutdown window for both sleep and destroy. Will be removed in 2.2.0."
|
|
15313
|
+
),
|
|
15314
|
+
stateSaveInterval: external_exports.number().optional().describe(
|
|
15315
|
+
"Interval in ms between automatic state saves. Default: 1000"
|
|
15316
|
+
),
|
|
15317
|
+
actionTimeout: external_exports.number().optional().describe("Timeout in ms for action handlers. Default: 60000"),
|
|
15318
|
+
connectionLivenessTimeout: external_exports.number().optional().describe(
|
|
15319
|
+
"Timeout in ms for connection liveness checks. Default: 2500"
|
|
15320
|
+
),
|
|
15321
|
+
connectionLivenessInterval: external_exports.number().optional().describe(
|
|
15322
|
+
"Interval in ms between connection liveness checks. Default: 5000"
|
|
15323
|
+
),
|
|
15324
|
+
noSleep: external_exports.boolean().optional().describe(
|
|
15325
|
+
"Deprecated. If true, the actor will never sleep. Use c.keepAwake(promise) to scope keep-awake to a specific operation instead. Default: false"
|
|
15326
|
+
),
|
|
15327
|
+
sleepTimeout: external_exports.number().optional().describe(
|
|
15328
|
+
"Time in ms of inactivity before the actor sleeps. Default: 30000"
|
|
15329
|
+
),
|
|
15330
|
+
maxQueueSize: external_exports.number().optional().describe(
|
|
15331
|
+
"Maximum number of queue messages before rejecting new messages. Default: 1000"
|
|
15332
|
+
),
|
|
15333
|
+
maxSchedules: external_exports.number().int().nonnegative().optional().describe(
|
|
15334
|
+
"Maximum pending one-shot and recurring schedules before rejecting new schedules. Default: 1000"
|
|
15335
|
+
),
|
|
15336
|
+
maxQueueMessageSize: external_exports.number().optional().describe(
|
|
15337
|
+
"Maximum size of each queue message in bytes. Default: 65536"
|
|
15338
|
+
),
|
|
15339
|
+
canHibernateWebSocket: external_exports.boolean().optional().describe(
|
|
15340
|
+
"Whether WebSockets using onWebSocket can be hibernated. WebSockets using actions/events are hibernatable by default. Default: false"
|
|
15341
|
+
)
|
|
15342
|
+
}).describe("Actor options for timeouts and behavior configuration.");
|
|
15343
|
+
var DocActorConfigSchema = external_exports.object({
|
|
15344
|
+
state: external_exports.unknown().optional().describe(
|
|
15345
|
+
"Initial state value for the actor. Cannot be used with createState."
|
|
15346
|
+
),
|
|
15347
|
+
createState: external_exports.unknown().optional().describe(
|
|
15348
|
+
"Function to create initial state. Receives context and input. Cannot be used with state."
|
|
15349
|
+
),
|
|
15350
|
+
connState: external_exports.unknown().optional().describe(
|
|
15351
|
+
"Initial connection state value. Cannot be used with createConnState."
|
|
15352
|
+
),
|
|
15353
|
+
createConnState: external_exports.unknown().optional().describe(
|
|
15354
|
+
"Function to create connection state. Receives context and connection params. The pending connection is not visible in c.conns until this succeeds. Cannot be used with connState."
|
|
15355
|
+
),
|
|
15356
|
+
vars: external_exports.unknown().optional().describe(
|
|
15357
|
+
"Initial ephemeral variables value. Cannot be used with createVars."
|
|
15358
|
+
),
|
|
15359
|
+
createVars: external_exports.unknown().optional().describe(
|
|
15360
|
+
"Function to create ephemeral variables. Receives context and driver context. Cannot be used with vars."
|
|
15361
|
+
),
|
|
15362
|
+
db: external_exports.unknown().optional().describe("Database provider instance for the actor."),
|
|
15363
|
+
onCreate: external_exports.unknown().optional().describe(
|
|
15364
|
+
"Called when the actor is first initialized. Use to initialize state."
|
|
15365
|
+
),
|
|
15366
|
+
onDestroy: external_exports.unknown().optional().describe("Called when the actor is destroyed."),
|
|
15367
|
+
onMigrate: external_exports.unknown().optional().describe(
|
|
15368
|
+
"Called on every actor start after persisted state loads and before onWake. Use for repeatable schema migrations."
|
|
15369
|
+
),
|
|
15370
|
+
onWake: external_exports.unknown().optional().describe(
|
|
15371
|
+
"Called when the actor wakes up and is ready to receive connections and actions."
|
|
15372
|
+
),
|
|
15373
|
+
onSleep: external_exports.unknown().optional().describe(
|
|
15374
|
+
"Called when the actor is stopping or sleeping. Use to clean up resources."
|
|
15375
|
+
),
|
|
15376
|
+
run: external_exports.unknown().optional().describe(
|
|
15377
|
+
"Called after actor starts. Does not block startup. Use for background tasks like queue processing or tick loops. If it exits, the actor follows the normal idle sleep timeout once idle. If it throws, the actor logs the error and then follows the normal idle sleep timeout once idle."
|
|
15378
|
+
),
|
|
15379
|
+
onStateChange: external_exports.unknown().optional().describe(
|
|
15380
|
+
"Called when the actor's state changes. State changes within this hook won't trigger recursion."
|
|
15381
|
+
),
|
|
15382
|
+
onBeforeConnect: external_exports.unknown().optional().describe(
|
|
15383
|
+
"Called before a client connects. Throw an error to reject the connection. The pending connection is not visible in c.conns while this runs."
|
|
15384
|
+
),
|
|
15385
|
+
onConnect: external_exports.unknown().optional().describe(
|
|
15386
|
+
"Called when a client successfully connects. The connection is visible in c.conns before this runs."
|
|
15387
|
+
),
|
|
15388
|
+
onDisconnect: external_exports.unknown().optional().describe("Called when a client disconnects."),
|
|
15389
|
+
onBeforeActionResponse: external_exports.unknown().optional().describe(
|
|
15390
|
+
"Called before sending an action response. Use to transform output."
|
|
15391
|
+
),
|
|
15392
|
+
onRequest: external_exports.unknown().optional().describe(
|
|
15393
|
+
"Called for raw HTTP requests to /actors/{name}/http/* endpoints."
|
|
15394
|
+
),
|
|
15395
|
+
onWebSocket: external_exports.unknown().optional().describe(
|
|
15396
|
+
"Called for raw WebSocket connections to /actors/{name}/websocket/* endpoints."
|
|
15397
|
+
),
|
|
15398
|
+
actions: external_exports.record(external_exports.string(), external_exports.unknown()).optional().describe(
|
|
15399
|
+
"Tree of action names or nested groups to handler functions. Nested paths use dot-separated low-level action names. Defaults to an empty object."
|
|
15400
|
+
),
|
|
15401
|
+
actionInputSchemas: external_exports.record(external_exports.string(), external_exports.unknown()).optional().describe(
|
|
15402
|
+
"Optional schemas for validating action argument tuples in native runtimes. May mirror nested action groups or use dot-separated low-level action names."
|
|
15403
|
+
),
|
|
15404
|
+
connParamsSchema: external_exports.unknown().optional().describe(
|
|
15405
|
+
"Optional schema for validating connection params in native runtimes."
|
|
15406
|
+
),
|
|
15407
|
+
events: external_exports.record(external_exports.string(), external_exports.unknown()).optional().describe("Map of event names to schemas."),
|
|
15408
|
+
queues: external_exports.record(external_exports.string(), external_exports.unknown()).optional().describe("Map of queue names to schemas."),
|
|
15409
|
+
options: DocActorOptionsSchema.optional()
|
|
15410
|
+
}).describe("Actor configuration passed to the actor() function.");
|
|
15392
15411
|
|
|
15393
15412
|
// ../rivetkit/dist/tsup/chunk-JI6GZ2C2.js
|
|
15394
15413
|
var EMPTY_KEY = "/";
|
|
@@ -15507,44 +15526,6 @@ function removePrefixFromKey(prefixedKey) {
|
|
|
15507
15526
|
return prefixedKey.slice(KEYS.KV.length);
|
|
15508
15527
|
}
|
|
15509
15528
|
|
|
15510
|
-
// ../rivetkit/dist/tsup/chunk-ZEIH7S4M.js
|
|
15511
|
-
function logger() {
|
|
15512
|
-
return getLogger("actor-client");
|
|
15513
|
-
}
|
|
15514
|
-
var webSocketPromise = null;
|
|
15515
|
-
async function importWebSocket() {
|
|
15516
|
-
if (webSocketPromise !== null) {
|
|
15517
|
-
return webSocketPromise;
|
|
15518
|
-
}
|
|
15519
|
-
webSocketPromise = (async () => {
|
|
15520
|
-
let _WebSocket;
|
|
15521
|
-
if (typeof WebSocket !== "undefined") {
|
|
15522
|
-
_WebSocket = WebSocket;
|
|
15523
|
-
} else {
|
|
15524
|
-
try {
|
|
15525
|
-
const moduleName = "ws";
|
|
15526
|
-
const ws = await import(
|
|
15527
|
-
/* webpackIgnore: true */
|
|
15528
|
-
moduleName
|
|
15529
|
-
);
|
|
15530
|
-
_WebSocket = ws.default;
|
|
15531
|
-
logger().debug("using websocket from npm");
|
|
15532
|
-
} catch {
|
|
15533
|
-
_WebSocket = class MockWebSocket {
|
|
15534
|
-
constructor() {
|
|
15535
|
-
throw new Error(
|
|
15536
|
-
'WebSocket support requires installing the "ws" peer dependency.'
|
|
15537
|
-
);
|
|
15538
|
-
}
|
|
15539
|
-
};
|
|
15540
|
-
logger().debug("using mock websocket");
|
|
15541
|
-
}
|
|
15542
|
-
}
|
|
15543
|
-
return _WebSocket;
|
|
15544
|
-
})();
|
|
15545
|
-
return webSocketPromise;
|
|
15546
|
-
}
|
|
15547
|
-
|
|
15548
15529
|
// ../rivetkit/dist/tsup/chunk-JTHHCZCZ.js
|
|
15549
15530
|
var MIGRATION_TRANSACTION_TIMEOUT_MS = 5 * 6e4;
|
|
15550
15531
|
function isManualTransactionControl(query) {
|
|
@@ -15628,7 +15609,45 @@ var AsyncMutex = class {
|
|
|
15628
15609
|
}
|
|
15629
15610
|
};
|
|
15630
15611
|
|
|
15631
|
-
// ../rivetkit/dist/tsup/chunk-
|
|
15612
|
+
// ../rivetkit/dist/tsup/chunk-NVMHEG5J.js
|
|
15613
|
+
function logger() {
|
|
15614
|
+
return getLogger("actor-client");
|
|
15615
|
+
}
|
|
15616
|
+
var webSocketPromise = null;
|
|
15617
|
+
async function importWebSocket() {
|
|
15618
|
+
if (webSocketPromise !== null) {
|
|
15619
|
+
return webSocketPromise;
|
|
15620
|
+
}
|
|
15621
|
+
webSocketPromise = (async () => {
|
|
15622
|
+
let _WebSocket;
|
|
15623
|
+
if (typeof WebSocket !== "undefined") {
|
|
15624
|
+
_WebSocket = WebSocket;
|
|
15625
|
+
} else {
|
|
15626
|
+
try {
|
|
15627
|
+
const moduleName = "ws";
|
|
15628
|
+
const ws = await import(
|
|
15629
|
+
/* webpackIgnore: true */
|
|
15630
|
+
moduleName
|
|
15631
|
+
);
|
|
15632
|
+
_WebSocket = ws.default;
|
|
15633
|
+
logger().debug("using websocket from npm");
|
|
15634
|
+
} catch {
|
|
15635
|
+
_WebSocket = class MockWebSocket {
|
|
15636
|
+
constructor() {
|
|
15637
|
+
throw new Error(
|
|
15638
|
+
'WebSocket support requires installing the "ws" peer dependency.'
|
|
15639
|
+
);
|
|
15640
|
+
}
|
|
15641
|
+
};
|
|
15642
|
+
logger().debug("using mock websocket");
|
|
15643
|
+
}
|
|
15644
|
+
}
|
|
15645
|
+
return _WebSocket;
|
|
15646
|
+
})();
|
|
15647
|
+
return webSocketPromise;
|
|
15648
|
+
}
|
|
15649
|
+
|
|
15650
|
+
// ../rivetkit/dist/tsup/chunk-O74736N5.js
|
|
15632
15651
|
var import_invariant2 = __toESM(require_invariant(), 1);
|
|
15633
15652
|
|
|
15634
15653
|
// ../../../node_modules/.pnpm/p-retry@6.2.1/node_modules/p-retry/index.js
|
|
@@ -15806,7 +15825,7 @@ function createVersionedDataHandler(config3) {
|
|
|
15806
15825
|
return new VersionedDataHandler(config3);
|
|
15807
15826
|
}
|
|
15808
15827
|
|
|
15809
|
-
// ../rivetkit/dist/tsup/chunk-
|
|
15828
|
+
// ../rivetkit/dist/tsup/chunk-O74736N5.js
|
|
15810
15829
|
var import_invariant3 = __toESM(require_invariant(), 1);
|
|
15811
15830
|
var import_invariant4 = __toESM(require_invariant(), 1);
|
|
15812
15831
|
var PATH_CONNECT = "/connect";
|
|
@@ -18486,7 +18505,7 @@ var ActorHandleRaw = class {
|
|
|
18486
18505
|
async #sendQueueMessage(name, body, options) {
|
|
18487
18506
|
return await this.#queueSendMutex.run(async () => {
|
|
18488
18507
|
const maxAttempts = this.#getDynamicQueryMaxAttempts();
|
|
18489
|
-
let useQueryTarget =
|
|
18508
|
+
let useQueryTarget = isDynamicActorQuery(this.#actorResolutionState);
|
|
18490
18509
|
for (let attempt = 0; attempt < maxAttempts; attempt++) {
|
|
18491
18510
|
let actorId;
|
|
18492
18511
|
try {
|
|
@@ -18549,8 +18568,9 @@ var ActorHandleRaw = class {
|
|
|
18549
18568
|
code
|
|
18550
18569
|
);
|
|
18551
18570
|
if (invalidated && attempt < maxAttempts - 1) {
|
|
18552
|
-
|
|
18553
|
-
|
|
18571
|
+
const waitForReady = code === "starting" || code === "stopping" || code.startsWith("destroyed_");
|
|
18572
|
+
useQueryTarget = useQueryTarget || waitForReady;
|
|
18573
|
+
if (waitForReady) {
|
|
18554
18574
|
await this.#waitForRetryWindow();
|
|
18555
18575
|
}
|
|
18556
18576
|
continue;
|
|
@@ -18586,7 +18606,7 @@ var ActorHandleRaw = class {
|
|
|
18586
18606
|
}
|
|
18587
18607
|
async #sendActionNow(opts) {
|
|
18588
18608
|
const maxAttempts = this.#getDynamicQueryMaxAttempts();
|
|
18589
|
-
let useQueryTarget =
|
|
18609
|
+
let useQueryTarget = isDynamicActorQuery(this.#actorResolutionState);
|
|
18590
18610
|
const gatewayOptions = resolveActorGatewayOptions(
|
|
18591
18611
|
this.#gatewayOptions,
|
|
18592
18612
|
opts
|
|
@@ -18835,7 +18855,7 @@ var ActorHandleRaw = class {
|
|
|
18835
18855
|
}
|
|
18836
18856
|
async #fetchWithResolvedActor(input, init) {
|
|
18837
18857
|
const maxAttempts = this.#getDynamicQueryMaxAttempts();
|
|
18838
|
-
let useQueryTarget =
|
|
18858
|
+
let useQueryTarget = isDynamicActorQuery(this.#actorResolutionState);
|
|
18839
18859
|
const { skipReadyWait, ...requestInit } = init ?? {};
|
|
18840
18860
|
const gatewayOptions = resolveActorGatewayOptions(
|
|
18841
18861
|
this.#gatewayOptions,
|
|
@@ -18903,8 +18923,9 @@ var ActorHandleRaw = class {
|
|
|
18903
18923
|
code
|
|
18904
18924
|
);
|
|
18905
18925
|
if (invalidated && attempt < maxAttempts - 1) {
|
|
18906
|
-
|
|
18907
|
-
|
|
18926
|
+
const waitForReady = code === "starting" || code === "stopping" || code.startsWith("destroyed_");
|
|
18927
|
+
useQueryTarget = useQueryTarget || waitForReady;
|
|
18928
|
+
if (waitForReady) {
|
|
18908
18929
|
await this.#waitForRetryWindow();
|
|
18909
18930
|
}
|
|
18910
18931
|
continue;
|
|
@@ -18954,10 +18975,10 @@ var ActorHandleRaw = class {
|
|
|
18954
18975
|
}
|
|
18955
18976
|
const invalidated = this.#invalidateResolvedActorId(group, code);
|
|
18956
18977
|
if (invalidated && attempt < maxAttempts - 1) {
|
|
18957
|
-
const
|
|
18978
|
+
const waitForReady = code === "starting" || code === "stopping" || code.startsWith("destroyed_");
|
|
18958
18979
|
return {
|
|
18959
|
-
useQueryTarget,
|
|
18960
|
-
waitForRetryWindow:
|
|
18980
|
+
useQueryTarget: true,
|
|
18981
|
+
waitForRetryWindow: waitForReady
|
|
18961
18982
|
};
|
|
18962
18983
|
}
|
|
18963
18984
|
return null;
|
|
@@ -21330,24 +21351,45 @@ var RemoteEngineControlClient = class {
|
|
|
21330
21351
|
name,
|
|
21331
21352
|
key
|
|
21332
21353
|
});
|
|
21333
|
-
|
|
21334
|
-
|
|
21335
|
-
|
|
21336
|
-
|
|
21337
|
-
|
|
21338
|
-
|
|
21339
|
-
|
|
21340
|
-
|
|
21341
|
-
|
|
21342
|
-
|
|
21343
|
-
|
|
21344
|
-
|
|
21345
|
-
|
|
21346
|
-
|
|
21347
|
-
|
|
21348
|
-
|
|
21349
|
-
|
|
21350
|
-
|
|
21354
|
+
try {
|
|
21355
|
+
const { actor: actor2, created } = await getOrCreateActor(this.#config, {
|
|
21356
|
+
datacenter: region,
|
|
21357
|
+
name,
|
|
21358
|
+
key: serializeActorKey(key),
|
|
21359
|
+
runner_name_selector: poolName ?? this.#config.poolName,
|
|
21360
|
+
input: actorInput ? uint8ArrayToBase642(
|
|
21361
|
+
encodeCborCompat(actorInput)
|
|
21362
|
+
) : void 0,
|
|
21363
|
+
crash_policy: crashPolicy ?? "sleep"
|
|
21364
|
+
});
|
|
21365
|
+
logger2().info({
|
|
21366
|
+
msg: "getOrCreateWithKey: actor ready",
|
|
21367
|
+
actorId: actor2.actor_id,
|
|
21368
|
+
name,
|
|
21369
|
+
key,
|
|
21370
|
+
created
|
|
21371
|
+
});
|
|
21372
|
+
return apiActorToOutput(actor2);
|
|
21373
|
+
} catch (error46) {
|
|
21374
|
+
if (error46 instanceof RivetError && error46.group === "actor" && error46.code === "key_reserved_in_different_datacenter") {
|
|
21375
|
+
logger2().warn({
|
|
21376
|
+
msg: "getOrCreateWithKey: key reserved in different datacenter, retrying as get",
|
|
21377
|
+
name,
|
|
21378
|
+
key
|
|
21379
|
+
});
|
|
21380
|
+
const response = await getActorByKey(this.#config, name, key);
|
|
21381
|
+
const existing = response.actors[0];
|
|
21382
|
+
if (!existing) throw error46;
|
|
21383
|
+
logger2().info({
|
|
21384
|
+
msg: "getOrCreateWithKey: resolved existing actor via get",
|
|
21385
|
+
actorId: existing.actor_id,
|
|
21386
|
+
name,
|
|
21387
|
+
key
|
|
21388
|
+
});
|
|
21389
|
+
return apiActorToOutput(existing);
|
|
21390
|
+
}
|
|
21391
|
+
throw error46;
|
|
21392
|
+
}
|
|
21351
21393
|
}
|
|
21352
21394
|
async createActor({
|
|
21353
21395
|
name,
|
|
@@ -21548,7 +21590,7 @@ function apiActorToOutput(actor2) {
|
|
|
21548
21590
|
};
|
|
21549
21591
|
}
|
|
21550
21592
|
|
|
21551
|
-
// ../rivetkit/dist/tsup/chunk-
|
|
21593
|
+
// ../rivetkit/dist/tsup/chunk-AF2VKCFA.js
|
|
21552
21594
|
var nativeStateTransactionOpeners = /* @__PURE__ */ new WeakMap();
|
|
21553
21595
|
var nativeStateTransactionClientBinders = /* @__PURE__ */ new WeakMap();
|
|
21554
21596
|
function registerNativeStateTransactionOpener(provider, opener) {
|
|
@@ -28632,6 +28674,7 @@ function buildActorConfig(definition, registryConfig, runtimeKind) {
|
|
|
28632
28674
|
return {
|
|
28633
28675
|
name: options.name,
|
|
28634
28676
|
icon: options.icon,
|
|
28677
|
+
maxActions: options.maxActions,
|
|
28635
28678
|
hasDatabase: true,
|
|
28636
28679
|
remoteSqlite: usesRemoteSqlite,
|
|
28637
28680
|
sqliteProfiling,
|