@effect/sql-pg 4.0.0-rc.117 → 4.0.0
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 +4 -4
- package/CLAUDE.md +4 -4
- package/README.md +17 -6
- package/ai-docs/package.json +1 -1
- package/ai-docs/src/01_effect/03_services/20_layer-composition.ts +1 -1
- package/ai-docs/src/01_effect/06_running/20_layer-launch.ts +1 -1
- package/ai-docs/src/03_stream/30_encoding.ts +1 -1
- package/ai-docs/src/08_observability/20_otlp-tracing.ts +2 -2
- package/ai-docs/src/08_observability/index.md +1 -1
- package/ai-docs/src/40_sql/10_basics.ts +2 -2
- package/ai-docs/src/40_sql/index.md +1 -1
- package/ai-docs/src/50_http-client/10_basics.ts +1 -1
- package/ai-docs/src/51_http-server/10_basics.ts +2 -2
- package/ai-docs/src/51_http-server/20_testing.ts +2 -2
- package/ai-docs/src/51_http-server/fixtures/api/Api.ts +1 -1
- package/ai-docs/src/51_http-server/fixtures/api/Authorization.ts +1 -1
- package/ai-docs/src/51_http-server/fixtures/api/System.ts +1 -1
- package/ai-docs/src/51_http-server/fixtures/api/Users.ts +1 -1
- package/ai-docs/src/51_http-server/fixtures/domain/User.ts +1 -1
- package/ai-docs/src/51_http-server/fixtures/server/Users/http.ts +1 -1
- package/ai-docs/src/51_http-server/fixtures/server/Users.ts +1 -1
- package/ai-docs/src/60_child-process/10_working-with-child-processes.ts +1 -1
- package/ai-docs/src/60_child-process/index.md +1 -1
- package/ai-docs/src/70_cli/10_basics.ts +1 -1
- package/ai-docs/src/70_cli/index.md +1 -1
- package/ai-docs/src/71_ai/10_language-model.ts +2 -2
- package/ai-docs/src/71_ai/20_tools.ts +2 -2
- package/ai-docs/src/71_ai/30_chat.ts +2 -2
- package/ai-docs/src/80_cluster/10_entities.ts +3 -3
- package/dist/PgAuth.js +3 -3
- package/dist/PgAuth.js.map +1 -1
- package/dist/PgClient.d.ts +5 -5
- package/dist/PgClient.d.ts.map +1 -1
- package/dist/PgClient.js +13 -3
- package/dist/PgClient.js.map +1 -1
- package/dist/PgConnection.d.ts +3 -1
- package/dist/PgConnection.d.ts.map +1 -1
- package/dist/PgConnection.js +2 -2
- package/dist/PgConnection.js.map +1 -1
- package/dist/PgMigrator.d.ts +5 -5
- package/dist/PgMigrator.d.ts.map +1 -1
- package/dist/PgMigrator.js +4 -4
- package/dist/PgMigrator.js.map +1 -1
- package/dist/PgPool.d.ts +1 -1
- package/dist/PgPool.d.ts.map +1 -1
- package/dist/PgTypes.d.ts.map +1 -1
- package/dist/PgTypes.js +3 -3
- package/dist/PgTypes.js.map +1 -1
- package/dist/internal/sqlError.d.ts +1 -1
- package/dist/internal/sqlError.d.ts.map +1 -1
- package/dist/internal/sqlError.js +1 -1
- package/dist/internal/sqlError.js.map +1 -1
- package/package.json +4 -4
- package/src/PgAuth.ts +3 -3
- package/src/PgClient.ts +25 -6
- package/src/PgConnection.ts +6 -8
- package/src/PgMigrator.ts +6 -6
- package/src/PgPool.ts +1 -1
- package/src/PgTypes.ts +3 -3
- package/src/internal/connection.ts +1 -1
- package/src/internal/sqlError.ts +1 -1
package/AGENTS.md
CHANGED
|
@@ -302,7 +302,7 @@ Use it when your Effect programs need testable current time, safe parsing, stabl
|
|
|
302
302
|
|
|
303
303
|
Effect has built-in support for structured logging, distributed tracing, and
|
|
304
304
|
metrics. For exporting telemetry, use the lightweight Otlp modules from
|
|
305
|
-
`effect/
|
|
305
|
+
`effect/observability` in new projects, or use
|
|
306
306
|
`@effect/opentelemetry` NodeSdk when integrating with an existing OpenTelemetry
|
|
307
307
|
setup.
|
|
308
308
|
|
|
@@ -344,7 +344,7 @@ if (Predicate.isObject(thing)) {
|
|
|
344
344
|
|
|
345
345
|
## Working with SQL databases
|
|
346
346
|
|
|
347
|
-
Use the `effect/
|
|
347
|
+
Use the `effect/sql` modules together with a driver package such as
|
|
348
348
|
`@effect/sql-sqlite-node` to access SQL databases. Define domain models with
|
|
349
349
|
`Model.Class` to derive schemas for the database and JSON boundaries, run
|
|
350
350
|
migrations, and write type-safe queries.
|
|
@@ -372,13 +372,13 @@ Build http clients with the `HttpClient` module.
|
|
|
372
372
|
|
|
373
373
|
## Working with child processes
|
|
374
374
|
|
|
375
|
-
Use the `effect/
|
|
375
|
+
Use the `effect/process` modules to define child processes and run them with `ChildProcessSpawner`.
|
|
376
376
|
|
|
377
377
|
- **[Working with child processes](./ai-docs/src/60_child-process/10_working-with-child-processes.ts)**: This example shows how to collect process output, compose pipelines, and stream long-running command output.
|
|
378
378
|
|
|
379
379
|
## Building CLI applications
|
|
380
380
|
|
|
381
|
-
Use the "effect/
|
|
381
|
+
Use the "effect/cli" modules to build CLI applications. These modules
|
|
382
382
|
provide utilities for parsing command-line arguments, handling user input, and
|
|
383
383
|
managing the flow of a CLI application.
|
|
384
384
|
|
package/CLAUDE.md
CHANGED
|
@@ -302,7 +302,7 @@ Use it when your Effect programs need testable current time, safe parsing, stabl
|
|
|
302
302
|
|
|
303
303
|
Effect has built-in support for structured logging, distributed tracing, and
|
|
304
304
|
metrics. For exporting telemetry, use the lightweight Otlp modules from
|
|
305
|
-
`effect/
|
|
305
|
+
`effect/observability` in new projects, or use
|
|
306
306
|
`@effect/opentelemetry` NodeSdk when integrating with an existing OpenTelemetry
|
|
307
307
|
setup.
|
|
308
308
|
|
|
@@ -344,7 +344,7 @@ if (Predicate.isObject(thing)) {
|
|
|
344
344
|
|
|
345
345
|
## Working with SQL databases
|
|
346
346
|
|
|
347
|
-
Use the `effect/
|
|
347
|
+
Use the `effect/sql` modules together with a driver package such as
|
|
348
348
|
`@effect/sql-sqlite-node` to access SQL databases. Define domain models with
|
|
349
349
|
`Model.Class` to derive schemas for the database and JSON boundaries, run
|
|
350
350
|
migrations, and write type-safe queries.
|
|
@@ -372,13 +372,13 @@ Build http clients with the `HttpClient` module.
|
|
|
372
372
|
|
|
373
373
|
## Working with child processes
|
|
374
374
|
|
|
375
|
-
Use the `effect/
|
|
375
|
+
Use the `effect/process` modules to define child processes and run them with `ChildProcessSpawner`.
|
|
376
376
|
|
|
377
377
|
- **[Working with child processes](./ai-docs/src/60_child-process/10_working-with-child-processes.ts)**: This example shows how to collect process output, compose pipelines, and stream long-running command output.
|
|
378
378
|
|
|
379
379
|
## Building CLI applications
|
|
380
380
|
|
|
381
|
-
Use the "effect/
|
|
381
|
+
Use the "effect/cli" modules to build CLI applications. These modules
|
|
382
382
|
provide utilities for parsing command-line arguments, handling user input, and
|
|
383
383
|
managing the flow of a CLI application.
|
|
384
384
|
|
package/README.md
CHANGED
|
@@ -5,9 +5,25 @@ An Effect SQL client for PostgreSQL with a native wire-protocol driver.
|
|
|
5
5
|
## Installation
|
|
6
6
|
|
|
7
7
|
```sh
|
|
8
|
-
npm install effect
|
|
8
|
+
npm install effect @effect/sql-pg
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
+
## Links
|
|
12
|
+
|
|
13
|
+
- [Website](https://effect.website): documentation, guides, and news.
|
|
14
|
+
- [Reference](https://effect.website/docs/v4/api/sql-pg): API documentation for this package.
|
|
15
|
+
- [Discord](https://discord.gg/effect-ts): ask questions, share what you're building, and talk to the core team.
|
|
16
|
+
- [Community](https://effect.website/community-hub): meetups and events, or bring Effect to your own.
|
|
17
|
+
- [Issues](https://github.com/Effect-TS/effect/issues): bug reports and feature requests.
|
|
18
|
+
|
|
19
|
+
## Let's talk
|
|
20
|
+
|
|
21
|
+
Whether your team is considering Effect, rolling it out, or already running it in production, we'd love to hear from you: what you're building, what works, and what you need from Effect next.
|
|
22
|
+
|
|
23
|
+
- **Talk to the maintainers.** Introduce your team on [Discord](https://discord.gg/effect-ts) or email [contact@effectful.co](mailto:contact@effectful.co). We're happy to connect privately on Slack or Discord for feedback and help with adoption.
|
|
24
|
+
- **Production support.** We're exploring how to better support teams running Effect in production. If your organization has specific support needs, let's discuss them.
|
|
25
|
+
- **Adoption help.** Our [adoption partners](https://effect.website/adoption-partners) offer implementation, consulting, team extension, training, and commercial support.
|
|
26
|
+
|
|
11
27
|
## Session defaults
|
|
12
28
|
|
|
13
29
|
Use `startupParameters` to establish PostgreSQL session defaults when each physical
|
|
@@ -131,8 +147,3 @@ const PostgresLive = PgClient.layer({
|
|
|
131
147
|
|
|
132
148
|
OIDs of user-defined types are assigned per database, so look them up in
|
|
133
149
|
`pg_type` at startup rather than hard-coding them.
|
|
134
|
-
|
|
135
|
-
## Documentation
|
|
136
|
-
|
|
137
|
-
- [Effect website](https://effect.website)
|
|
138
|
-
- [API reference](https://effect.website/docs/v4/api/sql-pg)
|
package/ai-docs/package.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
import { PgClient } from "@effect/sql-pg"
|
|
9
9
|
import { Array, Config, Context, Effect, Layer, type Option, Schema } from "effect"
|
|
10
|
-
import { SqlClient, SqlError } from "effect/
|
|
10
|
+
import { SqlClient, SqlError } from "effect/sql"
|
|
11
11
|
|
|
12
12
|
// Define a layer for the SqlClient service
|
|
13
13
|
export const SqlClientLayer: Layer.Layer<
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { NodeHttpServer, NodeRuntime } from "@effect/platform-node"
|
|
7
7
|
import { Effect, Layer } from "effect"
|
|
8
|
-
import { HttpRouter, HttpServerResponse } from "effect/
|
|
8
|
+
import { HttpRouter, HttpServerResponse } from "effect/http"
|
|
9
9
|
import { createServer } from "node:http"
|
|
10
10
|
|
|
11
11
|
// Build a tiny HTTP app with a health-check endpoint.
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* decode and encode streams of structured data.
|
|
6
6
|
*/
|
|
7
7
|
import { DateTime, Schema, Stream } from "effect"
|
|
8
|
-
import { Ndjson, SchemaBinary } from "effect/
|
|
8
|
+
import { Ndjson, SchemaBinary } from "effect/encoding"
|
|
9
9
|
|
|
10
10
|
// SchemaBinary derives a framed binary decoder directly from a schema.
|
|
11
11
|
export const schemaBinaryDecoder = SchemaBinary.decode(Schema.Struct({
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { NodeRuntime } from "@effect/platform-node"
|
|
7
7
|
import { Context, Effect, Layer } from "effect"
|
|
8
|
-
import { FetchHttpClient } from "effect/
|
|
9
|
-
import { OtlpLogger, OtlpSerialization, OtlpTracer } from "effect/
|
|
8
|
+
import { FetchHttpClient } from "effect/http"
|
|
9
|
+
import { OtlpLogger, OtlpSerialization, OtlpTracer } from "effect/observability"
|
|
10
10
|
|
|
11
11
|
// Configure OTLP span export.
|
|
12
12
|
export const OtlpTracingLayer = OtlpTracer.layer({
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
Effect has built-in support for structured logging, distributed tracing, and
|
|
4
4
|
metrics. For exporting telemetry, use the lightweight Otlp modules from
|
|
5
|
-
`effect/
|
|
5
|
+
`effect/observability` in new projects, or use
|
|
6
6
|
`@effect/opentelemetry` NodeSdk when integrating with an existing OpenTelemetry
|
|
7
7
|
setup.
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
import { NodeRuntime } from "@effect/platform-node"
|
|
8
8
|
import { SqliteClient, SqliteMigrator } from "@effect/sql-sqlite-node"
|
|
9
9
|
import { Context, Effect, Layer, Schema } from "effect"
|
|
10
|
-
import { Model } from "effect/
|
|
11
|
-
import { SqlClient, SqlModel, SqlSchema } from "effect/
|
|
10
|
+
import { Model } from "effect/schema"
|
|
11
|
+
import { SqlClient, SqlModel, SqlSchema } from "effect/sql"
|
|
12
12
|
|
|
13
13
|
// Use a branded string for the group id, so it cannot be mixed up with other
|
|
14
14
|
// string ids in the application.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
## Working with SQL databases
|
|
2
2
|
|
|
3
|
-
Use the `effect/
|
|
3
|
+
Use the `effect/sql` modules together with a driver package such as
|
|
4
4
|
`@effect/sql-sqlite-node` to access SQL databases. Define domain models with
|
|
5
5
|
`Model.Class` to derive schemas for the database and JSON boundaries, run
|
|
6
6
|
migrations, and write type-safe queries.
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Define a service that uses the HttpClient module to fetch data from an external API
|
|
5
5
|
*/
|
|
6
6
|
import { Context, Effect, flow, Layer, Schedule, Schema } from "effect"
|
|
7
|
-
import { FetchHttpClient, HttpClient, HttpClientRequest, HttpClientResponse } from "effect/
|
|
7
|
+
import { FetchHttpClient, HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http"
|
|
8
8
|
|
|
9
9
|
class Todo extends Schema.Class<Todo>("Todo")({
|
|
10
10
|
userId: Schema.Int,
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { NodeHttpServer, NodeRuntime } from "@effect/platform-node"
|
|
8
8
|
import { Context, Effect, flow, Layer, Schedule } from "effect"
|
|
9
|
-
import { FetchHttpClient, HttpClient, HttpClientRequest, HttpRouter, HttpServer } from "effect/
|
|
10
|
-
import { HttpApiBuilder, HttpApiClient, HttpApiMiddleware, HttpApiScalar } from "effect/
|
|
9
|
+
import { FetchHttpClient, HttpClient, HttpClientRequest, HttpRouter, HttpServer } from "effect/http"
|
|
10
|
+
import { HttpApiBuilder, HttpApiClient, HttpApiMiddleware, HttpApiScalar } from "effect/http-api"
|
|
11
11
|
import { createServer } from "node:http"
|
|
12
12
|
// Api definitions should **always** be seperate from the server implementation,
|
|
13
13
|
// so that they can be shared between the server and client without leaking
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { assert, layer } from "@effect/vitest"
|
|
8
8
|
import { Effect, Layer } from "effect"
|
|
9
|
-
import { HttpClientRequest, HttpServer } from "effect/
|
|
10
|
-
import { HttpApiMiddleware, HttpApiTest } from "effect/
|
|
9
|
+
import { HttpClientRequest, HttpServer } from "effect/http"
|
|
10
|
+
import { HttpApiMiddleware, HttpApiTest } from "effect/http-api"
|
|
11
11
|
import { Api } from "./fixtures/api/Api.ts"
|
|
12
12
|
import { Authorization } from "./fixtures/api/Authorization.ts"
|
|
13
13
|
import { UserId } from "./fixtures/domain/User.ts"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Context, Schema } from "effect"
|
|
2
|
-
import { HttpApiMiddleware, HttpApiSecurity } from "effect/
|
|
2
|
+
import { HttpApiMiddleware, HttpApiSecurity } from "effect/http-api"
|
|
3
3
|
import type { User } from "../domain/User.ts"
|
|
4
4
|
|
|
5
5
|
export class CurrentUser extends Context.Service<CurrentUser, User>()("acme/HttpApi/Authorization/CurrentUser") {}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Schema } from "effect"
|
|
2
|
-
import { HttpApiEndpoint, HttpApiError, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/
|
|
2
|
+
import { HttpApiEndpoint, HttpApiError, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/http-api"
|
|
3
3
|
import { User, UserId } from "../domain/User.ts"
|
|
4
4
|
import { SearchQueryTooShort, UserNotFound } from "../domain/UserErrors.ts"
|
|
5
5
|
import { Authorization } from "./Authorization.ts"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Effect, Layer } from "effect"
|
|
2
|
-
import { HttpApiBuilder, HttpApiError } from "effect/
|
|
2
|
+
import { HttpApiBuilder, HttpApiError } from "effect/http-api"
|
|
3
3
|
import { Api } from "../../api/Api.ts"
|
|
4
4
|
import { CurrentUser } from "../../api/Authorization.ts"
|
|
5
5
|
import { AuthorizationLayer } from "../Authorization.ts"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { SqliteClient, SqliteMigrator } from "@effect/sql-sqlite-node"
|
|
2
2
|
import { Context, Effect, Layer, Schema } from "effect"
|
|
3
|
-
import { SqlClient, SqlModel, SqlSchema } from "effect/
|
|
3
|
+
import { SqlClient, SqlModel, SqlSchema } from "effect/sql"
|
|
4
4
|
import { User } from "../domain/User.ts"
|
|
5
5
|
import type { UserId } from "../domain/User.ts"
|
|
6
6
|
import { SearchQueryTooShort, UserNotFound, UsersError } from "../domain/UserErrors.ts"
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { NodeServices } from "@effect/platform-node"
|
|
7
7
|
import { Console, Context, Effect, Layer, Schema, Stream, String } from "effect"
|
|
8
|
-
import { ChildProcess, ChildProcessSpawner } from "effect/
|
|
8
|
+
import { ChildProcess, ChildProcessSpawner } from "effect/process"
|
|
9
9
|
|
|
10
10
|
export class DevToolsError extends Schema.TaggedError<DevToolsError>()("DevToolsError", {
|
|
11
11
|
cause: Schema.Defect()
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { NodeRuntime, NodeServices } from "@effect/platform-node"
|
|
8
8
|
import { Console, Effect, Option, Schema } from "effect"
|
|
9
|
-
import { Argument, Command, Flag } from "effect/
|
|
9
|
+
import { Argument, Command, Flag } from "effect/cli"
|
|
10
10
|
|
|
11
11
|
// You can define flags outside of commands and reuse them across multiple
|
|
12
12
|
// commands.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
## Building CLI applications
|
|
2
2
|
|
|
3
|
-
Use the "effect/
|
|
3
|
+
Use the "effect/cli" modules to build CLI applications. These modules
|
|
4
4
|
provide utilities for parsing command-line arguments, handling user input, and
|
|
5
5
|
managing the flow of a CLI application.
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
import { AnthropicClient, AnthropicLanguageModel } from "@effect/ai-anthropic"
|
|
8
8
|
import { OpenAiClient, OpenAiLanguageModel } from "@effect/ai-openai"
|
|
9
9
|
import { Config, Context, Effect, ExecutionPlan, Layer, Schema, Stream } from "effect"
|
|
10
|
-
import { AiError, LanguageModel, Model, type Response } from "effect/
|
|
11
|
-
import { FetchHttpClient } from "effect/
|
|
10
|
+
import { AiError, LanguageModel, Model, type Response } from "effect/ai"
|
|
11
|
+
import { FetchHttpClient } from "effect/http"
|
|
12
12
|
import { LaunchPlan } from "./fixtures/domain/LaunchPlan.ts"
|
|
13
13
|
|
|
14
14
|
// You can use Config to create ai clients
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { OpenAiClient, OpenAiLanguageModel, OpenAiTool } from "@effect/ai-openai"
|
|
8
8
|
import { Config, Context, Effect, Layer, Schema } from "effect"
|
|
9
|
-
import { AiError, LanguageModel, Tool, Toolkit } from "effect/
|
|
10
|
-
import { FetchHttpClient } from "effect/
|
|
9
|
+
import { AiError, LanguageModel, Tool, Toolkit } from "effect/ai"
|
|
10
|
+
import { FetchHttpClient } from "effect/http"
|
|
11
11
|
|
|
12
12
|
// ---------------------------------------------------------------------------
|
|
13
13
|
// 1. Defining tools
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { OpenAiClient, OpenAiLanguageModel } from "@effect/ai-openai"
|
|
8
8
|
import { Config, Context, DateTime, Effect, Layer, Ref, Schema } from "effect"
|
|
9
|
-
import { AiError, Chat, Prompt, Tool, Toolkit } from "effect/
|
|
10
|
-
import { FetchHttpClient } from "effect/
|
|
9
|
+
import { AiError, Chat, Prompt, Tool, Toolkit } from "effect/ai"
|
|
10
|
+
import { FetchHttpClient } from "effect/http"
|
|
11
11
|
|
|
12
12
|
// ---------------------------------------------------------------------------
|
|
13
13
|
// Provider setup
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { NodeClusterSocket, NodeRuntime } from "@effect/platform-node"
|
|
7
7
|
import { Effect, Layer, Ref, Schema } from "effect"
|
|
8
|
-
import { ClusterSchema, Entity, TestRunner } from "effect/
|
|
9
|
-
import { Rpc } from "effect/
|
|
10
|
-
import type { SqlClient } from "effect/
|
|
8
|
+
import { ClusterSchema, Entity, TestRunner } from "effect/cluster"
|
|
9
|
+
import { Rpc } from "effect/rpc"
|
|
10
|
+
import type { SqlClient } from "effect/sql"
|
|
11
11
|
|
|
12
12
|
export const Increment = Rpc.make("Increment", {
|
|
13
13
|
payload: { amount: Schema.Int },
|
package/dist/PgAuth.js
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* @since 4.0.0
|
|
17
17
|
*/
|
|
18
18
|
import * as Data from "effect/Data";
|
|
19
|
-
import * as
|
|
19
|
+
import * as Base64 from "effect/encoding/Base64";
|
|
20
20
|
import * as Result from "effect/Result";
|
|
21
21
|
import { createHash, createHmac, pbkdf2Sync } from "node:crypto";
|
|
22
22
|
/**
|
|
@@ -55,9 +55,9 @@ const xor = (left, right) => {
|
|
|
55
55
|
}
|
|
56
56
|
return result;
|
|
57
57
|
};
|
|
58
|
-
const toBase64 = bytes =>
|
|
58
|
+
const toBase64 = bytes => Base64.encode(bytes);
|
|
59
59
|
const fromBase64 = (text, field) => {
|
|
60
|
-
const decoded =
|
|
60
|
+
const decoded = Base64.decode(text);
|
|
61
61
|
if (Result.isFailure(decoded)) {
|
|
62
62
|
return fail(`Invalid base64 in SCRAM attribute "${field}"`);
|
|
63
63
|
}
|
package/dist/PgAuth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PgAuth.js","names":[],"sources":["../src/PgAuth.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;;;;;;;;;AAiBA,OAAO,KAAK,IAAI,MAAM,aAAa;AACnC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"PgAuth.js","names":[],"sources":["../src/PgAuth.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/PgClient.d.ts
CHANGED
|
@@ -4,13 +4,13 @@ import type * as Duration from "effect/Duration";
|
|
|
4
4
|
import * as Effect from "effect/Effect";
|
|
5
5
|
import * as Layer from "effect/Layer";
|
|
6
6
|
import type * as Queue from "effect/Queue";
|
|
7
|
+
import * as Reactivity from "effect/reactivity/Reactivity";
|
|
7
8
|
import type * as Redacted from "effect/Redacted";
|
|
8
9
|
import type * as Scope from "effect/Scope";
|
|
9
|
-
import * as
|
|
10
|
-
import
|
|
11
|
-
import type {
|
|
12
|
-
import
|
|
13
|
-
import * as Statement from "effect/unstable/sql/Statement";
|
|
10
|
+
import * as Client from "effect/sql/SqlClient";
|
|
11
|
+
import { SqlError } from "effect/sql/SqlError";
|
|
12
|
+
import type { Custom, Fragment } from "effect/sql/Statement";
|
|
13
|
+
import * as Statement from "effect/sql/Statement";
|
|
14
14
|
import type { Duplex } from "node:stream";
|
|
15
15
|
import type { ConnectionOptions } from "node:tls";
|
|
16
16
|
import * as PgConnection from "./PgConnection.ts";
|
package/dist/PgClient.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PgClient.d.ts","sourceRoot":"","sources":["../src/PgClient.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"PgClient.d.ts","sourceRoot":"","sources":["../src/PgClient.ts"],"names":[],"mappings":"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"}
|
package/dist/PgClient.js
CHANGED
|
@@ -2,10 +2,11 @@ import * as Config from "effect/Config";
|
|
|
2
2
|
import * as Context from "effect/Context";
|
|
3
3
|
import * as Effect from "effect/Effect";
|
|
4
4
|
import * as Layer from "effect/Layer";
|
|
5
|
+
import * as Reactivity from "effect/reactivity/Reactivity";
|
|
6
|
+
import * as Client from "effect/sql/SqlClient";
|
|
7
|
+
import { SqlError, UnknownError } from "effect/sql/SqlError";
|
|
8
|
+
import * as Statement from "effect/sql/Statement";
|
|
5
9
|
import * as Stream from "effect/Stream";
|
|
6
|
-
import * as Reactivity from "effect/unstable/reactivity/Reactivity";
|
|
7
|
-
import * as Client from "effect/unstable/sql/SqlClient";
|
|
8
|
-
import * as Statement from "effect/unstable/sql/Statement";
|
|
9
10
|
import { validateChannelName } from "./internal/sqlError.js";
|
|
10
11
|
import * as PgConnection from "./PgConnection.js";
|
|
11
12
|
import * as PgPool from "./PgPool.js";
|
|
@@ -63,6 +64,7 @@ const makeImpl = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
63
64
|
// Postgres prepares transaction control like anything else, and a client
|
|
64
65
|
// with preparation turned off falls back to the unnamed path anyway.
|
|
65
66
|
prepareTransactionControls: true,
|
|
67
|
+
commit,
|
|
66
68
|
releaseSavepoint: name => `RELEASE SAVEPOINT ${name}`,
|
|
67
69
|
transactionAcquirer: options.transactionAcquirer,
|
|
68
70
|
compiler,
|
|
@@ -113,6 +115,14 @@ class ConnectionImpl {
|
|
|
113
115
|
return transformRows ? Stream.mapArray(stream, rows => transformRows(rows)) : stream;
|
|
114
116
|
}
|
|
115
117
|
}
|
|
118
|
+
/** PostgreSQL returns `ROLLBACK` for `COMMIT` when a transaction is aborted. */
|
|
119
|
+
const commit = conn => Effect.flatMap(conn.executeRaw("COMMIT", []), result => result.command === "ROLLBACK" ? Effect.fail(new SqlError({
|
|
120
|
+
reason: new UnknownError({
|
|
121
|
+
cause: new Error("COMMIT rolled back an aborted transaction"),
|
|
122
|
+
message: "PgClient: COMMIT rolled back an aborted transaction",
|
|
123
|
+
operation: "commit"
|
|
124
|
+
})
|
|
125
|
+
})) : Effect.void);
|
|
116
126
|
const makeConnection = (connection, streamAcquirer) => new ConnectionImpl(connection, streamAcquirer);
|
|
117
127
|
/**
|
|
118
128
|
* Provides both `PgClient` and `SqlClient` from an acquisition effect.
|
package/dist/PgClient.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PgClient.js","names":[],"sources":["../src/PgClient.ts"],"sourcesContent":[null],"mappings":"AAMA,OAAO,KAAK,MAAM,MAAM,eAAe;AACvC,OAAO,KAAK,OAAO,MAAM,gBAAgB;AAEzC,OAAO,KAAK,MAAM,MAAM,eAAe;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc;
|
|
1
|
+
{"version":3,"file":"PgClient.js","names":[],"sources":["../src/PgClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/PgConnection.d.ts
CHANGED
|
@@ -4,8 +4,8 @@ import * as Effect from "effect/Effect";
|
|
|
4
4
|
import * as Queue from "effect/Queue";
|
|
5
5
|
import * as Redacted from "effect/Redacted";
|
|
6
6
|
import * as Scope from "effect/Scope";
|
|
7
|
+
import { SqlError } from "effect/sql/SqlError";
|
|
7
8
|
import * as Stream from "effect/Stream";
|
|
8
|
-
import { SqlError } from "effect/unstable/sql/SqlError";
|
|
9
9
|
import type { Duplex } from "node:stream";
|
|
10
10
|
import type { ConnectionOptions } from "node:tls";
|
|
11
11
|
import * as PgTypes from "./PgTypes.ts";
|
|
@@ -155,6 +155,8 @@ export interface PgConnection {
|
|
|
155
155
|
* Runs a query and returns rows keyed by column name. Pass `false` to skip
|
|
156
156
|
* the prepared statement cache.
|
|
157
157
|
*
|
|
158
|
+
* **Details**
|
|
159
|
+
*
|
|
158
160
|
* On interruption, the connection drains to `ReadyForQuery` and sends a
|
|
159
161
|
* `CancelRequest` if needed. Unless the backend confirms cancellation with
|
|
160
162
|
* `57014`, a pool retires the session before its next checkout. A retained
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PgConnection.d.ts","sourceRoot":"","sources":["../src/PgConnection.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PgConnection.d.ts","sourceRoot":"","sources":["../src/PgConnection.ts"],"names":[],"mappings":"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"}
|
package/dist/PgConnection.js
CHANGED
|
@@ -10,8 +10,8 @@ import * as Redacted from "effect/Redacted";
|
|
|
10
10
|
import * as EffectResult from "effect/Result";
|
|
11
11
|
import * as Scope from "effect/Scope";
|
|
12
12
|
import * as Semaphore from "effect/Semaphore";
|
|
13
|
+
import { AuthenticationError, ConnectionError, SqlError, UnknownError } from "effect/sql/SqlError";
|
|
13
14
|
import * as Stream from "effect/Stream";
|
|
14
|
-
import { AuthenticationError, ConnectionError, SqlError, UnknownError } from "effect/unstable/sql/SqlError";
|
|
15
15
|
import { Buffer } from "node:buffer";
|
|
16
16
|
import { randomBytes } from "node:crypto";
|
|
17
17
|
import * as Net from "node:net";
|
|
@@ -195,6 +195,7 @@ class PgConnectionImpl {
|
|
|
195
195
|
if (destroySocket) this.session.socket.destroy();
|
|
196
196
|
const consumer = this.consumer;
|
|
197
197
|
this.consumer = undefined;
|
|
198
|
+
this.retire();
|
|
198
199
|
consumer?.onFatal(error);
|
|
199
200
|
const sets = Array.from(this.channels.values());
|
|
200
201
|
this.channels.clear();
|
|
@@ -202,7 +203,6 @@ class PgConnectionImpl {
|
|
|
202
203
|
for (const set of sets) {
|
|
203
204
|
for (const queue of set) Queue.failCauseUnsafe(queue, cause);
|
|
204
205
|
}
|
|
205
|
-
this.retire();
|
|
206
206
|
}
|
|
207
207
|
retire() {
|
|
208
208
|
if (this.closed) return;
|