@effect/sql-pg 4.0.0-rc.112 → 4.0.0-rc.114
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +24 -9
- package/CLAUDE.md +24 -9
- package/ai-docs/package.json +2 -2
- package/ai-docs/src/01_effect/01_basics/02_effect-fn.ts +18 -5
- package/ai-docs/src/01_effect/01_basics/index.md +5 -3
- package/ai-docs/src/01_effect/03_services/20_layer-composition.ts +1 -1
- package/ai-docs/src/01_effect/03_services/20_layer-unwrap.ts +2 -2
- package/ai-docs/src/01_effect/05_resources/10_acquire-release.ts +2 -2
- package/ai-docs/src/03_stream/30_encoding.ts +5 -7
- package/ai-docs/src/08_observability/10_logging.ts +1 -1
- package/ai-docs/src/70_cli/10_basics.ts +7 -7
- package/ai-docs/src/71_ai/10_language-model.ts +2 -2
- package/ai-docs/src/71_ai/20_tools.ts +1 -1
- package/ai-docs/src/71_ai/30_chat.ts +1 -1
- package/dist/PgAuth.d.ts +24 -0
- package/dist/PgAuth.d.ts.map +1 -1
- package/dist/PgAuth.js +29 -2
- package/dist/PgAuth.js.map +1 -1
- package/dist/PgClient.d.ts +49 -82
- package/dist/PgClient.d.ts.map +1 -1
- package/dist/PgClient.js +58 -510
- package/dist/PgClient.js.map +1 -1
- package/dist/PgConnection.d.ts +177 -0
- package/dist/PgConnection.d.ts.map +1 -0
- package/dist/PgConnection.js +1788 -0
- package/dist/PgConnection.js.map +1 -0
- package/dist/PgPool.d.ts +107 -0
- package/dist/PgPool.d.ts.map +1 -0
- package/dist/PgPool.js +124 -0
- package/dist/PgPool.js.map +1 -0
- package/dist/PgProtocol.d.ts +63 -30
- package/dist/PgProtocol.d.ts.map +1 -1
- package/dist/PgProtocol.js +64 -22
- package/dist/PgProtocol.js.map +1 -1
- package/dist/PgTypes.d.ts +85 -17
- package/dist/PgTypes.d.ts.map +1 -1
- package/dist/PgTypes.js +166 -169
- package/dist/PgTypes.js.map +1 -1
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/internal/connection.d.ts +2 -0
- package/dist/internal/connection.d.ts.map +1 -0
- package/dist/internal/connection.js +5 -0
- package/dist/internal/connection.js.map +1 -0
- package/dist/internal/sqlError.d.ts +10 -0
- package/dist/internal/sqlError.d.ts.map +1 -0
- package/dist/internal/sqlError.js +57 -0
- package/dist/internal/sqlError.js.map +1 -0
- package/package.json +6 -14
- package/src/PgAuth.ts +33 -2
- package/src/PgClient.ts +138 -681
- package/src/PgConnection.ts +2296 -0
- package/src/PgPool.ts +231 -0
- package/src/PgProtocol.ts +93 -50
- package/src/PgTypes.ts +254 -186
- package/src/index.ts +10 -0
- package/src/internal/connection.ts +26 -0
- package/src/internal/sqlError.ts +75 -0
package/dist/PgClient.d.ts
CHANGED
|
@@ -1,36 +1,36 @@
|
|
|
1
1
|
import * as Config from "effect/Config";
|
|
2
2
|
import * as Context from "effect/Context";
|
|
3
|
-
import * as Duration from "effect/Duration";
|
|
3
|
+
import type * as Duration from "effect/Duration";
|
|
4
4
|
import * as Effect from "effect/Effect";
|
|
5
5
|
import * as Layer from "effect/Layer";
|
|
6
|
-
import * as
|
|
7
|
-
import * as
|
|
8
|
-
import * as
|
|
6
|
+
import type * as Queue from "effect/Queue";
|
|
7
|
+
import type * as Redacted from "effect/Redacted";
|
|
8
|
+
import type * as Scope from "effect/Scope";
|
|
9
9
|
import * as Reactivity from "effect/unstable/reactivity/Reactivity";
|
|
10
10
|
import * as Client from "effect/unstable/sql/SqlClient";
|
|
11
|
-
import type
|
|
12
|
-
import { SqlError } from "effect/unstable/sql/SqlError";
|
|
11
|
+
import type { SqlError } from "effect/unstable/sql/SqlError";
|
|
13
12
|
import type { Custom, Fragment } from "effect/unstable/sql/Statement";
|
|
14
13
|
import * as Statement from "effect/unstable/sql/Statement";
|
|
15
14
|
import type { Duplex } from "node:stream";
|
|
16
15
|
import type { ConnectionOptions } from "node:tls";
|
|
17
|
-
import * as
|
|
16
|
+
import * as PgConnection from "./PgConnection.ts";
|
|
17
|
+
import * as PgTypes from "./PgTypes.ts";
|
|
18
18
|
/**
|
|
19
|
-
*
|
|
19
|
+
* The runtime type identifier for `PgClient`.
|
|
20
20
|
*
|
|
21
21
|
* @category type IDs
|
|
22
22
|
* @since 4.0.0
|
|
23
23
|
*/
|
|
24
24
|
export declare const TypeId: TypeId;
|
|
25
25
|
/**
|
|
26
|
-
*
|
|
26
|
+
* The type-level identifier for `PgClient`.
|
|
27
27
|
*
|
|
28
28
|
* @category type IDs
|
|
29
29
|
* @since 4.0.0
|
|
30
30
|
*/
|
|
31
31
|
export type TypeId = "~@effect/sql-pg/PgClient";
|
|
32
32
|
/**
|
|
33
|
-
* PostgreSQL
|
|
33
|
+
* A PostgreSQL `SqlClient` with JSON and `LISTEN`/`NOTIFY` helpers.
|
|
34
34
|
*
|
|
35
35
|
* @category services
|
|
36
36
|
* @since 4.0.0
|
|
@@ -39,22 +39,23 @@ export interface PgClient extends Client.SqlClient {
|
|
|
39
39
|
readonly [TypeId]: TypeId;
|
|
40
40
|
readonly config: PgClientConfig;
|
|
41
41
|
readonly json: (_: unknown) => Fragment;
|
|
42
|
-
|
|
42
|
+
/**
|
|
43
|
+
* Registers a channel listener and returns its non-empty payload queue after
|
|
44
|
+
* PostgreSQL confirms `LISTEN`. The listener holds a connection until the
|
|
45
|
+
* scope closes.
|
|
46
|
+
*/
|
|
47
|
+
readonly listen: (channel: string) => Effect.Effect<Queue.Dequeue<PgConnection.Notification>, SqlError, Scope.Scope>;
|
|
43
48
|
readonly notify: (channel: string, payload: string) => Effect.Effect<void, SqlError>;
|
|
44
49
|
}
|
|
45
50
|
/**
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
* **When to use**
|
|
49
|
-
*
|
|
50
|
-
* Use to access or provide a PostgreSQL client through the Effect context.
|
|
51
|
+
* The service tag for `PgClient`.
|
|
51
52
|
*
|
|
52
53
|
* @category services
|
|
53
54
|
* @since 4.0.0
|
|
54
55
|
*/
|
|
55
56
|
export declare const PgClient: Context.Service<PgClient, PgClient>;
|
|
56
57
|
/**
|
|
57
|
-
*
|
|
58
|
+
* Connection and query settings for a PostgreSQL client.
|
|
58
59
|
*
|
|
59
60
|
* @category models
|
|
60
61
|
* @since 4.0.0
|
|
@@ -75,10 +76,31 @@ export interface PgClientConfig {
|
|
|
75
76
|
readonly transformResultNames?: ((str: string) => string) | undefined;
|
|
76
77
|
readonly transformQueryNames?: ((str: string) => string) | undefined;
|
|
77
78
|
readonly transformJson?: boolean | undefined;
|
|
78
|
-
readonly types?:
|
|
79
|
+
readonly types?: PgTypes.Registry | undefined;
|
|
80
|
+
/**
|
|
81
|
+
* Pipelines queries from multiple fibers on each pooled connection.
|
|
82
|
+
* Transactions, streams, and listeners still reserve a connection.
|
|
83
|
+
*/
|
|
84
|
+
readonly multiplex?: boolean | undefined;
|
|
85
|
+
/**
|
|
86
|
+
* How many statements may share one connection when `multiplex` is on.
|
|
87
|
+
* Defaults to `32`. Higher values trade tail latency for throughput: the
|
|
88
|
+
* statements sharing a connection are pipelined into one write, and they
|
|
89
|
+
* also queue behind the slowest of them.
|
|
90
|
+
*/
|
|
91
|
+
readonly multiplexConcurrency?: number | undefined;
|
|
92
|
+
/**
|
|
93
|
+
* Caches prepared statements by name. Enabled by default. Disable it for
|
|
94
|
+
* poolers that cannot preserve named statements between queries.
|
|
95
|
+
*/
|
|
96
|
+
readonly prepare?: boolean | undefined;
|
|
97
|
+
/** How many statements a connection keeps prepared. Defaults to `100`. */
|
|
98
|
+
readonly preparedStatementCacheSize?: number | undefined;
|
|
99
|
+
/** Maximum backend message size in bytes. Defaults to 16 MiB. */
|
|
100
|
+
readonly maxMessageSize?: number | undefined;
|
|
79
101
|
}
|
|
80
102
|
/**
|
|
81
|
-
* PostgreSQL
|
|
103
|
+
* PostgreSQL client settings with connection pool limits and timeouts.
|
|
82
104
|
*
|
|
83
105
|
* @category models
|
|
84
106
|
* @since 4.0.0
|
|
@@ -90,109 +112,54 @@ export interface PgPoolConfig extends PgClientConfig {
|
|
|
90
112
|
readonly connectionTTL?: Duration.Input | undefined;
|
|
91
113
|
}
|
|
92
114
|
/**
|
|
93
|
-
* Creates a scoped PostgreSQL client backed by a
|
|
115
|
+
* Creates a scoped PostgreSQL client backed by a connection pool.
|
|
94
116
|
*
|
|
95
117
|
* @category constructors
|
|
96
118
|
* @since 4.0.0
|
|
97
119
|
*/
|
|
98
120
|
export declare const make: (options: PgPoolConfig) => Effect.Effect<PgClient, SqlError, Scope.Scope | Reactivity.Reactivity>;
|
|
99
121
|
/**
|
|
100
|
-
* Creates a scoped PostgreSQL client backed by
|
|
122
|
+
* Creates a scoped PostgreSQL client backed by one connection.
|
|
101
123
|
*
|
|
102
124
|
* @category constructors
|
|
103
125
|
* @since 4.0.0
|
|
104
126
|
*/
|
|
105
127
|
export declare const makeClient: (options: PgClientConfig & {
|
|
106
128
|
/**
|
|
107
|
-
*
|
|
129
|
+
* Opens a separate connection for each stream and listener when enabled.
|
|
108
130
|
*/
|
|
109
131
|
readonly acquireForStream?: boolean | undefined;
|
|
110
132
|
}) => Effect.Effect<PgClient, SqlError, Scope.Scope | Reactivity.Reactivity>;
|
|
111
133
|
/**
|
|
112
|
-
*
|
|
113
|
-
*
|
|
114
|
-
* @category constructors
|
|
115
|
-
* @since 4.0.0
|
|
116
|
-
*/
|
|
117
|
-
export declare const fromPool: (options: {
|
|
118
|
-
readonly acquire: Effect.Effect<Pg.Pool, SqlError, Scope.Scope>;
|
|
119
|
-
readonly applicationName?: string | undefined;
|
|
120
|
-
readonly spanAttributes?: Record<string, unknown> | undefined;
|
|
121
|
-
readonly transformResultNames?: ((str: string) => string) | undefined;
|
|
122
|
-
readonly transformQueryNames?: ((str: string) => string) | undefined;
|
|
123
|
-
readonly transformJson?: boolean | undefined;
|
|
124
|
-
readonly types?: Pg.CustomTypesConfig | undefined;
|
|
125
|
-
}) => Effect.Effect<PgClient, SqlError, Reactivity.Reactivity | Scope.Scope>;
|
|
126
|
-
/**
|
|
127
|
-
* 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.
|
|
128
|
-
*
|
|
129
|
-
* @category constructors
|
|
130
|
-
* @since 4.0.0
|
|
131
|
-
*/
|
|
132
|
-
export declare const fromClient: (options: {
|
|
133
|
-
readonly acquire: Effect.Effect<Pg.Client, SqlError, Scope.Scope>;
|
|
134
|
-
/**
|
|
135
|
-
* Whether to acquire a separate client for each sql.stream / sql.listen.
|
|
136
|
-
*/
|
|
137
|
-
readonly acquireForStream: boolean;
|
|
138
|
-
readonly applicationName?: string | undefined;
|
|
139
|
-
readonly spanAttributes?: Record<string, unknown> | undefined;
|
|
140
|
-
readonly transformResultNames?: ((str: string) => string) | undefined;
|
|
141
|
-
readonly transformQueryNames?: ((str: string) => string) | undefined;
|
|
142
|
-
readonly transformJson?: boolean | undefined;
|
|
143
|
-
readonly types?: Pg.CustomTypesConfig | undefined;
|
|
144
|
-
}) => Effect.Effect<PgClient, SqlError, Reactivity.Reactivity | Scope.Scope>;
|
|
145
|
-
/**
|
|
146
|
-
* Creates a `PgClient` from SQL connection acquirers, a LISTEN acquirer, client configuration, and transformation options.
|
|
147
|
-
*
|
|
148
|
-
* **When to use**
|
|
149
|
-
*
|
|
150
|
-
* Use to build a PostgreSQL client from custom connection acquisition logic
|
|
151
|
-
* instead of the built-in pool or single-client constructors.
|
|
152
|
-
*
|
|
153
|
-
* @category constructors
|
|
154
|
-
* @since 4.0.0
|
|
155
|
-
*/
|
|
156
|
-
export declare const makeWith: (options: {
|
|
157
|
-
readonly acquirer: SqlConnection.Acquirer;
|
|
158
|
-
readonly transactionAcquirer: SqlConnection.Acquirer;
|
|
159
|
-
readonly listenAcquirer: Effect.Effect<Pg.ClientBase, SqlError, Scope.Scope>;
|
|
160
|
-
readonly config: PgClientConfig;
|
|
161
|
-
readonly spanAttributes?: Record<string, unknown> | undefined;
|
|
162
|
-
readonly transformResultNames?: ((str: string) => string) | undefined;
|
|
163
|
-
readonly transformQueryNames?: ((str: string) => string) | undefined;
|
|
164
|
-
readonly transformJson?: boolean | undefined;
|
|
165
|
-
}) => Effect.Effect<PgClient, SqlError, Reactivity.Reactivity | Scope.Scope>;
|
|
166
|
-
/**
|
|
167
|
-
* Creates a layer from an effect that acquires a `PgClient`, providing both `PgClient` and `SqlClient`.
|
|
134
|
+
* Provides both `PgClient` and `SqlClient` from an acquisition effect.
|
|
168
135
|
*
|
|
169
136
|
* @category layers
|
|
170
137
|
* @since 4.0.0
|
|
171
138
|
*/
|
|
172
139
|
export declare const layerFrom: <E, R>(acquire: Effect.Effect<PgClient, E, R>) => Layer.Layer<PgClient | Client.SqlClient, E, Exclude<R, Scope.Scope | Reactivity.Reactivity>>;
|
|
173
140
|
/**
|
|
174
|
-
* Creates a layer from
|
|
141
|
+
* Creates a client layer from wrapped pool configuration.
|
|
175
142
|
*
|
|
176
143
|
* @category layers
|
|
177
144
|
* @since 4.0.0
|
|
178
145
|
*/
|
|
179
146
|
export declare const layerConfig: (config: Config.Wrap<PgPoolConfig>) => Layer.Layer<PgClient | Client.SqlClient, Config.ConfigError | SqlError>;
|
|
180
147
|
/**
|
|
181
|
-
* Creates a layer from
|
|
148
|
+
* Creates a client layer from pool configuration.
|
|
182
149
|
*
|
|
183
150
|
* @category layers
|
|
184
151
|
* @since 4.0.0
|
|
185
152
|
*/
|
|
186
153
|
export declare const layer: (config: PgPoolConfig) => Layer.Layer<PgClient | Client.SqlClient, SqlError>;
|
|
187
154
|
/**
|
|
188
|
-
* Creates the PostgreSQL statement compiler
|
|
155
|
+
* Creates the PostgreSQL statement compiler.
|
|
189
156
|
*
|
|
190
157
|
* @category constructors
|
|
191
158
|
* @since 4.0.0
|
|
192
159
|
*/
|
|
193
160
|
export declare const makeCompiler: (transform?: (_: string) => string, transformJson?: boolean) => Statement.Compiler;
|
|
194
161
|
/**
|
|
195
|
-
* PostgreSQL-specific
|
|
162
|
+
* PostgreSQL-specific statement fragments.
|
|
196
163
|
*
|
|
197
164
|
* @category models
|
|
198
165
|
* @since 4.0.0
|
package/dist/PgClient.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PgClient.d.ts","sourceRoot":"","sources":["../src/PgClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PgClient.d.ts","sourceRoot":"","sources":["../src/PgClient.ts"],"names":[],"mappings":"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"}
|