@effect/sql-sqlite-wasm 4.0.0-beta.98 → 4.0.0-rc.108
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.
- package/AGENTS.md +381 -0
- package/CLAUDE.md +381 -0
- package/README.md +10 -3
- package/ai-docs/README.md +44 -0
- package/ai-docs/package.json +36 -0
- package/ai-docs/src/01_effect/01_basics/01_effect-gen.ts +30 -0
- package/ai-docs/src/01_effect/01_basics/02_effect-fn.ts +39 -0
- package/ai-docs/src/01_effect/01_basics/10_creating-effects.ts +74 -0
- package/ai-docs/src/01_effect/01_basics/index.md +5 -0
- package/ai-docs/src/01_effect/02_schema/10_schema-basics.ts +43 -0
- package/ai-docs/src/01_effect/02_schema/index.md +7 -0
- package/ai-docs/src/01_effect/03_services/01_service.ts +45 -0
- package/ai-docs/src/01_effect/03_services/10_reference.ts +10 -0
- package/ai-docs/src/01_effect/03_services/20_layer-composition.ts +70 -0
- package/ai-docs/src/01_effect/03_services/20_layer-unwrap.ts +66 -0
- package/ai-docs/src/01_effect/03_services/index.md +5 -0
- package/ai-docs/src/01_effect/04_errors/01_error-handling.ts +30 -0
- package/ai-docs/src/01_effect/04_errors/10_catch-tags.ts +24 -0
- package/ai-docs/src/01_effect/04_errors/20_reason-errors.ts +64 -0
- package/ai-docs/src/01_effect/04_errors/index.md +1 -0
- package/ai-docs/src/01_effect/05_resources/10_acquire-release.ts +105 -0
- package/ai-docs/src/01_effect/05_resources/20_layer-side-effects.ts +31 -0
- package/ai-docs/src/01_effect/05_resources/30_layer-map.ts +86 -0
- package/ai-docs/src/01_effect/05_resources/index.md +3 -0
- package/ai-docs/src/01_effect/06_running/10_run-main.ts +30 -0
- package/ai-docs/src/01_effect/06_running/20_layer-launch.ts +27 -0
- package/ai-docs/src/01_effect/06_running/index.md +1 -0
- package/ai-docs/src/01_effect/07_pubsub/10_pubsub.ts +56 -0
- package/ai-docs/src/01_effect/07_pubsub/index.md +3 -0
- package/ai-docs/src/03_stream/10_creating-streams.ts +103 -0
- package/ai-docs/src/03_stream/20_consuming-streams.ts +137 -0
- package/ai-docs/src/03_stream/30_encoding.ts +165 -0
- package/ai-docs/src/03_stream/index.md +4 -0
- package/ai-docs/src/04_integration/10_managed-runtime.ts +129 -0
- package/ai-docs/src/04_integration/index.md +5 -0
- package/ai-docs/src/05_batching/10_request-resolver.ts +89 -0
- package/ai-docs/src/05_batching/index.md +3 -0
- package/ai-docs/src/06_schedule/10_schedules.ts +110 -0
- package/ai-docs/src/06_schedule/index.md +3 -0
- package/ai-docs/src/07_datetime/10_creating-and-formatting.ts +30 -0
- package/ai-docs/src/07_datetime/20_time-zones.ts +44 -0
- package/ai-docs/src/07_datetime/index.md +5 -0
- package/ai-docs/src/08_observability/10_logging.ts +66 -0
- package/ai-docs/src/08_observability/20_otlp-tracing.ts +95 -0
- package/ai-docs/src/08_observability/index.md +7 -0
- package/ai-docs/src/09_testing/10_effect-tests.ts +55 -0
- package/ai-docs/src/09_testing/20_layer-tests.ts +138 -0
- package/ai-docs/src/09_testing/index.md +1 -0
- package/ai-docs/src/10_predicate/01_basics.ts +14 -0
- package/ai-docs/src/10_predicate/index.md +9 -0
- package/ai-docs/src/50_http-client/10_basics.ts +102 -0
- package/ai-docs/src/50_http-client/index.md +3 -0
- package/ai-docs/src/51_http-server/10_basics.ts +116 -0
- package/ai-docs/src/51_http-server/fixtures/api/Api.ts +14 -0
- package/ai-docs/src/51_http-server/fixtures/api/Authorization.ts +36 -0
- package/ai-docs/src/51_http-server/fixtures/api/System.ts +10 -0
- package/ai-docs/src/51_http-server/fixtures/api/Users.ts +91 -0
- package/ai-docs/src/51_http-server/fixtures/domain/User.ts +12 -0
- package/ai-docs/src/51_http-server/fixtures/domain/UserErrors.ts +22 -0
- package/ai-docs/src/51_http-server/fixtures/server/Authorization.ts +36 -0
- package/ai-docs/src/51_http-server/fixtures/server/Users/http.ts +71 -0
- package/ai-docs/src/51_http-server/fixtures/server/Users.ts +62 -0
- package/ai-docs/src/51_http-server/index.md +3 -0
- package/ai-docs/src/60_child-process/10_working-with-child-processes.ts +117 -0
- package/ai-docs/src/60_child-process/index.md +3 -0
- package/ai-docs/src/70_cli/10_basics.ts +136 -0
- package/ai-docs/src/70_cli/index.md +5 -0
- package/ai-docs/src/71_ai/10_language-model.ts +156 -0
- package/ai-docs/src/71_ai/20_tools.ts +226 -0
- package/ai-docs/src/71_ai/30_chat.ts +158 -0
- package/ai-docs/src/71_ai/fixtures/domain/LaunchPlan.ts +9 -0
- package/ai-docs/src/71_ai/index.md +5 -0
- package/ai-docs/src/80_cluster/10_entities.ts +97 -0
- package/ai-docs/src/80_cluster/index.md +4 -0
- package/ai-docs/src/index.md +10 -0
- package/ai-docs/tsconfig.json +24 -0
- package/dist/OpfsWorker.d.ts +1 -1
- package/dist/OpfsWorker.d.ts.map +1 -1
- package/dist/OpfsWorker.js +2 -2
- package/dist/OpfsWorker.js.map +1 -1
- package/dist/SqliteClient.d.ts +2 -2
- package/dist/SqliteClient.d.ts.map +1 -1
- package/dist/SqliteClient.js +15 -6
- package/dist/SqliteClient.js.map +1 -1
- package/dist/SqliteMigrator.d.ts +2 -2
- package/dist/SqliteMigrator.js +2 -2
- package/dist/SqliteMigrator.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +12 -10
- package/src/OpfsWorker.ts +5 -2
- package/src/SqliteClient.ts +16 -8
- package/src/SqliteMigrator.ts +2 -2
package/package.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/sql-sqlite-wasm",
|
|
3
|
-
"version": "4.0.0-
|
|
3
|
+
"version": "4.0.0-rc.108",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "A SQLite toolkit for Effect",
|
|
7
7
|
"homepage": "https://effect.website",
|
|
8
8
|
"repository": {
|
|
9
9
|
"type": "git",
|
|
10
|
-
"url": "https://github.com/Effect-TS/effect
|
|
10
|
+
"url": "https://github.com/Effect-TS/effect.git",
|
|
11
11
|
"directory": "packages/sql/sqlite-wasm"
|
|
12
12
|
},
|
|
13
13
|
"bugs": {
|
|
14
|
-
"url": "https://github.com/Effect-TS/effect
|
|
14
|
+
"url": "https://github.com/Effect-TS/effect/issues"
|
|
15
15
|
},
|
|
16
16
|
"tags": [
|
|
17
17
|
"typescript",
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
".": "./dist/index.js",
|
|
30
30
|
"./*": "./dist/*.js",
|
|
31
31
|
"./internal/*": null,
|
|
32
|
+
"./index": null,
|
|
32
33
|
"./*/index": null
|
|
33
34
|
},
|
|
34
35
|
"files": [
|
|
@@ -36,7 +37,10 @@
|
|
|
36
37
|
"dist/**/*.js",
|
|
37
38
|
"dist/**/*.js.map",
|
|
38
39
|
"dist/**/*.d.ts",
|
|
39
|
-
"dist/**/*.d.ts.map"
|
|
40
|
+
"dist/**/*.d.ts.map",
|
|
41
|
+
"AGENTS.md",
|
|
42
|
+
"CLAUDE.md",
|
|
43
|
+
"ai-docs/**/*"
|
|
40
44
|
],
|
|
41
45
|
"publishConfig": {
|
|
42
46
|
"access": "public",
|
|
@@ -44,18 +48,16 @@
|
|
|
44
48
|
},
|
|
45
49
|
"devDependencies": {
|
|
46
50
|
"@effect/wa-sqlite": "^0.2.1",
|
|
47
|
-
"effect": "^4.0.0-
|
|
51
|
+
"effect": "^4.0.0-rc.108"
|
|
48
52
|
},
|
|
49
53
|
"peerDependencies": {
|
|
50
|
-
"@effect/wa-sqlite": "
|
|
51
|
-
"effect": "^4.0.0-
|
|
54
|
+
"@effect/wa-sqlite": ">=0.1.2 <0.2.0",
|
|
55
|
+
"effect": "^4.0.0-rc.108"
|
|
52
56
|
},
|
|
53
57
|
"scripts": {
|
|
54
58
|
"codegen": "effect-utils codegen",
|
|
55
59
|
"build": "tsc -b tsconfig.json && pnpm babel",
|
|
56
60
|
"babel": "babel dist --plugins annotate-pure-calls --out-dir dist --source-maps",
|
|
57
|
-
"check": "tsc -b tsconfig.json"
|
|
58
|
-
"test": "vitest",
|
|
59
|
-
"coverage": "vitest --coverage"
|
|
61
|
+
"check": "tsc -b tsconfig.json"
|
|
60
62
|
}
|
|
61
63
|
}
|
package/src/OpfsWorker.ts
CHANGED
|
@@ -36,7 +36,7 @@ export interface OpfsWorkerConfig {
|
|
|
36
36
|
/**
|
|
37
37
|
* Runs the SQLite OPFS worker loop, opening the configured database, posting a ready message, handling query/import/export/update-hook messages, and closing when a close message is received.
|
|
38
38
|
*
|
|
39
|
-
* @category
|
|
39
|
+
* @category running
|
|
40
40
|
* @since 4.0.0
|
|
41
41
|
*/
|
|
42
42
|
export const run = (
|
|
@@ -45,7 +45,10 @@ export const run = (
|
|
|
45
45
|
Effect.gen(function*() {
|
|
46
46
|
const factory = yield* Effect.promise(() => SQLiteESMFactory())
|
|
47
47
|
const sqlite3 = WaSqlite.Factory(factory)
|
|
48
|
-
const vfs = yield* Effect.
|
|
48
|
+
const vfs = yield* Effect.acquireRelease(
|
|
49
|
+
Effect.promise(() => AccessHandlePoolVFS.create("opfs", factory)),
|
|
50
|
+
(vfs) => Effect.promise(() => vfs.close())
|
|
51
|
+
)
|
|
49
52
|
sqlite3.vfs_register(vfs, false)
|
|
50
53
|
const db = yield* Effect.acquireRelease(
|
|
51
54
|
Effect.try({
|
package/src/SqliteClient.ts
CHANGED
|
@@ -24,6 +24,7 @@ import * as Exit from "effect/Exit"
|
|
|
24
24
|
import * as Fiber from "effect/Fiber"
|
|
25
25
|
import { identity } from "effect/Function"
|
|
26
26
|
import * as Layer from "effect/Layer"
|
|
27
|
+
import * as Rec from "effect/Record"
|
|
27
28
|
import * as Scope from "effect/Scope"
|
|
28
29
|
import * as ScopedRef from "effect/ScopedRef"
|
|
29
30
|
import * as Semaphore from "effect/Semaphore"
|
|
@@ -59,7 +60,7 @@ export type TypeId = "~@effect/sql-sqlite-wasm/SqliteClient"
|
|
|
59
60
|
/**
|
|
60
61
|
* SQLite WASM client service interface, extending `SqlClient` with database `export` and `import` operations and marking `updateValues` as unsupported for SQLite.
|
|
61
62
|
*
|
|
62
|
-
* @category
|
|
63
|
+
* @category services
|
|
63
64
|
* @since 4.0.0
|
|
64
65
|
*/
|
|
65
66
|
export interface SqliteClient extends Client.SqlClient {
|
|
@@ -183,7 +184,7 @@ export const makeMemory = (
|
|
|
183
184
|
if (rowMode === "object") {
|
|
184
185
|
const obj: Record<string, any> = {}
|
|
185
186
|
for (let i = 0; i < columns.length; i++) {
|
|
186
|
-
obj
|
|
187
|
+
Rec.assignProperty(obj, columns[i], row[i])
|
|
187
188
|
}
|
|
188
189
|
results.push(obj)
|
|
189
190
|
} else {
|
|
@@ -224,7 +225,7 @@ export const makeMemory = (
|
|
|
224
225
|
const row = sqlite3.row(stmt)
|
|
225
226
|
const obj: Record<string, any> = {}
|
|
226
227
|
for (let i = 0; i < columns.length; i++) {
|
|
227
|
-
obj
|
|
228
|
+
Rec.assignProperty(obj, columns[i], row[i])
|
|
228
229
|
}
|
|
229
230
|
yield obj
|
|
230
231
|
}
|
|
@@ -305,10 +306,9 @@ export const make = (
|
|
|
305
306
|
const transformRows = options.transformResultNames ?
|
|
306
307
|
Statement.defaultTransforms(options.transformResultNames).array :
|
|
307
308
|
undefined
|
|
308
|
-
const pending = new Map<number, (effect: Exit.Exit<any, SqlError>) => void>()
|
|
309
|
-
|
|
310
309
|
const makeConnection = Effect.gen(function*() {
|
|
311
310
|
let currentId = 0
|
|
311
|
+
const pending = new Map<number, (effect: Exit.Exit<any, SqlError>) => void>()
|
|
312
312
|
const scope = yield* Effect.scope
|
|
313
313
|
const readyDeferred = yield* Deferred.make<void>()
|
|
314
314
|
|
|
@@ -344,7 +344,15 @@ export const make = (
|
|
|
344
344
|
}
|
|
345
345
|
port.addEventListener("message", onMessage)
|
|
346
346
|
|
|
347
|
-
function onError() {
|
|
347
|
+
function onError(cause: Event) {
|
|
348
|
+
const exit = Exit.fail(
|
|
349
|
+
new SqlError({ reason: classifyError(cause, "SQLite WASM worker failed", "worker") })
|
|
350
|
+
)
|
|
351
|
+
const requests = Array.from(pending.values())
|
|
352
|
+
pending.clear()
|
|
353
|
+
for (const resume of requests) {
|
|
354
|
+
resume(exit)
|
|
355
|
+
}
|
|
348
356
|
Effect.runFork(ScopedRef.set(connectionRef, makeConnection))
|
|
349
357
|
}
|
|
350
358
|
if ("onerror" in worker) {
|
|
@@ -456,7 +464,7 @@ export const make = (
|
|
|
456
464
|
function rowToObject(columns: Array<string>, row: Array<any>) {
|
|
457
465
|
const obj: Record<string, any> = {}
|
|
458
466
|
for (let i = 0; i < columns.length; i++) {
|
|
459
|
-
obj
|
|
467
|
+
Rec.assignProperty(obj, columns[i], row[i])
|
|
460
468
|
}
|
|
461
469
|
return obj
|
|
462
470
|
}
|
|
@@ -466,7 +474,7 @@ const extractRows = (rows: [Array<string>, Array<any>]) => rows[1]
|
|
|
466
474
|
/**
|
|
467
475
|
* Fiber reference that stores transferables to include with worker-backed SQLite WASM query messages.
|
|
468
476
|
*
|
|
469
|
-
* @category
|
|
477
|
+
* @category services
|
|
470
478
|
* @since 4.0.0
|
|
471
479
|
*/
|
|
472
480
|
export const Transferables = Context.Reference<ReadonlyArray<Transferable>>(
|
package/src/SqliteMigrator.ts
CHANGED
|
@@ -33,7 +33,7 @@ export * from "effect/unstable/sql/Migrator"
|
|
|
33
33
|
/**
|
|
34
34
|
* Runs SQL migrations for a SQLite WASM database using the shared `Migrator` implementation and the current `SqlClient`.
|
|
35
35
|
*
|
|
36
|
-
* @category
|
|
36
|
+
* @category running
|
|
37
37
|
* @since 4.0.0
|
|
38
38
|
*/
|
|
39
39
|
export const run: <R>(
|
|
@@ -47,7 +47,7 @@ export const run: <R>(
|
|
|
47
47
|
/**
|
|
48
48
|
* Creates a layer that runs the configured SQLite WASM migrations during layer construction and provides no services.
|
|
49
49
|
*
|
|
50
|
-
* @category
|
|
50
|
+
* @category layers
|
|
51
51
|
* @since 4.0.0
|
|
52
52
|
*/
|
|
53
53
|
export const layer = <R>(
|