@juit/pgproxy-utils 1.3.1 → 1.3.3

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/helpers.cjs CHANGED
@@ -30,11 +30,17 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
30
30
  // helpers.ts
31
31
  var helpers_exports = {};
32
32
  __export(helpers_exports, {
33
+ makeBrandingType: () => makeBrandingType,
33
34
  makeImportType: () => makeImportType,
34
35
  makePostgresArrayType: () => makePostgresArrayType
35
36
  });
36
37
  module.exports = __toCommonJS(helpers_exports);
37
38
  var import_typescript = __toESM(require("typescript"));
39
+ function makeBrandingType(branding) {
40
+ const neverType = import_typescript.default.factory.createKeywordTypeNode(import_typescript.default.SyntaxKind.NeverKeyword);
41
+ const signature = import_typescript.default.factory.createPropertySignature(void 0, branding, void 0, neverType);
42
+ return import_typescript.default.factory.createTypeLiteralNode([signature]);
43
+ }
38
44
  function makePostgresArrayType(type) {
39
45
  const nullable = import_typescript.default.factory.createLiteralTypeNode(import_typescript.default.factory.createNull());
40
46
  const union = import_typescript.default.factory.createUnionTypeNode([type, nullable]);
@@ -58,6 +64,7 @@ function makeImportType(module2, name, args = []) {
58
64
  }
59
65
  // Annotate the CommonJS export names for ESM import in node:
60
66
  0 && (module.exports = {
67
+ makeBrandingType,
61
68
  makeImportType,
62
69
  makePostgresArrayType
63
70
  });
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/helpers.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAe;AAMR,SAAS,sBAAsB,MAAqC;AACzE,QAAM,WAAW,kBAAAA,QAAG,QAAQ,sBAAsB,kBAAAA,QAAG,QAAQ,WAAW,CAAC;AACzE,QAAM,QAAQ,kBAAAA,QAAG,QAAQ,oBAAoB,CAAE,MAAM,QAAS,CAAC;AAC/D,QAAM,QAAQ,kBAAAA,QAAG,QAAQ,oBAAoB,KAAK;AAClD,SAAO;AACT;AAKO,SAAS,eACZC,SACA,MACA,OAAoC,CAAC,GACpB;AACnB,MAAI,CAAE,MAAM,QAAQ,IAAI,EAAG,QAAO,CAAE,IAAK;AAEzC,SAAO,kBAAAD,QAAG,QAAQ;AAAA;AAAA,IACd,kBAAAA,QAAG,QAAQ;AAAA,MACP,kBAAAA,QAAG,QAAQ,oBAAoBC,OAAM;AAAA,IAAC;AAAA;AAAA,IAC1C;AAAA;AAAA,IACA,kBAAAD,QAAG,QAAQ,iBAAiB,IAAI;AAAA;AAAA,IAChC;AAAA,EAAI;AACV;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAe;AAKR,SAAS,iBAAiB,UAAsC;AACrE,QAAM,YAAY,kBAAAA,QAAG,QAAQ,sBAAsB,kBAAAA,QAAG,WAAW,YAAY;AAC7E,QAAM,YAAY,kBAAAA,QAAG,QAAQ,wBAAwB,QAAW,UAAU,QAAW,SAAS;AAC9F,SAAO,kBAAAA,QAAG,QAAQ,sBAAsB,CAAE,SAAU,CAAC;AACvD;AAOO,SAAS,sBAAsB,MAAqC;AACzE,QAAM,WAAW,kBAAAA,QAAG,QAAQ,sBAAsB,kBAAAA,QAAG,QAAQ,WAAW,CAAC;AACzE,QAAM,QAAQ,kBAAAA,QAAG,QAAQ,oBAAoB,CAAE,MAAM,QAAS,CAAC;AAC/D,QAAM,QAAQ,kBAAAA,QAAG,QAAQ,oBAAoB,KAAK;AAClD,SAAO;AACT;AAKO,SAAS,eACZC,SACA,MACA,OAAoC,CAAC,GACpB;AACnB,MAAI,CAAE,MAAM,QAAQ,IAAI,EAAG,QAAO,CAAE,IAAK;AAEzC,SAAO,kBAAAD,QAAG,QAAQ;AAAA;AAAA,IACd,kBAAAA,QAAG,QAAQ;AAAA,MACP,kBAAAA,QAAG,QAAQ,oBAAoBC,OAAM;AAAA,IAAC;AAAA;AAAA,IAC1C;AAAA;AAAA,IACA,kBAAAD,QAAG,QAAQ,iBAAiB,IAAI;AAAA;AAAA,IAChC;AAAA,EAAI;AACV;",
5
5
  "names": ["ts", "module"]
6
6
  }
