@medicine-wheel/data-store-postgres 0.2.2
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 +20 -0
- package/dist/connection.d.ts +16 -0
- package/dist/connection.d.ts.map +1 -0
- package/dist/connection.js +129 -0
- package/dist/connection.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/package.json +52 -0
package/README.md
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# @medicine-wheel/data-store-postgres
|
|
2
|
+
|
|
3
|
+
Minimal PostgreSQL/Neon scaffold for the Medicine Wheel workspace.
|
|
4
|
+
|
|
5
|
+
What it gives the local agent:
|
|
6
|
+
- a workspace package placeholder for a Postgres backend
|
|
7
|
+
- a shared `pg` Pool helper keyed by effective connection options
|
|
8
|
+
- a typed seam that reuses `ontology-core` records
|
|
9
|
+
- SSL only when explicitly requested via options, connection-string parameters, or `PGSSLMODE=require|verify-ca|verify-full`
|
|
10
|
+
|
|
11
|
+
Convergence note:
|
|
12
|
+
- the selected long-term provider abstraction lives in `src/storage-provider`
|
|
13
|
+
- this package remains a small Postgres scaffold, not the primary backend-selection surface
|
|
14
|
+
|
|
15
|
+
What it does not do yet:
|
|
16
|
+
- no tables
|
|
17
|
+
- no migrations
|
|
18
|
+
- no CRUD beyond pool management
|
|
19
|
+
- no app wiring
|
|
20
|
+
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Pool, type PoolClient } from 'pg';
|
|
2
|
+
import type { CeremonyLog, RelationalEdge, RelationalNode } from '@medicine-wheel/ontology-core';
|
|
3
|
+
export type PostgresProviderRecord = RelationalNode | RelationalEdge | CeremonyLog;
|
|
4
|
+
export interface PostgresConnectionOptions {
|
|
5
|
+
connectionString?: string;
|
|
6
|
+
ssl?: boolean;
|
|
7
|
+
max?: number;
|
|
8
|
+
idleTimeoutMillis?: number;
|
|
9
|
+
applicationName?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function createPostgresPool(options?: PostgresConnectionOptions): Pool;
|
|
12
|
+
export declare function getPostgresPool(options?: PostgresConnectionOptions): Pool;
|
|
13
|
+
export declare function withPostgresClient<T>(fn: (client: PoolClient) => Promise<T>, options?: PostgresConnectionOptions): Promise<T>;
|
|
14
|
+
export declare function closePostgresPool(options?: PostgresConnectionOptions): Promise<void>;
|
|
15
|
+
export declare function resetPostgresPoolForTests(): Promise<void>;
|
|
16
|
+
//# sourceMappingURL=connection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,UAAU,EAAmB,MAAM,IAAI,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEjG,MAAM,MAAM,sBAAsB,GAAG,cAAc,GAAG,cAAc,GAAG,WAAW,CAAC;AAEnF,MAAM,WAAW,yBAAyB;IACxC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAsBD,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,yBAAyB,GAAG,IAAI,CAE5E;AAED,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,yBAAyB,GAAG,IAAI,CAWzE;AAED,wBAAsB,kBAAkB,CAAC,CAAC,EACxC,EAAE,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,EACtC,OAAO,CAAC,EAAE,yBAAyB,GAClC,OAAO,CAAC,CAAC,CAAC,CAOZ;AAED,wBAAsB,iBAAiB,CAAC,OAAO,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAc1F;AAED,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC,CAO/D"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createPostgresPool = createPostgresPool;
|
|
4
|
+
exports.getPostgresPool = getPostgresPool;
|
|
5
|
+
exports.withPostgresClient = withPostgresClient;
|
|
6
|
+
exports.closePostgresPool = closePostgresPool;
|
|
7
|
+
exports.resetPostgresPoolForTests = resetPostgresPoolForTests;
|
|
8
|
+
const pg_1 = require("pg");
|
|
9
|
+
const singletonPools = new Map();
|
|
10
|
+
function resolvePoolConfig(options) {
|
|
11
|
+
const connectionString = options?.connectionString ??
|
|
12
|
+
process.env.DATABASE_URL ??
|
|
13
|
+
process.env.POSTGRES_URL ??
|
|
14
|
+
process.env.NEON_DATABASE_URL;
|
|
15
|
+
const useSsl = resolveSslEnabled(connectionString, options?.ssl);
|
|
16
|
+
return {
|
|
17
|
+
connectionString,
|
|
18
|
+
max: options?.max ?? 10,
|
|
19
|
+
idleTimeoutMillis: options?.idleTimeoutMillis ?? 30000,
|
|
20
|
+
application_name: options?.applicationName ?? '@medicine-wheel/data-store-postgres',
|
|
21
|
+
ssl: useSsl ? { rejectUnauthorized: true } : undefined,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
function createPostgresPool(options) {
|
|
25
|
+
return new pg_1.Pool(resolvePoolConfig(options));
|
|
26
|
+
}
|
|
27
|
+
function getPostgresPool(options) {
|
|
28
|
+
const poolKey = getPoolKey(options);
|
|
29
|
+
const existingPool = singletonPools.get(poolKey);
|
|
30
|
+
if (existingPool) {
|
|
31
|
+
return existingPool;
|
|
32
|
+
}
|
|
33
|
+
const pool = createPostgresPool(options);
|
|
34
|
+
singletonPools.set(poolKey, pool);
|
|
35
|
+
return pool;
|
|
36
|
+
}
|
|
37
|
+
async function withPostgresClient(fn, options) {
|
|
38
|
+
const client = await getPostgresPool(options).connect();
|
|
39
|
+
try {
|
|
40
|
+
return await fn(client);
|
|
41
|
+
}
|
|
42
|
+
finally {
|
|
43
|
+
client.release();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
async function closePostgresPool(options) {
|
|
47
|
+
if (options !== undefined) {
|
|
48
|
+
// Close only the pool that matches the given options, leaving others intact.
|
|
49
|
+
const poolKey = getPoolKey(options);
|
|
50
|
+
const pool = singletonPools.get(poolKey);
|
|
51
|
+
if (pool) {
|
|
52
|
+
await pool.end();
|
|
53
|
+
singletonPools.delete(poolKey);
|
|
54
|
+
}
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
await Promise.all(Array.from(singletonPools.values(), (pool) => pool.end()));
|
|
58
|
+
singletonPools.clear();
|
|
59
|
+
}
|
|
60
|
+
async function resetPostgresPoolForTests() {
|
|
61
|
+
if (process.env.NODE_ENV === 'production') {
|
|
62
|
+
throw new Error('resetPostgresPoolForTests must not be called in production');
|
|
63
|
+
}
|
|
64
|
+
// Close all pools so connections are not leaked between test suites.
|
|
65
|
+
await Promise.all(Array.from(singletonPools.values(), (pool) => pool.end()));
|
|
66
|
+
singletonPools.clear();
|
|
67
|
+
}
|
|
68
|
+
function resolveSslEnabled(connectionString, explicitSsl) {
|
|
69
|
+
if (explicitSsl !== undefined) {
|
|
70
|
+
return explicitSsl;
|
|
71
|
+
}
|
|
72
|
+
const sslFromConnectionString = readSslFromConnectionString(connectionString);
|
|
73
|
+
if (sslFromConnectionString !== undefined) {
|
|
74
|
+
return sslFromConnectionString;
|
|
75
|
+
}
|
|
76
|
+
return isSslModeEnabled(process.env.PGSSLMODE);
|
|
77
|
+
}
|
|
78
|
+
function readSslFromConnectionString(connectionString) {
|
|
79
|
+
if (!connectionString) {
|
|
80
|
+
return undefined;
|
|
81
|
+
}
|
|
82
|
+
try {
|
|
83
|
+
const url = new URL(connectionString);
|
|
84
|
+
const ssl = url.searchParams.get('ssl');
|
|
85
|
+
if (ssl !== null) {
|
|
86
|
+
return isAffirmativeValue(ssl);
|
|
87
|
+
}
|
|
88
|
+
const sslMode = url.searchParams.get('sslmode');
|
|
89
|
+
if (sslMode !== null) {
|
|
90
|
+
return isSslModeEnabled(sslMode);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
// Leave SSL disabled unless it was explicitly requested.
|
|
95
|
+
}
|
|
96
|
+
return undefined;
|
|
97
|
+
}
|
|
98
|
+
function isAffirmativeValue(value) {
|
|
99
|
+
switch (value.toLowerCase()) {
|
|
100
|
+
case '1':
|
|
101
|
+
case 'true':
|
|
102
|
+
case 'yes':
|
|
103
|
+
case 'on':
|
|
104
|
+
return true;
|
|
105
|
+
default:
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
function isSslModeEnabled(value) {
|
|
110
|
+
switch (value?.toLowerCase()) {
|
|
111
|
+
case 'require':
|
|
112
|
+
case 'verify-ca':
|
|
113
|
+
case 'verify-full':
|
|
114
|
+
return true;
|
|
115
|
+
default:
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
function getPoolKey(options) {
|
|
120
|
+
const config = resolvePoolConfig(options);
|
|
121
|
+
return JSON.stringify({
|
|
122
|
+
connectionString: config.connectionString ?? null,
|
|
123
|
+
max: config.max ?? null,
|
|
124
|
+
idleTimeoutMillis: config.idleTimeoutMillis ?? null,
|
|
125
|
+
application_name: config.application_name ?? null,
|
|
126
|
+
ssl: config.ssl === true,
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=connection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @medicine-wheel/data-store-postgres
|
|
3
|
+
*
|
|
4
|
+
* Minimal PostgreSQL/Neon provider scaffold for Medicine Wheel storage.
|
|
5
|
+
* This package only establishes pool management and a provider-ready surface.
|
|
6
|
+
*/
|
|
7
|
+
export { createPostgresPool, getPostgresPool, withPostgresClient, closePostgresPool, resetPostgresPoolForTests, } from './connection.js';
|
|
8
|
+
export type { PostgresConnectionOptions, PostgresProviderRecord, } from './connection.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,iBAAiB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @medicine-wheel/data-store-postgres
|
|
4
|
+
*
|
|
5
|
+
* Minimal PostgreSQL/Neon provider scaffold for Medicine Wheel storage.
|
|
6
|
+
* This package only establishes pool management and a provider-ready surface.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.resetPostgresPoolForTests = exports.closePostgresPool = exports.withPostgresClient = exports.getPostgresPool = exports.createPostgresPool = void 0;
|
|
10
|
+
var connection_js_1 = require("./connection.js");
|
|
11
|
+
Object.defineProperty(exports, "createPostgresPool", { enumerable: true, get: function () { return connection_js_1.createPostgresPool; } });
|
|
12
|
+
Object.defineProperty(exports, "getPostgresPool", { enumerable: true, get: function () { return connection_js_1.getPostgresPool; } });
|
|
13
|
+
Object.defineProperty(exports, "withPostgresClient", { enumerable: true, get: function () { return connection_js_1.withPostgresClient; } });
|
|
14
|
+
Object.defineProperty(exports, "closePostgresPool", { enumerable: true, get: function () { return connection_js_1.closePostgresPool; } });
|
|
15
|
+
Object.defineProperty(exports, "resetPostgresPoolForTests", { enumerable: true, get: function () { return connection_js_1.resetPostgresPoolForTests; } });
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,iDAMyB;AALvB,mHAAA,kBAAkB,OAAA;AAClB,gHAAA,eAAe,OAAA;AACf,mHAAA,kBAAkB,OAAA;AAClB,kHAAA,iBAAiB,OAAA;AACjB,0HAAA,yBAAyB,OAAA"}
|
package/package.json
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@medicine-wheel/data-store-postgres",
|
|
3
|
+
"version": "0.2.2",
|
|
4
|
+
"description": "PostgreSQL/Neon provider scaffold for the Medicine Wheel Developer Suite — shared pool management and provider-ready storage entrypoints",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"import": "./dist/index.js",
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"require": "./dist/index.js",
|
|
12
|
+
"default": "./dist/index.js"
|
|
13
|
+
},
|
|
14
|
+
"./connection": {
|
|
15
|
+
"import": "./dist/connection.js",
|
|
16
|
+
"types": "./dist/connection.d.ts",
|
|
17
|
+
"require": "./dist/connection.js",
|
|
18
|
+
"default": "./dist/connection.js"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"sideEffects": false,
|
|
22
|
+
"files": [
|
|
23
|
+
"dist",
|
|
24
|
+
"README.md"
|
|
25
|
+
],
|
|
26
|
+
"scripts": {
|
|
27
|
+
"build": "tsc",
|
|
28
|
+
"dev": "tsc --watch",
|
|
29
|
+
"lint": "tsc --noEmit",
|
|
30
|
+
"clean": "rm -rf dist",
|
|
31
|
+
"prepublishOnly": "npm run clean && npm run build"
|
|
32
|
+
},
|
|
33
|
+
"keywords": [
|
|
34
|
+
"medicine-wheel",
|
|
35
|
+
"postgres",
|
|
36
|
+
"neon",
|
|
37
|
+
"data-store",
|
|
38
|
+
"provider",
|
|
39
|
+
"relational-memory"
|
|
40
|
+
],
|
|
41
|
+
"author": "IAIP Collaborative - Shawinigan, QC",
|
|
42
|
+
"license": "MIT",
|
|
43
|
+
"dependencies": {
|
|
44
|
+
"@medicine-wheel/ontology-core": "^0.2.2",
|
|
45
|
+
"pg": "^8.20.0"
|
|
46
|
+
},
|
|
47
|
+
"devDependencies": {
|
|
48
|
+
"@types/node": "^20.10.0",
|
|
49
|
+
"@types/pg": "^8.20.0",
|
|
50
|
+
"typescript": "^5.3.0"
|
|
51
|
+
}
|
|
52
|
+
}
|