@effect/sql-sqlite-do 4.0.0-beta.66 → 4.0.0-beta.67

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.
@@ -1,5 +1,23 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Provides an Effect SQL client for Cloudflare Durable Object SQLite storage.
3
+ *
4
+ * This module adapts a Durable Object `SqlStorage` handle into both the
5
+ * Durable Object-specific `SqliteClient` service and the generic Effect
6
+ * `SqlClient` service. Use it from inside a Durable Object to run local
7
+ * per-object queries, repositories, migrations, transactional read/write
8
+ * workflows, and tests that exercise Cloudflare's SQLite-backed storage API.
9
+ *
10
+ * Durable Object SQLite storage is scoped to one object id, so each object
11
+ * instance has its own database and callers should pass the same `SqlStorage`
12
+ * handle that the object uses for normal reads and writes. This adapter
13
+ * serializes Effect SQL access through one connection; a transaction holds that
14
+ * permit for the lifetime of its scope, so keep transactions short, avoid
15
+ * suspending them across unrelated work, and use them when multi-statement
16
+ * writes must commit atomically. `SqlStorage.exec` returns `ArrayBuffer` values
17
+ * for SQLite blobs, which this client normalizes to `Uint8Array`, and SQLite
18
+ * does not support `updateValues`.
19
+ *
20
+ * @since 4.0.0
3
21
  */
4
22
  import type { SqlStorage } from "@cloudflare/workers-types";
5
23
  import * as Config from "effect/Config";
@@ -10,18 +28,24 @@ import * as Scope from "effect/Scope";
10
28
  import * as Reactivity from "effect/unstable/reactivity/Reactivity";
11
29
  import * as Client from "effect/unstable/sql/SqlClient";
12
30
  /**
31
+ * Runtime type identifier used to mark Cloudflare Durable Object `SqliteClient` values.
32
+ *
13
33
  * @category type ids
14
- * @since 1.0.0
34
+ * @since 4.0.0
15
35
  */
16
36
  export declare const TypeId: TypeId;
17
37
  /**
38
+ * Type-level identifier used to mark Cloudflare Durable Object `SqliteClient` values.
39
+ *
18
40
  * @category type ids
19
- * @since 1.0.0
41
+ * @since 4.0.0
20
42
  */
21
43
  export type TypeId = "~@effect/sql-sqlite-do/SqliteClient";
22
44
  /**
45
+ * Cloudflare Durable Object SQLite client service, extending `SqlClient` with its configuration. `updateValues` is not supported.
46
+ *
23
47
  * @category models
24
- * @since 1.0.0
48
+ * @since 4.0.0
25
49
  */
