@effect/sql-sqlite-bun 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.
@@ -7,18 +7,24 @@ import * as Reactivity from "effect/unstable/reactivity/Reactivity";
7
7
  import * as Client from "effect/unstable/sql/SqlClient";
8
8
  import { SqlError } from "effect/unstable/sql/SqlError";
9
9
  /**
10
+ * Runtime type identifier used to mark Bun `SqliteClient` values.
11
+ *
10
12
  * @category type ids
11
- * @since 1.0.0
13
+ * @since 4.0.0
12
14
  */
13
15
  export declare const TypeId: TypeId;
14
16
  /**
17
+ * Type-level identifier used to mark Bun `SqliteClient` values.
18
+ *
15
19
  * @category type ids
16
- * @since 1.0.0
20
+ * @since 4.0.0
17
21
  */
18
22
  export type TypeId = "~@effect/sql-sqlite-bun/SqliteClient";
19
23
  /**
24
+ * Bun SQLite client service, extending `SqlClient` with database export and extension loading helpers. `updateValues` is not supported.
25
+ *
20
26
  * @category models
21
- * @since 1.0.0
27
+ * @since 4.0.0
22
28
  */
23
29
  export interface SqliteClient extends Client.SqlClient {
24
30
  readonly [TypeId]: TypeId;
@@ -29,13 +35,17 @@ export interface SqliteClient extends Client.SqlClient {
29
35
  readonly updateValues: never;
30
36
  }
31
37
  /**
38
+ * Context tag used to access the Bun `SqliteClient` service.
39
+ *
32
40
  * @category tags
33
- * @since 1.0.0
41
+ * @since 4.0.0
34
42
  */
35
43
  export declare const SqliteClient: Context.Service<SqliteClient, SqliteClient>;
36
44
  /**
45
+ * Configuration for a Bun SQLite client, including filename, open mode flags, WAL behavior, span attributes, and query/result name transforms.
46
+ *
37
47
  * @category models
38
- * @since 1.0.0
48
+ * @since 4.0.0
39
49
  */
40
50
  export interface SqliteClientConfig {
41
51
  readonly filename: string;
@@ -48,18 +58,24 @@ export interface SqliteClientConfig {
48
58
  readonly transformQueryNames?: ((str: string) => string) | undefined;
49
59
  }
50
60
  /**
61
+ * Creates a scoped Bun SQLite client for a database file, enabling WAL by default and serializing access. Streaming queries are not implemented.
62
+ *
51
63
  * @category constructor
52
- * @since 1.0.0
64
+ * @since 4.0.0
53
65
  */
54
66
  export declare const make: (options: SqliteClientConfig) => Effect.Effect<SqliteClient, never, Scope.Scope | Reactivity.Reactivity>;
55
67
  /**
68
+ * Creates a layer from a `Config`-wrapped Bun SQLite client configuration, providing both `SqliteClient` and `SqlClient`.
69
+ *
56
70
  * @category layers
57
- * @since 1.0.0
71
+ * @since 4.0.0
58
72
  */
59
73
  export declare const layerConfig: (config: Config.Wrap<SqliteClientConfig>) => Layer.Layer<SqliteClient | Client.SqlClient, Config.ConfigError>;
60
74
  /**
75
+ * Creates a layer from a concrete Bun SQLite client configuration, providing both `SqliteClient` and `SqlClient`.
76
+ *
61
77
  * @category layers
62
- * @since 1.0.0
78
+ * @since 4.0.0
63
79
  */
64
80
  export declare const layer: (config: SqliteClientConfig) => Layer.Layer<SqliteClient | Client.SqlClient>;
65
81
  //# sourceMappingURL=SqliteClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SqliteClient.d.ts","sourceRoot":"","sources":["../src/SqliteClient.ts"],"names":[],"mappings":"AAIA,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;AAEvD,OAAO,EAAuB,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAQ5E;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,MAA+C,CAAA;AAEpE;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,sCAAsC,CAAA;AAE3D;;;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;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IACpD,QAAQ,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IAEvE,8BAA8B;IAC9B,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAA;CAC7B;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,6CAAiE,CAAA;AAE1F;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAEzC,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;AAOD;;;GAGG;AACH,eAAO,MAAM,IAAI,GACf,SAAS,kBAAkB,KAC1B,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,UAAU,CAsHrE,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":"AAqBA,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;AAEvD,OAAO,EAAuB,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAQ5E;;;;;GAKG;AACH,eAAO,MAAM,MAAM,EAAE,MAA+C,CAAA;AAEpE;;;;;GAKG;AACH,MAAM,MAAM,MAAM,GAAG,sCAAsC,CAAA;AAE3D;;;;;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;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IACpD,QAAQ,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IAEvE,8BAA8B;IAC9B,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAA;CAC7B;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY,6CAAiE,CAAA;AAE1F;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAEzC,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;AAOD;;;;;GAKG;AACH,eAAO,MAAM,IAAI,GACf,SAAS,kBAAkB,KAC1B,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,UAAU,CAsHrE,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"}
@@ -1,5 +1,22 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Bun SQLite client implementation for Effect SQL, backed by `bun:sqlite`.
3
+ *
4
+ * This module provides constructors and layers for using a Bun-managed SQLite database as both the
5
+ * SQLite-specific `SqliteClient` service and the generic `SqlClient` service. It is intended for
6
+ * file-backed or in-memory databases in Bun applications, local development tools, migrations,
7
+ * integration tests, and embedded persistence use cases that need Effect SQL query compilation plus
8
+ * SQLite-specific helpers such as database export and native extension loading.
9
+ *
10
+ * Each client owns one scoped `bun:sqlite` `Database` handle and serializes access through it, which
11
+ * is important because Bun executes SQLite statements synchronously. WAL mode is enabled by default,
12
+ * so set `disableWAL` when opening read-only databases or when the database file or directory cannot
13
+ * be updated with SQLite's WAL side files. A transaction holds the serialized connection permit for
14
+ * the transaction scope, so concurrent fibers using the same client wait until it completes, while
15
+ * separate database handles or processes can still contend for SQLite write locks. Safe integer
16
+ * handling follows the `SqlClient` fiber-local setting, `executeStream` is not implemented, and
17
+ * SQLite does not support `updateValues`.
18
+ *
19
+ * @since 4.0.0
3
20
  */
4
21
  import { Database } from "bun:sqlite";
5
22
  import * as Config from "effect/Config";
@@ -21,18 +38,24 @@ const classifyError = (cause, message, operation) => classifySqliteError(cause,
21
38
  operation
22
39
  });
23
40
  /**
41
+ * Runtime type identifier used to mark Bun `SqliteClient` values.
42
+ *
24
43
  * @category type ids
25
- * @since 1.0.0
44
+ * @since 4.0.0
26
45
  */
27
46
  export const TypeId = "~@effect/sql-sqlite-bun/SqliteClient";
28
47
  /**
48
+ * Context tag used to access the Bun `SqliteClient` service.
49
+ *
29
50
  * @category tags
30
- * @since 1.0.0
51
+ * @since 4.0.0
31
52
  */
32
53
  export const SqliteClient = /*#__PURE__*/Context.Service("@effect/sql-sqlite-bun/Client");
33
54
  /**
55
+ * Creates a scoped Bun SQLite client for a database file, enabling WAL by default and serializing access. Streaming queries are not implemented.
56
+ *
34
57
  * @category constructor
35
- * @since 1.0.0
58
+ * @since 4.0.0
36
59
  */
37
60
  export const make = options => Effect.gen(function* () {
38
61
  const compiler = Statement.makeCompilerSqlite(options.transformQueryNames);
@@ -125,13 +148,17 @@ export const make = options => Effect.gen(function* () {
125
148
  });
126
149
  });
127
150
  /**
151
+ * Creates a layer from a `Config`-wrapped Bun SQLite client configuration, providing both `SqliteClient` and `SqlClient`.
152
+ *
128
153
  * @category layers
129
- * @since 1.0.0
154
+ * @since 4.0.0
130
155
  */
131
156
  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));
