@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.
Files changed (92) hide show
  1. package/AGENTS.md +381 -0
  2. package/CLAUDE.md +381 -0
  3. package/README.md +10 -3
  4. package/ai-docs/README.md +44 -0
  5. package/ai-docs/package.json +36 -0
  6. package/ai-docs/src/01_effect/01_basics/01_effect-gen.ts +30 -0
  7. package/ai-docs/src/01_effect/01_basics/02_effect-fn.ts +39 -0
  8. package/ai-docs/src/01_effect/01_basics/10_creating-effects.ts +74 -0
  9. package/ai-docs/src/01_effect/01_basics/index.md +5 -0
  10. package/ai-docs/src/01_effect/02_schema/10_schema-basics.ts +43 -0
  11. package/ai-docs/src/01_effect/02_schema/index.md +7 -0
  12. package/ai-docs/src/01_effect/03_services/01_service.ts +45 -0
  13. package/ai-docs/src/01_effect/03_services/10_reference.ts +10 -0
  14. package/ai-docs/src/01_effect/03_services/20_layer-composition.ts +70 -0
  15. package/ai-docs/src/01_effect/03_services/20_layer-unwrap.ts +66 -0
  16. package/ai-docs/src/01_effect/03_services/index.md +5 -0
  17. package/ai-docs/src/01_effect/04_errors/01_error-handling.ts +30 -0
  18. package/ai-docs/src/01_effect/04_errors/10_catch-tags.ts +24 -0
  19. package/ai-docs/src/01_effect/04_errors/20_reason-errors.ts +64 -0
  20. package/ai-docs/src/01_effect/04_errors/index.md +1 -0
  21. package/ai-docs/src/01_effect/05_resources/10_acquire-release.ts +105 -0
  22. package/ai-docs/src/01_effect/05_resources/20_layer-side-effects.ts +31 -0
  23. package/ai-docs/src/01_effect/05_resources/30_layer-map.ts +86 -0
  24. package/ai-docs/src/01_effect/05_resources/index.md +3 -0
  25. package/ai-docs/src/01_effect/06_running/10_run-main.ts +30 -0
  26. package/ai-docs/src/01_effect/06_running/20_layer-launch.ts +27 -0
  27. package/ai-docs/src/01_effect/06_running/index.md +1 -0
  28. package/ai-docs/src/01_effect/07_pubsub/10_pubsub.ts +56 -0
  29. package/ai-docs/src/01_effect/07_pubsub/index.md +3 -0
  30. package/ai-docs/src/03_stream/10_creating-streams.ts +103 -0
  31. package/ai-docs/src/03_stream/20_consuming-streams.ts +137 -0
  32. package/ai-docs/src/03_stream/30_encoding.ts +165 -0
  33. package/ai-docs/src/03_stream/index.md +4 -0
  34. package/ai-docs/src/04_integration/10_managed-runtime.ts +129 -0
  35. package/ai-docs/src/04_integration/index.md +5 -0
  36. package/ai-docs/src/05_batching/10_request-resolver.ts +89 -0
  37. package/ai-docs/src/05_batching/index.md +3 -0
  38. package/ai-docs/src/06_schedule/10_schedules.ts +110 -0
  39. package/ai-docs/src/06_schedule/index.md +3 -0
  40. package/ai-docs/src/07_datetime/10_creating-and-formatting.ts +30 -0
  41. package/ai-docs/src/07_datetime/20_time-zones.ts +44 -0
  42. package/ai-docs/src/07_datetime/index.md +5 -0
  43. package/ai-docs/src/08_observability/10_logging.ts +66 -0
  44. package/ai-docs/src/08_observability/20_otlp-tracing.ts +95 -0
  45. package/ai-docs/src/08_observability/index.md +7 -0
  46. package/ai-docs/src/09_testing/10_effect-tests.ts +55 -0
  47. package/ai-docs/src/09_testing/20_layer-tests.ts +138 -0
  48. package/ai-docs/src/09_testing/index.md +1 -0
  49. package/ai-docs/src/10_predicate/01_basics.ts +14 -0
  50. package/ai-docs/src/10_predicate/index.md +9 -0
  51. package/ai-docs/src/50_http-client/10_basics.ts +102 -0
  52. package/ai-docs/src/50_http-client/index.md +3 -0
  53. package/ai-docs/src/51_http-server/10_basics.ts +116 -0
  54. package/ai-docs/src/51_http-server/fixtures/api/Api.ts +14 -0
  55. package/ai-docs/src/51_http-server/fixtures/api/Authorization.ts +36 -0
  56. package/ai-docs/src/51_http-server/fixtures/api/System.ts +10 -0
  57. package/ai-docs/src/51_http-server/fixtures/api/Users.ts +91 -0
  58. package/ai-docs/src/51_http-server/fixtures/domain/User.ts +12 -0
  59. package/ai-docs/src/51_http-server/fixtures/domain/UserErrors.ts +22 -0
  60. package/ai-docs/src/51_http-server/fixtures/server/Authorization.ts +36 -0
  61. package/ai-docs/src/51_http-server/fixtures/server/Users/http.ts +71 -0
  62. package/ai-docs/src/51_http-server/fixtures/server/Users.ts +62 -0
  63. package/ai-docs/src/51_http-server/index.md +3 -0
  64. package/ai-docs/src/60_child-process/10_working-with-child-processes.ts +117 -0
  65. package/ai-docs/src/60_child-process/index.md +3 -0
  66. package/ai-docs/src/70_cli/10_basics.ts +136 -0
  67. package/ai-docs/src/70_cli/index.md +5 -0
  68. package/ai-docs/src/71_ai/10_language-model.ts +156 -0
  69. package/ai-docs/src/71_ai/20_tools.ts +226 -0
  70. package/ai-docs/src/71_ai/30_chat.ts +158 -0
  71. package/ai-docs/src/71_ai/fixtures/domain/LaunchPlan.ts +9 -0
  72. package/ai-docs/src/71_ai/index.md +5 -0
  73. package/ai-docs/src/80_cluster/10_entities.ts +97 -0
  74. package/ai-docs/src/80_cluster/index.md +4 -0
  75. package/ai-docs/src/index.md +10 -0
  76. package/ai-docs/tsconfig.json +24 -0
  77. package/dist/OpfsWorker.d.ts +1 -1
  78. package/dist/OpfsWorker.d.ts.map +1 -1
  79. package/dist/OpfsWorker.js +2 -2
  80. package/dist/OpfsWorker.js.map +1 -1
  81. package/dist/SqliteClient.d.ts +2 -2
  82. package/dist/SqliteClient.d.ts.map +1 -1
  83. package/dist/SqliteClient.js +15 -6
  84. package/dist/SqliteClient.js.map +1 -1
  85. package/dist/SqliteMigrator.d.ts +2 -2
  86. package/dist/SqliteMigrator.js +2 -2
  87. package/dist/SqliteMigrator.js.map +1 -1
  88. package/dist/index.js.map +1 -1
  89. package/package.json +12 -10
  90. package/src/OpfsWorker.ts +5 -2
  91. package/src/SqliteClient.ts +16 -8
  92. 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-beta.98",
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-smol.git",
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-smol/issues"
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-beta.98"
51
+ "effect": "^4.0.0-rc.108"
48
52
  },
49
53
  "peerDependencies": {
50
- "@effect/wa-sqlite": "^0.1.2",
51
- "effect": "^4.0.0-beta.98"
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 constructors
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.promise(() => AccessHandlePoolVFS.create("opfs", factory))
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({
@@ -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 models
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[columns[i]] = row[i]
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[columns[i]] = row[i]
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[columns[i]] = row[i]
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 transferables
477
+ * @category services
470
478
  * @since 4.0.0
471
479
  */
472
480
  export const Transferables = Context.Reference<ReadonlyArray<Transferable>>(
@@ -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 constructors
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 constructors
50
+ * @category layers
51
51
  * @since 4.0.0
52
52
  */
53
53
  export const layer = <R>(