rivetkit 2.3.20 → 2.3.21
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/browser/client.d.ts +43 -5
- package/dist/browser/client.js +302 -60
- package/dist/browser/client.js.map +1 -1
- package/dist/browser/inspector/client.js +2 -1
- package/dist/browser/inspector/client.js.map +1 -1
- package/dist/tsup/actor/errors.cjs.map +1 -1
- package/dist/tsup/agent-os/index.cjs +2 -1
- package/dist/tsup/agent-os/index.cjs.map +1 -1
- package/dist/tsup/agent-os/index.d.cts +32 -4
- package/dist/tsup/agent-os/index.d.ts +32 -4
- package/dist/tsup/agent-os/index.js +2 -1
- package/dist/tsup/agent-os/index.js.map +1 -1
- package/dist/tsup/{chunk-553CIQJY.js → chunk-2CI2IEVN.js} +2 -2
- package/dist/tsup/{chunk-W2PXGWMR.js → chunk-5EGLHQJJ.js} +2 -2
- package/dist/tsup/{chunk-DMQUERRN.js → chunk-5IBUZFLP.js} +2 -2
- package/dist/tsup/{chunk-76YTS32R.cjs → chunk-6LRPYB4Q.cjs} +4 -4
- package/dist/tsup/chunk-6LRPYB4Q.cjs.map +1 -0
- package/dist/tsup/{chunk-WAISW7KR.cjs → chunk-APOANSDG.cjs} +10 -10
- package/dist/tsup/chunk-APOANSDG.cjs.map +1 -0
- package/dist/tsup/{chunk-IHKDFKM4.cjs → chunk-ARGNQGYG.cjs} +3 -3
- package/dist/tsup/chunk-ARGNQGYG.cjs.map +1 -0
- package/dist/tsup/{chunk-A36FMKOV.cjs → chunk-B5SNXPSS.cjs} +448 -199
- package/dist/tsup/chunk-B5SNXPSS.cjs.map +1 -0
- package/dist/tsup/{chunk-SNNVRHLX.js → chunk-CJXBGTVT.js} +2 -2
- package/dist/tsup/{chunk-CVLNRT7O.cjs → chunk-GHKQC4PD.cjs} +3 -3
- package/dist/tsup/chunk-GHKQC4PD.cjs.map +1 -0
- package/dist/tsup/chunk-JX2ITWAV.cjs.map +1 -1
- package/dist/tsup/chunk-KVFIONKQ.cjs.map +1 -1
- package/dist/tsup/{chunk-2CE5UNWK.cjs → chunk-KWGN2ZBJ.cjs} +3 -2
- package/dist/tsup/chunk-KWGN2ZBJ.cjs.map +1 -0
- package/dist/tsup/{chunk-3WS7Z64U.cjs → chunk-LWSLKKZ5.cjs} +3 -3
- package/dist/tsup/chunk-LWSLKKZ5.cjs.map +1 -0
- package/dist/tsup/chunk-MYWZCDML.cjs.map +1 -1
- package/dist/tsup/{chunk-RSIOGT2U.cjs → chunk-NL2EIKK6.cjs} +7 -7
- package/dist/tsup/chunk-NL2EIKK6.cjs.map +1 -0
- package/dist/tsup/chunk-NWCAIWHL.cjs.map +1 -1
- package/dist/tsup/{chunk-5G2J26VM.js → chunk-PYRI75DL.js} +314 -65
- package/dist/tsup/chunk-PYRI75DL.js.map +1 -0
- package/dist/tsup/{chunk-2NXLTFWI.js → chunk-RFN3BG6D.js} +3 -3
- package/dist/tsup/chunk-RFN3BG6D.js.map +1 -0
- package/dist/tsup/{chunk-DHWZTUKA.js → chunk-RGIZNZYO.js} +3 -2
- package/dist/tsup/chunk-RGIZNZYO.js.map +1 -0
- package/dist/tsup/{chunk-TZVAVPGJ.js → chunk-VMMXXVDO.js} +4 -4
- package/dist/tsup/client/mod.cjs +5 -5
- package/dist/tsup/client/mod.cjs.map +1 -1
- package/dist/tsup/client/mod.d.cts +12 -3
- package/dist/tsup/client/mod.d.ts +12 -3
- package/dist/tsup/client/mod.js +4 -4
- package/dist/tsup/common/log.cjs +2 -2
- package/dist/tsup/common/log.cjs.map +1 -1
- package/dist/tsup/common/log.js +1 -1
- package/dist/tsup/common/websocket.cjs +3 -3
- package/dist/tsup/common/websocket.cjs.map +1 -1
- package/dist/tsup/common/websocket.js +2 -2
- package/dist/tsup/{config-Be-VOHaX.d.ts → config-Bc1nnvUl.d.ts} +35 -5
- package/dist/tsup/{config-Ct5uXxXk.d.cts → config-Do_0guSS.d.cts} +35 -5
- package/dist/tsup/{context-Cw-11Q-B.d.cts → context-CgNkhjdY.d.cts} +1 -1
- package/dist/tsup/{context-CXLa0BIM.d.ts → context-oGQxZDPz.d.ts} +1 -1
- package/dist/tsup/db/drizzle.cjs +2 -2
- package/dist/tsup/db/drizzle.cjs.map +1 -1
- package/dist/tsup/db/drizzle.js +1 -1
- package/dist/tsup/db/mod.cjs +3 -3
- package/dist/tsup/db/mod.cjs.map +1 -1
- package/dist/tsup/db/mod.js +2 -2
- package/dist/tsup/dynamic/mod.cjs.map +1 -1
- package/dist/tsup/dynamic/mod.d.cts +2 -1
- package/dist/tsup/dynamic/mod.d.ts +2 -1
- package/dist/tsup/inspector/mod.cjs +5 -5
- package/dist/tsup/inspector/mod.cjs.map +1 -1
- package/dist/tsup/inspector/mod.js +4 -4
- package/dist/tsup/inspector/workflow.cjs +4 -4
- package/dist/tsup/inspector/workflow.cjs.map +1 -1
- package/dist/tsup/inspector/workflow.js +3 -3
- package/dist/tsup/inspector-tab/mod.cjs.map +1 -1
- package/dist/tsup/inspector-tab/mod.d.cts +3 -2
- package/dist/tsup/inspector-tab/mod.d.ts +3 -2
- package/dist/tsup/mod.cjs +105 -115
- package/dist/tsup/mod.cjs.map +1 -1
- package/dist/tsup/mod.d.cts +4 -3
- package/dist/tsup/mod.d.ts +4 -3
- package/dist/tsup/mod.js +29 -39
- package/dist/tsup/mod.js.map +1 -1
- package/dist/tsup/test/mod.cjs +6 -6
- package/dist/tsup/test/mod.cjs.map +1 -1
- package/dist/tsup/test/mod.d.cts +2 -1
- package/dist/tsup/test/mod.d.ts +2 -1
- package/dist/tsup/test/mod.js +4 -4
- package/dist/tsup/unstable/migrations.cjs.map +1 -1
- package/dist/tsup/utils.cjs +2 -2
- package/dist/tsup/utils.cjs.map +1 -1
- package/dist/tsup/utils.js +1 -1
- package/dist/tsup/workflow/mod.cjs +7 -7
- package/dist/tsup/workflow/mod.cjs.map +1 -1
- package/dist/tsup/workflow/mod.d.cts +4 -3
- package/dist/tsup/workflow/mod.d.ts +4 -3
- package/dist/tsup/workflow/mod.js +4 -4
- package/package.json +10 -9
- package/src/client/actor-conn.ts +34 -1
- package/src/client/actor-handle.ts +29 -1
- package/src/client/auth.ts +37 -0
- package/src/client/client.ts +10 -2
- package/src/client/config.ts +12 -1
- package/src/client/mod.ts +9 -0
- package/src/client/token-provider.test.ts +86 -0
- package/src/client/token-provider.ts +93 -0
- package/src/client/utils.ts +1 -0
- package/src/engine-client/actor-websocket-client.ts +2 -1
- package/src/engine-client/api-endpoints.ts +28 -0
- package/src/engine-client/driver.ts +4 -0
- package/src/engine-client/mod.ts +201 -64
- package/src/registry/config/envoy.ts +1 -17
- package/src/registry/config/index.test.ts +2 -2
- package/src/registry/config/index.ts +7 -2
- package/src/registry/index.ts +28 -0
- package/dist/tsup/chunk-2CE5UNWK.cjs.map +0 -1
- package/dist/tsup/chunk-2NXLTFWI.js.map +0 -1
- package/dist/tsup/chunk-3WS7Z64U.cjs.map +0 -1
- package/dist/tsup/chunk-5G2J26VM.js.map +0 -1
- package/dist/tsup/chunk-76YTS32R.cjs.map +0 -1
- package/dist/tsup/chunk-A36FMKOV.cjs.map +0 -1
- package/dist/tsup/chunk-CVLNRT7O.cjs.map +0 -1
- package/dist/tsup/chunk-DHWZTUKA.js.map +0 -1
- package/dist/tsup/chunk-IHKDFKM4.cjs.map +0 -1
- package/dist/tsup/chunk-RSIOGT2U.cjs.map +0 -1
- package/dist/tsup/chunk-WAISW7KR.cjs.map +0 -1
- /package/dist/tsup/{chunk-553CIQJY.js.map → chunk-2CI2IEVN.js.map} +0 -0
- /package/dist/tsup/{chunk-W2PXGWMR.js.map → chunk-5EGLHQJJ.js.map} +0 -0
- /package/dist/tsup/{chunk-DMQUERRN.js.map → chunk-5IBUZFLP.js.map} +0 -0
- /package/dist/tsup/{chunk-SNNVRHLX.js.map → chunk-CJXBGTVT.js.map} +0 -0
- /package/dist/tsup/{chunk-TZVAVPGJ.js.map → chunk-VMMXXVDO.js.map} +0 -0
|
@@ -6,6 +6,7 @@ import { Logger } from 'pino';
|
|
|
6
6
|
import { UniversalWebSocket } from '@rivetkit/virtual-websocket';
|
|
7
7
|
import { WorkflowState } from './inspector/workflow.js';
|
|
8
8
|
import { StandardSchemaV1 } from '@standard-schema/spec';
|
|
9
|
+
import { Rivet } from '@rivetkit/engine-api-full';
|
|
9
10
|
import { E as Encoding, G as GetUpgradeWebSocket } from './utils-OQHBjfcM.js';
|
|
10
11
|
import { Context, Hono } from 'hono';
|
|
11
12
|
import { R as RivetError } from './utils-DsoDinPz.js';
|
|
@@ -198,7 +199,7 @@ declare const RegistryConfigSchema: z$1.ZodPipe<z$1.ZodObject<{
|
|
|
198
199
|
endpoint: string | undefined;
|
|
199
200
|
startServices: boolean;
|
|
200
201
|
namespace: string;
|
|
201
|
-
token: string;
|
|
202
|
+
token: string | undefined;
|
|
202
203
|
publicEndpoint: string | undefined;
|
|
203
204
|
publicNamespace: string | undefined;
|
|
204
205
|
publicToken: string | undefined;
|
|
@@ -484,6 +485,26 @@ declare function actor<TState, TConnParams, TConnState, TVars, TInput, TDatabase
|
|
|
484
485
|
declare function isStaticActorDefinition(definition: AnyActorDefinition): definition is AnyStaticActorDefinition;
|
|
485
486
|
declare function lookupInRegistry(config: RegistryConfig, name: string): AnyActorDefinition;
|
|
486
487
|
|
|
488
|
+
/** A namespace-scoped Engine grant. The caller must provide every grant explicitly. */
|
|
489
|
+
type TokenGrant = Rivet.AuthTokenGrant;
|
|
490
|
+
/** Options for `client.auth.issueToken()`. `expiresIn` is in seconds. */
|
|
491
|
+
type IssueTokenOptions = Pick<Rivet.AuthTokenCreateRequest, "subject" | "grants"> & {
|
|
492
|
+
expiresIn?: Rivet.AuthTokenCreateRequest["duration"];
|
|
493
|
+
};
|
|
494
|
+
/** Token timestamps are Unix milliseconds. */
|
|
495
|
+
interface IssuedToken {
|
|
496
|
+
token: Rivet.AuthTokenCreateResponse["token"];
|
|
497
|
+
issuedAt: Rivet.AuthTokenCreateResponse["issuedTs"];
|
|
498
|
+
expiresAt: Rivet.AuthTokenCreateResponse["expiresTs"];
|
|
499
|
+
}
|
|
500
|
+
/** Resources that can be scoped to a single actor ID. */
|
|
501
|
+
type ActorTokenResource = Extract<Rivet.AuthTokenGrant["resource"], "actor_gateway" | "actor" | "actor_kv">;
|
|
502
|
+
type ActorTokenPermissions = Partial<Record<ActorTokenResource, Rivet.AuthTokenGrant["operations"]>>;
|
|
503
|
+
/** Options for `actor.issueToken()`. Omit permissions for gateway read access only. */
|
|
504
|
+
type ActorIssueTokenOptions = Pick<IssueTokenOptions, "subject" | "expiresIn"> & {
|
|
505
|
+
permissions?: ActorTokenPermissions;
|
|
506
|
+
};
|
|
507
|
+
|
|
487
508
|
type GatewayTarget = {
|
|
488
509
|
directId: string;
|
|
489
510
|
} | ActorQuery;
|
|
@@ -491,6 +512,7 @@ interface GatewayRequestOptions {
|
|
|
491
512
|
skipReadyWait?: boolean;
|
|
492
513
|
}
|
|
493
514
|
interface EngineControlClient {
|
|
515
|
+
issueToken(options: IssueTokenOptions): Promise<IssuedToken>;
|
|
494
516
|
getForId(input: GetForIdInput): Promise<ActorOutput | undefined>;
|
|
495
517
|
getWithKey(input: GetWithKeyInput): Promise<ActorOutput | undefined>;
|
|
496
518
|
getOrCreateWithKey(input: GetOrCreateWithKeyInput): Promise<ActorOutput>;
|
|
@@ -498,6 +520,8 @@ interface EngineControlClient {
|
|
|
498
520
|
listActors(input: ListActorsInput): Promise<ActorOutput[]>;
|
|
499
521
|
sendRequest(target: GatewayTarget, actorRequest: Request, options?: GatewayRequestOptions): Promise<Response>;
|
|
500
522
|
openWebSocket(path: string, target: GatewayTarget, encoding: Encoding, params: unknown, options?: GatewayRequestOptions): Promise<UniversalWebSocket>;
|
|
523
|
+
/** Refresh a credential rejected during this WebSocket handshake, if supported. */
|
|
524
|
+
refreshAuthToken?(ws: UniversalWebSocket): Promise<boolean>;
|
|
501
525
|
proxyRequest(c: Context, actorRequest: Request, actorId: string): Promise<Response>;
|
|
502
526
|
proxyWebSocket(c: Context, path: string, actorId: string, encoding: Encoding, params: unknown): Promise<Response>;
|
|
503
527
|
buildGatewayUrl(target: GatewayTarget, options?: GatewayRequestOptions): Promise<string>;
|
|
@@ -1488,6 +1512,8 @@ declare class ActorHandleRaw {
|
|
|
1488
1512
|
* Resolves the actor to get its unique actor ID.
|
|
1489
1513
|
*/
|
|
1490
1514
|
resolve(): Promise<string>;
|
|
1515
|
+
/** Issue a token scoped to this actor. Defaults to actor gateway read access. */
|
|
1516
|
+
issueToken(options?: ActorIssueTokenOptions): Promise<IssuedToken>;
|
|
1491
1517
|
/**
|
|
1492
1518
|
* Returns the raw URL for routing traffic to the actor.
|
|
1493
1519
|
*/
|
|
@@ -1513,7 +1539,7 @@ declare class ActorHandleRaw {
|
|
|
1513
1539
|
type ActorHandle<AD extends AnyActorDefinition> = Omit<ActorHandleRaw, "connect" | "send"> & {
|
|
1514
1540
|
connect(params?: unknown, options?: ActorConnectOptions): ActorConn<AD>;
|
|
1515
1541
|
resolve(): Promise<string>;
|
|
1516
|
-
} & ActorDefinitionQueueSend<AD> & ActorDefinitionActions<AD>;
|
|
1542
|
+
} & ActorDefinitionQueueSend<AD> & Omit<ActorDefinitionActions<AD>, keyof ActorHandleRaw>;
|
|
1517
1543
|
|
|
1518
1544
|
/** Extract the actor registry from the registry definition. */
|
|
1519
1545
|
type ExtractActorsFromRegistry<A extends Registry<any>> = A extends Registry<infer Actors> ? Actors : never;
|
|
@@ -1675,6 +1701,10 @@ interface ActorClientRuntimeOptions {
|
|
|
1675
1701
|
*/
|
|
1676
1702
|
declare class ClientRaw {
|
|
1677
1703
|
#private;
|
|
1704
|
+
/** Issue namespace-scoped tokens with an explicit grant list. */
|
|
1705
|
+
readonly auth: {
|
|
1706
|
+
issueToken(options: IssueTokenOptions): Promise<IssuedToken>;
|
|
1707
|
+
};
|
|
1678
1708
|
[ACTOR_CONNS_SYMBOL]: Set<ActorConnRaw>;
|
|
1679
1709
|
/**
|
|
1680
1710
|
* Creates an instance of Client.
|
|
@@ -1735,9 +1765,9 @@ declare class ClientRaw {
|
|
|
1735
1765
|
*
|
|
1736
1766
|
* @template A The actor registry type.
|
|
1737
1767
|
*/
|
|
1738
|
-
type Client<A extends Registry<any>> = ClientRaw & {
|
|
1768
|
+
type Client<A extends Registry<any>> = ClientRaw & Omit<{
|
|
1739
1769
|
[K in keyof ExtractActorsFromRegistry<A>]: ActorAccessor<ExtractActorsFromRegistry<A>[K]>;
|
|
1740
|
-
}
|
|
1770
|
+
}, keyof ClientRaw>;
|
|
1741
1771
|
type AnyClient = Client<Registry<any>>;
|
|
1742
1772
|
declare function createClientWithDriver<A extends Registry<any>>(driver: EngineControlClient, options?: ClientRawOptions & ActorClientRuntimeOptions): Client<A>;
|
|
1743
1773
|
|
|
@@ -2692,4 +2722,4 @@ declare const DocActorConfigSchema: z.ZodObject<{
|
|
|
2692
2722
|
}, z.core.$strip>>;
|
|
2693
2723
|
}, z.core.$strip>;
|
|
2694
2724
|
|
|
2695
|
-
export { type AnyStaticActorInstance as $, type AnyActorDefinition as A, type BaseActorDefinition as B, type ConnectContext as C, type DestroyContext as D, type EventSchemaConfig as E, type ActorKey as F, type ActorKv as G, type ActorLogger as H, type ActorOptions as I, type ActorOptionsInput as J, ActorOptionsSchema as K, type ActorQuery as L, type MigrateContext as M, type ActorQueue as N, type ActorRun as O, type ActorSchedule as P, type QueueSchemaConfig as Q, type RequestContext as R, type SleepContext as S, type ActorTracingOptions as T, type ActorTypes as U, ActorsSchema as V, type WakeContext as W, type AnyActorInstance as X, type AnyClient as Y, type AnyConn as Z, type AnyStaticActorDefinition as _, type ActionContext as a, type ScheduledEventInfo as a$, type AuthIntent as a0, BUILTIN_INSPECTOR_TAB_IDS as a1, type BaseActorInstance as a2, BuiltinInspectorTabIdSchema as a3, CONN_DRIVER_SYMBOL as a4, CONN_STATE_MANAGER_SYMBOL as a5, type Client as a6, type Conn as a7, type CronFire as a8, type CronJobInfo as a9, type QueueName as aA, type QueueNextBatchOptions as aB, type QueueNextOptions as aC, type QueueResultMessageForName as aD, type QueueTryNextBatchOptions as aE, type QueueTryNextOptions as aF, type QueueWaitOptions as aG, RAW_STATE_SYMBOL as aH, Registry as aI, type RegistryActors as aJ, type RegistryApplication as aK, type RegistryConfig as aL, type RegistryConfigInput as aM, RegistryConfigSchema as aN, type RegistryDeps as aO, type RegistryListenOptions as aP, type RegistryRoutes as aQ, type RunConfig as aR, RunConfigSchema as aS, type RunControl as aT, type RunInspectorConfig as aU, type RunInspectorFactoryContext as aV, type RunInspectorFactoryResult as aW, type RunInspectorKind as aX, type RunWithInactiveOptions as aY, type RuntimeKind as aZ, RuntimeKindSchema as a_, CustomInspectorTabEntrySchema as aa, DEFAULT_SLEEP_GRACE_PERIOD as ab, type DefineRunHandlerOptions as ac, DocActorConfigSchema as ad, DocActorOptionsSchema as ae, DocConfigurePoolSchema as af, DocEnvoyConfigSchema as ag, DocRegistryConfigSchema as ah, DocServerlessConfigSchema as ai, DocSqliteConfigSchema as aj, type FetchHandler as ak, type GlobalActorOptions as al, type GlobalActorOptionsInput as am, GlobalActorOptionsSchema as an, HideInspectorTabEntrySchema as ao, type InferEventArgs as ap, type InferSchemaMap as aq, InspectorTabEntrySchema as ar, type InspectorUnsubscribe as as, type InstanceActorOptions as at, type InstanceActorOptionsInput as au, InstanceActorOptionsSchema as av, type QueueEnqueueAndWaitOptions as aw, type QueueFilterName as ax, type QueueIterOptions as ay, type QueueMessageOf as az, type BeforeActionResponseContext as b, type ScheduledFireInfo as b0, type ServerlessHandler as b1, type SqliteBackend as b2, SqliteBackendSchema as b3, type SqliteConfig as b4, SqliteConfigSchema as b5, type TestConfig as b6, TestConfigSchema as b7, type Type as b8, type WasmRuntimeBindings as b9, type ActorConn as bA, ActorConnRaw as bB, type ActorConnStatus as bC, type ActorConnectOptions as bD, type ActorGatewayOptions as bE, type ActorHandle as bF, ActorHandleRaw as bG,
|
|
2725
|
+
export { type AnyStaticActorInstance as $, type AnyActorDefinition as A, type BaseActorDefinition as B, type ConnectContext as C, type DestroyContext as D, type EventSchemaConfig as E, type ActorKey as F, type ActorKv as G, type ActorLogger as H, type ActorOptions as I, type ActorOptionsInput as J, ActorOptionsSchema as K, type ActorQuery as L, type MigrateContext as M, type ActorQueue as N, type ActorRun as O, type ActorSchedule as P, type QueueSchemaConfig as Q, type RequestContext as R, type SleepContext as S, type ActorTracingOptions as T, type ActorTypes as U, ActorsSchema as V, type WakeContext as W, type AnyActorInstance as X, type AnyClient as Y, type AnyConn as Z, type AnyStaticActorDefinition as _, type ActionContext as a, type ScheduledEventInfo as a$, type AuthIntent as a0, BUILTIN_INSPECTOR_TAB_IDS as a1, type BaseActorInstance as a2, BuiltinInspectorTabIdSchema as a3, CONN_DRIVER_SYMBOL as a4, CONN_STATE_MANAGER_SYMBOL as a5, type Client as a6, type Conn as a7, type CronFire as a8, type CronJobInfo as a9, type QueueName as aA, type QueueNextBatchOptions as aB, type QueueNextOptions as aC, type QueueResultMessageForName as aD, type QueueTryNextBatchOptions as aE, type QueueTryNextOptions as aF, type QueueWaitOptions as aG, RAW_STATE_SYMBOL as aH, Registry as aI, type RegistryActors as aJ, type RegistryApplication as aK, type RegistryConfig as aL, type RegistryConfigInput as aM, RegistryConfigSchema as aN, type RegistryDeps as aO, type RegistryListenOptions as aP, type RegistryRoutes as aQ, type RunConfig as aR, RunConfigSchema as aS, type RunControl as aT, type RunInspectorConfig as aU, type RunInspectorFactoryContext as aV, type RunInspectorFactoryResult as aW, type RunInspectorKind as aX, type RunWithInactiveOptions as aY, type RuntimeKind as aZ, RuntimeKindSchema as a_, CustomInspectorTabEntrySchema as aa, DEFAULT_SLEEP_GRACE_PERIOD as ab, type DefineRunHandlerOptions as ac, DocActorConfigSchema as ad, DocActorOptionsSchema as ae, DocConfigurePoolSchema as af, DocEnvoyConfigSchema as ag, DocRegistryConfigSchema as ah, DocServerlessConfigSchema as ai, DocSqliteConfigSchema as aj, type FetchHandler as ak, type GlobalActorOptions as al, type GlobalActorOptionsInput as am, GlobalActorOptionsSchema as an, HideInspectorTabEntrySchema as ao, type InferEventArgs as ap, type InferSchemaMap as aq, InspectorTabEntrySchema as ar, type InspectorUnsubscribe as as, type InstanceActorOptions as at, type InstanceActorOptionsInput as au, InstanceActorOptionsSchema as av, type QueueEnqueueAndWaitOptions as aw, type QueueFilterName as ax, type QueueIterOptions as ay, type QueueMessageOf as az, type BeforeActionResponseContext as b, type ScheduledFireInfo as b0, type ServerlessHandler as b1, type SqliteBackend as b2, SqliteBackendSchema as b3, type SqliteConfig as b4, SqliteConfigSchema as b5, type TestConfig as b6, TestConfigSchema as b7, type Type as b8, type WasmRuntimeBindings as b9, type ActorConn as bA, ActorConnRaw as bB, type ActorConnStatus as bC, type ActorConnectOptions as bD, type ActorGatewayOptions as bE, type ActorHandle as bF, ActorHandleRaw as bG, type ActorIssueTokenOptions as bH, type ActorTokenPermissions as bI, type ActorTokenResource as bJ, ClientRaw as bK, type ConnectionStateCallback as bL, type CreateOptions as bM, type CreateRequest as bN, type EventUnsubscribe as bO, type ExtractActorsFromRegistry as bP, type ExtractRegistryFromClient as bQ, type GetOptions as bR, type GetWithIdOptions as bS, type IssueTokenOptions as bT, type IssuedToken as bU, type QueryOptions as bV, type Region as bW, type StatusChangeCallback as bX, type TokenGrant as bY, type WasmRuntimeConfig as ba, WasmRuntimeConfigSchema as bb, type WasmRuntimeInitInput as bc, type WorkflowInspectorConfig as bd, type WorkflowOutcome as be, type WorkflowSpan as bf, type WorkflowStepOutcome as bg, type WorkflowStepSpan as bh, actor as bi, buildActorNames as bj, createClientWithDriver as bk, defineRunHandler as bl, disposeRunInspector as bm, event as bn, getRunFunction as bo, getRunInspectorConfig as bp, getRunMetadata as bq, isStaticActorDefinition as br, isStaticActorInstance as bs, lookupInRegistry as bt, queue as bu, setup as bv, test as bw, type ActorAccessor as bx, type ActorActionFunction as by, type ActorActionOptions as bz, type BeforeConnectContext as c, type CreateConnStateContext as d, type CreateContext as e, type CreateVarsContext as f, type DisconnectContext as g, type RunContext as h, type StateChangeContext as i, type WebSocketContext as j, ACTOR_CONTEXT_INTERNAL_SYMBOL as k, type ActionInputSchemas as l, type ActionSampleRates as m, type ActionTraceSamplers as n, type Actions as o, type ActorConfig as p, type ActorConfigInput as q, ActorConfigSchema as r, type ActorContext as s, type ActorContextOf as t, type ActorCron as u, type ActorCronEveryOptions as v, type ActorCronSetOptions as w, ActorDefinition as x, type ActorInspectorConfig as y, ActorInspectorConfigSchema as z };
|
|
@@ -6,6 +6,7 @@ import { Logger } from 'pino';
|
|
|
6
6
|
import { UniversalWebSocket } from '@rivetkit/virtual-websocket';
|
|
7
7
|
import { WorkflowState } from './inspector/workflow.cjs';
|
|
8
8
|
import { StandardSchemaV1 } from '@standard-schema/spec';
|
|
9
|
+
import { Rivet } from '@rivetkit/engine-api-full';
|
|
9
10
|
import { E as Encoding, G as GetUpgradeWebSocket } from './utils-CNFeS-Dk.cjs';
|
|
10
11
|
import { Context, Hono } from 'hono';
|
|
11
12
|
import { R as RivetError } from './utils-DsoDinPz.cjs';
|
|
@@ -198,7 +199,7 @@ declare const RegistryConfigSchema: z$1.ZodPipe<z$1.ZodObject<{
|
|
|
198
199
|
endpoint: string | undefined;
|
|
199
200
|
startServices: boolean;
|
|
200
201
|
namespace: string;
|
|
201
|
-
token: string;
|
|
202
|
+
token: string | undefined;
|
|
202
203
|
publicEndpoint: string | undefined;
|
|
203
204
|
publicNamespace: string | undefined;
|
|
204
205
|
publicToken: string | undefined;
|
|
@@ -484,6 +485,26 @@ declare function actor<TState, TConnParams, TConnState, TVars, TInput, TDatabase
|
|
|
484
485
|
declare function isStaticActorDefinition(definition: AnyActorDefinition): definition is AnyStaticActorDefinition;
|
|
485
486
|
declare function lookupInRegistry(config: RegistryConfig, name: string): AnyActorDefinition;
|
|
486
487
|
|
|
488
|
+
/** A namespace-scoped Engine grant. The caller must provide every grant explicitly. */
|
|
489
|
+
type TokenGrant = Rivet.AuthTokenGrant;
|
|
490
|
+
/** Options for `client.auth.issueToken()`. `expiresIn` is in seconds. */
|
|
491
|
+
type IssueTokenOptions = Pick<Rivet.AuthTokenCreateRequest, "subject" | "grants"> & {
|
|
492
|
+
expiresIn?: Rivet.AuthTokenCreateRequest["duration"];
|
|
493
|
+
};
|
|
494
|
+
/** Token timestamps are Unix milliseconds. */
|
|
495
|
+
interface IssuedToken {
|
|
496
|
+
token: Rivet.AuthTokenCreateResponse["token"];
|
|
497
|
+
issuedAt: Rivet.AuthTokenCreateResponse["issuedTs"];
|
|
498
|
+
expiresAt: Rivet.AuthTokenCreateResponse["expiresTs"];
|
|
499
|
+
}
|
|
500
|
+
/** Resources that can be scoped to a single actor ID. */
|
|
501
|
+
type ActorTokenResource = Extract<Rivet.AuthTokenGrant["resource"], "actor_gateway" | "actor" | "actor_kv">;
|
|
502
|
+
type ActorTokenPermissions = Partial<Record<ActorTokenResource, Rivet.AuthTokenGrant["operations"]>>;
|
|
503
|
+
/** Options for `actor.issueToken()`. Omit permissions for gateway read access only. */
|
|
504
|
+
type ActorIssueTokenOptions = Pick<IssueTokenOptions, "subject" | "expiresIn"> & {
|
|
505
|
+
permissions?: ActorTokenPermissions;
|
|
506
|
+
};
|
|
507
|
+
|
|
487
508
|
type GatewayTarget = {
|
|
488
509
|
directId: string;
|
|
489
510
|
} | ActorQuery;
|
|
@@ -491,6 +512,7 @@ interface GatewayRequestOptions {
|
|
|
491
512
|
skipReadyWait?: boolean;
|
|
492
513
|
}
|
|
493
514
|
interface EngineControlClient {
|
|
515
|
+
issueToken(options: IssueTokenOptions): Promise<IssuedToken>;
|
|
494
516
|
getForId(input: GetForIdInput): Promise<ActorOutput | undefined>;
|
|
495
517
|
getWithKey(input: GetWithKeyInput): Promise<ActorOutput | undefined>;
|
|
496
518
|
getOrCreateWithKey(input: GetOrCreateWithKeyInput): Promise<ActorOutput>;
|
|
@@ -498,6 +520,8 @@ interface EngineControlClient {
|
|
|
498
520
|
listActors(input: ListActorsInput): Promise<ActorOutput[]>;
|
|
499
521
|
sendRequest(target: GatewayTarget, actorRequest: Request, options?: GatewayRequestOptions): Promise<Response>;
|
|
500
522
|
openWebSocket(path: string, target: GatewayTarget, encoding: Encoding, params: unknown, options?: GatewayRequestOptions): Promise<UniversalWebSocket>;
|
|
523
|
+
/** Refresh a credential rejected during this WebSocket handshake, if supported. */
|
|
524
|
+
refreshAuthToken?(ws: UniversalWebSocket): Promise<boolean>;
|
|
501
525
|
proxyRequest(c: Context, actorRequest: Request, actorId: string): Promise<Response>;
|
|
502
526
|
proxyWebSocket(c: Context, path: string, actorId: string, encoding: Encoding, params: unknown): Promise<Response>;
|
|
503
527
|
buildGatewayUrl(target: GatewayTarget, options?: GatewayRequestOptions): Promise<string>;
|
|
@@ -1488,6 +1512,8 @@ declare class ActorHandleRaw {
|
|
|
1488
1512
|
* Resolves the actor to get its unique actor ID.
|
|
1489
1513
|
*/
|
|
1490
1514
|
resolve(): Promise<string>;
|
|
1515
|
+
/** Issue a token scoped to this actor. Defaults to actor gateway read access. */
|
|
1516
|
+
issueToken(options?: ActorIssueTokenOptions): Promise<IssuedToken>;
|
|
1491
1517
|
/**
|
|
1492
1518
|
* Returns the raw URL for routing traffic to the actor.
|
|
1493
1519
|
*/
|
|
@@ -1513,7 +1539,7 @@ declare class ActorHandleRaw {
|
|
|
1513
1539
|
type ActorHandle<AD extends AnyActorDefinition> = Omit<ActorHandleRaw, "connect" | "send"> & {
|
|
1514
1540
|
connect(params?: unknown, options?: ActorConnectOptions): ActorConn<AD>;
|
|
1515
1541
|
resolve(): Promise<string>;
|
|
1516
|
-
} & ActorDefinitionQueueSend<AD> & ActorDefinitionActions<AD>;
|
|
1542
|
+
} & ActorDefinitionQueueSend<AD> & Omit<ActorDefinitionActions<AD>, keyof ActorHandleRaw>;
|
|
1517
1543
|
|
|
1518
1544
|
/** Extract the actor registry from the registry definition. */
|
|
1519
1545
|
type ExtractActorsFromRegistry<A extends Registry<any>> = A extends Registry<infer Actors> ? Actors : never;
|
|
@@ -1675,6 +1701,10 @@ interface ActorClientRuntimeOptions {
|
|
|
1675
1701
|
*/
|
|
1676
1702
|
declare class ClientRaw {
|
|
1677
1703
|
#private;
|
|
1704
|
+
/** Issue namespace-scoped tokens with an explicit grant list. */
|
|
1705
|
+
readonly auth: {
|
|
1706
|
+
issueToken(options: IssueTokenOptions): Promise<IssuedToken>;
|
|
1707
|
+
};
|
|
1678
1708
|
[ACTOR_CONNS_SYMBOL]: Set<ActorConnRaw>;
|
|
1679
1709
|
/**
|
|
1680
1710
|
* Creates an instance of Client.
|
|
@@ -1735,9 +1765,9 @@ declare class ClientRaw {
|
|
|
1735
1765
|
*
|
|
1736
1766
|
* @template A The actor registry type.
|
|
1737
1767
|
*/
|
|
1738
|
-
type Client<A extends Registry<any>> = ClientRaw & {
|
|
1768
|
+
type Client<A extends Registry<any>> = ClientRaw & Omit<{
|
|
1739
1769
|
[K in keyof ExtractActorsFromRegistry<A>]: ActorAccessor<ExtractActorsFromRegistry<A>[K]>;
|
|
1740
|
-
}
|
|
1770
|
+
}, keyof ClientRaw>;
|
|
1741
1771
|
type AnyClient = Client<Registry<any>>;
|
|
1742
1772
|
declare function createClientWithDriver<A extends Registry<any>>(driver: EngineControlClient, options?: ClientRawOptions & ActorClientRuntimeOptions): Client<A>;
|
|
1743
1773
|
|
|
@@ -2692,4 +2722,4 @@ declare const DocActorConfigSchema: z.ZodObject<{
|
|
|
2692
2722
|
}, z.core.$strip>>;
|
|
2693
2723
|
}, z.core.$strip>;
|
|
2694
2724
|
|
|
2695
|
-
export { type AnyStaticActorInstance as $, type AnyActorDefinition as A, type BaseActorDefinition as B, type ConnectContext as C, type DestroyContext as D, type EventSchemaConfig as E, type ActorKey as F, type ActorKv as G, type ActorLogger as H, type ActorOptions as I, type ActorOptionsInput as J, ActorOptionsSchema as K, type ActorQuery as L, type MigrateContext as M, type ActorQueue as N, type ActorRun as O, type ActorSchedule as P, type QueueSchemaConfig as Q, type RequestContext as R, type SleepContext as S, type ActorTracingOptions as T, type ActorTypes as U, ActorsSchema as V, type WakeContext as W, type AnyActorInstance as X, type AnyClient as Y, type AnyConn as Z, type AnyStaticActorDefinition as _, type ActionContext as a, type ScheduledEventInfo as a$, type AuthIntent as a0, BUILTIN_INSPECTOR_TAB_IDS as a1, type BaseActorInstance as a2, BuiltinInspectorTabIdSchema as a3, CONN_DRIVER_SYMBOL as a4, CONN_STATE_MANAGER_SYMBOL as a5, type Client as a6, type Conn as a7, type CronFire as a8, type CronJobInfo as a9, type QueueName as aA, type QueueNextBatchOptions as aB, type QueueNextOptions as aC, type QueueResultMessageForName as aD, type QueueTryNextBatchOptions as aE, type QueueTryNextOptions as aF, type QueueWaitOptions as aG, RAW_STATE_SYMBOL as aH, Registry as aI, type RegistryActors as aJ, type RegistryApplication as aK, type RegistryConfig as aL, type RegistryConfigInput as aM, RegistryConfigSchema as aN, type RegistryDeps as aO, type RegistryListenOptions as aP, type RegistryRoutes as aQ, type RunConfig as aR, RunConfigSchema as aS, type RunControl as aT, type RunInspectorConfig as aU, type RunInspectorFactoryContext as aV, type RunInspectorFactoryResult as aW, type RunInspectorKind as aX, type RunWithInactiveOptions as aY, type RuntimeKind as aZ, RuntimeKindSchema as a_, CustomInspectorTabEntrySchema as aa, DEFAULT_SLEEP_GRACE_PERIOD as ab, type DefineRunHandlerOptions as ac, DocActorConfigSchema as ad, DocActorOptionsSchema as ae, DocConfigurePoolSchema as af, DocEnvoyConfigSchema as ag, DocRegistryConfigSchema as ah, DocServerlessConfigSchema as ai, DocSqliteConfigSchema as aj, type FetchHandler as ak, type GlobalActorOptions as al, type GlobalActorOptionsInput as am, GlobalActorOptionsSchema as an, HideInspectorTabEntrySchema as ao, type InferEventArgs as ap, type InferSchemaMap as aq, InspectorTabEntrySchema as ar, type InspectorUnsubscribe as as, type InstanceActorOptions as at, type InstanceActorOptionsInput as au, InstanceActorOptionsSchema as av, type QueueEnqueueAndWaitOptions as aw, type QueueFilterName as ax, type QueueIterOptions as ay, type QueueMessageOf as az, type BeforeActionResponseContext as b, type ScheduledFireInfo as b0, type ServerlessHandler as b1, type SqliteBackend as b2, SqliteBackendSchema as b3, type SqliteConfig as b4, SqliteConfigSchema as b5, type TestConfig as b6, TestConfigSchema as b7, type Type as b8, type WasmRuntimeBindings as b9, type ActorConn as bA, ActorConnRaw as bB, type ActorConnStatus as bC, type ActorConnectOptions as bD, type ActorGatewayOptions as bE, type ActorHandle as bF, ActorHandleRaw as bG,
|
|
2725
|
+
export { type AnyStaticActorInstance as $, type AnyActorDefinition as A, type BaseActorDefinition as B, type ConnectContext as C, type DestroyContext as D, type EventSchemaConfig as E, type ActorKey as F, type ActorKv as G, type ActorLogger as H, type ActorOptions as I, type ActorOptionsInput as J, ActorOptionsSchema as K, type ActorQuery as L, type MigrateContext as M, type ActorQueue as N, type ActorRun as O, type ActorSchedule as P, type QueueSchemaConfig as Q, type RequestContext as R, type SleepContext as S, type ActorTracingOptions as T, type ActorTypes as U, ActorsSchema as V, type WakeContext as W, type AnyActorInstance as X, type AnyClient as Y, type AnyConn as Z, type AnyStaticActorDefinition as _, type ActionContext as a, type ScheduledEventInfo as a$, type AuthIntent as a0, BUILTIN_INSPECTOR_TAB_IDS as a1, type BaseActorInstance as a2, BuiltinInspectorTabIdSchema as a3, CONN_DRIVER_SYMBOL as a4, CONN_STATE_MANAGER_SYMBOL as a5, type Client as a6, type Conn as a7, type CronFire as a8, type CronJobInfo as a9, type QueueName as aA, type QueueNextBatchOptions as aB, type QueueNextOptions as aC, type QueueResultMessageForName as aD, type QueueTryNextBatchOptions as aE, type QueueTryNextOptions as aF, type QueueWaitOptions as aG, RAW_STATE_SYMBOL as aH, Registry as aI, type RegistryActors as aJ, type RegistryApplication as aK, type RegistryConfig as aL, type RegistryConfigInput as aM, RegistryConfigSchema as aN, type RegistryDeps as aO, type RegistryListenOptions as aP, type RegistryRoutes as aQ, type RunConfig as aR, RunConfigSchema as aS, type RunControl as aT, type RunInspectorConfig as aU, type RunInspectorFactoryContext as aV, type RunInspectorFactoryResult as aW, type RunInspectorKind as aX, type RunWithInactiveOptions as aY, type RuntimeKind as aZ, RuntimeKindSchema as a_, CustomInspectorTabEntrySchema as aa, DEFAULT_SLEEP_GRACE_PERIOD as ab, type DefineRunHandlerOptions as ac, DocActorConfigSchema as ad, DocActorOptionsSchema as ae, DocConfigurePoolSchema as af, DocEnvoyConfigSchema as ag, DocRegistryConfigSchema as ah, DocServerlessConfigSchema as ai, DocSqliteConfigSchema as aj, type FetchHandler as ak, type GlobalActorOptions as al, type GlobalActorOptionsInput as am, GlobalActorOptionsSchema as an, HideInspectorTabEntrySchema as ao, type InferEventArgs as ap, type InferSchemaMap as aq, InspectorTabEntrySchema as ar, type InspectorUnsubscribe as as, type InstanceActorOptions as at, type InstanceActorOptionsInput as au, InstanceActorOptionsSchema as av, type QueueEnqueueAndWaitOptions as aw, type QueueFilterName as ax, type QueueIterOptions as ay, type QueueMessageOf as az, type BeforeActionResponseContext as b, type ScheduledFireInfo as b0, type ServerlessHandler as b1, type SqliteBackend as b2, SqliteBackendSchema as b3, type SqliteConfig as b4, SqliteConfigSchema as b5, type TestConfig as b6, TestConfigSchema as b7, type Type as b8, type WasmRuntimeBindings as b9, type ActorConn as bA, ActorConnRaw as bB, type ActorConnStatus as bC, type ActorConnectOptions as bD, type ActorGatewayOptions as bE, type ActorHandle as bF, ActorHandleRaw as bG, type ActorIssueTokenOptions as bH, type ActorTokenPermissions as bI, type ActorTokenResource as bJ, ClientRaw as bK, type ConnectionStateCallback as bL, type CreateOptions as bM, type CreateRequest as bN, type EventUnsubscribe as bO, type ExtractActorsFromRegistry as bP, type ExtractRegistryFromClient as bQ, type GetOptions as bR, type GetWithIdOptions as bS, type IssueTokenOptions as bT, type IssuedToken as bU, type QueryOptions as bV, type Region as bW, type StatusChangeCallback as bX, type TokenGrant as bY, type WasmRuntimeConfig as ba, WasmRuntimeConfigSchema as bb, type WasmRuntimeInitInput as bc, type WorkflowInspectorConfig as bd, type WorkflowOutcome as be, type WorkflowSpan as bf, type WorkflowStepOutcome as bg, type WorkflowStepSpan as bh, actor as bi, buildActorNames as bj, createClientWithDriver as bk, defineRunHandler as bl, disposeRunInspector as bm, event as bn, getRunFunction as bo, getRunInspectorConfig as bp, getRunMetadata as bq, isStaticActorDefinition as br, isStaticActorInstance as bs, lookupInRegistry as bt, queue as bu, setup as bv, test as bw, type ActorAccessor as bx, type ActorActionFunction as by, type ActorActionOptions as bz, type BeforeConnectContext as c, type CreateConnStateContext as d, type CreateContext as e, type CreateVarsContext as f, type DisconnectContext as g, type RunContext as h, type StateChangeContext as i, type WebSocketContext as j, ACTOR_CONTEXT_INTERNAL_SYMBOL as k, type ActionInputSchemas as l, type ActionSampleRates as m, type ActionTraceSamplers as n, type Actions as o, type ActorConfig as p, type ActorConfigInput as q, ActorConfigSchema as r, type ActorContext as s, type ActorContextOf as t, type ActorCron as u, type ActorCronEveryOptions as v, type ActorCronSetOptions as w, ActorDefinition as x, type ActorInspectorConfig as y, ActorInspectorConfigSchema as z };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as AnyActorDefinition, B as BaseActorDefinition, E as EventSchemaConfig, Q as QueueSchemaConfig, h as RunContext, H as ActorLogger, ax as QueueFilterName, aC as QueueNextOptions, aD as QueueResultMessageForName, aB as QueueNextBatchOptions, aI as Registry, a6 as Client, ap as InferEventArgs, aq as InferSchemaMap } from './config-
|
|
1
|
+
import { A as AnyActorDefinition, B as BaseActorDefinition, E as EventSchemaConfig, Q as QueueSchemaConfig, h as RunContext, H as ActorLogger, ax as QueueFilterName, aC as QueueNextOptions, aD as QueueResultMessageForName, aB as QueueNextBatchOptions, aI as Registry, a6 as Client, ap as InferEventArgs, aq as InferSchemaMap } from './config-Do_0guSS.cjs';
|
|
2
2
|
import { WorkflowContextInterface, StepConfig, TryStepResult, TryStepConfig, TryBlockResult, TryBlockConfig, LoopResult, LoopConfig, BranchConfig, BranchOutput, EntryKindType } from '@rivetkit/workflow-engine';
|
|
3
3
|
import { A as AnyDatabaseProvider, I as InferDatabaseClient } from './config-ey2I2zz5.cjs';
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as AnyActorDefinition, B as BaseActorDefinition, E as EventSchemaConfig, Q as QueueSchemaConfig, h as RunContext, H as ActorLogger, ax as QueueFilterName, aC as QueueNextOptions, aD as QueueResultMessageForName, aB as QueueNextBatchOptions, aI as Registry, a6 as Client, ap as InferEventArgs, aq as InferSchemaMap } from './config-
|
|
1
|
+
import { A as AnyActorDefinition, B as BaseActorDefinition, E as EventSchemaConfig, Q as QueueSchemaConfig, h as RunContext, H as ActorLogger, ax as QueueFilterName, aC as QueueNextOptions, aD as QueueResultMessageForName, aB as QueueNextBatchOptions, aI as Registry, a6 as Client, ap as InferEventArgs, aq as InferSchemaMap } from './config-Bc1nnvUl.js';
|
|
2
2
|
import { WorkflowContextInterface, StepConfig, TryStepResult, TryStepConfig, TryBlockResult, TryBlockConfig, LoopResult, LoopConfig, BranchConfig, BranchOutput, EntryKindType } from '@rivetkit/workflow-engine';
|
|
3
3
|
import { A as AnyDatabaseProvider, I as InferDatabaseClient } from './config-ey2I2zz5.js';
|
|
4
4
|
|
package/dist/tsup/db/drizzle.cjs
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
var _chunkKVFIONKQcjs = require('../chunk-KVFIONKQ.cjs');
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _chunkKWGN2ZBJcjs = require('../chunk-KWGN2ZBJ.cjs');
|
|
11
11
|
require('../chunk-JX2ITWAV.cjs');
|
|
12
12
|
|
|
13
13
|
// src/db/drizzle.ts
|
|
@@ -164,7 +164,7 @@ function db({
|
|
|
164
164
|
return;
|
|
165
165
|
}
|
|
166
166
|
manualTransactionWarned = true;
|
|
167
|
-
|
|
167
|
+
_chunkKWGN2ZBJcjs.getLogger.call(void 0, "database").warn(
|
|
168
168
|
{ actorId: ctx.actorId },
|
|
169
169
|
"Manual cross-call SQLite transactions can interleave with other actor work. Use db.transaction() for coordinated transactions. Set warnOnManualTransactions: false in your db(...) configuration to disable this warning."
|
|
170
170
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/actors/actors/rivetkit-typescript/packages/rivetkit/dist/tsup/db/drizzle.cjs","../../../src/db/drizzle.ts","../../../src/utils/crypto.ts"],"names":["db"],"mappings":"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","file":"/home/runner/work/actors/actors/rivetkit-typescript/packages/rivetkit/dist/tsup/db/drizzle.cjs","sourcesContent":[null,"import {\n\tdrizzle,\n\ttype RemoteCallback,\n\ttype SqliteRemoteDatabase,\n} from \"drizzle-orm/sqlite-proxy\";\nimport type {\n\tDatabaseProvider,\n\tDatabaseProviderContext,\n\tRawAccess,\n\tSqliteProfilingOptions,\n\tSqliteTransactionOptions,\n\tSqliteDatabase,\n\tSqliteTransactionDatabase,\n} from \"@/common/database/config\";\nimport { getLogger } from \"@/common/log\";\nimport {\n\tisManualTransactionControl,\n\tMIGRATION_TRANSACTION_TIMEOUT_MS,\n\ttoSqliteBindings,\n\tvalidateTransactionName,\n\tvalidateTransactionTimeout,\n} from \"@/common/database/shared\";\nimport { sha256Hex } from \"@/utils/crypto\";\n\nexport type { SQLiteTable } from \"drizzle-orm/sqlite-core\";\nexport {\n\talias,\n\tcheck,\n\tforeignKey,\n\tindex,\n\tinteger,\n\tprimaryKey,\n\tsqliteTable,\n\tsqliteTableCreator,\n\ttext,\n\tunique,\n\tuniqueIndex,\n} from \"drizzle-orm/sqlite-core\";\n\ntype DrizzleSchema = Record<string, unknown>;\ntype DrizzleDatabase<TSchema extends DrizzleSchema> = Omit<\n\tSqliteRemoteDatabase<TSchema>,\n\t\"transaction\"\n> &\n\tOmit<RawAccess, \"transaction\"> & {\n\t\ttransaction: <T>(\n\t\t\tcallback: (tx: DrizzleDatabase<TSchema>) => Promise<T> | T,\n\t\t\toptions?: SqliteTransactionOptions,\n\t\t) => Promise<T>;\n\t};\n\ninterface DrizzleMigrationJournalEntry {\n\tidx: number;\n\ttag: string;\n\twhen: number;\n\tbreakpoints?: boolean;\n}\n\ninterface DrizzleMigrations {\n\tjournal: unknown;\n\tmigrations: Record<string, string>;\n}\n\nexport interface DrizzleDatabaseFactoryConfig<TSchema extends DrizzleSchema> {\n\tschema?: TSchema;\n\tmigrations?: DrizzleMigrations;\n\tonMigrate?: (db: DrizzleDatabase<TSchema>) => Promise<void> | void;\n\twarnOnManualTransactions?: boolean;\n\tprofiling?: SqliteProfilingOptions;\n}\n\ninterface DrizzleKitConfig {\n\tout?: string;\n\tschema?: string;\n\tdialect?: \"sqlite\";\n\t[key: string]: unknown;\n}\n\nexport function defineConfig<TConfig extends DrizzleKitConfig>(\n\tconfig: TConfig,\n): TConfig & { dialect: \"sqlite\" } {\n\treturn {\n\t\tdialect: \"sqlite\",\n\t\t...config,\n\t};\n}\n\nexport function db<TSchema extends DrizzleSchema = Record<string, never>>({\n\tschema,\n\tmigrations,\n\tonMigrate,\n\twarnOnManualTransactions = true,\n\tprofiling,\n}: DrizzleDatabaseFactoryConfig<TSchema> = {}): DatabaseProvider<\n\tDrizzleDatabase<TSchema>\n> {\n\treturn {\n\t\tsqliteProfiling: profiling,\n\t\tcreateClient: async (ctx) => {\n\t\t\tconst override = ctx.overrideDrizzleDatabaseClient\n\t\t\t\t? await ctx.overrideDrizzleDatabaseClient()\n\t\t\t\t: undefined;\n\t\t\tif (override) {\n\t\t\t\treturn override as DrizzleDatabase<TSchema>;\n\t\t\t}\n\n\t\t\tconst nativeDatabaseProvider = ctx.nativeDatabaseProvider;\n\t\t\tif (!nativeDatabaseProvider) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"native SQLite is required, but the current runtime did not provide a native database provider\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst nativeDb = await nativeDatabaseProvider.open(ctx.actorId);\n\t\t\tlet closed = false;\n\t\t\tlet manualTransactionWarned = false;\n\t\t\tconst ensureOpen = () => {\n\t\t\t\tif (closed) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\"Database is closed. This usually means a background timer (setInterval, setTimeout) or a stray promise is still running after the actor stopped. Use c.abortSignal to clean up timers before the actor shuts down.\",\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tconst createDrizzleClient = (\n\t\t\t\ttarget: SqliteDatabase | SqliteTransactionDatabase,\n\t\t\t\ttransactionScoped = false,\n\t\t\t): DrizzleDatabase<TSchema> => {\n\t\t\t\tconst runSql = async (\n\t\t\t\t\tquery: string,\n\t\t\t\t\tparams: unknown[],\n\t\t\t\t\tmethod: \"run\" | \"all\" | \"values\" | \"get\",\n\t\t\t\t) => {\n\t\t\t\t\tensureOpen();\n\t\t\t\t\twarnForManualTransaction(query, transactionScoped);\n\n\t\t\t\t\tconst start = performance.now();\n\t\t\t\t\tconst kvReadsBefore = ctx.metrics?.totalKvReads ?? 0;\n\t\t\t\t\tconst kvWritesBefore = ctx.metrics?.totalKvWrites ?? 0;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst { rows } = await target.execute(\n\t\t\t\t\t\t\tquery,\n\t\t\t\t\t\t\ttoSqliteBindings(params),\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (method === \"run\") {\n\t\t\t\t\t\t\treturn { rows: [] };\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (method === \"get\") {\n\t\t\t\t\t\t\treturn { rows: rows[0] };\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn { rows };\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tconst durationMs = performance.now() - start;\n\t\t\t\t\t\tctx.metrics?.trackSql(query, durationMs);\n\t\t\t\t\t\tif (ctx.metrics) {\n\t\t\t\t\t\t\tctx.log?.debug({\n\t\t\t\t\t\t\t\tmsg: \"sql query\",\n\t\t\t\t\t\t\t\tquery: query.slice(0, 120),\n\t\t\t\t\t\t\t\tdurationMs,\n\t\t\t\t\t\t\t\tkvReads:\n\t\t\t\t\t\t\t\t\tctx.metrics.totalKvReads - kvReadsBefore,\n\t\t\t\t\t\t\t\tkvWrites:\n\t\t\t\t\t\t\t\t\tctx.metrics.totalKvWrites - kvWritesBefore,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tconst callback: RemoteCallback = async (\n\t\t\t\t\tquery,\n\t\t\t\t\tparams,\n\t\t\t\t\tmethod,\n\t\t\t\t) => {\n\t\t\t\t\treturn await runSql(query, params, method);\n\t\t\t\t};\n\n\t\t\t\tconst drizzleDb = drizzle(callback, {\n\t\t\t\t\tschema,\n\t\t\t\t}) as unknown as DrizzleDatabase<TSchema>;\n\t\t\t\tdrizzleDb.execute = async <\n\t\t\t\t\tTRow extends Record<string, unknown> = Record<\n\t\t\t\t\t\tstring,\n\t\t\t\t\t\tunknown\n\t\t\t\t\t>,\n\t\t\t\t>(\n\t\t\t\t\tquery: string,\n\t\t\t\t\t...args: unknown[]\n\t\t\t\t): Promise<TRow[]> => {\n\t\t\t\t\treturn await executeRaw<TRow>(\n\t\t\t\t\t\ttarget,\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\tensureOpen,\n\t\t\t\t\t\tquery,\n\t\t\t\t\t\targs,\n\t\t\t\t\t\t() =>\n\t\t\t\t\t\t\twarnForManualTransaction(query, transactionScoped),\n\t\t\t\t\t);\n\t\t\t\t};\n\t\t\t\tdrizzleDb.transaction = async <T>(\n\t\t\t\t\ttransactionCallback: (\n\t\t\t\t\t\ttx: DrizzleDatabase<TSchema>,\n\t\t\t\t\t) => Promise<T> | T,\n\t\t\t\t\toptions?: SqliteTransactionOptions,\n\t\t\t\t): Promise<T> => {\n\t\t\t\t\tvalidateTransactionTimeout(options?.timeout);\n\t\t\t\t\tvalidateTransactionName(options?.name);\n\t\t\t\t\tconst transaction = await nativeDb.beginTransaction(\n\t\t\t\t\t\toptions?.timeout,\n\t\t\t\t\t\toptions?.name,\n\t\t\t\t\t);\n\t\t\t\t\tconst tx = createDrizzleClient(transaction, true);\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst result = await transactionCallback(tx);\n\t\t\t\t\t\tawait transaction.commit();\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tawait transaction.rollback();\n\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\t// Preserve the callback or commit error after expiry cleanup.\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow error;\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tdrizzleDb.close = async () => {\n\t\t\t\t\tif (!closed) {\n\t\t\t\t\t\tclosed = true;\n\t\t\t\t\t\tawait nativeDb.close();\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\treturn drizzleDb;\n\t\t\t};\n\n\t\t\tconst warnForManualTransaction = (\n\t\t\t\tquery: string,\n\t\t\t\ttransactionScoped: boolean,\n\t\t\t) => {\n\t\t\t\tif (\n\t\t\t\t\ttransactionScoped ||\n\t\t\t\t\t!warnOnManualTransactions ||\n\t\t\t\t\tmanualTransactionWarned ||\n\t\t\t\t\thasMultipleStatements(query) ||\n\t\t\t\t\t!isManualTransactionControl(query)\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tmanualTransactionWarned = true;\n\t\t\t\tgetLogger(\"database\").warn(\n\t\t\t\t\t{ actorId: ctx.actorId },\n\t\t\t\t\t\"Manual cross-call SQLite transactions can interleave with other actor work. Use db.transaction() for coordinated transactions. Set warnOnManualTransactions: false in your db(...) configuration to disable this warning.\",\n\t\t\t\t);\n\t\t\t};\n\n\t\t\treturn createDrizzleClient(nativeDb);\n\t\t},\n\t\tonMigrate: async (client) => {\n\t\t\tif (!migrations && !onMigrate) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tawait withMigrationSavepoint(client, async (leased) => {\n\t\t\t\tif (migrations) {\n\t\t\t\t\tawait runMigrations(leased, migrations);\n\t\t\t\t}\n\t\t\t\tif (onMigrate) {\n\t\t\t\t\tawait onMigrate(leased);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\t};\n}\n\nasync function withMigrationSavepoint<TSchema extends DrizzleSchema, T>(\n\tclient: DrizzleDatabase<TSchema>,\n\tcallback: (leased: DrizzleDatabase<TSchema>) => Promise<T> | T,\n): Promise<T> {\n\treturn await client.transaction(\n\t\tasync (leased) => {\n\t\t\tawait leased.execute(\"SAVEPOINT __rivet_on_migrate\");\n\t\t\ttry {\n\t\t\t\tconst result = await callback(leased);\n\t\t\t\tawait leased.execute(\"RELEASE SAVEPOINT __rivet_on_migrate\");\n\t\t\t\treturn result;\n\t\t\t} catch (error) {\n\t\t\t\ttry {\n\t\t\t\t\tawait leased.execute(\n\t\t\t\t\t\t\"ROLLBACK TO SAVEPOINT __rivet_on_migrate\",\n\t\t\t\t\t);\n\t\t\t\t} finally {\n\t\t\t\t\tawait leased.execute(\n\t\t\t\t\t\t\"RELEASE SAVEPOINT __rivet_on_migrate\",\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tname: \"rivetkit-drizzle-migration\",\n\t\t\ttimeout: MIGRATION_TRANSACTION_TIMEOUT_MS,\n\t\t},\n\t);\n}\n\nasync function runMigrations<TSchema extends DrizzleSchema>(\n\tdb: DrizzleDatabase<TSchema>,\n\tmigrations: DrizzleMigrations,\n) {\n\tconst journal = parseMigrationJournal(migrations.journal);\n\n\tawait db.execute(`\n\t\tCREATE TABLE IF NOT EXISTS __drizzle_migrations (\n\t\t\tid INTEGER PRIMARY KEY AUTOINCREMENT,\n\t\t\thash TEXT NOT NULL,\n\t\t\tcreated_at NUMERIC\n\t\t)\n\t`);\n\n\tconst rows = await db.execute<{ created_at: number }>(\n\t\t\"SELECT created_at FROM __drizzle_migrations ORDER BY created_at DESC LIMIT 1\",\n\t);\n\tconst lastMigration = rows[0]?.created_at ?? 0;\n\n\tfor (const entry of journal.entries) {\n\t\tif (lastMigration >= entry.when) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst key = `m${entry.idx.toString().padStart(4, \"0\")}`;\n\t\tconst migration = migrations.migrations[key];\n\t\tif (migration === undefined) {\n\t\t\tthrow new Error(\n\t\t\t\t`missing Drizzle migration \"${key}\" for journal entry \"${entry.tag}\"`,\n\t\t\t);\n\t\t}\n\n\t\tconst statements = migration\n\t\t\t.split(\"--> statement-breakpoint\")\n\t\t\t.map((statement) => statement.trim())\n\t\t\t.filter(Boolean);\n\t\tfor (const statement of statements) {\n\t\t\tawait db.execute(statement);\n\t\t}\n\n\t\tawait db.execute(\n\t\t\t\"INSERT INTO __drizzle_migrations (hash, created_at) VALUES (?, ?)\",\n\t\t\tawait sha256Hex(migration),\n\t\t\tentry.when,\n\t\t);\n\t}\n}\n\nfunction parseMigrationJournal(journal: unknown): {\n\tentries: DrizzleMigrationJournalEntry[];\n} {\n\tif (\n\t\t!journal ||\n\t\ttypeof journal !== \"object\" ||\n\t\t!(\"entries\" in journal) ||\n\t\t!Array.isArray(journal.entries)\n\t) {\n\t\tthrow new Error(\"invalid Drizzle migration journal\");\n\t}\n\n\treturn journal as { entries: DrizzleMigrationJournalEntry[] };\n}\n\nfunction hasMultipleStatements(query: string): boolean {\n\tconst trimmed = query.trim().replace(/;+$/, \"\").trimEnd();\n\treturn trimmed.includes(\";\");\n}\n\nfunction rowToObject<TRow extends Record<string, unknown>>(\n\trow: unknown[],\n\tcolumns: string[],\n): TRow {\n\tconst rowObj: Record<string, unknown> = {};\n\tfor (let i = 0; i < columns.length; i++) {\n\t\trowObj[columns[i]] = row[i];\n\t}\n\treturn rowObj as TRow;\n}\n\nasync function executeRaw<TRow extends Record<string, unknown>>(\n\tdb: SqliteDatabase | SqliteTransactionDatabase,\n\tctx: DatabaseProviderContext,\n\tensureOpen: () => void,\n\tquery: string,\n\targs: unknown[],\n\twarnForManualTransaction: () => void,\n): Promise<TRow[]> {\n\tensureOpen();\n\twarnForManualTransaction();\n\n\tconst start = performance.now();\n\tconst kvReadsBefore = ctx.metrics?.totalKvReads ?? 0;\n\tconst kvWritesBefore = ctx.metrics?.totalKvWrites ?? 0;\n\ttry {\n\t\tif (args.length > 0) {\n\t\t\tconst { rows, columns } = await db.execute(\n\t\t\t\tquery,\n\t\t\t\ttoSqliteBindings(args),\n\t\t\t);\n\t\t\treturn rows.map((row) => rowToObject<TRow>(row, columns));\n\t\t}\n\n\t\tif (!hasMultipleStatements(query)) {\n\t\t\tconst { rows, columns } = await db.execute(query, undefined);\n\t\t\treturn rows.map((row) => rowToObject<TRow>(row, columns));\n\t\t}\n\n\t\tconst results: Record<string, unknown>[] = [];\n\t\tlet columnNames: string[] | null = null;\n\t\tawait db.exec(query, (row, columns) => {\n\t\t\tif (!columnNames) {\n\t\t\t\tcolumnNames = columns;\n\t\t\t}\n\t\t\tresults.push(rowToObject(row, columnNames));\n\t\t});\n\t\treturn results as TRow[];\n\t} finally {\n\t\tconst durationMs = performance.now() - start;\n\t\tctx.metrics?.trackSql(query, durationMs);\n\t\tif (ctx.metrics) {\n\t\t\tctx.log?.debug({\n\t\t\t\tmsg: \"sql query\",\n\t\t\t\tquery: query.slice(0, 120),\n\t\t\t\tdurationMs,\n\t\t\t\tkvReads: ctx.metrics.totalKvReads - kvReadsBefore,\n\t\t\t\tkvWrites: ctx.metrics.totalKvWrites - kvWritesBefore,\n\t\t\t});\n\t\t}\n\t}\n}\n","/**\n * Timing-safe comparison of two Uint8Arrays or strings.\n * This prevents timing attacks by always comparing all bytes.\n */\nexport function timingSafeEqual(\n\ta: Uint8Array | string,\n\tb: Uint8Array | string,\n): boolean {\n\tconst encoder = new TextEncoder();\n\tconst bufferA = typeof a === \"string\" ? encoder.encode(a) : a;\n\tconst bufferB = typeof b === \"string\" ? encoder.encode(b) : b;\n\n\t// Pad to max length to avoid leaking length information\n\tconst maxLength = Math.max(bufferA.byteLength, bufferB.byteLength);\n\tlet result = bufferA.byteLength ^ bufferB.byteLength;\n\n\tfor (let i = 0; i < maxLength; i++) {\n\t\tconst byteA = i < bufferA.byteLength ? bufferA[i] : 0;\n\t\tconst byteB = i < bufferB.byteLength ? bufferB[i] : 0;\n\t\tresult |= byteA ^ byteB;\n\t}\n\n\treturn result === 0;\n}\n\nexport async function sha256Hex(value: string): Promise<string> {\n\tif (!globalThis.crypto?.subtle) {\n\t\tthrow new Error(\"Web Crypto API is required to compute SHA-256 hashes\");\n\t}\n\n\tconst digest = await globalThis.crypto.subtle.digest(\n\t\t\"SHA-256\",\n\t\tnew TextEncoder().encode(value),\n\t);\n\treturn Array.from(new Uint8Array(digest), (byte) =>\n\t\tbyte.toString(16).padStart(2, \"0\"),\n\t).join(\"\");\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/db/drizzle.cjs","../../../src/db/drizzle.ts","../../../src/utils/crypto.ts"],"names":["db"],"mappings":"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","file":"/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/db/drizzle.cjs","sourcesContent":[null,"import {\n\tdrizzle,\n\ttype RemoteCallback,\n\ttype SqliteRemoteDatabase,\n} from \"drizzle-orm/sqlite-proxy\";\nimport type {\n\tDatabaseProvider,\n\tDatabaseProviderContext,\n\tRawAccess,\n\tSqliteProfilingOptions,\n\tSqliteTransactionOptions,\n\tSqliteDatabase,\n\tSqliteTransactionDatabase,\n} from \"@/common/database/config\";\nimport { getLogger } from \"@/common/log\";\nimport {\n\tisManualTransactionControl,\n\tMIGRATION_TRANSACTION_TIMEOUT_MS,\n\ttoSqliteBindings,\n\tvalidateTransactionName,\n\tvalidateTransactionTimeout,\n} from \"@/common/database/shared\";\nimport { sha256Hex } from \"@/utils/crypto\";\n\nexport type { SQLiteTable } from \"drizzle-orm/sqlite-core\";\nexport {\n\talias,\n\tcheck,\n\tforeignKey,\n\tindex,\n\tinteger,\n\tprimaryKey,\n\tsqliteTable,\n\tsqliteTableCreator,\n\ttext,\n\tunique,\n\tuniqueIndex,\n} from \"drizzle-orm/sqlite-core\";\n\ntype DrizzleSchema = Record<string, unknown>;\ntype DrizzleDatabase<TSchema extends DrizzleSchema> = Omit<\n\tSqliteRemoteDatabase<TSchema>,\n\t\"transaction\"\n> &\n\tOmit<RawAccess, \"transaction\"> & {\n\t\ttransaction: <T>(\n\t\t\tcallback: (tx: DrizzleDatabase<TSchema>) => Promise<T> | T,\n\t\t\toptions?: SqliteTransactionOptions,\n\t\t) => Promise<T>;\n\t};\n\ninterface DrizzleMigrationJournalEntry {\n\tidx: number;\n\ttag: string;\n\twhen: number;\n\tbreakpoints?: boolean;\n}\n\ninterface DrizzleMigrations {\n\tjournal: unknown;\n\tmigrations: Record<string, string>;\n}\n\nexport interface DrizzleDatabaseFactoryConfig<TSchema extends DrizzleSchema> {\n\tschema?: TSchema;\n\tmigrations?: DrizzleMigrations;\n\tonMigrate?: (db: DrizzleDatabase<TSchema>) => Promise<void> | void;\n\twarnOnManualTransactions?: boolean;\n\tprofiling?: SqliteProfilingOptions;\n}\n\ninterface DrizzleKitConfig {\n\tout?: string;\n\tschema?: string;\n\tdialect?: \"sqlite\";\n\t[key: string]: unknown;\n}\n\nexport function defineConfig<TConfig extends DrizzleKitConfig>(\n\tconfig: TConfig,\n): TConfig & { dialect: \"sqlite\" } {\n\treturn {\n\t\tdialect: \"sqlite\",\n\t\t...config,\n\t};\n}\n\nexport function db<TSchema extends DrizzleSchema = Record<string, never>>({\n\tschema,\n\tmigrations,\n\tonMigrate,\n\twarnOnManualTransactions = true,\n\tprofiling,\n}: DrizzleDatabaseFactoryConfig<TSchema> = {}): DatabaseProvider<\n\tDrizzleDatabase<TSchema>\n> {\n\treturn {\n\t\tsqliteProfiling: profiling,\n\t\tcreateClient: async (ctx) => {\n\t\t\tconst override = ctx.overrideDrizzleDatabaseClient\n\t\t\t\t? await ctx.overrideDrizzleDatabaseClient()\n\t\t\t\t: undefined;\n\t\t\tif (override) {\n\t\t\t\treturn override as DrizzleDatabase<TSchema>;\n\t\t\t}\n\n\t\t\tconst nativeDatabaseProvider = ctx.nativeDatabaseProvider;\n\t\t\tif (!nativeDatabaseProvider) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"native SQLite is required, but the current runtime did not provide a native database provider\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst nativeDb = await nativeDatabaseProvider.open(ctx.actorId);\n\t\t\tlet closed = false;\n\t\t\tlet manualTransactionWarned = false;\n\t\t\tconst ensureOpen = () => {\n\t\t\t\tif (closed) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\"Database is closed. This usually means a background timer (setInterval, setTimeout) or a stray promise is still running after the actor stopped. Use c.abortSignal to clean up timers before the actor shuts down.\",\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tconst createDrizzleClient = (\n\t\t\t\ttarget: SqliteDatabase | SqliteTransactionDatabase,\n\t\t\t\ttransactionScoped = false,\n\t\t\t): DrizzleDatabase<TSchema> => {\n\t\t\t\tconst runSql = async (\n\t\t\t\t\tquery: string,\n\t\t\t\t\tparams: unknown[],\n\t\t\t\t\tmethod: \"run\" | \"all\" | \"values\" | \"get\",\n\t\t\t\t) => {\n\t\t\t\t\tensureOpen();\n\t\t\t\t\twarnForManualTransaction(query, transactionScoped);\n\n\t\t\t\t\tconst start = performance.now();\n\t\t\t\t\tconst kvReadsBefore = ctx.metrics?.totalKvReads ?? 0;\n\t\t\t\t\tconst kvWritesBefore = ctx.metrics?.totalKvWrites ?? 0;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst { rows } = await target.execute(\n\t\t\t\t\t\t\tquery,\n\t\t\t\t\t\t\ttoSqliteBindings(params),\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (method === \"run\") {\n\t\t\t\t\t\t\treturn { rows: [] };\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (method === \"get\") {\n\t\t\t\t\t\t\treturn { rows: rows[0] };\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn { rows };\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tconst durationMs = performance.now() - start;\n\t\t\t\t\t\tctx.metrics?.trackSql(query, durationMs);\n\t\t\t\t\t\tif (ctx.metrics) {\n\t\t\t\t\t\t\tctx.log?.debug({\n\t\t\t\t\t\t\t\tmsg: \"sql query\",\n\t\t\t\t\t\t\t\tquery: query.slice(0, 120),\n\t\t\t\t\t\t\t\tdurationMs,\n\t\t\t\t\t\t\t\tkvReads:\n\t\t\t\t\t\t\t\t\tctx.metrics.totalKvReads - kvReadsBefore,\n\t\t\t\t\t\t\t\tkvWrites:\n\t\t\t\t\t\t\t\t\tctx.metrics.totalKvWrites - kvWritesBefore,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tconst callback: RemoteCallback = async (\n\t\t\t\t\tquery,\n\t\t\t\t\tparams,\n\t\t\t\t\tmethod,\n\t\t\t\t) => {\n\t\t\t\t\treturn await runSql(query, params, method);\n\t\t\t\t};\n\n\t\t\t\tconst drizzleDb = drizzle(callback, {\n\t\t\t\t\tschema,\n\t\t\t\t}) as unknown as DrizzleDatabase<TSchema>;\n\t\t\t\tdrizzleDb.execute = async <\n\t\t\t\t\tTRow extends Record<string, unknown> = Record<\n\t\t\t\t\t\tstring,\n\t\t\t\t\t\tunknown\n\t\t\t\t\t>,\n\t\t\t\t>(\n\t\t\t\t\tquery: string,\n\t\t\t\t\t...args: unknown[]\n\t\t\t\t): Promise<TRow[]> => {\n\t\t\t\t\treturn await executeRaw<TRow>(\n\t\t\t\t\t\ttarget,\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\tensureOpen,\n\t\t\t\t\t\tquery,\n\t\t\t\t\t\targs,\n\t\t\t\t\t\t() =>\n\t\t\t\t\t\t\twarnForManualTransaction(query, transactionScoped),\n\t\t\t\t\t);\n\t\t\t\t};\n\t\t\t\tdrizzleDb.transaction = async <T>(\n\t\t\t\t\ttransactionCallback: (\n\t\t\t\t\t\ttx: DrizzleDatabase<TSchema>,\n\t\t\t\t\t) => Promise<T> | T,\n\t\t\t\t\toptions?: SqliteTransactionOptions,\n\t\t\t\t): Promise<T> => {\n\t\t\t\t\tvalidateTransactionTimeout(options?.timeout);\n\t\t\t\t\tvalidateTransactionName(options?.name);\n\t\t\t\t\tconst transaction = await nativeDb.beginTransaction(\n\t\t\t\t\t\toptions?.timeout,\n\t\t\t\t\t\toptions?.name,\n\t\t\t\t\t);\n\t\t\t\t\tconst tx = createDrizzleClient(transaction, true);\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst result = await transactionCallback(tx);\n\t\t\t\t\t\tawait transaction.commit();\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tawait transaction.rollback();\n\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\t// Preserve the callback or commit error after expiry cleanup.\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow error;\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tdrizzleDb.close = async () => {\n\t\t\t\t\tif (!closed) {\n\t\t\t\t\t\tclosed = true;\n\t\t\t\t\t\tawait nativeDb.close();\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\treturn drizzleDb;\n\t\t\t};\n\n\t\t\tconst warnForManualTransaction = (\n\t\t\t\tquery: string,\n\t\t\t\ttransactionScoped: boolean,\n\t\t\t) => {\n\t\t\t\tif (\n\t\t\t\t\ttransactionScoped ||\n\t\t\t\t\t!warnOnManualTransactions ||\n\t\t\t\t\tmanualTransactionWarned ||\n\t\t\t\t\thasMultipleStatements(query) ||\n\t\t\t\t\t!isManualTransactionControl(query)\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tmanualTransactionWarned = true;\n\t\t\t\tgetLogger(\"database\").warn(\n\t\t\t\t\t{ actorId: ctx.actorId },\n\t\t\t\t\t\"Manual cross-call SQLite transactions can interleave with other actor work. Use db.transaction() for coordinated transactions. Set warnOnManualTransactions: false in your db(...) configuration to disable this warning.\",\n\t\t\t\t);\n\t\t\t};\n\n\t\t\treturn createDrizzleClient(nativeDb);\n\t\t},\n\t\tonMigrate: async (client) => {\n\t\t\tif (!migrations && !onMigrate) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tawait withMigrationSavepoint(client, async (leased) => {\n\t\t\t\tif (migrations) {\n\t\t\t\t\tawait runMigrations(leased, migrations);\n\t\t\t\t}\n\t\t\t\tif (onMigrate) {\n\t\t\t\t\tawait onMigrate(leased);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\t};\n}\n\nasync function withMigrationSavepoint<TSchema extends DrizzleSchema, T>(\n\tclient: DrizzleDatabase<TSchema>,\n\tcallback: (leased: DrizzleDatabase<TSchema>) => Promise<T> | T,\n): Promise<T> {\n\treturn await client.transaction(\n\t\tasync (leased) => {\n\t\t\tawait leased.execute(\"SAVEPOINT __rivet_on_migrate\");\n\t\t\ttry {\n\t\t\t\tconst result = await callback(leased);\n\t\t\t\tawait leased.execute(\"RELEASE SAVEPOINT __rivet_on_migrate\");\n\t\t\t\treturn result;\n\t\t\t} catch (error) {\n\t\t\t\ttry {\n\t\t\t\t\tawait leased.execute(\n\t\t\t\t\t\t\"ROLLBACK TO SAVEPOINT __rivet_on_migrate\",\n\t\t\t\t\t);\n\t\t\t\t} finally {\n\t\t\t\t\tawait leased.execute(\n\t\t\t\t\t\t\"RELEASE SAVEPOINT __rivet_on_migrate\",\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tname: \"rivetkit-drizzle-migration\",\n\t\t\ttimeout: MIGRATION_TRANSACTION_TIMEOUT_MS,\n\t\t},\n\t);\n}\n\nasync function runMigrations<TSchema extends DrizzleSchema>(\n\tdb: DrizzleDatabase<TSchema>,\n\tmigrations: DrizzleMigrations,\n) {\n\tconst journal = parseMigrationJournal(migrations.journal);\n\n\tawait db.execute(`\n\t\tCREATE TABLE IF NOT EXISTS __drizzle_migrations (\n\t\t\tid INTEGER PRIMARY KEY AUTOINCREMENT,\n\t\t\thash TEXT NOT NULL,\n\t\t\tcreated_at NUMERIC\n\t\t)\n\t`);\n\n\tconst rows = await db.execute<{ created_at: number }>(\n\t\t\"SELECT created_at FROM __drizzle_migrations ORDER BY created_at DESC LIMIT 1\",\n\t);\n\tconst lastMigration = rows[0]?.created_at ?? 0;\n\n\tfor (const entry of journal.entries) {\n\t\tif (lastMigration >= entry.when) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst key = `m${entry.idx.toString().padStart(4, \"0\")}`;\n\t\tconst migration = migrations.migrations[key];\n\t\tif (migration === undefined) {\n\t\t\tthrow new Error(\n\t\t\t\t`missing Drizzle migration \"${key}\" for journal entry \"${entry.tag}\"`,\n\t\t\t);\n\t\t}\n\n\t\tconst statements = migration\n\t\t\t.split(\"--> statement-breakpoint\")\n\t\t\t.map((statement) => statement.trim())\n\t\t\t.filter(Boolean);\n\t\tfor (const statement of statements) {\n\t\t\tawait db.execute(statement);\n\t\t}\n\n\t\tawait db.execute(\n\t\t\t\"INSERT INTO __drizzle_migrations (hash, created_at) VALUES (?, ?)\",\n\t\t\tawait sha256Hex(migration),\n\t\t\tentry.when,\n\t\t);\n\t}\n}\n\nfunction parseMigrationJournal(journal: unknown): {\n\tentries: DrizzleMigrationJournalEntry[];\n} {\n\tif (\n\t\t!journal ||\n\t\ttypeof journal !== \"object\" ||\n\t\t!(\"entries\" in journal) ||\n\t\t!Array.isArray(journal.entries)\n\t) {\n\t\tthrow new Error(\"invalid Drizzle migration journal\");\n\t}\n\n\treturn journal as { entries: DrizzleMigrationJournalEntry[] };\n}\n\nfunction hasMultipleStatements(query: string): boolean {\n\tconst trimmed = query.trim().replace(/;+$/, \"\").trimEnd();\n\treturn trimmed.includes(\";\");\n}\n\nfunction rowToObject<TRow extends Record<string, unknown>>(\n\trow: unknown[],\n\tcolumns: string[],\n): TRow {\n\tconst rowObj: Record<string, unknown> = {};\n\tfor (let i = 0; i < columns.length; i++) {\n\t\trowObj[columns[i]] = row[i];\n\t}\n\treturn rowObj as TRow;\n}\n\nasync function executeRaw<TRow extends Record<string, unknown>>(\n\tdb: SqliteDatabase | SqliteTransactionDatabase,\n\tctx: DatabaseProviderContext,\n\tensureOpen: () => void,\n\tquery: string,\n\targs: unknown[],\n\twarnForManualTransaction: () => void,\n): Promise<TRow[]> {\n\tensureOpen();\n\twarnForManualTransaction();\n\n\tconst start = performance.now();\n\tconst kvReadsBefore = ctx.metrics?.totalKvReads ?? 0;\n\tconst kvWritesBefore = ctx.metrics?.totalKvWrites ?? 0;\n\ttry {\n\t\tif (args.length > 0) {\n\t\t\tconst { rows, columns } = await db.execute(\n\t\t\t\tquery,\n\t\t\t\ttoSqliteBindings(args),\n\t\t\t);\n\t\t\treturn rows.map((row) => rowToObject<TRow>(row, columns));\n\t\t}\n\n\t\tif (!hasMultipleStatements(query)) {\n\t\t\tconst { rows, columns } = await db.execute(query, undefined);\n\t\t\treturn rows.map((row) => rowToObject<TRow>(row, columns));\n\t\t}\n\n\t\tconst results: Record<string, unknown>[] = [];\n\t\tlet columnNames: string[] | null = null;\n\t\tawait db.exec(query, (row, columns) => {\n\t\t\tif (!columnNames) {\n\t\t\t\tcolumnNames = columns;\n\t\t\t}\n\t\t\tresults.push(rowToObject(row, columnNames));\n\t\t});\n\t\treturn results as TRow[];\n\t} finally {\n\t\tconst durationMs = performance.now() - start;\n\t\tctx.metrics?.trackSql(query, durationMs);\n\t\tif (ctx.metrics) {\n\t\t\tctx.log?.debug({\n\t\t\t\tmsg: \"sql query\",\n\t\t\t\tquery: query.slice(0, 120),\n\t\t\t\tdurationMs,\n\t\t\t\tkvReads: ctx.metrics.totalKvReads - kvReadsBefore,\n\t\t\t\tkvWrites: ctx.metrics.totalKvWrites - kvWritesBefore,\n\t\t\t});\n\t\t}\n\t}\n}\n","/**\n * Timing-safe comparison of two Uint8Arrays or strings.\n * This prevents timing attacks by always comparing all bytes.\n */\nexport function timingSafeEqual(\n\ta: Uint8Array | string,\n\tb: Uint8Array | string,\n): boolean {\n\tconst encoder = new TextEncoder();\n\tconst bufferA = typeof a === \"string\" ? encoder.encode(a) : a;\n\tconst bufferB = typeof b === \"string\" ? encoder.encode(b) : b;\n\n\t// Pad to max length to avoid leaking length information\n\tconst maxLength = Math.max(bufferA.byteLength, bufferB.byteLength);\n\tlet result = bufferA.byteLength ^ bufferB.byteLength;\n\n\tfor (let i = 0; i < maxLength; i++) {\n\t\tconst byteA = i < bufferA.byteLength ? bufferA[i] : 0;\n\t\tconst byteB = i < bufferB.byteLength ? bufferB[i] : 0;\n\t\tresult |= byteA ^ byteB;\n\t}\n\n\treturn result === 0;\n}\n\nexport async function sha256Hex(value: string): Promise<string> {\n\tif (!globalThis.crypto?.subtle) {\n\t\tthrow new Error(\"Web Crypto API is required to compute SHA-256 hashes\");\n\t}\n\n\tconst digest = await globalThis.crypto.subtle.digest(\n\t\t\"SHA-256\",\n\t\tnew TextEncoder().encode(value),\n\t);\n\treturn Array.from(new Uint8Array(digest), (byte) =>\n\t\tbyte.toString(16).padStart(2, \"0\"),\n\t).join(\"\");\n}\n"]}
|
package/dist/tsup/db/drizzle.js
CHANGED
package/dist/tsup/db/mod.cjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkGHKQC4PDcjs = require('../chunk-GHKQC4PD.cjs');
|
|
4
4
|
require('../chunk-KVFIONKQ.cjs');
|
|
5
|
-
require('../chunk-
|
|
5
|
+
require('../chunk-KWGN2ZBJ.cjs');
|
|
6
6
|
require('../chunk-JX2ITWAV.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
exports.db =
|
|
9
|
+
exports.db = _chunkGHKQC4PDcjs.db;
|
|
10
10
|
//# sourceMappingURL=mod.cjs.map
|
package/dist/tsup/db/mod.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/db/mod.cjs"],"names":[],"mappings":"AAAA;AACE;AACF,yDAA8B;AAC9B,iCAA8B;AAC9B,iCAA8B;AAC9B,iCAA8B;AAC9B;AACE;AACF,kCAAC","file":"/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/db/mod.cjs"}
|
package/dist/tsup/db/mod.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/dynamic/mod.cjs","../../../src/dynamic/internal.ts","../../../src/dynamic/mod.ts"],"names":[],"mappings":"AAAA;AACE;AACF,yDAA8B;AAC9B;AACA;ACCO,IAAM,gCAAA,kBAAkC,MAAA,CAAO,GAAA;AAAA,EACrD;AACD,CAAA;ADCA;AACA;AEGO,SAAS,YAAA,CACf,KAAA,EACyB;AACzB,EAAA,MAAM,OAAA,EAAS,mCAAA,CAAkB,KAAA,CAAM;AAAA,IACtC,OAAA,EAAS,CAAC;AAAA,EACX,CAAC,CAAA;AAED,EAAA,OAAO;AAAA,IACN,CAAC,+BAA+B,CAAA,EAAG,IAAA;AAAA,IACnC,MAAA;AAAA,IACA,MAAA,EAAQ,KAAA,CAAM;AAAA,EACf,CAAA;AACD;AFJA;AACE;AACF,oCAAC","file":"/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/dynamic/mod.cjs","sourcesContent":[null,"import type {\n\tAnyActorDefinition,\n\tBaseActorDefinition,\n} from \"@/actor/definition\";\n\nexport const DYNAMIC_ACTOR_DEFINITION_SYMBOL = Symbol.for(\n\t\"rivetkit.dynamic_actor_definition\",\n);\n\nexport interface DynamicActorSource {\n\tsource: string;\n\tnodeProcess?: {\n\t\tmemoryLimit?: number;\n\t\tcpuTimeLimitMs?: number;\n\t};\n}\n\nexport interface DynamicActorLoadContext {\n\tkey: string[];\n\tclient(): Promise<any>;\n}\n\nexport type DynamicActorLoader = (\n\tc: DynamicActorLoadContext,\n) => DynamicActorSource | Promise<DynamicActorSource>;\n\nexport interface DynamicActorDefinition extends AnyActorDefinition {\n\treadonly [DYNAMIC_ACTOR_DEFINITION_SYMBOL]: true;\n\treadonly loader: DynamicActorLoader;\n}\n\nexport function isDynamicActorDefinition(\n\tdefinition: BaseActorDefinition<\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany,\n\t\tany\n\t>,\n): definition is DynamicActorDefinition {\n\treturn (\n\t\t(definition as Partial<DynamicActorDefinition>)[\n\t\t\tDYNAMIC_ACTOR_DEFINITION_SYMBOL\n\t\t] === true\n\t);\n}\n","import { ActorConfigSchema } from \"@/actor/config\";\nimport type { AnyActorDefinition } from \"@/actor/definition\";\nimport {\n\tDYNAMIC_ACTOR_DEFINITION_SYMBOL,\n\ttype DynamicActorDefinition,\n\ttype DynamicActorLoader,\n} from \"./internal\";\n\nexport interface DynamicActorConfig {\n\tload: DynamicActorLoader;\n}\n\nexport function dynamicActor(\n\tinput: DynamicActorConfig,\n): DynamicActorDefinition {\n\tconst config = ActorConfigSchema.parse({\n\t\tactions: {},\n\t}) as unknown as AnyActorDefinition[\"config\"];\n\n\treturn {\n\t\t[DYNAMIC_ACTOR_DEFINITION_SYMBOL]: true,\n\t\tconfig,\n\t\tloader: input.load,\n\t};\n}\n\nexport type {\n\tDynamicActorDefinition,\n\tDynamicActorLoadContext,\n\tDynamicActorLoader,\n\tDynamicActorSource,\n} from \"./internal\";\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as AnyActorDefinition } from '../config-
|
|
1
|
+
import { A as AnyActorDefinition } from '../config-Do_0guSS.cjs';
|
|
2
2
|
import 'zod/v4';
|
|
3
3
|
import '../config-ey2I2zz5.cjs';
|
|
4
4
|
import '@rivetkit/rivetkit-wasm';
|
|
@@ -7,6 +7,7 @@ import 'pino';
|
|
|
7
7
|
import '@rivetkit/virtual-websocket';
|
|
8
8
|
import '../inspector/workflow.cjs';
|
|
9
9
|
import '@standard-schema/spec';
|
|
10
|
+
import '@rivetkit/engine-api-full';
|
|
10
11
|
import '../utils-CNFeS-Dk.cjs';
|
|
11
12
|
import 'hono';
|
|
12
13
|
import '../utils-DsoDinPz.cjs';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as AnyActorDefinition } from '../config-
|
|
1
|
+
import { A as AnyActorDefinition } from '../config-Bc1nnvUl.js';
|
|
2
2
|
import 'zod/v4';
|
|
3
3
|
import '../config-ey2I2zz5.js';
|
|
4
4
|
import '@rivetkit/rivetkit-wasm';
|
|
@@ -7,6 +7,7 @@ import 'pino';
|
|
|
7
7
|
import '@rivetkit/virtual-websocket';
|
|
8
8
|
import '../inspector/workflow.js';
|
|
9
9
|
import '@standard-schema/spec';
|
|
10
|
+
import '@rivetkit/engine-api-full';
|
|
10
11
|
import '../utils-OQHBjfcM.js';
|
|
11
12
|
import 'hono';
|
|
12
13
|
import '../utils-DsoDinPz.js';
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
require('../chunk-
|
|
3
|
+
var _chunkAPOANSDGcjs = require('../chunk-APOANSDG.cjs');
|
|
4
|
+
require('../chunk-ARGNQGYG.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var
|
|
9
|
-
require('../chunk-
|
|
8
|
+
var _chunk6LRPYB4Qcjs = require('../chunk-6LRPYB4Q.cjs');
|
|
9
|
+
require('../chunk-KWGN2ZBJ.cjs');
|
|
10
10
|
require('../chunk-JX2ITWAV.cjs');
|
|
11
11
|
|
|
12
12
|
// src/common/bare/generated/inspector/v5.ts
|
|
@@ -796,5 +796,5 @@ function decodeToClient(bytes) {
|
|
|
796
796
|
|
|
797
797
|
|
|
798
798
|
|
|
799
|
-
exports.createWorkflowInspectorAdapter =
|
|
799
|
+
exports.createWorkflowInspectorAdapter = _chunkAPOANSDGcjs.createWorkflowInspectorAdapter; exports.decodeToClient = decodeToClient; exports.decodeToServer = decodeToServer; exports.decodeWorkflowHistoryTransport = _chunk6LRPYB4Qcjs.decodeWorkflowHistoryTransport; exports.encodeToClient = encodeToClient; exports.encodeToServer = encodeToServer; exports.encodeWorkflowHistoryTransport = _chunk6LRPYB4Qcjs.encodeWorkflowHistoryTransport; exports.readActionRequest = readActionRequest; exports.readActionResponse = readActionResponse; exports.readConnection = readConnection; exports.readConnectionsRequest = readConnectionsRequest; exports.readConnectionsResponse = readConnectionsResponse; exports.readConnectionsUpdated = readConnectionsUpdated; exports.readDatabaseSchemaRequest = readDatabaseSchemaRequest; exports.readDatabaseSchemaResponse = readDatabaseSchemaResponse; exports.readDatabaseTableRowsRequest = readDatabaseTableRowsRequest; exports.readDatabaseTableRowsResponse = readDatabaseTableRowsResponse; exports.readError = readError; exports.readInit = readInit; exports.readPatchStateRequest = readPatchStateRequest; exports.readQueueMessageSummary = readQueueMessageSummary; exports.readQueueRequest = readQueueRequest; exports.readQueueResponse = readQueueResponse; exports.readQueueStatus = readQueueStatus; exports.readQueueUpdated = readQueueUpdated; exports.readRpcsListRequest = readRpcsListRequest; exports.readRpcsListResponse = readRpcsListResponse; exports.readState = readState; exports.readStateRequest = readStateRequest; exports.readStateResponse = readStateResponse; exports.readStateUpdated = readStateUpdated; exports.readTabConfigEntry = readTabConfigEntry; exports.readToClient = readToClient; exports.readToClientBody = readToClientBody; exports.readToServer = readToServer; exports.readToServerBody = readToServerBody; exports.readTraceQueryRequest = readTraceQueryRequest; exports.readTraceQueryResponse = readTraceQueryResponse; exports.readWorkflowHistory = readWorkflowHistory; exports.readWorkflowHistoryRequest = readWorkflowHistoryRequest; exports.readWorkflowHistoryResponse = readWorkflowHistoryResponse; exports.readWorkflowHistoryUpdated = readWorkflowHistoryUpdated; exports.readWorkflowReplayRequest = readWorkflowReplayRequest; exports.readWorkflowReplayResponse = readWorkflowReplayResponse; exports.writeActionRequest = writeActionRequest; exports.writeActionResponse = writeActionResponse; exports.writeConnection = writeConnection; exports.writeConnectionsRequest = writeConnectionsRequest; exports.writeConnectionsResponse = writeConnectionsResponse; exports.writeConnectionsUpdated = writeConnectionsUpdated; exports.writeDatabaseSchemaRequest = writeDatabaseSchemaRequest; exports.writeDatabaseSchemaResponse = writeDatabaseSchemaResponse; exports.writeDatabaseTableRowsRequest = writeDatabaseTableRowsRequest; exports.writeDatabaseTableRowsResponse = writeDatabaseTableRowsResponse; exports.writeError = writeError; exports.writeInit = writeInit; exports.writePatchStateRequest = writePatchStateRequest; exports.writeQueueMessageSummary = writeQueueMessageSummary; exports.writeQueueRequest = writeQueueRequest; exports.writeQueueResponse = writeQueueResponse; exports.writeQueueStatus = writeQueueStatus; exports.writeQueueUpdated = writeQueueUpdated; exports.writeRpcsListRequest = writeRpcsListRequest; exports.writeRpcsListResponse = writeRpcsListResponse; exports.writeState = writeState; exports.writeStateRequest = writeStateRequest; exports.writeStateResponse = writeStateResponse; exports.writeStateUpdated = writeStateUpdated; exports.writeTabConfigEntry = writeTabConfigEntry; exports.writeToClient = writeToClient; exports.writeToClientBody = writeToClientBody; exports.writeToServer = writeToServer; exports.writeToServerBody = writeToServerBody; exports.writeTraceQueryRequest = writeTraceQueryRequest; exports.writeTraceQueryResponse = writeTraceQueryResponse; exports.writeWorkflowHistory = writeWorkflowHistory; exports.writeWorkflowHistoryRequest = writeWorkflowHistoryRequest; exports.writeWorkflowHistoryResponse = writeWorkflowHistoryResponse; exports.writeWorkflowHistoryUpdated = writeWorkflowHistoryUpdated; exports.writeWorkflowReplayRequest = writeWorkflowReplayRequest; exports.writeWorkflowReplayResponse = writeWorkflowReplayResponse;
|
|
800
800
|
//# sourceMappingURL=mod.cjs.map
|