132
157
  /**
158
+ * Creates a layer from a concrete Bun SQLite client configuration, providing both `SqliteClient` and `SqlClient`.
159
+ *
133
160
  * @category layers
134
- * @since 1.0.0
161
+ * @since 4.0.0
135
162
  */
136
163
  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));
137
164
  //# sourceMappingURL=SqliteClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SqliteClient.js","names":["Database","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","filename","readonly","readwrite","create","addFinalizer","sync","close","disableWAL","run","sql","params","withFiber","fiber","statement","query","useSafeIntegers","get","context","SafeIntegers","safeIntegers","succeed","all","fail","reason","runValues","values","execute","map","executeRaw","executeValues","executeUnprepared","executeStream","_sql","_params","die","export","try","serialize","catch","loadExtension","path","semaphore","connection","acquirer","withPermits","transactionAcquirer","uninterruptibleMask","restore","getCurrent","scope","getUnsafe","as","tap","take","release","Object","assign","spanAttributes","entries","config","flatMap","_","layerConfig","effectContext","unwrap","pipe","client","add","SqlClient","provide","layer"],"sources":["../src/SqliteClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SqliteClient.js","names":["Database","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","filename","readonly","readwrite","create","addFinalizer","sync","close","disableWAL","run","sql","params","withFiber","fiber","statement","query","useSafeIntegers","get","context","SafeIntegers","safeIntegers","succeed","all","fail","reason","runValues","values","execute","map","executeRaw","executeValues","executeUnprepared","executeStream","_sql","_params","die","export","try","serialize","catch","loadExtension","path","semaphore","connection","acquirer","withPermits","transactionAcquirer","uninterruptibleMask","restore","getCurrent","scope","getUnsafe","as","tap","take","release","Object","assign","spanAttributes","entries","config","flatMap","_","layerConfig","effectContext","unwrap","pipe","client","add","SqlClient","provide","layer"],"sources":["../src/SqliteClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,25 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Utilities for applying Effect SQL migrations to Bun SQLite databases.
