@prostgles/prostgles 2.3.6-dev.1787250929 → 2.3.6-dev.1787262189

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,6 +1,6 @@
1
1
  {
2
2
  "name": "@prostgles/prostgles",
3
- "version": "2.3.6-dev.1787250929",
3
+ "version": "2.3.6-dev.1787262189",
4
4
  "description": "Prostgles UI runtime and configurable PostgreSQL dashboard",
5
5
  "main": "dist/server/src/schemaConfig.js",
6
6
  "bin": {
@@ -1 +1 @@
1
- {"version":3,"file":"getConnectionDetails.d.ts","sourceRoot":"","sources":["../../../../src/connectionUtils/getConnectionDetails.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AAEhF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAGlE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC;IACvD,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,GAAG,WAAW,KAAG,iBA0DrD,CAAC"}
1
+ {"version":3,"file":"getConnectionDetails.d.ts","sourceRoot":"","sources":["../../../../src/connectionUtils/getConnectionDetails.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AAEhF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAGlE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC;IACvD,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,GAAG,WAAW,KAAG,iBAgFrD,CAAC"}
@@ -20,19 +20,33 @@ const getConnectionDetails = (c) => {
20
20
  : undefined;
21
21
  const default_application_name = "";
22
22
  if (c.type === "Connection URI") {
23
- const cs = new connection_string_1.ConnectionString(c.db_conn);
24
- const params = cs.params ?? {};
25
- const { sslmode, application_name = default_application_name, connect_timeout = 10, } = params;
23
+ const connectionUri = c.db_conn ?? "";
24
+ /**
25
+ * Parse the query separately because `connection-string` treats unescaped
26
+ * slashes in values as path separators. PostgreSQL commonly uses them in
27
+ * Unix-socket URLs such as `?host=/var/run/postgresql`.
28
+ */
29
+ const queryStart = connectionUri.indexOf("?");
30
+ const cs = new connection_string_1.ConnectionString(queryStart === -1 ? connectionUri : connectionUri.slice(0, queryStart));
31
+ const params = queryStart === -1 ?
32
+ {}
33
+ : Object.fromEntries(new URLSearchParams(connectionUri.slice(queryStart + 1)).entries());
34
+ const { sslmode, host, port, application_name = default_application_name, connect_timeout = 10, } = params;
35
+ const parsedPort = Number(port);
36
+ const parsedConnectTimeout = Number(connect_timeout);
26
37
  const conn = {
27
38
  application_name,
28
- host: cs.hosts[0].name ?? c.db_host, // fallback to db_host for pg_dump state_db
29
- port: cs.hosts[0].port,
39
+ host: cs.hosts?.[0]?.name ?? host ?? c.db_host,
40
+ port: cs.hosts?.[0]?.port ??
41
+ (Number.isFinite(parsedPort) && parsedPort > 0 ?
42
+ parsedPort
43
+ : c.db_port),
30
44
  user: cs.user,
31
45
  password: cs.password,
32
46
  database: cs.path[0],
33
47
  ssl: getSSLOpts(sslmode) ?? false,
34
- ...(Number.isFinite(connect_timeout) && {
35
- connectionTimeoutMillis: Math.ceil(connect_timeout) * 1000,
48
+ ...(Number.isFinite(parsedConnectTimeout) && {
49
+ connectionTimeoutMillis: Math.ceil(parsedConnectTimeout) * 1000,
36
50
  }),
37
51
  };
38
52
  return conn;
@@ -1 +1 @@
1
- {"version":3,"file":"getConnectionDetails.js","sourceRoot":"","sources":["../../../../src/connectionUtils/getConnectionDetails.ts"],"names":[],"mappings":";;;AAEA,yDAAqD;AAe9C,MAAM,oBAAoB,GAAG,CAAC,CAAc,EAAqB,EAAE;IACxE;;;OAGG;IACH,MAAM,UAAU,GAAG,CACjB,OAA8B,EACe,EAAE,CAC/C,OAAO,KAAK,SAAS,CAAC,CAAC;QACrB;YACE,EAAE,EAAE,CAAC,CAAC,eAAe,IAAI,SAAS;YAClC,IAAI,EAAE,CAAC,CAAC,sBAAsB,IAAI,SAAS;YAC3C,GAAG,EAAE,CAAC,CAAC,0BAA0B,IAAI,SAAS;YAC9C,kBAAkB,EAChB,CAAC,CAAC,uBAAuB;gBACzB,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;oBAC7C,OAAO,KAAK,WAAW;oBACvB,OAAO,KAAK,aAAa,CAAC;SAC/B;QACH,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,wBAAwB,GAAG,EAAE,CAAC;IAEpC,IAAI,CAAC,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;QAChC,MAAM,EAAE,GAAG,IAAI,oCAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC;QAC/B,MAAM,EACJ,OAAO,EACP,gBAAgB,GAAG,wBAAwB,EAC3C,eAAe,GAAG,EAAE,GACrB,GAAG,MAAM,CAAC;QACX,MAAM,IAAI,GAAG;YACX,gBAAgB;YAChB,IAAI,EAAE,EAAE,CAAC,KAAM,CAAC,CAAC,CAAE,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,EAAE,2CAA2C;YAClF,IAAI,EAAE,EAAE,CAAC,KAAM,CAAC,CAAC,CAAE,CAAC,IAAK;YACzB,IAAI,EAAE,EAAE,CAAC,IAAK;YACd,QAAQ,EAAE,EAAE,CAAC,QAAS;YACtB,QAAQ,EAAE,EAAE,CAAC,IAAK,CAAC,CAAC,CAAE;YACtB,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,KAAK;YACjC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI;gBACtC,uBAAuB,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,IAAI;aAC3D,CAAC;SACH,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG;QACX,gBAAgB,EAAE,wBAAwB;QAC1C,QAAQ,EAAE,CAAC,CAAC,OAAO;QACnB,IAAI,EAAE,CAAC,CAAC,OAAO;QACf,QAAQ,EAAE,CAAC,CAAC,OAAQ;QACpB,IAAI,EAAE,CAAC,CAAC,OAAO;QACf,IAAI,EAAE,CAAC,CAAC,OAAO;QACf,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK;QAClC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI;YAC9C,uBAAuB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAsB,CAAC;SAC7D,CAAC;KACH,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AA1DW,QAAA,oBAAoB,wBA0D/B"}
1
+ {"version":3,"file":"getConnectionDetails.js","sourceRoot":"","sources":["../../../../src/connectionUtils/getConnectionDetails.ts"],"names":[],"mappings":";;;AAEA,yDAAqD;AAe9C,MAAM,oBAAoB,GAAG,CAAC,CAAc,EAAqB,EAAE;IACxE;;;OAGG;IACH,MAAM,UAAU,GAAG,CACjB,OAA8B,EACe,EAAE,CAC/C,OAAO,KAAK,SAAS,CAAC,CAAC;QACrB;YACE,EAAE,EAAE,CAAC,CAAC,eAAe,IAAI,SAAS;YAClC,IAAI,EAAE,CAAC,CAAC,sBAAsB,IAAI,SAAS;YAC3C,GAAG,EAAE,CAAC,CAAC,0BAA0B,IAAI,SAAS;YAC9C,kBAAkB,EAChB,CAAC,CAAC,uBAAuB;gBACzB,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;oBAC7C,OAAO,KAAK,WAAW;oBACvB,OAAO,KAAK,aAAa,CAAC;SAC/B;QACH,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,wBAAwB,GAAG,EAAE,CAAC;IAEpC,IAAI,CAAC,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;QAChC,MAAM,aAAa,GAAG,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;QACtC;;;;WAIG;QACH,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9C,MAAM,EAAE,GAAG,IAAI,oCAAgB,CAC7B,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CACvE,CAAC;QACF,MAAM,MAAM,GACV,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC;YACjB,EAAE;YACJ,CAAC,CAAC,MAAM,CAAC,WAAW,CAChB,IAAI,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CACnE,CAAC;QACN,MAAM,EACJ,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,gBAAgB,GAAG,wBAAwB,EAC3C,eAAe,GAAG,EAAE,GACrB,GAAG,MAAM,CAAC;QACX,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,oBAAoB,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;QACrD,MAAM,IAAI,GAAG;YACX,gBAAgB;YAChB,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,OAAO;YAC9C,IAAI,EACF,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;gBACnB,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC;oBAC9C,UAAU;oBACZ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACd,IAAI,EAAE,EAAE,CAAC,IAAK;YACd,QAAQ,EAAE,EAAE,CAAC,QAAS;YACtB,QAAQ,EAAE,EAAE,CAAC,IAAK,CAAC,CAAC,CAAE;YACtB,GAAG,EAAE,UAAU,CAAC,OAAgC,CAAC,IAAI,KAAK;YAC1D,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI;gBAC3C,uBAAuB,EAAE,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,IAAI;aAChE,CAAC;SACH,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG;QACX,gBAAgB,EAAE,wBAAwB;QAC1C,QAAQ,EAAE,CAAC,CAAC,OAAO;QACnB,IAAI,EAAE,CAAC,CAAC,OAAO;QACf,QAAQ,EAAE,CAAC,CAAC,OAAQ;QACpB,IAAI,EAAE,CAAC,CAAC,OAAO;QACf,IAAI,EAAE,CAAC,CAAC,OAAO;QACf,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK;QAClC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI;YAC9C,uBAAuB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAsB,CAAC;SAC7D,CAAC;KACH,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAhFW,QAAA,oBAAoB,wBAgF/B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=getConnectionDetails.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getConnectionDetails.spec.d.ts","sourceRoot":"","sources":["../../../../src/connectionUtils/getConnectionDetails.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const assert_1 = require("assert");
4
+ const node_test_1 = require("node:test");
5
+ const getConnectionDetails_1 = require("./getConnectionDetails");
6
+ const getDetails = (db_conn) => (0, getConnectionDetails_1.getConnectionDetails)({
7
+ type: "Connection URI",
8
+ db_conn,
9
+ db_host: "fallback-host",
10
+ db_port: 5432,
11
+ });
12
+ void (0, node_test_1.test)("parses a PostgreSQL Unix-socket URI with an unescaped host query parameter", () => {
13
+ const details = getDetails("postgresql://socket_user:secret@/socket_db?host=/var/run/postgresql&sslmode=disable");
14
+ assert_1.strict.equal(details.host, "/var/run/postgresql");
15
+ assert_1.strict.equal(details.port, 5432);
16
+ assert_1.strict.equal(details.user, "socket_user");
17
+ assert_1.strict.equal(details.password, "secret");
18
+ assert_1.strict.equal(details.database, "socket_db");
19
+ });
20
+ void (0, node_test_1.test)("parses a PostgreSQL Unix-socket URI with an encoded host query parameter", () => {
21
+ const details = getDetails("postgresql://socket_user:secret@/socket_db?host=%2Fvar%2Frun%2Fpostgresql&port=5433&sslmode=disable");
22
+ assert_1.strict.equal(details.host, "/var/run/postgresql");
23
+ assert_1.strict.equal(details.port, 5433);
24
+ });
25
+ //# sourceMappingURL=getConnectionDetails.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getConnectionDetails.spec.js","sourceRoot":"","sources":["../../../../src/connectionUtils/getConnectionDetails.spec.ts"],"names":[],"mappings":";;AAAA,mCAAgC;AAChC,yCAAiC;AACjC,iEAAgF;AAEhF,MAAM,UAAU,GAAG,CAAC,OAAe,EAAE,EAAE,CACrC,IAAA,2CAAoB,EAAC;IACnB,IAAI,EAAE,gBAAgB;IACtB,OAAO;IACP,OAAO,EAAE,eAAe;IACxB,OAAO,EAAE,IAAI;CACC,CAAC,CAAC;AAEpB,KAAK,IAAA,gBAAI,EAAC,4EAA4E,EAAE,GAAG,EAAE;IAC3F,MAAM,OAAO,GAAG,UAAU,CACxB,qFAAqF,CACtF,CAAC;IAEF,eAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;IAClD,eAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjC,eAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC1C,eAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACzC,eAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AAC9C,CAAC,CAAC,CAAC;AAEH,KAAK,IAAA,gBAAI,EAAC,0EAA0E,EAAE,GAAG,EAAE;IACzF,MAAM,OAAO,GAAG,UAAU,CACxB,qGAAqG,CACtG,CAAC;IAEF,eAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;IAClD,eAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prostgles/prostgles",
3
- "version": "2.3.6-dev.1787250929",
3
+ "version": "2.3.6-dev.1787262189",
4
4
  "description": "Prostgles UI runtime and configurable PostgreSQL dashboard",
5
5
  "main": "dist/server/src/schemaConfig.js",
6
6
  "bin": {