@effect/sql-sqlite-wasm 4.0.0-beta.7 → 4.0.0-beta.71

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,16 +1,20 @@
1
1
  import * as Effect from "effect/Effect";
2
2
  import { SqlError } from "effect/unstable/sql/SqlError";
3
3
  /**
4
+ * Configuration for the SQLite OPFS worker, including the message port used for the client protocol and the OPFS database name to open.
5
+ *
4
6
  * @category models
5
- * @since 1.0.0
7
+ * @since 4.0.0
6
8
  */
7
9
  export interface OpfsWorkerConfig {
8
10
  readonly port: EventTarget & Pick<MessagePort, "postMessage" | "close">;
9
11
  readonly dbName: string;
10
12
  }
11
13
  /**
12
- * @category constructor
13
- * @since 1.0.0
14
+ * 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.
15
+ *
16
+ * @category constructors
17
+ * @since 4.0.0
14
18
  */
15
19
  export declare const run: (options: OpfsWorkerConfig) => Effect.Effect<void, SqlError>;
16
20
  //# sourceMappingURL=OpfsWorker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OpfsWorker.d.ts","sourceRoot":"","sources":["../src/OpfsWorker.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAGvD;;;GAGG;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;;;GAGG;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,5 +1,44 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Worker-side entry point for SQLite WASM databases stored in the browser's
3
+ * Origin Private File System (OPFS).
4
+ *
5
+ * This module opens `@effect/wa-sqlite` with the OPFS access-handle VFS and
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.
10
+ *
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.
40
+ *
41
+ * @since 4.0.0
3
42
  */
4
43
  /// <reference lib="webworker" />
5
44
  // oxlint-disable-next-line effect/no-import-from-barrel-package
@@ -7,10 +46,16 @@ import * as WaSqlite from "@effect/wa-sqlite";
7
46
  import SQLiteESMFactory from "@effect/wa-sqlite/dist/wa-sqlite.mjs";
8
47
  import { AccessHandlePoolVFS } from "@effect/wa-sqlite/src/examples/AccessHandlePoolVFS.js";
9
48
  import * as Effect from "effect/Effect";
10
- import { SqlError } from "effect/unstable/sql/SqlError";
49
+ import { classifySqliteError, SqlError } from "effect/unstable/sql/SqlError";
50
+ const classifyError = (cause, message, operation) => classifySqliteError(cause, {
51
+ message,
52
+ operation
53
+ });
11
54
  /**
12
- * @category constructor
13
- * @since 1.0.0
55
+ * 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.
56
+ *
57
+ * @category constructors
58
+ * @since 4.0.0
14
59
  */