3
+ *
4
+ * This module re-exports the shared `Migrator` loaders and error types, then
5
+ * provides `run` and `layer` helpers for applying ordered migrations through
6
+ * the current Bun-backed SQLite `SqlClient`. It is typically used at
7
+ * application startup, in deployment or setup scripts that prepare a local
8
+ * SQLite file, in integration tests with temporary database files, or in layer
9
+ * graphs that must install the schema before dependent services are acquired.
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. Only migrations
13
+ * with an id greater than the latest recorded id are applied, so every client
14
+ * involved in startup should point at the same SQLite filename and use a
15
+ * writable Bun SQLite configuration. The Bun client enables WAL by default and
16
+ * serializes access through a single `bun:sqlite` database handle, but separate
17
+ * handles or processes can still contend for SQLite write locks. Bun's SQLite
18
+ * driver runs statements synchronously, so large migration sets can block the
19
+ * invoking runtime thread, and this adapter does not currently write SQLite
20
+ * schema dumps for `schemaDirectory`.
21
+ *
22
+ * @since 4.0.0
3
23
  */
4
24
  import type * as Effect from "effect/Effect";
5
25
  import * as Layer from "effect/Layer";
@@ -7,17 +27,21 @@ import * as Migrator from "effect/unstable/sql/Migrator";
7
27
  import type * as Client from "effect/unstable/sql/SqlClient";
8
28
  import type { SqlError } from "effect/unstable/sql/SqlError";
9
29
  /**
10
- * @since 1.0.0
30
+ * @since 4.0.0
11
31
  */
12
32
  export * from "effect/unstable/sql/Migrator";
13
33
  /**
34
+ * Runs SQL migrations using the configured `SqlClient`, returning the migrations that were applied.
35
+ *
14
36
  * @category constructor
15
- * @since 1.0.0
37
+ * @since 4.0.0
16
38
  */
17
39
  export declare const run: <R2 = never>(options: Migrator.MigratorOptions<R2>) => Effect.Effect<ReadonlyArray<readonly [id: number, name: string]>, Migrator.MigrationError | SqlError, Client.SqlClient | R2>;
18
40
  /**
41
+ * Creates a layer that runs the configured SQL migrations during layer construction.
42
+ *
19
43
  * @category constructor
20
- * @since 1.0.0
44
+ * @since 4.0.0
21
45
  */
22
46
  export declare const layer: <R>(options: Migrator.MigratorOptions<R>) => Layer.Layer<never, SqlError | Migrator.MigrationError, Client.SqlClient | R>;
23
47
  //# 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,OAAO,EAAE,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,KAClC,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,CA2CrB,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,EACrB,SAAS,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,KACnC,KAAK,CAAC,KAAK,CACZ,KAAK,EACL,QAAQ,GAAG,QAAQ,CAAC,cAAc,EAClC,MAAM,CAAC,SAAS,GAAG,CAAC,CACgB,CAAA"}
