rivetkit 3.0.0-preview.3 → 3.0.0-preview.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.
Files changed (67) hide show
  1. package/dist/browser/client.js +25 -10
  2. package/dist/browser/client.js.map +1 -1
  3. package/dist/browser/inspector/client.js +1 -1
  4. package/dist/browser/inspector/client.js.map +1 -1
  5. package/dist/tsup/{chunk-BCX5V7NI.cjs → chunk-5IZ36V3N.cjs} +167 -152
  6. package/dist/tsup/chunk-5IZ36V3N.cjs.map +1 -0
  7. package/dist/tsup/{chunk-2VXPVVNW.js → chunk-C45DIKGB.js} +27 -12
  8. package/dist/tsup/chunk-C45DIKGB.js.map +1 -0
  9. package/dist/tsup/{chunk-JWI6YJEA.js → chunk-DCUTYXIX.js} +2 -2
  10. package/dist/tsup/{chunk-A447S5YG.js → chunk-IPDSE33U.js} +2 -2
  11. package/dist/tsup/{chunk-AGQNNAZ2.js → chunk-KM34T23X.js} +3 -3
  12. package/dist/tsup/{chunk-PJ4PORWE.cjs → chunk-KSQ3VVZX.cjs} +3 -3
  13. package/dist/tsup/{chunk-PJ4PORWE.cjs.map → chunk-KSQ3VVZX.cjs.map} +1 -1
  14. package/dist/tsup/{chunk-KMYBA4P5.cjs → chunk-LTMP7OMQ.cjs} +3 -3
  15. package/dist/tsup/{chunk-KMYBA4P5.cjs.map → chunk-LTMP7OMQ.cjs.map} +1 -1
  16. package/dist/tsup/{chunk-JXO5QVDX.js → chunk-MAUVZIXL.js} +2 -2
  17. package/dist/tsup/{chunk-JXO5QVDX.js.map → chunk-MAUVZIXL.js.map} +1 -1
  18. package/dist/tsup/{chunk-KCWRKXTY.js → chunk-OR3LWJGW.js} +2 -2
  19. package/dist/tsup/{chunk-7KES6QNE.cjs → chunk-S5QNPQ6K.cjs} +3 -3
  20. package/dist/tsup/{chunk-7KES6QNE.cjs.map → chunk-S5QNPQ6K.cjs.map} +1 -1
  21. package/dist/tsup/{chunk-B6U5V6WE.cjs → chunk-SLIGV2T4.cjs} +4 -4
  22. package/dist/tsup/{chunk-B6U5V6WE.cjs.map → chunk-SLIGV2T4.cjs.map} +1 -1
  23. package/dist/tsup/{chunk-4WDX5ZI7.cjs → chunk-SR362FVR.cjs} +2 -2
  24. package/dist/tsup/{chunk-4WDX5ZI7.cjs.map → chunk-SR362FVR.cjs.map} +1 -1
  25. package/dist/tsup/{chunk-7Y4GHUAT.cjs → chunk-U2QBZJTL.cjs} +10 -10
  26. package/dist/tsup/{chunk-7Y4GHUAT.cjs.map → chunk-U2QBZJTL.cjs.map} +1 -1
  27. package/dist/tsup/{chunk-HRBZ4VW5.cjs → chunk-WE5DMJFV.cjs} +7 -7
  28. package/dist/tsup/{chunk-HRBZ4VW5.cjs.map → chunk-WE5DMJFV.cjs.map} +1 -1
  29. package/dist/tsup/{chunk-IJGFSNGA.js → chunk-WQFXPN6S.js} +4 -4
  30. package/dist/tsup/{chunk-HDQQVBOG.js → chunk-ZWBTTPP3.js} +2 -2
  31. package/dist/tsup/client/mod.cjs +5 -5
  32. package/dist/tsup/client/mod.js +4 -4
  33. package/dist/tsup/common/log.cjs +2 -2
  34. package/dist/tsup/common/log.js +1 -1
  35. package/dist/tsup/common/websocket.cjs +3 -3
  36. package/dist/tsup/common/websocket.js +2 -2
  37. package/dist/tsup/db/drizzle.cjs +2 -2
  38. package/dist/tsup/db/drizzle.js +1 -1
  39. package/dist/tsup/db/mod.cjs +3 -3
  40. package/dist/tsup/db/mod.js +2 -2
  41. package/dist/tsup/inspector/mod.cjs +5 -5
  42. package/dist/tsup/inspector/mod.js +4 -4
  43. package/dist/tsup/inspector/workflow.cjs +4 -4
  44. package/dist/tsup/inspector/workflow.js +3 -3
  45. package/dist/tsup/mod.cjs +94 -90
  46. package/dist/tsup/mod.cjs.map +1 -1
  47. package/dist/tsup/mod.js +15 -11
  48. package/dist/tsup/mod.js.map +1 -1
  49. package/dist/tsup/test/mod.cjs +6 -6
  50. package/dist/tsup/test/mod.js +4 -4
  51. package/dist/tsup/utils.cjs +2 -2
  52. package/dist/tsup/utils.js +1 -1
  53. package/dist/tsup/workflow/mod.cjs +7 -7
  54. package/dist/tsup/workflow/mod.cjs.map +1 -1
  55. package/dist/tsup/workflow/mod.js +4 -4
  56. package/package.json +9 -9
  57. package/src/client/actor-conn.ts +38 -9
  58. package/src/registry/config/index.ts +2 -1
  59. package/src/registry/index.ts +16 -3
  60. package/dist/tsup/chunk-2VXPVVNW.js.map +0 -1
  61. package/dist/tsup/chunk-BCX5V7NI.cjs.map +0 -1
  62. /package/dist/tsup/{chunk-JWI6YJEA.js.map → chunk-DCUTYXIX.js.map} +0 -0
  63. /package/dist/tsup/{chunk-A447S5YG.js.map → chunk-IPDSE33U.js.map} +0 -0
  64. /package/dist/tsup/{chunk-AGQNNAZ2.js.map → chunk-KM34T23X.js.map} +0 -0
  65. /package/dist/tsup/{chunk-KCWRKXTY.js.map → chunk-OR3LWJGW.js.map} +0 -0
  66. /package/dist/tsup/{chunk-IJGFSNGA.js.map → chunk-WQFXPN6S.js.map} +0 -0
  67. /package/dist/tsup/{chunk-HDQQVBOG.js.map → chunk-ZWBTTPP3.js.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  bufferToArrayBuffer,
3
3
  encodeCborCompat
4
- } from "./chunk-JXO5QVDX.js";
4
+ } from "./chunk-MAUVZIXL.js";
5
5
 
6
6
  // src/inspector/workflow.ts
7
7
  function encodeWorkflowInspectorValue(value) {
@@ -11,4 +11,4 @@ function encodeWorkflowInspectorValue(value) {
11
11
  export {
12
12
  encodeWorkflowInspectorValue
13
13
  };
14
- //# sourceMappingURL=chunk-JWI6YJEA.js.map
14
+ //# sourceMappingURL=chunk-DCUTYXIX.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getLogger
3
- } from "./chunk-JXO5QVDX.js";
3
+ } from "./chunk-MAUVZIXL.js";
4
4
 
5
5
  // src/client/log.ts