15
60
  export const run = options => Effect.gen(function* () {
16
61
  const factory = yield* Effect.promise(() => SQLiteESMFactory());
@@ -20,8 +65,7 @@ export const run = options => Effect.gen(function* () {
20
65
  const db = yield* Effect.acquireRelease(Effect.try({
21
66
  try: () => sqlite3.open_v2(options.dbName, undefined, "opfs"),
22
67
  catch: cause => new SqlError({
23
- cause,
24
- message: "Failed to open database"
68
+ reason: classifyError(cause, "Failed to open database", "openDatabase")
25
69
  })
26
70
  }), db => Effect.sync(() => sqlite3.close(db)));
27
71
  return yield* Effect.callback(resume => {
@@ -1 +1 @@
1
- {"version":3,"file":"OpfsWorker.js","names":["WaSqlite","SQLiteESMFactory","AccessHandlePoolVFS","Effect","SqlError","run","options","gen","factory","promise","sqlite3","Factory","vfs","create","vfs_register","db","acquireRelease","try","open_v2","dbName","undefined","catch","cause","message","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":[]}
@@ -1,24 +1,30 @@
1
1
  import * as Config from "effect/Config";
2
+ import * as Context from "effect/Context";
2
3
  import * as Effect from "effect/Effect";
3
4
  import * as Layer from "effect/Layer";
4
5
  import * as Scope from "effect/Scope";
5
- import * as ServiceMap from "effect/ServiceMap";
6
6
  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
- * @category type ids
11
- * @since 1.0.0
10
+ * Runtime identifier attached to SQLite WASM client values.
11
+ *
12
+ * @category type IDs
13
+ * @since 4.0.0
12
14
  */
13
15
  export declare const TypeId: TypeId;
14
16
  /**
15
- * @category type ids
16
- * @since 1.0.0
17
+ * Type-level identifier for SQLite WASM client values.
18
+ *
19
+ * @category type IDs
20
+ * @since 4.0.0
17
21
  */
18
22
  export type TypeId = "~@effect/sql-sqlite-wasm/SqliteClient";
19
23
  /**
24
+ * SQLite WASM client service interface, extending `SqlClient` with database `export` and `import` operations and marking `updateValues` as unsupported for SQLite.
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 service tag for the SQLite WASM client.
39
+ *
32
40
  * @category tags
33
- * @since 1.0.0
41
+ * @since 4.0.0
34
42
  */
35
- export declare const SqliteClient: ServiceMap.Service<SqliteClient, SqliteClient>;
43
+ export declare const SqliteClient: Context.Service<SqliteClient, SqliteClient>;
36
44
  /**
45
+ * Configuration for an in-memory SQLite WASM client, including optional reactivity hooks, 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 SqliteClientMemoryConfig {
41
51
  readonly installReactivityHooks?: boolean;
@@ -44,8 +54,10 @@ export interface SqliteClientMemoryConfig {
44
54
  readonly transformQueryNames?: (str: string) => string;
45
55
  }
46
56
  /**
57
+ * Configuration for a worker-backed SQLite WASM client, including the scoped worker or message port, optional reactivity hooks, span attributes, and query/result name transforms.
58
+ *
47
59
  * @category models
48
- * @since 1.0.0
60
+ * @since 4.0.0
49
61
  */
50
62
  export interface SqliteClientConfig {
51
63
  readonly worker: Effect.Effect<Worker | SharedWorker | MessagePort, never, Scope.Scope>;
@@ -55,43 +67,59 @@ export interface SqliteClientConfig {
55
67
  readonly transformQueryNames?: (str: string) => string;
56
68
  }
57
69
  /**
58
- * @category constructor
59
- * @since 1.0.0
70
+ * Creates a scoped in-memory SQLite WASM client using the memory VFS, serializing access through a semaphore and exposing database `export` and `import` operations.
71
+ *
72
+ * @category constructors
73
+ * @since 4.0.0
60
74
  */
61
75
  export declare const makeMemory: (options: SqliteClientMemoryConfig) => Effect.Effect<SqliteClient, SqlError, Scope.Scope | Reactivity.Reactivity>;
62
76
  /**
63
- * @category constructor
64
- * @since 1.0.0
77
+ * Creates a scoped worker-backed SQLite WASM client, communicating with the configured worker or message port, restarting the scoped connection on worker errors, and exposing database `export` and `import` operations.
78
+ *
79
+ * @category constructors
80
+ * @since 4.0.0
65
81
  */
66
82
  export declare const make: (options: SqliteClientConfig) => Effect.Effect<SqliteClient, SqlError, Scope.Scope | Reactivity.Reactivity>;
67
83
  /**
84
+ * Fiber-local list of transferables to include with worker-backed SQLite WASM query messages.
85
+ *
68
86
  * @category tranferables
69
- * @since 1.0.0
87
+ * @since 4.0.0
70
88
  */
71
- export declare const Transferables: ServiceMap.Reference<readonly Transferable[]>;
89
+ export declare const Transferables: Context.Reference<readonly Transferable[]>;
72
90
  /**
91
+ * Runs an effect with the supplied transferables attached to worker-backed SQLite WASM query messages.
92
+ *
73
93
  * @category tranferables
74
- * @since 1.0.0
94
+ * @since 4.0.0
75
95
  */
76
96
  export declare const withTransferables: (transferables: ReadonlyArray<Transferable>) => <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
77
97
  /**
98
+ * Builds a layer from an Effect `Config` value, providing both the in-memory SQLite WASM `SqliteClient` service and the generic `SqlClient` service.
99
+ *
78
100
  * @category layers
79
- * @since 1.0.0
101
+ * @since 4.0.0
80
102
  */
81
103
  export declare const layerMemoryConfig: (config: Config.Wrap<SqliteClientMemoryConfig>) => Layer.Layer<SqliteClient | Client.SqlClient, Config.ConfigError | SqlError>;
82
104
  /**
105
+ * Builds a layer from an in-memory SQLite WASM client configuration, providing both `SqliteClient` and the generic `SqlClient` service.
106
+ *
83
107
  * @category layers
84
- * @since 1.0.0
108
+ * @since 4.0.0
85
109
  */
86
110
  export declare const layerMemory: (config: SqliteClientMemoryConfig) => Layer.Layer<SqliteClient | Client.SqlClient, SqlError>;
87
111
  /**
112
+ * Builds a layer from a worker-backed SQLite WASM client configuration, providing both `SqliteClient` and the generic `SqlClient` service.
113
+ *
88
114
  * @category layers
89
- * @since 1.0.0
115
+ * @since 4.0.0
90
116
  */
91
117
  export declare const layer: (config: SqliteClientConfig) => Layer.Layer<SqliteClient | Client.SqlClient, SqlError>;
92
118
  /**
119
+ * Builds a layer from an Effect `Config` value, providing both the worker-backed SQLite WASM `SqliteClient` service and the generic `SqlClient` service.
120
+ *
93
121
  * @category layers
94
- * @since 1.0.0
122
+ * @since 4.0.0
95
123
  */
96
124
  export declare const layerConfig: (config: Config.Wrap<SqliteClientConfig>) => Layer.Layer<SqliteClient | Client.SqlClient, Config.ConfigError | SqlError>;
97
125
  //# sourceMappingURL=SqliteClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SqliteClient.d.ts","sourceRoot":"","sources":["../src/SqliteClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SqliteClient.d.ts","sourceRoot":"","sources":["../src/SqliteClient.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,38 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * SQLite WASM client implementation for Effect SQL, backed by `@effect/wa-sqlite`.
3
+ *
4
+ * This module exposes constructors and layers for providing both the
5
+ * SQLite-specific `SqliteClient` service and the generic Effect `SqlClient`
6
+ * service in browser, worker, and test runtimes. Use it for local-first
7
+ * browser storage, offline caches, client-side migrations, sandboxed test
8
+ * databases, and import/export workflows that snapshot a SQLite database as a
9
+ * `Uint8Array`.
10
+ *
11
+ * `makeMemory` opens an in-memory database through the WASM memory VFS, so data
12
+ * is transient unless the client `export` result is persisted and later passed
13
+ * back to `import`. `make` talks to a scoped `Worker`, `SharedWorker`, or
14
+ * `MessagePort`, which is the path used by the OPFS worker helper for persistent
15
+ * browser storage. Worker-backed queries cross a message boundary, transferable
16
+ * buffers can be supplied with `withTransferables`, and imports transfer the
17
+ * supplied `Uint8Array` buffer to the worker.
18
+ *
19
+ * Both client variants serialize access through a single connection. A
20
+ * transaction holds that connection for the lifetime of its scope, so keep
21
+ * transactions short and use them for multi-statement writes that must commit
22
+ * atomically. OPFS availability depends on the browser and origin, and multiple
23
+ * tabs or workers opening the same OPFS database should coordinate migrations
24
+ * and writes outside this module. Worker-backed clients restart their scoped
25
+ * connection on worker errors, `executeStream` is not implemented there, and
26
+ * SQLite does not support `updateValues`.
27
+ *
28
+ * @since 4.0.0
3
29
  */
4
30
  // oxlint-disable-next-line effect/no-import-from-barrel-package
5
31
  import * as WaSqlite from "@effect/wa-sqlite";
6
32
  import SQLiteESMFactory from "@effect/wa-sqlite/dist/wa-sqlite.mjs";
7
33
  import { MemoryVFS } from "@effect/wa-sqlite/src/examples/MemoryVFS.js";
8
34
  import * as Config from "effect/Config";
35
+ import * as Context from "effect/Context";
9
36
  import * as Deferred from "effect/Deferred";
10
37
  import * as Effect from "effect/Effect";
11
38
  import * as Exit from "effect/Exit";
@@ -15,29 +42,38 @@ import * as Layer from "effect/Layer";
15
42
  import * as Scope from "effect/Scope";
16
43
  import * as ScopedRef from "effect/ScopedRef";
17
44
  import * as Semaphore from "effect/Semaphore";
18
- import * as ServiceMap from "effect/ServiceMap";
19
45
  import * as Stream from "effect/Stream";
20
46
  import * as Reactivity from "effect/unstable/reactivity/Reactivity";
21
47
  import * as Client from "effect/unstable/sql/SqlClient";
22
- import { SqlError } from "effect/unstable/sql/SqlError";
48
+ import { classifySqliteError, SqlError } from "effect/unstable/sql/SqlError";
23
49
  import * as Statement from "effect/unstable/sql/Statement";
24
50
  const ATTR_DB_SYSTEM_NAME = "db.system.name";
51
+ const classifyError = (cause, message, operation) => classifySqliteError(cause, {
52
+ message,
53
+ operation
54
+ });
25
55
  /**
26
- * @category type ids
27
- * @since 1.0.0
56
+ * Runtime identifier attached to SQLite WASM client values.
57
+ *
58
+ * @category type IDs
59
+ * @since 4.0.0
28
60
  */
29
61
  export const TypeId = "~@effect/sql-sqlite-wasm/SqliteClient";
30
62
  /**
63
+ * Context service tag for the SQLite WASM client.
64
+ *
31
65
  * @category tags
32
- * @since 1.0.0
66
+ * @since 4.0.0
33
67
  */
34
- export const SqliteClient = /*#__PURE__*/ServiceMap.Service("@effect/sql-sqlite-wasm/SqliteClient");
68
+ export const SqliteClient = /*#__PURE__*/Context.Service("@effect/sql-sqlite-wasm/SqliteClient");
35
69
  const initModule = /*#__PURE__*/Effect.runSync(/*#__PURE__*/Effect.cached(/*#__PURE__*/Effect.promise(() => SQLiteESMFactory())));
36
70
  const initEffect = /*#__PURE__*/Effect.runSync(/*#__PURE__*/Effect.cached(/*#__PURE__*/initModule.pipe(/*#__PURE__*/Effect.map(module => WaSqlite.Factory(module)))));
37
71
  const registered = /*#__PURE__*/new Set();
38
72
  /**
39
- * @category constructor
40
- * @since 1.0.0
73
+ * Creates a scoped in-memory SQLite WASM client using the memory VFS, serializing access through a semaphore and exposing database `export` and `import` operations.
74
+ *
75
+ * @category constructors
76
+ * @since 4.0.0
41
77
  */
42
78
  export const makeMemory = options => Effect.gen(function* () {
43
79
  const reactivity = yield* Reactivity.Reactivity;
@@ -55,8 +91,7 @@ export const makeMemory = options => Effect.gen(function* () {
55
91
  const db = yield* Effect.acquireRelease(Effect.try({
56
92
  try: () => sqlite3.open_v2(":memory:", undefined, "memory-vfs"),
57
93
  catch: cause => new SqlError({
58
- cause,
59
- message: "Failed to open database"
94
+ reason: classifyError(cause, "Failed to open database", "openDatabase")
60
95
  })
61
96
  }), db => Effect.sync(() => sqlite3.close(db)));
62
97
  if (options.installReactivityHooks) {
@@ -91,8 +126,7 @@ export const makeMemory = options => Effect.gen(function* () {
91
126
  return results;
92
127
  },
93
128
  catch: cause => new SqlError({
94
- cause,
95
- message: "Failed to execute statement"
129
+ reason: classifyError(cause, "Failed to execute statement", "execute")
96
130
  })
97
131
  });
98
132
  return identity({
@@ -125,23 +159,20 @@ export const makeMemory = options => Effect.gen(function* () {
125
159
  }
126
160
  }
127
161
  return Stream.suspend(() => Stream.fromIteratorSucceed(stream()[Symbol.iterator]())).pipe(transformRows ? Stream.mapArray(chunk => transformRows(chunk)) : identity, Stream.mapError(cause => new SqlError({
128
- cause,
129
- message: "Failed to execute statement"
162
+ reason: classifyError(cause, "Failed to execute statement", "stream")
130
163
  })));
131
164
  },
132
165
  export: Effect.try({
133
166
  try: () => sqlite3.serialize(db, "main"),
134
167
  catch: cause => new SqlError({
135
- cause,
136
- message: "Failed to export database"
168
+ reason: classifyError(cause, "Failed to export database", "export")
137
169
  })
138
170
  }),
139
171
  import(data) {
140
172
  return Effect.try({
141
173
  try: () => sqlite3.deserialize(db, "main", data, data.length, data.length, 1 | 2),
142
174
  catch: cause => new SqlError({
143
- cause,
144
- message: "Failed to import database"
175
+ reason: classifyError(cause, "Failed to import database", "import")
145
176
  })
146
177
  });
147
178
  }
@@ -152,7 +183,7 @@ export const makeMemory = options => Effect.gen(function* () {
152
183
  const acquirer = semaphore.withPermits(1)(Effect.succeed(connection));
153
184
  const transactionAcquirer = Effect.uninterruptibleMask(restore => {
154
185
  const fiber = Fiber.getCurrent();
155
- const scope = ServiceMap.getUnsafe(fiber.services, Scope.Scope);
186
+ const scope = Context.getUnsafe(fiber.context, Scope.Scope);
156
187
  return Effect.as(Effect.tap(restore(semaphore.take(1)), () => Scope.addFinalizer(scope, semaphore.release(1))), connection);
157
188
  });
158
189
  return Object.assign(yield* Client.make({
@@ -171,8 +202,10 @@ export const makeMemory = options => Effect.gen(function* () {
171
202
  });
172
203
  });
173
204
  /**
174
- * @category constructor
175
- * @since 1.0.0
205
+ * Creates a scoped worker-backed SQLite WASM client, communicating with the configured worker or message port, restarting the scoped connection on worker errors, and exposing database `export` and `import` operations.
206
+ *
207
+ * @category constructors
208
+ * @since 4.0.0
176
209
  */
177
210
  export const make = options => Effect.gen(function* () {
178
211
  const reactivity = yield* Reactivity.Reactivity;
@@ -203,8 +236,7 @@ export const make = options => Effect.gen(function* () {
203
236
  pending.delete(id);
204
237
  if (error) {
205
238
  resume(Exit.fail(new SqlError({
206
- cause: error,
207
- message: "Failed to execute statement"
239
+ reason: classifyError(error, "Failed to execute statement", "execute")
208
240
  })));
209
241
  } else {
210
242
  resume(Exit.succeed(results));
@@ -270,7 +302,7 @@ export const make = options => Effect.gen(function* () {
270
302
  const acquirer = semaphore.withPermits(1)(ScopedRef.get(connectionRef));
271
303
  const transactionAcquirer = Effect.uninterruptibleMask(Effect.fnUntraced(function* (restore) {
272
304
  const fiber = Fiber.getCurrent();
273
- const scope = ServiceMap.getUnsafe(fiber.services, Scope.Scope);
305
+ const scope = Context.getUnsafe(fiber.context, Scope.Scope);
274
306
  yield* restore(semaphore.take(1));
275
307
  yield* Scope.addFinalizer(scope, semaphore.release(1));
276
308
  return yield* ScopedRef.get(connectionRef);
@@ -300,35 +332,47 @@ function rowToObject(columns, row) {
300
332
  const extractObject = rows => rows[1].map(row => rowToObject(rows[0], row));
301
333
  const extractRows = rows => rows[1];
302
334
  /**
335
+ * Fiber-local list of transferables to include with worker-backed SQLite WASM query messages.
336
+ *
303
337
  * @category tranferables
304
- * @since 1.0.0
338
+ * @since 4.0.0
305
339
  */
306
- export const Transferables = /*#__PURE__*/ServiceMap.Reference("@effect/sql-sqlite-wasm/currentTransferables", {
340
+ export const Transferables = /*#__PURE__*/Context.Reference("@effect/sql-sqlite-wasm/currentTransferables", {
307
341
  defaultValue: () => []
308
342
  });
309
343
  /**
344
+ * Runs an effect with the supplied transferables attached to worker-backed SQLite WASM query messages.
345
+ *
310
346
  * @category tranferables
311
- * @since 1.0.0
347
+ * @since 4.0.0
312
348
  */
313
349
  export const withTransferables = transferables => effect => Effect.provideService(effect, Transferables, transferables);
314
350
  /**
351
+ * Builds a layer from an Effect `Config` value, providing both the in-memory SQLite WASM `SqliteClient` service and the generic `SqlClient` service.
352
+ *
315
353
  * @category layers
316
- * @since 1.0.0
354
+ * @since 4.0.0
317
355
  */
318
- export const layerMemoryConfig = config => Layer.effectServices(Config.unwrap(config).asEffect().pipe(Effect.flatMap(makeMemory), Effect.map(client => ServiceMap.make(SqliteClient, client).pipe(ServiceMap.add(Client.SqlClient, client))))).pipe(Layer.provide(Reactivity.layer));
356
+ export const layerMemoryConfig = config => Layer.effectContext(Config.unwrap(config).pipe(Effect.flatMap(makeMemory), Effect.map(client => Context.make(SqliteClient, client).pipe(Context.add(Client.SqlClient, client))))).pipe(Layer.provide(Reactivity.layer));
319
357
  /**
358
+ * Builds a layer from an in-memory SQLite WASM client configuration, providing both `SqliteClient` and the generic `SqlClient` service.
359
+ *
320
360
  * @category layers
321
- * @since 1.0.0
361
+ * @since 4.0.0
322
362
  */
323
- export const layerMemory = config => Layer.effectServices(Effect.map(makeMemory(config), client => ServiceMap.make(SqliteClient, client).pipe(ServiceMap.add(Client.SqlClient, client)))).pipe(Layer.provide(Reactivity.layer));
363
+ export const layerMemory = config => Layer.effectContext(Effect.map(makeMemory(config), client => Context.make(SqliteClient, client).pipe(Context.add(Client.SqlClient, client)))).pipe(Layer.provide(Reactivity.layer));
324
364
  /**
365
+ * Builds a layer from a worker-backed SQLite WASM client configuration, providing both `SqliteClient` and the generic `SqlClient` service.
366
+ *
325
367
  * @category layers
326
- * @since 1.0.0
368
+ * @since 4.0.0
327
369
  */
328
- export const layer = config => Layer.effectServices(Effect.map(make(config), client => ServiceMap.make(SqliteClient, client).pipe(ServiceMap.add(Client.SqlClient, client)))).pipe(Layer.provide(Reactivity.layer));
370
+ 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));
329
371
  /**
372
+ * Builds a layer from an Effect `Config` value, providing both the worker-backed SQLite WASM `SqliteClient` service and the generic `SqlClient` service.
373
+ *
330
374
  * @category layers
331
- * @since 1.0.0
375
+ * @since 4.0.0
332
376
  */
333
- export const layerConfig = config => Layer.effectServices(Config.unwrap(config).asEffect().pipe(Effect.flatMap(make), Effect.map(client => ServiceMap.make(SqliteClient, client).pipe(ServiceMap.add(Client.SqlClient, client))))).pipe(Layer.provide(Reactivity.layer));
377
+ 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));
334
378
  //# sourceMappingURL=SqliteClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SqliteClient.js","names":["WaSqlite","SQLiteESMFactory","MemoryVFS","Config","Deferred","Effect","Exit","Fiber","identity","Layer","Scope","ScopedRef","Semaphore","ServiceMap","Stream","Reactivity","Client","SqlError","Statement","ATTR_DB_SYSTEM_NAME","TypeId","SqliteClient","Service","initModule","runSync","cached","promise","initEffect","pipe","map","module","Factory","registered","Set","makeMemory","options","gen","reactivity","compiler","makeCompilerSqlite","transformQueryNames","transformRows","transformResultNames","defaultTransforms","array","undefined","makeConnection","sqlite3","has","add","vfs","vfs_register","db","acquireRelease","try","open_v2","catch","cause","message","sync","close","installReactivityHooks","update_hook","_op","_db","table","rowid","id","String","Number","invalidateUnsafe","run","sql","params","rowMode","results","stmt","statements","columns","bind_collection","step","SQLITE_ROW","column_names","row","obj","i","length","push","execute","executeRaw","executeValues","executeUnprepared","executeStream","stream","suspend","fromIteratorSucceed","Symbol","iterator","mapArray","chunk","mapError","export","serialize","import","data","deserialize","semaphore","make","connection","acquirer","withPermits","succeed","transactionAcquirer","uninterruptibleMask","restore","fiber","getCurrent","scope","getUnsafe","services","as","tap","take","addFinalizer","release","Object","assign","spanAttributes","entries","config","pending","Map","currentId","readyDeferred","worker","port","postMessage","transferables","onMessage","event","error","doneUnsafe","void","resume","get","delete","fail","addEventListener","onError","runFork","set","connectionRef","removeEventListener","await","send","callback","rows","withFiber","getRef","Transferables","extractObject","extractRows","die","buffer","fromAcquire","fnUntraced","flatMap","rowToObject","Reference","defaultValue","withTransferables","effect","provideService","layerMemoryConfig","effectServices","unwrap","asEffect","client","SqlClient","provide","layer","layerMemory","layerConfig"],"sources":["../src/SqliteClient.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA;AACA,OAAO,KAAKA,QAAQ,MAAM,mBAAmB;AAC7C,OAAOC,gBAAgB,MAAM,sCAAsC;AACnE,SAASC,SAAS,QAAQ,6CAA6C;AACvE,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,IAAI,MAAM,aAAa;AACnC,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,SAAS,MAAM,kBAAkB;AAC7C,OAAO,KAAKC,UAAU,MAAM,mBAAmB;AAC/C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,UAAU,MAAM,uCAAuC;AACnE,OAAO,KAAKC,MAAM,MAAM,+BAA+B;AAEvD,SAASC,QAAQ,QAAQ,8BAA8B;AACvD,OAAO,KAAKC,SAAS,MAAM,+BAA+B;AAG1D,MAAMC,mBAAmB,GAAG,gBAAgB;AAE5C;;;;AAIA,OAAO,MAAMC,MAAM,GAAW,uCAAuC;AAsBrE;;;;AAIA,OAAO,MAAMC,YAAY,gBAAGR,UAAU,CAACS,OAAO,CAAe,sCAAsC,CAAC;AA8BpG,MAAMC,UAAU,gBAAGlB,MAAM,CAACmB,OAAO,cAC/BnB,MAAM,CAACoB,MAAM,cAACpB,MAAM,CAACqB,OAAO,CAAC,MAAMzB,gBAAgB,EAAE,CAAC,CAAC,CACxD;AAED,MAAM0B,UAAU,gBAAGtB,MAAM,CAACmB,OAAO,cAC/BnB,MAAM,CAACoB,MAAM,cAACF,UAAU,CAACK,IAAI,cAACvB,MAAM,CAACwB,GAAG,CAAEC,MAAM,IAAK9B,QAAQ,CAAC+B,OAAO,CAACD,MAAM,CAAC,CAAC,CAAC,CAAC,CACjF;AAED,MAAME,UAAU,gBAAG,IAAIC,GAAG,EAAU;AAEpC;;;;AAIA,OAAO,MAAMC,UAAU,GACrBC,OAAiC,IAEjC9B,MAAM,CAAC+B,GAAG,CAAC,aAAS;EAClB,MAAMC,UAAU,GAAG,OAAOtB,UAAU,CAACA,UAAU;EAC/C,MAAMuB,QAAQ,GAAGpB,SAAS,CAACqB,kBAAkB,CAACJ,OAAO,CAACK,mBAAmB,CAAC;EAC1E,MAAMC,aAAa,GAAGN,OAAO,CAACO,oBAAoB,GAChDxB,SAAS,CAACyB,iBAAiB,CACzBR,OAAO,CAACO,oBAAoB,CAC7B,CAACE,KAAK,GACPC,SAAS;EAEX,MAAMC,cAAc,GAAGzC,MAAM,CAAC+B,GAAG,CAAC,aAAS;IACzC,MAAMW,OAAO,GAAG,OAAOpB,UAAU;IAEjC,IAAIK,UAAU,CAACgB,GAAG,CAAC,YAAY,CAAC,KAAK,KAAK,EAAE;MAC1ChB,UAAU,CAACiB,GAAG,CAAC,YAAY,CAAC;MAC5B,MAAMnB,MAAM,GAAG,OAAOP,UAAU;MAChC;MACA,MAAM2B,GAAG,GAAG,IAAIhD,SAAS,CAAC,YAAY,EAAE4B,MAAM,CAAC;MAC/CiB,OAAO,CAACI,YAAY,CAACD,GAAU,EAAE,KAAK,CAAC;IACzC;IACA,MAAME,EAAE,GAAG,OAAO/C,MAAM,CAACgD,cAAc,CACrChD,MAAM,CAACiD,GAAG,CAAC;MACTA,GAAG,EAAEA,CAAA,KAAMP,OAAO,CAACQ,OAAO,CAAC,UAAU,EAAEV,SAAS,EAAE,YAAY,CAAC;MAC/DW,KAAK,EAAGC,KAAK,IAAK,IAAIxC,QAAQ,CAAC;QAAEwC,KAAK;QAAEC,OAAO,EAAE;MAAyB,CAAE;KAC7E,CAAC,EACDN,EAAE,IAAK/C,MAAM,CAACsD,IAAI,CAAC,MAAMZ,OAAO,CAACa,KAAK,CAACR,EAAE,CAAC,CAAC,CAC7C;IAED,IAAIjB,OAAO,CAAC0B,sBAAsB,EAAE;MAClCd,OAAO,CAACe,WAAW,CAACV,EAAE,EAAE,CAACW,GAAG,EAAEC,GAAG,EAAEC,KAAK,EAAEC,KAAK,KAAI;QACjD,IAAI,CAACD,KAAK,EAAE;QACZ,MAAME,EAAE,GAAGC,MAAM,CAACC,MAAM,CAACH,KAAK,CAAC,CAAC;QAChC7B,UAAU,CAACiC,gBAAgB,CAAC;UAAE,CAACL,KAAK,GAAG,CAACE,EAAE;QAAC,CAAE,CAAC;MAChD,CAAC,CAAC;IACJ;IAEA,MAAMI,GAAG,GAAGA,CACVC,GAAW,EACXC,MAAA,GAAiC,EAAE,EACnCC,OAAA,GAA8B,QAAQ,KAEtCrE,MAAM,CAACiD,GAAG,CAAC;MACTA,GAAG,EAAEA,CAAA,KAAK;QACR,MAAMqB,OAAO,GAAe,EAAE;QAC9B,KAAK,MAAMC,IAAI,IAAI7B,OAAO,CAAC8B,UAAU,CAACzB,EAAE,EAAEoB,GAAG,CAAC,EAAE;UAC9C,IAAIM,OAAkC;UACtC/B,OAAO,CAACgC,eAAe,CAACH,IAAI,EAAEH,MAAa,CAAC;UAC5C,OAAO1B,OAAO,CAACiC,IAAI,CAACJ,IAAI,CAAC,KAAK5E,QAAQ,CAACiF,UAAU,EAAE;YACjDH,OAAO,GAAGA,OAAO,IAAI/B,OAAO,CAACmC,YAAY,CAACN,IAAI,CAAC;YAC/C,MAAMO,GAAG,GAAGpC,OAAO,CAACoC,GAAG,CAACP,IAAI,CAAC;YAC7B,IAAIF,OAAO,KAAK,QAAQ,EAAE;cACxB,MAAMU,GAAG,GAAwB,EAAE;cACnC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGP,OAAO,CAACQ,MAAM,EAAED,CAAC,EAAE,EAAE;gBACvCD,GAAG,CAACN,OAAO,CAACO,CAAC,CAAC,CAAC,GAAGF,GAAG,CAACE,CAAC,CAAC;cAC1B;cACAV,OAAO,CAACY,IAAI,CAACH,GAAG,CAAC;YACnB,CAAC,MAAM;cACLT,OAAO,CAACY,IAAI,CAACJ,GAAG,CAAC;YACnB;UACF;QACF;QACA,OAAOR,OAAO;MAChB,CAAC;MACDnB,KAAK,EAAGC,KAAK,IAAK,IAAIxC,QAAQ,CAAC;QAAEwC,KAAK;QAAEC,OAAO,EAAE;MAA6B,CAAE;KACjF,CAAC;IAEJ,OAAOlD,QAAQ,CAAmB;MAChCgF,OAAOA,CAAChB,GAAG,EAAEC,MAAM,EAAEhC,aAAa;QAChC,OAAOA,aAAa,GAChBpC,MAAM,CAACwB,GAAG,CAAC0C,GAAG,CAACC,GAAG,EAAEC,MAAM,CAAC,EAAEhC,aAAa,CAAC,GAC3C8B,GAAG,CAACC,GAAG,EAAEC,MAAM,CAAC;MACtB,CAAC;MACDgB,UAAUA,CAACjB,GAAG,EAAEC,MAAM;QACpB,OAAOF,GAAG,CAACC,GAAG,EAAEC,MAAM,CAAC;MACzB,CAAC;MACDiB,aAAaA,CAAClB,GAAG,EAAEC,MAAM;QACvB,OAAOF,GAAG,CAACC,GAAG,EAAEC,MAAM,EAAE,OAAO,CAAC;MAClC,CAAC;MACDkB,iBAAiBA,CAACnB,GAAG,EAAEC,MAAM,EAAEhC,aAAa;QAC1C,OAAO,IAAI,CAAC+C,OAAO,CAAChB,GAAG,EAAEC,MAAM,EAAEhC,aAAa,CAAC;MACjD,CAAC;MACDmD,aAAaA,CAACpB,GAAG,EAAEC,MAAM,EAAEhC,aAAa;QACtC,UAAUoD,MAAMA,CAAA;UACd,KAAK,MAAMjB,IAAI,IAAI7B,OAAO,CAAC8B,UAAU,CAACzB,EAAE,EAAEoB,GAAG,CAAC,EAAE;YAC9C,IAAIM,OAAkC;YACtC/B,OAAO,CAACgC,eAAe,CAACH,IAAI,EAAEH,MAAa,CAAC;YAC5C,OAAO1B,OAAO,CAACiC,IAAI,CAACJ,IAAI,CAAC,KAAK5E,QAAQ,CAACiF,UAAU,EAAE;cACjDH,OAAO,GAAGA,OAAO,IAAI/B,OAAO,CAACmC,YAAY,CAACN,IAAI,CAAC;cAC/C,MAAMO,GAAG,GAAGpC,OAAO,CAACoC,GAAG,CAACP,IAAI,CAAC;cAC7B,MAAMQ,GAAG,GAAwB,EAAE;cACnC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGP,OAAO,CAACQ,MAAM,EAAED,CAAC,EAAE,EAAE;gBACvCD,GAAG,CAACN,OAAO,CAACO,CAAC,CAAC,CAAC,GAAGF,GAAG,CAACE,CAAC,CAAC;cAC1B;cACA,MAAMD,GAAG;YACX;UACF;QACF;QACA,OAAOtE,MAAM,CAACgF,OAAO,CAAC,MAAMhF,MAAM,CAACiF,mBAAmB,CAACF,MAAM,EAAE,CAACG,MAAM,CAACC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAACrE,IAAI,CACvFa,aAAa,GACT3B,MAAM,CAACoF,QAAQ,CAAEC,KAAK,IAAK1D,aAAa,CAAC0D,KAAK,CAAQ,CAAC,GACvD3F,QAAQ,EACZM,MAAM,CAACsF,QAAQ,CAAE3C,KAAK,IAAK,IAAIxC,QAAQ,CAAC;UAAEwC,KAAK;UAAEC,OAAO,EAAE;QAA6B,CAAE,CAAC,CAAC,CAC5F;MACH,CAAC;MACD2C,MAAM,EAAEhG,MAAM,CAACiD,GAAG,CAAC;QACjBA,GAAG,EAAEA,CAAA,KAAMP,OAAO,CAACuD,SAAS,CAAClD,EAAE,EAAE,MAAM,CAAC;QACxCI,KAAK,EAAGC,KAAK,IAAK,IAAIxC,QAAQ,CAAC;UAAEwC,KAAK;UAAEC,OAAO,EAAE;QAA2B,CAAE;OAC/E,CAAC;MACF6C,MAAMA,CAACC,IAAI;QACT,OAAOnG,MAAM,CAACiD,GAAG,CAAC;UAChBA,GAAG,EAAEA,CAAA,KAAMP,OAAO,CAAC0D,WAAW,CAACrD,EAAE,EAAE,MAAM,EAAEoD,IAAI,EAAEA,IAAI,CAAClB,MAAM,EAAEkB,IAAI,CAAClB,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;UACjF9B,KAAK,EAAGC,KAAK,IAAK,IAAIxC,QAAQ,CAAC;YAAEwC,KAAK;YAAEC,OAAO,EAAE;UAA2B,CAAE;SAC/E,CAAC;MACJ;KACD,CAAC;EACJ,CAAC,CAAC;EAEF,MAAMgD,SAAS,GAAG,OAAO9F,SAAS,CAAC+F,IAAI,CAAC,CAAC,CAAC;EAC1C,MAAMC,UAAU,GAAG,OAAO9D,cAAc;EAExC,MAAM+D,QAAQ,GAAGH,SAAS,CAACI,WAAW,CAAC,CAAC,CAAC,CAACzG,MAAM,CAAC0G,OAAO,CAACH,UAAU,CAAC,CAAC;EACrE,MAAMI,mBAAmB,GAAG3G,MAAM,CAAC4G,mBAAmB,CAAEC,OAAO,IAAI;IACjE,MAAMC,KAAK,GAAG5G,KAAK,CAAC6G,UAAU,EAAG;IACjC,MAAMC,KAAK,GAAGxG,UAAU,CAACyG,SAAS,CAACH,KAAK,CAACI,QAAQ,EAAE7G,KAAK,CAACA,KAAK,CAAC;IAC/D,OAAOL,MAAM,CAACmH,EAAE,CACdnH,MAAM,CAACoH,GAAG,CACRP,OAAO,CAACR,SAAS,CAACgB,IAAI,CAAC,CAAC,CAAC,CAAC,EAC1B,MAAMhH,KAAK,CAACiH,YAAY,CAACN,KAAK,EAAEX,SAAS,CAACkB,OAAO,CAAC,CAAC,CAAC,CAAC,CACtD,EACDhB,UAAU,CACX;EACH,CAAC,CAAC;EAEF,OAAOiB,MAAM,CAACC,MAAM,CACjB,OAAO9G,MAAM,CAAC2F,IAAI,CAAC;IAClBE,QAAQ;IACRvE,QAAQ;IACR0E,mBAAmB;IACnBe,cAAc,EAAE,CACd,IAAI5F,OAAO,CAAC4F,cAAc,GAAGF,MAAM,CAACG,OAAO,CAAC7F,OAAO,CAAC4F,cAAc,CAAC,GAAG,EAAE,CAAC,EACzE,CAAC5G,mBAAmB,EAAE,QAAQ,CAAC,CAChC;IACDsB;GACD,CAAC,EACF;IACE,CAACrB,MAAM,GAAGA,MAAgB;IAC1B6G,MAAM,EAAE9F,OAAO;IACfkE,MAAM,EAAEK,SAAS,CAACI,WAAW,CAAC,CAAC,CAAC,CAACF,UAAU,CAACP,MAAM,CAAC;IACnDE,MAAMA,CAACC,IAAgB;MACrB,OAAOE,SAAS,CAACI,WAAW,CAAC,CAAC,CAAC,CAACF,UAAU,CAACL,MAAM,CAACC,IAAI,CAAC,CAAC;IAC1D;GACD,CACF;AACH,CAAC,CAAC;AAEJ;;;;AAIA,OAAO,MAAMG,IAAI,GACfxE,OAA2B,IAE3B9B,MAAM,CAAC+B,GAAG,CAAC,aAAS;EAClB,MAAMC,UAAU,GAAG,OAAOtB,UAAU,CAACA,UAAU;EAC/C,MAAMuB,QAAQ,GAAGpB,SAAS,CAACqB,kBAAkB,CAACJ,OAAO,CAACK,mBAAmB,CAAC;EAC1E,MAAMC,aAAa,GAAGN,OAAO,CAACO,oBAAoB,GAChDxB,SAAS,CAACyB,iBAAiB,CAACR,OAAO,CAACO,oBAAoB,CAAC,CAACE,KAAK,GAC/DC,SAAS;EACX,MAAMqF,OAAO,GAAG,IAAIC,GAAG,EAAsD;EAE7E,MAAMrF,cAAc,GAAGzC,MAAM,CAAC+B,GAAG,CAAC,aAAS;IACzC,IAAIgG,SAAS,GAAG,CAAC;IACjB,MAAMf,KAAK,GAAG,OAAOhH,MAAM,CAACgH,KAAK;IACjC,MAAMgB,aAAa,GAAG,OAAOjI,QAAQ,CAACuG,IAAI,EAAQ;IAElD,MAAM2B,MAAM,GAAG,OAAOnG,OAAO,CAACmG,MAAM;IACpC,MAAMC,IAAI,GAAG,MAAM,IAAID,MAAM,GAAGA,MAAM,CAACC,IAAI,GAAGD,MAAM;IACpD,MAAME,WAAW,GAAGA,CAAC9E,OAA0B,EAAE+E,aAAkC,KACjFF,IAAI,CAACC,WAAW,CAAC9E,OAAO,EAAE+E,aAAoB,CAAC;IAEjD,OAAO/H,KAAK,CAACiH,YAAY,CAACN,KAAK,EAAEhH,MAAM,CAACsD,IAAI,CAAC,MAAM6E,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAE3E,MAAME,SAAS,GAAIC,KAAU,IAAI;MAC/B,MAAM,CAACxE,EAAE,EAAEyE,KAAK,EAAEjE,OAAO,CAAC,GAAGgE,KAAK,CAACnC,IAAI;MACvC,IAAIrC,EAAE,KAAK,OAAO,EAAE;QAClB/D,QAAQ,CAACyI,UAAU,CAACR,aAAa,EAAE/H,IAAI,CAACwI,IAAI,CAAC;QAC7C;MACF,CAAC,MAAM,IAAI3E,EAAE,KAAK,aAAa,EAAE;QAC/B9B,UAAU,CAACiC,gBAAgB,CAAC;UAAE,CAACsE,KAAK,GAAG,CAACjE,OAAO;QAAC,CAAE,CAAC;QACnD;MACF,CAAC,MAAM;QACL,MAAMoE,MAAM,GAAGb,OAAO,CAACc,GAAG,CAAC7E,EAAE,CAAC;QAC9B,IAAI,CAAC4E,MAAM,EAAE;QACbb,OAAO,CAACe,MAAM,CAAC9E,EAAE,CAAC;QAClB,IAAIyE,KAAK,EAAE;UACTG,MAAM,CAACzI,IAAI,CAAC4I,IAAI,CAAC,IAAIjI,QAAQ,CAAC;YAAEwC,KAAK,EAAEmF,KAAe;YAAElF,OAAO,EAAE;UAA6B,CAAE,CAAC,CAAC,CAAC;QACrG,CAAC,MAAM;UACLqF,MAAM,CAACzI,IAAI,CAACyG,OAAO,CAACpC,OAAO,CAAC,CAAC;QAC/B;MACF;IACF,CAAC;IACD4D,IAAI,CAACY,gBAAgB,CAAC,SAAS,EAAET,SAAS,CAAC;IAE3C,SAASU,OAAOA,CAAA;MACd/I,MAAM,CAACgJ,OAAO,CAAC1I,SAAS,CAAC2I,GAAG,CAACC,aAAa,EAAEzG,cAAc,CAAC,CAAC;IAC9D;IACA,IAAI,SAAS,IAAIwF,MAAM,EAAE;MACvBA,MAAM,CAACa,gBAAgB,CAAC,OAAO,EAAEC,OAAO,CAAC;IAC3C;IAEA,OAAO1I,KAAK,CAACiH,YAAY,CACvBN,KAAK,EACLhH,MAAM,CAACsD,IAAI,CAAC,MAAK;MACf2E,MAAM,CAACkB,mBAAmB,CAAC,SAAS,EAAEd,SAAS,CAAC;MAChDJ,MAAM,CAACkB,mBAAmB,CAAC,OAAO,EAAEJ,OAAO,CAAC;IAC9C,CAAC,CAAC,CACH;IAED,OAAOhJ,QAAQ,CAACqJ,KAAK,CAACpB,aAAa,CAAC;IAEpC,IAAIlG,OAAO,CAAC0B,sBAAsB,EAAE;MAClC2E,WAAW,CAAC,CAAC,aAAa,CAAC,CAAC;IAC9B;IAEA,MAAMkB,IAAI,GAAGA,CAACvF,EAAU,EAAET,OAA0B,EAAE+E,aAAkC,KACtFpI,MAAM,CAACsJ,QAAQ,CAAiBZ,MAAM,IAAI;MACxCb,OAAO,CAACoB,GAAG,CAACnF,EAAE,EAAE4E,MAAM,CAAC;MACvBP,WAAW,CAAC9E,OAAO,EAAE+E,aAAa,CAAC;IACrC,CAAC,CAAC;IAEJ,MAAMlE,GAAG,GAAGA,CACVC,GAAW,EACXC,MAAA,GAAiC,EAAE,EACnCC,OAAA,GAA8B,QAAQ,KACQ;MAC9C,MAAMkF,IAAI,GAAGvJ,MAAM,CAACwJ,SAAS,CAAyC1C,KAAK,IAAI;QAC7E,MAAMhD,EAAE,GAAGiE,SAAS,EAAE;QACtB,OAAOsB,IAAI,CAACvF,EAAE,EAAE,CAACA,EAAE,EAAEK,GAAG,EAAEC,MAAM,CAAC,EAAE0C,KAAK,CAAC2C,MAAM,CAACC,aAAa,CAAC,CAAC;MACjE,CAAC,CAAC;MACF,OAAOrF,OAAO,KAAK,QAAQ,GACvBrE,MAAM,CAACwB,GAAG,CAAC+H,IAAI,EAAEI,aAAa,CAAC,GAC/B3J,MAAM,CAACwB,GAAG,CAAC+H,IAAI,EAAEK,WAAW,CAAC;IACnC,CAAC;IAED,OAAOzJ,QAAQ,CAAmB;MAChCgF,OAAOA,CAAChB,GAAG,EAAEC,MAAM,EAAEhC,aAAa;QAChC,OAAOA,aAAa,GAChBpC,MAAM,CAACwB,GAAG,CAAC0C,GAAG,CAACC,GAAG,EAAEC,MAAM,CAAC,EAAEhC,aAAa,CAAC,GAC3C8B,GAAG,CAACC,GAAG,EAAEC,MAAM,CAAC;MACtB,CAAC;MACDgB,UAAUA,CAACjB,GAAG,EAAEC,MAAM;QACpB,OAAOF,GAAG,CAACC,GAAG,EAAEC,MAAM,CAAC;MACzB,CAAC;MACDiB,aAAaA,CAAClB,GAAG,EAAEC,MAAM;QACvB,OAAOF,GAAG,CAACC,GAAG,EAAEC,MAAM,EAAE,OAAO,CAAC;MAClC,CAAC;MACDkB,iBAAiBA,CAACnB,GAAG,EAAEC,MAAM,EAAEhC,aAAa;QAC1C,OAAO,IAAI,CAAC+C,OAAO,CAAChB,GAAG,EAAEC,MAAM,EAAEhC,aAAa,CAAC;MACjD,CAAC;MACDmD,aAAaA,CAAA;QACX,OAAO9E,MAAM,CAACoJ,GAAG,CAAC,+BAA+B,CAAC;MACpD,CAAC;MACD7D,MAAM,EAAEhG,MAAM,CAACyF,OAAO,CAAC,MAAK;QAC1B,MAAM3B,EAAE,GAAGiE,SAAS,EAAE;QACtB,OAAOsB,IAAI,CAACvF,EAAE,EAAE,CAAC,QAAQ,EAAEA,EAAE,CAAC,CAAC;MACjC,CAAC,CAAC;MACFoC,MAAMA,CAACC,IAAI;QACT,OAAOnG,MAAM,CAACyF,OAAO,CAAC,MAAK;UACzB,MAAM3B,EAAE,GAAGiE,SAAS,EAAE;UACtB,OAAOsB,IAAI,CAACvF,EAAE,EAAE,CAAC,QAAQ,EAAEA,EAAE,EAAEqC,IAAI,CAAC,EAAE,CAACA,IAAI,CAAC2D,MAAM,CAAC,CAAC;QACtD,CAAC,CAAC;MACJ;KACD,CAAC;EACJ,CAAC,CAAC;EAEF,MAAMZ,aAAa,GAAG,OAAO5I,SAAS,CAACyJ,WAAW,CAACtH,cAAc,CAAC;EAElE,MAAM4D,SAAS,GAAG,OAAO9F,SAAS,CAAC+F,IAAI,CAAC,CAAC,CAAC;EAC1C,MAAME,QAAQ,GAAGH,SAAS,CAACI,WAAW,CAAC,CAAC,CAAC,CAACnG,SAAS,CAACqI,GAAG,CAACO,aAAa,CAAC,CAAC;EACvE,MAAMvC,mBAAmB,GAAG3G,MAAM,CAAC4G,mBAAmB,CAAC5G,MAAM,CAACgK,UAAU,CAAC,WAAUnD,OAAO;IACxF,MAAMC,KAAK,GAAG5G,KAAK,CAAC6G,UAAU,EAAG;IACjC,MAAMC,KAAK,GAAGxG,UAAU,CAACyG,SAAS,CAACH,KAAK,CAACI,QAAQ,EAAE7G,KAAK,CAACA,KAAK,CAAC;IAC/D,OAAOwG,OAAO,CAACR,SAAS,CAACgB,IAAI,CAAC,CAAC,CAAC,CAAC;IACjC,OAAOhH,KAAK,CAACiH,YAAY,CAACN,KAAK,EAAEX,SAAS,CAACkB,OAAO,CAAC,CAAC,CAAC,CAAC;IACtD,OAAO,OAAOjH,SAAS,CAACqI,GAAG,CAACO,aAAa,CAAC;EAC5C,CAAC,CAAC,CAAC;EAEH,OAAO1B,MAAM,CAACC,MAAM,CACjB,OAAO9G,MAAM,CAAC2F,IAAI,CAAC;IAClBE,QAAQ;IACRvE,QAAQ;IACR0E,mBAAmB;IACnBe,cAAc,EAAE,CACd,IAAI5F,OAAO,CAAC4F,cAAc,GAAGF,MAAM,CAACG,OAAO,CAAC7F,OAAO,CAAC4F,cAAc,CAAC,GAAG,EAAE,CAAC,EACzE,CAAC5G,mBAAmB,EAAE,QAAQ,CAAC,CAChC;IACDsB;GACD,CAAC,EACF;IACE,CAACrB,MAAM,GAAGA,MAAgB;IAC1B6G,MAAM,EAAE9F,OAAO;IACfkE,MAAM,EAAEhG,MAAM,CAACiK,OAAO,CAACzD,QAAQ,EAAGD,UAAU,IAAKA,UAAU,CAACP,MAAM,CAAC;IACnEE,MAAMA,CAACC,IAAgB;MACrB,OAAOnG,MAAM,CAACiK,OAAO,CAACzD,QAAQ,EAAGD,UAAU,IAAKA,UAAU,CAACL,MAAM,CAACC,IAAI,CAAC,CAAC;IAC1E;GACD,CACF;AACH,CAAC,CAAC;AAEJ,SAAS+D,WAAWA,CAACzF,OAAsB,EAAEK,GAAe;EAC1D,MAAMC,GAAG,GAAwB,EAAE;EACnC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGP,OAAO,CAACQ,MAAM,EAAED,CAAC,EAAE,EAAE;IACvCD,GAAG,CAACN,OAAO,CAACO,CAAC,CAAC,CAAC,GAAGF,GAAG,CAACE,CAAC,CAAC;EAC1B;EACA,OAAOD,GAAG;AACZ;AACA,MAAM4E,aAAa,GAAIJ,IAAiC,IAAKA,IAAI,CAAC,CAAC,CAAC,CAAC/H,GAAG,CAAEsD,GAAG,IAAKoF,WAAW,CAACX,IAAI,CAAC,CAAC,CAAC,EAAEzE,GAAG,CAAC,CAAC;AAC5G,MAAM8E,WAAW,GAAIL,IAAiC,IAAKA,IAAI,CAAC,CAAC,CAAC;AAElE;;;;AAIA,OAAO,MAAMG,aAAa,gBAAGlJ,UAAU,CAAC2J,SAAS,CAC/C,8CAA8C,EAC9C;EAAEC,YAAY,EAAEA,CAAA,KAAM;AAAE,CAAE,CAC3B;AAED;;;;AAIA,OAAO,MAAMC,iBAAiB,GAC3BjC,aAA0C,IAAekC,MAA8B,IACtFtK,MAAM,CAACuK,cAAc,CAACD,MAAM,EAAEZ,aAAa,EAAEtB,aAAa,CAAC;AAE/D;;;;AAIA,OAAO,MAAMoC,iBAAiB,GAC5B5C,MAA6C,IAE7CxH,KAAK,CAACqK,cAAc,CAClB3K,MAAM,CAAC4K,MAAM,CAAC9C,MAAM,CAAC,CAAC+C,QAAQ,EAAE,CAACpJ,IAAI,CACnCvB,MAAM,CAACiK,OAAO,CAACpI,UAAU,CAAC,EAC1B7B,MAAM,CAACwB,GAAG,CAAEoJ,MAAM,IAChBpK,UAAU,CAAC8F,IAAI,CAACtF,YAAY,EAAE4J,MAAM,CAAC,CAACrJ,IAAI,CACxCf,UAAU,CAACoC,GAAG,CAACjC,MAAM,CAACkK,SAAS,EAAED,MAAM,CAAC,CACzC,CACF,CACF,CACF,CAACrJ,IAAI,CAACnB,KAAK,CAAC0K,OAAO,CAACpK,UAAU,CAACqK,KAAK,CAAC,CAAC;AAEzC;;;;AAIA,OAAO,MAAMC,WAAW,GACtBpD,MAAgC,IAEhCxH,KAAK,CAACqK,cAAc,CAClBzK,MAAM,CAACwB,GAAG,CAACK,UAAU,CAAC+F,MAAM,CAAC,EAAGgD,MAAM,IACpCpK,UAAU,CAAC8F,IAAI,CAACtF,YAAY,EAAE4J,MAAM,CAAC,CAACrJ,IAAI,CACxCf,UAAU,CAACoC,GAAG,CAACjC,MAAM,CAACkK,SAAS,EAAED,MAAM,CAAC,CACzC,CAAC,CACL,CAACrJ,IAAI,CAACnB,KAAK,CAAC0K,OAAO,CAACpK,UAAU,CAACqK,KAAK,CAAC,CAAC;AAEzC;;;;AAIA,OAAO,MAAMA,KAAK,GAChBnD,MAA0B,IAE1BxH,KAAK,CAACqK,cAAc,CAClBzK,MAAM,CAACwB,GAAG,CAAC8E,IAAI,CAACsB,MAAM,CAAC,EAAGgD,MAAM,IAC9BpK,UAAU,CAAC8F,IAAI,CAACtF,YAAY,EAAE4J,MAAM,CAAC,CAACrJ,IAAI,CACxCf,UAAU,CAACoC,GAAG,CAACjC,MAAM,CAACkK,SAAS,EAAED,MAAM,CAAC,CACzC,CAAC,CACL,CAACrJ,IAAI,CAACnB,KAAK,CAAC0K,OAAO,CAACpK,UAAU,CAACqK,KAAK,CAAC,CAAC;AAEzC;;;;AAIA,OAAO,MAAME,WAAW,GACtBrD,MAAuC,IAEvCxH,KAAK,CAACqK,cAAc,CAClB3K,MAAM,CAAC4K,MAAM,CAAC9C,MAAM,CAAC,CAAC+C,QAAQ,EAAE,CAACpJ,IAAI,CACnCvB,MAAM,CAACiK,OAAO,CAAC3D,IAAI,CAAC,EACpBtG,MAAM,CAACwB,GAAG,CAAEoJ,MAAM,IAChBpK,UAAU,CAAC8F,IAAI,CAACtF,YAAY,EAAE4J,MAAM,CAAC,CAACrJ,IAAI,CACxCf,UAAU,CAACoC,GAAG,CAACjC,MAAM,CAACkK,SAAS,EAAED,MAAM,CAAC,CACzC,CACF,CACF,CACF,CAACrJ,IAAI,CAACnB,KAAK,CAAC0K,OAAO,CAACpK,UAAU,CAACqK,KAAK,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"SqliteClient.js","names":["WaSqlite","SQLiteESMFactory","MemoryVFS","Config","Context","Deferred","Effect","Exit","Fiber","identity","Layer","Scope","ScopedRef","Semaphore","Stream","Reactivity","Client","classifySqliteError","SqlError","Statement","ATTR_DB_SYSTEM_NAME","classifyError","cause","message","operation","TypeId","SqliteClient","Service","initModule","runSync","cached","promise","initEffect","pipe","map","module","Factory","registered","Set","makeMemory","options","gen","reactivity","compiler","makeCompilerSqlite","transformQueryNames","transformRows","transformResultNames","defaultTransforms","array","undefined","makeConnection","sqlite3","has","add","vfs","vfs_register","db","acquireRelease","try","open_v2","catch","reason","sync","close","installReactivityHooks","update_hook","_op","_db","table","rowid","id","String","Number","invalidateUnsafe","run","sql","params","rowMode","results","stmt","statements","columns","bind_collection","step","SQLITE_ROW","column_names","row","obj","i","length","push","execute","executeRaw","executeValues","executeUnprepared","executeStream","stream","suspend","fromIteratorSucceed","Symbol","iterator","mapArray","chunk","mapError","export","serialize","import","data","deserialize","semaphore","make","connection","acquirer","withPermits","succeed","transactionAcquirer","uninterruptibleMask","restore","fiber","getCurrent","scope","getUnsafe","context","as","tap","take","addFinalizer","release","Object","assign","spanAttributes","entries","config","pending","Map","currentId","readyDeferred","worker","port","postMessage","transferables","onMessage","event","error","doneUnsafe","void","resume","get","delete","fail","addEventListener","onError","runFork","set","connectionRef","removeEventListener","await","send","callback","rows","withFiber","getRef","Transferables","extractObject","extractRows","die","buffer","fromAcquire","fnUntraced","flatMap","rowToObject","Reference","defaultValue","withTransferables","effect","provideService","layerMemoryConfig","effectContext","unwrap","client","SqlClient","provide","layer","layerMemory","layerConfig"],"sources":["../src/SqliteClient.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA;AACA,OAAO,KAAKA,QAAQ,MAAM,mBAAmB;AAC7C,OAAOC,gBAAgB,MAAM,sCAAsC;AACnE,SAASC,SAAS,QAAQ,6CAA6C;AACvE,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,IAAI,MAAM,aAAa;AACnC,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,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;AAG1D,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,uCAAuC;AA0BrE;;;;;;AAMA,OAAO,MAAMC,YAAY,gBAAGtB,OAAO,CAACuB,OAAO,CAAe,sCAAsC,CAAC;AAkCjG,MAAMC,UAAU,gBAAGtB,MAAM,CAACuB,OAAO,cAC/BvB,MAAM,CAACwB,MAAM,cAACxB,MAAM,CAACyB,OAAO,CAAC,MAAM9B,gBAAgB,EAAE,CAAC,CAAC,CACxD;AAED,MAAM+B,UAAU,gBAAG1B,MAAM,CAACuB,OAAO,cAC/BvB,MAAM,CAACwB,MAAM,cAACF,UAAU,CAACK,IAAI,cAAC3B,MAAM,CAAC4B,GAAG,CAAEC,MAAM,IAAKnC,QAAQ,CAACoC,OAAO,CAACD,MAAM,CAAC,CAAC,CAAC,CAAC,CACjF;AAED,MAAME,UAAU,gBAAG,IAAIC,GAAG,EAAU;AAEpC;;;;;;AAMA,OAAO,MAAMC,UAAU,GACrBC,OAAiC,IAEjClC,MAAM,CAACmC,GAAG,CAAC,aAAS;EAClB,MAAMC,UAAU,GAAG,OAAO3B,UAAU,CAACA,UAAU;EAC/C,MAAM4B,QAAQ,GAAGxB,SAAS,CAACyB,kBAAkB,CAACJ,OAAO,CAACK,mBAAmB,CAAC;EAC1E,MAAMC,aAAa,GAAGN,OAAO,CAACO,oBAAoB,GAChD5B,SAAS,CAAC6B,iBAAiB,CACzBR,OAAO,CAACO,oBAAoB,CAC7B,CAACE,KAAK,GACPC,SAAS;EAEX,MAAMC,cAAc,GAAG7C,MAAM,CAACmC,GAAG,CAAC,aAAS;IACzC,MAAMW,OAAO,GAAG,OAAOpB,UAAU;IAEjC,IAAIK,UAAU,CAACgB,GAAG,CAAC,YAAY,CAAC,KAAK,KAAK,EAAE;MAC1ChB,UAAU,CAACiB,GAAG,CAAC,YAAY,CAAC;MAC5B,MAAMnB,MAAM,GAAG,OAAOP,UAAU;MAChC;MACA,MAAM2B,GAAG,GAAG,IAAIrD,SAAS,CAAC,YAAY,EAAEiC,MAAM,CAAC;MAC/CiB,OAAO,CAACI,YAAY,CAACD,GAAU,EAAE,KAAK,CAAC;IACzC;IACA,MAAME,EAAE,GAAG,OAAOnD,MAAM,CAACoD,cAAc,CACrCpD,MAAM,CAACqD,GAAG,CAAC;MACTA,GAAG,EAAEA,CAAA,KAAMP,OAAO,CAACQ,OAAO,CAAC,UAAU,EAAEV,SAAS,EAAE,YAAY,CAAC;MAC/DW,KAAK,EAAGvC,KAAK,IAAK,IAAIJ,QAAQ,CAAC;QAAE4C,MAAM,EAAEzC,aAAa,CAACC,KAAK,EAAE,yBAAyB,EAAE,cAAc;MAAC,CAAE;KAC3G,CAAC,EACDmC,EAAE,IAAKnD,MAAM,CAACyD,IAAI,CAAC,MAAMX,OAAO,CAACY,KAAK,CAACP,EAAE,CAAC,CAAC,CAC7C;IAED,IAAIjB,OAAO,CAACyB,sBAAsB,EAAE;MAClCb,OAAO,CAACc,WAAW,CAACT,EAAE,EAAE,CAACU,GAAG,EAAEC,GAAG,EAAEC,KAAK,EAAEC,KAAK,KAAI;QACjD,IAAI,CAACD,KAAK,EAAE;QACZ,MAAME,EAAE,GAAGC,MAAM,CAACC,MAAM,CAACH,KAAK,CAAC,CAAC;QAChC5B,UAAU,CAACgC,gBAAgB,CAAC;UAAE,CAACL,KAAK,GAAG,CAACE,EAAE;QAAC,CAAE,CAAC;MAChD,CAAC,CAAC;IACJ;IAEA,MAAMI,GAAG,GAAGA,CACVC,GAAW,EACXC,MAAA,GAAiC,EAAE,EACnCC,OAAA,GAA8B,QAAQ,KAEtCxE,MAAM,CAACqD,GAAG,CAAC;MACTA,GAAG,EAAEA,CAAA,KAAK;QACR,MAAMoB,OAAO,GAAe,EAAE;QAC9B,KAAK,MAAMC,IAAI,IAAI5B,OAAO,CAAC6B,UAAU,CAACxB,EAAE,EAAEmB,GAAG,CAAC,EAAE;UAC9C,IAAIM,OAAkC;UACtC9B,OAAO,CAAC+B,eAAe,CAACH,IAAI,EAAEH,MAAa,CAAC;UAC5C,OAAOzB,OAAO,CAACgC,IAAI,CAACJ,IAAI,CAAC,KAAKhF,QAAQ,CAACqF,UAAU,EAAE;YACjDH,OAAO,GAAGA,OAAO,IAAI9B,OAAO,CAACkC,YAAY,CAACN,IAAI,CAAC;YAC/C,MAAMO,GAAG,GAAGnC,OAAO,CAACmC,GAAG,CAACP,IAAI,CAAC;YAC7B,IAAIF,OAAO,KAAK,QAAQ,EAAE;cACxB,MAAMU,GAAG,GAAwB,EAAE;cACnC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGP,OAAO,CAACQ,MAAM,EAAED,CAAC,EAAE,EAAE;gBACvCD,GAAG,CAACN,OAAO,CAACO,CAAC,CAAC,CAAC,GAAGF,GAAG,CAACE,CAAC,CAAC;cAC1B;cACAV,OAAO,CAACY,IAAI,CAACH,GAAG,CAAC;YACnB,CAAC,MAAM;cACLT,OAAO,CAACY,IAAI,CAACJ,GAAG,CAAC;YACnB;UACF;QACF;QACA,OAAOR,OAAO;MAChB,CAAC;MACDlB,KAAK,EAAGvC,KAAK,IAAK,IAAIJ,QAAQ,CAAC;QAAE4C,MAAM,EAAEzC,aAAa,CAACC,KAAK,EAAE,6BAA6B,EAAE,SAAS;MAAC,CAAE;KAC1G,CAAC;IAEJ,OAAOb,QAAQ,CAAmB;MAChCmF,OAAOA,CAAChB,GAAG,EAAEC,MAAM,EAAE/B,aAAa;QAChC,OAAOA,aAAa,GAChBxC,MAAM,CAAC4B,GAAG,CAACyC,GAAG,CAACC,GAAG,EAAEC,MAAM,CAAC,EAAE/B,aAAa,CAAC,GAC3C6B,GAAG,CAACC,GAAG,EAAEC,MAAM,CAAC;MACtB,CAAC;MACDgB,UAAUA,CAACjB,GAAG,EAAEC,MAAM;QACpB,OAAOF,GAAG,CAACC,GAAG,EAAEC,MAAM,CAAC;MACzB,CAAC;MACDiB,aAAaA,CAAClB,GAAG,EAAEC,MAAM;QACvB,OAAOF,GAAG,CAACC,GAAG,EAAEC,MAAM,EAAE,OAAO,CAAC;MAClC,CAAC;MACDkB,iBAAiBA,CAACnB,GAAG,EAAEC,MAAM,EAAE/B,aAAa;QAC1C,OAAO,IAAI,CAAC8C,OAAO,CAAChB,GAAG,EAAEC,MAAM,EAAE/B,aAAa,CAAC;MACjD,CAAC;MACDkD,aAAaA,CAACpB,GAAG,EAAEC,MAAM,EAAE/B,aAAa;QACtC,UAAUmD,MAAMA,CAAA;UACd,KAAK,MAAMjB,IAAI,IAAI5B,OAAO,CAAC6B,UAAU,CAACxB,EAAE,EAAEmB,GAAG,CAAC,EAAE;YAC9C,IAAIM,OAAkC;YACtC9B,OAAO,CAAC+B,eAAe,CAACH,IAAI,EAAEH,MAAa,CAAC;YAC5C,OAAOzB,OAAO,CAACgC,IAAI,CAACJ,IAAI,CAAC,KAAKhF,QAAQ,CAACqF,UAAU,EAAE;cACjDH,OAAO,GAAGA,OAAO,IAAI9B,OAAO,CAACkC,YAAY,CAACN,IAAI,CAAC;cAC/C,MAAMO,GAAG,GAAGnC,OAAO,CAACmC,GAAG,CAACP,IAAI,CAAC;cAC7B,MAAMQ,GAAG,GAAwB,EAAE;cACnC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGP,OAAO,CAACQ,MAAM,EAAED,CAAC,EAAE,EAAE;gBACvCD,GAAG,CAACN,OAAO,CAACO,CAAC,CAAC,CAAC,GAAGF,GAAG,CAACE,CAAC,CAAC;cAC1B;cACA,MAAMD,GAAG;YACX;UACF;QACF;QACA,OAAO1E,MAAM,CAACoF,OAAO,CAAC,MAAMpF,MAAM,CAACqF,mBAAmB,CAACF,MAAM,EAAE,CAACG,MAAM,CAACC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAACpE,IAAI,CACvFa,aAAa,GACThC,MAAM,CAACwF,QAAQ,CAAEC,KAAK,IAAKzD,aAAa,CAACyD,KAAK,CAAQ,CAAC,GACvD9F,QAAQ,EACZK,MAAM,CAAC0F,QAAQ,CAAElF,KAAK,IACpB,IAAIJ,QAAQ,CAAC;UAAE4C,MAAM,EAAEzC,aAAa,CAACC,KAAK,EAAE,6BAA6B,EAAE,QAAQ;QAAC,CAAE,CAAC,CACxF,CACF;MACH,CAAC;MACDmF,MAAM,EAAEnG,MAAM,CAACqD,GAAG,CAAC;QACjBA,GAAG,EAAEA,CAAA,KAAMP,OAAO,CAACsD,SAAS,CAACjD,EAAE,EAAE,MAAM,CAAC;QACxCI,KAAK,EAAGvC,KAAK,IAAK,IAAIJ,QAAQ,CAAC;UAAE4C,MAAM,EAAEzC,aAAa,CAACC,KAAK,EAAE,2BAA2B,EAAE,QAAQ;QAAC,CAAE;OACvG,CAAC;MACFqF,MAAMA,CAACC,IAAI;QACT,OAAOtG,MAAM,CAACqD,GAAG,CAAC;UAChBA,GAAG,EAAEA,CAAA,KAAMP,OAAO,CAACyD,WAAW,CAACpD,EAAE,EAAE,MAAM,EAAEmD,IAAI,EAAEA,IAAI,CAAClB,MAAM,EAAEkB,IAAI,CAAClB,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;UACjF7B,KAAK,EAAGvC,KAAK,IAAK,IAAIJ,QAAQ,CAAC;YAAE4C,MAAM,EAAEzC,aAAa,CAACC,KAAK,EAAE,2BAA2B,EAAE,QAAQ;UAAC,CAAE;SACvG,CAAC;MACJ;KACD,CAAC;EACJ,CAAC,CAAC;EAEF,MAAMwF,SAAS,GAAG,OAAOjG,SAAS,CAACkG,IAAI,CAAC,CAAC,CAAC;EAC1C,MAAMC,UAAU,GAAG,OAAO7D,cAAc;EAExC,MAAM8D,QAAQ,GAAGH,SAAS,CAACI,WAAW,CAAC,CAAC,CAAC,CAAC5G,MAAM,CAAC6G,OAAO,CAACH,UAAU,CAAC,CAAC;EACrE,MAAMI,mBAAmB,GAAG9G,MAAM,CAAC+G,mBAAmB,CAAEC,OAAO,IAAI;IACjE,MAAMC,KAAK,GAAG/G,KAAK,CAACgH,UAAU,EAAG;IACjC,MAAMC,KAAK,GAAGrH,OAAO,CAACsH,SAAS,CAACH,KAAK,CAACI,OAAO,EAAEhH,KAAK,CAACA,KAAK,CAAC;IAC3D,OAAOL,MAAM,CAACsH,EAAE,CACdtH,MAAM,CAACuH,GAAG,CACRP,OAAO,CAACR,SAAS,CAACgB,IAAI,CAAC,CAAC,CAAC,CAAC,EAC1B,MAAMnH,KAAK,CAACoH,YAAY,CAACN,KAAK,EAAEX,SAAS,CAACkB,OAAO,CAAC,CAAC,CAAC,CAAC,CACtD,EACDhB,UAAU,CACX;EACH,CAAC,CAAC;EAEF,OAAOiB,MAAM,CAACC,MAAM,CACjB,OAAOlH,MAAM,CAAC+F,IAAI,CAAC;IAClBE,QAAQ;IACRtE,QAAQ;IACRyE,mBAAmB;IACnBe,cAAc,EAAE,CACd,IAAI3F,OAAO,CAAC2F,cAAc,GAAGF,MAAM,CAACG,OAAO,CAAC5F,OAAO,CAAC2F,cAAc,CAAC,GAAG,EAAE,CAAC,EACzE,CAAC/G,mBAAmB,EAAE,QAAQ,CAAC,CAChC;IACD0B;GACD,CAAC,EACF;IACE,CAACrB,MAAM,GAAGA,MAAgB;IAC1B4G,MAAM,EAAE7F,OAAO;IACfiE,MAAM,EAAEK,SAAS,CAACI,WAAW,CAAC,CAAC,CAAC,CAACF,UAAU,CAACP,MAAM,CAAC;IACnDE,MAAMA,CAACC,IAAgB;MACrB,OAAOE,SAAS,CAACI,WAAW,CAAC,CAAC,CAAC,CAACF,UAAU,CAACL,MAAM,CAACC,IAAI,CAAC,CAAC;IAC1D;GACD,CACF;AACH,CAAC,CAAC;AAEJ;;;;;;AAMA,OAAO,MAAMG,IAAI,GACfvE,OAA2B,IAE3BlC,MAAM,CAACmC,GAAG,CAAC,aAAS;EAClB,MAAMC,UAAU,GAAG,OAAO3B,UAAU,CAACA,UAAU;EAC/C,MAAM4B,QAAQ,GAAGxB,SAAS,CAACyB,kBAAkB,CAACJ,OAAO,CAACK,mBAAmB,CAAC;EAC1E,MAAMC,aAAa,GAAGN,OAAO,CAACO,oBAAoB,GAChD5B,SAAS,CAAC6B,iBAAiB,CAACR,OAAO,CAACO,oBAAoB,CAAC,CAACE,KAAK,GAC/DC,SAAS;EACX,MAAMoF,OAAO,GAAG,IAAIC,GAAG,EAAsD;EAE7E,MAAMpF,cAAc,GAAG7C,MAAM,CAACmC,GAAG,CAAC,aAAS;IACzC,IAAI+F,SAAS,GAAG,CAAC;IACjB,MAAMf,KAAK,GAAG,OAAOnH,MAAM,CAACmH,KAAK;IACjC,MAAMgB,aAAa,GAAG,OAAOpI,QAAQ,CAAC0G,IAAI,EAAQ;IAElD,MAAM2B,MAAM,GAAG,OAAOlG,OAAO,CAACkG,MAAM;IACpC,MAAMC,IAAI,GAAG,MAAM,IAAID,MAAM,GAAGA,MAAM,CAACC,IAAI,GAAGD,MAAM;IACpD,MAAME,WAAW,GAAGA,CAACrH,OAA0B,EAAEsH,aAAkC,KACjFF,IAAI,CAACC,WAAW,CAACrH,OAAO,EAAEsH,aAAoB,CAAC;IAEjD,OAAOlI,KAAK,CAACoH,YAAY,CAACN,KAAK,EAAEnH,MAAM,CAACyD,IAAI,CAAC,MAAM6E,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAE3E,MAAME,SAAS,GAAIC,KAAU,IAAI;MAC/B,MAAM,CAACxE,EAAE,EAAEyE,KAAK,EAAEjE,OAAO,CAAC,GAAGgE,KAAK,CAACnC,IAAI;MACvC,IAAIrC,EAAE,KAAK,OAAO,EAAE;QAClBlE,QAAQ,CAAC4I,UAAU,CAACR,aAAa,EAAElI,IAAI,CAAC2I,IAAI,CAAC;QAC7C;MACF,CAAC,MAAM,IAAI3E,EAAE,KAAK,aAAa,EAAE;QAC/B7B,UAAU,CAACgC,gBAAgB,CAAC;UAAE,CAACsE,KAAK,GAAG,CAACjE,OAAO;QAAC,CAAE,CAAC;QACnD;MACF,CAAC,MAAM;QACL,MAAMoE,MAAM,GAAGb,OAAO,CAACc,GAAG,CAAC7E,EAAE,CAAC;QAC9B,IAAI,CAAC4E,MAAM,EAAE;QACbb,OAAO,CAACe,MAAM,CAAC9E,EAAE,CAAC;QAClB,IAAIyE,KAAK,EAAE;UACTG,MAAM,CACJ5I,IAAI,CAAC+I,IAAI,CACP,IAAIpI,QAAQ,CAAC;YAAE4C,MAAM,EAAEzC,aAAa,CAAC2H,KAAe,EAAE,6BAA6B,EAAE,SAAS;UAAC,CAAE,CAAC,CACnG,CACF;QACH,CAAC,MAAM;UACLG,MAAM,CAAC5I,IAAI,CAAC4G,OAAO,CAACpC,OAAO,CAAC,CAAC;QAC/B;MACF;IACF,CAAC;IACD4D,IAAI,CAACY,gBAAgB,CAAC,SAAS,EAAET,SAAS,CAAC;IAE3C,SAASU,OAAOA,CAAA;MACdlJ,MAAM,CAACmJ,OAAO,CAAC7I,SAAS,CAAC8I,GAAG,CAACC,aAAa,EAAExG,cAAc,CAAC,CAAC;IAC9D;IACA,IAAI,SAAS,IAAIuF,MAAM,EAAE;MACvBA,MAAM,CAACa,gBAAgB,CAAC,OAAO,EAAEC,OAAO,CAAC;IAC3C;IAEA,OAAO7I,KAAK,CAACoH,YAAY,CACvBN,KAAK,EACLnH,MAAM,CAACyD,IAAI,CAAC,MAAK;MACf2E,MAAM,CAACkB,mBAAmB,CAAC,SAAS,EAAEd,SAAS,CAAC;MAChDJ,MAAM,CAACkB,mBAAmB,CAAC,OAAO,EAAEJ,OAAO,CAAC;IAC9C,CAAC,CAAC,CACH;IAED,OAAOnJ,QAAQ,CAACwJ,KAAK,CAACpB,aAAa,CAAC;IAEpC,IAAIjG,OAAO,CAACyB,sBAAsB,EAAE;MAClC2E,WAAW,CAAC,CAAC,aAAa,CAAC,CAAC;IAC9B;IAEA,MAAMkB,IAAI,GAAGA,CAACvF,EAAU,EAAEhD,OAA0B,EAAEsH,aAAkC,KACtFvI,MAAM,CAACyJ,QAAQ,CAAiBZ,MAAM,IAAI;MACxCb,OAAO,CAACoB,GAAG,CAACnF,EAAE,EAAE4E,MAAM,CAAC;MACvBP,WAAW,CAACrH,OAAO,EAAEsH,aAAa,CAAC;IACrC,CAAC,CAAC;IAEJ,MAAMlE,GAAG,GAAGA,CACVC,GAAW,EACXC,MAAA,GAAiC,EAAE,EACnCC,OAAA,GAA8B,QAAQ,KACQ;MAC9C,MAAMkF,IAAI,GAAG1J,MAAM,CAAC2J,SAAS,CAAyC1C,KAAK,IAAI;QAC7E,MAAMhD,EAAE,GAAGiE,SAAS,EAAE;QACtB,OAAOsB,IAAI,CAACvF,EAAE,EAAE,CAACA,EAAE,EAAEK,GAAG,EAAEC,MAAM,CAAC,EAAE0C,KAAK,CAAC2C,MAAM,CAACC,aAAa,CAAC,CAAC;MACjE,CAAC,CAAC;MACF,OAAOrF,OAAO,KAAK,QAAQ,GACvBxE,MAAM,CAAC4B,GAAG,CAAC8H,IAAI,EAAEI,aAAa,CAAC,GAC/B9J,MAAM,CAAC4B,GAAG,CAAC8H,IAAI,EAAEK,WAAW,CAAC;IACnC,CAAC;IAED,OAAO5J,QAAQ,CAAmB;MAChCmF,OAAOA,CAAChB,GAAG,EAAEC,MAAM,EAAE/B,aAAa;QAChC,OAAOA,aAAa,GAChBxC,MAAM,CAAC4B,GAAG,CAACyC,GAAG,CAACC,GAAG,EAAEC,MAAM,CAAC,EAAE/B,aAAa,CAAC,GAC3C6B,GAAG,CAACC,GAAG,EAAEC,MAAM,CAAC;MACtB,CAAC;MACDgB,UAAUA,CAACjB,GAAG,EAAEC,MAAM;QACpB,OAAOF,GAAG,CAACC,GAAG,EAAEC,MAAM,CAAC;MACzB,CAAC;MACDiB,aAAaA,CAAClB,GAAG,EAAEC,MAAM;QACvB,OAAOF,GAAG,CAACC,GAAG,EAAEC,MAAM,EAAE,OAAO,CAAC;MAClC,CAAC;MACDkB,iBAAiBA,CAACnB,GAAG,EAAEC,MAAM,EAAE/B,aAAa;QAC1C,OAAO,IAAI,CAAC8C,OAAO,CAAChB,GAAG,EAAEC,MAAM,EAAE/B,aAAa,CAAC;MACjD,CAAC;MACDkD,aAAaA,CAAA;QACX,OAAOlF,MAAM,CAACwJ,GAAG,CAAC,+BAA+B,CAAC;MACpD,CAAC;MACD7D,MAAM,EAAEnG,MAAM,CAAC4F,OAAO,CAAC,MAAK;QAC1B,MAAM3B,EAAE,GAAGiE,SAAS,EAAE;QACtB,OAAOsB,IAAI,CAACvF,EAAE,EAAE,CAAC,QAAQ,EAAEA,EAAE,CAAC,CAAC;MACjC,CAAC,CAAC;MACFoC,MAAMA,CAACC,IAAI;QACT,OAAOtG,MAAM,CAAC4F,OAAO,CAAC,MAAK;UACzB,MAAM3B,EAAE,GAAGiE,SAAS,EAAE;UACtB,OAAOsB,IAAI,CAACvF,EAAE,EAAE,CAAC,QAAQ,EAAEA,EAAE,EAAEqC,IAAI,CAAC,EAAE,CAACA,IAAI,CAAC2D,MAAM,CAAC,CAAC;QACtD,CAAC,CAAC;MACJ;KACD,CAAC;EACJ,CAAC,CAAC;EAEF,MAAMZ,aAAa,GAAG,OAAO/I,SAAS,CAAC4J,WAAW,CAACrH,cAAc,CAAC;EAElE,MAAM2D,SAAS,GAAG,OAAOjG,SAAS,CAACkG,IAAI,CAAC,CAAC,CAAC;EAC1C,MAAME,QAAQ,GAAGH,SAAS,CAACI,WAAW,CAAC,CAAC,CAAC,CAACtG,SAAS,CAACwI,GAAG,CAACO,aAAa,CAAC,CAAC;EACvE,MAAMvC,mBAAmB,GAAG9G,MAAM,CAAC+G,mBAAmB,CAAC/G,MAAM,CAACmK,UAAU,CAAC,WAAUnD,OAAO;IACxF,MAAMC,KAAK,GAAG/G,KAAK,CAACgH,UAAU,EAAG;IACjC,MAAMC,KAAK,GAAGrH,OAAO,CAACsH,SAAS,CAACH,KAAK,CAACI,OAAO,EAAEhH,KAAK,CAACA,KAAK,CAAC;IAC3D,OAAO2G,OAAO,CAACR,SAAS,CAACgB,IAAI,CAAC,CAAC,CAAC,CAAC;IACjC,OAAOnH,KAAK,CAACoH,YAAY,CAACN,KAAK,EAAEX,SAAS,CAACkB,OAAO,CAAC,CAAC,CAAC,CAAC;IACtD,OAAO,OAAOpH,SAAS,CAACwI,GAAG,CAACO,aAAa,CAAC;EAC5C,CAAC,CAAC,CAAC;EAEH,OAAO1B,MAAM,CAACC,MAAM,CACjB,OAAOlH,MAAM,CAAC+F,IAAI,CAAC;IAClBE,QAAQ;IACRtE,QAAQ;IACRyE,mBAAmB;IACnBe,cAAc,EAAE,CACd,IAAI3F,OAAO,CAAC2F,cAAc,GAAGF,MAAM,CAACG,OAAO,CAAC5F,OAAO,CAAC2F,cAAc,CAAC,GAAG,EAAE,CAAC,EACzE,CAAC/G,mBAAmB,EAAE,QAAQ,CAAC,CAChC;IACD0B;GACD,CAAC,EACF;IACE,CAACrB,MAAM,GAAGA,MAAgB;IAC1B4G,MAAM,EAAE7F,OAAO;IACfiE,MAAM,EAAEnG,MAAM,CAACoK,OAAO,CAACzD,QAAQ,EAAGD,UAAU,IAAKA,UAAU,CAACP,MAAM,CAAC;IACnEE,MAAMA,CAACC,IAAgB;MACrB,OAAOtG,MAAM,CAACoK,OAAO,CAACzD,QAAQ,EAAGD,UAAU,IAAKA,UAAU,CAACL,MAAM,CAACC,IAAI,CAAC,CAAC;IAC1E;GACD,CACF;AACH,CAAC,CAAC;AAEJ,SAAS+D,WAAWA,CAACzF,OAAsB,EAAEK,GAAe;EAC1D,MAAMC,GAAG,GAAwB,EAAE;EACnC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGP,OAAO,CAACQ,MAAM,EAAED,CAAC,EAAE,EAAE;IACvCD,GAAG,CAACN,OAAO,CAACO,CAAC,CAAC,CAAC,GAAGF,GAAG,CAACE,CAAC,CAAC;EAC1B;EACA,OAAOD,GAAG;AACZ;AACA,MAAM4E,aAAa,GAAIJ,IAAiC,IAAKA,IAAI,CAAC,CAAC,CAAC,CAAC9H,GAAG,CAAEqD,GAAG,IAAKoF,WAAW,CAACX,IAAI,CAAC,CAAC,CAAC,EAAEzE,GAAG,CAAC,CAAC;AAC5G,MAAM8E,WAAW,GAAIL,IAAiC,IAAKA,IAAI,CAAC,CAAC,CAAC;AAElE;;;;;;AAMA,OAAO,MAAMG,aAAa,gBAAG/J,OAAO,CAACwK,SAAS,CAC5C,8CAA8C,EAC9C;EAAEC,YAAY,EAAEA,CAAA,KAAM;AAAE,CAAE,CAC3B;AAED;;;;;;AAMA,OAAO,MAAMC,iBAAiB,GAC3BjC,aAA0C,IAAekC,MAA8B,IACtFzK,MAAM,CAAC0K,cAAc,CAACD,MAAM,EAAEZ,aAAa,EAAEtB,aAAa,CAAC;AAE/D;;;;;;AAMA,OAAO,MAAMoC,iBAAiB,GAC5B5C,MAA6C,IAE7C3H,KAAK,CAACwK,aAAa,CACjB/K,MAAM,CAACgL,MAAM,CAAC9C,MAAM,CAAC,CAACpG,IAAI,CACxB3B,MAAM,CAACoK,OAAO,CAACnI,UAAU,CAAC,EAC1BjC,MAAM,CAAC4B,GAAG,CAAEkJ,MAAM,IAChBhL,OAAO,CAAC2G,IAAI,CAACrF,YAAY,EAAE0J,MAAM,CAAC,CAACnJ,IAAI,CACrC7B,OAAO,CAACkD,GAAG,CAACtC,MAAM,CAACqK,SAAS,EAAED,MAAM,CAAC,CACtC,CACF,CACF,CACF,CAACnJ,IAAI,CAACvB,KAAK,CAAC4K,OAAO,CAACvK,UAAU,CAACwK,KAAK,CAAC,CAAC;AAEzC;;;;;;AAMA,OAAO,MAAMC,WAAW,GACtBnD,MAAgC,IAEhC3H,KAAK,CAACwK,aAAa,CACjB5K,MAAM,CAAC4B,GAAG,CAACK,UAAU,CAAC8F,MAAM,CAAC,EAAG+C,MAAM,IACpChL,OAAO,CAAC2G,IAAI,CAACrF,YAAY,EAAE0J,MAAM,CAAC,CAACnJ,IAAI,CACrC7B,OAAO,CAACkD,GAAG,CAACtC,MAAM,CAACqK,SAAS,EAAED,MAAM,CAAC,CACtC,CAAC,CACL,CAACnJ,IAAI,CAACvB,KAAK,CAAC4K,OAAO,CAACvK,UAAU,CAACwK,KAAK,CAAC,CAAC;AAEzC;;;;;;AAMA,OAAO,MAAMA,KAAK,GAChBlD,MAA0B,IAE1B3H,KAAK,CAACwK,aAAa,CACjB5K,MAAM,CAAC4B,GAAG,CAAC6E,IAAI,CAACsB,MAAM,CAAC,EAAG+C,MAAM,IAC9BhL,OAAO,CAAC2G,IAAI,CAACrF,YAAY,EAAE0J,MAAM,CAAC,CAACnJ,IAAI,CACrC7B,OAAO,CAACkD,GAAG,CAACtC,MAAM,CAACqK,SAAS,EAAED,MAAM,CAAC,CACtC,CAAC,CACL,CAACnJ,IAAI,CAACvB,KAAK,CAAC4K,OAAO,CAACvK,UAAU,CAACwK,KAAK,CAAC,CAAC;AAEzC;;;;;;AAMA,OAAO,MAAME,WAAW,GACtBpD,MAAuC,IAEvC3H,KAAK,CAACwK,aAAa,CACjB/K,MAAM,CAACgL,MAAM,CAAC9C,MAAM,CAAC,CAACpG,IAAI,CACxB3B,MAAM,CAACoK,OAAO,CAAC3D,IAAI,CAAC,EACpBzG,MAAM,CAAC4B,GAAG,CAAEkJ,MAAM,IAChBhL,OAAO,CAAC2G,IAAI,CAACrF,YAAY,EAAE0J,MAAM,CAAC,CAACnJ,IAAI,CACrC7B,OAAO,CAACkD,GAAG,CAACtC,MAAM,CAACqK,SAAS,EAAED,MAAM,CAAC,CACtC,CACF,CACF,CACF,CAACnJ,IAAI,CAACvB,KAAK,CAAC4K,OAAO,CAACvK,UAAU,CAACwK,KAAK,CAAC,CAAC","ignoreList":[]}