1
+ {"version":3,"file":"SqliteMigrator.d.ts","sourceRoot":"","sources":["../src/SqliteMigrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;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,OAAO,EAAE,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,KAClC,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,CA2CrB,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,EACrB,SAAS,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,KACnC,KAAK,CAAC,KAAK,CACZ,KAAK,EACL,QAAQ,GAAG,QAAQ,CAAC,cAAc,EAClC,MAAM,CAAC,SAAS,GAAG,CAAC,CACgB,CAAA"}
@@ -1,12 +1,14 @@
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
  // dumpSchema(path, table) {
@@ -52,8 +54,10 @@ export const run = /*#__PURE__*/Migrator.make({
52
54
  // }
53
55
  });
54
56
  /**
57
+ * Creates a layer that runs the configured SQL migrations during layer construction.
58
+ *
55
59
  * @category constructor
56
- * @since 1.0.0
60
+ * @since 4.0.0
57
61
  */
58
62
  export const layer = options => Layer.effectDiscard(run(options));
59
63
  //# 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;EAChB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAAA,CACD,CAAC;AAEF;;;;AAIA,OAAO,MAAMC,KAAK,GAChBC,OAAoC,IAKjCL,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":"AAwBA,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;EAChB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAAA,CACD,CAAC;AAEF;;;;;;AAMA,OAAO,MAAMC,KAAK,GAChBC,OAAoC,IAKjCL,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-bun",
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,12 +43,12 @@
43
43
  "provenance": true
44
44
  },
45
45
  "devDependencies": {
46
- "@types/bun": "^1.3.12",
47
- "@effect/platform-bun": "^4.0.0-beta.66",
48
- "effect": "^4.0.0-beta.66"
46
+ "@types/bun": "^1.3.13",
47
+ "@effect/platform-bun": "^4.0.0-beta.67",
48
+ "effect": "^4.0.0-beta.67"
49
49
  },
50
50
  "peerDependencies": {
51
- "effect": "^4.0.0-beta.66"
51
+ "effect": "^4.0.0-beta.67"
52
52
  },
