@juit/pgproxy-utils 1.2.1 → 1.3.1

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/migrate.cjs CHANGED
@@ -5,6 +5,10 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __getProtoOf = Object.getPrototypeOf;
7
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
9
+ var __typeError = (msg) => {
10
+ throw TypeError(msg);
11
+ };
8
12
  var __export = (target, all) => {
9
13
  for (var name in all)
10
14
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -26,6 +30,47 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
30
  mod
27
31
  ));
28
32
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
33
+ var __using = (stack, value, async) => {
34
+ if (value != null) {
35
+ if (typeof value !== "object" && typeof value !== "function") __typeError("Object expected");
36
+ var dispose, inner;
37
+ if (async) dispose = value[__knownSymbol("asyncDispose")];
38
+ if (dispose === void 0) {
39
+ dispose = value[__knownSymbol("dispose")];
40
+ if (async) inner = dispose;
41
+ }
42
+ if (typeof dispose !== "function") __typeError("Object not disposable");
43
+ if (inner) dispose = function() {
44
+ try {
45
+ inner.call(this);
46
+ } catch (e) {
47
+ return Promise.reject(e);
48
+ }
49
+ };
50
+ stack.push([async, dispose, value]);
51
+ } else if (async) {
52
+ stack.push([async]);
53
+ }
54
+ return value;
55
+ };
56
+ var __callDispose = (stack, error, hasError) => {
57
+ var E = typeof SuppressedError === "function" ? SuppressedError : function(e, s, m, _) {
58
+ return _ = Error(m), _.name = "SuppressedError", _.error = e, _.suppressed = s, _;
59
+ };
60
+ var fail = (e) => error = hasError ? new E(e, error, "An error was suppressed during disposal") : (hasError = true, e);
61
+ var next = (it) => {
62
+ while (it = stack.pop()) {
63
+ try {
64
+ var result = it[1] && it[1].call(it[2]);
65
+ if (it[0]) return Promise.resolve(result).then(next, (e) => (fail(e), next()));
66
+ } catch (e) {
67
+ fail(e);
68
+ }
69
+ }
70
+ if (hasError) throw error;
71
+ };
72
+ return next();
73
+ };
29
74
 
30
75
  // migrate.ts
31
76
  var migrate_exports = {};