package/dist/helpers.d.ts CHANGED
@@ -1,4 +1,8 @@
1
1
  import ts from 'typescript';
2
+ /**
3
+ * Create a "branding" type extension, like `Original & { __brand: never }`.
4
+ */
5
+ export declare function makeBrandingType(branding: string): ts.TypeLiteralNode;
2
6
  /**
3
7
  * Create a PosgreSQL array type for the given type, that is, given the type
4
8
  * `T`, return `(T | null)[]`
package/dist/helpers.mjs CHANGED
@@ -1,5 +1,10 @@
1
1
  // helpers.ts
2
2
  import ts from "typescript";
3
+ function makeBrandingType(branding) {
4
+ const neverType = ts.factory.createKeywordTypeNode(ts.SyntaxKind.NeverKeyword);
5
+ const signature = ts.factory.createPropertySignature(void 0, branding, void 0, neverType);
6
+ return ts.factory.createTypeLiteralNode([signature]);
7
+ }
3
8
  function makePostgresArrayType(type) {
4
9
  const nullable = ts.factory.createLiteralTypeNode(ts.factory.createNull());
5
10
  const union = ts.factory.createUnionTypeNode([type, nullable]);
@@ -22,6 +27,7 @@ function makeImportType(module, name, args = []) {
22
27
  );
23
28
  }
24
29
  export {
30
+ makeBrandingType,
25
31
  makeImportType,
26
32
  makePostgresArrayType
27
33
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/helpers.ts"],
4
- "mappings": ";AAAA,OAAO,QAAQ;AAMR,SAAS,sBAAsB,MAAqC;AACzE,QAAM,WAAW,GAAG,QAAQ,sBAAsB,GAAG,QAAQ,WAAW,CAAC;AACzE,QAAM,QAAQ,GAAG,QAAQ,oBAAoB,CAAE,MAAM,QAAS,CAAC;AAC/D,QAAM,QAAQ,GAAG,QAAQ,oBAAoB,KAAK;AAClD,SAAO;AACT;AAKO,SAAS,eACZ,QACA,MACA,OAAoC,CAAC,GACpB;AACnB,MAAI,CAAE,MAAM,QAAQ,IAAI,EAAG,QAAO,CAAE,IAAK;AAEzC,SAAO,GAAG,QAAQ;AAAA;AAAA,IACd,GAAG,QAAQ;AAAA,MACP,GAAG,QAAQ,oBAAoB,MAAM;AAAA,IAAC;AAAA;AAAA,IAC1C;AAAA;AAAA,IACA,GAAG,QAAQ,iBAAiB,IAAI;AAAA;AAAA,IAChC;AAAA,EAAI;AACV;",
4
+ "mappings": ";AAAA,OAAO,QAAQ;AAKR,SAAS,iBAAiB,UAAsC;AACrE,QAAM,YAAY,GAAG,QAAQ,sBAAsB,GAAG,WAAW,YAAY;AAC7E,QAAM,YAAY,GAAG,QAAQ,wBAAwB,QAAW,UAAU,QAAW,SAAS;AAC9F,SAAO,GAAG,QAAQ,sBAAsB,CAAE,SAAU,CAAC;AACvD;AAOO,SAAS,sBAAsB,MAAqC;AACzE,QAAM,WAAW,GAAG,QAAQ,sBAAsB,GAAG,QAAQ,WAAW,CAAC;AACzE,QAAM,QAAQ,GAAG,QAAQ,oBAAoB,CAAE,MAAM,QAAS,CAAC;AAC/D,QAAM,QAAQ,GAAG,QAAQ,oBAAoB,KAAK;AAClD,SAAO;AACT;AAKO,SAAS,eACZ,QACA,MACA,OAAoC,CAAC,GACpB;AACnB,MAAI,CAAE,MAAM,QAAQ,IAAI,EAAG,QAAO,CAAE,IAAK;AAEzC,SAAO,GAAG,QAAQ;AAAA;AAAA,IACd,GAAG,QAAQ;AAAA,MACP,GAAG,QAAQ,oBAAoB,MAAM;AAAA,IAAC;AAAA;AAAA,IAC1C;AAAA;AAAA,IACA,GAAG,QAAQ,iBAAiB,IAAI;AAAA;AAAA,IAChC;AAAA,EAAI;AACV;",
5
5
  "names": []
6
6
  }
@@ -35,6 +35,7 @@ __export(serialize_exports, {
35
35
  module.exports = __toCommonJS(serialize_exports);
36
36
  var import_pgproxy_types = require("@juit/pgproxy-types");
37
37
  var import_typescript = __toESM(require("typescript"));
38
+ var import_helpers = require("./helpers.cjs");
38
39
  var types = __toESM(require("./types.cjs"));
39
40
  var exportModifier = import_typescript.default.factory.createModifier(import_typescript.default.SyntaxKind.ExportKeyword);
40
41
  var endOfFileToken = import_typescript.default.factory.createToken(import_typescript.default.SyntaxKind.EndOfFileToken);
@@ -72,6 +73,8 @@ var oidTypes = {
72
73
  /* | 1186 | interval | */
