@owlmeans/postgres-resource 0.1.18-rc.40 → 0.1.18-rc.41
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/README.md +1 -1
- package/agent-meta/manifest.json +2 -2
- package/agent-meta/skills/postgres-resource/SKILL.md +1 -1
- package/build/errors.d.ts +3 -1
- package/build/errors.d.ts.map +1 -1
- package/build/errors.js +4 -2
- package/build/errors.js.map +1 -1
- package/build/utils/migrations.d.ts.map +1 -1
- package/build/utils/migrations.js +9 -6
- package/build/utils/migrations.js.map +1 -1
- package/package.json +1 -1
- package/src/errors.ts +4 -2
- package/src/utils/migrations.ts +9 -6
- package/tests/errors.spec.ts +11 -0
package/README.md
CHANGED
|
@@ -13,7 +13,7 @@ SQL. Other stores fit other shapes:
|
|
|
13
13
|
## Installation
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
|
-
bun add @owlmeans/postgres-resource@^0.1.18-rc.
|
|
16
|
+
bun add @owlmeans/postgres-resource@^0.1.18-rc.41 @owlmeans/postgres@^0.1.18-rc.43 pg
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
`pg` and `ajv` are peer dependencies of this package. `@owlmeans/postgres` provides the connection
|
package/agent-meta/manifest.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 2,
|
|
3
3
|
"package": "@owlmeans/postgres-resource",
|
|
4
|
-
"version": "0.1.18-rc.
|
|
5
|
-
"generatedAt": "2026-10-
|
|
4
|
+
"version": "0.1.18-rc.41",
|
|
5
|
+
"generatedAt": "2026-10-03T15:33:53.022Z",
|
|
6
6
|
"canonicalRepo": "https://github.com/owlmeans/common",
|
|
7
7
|
"entries": [
|
|
8
8
|
{
|
|
@@ -8,7 +8,7 @@ user-invocable: false
|
|
|
8
8
|
# @owlmeans/postgres-resource
|
|
9
9
|
|
|
10
10
|
**Layer:** Infra
|
|
11
|
-
**Install:** `"@owlmeans/postgres-resource": "^0.1.18-rc.
|
|
11
|
+
**Install:** `"@owlmeans/postgres-resource": "^0.1.18-rc.41"` in `dependencies` (peers `pg`, `ajv`)
|
|
12
12
|
|
|
13
13
|
The Postgres counterpart of [[mongo-resource]]. The difference that governs everything else: a
|
|
14
14
|
Mongo collection has no structure, a Postgres table does — so **the resource layer owns the DDL**
|
package/build/errors.d.ts
CHANGED
|
@@ -65,6 +65,8 @@ export declare const describePgError: (error: unknown) => string;
|
|
|
65
65
|
* Translate a raw `pg` driver error into the framework's error vocabulary, so a driver
|
|
66
66
|
* type never escapes the package. Errors that already are `ResilientError`s pass through
|
|
67
67
|
* untouched — the reconciler and the migration runner raise their own.
|
|
68
|
+
* A migration may supply its resolved SQL; placeholders stay intact and parameter values
|
|
69
|
+
* are never added. The statement travels in the message so error marshalling preserves it.
|
|
68
70
|
*/
|
|
69
|
-
export declare const pgErrorToResourceError: (error: unknown) => Error;
|
|
71
|
+
export declare const pgErrorToResourceError: (error: unknown, query?: string) => Error;
|
|
70
72
|
//# sourceMappingURL=errors.d.ts.map
|
package/build/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AACA,OAAO,EAC0B,aAAa,EAC7C,MAAM,oBAAoB,CAAA;AAI3B,qBAAa,aAAc,SAAQ,aAAa;IAC9C,OAAuB,QAAQ,SAA2C;IAE1E,YAAY,OAAO,GAAE,MAAgB,EAGpC;CACF;AAED,oFAAoF;AACpF,qBAAa,iBAAkB,SAAQ,aAAa;IAClD,OAAuB,QAAQ,SAAuC;IAEtE,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,iBAAiB;IACzD,OAAuB,QAAQ,SAA8C;IAE7E,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED,qBAAa,uBAAwB,SAAQ,aAAa;IACxD,OAAuB,QAAQ,SAA6C;IAE5E,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED,qBAAa,uBAAwB,SAAQ,uBAAuB;IAClE,OAAuB,QAAQ,SAAkD;IAEjF,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED,qBAAa,kBAAmB,SAAQ,uBAAuB;IAC7D,OAAuB,QAAQ,SAA6C;IAE5E,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED,sFAAsF;AACtF,qBAAa,qBAAsB,SAAQ,aAAa;IACtD,OAAuB,QAAQ,SAA2C;IAE1E,SAAgB,SAAS,EAAE,OAAO,CAAO;IAEzC,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED,oEAAoE;AACpE,qBAAa,wBAAyB,SAAQ,aAAa;IACzD,OAAuB,QAAQ,SAA8C;IAE7E,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED,qBAAa,uBAAwB,SAAQ,aAAa;IACxD,OAAuB,QAAQ,SAA6C;IAE5E,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED,6CAA6C;AAC7C,qBAAa,sBAAuB,SAAQ,aAAa;IACvD,OAAuB,QAAQ,SAA4C;IAE3E,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AA0CD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,UAAW,OAAO,KAAG,MAOhD,CAAA;AAeD
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AACA,OAAO,EAC0B,aAAa,EAC7C,MAAM,oBAAoB,CAAA;AAI3B,qBAAa,aAAc,SAAQ,aAAa;IAC9C,OAAuB,QAAQ,SAA2C;IAE1E,YAAY,OAAO,GAAE,MAAgB,EAGpC;CACF;AAED,oFAAoF;AACpF,qBAAa,iBAAkB,SAAQ,aAAa;IAClD,OAAuB,QAAQ,SAAuC;IAEtE,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,iBAAiB;IACzD,OAAuB,QAAQ,SAA8C;IAE7E,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED,qBAAa,uBAAwB,SAAQ,aAAa;IACxD,OAAuB,QAAQ,SAA6C;IAE5E,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED,qBAAa,uBAAwB,SAAQ,uBAAuB;IAClE,OAAuB,QAAQ,SAAkD;IAEjF,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED,qBAAa,kBAAmB,SAAQ,uBAAuB;IAC7D,OAAuB,QAAQ,SAA6C;IAE5E,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED,sFAAsF;AACtF,qBAAa,qBAAsB,SAAQ,aAAa;IACtD,OAAuB,QAAQ,SAA2C;IAE1E,SAAgB,SAAS,EAAE,OAAO,CAAO;IAEzC,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED,oEAAoE;AACpE,qBAAa,wBAAyB,SAAQ,aAAa;IACzD,OAAuB,QAAQ,SAA8C;IAE7E,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED,qBAAa,uBAAwB,SAAQ,aAAa;IACxD,OAAuB,QAAQ,SAA6C;IAE5E,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED,6CAA6C;AAC7C,qBAAa,sBAAuB,SAAQ,aAAa;IACvD,OAAuB,QAAQ,SAA4C;IAE3E,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AA0CD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,UAAW,OAAO,KAAG,MAOhD,CAAA;AAeD;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,UAAW,OAAO,UAAU,MAAM,KAAG,KA4CvE,CAAA"}
|
package/build/errors.js
CHANGED
|
@@ -146,8 +146,10 @@ const describe = (error) => {
|
|
|
146
146
|
* Translate a raw `pg` driver error into the framework's error vocabulary, so a driver
|
|
147
147
|
* type never escapes the package. Errors that already are `ResilientError`s pass through
|
|
148
148
|
* untouched — the reconciler and the migration runner raise their own.
|
|
149
|
+
* A migration may supply its resolved SQL; placeholders stay intact and parameter values
|
|
150
|
+
* are never added. The statement travels in the message so error marshalling preserves it.
|
|
149
151
|
*/
|
|
150
|
-
export const pgErrorToResourceError = (error) => {
|
|
152
|
+
export const pgErrorToResourceError = (error, query) => {
|
|
151
153
|
if (error instanceof ResilientError) {
|
|
152
154
|
return error;
|
|
153
155
|
}
|
|
@@ -155,7 +157,7 @@ export const pgErrorToResourceError = (error) => {
|
|
|
155
157
|
if (!isDriverError(driver)) {
|
|
156
158
|
return error instanceof Error ? error : new PostgresError(`${error}`);
|
|
157
159
|
}
|
|
158
|
-
const message = describe(driver);
|
|
160
|
+
const message = describe(driver) + (query == null ? '' : `\nSQL: ${query}`);
|
|
159
161
|
const produce = () => {
|
|
160
162
|
switch (driver.code) {
|
|
161
163
|
case PgErrorCode.UniqueViolation:
|
package/build/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../src/utils/migrations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnE,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,IAAI,CAAA;AAGpD,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAGxD;;;GAGG;AACH,eAAO,MAAM,MAAM,WACT,UAAU,WAAW,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,MAAM,KACrF,
|
|
1
|
+
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../src/utils/migrations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnE,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,IAAI,CAAA;AAGpD,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAGxD;;;GAGG;AACH,eAAO,MAAM,MAAM,WACT,UAAU,WAAW,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,MAAM,KACrF,UAkCD,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,WACrB,UAAU,QACZ,SAAS,SACR,MAAM,WACJ,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,OAC5B,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,MAAM,KAC9B,cAAc,CAAC,UAAU,CA4E3B,CAAA"}
|
|
@@ -7,30 +7,33 @@ import { qualify, quoteIdent } from './name.js';
|
|
|
7
7
|
export const makeTx = (client, resolve, ref) => ({
|
|
8
8
|
client,
|
|
9
9
|
query: async (text, params) => {
|
|
10
|
+
const query = resolve(text);
|
|
10
11
|
try {
|
|
11
|
-
const result = await client.query(
|
|
12
|
+
const result = await client.query(query, params);
|
|
12
13
|
return result.rows;
|
|
13
14
|
}
|
|
14
15
|
catch (error) {
|
|
15
|
-
throw pgErrorToResourceError(error);
|
|
16
|
+
throw pgErrorToResourceError(error, query);
|
|
16
17
|
}
|
|
17
18
|
},
|
|
18
19
|
queryOne: async (text, params) => {
|
|
20
|
+
const query = resolve(text);
|
|
19
21
|
try {
|
|
20
|
-
const result = await client.query(
|
|
22
|
+
const result = await client.query(query, params);
|
|
21
23
|
return result.rows[0] ?? null;
|
|
22
24
|
}
|
|
23
25
|
catch (error) {
|
|
24
|
-
throw pgErrorToResourceError(error);
|
|
26
|
+
throw pgErrorToResourceError(error, query);
|
|
25
27
|
}
|
|
26
28
|
},
|
|
27
29
|
execute: async (text, params) => {
|
|
30
|
+
const query = resolve(text);
|
|
28
31
|
try {
|
|
29
|
-
const result = await client.query(
|
|
32
|
+
const result = await client.query(query, params);
|
|
30
33
|
return result.rowCount ?? 0;
|
|
31
34
|
}
|
|
32
35
|
catch (error) {
|
|
33
|
-
throw pgErrorToResourceError(error);
|
|
36
|
+
throw pgErrorToResourceError(error, query);
|
|
34
37
|
}
|
|
35
38
|
},
|
|
36
39
|
ref
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../src/utils/migrations.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAErD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAE/C;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CACpB,MAAkB,EAAE,OAAiC,EAAE,GAA+B,EAC1E,EAAE,CAAC,CAAC;IAChB,MAAM;IAEN,KAAK,EAAE,KAAK,EAA+C,IAAY,EAAE,MAAkB,EAAE,EAAE;QAC7F,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAM,
|
|
1
|
+
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../src/utils/migrations.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/errors.ts
CHANGED
|
@@ -183,8 +183,10 @@ const describe = (error: PgDriverError): string => {
|
|
|
183
183
|
* Translate a raw `pg` driver error into the framework's error vocabulary, so a driver
|
|
184
184
|
* type never escapes the package. Errors that already are `ResilientError`s pass through
|
|
185
185
|
* untouched — the reconciler and the migration runner raise their own.
|
|
186
|
+
* A migration may supply its resolved SQL; placeholders stay intact and parameter values
|
|
187
|
+
* are never added. The statement travels in the message so error marshalling preserves it.
|
|
186
188
|
*/
|
|
187
|
-
export const pgErrorToResourceError = (error: unknown): Error => {
|
|
189
|
+
export const pgErrorToResourceError = (error: unknown, query?: string): Error => {
|
|
188
190
|
if (error instanceof ResilientError) {
|
|
189
191
|
return error
|
|
190
192
|
}
|
|
@@ -193,7 +195,7 @@ export const pgErrorToResourceError = (error: unknown): Error => {
|
|
|
193
195
|
return error instanceof Error ? error : new PostgresError(`${error}`)
|
|
194
196
|
}
|
|
195
197
|
|
|
196
|
-
const message = describe(driver)
|
|
198
|
+
const message = describe(driver) + (query == null ? '' : `\nSQL: ${query}`)
|
|
197
199
|
const produce = (): Error => {
|
|
198
200
|
switch (driver.code) {
|
|
199
201
|
case PgErrorCode.UniqueViolation:
|
package/src/utils/migrations.ts
CHANGED
|
@@ -15,29 +15,32 @@ export const makeTx = (
|
|
|
15
15
|
client,
|
|
16
16
|
|
|
17
17
|
query: async <Row extends QueryResultRow = QueryResultRow>(text: string, params?: unknown[]) => {
|
|
18
|
+
const query = resolve(text)
|
|
18
19
|
try {
|
|
19
|
-
const result = await client.query<Row>(
|
|
20
|
+
const result = await client.query<Row>(query, params as never[])
|
|
20
21
|
return result.rows
|
|
21
22
|
} catch (error) {
|
|
22
|
-
throw pgErrorToResourceError(error)
|
|
23
|
+
throw pgErrorToResourceError(error, query)
|
|
23
24
|
}
|
|
24
25
|
},
|
|
25
26
|
|
|
26
27
|
queryOne: async <Row extends QueryResultRow = QueryResultRow>(text: string, params?: unknown[]) => {
|
|
28
|
+
const query = resolve(text)
|
|
27
29
|
try {
|
|
28
|
-
const result = await client.query<Row>(
|
|
30
|
+
const result = await client.query<Row>(query, params as never[])
|
|
29
31
|
return result.rows[0] ?? null
|
|
30
32
|
} catch (error) {
|
|
31
|
-
throw pgErrorToResourceError(error)
|
|
33
|
+
throw pgErrorToResourceError(error, query)
|
|
32
34
|
}
|
|
33
35
|
},
|
|
34
36
|
|
|
35
37
|
execute: async (text: string, params?: unknown[]) => {
|
|
38
|
+
const query = resolve(text)
|
|
36
39
|
try {
|
|
37
|
-
const result = await client.query(
|
|
40
|
+
const result = await client.query(query, params as never[])
|
|
38
41
|
return result.rowCount ?? 0
|
|
39
42
|
} catch (error) {
|
|
40
|
-
throw pgErrorToResourceError(error)
|
|
43
|
+
throw pgErrorToResourceError(error, query)
|
|
41
44
|
}
|
|
42
45
|
},
|
|
43
46
|
|
package/tests/errors.spec.ts
CHANGED
|
@@ -97,6 +97,17 @@ describe('@owlmeans/postgres-resource — driver error translation', () => {
|
|
|
97
97
|
expect(pgErrorToResourceError(original)).toBe(original)
|
|
98
98
|
})
|
|
99
99
|
|
|
100
|
+
test('preserves the executed SQL and driver cause for migration diagnostics', () => {
|
|
101
|
+
const original = driver({ code: '42703', message: 'column o.enquiryId does not exist' })
|
|
102
|
+
const query = 'UPDATE "app"."opportunity" o SET "enquiryId" = $1 WHERE o."enquiryId" IS NULL'
|
|
103
|
+
const failure = pgErrorToResourceError(original, query)
|
|
104
|
+
|
|
105
|
+
expect(failure).toBeInstanceOf(PostgresError)
|
|
106
|
+
expect(failure.message).toContain('42703')
|
|
107
|
+
expect(failure.message).toContain(`SQL: ${query}`)
|
|
108
|
+
expect(failure.cause).toBe(original)
|
|
109
|
+
})
|
|
110
|
+
|
|
100
111
|
test('leaves an error that is not from the driver alone', () => {
|
|
101
112
|
const plain = new Error('not postgres at all')
|
|
102
113
|
|