@effect/sql-pg 4.0.0-beta.99 → 4.0.0-rc.108
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +381 -0
- package/CLAUDE.md +381 -0
- package/README.md +10 -3
- package/ai-docs/README.md +44 -0
- package/ai-docs/package.json +36 -0
- package/ai-docs/src/01_effect/01_basics/01_effect-gen.ts +30 -0
- package/ai-docs/src/01_effect/01_basics/02_effect-fn.ts +39 -0
- package/ai-docs/src/01_effect/01_basics/10_creating-effects.ts +74 -0
- package/ai-docs/src/01_effect/01_basics/index.md +5 -0
- package/ai-docs/src/01_effect/02_schema/10_schema-basics.ts +43 -0
- package/ai-docs/src/01_effect/02_schema/index.md +7 -0
- package/ai-docs/src/01_effect/03_services/01_service.ts +45 -0
- package/ai-docs/src/01_effect/03_services/10_reference.ts +10 -0
- package/ai-docs/src/01_effect/03_services/20_layer-composition.ts +70 -0
- package/ai-docs/src/01_effect/03_services/20_layer-unwrap.ts +66 -0
- package/ai-docs/src/01_effect/03_services/index.md +5 -0
- package/ai-docs/src/01_effect/04_errors/01_error-handling.ts +30 -0
- package/ai-docs/src/01_effect/04_errors/10_catch-tags.ts +24 -0
- package/ai-docs/src/01_effect/04_errors/20_reason-errors.ts +64 -0
- package/ai-docs/src/01_effect/04_errors/index.md +1 -0
- package/ai-docs/src/01_effect/05_resources/10_acquire-release.ts +105 -0
- package/ai-docs/src/01_effect/05_resources/20_layer-side-effects.ts +31 -0
- package/ai-docs/src/01_effect/05_resources/30_layer-map.ts +86 -0
- package/ai-docs/src/01_effect/05_resources/index.md +3 -0
- package/ai-docs/src/01_effect/06_running/10_run-main.ts +30 -0
- package/ai-docs/src/01_effect/06_running/20_layer-launch.ts +27 -0
- package/ai-docs/src/01_effect/06_running/index.md +1 -0
- package/ai-docs/src/01_effect/07_pubsub/10_pubsub.ts +56 -0
- package/ai-docs/src/01_effect/07_pubsub/index.md +3 -0
- package/ai-docs/src/03_stream/10_creating-streams.ts +103 -0
- package/ai-docs/src/03_stream/20_consuming-streams.ts +137 -0
- package/ai-docs/src/03_stream/30_encoding.ts +165 -0
- package/ai-docs/src/03_stream/index.md +4 -0
- package/ai-docs/src/04_integration/10_managed-runtime.ts +129 -0
- package/ai-docs/src/04_integration/index.md +5 -0
- package/ai-docs/src/05_batching/10_request-resolver.ts +89 -0
- package/ai-docs/src/05_batching/index.md +3 -0
- package/ai-docs/src/06_schedule/10_schedules.ts +110 -0
- package/ai-docs/src/06_schedule/index.md +3 -0
- package/ai-docs/src/07_datetime/10_creating-and-formatting.ts +30 -0
- package/ai-docs/src/07_datetime/20_time-zones.ts +44 -0
- package/ai-docs/src/07_datetime/index.md +5 -0
- package/ai-docs/src/08_observability/10_logging.ts +66 -0
- package/ai-docs/src/08_observability/20_otlp-tracing.ts +95 -0
- package/ai-docs/src/08_observability/index.md +7 -0
- package/ai-docs/src/09_testing/10_effect-tests.ts +55 -0
- package/ai-docs/src/09_testing/20_layer-tests.ts +138 -0
- package/ai-docs/src/09_testing/index.md +1 -0
- package/ai-docs/src/10_predicate/01_basics.ts +14 -0
- package/ai-docs/src/10_predicate/index.md +9 -0
- package/ai-docs/src/50_http-client/10_basics.ts +102 -0
- package/ai-docs/src/50_http-client/index.md +3 -0
- package/ai-docs/src/51_http-server/10_basics.ts +116 -0
- package/ai-docs/src/51_http-server/fixtures/api/Api.ts +14 -0
- package/ai-docs/src/51_http-server/fixtures/api/Authorization.ts +36 -0
- package/ai-docs/src/51_http-server/fixtures/api/System.ts +10 -0
- package/ai-docs/src/51_http-server/fixtures/api/Users.ts +91 -0
- package/ai-docs/src/51_http-server/fixtures/domain/User.ts +12 -0
- package/ai-docs/src/51_http-server/fixtures/domain/UserErrors.ts +22 -0
- package/ai-docs/src/51_http-server/fixtures/server/Authorization.ts +36 -0
- package/ai-docs/src/51_http-server/fixtures/server/Users/http.ts +71 -0
- package/ai-docs/src/51_http-server/fixtures/server/Users.ts +62 -0
- package/ai-docs/src/51_http-server/index.md +3 -0
- package/ai-docs/src/60_child-process/10_working-with-child-processes.ts +117 -0
- package/ai-docs/src/60_child-process/index.md +3 -0
- package/ai-docs/src/70_cli/10_basics.ts +136 -0
- package/ai-docs/src/70_cli/index.md +5 -0
- package/ai-docs/src/71_ai/10_language-model.ts +156 -0
- package/ai-docs/src/71_ai/20_tools.ts +226 -0
- package/ai-docs/src/71_ai/30_chat.ts +158 -0
- package/ai-docs/src/71_ai/fixtures/domain/LaunchPlan.ts +9 -0
- package/ai-docs/src/71_ai/index.md +5 -0
- package/ai-docs/src/80_cluster/10_entities.ts +97 -0
- package/ai-docs/src/80_cluster/index.md +4 -0
- package/ai-docs/src/index.md +10 -0
- package/ai-docs/tsconfig.json +24 -0
- package/dist/PgClient.d.ts +6 -6
- package/dist/PgClient.d.ts.map +1 -1
- package/dist/PgClient.js +51 -39
- package/dist/PgClient.js.map +1 -1
- package/dist/PgMigrator.d.ts +1 -1
- package/dist/PgMigrator.js +1 -1
- package/dist/PgMigrator.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +11 -9
- package/src/PgClient.ts +27 -10
- package/src/PgMigrator.ts +1 -1
package/dist/PgMigrator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PgMigrator.js","names":[
|
|
1
|
+
{"version":3,"file":"PgMigrator.js","names":[],"sources":["../src/PgMigrator.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAIA;AAEA;;;AAGA,OAAO,KAAK,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAK,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-
|
|
3
|
+
"version": "4.0.0-rc.108",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "A PostgreSQL toolkit for Effect",
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
".": "./dist/index.js",
|
|
30
30
|
"./*": "./dist/*.js",
|
|
31
31
|
"./internal/*": null,
|
|
32
|
+
"./index": null,
|
|
32
33
|
"./*/index": null
|
|
33
34
|
},
|
|
34
35
|
"files": [
|
|
@@ -36,24 +37,27 @@
|
|
|
36
37
|
"dist/**/*.js",
|
|
37
38
|
"dist/**/*.js.map",
|
|
38
39
|
"dist/**/*.d.ts",
|
|
39
|
-
"dist/**/*.d.ts.map"
|
|
40
|
+
"dist/**/*.d.ts.map",
|
|
41
|
+
"AGENTS.md",
|
|
42
|
+
"CLAUDE.md",
|
|
43
|
+
"ai-docs/**/*"
|
|
40
44
|
],
|
|
41
45
|
"publishConfig": {
|
|
42
46
|
"access": "public",
|
|
43
47
|
"provenance": true
|
|
44
48
|
},
|
|
45
49
|
"devDependencies": {
|
|
46
|
-
"@testcontainers/postgresql": "^
|
|
50
|
+
"@testcontainers/postgresql": "^12.0.4",
|
|
47
51
|
"@types/pg": "^8.20.0",
|
|
48
52
|
"@types/pg-cursor": "^2.7.2",
|
|
49
|
-
"effect": "^4.0.0-
|
|
53
|
+
"effect": "^4.0.0-rc.108"
|
|
50
54
|
},
|
|
51
55
|
"peerDependencies": {
|
|
52
|
-
"effect": "^4.0.0-
|
|
56
|
+
"effect": "^4.0.0-rc.108"
|
|
53
57
|
},
|
|
54
58
|
"dependencies": {
|
|
55
59
|
"pg": "^8.22.0",
|
|
56
|
-
"pg-connection-string": "2.14.0",
|
|
60
|
+
"pg-connection-string": "^2.14.0",
|
|
57
61
|
"pg-cursor": "^2.21.0",
|
|
58
62
|
"pg-pool": "^3.14.0",
|
|
59
63
|
"pg-types": "^4.1.0"
|
|
@@ -62,8 +66,6 @@
|
|
|
62
66
|
"codegen": "effect-utils codegen",
|
|
63
67
|
"build": "tsc -b tsconfig.json && pnpm babel",
|
|
64
68
|
"babel": "babel dist --plugins annotate-pure-calls --out-dir dist --source-maps",
|
|
65
|
-
"check": "tsc -b tsconfig.json"
|
|
66
|
-
"test": "vitest",
|
|
67
|
-
"coverage": "vitest --coverage"
|
|
69
|
+
"check": "tsc -b tsconfig.json"
|
|
68
70
|
}
|
|
69
71
|
}
|
package/src/PgClient.ts
CHANGED
|
@@ -73,7 +73,7 @@ export type TypeId = "~@effect/sql-pg/PgClient"
|
|
|
73
73
|
/**
|
|
74
74
|
* PostgreSQL client service, extending `SqlClient` with JSON parameter fragments and LISTEN/NOTIFY helpers.
|
|
75
75
|
*
|
|
76
|
-
* @category
|
|
76
|
+
* @category services
|
|
77
77
|
* @since 4.0.0
|
|
78
78
|
*/
|
|
79
79
|
export interface PgClient extends Client.SqlClient {
|
|
@@ -99,7 +99,7 @@ export const PgClient = Context.Service<PgClient>("@effect/sql-pg/PgClient")
|
|
|
99
99
|
/**
|
|
100
100
|
* Configuration for a PostgreSQL client, including connection, TLS, custom stream, application name, type parser, JSON transform, and query/result name transform options.
|
|
101
101
|
*
|
|
102
|
-
* @category
|
|
102
|
+
* @category models
|
|
103
103
|
* @since 4.0.0
|
|
104
104
|
*/
|
|
105
105
|
export interface PgClientConfig {
|
|
@@ -129,7 +129,7 @@ export interface PgClientConfig {
|
|
|
129
129
|
/**
|
|
130
130
|
* PostgreSQL pool configuration, extending `PgClientConfig` with idle timeout, pool size, and connection lifetime settings.
|
|
131
131
|
*
|
|
132
|
-
* @category
|
|
132
|
+
* @category models
|
|
133
133
|
* @since 4.0.0
|
|
134
134
|
*/
|
|
135
135
|
export interface PgPoolConfig extends PgClientConfig {
|
|
@@ -219,8 +219,9 @@ export const makeClient = (
|
|
|
219
219
|
*/
|
|
220
220
|
readonly acquireForStream?: boolean | undefined
|
|
221
221
|
}
|
|
222
|
-
): Effect.Effect<PgClient, SqlError, Scope.Scope | Reactivity.Reactivity> =>
|
|
223
|
-
|
|
222
|
+
): Effect.Effect<PgClient, SqlError, Scope.Scope | Reactivity.Reactivity> => {
|
|
223
|
+
function onError() {}
|
|
224
|
+
return fromClient({
|
|
224
225
|
...options,
|
|
225
226
|
acquire: Effect.acquireRelease(
|
|
226
227
|
Effect.tryPromise({
|
|
@@ -237,13 +238,17 @@ export const makeClient = (
|
|
|
237
238
|
application_name: options.applicationName ?? "@effect/sql-pg",
|
|
238
239
|
types: options.types
|
|
239
240
|
})
|
|
241
|
+
client.on("error", onError)
|
|
240
242
|
await client.connect()
|
|
241
243
|
return client
|
|
242
244
|
},
|
|
243
245
|
catch: (cause) => new SqlError({ reason: classifyError(cause, "PgClient: Failed to connect", "connect") })
|
|
244
246
|
}),
|
|
245
247
|
(client) =>
|
|
246
|
-
Effect.promise(() =>
|
|
248
|
+
Effect.promise(() => {
|
|
249
|
+
client.off("error", onError)
|
|
250
|
+
return client.end()
|
|
251
|
+
}).pipe(
|
|
247
252
|
Effect.timeoutOption(1000)
|
|
248
253
|
),
|
|
249
254
|
{ interruptible: true }
|
|
@@ -264,6 +269,7 @@ export const makeClient = (
|
|
|
264
269
|
),
|
|
265
270
|
acquireForStream: options.acquireForStream ?? false
|
|
266
271
|
})
|
|
272
|
+
}
|
|
267
273
|
|
|
268
274
|
/**
|
|
269
275
|
* Builds a PostgreSQL client from a scoped `pg` pool acquisition effect, deriving transaction, streaming, and LISTEN/NOTIFY support from that pool.
|
|
@@ -522,6 +528,17 @@ export const fromClient = Effect.fnUntraced(function*(
|
|
|
522
528
|
)
|
|
523
529
|
const connection = makeConection(client)
|
|
524
530
|
const acquirer = semaphore.withPermit(Effect.succeed(connection))
|
|
531
|
+
const transactionAcquirer = Effect.uninterruptibleMask((restore) => {
|
|
532
|
+
const fiber = Fiber.getCurrent()!
|
|
533
|
+
const scope = Context.getUnsafe(fiber.context, Scope.Scope)
|
|
534
|
+
return Effect.as(
|
|
535
|
+
Effect.tap(
|
|
536
|
+
restore(semaphore.take(1)),
|
|
537
|
+
() => Scope.addFinalizer(scope, semaphore.release(1))
|
|
538
|
+
),
|
|
539
|
+
connection
|
|
540
|
+
)
|
|
541
|
+
})
|
|
525
542
|
|
|
526
543
|
const config: PgClientConfig = {
|
|
527
544
|
...options,
|
|
@@ -535,7 +552,7 @@ export const fromClient = Effect.fnUntraced(function*(
|
|
|
535
552
|
|
|
536
553
|
return yield* makeWith({
|
|
537
554
|
acquirer,
|
|
538
|
-
transactionAcquirer
|
|
555
|
+
transactionAcquirer,
|
|
539
556
|
listenAcquirer: streamClient,
|
|
540
557
|
config,
|
|
541
558
|
spanAttributes: options.spanAttributes,
|
|
@@ -865,18 +882,18 @@ const escape = Statement.defaultEscape("\"")
|
|
|
865
882
|
/**
|
|
866
883
|
* PostgreSQL-specific custom statement fragments supported by the compiler, currently JSON parameter fragments.
|
|
867
884
|
*
|
|
868
|
-
* @category
|
|
885
|
+
* @category models
|
|
869
886
|
* @since 4.0.0
|
|
870
887
|
*/
|
|
871
888
|
export type PgCustom = PgJson
|
|
872
889
|
|
|
873
890
|
/**
|
|
874
|
-
* @category
|
|
891
|
+
* @category models
|
|
875
892
|
* @since 4.0.0
|
|
876
893
|
*/
|
|
877
894
|
interface PgJson extends Custom<"PgJson", unknown> {}
|
|
878
895
|
/**
|
|
879
|
-
* @category
|
|
896
|
+
* @category constructors
|
|
880
897
|
* @since 4.0.0
|
|
881
898
|
*/
|
|
882
899
|
const PgJson = Statement.custom<PgJson>("PgJson")
|
package/src/PgMigrator.ts
CHANGED
|
@@ -29,7 +29,7 @@ export * from "effect/unstable/sql/Migrator"
|
|
|
29
29
|
/**
|
|
30
30
|
* Runs PostgreSQL SQL migrations using the configured clients. Schema dumps use `pg_dump` and require child process, filesystem, and path services.
|
|
31
31
|
*
|
|
32
|
-
* @category
|
|
32
|
+
* @category running
|
|
33
33
|
* @since 4.0.0
|
|
34
34
|
*/
|
|
35
35
|
export const run: <R2 = never>(
|