73
74
  [import_pgproxy_types.PGOIDs.numeric]: types.stringType,
74
75
  /* | 1700 | numeric | */
76
+ [import_pgproxy_types.PGOIDs.uuid]: types.stringType,
77
+ /* | 2950 | uuid | */
75
78
  [import_pgproxy_types.PGOIDs.jsonb]: types.anyType,
76
79
  /* | 3802 | jsonb | */
77
80
  /* Special types |_oid__|_typname______| */
@@ -170,6 +173,9 @@ var oidTypes = {
170
173
  [import_pgproxy_types.PGOIDs._int8range]: types.bigintRangeArrayType
171
174
  /* | 3927 | _int8range | */
172
175
  };
176
+ var brandings = {
177
+ [import_pgproxy_types.PGOIDs.uuid]: "__uuid"
178
+ };
173
179
  var trueLiteralTypeNode = import_typescript.default.factory.createLiteralTypeNode(
174
180
  import_typescript.default.factory.createToken(import_typescript.default.SyntaxKind.TrueKeyword)
175
181
  );
@@ -225,6 +231,18 @@ function serializeSchema(schema, id = "Schema", overrides = {}) {
225
231
  typeNode
226
232
  );
227
233
  const definition = [typeSignature];
234
+ const branding = brandings[column.oid];
235
+ if (branding) {
236
+ const brandingSignature = import_typescript.default.factory.createPropertySignature(
237
+ void 0,
238
+ // no modifiers
239
+ "branding",
240
+ void 0,
241
+ // no question mark
242
+ (0, import_helpers.makeBrandingType)(branding)
243
+ );
244
+ definition.push(brandingSignature);
245
+ }
228
246
  if (column.hasDefault) definition.push(hasDefaultSignature);
229
247
  if (column.isNullable) definition.push(isNullableSignature);
230
248
  if (column.isGenerated) definition.push(isGeneratedSignature);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/serialize.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["ts"]
6
6
  }
@@ -1,6 +1,7 @@
1
1
  // serialize.ts
2
2
  import { PGOIDs } from "@juit/pgproxy-types";
3
3
  import ts from "typescript";
4
+ import { makeBrandingType } from "./helpers.mjs";
4
5
  import * as types from "./types.mjs";
5
6
  var exportModifier = ts.factory.createModifier(ts.SyntaxKind.ExportKeyword);
6
7
  var endOfFileToken = ts.factory.createToken(ts.SyntaxKind.EndOfFileToken);
