rivetkit 0.0.0-sqlite-uds.ea644f1 → 0.0.0-sqlite-uds.37f9e48

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 (94) hide show
  1. package/dist/browser/client.d.ts +2 -4
  2. package/dist/browser/client.js +1 -1
  3. package/dist/browser/client.js.map +1 -1
  4. package/dist/browser/inspector/client.js +1 -1
  5. package/dist/browser/inspector/client.js.map +1 -1
  6. package/dist/tsup/agent-os/index.cjs +6 -1
  7. package/dist/tsup/agent-os/index.cjs.map +1 -1
  8. package/dist/tsup/agent-os/index.d.cts +2 -4
  9. package/dist/tsup/agent-os/index.d.ts +2 -4
  10. package/dist/tsup/agent-os/index.js +6 -1
  11. package/dist/tsup/agent-os/index.js.map +1 -1
  12. package/dist/tsup/{chunk-LMUEIJUM.js → chunk-2EYF7KY7.js} +7 -7
  13. package/dist/tsup/{chunk-TIUL6FNF.cjs → chunk-42H5OK5Z.cjs} +7 -7
  14. package/dist/tsup/{chunk-TIUL6FNF.cjs.map → chunk-42H5OK5Z.cjs.map} +1 -1
  15. package/dist/tsup/{chunk-UYT2CIWO.cjs → chunk-AGWIB6VG.cjs} +3 -3
  16. package/dist/tsup/{chunk-UYT2CIWO.cjs.map → chunk-AGWIB6VG.cjs.map} +1 -1
  17. package/dist/tsup/{chunk-3GLNEWGY.js → chunk-ARD7UMSN.js} +6 -1
  18. package/dist/tsup/chunk-ARD7UMSN.js.map +1 -0
  19. package/dist/tsup/{chunk-X4BXYDTG.js → chunk-D2JJWLWM.js} +2 -2
  20. package/dist/tsup/{chunk-KYBAXJRA.js → chunk-DB45WHMU.js} +3 -3
  21. package/dist/tsup/{chunk-FUS4OFX5.js → chunk-E4X3JSN7.js} +4 -4
  22. package/dist/tsup/{chunk-EFQCNJ23.js → chunk-FFJXFXEW.js} +2 -2
  23. package/dist/tsup/{chunk-EFQCNJ23.js.map → chunk-FFJXFXEW.js.map} +1 -1
  24. package/dist/tsup/{chunk-OAPVVVTX.cjs → chunk-HTREBONF.cjs} +6 -1
  25. package/dist/tsup/chunk-HTREBONF.cjs.map +1 -0
  26. package/dist/tsup/{chunk-VDTC257X.cjs → chunk-LIEQDMZ6.cjs} +5 -5
  27. package/dist/tsup/{chunk-VDTC257X.cjs.map → chunk-LIEQDMZ6.cjs.map} +1 -1
  28. package/dist/tsup/{chunk-7DDQA6KN.cjs → chunk-MFLAOS2S.cjs} +2 -2
  29. package/dist/tsup/{chunk-7DDQA6KN.cjs.map → chunk-MFLAOS2S.cjs.map} +1 -1
  30. package/dist/tsup/{chunk-VWOA7DRK.cjs → chunk-OSQX3QN2.cjs} +141 -141
  31. package/dist/tsup/{chunk-VWOA7DRK.cjs.map → chunk-OSQX3QN2.cjs.map} +1 -1
  32. package/dist/tsup/{chunk-AESHILFV.cjs → chunk-PVR4LVX2.cjs} +10 -10
  33. package/dist/tsup/{chunk-AESHILFV.cjs.map → chunk-PVR4LVX2.cjs.map} +1 -1
  34. package/dist/tsup/{chunk-LTMSYD2A.js → chunk-Q3ODMSBE.js} +2 -2
  35. package/dist/tsup/{chunk-GUCITCR3.cjs → chunk-UEDIZR2M.cjs} +4 -4
  36. package/dist/tsup/{chunk-GUCITCR3.cjs.map → chunk-UEDIZR2M.cjs.map} +1 -1
  37. package/dist/tsup/{chunk-VYQASICJ.js → chunk-UEYBIN52.js} +2 -2
  38. package/dist/tsup/client/mod.cjs +7 -7
  39. package/dist/tsup/client/mod.cjs.map +1 -1
  40. package/dist/tsup/client/mod.d.cts +2 -2
  41. package/dist/tsup/client/mod.d.ts +2 -2
  42. package/dist/tsup/client/mod.js +6 -6
  43. package/dist/tsup/common/log.cjs +2 -2
  44. package/dist/tsup/common/log.js +1 -1
  45. package/dist/tsup/common/websocket.cjs +3 -3
  46. package/dist/tsup/common/websocket.js +2 -2
  47. package/dist/tsup/{config-CxG53eQo.d.cts → config-BARPNFvr.d.cts} +6 -4
  48. package/dist/tsup/{config-Ds6DCRhV.d.ts → config-BkLXikR2.d.ts} +6 -4
  49. package/dist/tsup/{context-8KlcOYIs.d.cts → context-A16ymKhK.d.cts} +1 -1
  50. package/dist/tsup/{context-Cfbm4QLr.d.ts → context-DntnH005.d.ts} +1 -1
  51. package/dist/tsup/db/drizzle.cjs.map +1 -1
  52. package/dist/tsup/db/drizzle.js.map +1 -1
  53. package/dist/tsup/dynamic/mod.cjs +2 -2
  54. package/dist/tsup/dynamic/mod.d.cts +1 -1
  55. package/dist/tsup/dynamic/mod.d.ts +1 -1
  56. package/dist/tsup/dynamic/mod.js +1 -1
  57. package/dist/tsup/inspector/mod.cjs +5 -5
  58. package/dist/tsup/inspector/mod.js +4 -4
  59. package/dist/tsup/inspector-tab/mod.cjs +2 -2
  60. package/dist/tsup/inspector-tab/mod.d.cts +2 -2
  61. package/dist/tsup/inspector-tab/mod.d.ts +2 -2
  62. package/dist/tsup/inspector-tab/mod.js +1 -1
  63. package/dist/tsup/mod.cjs +76 -78
  64. package/dist/tsup/mod.cjs.map +1 -1
  65. package/dist/tsup/mod.d.cts +3 -3
  66. package/dist/tsup/mod.d.ts +3 -3
  67. package/dist/tsup/mod.js +8 -10
  68. package/dist/tsup/mod.js.map +1 -1
  69. package/dist/tsup/test/mod.cjs +10 -10
  70. package/dist/tsup/test/mod.d.cts +1 -1
  71. package/dist/tsup/test/mod.d.ts +1 -1
  72. package/dist/tsup/test/mod.js +6 -6
  73. package/dist/tsup/utils.cjs +2 -2
  74. package/dist/tsup/utils.js +1 -1
  75. package/dist/tsup/workflow/mod.cjs +11 -11
  76. package/dist/tsup/workflow/mod.d.cts +3 -3
  77. package/dist/tsup/workflow/mod.d.ts +3 -3
  78. package/dist/tsup/workflow/mod.js +5 -5
  79. package/package.json +8 -8
  80. package/src/actor/config.test.ts +11 -0
  81. package/src/actor/config.ts +8 -0
  82. package/src/common/database/mod.test.ts +7 -2
  83. package/src/db/drizzle.ts +1 -3
  84. package/src/registry/config/index.ts +0 -3
  85. package/src/registry/native.ts +1 -1
  86. package/src/registry/runtime.ts +1 -1
  87. package/dist/tsup/chunk-3GLNEWGY.js.map +0 -1
  88. package/dist/tsup/chunk-OAPVVVTX.cjs.map +0 -1
  89. /package/dist/tsup/{chunk-LMUEIJUM.js.map → chunk-2EYF7KY7.js.map} +0 -0
  90. /package/dist/tsup/{chunk-X4BXYDTG.js.map → chunk-D2JJWLWM.js.map} +0 -0
  91. /package/dist/tsup/{chunk-KYBAXJRA.js.map → chunk-DB45WHMU.js.map} +0 -0
  92. /package/dist/tsup/{chunk-FUS4OFX5.js.map → chunk-E4X3JSN7.js.map} +0 -0
  93. /package/dist/tsup/{chunk-LTMSYD2A.js.map → chunk-Q3ODMSBE.js.map} +0 -0
  94. /package/dist/tsup/{chunk-VYQASICJ.js.map → chunk-UEYBIN52.js.map} +0 -0