53
53
  "scripts": {
54
54
  "codegen": "effect-utils codegen",
@@ -1,5 +1,22 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Bun SQLite client implementation for Effect SQL, backed by `bun:sqlite`.
3
+ *
4
+ * This module provides constructors and layers for using a Bun-managed SQLite database as both the
5
+ * SQLite-specific `SqliteClient` service and the generic `SqlClient` service. It is intended for
6
+ * file-backed or in-memory databases in Bun applications, local development tools, migrations,
7
+ * integration tests, and embedded persistence use cases that need Effect SQL query compilation plus
8
+ * SQLite-specific helpers such as database export and native extension loading.
9
+ *
10
+ * Each client owns one scoped `bun:sqlite` `Database` handle and serializes access through it, which
11
+ * is important because Bun executes SQLite statements synchronously. WAL mode is enabled by default,
12
+ * so set `disableWAL` when opening read-only databases or when the database file or directory cannot
13
+ * be updated with SQLite's WAL side files. A transaction holds the serialized connection permit for
14
+ * the transaction scope, so concurrent fibers using the same client wait until it completes, while
15
+ * separate database handles or processes can still contend for SQLite write locks. Safe integer
16
+ * handling follows the `SqlClient` fiber-local setting, `executeStream` is not implemented, and
17
+ * SQLite does not support `updateValues`.
18
+ *
19
+ * @since 4.0.0
3
20
  */
4
21
  import { Database } from "bun:sqlite"
5
22
  import * as Config from "effect/Config"
@@ -23,20 +40,26 @@ const classifyError = (cause: unknown, message: string, operation: string) =>
23
40
  classifySqliteError(cause, { message, operation })
24
41
 
25
42
  /**
43
+ * Runtime type identifier used to mark Bun `SqliteClient` values.
44
+ *
26
45
  * @category type ids
27
- * @since 1.0.0
46
+ * @since 4.0.0
28
47
  */
29
48
  export const TypeId: TypeId = "~@effect/sql-sqlite-bun/SqliteClient"
30
49
 
31
50
  /**
51
+ * Type-level identifier used to mark Bun `SqliteClient` values.
52
+ *
32
53
  * @category type ids
33
- * @since 1.0.0
54
+ * @since 4.0.0
34
55
  */
35
56
  export type TypeId = "~@effect/sql-sqlite-bun/SqliteClient"
36
57
 
37
58
  /**
59
+ * Bun SQLite client service, extending `SqlClient` with database export and extension loading helpers. `updateValues` is not supported.
60
+ *
38
61
  * @category models
39
- * @since 1.0.0
62
+ * @since 4.0.0
40
63
  */
41
64
  export interface SqliteClient extends Client.SqlClient {
42
65
  readonly [TypeId]: TypeId
@@ -49,14 +72,18 @@ export interface SqliteClient extends Client.SqlClient {
49
72
  }
50
73
 
51
74
  /**
75
+ * Context tag used to access the Bun `SqliteClient` service.
76
+ *
52
77
  * @category tags
53
- * @since 1.0.0
78
+ * @since 4.0.0
54
79
  */
55
80
  export const SqliteClient = Context.Service<SqliteClient>("@effect/sql-sqlite-bun/Client")
56
81
 
57
82
  /**
83
+ * Configuration for a Bun SQLite client, including filename, open mode flags, WAL behavior, span attributes, and query/result name transforms.
84
+ *
58
85
  * @category models
59
- * @since 1.0.0
86
+ * @since 4.0.0
60
87
  */
61
88
  export interface SqliteClientConfig {
62
89
  readonly filename: string
@@ -77,8 +104,10 @@ interface SqliteConnection extends Connection {
77
104
  }
78
105
 
79
106
  /**
107
+ * Creates a scoped Bun SQLite client for a database file, enabling WAL by default and serializing access. Streaming queries are not implemented.
108
+ *
80
109
  * @category constructor
81
- * @since 1.0.0
110
+ * @since 4.0.0
82
111
  */
83
112
  export const make = (
84
113
  options: SqliteClientConfig
@@ -203,8 +232,10 @@ export const make = (
203
232
  })
204
233
 
205
234
  /**
235
+ * Creates a layer from a `Config`-wrapped Bun SQLite client configuration, providing both `SqliteClient` and `SqlClient`.
236
+ *
206
237
  * @category layers
207
- * @since 1.0.0
238
+ * @since 4.0.0
208
239
  */
209
240
  export const layerConfig = (
210
241
  config: Config.Wrap<SqliteClientConfig>
@@ -221,8 +252,10 @@ export const layerConfig = (
221
252
  ).pipe(Layer.provide(Reactivity.layer))
222
253
 
223
254
  /**
255
+ * Creates a layer from a concrete Bun SQLite client configuration, providing both `SqliteClient` and `SqlClient`.
256
+ *
224
257
  * @category layers
225
- * @since 1.0.0
258
+ * @since 4.0.0
226
259
  */
227
260
  export const layer = (
228
261
  config: SqliteClientConfig
@@ -1,5 +1,25 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Utilities for applying Effect SQL migrations to Bun SQLite databases.
3
+ *
4
+ * This module re-exports the shared `Migrator` loaders and error types, then
5
+ * provides `run` and `layer` helpers for applying ordered migrations through
6
+ * the current Bun-backed SQLite `SqlClient`. It is typically used at
7
+ * application startup, in deployment or setup scripts that prepare a local
8
+ * SQLite file, in integration tests with temporary database files, or in layer
9
+ * graphs that must install the schema before dependent services are acquired.
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. Only migrations
13
+ * with an id greater than the latest recorded id are applied, so every client
14
+ * involved in startup should point at the same SQLite filename and use a
15
+ * writable Bun SQLite configuration. The Bun client enables WAL by default and
16
+ * serializes access through a single `bun:sqlite` database handle, but separate
17
+ * handles or processes can still contend for SQLite write locks. Bun's SQLite
18
+ * driver runs statements synchronously, so large migration sets can block the
19
+ * invoking runtime thread, and this adapter does not currently write SQLite
20
+ * schema dumps for `schemaDirectory`.
21
+ *
22
+ * @since 4.0.0
3
23
  */
4
24
  import type * as Effect from "effect/Effect"
5
25
  import * as Layer from "effect/Layer"
@@ -8,13 +28,15 @@ import type * as Client from "effect/unstable/sql/SqlClient"
8
28
  import type { SqlError } from "effect/unstable/sql/SqlError"
9
29
 
10
30
  /**
11
- * @since 1.0.0
31
+ * @since 4.0.0
12
32
  */
13
33
  export * from "effect/unstable/sql/Migrator"
14
34
 
15
35
  /**
36
+ * Runs SQL migrations using the configured `SqlClient`, returning the migrations that were applied.
37
+ *
16
38
  * @category constructor
17
- * @since 1.0.0
39
+ * @since 4.0.0
18
40
  */
19
41
  export const run: <R2 = never>(
20
42
  options: Migrator.MigratorOptions<R2>
@@ -67,8 +89,10 @@ export const run: <R2 = never>(
67
89
  })
68
90
 
69
91
  /**
92
+ * Creates a layer that runs the configured SQL migrations during layer construction.
93
+ *
70
94
  * @category constructor
71
- * @since 1.0.0
95
+ * @since 4.0.0
72
96
  */
73
97
  export const layer = <R>(
74
98
  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"