@@ -35,62 +80,65 @@ __export(migrate_exports, {
35
80
  module.exports = __toCommonJS(migrate_exports);
36
81
  var import_node_crypto = __toESM(require("node:crypto"));
37
82
  var import_node_path = require("node:path");
38
- var import_pgproxy_persister = require("@juit/pgproxy-persister");
83
+ var import_pgproxy_client = require("@juit/pgproxy-client");
39
84
  var import_plug = require("@plugjs/plug");
40
85
  var migrationsExpression = /^([0-9]+)[^\w](.*)\.(sql)$/i;
41
86
  async function migrate(url, options) {
42
- const {
43
- /* Default to our "../sql" migrations directory */
44
- migrations: migrationsDirectory = (0, import_plug.resolve)("sql"),
45
- /* Our default group name is "default" */
46
- group = "default",
47
- /* Optional additional directory for migrations */
48
- additional
49
- } = { ...options };
50
- let entries = await (0, import_plug.find)("*.sql", { directory: migrationsDirectory });
51
- if (additional) {
52
- for (const addition of [additional].flat()) {
53
- const additional2 = await (0, import_plug.find)("*.sql", { directory: addition });
54
- entries = await (0, import_plug.merge)([entries, additional2]);
87
+ var _stack = [];
88
+ try {
89
+ const {
90
+ /* Default to our "../sql" migrations directory */
91
+ migrations: migrationsDirectory = (0, import_plug.resolve)("sql"),
92
+ /* Our default group name is "default" */
93
+ group = "default",
94
+ /* Optional additional directory for migrations */
95
+ additional
96
+ } = { ...options };
97
+ let entries = await (0, import_plug.find)("*.sql", { directory: migrationsDirectory });
98
+ if (additional) {
99
+ for (const addition of [additional].flat()) {
100
+ const additional2 = await (0, import_plug.find)("*.sql", { directory: addition });
101
+ entries = await (0, import_plug.merge)([entries, additional2]);
102
+ }
55
103
  }
56
- }
57
- const promises = [...entries.absolutePaths()].map(async (file) => {
58
- const match = migrationsExpression.exec((0, import_node_path.basename)(file));
59
- if (!match) return;
60
- const [, number, name] = match;
61
- const contents = await import_plug.fs.readFile(file);
62
- return {
63
- sha256sum: import_node_crypto.default.createHash("sha256").update(contents).digest(),
64
- contents: contents.toString("utf8"),
65
- number: parseInt(number),
66
- name
67
- };
68
- });
69
- const migrationFiles = (await Promise.all(promises)).filter((migration) => !!migration).sort((a, b) => a.number - b.number);
70
- const now = Date.now();
71
- const persister = new import_pgproxy_persister.Persister(url);
72
- return await persister.connect(async (connection) => {
104
+ const promises = [...entries.absolutePaths()].map(async (file) => {
105
+ const match = migrationsExpression.exec((0, import_node_path.basename)(file));
106
+ if (!match) return;
107
+ const [, number, name] = match;
108
+ const contents = await import_plug.fs.readFile(file);
109
+ return {
110
+ sha256sum: import_node_crypto.default.createHash("sha256").update(contents).digest(),
111
+ contents: contents.toString("utf8"),
112
+ number: parseInt(number),
113
+ name
114
+ };
115
+ });
116
+ const migrationFiles = (await Promise.all(promises)).filter((migration) => !!migration).sort((a, b) => a.number - b.number);
117
+ const now = Date.now();
118
+ const client = __using(_stack, new import_pgproxy_client.PGClient(url), true);
119
+ const connection = __using(_stack, await client.connect(), true);
73
120
  const info = await connection.query("SELECT current_database() AS name");
74
- import_plug.log.notice(`Migrating database ${(0, import_plug.$ylw)(info.rows[0].name)}`);
75
- const model = connection.in("$migrations");
121
+ import_plug.log.notice(`Migrating database ${(0, import_plug.$ylw)(info.rows[0].name)} ${(0, import_plug.$gry)(`(group=${group})`)}`);
76
122
  import_plug.log.info("Beginning migrations transaction");
77
123
  await connection.begin();
78
124
  import_plug.log.info(`Ensuring presence of ${(0, import_plug.$blu)("$migrations")} table`);
79
125
  await connection.query(`
80
- SET LOCAL client_min_messages TO WARNING;
81
- CREATE TABLE IF NOT EXISTS "$migrations" (
82
- "group" VARCHAR(32) NOT NULL DEFAULT 'default',
83
- "number" INTEGER NOT NULL,
84
- "name" TEXT NOT NULL,
85
- "timestamp" TIMESTAMPTZ NOT NULL DEFAULT NOW(),
86
- "sha256sum" BYTEA NOT NULL,
87
- PRIMARY KEY ("group", "number")
88
- );`);
126
+ SET LOCAL client_min_messages TO WARNING;
127
+ CREATE TABLE IF NOT EXISTS "$migrations" (
128
+ "group" VARCHAR(32) NOT NULL DEFAULT 'default',
129
+ "number" INTEGER NOT NULL,
130
+ "name" TEXT NOT NULL,
131
+ "timestamp" TIMESTAMPTZ NOT NULL DEFAULT NOW(),
132
+ "sha256sum" BYTEA NOT NULL,
133
+ PRIMARY KEY ("group", "number")
134
+ );`);
89
135
  import_plug.log.info(`Lock exclusive use of ${(0, import_plug.$blu)("$migrations")} table`);
90
136
  await connection.query('LOCK TABLE "$migrations"');
91
- import_plug.log.info(`Looking for entries in ${(0, import_plug.$blu)("$migrations")} table`);
92
- const result = await model.read({ group });
93
- const applied = result.reduce((applied2, row) => {
137
+ import_plug.log.info(`Looking for entries in ${(0, import_plug.$blu)("$migrations")} table ${(0, import_plug.$gry)(`(group=${group})`)}`);
138
+ const result = await connection.query(
139
+ import_pgproxy_client.SQL`SELECT * FROM "$migrations" WHERE "group" = ${group}`
140
+ );
141
+ const applied = result.rows.reduce((applied2, row) => {
94
142
  const { group: group2, number, name, timestamp, sha256sum } = row;
95
143
  applied2[number] = { group: group2, number, name, timestamp, sha256sum };
96
144
  return applied2;
@@ -113,7 +161,8 @@ async function migrate(url, options) {
113
161
  try {
114
162
  import_plug.log.notice(`Applying migration ${(0, import_plug.$gry)(`${group}@`)}${(0, import_plug.$grn)(num)}: ${(0, import_plug.$blu)(name)}`);
115
163
  await connection.query(contents);
116
- await model.create({ group, number, name, sha256sum });
164
+ await connection.query(import_pgproxy_client.SQL`INSERT INTO "$migrations" ("group", "number", "name", "sha256sum")
165
+ VALUES (${group}, ${number}, ${name}, ${sha256sum})`);
117
166
  count++;
118
167
  } catch (error) {
119
168
  import_plug.log.error(`Failed migration ${(0, import_plug.$gry)(`${group}@`)}${(0, import_plug.$grn)(num)}: ${(0, import_plug.$ylw)(name)}`);
@@ -128,7 +177,12 @@ ${message}`;
128
177
  await connection.commit();
129
178
  import_plug.log.notice(`Applied ${(0, import_plug.$ylw)(count)} migrations ${(0, import_plug.$ms)(Date.now() - now)}`);
130
179
  return count;
131
- }).finally(() => persister.destroy());
180
+ } catch (_) {
181
+ var _error = _, _hasError = true;
182
+ } finally {
183
+ var _promise = __callDispose(_stack, _error, _hasError);
184
+ _promise && await _promise;
185
+ }
132
186
  }
133
187
  // Annotate the CommonJS export names for ESM import in node:
134
188
  0 && (module.exports = {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/migrate.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["additional", "crypto", "applied", "group"]
6
6
  }
package/dist/migrate.mjs CHANGED
@@ -1,62 +1,111 @@
1
+ var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
2
+ var __typeError = (msg) => {
3
+ throw TypeError(msg);
4
+ };
5
+ var __using = (stack, value, async) => {
6
+ if (value != null) {
7
+ if (typeof value !== "object" && typeof value !== "function") __typeError("Object expected");
8
+ var dispose, inner;
9
+ if (async) dispose = value[__knownSymbol("asyncDispose")];
10
+ if (dispose === void 0) {
11
+ dispose = value[__knownSymbol("dispose")];
12
+ if (async) inner = dispose;
13
+ }
14
+ if (typeof dispose !== "function") __typeError("Object not disposable");
15
+ if (inner) dispose = function() {
16
+ try {
17
+ inner.call(this);
18
+ } catch (e) {
19
+ return Promise.reject(e);
20
+ }
21
+ };
22
+ stack.push([async, dispose, value]);
23
+ } else if (async) {
24
+ stack.push([async]);
25
+ }
26
+ return value;
27
+ };
28
+ var __callDispose = (stack, error, hasError) => {
29
+ var E = typeof SuppressedError === "function" ? SuppressedError : function(e, s, m, _) {
30
+ return _ = Error(m), _.name = "SuppressedError", _.error = e, _.suppressed = s, _;
31
+ };
32
+ var fail = (e) => error = hasError ? new E(e, error, "An error was suppressed during disposal") : (hasError = true, e);
33
+ var next = (it) => {
34
+ while (it = stack.pop()) {
35
+ try {
36
+ var result = it[1] && it[1].call(it[2]);
37
+ if (it[0]) return Promise.resolve(result).then(next, (e) => (fail(e), next()));
38
+ } catch (e) {
39
+ fail(e);
40
+ }
41
+ }
42
+ if (hasError) throw error;
43
+ };
44
+ return next();
45
+ };
46
+
1
47
  // migrate.ts
2
48
  import crypto from "node:crypto";
3
49
  import { basename } from "node:path";
4
- import { Persister } from "@juit/pgproxy-persister";
50
+ import { PGClient, SQL } from "@juit/pgproxy-client";
5
51
  import { $blu, $grn, $gry, $ms, $und, $ylw, find, fs, log, merge, resolve } from "@plugjs/plug";
6
52
  var migrationsExpression = /^([0-9]+)[^\w](.*)\.(sql)$/i;
7
53
  async function migrate(url, options) {
8
- const {
9
- /* Default to our "../sql" migrations directory */
10
- migrations: migrationsDirectory = resolve("sql"),
11
- /* Our default group name is "default" */
12
- group = "default",
13
- /* Optional additional directory for migrations */
14
- additional
15
- } = { ...options };
16
- let entries = await find("*.sql", { directory: migrationsDirectory });
17
- if (additional) {
18
- for (const addition of [additional].flat()) {
19
- const additional2 = await find("*.sql", { directory: addition });
20
- entries = await merge([entries, additional2]);
54
+ var _stack = [];
55
+ try {
56
+ const {
57
+ /* Default to our "../sql" migrations directory */
58
+ migrations: migrationsDirectory = resolve("sql"),
59
+ /* Our default group name is "default" */
60
+ group = "default",
61
+ /* Optional additional directory for migrations */
62
+ additional
63
+ } = { ...options };
64
+ let entries = await find("*.sql", { directory: migrationsDirectory });
65
+ if (additional) {
66
+ for (const addition of [additional].flat()) {
67
+ const additional2 = await find("*.sql", { directory: addition });
68
+ entries = await merge([entries, additional2]);
69
+ }
21
70
  }
22
- }
23
- const promises = [...entries.absolutePaths()].map(async (file) => {
24
- const match = migrationsExpression.exec(basename(file));
25
- if (!match) return;
26
- const [, number, name] = match;
27
- const contents = await fs.readFile(file);
28
- return {
29
- sha256sum: crypto.createHash("sha256").update(contents).digest(),
30
- contents: contents.toString("utf8"),
31
- number: parseInt(number),
32
- name
33
- };
34
- });
35
- const migrationFiles = (await Promise.all(promises)).filter((migration) => !!migration).sort((a, b) => a.number - b.number);
36
- const now = Date.now();
37
- const persister = new Persister(url);
38
- return await persister.connect(async (connection) => {
71
+ const promises = [...entries.absolutePaths()].map(async (file) => {
72
+ const match = migrationsExpression.exec(basename(file));
73
+ if (!match) return;
74
+ const [, number, name] = match;
75
+ const contents = await fs.readFile(file);
76
+ return {
77
+ sha256sum: crypto.createHash("sha256").update(contents).digest(),
78
+ contents: contents.toString("utf8"),
79
+ number: parseInt(number),
80
+ name
81
+ };
82
+ });
83
+ const migrationFiles = (await Promise.all(promises)).filter((migration) => !!migration).sort((a, b) => a.number - b.number);
84
+ const now = Date.now();
85
+ const client = __using(_stack, new PGClient(url), true);
86
+ const connection = __using(_stack, await client.connect(), true);
39
87
  const info = await connection.query("SELECT current_database() AS name");
40
- log.notice(`Migrating database ${$ylw(info.rows[0].name)}`);
41
- const model = connection.in("$migrations");
88
+ log.notice(`Migrating database ${$ylw(info.rows[0].name)} ${$gry(`(group=${group})`)}`);
42
89
  log.info("Beginning migrations transaction");
43
90
  await connection.begin();
44
91
  log.info(`Ensuring presence of ${$blu("$migrations")} table`);
45
92
  await connection.query(`
46
- SET LOCAL client_min_messages TO WARNING;
47
- CREATE TABLE IF NOT EXISTS "$migrations" (
48
- "group" VARCHAR(32) NOT NULL DEFAULT 'default',
49
- "number" INTEGER NOT NULL,
50
- "name" TEXT NOT NULL,
51
- "timestamp" TIMESTAMPTZ NOT NULL DEFAULT NOW(),
52
- "sha256sum" BYTEA NOT NULL,
53
- PRIMARY KEY ("group", "number")
54
- );`);
93
+ SET LOCAL client_min_messages TO WARNING;
94
+ CREATE TABLE IF NOT EXISTS "$migrations" (
95
+ "group" VARCHAR(32) NOT NULL DEFAULT 'default',
96
+ "number" INTEGER NOT NULL,
97
+ "name" TEXT NOT NULL,
98
+ "timestamp" TIMESTAMPTZ NOT NULL DEFAULT NOW(),
99
+ "sha256sum" BYTEA NOT NULL,
100
+ PRIMARY KEY ("group", "number")
101
+ );`);
55
102
  log.info(`Lock exclusive use of ${$blu("$migrations")} table`);
56
103
  await connection.query('LOCK TABLE "$migrations"');
57
- log.info(`Looking for entries in ${$blu("$migrations")} table`);
58
- const result = await model.read({ group });
59
- const applied = result.reduce((applied2, row) => {
104
+ log.info(`Looking for entries in ${$blu("$migrations")} table ${$gry(`(group=${group})`)}`);
105
+ const result = await connection.query(
106
+ SQL`SELECT * FROM "$migrations" WHERE "group" = ${group}`
107
+ );
108
+ const applied = result.rows.reduce((applied2, row) => {
60
109
  const { group: group2, number, name, timestamp, sha256sum } = row;
61
110
  applied2[number] = { group: group2, number, name, timestamp, sha256sum };
62
111
  return applied2;
@@ -79,7 +128,8 @@ async function migrate(url, options) {
79
128
  try {
80
129
  log.notice(`Applying migration ${$gry(`${group}@`)}${$grn(num)}: ${$blu(name)}`);
81
130
  await connection.query(contents);
82
- await model.create({ group, number, name, sha256sum });
131
+ await connection.query(SQL`INSERT INTO "$migrations" ("group", "number", "name", "sha256sum")
132
+ VALUES (${group}, ${number}, ${name}, ${sha256sum})`);
83
133
  count++;
84
134
  } catch (error) {
85
135
  log.error(`Failed migration ${$gry(`${group}@`)}${$grn(num)}: ${$ylw(name)}`);
@@ -94,7 +144,12 @@ ${message}`;
94
144
  await connection.commit();
95
145
  log.notice(`Applied ${$ylw(count)} migrations ${$ms(Date.now() - now)}`);
96
146
  return count;
97
- }).finally(() => persister.destroy());
147
+ } catch (_) {
148
+ var _error = _, _hasError = true;
149
+ } finally {
150
+ var _promise = __callDispose(_stack, _error, _hasError);
151
+ _promise && await _promise;
152
+ }
98
153
  }
99
154
  export {
100
155
  migrate
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/migrate.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["additional", "applied", "group"]
6
6
  }
@@ -33,7 +33,6 @@ __export(serialize_exports, {
33
33
  serializeSchema: () => serializeSchema
34
34
  });
35
35
  module.exports = __toCommonJS(serialize_exports);
36
- var import_pgproxy_client_psql = require("@juit/pgproxy-client-psql");
37
36
  var import_pgproxy_types = require("@juit/pgproxy-types");
38
37
  var import_typescript = __toESM(require("typescript"));
39
38
  var types = __toESM(require("./types.cjs"));
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/serialize.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iCAAO;AACP,2BAAuB;AACvB,wBAAe;AAEf,YAAuB;AAQvB,IAAM,iBAAiB,kBAAAA,QAAG,QAAQ,eAAe,kBAAAA,QAAG,WAAW,aAAa;AAC5E,IAAM,iBAAiB,kBAAAA,QAAG,QAAQ,YAAY,kBAAAA,QAAG,WAAW,cAAc;AAE1E,IAAM,WAAW;AAAA;AAAA,EAEf,CAAC,4BAAO,IAAI,GAAS;AAAA;AAAA,EACrB,CAAC,4BAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,4BAAO,IAAI,GAAS;AAAA;AAAA,EACrB,CAAC,4BAAO,IAAI,GAAS;AAAA;AAAA,EACrB,CAAC,4BAAO,IAAI,GAAS;AAAA;AAAA,EACrB,CAAC,4BAAO,GAAG,GAAS;AAAA;AAAA,EACpB,CAAC,4BAAO,IAAI,GAAS;AAAA;AAAA,EACrB,CAAC,4BAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,4BAAO,MAAM,GAAS;AAAA;AAAA,EACvB,CAAC,4BAAO,MAAM,GAAS;AAAA;AAAA,EACvB,CAAC,4BAAO,MAAM,GAAS;AAAA;AAAA,EACvB,CAAC,4BAAO,OAAO,GAAS;AAAA;AAAA,EACxB,CAAC,4BAAO,SAAS,GAAS;AAAA;AAAA,EAC1B,CAAC,4BAAO,WAAW,GAAS;AAAA;AAAA,EAC5B,CAAC,4BAAO,QAAQ,GAAS;AAAA;AAAA,EACzB,CAAC,4BAAO,OAAO,GAAS;AAAA;AAAA,EACxB,CAAC,4BAAO,KAAK,GAAS;AAAA;AAAA;AAAA,EAGtB,CAAC,4BAAO,IAAI,GAAS;AAAA;AAAA,EACrB,CAAC,4BAAO,GAAG,GAAS;AAAA;AAAA,EACpB,CAAC,4BAAO,IAAI,GAAS;AAAA;AAAA,EACrB,CAAC,4BAAO,IAAI,GAAS;AAAA;AAAA,EACrB,CAAC,4BAAO,KAAK,GAAS;AAAA;AAAA;AAAA,EAGtB,CAAC,4BAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,4BAAO,MAAM,GAAS;AAAA;AAAA,EACvB,CAAC,4BAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,4BAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,4BAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,4BAAO,IAAI,GAAS;AAAA;AAAA,EACrB,CAAC,4BAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,4BAAO,MAAM,GAAS;AAAA;AAAA,EACvB,CAAC,4BAAO,OAAO,GAAS;AAAA;AAAA,EACxB,CAAC,4BAAO,OAAO,GAAS;AAAA;AAAA,EACxB,CAAC,4BAAO,OAAO,GAAS;AAAA;AAAA,EACxB,CAAC,4BAAO,UAAU,GAAS;AAAA;AAAA,EAC3B,CAAC,4BAAO,YAAY,GAAS;AAAA;AAAA,EAC7B,CAAC,4BAAO,SAAS,GAAS;AAAA;AAAA,EAC1B,CAAC,4BAAO,QAAQ,GAAS;AAAA;AAAA,EACzB,CAAC,4BAAO,MAAM,GAAS;AAAA;AAAA;AAAA,EAGvB,CAAC,4BAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,4BAAO,MAAM,GAAS;AAAA;AAAA,EACvB,CAAC,4BAAO,QAAQ,GAAS;AAAA;AAAA,EACzB,CAAC,4BAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,4BAAO,OAAO,GAAS;AAAA;AAAA,EACxB,CAAC,4BAAO,QAAQ,GAAS;AAAA;AAAA,EACzB,CAAC,4BAAO,QAAQ,GAAS;AAAA;AAAA,EACzB,CAAC,4BAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,4BAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,4BAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,4BAAO,OAAO,GAAS;AAAA;AAAA,EACxB,CAAC,4BAAO,KAAK,GAAS;AAAA;AAAA;AAAA,EAGtB,CAAC,4BAAO,SAAS,GAAS;AAAA;AAAA,EAC1B,CAAC,4BAAO,QAAQ,GAAS;AAAA;AAAA,EACzB,CAAC,4BAAO,OAAO,GAAS;AAAA;AAAA,EACxB,CAAC,4BAAO,SAAS,GAAS;AAAA;AAAA,EAC1B,CAAC,4BAAO,SAAS,GAAS;AAAA;AAAA,EAC1B,CAAC,4BAAO,SAAS,GAAS;AAAA;AAAA;AAAA,EAG1B,CAAC,4BAAO,UAAU,GAAS;AAAA;AAAA,EAC3B,CAAC,4BAAO,SAAS,GAAS;AAAA;AAAA,EAC1B,CAAC,4BAAO,QAAQ,GAAS;AAAA;AAAA,EACzB,CAAC,4BAAO,UAAU,GAAS;AAAA;AAAA,EAC3B,CAAC,4BAAO,UAAU,GAAS;AAAA;AAAA,EAC3B,CAAC,4BAAO,UAAU,GAAS;AAAA;AAC7B;AAEA,IAAM,sBAAsB,kBAAAA,QAAG,QAAQ;AAAA,EACnC,kBAAAA,QAAG,QAAQ,YAAY,kBAAAA,QAAG,WAAW,WAAW;AAAC;AAErD,IAAM,uBAAuB,kBAAAA,QAAG,QAAQ;AAAA,EACpC;AAAA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EACA;AAAmB;AAEvB,IAAM,sBAAsB,kBAAAA,QAAG,QAAQ;AAAA,EACnC;AAAA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EACA;AAAmB;AAEvB,IAAM,sBAAsB,kBAAAA,QAAG,QAAQ;AAAA,EACnC;AAAA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EACA;AAAmB;AAWhB,SAAS,gBACZ,QACA,KAAa,UACb,YAAyC,CAAC,GACpC;AAER,QAAM,SAAiC,CAAC;AAGxC,aAAW,CAAE,WAAW,KAAM,KAAK,OAAO,QAAQ,MAAM,GAAG;AAEzD,UAAM,UAAkC,CAAC;AAGzC,eAAW,CAAE,YAAY,MAAO,KAAK,OAAO,QAAQ,KAAK,GAAG;AAC1D,UAAI;AAGJ,UAAI,OAAO,OAAO,WAAW;AAC3B,mBAAW,UAAU,OAAO,GAAG;AAAA,MAGjC,WAAW,OAAO,OAAO,UAAU;AACjC,mBAAW,SAAS,OAAO,GAA4B;AAAA,MAGzD,WAAW,OAAO,YAAY;AAC5B,mBAAW,kBAAAA,QAAG,QAAQ;AAAA,UAClB,OAAO,WAAW,IAAI,CAAC,UACrB,kBAAAA,QAAG,QAAQ;AAAA,YACP,kBAAAA,QAAG,QAAQ,oBAAoB,KAAK;AAAA,UACxC,CAAC;AAAA,QAAC;AAAA,MAGV,OAAO;AACL,mBAAiB;AAAA,MACnB;AAGA,YAAM,gBAAgB,kBAAAA,QAAG,QAAQ;AAAA,QAC7B;AAAA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,QACA;AAAA,MACJ;AAGA,YAAM,aAAqC,CAAE,aAAc;AAC3D,UAAI,OAAO,WAAY,YAAW,KAAK,mBAAmB;AAC1D,UAAI,OAAO,WAAY,YAAW,KAAK,mBAAmB;AAC1D,UAAI,OAAO,YAAa,YAAW,KAAK,oBAAoB;AAE5D,YAAM,kBAAkB,kBAAAA,QAAG,QAAQ;AAAA,QAC/B;AAAA;AAAA,QACA,kBAAAA,QAAG,QAAQ,oBAAoB,UAAU;AAAA,QACzC;AAAA;AAAA,QACA,kBAAAA,QAAG,QAAQ,sBAAsB,UAAU;AAAA,MAC/C;AAGA,UAAI,OAAO,aAAa;AACtB,0BAAAA,QAAG;AAAA,UACC;AAAA,UACA,kBAAAA,QAAG,WAAW;AAAA,UACd,KAAK,OAAO,WAAW;AAAA,UACvB;AAAA;AAAA,QACJ;AAAA,MACF;AAGA,cAAQ,KAAK,eAAe;AAAA,IAC9B;AAGA,UAAM,iBAAiB,kBAAAA,QAAG,QAAQ;AAAA,MAC9B;AAAA;AAAA,MACA,kBAAAA,QAAG,QAAQ,oBAAoB,SAAS;AAAA,MACxC;AAAA;AAAA,MACA,kBAAAA,QAAG,QAAQ,sBAAsB,OAAO;AAAA;AAAA,IAC5C;AACA,WAAO,KAAK,cAAc;AAAA,EAC5B;AAGA,QAAM,cAAc,kBAAAA,QAAG,QAAQ;AAAA,IAC3B,CAAE,cAAe;AAAA;AAAA,IACjB;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,EACJ;AAGA,QAAM,SAAS,kBAAAA,QAAG,QAAQ;AAAA,IACtB,CAAE,WAAY;AAAA,IACd;AAAA,IACA,kBAAAA,QAAG,UAAU;AAAA,EACjB;AAGA,QAAM,UAAU,kBAAAA,QAAG,cAAc,EAAE,UAAU,MAAM;AACnD,SAAO;AACT;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAAuB;AACvB,wBAAe;AAEf,YAAuB;AAQvB,IAAM,iBAAiB,kBAAAA,QAAG,QAAQ,eAAe,kBAAAA,QAAG,WAAW,aAAa;AAC5E,IAAM,iBAAiB,kBAAAA,QAAG,QAAQ,YAAY,kBAAAA,QAAG,WAAW,cAAc;AAE1E,IAAM,WAAW;AAAA;AAAA,EAEf,CAAC,4BAAO,IAAI,GAAS;AAAA;AAAA,EACrB,CAAC,4BAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,4BAAO,IAAI,GAAS;AAAA;AAAA,EACrB,CAAC,4BAAO,IAAI,GAAS;AAAA;AAAA,EACrB,CAAC,4BAAO,IAAI,GAAS;AAAA;AAAA,EACrB,CAAC,4BAAO,GAAG,GAAS;AAAA;AAAA,EACpB,CAAC,4BAAO,IAAI,GAAS;AAAA;AAAA,EACrB,CAAC,4BAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,4BAAO,MAAM,GAAS;AAAA;AAAA,EACvB,CAAC,4BAAO,MAAM,GAAS;AAAA;AAAA,EACvB,CAAC,4BAAO,MAAM,GAAS;AAAA;AAAA,EACvB,CAAC,4BAAO,OAAO,GAAS;AAAA;AAAA,EACxB,CAAC,4BAAO,SAAS,GAAS;AAAA;AAAA,EAC1B,CAAC,4BAAO,WAAW,GAAS;AAAA;AAAA,EAC5B,CAAC,4BAAO,QAAQ,GAAS;AAAA;AAAA,EACzB,CAAC,4BAAO,OAAO,GAAS;AAAA;AAAA,EACxB,CAAC,4BAAO,KAAK,GAAS;AAAA;AAAA;AAAA,EAGtB,CAAC,4BAAO,IAAI,GAAS;AAAA;AAAA,EACrB,CAAC,4BAAO,GAAG,GAAS;AAAA;AAAA,EACpB,CAAC,4BAAO,IAAI,GAAS;AAAA;AAAA,EACrB,CAAC,4BAAO,IAAI,GAAS;AAAA;AAAA,EACrB,CAAC,4BAAO,KAAK,GAAS;AAAA;AAAA;AAAA,EAGtB,CAAC,4BAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,4BAAO,MAAM,GAAS;AAAA;AAAA,EACvB,CAAC,4BAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,4BAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,4BAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,4BAAO,IAAI,GAAS;AAAA;AAAA,EACrB,CAAC,4BAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,4BAAO,MAAM,GAAS;AAAA;AAAA,EACvB,CAAC,4BAAO,OAAO,GAAS;AAAA;AAAA,EACxB,CAAC,4BAAO,OAAO,GAAS;AAAA;AAAA,EACxB,CAAC,4BAAO,OAAO,GAAS;AAAA;AAAA,EACxB,CAAC,4BAAO,UAAU,GAAS;AAAA;AAAA,EAC3B,CAAC,4BAAO,YAAY,GAAS;AAAA;AAAA,EAC7B,CAAC,4BAAO,SAAS,GAAS;AAAA;AAAA,EAC1B,CAAC,4BAAO,QAAQ,GAAS;AAAA;AAAA,EACzB,CAAC,4BAAO,MAAM,GAAS;AAAA;AAAA;AAAA,EAGvB,CAAC,4BAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,4BAAO,MAAM,GAAS;AAAA;AAAA,EACvB,CAAC,4BAAO,QAAQ,GAAS;AAAA;AAAA,EACzB,CAAC,4BAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,4BAAO,OAAO,GAAS;AAAA;AAAA,EACxB,CAAC,4BAAO,QAAQ,GAAS;AAAA;AAAA,EACzB,CAAC,4BAAO,QAAQ,GAAS;AAAA;AAAA,EACzB,CAAC,4BAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,4BAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,4BAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,4BAAO,OAAO,GAAS;AAAA;AAAA,EACxB,CAAC,4BAAO,KAAK,GAAS;AAAA;AAAA;AAAA,EAGtB,CAAC,4BAAO,SAAS,GAAS;AAAA;AAAA,EAC1B,CAAC,4BAAO,QAAQ,GAAS;AAAA;AAAA,EACzB,CAAC,4BAAO,OAAO,GAAS;AAAA;AAAA,EACxB,CAAC,4BAAO,SAAS,GAAS;AAAA;AAAA,EAC1B,CAAC,4BAAO,SAAS,GAAS;AAAA;AAAA,EAC1B,CAAC,4BAAO,SAAS,GAAS;AAAA;AAAA;AAAA,EAG1B,CAAC,4BAAO,UAAU,GAAS;AAAA;AAAA,EAC3B,CAAC,4BAAO,SAAS,GAAS;AAAA;AAAA,EAC1B,CAAC,4BAAO,QAAQ,GAAS;AAAA;AAAA,EACzB,CAAC,4BAAO,UAAU,GAAS;AAAA;AAAA,EAC3B,CAAC,4BAAO,UAAU,GAAS;AAAA;AAAA,EAC3B,CAAC,4BAAO,UAAU,GAAS;AAAA;AAC7B;AAEA,IAAM,sBAAsB,kBAAAA,QAAG,QAAQ;AAAA,EACnC,kBAAAA,QAAG,QAAQ,YAAY,kBAAAA,QAAG,WAAW,WAAW;AAAC;AAErD,IAAM,uBAAuB,kBAAAA,QAAG,QAAQ;AAAA,EACpC;AAAA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EACA;AAAmB;AAEvB,IAAM,sBAAsB,kBAAAA,QAAG,QAAQ;AAAA,EACnC;AAAA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EACA;AAAmB;AAEvB,IAAM,sBAAsB,kBAAAA,QAAG,QAAQ;AAAA,EACnC;AAAA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EACA;AAAmB;AAWhB,SAAS,gBACZ,QACA,KAAa,UACb,YAAyC,CAAC,GACpC;AAER,QAAM,SAAiC,CAAC;AAGxC,aAAW,CAAE,WAAW,KAAM,KAAK,OAAO,QAAQ,MAAM,GAAG;AAEzD,UAAM,UAAkC,CAAC;AAGzC,eAAW,CAAE,YAAY,MAAO,KAAK,OAAO,QAAQ,KAAK,GAAG;AAC1D,UAAI;AAGJ,UAAI,OAAO,OAAO,WAAW;AAC3B,mBAAW,UAAU,OAAO,GAAG;AAAA,MAGjC,WAAW,OAAO,OAAO,UAAU;AACjC,mBAAW,SAAS,OAAO,GAA4B;AAAA,MAGzD,WAAW,OAAO,YAAY;AAC5B,mBAAW,kBAAAA,QAAG,QAAQ;AAAA,UAClB,OAAO,WAAW,IAAI,CAAC,UACrB,kBAAAA,QAAG,QAAQ;AAAA,YACP,kBAAAA,QAAG,QAAQ,oBAAoB,KAAK;AAAA,UACxC,CAAC;AAAA,QAAC;AAAA,MAGV,OAAO;AACL,mBAAiB;AAAA,MACnB;AAGA,YAAM,gBAAgB,kBAAAA,QAAG,QAAQ;AAAA,QAC7B;AAAA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,QACA;AAAA,MACJ;AAGA,YAAM,aAAqC,CAAE,aAAc;AAC3D,UAAI,OAAO,WAAY,YAAW,KAAK,mBAAmB;AAC1D,UAAI,OAAO,WAAY,YAAW,KAAK,mBAAmB;AAC1D,UAAI,OAAO,YAAa,YAAW,KAAK,oBAAoB;AAE5D,YAAM,kBAAkB,kBAAAA,QAAG,QAAQ;AAAA,QAC/B;AAAA;AAAA,QACA,kBAAAA,QAAG,QAAQ,oBAAoB,UAAU;AAAA,QACzC;AAAA;AAAA,QACA,kBAAAA,QAAG,QAAQ,sBAAsB,UAAU;AAAA,MAC/C;AAGA,UAAI,OAAO,aAAa;AACtB,0BAAAA,QAAG;AAAA,UACC;AAAA,UACA,kBAAAA,QAAG,WAAW;AAAA,UACd,KAAK,OAAO,WAAW;AAAA,UACvB;AAAA;AAAA,QACJ;AAAA,MACF;AAGA,cAAQ,KAAK,eAAe;AAAA,IAC9B;AAGA,UAAM,iBAAiB,kBAAAA,QAAG,QAAQ;AAAA,MAC9B;AAAA;AAAA,MACA,kBAAAA,QAAG,QAAQ,oBAAoB,SAAS;AAAA,MACxC;AAAA;AAAA,MACA,kBAAAA,QAAG,QAAQ,sBAAsB,OAAO;AAAA;AAAA,IAC5C;AACA,WAAO,KAAK,cAAc;AAAA,EAC5B;AAGA,QAAM,cAAc,kBAAAA,QAAG,QAAQ;AAAA,IAC3B,CAAE,cAAe;AAAA;AAAA,IACjB;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,EACJ;AAGA,QAAM,SAAS,kBAAAA,QAAG,QAAQ;AAAA,IACtB,CAAE,WAAY;AAAA,IACd;AAAA,IACA,kBAAAA,QAAG,UAAU;AAAA,EACjB;AAGA,QAAM,UAAU,kBAAAA,QAAG,cAAc,EAAE,UAAU,MAAM;AACnD,SAAO;AACT;",
5
5
  "names": ["ts"]
6
6
  }
@@ -1,4 +1,3 @@
1
- import '@juit/pgproxy-client-psql';
2
1
  import ts from 'typescript';
3
2
  import type { Schema } from './index';
4
3
  /**
@@ -1,5 +1,4 @@
1
1
  // serialize.ts
2
- import "@juit/pgproxy-client-psql";
3
2
  import { PGOIDs } from "@juit/pgproxy-types";
4
3
  import ts from "typescript";
5
4
  import * as types from "./types.mjs";
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/serialize.ts"],
4
- "mappings": ";AAAA,OAAO;AACP,SAAS,cAAc;AACvB,OAAO,QAAQ;AAEf,YAAY,WAAW;AAQvB,IAAM,iBAAiB,GAAG,QAAQ,eAAe,GAAG,WAAW,aAAa;AAC5E,IAAM,iBAAiB,GAAG,QAAQ,YAAY,GAAG,WAAW,cAAc;AAE1E,IAAM,WAAW;AAAA;AAAA,EAEf,CAAC,OAAO,IAAI,GAAS;AAAA;AAAA,EACrB,CAAC,OAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,OAAO,IAAI,GAAS;AAAA;AAAA,EACrB,CAAC,OAAO,IAAI,GAAS;AAAA;AAAA,EACrB,CAAC,OAAO,IAAI,GAAS;AAAA;AAAA,EACrB,CAAC,OAAO,GAAG,GAAS;AAAA;AAAA,EACpB,CAAC,OAAO,IAAI,GAAS;AAAA;AAAA,EACrB,CAAC,OAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,OAAO,MAAM,GAAS;AAAA;AAAA,EACvB,CAAC,OAAO,MAAM,GAAS;AAAA;AAAA,EACvB,CAAC,OAAO,MAAM,GAAS;AAAA;AAAA,EACvB,CAAC,OAAO,OAAO,GAAS;AAAA;AAAA,EACxB,CAAC,OAAO,SAAS,GAAS;AAAA;AAAA,EAC1B,CAAC,OAAO,WAAW,GAAS;AAAA;AAAA,EAC5B,CAAC,OAAO,QAAQ,GAAS;AAAA;AAAA,EACzB,CAAC,OAAO,OAAO,GAAS;AAAA;AAAA,EACxB,CAAC,OAAO,KAAK,GAAS;AAAA;AAAA;AAAA,EAGtB,CAAC,OAAO,IAAI,GAAS;AAAA;AAAA,EACrB,CAAC,OAAO,GAAG,GAAS;AAAA;AAAA,EACpB,CAAC,OAAO,IAAI,GAAS;AAAA;AAAA,EACrB,CAAC,OAAO,IAAI,GAAS;AAAA;AAAA,EACrB,CAAC,OAAO,KAAK,GAAS;AAAA;AAAA;AAAA,EAGtB,CAAC,OAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,OAAO,MAAM,GAAS;AAAA;AAAA,EACvB,CAAC,OAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,OAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,OAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,OAAO,IAAI,GAAS;AAAA;AAAA,EACrB,CAAC,OAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,OAAO,MAAM,GAAS;AAAA;AAAA,EACvB,CAAC,OAAO,OAAO,GAAS;AAAA;AAAA,EACxB,CAAC,OAAO,OAAO,GAAS;AAAA;AAAA,EACxB,CAAC,OAAO,OAAO,GAAS;AAAA;AAAA,EACxB,CAAC,OAAO,UAAU,GAAS;AAAA;AAAA,EAC3B,CAAC,OAAO,YAAY,GAAS;AAAA;AAAA,EAC7B,CAAC,OAAO,SAAS,GAAS;AAAA;AAAA,EAC1B,CAAC,OAAO,QAAQ,GAAS;AAAA;AAAA,EACzB,CAAC,OAAO,MAAM,GAAS;AAAA;AAAA;AAAA,EAGvB,CAAC,OAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,OAAO,MAAM,GAAS;AAAA;AAAA,EACvB,CAAC,OAAO,QAAQ,GAAS;AAAA;AAAA,EACzB,CAAC,OAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,OAAO,OAAO,GAAS;AAAA;AAAA,EACxB,CAAC,OAAO,QAAQ,GAAS;AAAA;AAAA,EACzB,CAAC,OAAO,QAAQ,GAAS;AAAA;AAAA,EACzB,CAAC,OAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,OAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,OAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,OAAO,OAAO,GAAS;AAAA;AAAA,EACxB,CAAC,OAAO,KAAK,GAAS;AAAA;AAAA;AAAA,EAGtB,CAAC,OAAO,SAAS,GAAS;AAAA;AAAA,EAC1B,CAAC,OAAO,QAAQ,GAAS;AAAA;AAAA,EACzB,CAAC,OAAO,OAAO,GAAS;AAAA;AAAA,EACxB,CAAC,OAAO,SAAS,GAAS;AAAA;AAAA,EAC1B,CAAC,OAAO,SAAS,GAAS;AAAA;AAAA,EAC1B,CAAC,OAAO,SAAS,GAAS;AAAA;AAAA;AAAA,EAG1B,CAAC,OAAO,UAAU,GAAS;AAAA;AAAA,EAC3B,CAAC,OAAO,SAAS,GAAS;AAAA;AAAA,EAC1B,CAAC,OAAO,QAAQ,GAAS;AAAA;AAAA,EACzB,CAAC,OAAO,UAAU,GAAS;AAAA;AAAA,EAC3B,CAAC,OAAO,UAAU,GAAS;AAAA;AAAA,EAC3B,CAAC,OAAO,UAAU,GAAS;AAAA;AAC7B;AAEA,IAAM,sBAAsB,GAAG,QAAQ;AAAA,EACnC,GAAG,QAAQ,YAAY,GAAG,WAAW,WAAW;AAAC;AAErD,IAAM,uBAAuB,GAAG,QAAQ;AAAA,EACpC;AAAA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EACA;AAAmB;AAEvB,IAAM,sBAAsB,GAAG,QAAQ;AAAA,EACnC;AAAA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EACA;AAAmB;AAEvB,IAAM,sBAAsB,GAAG,QAAQ;AAAA,EACnC;AAAA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EACA;AAAmB;AAWhB,SAAS,gBACZ,QACA,KAAa,UACb,YAAyC,CAAC,GACpC;AAER,QAAM,SAAiC,CAAC;AAGxC,aAAW,CAAE,WAAW,KAAM,KAAK,OAAO,QAAQ,MAAM,GAAG;AAEzD,UAAM,UAAkC,CAAC;AAGzC,eAAW,CAAE,YAAY,MAAO,KAAK,OAAO,QAAQ,KAAK,GAAG;AAC1D,UAAI;AAGJ,UAAI,OAAO,OAAO,WAAW;AAC3B,mBAAW,UAAU,OAAO,GAAG;AAAA,MAGjC,WAAW,OAAO,OAAO,UAAU;AACjC,mBAAW,SAAS,OAAO,GAA4B;AAAA,MAGzD,WAAW,OAAO,YAAY;AAC5B,mBAAW,GAAG,QAAQ;AAAA,UAClB,OAAO,WAAW,IAAI,CAAC,UACrB,GAAG,QAAQ;AAAA,YACP,GAAG,QAAQ,oBAAoB,KAAK;AAAA,UACxC,CAAC;AAAA,QAAC;AAAA,MAGV,OAAO;AACL,mBAAiB;AAAA,MACnB;AAGA,YAAM,gBAAgB,GAAG,QAAQ;AAAA,QAC7B;AAAA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,QACA;AAAA,MACJ;AAGA,YAAM,aAAqC,CAAE,aAAc;AAC3D,UAAI,OAAO,WAAY,YAAW,KAAK,mBAAmB;AAC1D,UAAI,OAAO,WAAY,YAAW,KAAK,mBAAmB;AAC1D,UAAI,OAAO,YAAa,YAAW,KAAK,oBAAoB;AAE5D,YAAM,kBAAkB,GAAG,QAAQ;AAAA,QAC/B;AAAA;AAAA,QACA,GAAG,QAAQ,oBAAoB,UAAU;AAAA,QACzC;AAAA;AAAA,QACA,GAAG,QAAQ,sBAAsB,UAAU;AAAA,MAC/C;AAGA,UAAI,OAAO,aAAa;AACtB,WAAG;AAAA,UACC;AAAA,UACA,GAAG,WAAW;AAAA,UACd,KAAK,OAAO,WAAW;AAAA,UACvB;AAAA;AAAA,QACJ;AAAA,MACF;AAGA,cAAQ,KAAK,eAAe;AAAA,IAC9B;AAGA,UAAM,iBAAiB,GAAG,QAAQ;AAAA,MAC9B;AAAA;AAAA,MACA,GAAG,QAAQ,oBAAoB,SAAS;AAAA,MACxC;AAAA;AAAA,MACA,GAAG,QAAQ,sBAAsB,OAAO;AAAA;AAAA,IAC5C;AACA,WAAO,KAAK,cAAc;AAAA,EAC5B;AAGA,QAAM,cAAc,GAAG,QAAQ;AAAA,IAC3B,CAAE,cAAe;AAAA;AAAA,IACjB;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,EACJ;AAGA,QAAM,SAAS,GAAG,QAAQ;AAAA,IACtB,CAAE,WAAY;AAAA,IACd;AAAA,IACA,GAAG,UAAU;AAAA,EACjB;AAGA,QAAM,UAAU,GAAG,cAAc,EAAE,UAAU,MAAM;AACnD,SAAO;AACT;",
4
+ "mappings": ";AAAA,SAAS,cAAc;AACvB,OAAO,QAAQ;AAEf,YAAY,WAAW;AAQvB,IAAM,iBAAiB,GAAG,QAAQ,eAAe,GAAG,WAAW,aAAa;AAC5E,IAAM,iBAAiB,GAAG,QAAQ,YAAY,GAAG,WAAW,cAAc;AAE1E,IAAM,WAAW;AAAA;AAAA,EAEf,CAAC,OAAO,IAAI,GAAS;AAAA;AAAA,EACrB,CAAC,OAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,OAAO,IAAI,GAAS;AAAA;AAAA,EACrB,CAAC,OAAO,IAAI,GAAS;AAAA;AAAA,EACrB,CAAC,OAAO,IAAI,GAAS;AAAA;AAAA,EACrB,CAAC,OAAO,GAAG,GAAS;AAAA;AAAA,EACpB,CAAC,OAAO,IAAI,GAAS;AAAA;AAAA,EACrB,CAAC,OAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,OAAO,MAAM,GAAS;AAAA;AAAA,EACvB,CAAC,OAAO,MAAM,GAAS;AAAA;AAAA,EACvB,CAAC,OAAO,MAAM,GAAS;AAAA;AAAA,EACvB,CAAC,OAAO,OAAO,GAAS;AAAA;AAAA,EACxB,CAAC,OAAO,SAAS,GAAS;AAAA;AAAA,EAC1B,CAAC,OAAO,WAAW,GAAS;AAAA;AAAA,EAC5B,CAAC,OAAO,QAAQ,GAAS;AAAA;AAAA,EACzB,CAAC,OAAO,OAAO,GAAS;AAAA;AAAA,EACxB,CAAC,OAAO,KAAK,GAAS;AAAA;AAAA;AAAA,EAGtB,CAAC,OAAO,IAAI,GAAS;AAAA;AAAA,EACrB,CAAC,OAAO,GAAG,GAAS;AAAA;AAAA,EACpB,CAAC,OAAO,IAAI,GAAS;AAAA;AAAA,EACrB,CAAC,OAAO,IAAI,GAAS;AAAA;AAAA,EACrB,CAAC,OAAO,KAAK,GAAS;AAAA;AAAA;AAAA,EAGtB,CAAC,OAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,OAAO,MAAM,GAAS;AAAA;AAAA,EACvB,CAAC,OAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,OAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,OAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,OAAO,IAAI,GAAS;AAAA;AAAA,EACrB,CAAC,OAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,OAAO,MAAM,GAAS;AAAA;AAAA,EACvB,CAAC,OAAO,OAAO,GAAS;AAAA;AAAA,EACxB,CAAC,OAAO,OAAO,GAAS;AAAA;AAAA,EACxB,CAAC,OAAO,OAAO,GAAS;AAAA;AAAA,EACxB,CAAC,OAAO,UAAU,GAAS;AAAA;AAAA,EAC3B,CAAC,OAAO,YAAY,GAAS;AAAA;AAAA,EAC7B,CAAC,OAAO,SAAS,GAAS;AAAA;AAAA,EAC1B,CAAC,OAAO,QAAQ,GAAS;AAAA;AAAA,EACzB,CAAC,OAAO,MAAM,GAAS;AAAA;AAAA;AAAA,EAGvB,CAAC,OAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,OAAO,MAAM,GAAS;AAAA;AAAA,EACvB,CAAC,OAAO,QAAQ,GAAS;AAAA;AAAA,EACzB,CAAC,OAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,OAAO,OAAO,GAAS;AAAA;AAAA,EACxB,CAAC,OAAO,QAAQ,GAAS;AAAA;AAAA,EACzB,CAAC,OAAO,QAAQ,GAAS;AAAA;AAAA,EACzB,CAAC,OAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,OAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,OAAO,KAAK,GAAS;AAAA;AAAA,EACtB,CAAC,OAAO,OAAO,GAAS;AAAA;AAAA,EACxB,CAAC,OAAO,KAAK,GAAS;AAAA;AAAA;AAAA,EAGtB,CAAC,OAAO,SAAS,GAAS;AAAA;AAAA,EAC1B,CAAC,OAAO,QAAQ,GAAS;AAAA;AAAA,EACzB,CAAC,OAAO,OAAO,GAAS;AAAA;AAAA,EACxB,CAAC,OAAO,SAAS,GAAS;AAAA;AAAA,EAC1B,CAAC,OAAO,SAAS,GAAS;AAAA;AAAA,EAC1B,CAAC,OAAO,SAAS,GAAS;AAAA;AAAA;AAAA,EAG1B,CAAC,OAAO,UAAU,GAAS;AAAA;AAAA,EAC3B,CAAC,OAAO,SAAS,GAAS;AAAA;AAAA,EAC1B,CAAC,OAAO,QAAQ,GAAS;AAAA;AAAA,EACzB,CAAC,OAAO,UAAU,GAAS;AAAA;AAAA,EAC3B,CAAC,OAAO,UAAU,GAAS;AAAA;AAAA,EAC3B,CAAC,OAAO,UAAU,GAAS;AAAA;AAC7B;AAEA,IAAM,sBAAsB,GAAG,QAAQ;AAAA,EACnC,GAAG,QAAQ,YAAY,GAAG,WAAW,WAAW;AAAC;AAErD,IAAM,uBAAuB,GAAG,QAAQ;AAAA,EACpC;AAAA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EACA;AAAmB;AAEvB,IAAM,sBAAsB,GAAG,QAAQ;AAAA,EACnC;AAAA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EACA;AAAmB;AAEvB,IAAM,sBAAsB,GAAG,QAAQ;AAAA,EACnC;AAAA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EACA;AAAmB;AAWhB,SAAS,gBACZ,QACA,KAAa,UACb,YAAyC,CAAC,GACpC;AAER,QAAM,SAAiC,CAAC;AAGxC,aAAW,CAAE,WAAW,KAAM,KAAK,OAAO,QAAQ,MAAM,GAAG;AAEzD,UAAM,UAAkC,CAAC;AAGzC,eAAW,CAAE,YAAY,MAAO,KAAK,OAAO,QAAQ,KAAK,GAAG;AAC1D,UAAI;AAGJ,UAAI,OAAO,OAAO,WAAW;AAC3B,mBAAW,UAAU,OAAO,GAAG;AAAA,MAGjC,WAAW,OAAO,OAAO,UAAU;AACjC,mBAAW,SAAS,OAAO,GAA4B;AAAA,MAGzD,WAAW,OAAO,YAAY;AAC5B,mBAAW,GAAG,QAAQ;AAAA,UAClB,OAAO,WAAW,IAAI,CAAC,UACrB,GAAG,QAAQ;AAAA,YACP,GAAG,QAAQ,oBAAoB,KAAK;AAAA,UACxC,CAAC;AAAA,QAAC;AAAA,MAGV,OAAO;AACL,mBAAiB;AAAA,MACnB;AAGA,YAAM,gBAAgB,GAAG,QAAQ;AAAA,QAC7B;AAAA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,QACA;AAAA,MACJ;AAGA,YAAM,aAAqC,CAAE,aAAc;AAC3D,UAAI,OAAO,WAAY,YAAW,KAAK,mBAAmB;AAC1D,UAAI,OAAO,WAAY,YAAW,KAAK,mBAAmB;AAC1D,UAAI,OAAO,YAAa,YAAW,KAAK,oBAAoB;AAE5D,YAAM,kBAAkB,GAAG,QAAQ;AAAA,QAC/B;AAAA;AAAA,QACA,GAAG,QAAQ,oBAAoB,UAAU;AAAA,QACzC;AAAA;AAAA,QACA,GAAG,QAAQ,sBAAsB,UAAU;AAAA,MAC/C;AAGA,UAAI,OAAO,aAAa;AACtB,WAAG;AAAA,UACC;AAAA,UACA,GAAG,WAAW;AAAA,UACd,KAAK,OAAO,WAAW;AAAA,UACvB;AAAA;AAAA,QACJ;AAAA,MACF;AAGA,cAAQ,KAAK,eAAe;AAAA,IAC9B;AAGA,UAAM,iBAAiB,GAAG,QAAQ;AAAA,MAC9B;AAAA;AAAA,MACA,GAAG,QAAQ,oBAAoB,SAAS;AAAA,MACxC;AAAA;AAAA,MACA,GAAG,QAAQ,sBAAsB,OAAO;AAAA;AAAA,IAC5C;AACA,WAAO,KAAK,cAAc;AAAA,EAC5B;AAGA,QAAM,cAAc,GAAG,QAAQ;AAAA,IAC3B,CAAE,cAAe;AAAA;AAAA,IACjB;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,EACJ;AAGA,QAAM,SAAS,GAAG,QAAQ;AAAA,IACtB,CAAE,WAAY;AAAA,IACd;AAAA,IACA,GAAG,UAAU;AAAA,EACjB;AAGA,QAAM,UAAU,GAAG,cAAc,EAAE,UAAU,MAAM;AACnD,SAAO;AACT;",
5
5
  "names": []
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@juit/pgproxy-utils",
3
- "version": "1.2.1",
3
+ "version": "1.3.1",
4
4
  "main": "./dist/index.cjs",
5
5
  "module": "./dist/index.mjs",
6
6
  "types": "./dist/index.d.ts",
@@ -43,9 +43,9 @@
43
43
  "src/"
44
44
  ],
45
45
  "dependencies": {
46
- "@juit/pgproxy-client": "1.2.1",
47
- "@juit/pgproxy-persister": "1.2.1",
48
- "@juit/pgproxy-types": "1.2.1",
49
- "@plugjs/plug": "^0.6.72"
46
+ "@juit/pgproxy-client": "1.3.1",
47
+ "@juit/pgproxy-persister": "1.3.1",
48
+ "@juit/pgproxy-types": "1.3.1",
49
+ "@plugjs/plug": "^0.6.74"
50
50
  }
51
51
  }
package/src/database.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Persister, escape } from '@juit/pgproxy-persister'
1
+ import { PGClient, escape } from '@juit/pgproxy-client'
2
2
  import { $ylw, log } from '@plugjs/plug'
3
3
 
4
4
  const NAME_EXPR = /^[-\w]{4,}$/
@@ -24,9 +24,8 @@ export async function createdb(
24
24
  if (! NAME_EXPR.test(name)) throw new Error(`Invalid database name "${name}"`)
25
25
  log.notice(`Creating database ${$ylw(name)}`)
26
26
 
27
- const persister = new Persister(url)
28
- await persister.query(`CREATE DATABASE ${escape(name)}`)
29
- await persister.destroy()
27
+ await using client = new PGClient(url)
28
+ await client.query(`CREATE DATABASE ${escape(name)}`)
30
29
  return name
31
30
  }
32
31
 
@@ -42,7 +41,6 @@ export async function dropdb(
42
41
  if (! NAME_EXPR.test(name)) throw new Error(`Invalid database name "${name}"`)
43
42
  log.notice(`Dropping database ${$ylw(name)}`)
44
43
 
45
- const persister = new Persister(url)
46
- await persister.query(`DROP DATABASE IF EXISTS ${escape(name)}`)
47
- await persister.destroy()
44
+ await using client = new PGClient(url)
45
+ await client.query(`DROP DATABASE IF EXISTS ${escape(name)}`)
48
46
  }
package/src/extract.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  import { PGClient } from '@juit/pgproxy-client'
2
- import '@juit/pgproxy-client-psql'
3
2
 
4
3
  import type { Schema } from './index'
5
4
 
@@ -112,14 +111,9 @@ export async function extractSchema(
112
111
  ): Promise<Schema> {
113
112
  if (schemas.length === 0) schemas.push('public')
114
113
 
115
- const client = new PGClient(url)
116
- let rows: ResultRow[]
117
- try {
118
- const result = await client.query<ResultRow>(query, [ schemas ])
119
- rows = result.rows
120
- } finally {
121
- await client.destroy()
122
- }
114
+ await using client = new PGClient(url)
115
+ const result = await client.query<ResultRow>(query, [ schemas ])
116
+ const rows = result.rows
123
117
 
124
118
  const schemaDef: Schema = {}
125
119