@zintrust/db-postgres 0.1.30 → 0.1.43

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.
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@zintrust/db-postgres",
3
3
  "version": "0.1.27",
4
- "buildDate": "2026-01-29T08:06:05.071Z",
4
+ "buildDate": "2026-02-19T05:35:52.396Z",
5
5
  "buildEnvironment": {
6
6
  "node": "v20.20.0",
7
7
  "platform": "linux",
8
8
  "arch": "x64"
9
9
  },
10
10
  "git": {
11
- "commit": "1555458",
11
+ "commit": "4e0a37b",
12
12
  "branch": "master"
13
13
  },
14
14
  "package": {
@@ -28,8 +28,8 @@
28
28
  "sha256": "6090d1757bf63ac7ac510a59ccfd9137e5b0b9e32b2cbebd0d5bbbe3834a7233"
29
29
  },
30
30
  "index.js": {
31
- "size": 5762,
32
- "sha256": "e4e1b97359b15214fc18982ef17f747b9eb759ee9d1e5318a3111844c3d78ac6"
31
+ "size": 7153,
32
+ "sha256": "b7f5b91a93b7e55bd9c99702ad333280eb35691247ef5ee88de822e0d5c0c792"
33
33
  },
34
34
  "register.d.ts": {
35
35
  "size": 183,
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { ErrorFactory, FeatureFlags, Logger, QueryBuilder } from '@zintrust/core';
1
+ import { Cloudflare, ErrorFactory, FeatureFlags, Logger, QueryBuilder } from '@zintrust/core';
2
2
  function isMissingEsmPackage(error, packageName) {
3
3
  if (error === null || typeof error !== 'object')
4
4
  return false;
@@ -30,6 +30,15 @@ async function loadPgPoolCtor() {
30
30
  // Dynamic import keeps this package usable even if pg is missing.
31
31
  return (await import('pg'));
32
32
  }
33
+ async function loadCloudflareSocketFactory() {
34
+ try {
35
+ const { CloudflareSocket } = await import('@zintrust/core');
36
+ return ({ host, port, tls, timeoutMs }) => CloudflareSocket.create(host, port, { tls, timeoutMs });
37
+ }
38
+ catch (error) {
39
+ throw ErrorFactory.createConfigError('Cloudflare Workers socket support requires cloudflare:sockets compatibility (set compatibility_date >= 2024-01-15).', error);
40
+ }
41
+ }
33
42
  function ensurePool(state) {
34
43
  if (!state.connected || state.pool === undefined) {
35
44
  throw ErrorFactory.createConnectionError('Database not connected');
@@ -42,7 +51,29 @@ async function connect(state, config) {
42
51
  try {
43
52
  const { Pool } = await loadPgPoolCtor();
44
53
  const { host, port, database, user, password } = getConnectionParams(config);
45
- state.pool = new Pool({ host, port, database, user, password });
54
+ const workersEnv = Cloudflare.getWorkersEnv();
55
+ const isWorkersRuntime = workersEnv !== null;
56
+ const tlsEnabled = Boolean(config.ssl);
57
+ const timeoutMs = typeof config.socketTimeoutMs === 'number'
58
+ ? config.socketTimeoutMs
59
+ : 30000;
60
+ if (isWorkersRuntime) {
61
+ if (!Cloudflare.isCloudflareSocketsEnabled()) {
62
+ throw ErrorFactory.createConfigError('Cloudflare sockets are disabled. Set ENABLE_CLOUDFLARE_SOCKETS=true to use PostgreSQL sockets on Workers.');
63
+ }
64
+ const createSocket = await loadCloudflareSocketFactory();
65
+ state.pool = new Pool({
66
+ host,
67
+ port,
68
+ database,
69
+ user,
70
+ password,
71
+ stream: () => createSocket({ host, port, tls: tlsEnabled, timeoutMs: Number(timeoutMs) }),
72
+ });
73
+ }
74
+ else {
75
+ state.pool = new Pool({ host, port, database, user, password });
76
+ }
46
77
  await state.pool.query('SELECT 1');
47
78
  state.connected = true;
48
79
  Logger.info(`✓ PostgreSQL connected (${host}:${port})`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zintrust/db-postgres",
3
- "version": "0.1.30",
3
+ "version": "0.1.43",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -22,7 +22,7 @@
22
22
  "node": ">=20.0.0"
23
23
  },
24
24
  "peerDependencies": {
25
- "@zintrust/core": "^0.1.30"
25
+ "@zintrust/core": "^0.1.43"
26
26
  },
27
27
  "publishConfig": {
28
28
  "access": "public"