@effect/sql-pg 4.0.0-beta.66 → 4.0.0-beta.68

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.
@@ -16,18 +16,24 @@ import type { Duplex } from "node:stream";
16
16
  import type { ConnectionOptions } from "node:tls";
17
17
  import * as Pg from "pg";
18
18
  /**
19
- * @category type ids
20
- * @since 1.0.0
19
+ * Runtime type identifier used to mark `PgClient` values.
20
+ *
21
+ * @category type IDs
22
+ * @since 4.0.0
21
23
  */
22
24
  export declare const TypeId: TypeId;
23
25
  /**
24
- * @category type ids
25
- * @since 1.0.0
26
+ * Type-level identifier used to mark `PgClient` values.
27
+ *
28
+ * @category type IDs
29
+ * @since 4.0.0
26
30
  */
27
31
  export type TypeId = "~@effect/sql-pg/PgClient";
28
32
  /**
33
+ * PostgreSQL client service, extending `SqlClient` with JSON parameter fragments and LISTEN/NOTIFY helpers.
34
+ *
29
35
  * @category models
30
- * @since 1.0.0
36
+ * @since 4.0.0
31
37
  */
32
38
  export interface PgClient extends Client.SqlClient {
33
39
  readonly [TypeId]: TypeId;
@@ -37,13 +43,17 @@ export interface PgClient extends Client.SqlClient {
37
43
  readonly notify: (channel: string, payload: string) => Effect.Effect<void, SqlError>;
38
44
  }
39
45
  /**
46
+ * Context tag used to access the `PgClient` service.
47
+ *
40
48
  * @category tags
41
- * @since 1.0.0
49
+ * @since 4.0.0
42
50
  */
43
51
  export declare const PgClient: Context.Service<PgClient, PgClient>;
44
52
  /**
53
+ * Configuration for a PostgreSQL client, including connection, TLS, custom stream, application name, type parser, JSON transform, and query/result name transform options.
54
+ *
45
55
  * @category constructors
46
- * @since 1.0.0
56
+ * @since 4.0.0
47
57
  */
48
58
  export interface PgClientConfig {
49
59
  readonly url?: Redacted.Redacted | undefined;
@@ -64,8 +74,10 @@ export interface PgClientConfig {
64
74
  readonly types?: Pg.CustomTypesConfig | undefined;
65
75
  }
66
76
  /**
77
+ * PostgreSQL pool configuration, extending `PgClientConfig` with idle timeout, pool size, and connection lifetime settings.
78
+ *
67
79
  * @category constructors
68
- * @since 1.0.0
80
+ * @since 4.0.0
69
81
  */
70
82
  export interface PgPoolConfig extends PgClientConfig {
71
83
  readonly idleTimeout?: Duration.Input | undefined;
@@ -74,13 +86,17 @@ export interface PgPoolConfig extends PgClientConfig {
74
86
  readonly connectionTTL?: Duration.Input | undefined;
75
87
  }
76
88
  /**
89
+ * Creates a scoped PostgreSQL client backed by a managed `pg` connection pool.
90
+ *
77
91
  * @category constructors
78
- * @since 1.0.0
92
+ * @since 4.0.0
79
93
  */
80
94
  export declare const make: (options: PgPoolConfig) => Effect.Effect<PgClient, SqlError, Scope.Scope | Reactivity.Reactivity>;
81
95
  /**
96
+ * Creates a scoped PostgreSQL client backed by a managed single `pg` client, optionally acquiring a separate client for streaming and LISTEN operations.
97
+ *
82
98
  * @category constructors
83
- * @since 1.0.0
99
+ * @since 4.0.0
84
100
  */
85
101
  export declare const makeClient: (options: PgClientConfig & {
86
102
  /**
@@ -89,8 +105,10 @@ export declare const makeClient: (options: PgClientConfig & {
89
105
  readonly acquireForStream?: boolean | undefined;
90
106
  }) => Effect.Effect<PgClient, SqlError, Scope.Scope | Reactivity.Reactivity>;
91
107
  /**
108
+ * Builds a PostgreSQL client from a scoped `pg` pool acquisition effect, deriving transaction, streaming, and LISTEN/NOTIFY support from that pool.
109
+ *
92
110
  * @category constructors
93
- * @since 1.0.0
111
+ * @since 4.0.0
94
112
  */
95
113
  export declare const fromPool: (options: {
96
114
  readonly acquire: Effect.Effect<Pg.Pool, SqlError, Scope.Scope>;
@@ -102,8 +120,10 @@ export declare const fromPool: (options: {
102
120
  readonly types?: Pg.CustomTypesConfig | undefined;
103
121
  }) => Effect.Effect<PgClient, SqlError, Scope.Scope | Reactivity.Reactivity>;
104
122
  /**
123
+ * Builds a PostgreSQL client from a scoped `pg` client acquisition effect, serializing access when sharing the client and optionally using separate clients for streams and LISTEN.
124
+ *
105
125
  * @category constructors
106
- * @since 1.0.0
126
+ * @since 4.0.0
107
127
  */
108
128
  export declare const fromClient: (options: {
109
129
  readonly acquire: Effect.Effect<Pg.Client, SqlError, Scope.Scope>;
@@ -119,8 +139,10 @@ export declare const fromClient: (options: {
119
139
  readonly types?: Pg.CustomTypesConfig | undefined;
120
140
  }) => Effect.Effect<PgClient, SqlError, Scope.Scope | Reactivity.Reactivity>;
121
141
  /**
142
+ * Low-level constructor for a `PgClient` from SQL connection acquirers, a LISTEN acquirer, client configuration, and transformation options.
143
+ *
122
144
  * @category constructors
123
- * @since 1.0.0
145
+ * @since 4.0.0
124
146
  */
125
147
  export declare const makeWith: (options: {
126
148
  readonly acquirer: SqlConnection.Acquirer;
@@ -133,39 +155,49 @@ export declare const makeWith: (options: {
133
155
  readonly transformJson?: boolean | undefined;
134
156
  }) => Effect.Effect<PgClient, SqlError, Scope.Scope | Reactivity.Reactivity>;
135
157
  /**
158
+ * Creates a layer from an effect that acquires a `PgClient`, providing both `PgClient` and `SqlClient`.
159
+ *
136
160
  * @category layers
137
- * @since 1.0.0
161
+ * @since 4.0.0
138
162
  */
139
163
  export declare const layerFrom: <E, R>(acquire: Effect.Effect<PgClient, E, R>) => Layer.Layer<PgClient | Client.SqlClient, E, Exclude<R, Scope.Scope | Reactivity.Reactivity>>;
140
164
  /**
165
+ * Creates a layer from a `Config`-wrapped PostgreSQL pool configuration, providing both `PgClient` and `SqlClient`.
166
+ *
141
167
  * @category layers
142
- * @since 1.0.0
168
+ * @since 4.0.0
143
169
  */
144
170
  export declare const layerConfig: (config: Config.Wrap<PgPoolConfig>) => Layer.Layer<PgClient | Client.SqlClient, Config.ConfigError | SqlError>;
145
171
  /**
172
+ * Creates a layer from a concrete PostgreSQL pool configuration, providing both `PgClient` and `SqlClient`.
173
+ *
146
174
  * @category layers
147
- * @since 1.0.0
175
+ * @since 4.0.0
148
176
  */
149
177
  export declare const layer: (config: PgPoolConfig) => Layer.Layer<PgClient | Client.SqlClient, SqlError>;
150
178
  /**
151
- * @category constructor
152
- * @since 1.0.0
179
+ * Creates the PostgreSQL statement compiler, using `$1` placeholders, double-quoted identifiers, PostgreSQL returning clauses, and optional JSON value transformation.
180
+ *
181
+ * @category constructors
182
+ * @since 4.0.0
153
183
  */
154
184
  export declare const makeCompiler: (transform?: (_: string) => string, transformJson?: boolean) => Statement.Compiler;
155
185
  /**
186
+ * PostgreSQL-specific custom statement fragments supported by the compiler, currently JSON parameter fragments.
187
+ *
156
188
  * @category custom types
157
- * @since 1.0.0
189
+ * @since 4.0.0
158
190
  */
159
191
  export type PgCustom = PgJson;
160
192
  /**
161
193
  * @category custom types
162
- * @since 1.0.0
194
+ * @since 4.0.0
163
195
  */
164
196
  interface PgJson extends Custom<"PgJson", unknown> {
165
197
  }
166
198
  /**
167
199
  * @category custom types
168
- * @since 1.0.0
200
+ * @since 4.0.0
169
201
  */
170
202
  declare const PgJson: (paramA: unknown, paramB: void, paramC: void) => PgJson;
171
203
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"PgClient.d.ts","sourceRoot":"","sources":["../src/PgClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PgClient.d.ts","sourceRoot":"","sources":["../src/PgClient.ts"],"names":[],"mappings":"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"}
package/dist/PgClient.js CHANGED
@@ -1,5 +1,22 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * PostgreSQL client implementation for Effect SQL, backed by `pg`.
3
+ *
4
+ * This module exposes constructors for creating a scoped `PgClient` from a
5
+ * managed `pg` pool, a single managed `pg` client, or lower-level connection
6
+ * acquirers. The resulting service can be provided as both `PgClient` and the
7
+ * generic `SqlClient`, and is intended for application database access,
8
+ * migrations, transactional workflows, row streaming, JSON parameters, and
9
+ * PostgreSQL LISTEN/NOTIFY integration.
10
+ *
11
+ * Pool-backed clients acquire connections per operation and reserve dedicated
12
+ * connections for transactions and cursor streams. Clients built from one
13
+ * `pg.Client` serialize shared access; enable `acquireForStream` when streams
14
+ * or listeners need their own client instead of sharing the query connection.
15
+ * LISTEN uses a scoped long-lived client and automatically issues `UNLISTEN`
16
+ * when the stream scope closes, so listeners should be scoped for as long as
17
+ * notifications are needed.
18
+ *
19
+ * @since 4.0.0
3
20
  */
4
21
  import * as Arr from "effect/Array";
5
22
  import * as Cause from "effect/Cause";
@@ -26,18 +43,24 @@ import * as Pg from "pg";
26
43
  import * as PgConnString from "pg-connection-string";
27
44
  import Cursor from "pg-cursor";
28
45
  /**
29
- * @category type ids
30
- * @since 1.0.0
46
+ * Runtime type identifier used to mark `PgClient` values.
47
+ *
48
+ * @category type IDs
49
+ * @since 4.0.0
31
50
  */
32
51
  export const TypeId = "~@effect/sql-pg/PgClient";
33
52
  /**
53
+ * Context tag used to access the `PgClient` service.
54
+ *
34
55
  * @category tags
35
- * @since 1.0.0
56
+ * @since 4.0.0
36
57
  */
37
58
  export const PgClient = /*#__PURE__*/Context.Service("@effect/sql-pg/PgClient");
38
59
  /**
60
+ * Creates a scoped PostgreSQL client backed by a managed `pg` connection pool.
61
+ *
39
62
  * @category constructors
40
- * @since 1.0.0
63
+ * @since 4.0.0
41
64
  */
42
65
  export const make = options => fromPool({
43
66
  ...options,
@@ -83,8 +106,10 @@ export const make = options => fromPool({
83
106
  })
84
107
  });
85
108
  /**
109
+ * Creates a scoped PostgreSQL client backed by a managed single `pg` client, optionally acquiring a separate client for streaming and LISTEN operations.
110
+ *
86
111
  * @category constructors
87
- * @since 1.0.0
112
+ * @since 4.0.0
88
113
  */
89
114
  export const makeClient = options => fromClient({
90
115
  ...options,
@@ -125,8 +150,10 @@ export const makeClient = options => fromClient({
125
150
  acquireForStream: options.acquireForStream ?? false
126
151
  });
127
152
  /**
153
+ * Builds a PostgreSQL client from a scoped `pg` pool acquisition effect, deriving transaction, streaming, and LISTEN/NOTIFY support from that pool.
154
+ *
128
155
  * @category constructors
129
- * @since 1.0.0
156
+ * @since 4.0.0
130
157
  */
131
158
  export const fromPool = /*#__PURE__*/Effect.fnUntraced(function* (options) {
132
159
  const pool = yield* options.acquire;
@@ -273,8 +300,10 @@ export const fromPool = /*#__PURE__*/Effect.fnUntraced(function* (options) {
273
300
  });
274
301
  });
275
302
  /**
303
+ * Builds a PostgreSQL client from a scoped `pg` client acquisition effect, serializing access when sharing the client and optionally using separate clients for streams and LISTEN.
304
+ *
276
305
  * @category constructors
277
- * @since 1.0.0
306
+ * @since 4.0.0
278
307
  */
279
308
  export const fromClient = /*#__PURE__*/Effect.fnUntraced(function* (options) {
280
309
  function onError() {}
@@ -316,8 +345,10 @@ export const fromClient = /*#__PURE__*/Effect.fnUntraced(function* (options) {
316
345
  });
317
346
  });
318
347
  /**
348
+ * Low-level constructor for a `PgClient` from SQL connection acquirers, a LISTEN acquirer, client configuration, and transformation options.
349
+ *
319
350
  * @category constructors
320
- * @since 1.0.0
351
+ * @since 4.0.0
321
352
  */
322
353
  export const makeWith = /*#__PURE__*/Effect.fnUntraced(function* (options) {
323
354
  const compiler = makeCompiler(options.transformQueryNames, options.transformJson);
@@ -457,23 +488,31 @@ const makeCancel = (pool, client) => {
457
488
  return eff;
458
489
  };
459
490
  /**
491
+ * Creates a layer from an effect that acquires a `PgClient`, providing both `PgClient` and `SqlClient`.
492
+ *
460
493
  * @category layers
461
- * @since 1.0.0
494
+ * @since 4.0.0
462
495
  */
463
496
  export const layerFrom = acquire => Layer.effectContext(Effect.map(acquire, client => Context.make(PgClient, client).pipe(Context.add(Client.SqlClient, client)))).pipe(Layer.provide(Reactivity.layer));
464
497
  /**
498
+ * Creates a layer from a `Config`-wrapped PostgreSQL pool configuration, providing both `PgClient` and `SqlClient`.
499
+ *
465
500
  * @category layers
466
- * @since 1.0.0
501
+ * @since 4.0.0
467
502
  */
468
503
  export const layerConfig = config => layerFrom(Effect.flatMap(Config.unwrap(config), make));
469
504
  /**
505
+ * Creates a layer from a concrete PostgreSQL pool configuration, providing both `PgClient` and `SqlClient`.
506
+ *
470
507
  * @category layers
471
- * @since 1.0.0
508
+ * @since 4.0.0
472
509
  */
473
510
  export const layer = config => layerFrom(make(config));
474
511
  /**
475
- * @category constructor
476
- * @since 1.0.0
512
+ * Creates the PostgreSQL statement compiler, using `$1` placeholders, double-quoted identifiers, PostgreSQL returning clauses, and optional JSON value transformation.
513
+ *
514
+ * @category constructors
515
+ * @since 4.0.0
477
516
  */
478
517
  export const makeCompiler = (transform, transformJson = true) => {
479
518
  const transformValue = transformJson && transform ? Statement.defaultTransforms(transform).value : undefined;
@@ -501,7 +540,7 @@ export const makeCompiler = (transform, transformJson = true) => {
501
540
  const escape = /*#__PURE__*/Statement.defaultEscape("\"");
502
541
  /**
503
542
  * @category custom types
504
- * @since 1.0.0
543
+ * @since 4.0.0
505
544
  */
506
545
  const PgJson = /*#__PURE__*/Statement.custom("PgJson");
507
546
  const ATTR_DB_SYSTEM_NAME = "db.system.name";
@@ -1 +1 @@
1
- {"version":3,"file":"PgClient.js","names":["Arr","Cause","Channel","Config","Context","Duration","Effect","Fiber","Layer","Number","Option","Queue","RcRef","Redacted","Scope","Semaphore","Stream","Reactivity","Client","AuthenticationError","AuthorizationError","ConnectionError","ConstraintError","DeadlockError","LockTimeoutError","SerializationError","SqlError","SqlSyntaxError","StatementTimeoutError","UniqueViolation","UnknownError","Statement","Pg","PgConnString","Cursor","TypeId","PgClient","Service","make","options","fromPool","acquire","gen","pool","Pool","connectionString","url","value","undefined","user","username","host","database","password","ssl","port","stream","connectionTimeoutMillis","connectTimeout","toMillis","fromInputUnsafe","idleTimeoutMillis","idleTimeout","max","maxConnections","min","minConnections","maxLifetimeSeconds","connectionTTL","toSeconds","application_name","applicationName","types","on","_err","acquireRelease","tryPromise","try","query","catch","cause","reason","classifyError","promise","end","pipe","timeoutOption","interruptible","timeoutOrElse","duration","seconds","orElse","fail","Error","message","operation","makeClient","fromClient","client","acquireForStream","fnUntraced","makeConection","ConnectionImpl","runWithClient","f","callback","resume","makeCancel","done","cancel","onError","cleanup","release","off","connect","client_","once","eff","suspend","void","ensuring","sync","succeed","reserveRaw","fiber","getCurrent","scope","getUnsafe","context","cause_","err","as","addFinalizer","reserve","map","onListenClientError","_","listenAcquirer","config","parsed","parse","getOrUndefined","makeWith","acquirer","transactionAcquirer","get","spanAttributes","transformResultNames","transformQueryNames","transformJson","acquireWithErrorHandler","tap","semaphore","makeUnsafe","streamClient","take","connection","withPermit","compiler","makeCompiler","transformRows","defaultTransforms","array","Object","assign","entries","ATTR_DB_SYSTEM_NAME","ATTR_DB_NAMESPACE","ATTR_SERVER_ADDRESS","ATTR_SERVER_PORT","json","fragment","PgJson","listen","channel","queue","onNotification","msg","payload","offerUnsafe","escapeIdentifier","notify","asVoid","scoped","flatMap","conn","executeRaw","constructor","run","params","result","Array","isArray","r","rows","execute","sql","executeWithoutTransform","executeValues","text","rowMode","values","executeUnprepared","executeStream","self","fromChannel","fromTransform","provide","cursor","close","read","isArrayNonEmpty","cancelEffects","WeakMap","has","processId","processID","ending","set","layerFrom","effectContext","add","SqlClient","layer","layerConfig","unwrap","transform","transformValue","dialect","placeholder","onIdentifier","withoutTransform","escape","onRecordUpdate","placeholders","valueAlias","valueColumns","returning","flat","concat","onCustom","type","kind","paramA","defaultEscape","custom","pgCodeFromCause","code","pgConstraintFromCause","constraint","normalized","trim","length","props","startsWith"],"sources":["../src/PgClient.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,GAAG,MAAM,cAAc;AACnC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,OAAO,MAAM,gBAAgB;AACzC,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,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,SAAS,MAAM,kBAAkB;AAC7C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,UAAU,MAAM,uCAAuC;AACnE,OAAO,KAAKC,MAAM,MAAM,+BAA+B;AAGvD,SACEC,mBAAmB,EACnBC,kBAAkB,EAClBC,eAAe,EACfC,eAAe,EACfC,aAAa,EACbC,gBAAgB,EAChBC,kBAAkB,EAClBC,QAAQ,EACRC,cAAc,EACdC,qBAAqB,EACrBC,eAAe,EACfC,YAAY,QACP,8BAA8B;AAErC,OAAO,KAAKC,SAAS,MAAM,+BAA+B;AAG1D,OAAO,KAAKC,EAAE,MAAM,IAAI;AACxB,OAAO,KAAKC,YAAY,MAAM,sBAAsB;AACpD,OAAOC,MAAM,MAAM,WAAW;AAE9B;;;;AAIA,OAAO,MAAMC,MAAM,GAAW,0BAA0B;AAoBxD;;;;AAIA,OAAO,MAAMC,QAAQ,gBAAGhC,OAAO,CAACiC,OAAO,CAAW,yBAAyB,CAAC;AA0C5E;;;;AAIA,OAAO,MAAMC,IAAI,GAAIC,OAAqB,IACxCC,QAAQ,CAAC;EACP,GAAGD,OAAO;EACVE,OAAO,EAAEnC,MAAM,CAACoC,GAAG,CAAC,aAAS;IAC3B,MAAMC,IAAI,GAAG,IAAIX,EAAE,CAACY,IAAI,CAAC;MACvBC,gBAAgB,EAAEN,OAAO,CAACO,GAAG,GAAGjC,QAAQ,CAACkC,KAAK,CAACR,OAAO,CAACO,GAAG,CAAC,GAAGE,SAAS;MACvEC,IAAI,EAAEV,OAAO,CAACW,QAAQ;MACtBC,IAAI,EAAEZ,OAAO,CAACY,IAAI;MAClBC,QAAQ,EAAEb,OAAO,CAACa,QAAQ;MAC1BC,QAAQ,EAAEd,OAAO,CAACc,QAAQ,GAAGxC,QAAQ,CAACkC,KAAK,CAACR,OAAO,CAACc,QAAQ,CAAC,GAAGL,SAAS;MACzEM,GAAG,EAAEf,OAAO,CAACe,GAAG;MAChBC,IAAI,EAAEhB,OAAO,CAACgB,IAAI;MAClB,IAAIhB,OAAO,CAACiB,MAAM,GAAG;QAAEA,MAAM,EAAEjB,OAAO,CAACiB;MAAM,CAAE,GAAG,EAAE,CAAC;MACrDC,uBAAuB,EAAElB,OAAO,CAACmB,cAAc,GAC3CrD,QAAQ,CAACsD,QAAQ,CAACtD,QAAQ,CAACuD,eAAe,CAACrB,OAAO,CAACmB,cAAc,CAAC,CAAC,GACnEV,SAAS;MACba,iBAAiB,EAAEtB,OAAO,CAACuB,WAAW,GAClCzD,QAAQ,CAACsD,QAAQ,CAACtD,QAAQ,CAACuD,eAAe,CAACrB,OAAO,CAACuB,WAAW,CAAC,CAAC,GAChEd,SAAS;MACbe,GAAG,EAAExB,OAAO,CAACyB,cAAc;MAC3BC,GAAG,EAAE1B,OAAO,CAAC2B,cAAc;MAC3BC,kBAAkB,EAAE5B,OAAO,CAAC6B,aAAa,GACrC/D,QAAQ,CAACgE,SAAS,CAAChE,QAAQ,CAACuD,eAAe,CAACrB,OAAO,CAAC6B,aAAa,CAAC,CAAC,GACnEpB,SAAS;MACbsB,gBAAgB,EAAE/B,OAAO,CAACgC,eAAe,IAAI,gBAAgB;MAC7DC,KAAK,EAAEjC,OAAO,CAACiC;KAChB,CAAC;IAEF7B,IAAI,CAAC8B,EAAE,CAAC,OAAO,EAAGC,IAAI,IAAI,CAAE,CAAC,CAAC;IAE9B,OAAOpE,MAAM,CAACqE,cAAc,CAC1BrE,MAAM,CAACsE,UAAU,CAAC;MAChBC,GAAG,EAAEA,CAAA,KAAMlC,IAAI,CAACmC,KAAK,CAAC,UAAU,CAAC;MACjCC,KAAK,EAAGC,KAAK,IAAK,IAAItD,QAAQ,CAAC;QAAEuD,MAAM,EAAEC,aAAa,CAACF,KAAK,EAAE,6BAA6B,EAAE,SAAS;MAAC,CAAE;KAC1G,CAAC,EACF,MACE1E,MAAM,CAAC6E,OAAO,CAAC,MAAMxC,IAAI,CAACyC,GAAG,EAAE,CAAC,CAACC,IAAI,CACnC/E,MAAM,CAACgF,aAAa,CAAC,IAAI,CAAC,CAC3B,EACH;MAAEC,aAAa,EAAE;IAAI,CAAE,CACxB,CAACF,IAAI,CACJ/E,MAAM,CAACkF,aAAa,CAAC;MACnBC,QAAQ,EAAElD,OAAO,CAACmB,cAAc,IAAIrD,QAAQ,CAACqF,OAAO,CAAC,CAAC,CAAC;MACvDC,MAAM,EAAEA,CAAA,KACNrF,MAAM,CAACsF,IAAI,CACT,IAAIlE,QAAQ,CAAC;QACXuD,MAAM,EAAE,IAAI5D,eAAe,CAAC;UAC1B2D,KAAK,EAAE,IAAIa,KAAK,CAAC,sBAAsB,CAAC;UACxCC,OAAO,EAAE,gCAAgC;UACzCC,SAAS,EAAE;SACZ;OACF,CAAC;KAEP,CAAC,CACH;IAED,OAAOpD,IAAI;EACb,CAAC;CACF,CAAC;AAEJ;;;;AAIA,OAAO,MAAMqD,UAAU,GACrBzD,OAKC,IAED0D,UAAU,CAAC;EACT,GAAG1D,OAAO;EACVE,OAAO,EAAEnC,MAAM,CAACoC,GAAG,CAAC,aAAS;IAC3B,MAAMwD,MAAM,GAAG,IAAIlE,EAAE,CAACd,MAAM,CAAC;MAC3B2B,gBAAgB,EAAEN,OAAO,CAACO,GAAG,GAAGjC,QAAQ,CAACkC,KAAK,CAACR,OAAO,CAACO,GAAG,CAAC,GAAGE,SAAS;MACvEC,IAAI,EAAEV,OAAO,CAACW,QAAQ;MACtBC,IAAI,EAAEZ,OAAO,CAACY,IAAI;MAClBC,QAAQ,EAAEb,OAAO,CAACa,QAAQ;MAC1BC,QAAQ,EAAEd,OAAO,CAACc,QAAQ,GAAGxC,QAAQ,CAACkC,KAAK,CAACR,OAAO,CAACc,QAAQ,CAAC,GAAGL,SAAS;MACzEM,GAAG,EAAEf,OAAO,CAACe,GAAG;MAChBC,IAAI,EAAEhB,OAAO,CAACgB,IAAI;MAClB,IAAIhB,OAAO,CAACiB,MAAM,GAAG;QAAEA,MAAM,EAAEjB,OAAO,CAACiB;MAAM,CAAE,GAAG,EAAE,CAAC;MACrDc,gBAAgB,EAAE/B,OAAO,CAACgC,eAAe,IAAI,gBAAgB;MAC7DC,KAAK,EAAEjC,OAAO,CAACiC;KAChB,CAAC;IACF,OAAOlE,MAAM,CAACqE,cAAc,CAC1BrE,MAAM,CAACsE,UAAU,CAAC;MAChBC,GAAG,EAAEA,CAAA,KAAMqB,MAAM,CAACpB,KAAK,CAAC,UAAU,CAAC;MACnCC,KAAK,EAAGC,KAAK,IAAK,IAAItD,QAAQ,CAAC;QAAEuD,MAAM,EAAEC,aAAa,CAACF,KAAK,EAAE,6BAA6B,EAAE,SAAS;MAAC,CAAE;KAC1G,CAAC,EACF,MACE1E,MAAM,CAAC6E,OAAO,CAAC,MAAMe,MAAM,CAACd,GAAG,EAAE,CAAC,CAACC,IAAI,CACrC/E,MAAM,CAACgF,aAAa,CAAC,IAAI,CAAC,CAC3B,EACH;MAAEC,aAAa,EAAE;IAAI,CAAE,CACxB,CAACF,IAAI,CACJ/E,MAAM,CAACkF,aAAa,CAAC;MACnBC,QAAQ,EAAElD,OAAO,CAACmB,cAAc,IAAIrD,QAAQ,CAACqF,OAAO,CAAC,CAAC,CAAC;MACvDC,MAAM,EAAEA,CAAA,KACNrF,MAAM,CAACsF,IAAI,CACT,IAAIlE,QAAQ,CAAC;QACXuD,MAAM,EAAE,IAAI5D,eAAe,CAAC;UAC1B2D,KAAK,EAAE,IAAIa,KAAK,CAAC,sBAAsB,CAAC;UACxCC,OAAO,EAAE,gCAAgC;UACzCC,SAAS,EAAE;SACZ;OACF,CAAC;KAEP,CAAC,CACH;IAED,OAAOG,MAAM;EACf,CAAC,CAAC;EACFC,gBAAgB,EAAE5D,OAAO,CAAC4D,gBAAgB,IAAI;CAC/C,CAAC;AAEJ;;;;AAIA,OAAO,MAAM3D,QAAQ,gBAAGlC,MAAM,CAAC8F,UAAU,CAAC,WACxC7D,OAUC;EAED,MAAMI,IAAI,GAAG,OAAOJ,OAAO,CAACE,OAAO;EAEnC,MAAM4D,aAAa,GAAIH,MAAsB,IAC3C,IAAII,cAAc,CAChB,SAASC,aAAaA,CAAIC,CAAmF;IAC3G,IAAIN,MAAM,KAAKlD,SAAS,EAAE;MACxB,OAAO1C,MAAM,CAACmG,QAAQ,CAAeC,MAAM,IAAI;QAC7CF,CAAC,CAACN,MAAO,EAAEQ,MAAM,CAAC;QAClB,OAAOC,UAAU,CAAChE,IAAI,EAAEuD,MAAO,CAAC;MAClC,CAAC,CAAC;IACJ;IACA,OAAO5F,MAAM,CAACmG,QAAQ,CAAeC,MAAM,IAAI;MAC7C,IAAIE,IAAI,GAAG,KAAK;MAChB,IAAIC,MAAM,GAAoC7D,SAAS;MACvD,IAAIkD,MAAM,GAA8BlD,SAAS;MACjD,SAAS8D,OAAOA,CAAC9B,KAAY;QAC3B+B,OAAO,CAAC/B,KAAK,CAAC;QACd0B,MAAM,CAACpG,MAAM,CAACsF,IAAI,CAAC,IAAIlE,QAAQ,CAAC;UAAEuD,MAAM,EAAEC,aAAa,CAACF,KAAK,EAAE,kBAAkB,EAAE,mBAAmB;QAAC,CAAE,CAAC,CAAC,CAAC;MAC9G;MACA,SAAS+B,OAAOA,CAAC/B,KAAa;QAC5B,IAAI,CAAC4B,IAAI,EAAEV,MAAM,EAAEc,OAAO,CAAChC,KAAK,CAAC;QACjC4B,IAAI,GAAG,IAAI;QACXV,MAAM,EAAEe,GAAG,CAAC,OAAO,EAAEH,OAAO,CAAC;MAC/B;MACAnE,IAAI,CAACuE,OAAO,CAAC,CAAClC,KAAK,EAAEmC,OAAO,KAAI;QAC9B,IAAInC,KAAK,EAAE;UACT,OAAO0B,MAAM,CACXpG,MAAM,CAACsF,IAAI,CACT,IAAIlE,QAAQ,CAAC;YACXuD,MAAM,EAAEC,aAAa,CAACF,KAAK,EAAE,8BAA8B,EAAE,mBAAmB;WACjF,CAAC,CACH,CACF;QACH,CAAC,MAAM,IAAI,CAACmC,OAAO,EAAE;UACnB,OAAOT,MAAM,CACXpG,MAAM,CAACsF,IAAI,CACT,IAAIlE,QAAQ,CAAC;YACXuD,MAAM,EAAE,IAAI5D,eAAe,CAAC;cAC1ByE,OAAO,EAAE,8BAA8B;cACvCd,KAAK,EAAE,IAAIa,KAAK,CAAC,oBAAoB,CAAC;cACtCE,SAAS,EAAE;aACZ;WACF,CAAC,CACH,CACF;QACH,CAAC,MAAM,IAAIa,IAAI,EAAE;UACfO,OAAO,CAACH,OAAO,EAAE;UACjB;QACF;QACAd,MAAM,GAAGiB,OAAO;QAChBjB,MAAM,CAACkB,IAAI,CAAC,OAAO,EAAEN,OAAO,CAAC;QAC7BD,MAAM,GAAGF,UAAU,CAAChE,IAAI,EAAEuD,MAAM,CAAC;QACjCM,CAAC,CAACN,MAAM,EAAGmB,GAAG,IAAI;UAChBN,OAAO,EAAE;UACTL,MAAM,CAACW,GAAG,CAAC;QACb,CAAC,CAAC;MACJ,CAAC,CAAC;MACF,OAAO/G,MAAM,CAACgH,OAAO,CAAC,MAAK;QACzB,IAAI,CAACT,MAAM,EAAE;UACXE,OAAO,EAAE;UACT,OAAOzG,MAAM,CAACiH,IAAI;QACpB;QACA,OAAOjH,MAAM,CAACkH,QAAQ,CAACX,MAAM,EAAEvG,MAAM,CAACmH,IAAI,CAACV,OAAO,CAAC,CAAC;MACtD,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,EACDb,MAAM,GAAG5F,MAAM,CAACoH,OAAO,CAACxB,MAAM,CAAC,GAAGyB,UAAU,CAC7C;EAEH,MAAMA,UAAU,GAAGrH,MAAM,CAACmG,QAAQ,CAAwCC,MAAM,IAAI;IAClF,MAAMkB,KAAK,GAAGrH,KAAK,CAACsH,UAAU,EAAG;IACjC,MAAMC,KAAK,GAAG1H,OAAO,CAAC2H,SAAS,CAACH,KAAK,CAACI,OAAO,EAAElH,KAAK,CAACA,KAAK,CAAC;IAC3D,IAAIkE,KAAK,GAAsBhC,SAAS;IACxC,SAAS8D,OAAOA,CAACmB,MAAa;MAC5BjD,KAAK,GAAGiD,MAAM;IAChB;IACAtF,IAAI,CAACuE,OAAO,CAAC,CAACgB,GAAG,EAAEhC,MAAM,EAAEc,OAAO,KAAI;MACpC,IAAIkB,GAAG,EAAE;QACP,OAAOxB,MAAM,CACXpG,MAAM,CAACsF,IAAI,CACT,IAAIlE,QAAQ,CAAC;UACXuD,MAAM,EAAEC,aAAa,CACnBgD,GAAG,EACH,8CAA8C,EAC9C,mBAAmB;SAEtB,CAAC,CACH,CACF;MACH,CAAC,MAAM,IAAI,CAAChC,MAAM,EAAE;QAClB,OAAOQ,MAAM,CACXpG,MAAM,CAACsF,IAAI,CACT,IAAIlE,QAAQ,CAAC;UACXuD,MAAM,EAAE,IAAI5D,eAAe,CAAC;YAC1ByE,OAAO,EAAE,8CAA8C;YACvDd,KAAK,EAAE,IAAIa,KAAK,CAAC,oBAAoB,CAAC;YACtCE,SAAS,EAAE;WACZ;SACF,CAAC,CACH,CACF;MACH;MACAG,MAAM,CAACzB,EAAE,CAAC,OAAO,EAAEqC,OAAO,CAAC;MAC3BJ,MAAM,CAACpG,MAAM,CAAC6H,EAAE,CACdrH,KAAK,CAACsH,YAAY,CAChBN,KAAK,EACLxH,MAAM,CAACmH,IAAI,CAAC,MAAK;QACfvB,MAAM,CAACe,GAAG,CAAC,OAAO,EAAEH,OAAO,CAAC;QAC5BE,OAAO,CAAChC,KAAK,CAAC;MAChB,CAAC,CAAC,CACH,EACDkB,MAAM,CACP,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;EACF,MAAMmC,OAAO,GAAG/H,MAAM,CAACgI,GAAG,CAACX,UAAU,EAAEtB,aAAa,CAAC;EAErD,MAAMkC,mBAAmB,GAAIC,CAAQ,IAAI,CACzC,CAAC;EAED,MAAMC,cAAc,GAAG,OAAO7H,KAAK,CAAC0B,IAAI,CAAC;IACvCG,OAAO,EAAEnC,MAAM,CAACqE,cAAc,CAC5BrE,MAAM,CAACsE,UAAU,CAAC;MAChBC,GAAG,EAAE,MAAAA,CAAA,KAAW;QACd,MAAMqB,MAAM,GAAG,IAAIlE,EAAE,CAACd,MAAM,CAACyB,IAAI,CAACJ,OAAO,CAAC;QAC1C,MAAM2D,MAAM,CAACgB,OAAO,EAAE;QACtBhB,MAAM,CAACzB,EAAE,CAAC,OAAO,EAAE8D,mBAAmB,CAAC;QACvC,OAAOrC,MAAM;MACf,CAAC;MACDnB,KAAK,EAAGC,KAAK,IACX,IAAItD,QAAQ,CAAC;QACXuD,MAAM,EAAEC,aAAa,CAACF,KAAK,EAAE,yCAAyC,EAAE,mBAAmB;OAC5F;KACJ,CAAC,EACDkB,MAAM,IACL5F,MAAM,CAAC6E,OAAO,CAAC,MAAK;MAClBe,MAAM,CAACe,GAAG,CAAC,OAAO,EAAEsB,mBAAmB,CAAC;MACxC,OAAOrC,MAAM,CAACd,GAAG,EAAE;IACrB,CAAC,CAAC,CAACC,IAAI,CACL/E,MAAM,CAACgF,aAAa,CAAC,IAAI,CAAC,CAC3B,EACH;MAAEC,aAAa,EAAE;IAAI,CAAE;GAE1B,CAAC;EAEF,IAAImD,MAAM,GAAmB;IAC3B5F,GAAG,EAAEH,IAAI,CAACJ,OAAO,CAACM,gBAAgB,GAAGhC,QAAQ,CAACyB,IAAI,CAACK,IAAI,CAACJ,OAAO,CAACM,gBAAgB,CAAC,GAAGG,SAAS;IAC7FG,IAAI,EAAER,IAAI,CAACJ,OAAO,CAACY,IAAI;IACvBI,IAAI,EAAEZ,IAAI,CAACJ,OAAO,CAACgB,IAAI;IACvBH,QAAQ,EAAET,IAAI,CAACJ,OAAO,CAACa,QAAQ;IAC/BF,QAAQ,EAAEP,IAAI,CAACJ,OAAO,CAACU,IAAI;IAC3BI,QAAQ,EAAE,OAAOV,IAAI,CAACJ,OAAO,CAACc,QAAQ,KAAK,QAAQ,GAAGxC,QAAQ,CAACyB,IAAI,CAACK,IAAI,CAACJ,OAAO,CAACc,QAAQ,CAAC,GAAGL,SAAS;IACtGM,GAAG,EAAEX,IAAI,CAACJ,OAAO,CAACe,GAAG;IACrBiB,eAAe,EAAE5B,IAAI,CAACJ,OAAO,CAAC+B,gBAAgB;IAC9CE,KAAK,EAAE7B,IAAI,CAACJ,OAAO,CAACiC;GACrB;EACD,IAAI7B,IAAI,CAACJ,OAAO,CAACM,gBAAgB,EAAE;IACjC;IACA,IAAI;MACF,MAAM8F,MAAM,GAAG1G,YAAY,CAAC2G,KAAK,CAACjG,IAAI,CAACJ,OAAO,CAACM,gBAAgB,CAAC;MAChE6F,MAAM,GAAG;QACP,GAAGA,MAAM;QACTvF,IAAI,EAAEuF,MAAM,CAACvF,IAAI,IAAIwF,MAAM,CAACxF,IAAI,IAAIH,SAAS;QAC7CO,IAAI,EAAEmF,MAAM,CAACnF,IAAI,KAAKoF,MAAM,CAACpF,IAAI,GAAG7C,MAAM,CAACmI,cAAc,CAACpI,MAAM,CAACmI,KAAK,CAACD,MAAM,CAACpF,IAAI,CAAC,CAAC,GAAGP,SAAS,CAAC;QACjGE,QAAQ,EAAEwF,MAAM,CAACxF,QAAQ,IAAIyF,MAAM,CAAC1F,IAAI,IAAID,SAAS;QACrDK,QAAQ,EAAEqF,MAAM,CAACrF,QAAQ,KAAKsF,MAAM,CAACtF,QAAQ,GAAGxC,QAAQ,CAACyB,IAAI,CAACqG,MAAM,CAACtF,QAAQ,CAAC,GAAGL,SAAS,CAAC;QAC3FI,QAAQ,EAAEsF,MAAM,CAACtF,QAAQ,IAAIuF,MAAM,CAACvF,QAAQ,IAAIJ;OACjD;IACH,CAAC,CAAC,MAAM;MACN;IAAA;EAEJ;EAEA,OAAO,OAAO8F,QAAQ,CAAC;IACrBC,QAAQ,EAAEzI,MAAM,CAACoH,OAAO,CAACrB,aAAa,EAAE,CAAC;IACzC2C,mBAAmB,EAAEX,OAAO;IAC5BI,cAAc,EAAE7H,KAAK,CAACqI,GAAG,CAACR,cAAc,CAAC;IACzCC,MAAM;IACNQ,cAAc,EAAE3G,OAAO,CAAC2G,cAAc;IACtCC,oBAAoB,EAAE5G,OAAO,CAAC4G,oBAAoB;IAClDC,mBAAmB,EAAE7G,OAAO,CAAC6G,mBAAmB;IAChDC,aAAa,EAAE9G,OAAO,CAAC8G;GACxB,CAAC;AACJ,CAAC,CAAC;AAEF;;;;AAIA,OAAO,MAAMpD,UAAU,gBAAG3F,MAAM,CAAC8F,UAAU,CAAC,WAC1C7D,OAeC;EAED,SAASuE,OAAOA,CAAA,GAAI;EACpB,MAAMwC,uBAAuB,GAAG/G,OAAO,CAACE,OAAO,CAAC4C,IAAI,CAClD/E,MAAM,CAACiJ,GAAG,CAAErD,MAAM,IAAI;IACpBA,MAAM,CAACzB,EAAE,CAAC,OAAO,EAAEqC,OAAO,CAAC;IAC3B,OAAOxG,MAAM,CAAC8H,YAAY,CAAC,MAAK;MAC9BlC,MAAM,CAACe,GAAG,CAAC,OAAO,EAAEH,OAAO,CAAC;MAC5B,OAAOxG,MAAM,CAACiH,IAAI;IACpB,CAAC,CAAC;EACJ,CAAC,CAAC,CACH;EACD,MAAMrB,MAAM,GAAG,OAAOoD,uBAAuB;EAE7C,MAAME,SAAS,GAAGzI,SAAS,CAAC0I,UAAU,CAAC,CAAC,CAAC;EACzC,IAAIC,YAAY,GAAGnH,OAAO,CAAC4D,gBAAgB,GAAGmD,uBAAuB,GAAGhJ,MAAM,CAACqE,cAAc,CAC3FrE,MAAM,CAAC6H,EAAE,CAACqB,SAAS,CAACG,IAAI,CAAC,CAAC,CAAC,EAAEzD,MAAM,CAAC,EACpC,MAAMsD,SAAS,CAACxC,OAAO,CAAC,CAAC,CAAC,CAC3B;EAED,MAAMX,aAAa,GAAIH,MAAiB,IACtC,IAAII,cAAc,CAChB,SAASC,aAAaA,CAAIC,CAAmF;IAC3G,OAAOlG,MAAM,CAACmG,QAAQ,CAAeC,MAAM,IAAI;MAC7CF,CAAC,CAACN,MAAM,EAAEQ,MAAM,CAAC;IACnB,CAAC,CAAC;EACJ,CAAC,EACDgD,YAAY,CACb;EACH,MAAME,UAAU,GAAGvD,aAAa,CAACH,MAAM,CAAC;EACxC,MAAM6C,QAAQ,GAAGS,SAAS,CAACK,UAAU,CAACvJ,MAAM,CAACoH,OAAO,CAACkC,UAAU,CAAC,CAAC;EAEjE,MAAMlB,MAAM,GAAmB;IAC7B,GAAGnG,OAAO;IACVY,IAAI,EAAE+C,MAAM,CAAC/C,IAAI;IACjBI,IAAI,EAAE2C,MAAM,CAAC3C,IAAI;IACjBH,QAAQ,EAAE8C,MAAM,CAAC9C,QAAQ;IACzBF,QAAQ,EAAEgD,MAAM,CAACjD,IAAI;IACrBI,QAAQ,EAAE,OAAO6C,MAAM,CAAC7C,QAAQ,KAAK,QAAQ,GAAGxC,QAAQ,CAACyB,IAAI,CAAC4D,MAAM,CAAC7C,QAAQ,CAAC,GAAGL,SAAS;IAC1FM,GAAG,EAAE4C,MAAM,CAAC5C;GACb;EAED,OAAO,OAAOwF,QAAQ,CAAC;IACrBC,QAAQ;IACRC,mBAAmB,EAAED,QAAQ;IAC7BN,cAAc,EAAEiB,YAAY;IAC5BhB,MAAM;IACNQ,cAAc,EAAE3G,OAAO,CAAC2G,cAAc;IACtCC,oBAAoB,EAAE5G,OAAO,CAAC4G,oBAAoB;IAClDC,mBAAmB,EAAE7G,OAAO,CAAC6G,mBAAmB;IAChDC,aAAa,EAAE9G,OAAO,CAAC8G;GACxB,CAAC;AACJ,CAAC,CAAC;AAEF;;;;AAIA,OAAO,MAAMP,QAAQ,gBAAGxI,MAAM,CAAC8F,UAAU,CAAC,WACxC7D,OAWC;EAED,MAAMuH,QAAQ,GAAGC,YAAY,CAC3BxH,OAAO,CAAC6G,mBAAmB,EAC3B7G,OAAO,CAAC8G,aAAa,CACtB;EACD,MAAMW,aAAa,GAAGzH,OAAO,CAAC4G,oBAAoB,GAChDpH,SAAS,CAACkI,iBAAiB,CACzB1H,OAAO,CAAC4G,oBAAoB,EAC5B5G,OAAO,CAAC8G,aAAa,CACtB,CAACa,KAAK,GACPlH,SAAS;EAEX,MAAM0F,MAAM,GAAGnG,OAAO,CAACmG,MAAM;EAE7B,OAAOyB,MAAM,CAACC,MAAM,CAClB,OAAOlJ,MAAM,CAACoB,IAAI,CAAC;IACjByG,QAAQ,EAAExG,OAAO,CAACwG,QAAQ;IAC1BC,mBAAmB,EAAEzG,OAAO,CAACyG,mBAAmB;IAChDc,QAAQ;IACRZ,cAAc,EAAE,CACd,IAAI3G,OAAO,CAAC2G,cAAc,GAAGiB,MAAM,CAACE,OAAO,CAAC9H,OAAO,CAAC2G,cAAc,CAAC,GAAG,EAAE,CAAC,EACzE,CAACoB,mBAAmB,EAAE,YAAY,CAAC,EACnC,CAACC,iBAAiB,EAAE7B,MAAM,CAACtF,QAAQ,IAAIsF,MAAM,CAACxF,QAAQ,IAAI,UAAU,CAAC,EACrE,CAACsH,mBAAmB,EAAE9B,MAAM,CAACvF,IAAI,IAAI,WAAW,CAAC,EACjD,CAACsH,gBAAgB,EAAE/B,MAAM,CAACnF,IAAI,IAAI,IAAI,CAAC,CACxC;IACDyG;GACD,CAAC,EACF;IACE,CAAC7H,MAAM,GAAGA,MAAgB;IAC1BuG,MAAM,EAAEnG,OAAO,CAACmG,MAAM;IACtBgC,IAAI,EAAGlC,CAAU,IAAKzG,SAAS,CAAC4I,QAAQ,CAAC,CAACC,MAAM,CAACpC,CAAC,CAAC,CAAC,CAAC;IACrDqC,MAAM,EAAGC,OAAe,IACtB9J,MAAM,CAACyF,QAAQ,CAAmBnG,MAAM,CAAC8F,UAAU,CAAC,WAAU2E,KAAK;MACjE,MAAM7E,MAAM,GAAG,OAAO3D,OAAO,CAACkG,cAAc;MAC5C,SAASuC,cAAcA,CAACC,GAAoB;QAC1C,IAAIA,GAAG,CAACH,OAAO,KAAKA,OAAO,IAAIG,GAAG,CAACC,OAAO,EAAE;UAC1CvK,KAAK,CAACwK,WAAW,CAACJ,KAAK,EAAEE,GAAG,CAACC,OAAO,CAAC;QACvC;MACF;MACA,OAAO5K,MAAM,CAAC8H,YAAY,CAAC,MACzB9H,MAAM,CAAC6E,OAAO,CAAC,MAAK;QAClBe,MAAM,CAACe,GAAG,CAAC,cAAc,EAAE+D,cAAc,CAAC;QAC1C,OAAO9E,MAAM,CAACpB,KAAK,CAAC,YAAY9C,EAAE,CAACoJ,gBAAgB,CAACN,OAAO,CAAC,EAAE,CAAC;MACjE,CAAC,CAAC,CACH;MACD,OAAOxK,MAAM,CAACsE,UAAU,CAAC;QACvBC,GAAG,EAAEA,CAAA,KAAMqB,MAAM,CAACpB,KAAK,CAAC,UAAU9C,EAAE,CAACoJ,gBAAgB,CAACN,OAAO,CAAC,EAAE,CAAC;QACjE/F,KAAK,EAAGC,KAAK,IAAK,IAAItD,QAAQ,CAAC;UAAEuD,MAAM,EAAEC,aAAa,CAACF,KAAK,EAAE,kBAAkB,EAAE,QAAQ;QAAC,CAAE;OAC9F,CAAC;MACFkB,MAAM,CAACzB,EAAE,CAAC,cAAc,EAAEuG,cAAc,CAAC;IAC3C,CAAC,CAAC,CAAC;IACLK,MAAM,EAAEA,CAACP,OAAe,EAAEI,OAAe,KACvC5K,MAAM,CAACgL,MAAM,CAAChL,MAAM,CAACiL,MAAM,CAACjL,MAAM,CAACkL,OAAO,CACxCjJ,OAAO,CAACwG,QAAQ,EACf0C,IAAI,IAAKA,IAAI,CAACC,UAAU,CAAC,0BAA0B,EAAE,CAACZ,OAAO,EAAEI,OAAO,CAAC,CAAC,CAC1E,CAAC;GACL,CACF;AACH,CAAC,CAAC;AAEF,MAAM5E,cAAc;EAClBqF,YACEpF,aAE+B,EAC/B8B,OAA4D;IAE5D,IAAI,CAAC9B,aAAa,GAAGA,aAAa;IAClC,IAAI,CAAC8B,OAAO,GAAGA,OAAO;EACxB;EAEiB9B,aAAa;EAGb8B,OAAO;EAEhBuD,GAAGA,CAAC9G,KAAa,EAAE+G,MAA8B;IACvD,OAAO,IAAI,CAACtF,aAAa,CAAqB,CAACL,MAAM,EAAEQ,MAAM,KAAI;MAC/DR,MAAM,CAACpB,KAAK,CAACA,KAAK,EAAE+G,MAAa,EAAE,CAAC3D,GAAG,EAAE4D,MAAM,KAAI;QACjD,IAAI5D,GAAG,EAAE;UACPxB,MAAM,CACJpG,MAAM,CAACsF,IAAI,CAAC,IAAIlE,QAAQ,CAAC;YAAEuD,MAAM,EAAEC,aAAa,CAACgD,GAAG,EAAE,6BAA6B,EAAE,SAAS;UAAC,CAAE,CAAC,CAAC,CACpG;QACH,CAAC,MAAM;UACL;UACAxB,MAAM,CAACpG,MAAM,CAACoH,OAAO,CACnBqE,KAAK,CAACC,OAAO,CAACF,MAAM,CAAC,GACjBA,MAAM,CAACxD,GAAG,CAAE2D,CAAC,IAAKA,CAAC,CAACC,IAAI,IAAI,EAAE,CAAC,GAC/BJ,MAAM,CAACI,IAAI,IAAI,EAAE,CACtB,CAAC;QACJ;MACF,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;EAEAC,OAAOA,CACLC,GAAW,EACXP,MAA8B,EAC9B7B,aAA0F;IAE1F,OAAOA,aAAa,GAChB1J,MAAM,CAACgI,GAAG,CAAC,IAAI,CAACsD,GAAG,CAACQ,GAAG,EAAEP,MAAM,CAAC,EAAE7B,aAAa,CAAC,GAChD,IAAI,CAAC4B,GAAG,CAACQ,GAAG,EAAEP,MAAM,CAAC;EAC3B;EACAH,UAAUA,CAACU,GAAW,EAAEP,MAA8B;IACpD,OAAO,IAAI,CAACtF,aAAa,CAAY,CAACL,MAAM,EAAEQ,MAAM,KAAI;MACtDR,MAAM,CAACpB,KAAK,CAACsH,GAAG,EAAEP,MAAa,EAAE,CAAC3D,GAAG,EAAE4D,MAAM,KAAI;QAC/C,IAAI5D,GAAG,EAAE;UACPxB,MAAM,CACJpG,MAAM,CAACsF,IAAI,CAAC,IAAIlE,QAAQ,CAAC;YAAEuD,MAAM,EAAEC,aAAa,CAACgD,GAAG,EAAE,6BAA6B,EAAE,SAAS;UAAC,CAAE,CAAC,CAAC,CACpG;QACH,CAAC,MAAM;UACLxB,MAAM,CAACpG,MAAM,CAACoH,OAAO,CAACoE,MAAM,CAAC,CAAC;QAChC;MACF,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;EACAO,uBAAuBA,CAACD,GAAW,EAAEP,MAA8B;IACjE,OAAO,IAAI,CAACD,GAAG,CAACQ,GAAG,EAAEP,MAAM,CAAC;EAC9B;EACAS,aAAaA,CAACF,GAAW,EAAEP,MAA8B;IACvD,OAAO,IAAI,CAACtF,aAAa,CAAqB,CAACL,MAAM,EAAEQ,MAAM,KAAI;MAC/DR,MAAM,CAACpB,KAAK,CACV;QACEyH,IAAI,EAAEH,GAAG;QACTI,OAAO,EAAE,OAAO;QAChBC,MAAM,EAAEZ;OACT,EACD,CAAC3D,GAAG,EAAE4D,MAAM,KAAI;QACd,IAAI5D,GAAG,EAAE;UACPxB,MAAM,CACJpG,MAAM,CAACsF,IAAI,CAAC,IAAIlE,QAAQ,CAAC;YAAEuD,MAAM,EAAEC,aAAa,CAACgD,GAAG,EAAE,6BAA6B,EAAE,SAAS;UAAC,CAAE,CAAC,CAAC,CACpG;QACH,CAAC,MAAM;UACLxB,MAAM,CAACpG,MAAM,CAACoH,OAAO,CAACoE,MAAM,CAACI,IAAI,CAAC,CAAC;QACrC;MACF,CAAC,CACF;IACH,CAAC,CAAC;EACJ;EACAQ,iBAAiBA,CACfN,GAAW,EACXP,MAA8B,EAC9B7B,aAA0F;IAE1F,OAAO,IAAI,CAACmC,OAAO,CAACC,GAAG,EAAEP,MAAM,EAAE7B,aAAa,CAAC;EACjD;EACA2C,aAAaA,CACXP,GAAW,EACXP,MAA8B,EAC9B7B,aAA0F;IAE1F;IACA,MAAM4C,IAAI,GAAG,IAAI;IACjB,OAAO5L,MAAM,CAAC6L,WAAW,CAAC3M,OAAO,CAAC4M,aAAa,CAACxM,MAAM,CAAC8F,UAAU,CAAC,WAAUoC,CAAC,EAAEV,KAAK;MAClF,MAAM5B,MAAM,GAAG,OAAOpF,KAAK,CAACiM,OAAO,CAACH,IAAI,CAACvE,OAAO,EAAEP,KAAK,CAAC;MACxD,OAAOhH,KAAK,CAACsH,YAAY,CAACN,KAAK,EAAExH,MAAM,CAAC6E,OAAO,CAAC,MAAM6H,MAAM,CAACC,KAAK,EAAE,CAAC,CAAC;MACtE,MAAMD,MAAM,GAAG9G,MAAM,CAACpB,KAAK,CAAC,IAAI5C,MAAM,CAACkK,GAAG,EAAEP,MAAa,CAAC,CAAC;MAC3D;MACA,OAAOvL,MAAM,CAACmG,QAAQ,CAAyDC,MAAM,IAAI;QACvFsG,MAAM,CAACE,IAAI,CAAC,GAAG,EAAE,CAAChF,GAAG,EAAEgE,IAAI,KAAI;UAC7B,IAAIhE,GAAG,EAAE;YACPxB,MAAM,CAACpG,MAAM,CAACsF,IAAI,CAAC,IAAIlE,QAAQ,CAAC;cAAEuD,MAAM,EAAEC,aAAa,CAACgD,GAAG,EAAE,6BAA6B,EAAE,QAAQ;YAAC,CAAE,CAAC,CAAC,CAAC;UAC5G,CAAC,MAAM,IAAIlI,GAAG,CAACmN,eAAe,CAACjB,IAAI,CAAC,EAAE;YACpCxF,MAAM,CAACpG,MAAM,CAACoH,OAAO,CAACsC,aAAa,GAAGA,aAAa,CAACkC,IAAI,CAAQ,GAAGA,IAAI,CAAC,CAAC;UAC3E,CAAC,MAAM;YACLxF,MAAM,CAACzG,KAAK,CAAC2G,IAAI,EAAE,CAAC;UACtB;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC,CAAC;EACN;;AAGF,MAAMwG,aAAa,gBAAG,IAAIC,OAAO,EAAkD;AACnF,MAAM1G,UAAU,GAAGA,CAAChE,IAAa,EAAEuD,MAAqB,KAAI;EAC1D,IAAIkH,aAAa,CAACE,GAAG,CAACpH,MAAM,CAAC,EAAE;IAC7B,OAAOkH,aAAa,CAACnE,GAAG,CAAC/C,MAAM,CAAE;EACnC;EACA,MAAMqH,SAAS,GAAIrH,MAAc,CAACsH,SAAS;EAC3C,MAAMnG,GAAG,GAAGkG,SAAS,KAAKvK;EACxB;EAAA,EACE1C,MAAM,CAACmG,QAAQ,CAAQC,MAAM,IAAI;IACjC,IAAI/D,IAAI,CAAC8K,MAAM,EAAE,OAAO/G,MAAM,CAACpG,MAAM,CAACiH,IAAI,CAAC;IAC3C5E,IAAI,CAACmC,KAAK,CAAC,4BAA4ByI,SAAS,GAAG,EAAE,MAAK;MACxD7G,MAAM,CAACpG,MAAM,CAACiH,IAAI,CAAC;IACrB,CAAC,CAAC;EACJ,CAAC,CAAC,CAAClC,IAAI,CACL/E,MAAM,CAACiF,aAAa,EACpBjF,MAAM,CAACgF,aAAa,CAAC,IAAI,CAAC,CAC3B,GACCtC,SAAS;EACboK,aAAa,CAACM,GAAG,CAACxH,MAAM,EAAEmB,GAAG,CAAC;EAC9B,OAAOA,GAAG;AACZ,CAAC;AAED;;;;AAIA,OAAO,MAAMsG,SAAS,GACpBlL,OAAsC,IAEtCjC,KAAK,CAACoN,aAAa,CACjBtN,MAAM,CAACgI,GAAG,CAAC7F,OAAO,EAAGyD,MAAM,IACzB9F,OAAO,CAACkC,IAAI,CAACF,QAAQ,EAAE8D,MAAM,CAAC,CAACb,IAAI,CACjCjF,OAAO,CAACyN,GAAG,CAAC3M,MAAM,CAAC4M,SAAS,EAAE5H,MAAM,CAAC,CACtC,CAAC,CACL,CAACb,IAAI,CAAC7E,KAAK,CAACuM,OAAO,CAAC9L,UAAU,CAAC8M,KAAK,CAAC,CAAQ;AAEhD;;;;AAIA,OAAO,MAAMC,WAAW,GAGtBtF,MAAiC,IAEjCiF,SAAS,CAACrN,MAAM,CAACkL,OAAO,CACtBrL,MAAM,CAAC8N,MAAM,CAACvF,MAAM,CAAC,EACrBpG,IAAI,CACL,CAAC;AAEJ;;;;AAIA,OAAO,MAAMyL,KAAK,GAChBrF,MAAoB,IACmCiF,SAAS,CAACrL,IAAI,CAACoG,MAAM,CAAC,CAAC;AAEhF;;;;AAIA,OAAO,MAAMqB,YAAY,GAAGA,CAC1BmE,SAAiC,EACjC7E,aAAa,GAAG,IAAI,KACE;EACtB,MAAM8E,cAAc,GAAG9E,aAAa,IAAI6E,SAAS,GAC7CnM,SAAS,CAACkI,iBAAiB,CAACiE,SAAS,CAAC,CAACnL,KAAK,GAC5CC,SAAS;EAEb,OAAOjB,SAAS,CAACgI,YAAY,CAAW;IACtCqE,OAAO,EAAE,IAAI;IACbC,WAAWA,CAAC7F,CAAC;MACX,OAAO,IAAIA,CAAC,EAAE;IAChB,CAAC;IACD8F,YAAY,EAAEJ,SAAS,GACrB,UAASnL,KAAK,EAAEwL,gBAAgB;MAC9B,OAAOA,gBAAgB,GAAGC,MAAM,CAACzL,KAAK,CAAC,GAAGyL,MAAM,CAACN,SAAS,CAACnL,KAAK,CAAC,CAAC;IACpE,CAAC,GACDyL,MAAM;IACRC,cAAcA,CAACC,YAAY,EAAEC,UAAU,EAAEC,YAAY,EAAEnC,MAAM,EAAEoC,SAAS;MACtE,OAAO,CACL,WAAWH,YAAY,QAAQC,UAAU,GAAGC,YAAY,GAAGC,SAAS,GAAG,cAAcA,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAC1GA,SAAS,GACPpC,MAAM,CAACqC,IAAI,EAAE,CAACC,MAAM,CAACF,SAAS,CAAC,CAAC,CAAC,CAAC,GAClCpC,MAAM,CAACqC,IAAI,EAAE,CAChB;IACH,CAAC;IACDE,QAAQA,CAACC,IAAI,EAAEZ,WAAW,EAAEE,gBAAgB;MAC1C,QAAQU,IAAI,CAACC,IAAI;QACf,KAAK,QAAQ;UAAE;YACb,OAAO,CACLb,WAAW,CAACrL,SAAS,CAAC,EACtB,CACEuL,gBAAgB,IAAIJ,cAAc,KAAKnL,SAAS,GAC5CiM,IAAI,CAACE,MAAM,GACXhB,cAAc,CAACc,IAAI,CAACE,MAAM,CAAC,CAChC,CACF;UACH;MACF;IACF;GACD,CAAC;AACJ,CAAC;AAED,MAAMX,MAAM,gBAAGzM,SAAS,CAACqN,aAAa,CAAC,IAAI,CAAC;AAa5C;;;;AAIA,MAAMxE,MAAM,gBAAG7I,SAAS,CAACsN,MAAM,CAAS,QAAQ,CAAC;AAEjD,MAAM/E,mBAAmB,GAAG,gBAAgB;AAC5C,MAAMC,iBAAiB,GAAG,cAAc;AACxC,MAAMC,mBAAmB,GAAG,gBAAgB;AAC5C,MAAMC,gBAAgB,GAAG,aAAa;AAEtC,MAAM6E,eAAe,GAAItK,KAAc,IAAwB;EAC7D,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,IAAI,EAAE,MAAM,IAAIA,KAAK,CAAC,EAAE;IACrE,OAAOhC,SAAS;EAClB;EACA,MAAMuM,IAAI,GAAGvK,KAAK,CAACuK,IAAI;EACvB,OAAO,OAAOA,IAAI,KAAK,QAAQ,GAAGA,IAAI,GAAGvM,SAAS;AACpD,CAAC;AAED,MAAMwM,qBAAqB,GAAIxK,KAAc,IAAY;EACvD,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,IAAI,EAAE,YAAY,IAAIA,KAAK,CAAC,EAAE;IAC3E,OAAO,SAAS;EAClB;EACA,MAAMyK,UAAU,GAAGzK,KAAK,CAACyK,UAAU;EACnC,IAAI,OAAOA,UAAU,KAAK,QAAQ,EAAE;IAClC,OAAO,SAAS;EAClB;EACA,MAAMC,UAAU,GAAGD,UAAU,CAACE,IAAI,EAAE;EACpC,OAAOD,UAAU,CAACE,MAAM,KAAK,CAAC,GAAG,SAAS,GAAGF,UAAU;AACzD,CAAC;AAED,MAAMxK,aAAa,GAAGA,CACpBF,KAAc,EACdc,OAAe,EACfC,SAAiB,KACf;EACF,MAAM8J,KAAK,GAAG;IAAE7K,KAAK;IAAEc,OAAO;IAAEC;EAAS,CAAE;EAC3C,MAAMwJ,IAAI,GAAGD,eAAe,CAACtK,KAAK,CAAC;EACnC,IAAIuK,IAAI,KAAKvM,SAAS,EAAE;IACtB,IAAIuM,IAAI,CAACO,UAAU,CAAC,IAAI,CAAC,EAAE;MACzB,OAAO,IAAIzO,eAAe,CAACwO,KAAK,CAAC;IACnC;IACA,IAAIN,IAAI,CAACO,UAAU,CAAC,IAAI,CAAC,EAAE;MACzB,OAAO,IAAI3O,mBAAmB,CAAC0O,KAAK,CAAC;IACvC;IACA,IAAIN,IAAI,KAAK,OAAO,EAAE;MACpB,OAAO,IAAInO,kBAAkB,CAACyO,KAAK,CAAC;IACtC;IACA,IAAIN,IAAI,CAACO,UAAU,CAAC,IAAI,CAAC,EAAE;MACzB,OAAO,IAAInO,cAAc,CAACkO,KAAK,CAAC;IAClC;IACA,IAAIN,IAAI,KAAK,OAAO,EAAE;MACpB,OAAO,IAAI1N,eAAe,CAAC;QAAE,GAAGgO,KAAK;QAAEJ,UAAU,EAAED,qBAAqB,CAACxK,KAAK;MAAC,CAAE,CAAC;IACpF;IACA,IAAIuK,IAAI,CAACO,UAAU,CAAC,IAAI,CAAC,EAAE;MACzB,OAAO,IAAIxO,eAAe,CAACuO,KAAK,CAAC;IACnC;IACA,IAAIN,IAAI,KAAK,OAAO,EAAE;MACpB,OAAO,IAAIhO,aAAa,CAACsO,KAAK,CAAC;IACjC;IACA,IAAIN,IAAI,KAAK,OAAO,EAAE;MACpB,OAAO,IAAI9N,kBAAkB,CAACoO,KAAK,CAAC;IACtC;IACA,IAAIN,IAAI,KAAK,OAAO,EAAE;MACpB,OAAO,IAAI/N,gBAAgB,CAACqO,KAAK,CAAC;IACpC;IACA,IAAIN,IAAI,KAAK,OAAO,EAAE;MACpB,OAAO,IAAI3N,qBAAqB,CAACiO,KAAK,CAAC;IACzC;EACF;EACA,OAAO,IAAI/N,YAAY,CAAC+N,KAAK,CAAC;AAChC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"PgClient.js","names":["Arr","Cause","Channel","Config","Context","Duration","Effect","Fiber","Layer","Number","Option","Queue","RcRef","Redacted","Scope","Semaphore","Stream","Reactivity","Client","AuthenticationError","AuthorizationError","ConnectionError","ConstraintError","DeadlockError","LockTimeoutError","SerializationError","SqlError","SqlSyntaxError","StatementTimeoutError","UniqueViolation","UnknownError","Statement","Pg","PgConnString","Cursor","TypeId","PgClient","Service","make","options","fromPool","acquire","gen","pool","Pool","connectionString","url","value","undefined","user","username","host","database","password","ssl","port","stream","connectionTimeoutMillis","connectTimeout","toMillis","fromInputUnsafe","idleTimeoutMillis","idleTimeout","max","maxConnections","min","minConnections","maxLifetimeSeconds","connectionTTL","toSeconds","application_name","applicationName","types","on","_err","acquireRelease","tryPromise","try","query","catch","cause","reason","classifyError","promise","end","pipe","timeoutOption","interruptible","timeoutOrElse","duration","seconds","orElse","fail","Error","message","operation","makeClient","fromClient","client","acquireForStream","fnUntraced","makeConection","ConnectionImpl","runWithClient","f","callback","resume","makeCancel","done","cancel","onError","cleanup","release","off","connect","client_","once","eff","suspend","void","ensuring","sync","succeed","reserveRaw","fiber","getCurrent","scope","getUnsafe","context","cause_","err","as","addFinalizer","reserve","map","onListenClientError","_","listenAcquirer","config","parsed","parse","getOrUndefined","makeWith","acquirer","transactionAcquirer","get","spanAttributes","transformResultNames","transformQueryNames","transformJson","acquireWithErrorHandler","tap","semaphore","makeUnsafe","streamClient","take","connection","withPermit","compiler","makeCompiler","transformRows","defaultTransforms","array","Object","assign","entries","ATTR_DB_SYSTEM_NAME","ATTR_DB_NAMESPACE","ATTR_SERVER_ADDRESS","ATTR_SERVER_PORT","json","fragment","PgJson","listen","channel","queue","onNotification","msg","payload","offerUnsafe","escapeIdentifier","notify","asVoid","scoped","flatMap","conn","executeRaw","constructor","run","params","result","Array","isArray","r","rows","execute","sql","executeWithoutTransform","executeValues","text","rowMode","values","executeUnprepared","executeStream","self","fromChannel","fromTransform","provide","cursor","close","read","isArrayNonEmpty","cancelEffects","WeakMap","has","processId","processID","ending","set","layerFrom","effectContext","add","SqlClient","layer","layerConfig","unwrap","transform","transformValue","dialect","placeholder","onIdentifier","withoutTransform","escape","onRecordUpdate","placeholders","valueAlias","valueColumns","returning","flat","concat","onCustom","type","kind","paramA","defaultEscape","custom","pgCodeFromCause","code","pgConstraintFromCause","constraint","normalized","trim","length","props","startsWith"],"sources":["../src/PgClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,25 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Utilities for applying Effect SQL migrations to PostgreSQL databases.
3
+ *
4
+ * This module re-exports the shared `Migrator` loaders and error types, then
5
+ * provides `run` and `layer` helpers for applying ordered migrations through
6
+ * the current PostgreSQL `SqlClient` and `PgClient`. It is typically used at
7
+ * application startup, during deployment, in integration tests that provision a
8
+ * temporary PostgreSQL database, or in layer graphs that must prepare the
9
+ * schema before dependent services are acquired.
10
+ *
11
+ * Migrations are recorded in `effect_sql_migrations` by default and are loaded
12
+ * using the shared `<id>_<name>` file or record-key convention. Only migrations
13
+ * with an id greater than the latest recorded id are applied, so concurrent
14
+ * application instances should coordinate startup against the same database and
15
+ * avoid racing to install the same changes. When `schemaDirectory` is enabled,
16
+ * this adapter shells out to `pg_dump` using the active `PgClient`
17
+ * configuration, so `pg_dump` must be available on `PATH` and the layer must
18
+ * provide child process, filesystem, and path services. The generated dumps
19
+ * intentionally strip comments, session settings, ownership, and privilege
20
+ * statements to keep schema snapshots portable across PostgreSQL environments.
21
+ *
22
+ * @since 4.0.0
3
23
  */
4
24
  import * as Effect from "effect/Effect";
5
25
  import * as FileSystem from "effect/FileSystem";
@@ -11,17 +31,21 @@ import type { SqlClient } from "effect/unstable/sql/SqlClient";
11
31
  import type { SqlError } from "effect/unstable/sql/SqlError";
12
32
  import { PgClient } from "./PgClient.ts";
13
33
  /**
14
- * @since 1.0.0
34
+ * @since 4.0.0
15
35
  */
16
36
  export * from "effect/unstable/sql/Migrator";
17
37
  /**
18
- * @category constructor
19
- * @since 1.0.0
38
+ * Runs PostgreSQL SQL migrations using the configured clients. Schema dumps use `pg_dump` and require child process, filesystem, and path services.
39
+ *
40
+ * @category constructors
41
+ * @since 4.0.0
20
42
  */
21
43
  export declare const run: <R2 = never>(options: Migrator.MigratorOptions<R2>) => Effect.Effect<ReadonlyArray<readonly [id: number, name: string]>, Migrator.MigrationError | SqlError, SqlClient | PgClient | ChildProcessSpawner.ChildProcessSpawner | FileSystem.FileSystem | Path.Path | R2>;
22
44
  /**
45
+ * Creates a layer that runs PostgreSQL migrations during layer construction, including `pg_dump`-based schema dump support when requested.
46
+ *
23
47
  * @category layers
24
- * @since 1.0.0
48
+ * @since 4.0.0
25
49
  */
26
50
  export declare const layer: <R>(options: Migrator.MigratorOptions<R>) => Layer.Layer<never, Migrator.MigrationError | SqlError, SqlClient | PgClient | ChildProcessSpawner.ChildProcessSpawner | FileSystem.FileSystem | Path.Path | R>;
27
51
  //# sourceMappingURL=PgMigrator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PgMigrator.d.ts","sourceRoot":"","sources":["../src/PgMigrator.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAA;AAGnC,OAAO,KAAK,mBAAmB,MAAM,6CAA6C,CAAA;AAClF,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAA;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC;;GAEG;AACH,cAAc,8BAA8B,CAAA;AAE5C;;;GAGG;AACH,eAAO,MAAM,GAAG,EAAE,CAAC,EAAE,GAAG,KAAK,EAC3B,OAAO,EAAE,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,KAClC,MAAM,CAAC,MAAM,CAChB,aAAa,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAClD,QAAQ,CAAC,cAAc,GAAG,QAAQ,EAChC,SAAS,GACT,QAAQ,GACR,mBAAmB,CAAC,mBAAmB,GACvC,UAAU,CAAC,UAAU,GACrB,IAAI,CAAC,IAAI,GACT,EAAE,CAwDJ,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,EACrB,SAAS,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,KACnC,KAAK,CAAC,KAAK,CACZ,KAAK,EACL,QAAQ,CAAC,cAAc,GAAG,QAAQ,EAChC,SAAS,GACT,QAAQ,GACR,mBAAmB,CAAC,mBAAmB,GACvC,UAAU,CAAC,UAAU,GACrB,IAAI,CAAC,IAAI,GACT,CAAC,CACiC,CAAA"}
1
+ {"version":3,"file":"PgMigrator.d.ts","sourceRoot":"","sources":["../src/PgMigrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAA;AAGnC,OAAO,KAAK,mBAAmB,MAAM,6CAA6C,CAAA;AAClF,OAAO,KAAK,QAAQ,MAAM,8BAA8B,CAAA;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC;;GAEG;AACH,cAAc,8BAA8B,CAAA;AAE5C;;;;;GAKG;AACH,eAAO,MAAM,GAAG,EAAE,CAAC,EAAE,GAAG,KAAK,EAC3B,OAAO,EAAE,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,KAClC,MAAM,CAAC,MAAM,CAChB,aAAa,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAClD,QAAQ,CAAC,cAAc,GAAG,QAAQ,EAChC,SAAS,GACT,QAAQ,GACR,mBAAmB,CAAC,mBAAmB,GACvC,UAAU,CAAC,UAAU,GACrB,IAAI,CAAC,IAAI,GACT,EAAE,CAwDJ,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,EACrB,SAAS,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,KACnC,KAAK,CAAC,KAAK,CACZ,KAAK,EACL,QAAQ,CAAC,cAAc,GAAG,QAAQ,EAChC,SAAS,GACT,QAAQ,GACR,mBAAmB,CAAC,mBAAmB,GACvC,UAAU,CAAC,UAAU,GACrB,IAAI,CAAC,IAAI,GACT,CAAC,CACiC,CAAA"}
@@ -1,5 +1,25 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Utilities for applying Effect SQL migrations to PostgreSQL databases.
3
+ *
4
+ * This module re-exports the shared `Migrator` loaders and error types, then
5
+ * provides `run` and `layer` helpers for applying ordered migrations through
6
+ * the current PostgreSQL `SqlClient` and `PgClient`. It is typically used at
7
+ * application startup, during deployment, in integration tests that provision a
8
+ * temporary PostgreSQL database, or in layer graphs that must prepare the
9
+ * schema before dependent services are acquired.
10
+ *
11
+ * Migrations are recorded in `effect_sql_migrations` by default and are loaded
12
+ * using the shared `<id>_<name>` file or record-key convention. Only migrations
13
+ * with an id greater than the latest recorded id are applied, so concurrent
14
+ * application instances should coordinate startup against the same database and
15
+ * avoid racing to install the same changes. When `schemaDirectory` is enabled,
16
+ * this adapter shells out to `pg_dump` using the active `PgClient`
17
+ * configuration, so `pg_dump` must be available on `PATH` and the layer must
18
+ * provide child process, filesystem, and path services. The generated dumps
19
+ * intentionally strip comments, session settings, ownership, and privilege
20
+ * statements to keep schema snapshots portable across PostgreSQL environments.
21
+ *
22
+ * @since 4.0.0
3
23
  */
4
24
  import * as Effect from "effect/Effect";
5
25
  import * as FileSystem from "effect/FileSystem";
@@ -11,12 +31,14 @@ import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawne
11
31
  import * as Migrator from "effect/unstable/sql/Migrator";
12
32
  import { PgClient } from "./PgClient.js";
13
33
  /**
14
- * @since 1.0.0
34
+ * @since 4.0.0
15
35
  */
16
36
  export * from "effect/unstable/sql/Migrator";
17
37
  /**
18
- * @category constructor
19
- * @since 1.0.0
38
+ * Runs PostgreSQL SQL migrations using the configured clients. Schema dumps use `pg_dump` and require child process, filesystem, and path services.
39
+ *
40
+ * @category constructors
41
+ * @since 4.0.0
20
42
  */
21
43
  export const run = /*#__PURE__*/Migrator.make({
22
44
  dumpSchema(path, table) {
@@ -60,8 +82,10 @@ export const run = /*#__PURE__*/Migrator.make({
60
82
  }
61
83
  });
62
84
  /**
85
+ * Creates a layer that runs PostgreSQL migrations during layer construction, including `pg_dump`-based schema dump support when requested.
86
+ *
63
87
  * @category layers
64
- * @since 1.0.0
88
+ * @since 4.0.0
65
89
  */
66
90
  export const layer = options => Layer.effectDiscard(run(options));
67
91
  //# sourceMappingURL=PgMigrator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PgMigrator.js","names":["Effect","FileSystem","Layer","Path","Redacted","ChildProcess","ChildProcessSpawner","Migrator","PgClient","run","make","dumpSchema","path","table","pgDump","args","gen","sql","spawner","dump","env","PATH","globalThis","process","PGHOST","config","host","PGPORT","port","toString","PGUSER","username","PGPASSWORD","password","value","undefined","PGDATABASE","database","PGSSLMODE","ssl","pipe","string","replace","trim","mapError","error","MigrationError","kind","message","pgDumpSchema","pgDumpMigrations","pgDumpAll","map","all","concurrency","schema","migrations","pgDumpFile","fs","path_","makeDirectory","dirname","recursive","writeFileString","layer","options","effectDiscard"],"sources":["../src/PgMigrator.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"PgMigrator.js","names":["Effect","FileSystem","Layer","Path","Redacted","ChildProcess","ChildProcessSpawner","Migrator","PgClient","run","make","dumpSchema","path","table","pgDump","args","gen","sql","spawner","dump","env","PATH","globalThis","process","PGHOST","config","host","PGPORT","port","toString","PGUSER","username","PGPASSWORD","password","value","undefined","PGDATABASE","database","PGSSLMODE","ssl","pipe","string","replace","trim","mapError","error","MigrationError","kind","message","pgDumpSchema","pgDumpMigrations","pgDumpAll","map","all","concurrency","schema","migrations","pgDumpFile","fs","path_","makeDirectory","dirname","recursive","writeFileString","layer","options","effectDiscard"],"sources":["../src/PgMigrator.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/dist/index.d.ts CHANGED
@@ -1,12 +1,49 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * @since 4.0.0
3
3
  */
4
4
  /**
5
- * @since 1.0.0
5
+ * PostgreSQL client implementation for Effect SQL, backed by `pg`.
6
+ *
7
+ * This module exposes constructors for creating a scoped `PgClient` from a
8
+ * managed `pg` pool, a single managed `pg` client, or lower-level connection
9
+ * acquirers. The resulting service can be provided as both `PgClient` and the
10
+ * generic `SqlClient`, and is intended for application database access,
11
+ * migrations, transactional workflows, row streaming, JSON parameters, and
12
+ * PostgreSQL LISTEN/NOTIFY integration.
13
+ *
14
+ * Pool-backed clients acquire connections per operation and reserve dedicated
15
+ * connections for transactions and cursor streams. Clients built from one
16
+ * `pg.Client` serialize shared access; enable `acquireForStream` when streams
17
+ * or listeners need their own client instead of sharing the query connection.
18
+ * LISTEN uses a scoped long-lived client and automatically issues `UNLISTEN`
19
+ * when the stream scope closes, so listeners should be scoped for as long as
20
+ * notifications are needed.
21
+ *
22
+ * @since 4.0.0
6
23
  */
7
24
  export * as PgClient from "./PgClient.ts";
8
25
  /**
9
- * @since 1.0.0
26
+ * Utilities for applying Effect SQL migrations to PostgreSQL databases.
27
+ *
28
+ * This module re-exports the shared `Migrator` loaders and error types, then
29
+ * provides `run` and `layer` helpers for applying ordered migrations through
30
+ * the current PostgreSQL `SqlClient` and `PgClient`. It is typically used at
31
+ * application startup, during deployment, in integration tests that provision a
32
+ * temporary PostgreSQL database, or in layer graphs that must prepare the
33
+ * schema before dependent services are acquired.
34
+ *
35
+ * Migrations are recorded in `effect_sql_migrations` by default and are loaded
36
+ * using the shared `<id>_<name>` file or record-key convention. Only migrations
37
+ * with an id greater than the latest recorded id are applied, so concurrent
38
+ * application instances should coordinate startup against the same database and
39
+ * avoid racing to install the same changes. When `schemaDirectory` is enabled,
40
+ * this adapter shells out to `pg_dump` using the active `PgClient`
41
+ * configuration, so `pg_dump` must be available on `PATH` and the layer must
42
+ * provide child process, filesystem, and path services. The generated dumps
43
+ * intentionally strip comments, session settings, ownership, and privilege
44
+ * statements to keep schema snapshots portable across PostgreSQL environments.
45
+ *
46
+ * @since 4.0.0
10
47
  */
11
48
  export * as PgMigrator from "./PgMigrator.ts";
12
49
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA"}
package/dist/index.js CHANGED
@@ -1,13 +1,50 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * @since 4.0.0
3
3
  */
4
4
  // @barrel: Auto-generated exports. Do not edit manually.
5
5
  /**
6
- * @since 1.0.0
6
+ * PostgreSQL client implementation for Effect SQL, backed by `pg`.
7
+ *
8
+ * This module exposes constructors for creating a scoped `PgClient` from a
9
+ * managed `pg` pool, a single managed `pg` client, or lower-level connection
10
+ * acquirers. The resulting service can be provided as both `PgClient` and the
11
+ * generic `SqlClient`, and is intended for application database access,
12
+ * migrations, transactional workflows, row streaming, JSON parameters, and
13
+ * PostgreSQL LISTEN/NOTIFY integration.
14
+ *
15
+ * Pool-backed clients acquire connections per operation and reserve dedicated
16
+ * connections for transactions and cursor streams. Clients built from one
17
+ * `pg.Client` serialize shared access; enable `acquireForStream` when streams
18
+ * or listeners need their own client instead of sharing the query connection.
19
+ * LISTEN uses a scoped long-lived client and automatically issues `UNLISTEN`
20
+ * when the stream scope closes, so listeners should be scoped for as long as
21
+ * notifications are needed.
22
+ *
23
+ * @since 4.0.0
7
24
  */
8
25
  export * as PgClient from "./PgClient.js";
9
26
  /**
10
- * @since 1.0.0
27
+ * Utilities for applying Effect SQL migrations to PostgreSQL databases.
28
+ *
29
+ * This module re-exports the shared `Migrator` loaders and error types, then
30
+ * provides `run` and `layer` helpers for applying ordered migrations through
31
+ * the current PostgreSQL `SqlClient` and `PgClient`. It is typically used at
32
+ * application startup, during deployment, in integration tests that provision a
33
+ * temporary PostgreSQL database, or in layer graphs that must prepare the
34
+ * schema before dependent services are acquired.
35
+ *
36
+ * Migrations are recorded in `effect_sql_migrations` by default and are loaded
37
+ * using the shared `<id>_<name>` file or record-key convention. Only migrations
38
+ * with an id greater than the latest recorded id are applied, so concurrent
39
+ * application instances should coordinate startup against the same database and
40
+ * avoid racing to install the same changes. When `schemaDirectory` is enabled,
41
+ * this adapter shells out to `pg_dump` using the active `PgClient`
42
+ * configuration, so `pg_dump` must be available on `PATH` and the layer must
43
+ * provide child process, filesystem, and path services. The generated dumps
44
+ * intentionally strip comments, session settings, ownership, and privilege
45
+ * statements to keep schema snapshots portable across PostgreSQL environments.
46
+ *
47
+ * @since 4.0.0
11
48
  */
12
49
  export * as PgMigrator from "./PgMigrator.js";
13
50
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["PgClient","PgMigrator"],"sources":["../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAIA;AAEA;;;AAGA,OAAO,KAAKA,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAKC,UAAU,MAAM,iBAAiB","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["PgClient","PgMigrator"],"sources":["../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAIA;AAEA;;;;;;;;;;;;;;;;;;;;AAoBA,OAAO,KAAKA,QAAQ,MAAM,eAAe;AAEzC;;;;;;;;;;;;;;;;;;;;;;;AAuBA,OAAO,KAAKC,UAAU,MAAM,iBAAiB","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/sql-pg",
3
- "version": "4.0.0-beta.66",
3
+ "version": "4.0.0-beta.68",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "description": "A PostgreSQL toolkit for Effect",
@@ -46,10 +46,10 @@
46
46
  "@testcontainers/postgresql": "^11.14.0",
47
47
  "@types/pg": "^8.20.0",
48
48
  "@types/pg-cursor": "^2.7.2",
49
- "effect": "^4.0.0-beta.66"
49
+ "effect": "^4.0.0-beta.68"
50
50
  },
51
51
  "peerDependencies": {
52
- "effect": "^4.0.0-beta.66"
52
+ "effect": "^4.0.0-beta.68"
53
53
  },
54
54
  "dependencies": {
55
55
  "pg": "^8.20.0",
package/src/PgClient.ts CHANGED
@@ -1,5 +1,22 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * PostgreSQL client implementation for Effect SQL, backed by `pg`.
3
+ *
4
+ * This module exposes constructors for creating a scoped `PgClient` from a
5
+ * managed `pg` pool, a single managed `pg` client, or lower-level connection
6
+ * acquirers. The resulting service can be provided as both `PgClient` and the
7
+ * generic `SqlClient`, and is intended for application database access,
8
+ * migrations, transactional workflows, row streaming, JSON parameters, and
9
+ * PostgreSQL LISTEN/NOTIFY integration.
10
+ *
11
+ * Pool-backed clients acquire connections per operation and reserve dedicated
12
+ * connections for transactions and cursor streams. Clients built from one
13
+ * `pg.Client` serialize shared access; enable `acquireForStream` when streams
14
+ * or listeners need their own client instead of sharing the query connection.
15
+ * LISTEN uses a scoped long-lived client and automatically issues `UNLISTEN`
16
+ * when the stream scope closes, so listeners should be scoped for as long as
17
+ * notifications are needed.
18
+ *
19
+ * @since 4.0.0
3
20
  */
4
21
  import * as Arr from "effect/Array"
5
22
  import * as Cause from "effect/Cause"
@@ -45,20 +62,26 @@ import * as PgConnString from "pg-connection-string"
45
62
  import Cursor from "pg-cursor"
46
63
 
47
64
  /**
48
- * @category type ids
49
- * @since 1.0.0
65
+ * Runtime type identifier used to mark `PgClient` values.
66
+ *
67
+ * @category type IDs
68
+ * @since 4.0.0
50
69
  */
51
70
  export const TypeId: TypeId = "~@effect/sql-pg/PgClient"
52
71
 
53
72
  /**
54
- * @category type ids
55
- * @since 1.0.0
73
+ * Type-level identifier used to mark `PgClient` values.
74
+ *
75
+ * @category type IDs
76
+ * @since 4.0.0
56
77
  */
57
78
  export type TypeId = "~@effect/sql-pg/PgClient"
58
79
 
59
80
  /**
81
+ * PostgreSQL client service, extending `SqlClient` with JSON parameter fragments and LISTEN/NOTIFY helpers.
82
+ *
60
83
  * @category models
61
- * @since 1.0.0
84
+ * @since 4.0.0
62
85
  */
63
86
  export interface PgClient extends Client.SqlClient {
64
87
  readonly [TypeId]: TypeId
@@ -69,14 +92,18 @@ export interface PgClient extends Client.SqlClient {
69
92
  }
70
93
 
71
94
  /**
95
+ * Context tag used to access the `PgClient` service.
96
+ *
72
97
  * @category tags
73
- * @since 1.0.0
98
+ * @since 4.0.0
74
99
  */
75
100
  export const PgClient = Context.Service<PgClient>("@effect/sql-pg/PgClient")
76
101
 
77
102
  /**
103
+ * Configuration for a PostgreSQL client, including connection, TLS, custom stream, application name, type parser, JSON transform, and query/result name transform options.
104
+ *
78
105
  * @category constructors
79
- * @since 1.0.0
106
+ * @since 4.0.0
80
107
  */
81
108
  export interface PgClientConfig {
82
109
  readonly url?: Redacted.Redacted | undefined
@@ -103,8 +130,10 @@ export interface PgClientConfig {
103
130
  }
104
131
 
105
132
  /**
133
+ * PostgreSQL pool configuration, extending `PgClientConfig` with idle timeout, pool size, and connection lifetime settings.
134
+ *
106
135
  * @category constructors
107
- * @since 1.0.0
136
+ * @since 4.0.0
108
137
  */
109
138
  export interface PgPoolConfig extends PgClientConfig {
110
139
  readonly idleTimeout?: Duration.Input | undefined
@@ -115,8 +144,10 @@ export interface PgPoolConfig extends PgClientConfig {
115
144
  }
116
145
 
117
146
  /**
147
+ * Creates a scoped PostgreSQL client backed by a managed `pg` connection pool.
148
+ *
118
149
  * @category constructors
119
- * @since 1.0.0
150
+ * @since 4.0.0
120
151
  */
121
152
  export const make = (options: PgPoolConfig): Effect.Effect<PgClient, SqlError, Scope.Scope | Reactivity.Reactivity> =>
122
153
  fromPool({
@@ -179,8 +210,10 @@ export const make = (options: PgPoolConfig): Effect.Effect<PgClient, SqlError, S
179
210
  })
180
211
 
181
212
  /**
213
+ * Creates a scoped PostgreSQL client backed by a managed single `pg` client, optionally acquiring a separate client for streaming and LISTEN operations.
214
+ *
182
215
  * @category constructors
183
- * @since 1.0.0
216
+ * @since 4.0.0
184
217
  */
185
218
  export const makeClient = (
186
219
  options: PgClientConfig & {
@@ -237,8 +270,10 @@ export const makeClient = (
237
270
  })
238
271
 
239
272
  /**
273
+ * Builds a PostgreSQL client from a scoped `pg` pool acquisition effect, deriving transaction, streaming, and LISTEN/NOTIFY support from that pool.
274
+ *
240
275
  * @category constructors
241
- * @since 1.0.0
276
+ * @since 4.0.0
242
277
  */
243
278
  export const fromPool = Effect.fnUntraced(function*(
244
279
  options: {
@@ -439,8 +474,10 @@ export const fromPool = Effect.fnUntraced(function*(
439
474
  })
440
475
 
441
476
  /**
477
+ * Builds a PostgreSQL client from a scoped `pg` client acquisition effect, serializing access when sharing the client and optionally using separate clients for streams and LISTEN.
478
+ *
442
479
  * @category constructors
443
- * @since 1.0.0
480
+ * @since 4.0.0
444
481
  */
445
482
  export const fromClient = Effect.fnUntraced(function*(
446
483
  options: {
@@ -513,8 +550,10 @@ export const fromClient = Effect.fnUntraced(function*(
513
550
  })
514
551
 
515
552
  /**
553
+ * Low-level constructor for a `PgClient` from SQL connection acquirers, a LISTEN acquirer, client configuration, and transformation options.
554
+ *
516
555
  * @category constructors
517
- * @since 1.0.0
556
+ * @since 4.0.0
518
557
  */
519
558
  export const makeWith = Effect.fnUntraced(function*(
520
559
  options: {
@@ -727,8 +766,10 @@ const makeCancel = (pool: Pg.Pool, client: Pg.PoolClient) => {
727
766
  }
728
767
 
729
768
  /**
769
+ * Creates a layer from an effect that acquires a `PgClient`, providing both `PgClient` and `SqlClient`.
770
+ *
730
771
  * @category layers
731
- * @since 1.0.0
772
+ * @since 4.0.0
732
773
  */
733
774
  export const layerFrom = <E, R>(
734
775
  acquire: Effect.Effect<PgClient, E, R>
@@ -741,8 +782,10 @@ export const layerFrom = <E, R>(
741
782
  ).pipe(Layer.provide(Reactivity.layer)) as any
742
783
 
743
784
  /**
785
+ * Creates a layer from a `Config`-wrapped PostgreSQL pool configuration, providing both `PgClient` and `SqlClient`.
786
+ *
744
787
  * @category layers
745
- * @since 1.0.0
788
+ * @since 4.0.0
746
789
  */
747
790
  export const layerConfig: (
748
791
  config: Config.Wrap<PgPoolConfig>
@@ -755,16 +798,20 @@ export const layerConfig: (
755
798
  ))
756
799
 
757
800
  /**
801
+ * Creates a layer from a concrete PostgreSQL pool configuration, providing both `PgClient` and `SqlClient`.
802
+ *
758
803
  * @category layers
759
- * @since 1.0.0
804
+ * @since 4.0.0
760
805
  */
761
806
  export const layer = (
762
807
  config: PgPoolConfig
763
808
  ): Layer.Layer<PgClient | Client.SqlClient, SqlError> => layerFrom(make(config))
764
809
 
765
810
  /**
766
- * @category constructor
767
- * @since 1.0.0
811
+ * Creates the PostgreSQL statement compiler, using `$1` placeholders, double-quoted identifiers, PostgreSQL returning clauses, and optional JSON value transformation.
812
+ *
813
+ * @category constructors
814
+ * @since 4.0.0
768
815
  */
769
816
  export const makeCompiler = (
770
817
  transform?: (_: string) => string,
@@ -812,19 +859,21 @@ export const makeCompiler = (
812
859
  const escape = Statement.defaultEscape("\"")
813
860
 
814
861
  /**
862
+ * PostgreSQL-specific custom statement fragments supported by the compiler, currently JSON parameter fragments.
863
+ *
815
864
  * @category custom types
816
- * @since 1.0.0
865
+ * @since 4.0.0
817
866
  */
818
867
  export type PgCustom = PgJson
819
868
 
820
869
  /**
821
870
  * @category custom types
822
- * @since 1.0.0
871
+ * @since 4.0.0
823
872
  */
824
873
  interface PgJson extends Custom<"PgJson", unknown> {}
825
874
  /**
826
875
  * @category custom types
827
- * @since 1.0.0
876
+ * @since 4.0.0
828
877
  */
829
878
  const PgJson = Statement.custom<PgJson>("PgJson")
830
879
 
package/src/PgMigrator.ts CHANGED
@@ -1,5 +1,25 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Utilities for applying Effect SQL migrations to PostgreSQL databases.
3
+ *
4
+ * This module re-exports the shared `Migrator` loaders and error types, then
5
+ * provides `run` and `layer` helpers for applying ordered migrations through
6
+ * the current PostgreSQL `SqlClient` and `PgClient`. It is typically used at
7
+ * application startup, during deployment, in integration tests that provision a
8
+ * temporary PostgreSQL database, or in layer graphs that must prepare the
9
+ * schema before dependent services are acquired.
10
+ *
11
+ * Migrations are recorded in `effect_sql_migrations` by default and are loaded
12
+ * using the shared `<id>_<name>` file or record-key convention. Only migrations
13
+ * with an id greater than the latest recorded id are applied, so concurrent
14
+ * application instances should coordinate startup against the same database and
15
+ * avoid racing to install the same changes. When `schemaDirectory` is enabled,
16
+ * this adapter shells out to `pg_dump` using the active `PgClient`
17
+ * configuration, so `pg_dump` must be available on `PATH` and the layer must
18
+ * provide child process, filesystem, and path services. The generated dumps
19
+ * intentionally strip comments, session settings, ownership, and privilege
20
+ * statements to keep schema snapshots portable across PostgreSQL environments.
21
+ *
22
+ * @since 4.0.0
3
23
  */
4
24
  import * as Effect from "effect/Effect"
5
25
  import * as FileSystem from "effect/FileSystem"
@@ -14,13 +34,15 @@ import type { SqlError } from "effect/unstable/sql/SqlError"
14
34
  import { PgClient } from "./PgClient.ts"
15
35
 
16
36
  /**
17
- * @since 1.0.0
37
+ * @since 4.0.0
18
38
  */
19
39
  export * from "effect/unstable/sql/Migrator"
20
40
 
21
41
  /**
22
- * @category constructor
23
- * @since 1.0.0
42
+ * Runs PostgreSQL SQL migrations using the configured clients. Schema dumps use `pg_dump` and require child process, filesystem, and path services.
43
+ *
44
+ * @category constructors
45
+ * @since 4.0.0
24
46
  */
25
47
  export const run: <R2 = never>(
26
48
  options: Migrator.MigratorOptions<R2>
@@ -91,8 +113,10 @@ export const run: <R2 = never>(
91
113
  })
92
114
 
93
115
  /**
116
+ * Creates a layer that runs PostgreSQL migrations during layer construction, including `pg_dump`-based schema dump support when requested.
117
+ *
94
118
  * @category layers
95
- * @since 1.0.0
119
+ * @since 4.0.0
96
120
  */
97
121
  export const layer = <R>(
98
122
  options: Migrator.MigratorOptions<R>
package/src/index.ts CHANGED
@@ -1,15 +1,52 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * @since 4.0.0
3
3
  */
4
4
 
5
5
  // @barrel: Auto-generated exports. Do not edit manually.
6
6
 
7
7
  /**
8
- * @since 1.0.0
8
+ * PostgreSQL client implementation for Effect SQL, backed by `pg`.
9
+ *
10
+ * This module exposes constructors for creating a scoped `PgClient` from a
11
+ * managed `pg` pool, a single managed `pg` client, or lower-level connection
12
+ * acquirers. The resulting service can be provided as both `PgClient` and the
13
+ * generic `SqlClient`, and is intended for application database access,
14
+ * migrations, transactional workflows, row streaming, JSON parameters, and
15
+ * PostgreSQL LISTEN/NOTIFY integration.
16
+ *
17
+ * Pool-backed clients acquire connections per operation and reserve dedicated
18
+ * connections for transactions and cursor streams. Clients built from one
19
+ * `pg.Client` serialize shared access; enable `acquireForStream` when streams
20
+ * or listeners need their own client instead of sharing the query connection.
21
+ * LISTEN uses a scoped long-lived client and automatically issues `UNLISTEN`
22
+ * when the stream scope closes, so listeners should be scoped for as long as
23
+ * notifications are needed.
24
+ *
25
+ * @since 4.0.0
9
26
  */
10
27
  export * as PgClient from "./PgClient.ts"
11
28
 
12
29
  /**
13
- * @since 1.0.0
30
+ * Utilities for applying Effect SQL migrations to PostgreSQL databases.
31
+ *
32
+ * This module re-exports the shared `Migrator` loaders and error types, then
33
+ * provides `run` and `layer` helpers for applying ordered migrations through
34
+ * the current PostgreSQL `SqlClient` and `PgClient`. It is typically used at
35
+ * application startup, during deployment, in integration tests that provision a
36
+ * temporary PostgreSQL database, or in layer graphs that must prepare the
37
+ * schema before dependent services are acquired.
38
+ *
39
+ * Migrations are recorded in `effect_sql_migrations` by default and are loaded
40
+ * using the shared `<id>_<name>` file or record-key convention. Only migrations
41
+ * with an id greater than the latest recorded id are applied, so concurrent
42
+ * application instances should coordinate startup against the same database and
43
+ * avoid racing to install the same changes. When `schemaDirectory` is enabled,
44
+ * this adapter shells out to `pg_dump` using the active `PgClient`
45
+ * configuration, so `pg_dump` must be available on `PATH` and the layer must
46
+ * provide child process, filesystem, and path services. The generated dumps
47
+ * intentionally strip comments, session settings, ownership, and privilege
48
+ * statements to keep schema snapshots portable across PostgreSQL environments.
49
+ *
50
+ * @since 4.0.0
14
51
  */
15
52
  export * as PgMigrator from "./PgMigrator.ts"