@@ -38,6 +39,8 @@ var oidTypes = {
38
39
  /* | 1186 | interval | */
39
40
  [PGOIDs.numeric]: types.stringType,
40
41
  /* | 1700 | numeric | */
42
+ [PGOIDs.uuid]: types.stringType,
43
+ /* | 2950 | uuid | */
41
44
  [PGOIDs.jsonb]: types.anyType,
42
45
  /* | 3802 | jsonb | */
43
46
  /* Special types |_oid__|_typname______| */
@@ -136,6 +139,9 @@ var oidTypes = {
136
139
  [PGOIDs._int8range]: types.bigintRangeArrayType
137
140
  /* | 3927 | _int8range | */
138
141
  };
142
+ var brandings = {
143
+ [PGOIDs.uuid]: "__uuid"
144
+ };
139
145
  var trueLiteralTypeNode = ts.factory.createLiteralTypeNode(
140
146
  ts.factory.createToken(ts.SyntaxKind.TrueKeyword)
141
147
  );
@@ -191,6 +197,18 @@ function serializeSchema(schema, id = "Schema", overrides = {}) {
191
197
  typeNode
192
198
  );
193
199
  const definition = [typeSignature];
200
+ const branding = brandings[column.oid];
201
+ if (branding) {
202
+ const brandingSignature = ts.factory.createPropertySignature(
203
+ void 0,
204
+ // no modifiers
205
+ "branding",
206
+ void 0,
207
+ // no question mark
208
+ makeBrandingType(branding)
209
+ );
210
+ definition.push(brandingSignature);
211
+ }
194
212
  if (column.hasDefault) definition.push(hasDefaultSignature);
195
213
  if (column.isNullable) definition.push(isNullableSignature);
196
214
  if (column.isGenerated) definition.push(isGeneratedSignature);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/serialize.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@juit/pgproxy-utils",
3
- "version": "1.3.1",
3
+ "version": "1.3.3",
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.3.1",
47
- "@juit/pgproxy-persister": "1.3.1",
48
- "@juit/pgproxy-types": "1.3.1",
46
+ "@juit/pgproxy-client": "1.3.3",
47
+ "@juit/pgproxy-persister": "1.3.3",
48
+ "@juit/pgproxy-types": "1.3.3",
49
49
  "@plugjs/plug": "^0.6.74"
50
50
  }
51
51
  }
package/src/helpers.ts CHANGED
@@ -1,5 +1,15 @@
1
1
  import ts from 'typescript'
2
2
 
3
+ /**
4
+ * Create a "branding" type extension, like `Original & { __brand: never }`.
5
+ */
6
+ export function makeBrandingType(branding: string): ts.TypeLiteralNode {
7
+ const neverType = ts.factory.createKeywordTypeNode(ts.SyntaxKind.NeverKeyword)
8
+ const signature = ts.factory.createPropertySignature(undefined, branding, undefined, neverType)
9
+ return ts.factory.createTypeLiteralNode([ signature ])
10
+ }
11
+
12
+
3
13
  /**
4
14
  * Create a PosgreSQL array type for the given type, that is, given the type
5
15
  * `T`, return `(T | null)[]`
package/src/serialize.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { PGOIDs } from '@juit/pgproxy-types'
2
2
  import ts from 'typescript'
3
3
 
4
+ import { makeBrandingType } from './helpers'
4
5
  import * as types from './types'
5
6
 
6
7
  import type { Schema } from './index'
@@ -30,6 +31,7 @@ const oidTypes = {
30
31
  [PGOIDs.timestamptz]: types.dateType, /* | 1184 | timestamptz | */
31
32
  [PGOIDs.interval]: types.pgIntervalType, /* | 1186 | interval | */
32
33
  [PGOIDs.numeric]: types.stringType, /* | 1700 | numeric | */
34
+ [PGOIDs.uuid]: types.stringType, /* | 2950 | uuid | */
33
35
  [PGOIDs.jsonb]: types.anyType, /* | 3802 | jsonb | */
34
36
 
35
37
  /* Special types |_oid__|_typname______| */
@@ -88,6 +90,10 @@ const oidTypes = {
88
90
  [PGOIDs._int8range]: types.bigintRangeArrayType, /* | 3927 | _int8range | */
89
91
  } satisfies Record<PGOIDs[keyof PGOIDs], ts.TypeNode>
90
92
 
93
+ const brandings: Record<number, string> = {
94
+ [PGOIDs.uuid]: '__uuid',
95
+ }
96
+
91
97
  const trueLiteralTypeNode = ts.factory.createLiteralTypeNode(
92
98
  ts.factory.createToken(ts.SyntaxKind.TrueKeyword))
93
99
 
@@ -166,6 +172,19 @@ export function serializeSchema(
166
172
 
167
173
  /* Create the property signature for this column */
168
174
  const definition: ts.PropertySignature[] = [ typeSignature ]
175
+
176
+ /** Branding */
177
+ const branding = brandings[column.oid]
178
+ if (branding) {
179
+ // Results into something like: "branding: { __brand: never }"
180
+ const brandingSignature = ts.factory.createPropertySignature(
181
+ undefined, // no modifiers
182
+ 'branding',
183
+ undefined, // no question mark
184
+ makeBrandingType(branding))
185
+ definition.push(brandingSignature)
186
+ }
187
+
169
188
  if (column.hasDefault) definition.push(hasDefaultSignature)
170
189
  if (column.isNullable) definition.push(isNullableSignature)
171
190
  if (column.isGenerated) definition.push(isGeneratedSignature)