@powersync/service-jpgwire 0.18.5 → 0.20.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.
@@ -1,24 +1,10 @@
1
1
  // Fork of pgwire/index.js, customized to handle additional TLS options
2
2
  // Based on the version in commit 9532a395d6fa03a59c2231f0ec690806c90bd338
3
3
  // Modifications marked with `START POWERSYNC ...`
4
- import net from 'net';
5
- import tls from 'tls';
6
4
  import { createHash, pbkdf2 as _pbkdf2, randomFillSync } from 'crypto';
7
- import { once } from 'events';
8
5
  import { promisify } from 'util';
9
6
  import { _net, SaslScramSha256 } from 'pgwire/mod.js';
10
- import { recordBytesRead } from './metrics.js';
11
- // START POWERSYNC
12
- // pgwire doesn't natively support configuring timeouts, but we just hardcode a default.
13
- // Timeout idle connections after 6 minutes (we ping at least every 5 minutes).
14
- const POWERSYNC_SOCKET_DEFAULT_TIMEOUT = 360000;
15
- // Timeout for the initial connection (pre-TLS)
16
- // Must be less than the timeout for a HTTP request
17
- const POWERSYNC_SOCKET_CONNECT_TIMEOUT = 20000;
18
- // TCP keepalive delay in milliseconds.
19
- // This can help detect dead connections earlier.
20
- const POWERSYNC_SOCKET_KEEPALIVE_INITIAL_DELAY = 40000;
21
- // END POWERSYNC
7
+ import { SocketAdapter } from './socket_adapter.js';
22
8
  const pbkdf2 = promisify(_pbkdf2);
