@effect/sql-sqlite-wasm 4.0.0-beta.70 → 4.0.0-beta.72

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 +1 @@
1
- {"version":3,"file":"OpfsWorker.d.ts","sourceRoot":"","sources":["../src/OpfsWorker.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAuB,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAM5E;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,GAAG,OAAO,CAAC,CAAA;IACvE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED;;;;;GAKG;AACH,eAAO,MAAM,GAAG,GACd,SAAS,gBAAgB,KACxB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CA0EP,CAAA"}
1
+ {"version":3,"file":"OpfsWorker.d.ts","sourceRoot":"","sources":["../src/OpfsWorker.ts"],"names":[],"mappings":"AA+CA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAuB,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAM5E;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,GAAG,OAAO,CAAC,CAAA;IACvE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED;;;;;GAKG;AACH,eAAO,MAAM,GAAG,GACd,SAAS,gBAAgB,KACxB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CA0EP,CAAA"}
@@ -1,22 +1,42 @@
1
1
  /**
2
- * Worker-side entry point for SQLite WASM databases stored in the browser
3
- * Origin Private File System.
2
+ * Worker-side entry point for SQLite WASM databases stored in the browser's
3
+ * Origin Private File System (OPFS).
4
4
  *
5
5
  * This module opens `@effect/wa-sqlite` with the OPFS access-handle VFS and
6
- * serves the message protocol used by `SqliteClient.make`. Run it from a
7
- * dedicated worker, or from a `SharedWorker` connection port, when an
8
- * application needs durable local SQLite storage for local-first data, offline
9
- * caches, client-side migrations, or import/export workflows that keep the
10
- * database off the main thread.
6
+ * serves the message protocol used by the worker-backed SQLite WASM client.
7
+ * Run it from a dedicated worker, or from a `SharedWorker` connection port, to
8
+ * keep durable local SQLite storage off the main thread while preserving the
9
+ * database in OPFS.
11
10
  *
12
- * The worker owns the SQLite connection for the lifetime of `run`: it posts a
13
- * `ready` message after opening the database, responds to query, import,
14
- * export, and update-hook messages, and releases the database when the client
15
- * sends `close` or the surrounding scope is interrupted. Because OPFS support
16
- * depends on the browser and origin, applications should start this worker only
17
- * in supported secure contexts, close unused ports so access handles are
18
- * released, and coordinate multiple tabs or workers before opening or migrating
19
- * the same OPFS database.
11
+ * **Mental model**
12
+ *
13
+ * - {@link run} owns one SQLite connection for one OPFS database name.
14
+ * - The worker posts `ready` after opening the database and then handles the
15
+ * client protocol for SQL statements, import, export, update hooks, and
16
+ * close.
17
+ * - The port in {@link OpfsWorkerConfig} is the only communication channel
18
+ * between the client and the worker loop.
19
+ * - Closing the port, sending `close`, or interrupting the surrounding scope
20
+ * releases the SQLite database handle.
21
+ *
22
+ * **Common tasks**
23
+ *
24
+ * Use this module for local-first browser data, offline caches,
25
+ * client-side migrations, and import/export workflows that need OPFS
26
+ * durability. Start {@link run} in the worker script, then connect the
27
+ * application through the worker-backed `SqliteClient` constructor.
28
+ *
29
+ * **Gotchas**
30
+ *
31
+ * OPFS requires browser support and a secure origin. Coordinate multiple tabs
32
+ * or workers before opening or migrating the same database, because this module
33
+ * owns a single connection and does not provide cross-tab locking. Close unused
34
+ * ports so access handles are released promptly.
35
+ *
36
+ * **See also**
37
+ *
38
+ * - {@link OpfsWorkerConfig} for the required worker port and database name.
39
+ * - {@link run} for starting the worker message loop.
20
40
  *
21
41
  * @since 4.0.0
22
42
  */
@@ -1 +1 @@
1
- {"version":3,"file":"OpfsWorker.js","names":["WaSqlite","SQLiteESMFactory","AccessHandlePoolVFS","Effect","classifySqliteError","SqlError","classifyError","cause","message","operation","run","options","gen","factory","promise","sqlite3","Factory","vfs","create","vfs_register","db","acquireRelease","try","open_v2","dbName","undefined","catch","reason","sync","close","callback","resume","onMessage","event","messageId","data","port","void","id","deserialize","length","postMessage","serialize","buffer","update_hook","_op","_db","table","rowid","Number","sql","params","results","columns","stmt","statements","bind_collection","step","SQLITE_ROW","column_names","row","push","e","String","addEventListener","removeEventListener","pipe","scoped"],"sources":["../src/OpfsWorker.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"OpfsWorker.js","names":["WaSqlite","SQLiteESMFactory","AccessHandlePoolVFS","Effect","classifySqliteError","SqlError","classifyError","cause","message","operation","run","options","gen","factory","promise","sqlite3","Factory","vfs","create","vfs_register","db","acquireRelease","try","open_v2","dbName","undefined","catch","reason","sync","close","callback","resume","onMessage","event","messageId","data","port","void","id","deserialize","length","postMessage","serialize","buffer","update_hook","_op","_db","table","rowid","Number","sql","params","results","columns","stmt","statements","bind_collection","step","SQLITE_ROW","column_names","row","push","e","String","addEventListener","removeEventListener","pipe","scoped"],"sources":["../src/OpfsWorker.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -35,7 +35,7 @@ export interface SqliteClient extends Client.SqlClient {
35
35
  readonly updateValues: never;
36
36
  }
37
37
  /**
38
- * Context service tag for the SQLite WASM client.
38
+ * Service tag for the SQLite WASM client.
39
39
  *
40
40
  * @category tags
41
41
  * @since 4.0.0
@@ -81,16 +81,16 @@ export declare const makeMemory: (options: SqliteClientMemoryConfig) => Effect.E
81
81
  */
82
82
  export declare const make: (options: SqliteClientConfig) => Effect.Effect<SqliteClient, SqlError, Scope.Scope | Reactivity.Reactivity>;
83
83
  /**
84
- * Fiber-local list of transferables to include with worker-backed SQLite WASM query messages.
84
+ * Fiber reference that stores transferables to include with worker-backed SQLite WASM query messages.
85
85
  *
86
- * @category tranferables
86
+ * @category transferables
87
87
  * @since 4.0.0
88
88
  */
89
89
  export declare const Transferables: Context.Reference<readonly Transferable[]>;
90
90
  /**
91
91
  * Runs an effect with the supplied transferables attached to worker-backed SQLite WASM query messages.
92
92
  *
93
- * @category tranferables
93
+ * @category transferables
94
94
  * @since 4.0.0
95
95
  */
96
96
  export declare const withTransferables: (transferables: ReadonlyArray<Transferable>) => <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
@@ -60,7 +60,7 @@ const classifyError = (cause, message, operation) => classifySqliteError(cause,
60
60
  */
61
61
  export const TypeId = "~@effect/sql-sqlite-wasm/SqliteClient";
62
62
  /**
63
- * Context service tag for the SQLite WASM client.
63
+ * Service tag for the SQLite WASM client.
64
64
  *
65
65
  * @category tags
66
66
  * @since 4.0.0
@@ -332,9 +332,9 @@ function rowToObject(columns, row) {
332
332
  const extractObject = rows => rows[1].map(row => rowToObject(rows[0], row));
333
333
  const extractRows = rows => rows[1];
334
334
  /**
335
- * Fiber-local list of transferables to include with worker-backed SQLite WASM query messages.
335
+ * Fiber reference that stores transferables to include with worker-backed SQLite WASM query messages.
336
336
  *
337
- * @category tranferables
337
+ * @category transferables
338
338
  * @since 4.0.0
339
339
  */
340
340
  export const Transferables = /*#__PURE__*/Context.Reference("@effect/sql-sqlite-wasm/currentTransferables", {
@@ -343,7 +343,7 @@ export const Transferables = /*#__PURE__*/Context.Reference("@effect/sql-sqlite-
343
343
  /**
344
344
  * Runs an effect with the supplied transferables attached to worker-backed SQLite WASM query messages.
345
345
  *
346
- * @category tranferables
346
+ * @category transferables
347
347
  * @since 4.0.0
348
348
  */
349
349
  export const withTransferables = transferables => effect => Effect.provideService(effect, Transferables, transferables);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/sql-sqlite-wasm",
3
- "version": "4.0.0-beta.70",
3
+ "version": "4.0.0-beta.72",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "description": "A SQLite toolkit for Effect",
@@ -44,11 +44,11 @@
44
44
  },
45
45
  "devDependencies": {
46
46
  "@effect/wa-sqlite": "^0.2.1",
47
- "effect": "^4.0.0-beta.70"
47
+ "effect": "^4.0.0-beta.72"
48
48
  },
49
49
  "peerDependencies": {
50
50
  "@effect/wa-sqlite": "^0.1.2",
51
- "effect": "^4.0.0-beta.70"
51
+ "effect": "^4.0.0-beta.72"
52
52
  },
53
53
  "scripts": {
54
54
  "codegen": "effect-utils codegen",
package/src/OpfsWorker.ts CHANGED
@@ -1,22 +1,42 @@
1
1
  /**
2
- * Worker-side entry point for SQLite WASM databases stored in the browser
3
- * Origin Private File System.
2
+ * Worker-side entry point for SQLite WASM databases stored in the browser's
3
+ * Origin Private File System (OPFS).
4
4
  *
5
5
  * This module opens `@effect/wa-sqlite` with the OPFS access-handle VFS and
6
- * serves the message protocol used by `SqliteClient.make`. Run it from a
7
- * dedicated worker, or from a `SharedWorker` connection port, when an
8
- * application needs durable local SQLite storage for local-first data, offline
9
- * caches, client-side migrations, or import/export workflows that keep the
10
- * database off the main thread.
6
+ * serves the message protocol used by the worker-backed SQLite WASM client.
7
+ * Run it from a dedicated worker, or from a `SharedWorker` connection port, to
8
+ * keep durable local SQLite storage off the main thread while preserving the
9
+ * database in OPFS.
11
10
  *
12
- * The worker owns the SQLite connection for the lifetime of `run`: it posts a
13
- * `ready` message after opening the database, responds to query, import,
14
- * export, and update-hook messages, and releases the database when the client
15
- * sends `close` or the surrounding scope is interrupted. Because OPFS support
16
- * depends on the browser and origin, applications should start this worker only
17
- * in supported secure contexts, close unused ports so access handles are
18
- * released, and coordinate multiple tabs or workers before opening or migrating
19
- * the same OPFS database.
11
+ * **Mental model**
12
+ *
13
+ * - {@link run} owns one SQLite connection for one OPFS database name.
14
+ * - The worker posts `ready` after opening the database and then handles the
15
+ * client protocol for SQL statements, import, export, update hooks, and
16
+ * close.
17
+ * - The port in {@link OpfsWorkerConfig} is the only communication channel
18
+ * between the client and the worker loop.
19
+ * - Closing the port, sending `close`, or interrupting the surrounding scope
20
+ * releases the SQLite database handle.
21
+ *
22
+ * **Common tasks**
23
+ *
24
+ * Use this module for local-first browser data, offline caches,
25
+ * client-side migrations, and import/export workflows that need OPFS
26
+ * durability. Start {@link run} in the worker script, then connect the
27
+ * application through the worker-backed `SqliteClient` constructor.
28
+ *
29
+ * **Gotchas**
30
+ *
31
+ * OPFS requires browser support and a secure origin. Coordinate multiple tabs
32
+ * or workers before opening or migrating the same database, because this module
33
+ * owns a single connection and does not provide cross-tab locking. Close unused
34
+ * ports so access handles are released promptly.
35
+ *
36
+ * **See also**
37
+ *
38
+ * - {@link OpfsWorkerConfig} for the required worker port and database name.
39
+ * - {@link run} for starting the worker message loop.
20
40
  *
21
41
  * @since 4.0.0
22
42
  */
@@ -88,7 +88,7 @@ export interface SqliteClient extends Client.SqlClient {
88
88
  }
89
89
 
90
90
  /**
91
- * Context service tag for the SQLite WASM client.
91
+ * Service tag for the SQLite WASM client.
92
92
  *
93
93
  * @category tags
94
94
  * @since 4.0.0
@@ -473,9 +473,9 @@ const extractObject = (rows: [Array<string>, Array<any>]) => rows[1].map((row) =
473
473
  const extractRows = (rows: [Array<string>, Array<any>]) => rows[1]
474
474
 
475
475
  /**
476
- * Fiber-local list of transferables to include with worker-backed SQLite WASM query messages.
476
+ * Fiber reference that stores transferables to include with worker-backed SQLite WASM query messages.
477
477
  *
478
- * @category tranferables
478
+ * @category transferables
479
479
  * @since 4.0.0
480
480
  */
481
481
  export const Transferables = Context.Reference<ReadonlyArray<Transferable>>(
@@ -486,7 +486,7 @@ export const Transferables = Context.Reference<ReadonlyArray<Transferable>>(
486
486
  /**
487
487
  * Runs an effect with the supplied transferables attached to worker-backed SQLite WASM query messages.
488
488
  *
489
- * @category tranferables
489
+ * @category transferables
490
490
  * @since 4.0.0
491
491
  */
492
492
  export const withTransferables =