26
50
  export interface SqliteClient extends Client.SqlClient {
27
51
  readonly [TypeId]: TypeId;
@@ -30,13 +54,17 @@ export interface SqliteClient extends Client.SqlClient {
30
54
  readonly updateValues: never;
31
55
  }
32
56
  /**
57
+ * Context tag used to access the Cloudflare Durable Object `SqliteClient` service.
58
+ *
33
59
  * @category tags
34
- * @since 1.0.0
60
+ * @since 4.0.0
35
61
  */
36
62
  export declare const SqliteClient: Context.Service<SqliteClient, SqliteClient>;
37
63
  /**
64
+ * Configuration for a Cloudflare Durable Object SQLite client, including the `SqlStorage` handle, span attributes, and query/result name transforms.
65
+ *
38
66
  * @category models
39
- * @since 1.0.0
67
+ * @since 4.0.0
40
68
  */
41
69
  export interface SqliteClientConfig {
42
70
  readonly db: SqlStorage;
@@ -45,18 +73,24 @@ export interface SqliteClientConfig {
45
73
  readonly transformQueryNames?: ((str: string) => string) | undefined;
46
74
  }
47
75
  /**
76
+ * Creates a scoped Cloudflare Durable Object SQLite client around `SqlStorage`, serializing access and converting returned `ArrayBuffer` values to `Uint8Array`.
77
+ *
48
78
  * @category constructor
49
- * @since 1.0.0
79
+ * @since 4.0.0
50
80
  */
51
81
  export declare const make: (options: SqliteClientConfig) => Effect.Effect<SqliteClient, never, Scope.Scope | Reactivity.Reactivity>;
52
82
  /**
83
+ * Creates a layer from a `Config`-wrapped Durable Object SQLite client configuration, providing both `SqliteClient` and `SqlClient`.
84
+ *
53
85
  * @category layers
54
- * @since 1.0.0
86
+ * @since 4.0.0
55
87
  */
56
88
  export declare const layerConfig: (config: Config.Wrap<SqliteClientConfig>) => Layer.Layer<SqliteClient | Client.SqlClient, Config.ConfigError>;
57
89
  /**
90
+ * Creates a layer from a concrete Durable Object SQLite client configuration, providing both `SqliteClient` and `SqlClient`.
91
+ *
58
92
  * @category layers
59
- * @since 1.0.0
93
+ * @since 4.0.0
60
94
  */
61
95
  export declare const layer: (config: SqliteClientConfig) => Layer.Layer<SqliteClient | Client.SqlClient>;
62
96
  //# sourceMappingURL=SqliteClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SqliteClient.d.ts","sourceRoot":"","sources":["../src/SqliteClient.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC,OAAO,KAAK,UAAU,MAAM,uCAAuC,CAAA;AACnE,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAA;AAUvD;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,MAA8C,CAAA;AAEnE;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,qCAAqC,CAAA;AAE1D;;;GAGG;AACH,MAAM,WAAW,YAAa,SAAQ,MAAM,CAAC,SAAS;IACpD,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAA;IAEnC,8BAA8B;IAC9B,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAA;CAC7B;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,6CAAsE,CAAA;AAE/F;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAA;IACvB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IAE7D,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAA;IACrE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAA;CACrE;AAED;;;GAGG;AACH,eAAO,MAAM,IAAI,GACf,SAAS,kBAAkB,KAC1B,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,UAAU,CAmHrE,CAAA;AAEJ;;;GAGG;AACH,eAAO,MAAM,WAAW,GACtB,QAAQ,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,KACtC,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,CAUzB,CAAA;AAEzC;;;GAGG;AACH,eAAO,MAAM,KAAK,GAChB,QAAQ,kBAAkB,KACzB,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,SAAS,CAML,CAAA"}
1
+ {"version":3,"file":"SqliteClient.d.ts","sourceRoot":"","sources":["../src/SqliteClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC,OAAO,KAAK,UAAU,MAAM,uCAAuC,CAAA;AACnE,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAA;AAUvD;;;;;GAKG;AACH,eAAO,MAAM,MAAM,EAAE,MAA8C,CAAA;AAEnE;;;;;GAKG;AACH,MAAM,MAAM,MAAM,GAAG,qCAAqC,CAAA;AAE1D;;;;;GAKG;AACH,MAAM,WAAW,YAAa,SAAQ,MAAM,CAAC,SAAS;IACpD,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAA;IAEnC,8BAA8B;IAC9B,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAA;CAC7B;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY,6CAAsE,CAAA;AAE/F;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAA;IACvB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IAE7D,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAA;IACrE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAA;CACrE;AAED;;;;;GAKG;AACH,eAAO,MAAM,IAAI,GACf,SAAS,kBAAkB,KAC1B,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,UAAU,CAmHrE,CAAA;AAEJ;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GACtB,QAAQ,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,KACtC,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,CAUzB,CAAA;AAEzC;;;;;GAKG;AACH,eAAO,MAAM,KAAK,GAChB,QAAQ,kBAAkB,KACzB,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,SAAS,CAML,CAAA"}
@@ -17,18 +17,24 @@ const classifyError = (cause, message, operation) => classifySqliteError(cause,
17
17
  operation
18
18
  });
19
19
  /**
20
+ * Runtime type identifier used to mark Cloudflare Durable Object `SqliteClient` values.
21
+ *
20
22
  * @category type ids
21
- * @since 1.0.0
23
+ * @since 4.0.0
22
24
  */
23
25
  export const TypeId = "~@effect/sql-sqlite-do/SqliteClient";
24
26
  /**
27
+ * Context tag used to access the Cloudflare Durable Object `SqliteClient` service.
28
+ *
25
29
  * @category tags
26
- * @since 1.0.0
30
+ * @since 4.0.0
27
31
  */
28
32
  export const SqliteClient = /*#__PURE__*/Context.Service("@effect/sql-sqlite-do/SqliteClient");
29
33
  /**
34
+ * Creates a scoped Cloudflare Durable Object SQLite client around `SqlStorage`, serializing access and converting returned `ArrayBuffer` values to `Uint8Array`.
35
+ *
30
36
  * @category constructor
31
- * @since 1.0.0
37
+ * @since 4.0.0
32
38
  */
33
39
  export const make = options => Effect.gen(function* () {
34
40
  const compiler = Statement.makeCompilerSqlite(options.transformQueryNames);
@@ -108,13 +114,17 @@ export const make = options => Effect.gen(function* () {
108
114
  });
109
115
  });
110
116
  /**
117
+ * Creates a layer from a `Config`-wrapped Durable Object SQLite client configuration, providing both `SqliteClient` and `SqlClient`.
118
+ *
111
119
  * @category layers
112
- * @since 1.0.0
120
+ * @since 4.0.0
113
121
  */
114
122
  export const layerConfig = config => Layer.effectContext(Config.unwrap(config).pipe(Effect.flatMap(make), Effect.map(client => Context.make(SqliteClient, client).pipe(Context.add(Client.SqlClient, client))))).pipe(Layer.provide(Reactivity.layer));
115
123
  /**
124
+ * Creates a layer from a concrete Durable Object SQLite client configuration, providing both `SqliteClient` and `SqlClient`.
125
+ *
116
126
  * @category layers
117
- * @since 1.0.0
127
+ * @since 4.0.0
118
128
  */
119
129
  export const layer = config => Layer.effectContext(Effect.map(make(config), client => Context.make(SqliteClient, client).pipe(Context.add(Client.SqlClient, client)))).pipe(Layer.provide(Reactivity.layer));
120
130
  //# sourceMappingURL=SqliteClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SqliteClient.js","names":["Config","Context","Effect","Fiber","identity","Layer","Scope","Semaphore","Stream","Reactivity","Client","classifySqliteError","SqlError","Statement","ATTR_DB_SYSTEM_NAME","classifyError","cause","message","operation","TypeId","SqliteClient","Service","make","options","gen","compiler","makeCompilerSqlite","transformQueryNames","transformRows","transformResultNames","defaultTransforms","array","undefined","makeConnection","db","runIterator","sql","params","cursor","exec","columns","columnNames","result","raw","obj","i","length","value","ArrayBuffer","Uint8Array","runStatement","try","Array","from","catch","reason","runValues","row","execute","map","executeRaw","executeValues","executeUnprepared","executeStream","suspend","iterator","fromIteratorSucceed","pipe","mapArray","chunk","semaphore","connection","acquirer","withPermits","succeed","transactionAcquirer","uninterruptibleMask","restore","fiber","getCurrent","scope","getUnsafe","context","as","tap","take","addFinalizer","release","Object","assign","spanAttributes","entries","config","layerConfig","effectContext","unwrap","flatMap","client","add","SqlClient","provide","layer"],"sources":["../src/SqliteClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SqliteClient.js","names":["Config","Context","Effect","Fiber","identity","Layer","Scope","Semaphore","Stream","Reactivity","Client","classifySqliteError","SqlError","Statement","ATTR_DB_SYSTEM_NAME","classifyError","cause","message","operation","TypeId","SqliteClient","Service","make","options","gen","compiler","makeCompilerSqlite","transformQueryNames","transformRows","transformResultNames","defaultTransforms","array","undefined","makeConnection","db","runIterator","sql","params","cursor","exec","columns","columnNames","result","raw","obj","i","length","value","ArrayBuffer","Uint8Array","runStatement","try","Array","from","catch","reason","runValues","row","execute","map","executeRaw","executeValues","executeUnprepared","executeStream","suspend","iterator","fromIteratorSucceed","pipe","mapArray","chunk","semaphore","connection","acquirer","withPermits","succeed","transactionAcquirer","uninterruptibleMask","restore","fiber","getCurrent","scope","getUnsafe","context","as","tap","take","addFinalizer","release","Object","assign","spanAttributes","entries","config","layerConfig","effectContext","unwrap","flatMap","client","add","SqlClient","provide","layer"],"sources":["../src/SqliteClient.ts"],"sourcesContent":[null],"mappings":"AAsBA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,SAASC,QAAQ,QAAQ,iBAAiB;AAC1C,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,SAAS,MAAM,kBAAkB;AAC7C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,UAAU,MAAM,uCAAuC;AACnE,OAAO,KAAKC,MAAM,MAAM,+BAA+B;AAEvD,SAASC,mBAAmB,EAAEC,QAAQ,QAAQ,8BAA8B;AAC5E,OAAO,KAAKC,SAAS,MAAM,+BAA+B;AAE1D,MAAMC,mBAAmB,GAAG,gBAAgB;AAE5C,MAAMC,aAAa,GAAGA,CAACC,KAAc,EAAEC,OAAe,EAAEC,SAAiB,KACvEP,mBAAmB,CAACK,KAAK,EAAE;EAAEC,OAAO;EAAEC;AAAS,CAAE,CAAC;AAEpD;;;;;;AAMA,OAAO,MAAMC,MAAM,GAAW,qCAAqC;AAwBnE;;;;;;AAMA,OAAO,MAAMC,YAAY,gBAAGnB,OAAO,CAACoB,OAAO,CAAe,oCAAoC,CAAC;AAgB/F;;;;;;AAMA,OAAO,MAAMC,IAAI,GACfC,OAA2B,IAE3BrB,MAAM,CAACsB,GAAG,CAAC,aAAS;EAClB,MAAMC,QAAQ,GAAGZ,SAAS,CAACa,kBAAkB,CAACH,OAAO,CAACI,mBAAmB,CAAC;EAC1E,MAAMC,aAAa,GAAGL,OAAO,CAACM,oBAAoB,GAC9ChB,SAAS,CAACiB,iBAAiB,CAACP,OAAO,CAACM,oBAAoB,CAAC,CAACE,KAAK,GAC/DC,SAAS;EAEb,MAAMC,cAAc,GAAG/B,MAAM,CAACsB,GAAG,CAAC,aAAS;IACzC,MAAMU,EAAE,GAAGX,OAAO,CAACW,EAAE;IAErB,UAAUC,WAAWA,CACnBC,GAAW,EACXC,MAAA,GAAiC,EAAE;MAEnC,MAAMC,MAAM,GAAGJ,EAAE,CAACK,IAAI,CAACH,GAAG,EAAE,GAAGC,MAAM,CAAC;MACtC,MAAMG,OAAO,GAAGF,MAAM,CAACG,WAAW;MAClC,KAAK,MAAMC,MAAM,IAAIJ,MAAM,CAACK,GAAG,EAAE,EAAE;QACjC,MAAMC,GAAG,GAAQ,EAAE;QACnB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,OAAO,CAACM,MAAM,EAAED,CAAC,EAAE,EAAE;UACvC,MAAME,KAAK,GAAGL,MAAM,CAACG,CAAC,CAAC;UACvBD,GAAG,CAACJ,OAAO,CAACK,CAAC,CAAC,CAAC,GAAGE,KAAK,YAAYC,WAAW,GAAG,IAAIC,UAAU,CAACF,KAAK,CAAC,GAAGA,KAAK;QAChF;QACA,MAAMH,GAAG;MACX;IACF;IAEA,MAAMM,YAAY,GAAGA,CACnBd,GAAW,EACXC,MAAA,GAAiC,EAAE,KAEnCnC,MAAM,CAACiD,GAAG,CAAC;MACTA,GAAG,EAAEA,CAAA,KAAMC,KAAK,CAACC,IAAI,CAAClB,WAAW,CAACC,GAAG,EAAEC,MAAM,CAAC,CAAC;MAC/CiB,KAAK,EAAGtC,KAAK,IAAK,IAAIJ,QAAQ,CAAC;QAAE2C,MAAM,EAAExC,aAAa,CAACC,KAAK,EAAE,6BAA6B,EAAE,SAAS;MAAC,CAAE;KAC1G,CAAC;IAEJ,MAAMwC,SAAS,GAAGA,CAChBpB,GAAW,EACXC,MAAA,GAAiC,EAAE,KAEnCnC,MAAM,CAACiD,GAAG,CAAC;MACTA,GAAG,EAAEA,CAAA,KACHC,KAAK,CAACC,IAAI,CAACnB,EAAE,CAACK,IAAI,CAACH,GAAG,EAAE,GAAGC,MAAM,CAAC,CAACM,GAAG,EAAE,EAAGc,GAAG,IAAI;QAChD,KAAK,IAAIZ,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGY,GAAG,CAACX,MAAM,EAAED,CAAC,EAAE,EAAE;UACnC,MAAME,KAAK,GAAGU,GAAG,CAACZ,CAAC,CAAC;UACpB,IAAIE,KAAK,YAAYC,WAAW,EAAE;YAChCS,GAAG,CAACZ,CAAC,CAAC,GAAG,IAAII,UAAU,CAACF,KAAK,CAAQ;UACvC;QACF;QACA,OAAOU,GAAG;MACZ,CAAC,CAAC;MACJH,KAAK,EAAGtC,KAAK,IAAK,IAAIJ,QAAQ,CAAC;QAAE2C,MAAM,EAAExC,aAAa,CAACC,KAAK,EAAE,6BAA6B,EAAE,SAAS;MAAC,CAAE;KAC1G,CAAC;IAEJ,OAAOZ,QAAQ,CAAa;MAC1BsD,OAAOA,CAACtB,GAAG,EAAEC,MAAM,EAAET,aAAa;QAChC,OAAOA,aAAa,GAChB1B,MAAM,CAACyD,GAAG,CAACT,YAAY,CAACd,GAAG,EAAEC,MAAM,CAAC,EAAET,aAAa,CAAC,GACpDsB,YAAY,CAACd,GAAG,EAAEC,MAAM,CAAC;MAC/B,CAAC;MACDuB,UAAUA,CAACxB,GAAG,EAAEC,MAAM;QACpB,OAAOa,YAAY,CAACd,GAAG,EAAEC,MAAM,CAAC;MAClC,CAAC;MACDwB,aAAaA,CAACzB,GAAG,EAAEC,MAAM;QACvB,OAAOmB,SAAS,CAACpB,GAAG,EAAEC,MAAM,CAAC;MAC/B,CAAC;MACDyB,iBAAiBA,CAAC1B,GAAG,EAAEC,MAAM,EAAET,aAAa;QAC1C,OAAOA,aAAa,GAChB1B,MAAM,CAACyD,GAAG,CAACT,YAAY,CAACd,GAAG,EAAEC,MAAM,CAAC,EAAET,aAAa,CAAC,GACpDsB,YAAY,CAACd,GAAG,EAAEC,MAAM,CAAC;MAC/B,CAAC;MACD0B,aAAaA,CAAC3B,GAAG,EAAEC,MAAM,EAAET,aAAa;QACtC,OAAOpB,MAAM,CAACwD,OAAO,CAAC,MAAK;UACzB,MAAMC,QAAQ,GAAG9B,WAAW,CAACC,GAAG,EAAEC,MAAM,CAAC;UACzC,OAAO7B,MAAM,CAAC0D,mBAAmB,CAACD,QAAQ,EAAE,GAAG,CAAC;QAClD,CAAC,CAAC,CAACE,IAAI,CACLvC,aAAa,GACTpB,MAAM,CAAC4D,QAAQ,CAAEC,KAAK,IAAKzC,aAAa,CAACyC,KAAK,CAAQ,CAAC,GACvDjE,QAAQ,CACb;MACH;KACD,CAAC;EACJ,CAAC,CAAC;EAEF,MAAMkE,SAAS,GAAG,OAAO/D,SAAS,CAACe,IAAI,CAAC,CAAC,CAAC;EAC1C,MAAMiD,UAAU,GAAG,OAAOtC,cAAc;EAExC,MAAMuC,QAAQ,GAAGF,SAAS,CAACG,WAAW,CAAC,CAAC,CAAC,CAACvE,MAAM,CAACwE,OAAO,CAACH,UAAU,CAAC,CAAC;EACrE,MAAMI,mBAAmB,GAAGzE,MAAM,CAAC0E,mBAAmB,CAAEC,OAAO,IAAI;IACjE,MAAMC,KAAK,GAAG3E,KAAK,CAAC4E,UAAU,EAAG;IACjC,MAAMC,KAAK,GAAG/E,OAAO,CAACgF,SAAS,CAACH,KAAK,CAACI,OAAO,EAAE5E,KAAK,CAACA,KAAK,CAAC;IAC3D,OAAOJ,MAAM,CAACiF,EAAE,CACdjF,MAAM,CAACkF,GAAG,CACRP,OAAO,CAACP,SAAS,CAACe,IAAI,CAAC,CAAC,CAAC,CAAC,EAC1B,MAAM/E,KAAK,CAACgF,YAAY,CAACN,KAAK,EAAEV,SAAS,CAACiB,OAAO,CAAC,CAAC,CAAC,CAAC,CACtD,EACDhB,UAAU,CACX;EACH,CAAC,CAAC;EAEF,OAAOiB,MAAM,CAACC,MAAM,CACjB,OAAO/E,MAAM,CAACY,IAAI,CAAC;IAClBkD,QAAQ;IACR/C,QAAQ;IACRkD,mBAAmB;IACnBe,cAAc,EAAE,CACd,IAAInE,OAAO,CAACmE,cAAc,GAAGF,MAAM,CAACG,OAAO,CAACpE,OAAO,CAACmE,cAAc,CAAC,GAAG,EAAE,CAAC,EACzE,CAAC5E,mBAAmB,EAAE,QAAQ,CAAC,CAChC;IACDc;GACD,CAAC,EACF;IACE,CAACT,MAAM,GAAGA,MAAgB;IAC1ByE,MAAM,EAAErE;GACT,CACF;AACH,CAAC,CAAC;AAEJ;;;;;;AAMA,OAAO,MAAMsE,WAAW,GACtBD,MAAuC,IAEvCvF,KAAK,CAACyF,aAAa,CACjB9F,MAAM,CAAC+F,MAAM,CAACH,MAAM,CAAC,CAACzB,IAAI,CACxBjE,MAAM,CAAC8F,OAAO,CAAC1E,IAAI,CAAC,EACpBpB,MAAM,CAACyD,GAAG,CAAEsC,MAAM,IAChBhG,OAAO,CAACqB,IAAI,CAACF,YAAY,EAAE6E,MAAM,CAAC,CAAC9B,IAAI,CACrClE,OAAO,CAACiG,GAAG,CAACxF,MAAM,CAACyF,SAAS,EAAEF,MAAM,CAAC,CACtC,CACF,CACF,CACF,CAAC9B,IAAI,CAAC9D,KAAK,CAAC+F,OAAO,CAAC3F,UAAU,CAAC4F,KAAK,CAAC,CAAC;AAEzC;;;;;;AAMA,OAAO,MAAMA,KAAK,GAChBT,MAA0B,IAE1BvF,KAAK,CAACyF,aAAa,CACjB5F,MAAM,CAACyD,GAAG,CAACrC,IAAI,CAACsE,MAAM,CAAC,EAAGK,MAAM,IAC9BhG,OAAO,CAACqB,IAAI,CAACF,YAAY,EAAE6E,MAAM,CAAC,CAAC9B,IAAI,CACrClE,OAAO,CAACiG,GAAG,CAACxF,MAAM,CAACyF,SAAS,EAAEF,MAAM,CAAC,CACtC,CAAC,CACL,CAAC9B,IAAI,CAAC9D,KAAK,CAAC+F,OAAO,CAAC3F,UAAU,CAAC4F,KAAK,CAAC,CAAC","ignoreList":[]}
@@ -1,5 +1,26 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Utilities for applying Effect SQL migrations to Cloudflare Durable Object SQLite storage.
3
+ *
4
+ * This module re-exports the shared `Migrator` loaders and error types, then
5
+ * provides `run` and `layer` helpers that execute ordered migrations through the
6
+ * current Durable Object `SqlStorage`-backed `SqlClient`. Use it when a Durable
7
+ * Object needs to create or upgrade its local schema during construction, before
8
+ * repositories or request handlers use the object storage, or in tests that
9
+ * exercise Durable Object persistence.
10
+ *
11
+ * Migrations are recorded in `effect_sql_migrations` by default and are loaded
12
+ * using the shared `<id>_<name>` file or record-key convention. The underlying
13
+ * storage is scoped to a Durable Object id, so running migrations for one object
14
+ * does not update any other object instance; run the migrator against the same
15
+ * `SqlStorage` handle that the object uses for normal queries. These SQL
16
+ * migrations are separate from Cloudflare's Durable Object class migrations, and
17
+ * the Durable Object must already be configured with SQLite storage before this
18
+ * module can apply schema changes. Repeated startup runs are expected and are
19
+ * guarded by the migrations table, but request handling should wait until the
20
+ * migration layer has finished. This adapter does not currently write SQLite
21
+ * schema dumps for `schemaDirectory`.
22
+ *
23
+ * @since 4.0.0
3
24
  */
4
25
  import type * as Effect from "effect/Effect";
5
26
  import * as Layer from "effect/Layer";
@@ -7,17 +28,21 @@ import * as Migrator from "effect/unstable/sql/Migrator";
7
28
  import type * as Client from "effect/unstable/sql/SqlClient";
8
29
  import type { SqlError } from "effect/unstable/sql/SqlError";
9
30
  /**
10
- * @since 1.0.0
31
+ * @since 4.0.0
11
32
  */
12
33
  export * from "effect/unstable/sql/Migrator";
13
34
  /**
35
+ * Runs SQL migrations using the configured `SqlClient`, returning the migrations that were applied.
36
+ *
14
37
  * @category constructor
15
- * @since 1.0.0
38
+ * @since 4.0.0
16
39
  */
17
40
  export declare const run: <R2 = never>({ loader, schemaDirectory, table }: Migrator.MigratorOptions<R2>) => Effect.Effect<ReadonlyArray<readonly [id: number, name: string]>, Migrator.MigrationError | SqlError, Client.SqlClient | R2>;
18
41
  /**
42
+ * Creates a layer that runs the configured SQL migrations during layer construction.
43
+ *
19
44
  * @category constructor
20
- * @since 1.0.0
45
+ * @since 4.0.0
21
46
  */
22
47
  export declare const layer: <R>(options: Migrator.MigratorOptions<R>) => Layer.Layer<never, Migrator.MigrationError | SqlError, Client.SqlClient | R>;
23
48
  //# sourceMappingURL=SqliteMigrator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SqliteMigrator.d.ts","sourceRoot":"","sources":["../src/SqliteMigrator.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAA;AACxD,OAAO,KAAK,KAAK,MAAM,MAAM,+BAA+B,CAAA;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAE5D;;GAEG;AACH,cAAc,8BAA8B,CAAA;AAE5C;;;GAGG;AACH,eAAO,MAAM,GAAG,EAAE,CAAC,EAAE,GAAG,KAAK,EAC3B,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,KAC7D,MAAM,CAAC,MAAM,CAChB,aAAa,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAClD,QAAQ,CAAC,cAAc,GAAG,QAAQ,EAClC,MAAM,CAAC,SAAS,GAAG,EAAE,CACF,CAAA;AAErB;;;GAGG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,EACrB,SAAS,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,KACnC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,cAAc,GAAG,QAAQ,EAAE,MAAM,CAAC,SAAS,GAAG,CAAC,CAAsC,CAAA"}
1
+ {"version":3,"file":"SqliteMigrator.d.ts","sourceRoot":"","sources":["../src/SqliteMigrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAA;AACxD,OAAO,KAAK,KAAK,MAAM,MAAM,+BAA+B,CAAA;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAE5D;;GAEG;AACH,cAAc,8BAA8B,CAAA;AAE5C;;;;;GAKG;AACH,eAAO,MAAM,GAAG,EAAE,CAAC,EAAE,GAAG,KAAK,EAC3B,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,KAC7D,MAAM,CAAC,MAAM,CAChB,aAAa,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAClD,QAAQ,CAAC,cAAc,GAAG,QAAQ,EAClC,MAAM,CAAC,SAAS,GAAG,EAAE,CACF,CAAA;AAErB;;;;;GAKG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,EACrB,SAAS,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,KACnC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,cAAc,GAAG,QAAQ,EAAE,MAAM,CAAC,SAAS,GAAG,CAAC,CAAsC,CAAA"}
@@ -1,17 +1,21 @@
1
1
  import * as Layer from "effect/Layer";
2
2
  import * as Migrator from "effect/unstable/sql/Migrator";
3
3
  /**
4
- * @since 1.0.0
4
+ * @since 4.0.0
5
5
  */
6
6
  export * from "effect/unstable/sql/Migrator";
7
7
  /**
8
+ * Runs SQL migrations using the configured `SqlClient`, returning the migrations that were applied.
9
+ *
8
10
  * @category constructor
9
- * @since 1.0.0
11
+ * @since 4.0.0
10
12
  */
11
13
  export const run = /*#__PURE__*/Migrator.make({});
12
14
  /**
15
+ * Creates a layer that runs the configured SQL migrations during layer construction.
16
+ *
13
17
  * @category constructor
14
- * @since 1.0.0
18
+ * @since 4.0.0
15
19
  */
16
20
  export const layer = options => Layer.effectDiscard(run(options));
17
21
  //# sourceMappingURL=SqliteMigrator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SqliteMigrator.js","names":["Layer","Migrator","run","make","layer","options","effectDiscard"],"sources":["../src/SqliteMigrator.ts"],"sourcesContent":[null],"mappings":"AAIA,OAAO,KAAKA,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,QAAQ,MAAM,8BAA8B;AAIxD;;;AAGA,cAAc,8BAA8B;AAE5C;;;;AAIA,OAAO,MAAMC,GAAG,gBAMZD,QAAQ,CAACE,IAAI,CAAC,EAAE,CAAC;AAErB;;;;AAIA,OAAO,MAAMC,KAAK,GAChBC,OAAoC,IAC6CL,KAAK,CAACM,aAAa,CAACJ,GAAG,CAACG,OAAO,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"SqliteMigrator.js","names":["Layer","Migrator","run","make","layer","options","effectDiscard"],"sources":["../src/SqliteMigrator.ts"],"sourcesContent":[null],"mappings":"AAyBA,OAAO,KAAKA,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,QAAQ,MAAM,8BAA8B;AAIxD;;;AAGA,cAAc,8BAA8B;AAE5C;;;;;;AAMA,OAAO,MAAMC,GAAG,gBAMZD,QAAQ,CAACE,IAAI,CAAC,EAAE,CAAC;AAErB;;;;;;AAMA,OAAO,MAAMC,KAAK,GAChBC,OAAoC,IAC6CL,KAAK,CAACM,aAAa,CAACJ,GAAG,CAACG,OAAO,CAAC,CAAC","ignoreList":[]}
package/dist/index.d.ts CHANGED
@@ -1,12 +1,12 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * @since 4.0.0
3
3
  */
4
4
  /**
5
- * @since 1.0.0
5
+ * @since 4.0.0
6
6
  */
7
7
  export * as SqliteClient from "./SqliteClient.ts";
8
8
  /**
9
- * @since 1.0.0
9
+ * @since 4.0.0
10
10
  */
11
11
  export * as SqliteMigrator from "./SqliteMigrator.ts";
12
12
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,13 +1,13 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * @since 4.0.0
3
3
  */
4
4
  // @barrel: Auto-generated exports. Do not edit manually.
5
5
  /**
6
- * @since 1.0.0
6
+ * @since 4.0.0
7
7
  */
8
8
  export * as SqliteClient from "./SqliteClient.js";
9
9
  /**
10
- * @since 1.0.0
10
+ * @since 4.0.0
11
11
  */
12
12
  export * as SqliteMigrator from "./SqliteMigrator.js";
13
13
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/sql-sqlite-do",
3
- "version": "4.0.0-beta.66",
3
+ "version": "4.0.0-beta.67",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "description": "A SQLite toolkit for Effect",
@@ -43,11 +43,11 @@
43
43
  "provenance": true
44
44
  },
45
45
  "devDependencies": {
46
- "@cloudflare/workers-types": "^4.20260412.1",
47
- "effect": "^4.0.0-beta.66"
46
+ "@cloudflare/workers-types": "^4.20260511.1",
47
+ "effect": "^4.0.0-beta.67"
48
48
  },
49
49
  "peerDependencies": {
50
- "effect": "^4.0.0-beta.66"
50
+ "effect": "^4.0.0-beta.67"
51
51
  },
52
52
  "scripts": {
53
53
  "codegen": "effect-utils codegen",
@@ -1,5 +1,23 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Provides an Effect SQL client for Cloudflare Durable Object SQLite storage.
3
+ *
4
+ * This module adapts a Durable Object `SqlStorage` handle into both the
5
+ * Durable Object-specific `SqliteClient` service and the generic Effect
6
+ * `SqlClient` service. Use it from inside a Durable Object to run local
7
+ * per-object queries, repositories, migrations, transactional read/write
8
+ * workflows, and tests that exercise Cloudflare's SQLite-backed storage API.
9
+ *
10
+ * Durable Object SQLite storage is scoped to one object id, so each object
11
+ * instance has its own database and callers should pass the same `SqlStorage`
12
+ * handle that the object uses for normal reads and writes. This adapter
13
+ * serializes Effect SQL access through one connection; a transaction holds that
14
+ * permit for the lifetime of its scope, so keep transactions short, avoid
15
+ * suspending them across unrelated work, and use them when multi-statement
16
+ * writes must commit atomically. `SqlStorage.exec` returns `ArrayBuffer` values
17
+ * for SQLite blobs, which this client normalizes to `Uint8Array`, and SQLite
18
+ * does not support `updateValues`.
19
+ *
20
+ * @since 4.0.0
3
21
  */
4
22
  import type { SqlStorage } from "@cloudflare/workers-types"
5
23
  import * as Config from "effect/Config"
@@ -23,20 +41,26 @@ const classifyError = (cause: unknown, message: string, operation: string) =>
23
41
  classifySqliteError(cause, { message, operation })
24
42
 
25
43
  /**
44
+ * Runtime type identifier used to mark Cloudflare Durable Object `SqliteClient` values.
45
+ *
26
46
  * @category type ids
27
- * @since 1.0.0
47
+ * @since 4.0.0
28
48
  */
29
49
  export const TypeId: TypeId = "~@effect/sql-sqlite-do/SqliteClient"
30
50
 
31
51
  /**
52
+ * Type-level identifier used to mark Cloudflare Durable Object `SqliteClient` values.
53
+ *
32
54
  * @category type ids
33
- * @since 1.0.0
55
+ * @since 4.0.0
34
56
  */
35
57
  export type TypeId = "~@effect/sql-sqlite-do/SqliteClient"
36
58
 
37
59
  /**
60
+ * Cloudflare Durable Object SQLite client service, extending `SqlClient` with its configuration. `updateValues` is not supported.
61
+ *
38
62
  * @category models
39
- * @since 1.0.0
63
+ * @since 4.0.0
40
64
  */
41
65
  export interface SqliteClient extends Client.SqlClient {
42
66
  readonly [TypeId]: TypeId
@@ -47,14 +71,18 @@ export interface SqliteClient extends Client.SqlClient {
47
71
  }
48
72
 
49
73
  /**
74
+ * Context tag used to access the Cloudflare Durable Object `SqliteClient` service.
75
+ *
50
76
  * @category tags
51
- * @since 1.0.0
77
+ * @since 4.0.0
52
78
  */
53
79
  export const SqliteClient = Context.Service<SqliteClient>("@effect/sql-sqlite-do/SqliteClient")
54
80
 
55
81
  /**
82
+ * Configuration for a Cloudflare Durable Object SQLite client, including the `SqlStorage` handle, span attributes, and query/result name transforms.
83
+ *
56
84
  * @category models
57
- * @since 1.0.0
85
+ * @since 4.0.0
58
86
  */
59
87
  export interface SqliteClientConfig {
60
88
  readonly db: SqlStorage
@@ -65,8 +93,10 @@ export interface SqliteClientConfig {
65
93
  }
66
94
 
67
95
  /**
96
+ * Creates a scoped Cloudflare Durable Object SQLite client around `SqlStorage`, serializing access and converting returned `ArrayBuffer` values to `Uint8Array`.
97
+ *
68
98
  * @category constructor
69
- * @since 1.0.0
99
+ * @since 4.0.0
70
100
  */
71
101
  export const make = (
72
102
  options: SqliteClientConfig
@@ -188,8 +218,10 @@ export const make = (
188
218
  })
189
219
 
190
220
  /**
221
+ * Creates a layer from a `Config`-wrapped Durable Object SQLite client configuration, providing both `SqliteClient` and `SqlClient`.
222
+ *
191
223
  * @category layers
192
- * @since 1.0.0
224
+ * @since 4.0.0
193
225
  */
194
226
  export const layerConfig = (
195
227
  config: Config.Wrap<SqliteClientConfig>
@@ -206,8 +238,10 @@ export const layerConfig = (
206
238
  ).pipe(Layer.provide(Reactivity.layer))
207
239
 
208
240
  /**
241
+ * Creates a layer from a concrete Durable Object SQLite client configuration, providing both `SqliteClient` and `SqlClient`.
242
+ *
209
243
  * @category layers
210
- * @since 1.0.0
244
+ * @since 4.0.0
211
245
  */
212
246
  export const layer = (
213
247
  config: SqliteClientConfig
@@ -1,5 +1,26 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Utilities for applying Effect SQL migrations to Cloudflare Durable Object SQLite storage.
3
+ *
4
+ * This module re-exports the shared `Migrator` loaders and error types, then
5
+ * provides `run` and `layer` helpers that execute ordered migrations through the
6
+ * current Durable Object `SqlStorage`-backed `SqlClient`. Use it when a Durable
7
+ * Object needs to create or upgrade its local schema during construction, before
8
+ * repositories or request handlers use the object storage, or in tests that
9
+ * exercise Durable Object persistence.
10
+ *
11
+ * Migrations are recorded in `effect_sql_migrations` by default and are loaded
12
+ * using the shared `<id>_<name>` file or record-key convention. The underlying
13
+ * storage is scoped to a Durable Object id, so running migrations for one object
14
+ * does not update any other object instance; run the migrator against the same
15
+ * `SqlStorage` handle that the object uses for normal queries. These SQL
16
+ * migrations are separate from Cloudflare's Durable Object class migrations, and
17
+ * the Durable Object must already be configured with SQLite storage before this
18
+ * module can apply schema changes. Repeated startup runs are expected and are
19
+ * guarded by the migrations table, but request handling should wait until the
20
+ * migration layer has finished. This adapter does not currently write SQLite
21
+ * schema dumps for `schemaDirectory`.
22
+ *
23
+ * @since 4.0.0
3
24
  */
4
25
  import type * as Effect from "effect/Effect"
5
26
  import * as Layer from "effect/Layer"
@@ -8,13 +29,15 @@ import type * as Client from "effect/unstable/sql/SqlClient"
8
29
  import type { SqlError } from "effect/unstable/sql/SqlError"
9
30
 
10
31
  /**
11
- * @since 1.0.0
32
+ * @since 4.0.0
12
33
  */
13
34
  export * from "effect/unstable/sql/Migrator"
14
35
 
15
36
  /**
37
+ * Runs SQL migrations using the configured `SqlClient`, returning the migrations that were applied.
38
+ *
16
39
  * @category constructor
17
- * @since 1.0.0
40
+ * @since 4.0.0
18
41
  */
19
42
  export const run: <R2 = never>(
20
43
  { loader, schemaDirectory, table }: Migrator.MigratorOptions<R2>
@@ -25,8 +48,10 @@ export const run: <R2 = never>(
25
48
  > = Migrator.make({})
26
49
 
27
50
  /**
51
+ * Creates a layer that runs the configured SQL migrations during layer construction.
52
+ *
28
53
  * @category constructor
29
- * @since 1.0.0
54
+ * @since 4.0.0
30
55
  */
31
56
  export const layer = <R>(
32
57
  options: Migrator.MigratorOptions<R>
package/src/index.ts CHANGED
@@ -1,15 +1,15 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * @since 4.0.0
3
3
  */
4
4
 
5
5
  // @barrel: Auto-generated exports. Do not edit manually.
6
6
 
7
7
  /**
8
- * @since 1.0.0
8
+ * @since 4.0.0
9
9
  */
10
10
  export * as SqliteClient from "./SqliteClient.ts"
11
11
 
12
12
  /**
13
- * @since 1.0.0
13
+ * @since 4.0.0
14
14
  */
15
15
  export * as SqliteMigrator from "./SqliteMigrator.ts"