@juit/pgproxy-client-node 1.3.7 → 1.4.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.
- package/dist/index.cjs +8 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +4 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +5 -1
package/dist/index.cjs
CHANGED
|
@@ -29,6 +29,9 @@ var import_node_http = require("node:http");
|
|
|
29
29
|
var import_node_https = require("node:https");
|
|
30
30
|
var import_pgproxy_client = require("@juit/pgproxy-client");
|
|
31
31
|
var import_undici = require("undici");
|
|
32
|
+
function assert(what, message) {
|
|
33
|
+
if (!what) throw new Error(message);
|
|
34
|
+
}
|
|
32
35
|
function getAuthenticationToken(secret) {
|
|
33
36
|
const buffer = (0, import_node_crypto.randomBytes)(48);
|
|
34
37
|
buffer.writeBigInt64LE(BigInt(Date.now()), 0);
|
|
@@ -37,7 +40,7 @@ function getAuthenticationToken(secret) {
|
|
|
37
40
|
}
|
|
38
41
|
function makeQuery(url, secret) {
|
|
39
42
|
const protocol = url.protocol === "https:" ? import_node_https.request : url.protocol === "http:" ? import_node_http.request : void 0;
|
|
40
|
-
|
|
43
|
+
assert(protocol, `Unsupported protocol "${url.protocol}"`);
|
|
41
44
|
const href = url.href;
|
|
42
45
|
return function query(query, params = []) {
|
|
43
46
|
const id = (0, import_node_crypto.randomUUID)();
|
|
@@ -76,8 +79,8 @@ function makeQuery(url, secret) {
|
|
|
76
79
|
} catch {
|
|
77
80
|
throw new Error("Unable to parse JSON payload");
|
|
78
81
|
}
|
|
79
|
-
|
|
80
|
-
|
|
82
|
+
assert(payload && typeof payload === "object", "JSON payload is not an object");
|
|
83
|
+
assert(payload.id === id, "Invalid/uncorrelated ID in response");
|
|
81
84
|
if (payload.statusCode === 200) return payload;
|
|
82
85
|
throw new Error(`${payload.error || /* coverage ignore next */
|
|
83
86
|
"Unknown error"} (${payload.statusCode})`);
|
|
@@ -89,7 +92,7 @@ var NodeProvider = class extends import_pgproxy_client.WebSocketProvider {
|
|
|
89
92
|
super(url);
|
|
90
93
|
url = new URL(url.href);
|
|
91
94
|
const secret = decodeURIComponent(url.password || url.username);
|
|
92
|
-
|
|
95
|
+
assert(secret, "No connection secret specified in URL");
|
|
93
96
|
url.password = "";
|
|
94
97
|
url.username = "";
|
|
95
98
|
const baseHttpUrl = new URL(url.href);
|
|
@@ -114,7 +117,7 @@ var NodeProvider = class extends import_pgproxy_client.WebSocketProvider {
|
|
|
114
117
|
var NodeClient = class extends import_pgproxy_client.PGClient {
|
|
115
118
|
constructor(url) {
|
|
116
119
|
url = url || process.env.PGURL;
|
|
117
|
-
|
|
120
|
+
assert(url, "No URL to connect to (PGURL environment variable missing?)");
|
|
118
121
|
super(new NodeProvider(typeof url === "string" ? new URL(url) : url));
|
|
119
122
|
}
|
|
120
123
|
};
|
package/dist/index.cjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAAoD;AACpD,uBAAgC;AAChC,wBAAiC;AAEjC,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["https", "http", "url", "buffer"]
|
|
6
6
|
}
|
package/dist/index.mjs
CHANGED
|
@@ -2,8 +2,11 @@
|
|
|
2
2
|
import { createHmac, randomBytes, randomUUID } from "node:crypto";
|
|
3
3
|
import { request as http } from "node:http";
|
|
4
4
|
import { request as https } from "node:https";
|
|
5
|
-
import { PGClient, WebSocketProvider,
|
|
5
|
+
import { PGClient, WebSocketProvider, registerProvider } from "@juit/pgproxy-client";
|
|
6
6
|
import { WebSocket } from "undici";
|
|
7
|
+
function assert(what, message) {
|
|
8
|
+
if (!what) throw new Error(message);
|
|
9
|
+
}
|
|
7
10
|
function getAuthenticationToken(secret) {
|
|
8
11
|
const buffer = randomBytes(48);
|
|
9
12
|
buffer.writeBigInt64LE(BigInt(Date.now()), 0);
|
package/dist/index.mjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts"],
|
|
4
|
-
"mappings": ";AAAA,SAAS,YAAY,aAAa,kBAAkB;AACpD,SAAS,WAAW,YAAY;AAChC,SAAS,WAAW,aAAa;AAEjC,SAAS,UAAU,mBAAmB,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["url", "buffer"]
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@juit/pgproxy-client-node",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"main": "./dist/index.cjs",
|
|
5
5
|
"module": "./dist/index.mjs",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
},
|
|
36
36
|
"homepage": "https://github.com/juitnow/juit-pgproxy#readme",
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@juit/pgproxy-client": "1.
|
|
38
|
+
"@juit/pgproxy-client": "1.4.0",
|
|
39
39
|
"undici": "^7.16.0"
|
|
40
40
|
},
|
|
41
41
|
"directories": {
|
package/src/index.ts
CHANGED
|
@@ -2,12 +2,16 @@ import { createHmac, randomBytes, randomUUID } from 'node:crypto'
|
|
|
2
2
|
import { request as http } from 'node:http'
|
|
3
3
|
import { request as https } from 'node:https'
|
|
4
4
|
|
|
5
|
-
import { PGClient, WebSocketProvider,
|
|
5
|
+
import { PGClient, WebSocketProvider, registerProvider } from '@juit/pgproxy-client'
|
|
6
6
|
import { WebSocket } from 'undici'
|
|
7
7
|
|
|
8
8
|
import type { PGProviderResult } from '@juit/pgproxy-client'
|
|
9
9
|
import type { Request, Response } from '@juit/pgproxy-server'
|
|
10
10
|
|
|
11
|
+
/** The easiest assertion function in the world */
|
|
12
|
+
function assert(what: unknown, message: string): asserts what {
|
|
13
|
+
if (! what) throw new Error(message)
|
|
14
|
+
}
|
|
11
15
|
|
|
12
16
|
/** Create our authentication token */
|
|
13
17
|
function getAuthenticationToken(secret: string): string {
|