23
9
  Object.assign(SaslScramSha256.prototype, {
24
10
  _b64encode(bytes) {
@@ -39,8 +25,8 @@ Object.assign(SaslScramSha256.prototype, {
39
25
  }
40
26
  });
41
27
  Object.assign(_net, {
42
- connect({ hostname, port }) {
43
- return SocketAdapter.connect(hostname, port);
28
+ connect(options) {
29
+ return SocketAdapter.connect(options);
44
30
  },
45
31
  reconnectable(err) {
46
32
  return ['ENOTFOUND', 'ECONNREFUSED', 'ECONNRESET'].includes(err?.code);
@@ -60,124 +46,4 @@ Object.assign(_net, {
60
46
  return sockadapt.close();
61
47
  }
62
48
  });
63
- class SocketAdapter {
64
- static async connect(host, port) {
65
- // START POWERSYNC
66
- // Custom timeout handling
67
- const socket = net.connect({
68
- host,
69
- port,
70
- // This closes the connection if no data was sent or received for the given time,
71
- // even if the connection is still actaully alive.
72
- timeout: POWERSYNC_SOCKET_DEFAULT_TIMEOUT,
73
- // This configures TCP keepalive.
74
- keepAlive: true,
75
- keepAliveInitialDelay: POWERSYNC_SOCKET_KEEPALIVE_INITIAL_DELAY
76
- // Unfortunately it is not possible to set tcp_keepalive_intvl or
77
- // tcp_keepalive_probes here.
78
- });
79
- try {
80
- const timeout = setTimeout(() => {
81
- socket.destroy(new Error(`Timeout while connecting to ${host}:${port}`));
82
- }, POWERSYNC_SOCKET_CONNECT_TIMEOUT);
83
- await once(socket, 'connect');
84
- clearTimeout(timeout);
85
- return new this(socket);
86
- }
87
- catch (e) {
88
- socket.destroy();
89
- throw e;
90
- }
91
- // END POWERSYNC
92
- }
93
- constructor(socket) {
94
- this._readResume = Boolean; // noop
95
- this._writeResume = Boolean; // noop
96
- this._readPauseAsync = (resolve) => (this._readResume = resolve);
97
- this._writePauseAsync = (resolve) => (this._writeResume = resolve);
98
- this._error = null;
99
- /** @type {net.Socket} */
100
- this._socket = socket;
101
- this._socket.on('readable', (_) => this._readResume());
102
- this._socket.on('end', (_) => this._readResume());
103
- // START POWERSYNC
104
- // Custom timeout handling
105
- this._socket.on('timeout', (_) => {
106
- this._socket.destroy(new Error('Socket idle timeout'));
107
- });
108
- // END POWERSYNC
109
- this._socket.on('error', (error) => {
110
- this._error = error;
111
- this._readResume();
112
- this._writeResume();
113
- });
114
- }
115
- // START POWERSYNC CUSTOM TIMEOUT
116
- setTimeout(timeout) {
117
- this._socket.setTimeout(timeout);
118
- }
119
- // END POWERSYNC CUSTOM TIMEOUT
120
- async startTls(host, ca) {
121
- // START POWERSYNC CUSTOM OPTIONS HANDLING
122
- if (!Array.isArray(ca) && typeof ca[0] == 'object') {
123
- throw new Error('Invalid PowerSync TLS options');
124
- }
125
- const tlsOptions = ca[0];
126
- // https://nodejs.org/docs/latest-v14.x/api/tls.html#tls_tls_connect_options_callback
127
- const socket = this._socket;
128
- const tlsSocket = tls.connect({ socket, host, ...tlsOptions });
129
- // END POWERSYNC CUSTOM OPTIONS HANDLING
130
- await once(tlsSocket, 'secureConnect');
131
- // TODO check tlsSocket.authorized
132
- // if secure connection succeeded then we take underlying socket ownership,
133
- // otherwise underlying socket should be closed outside.
134
- tlsSocket.on('close', (_) => socket.destroy());
135
- return new this.constructor(tlsSocket);
136
- }
137
- /** @param {Uint8Array} out */
138
- async read(out) {
139
- let buf;
140
- for (;;) {
141
- if (this._error)
142
- throw this._error; // TODO callstack
143
- if (this._socket.readableEnded)
144
- return null;
145
- // POWERSYNC FIX: Read only as much data as available, instead of reading everything and
146
- // unshifting back onto the socket
147
- const toRead = Math.min(out.length, this._socket.readableLength);
148
- buf = this._socket.read(toRead);
149
- if (buf?.length)
150
- break;
151
- if (!buf)
152
- await new Promise(this._readPauseAsync);
153
- }
154
- if (buf.length > out.length) {
155
- throw new Error('Read more data than expected');
156
- }
157
- out.set(buf);
158
- // POWERSYNC: Add metrics
159
- recordBytesRead(buf.length);
160
- return buf.length;
161
- }
162
- async write(data) {
163
- // TODO assert Uint8Array
164
- // TODO need to copy data?
165
- if (this._error)
166
- throw this._error; // TODO callstack
167
- const p = new Promise(this._writePauseAsync);
168
- this._socket.write(data, this._writeResume);
169
- await p;
170
- if (this._error)
171
- throw this._error; // TODO callstack
172
- return data.length;
173
- }
174
- // async closeWrite() {
175
- // if (this._error) throw this._error; // TODO callstack
176
- // const socket_end = promisify(cb => this._socket.end(cb));
177
- // await socket_end();
178
- // }
179
- close() {
180
- this._socket.destroy(Error('socket destroyed'));
181
- }
182
- }
183
49
  //# sourceMappingURL=pgwire_node.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pgwire_node.js","sourceRoot":"","sources":["../src/pgwire_node.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pgwire_node.js","sourceRoot":"","sources":["../src/pgwire_node.js"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,0EAA0E;AAC1E,kDAAkD;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAEvE,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;AAElC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE;IACvC,UAAU,CAAC,KAAK;QACd,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IACD,UAAU,CAAC,GAAG;QACZ,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;IACrD,CAAC;IACD,YAAY,CAAC,CAAC;QACZ,OAAO,cAAc,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,KAAK,CAAC,KAAK,CAAC,GAAG;QACb,OAAO,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,UAAU;QAC7B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC9D,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;IAClB,OAAO,CAAC,OAAO;QACb,OAAO,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IACD,aAAa,CAAC,GAAG;QACf,OAAO,CAAC,WAAW,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACzE,CAAC;IACD,QAAQ,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE;QACvC,OAAO,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,CAAC,SAAS,EAAE,GAAG;QACjB,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IACD,KAAK,CAAC,SAAS,EAAE,IAAI;QACnB,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IACD,aAAa,CAAC,SAAS;QACrB,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,OAAO,SAAS,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;CACF,CAAC,CAAC"}
@@ -1,14 +1,27 @@
1
- import type { PgoutputRelation } from 'pgwire/mod.js';
2
- import { DatabaseInputRow } from '@powersync/service-sync-rules';
1
+ export declare enum PgTypeOid {
2
+ TEXT = 25,
3
+ UUID = 2950,
4
+ VARCHAR = 1043,
5
+ BOOL = 16,
6
+ BYTEA = 17,
7
+ INT2 = 21,
8
+ INT4 = 23,
9
+ OID = 26,
10
+ INT8 = 20,
11
+ FLOAT4 = 700,
12
+ FLOAT8 = 701,
13
+ DATE = 1082,
14
+ TIMESTAMP = 1114,
15
+ TIMESTAMPTZ = 1184,
16
+ JSON = 114,
17
+ JSONB = 3802,
18
+ PG_LSN = 3220
19
+ }
3
20
  export declare class PgType {
21
+ static getArrayType(typeOid: number): number | undefined;
4
22
  static decode(text: string, typeOid: number): any;
5
- static _elemTypeOid(arrayTypeOid: number): 25 | 2950 | 1043 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 26 | 27 | 28 | 29 | 30 | 71 | 75 | 81 | 83 | 114 | 142 | 5069 | 600 | 601 | 602 | 603 | 604 | 628 | 700 | 701 | 705 | 718 | 790 | 829 | 869 | 650 | 774 | 1033 | 1042 | 1082 | 1083 | 1114 | 1184 | 1186 | 1266 | 1560 | 1562 | 1700 | 1790 | 2202 | 2203 | 2204 | 2205 | 4191 | 2206 | 4096 | 4089 | 3220 | 3614 | 3642 | 3615 | 3734 | 3769 | 3802 | 4072 | undefined;
23
+ static _elemTypeOid(arrayTypeOid: number): number | undefined;
6
24
  static _decodeArray(text: string, elemTypeOid: number): any;
7
25
  static _decodeBytea(text: string): Uint8Array;
8
26
  static _encodeBytea(bytes: Uint8Array): string;
9
27
  }
10
- /**
11
- * We need a high level of control over how values are decoded, to make sure there is no loss
12
- * of precision in the process.
13
- */
14
- export declare function decodeTuple(relation: PgoutputRelation, tupleRaw: Record<string, any>): DatabaseInputRow;
@@ -1,184 +1,146 @@
1
1
  // Adapted from https://github.com/kagis/pgwire/blob/0dc927f9f8990a903f238737326e53ba1c8d094f/mod.js#L2218
2
- import { dateToSqlite, lsnMakeComparable, timestampToSqlite, timestamptzToSqlite } from './util.js';
3
2
  import { JsonContainer } from '@powersync/service-jsonbig';
3
+ import { dateToSqlite, lsnMakeComparable, timestampToSqlite, timestamptzToSqlite } from './util.js';
4
+ export var PgTypeOid;
5
+ (function (PgTypeOid) {
6
+ PgTypeOid[PgTypeOid["TEXT"] = 25] = "TEXT";
7
+ PgTypeOid[PgTypeOid["UUID"] = 2950] = "UUID";
8
+ PgTypeOid[PgTypeOid["VARCHAR"] = 1043] = "VARCHAR";
9
+ PgTypeOid[PgTypeOid["BOOL"] = 16] = "BOOL";
10
+ PgTypeOid[PgTypeOid["BYTEA"] = 17] = "BYTEA";
11
+ PgTypeOid[PgTypeOid["INT2"] = 21] = "INT2";
12
+ PgTypeOid[PgTypeOid["INT4"] = 23] = "INT4";
13
+ PgTypeOid[PgTypeOid["OID"] = 26] = "OID";
14
+ PgTypeOid[PgTypeOid["INT8"] = 20] = "INT8";
15
+ PgTypeOid[PgTypeOid["FLOAT4"] = 700] = "FLOAT4";
16
+ PgTypeOid[PgTypeOid["FLOAT8"] = 701] = "FLOAT8";
17
+ PgTypeOid[PgTypeOid["DATE"] = 1082] = "DATE";
18
+ PgTypeOid[PgTypeOid["TIMESTAMP"] = 1114] = "TIMESTAMP";
19
+ PgTypeOid[PgTypeOid["TIMESTAMPTZ"] = 1184] = "TIMESTAMPTZ";
20
+ PgTypeOid[PgTypeOid["JSON"] = 114] = "JSON";
21
+ PgTypeOid[PgTypeOid["JSONB"] = 3802] = "JSONB";
22
+ PgTypeOid[PgTypeOid["PG_LSN"] = 3220] = "PG_LSN";
23
+ })(PgTypeOid || (PgTypeOid = {}));
24
+ // Generate using:
25
+ // select '[' || typarray || ', ' || oid || '], // ' || typname from pg_catalog.pg_type WHERE typarray != 0;
26
+ const ARRAY_TO_ELEM_OID = new Map([
27
+ [1000, 16], // bool
28
+ [1001, 17], // bytea
29
+ [1002, 18], // char
30
+ [1003, 19], // name
31
+ [1016, 20], // int8
32
+ [1005, 21], // int2
33
+ [1006, 22], // int2vector
34
+ [1007, 23], // int4
35
+ [1008, 24], // regproc
36
+ [1009, 25], // text
37
+ [1028, 26], // oid
38
+ [1010, 27], // tid
39
+ [1011, 28], // xid
40
+ [1012, 29], // cid
41
+ [1013, 30], // oidvector
42
+ [210, 71], // pg_type
43
+ [270, 75], // pg_attribute
44
+ [272, 81], // pg_proc
45
+ [273, 83], // pg_class
46
+ [199, 114], // json
47
+ [143, 142], // xml
48
+ [271, 5069], // xid8
49
+ [1017, 600], // point
50
+ [1018, 601], // lseg
51
+ [1019, 602], // path
52
+ [1020, 603], // box
53
+ [1027, 604], // polygon
54
+ [629, 628], // line
55
+ [1021, 700], // float4
56
+ [1022, 701], // float8
57
+ [0, 705], // unknown
58
+ [719, 718], // circle
59
+ [791, 790], // money
60
+ [1040, 829], // macaddr
61
+ [1041, 869], // inet
62
+ [651, 650], // cidr
63
+ [775, 774], // macaddr8
64
+ [1034, 1033], // aclitem
65
+ [1014, 1042], // bpchar
66
+ [1015, 1043], // varchar
67
+ [1182, 1082], // date
68
+ [1183, 1083], // time
69
+ [1115, 1114], // timestamp
70
+ [1185, 1184], // timestamptz
71
+ [1187, 1186], // interval
72
+ [1270, 1266], // timetz
73
+ [1561, 1560], // bit
74
+ [1563, 1562], // varbit
75
+ [1231, 1700], // numeric
76
+ [2201, 1790], // refcursor
77
+ [2207, 2202], // regprocedure
78
+ [2208, 2203], // regoper
79
+ [2209, 2204], // regoperator
80
+ [2210, 2205], // regclass
81
+ [4192, 4191], // regcollation
82
+ [2211, 2206], // regtype
83
+ [4097, 4096], // regrole
84
+ [4090, 4089], // regnamespace
85
+ [2951, 2950], // uuid
86
+ [3221, 3220], // pg_lsn
87
+ [3643, 3614], // tsvector
88
+ [3644, 3642], // gtsvector
89
+ [3645, 3615], // tsquery
90
+ [3735, 3734], // regconfig
91
+ [3770, 3769], // regdictionary
92
+ [3807, 3802], // jsonb
93
+ [4073, 4072] // jsonpath
94
+ ]);
95
+ const ELEM_OID_TO_ARRAY = new Map();
96
+ ARRAY_TO_ELEM_OID.forEach((value, key) => {
97
+ ELEM_OID_TO_ARRAY.set(value, key);
98
+ });
4
99
  export class PgType {
100
+ static getArrayType(typeOid) {
101
+ return ELEM_OID_TO_ARRAY.get(typeOid);
102
+ }
5
103
  static decode(text, typeOid) {
6
- switch (typeOid // add line here when register new type
7
- ) {
8
- case 25 /* text */:
9
- case 2950 /* uuid */:
10
- case 1043 /* varchar */:
104
+ switch (typeOid) {
105
+ // add line here when register new type
106
+ case PgTypeOid.TEXT:
107
+ case PgTypeOid.UUID:
108
+ case PgTypeOid.VARCHAR:
11
109
  return text;
12
- case 16 /* bool */:
110
+ case PgTypeOid.BOOL:
13
111
  return text == 't';
14
- case 17 /* bytea */:
112
+ case PgTypeOid.BYTEA:
15
113
  return this._decodeBytea(text);
16
- case 21 /* int2 */:
17
- case 23 /* int4 */:
18
- case 26 /* oid */:
19
- case 20 /* int8 */:
114
+ case PgTypeOid.INT2:
115
+ case PgTypeOid.INT4:
116
+ case PgTypeOid.OID:
117
+ case PgTypeOid.INT8:
20
118
  return BigInt(text);
21
- case 700 /* float4 */:
22
- case 701 /* float8 */:
119
+ case PgTypeOid.FLOAT4:
120
+ case PgTypeOid.FLOAT8:
23
121
  return Number(text);
24
- case 1082 /* date */:
122
+ case PgTypeOid.DATE:
25
123
  return dateToSqlite(text);
26
- case 1114 /* timestamp */:
124
+ case PgTypeOid.TIMESTAMP:
27
125
  return timestampToSqlite(text);
28
- case 1184 /* timestamptz */:
126
+ case PgTypeOid.TIMESTAMPTZ:
29
127
  return timestamptzToSqlite(text);
30
- case 114 /* json */:
31
- case 3802 /* jsonb */:
128
+ case PgTypeOid.JSON:
129
+ case PgTypeOid.JSONB:
32
130
  // Don't parse the contents
33
131
  return new JsonContainer(text);
34
- case 3220 /* pg_lsn */:
132
+ case PgTypeOid.PG_LSN:
35
133
  return lsnMakeComparable(text);
36
134
  }
37
135
  const elemTypeid = this._elemTypeOid(typeOid);
38
- if (elemTypeid) {
136
+ if (elemTypeid != null) {
39
137
  return this._decodeArray(text, elemTypeid);
40
138
  }
41
139
  return text; // unknown type
42
140
  }
43
141
  static _elemTypeOid(arrayTypeOid) {
44
- // select 'case ' || typarray || ': return ' || oid || '; // ' || typname from pg_catalog.pg_type WHERE typearray != 0;
45
- switch (arrayTypeOid // add line here when register new type
46
- ) {
47
- case 1000:
48
- return 16; // bool
49
- case 1001:
50
- return 17; // bytea
51
- case 1002:
52
- return 18; // char
53
- case 1003:
54
- return 19; // name
55
- case 1016:
56
- return 20; // int8
57
- case 1005:
58
- return 21; // int2
59
- case 1006:
60
- return 22; // int2vector
61
- case 1007:
62
- return 23; // int4
63
- case 1008:
64
- return 24; // regproc
65
- case 1009:
66
- return 25; // text
67
- case 1028:
68
- return 26; // oid
69
- case 1010:
70
- return 27; // tid
71
- case 1011:
72
- return 28; // xid
73
- case 1012:
74
- return 29; // cid
75
- case 1013:
76
- return 30; // oidvector
77
- case 210:
78
- return 71; // pg_type
79
- case 270:
80
- return 75; // pg_attribute
81
- case 272:
82
- return 81; // pg_proc
83
- case 273:
84
- return 83; // pg_class
85
- case 199:
86
- return 114; // json
87
- case 143:
88
- return 142; // xml
89
- case 271:
90
- return 5069; // xid8
91
- case 1017:
92
- return 600; // point
93
- case 1018:
94
- return 601; // lseg
95
- case 1019:
96
- return 602; // path
97
- case 1020:
98
- return 603; // box
99
- case 1027:
100
- return 604; // polygon
101
- case 629:
102
- return 628; // line
103
- case 1021:
104
- return 700; // float4
105
- case 1022:
106
- return 701; // float8
107
- case 0:
108
- return 705; // unknown
109
- case 719:
110
- return 718; // circle
111
- case 791:
112
- return 790; // money
113
- case 1040:
114
- return 829; // macaddr
115
- case 1041:
116
- return 869; // inet
117
- case 651:
118
- return 650; // cidr
119
- case 775:
120
- return 774; // macaddr8
121
- case 1034:
122
- return 1033; // aclitem
123
- case 1014:
124
- return 1042; // bpchar
125
- case 1015:
126
- return 1043; // varchar
127
- case 1182:
128
- return 1082; // date
129
- case 1183:
130
- return 1083; // time
131
- case 1115:
132
- return 1114; // timestamp
133
- case 1185:
134
- return 1184; // timestamptz
135
- case 1187:
136
- return 1186; // interval
137
- case 1270:
138
- return 1266; // timetz
139
- case 1561:
140
- return 1560; // bit
141
- case 1563:
142
- return 1562; // varbit
143
- case 1231:
144
- return 1700; // numeric
145
- case 2201:
146
- return 1790; // refcursor
147
- case 2207:
148
- return 2202; // regprocedure
149
- case 2208:
150
- return 2203; // regoper
151
- case 2209:
152
- return 2204; // regoperator
153
- case 2210:
154
- return 2205; // regclass
155
- case 4192:
156
- return 4191; // regcollation
157
- case 2211:
158
- return 2206; // regtype
159
- case 4097:
160
- return 4096; // regrole
161
- case 4090:
162
- return 4089; // regnamespace
163
- case 2951:
164
- return 2950; // uuid
165
- case 3221:
166
- return 3220; // pg_lsn
167
- case 3643:
168
- return 3614; // tsvector
169
- case 3644:
170
- return 3642; // gtsvector
171
- case 3645:
172
- return 3615; // tsquery
173
- case 3735:
174
- return 3734; // regconfig
175
- case 3770:
176
- return 3769; // regdictionary
177
- case 3807:
178
- return 3802; // jsonb
179
- case 4073:
180
- return 4072; // jsonpath
181
- }
142
+ // select 'case ' || typarray || ': return ' || oid || '; // ' || typname from pg_catalog.pg_type WHERE typarray != 0;
143
+ return ARRAY_TO_ELEM_OID.get(arrayTypeOid);
182
144
  }
183
145
  static _decodeArray(text, elemTypeOid) {
184
146
  text = text.replace(/^\[.+=/, ''); // skip dimensions
@@ -235,22 +197,4 @@ export class PgType {
235
197
  return '\\x' + Array.from(bytes, (b) => b.toString(16).padStart(2, '0')).join('');
236
198
  }
237
199
  }
238
- /**
239
- * We need a high level of control over how values are decoded, to make sure there is no loss
240
- * of precision in the process.
241
- */
242
- export function decodeTuple(relation, tupleRaw) {
243
- let result = {};
244
- for (let columnName in tupleRaw) {
245
- const rawval = tupleRaw[columnName];
246
- const typeOid = relation._tupleDecoder._typeOids.get(columnName);
247
- if (typeof rawval == 'string' && typeOid) {
248
- result[columnName] = PgType.decode(rawval, typeOid);
249
- }
250
- else {
251
- result[columnName] = rawval;
252
- }
253
- }
254
- return result;
255
- }
256
200
  //# sourceMappingURL=pgwire_types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pgwire_types.js","sourceRoot":"","sources":["../src/pgwire_types.ts"],"names":[],"mappings":"AAAA,0GAA0G;AAG1G,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACpG,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAG3D,MAAM,OAAO,MAAM;IACjB,MAAM,CAAC,MAAM,CAAC,IAAY,EAAE,OAAe;QACzC,QACE,OAAO,CAAC,uCAAuC;UAC/C,CAAC;YACD,KAAK,EAAE,CAAC,aAAa,CAAC;YACtB,KAAK,IAAI,CAAC,aAAa,CAAC;YACxB,KAAK,IAAI,CAAC,aAAa;gBACrB,OAAO,IAAI,CAAC;YACd,KAAK,EAAE,CAAC,aAAa;gBACnB,OAAO,IAAI,IAAI,GAAG,CAAC;YACrB,KAAK,EAAE,CAAC,aAAa;gBACnB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACjC,KAAK,EAAE,CAAC,aAAa,CAAC;YACtB,KAAK,EAAE,CAAC,aAAa,CAAC;YACtB,KAAK,EAAE,CAAC,aAAa,CAAC;YACtB,KAAK,EAAE,CAAC,aAAa;gBACnB,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;YACtB,KAAK,GAAG,CAAC,aAAa,CAAC;YACvB,KAAK,GAAG,CAAC,aAAa;gBACpB,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;YACtB,KAAK,IAAI,CAAC,UAAU;gBAClB,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;YAC5B,KAAK,IAAI,CAAC,eAAe;gBACvB,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACjC,KAAK,IAAI,CAAC,iBAAiB;gBACzB,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC;YACnC,KAAK,GAAG,CAAC,aAAa,CAAC;YACvB,KAAK,IAAI,CAAC,aAAa;gBACrB,2BAA2B;gBAC3B,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;YACjC,KAAK,IAAI,CAAC,aAAa;gBACrB,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,IAAI,CAAC,CAAC,eAAe;IAC9B,CAAC;IACD,MAAM,CAAC,YAAY,CAAC,YAAoB;QACtC,uHAAuH;QACvH,QACE,YAAY,CAAC,uCAAuC;UACpD,CAAC;YACD,KAAK,IAAI;gBACP,OAAO,EAAE,CAAC,CAAC,OAAO;YACpB,KAAK,IAAI;gBACP,OAAO,EAAE,CAAC,CAAC,QAAQ;YACrB,KAAK,IAAI;gBACP,OAAO,EAAE,CAAC,CAAC,OAAO;YACpB,KAAK,IAAI;gBACP,OAAO,EAAE,CAAC,CAAC,OAAO;YACpB,KAAK,IAAI;gBACP,OAAO,EAAE,CAAC,CAAC,OAAO;YACpB,KAAK,IAAI;gBACP,OAAO,EAAE,CAAC,CAAC,OAAO;YACpB,KAAK,IAAI;gBACP,OAAO,EAAE,CAAC,CAAC,aAAa;YAC1B,KAAK,IAAI;gBACP,OAAO,EAAE,CAAC,CAAC,OAAO;YACpB,KAAK,IAAI;gBACP,OAAO,EAAE,CAAC,CAAC,UAAU;YACvB,KAAK,IAAI;gBACP,OAAO,EAAE,CAAC,CAAC,OAAO;YACpB,KAAK,IAAI;gBACP,OAAO,EAAE,CAAC,CAAC,MAAM;YACnB,KAAK,IAAI;gBACP,OAAO,EAAE,CAAC,CAAC,MAAM;YACnB,KAAK,IAAI;gBACP,OAAO,EAAE,CAAC,CAAC,MAAM;YACnB,KAAK,IAAI;gBACP,OAAO,EAAE,CAAC,CAAC,MAAM;YACnB,KAAK,IAAI;gBACP,OAAO,EAAE,CAAC,CAAC,YAAY;YACzB,KAAK,GAAG;gBACN,OAAO,EAAE,CAAC,CAAC,UAAU;YACvB,KAAK,GAAG;gBACN,OAAO,EAAE,CAAC,CAAC,eAAe;YAC5B,KAAK,GAAG;gBACN,OAAO,EAAE,CAAC,CAAC,UAAU;YACvB,KAAK,GAAG;gBACN,OAAO,EAAE,CAAC,CAAC,WAAW;YACxB,KAAK,GAAG;gBACN,OAAO,GAAG,CAAC,CAAC,OAAO;YACrB,KAAK,GAAG;gBACN,OAAO,GAAG,CAAC,CAAC,MAAM;YACpB,KAAK,GAAG;gBACN,OAAO,IAAI,CAAC,CAAC,OAAO;YACtB,KAAK,IAAI;gBACP,OAAO,GAAG,CAAC,CAAC,QAAQ;YACtB,KAAK,IAAI;gBACP,OAAO,GAAG,CAAC,CAAC,OAAO;YACrB,KAAK,IAAI;gBACP,OAAO,GAAG,CAAC,CAAC,OAAO;YACrB,KAAK,IAAI;gBACP,OAAO,GAAG,CAAC,CAAC,MAAM;YACpB,KAAK,IAAI;gBACP,OAAO,GAAG,CAAC,CAAC,UAAU;YACxB,KAAK,GAAG;gBACN,OAAO,GAAG,CAAC,CAAC,OAAO;YACrB,KAAK,IAAI;gBACP,OAAO,GAAG,CAAC,CAAC,SAAS;YACvB,KAAK,IAAI;gBACP,OAAO,GAAG,CAAC,CAAC,SAAS;YACvB,KAAK,CAAC;gBACJ,OAAO,GAAG,CAAC,CAAC,UAAU;YACxB,KAAK,GAAG;gBACN,OAAO,GAAG,CAAC,CAAC,SAAS;YACvB,KAAK,GAAG;gBACN,OAAO,GAAG,CAAC,CAAC,QAAQ;YACtB,KAAK,IAAI;gBACP,OAAO,GAAG,CAAC,CAAC,UAAU;YACxB,KAAK,IAAI;gBACP,OAAO,GAAG,CAAC,CAAC,OAAO;YACrB,KAAK,GAAG;gBACN,OAAO,GAAG,CAAC,CAAC,OAAO;YACrB,KAAK,GAAG;gBACN,OAAO,GAAG,CAAC,CAAC,WAAW;YACzB,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,CAAC,UAAU;YACzB,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,CAAC,SAAS;YACxB,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,CAAC,UAAU;YACzB,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,CAAC,OAAO;YACtB,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,CAAC,OAAO;YACtB,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,CAAC,YAAY;YAC3B,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,CAAC,cAAc;YAC7B,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,CAAC,WAAW;YAC1B,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,CAAC,SAAS;YACxB,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,CAAC,MAAM;YACrB,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,CAAC,SAAS;YACxB,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,CAAC,UAAU;YACzB,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,CAAC,YAAY;YAC3B,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,CAAC,eAAe;YAC9B,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,CAAC,UAAU;YACzB,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,CAAC,cAAc;YAC7B,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,CAAC,WAAW;YAC1B,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,CAAC,eAAe;YAC9B,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,CAAC,UAAU;YACzB,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,CAAC,UAAU;YACzB,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,CAAC,eAAe;YAC9B,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,CAAC,OAAO;YACtB,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,CAAC,SAAS;YACxB,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,CAAC,WAAW;YAC1B,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,CAAC,YAAY;YAC3B,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,CAAC,UAAU;YACzB,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,CAAC,YAAY;YAC3B,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,CAAC,gBAAgB;YAC/B,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,CAAC,QAAQ;YACvB,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,CAAC,WAAW;QAC5B,CAAC;IACH,CAAC;IACD,MAAM,CAAC,YAAY,CAAC,IAAY,EAAE,WAAmB;QACnD,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB;QACrD,IAAI,MAAW,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,EAAE,OAAO,GAAG,CAAC,EAAE,KAAK,GAAU,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvF,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACrB,CAAC,EAAE,CAAC,CAAC,SAAS;YAChB,CAAC;iBAAM,IAAI,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC5B,QAAQ,GAAG,CAAC,QAAQ,CAAC;YACvB,CAAC;iBAAM,IAAI,QAAQ,EAAE,CAAC;YACtB,CAAC;iBAAM,IAAI,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC5B,WAAW;gBACX,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACvC,CAAC;iBAAM,IAAI,EAAE,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAChD,8BAA8B;gBAC9B,8DAA8D;gBAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,0BAA0B;gBAClE,IAAI,MAAM,EAAE,CAAC;oBACX,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACxB,CAAC;qBAAM,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;oBACnC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtB,CAAC;qBAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;oBAC1B,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;oBAC1D,oCAAoC;oBACpC,2CAA2C;oBAC3C,6CAA6C;oBAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;oBACpD,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACzB,CAAC;gBACD,MAAM,GAAG,EAAE,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC3C,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW;YAC9B,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,IAAY;QAC9B,mEAAmE;QACnE,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,kCAAkC;YAC7D,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;YACvD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,wBAAwB;QACxB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IACD,MAAM,CAAC,YAAY,CAAC,KAAiB;QACnC,OAAO,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpF,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,QAA0B,EAAE,QAA6B;IACnF,IAAI,MAAM,GAAwB,EAAE,CAAC;IACrC,KAAK,IAAI,UAAU,IAAI,QAAQ,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;QACpC,MAAM,OAAO,GAAI,QAAgB,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC1E,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAC;YACzC,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC;QAC9B,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"pgwire_types.js","sourceRoot":"","sources":["../src/pgwire_types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import net from 'node:net';
2
+ import tls from 'node:tls';
3
+ export interface ConnectOptions {
4
+ hostname: string;
5
+ port: number;
6
+ tlsOptions?: tls.ConnectionOptions | false;
7
+ lookup?: net.LookupFunction;
8
+ }
9
+ export declare class SocketAdapter {
10
+ private options;
11
+ static connect(options: ConnectOptions): Promise<SocketAdapter>;
12
+ _socket: net.Socket;
13
+ _error: Error | null;
14
+ constructor(socket: net.Socket, options: ConnectOptions);
15
+ _readResume: () => void;
16
+ _writeResume: () => void;
17
+ _readPauseAsync: (resolve: () => void) => void;
18
+ _writePauseAsync: (resolve: () => void) => void;
19
+ setTimeout(timeout: number): void;
20
+ startTls(host: string, ca: any): Promise<SocketAdapter>;
21
+ read(out: Uint8Array): Promise<any>;
22
+ write(data: Uint8Array): Promise<number>;
23
+ close(): void;
24
+ }
@@ -0,0 +1,140 @@
1
+ // Fork of pgwire/index.js, customized to handle additional TLS options
2
+ import { once } from 'node:events';
3
+ import net from 'node:net';
4
+ import tls from 'node:tls';
5
+ import { recordBytesRead } from './metrics.js';
6
+ // pgwire doesn't natively support configuring timeouts, but we just hardcode a default.
7
+ // Timeout idle connections after 6 minutes (we ping at least every 5 minutes).
8
+ const POWERSYNC_SOCKET_DEFAULT_TIMEOUT = 360_000;
9
+ // Timeout for the initial connection (pre-TLS)
10
+ // Must be less than the timeout for a HTTP request
11
+ const POWERSYNC_SOCKET_CONNECT_TIMEOUT = 20_000;
12
+ // TCP keepalive delay in milliseconds.
13
+ // This can help detect dead connections earlier.
14
+ const POWERSYNC_SOCKET_KEEPALIVE_INITIAL_DELAY = 40_000;
15
+ export class SocketAdapter {
16
+ options;
17
+ static async connect(options) {
18
+ // Custom timeout handling
19
+ const socket = net.connect({
20
+ host: options.hostname,
21
+ port: options.port,
22
+ lookup: options.lookup,
23
+ // This closes the connection if no data was sent or received for the given time,
24
+ // even if the connection is still actaully alive.
25
+ timeout: POWERSYNC_SOCKET_DEFAULT_TIMEOUT,
26
+ // This configures TCP keepalive.
27
+ keepAlive: true,
28
+ keepAliveInitialDelay: POWERSYNC_SOCKET_KEEPALIVE_INITIAL_DELAY
29
+ // Unfortunately it is not possible to set tcp_keepalive_intvl or
30
+ // tcp_keepalive_probes here.
31
+ });
32
+ try {
33
+ const timeout = setTimeout(() => {
34
+ socket.destroy(new Error(`Timeout while connecting to ${options.hostname}:${options.port}`));
35
+ }, POWERSYNC_SOCKET_CONNECT_TIMEOUT);
36
+ await once(socket, 'connect');
37
+ clearTimeout(timeout);
38
+ return new SocketAdapter(socket, options);
39
+ }
40
+ catch (e) {
41
+ socket.destroy();
42
+ throw e;
43
+ }
44
+ // END POWERSYNC
45
+ }
46
+ _socket;
47
+ _error;
48
+ constructor(socket, options) {
49
+ this.options = options;
50
+ this._error = null;
51
+ this._socket = socket;
52
+ this._socket.on('readable', (_) => this._readResume());
53
+ this._socket.on('end', () => this._readResume());
54
+ // Custom timeout handling
55
+ this._socket.on('timeout', () => {
56
+ this._socket.destroy(new Error('Socket idle timeout'));
57
+ });
58
+ this._socket.on('error', (error) => {
59
+ this._error = error;
60
+ this._readResume();
61
+ this._writeResume();
62
+ });
63
+ }
64
+ _readResume = () => {
65
+ // noop
66
+ return;
67
+ };
68
+ _writeResume = () => {
69
+ // noop
70
+ return;
71
+ };
72
+ _readPauseAsync = (resolve) => {
73
+ this._readResume = resolve;
74
+ };
75
+ _writePauseAsync = (resolve) => {
76
+ this._writeResume = resolve;
77
+ };
78
+ setTimeout(timeout) {
79
+ this._socket.setTimeout(timeout);
80
+ }
81
+ async startTls(host, ca) {
82
+ // START POWERSYNC CUSTOM OPTIONS HANDLING
83
+ const tlsOptions = this.options.tlsOptions;
84
+ // https://nodejs.org/docs/latest-v14.x/api/tls.html#tls_tls_connect_options_callback
85
+ const socket = this._socket;
86
+ const tlsSocket = tls.connect({ socket, host, ...tlsOptions });
87
+ // END POWERSYNC CUSTOM OPTIONS HANDLING
88
+ await once(tlsSocket, 'secureConnect');
89
+ // TODO check tlsSocket.authorized
90
+ // if secure connection succeeded then we take underlying socket ownership,
91
+ // otherwise underlying socket should be closed outside.
92
+ tlsSocket.on('close', (_) => socket.destroy());
93
+ return new SocketAdapter(tlsSocket, this.options);
94
+ }
95
+ async read(out) {
96
+ let buf;
97
+ for (;;) {
98
+ if (this._error)
99
+ throw this._error; // TODO callstack
100
+ if (this._socket.readableEnded)
101
+ return null;
102
+ // POWERSYNC FIX: Read only as much data as available, instead of reading everything and
103
+ // unshifting back onto the socket
104
+ const toRead = Math.min(out.length, this._socket.readableLength);
105
+ buf = this._socket.read(toRead);
106
+ if (buf?.length)
107
+ break;
108
+ if (!buf)
109
+ await new Promise(this._readPauseAsync);
110
+ }
111
+ if (buf.length > out.length) {
112
+ throw new Error('Read more data than expected');
113
+ }
114
+ out.set(buf);
115
+ // POWERSYNC: Add metrics
116
+ recordBytesRead(buf.length);
117
+ return buf.length;
118
+ }
119
+ async write(data) {
120
+ // TODO assert Uint8Array
121
+ // TODO need to copy data?
122
+ if (this._error)
123
+ throw this._error; // TODO callstack
124
+ const p = new Promise(this._writePauseAsync);
125
+ this._socket.write(data, this._writeResume);
126
+ await p;
127
+ if (this._error)
128
+ throw this._error; // TODO callstack
129
+ return data.length;
130
+ }
131
+ // async closeWrite() {
132
+ // if (this._error) throw this._error; // TODO callstack
133
+ // const socket_end = promisify(cb => this._socket.end(cb));
134
+ // await socket_end();
135
+ // }
136
+ close() {
137
+ this._socket.destroy(Error('socket destroyed'));
138
+ }
139
+ }
140
+ //# sourceMappingURL=socket_adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"socket_adapter.js","sourceRoot":"","sources":["../src/socket_adapter.ts"],"names":[],"mappings":"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"}
package/dist/util.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- import * as tls from 'tls';
1
+ import * as net from 'node:net';
2
+ import * as tls from 'node:tls';
2
3
  import * as pgwire from './pgwire.js';
3
4
  export interface NormalizedConnectionConfig {
4
5
  id: string;
@@ -10,6 +11,16 @@ export interface NormalizedConnectionConfig {
10
11
  password: string;
11
12
  sslmode: 'verify-full' | 'verify-ca' | 'disable';
12
13
  cacert: string | undefined;
14
+ /**
15
+ * Specify to use a servername for TLS that is different from hostname.
16
+ *
17
+ * Only relevant if sslmode = 'verify-full'.
18
+ */
19
+ tls_servername: string | undefined;
20
+ /**
21
+ * Hostname lookup function.
22
+ */
23
+ lookup?: net.LookupFunction;
13
24
  client_certificate: string | undefined;
14
25
  client_private_key: string | undefined;
15
26
  }
@@ -17,7 +28,7 @@ export interface PgWireConnectionOptions extends NormalizedConnectionConfig {
17
28
  resolved_ip?: string;
18
29
  }
19
30
  export declare function clientTlsOptions(options: PgWireConnectionOptions): tls.ConnectionOptions;
20
- export declare function tlsOptions(options: PgWireConnectionOptions): false | tls.ConnectionOptions;
31
+ export declare function makeTlsOptions(options: PgWireConnectionOptions): false | tls.ConnectionOptions;
21
32
  export declare function connectPgWire(config: PgWireConnectionOptions, options?: {
22
33
  type?: 'standard' | 'replication';
23
34
  }): Promise<pgwire.PgConnection>;
@@ -41,14 +52,6 @@ export interface PgPoolOptions {
41
52
  * The pool cannot be used for transactions, and cannot be used for logical replication.
42
53
  */
43
54
  export declare function connectPgWirePool(config: PgWireConnectionOptions, options?: PgPoolOptions): pgwire.PgClient;
44
- /**
45
- * Hack: sslrootcert is passed through as-is to pgwire_node.
46
- *
47
- * We use that to pass in custom TLS options, without having to modify pgwire itself.
48
- */
49
- export interface ExtendedPgwireOptions extends pgwire.PgConnectKnownOptions {
50
- sslrootcert?: false | tls.ConnectionOptions;
51
- }
52
55
  export declare function lsnMakeComparable(text: string): string;
53
56
  /**
54
57
  * Convert a postgres timestamptz to a SQLite-compatible/normalized timestamp.
@@ -83,4 +86,4 @@ export declare function dateToSqlite(source?: string): string | null;
83
86
  *
84
87
  * This converts it to objects.
85
88
  */
86
- export declare function pgwireRows(rs: pgwire.PgResult): Record<string, any>[];
89
+ export declare function pgwireRows<T = Record<string, any>>(rs: pgwire.PgResult): T[];
package/dist/util.js CHANGED
@@ -1,7 +1,7 @@
1
+ import * as datefns from 'date-fns';
1
2
  import { DEFAULT_CERTS } from './certs.js';
2
3
  import * as pgwire from './pgwire.js';
3
4
  import { PgType } from './pgwire_types.js';
4
- import * as datefns from 'date-fns';
5
5
  export function clientTlsOptions(options) {
6
6
  if (options.client_certificate && options.client_private_key) {
7
7
  return {
@@ -13,7 +13,7 @@ export function clientTlsOptions(options) {
13
13
  return {};
14
14
  }
15
15
  }
16
- export function tlsOptions(options) {
16
+ export function makeTlsOptions(options) {
17
17
  if (options.sslmode == 'disable') {
18
18
  return false;
19
19
  }
@@ -26,7 +26,7 @@ export function tlsOptions(options) {
26
26
  // This may be different from the host we're connecting to if we pre-resolved
27
27
  // the IP.
28
28
  host: options.hostname,
29
- servername: options.hostname,
29
+ servername: options.tls_servername ?? options.hostname,
30
30
  ...clientTlsOptions(options)
31
31
  };
32
32
  }
@@ -60,18 +60,23 @@ export async function connectPgWire(config, options) {
60
60
  if (options?.type != 'standard') {
61
61
  connectionOptions.replication = 'database';
62
62
  }
63
+ let tlsOptions = false;
63
64
  if (config.sslmode != 'disable') {
64
65
  connectionOptions.sslmode = 'require';
65
- // HACK: Not standard pgwire options
66
- // Just the easiest way to pass on our config to pgwire_node.js
67
- connectionOptions.sslrootcert = tlsOptions(config);
66
+ tlsOptions = makeTlsOptions(config);
68
67
  }
69
68
  else {
70
69
  connectionOptions.sslmode = 'disable';
71
70
  }
72
- const connection = await pgwire.pgconnect(connectionOptions);
71
+ const connection = pgwire.pgconnection(connectionOptions);
72
+ // HACK: Not standard pgwire options
73
+ // Just the easiest way to pass on our config to SocketAdapter
74
+ const connectOptions = connection._connectOptions;
75
+ connectOptions.tlsOptions = tlsOptions;
76
+ connectOptions.lookup = config.lookup;
73
77
  // HACK: Replace row decoding with our own implementation
74
78
  connection._recvDataRow = _recvDataRow;
79
+ await connection.start();
75
80
  return connection;
76
81
  }
77
82
  function _recvDataRow(_message, row, batch) {
@@ -109,11 +114,10 @@ export function connectPgWirePool(config, options) {
109
114
  _poolSize: maxSize,
110
115
  _poolIdleTimeout: idleTimeout
111
116
  };
117
+ let tlsOptions = false;
112
118
  if (config.sslmode != 'disable') {
113
119
  connectionOptions.sslmode = 'require';
114
- // HACK: Not standard pgwire options
115
- // Just the easiest way to pass on our config to pgwire_node.js
116
- connectionOptions.sslrootcert = tlsOptions(config);
120
+ tlsOptions = makeTlsOptions(config);
117
121
  }
118
122
  else {
119
123
  connectionOptions.sslmode = 'disable';
@@ -122,6 +126,9 @@ export function connectPgWirePool(config, options) {
122
126
  const originalGetConnection = pool._getConnection;
123
127
  pool._getConnection = function () {
124
128
  const con = originalGetConnection.call(this);
129
+ const connectOptions = con._connectOptions;
130
+ connectOptions.tlsOptions = tlsOptions;
131
+ connectOptions.lookup = config.lookup;
125
132
  // HACK: Replace row decoding with our own implementation
126
133
  con._recvDataRow = _recvDataRow;
127
134
  return con;
package/dist/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,KAAK,OAAO,MAAM,UAAU,CAAC;AA6BpC,MAAM,UAAU,gBAAgB,CAAC,OAAgC;IAC/D,IAAI,OAAO,CAAC,kBAAkB,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC7D,OAAO;YACL,IAAI,EAAE,OAAO,CAAC,kBAAkB;YAChC,GAAG,EAAE,OAAO,CAAC,kBAAkB;SAChC,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AACD,MAAM,UAAU,UAAU,CAAC,OAAgC;IACzD,IAAI,OAAO,CAAC,OAAO,IAAI,SAAS,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;SAAM,IAAI,OAAO,CAAC,OAAO,IAAI,aAAa,EAAE,CAAC;QAC5C,+CAA+C;QAC/C,0BAA0B;QAC1B,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,MAAM,IAAI,aAAa;YACnC,+BAA+B;YAC/B,6EAA6E;YAC7E,UAAU;YACV,IAAI,EAAE,OAAO,CAAC,QAAQ;YACtB,UAAU,EAAE,OAAO,CAAC,QAAQ;YAC5B,GAAG,gBAAgB,CAAC,OAAO,CAAC;SAC7B,CAAC;IACJ,CAAC;SAAM,IAAI,OAAO,CAAC,OAAO,IAAI,WAAW,EAAE,CAAC;QAC1C,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QACD,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,MAAO;YACnB,IAAI,EAAE,OAAO,CAAC,QAAQ;YACtB,UAAU,EAAE,OAAO,CAAC,QAAQ;YAC5B,yBAAyB;YACzB,mBAAmB,EAAE,GAAG,EAAE,CAAC,SAAS;YACpC,GAAG,gBAAgB,CAAC,OAAO,CAAC;SAC7B,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAA+B,EAAE,OAA+C;IAClH,IAAI,iBAAiB,GAAmC;QACtD,gBAAgB,EAAE,WAAW;QAE7B,kDAAkD;QAClD,QAAQ,EAAE,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,QAAQ;QAC/C,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QAEzB,IAAI,EAAE,MAAM,CAAC,QAAQ;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;KAC1B,CAAC;IAEF,IAAI,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,CAAC;QAChC,iBAAiB,CAAC,WAAW,GAAG,UAAU,CAAC;IAC7C,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,IAAI,SAAS,EAAE,CAAC;QAChC,iBAAiB,CAAC,OAAO,GAAG,SAAS,CAAC;QAEtC,oCAAoC;QACpC,+DAA+D;QAC/D,iBAAiB,CAAC,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC;SAAM,CAAC;QACN,iBAAiB,CAAC,OAAO,GAAG,SAAS,CAAC;IACxC,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,iBAA4C,CAAC,CAAC;IACxF,yDAAyD;IACxD,UAAkB,CAAC,YAAY,GAAG,YAAY,CAAC;IAChD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,YAAY,CAAY,QAAa,EAAE,GAAiB,EAAE,KAAU;IAC3E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACjD,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,SAAS;QACX,CAAC;QACD,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAChD,sDAAsD;QACtD,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM;YACb,CAAC,CAAC,mEAAmE;gBACnE,iDAAiD;gBACjD,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;YACzC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,CAAC;AAkBD;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAA+B,EAAE,OAAuB;IACxF,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,CAAC;IACzC,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,CAAC,CAAC;IAEtC,IAAI,iBAAiB,GAAmC;QACtD,gBAAgB,EAAE,WAAW;QAE7B,kDAAkD;QAClD,QAAQ,EAAE,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,QAAQ;QAC/C,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QAEzB,IAAI,EAAE,MAAM,CAAC,QAAQ;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QAEzB,SAAS,EAAE,OAAO;QAClB,gBAAgB,EAAE,WAAW;KAC9B,CAAC;IAEF,IAAI,MAAM,CAAC,OAAO,IAAI,SAAS,EAAE,CAAC;QAChC,iBAAiB,CAAC,OAAO,GAAG,SAAS,CAAC;QAEtC,oCAAoC;QACpC,+DAA+D;QAC/D,iBAAiB,CAAC,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC;SAAM,CAAC;QACN,iBAAiB,CAAC,OAAO,GAAG,SAAS,CAAC;IACxC,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,iBAA4C,CAAC,CAAC;IACzE,MAAM,qBAAqB,GAAI,IAAY,CAAC,cAAc,CAAC;IAC1D,IAAY,CAAC,cAAc,GAAG;QAC7B,MAAM,GAAG,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,yDAAyD;QACxD,GAAW,CAAC,YAAY,GAAG,YAAY,CAAC;QACzC,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC;AAWD,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACvD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAe;IACjD,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,8BAA8B;IAC9B,MAAM,KAAK,GAAG,0CAA0C,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtE,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,MAAM,IAAI,UAAU,EAAE,CAAC;YACzB,OAAO,sBAAsB,CAAC;QAChC,CAAC;aAAM,IAAI,MAAM,IAAI,WAAW,EAAE,CAAC;YACjC,OAAO,sBAAsB,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,GAAG,KAAY,CAAC;IAC1D,gGAAgG;IAChG,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC,CAAC;IAC9D,sFAAsF;IACtF,iCAAiC;IACjC,8DAA8D;IAC9D,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAEzF,OAAO,GAAG,IAAI,GAAG,SAAS,IAAI,EAAE,GAAG,CAAC;AACtC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAe;IAC/C,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,MAAM,IAAI,UAAU,EAAE,CAAC;QACzB,OAAO,qBAAqB,CAAC;IAC/B,CAAC;SAAM,IAAI,MAAM,IAAI,WAAW,EAAE,CAAC;QACjC,OAAO,qBAAqB,CAAC;IAC/B,CAAC;SAAM,CAAC;QACN,OAAO,MAAM,CAAC;IAChB,CAAC;AACH,CAAC;AACD;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,MAAe;IAC1C,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,MAAM,IAAI,UAAU,EAAE,CAAC;QACzB,OAAO,YAAY,CAAC;IACtB,CAAC;SAAM,IAAI,MAAM,IAAI,WAAW,EAAE,CAAC;QACjC,OAAO,YAAY,CAAC;IACtB,CAAC;SAAM,CAAC;QACN,OAAO,MAAM,CAAC;IAChB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,EAAmB;IAC5C,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;IAC3B,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACzB,IAAI,CAAC,GAAwB,EAAE,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
8
- "version": "0.18.5",
8
+ "version": "0.20.0",
9
9
  "main": "dist/index.js",
10
10
  "license": "FSL-1.1-Apache-2.0",
11
11
  "files": [
@@ -16,9 +16,7 @@
16
16
  "dependencies": {
17
17
  "date-fns": "^4.1.0",
18
18
  "pgwire": "github:kagis/pgwire#f1cb95f9a0f42a612bb5a6b67bb2eb793fc5fc87",
19
- "@powersync/service-jsonbig": "^0.17.10",
20
- "@powersync/service-types": "^0.7.0",
21
- "@powersync/service-sync-rules": "^0.23.1"
19
+ "@powersync/service-jsonbig": "^0.17.10"
22
20
  },
23
21
  "scripts": {
24
22
  "clean": "rm -r ./dist && tsc -b --clean",