6
6
  function logger() {
@@ -46,4 +46,4 @@ export {
46
46
  logger,
47
47
  importWebSocket
48
48
  };
49
- //# sourceMappingURL=chunk-A447S5YG.js.map
49
+ //# sourceMappingURL=chunk-IPDSE33U.js.map
@@ -2,10 +2,10 @@ import {
2
2
  ClientConfigSchema,
3
3
  RemoteEngineControlClient,
4
4
  createClientWithDriver
5
- } from "./chunk-2VXPVVNW.js";
5
+ } from "./chunk-C45DIKGB.js";
6
6
  import {
7
7
  getLogger
8
- } from "./chunk-JXO5QVDX.js";
8
+ } from "./chunk-MAUVZIXL.js";
9
9
 
10
10
  // src/devtools-loader/log.ts
11
11
  function logger() {
@@ -46,4 +46,4 @@ function createClient(endpointOrConfig) {
46
46
  export {
47
47
  createClient
48
48
  };
49
- //# sourceMappingURL=chunk-AGQNNAZ2.js.map
49
+ //# sourceMappingURL=chunk-KM34T23X.js.map
@@ -1,14 +1,14 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunk4WDX5ZI7cjs = require('./chunk-4WDX5ZI7.cjs');
4
+ var _chunkSR362FVRcjs = require('./chunk-SR362FVR.cjs');
5
5
 
6
6
  // src/inspector/workflow.ts
7
7
  function encodeWorkflowInspectorValue(value) {
8
- return _chunk4WDX5ZI7cjs.bufferToArrayBuffer.call(void 0, _chunk4WDX5ZI7cjs.encodeCborCompat.call(void 0, value));
8
+ return _chunkSR362FVRcjs.bufferToArrayBuffer.call(void 0, _chunkSR362FVRcjs.encodeCborCompat.call(void 0, value));
9
9
  }
10
10
 
11
11
 
12
12
 
13
13
  exports.encodeWorkflowInspectorValue = encodeWorkflowInspectorValue;
14
- //# sourceMappingURL=chunk-PJ4PORWE.cjs.map
14
+ //# sourceMappingURL=chunk-KSQ3VVZX.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-PJ4PORWE.cjs","../../src/inspector/workflow.ts"],"names":[],"mappings":"AAAA;AACE;AACA;AACF,wDAA6B;AAC7B;AACA;ACqDO,SAAS,4BAAA,CAA6B,KAAA,EAA6B;AACzE,EAAA,OAAO,mDAAA,gDAAoB,KAAyC,CAAC,CAAA;AACtE;ADnDA;AACA;AACE;AACF,oEAAC","file":"/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-PJ4PORWE.cjs","sourcesContent":[null,"import type { JsonCompatValue } from \"@/common/encoding\";\nimport type { WorkflowHistoryBytes } from \"@/common/inspector-transport\";\nimport { encodeCborCompat } from \"@/serde\";\nimport { bufferToArrayBuffer } from \"@/utils\";\n\nexport type {\n\tWorkflowBranchStatus,\n\tWorkflowCbor,\n\tWorkflowEntry,\n\tWorkflowEntryKind,\n\tWorkflowEntryMetadata,\n\tWorkflowHistory,\n\tWorkflowJoinEntry,\n\tWorkflowLocation,\n\tWorkflowLoopEntry,\n\tWorkflowLoopIterationMarker,\n\tWorkflowMessageEntry,\n\tWorkflowNameIndex,\n\tWorkflowPathSegment,\n\tWorkflowRaceEntry,\n\tWorkflowRemovedEntry,\n\tWorkflowRollbackCheckpointEntry,\n\tWorkflowSleepEntry,\n\tWorkflowStepEntry,\n\tWorkflowVersionCheckEntry,\n} from \"@/common/bare/transport/v1\";\nexport {\n\tWorkflowBranchStatusType,\n\tWorkflowEntryStatus,\n\tWorkflowSleepState,\n} from \"@/common/bare/transport/v1\";\nexport type { WorkflowHistoryBytes } from \"@/common/inspector-transport\";\nexport {\n\tdecodeWorkflowHistoryTransport,\n\tencodeWorkflowHistoryTransport,\n} from \"@/common/inspector-transport\";\n\n/** @experimental State exposed by a durable workflow run handler to the Inspector. */\nexport type WorkflowState =\n\t| \"pending\"\n\t| \"running\"\n\t| \"sleeping\"\n\t| \"failed\"\n\t| \"completed\"\n\t| \"cancelled\"\n\t| \"rolling_back\";\n\n/** @experimental The raw workflow Inspector adapter consumed by RivetKit's transport. */\nexport interface WorkflowInspectorAdapter {\n\tgetHistory: () => WorkflowHistoryBytes | null;\n\tgetState: () => Promise<WorkflowState | null>;\n\tonHistoryUpdated: (\n\t\tlistener: (history: WorkflowHistoryBytes) => void,\n\t) => () => void;\n\treplayFromStep: (entryId?: string) => Promise<WorkflowHistoryBytes | null>;\n}\n\n/** @experimental Encodes a workflow Inspector value with RivetKit's CBOR-compatible codec. */\nexport function encodeWorkflowInspectorValue(value: unknown): ArrayBuffer {\n\treturn bufferToArrayBuffer(encodeCborCompat(value as JsonCompatValue));\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-KSQ3VVZX.cjs","../../src/inspector/workflow.ts"],"names":[],"mappings":"AAAA;AACE;AACA;AACF,wDAA6B;AAC7B;AACA;ACqDO,SAAS,4BAAA,CAA6B,KAAA,EAA6B;AACzE,EAAA,OAAO,mDAAA,gDAAoB,KAAyC,CAAC,CAAA;AACtE;ADnDA;AACA;AACE;AACF,oEAAC","file":"/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-KSQ3VVZX.cjs","sourcesContent":[null,"import type { JsonCompatValue } from \"@/common/encoding\";\nimport type { WorkflowHistoryBytes } from \"@/common/inspector-transport\";\nimport { encodeCborCompat } from \"@/serde\";\nimport { bufferToArrayBuffer } from \"@/utils\";\n\nexport type {\n\tWorkflowBranchStatus,\n\tWorkflowCbor,\n\tWorkflowEntry,\n\tWorkflowEntryKind,\n\tWorkflowEntryMetadata,\n\tWorkflowHistory,\n\tWorkflowJoinEntry,\n\tWorkflowLocation,\n\tWorkflowLoopEntry,\n\tWorkflowLoopIterationMarker,\n\tWorkflowMessageEntry,\n\tWorkflowNameIndex,\n\tWorkflowPathSegment,\n\tWorkflowRaceEntry,\n\tWorkflowRemovedEntry,\n\tWorkflowRollbackCheckpointEntry,\n\tWorkflowSleepEntry,\n\tWorkflowStepEntry,\n\tWorkflowVersionCheckEntry,\n} from \"@/common/bare/transport/v1\";\nexport {\n\tWorkflowBranchStatusType,\n\tWorkflowEntryStatus,\n\tWorkflowSleepState,\n} from \"@/common/bare/transport/v1\";\nexport type { WorkflowHistoryBytes } from \"@/common/inspector-transport\";\nexport {\n\tdecodeWorkflowHistoryTransport,\n\tencodeWorkflowHistoryTransport,\n} from \"@/common/inspector-transport\";\n\n/** @experimental State exposed by a durable workflow run handler to the Inspector. */\nexport type WorkflowState =\n\t| \"pending\"\n\t| \"running\"\n\t| \"sleeping\"\n\t| \"failed\"\n\t| \"completed\"\n\t| \"cancelled\"\n\t| \"rolling_back\";\n\n/** @experimental The raw workflow Inspector adapter consumed by RivetKit's transport. */\nexport interface WorkflowInspectorAdapter {\n\tgetHistory: () => WorkflowHistoryBytes | null;\n\tgetState: () => Promise<WorkflowState | null>;\n\tonHistoryUpdated: (\n\t\tlistener: (history: WorkflowHistoryBytes) => void,\n\t) => () => void;\n\treplayFromStep: (entryId?: string) => Promise<WorkflowHistoryBytes | null>;\n}\n\n/** @experimental Encodes a workflow Inspector value with RivetKit's CBOR-compatible codec. */\nexport function encodeWorkflowInspectorValue(value: unknown): ArrayBuffer {\n\treturn bufferToArrayBuffer(encodeCborCompat(value as JsonCompatValue));\n}\n"]}
@@ -8,7 +8,7 @@
8
8
  var _chunkKVFIONKQcjs = require('./chunk-KVFIONKQ.cjs');
9
9
 
10
10
 
11
- var _chunk4WDX5ZI7cjs = require('./chunk-4WDX5ZI7.cjs');
11
+ var _chunkSR362FVRcjs = require('./chunk-SR362FVR.cjs');
12
12
 
13
13
  // src/common/database/mod.ts
14
14
  var nativeStateTransactionOpeners = /* @__PURE__ */ new WeakMap();
@@ -59,7 +59,7 @@ function db({
59
59
  ensureOpen();
60
60
  if (!transactionScoped && warnOnManualTransactions && !manualTransactionWarned && !hasMultipleStatements(query) && _chunkKVFIONKQcjs.isManualTransactionControl.call(void 0, query)) {
61
61
  manualTransactionWarned = true;
62
- _chunk4WDX5ZI7cjs.getLogger.call(void 0, "database").warn(
62
+ _chunkSR362FVRcjs.getLogger.call(void 0, "database").warn(
63
63
  { actorId: ctx.actorId },
64
64
  "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."
65
65
  );
@@ -240,4 +240,4 @@ async function withMigrationSavepoint(client, callback) {
240
240
 
241
241
 
242
242
  exports.registerNativeStateTransactionOpener = registerNativeStateTransactionOpener; exports.bindNativeStateTransactionContext = bindNativeStateTransactionContext; exports.db = db;
243
- //# sourceMappingURL=chunk-KMYBA4P5.cjs.map
243
+ //# sourceMappingURL=chunk-LTMP7OMQ.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-KMYBA4P5.cjs","../../src/common/database/mod.ts"],"names":["db","client"],"mappings":"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","file":"/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-KMYBA4P5.cjs","sourcesContent":[null,"import { getLogger } from \"@/common/log\";\nimport type {\n\tDatabaseProvider,\n\tNativeDatabaseProvider,\n\tRawAccess,\n\tSqliteDatabase,\n\tSqliteProfilingOptions,\n\tSqliteTransactionDatabase,\n\tSqliteTransactionOptions,\n} from \"./config\";\nimport {\n\tisManualTransactionControl,\n\tisSqliteBindingObject,\n\tMIGRATION_TRANSACTION_TIMEOUT_MS,\n\ttoSqliteBindings,\n\tvalidateTransactionName,\n\tvalidateTransactionTimeout,\n} from \"./shared\";\n\nexport type { RawAccess } from \"./config\";\n\nexport interface DatabaseFactoryConfig {\n\tonMigrate?: (db: RawAccess) => Promise<void> | void;\n\twarnOnManualTransactions?: boolean;\n\t/**\n\t * SQLite profiling configuration.\n\t *\n\t * @experimental This entire configuration surface is experimental and\n\t * subject to change without notice.\n\t */\n\tprofiling?: SqliteProfilingOptions;\n}\nconst nativeStateTransactionOpeners = new WeakMap<\n\tNativeDatabaseProvider,\n\t(\n\t\ttimeoutMs?: number,\n\t\tcontext?: unknown,\n\t) => Promise<SqliteTransactionDatabase>\n>();\ntype NativeStateTransactionContext = {\n\tenter(): Promise<unknown>;\n\texit(scope: unknown): void;\n};\nconst nativeStateTransactionClientBinders = new WeakMap<\n\tobject,\n\t(context: NativeStateTransactionContext) => object\n>();\n\n/** @internal */\nexport function registerNativeStateTransactionOpener<\n\tT extends NativeDatabaseProvider,\n>(\n\tprovider: T,\n\topener: (\n\t\ttimeoutMs?: number,\n\t\tcontext?: unknown,\n\t) => Promise<SqliteTransactionDatabase>,\n): T {\n\tnativeStateTransactionOpeners.set(provider, opener);\n\treturn provider;\n}\n\n/** @internal */\nexport function bindNativeStateTransactionContext<T>(\n\tclient: T,\n\tcontext: NativeStateTransactionContext,\n): T {\n\tif (\n\t\t(typeof client !== \"object\" || client === null) &&\n\t\ttypeof client !== \"function\"\n\t) {\n\t\treturn client;\n\t}\n\tconst bind = nativeStateTransactionClientBinders.get(client as object);\n\treturn (bind?.(context) ?? client) as T;\n}\n\nfunction hasMultipleStatements(query: string): boolean {\n\tconst trimmed = query.trim().replace(/;+$/, \"\").trimEnd();\n\treturn trimmed.includes(\";\");\n}\n\nexport function db({\n\tonMigrate,\n\twarnOnManualTransactions = true,\n\tprofiling,\n}: DatabaseFactoryConfig = {}): DatabaseProvider<RawAccess> {\n\tconst provider: DatabaseProvider<RawAccess> = {\n\t\tsqliteProfiling: profiling,\n\t\tcreateClient: async (ctx) => {\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 db = 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 createClient = (\n\t\t\t\ttarget: SqliteDatabase | SqliteTransactionDatabase,\n\t\t\t\ttransactionScoped = false,\n\t\t\t\tstateTransactionContext?: NativeStateTransactionContext,\n\t\t\t): RawAccess => {\n\t\t\t\tconst client: RawAccess = {\n\t\t\t\t\texecute: async <\n\t\t\t\t\t\tTRow extends Record<string, unknown> = Record<\n\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\tunknown\n\t\t\t\t\t\t>,\n\t\t\t\t\t>(\n\t\t\t\t\t\tquery: string,\n\t\t\t\t\t\t...args: unknown[]\n\t\t\t\t\t): Promise<TRow[]> => {\n\t\t\t\t\t\tensureOpen();\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t!transactionScoped &&\n\t\t\t\t\t\t\twarnOnManualTransactions &&\n\t\t\t\t\t\t\t!manualTransactionWarned &&\n\t\t\t\t\t\t\t!hasMultipleStatements(query) &&\n\t\t\t\t\t\t\tisManualTransactionControl(query)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tmanualTransactionWarned = true;\n\t\t\t\t\t\t\tgetLogger(\"database\").warn(\n\t\t\t\t\t\t\t\t{ actorId: ctx.actorId },\n\t\t\t\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\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst kvReadsBefore = ctx.metrics?.totalKvReads ?? 0;\n\t\t\t\t\t\tconst kvWritesBefore = ctx.metrics?.totalKvWrites ?? 0;\n\t\t\t\t\t\tconst start = performance.now();\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tif (args.length > 0) {\n\t\t\t\t\t\t\t\tconst bindings =\n\t\t\t\t\t\t\t\t\targs.length === 1 &&\n\t\t\t\t\t\t\t\t\tisSqliteBindingObject(args[0])\n\t\t\t\t\t\t\t\t\t\t? toSqliteBindings(args[0])\n\t\t\t\t\t\t\t\t\t\t: toSqliteBindings(args);\n\t\t\t\t\t\t\t\tconst { rows, columns } = await target.execute(\n\t\t\t\t\t\t\t\t\tquery,\n\t\t\t\t\t\t\t\t\tbindings,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\treturn rows.map((row) =>\n\t\t\t\t\t\t\t\t\trowToObject<TRow>(row, columns),\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (!hasMultipleStatements(query)) {\n\t\t\t\t\t\t\t\tconst { rows, columns } = await target.execute(\n\t\t\t\t\t\t\t\t\tquery,\n\t\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\treturn rows.map((row) =>\n\t\t\t\t\t\t\t\t\trowToObject<TRow>(row, columns),\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn await execMultiStatement<TRow>(\n\t\t\t\t\t\t\t\ttarget,\n\t\t\t\t\t\t\t\tquery,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\tconst durationMs = performance.now() - start;\n\t\t\t\t\t\t\tctx.metrics?.trackSql(query, durationMs);\n\t\t\t\t\t\t\tif (ctx.metrics) {\n\t\t\t\t\t\t\t\tconst kvReads =\n\t\t\t\t\t\t\t\t\tctx.metrics.totalKvReads - kvReadsBefore;\n\t\t\t\t\t\t\t\tconst kvWrites =\n\t\t\t\t\t\t\t\t\tctx.metrics.totalKvWrites - kvWritesBefore;\n\t\t\t\t\t\t\t\tctx.log?.debug({\n\t\t\t\t\t\t\t\t\tmsg: \"sql query\",\n\t\t\t\t\t\t\t\t\tquery: query.slice(0, 120),\n\t\t\t\t\t\t\t\t\tdurationMs,\n\t\t\t\t\t\t\t\t\tkvReads,\n\t\t\t\t\t\t\t\t\tkvWrites,\n\t\t\t\t\t\t\t\t});\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\ttransaction: async <T>(\n\t\t\t\t\t\tcallback: (tx: RawAccess) => Promise<T> | T,\n\t\t\t\t\t\toptions?: SqliteTransactionOptions,\n\t\t\t\t\t): Promise<T> => {\n\t\t\t\t\t\tvalidateTransactionTimeout(options?.timeout);\n\t\t\t\t\t\tvalidateTransactionName(options?.name);\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\ttransactionScoped &&\n\t\t\t\t\t\t\toptions?.experimental?.includeState\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t\"experimental.includeState is not supported for nested transactions\",\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst includeState =\n\t\t\t\t\t\t\toptions?.experimental?.includeState === true;\n\t\t\t\t\t\tconst stateScope =\n\t\t\t\t\t\t\tincludeState && stateTransactionContext\n\t\t\t\t\t\t\t\t? await stateTransactionContext.enter()\n\t\t\t\t\t\t\t\t: undefined;\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst transaction = includeState\n\t\t\t\t\t\t\t\t? await (() => {\n\t\t\t\t\t\t\t\t\t\tconst beginStateTransaction =\n\t\t\t\t\t\t\t\t\t\t\tctx.nativeDatabaseProvider &&\n\t\t\t\t\t\t\t\t\t\t\tnativeStateTransactionOpeners.get(\n\t\t\t\t\t\t\t\t\t\t\t\tctx.nativeDatabaseProvider,\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\tif (!beginStateTransaction) {\n\t\t\t\t\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t\t\t\t\t\"experimental.includeState is only supported by RivetKit's embedded database provider\",\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn beginStateTransaction(\n\t\t\t\t\t\t\t\t\t\t\toptions?.timeout,\n\t\t\t\t\t\t\t\t\t\t\tstateScope,\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t})()\n\t\t\t\t\t\t\t\t: await db.beginTransaction(\n\t\t\t\t\t\t\t\t\t\toptions?.timeout,\n\t\t\t\t\t\t\t\t\t\toptions?.name,\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tconst tx = createClient(transaction, true);\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tconst result = await callback(tx);\n\t\t\t\t\t\t\t\tawait transaction.commit();\n\t\t\t\t\t\t\t\treturn result;\n\t\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tawait transaction.rollback();\n\t\t\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\t\t\t// Preserve the callback or commit error after expiry cleanup.\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tthrow error;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\tif (stateScope !== undefined) {\n\t\t\t\t\t\t\t\tstateTransactionContext?.exit(stateScope);\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\tclose: async () => {\n\t\t\t\t\t\tif (!closed) {\n\t\t\t\t\t\t\tclosed = true;\n\t\t\t\t\t\t\tawait db.close();\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tnativeMetrics: () => db.nativeMetrics?.() ?? null,\n\t\t\t\t};\n\t\t\t\tif (!transactionScoped) {\n\t\t\t\t\tnativeStateTransactionClientBinders.set(client, (context) =>\n\t\t\t\t\t\tcreateClient(target, false, context),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn client;\n\t\t\t};\n\t\t\tconst client = createClient(db);\n\t\t\treturn client;\n\t\t},\n\t\tonMigrate: async (client) => {\n\t\t\tif (onMigrate) {\n\t\t\t\tawait withMigrationSavepoint(client, (leased) =>\n\t\t\t\t\tonMigrate(leased),\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t};\n\treturn provider;\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 execMultiStatement<TRow extends Record<string, unknown>>(\n\tdb: Pick<SqliteDatabase, \"exec\">,\n\tquery: string,\n): Promise<TRow[]> {\n\tconst results: Record<string, unknown>[] = [];\n\tlet columnNames: string[] | null = null;\n\tawait db.exec(query, (row: unknown[], columns: string[]) => {\n\t\tif (!columnNames) {\n\t\t\tcolumnNames = columns;\n\t\t}\n\t\tresults.push(rowToObject(row, columnNames));\n\t});\n\treturn results as TRow[];\n}\n\nasync function withMigrationSavepoint<T>(\n\tclient: RawAccess,\n\tcallback: (leased: RawAccess) => Promise<T> | T,\n): Promise<T> {\n\treturn await client.transaction(\n\t\tasync (transaction) => {\n\t\t\tawait transaction.execute(\"SAVEPOINT __rivet_on_migrate\");\n\t\t\ttry {\n\t\t\t\tconst result = await callback(transaction);\n\t\t\t\tawait transaction.execute(\n\t\t\t\t\t\"RELEASE SAVEPOINT __rivet_on_migrate\",\n\t\t\t\t);\n\t\t\t\treturn result;\n\t\t\t} catch (error) {\n\t\t\t\ttry {\n\t\t\t\t\tawait transaction.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 transaction.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-migration\",\n\t\t\ttimeout: MIGRATION_TRANSACTION_TIMEOUT_MS,\n\t\t},\n\t);\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-LTMP7OMQ.cjs","../../src/common/database/mod.ts"],"names":["db","client"],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACoBA,IAAM,8BAAA,kBAAgC,IAAI,OAAA,CAMxC,CAAA;AAKF,IAAM,oCAAA,kBAAsC,IAAI,OAAA,CAG9C,CAAA;AAGK,SAAS,oCAAA,CAGf,QAAA,EACA,MAAA,EAII;AACJ,EAAA,6BAAA,CAA8B,GAAA,CAAI,QAAA,EAAU,MAAM,CAAA;AAClD,EAAA,OAAO,QAAA;AACR;AAGO,SAAS,iCAAA,CACf,MAAA,EACA,OAAA,EACI;AACJ,EAAA,GAAA,CAAA,CACE,OAAO,OAAA,IAAW,SAAA,GAAY,OAAA,IAAW,IAAA,EAAA,GAC1C,OAAO,OAAA,IAAW,UAAA,EACjB;AACD,IAAA,OAAO,MAAA;AAAA,EACR;AACA,EAAA,MAAM,KAAA,EAAO,mCAAA,CAAoC,GAAA,CAAI,MAAgB,CAAA;AACrE,EAAA,wBAAA,CAAQ,KAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,IAAA,CAAO,OAAA,CAAA,CAAA,UAAY,QAAA;AAC5B;AAEA,SAAS,qBAAA,CAAsB,KAAA,EAAwB;AACtD,EAAA,MAAM,QAAA,EAAU,KAAA,CAAM,IAAA,CAAK,CAAA,CAAE,OAAA,CAAQ,KAAA,EAAO,EAAE,CAAA,CAAE,OAAA,CAAQ,CAAA;AACxD,EAAA,OAAO,OAAA,CAAQ,QAAA,CAAS,GAAG,CAAA;AAC5B;AAEO,SAAS,EAAA,CAAG;AAAA,EAClB,SAAA;AAAA,EACA,yBAAA,EAA2B,IAAA;AAAA,EAC3B;AACD,EAAA,EAA2B,CAAC,CAAA,EAAgC;AAC3D,EAAA,MAAM,SAAA,EAAwC;AAAA,IAC7C,eAAA,EAAiB,SAAA;AAAA,IACjB,YAAA,EAAc,MAAA,CAAO,GAAA,EAAA,GAAQ;AAC5B,MAAA,MAAM,uBAAA,EAAyB,GAAA,CAAI,sBAAA;AACnC,MAAA,GAAA,CAAI,CAAC,sBAAA,EAAwB;AAC5B,QAAA,MAAM,IAAI,KAAA;AAAA,UACT;AAAA,QACD,CAAA;AAAA,MACD;AAEA,MAAA,MAAMA,IAAAA,EAAK,MAAM,sBAAA,CAAuB,IAAA,CAAK,GAAA,CAAI,OAAO,CAAA;AACxD,MAAA,IAAI,OAAA,EAAS,KAAA;AACb,MAAA,IAAI,wBAAA,EAA0B,KAAA;AAC9B,MAAA,MAAM,WAAA,EAAa,CAAA,EAAA,GAAM;AACxB,QAAA,GAAA,CAAI,MAAA,EAAQ;AACX,UAAA,MAAM,IAAI,KAAA;AAAA,YACT;AAAA,UACD,CAAA;AAAA,QACD;AAAA,MACD,CAAA;AAEA,MAAA,MAAM,aAAA,EAAe,CACpB,MAAA,EACA,kBAAA,EAAoB,KAAA,EACpB,uBAAA,EAAA,GACe;AACf,QAAA,MAAMC,QAAAA,EAAoB;AAAA,UACzB,OAAA,EAAS,MAAA,CAMR,KAAA,EAAA,GACG,IAAA,EAAA,GACkB;AA1H3B,YAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA2HM,YAAA,UAAA,CAAW,CAAA;AACX,YAAA,GAAA,CACC,CAAC,kBAAA,GACD,yBAAA,GACA,CAAC,wBAAA,GACD,CAAC,qBAAA,CAAsB,KAAK,EAAA,GAC5B,0DAAA,KAAgC,CAAA,EAC/B;AACD,cAAA,wBAAA,EAA0B,IAAA;AAC1B,cAAA,yCAAA,UAAoB,CAAA,CAAE,IAAA;AAAA,gBACrB,EAAE,OAAA,EAAS,GAAA,CAAI,QAAQ,CAAA;AAAA,gBACvB;AAAA,cACD,CAAA;AAAA,YACD;AAEA,YAAA,MAAM,cAAA,mBAAA,CAAA,CAAgB,GAAA,EAAA,GAAA,CAAI,OAAA,EAAA,GAAJ,KAAA,EAAA,KAAA,EAAA,EAAA,EAAA,CAAa,YAAA,CAAA,UAAgB,GAAA;AACnD,YAAA,MAAM,eAAA,mBAAA,CAAA,CAAiB,GAAA,EAAA,GAAA,CAAI,OAAA,EAAA,GAAJ,KAAA,EAAA,KAAA,EAAA,EAAA,EAAA,CAAa,aAAA,CAAA,UAAiB,GAAA;AACrD,YAAA,MAAM,MAAA,EAAQ,WAAA,CAAY,GAAA,CAAI,CAAA;AAE9B,YAAA,IAAI;AACH,cAAA,GAAA,CAAI,IAAA,CAAK,OAAA,EAAS,CAAA,EAAG;AACpB,gBAAA,MAAM,SAAA,EACL,IAAA,CAAK,OAAA,IAAW,EAAA,GAChB,qDAAA,IAAsB,CAAK,CAAC,CAAC,EAAA,EAC1B,gDAAA,IAAiB,CAAK,CAAC,CAAC,EAAA,EACxB,gDAAA,IAAqB,CAAA;AACzB,gBAAA,MAAM,EAAE,IAAA,EAAM,QAAQ,EAAA,EAAI,MAAM,MAAA,CAAO,OAAA;AAAA,kBACtC,KAAA;AAAA,kBACA;AAAA,gBACD,CAAA;AACA,gBAAA,OAAO,IAAA,CAAK,GAAA;AAAA,kBAAI,CAAC,GAAA,EAAA,GAChB,WAAA,CAAkB,GAAA,EAAK,OAAO;AAAA,gBAC/B,CAAA;AAAA,cACD;AAEA,cAAA,GAAA,CAAI,CAAC,qBAAA,CAAsB,KAAK,CAAA,EAAG;AAClC,gBAAA,MAAM,EAAE,IAAA,EAAM,QAAQ,EAAA,EAAI,MAAM,MAAA,CAAO,OAAA;AAAA,kBACtC,KAAA;AAAA,kBACA,KAAA;AAAA,gBACD,CAAA;AACA,gBAAA,OAAO,IAAA,CAAK,GAAA;AAAA,kBAAI,CAAC,GAAA,EAAA,GAChB,WAAA,CAAkB,GAAA,EAAK,OAAO;AAAA,gBAC/B,CAAA;AAAA,cACD;AAEA,cAAA,OAAO,MAAM,kBAAA;AAAA,gBACZ,MAAA;AAAA,gBACA;AAAA,cACD,CAAA;AAAA,YACD,EAAA,QAAE;AACD,cAAA,MAAM,WAAA,EAAa,WAAA,CAAY,GAAA,CAAI,EAAA,EAAI,KAAA;AACvC,cAAA,CAAA,GAAA,EAAA,GAAA,CAAI,OAAA,EAAA,GAAJ,KAAA,EAAA,KAAA,EAAA,EAAA,EAAA,CAAa,QAAA,CAAS,KAAA,EAAO,UAAA,CAAA;AAC7B,cAAA,GAAA,CAAI,GAAA,CAAI,OAAA,EAAS;AAChB,gBAAA,MAAM,QAAA,EACL,GAAA,CAAI,OAAA,CAAQ,aAAA,EAAe,aAAA;AAC5B,gBAAA,MAAM,SAAA,EACL,GAAA,CAAI,OAAA,CAAQ,cAAA,EAAgB,cAAA;AAC7B,gBAAA,CAAA,GAAA,EAAA,GAAA,CAAI,GAAA,EAAA,GAAJ,KAAA,EAAA,KAAA,EAAA,EAAA,EAAA,CAAS,KAAA,CAAM;AAAA,kBACd,GAAA,EAAK,WAAA;AAAA,kBACL,KAAA,EAAO,KAAA,CAAM,KAAA,CAAM,CAAA,EAAG,GAAG,CAAA;AAAA,kBACzB,UAAA;AAAA,kBACA,OAAA;AAAA,kBACA;AAAA,gBACD,CAAA,CAAA;AAAA,cACD;AAAA,YACD;AAAA,UACD,CAAA;AAAA,UACA,WAAA,EAAa,MAAA,CACZ,QAAA,EACA,OAAA,EAAA,GACgB;AAjMtB,YAAA,IAAA,EAAA,EAAA,EAAA;AAkMM,YAAA,0DAAA,QAA2B,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,OAAA,CAAS,OAAO,CAAA;AAC3C,YAAA,uDAAA,QAAwB,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,OAAA,CAAS,IAAI,CAAA;AACrC,YAAA,GAAA,CACC,kBAAA,GAAA,CAAA,CACA,GAAA,EAAA,QAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,OAAA,CAAS,YAAA,EAAA,GAAT,KAAA,EAAA,KAAA,EAAA,EAAA,EAAA,CAAuB,YAAA,CAAA,EACtB;AACD,cAAA,MAAM,IAAI,KAAA;AAAA,gBACT;AAAA,cACD,CAAA;AAAA,YACD;AACA,YAAA,MAAM,aAAA,EAAA,CAAA,CACL,GAAA,EAAA,QAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,OAAA,CAAS,YAAA,EAAA,GAAT,KAAA,EAAA,KAAA,EAAA,EAAA,EAAA,CAAuB,YAAA,EAAA,IAAiB,IAAA;AACzC,YAAA,MAAM,WAAA,EACL,aAAA,GAAgB,wBAAA,EACb,MAAM,uBAAA,CAAwB,KAAA,CAAM,EAAA,EACpC,KAAA,CAAA;AACJ,YAAA,IAAI;AACH,cAAA,MAAM,YAAA,EAAc,aAAA,EACjB,MAAA,CAAO,CAAA,EAAA,GAAM;AACb,gBAAA,MAAM,sBAAA,EACL,GAAA,CAAI,uBAAA,GACJ,6BAAA,CAA8B,GAAA;AAAA,kBAC7B,GAAA,CAAI;AAAA,gBACL,CAAA;AACD,gBAAA,GAAA,CAAI,CAAC,qBAAA,EAAuB;AAC3B,kBAAA,MAAM,IAAI,KAAA;AAAA,oBACT;AAAA,kBACD,CAAA;AAAA,gBACD;AACA,gBAAA,OAAO,qBAAA;AAAA,kBACN,QAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,OAAA,CAAS,OAAA;AAAA,kBACT;AAAA,gBACD,CAAA;AAAA,cACD,CAAA,CAAA,CAAG,EAAA,EACF,MAAMD,GAAAA,CAAG,gBAAA;AAAA,gBACT,QAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,OAAA,CAAS,OAAA;AAAA,gBACT,QAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,OAAA,CAAS;AAAA,cACV,CAAA;AACF,cAAA,MAAM,GAAA,EAAK,YAAA,CAAa,WAAA,EAAa,IAAI,CAAA;AACzC,cAAA,IAAI;AACH,gBAAA,MAAM,OAAA,EAAS,MAAM,QAAA,CAAS,EAAE,CAAA;AAChC,gBAAA,MAAM,WAAA,CAAY,MAAA,CAAO,CAAA;AACzB,gBAAA,OAAO,MAAA;AAAA,cACR,EAAA,MAAA,CAAS,KAAA,EAAO;AACf,gBAAA,IAAI;AACH,kBAAA,MAAM,WAAA,CAAY,QAAA,CAAS,CAAA;AAAA,gBAC5B,EAAA,UAAQ;AAAA,gBAER;AACA,gBAAA,MAAM,KAAA;AAAA,cACP;AAAA,YACD,EAAA,QAAE;AACD,cAAA,GAAA,CAAI,WAAA,IAAe,KAAA,CAAA,EAAW;AAC7B,gBAAA,wBAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,uBAAA,CAAyB,IAAA,CAAK,UAAA,CAAA;AAAA,cAC/B;AAAA,YACD;AAAA,UACD,CAAA;AAAA,UACA,KAAA,EAAO,MAAA,CAAA,EAAA,GAAY;AAClB,YAAA,GAAA,CAAI,CAAC,MAAA,EAAQ;AACZ,cAAA,OAAA,EAAS,IAAA;AACT,cAAA,MAAMA,GAAAA,CAAG,KAAA,CAAM,CAAA;AAAA,YAChB;AAAA,UACD,CAAA;AAAA,UACA,aAAA,EAAe,CAAA,EAAA,GAAG;AAjQvB,YAAA,IAAA,EAAA;AAiQ0B,YAAA,wBAAA,CAAA,CAAA,GAAA,EAAAA,GAAAA,CAAG,aAAA,EAAA,GAAH,KAAA,EAAA,KAAA,EAAA,EAAA,EAAA,CAAA,IAAA,CAAAA,GAAAA,CAAAA,CAAAA,UAAwB,MAAA;AAAA,UAAA;AAAA,QAC9C,CAAA;AACA,QAAA,GAAA,CAAI,CAAC,iBAAA,EAAmB;AACvB,UAAA,mCAAA,CAAoC,GAAA;AAAA,YAAIC,OAAAA;AAAA,YAAQ,CAAC,OAAA,EAAA,GAChD,YAAA,CAAa,MAAA,EAAQ,KAAA,EAAO,OAAO;AAAA,UACpC,CAAA;AAAA,QACD;AACA,QAAA,OAAOA,OAAAA;AAAA,MACR,CAAA;AACA,MAAA,MAAM,OAAA,EAAS,YAAA,CAAaD,GAAE,CAAA;AAC9B,MAAA,OAAO,MAAA;AAAA,IACR,CAAA;AAAA,IACA,SAAA,EAAW,MAAA,CAAO,MAAA,EAAA,GAAW;AAC5B,MAAA,GAAA,CAAI,SAAA,EAAW;AACd,QAAA,MAAM,sBAAA;AAAA,UAAuB,MAAA;AAAA,UAAQ,CAAC,MAAA,EAAA,GACrC,SAAA,CAAU,MAAM;AAAA,QACjB,CAAA;AAAA,MACD;AAAA,IACD;AAAA,EACD,CAAA;AACA,EAAA,OAAO,QAAA;AACR;AAEA,SAAS,WAAA,CACR,GAAA,EACA,OAAA,EACO;AACP,EAAA,MAAM,OAAA,EAAkC,CAAC,CAAA;AACzC,EAAA,IAAA,CAAA,IAAS,EAAA,EAAI,CAAA,EAAG,EAAA,EAAI,OAAA,CAAQ,MAAA,EAAQ,CAAA,EAAA,EAAK;AACxC,IAAA,MAAA,CAAO,OAAA,CAAQ,CAAC,CAAC,EAAA,EAAI,GAAA,CAAI,CAAC,CAAA;AAAA,EAC3B;AACA,EAAA,OAAO,MAAA;AACR;AAEA,MAAA,SAAe,kBAAA,CACdA,GAAAA,EACA,KAAA,EACkB;AAClB,EAAA,MAAM,QAAA,EAAqC,CAAC,CAAA;AAC5C,EAAA,IAAI,YAAA,EAA+B,IAAA;AACnC,EAAA,MAAMA,GAAAA,CAAG,IAAA,CAAK,KAAA,EAAO,CAAC,GAAA,EAAgB,OAAA,EAAA,GAAsB;AAC3D,IAAA,GAAA,CAAI,CAAC,WAAA,EAAa;AACjB,MAAA,YAAA,EAAc,OAAA;AAAA,IACf;AACA,IAAA,OAAA,CAAQ,IAAA,CAAK,WAAA,CAAY,GAAA,EAAK,WAAW,CAAC,CAAA;AAAA,EAC3C,CAAC,CAAA;AACD,EAAA,OAAO,OAAA;AACR;AAEA,MAAA,SAAe,sBAAA,CACd,MAAA,EACA,QAAA,EACa;AACb,EAAA,OAAO,MAAM,MAAA,CAAO,WAAA;AAAA,IACnB,MAAA,CAAO,WAAA,EAAA,GAAgB;AACtB,MAAA,MAAM,WAAA,CAAY,OAAA,CAAQ,8BAA8B,CAAA;AACxD,MAAA,IAAI;AACH,QAAA,MAAM,OAAA,EAAS,MAAM,QAAA,CAAS,WAAW,CAAA;AACzC,QAAA,MAAM,WAAA,CAAY,OAAA;AAAA,UACjB;AAAA,QACD,CAAA;AACA,QAAA,OAAO,MAAA;AAAA,MACR,EAAA,MAAA,CAAS,KAAA,EAAO;AACf,QAAA,IAAI;AACH,UAAA,MAAM,WAAA,CAAY,OAAA;AAAA,YACjB;AAAA,UACD,CAAA;AAAA,QACD,EAAA,QAAE;AACD,UAAA,MAAM,WAAA,CAAY,OAAA;AAAA,YACjB;AAAA,UACD,CAAA;AAAA,QACD;AACA,QAAA,MAAM,KAAA;AAAA,MACP;AAAA,IACD,CAAA;AAAA,IACA;AAAA,MACC,IAAA,EAAM,oBAAA;AAAA,MACN,OAAA,EAAS;AAAA,IACV;AAAA,EACD,CAAA;AACD;ADrGA;AACA;AACE;AACA;AACA;AACF,oLAAC","file":"/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-LTMP7OMQ.cjs","sourcesContent":[null,"import { getLogger } from \"@/common/log\";\nimport type {\n\tDatabaseProvider,\n\tNativeDatabaseProvider,\n\tRawAccess,\n\tSqliteDatabase,\n\tSqliteProfilingOptions,\n\tSqliteTransactionDatabase,\n\tSqliteTransactionOptions,\n} from \"./config\";\nimport {\n\tisManualTransactionControl,\n\tisSqliteBindingObject,\n\tMIGRATION_TRANSACTION_TIMEOUT_MS,\n\ttoSqliteBindings,\n\tvalidateTransactionName,\n\tvalidateTransactionTimeout,\n} from \"./shared\";\n\nexport type { RawAccess } from \"./config\";\n\nexport interface DatabaseFactoryConfig {\n\tonMigrate?: (db: RawAccess) => Promise<void> | void;\n\twarnOnManualTransactions?: boolean;\n\t/**\n\t * SQLite profiling configuration.\n\t *\n\t * @experimental This entire configuration surface is experimental and\n\t * subject to change without notice.\n\t */\n\tprofiling?: SqliteProfilingOptions;\n}\nconst nativeStateTransactionOpeners = new WeakMap<\n\tNativeDatabaseProvider,\n\t(\n\t\ttimeoutMs?: number,\n\t\tcontext?: unknown,\n\t) => Promise<SqliteTransactionDatabase>\n>();\ntype NativeStateTransactionContext = {\n\tenter(): Promise<unknown>;\n\texit(scope: unknown): void;\n};\nconst nativeStateTransactionClientBinders = new WeakMap<\n\tobject,\n\t(context: NativeStateTransactionContext) => object\n>();\n\n/** @internal */\nexport function registerNativeStateTransactionOpener<\n\tT extends NativeDatabaseProvider,\n>(\n\tprovider: T,\n\topener: (\n\t\ttimeoutMs?: number,\n\t\tcontext?: unknown,\n\t) => Promise<SqliteTransactionDatabase>,\n): T {\n\tnativeStateTransactionOpeners.set(provider, opener);\n\treturn provider;\n}\n\n/** @internal */\nexport function bindNativeStateTransactionContext<T>(\n\tclient: T,\n\tcontext: NativeStateTransactionContext,\n): T {\n\tif (\n\t\t(typeof client !== \"object\" || client === null) &&\n\t\ttypeof client !== \"function\"\n\t) {\n\t\treturn client;\n\t}\n\tconst bind = nativeStateTransactionClientBinders.get(client as object);\n\treturn (bind?.(context) ?? client) as T;\n}\n\nfunction hasMultipleStatements(query: string): boolean {\n\tconst trimmed = query.trim().replace(/;+$/, \"\").trimEnd();\n\treturn trimmed.includes(\";\");\n}\n\nexport function db({\n\tonMigrate,\n\twarnOnManualTransactions = true,\n\tprofiling,\n}: DatabaseFactoryConfig = {}): DatabaseProvider<RawAccess> {\n\tconst provider: DatabaseProvider<RawAccess> = {\n\t\tsqliteProfiling: profiling,\n\t\tcreateClient: async (ctx) => {\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 db = 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 createClient = (\n\t\t\t\ttarget: SqliteDatabase | SqliteTransactionDatabase,\n\t\t\t\ttransactionScoped = false,\n\t\t\t\tstateTransactionContext?: NativeStateTransactionContext,\n\t\t\t): RawAccess => {\n\t\t\t\tconst client: RawAccess = {\n\t\t\t\t\texecute: async <\n\t\t\t\t\t\tTRow extends Record<string, unknown> = Record<\n\t\t\t\t\t\t\tstring,\n\t\t\t\t\t\t\tunknown\n\t\t\t\t\t\t>,\n\t\t\t\t\t>(\n\t\t\t\t\t\tquery: string,\n\t\t\t\t\t\t...args: unknown[]\n\t\t\t\t\t): Promise<TRow[]> => {\n\t\t\t\t\t\tensureOpen();\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t!transactionScoped &&\n\t\t\t\t\t\t\twarnOnManualTransactions &&\n\t\t\t\t\t\t\t!manualTransactionWarned &&\n\t\t\t\t\t\t\t!hasMultipleStatements(query) &&\n\t\t\t\t\t\t\tisManualTransactionControl(query)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tmanualTransactionWarned = true;\n\t\t\t\t\t\t\tgetLogger(\"database\").warn(\n\t\t\t\t\t\t\t\t{ actorId: ctx.actorId },\n\t\t\t\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\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst kvReadsBefore = ctx.metrics?.totalKvReads ?? 0;\n\t\t\t\t\t\tconst kvWritesBefore = ctx.metrics?.totalKvWrites ?? 0;\n\t\t\t\t\t\tconst start = performance.now();\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tif (args.length > 0) {\n\t\t\t\t\t\t\t\tconst bindings =\n\t\t\t\t\t\t\t\t\targs.length === 1 &&\n\t\t\t\t\t\t\t\t\tisSqliteBindingObject(args[0])\n\t\t\t\t\t\t\t\t\t\t? toSqliteBindings(args[0])\n\t\t\t\t\t\t\t\t\t\t: toSqliteBindings(args);\n\t\t\t\t\t\t\t\tconst { rows, columns } = await target.execute(\n\t\t\t\t\t\t\t\t\tquery,\n\t\t\t\t\t\t\t\t\tbindings,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\treturn rows.map((row) =>\n\t\t\t\t\t\t\t\t\trowToObject<TRow>(row, columns),\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (!hasMultipleStatements(query)) {\n\t\t\t\t\t\t\t\tconst { rows, columns } = await target.execute(\n\t\t\t\t\t\t\t\t\tquery,\n\t\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\treturn rows.map((row) =>\n\t\t\t\t\t\t\t\t\trowToObject<TRow>(row, columns),\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn await execMultiStatement<TRow>(\n\t\t\t\t\t\t\t\ttarget,\n\t\t\t\t\t\t\t\tquery,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\tconst durationMs = performance.now() - start;\n\t\t\t\t\t\t\tctx.metrics?.trackSql(query, durationMs);\n\t\t\t\t\t\t\tif (ctx.metrics) {\n\t\t\t\t\t\t\t\tconst kvReads =\n\t\t\t\t\t\t\t\t\tctx.metrics.totalKvReads - kvReadsBefore;\n\t\t\t\t\t\t\t\tconst kvWrites =\n\t\t\t\t\t\t\t\t\tctx.metrics.totalKvWrites - kvWritesBefore;\n\t\t\t\t\t\t\t\tctx.log?.debug({\n\t\t\t\t\t\t\t\t\tmsg: \"sql query\",\n\t\t\t\t\t\t\t\t\tquery: query.slice(0, 120),\n\t\t\t\t\t\t\t\t\tdurationMs,\n\t\t\t\t\t\t\t\t\tkvReads,\n\t\t\t\t\t\t\t\t\tkvWrites,\n\t\t\t\t\t\t\t\t});\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\ttransaction: async <T>(\n\t\t\t\t\t\tcallback: (tx: RawAccess) => Promise<T> | T,\n\t\t\t\t\t\toptions?: SqliteTransactionOptions,\n\t\t\t\t\t): Promise<T> => {\n\t\t\t\t\t\tvalidateTransactionTimeout(options?.timeout);\n\t\t\t\t\t\tvalidateTransactionName(options?.name);\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\ttransactionScoped &&\n\t\t\t\t\t\t\toptions?.experimental?.includeState\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t\"experimental.includeState is not supported for nested transactions\",\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst includeState =\n\t\t\t\t\t\t\toptions?.experimental?.includeState === true;\n\t\t\t\t\t\tconst stateScope =\n\t\t\t\t\t\t\tincludeState && stateTransactionContext\n\t\t\t\t\t\t\t\t? await stateTransactionContext.enter()\n\t\t\t\t\t\t\t\t: undefined;\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst transaction = includeState\n\t\t\t\t\t\t\t\t? await (() => {\n\t\t\t\t\t\t\t\t\t\tconst beginStateTransaction =\n\t\t\t\t\t\t\t\t\t\t\tctx.nativeDatabaseProvider &&\n\t\t\t\t\t\t\t\t\t\t\tnativeStateTransactionOpeners.get(\n\t\t\t\t\t\t\t\t\t\t\t\tctx.nativeDatabaseProvider,\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\tif (!beginStateTransaction) {\n\t\t\t\t\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t\t\t\t\t\"experimental.includeState is only supported by RivetKit's embedded database provider\",\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn beginStateTransaction(\n\t\t\t\t\t\t\t\t\t\t\toptions?.timeout,\n\t\t\t\t\t\t\t\t\t\t\tstateScope,\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t})()\n\t\t\t\t\t\t\t\t: await db.beginTransaction(\n\t\t\t\t\t\t\t\t\t\toptions?.timeout,\n\t\t\t\t\t\t\t\t\t\toptions?.name,\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tconst tx = createClient(transaction, true);\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tconst result = await callback(tx);\n\t\t\t\t\t\t\t\tawait transaction.commit();\n\t\t\t\t\t\t\t\treturn result;\n\t\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tawait transaction.rollback();\n\t\t\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\t\t\t// Preserve the callback or commit error after expiry cleanup.\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tthrow error;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\tif (stateScope !== undefined) {\n\t\t\t\t\t\t\t\tstateTransactionContext?.exit(stateScope);\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\tclose: async () => {\n\t\t\t\t\t\tif (!closed) {\n\t\t\t\t\t\t\tclosed = true;\n\t\t\t\t\t\t\tawait db.close();\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tnativeMetrics: () => db.nativeMetrics?.() ?? null,\n\t\t\t\t};\n\t\t\t\tif (!transactionScoped) {\n\t\t\t\t\tnativeStateTransactionClientBinders.set(client, (context) =>\n\t\t\t\t\t\tcreateClient(target, false, context),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn client;\n\t\t\t};\n\t\t\tconst client = createClient(db);\n\t\t\treturn client;\n\t\t},\n\t\tonMigrate: async (client) => {\n\t\t\tif (onMigrate) {\n\t\t\t\tawait withMigrationSavepoint(client, (leased) =>\n\t\t\t\t\tonMigrate(leased),\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t};\n\treturn provider;\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 execMultiStatement<TRow extends Record<string, unknown>>(\n\tdb: Pick<SqliteDatabase, \"exec\">,\n\tquery: string,\n): Promise<TRow[]> {\n\tconst results: Record<string, unknown>[] = [];\n\tlet columnNames: string[] | null = null;\n\tawait db.exec(query, (row: unknown[], columns: string[]) => {\n\t\tif (!columnNames) {\n\t\t\tcolumnNames = columns;\n\t\t}\n\t\tresults.push(rowToObject(row, columnNames));\n\t});\n\treturn results as TRow[];\n}\n\nasync function withMigrationSavepoint<T>(\n\tclient: RawAccess,\n\tcallback: (leased: RawAccess) => Promise<T> | T,\n): Promise<T> {\n\treturn await client.transaction(\n\t\tasync (transaction) => {\n\t\t\tawait transaction.execute(\"SAVEPOINT __rivet_on_migrate\");\n\t\t\ttry {\n\t\t\t\tconst result = await callback(transaction);\n\t\t\t\tawait transaction.execute(\n\t\t\t\t\t\"RELEASE SAVEPOINT __rivet_on_migrate\",\n\t\t\t\t);\n\t\t\t\treturn result;\n\t\t\t} catch (error) {\n\t\t\t\ttry {\n\t\t\t\t\tawait transaction.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 transaction.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-migration\",\n\t\t\ttimeout: MIGRATION_TRANSACTION_TIMEOUT_MS,\n\t\t},\n\t);\n}\n"]}
@@ -178,7 +178,7 @@ function noopNext() {
178
178
  // package.json
179
179
  var package_default = {
180
180
  name: "rivetkit",
181
- version: "3.0.0-preview.3",
181
+ version: "3.0.0-preview.4",
182
182
  description: "Lightweight libraries for building stateful actors on edge platforms",
183
183
  license: "Apache-2.0",
184
184
  keywords: [
@@ -1257,4 +1257,4 @@ export {
1257
1257
  getBaseLogger,
1258
1258
  getLogger
1259
1259
  };
1260
- //# sourceMappingURL=chunk-JXO5QVDX.js.map
1260
+ //# sourceMappingURL=chunk-MAUVZIXL.js.map