@@ -123,7 +123,6 @@ declare const RegistryConfigSchema: z$1.ZodPipe<z$1.ZodObject<{
123
123
  }, z$1.core.$strip>>>;
124
124
  maxIncomingMessageSize: z$1.ZodDefault<z$1.ZodOptional<z$1.ZodNumber>>;
125
125
  maxOutgoingMessageSize: z$1.ZodDefault<z$1.ZodOptional<z$1.ZodNumber>>;
126
- experimentalActorUds: z$1.ZodDefault<z$1.ZodOptional<z$1.ZodBoolean>>;
127
126
  runtime: z$1.ZodPipe<z$1.ZodOptional<z$1.ZodEnum<{
128
127
  auto: "auto";
129
128
  native: "native";
@@ -221,7 +220,6 @@ declare const RegistryConfigSchema: z$1.ZodPipe<z$1.ZodObject<{
221
220
  };
222
221
  maxIncomingMessageSize: number;
223
222
  maxOutgoingMessageSize: number;
224
- experimentalActorUds: boolean;
225
223
  runtime: "auto" | "native" | "wasm";
226
224
  wasm: {
227
225
  bindings?: typeof _rivetkit_rivetkit_wasm | undefined;
@@ -269,7 +267,6 @@ declare const RegistryConfigSchema: z$1.ZodPipe<z$1.ZodObject<{
269
267
  };
270
268
  maxIncomingMessageSize: number;
271
269
  maxOutgoingMessageSize: number;
272
- experimentalActorUds: boolean;
273
270
  runtime: "auto" | "native" | "wasm";
274
271
  wasm: {
275
272
  bindings?: typeof _rivetkit_rivetkit_wasm | undefined;
@@ -708,7 +705,7 @@ interface RuntimeActorConfig {
708
705
  icon?: string;
709
706
  hasDatabase?: boolean;
710
707
  remoteSqlite?: boolean;
711
- experimentalActorUds?: boolean;
708
+ enableSqliteUds?: boolean;
712
709
  hasState?: boolean;
713
710
  canHibernateWebsocket?: boolean;
714
711
  stateSaveIntervalMs?: number;
@@ -1866,6 +1863,7 @@ declare function disposeRunInspector(run: ((...args: any[]) => any) | AnyRunConf
1866
1863
  declare const GlobalActorOptionsSchema: z.ZodPrefault<z.ZodObject<{
1867
1864
  name: z.ZodOptional<z.ZodString>;
1868
1865
  icon: z.ZodOptional<z.ZodString>;
1866
+ enableSqliteUds: z.ZodDefault<z.ZodBoolean>;
1869
1867
  canHibernateWebSocket: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodCustom<(request: Request) => boolean, (request: Request) => boolean>]>>;
1870
1868
  }, z.core.$strict>>;
1871
1869
  type GlobalActorOptions = z.infer<typeof GlobalActorOptionsSchema>;
@@ -1895,6 +1893,7 @@ type InstanceActorOptionsInput = z.input<typeof InstanceActorOptionsSchema>;
1895
1893
  declare const ActorOptionsSchema: z.ZodPrefault<z.ZodObject<{
1896
1894
  name: z.ZodOptional<z.ZodString>;
1897
1895
  icon: z.ZodOptional<z.ZodString>;
1896
+ enableSqliteUds: z.ZodDefault<z.ZodBoolean>;
1898
1897
  canHibernateWebSocket: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodCustom<(request: Request) => boolean, (request: Request) => boolean>]>>;
1899
1898
  createVarsTimeout: z.ZodDefault<z.ZodNumber>;
1900
1899
  createConnStateTimeout: z.ZodDefault<z.ZodNumber>;
@@ -1957,6 +1956,7 @@ declare const ActorConfigSchema: z.ZodObject<{
1957
1956
  options: z.ZodPrefault<z.ZodObject<{
1958
1957
  name: z.ZodOptional<z.ZodString>;
1959
1958
  icon: z.ZodOptional<z.ZodString>;
1959
+ enableSqliteUds: z.ZodDefault<z.ZodBoolean>;
1960
1960
  canHibernateWebSocket: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodCustom<(request: Request) => boolean, (request: Request) => boolean>]>>;
1961
1961
  createVarsTimeout: z.ZodDefault<z.ZodNumber>;
1962
1962
  createConnStateTimeout: z.ZodDefault<z.ZodNumber>;
@@ -2208,6 +2208,7 @@ declare function test<TState, TConnParams, TConnState, TVars, TInput, TDatabase
2208
2208
  declare const DocActorOptionsSchema: z.ZodObject<{
2209
2209
  name: z.ZodOptional<z.ZodString>;
2210
2210
  icon: z.ZodOptional<z.ZodString>;
2211
+ enableSqliteUds: z.ZodOptional<z.ZodBoolean>;
2211
2212
  createVarsTimeout: z.ZodOptional<z.ZodNumber>;
2212
2213
  createConnStateTimeout: z.ZodOptional<z.ZodNumber>;
2213
2214
  onMigrateTimeout: z.ZodOptional<z.ZodNumber>;
@@ -2257,6 +2258,7 @@ declare const DocActorConfigSchema: z.ZodObject<{
2257
2258
  options: z.ZodOptional<z.ZodObject<{
2258
2259
  name: z.ZodOptional<z.ZodString>;
2259
2260
  icon: z.ZodOptional<z.ZodString>;
2261
+ enableSqliteUds: z.ZodOptional<z.ZodBoolean>;
2260
2262
  createVarsTimeout: z.ZodOptional<z.ZodNumber>;
2261
2263
  createConnStateTimeout: z.ZodOptional<z.ZodNumber>;
2262
2264
  onMigrateTimeout: z.ZodOptional<z.ZodNumber>;
@@ -123,7 +123,6 @@ declare const RegistryConfigSchema: z$1.ZodPipe<z$1.ZodObject<{
123
123
  }, z$1.core.$strip>>>;
124
124
  maxIncomingMessageSize: z$1.ZodDefault<z$1.ZodOptional<z$1.ZodNumber>>;
125
125
  maxOutgoingMessageSize: z$1.ZodDefault<z$1.ZodOptional<z$1.ZodNumber>>;
126
- experimentalActorUds: z$1.ZodDefault<z$1.ZodOptional<z$1.ZodBoolean>>;
127
126
  runtime: z$1.ZodPipe<z$1.ZodOptional<z$1.ZodEnum<{
128
127
  auto: "auto";
129
128
  native: "native";
@@ -221,7 +220,6 @@ declare const RegistryConfigSchema: z$1.ZodPipe<z$1.ZodObject<{
221
220
  };
222
221
  maxIncomingMessageSize: number;
223
222
  maxOutgoingMessageSize: number;
224
- experimentalActorUds: boolean;
225
223
  runtime: "auto" | "native" | "wasm";
226
224
  wasm: {
227
225
  bindings?: typeof _rivetkit_rivetkit_wasm | undefined;
@@ -269,7 +267,6 @@ declare const RegistryConfigSchema: z$1.ZodPipe<z$1.ZodObject<{
269
267
  };
270
268
  maxIncomingMessageSize: number;
271
269
  maxOutgoingMessageSize: number;
272
- experimentalActorUds: boolean;
273
270
  runtime: "auto" | "native" | "wasm";
274
271
  wasm: {
275
272
  bindings?: typeof _rivetkit_rivetkit_wasm | undefined;
@@ -708,7 +705,7 @@ interface RuntimeActorConfig {
708
705
  icon?: string;
709
706
  hasDatabase?: boolean;
710
707
  remoteSqlite?: boolean;
711
- experimentalActorUds?: boolean;
708
+ enableSqliteUds?: boolean;
712
709
  hasState?: boolean;
713
710
  canHibernateWebsocket?: boolean;
714
711
  stateSaveIntervalMs?: number;
@@ -1866,6 +1863,7 @@ declare function disposeRunInspector(run: ((...args: any[]) => any) | AnyRunConf
1866
1863
  declare const GlobalActorOptionsSchema: z.ZodPrefault<z.ZodObject<{
1867
1864
  name: z.ZodOptional<z.ZodString>;
1868
1865
  icon: z.ZodOptional<z.ZodString>;
1866
+ enableSqliteUds: z.ZodDefault<z.ZodBoolean>;
1869
1867
  canHibernateWebSocket: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodCustom<(request: Request) => boolean, (request: Request) => boolean>]>>;
1870
1868
  }, z.core.$strict>>;
1871
1869
  type GlobalActorOptions = z.infer<typeof GlobalActorOptionsSchema>;
@@ -1895,6 +1893,7 @@ type InstanceActorOptionsInput = z.input<typeof InstanceActorOptionsSchema>;
1895
1893
  declare const ActorOptionsSchema: z.ZodPrefault<z.ZodObject<{
1896
1894
  name: z.ZodOptional<z.ZodString>;
1897
1895
  icon: z.ZodOptional<z.ZodString>;
1896
+ enableSqliteUds: z.ZodDefault<z.ZodBoolean>;
1898
1897
  canHibernateWebSocket: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodCustom<(request: Request) => boolean, (request: Request) => boolean>]>>;
1899
1898
  createVarsTimeout: z.ZodDefault<z.ZodNumber>;
1900
1899
  createConnStateTimeout: z.ZodDefault<z.ZodNumber>;
@@ -1957,6 +1956,7 @@ declare const ActorConfigSchema: z.ZodObject<{
1957
1956
  options: z.ZodPrefault<z.ZodObject<{
1958
1957
  name: z.ZodOptional<z.ZodString>;
1959
1958
  icon: z.ZodOptional<z.ZodString>;
1959
+ enableSqliteUds: z.ZodDefault<z.ZodBoolean>;
1960
1960
  canHibernateWebSocket: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodCustom<(request: Request) => boolean, (request: Request) => boolean>]>>;
1961
1961
  createVarsTimeout: z.ZodDefault<z.ZodNumber>;
1962
1962
  createConnStateTimeout: z.ZodDefault<z.ZodNumber>;
@@ -2208,6 +2208,7 @@ declare function test<TState, TConnParams, TConnState, TVars, TInput, TDatabase
2208
2208
  declare const DocActorOptionsSchema: z.ZodObject<{
2209
2209
  name: z.ZodOptional<z.ZodString>;
2210
2210
  icon: z.ZodOptional<z.ZodString>;
2211
+ enableSqliteUds: z.ZodOptional<z.ZodBoolean>;
2211
2212
  createVarsTimeout: z.ZodOptional<z.ZodNumber>;
2212
2213
  createConnStateTimeout: z.ZodOptional<z.ZodNumber>;
2213
2214
  onMigrateTimeout: z.ZodOptional<z.ZodNumber>;
@@ -2257,6 +2258,7 @@ declare const DocActorConfigSchema: z.ZodObject<{
2257
2258
  options: z.ZodOptional<z.ZodObject<{
2258
2259
  name: z.ZodOptional<z.ZodString>;
2259
2260
  icon: z.ZodOptional<z.ZodString>;
2261
+ enableSqliteUds: z.ZodOptional<z.ZodBoolean>;
2260
2262
  createVarsTimeout: z.ZodOptional<z.ZodNumber>;
2261
2263
  createConnStateTimeout: z.ZodOptional<z.ZodNumber>;
2262
2264
  onMigrateTimeout: z.ZodOptional<z.ZodNumber>;
@@ -1,4 +1,4 @@
1
- import { A as AnyActorDefinition, B as BaseActorDefinition, E as EventSchemaConfig, Q as QueueSchemaConfig, h as RunContext, w as ActorLogger, al as QueueFilterName, aq as QueueNextOptions, ar as QueueResultMessageForName, ap as QueueNextBatchOptions, ax as Registry, _ as Client, bu as InferEventArgs, bv as InferSchemaMap } from './config-CxG53eQo.cjs';
1
+ import { A as AnyActorDefinition, B as BaseActorDefinition, E as EventSchemaConfig, Q as QueueSchemaConfig, h as RunContext, w as ActorLogger, al as QueueFilterName, aq as QueueNextOptions, ar as QueueResultMessageForName, ap as QueueNextBatchOptions, ax as Registry, _ as Client, bu as InferEventArgs, bv as InferSchemaMap } from './config-BARPNFvr.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-DLOxy81E.cjs';
4
4
 
@@ -1,4 +1,4 @@
1
- import { A as AnyActorDefinition, B as BaseActorDefinition, E as EventSchemaConfig, Q as QueueSchemaConfig, h as RunContext, w as ActorLogger, al as QueueFilterName, aq as QueueNextOptions, ar as QueueResultMessageForName, ap as QueueNextBatchOptions, ax as Registry, _ as Client, bu as InferEventArgs, bv as InferSchemaMap } from './config-Ds6DCRhV.js';
1
+ import { A as AnyActorDefinition, B as BaseActorDefinition, E as EventSchemaConfig, Q as QueueSchemaConfig, h as RunContext, w as ActorLogger, al as QueueFilterName, aq as QueueNextOptions, ar as QueueResultMessageForName, ap as QueueNextBatchOptions, ax as Registry, _ as Client, bu as InferEventArgs, bv as InferSchemaMap } from './config-BkLXikR2.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-DLOxy81E.js';
4
4
 
@@ -1 +1 @@
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\tSqliteDatabase,\n} from \"@/common/database/config\";\nimport { toSqliteBindings } 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: (\n\t\t\t\ttx: DrizzleDatabase<TSchema>,\n\t\t\t) => Promise<T> | T,\n\t\t) => Promise<T>;\n\t};\n\nconst MIGRATION_LEASE_TIMEOUT_MS = 60_000;\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\ninterface DrizzleDatabaseFactoryConfig<TSchema extends DrizzleSchema> {\n\tschema?: TSchema;\n\tmigrations?: DrizzleMigrations;\n\tonMigrate?: (db: DrizzleDatabase<TSchema>) => Promise<void> | void;\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}: DrizzleDatabaseFactoryConfig<TSchema> = {}): DatabaseProvider<\n\tDrizzleDatabase<TSchema>\n> {\n\treturn {\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 transactionActive = 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 = (lease?: {\n\t\t\t\tkey: string;\n\t\t\t\ttimeoutMs?: number;\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\tif (!lease && transactionActive) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\"Use the tx argument inside db.transaction(); the outer database client cannot run work from the transaction callback.\",\n\t\t\t\t\t\t);\n\t\t\t\t\t}\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 nativeDb.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\tlease,\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\tnativeDb,\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\tlease,\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): Promise<T> => {\n\t\t\t\t\tif (lease || transactionActive) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\"Nested or concurrent db.transaction() calls are not supported.\",\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tconst transactionLease = { key: crypto.randomUUID() };\n\t\t\t\t\tconst tx = createDrizzleClient(transactionLease);\n\t\t\t\t\tawait nativeDb.execute(\n\t\t\t\t\t\t\"BEGIN\",\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\ttransactionLease,\n\t\t\t\t\t);\n\t\t\t\t\ttransactionActive = 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 nativeDb.execute(\n\t\t\t\t\t\t\t\"COMMIT\",\n\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\ttransactionLease,\n\t\t\t\t\t\t);\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 nativeDb.execute(\n\t\t\t\t\t\t\t\t\"ROLLBACK\",\n\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\t\ttransactionLease,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\t// Preserve the callback or commit error after lease poisoning.\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow error;\n\t\t\t\t\t} finally {\n\t\t\t\t\t\ttransactionActive = false;\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tdrizzleDb.__withSqliteLease = async <T>(\n\t\t\t\t\ttimeoutMs: number,\n\t\t\t\t\tleaseCallback: (leased: RawAccess) => Promise<T> | T,\n\t\t\t\t): Promise<T> => {\n\t\t\t\t\tconst internalLease = {\n\t\t\t\t\t\tkey: crypto.randomUUID(),\n\t\t\t\t\t\ttimeoutMs,\n\t\t\t\t\t};\n\t\t\t\t\treturn await leaseCallback(\n\t\t\t\t\t\tcreateDrizzleClient(internalLease),\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\treturn createDrizzleClient();\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.__withSqliteLease(\n\t\tMIGRATION_LEASE_TIMEOUT_MS,\n\t\tasync (leasedAccess) => {\n\t\t\tconst leased = leasedAccess as DrizzleDatabase<TSchema>;\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);\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,\n\tctx: DatabaseProviderContext,\n\tensureOpen: () => void,\n\tquery: string,\n\targs: unknown[],\n\tlease?: { key: string; timeoutMs?: number },\n): Promise<TRow[]> {\n\tensureOpen();\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\tlease,\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, lease);\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(\n\t\t\tquery,\n\t\t\t(row, columns) => {\n\t\t\t\tif (!columnNames) {\n\t\t\t\t\tcolumnNames = columns;\n\t\t\t\t}\n\t\t\t\tresults.push(rowToObject(row, columnNames));\n\t\t\t},\n\t\t\tlease,\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\tSqliteDatabase,\n} from \"@/common/database/config\";\nimport { toSqliteBindings } 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) => Promise<T>;\n\t};\n\nconst MIGRATION_LEASE_TIMEOUT_MS = 60_000;\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\ninterface DrizzleDatabaseFactoryConfig<TSchema extends DrizzleSchema> {\n\tschema?: TSchema;\n\tmigrations?: DrizzleMigrations;\n\tonMigrate?: (db: DrizzleDatabase<TSchema>) => Promise<void> | void;\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}: DrizzleDatabaseFactoryConfig<TSchema> = {}): DatabaseProvider<\n\tDrizzleDatabase<TSchema>\n> {\n\treturn {\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 transactionActive = 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 = (lease?: {\n\t\t\t\tkey: string;\n\t\t\t\ttimeoutMs?: number;\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\tif (!lease && transactionActive) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\"Use the tx argument inside db.transaction(); the outer database client cannot run work from the transaction callback.\",\n\t\t\t\t\t\t);\n\t\t\t\t\t}\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 nativeDb.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\tlease,\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\tnativeDb,\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\tlease,\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): Promise<T> => {\n\t\t\t\t\tif (lease || transactionActive) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\"Nested or concurrent db.transaction() calls are not supported.\",\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tconst transactionLease = { key: crypto.randomUUID() };\n\t\t\t\t\tconst tx = createDrizzleClient(transactionLease);\n\t\t\t\t\tawait nativeDb.execute(\n\t\t\t\t\t\t\"BEGIN\",\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\ttransactionLease,\n\t\t\t\t\t);\n\t\t\t\t\ttransactionActive = 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 nativeDb.execute(\n\t\t\t\t\t\t\t\"COMMIT\",\n\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\ttransactionLease,\n\t\t\t\t\t\t);\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 nativeDb.execute(\n\t\t\t\t\t\t\t\t\"ROLLBACK\",\n\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\t\ttransactionLease,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\t// Preserve the callback or commit error after lease poisoning.\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow error;\n\t\t\t\t\t} finally {\n\t\t\t\t\t\ttransactionActive = false;\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tdrizzleDb.__withSqliteLease = async <T>(\n\t\t\t\t\ttimeoutMs: number,\n\t\t\t\t\tleaseCallback: (leased: RawAccess) => Promise<T> | T,\n\t\t\t\t): Promise<T> => {\n\t\t\t\t\tconst internalLease = {\n\t\t\t\t\t\tkey: crypto.randomUUID(),\n\t\t\t\t\t\ttimeoutMs,\n\t\t\t\t\t};\n\t\t\t\t\treturn await leaseCallback(\n\t\t\t\t\t\tcreateDrizzleClient(internalLease),\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\treturn createDrizzleClient();\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.__withSqliteLease(\n\t\tMIGRATION_LEASE_TIMEOUT_MS,\n\t\tasync (leasedAccess) => {\n\t\t\tconst leased = leasedAccess as DrizzleDatabase<TSchema>;\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);\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,\n\tctx: DatabaseProviderContext,\n\tensureOpen: () => void,\n\tquery: string,\n\targs: unknown[],\n\tlease?: { key: string; timeoutMs?: number },\n): Promise<TRow[]> {\n\tensureOpen();\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\tlease,\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, lease);\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(\n\t\t\tquery,\n\t\t\t(row, columns) => {\n\t\t\t\tif (!columnNames) {\n\t\t\t\t\tcolumnNames = columns;\n\t\t\t\t}\n\t\t\t\tresults.push(rowToObject(row, columnNames));\n\t\t\t},\n\t\t\tlease,\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 +1 @@
1
- {"version":3,"sources":["../../../src/db/drizzle.ts","../../../src/utils/crypto.ts"],"sourcesContent":["import {\n\tdrizzle,\n\ttype RemoteCallback,\n\ttype SqliteRemoteDatabase,\n} from \"drizzle-orm/sqlite-proxy\";\nimport type {\n\tDatabaseProvider,\n\tDatabaseProviderContext,\n\tRawAccess,\n\tSqliteDatabase,\n} from \"@/common/database/config\";\nimport { toSqliteBindings } 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: (\n\t\t\t\ttx: DrizzleDatabase<TSchema>,\n\t\t\t) => Promise<T> | T,\n\t\t) => Promise<T>;\n\t};\n\nconst MIGRATION_LEASE_TIMEOUT_MS = 60_000;\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\ninterface DrizzleDatabaseFactoryConfig<TSchema extends DrizzleSchema> {\n\tschema?: TSchema;\n\tmigrations?: DrizzleMigrations;\n\tonMigrate?: (db: DrizzleDatabase<TSchema>) => Promise<void> | void;\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}: DrizzleDatabaseFactoryConfig<TSchema> = {}): DatabaseProvider<\n\tDrizzleDatabase<TSchema>\n> {\n\treturn {\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 transactionActive = 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 = (lease?: {\n\t\t\t\tkey: string;\n\t\t\t\ttimeoutMs?: number;\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\tif (!lease && transactionActive) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\"Use the tx argument inside db.transaction(); the outer database client cannot run work from the transaction callback.\",\n\t\t\t\t\t\t);\n\t\t\t\t\t}\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 nativeDb.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\tlease,\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\tnativeDb,\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\tlease,\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): Promise<T> => {\n\t\t\t\t\tif (lease || transactionActive) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\"Nested or concurrent db.transaction() calls are not supported.\",\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tconst transactionLease = { key: crypto.randomUUID() };\n\t\t\t\t\tconst tx = createDrizzleClient(transactionLease);\n\t\t\t\t\tawait nativeDb.execute(\n\t\t\t\t\t\t\"BEGIN\",\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\ttransactionLease,\n\t\t\t\t\t);\n\t\t\t\t\ttransactionActive = 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 nativeDb.execute(\n\t\t\t\t\t\t\t\"COMMIT\",\n\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\ttransactionLease,\n\t\t\t\t\t\t);\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 nativeDb.execute(\n\t\t\t\t\t\t\t\t\"ROLLBACK\",\n\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\t\ttransactionLease,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\t// Preserve the callback or commit error after lease poisoning.\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow error;\n\t\t\t\t\t} finally {\n\t\t\t\t\t\ttransactionActive = false;\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tdrizzleDb.__withSqliteLease = async <T>(\n\t\t\t\t\ttimeoutMs: number,\n\t\t\t\t\tleaseCallback: (leased: RawAccess) => Promise<T> | T,\n\t\t\t\t): Promise<T> => {\n\t\t\t\t\tconst internalLease = {\n\t\t\t\t\t\tkey: crypto.randomUUID(),\n\t\t\t\t\t\ttimeoutMs,\n\t\t\t\t\t};\n\t\t\t\t\treturn await leaseCallback(\n\t\t\t\t\t\tcreateDrizzleClient(internalLease),\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\treturn createDrizzleClient();\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.__withSqliteLease(\n\t\tMIGRATION_LEASE_TIMEOUT_MS,\n\t\tasync (leasedAccess) => {\n\t\t\tconst leased = leasedAccess as DrizzleDatabase<TSchema>;\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);\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,\n\tctx: DatabaseProviderContext,\n\tensureOpen: () => void,\n\tquery: string,\n\targs: unknown[],\n\tlease?: { key: string; timeoutMs?: number },\n): Promise<TRow[]> {\n\tensureOpen();\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\tlease,\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, lease);\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(\n\t\t\tquery,\n\t\t\t(row, columns) => {\n\t\t\t\tif (!columnNames) {\n\t\t\t\t\tcolumnNames = columns;\n\t\t\t\t}\n\t\t\t\tresults.push(rowToObject(row, columnNames));\n\t\t\t},\n\t\t\tlease,\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"],"mappings":"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","names":["db"]}
1
+ {"version":3,"sources":["../../../src/db/drizzle.ts","../../../src/utils/crypto.ts"],"sourcesContent":["import {\n\tdrizzle,\n\ttype RemoteCallback,\n\ttype SqliteRemoteDatabase,\n} from \"drizzle-orm/sqlite-proxy\";\nimport type {\n\tDatabaseProvider,\n\tDatabaseProviderContext,\n\tRawAccess,\n\tSqliteDatabase,\n} from \"@/common/database/config\";\nimport { toSqliteBindings } 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) => Promise<T>;\n\t};\n\nconst MIGRATION_LEASE_TIMEOUT_MS = 60_000;\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\ninterface DrizzleDatabaseFactoryConfig<TSchema extends DrizzleSchema> {\n\tschema?: TSchema;\n\tmigrations?: DrizzleMigrations;\n\tonMigrate?: (db: DrizzleDatabase<TSchema>) => Promise<void> | void;\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}: DrizzleDatabaseFactoryConfig<TSchema> = {}): DatabaseProvider<\n\tDrizzleDatabase<TSchema>\n> {\n\treturn {\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 transactionActive = 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 = (lease?: {\n\t\t\t\tkey: string;\n\t\t\t\ttimeoutMs?: number;\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\tif (!lease && transactionActive) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\"Use the tx argument inside db.transaction(); the outer database client cannot run work from the transaction callback.\",\n\t\t\t\t\t\t);\n\t\t\t\t\t}\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 nativeDb.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\tlease,\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\tnativeDb,\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\tlease,\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): Promise<T> => {\n\t\t\t\t\tif (lease || transactionActive) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\"Nested or concurrent db.transaction() calls are not supported.\",\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tconst transactionLease = { key: crypto.randomUUID() };\n\t\t\t\t\tconst tx = createDrizzleClient(transactionLease);\n\t\t\t\t\tawait nativeDb.execute(\n\t\t\t\t\t\t\"BEGIN\",\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\ttransactionLease,\n\t\t\t\t\t);\n\t\t\t\t\ttransactionActive = 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 nativeDb.execute(\n\t\t\t\t\t\t\t\"COMMIT\",\n\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\ttransactionLease,\n\t\t\t\t\t\t);\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 nativeDb.execute(\n\t\t\t\t\t\t\t\t\"ROLLBACK\",\n\t\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\t\ttransactionLease,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\t// Preserve the callback or commit error after lease poisoning.\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow error;\n\t\t\t\t\t} finally {\n\t\t\t\t\t\ttransactionActive = false;\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tdrizzleDb.__withSqliteLease = async <T>(\n\t\t\t\t\ttimeoutMs: number,\n\t\t\t\t\tleaseCallback: (leased: RawAccess) => Promise<T> | T,\n\t\t\t\t): Promise<T> => {\n\t\t\t\t\tconst internalLease = {\n\t\t\t\t\t\tkey: crypto.randomUUID(),\n\t\t\t\t\t\ttimeoutMs,\n\t\t\t\t\t};\n\t\t\t\t\treturn await leaseCallback(\n\t\t\t\t\t\tcreateDrizzleClient(internalLease),\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\treturn createDrizzleClient();\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.__withSqliteLease(\n\t\tMIGRATION_LEASE_TIMEOUT_MS,\n\t\tasync (leasedAccess) => {\n\t\t\tconst leased = leasedAccess as DrizzleDatabase<TSchema>;\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);\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,\n\tctx: DatabaseProviderContext,\n\tensureOpen: () => void,\n\tquery: string,\n\targs: unknown[],\n\tlease?: { key: string; timeoutMs?: number },\n): Promise<TRow[]> {\n\tensureOpen();\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\tlease,\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, lease);\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(\n\t\t\tquery,\n\t\t\t(row, columns) => {\n\t\t\t\tif (!columnNames) {\n\t\t\t\t\tcolumnNames = columns;\n\t\t\t\t}\n\t\t\t\tresults.push(rowToObject(row, columnNames));\n\t\t\t},\n\t\t\tlease,\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"],"mappings":"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","names":["db"]}
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkOAPVVVTXcjs = require('../chunk-OAPVVVTX.cjs');
3
+ var _chunkHTREBONFcjs = require('../chunk-HTREBONF.cjs');
4
4
 
5
5
  // src/dynamic/internal.ts
6
6
  var DYNAMIC_ACTOR_DEFINITION_SYMBOL = /* @__PURE__ */ Symbol.for(
@@ -9,7 +9,7 @@ var DYNAMIC_ACTOR_DEFINITION_SYMBOL = /* @__PURE__ */ Symbol.for(
9
9
 
10
10
  // src/dynamic/mod.ts
11
11
  function dynamicActor(input) {
12
- const config = _chunkOAPVVVTXcjs.ActorConfigSchema.parse({
12
+ const config = _chunkHTREBONFcjs.ActorConfigSchema.parse({
13
13
  actions: {}
14
14
  });
15
15
  return {
@@ -1,4 +1,4 @@
1
- import { A as AnyActorDefinition } from '../config-CxG53eQo.cjs';
1
+ import { A as AnyActorDefinition } from '../config-BARPNFvr.cjs';
2
2
  import 'zod/v4';
3
3
  import '../config-DLOxy81E.cjs';
4
4
  import '@rivetkit/rivetkit-wasm';
@@ -1,4 +1,4 @@
1
- import { A as AnyActorDefinition } from '../config-Ds6DCRhV.js';
1
+ import { A as AnyActorDefinition } from '../config-BkLXikR2.js';
2
2
  import 'zod/v4';
3
3
  import '../config-DLOxy81E.js';
4
4
  import '@rivetkit/rivetkit-wasm';
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ActorConfigSchema
3
- } from "../chunk-3GLNEWGY.js";
3
+ } from "../chunk-ARD7UMSN.js";
4
4
 
5
5
  // src/dynamic/internal.ts
6
6
  var DYNAMIC_ACTOR_DEFINITION_SYMBOL = /* @__PURE__ */ Symbol.for(
@@ -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 _chunkAESHILFVcjs = require('../chunk-AESHILFV.cjs');
3
+ var _chunkPVR4LVX2cjs = require('../chunk-PVR4LVX2.cjs');
4
4
 
5
5
 
6
6
 
7
- var _chunkGUCITCR3cjs = require('../chunk-GUCITCR3.cjs');
8
- require('../chunk-VDTC257X.cjs');
9
- require('../chunk-7DDQA6KN.cjs');
7
+ var _chunkUEDIZR2Mcjs = require('../chunk-UEDIZR2M.cjs');
8
+ require('../chunk-LIEQDMZ6.cjs');
9
+ require('../chunk-MFLAOS2S.cjs');
10
10
  require('../chunk-4FC7TVS6.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 = _chunkAESHILFVcjs.createWorkflowInspectorAdapter; exports.decodeToClient = decodeToClient; exports.decodeToServer = decodeToServer; exports.decodeWorkflowHistoryTransport = _chunkGUCITCR3cjs.decodeWorkflowHistoryTransport; exports.encodeToClient = encodeToClient; exports.encodeToServer = encodeToServer; exports.encodeWorkflowHistoryTransport = _chunkGUCITCR3cjs.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;
799
+ exports.createWorkflowInspectorAdapter = _chunkPVR4LVX2cjs.createWorkflowInspectorAdapter; exports.decodeToClient = decodeToClient; exports.decodeToServer = decodeToServer; exports.decodeWorkflowHistoryTransport = _chunkUEDIZR2Mcjs.decodeWorkflowHistoryTransport; exports.encodeToClient = encodeToClient; exports.encodeToServer = encodeToServer; exports.encodeWorkflowHistoryTransport = _chunkUEDIZR2Mcjs.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
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  createWorkflowInspectorAdapter
3
- } from "../chunk-FUS4OFX5.js";
3
+ } from "../chunk-E4X3JSN7.js";
4
4
  import {
5
5
  decodeWorkflowHistoryTransport,
6
6
  encodeWorkflowHistoryTransport
7
- } from "../chunk-LTMSYD2A.js";
8
- import "../chunk-X4BXYDTG.js";
9
- import "../chunk-EFQCNJ23.js";
7
+ } from "../chunk-Q3ODMSBE.js";
8
+ import "../chunk-D2JJWLWM.js";
9
+ import "../chunk-FFJXFXEW.js";
10
10
  import "../chunk-ZZ3WBRPD.js";
11
11
 
12
12
  // src/common/bare/generated/inspector/v5.ts
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var _chunkOAPVVVTXcjs = require('../chunk-OAPVVVTX.cjs');
8
+ var _chunkHTREBONFcjs = require('../chunk-HTREBONF.cjs');
9
9
 
10
10
  // src/inspector-tab/mod.ts
11
11
  var _zod = require('zod');
@@ -158,5 +158,5 @@ var InspectorQueueResponseSchema = _zod.z.object({
158
158
 
159
159
 
160
160
 
161
- exports.ACTOR_ID_PARAM = ACTOR_ID_PARAM; exports.ActorInspectorConfigSchema = _chunkOAPVVVTXcjs.ActorInspectorConfigSchema; exports.BUILTIN_INSPECTOR_TAB_IDS = _chunkOAPVVVTXcjs.BUILTIN_INSPECTOR_TAB_IDS; exports.BuiltinInspectorTabIdSchema = _chunkOAPVVVTXcjs.BuiltinInspectorTabIdSchema; exports.CustomInspectorTabEntrySchema = _chunkOAPVVVTXcjs.CustomInspectorTabEntrySchema; exports.HideInspectorTabEntrySchema = _chunkOAPVVVTXcjs.HideInspectorTabEntrySchema; exports.InspectorActionRequestSchema = InspectorActionRequestSchema; exports.InspectorActionResponseSchema = InspectorActionResponseSchema; exports.InspectorConnectionSchema = InspectorConnectionSchema; exports.InspectorConnectionsResponseSchema = InspectorConnectionsResponseSchema; exports.InspectorQueueMessageSchema = InspectorQueueMessageSchema; exports.InspectorQueueResponseSchema = InspectorQueueResponseSchema; exports.InspectorRpcsResponseSchema = InspectorRpcsResponseSchema; exports.InspectorStateResponseSchema = InspectorStateResponseSchema; exports.InspectorTabDescriptorSchema = InspectorTabDescriptorSchema; exports.InspectorTabEntrySchema = _chunkOAPVVVTXcjs.InspectorTabEntrySchema; exports.POSTMESSAGE_PROTOCOL_VERSION = POSTMESSAGE_PROTOCOL_VERSION; exports.SHELL_ORIGIN_PARAM = SHELL_ORIGIN_PARAM; exports.ShellToTabMessageSchema = ShellToTabMessageSchema; exports.TabToShellMessageSchema = TabToShellMessageSchema; exports.V1InitSchema = V1InitSchema; exports.V1ReadySchema = V1ReadySchema; exports.V1SetActiveTabSchema = V1SetActiveTabSchema; exports.V1TabsAvailableSchema = V1TabsAvailableSchema; exports.V1TokenRefreshNeededSchema = V1TokenRefreshNeededSchema;
161
+ exports.ACTOR_ID_PARAM = ACTOR_ID_PARAM; exports.ActorInspectorConfigSchema = _chunkHTREBONFcjs.ActorInspectorConfigSchema; exports.BUILTIN_INSPECTOR_TAB_IDS = _chunkHTREBONFcjs.BUILTIN_INSPECTOR_TAB_IDS; exports.BuiltinInspectorTabIdSchema = _chunkHTREBONFcjs.BuiltinInspectorTabIdSchema; exports.CustomInspectorTabEntrySchema = _chunkHTREBONFcjs.CustomInspectorTabEntrySchema; exports.HideInspectorTabEntrySchema = _chunkHTREBONFcjs.HideInspectorTabEntrySchema; exports.InspectorActionRequestSchema = InspectorActionRequestSchema; exports.InspectorActionResponseSchema = InspectorActionResponseSchema; exports.InspectorConnectionSchema = InspectorConnectionSchema; exports.InspectorConnectionsResponseSchema = InspectorConnectionsResponseSchema; exports.InspectorQueueMessageSchema = InspectorQueueMessageSchema; exports.InspectorQueueResponseSchema = InspectorQueueResponseSchema; exports.InspectorRpcsResponseSchema = InspectorRpcsResponseSchema; exports.InspectorStateResponseSchema = InspectorStateResponseSchema; exports.InspectorTabDescriptorSchema = InspectorTabDescriptorSchema; exports.InspectorTabEntrySchema = _chunkHTREBONFcjs.InspectorTabEntrySchema; exports.POSTMESSAGE_PROTOCOL_VERSION = POSTMESSAGE_PROTOCOL_VERSION; exports.SHELL_ORIGIN_PARAM = SHELL_ORIGIN_PARAM; exports.ShellToTabMessageSchema = ShellToTabMessageSchema; exports.TabToShellMessageSchema = TabToShellMessageSchema; exports.V1InitSchema = V1InitSchema; exports.V1ReadySchema = V1ReadySchema; exports.V1SetActiveTabSchema = V1SetActiveTabSchema; exports.V1TabsAvailableSchema = V1TabsAvailableSchema; exports.V1TokenRefreshNeededSchema = V1TokenRefreshNeededSchema;
162
162
  //# sourceMappingURL=mod.cjs.map
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
- import { a0 as CustomInspectorTabEntrySchema, ae as HideInspectorTabEntrySchema, af as InspectorTabEntrySchema } from '../config-CxG53eQo.cjs';
3
- export { s as ActorInspectorConfig, t as ActorInspectorConfigSchema, U as BUILTIN_INSPECTOR_TAB_IDS, X as BuiltinInspectorTabIdSchema } from '../config-CxG53eQo.cjs';
2
+ import { a0 as CustomInspectorTabEntrySchema, ae as HideInspectorTabEntrySchema, af as InspectorTabEntrySchema } from '../config-BARPNFvr.cjs';
3
+ export { s as ActorInspectorConfig, t as ActorInspectorConfigSchema, U as BUILTIN_INSPECTOR_TAB_IDS, X as BuiltinInspectorTabIdSchema } from '../config-BARPNFvr.cjs';
4
4
  import 'zod/v4';
5
5
  import '../config-DLOxy81E.cjs';
6
6
  import '@rivetkit/rivetkit-wasm';
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
- import { a0 as CustomInspectorTabEntrySchema, ae as HideInspectorTabEntrySchema, af as InspectorTabEntrySchema } from '../config-Ds6DCRhV.js';
3
- export { s as ActorInspectorConfig, t as ActorInspectorConfigSchema, U as BUILTIN_INSPECTOR_TAB_IDS, X as BuiltinInspectorTabIdSchema } from '../config-Ds6DCRhV.js';
2
+ import { a0 as CustomInspectorTabEntrySchema, ae as HideInspectorTabEntrySchema, af as InspectorTabEntrySchema } from '../config-BkLXikR2.js';
3
+ export { s as ActorInspectorConfig, t as ActorInspectorConfigSchema, U as BUILTIN_INSPECTOR_TAB_IDS, X as BuiltinInspectorTabIdSchema } from '../config-BkLXikR2.js';
4
4
  import 'zod/v4';
5
5
  import '../config-DLOxy81E.js';
6
6
  import '@rivetkit/rivetkit-wasm';
@@ -5,7 +5,7 @@ import {
5
5
  CustomInspectorTabEntrySchema,
6
6
  HideInspectorTabEntrySchema,
7
7
  InspectorTabEntrySchema
8
- } from "../chunk-3GLNEWGY.js";
8
+ } from "../chunk-ARD7UMSN.js";
9
9
 
10
10
  // src/inspector-tab/mod.ts
11
11
  import { z } from "zod";