@juit/pgproxy-types 1.0.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/README.md +14 -0
- package/dist/index.cjs +48 -0
- package/dist/index.cjs.map +6 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.mjs +15 -0
- package/dist/index.mjs.map +6 -0
- package/dist/oids.cjs +163 -0
- package/dist/oids.cjs.map +6 -0
- package/dist/oids.d.ts +74 -0
- package/dist/oids.mjs +138 -0
- package/dist/oids.mjs.map +6 -0
- package/dist/parsers/array.cjs +140 -0
- package/dist/parsers/array.cjs.map +6 -0
- package/dist/parsers/array.d.ts +31 -0
- package/dist/parsers/array.mjs +111 -0
- package/dist/parsers/array.mjs.map +6 -0
- package/dist/parsers/basic.cjs +69 -0
- package/dist/parsers/basic.cjs.map +6 -0
- package/dist/parsers/basic.d.ts +15 -0
- package/dist/parsers/basic.mjs +28 -0
- package/dist/parsers/basic.mjs.map +6 -0
- package/dist/parsers/bytea.cjs +68 -0
- package/dist/parsers/bytea.cjs.map +6 -0
- package/dist/parsers/bytea.d.ts +7 -0
- package/dist/parsers/bytea.mjs +43 -0
- package/dist/parsers/bytea.mjs.map +6 -0
- package/dist/parsers/geometric.cjs +86 -0
- package/dist/parsers/geometric.cjs.map +6 -0
- package/dist/parsers/geometric.d.ts +27 -0
- package/dist/parsers/geometric.mjs +58 -0
- package/dist/parsers/geometric.mjs.map +6 -0
- package/dist/parsers/interval.cjs +50 -0
- package/dist/parsers/interval.cjs.map +6 -0
- package/dist/parsers/interval.d.ts +23 -0
- package/dist/parsers/interval.mjs +14 -0
- package/dist/parsers/interval.mjs.map +6 -0
- package/dist/parsers/range.cjs +97 -0
- package/dist/parsers/range.cjs.map +6 -0
- package/dist/parsers/range.d.ts +54 -0
- package/dist/parsers/range.mjs +50 -0
- package/dist/parsers/range.mjs.map +6 -0
- package/dist/parsers.cjs +104 -0
- package/dist/parsers.cjs.map +6 -0
- package/dist/parsers.d.ts +8 -0
- package/dist/parsers.mjs +86 -0
- package/dist/parsers.mjs.map +6 -0
- package/dist/registry.cjs +189 -0
- package/dist/registry.cjs.map +6 -0
- package/dist/registry.d.ts +81 -0
- package/dist/registry.mjs +200 -0
- package/dist/registry.mjs.map +6 -0
- package/dist/serializers/bytea.cjs +52 -0
- package/dist/serializers/bytea.cjs.map +6 -0
- package/dist/serializers/bytea.d.ts +13 -0
- package/dist/serializers/bytea.mjs +27 -0
- package/dist/serializers/bytea.mjs.map +6 -0
- package/dist/serializers/date.cjs +46 -0
- package/dist/serializers/date.cjs.map +6 -0
- package/dist/serializers/date.d.ts +2 -0
- package/dist/serializers/date.mjs +21 -0
- package/dist/serializers/date.mjs.map +6 -0
- package/dist/serializers.cjs +119 -0
- package/dist/serializers.cjs.map +6 -0
- package/dist/serializers.d.ts +20 -0
- package/dist/serializers.mjs +92 -0
- package/dist/serializers.mjs.map +6 -0
- package/package.json +49 -0
- package/src/index.ts +13 -0
- package/src/oids.ts +90 -0
- package/src/parsers/array.ts +176 -0
- package/src/parsers/basic.ts +55 -0
- package/src/parsers/bytea.ts +77 -0
- package/src/parsers/geometric.ts +96 -0
- package/src/parsers/interval.ts +40 -0
- package/src/parsers/range.ts +128 -0
- package/src/parsers.ts +57 -0
- package/src/registry.ts +168 -0
- package/src/serializers/bytea.ts +67 -0
- package/src/serializers/date.ts +63 -0
- package/src/serializers.ts +165 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { PGParser } from '../parsers';
|
|
2
|
+
import type { PGCircle, PGPoint } from './geometric';
|
|
3
|
+
import type { PGInterval } from './interval';
|
|
4
|
+
/** A parsed PostgreSQL `array` */
|
|
5
|
+
export type PGArray<T = string> = (T | null)[];
|
|
6
|
+
/** Parse a PostgreSQL array of string values */
|
|
7
|
+
export declare function parseArray(source: string): PGArray;
|
|
8
|
+
/** Parse a PostgreSQL array using the specified parser for its elements */
|
|
9
|
+
export declare function parseArray<T>(source: string, parser: PGParser<T>): PGArray<T>;
|
|
10
|
+
/** Parse a PostgreSQL array of _bigint_ values */
|
|
11
|
+
export declare const parseBigintArray: PGParser<PGArray<bigint>>;
|
|
12
|
+
/** Parse a PostgreSQL array of _boolean_ values */
|
|
13
|
+
export declare const parseBoolArray: PGParser<PGArray<boolean>>;
|
|
14
|
+
/** Parse a PostgreSQL array of _binary_ values */
|
|
15
|
+
export declare const parseByteAArray: PGParser<PGArray<Uint8Array>>;
|
|
16
|
+
/** Parse a PostgreSQL array of {@link PGCircle} values */
|
|
17
|
+
export declare const parseCircleArray: PGParser<PGArray<PGCircle>>;
|
|
18
|
+
/** Parse a PostgreSQL array of _float_ values */
|
|
19
|
+
export declare const parseFloatArray: PGParser<PGArray<number>>;
|
|
20
|
+
/** Parse a PostgreSQL array of _number_ values */
|
|
21
|
+
export declare const parseIntArray: PGParser<PGArray<number>>;
|
|
22
|
+
/** Parse a PostgreSQL array of {@link PGInterval} values */
|
|
23
|
+
export declare const parseIntervalArray: PGParser<PGArray<PGInterval>>;
|
|
24
|
+
/** Parse a PostgreSQL array of _JSON_ values */
|
|
25
|
+
export declare const parseJsonArray: PGParser<PGArray<any[]>>;
|
|
26
|
+
/** Parse a PostgreSQL array of {@link PGPoint} values */
|
|
27
|
+
export declare const parsePointArray: PGParser<PGArray<PGPoint>>;
|
|
28
|
+
/** Parse a PostgreSQL array of _timestamp without time zone_ values */
|
|
29
|
+
export declare const parseTimestampArray: PGParser<PGArray<Date>>;
|
|
30
|
+
/** Parse a PostgreSQL array of _timestamp with time zone_ values */
|
|
31
|
+
export declare const parseTimestampTzArray: PGParser<PGArray<Date>>;
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
// parsers/array.ts
|
|
2
|
+
import {
|
|
3
|
+
parseBigint,
|
|
4
|
+
parseBool,
|
|
5
|
+
parseJson,
|
|
6
|
+
parseString,
|
|
7
|
+
parseTimestamp,
|
|
8
|
+
parseTimestampTz
|
|
9
|
+
} from "./basic.mjs";
|
|
10
|
+
import { parseByteA } from "./bytea.mjs";
|
|
11
|
+
import { parseCircle, parsePoint } from "./geometric.mjs";
|
|
12
|
+
import { parseInterval } from "./interval.mjs";
|
|
13
|
+
function parseArray(source, parser = parseString) {
|
|
14
|
+
return parseInternal(source, parser, false);
|
|
15
|
+
}
|
|
16
|
+
var parseBigintArray = (value) => parseArray(value, parseBigint);
|
|
17
|
+
var parseBoolArray = (value) => parseArray(value, parseBool);
|
|
18
|
+
var parseByteAArray = (value) => parseArray(value, parseByteA);
|
|
19
|
+
var parseCircleArray = (value) => parseArray(value, parseCircle);
|
|
20
|
+
var parseFloatArray = (value) => parseArray(value, parseFloat);
|
|
21
|
+
var parseIntArray = (value) => parseArray(value, parseInt);
|
|
22
|
+
var parseIntervalArray = (value) => parseArray(value, parseInterval);
|
|
23
|
+
var parseJsonArray = (value) => parseArray(value, parseJson);
|
|
24
|
+
var parsePointArray = (value) => parseArray(value, parsePoint);
|
|
25
|
+
var parseTimestampArray = (value) => parseArray(value, parseTimestamp);
|
|
26
|
+
var parseTimestampTzArray = (value) => parseArray(value, parseTimestampTz);
|
|
27
|
+
function parseInternal(source, parser, nested) {
|
|
28
|
+
const entries = [];
|
|
29
|
+
let character = "";
|
|
30
|
+
let quote = false;
|
|
31
|
+
let position = 0;
|
|
32
|
+
let dimension = 0;
|
|
33
|
+
let recorded = "";
|
|
34
|
+
const newEntry = (includeEmpty) => {
|
|
35
|
+
let entry = recorded;
|
|
36
|
+
if (entry.length > 0 || includeEmpty) {
|
|
37
|
+
if (entry === "NULL" && !includeEmpty) {
|
|
38
|
+
entry = null;
|
|
39
|
+
}
|
|
40
|
+
if (entry !== null) {
|
|
41
|
+
entries.push(parser(entry));
|
|
42
|
+
} else {
|
|
43
|
+
entries.push(null);
|
|
44
|
+
}
|
|
45
|
+
recorded = "";
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
if (source[0] === "[") {
|
|
49
|
+
while (position < source.length) {
|
|
50
|
+
const char = source[position++];
|
|
51
|
+
if (char === "=") {
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
while (position < source.length) {
|
|
57
|
+
let escaped = false;
|
|
58
|
+
character = source[position++];
|
|
59
|
+
if (character === "\\") {
|
|
60
|
+
character = source[position++];
|
|
61
|
+
escaped = true;
|
|
62
|
+
}
|
|
63
|
+
if (character === "{" && !quote) {
|
|
64
|
+
dimension++;
|
|
65
|
+
if (dimension > 1) {
|
|
66
|
+
const result = parseInternal(source.substring(position - 1), parser, true);
|
|
67
|
+
entries.push(result.entries);
|
|
68
|
+
position += result.position - 2;
|
|
69
|
+
}
|
|
70
|
+
} else if (character === "}" && !quote) {
|
|
71
|
+
dimension--;
|
|
72
|
+
if (!dimension) {
|
|
73
|
+
newEntry();
|
|
74
|
+
if (nested) {
|
|
75
|
+
return {
|
|
76
|
+
entries,
|
|
77
|
+
position
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
} else if (character === '"' && !escaped) {
|
|
82
|
+
if (quote) {
|
|
83
|
+
newEntry(true);
|
|
84
|
+
}
|
|
85
|
+
quote = !quote;
|
|
86
|
+
} else if (character === "," && !quote) {
|
|
87
|
+
newEntry();
|
|
88
|
+
} else {
|
|
89
|
+
recorded += character;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
if (dimension !== 0) {
|
|
93
|
+
throw new Error("array dimension not balanced");
|
|
94
|
+
}
|
|
95
|
+
return entries;
|
|
96
|
+
}
|
|
97
|
+
export {
|
|
98
|
+
parseArray,
|
|
99
|
+
parseBigintArray,
|
|
100
|
+
parseBoolArray,
|
|
101
|
+
parseByteAArray,
|
|
102
|
+
parseCircleArray,
|
|
103
|
+
parseFloatArray,
|
|
104
|
+
parseIntArray,
|
|
105
|
+
parseIntervalArray,
|
|
106
|
+
parseJsonArray,
|
|
107
|
+
parsePointArray,
|
|
108
|
+
parseTimestampArray,
|
|
109
|
+
parseTimestampTzArray
|
|
110
|
+
};
|
|
111
|
+
//# sourceMappingURL=array.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/parsers/array.ts"],
|
|
4
|
+
"mappings": ";AAEA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,kBAAkB;AAC3B,SAAS,aAAa,kBAAkB;AACxC,SAAS,qBAAqB;AAcvB,SAAS,WACZ,QACA,SAAS,aACF;AACT,SAAO,cAAc,QAAQ,QAAQ,KAAK;AAC5C;AAKO,IAAM,mBACX,CAAC,UAAkB,WAAW,OAAO,WAAW;AAG3C,IAAM,iBACX,CAAC,UAAkB,WAAW,OAAO,SAAS;AAGzC,IAAM,kBACX,CAAC,UAAkB,WAAW,OAAO,UAAU;AAG1C,IAAM,mBACX,CAAC,UAAkB,WAAW,OAAO,WAAW;AAG3C,IAAM,kBACX,CAAC,UAAkB,WAAW,OAAO,UAAU;AAG1C,IAAM,gBACX,CAAC,UAAkB,WAAW,OAAO,QAAQ;AAGxC,IAAM,qBACX,CAAC,UAAkB,WAAW,OAAO,aAAa;AAG7C,IAAM,iBACX,CAAC,UAAkB,WAAW,OAAO,SAAS;AAGzC,IAAM,kBACX,CAAC,UAAkB,WAAW,OAAO,UAAU;AAG1C,IAAM,sBACX,CAAC,UAAkB,WAAW,OAAO,cAAc;AAG9C,IAAM,wBACX,CAAC,UAAkB,WAAW,OAAO,gBAAgB;AAcvD,SAAS,cAAc,QAAgB,QAAuB,QAAyC;AACrG,QAAM,UAAU,CAAC;AACjB,MAAI,YAAY;AAChB,MAAI,QAAQ;AACZ,MAAI,WAAW;AACf,MAAI,YAAY;AAChB,MAAI,WAAW;AAEf,QAAM,WAAW,CAAC,iBAAiC;AACjD,QAAI,QAAuB;AAE3B,QAAI,MAAM,SAAS,KAAK,cAAc;AACpC,UAAI,UAAU,UAAU,CAAC,cAAc;AACrC,gBAAQ;AAAA,MACV;AAEA,UAAI,UAAU,MAAM;AAClB,gBAAQ,KAAK,OAAO,KAAK,CAAC;AAAA,MAC5B,OAAO;AACL,gBAAQ,KAAK,IAAI;AAAA,MACnB;AAEA,iBAAW;AAAA,IACb;AAAA,EACF;AAEA,MAAI,OAAO,CAAC,MAAM,KAAK;AACrB,WAAO,WAAW,OAAO,QAAQ;AAC/B,YAAM,OAAO,OAAO,UAAU;AAE9B,UAAI,SAAS,KAAK;AAChB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO,WAAW,OAAO,QAAQ;AAC/B,QAAI,UAAU;AACd,gBAAY,OAAO,UAAU;AAE7B,QAAI,cAAc,MAAM;AACtB,kBAAY,OAAO,UAAU;AAC7B,gBAAU;AAAA,IACZ;AAEA,QAAI,cAAc,OAAO,CAAC,OAAO;AAC/B;AAEA,UAAI,YAAY,GAAG;AACjB,cAAM,SAAS,cAAc,OAAO,UAAU,WAAW,CAAC,GAAG,QAAQ,IAAI;AACzE,gBAAQ,KAAK,OAAO,OAAO;AAC3B,oBAAY,OAAO,WAAW;AAAA,MAChC;AAAA,IACF,WAAW,cAAc,OAAO,CAAC,OAAO;AACtC;AAEA,UAAI,CAAC,WAAW;AACd,iBAAS;AAET,YAAI,QAAQ;AACV,iBAAO;AAAA,YACL;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF,WAAW,cAAc,OAAO,CAAC,SAAS;AACxC,UAAI,OAAO;AACT,iBAAS,IAAI;AAAA,MACf;AAEA,cAAQ,CAAC;AAAA,IACX,WAAW,cAAc,OAAO,CAAC,OAAO;AACtC,eAAS;AAAA,IACX,OAAO;AACL,kBAAY;AAAA,IACd;AAAA,EACF;AAEA,MAAI,cAAc,GAAG;AACnB,UAAM,IAAI,MAAM,8BAA8B;AAAA,EAChD;AAEA,SAAO;AACT;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
|
|
30
|
+
// parsers/basic.ts
|
|
31
|
+
var basic_exports = {};
|
|
32
|
+
__export(basic_exports, {
|
|
33
|
+
parseBigint: () => parseBigint,
|
|
34
|
+
parseBool: () => parseBool,
|
|
35
|
+
parseJson: () => parseJson,
|
|
36
|
+
parseString: () => parseString,
|
|
37
|
+
parseTimestamp: () => parseTimestamp,
|
|
38
|
+
parseTimestampTz: () => parseTimestampTz,
|
|
39
|
+
parseVoid: () => parseVoid
|
|
40
|
+
});
|
|
41
|
+
module.exports = __toCommonJS(basic_exports);
|
|
42
|
+
var import_postgres_date = __toESM(require("postgres-date"));
|
|
43
|
+
var INVALID_DATE = /* @__PURE__ */ new Date(NaN);
|
|
44
|
+
var parseBigint = BigInt;
|
|
45
|
+
var parseJson = JSON.parse;
|
|
46
|
+
var parseBool = (value) => {
|
|
47
|
+
return value === "TRUE" || value === "t" || value === "true" || value === "y" || value === "yes" || value === "on" || value === "1";
|
|
48
|
+
};
|
|
49
|
+
var parseString = (value) => value;
|
|
50
|
+
var parseVoid = () => null;
|
|
51
|
+
var parseTimestamp = (value) => {
|
|
52
|
+
const utc = value.endsWith(" BC") ? value.slice(0, -3) + "Z BC" : value + "Z";
|
|
53
|
+
return parseTimestampTz(utc);
|
|
54
|
+
};
|
|
55
|
+
var parseTimestampTz = (value) => {
|
|
56
|
+
const date = (0, import_postgres_date.default)(value);
|
|
57
|
+
return date instanceof Date ? date : INVALID_DATE;
|
|
58
|
+
};
|
|
59
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
60
|
+
0 && (module.exports = {
|
|
61
|
+
parseBigint,
|
|
62
|
+
parseBool,
|
|
63
|
+
parseJson,
|
|
64
|
+
parseString,
|
|
65
|
+
parseTimestamp,
|
|
66
|
+
parseTimestampTz,
|
|
67
|
+
parseVoid
|
|
68
|
+
});
|
|
69
|
+
//# sourceMappingURL=basic.cjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/parsers/basic.ts"],
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,2BAAyB;AAMzB,IAAM,eAAe,oBAAI,KAAK,GAAG;AAO1B,IAAM,cAAgC;AAGtC,IAAM,YAA2B,KAAK;AAGtC,IAAM,YAA+B,CAAC,UAA2B;AACtE,SAAO,UAAU,UACV,UAAU,OACV,UAAU,UACV,UAAU,OACV,UAAU,SACV,UAAU,QACV,UAAU;AACnB;AAGO,IAAM,cAAgC,CAAC,UAA0B;AAGjE,IAAM,YAA4B,MAAY;AAK9C,IAAM,iBAAiC,CAAC,UAAwB;AACrE,QAAM,MAAM,MAAM,SAAS,KAAK,IAC9B,MAAM,MAAM,GAAG,EAAE,IAAI,SACrB,QAAQ;AAEV,SAAO,iBAAiB,GAAG;AAC7B;AAGO,IAAM,mBAAmC,CAAC,UAAwB;AACvE,QAAM,WAAO,qBAAAA,SAAa,KAAK;AAC/B,SAAO,gBAAgB,OAAO,OAAO;AACvC;",
|
|
5
|
+
"names": ["postgresDate"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { PGParser } from '../parsers';
|
|
2
|
+
/** Parse a `bigint` */
|
|
3
|
+
export declare const parseBigint: PGParser<bigint>;
|
|
4
|
+
/** Parse some JSON */
|
|
5
|
+
export declare const parseJson: PGParser<any>;
|
|
6
|
+
/** Parse a `boolean` */
|
|
7
|
+
export declare const parseBool: PGParser<boolean>;
|
|
8
|
+
/** Parse a `string` (identity transformation) */
|
|
9
|
+
export declare const parseString: PGParser<string>;
|
|
10
|
+
/** Parse anything into `null` (normally used only for `void` types) */
|
|
11
|
+
export declare const parseVoid: PGParser<null>;
|
|
12
|
+
/** Parse a PostgreSQL timestamp _without_ time zone */
|
|
13
|
+
export declare const parseTimestamp: PGParser<Date>;
|
|
14
|
+
/** Parse a PostgreSQL timestamp _with_ time zone */
|
|
15
|
+
export declare const parseTimestampTz: PGParser<Date>;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// parsers/basic.ts
|
|
2
|
+
import postgresDate from "postgres-date";
|
|
3
|
+
var INVALID_DATE = /* @__PURE__ */ new Date(NaN);
|
|
4
|
+
var parseBigint = BigInt;
|
|
5
|
+
var parseJson = JSON.parse;
|
|
6
|
+
var parseBool = (value) => {
|
|
7
|
+
return value === "TRUE" || value === "t" || value === "true" || value === "y" || value === "yes" || value === "on" || value === "1";
|
|
8
|
+
};
|
|
9
|
+
var parseString = (value) => value;
|
|
10
|
+
var parseVoid = () => null;
|
|
11
|
+
var parseTimestamp = (value) => {
|
|
12
|
+
const utc = value.endsWith(" BC") ? value.slice(0, -3) + "Z BC" : value + "Z";
|
|
13
|
+
return parseTimestampTz(utc);
|
|
14
|
+
};
|
|
15
|
+
var parseTimestampTz = (value) => {
|
|
16
|
+
const date = postgresDate(value);
|
|
17
|
+
return date instanceof Date ? date : INVALID_DATE;
|
|
18
|
+
};
|
|
19
|
+
export {
|
|
20
|
+
parseBigint,
|
|
21
|
+
parseBool,
|
|
22
|
+
parseJson,
|
|
23
|
+
parseString,
|
|
24
|
+
parseTimestamp,
|
|
25
|
+
parseTimestampTz,
|
|
26
|
+
parseVoid
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=basic.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/parsers/basic.ts"],
|
|
4
|
+
"mappings": ";AAIA,OAAO,kBAAkB;AAMzB,IAAM,eAAe,oBAAI,KAAK,GAAG;AAO1B,IAAM,cAAgC;AAGtC,IAAM,YAA2B,KAAK;AAGtC,IAAM,YAA+B,CAAC,UAA2B;AACtE,SAAO,UAAU,UACV,UAAU,OACV,UAAU,UACV,UAAU,OACV,UAAU,SACV,UAAU,QACV,UAAU;AACnB;AAGO,IAAM,cAAgC,CAAC,UAA0B;AAGjE,IAAM,YAA4B,MAAY;AAK9C,IAAM,iBAAiC,CAAC,UAAwB;AACrE,QAAM,MAAM,MAAM,SAAS,KAAK,IAC9B,MAAM,MAAM,GAAG,EAAE,IAAI,SACrB,QAAQ;AAEV,SAAO,iBAAiB,GAAG;AAC7B;AAGO,IAAM,mBAAmC,CAAC,UAAwB;AACvE,QAAM,OAAO,aAAa,KAAK;AAC/B,SAAO,gBAAgB,OAAO,OAAO;AACvC;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// parsers/bytea.ts
|
|
21
|
+
var bytea_exports = {};
|
|
22
|
+
__export(bytea_exports, {
|
|
23
|
+
parseByteA: () => parseByteA
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(bytea_exports);
|
|
26
|
+
function parseEncoded(input) {
|
|
27
|
+
const array = new Uint8Array((input.length - 2) / 2);
|
|
28
|
+
let index = 0;
|
|
29
|
+
for (let i = 2; i < input.length; i += 2) {
|
|
30
|
+
array[index++] = parseInt(input.substring(i, i + 2), 16);
|
|
31
|
+
}
|
|
32
|
+
return array;
|
|
33
|
+
}
|
|
34
|
+
function parseEscaped(input, Buffer2) {
|
|
35
|
+
const result = new Uint8Array(input.length);
|
|
36
|
+
let pos = 0;
|
|
37
|
+
for (let i = 0; i < input.length; i++) {
|
|
38
|
+
const code = input.charCodeAt(i);
|
|
39
|
+
if (code !== 92) {
|
|
40
|
+
result[pos++] = code;
|
|
41
|
+
} else {
|
|
42
|
+
const token = input.substring(i + 1, i + 4);
|
|
43
|
+
if (/[0-7]{3}/.test(token)) {
|
|
44
|
+
result[pos++] = parseInt(token, 8);
|
|
45
|
+
i += 3;
|
|
46
|
+
} else {
|
|
47
|
+
let backslashes = 1;
|
|
48
|
+
for (let char = input[++i]; i < input.length && char === "\\"; char = input[++i])
|
|
49
|
+
backslashes++;
|
|
50
|
+
result.fill(92, pos, pos += backslashes >>> 1);
|
|
51
|
+
i--;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return Buffer2 ? Buffer2.from(result.subarray(0, pos)) : result.slice(0, pos);
|
|
56
|
+
}
|
|
57
|
+
function parseByteA(input, Buffer2 = globalThis.Buffer) {
|
|
58
|
+
if (input.startsWith("\\x")) {
|
|
59
|
+
return Buffer2 ? Buffer2.from(input.substring(2), "hex") : parseEncoded(input);
|
|
60
|
+
} else {
|
|
61
|
+
return parseEscaped(input, Buffer2);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
65
|
+
0 && (module.exports = {
|
|
66
|
+
parseByteA
|
|
67
|
+
});
|
|
68
|
+
//# sourceMappingURL=bytea.cjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/parsers/bytea.ts"],
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAWA,SAAS,aAAa,OAA2B;AAC/C,QAAM,QAAQ,IAAI,YAAY,MAAM,SAAS,KAAK,CAAC;AACnD,MAAI,QAAQ;AACZ,WAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK,GAAG;AACxC,UAAM,OAAQ,IAAI,SAAS,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE;AAAA,EAC1D;AACA,SAAO;AACT;AAGA,SAAS,aAAa,OAAeA,SAA0C;AAC7E,QAAM,SAAS,IAAI,WAAW,MAAM,MAAM;AAC1C,MAAI,MAAM;AAEV,WAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAM;AACtC,UAAM,OAAO,MAAM,WAAW,CAAC;AAC/B,QAAI,SAAS,IAAM;AAEjB,aAAO,KAAM,IAAI;AAAA,IACnB,OAAO;AAEL,YAAM,QAAQ,MAAM,UAAU,IAAI,GAAG,IAAI,CAAC;AAC1C,UAAI,WAAW,KAAK,KAAK,GAAG;AAC1B,eAAO,KAAM,IAAI,SAAS,OAAO,CAAC;AAClC,aAAK;AAAA,MACP,OAAO;AAEL,YAAI,cAAc;AAElB,iBACM,OAAO,MAAM,EAAE,CAAC,GACnB,IAAI,MAAM,UAAY,SAAS,MAChC,OAAO,MAAM,EAAE,CAAC;AAChB;AAGF,eAAO,KAAK,IAAM,KAAK,OAAO,gBAAgB,CAAC;AAG/C;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAGA,SAAOA,UAASA,QAAO,KAAK,OAAO,SAAS,GAAG,GAAG,CAAC,IAAI,OAAO,MAAM,GAAG,GAAG;AAC5E;AASO,SAAS,WACZ,OACAA,UAA2C,WAAmB,QACpD;AACZ,MAAI,MAAM,WAAW,KAAK,GAAG;AAE3B,WAAOA,UAASA,QAAO,KAAK,MAAM,UAAU,CAAC,GAAG,KAAK,IAAI,aAAa,KAAK;AAAA,EAC7E,OAAO;AACL,WAAO,aAAa,OAAOA,OAAM;AAAA,EACnC;AACF;",
|
|
5
|
+
"names": ["Buffer"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
interface NodeJSBuffer {
|
|
2
|
+
from(source: string, format: 'hex'): Uint8Array;
|
|
3
|
+
from(source: Uint8Array): Uint8Array;
|
|
4
|
+
}
|
|
5
|
+
/** Parse a PostgreSQL `BYTEA` string (escaped or encoded in hexadecimal) */
|
|
6
|
+
export declare function parseByteA(input: string, Buffer?: NodeJSBuffer | null): Uint8Array;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// parsers/bytea.ts
|
|
2
|
+
function parseEncoded(input) {
|
|
3
|
+
const array = new Uint8Array((input.length - 2) / 2);
|
|
4
|
+
let index = 0;
|
|
5
|
+
for (let i = 2; i < input.length; i += 2) {
|
|
6
|
+
array[index++] = parseInt(input.substring(i, i + 2), 16);
|
|
7
|
+
}
|
|
8
|
+
return array;
|
|
9
|
+
}
|
|
10
|
+
function parseEscaped(input, Buffer) {
|
|
11
|
+
const result = new Uint8Array(input.length);
|
|
12
|
+
let pos = 0;
|
|
13
|
+
for (let i = 0; i < input.length; i++) {
|
|
14
|
+
const code = input.charCodeAt(i);
|
|
15
|
+
if (code !== 92) {
|
|
16
|
+
result[pos++] = code;
|
|
17
|
+
} else {
|
|
18
|
+
const token = input.substring(i + 1, i + 4);
|
|
19
|
+
if (/[0-7]{3}/.test(token)) {
|
|
20
|
+
result[pos++] = parseInt(token, 8);
|
|
21
|
+
i += 3;
|
|
22
|
+
} else {
|
|
23
|
+
let backslashes = 1;
|
|
24
|
+
for (let char = input[++i]; i < input.length && char === "\\"; char = input[++i])
|
|
25
|
+
backslashes++;
|
|
26
|
+
result.fill(92, pos, pos += backslashes >>> 1);
|
|
27
|
+
i--;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return Buffer ? Buffer.from(result.subarray(0, pos)) : result.slice(0, pos);
|
|
32
|
+
}
|
|
33
|
+
function parseByteA(input, Buffer = globalThis.Buffer) {
|
|
34
|
+
if (input.startsWith("\\x")) {
|
|
35
|
+
return Buffer ? Buffer.from(input.substring(2), "hex") : parseEncoded(input);
|
|
36
|
+
} else {
|
|
37
|
+
return parseEscaped(input, Buffer);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
export {
|
|
41
|
+
parseByteA
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=bytea.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/parsers/bytea.ts"],
|
|
4
|
+
"mappings": ";AAWA,SAAS,aAAa,OAA2B;AAC/C,QAAM,QAAQ,IAAI,YAAY,MAAM,SAAS,KAAK,CAAC;AACnD,MAAI,QAAQ;AACZ,WAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK,GAAG;AACxC,UAAM,OAAQ,IAAI,SAAS,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE;AAAA,EAC1D;AACA,SAAO;AACT;AAGA,SAAS,aAAa,OAAe,QAA0C;AAC7E,QAAM,SAAS,IAAI,WAAW,MAAM,MAAM;AAC1C,MAAI,MAAM;AAEV,WAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAM;AACtC,UAAM,OAAO,MAAM,WAAW,CAAC;AAC/B,QAAI,SAAS,IAAM;AAEjB,aAAO,KAAM,IAAI;AAAA,IACnB,OAAO;AAEL,YAAM,QAAQ,MAAM,UAAU,IAAI,GAAG,IAAI,CAAC;AAC1C,UAAI,WAAW,KAAK,KAAK,GAAG;AAC1B,eAAO,KAAM,IAAI,SAAS,OAAO,CAAC;AAClC,aAAK;AAAA,MACP,OAAO;AAEL,YAAI,cAAc;AAElB,iBACM,OAAO,MAAM,EAAE,CAAC,GACnB,IAAI,MAAM,UAAY,SAAS,MAChC,OAAO,MAAM,EAAE,CAAC;AAChB;AAGF,eAAO,KAAK,IAAM,KAAK,OAAO,gBAAgB,CAAC;AAG/C;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAGA,SAAO,SAAS,OAAO,KAAK,OAAO,SAAS,GAAG,GAAG,CAAC,IAAI,OAAO,MAAM,GAAG,GAAG;AAC5E;AASO,SAAS,WACZ,OACA,SAA2C,WAAmB,QACpD;AACZ,MAAI,MAAM,WAAW,KAAK,GAAG;AAE3B,WAAO,SAAS,OAAO,KAAK,MAAM,UAAU,CAAC,GAAG,KAAK,IAAI,aAAa,KAAK;AAAA,EAC7E,OAAO;AACL,WAAO,aAAa,OAAO,MAAM;AAAA,EACnC;AACF;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// parsers/geometric.ts
|
|
21
|
+
var geometric_exports = {};
|
|
22
|
+
__export(geometric_exports, {
|
|
23
|
+
PGCircle: () => PGCircle,
|
|
24
|
+
PGPoint: () => PGPoint,
|
|
25
|
+
parseCircle: () => parseCircle,
|
|
26
|
+
parsePoint: () => parsePoint
|
|
27
|
+
});
|
|
28
|
+
module.exports = __toCommonJS(geometric_exports);
|
|
29
|
+
var PGPoint = class PGPointImpl {
|
|
30
|
+
constructor(x, y) {
|
|
31
|
+
this.x = x;
|
|
32
|
+
this.y = y;
|
|
33
|
+
}
|
|
34
|
+
toPostgres() {
|
|
35
|
+
return `(${this.x},${this.y})`;
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var PGCircle = class PGCircleImpl extends PGPoint {
|
|
39
|
+
constructor(x, y, radius) {
|
|
40
|
+
super(x, y);
|
|
41
|
+
this.radius = radius;
|
|
42
|
+
}
|
|
43
|
+
toPostgres() {
|
|
44
|
+
return `<(${this.x},${this.y}),${this.radius}>`;
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
var INVALID_POINT = new PGPoint(NaN, NaN);
|
|
48
|
+
var INVALID_CIRCLE = new PGCircle(NaN, NaN, NaN);
|
|
49
|
+
var parsePoint = (value) => {
|
|
50
|
+
if (value[0] !== "(")
|
|
51
|
+
return INVALID_POINT;
|
|
52
|
+
const values = value.substring(1, value.length - 1).split(",");
|
|
53
|
+
return new PGPoint(parseFloat(values[0]), parseFloat(values[1]));
|
|
54
|
+
};
|
|
55
|
+
var parseCircle = (value) => {
|
|
56
|
+
if (value[0] !== "<" && value[1] !== "(")
|
|
57
|
+
return INVALID_CIRCLE;
|
|
58
|
+
let point = "(";
|
|
59
|
+
let radius = "";
|
|
60
|
+
let pointParsed = false;
|
|
61
|
+
for (let i = 2; i < value.length - 1; i++) {
|
|
62
|
+
if (!pointParsed) {
|
|
63
|
+
point += value[i];
|
|
64
|
+
}
|
|
65
|
+
if (value[i] === ")") {
|
|
66
|
+
pointParsed = true;
|
|
67
|
+
continue;
|
|
68
|
+
} else if (!pointParsed) {
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
if (value[i] === ",") {
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
radius += value[i];
|
|
75
|
+
}
|
|
76
|
+
const { x, y } = parsePoint(point);
|
|
77
|
+
return new PGCircle(x, y, parseFloat(radius));
|
|
78
|
+
};
|
|
79
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
80
|
+
0 && (module.exports = {
|
|
81
|
+
PGCircle,
|
|
82
|
+
PGPoint,
|
|
83
|
+
parseCircle,
|
|
84
|
+
parsePoint
|
|
85
|
+
});
|
|
86
|
+
//# sourceMappingURL=geometric.cjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/parsers/geometric.ts"],
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA8BO,IAAM,UAA8B,MAAM,YAA+B;AAAA,EAC9E,YAA4B,GAA2B,GAAW;AAAtC;AAA2B;AAAA,EAAY;AAAA,EAEnE,aAAqB;AACnB,WAAO,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC;AAAA,EAC7B;AACF;AAGO,IAAM,WAAgC,MAAM,qBAAqB,QAA4B;AAAA,EAClG,YAAY,GAAW,GAA2B,QAAgB;AAChE,UAAM,GAAG,CAAC;AADsC;AAAA,EAElD;AAAA,EAEA,aAAqB;AACnB,WAAO,KAAK,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM;AAAA,EAC9C;AACF;AAIA,IAAM,gBAAgB,IAAI,QAAQ,KAAK,GAAG;AAC1C,IAAM,iBAAiB,IAAI,SAAS,KAAK,KAAK,GAAG;AAO1C,IAAM,aAAgC,CAAC,UAA2B;AACvE,MAAI,MAAM,CAAC,MAAM;AAAK,WAAO;AAE7B,QAAM,SAAS,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,EAAE,MAAM,GAAG;AAE7D,SAAO,IAAI,QAAQ,WAAW,OAAO,CAAC,CAAE,GAAG,WAAW,OAAO,CAAC,CAAE,CAAC;AACnE;AAGO,IAAM,cAAkC,CAAC,UAA4B;AAC1E,MAAI,MAAM,CAAC,MAAM,OAAO,MAAM,CAAC,MAAM;AAAK,WAAO;AAEjD,MAAI,QAAQ;AACZ,MAAI,SAAS;AACb,MAAI,cAAc;AAClB,WAAS,IAAI,GAAG,IAAI,MAAM,SAAS,GAAG,KAAK;AACzC,QAAI,CAAC,aAAa;AAChB,eAAS,MAAM,CAAC;AAAA,IAClB;AAEA,QAAI,MAAM,CAAC,MAAM,KAAK;AACpB,oBAAc;AACd;AAAA,IACF,WAAW,CAAC,aAAa;AACvB;AAAA,IACF;AAEA,QAAI,MAAM,CAAC,MAAM,KAAK;AACpB;AAAA,IACF;AAEA,cAAU,MAAM,CAAC;AAAA,EACnB;AAEA,QAAM,EAAE,GAAG,EAAE,IAAI,WAAW,KAAK;AACjC,SAAO,IAAI,SAAS,GAAG,GAAG,WAAW,MAAM,CAAC;AAC9C;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { PGParser } from '../parsers';
|
|
2
|
+
import type { PGSerializable } from '../serializers';
|
|
3
|
+
/** A parsed PostgreSQL `point` */
|
|
4
|
+
export interface PGPoint extends PGSerializable {
|
|
5
|
+
readonly x: number;
|
|
6
|
+
readonly y: number;
|
|
7
|
+
}
|
|
8
|
+
/** A parsed PostgreSQL `circle` */
|
|
9
|
+
export interface PGCircle extends PGPoint {
|
|
10
|
+
readonly radius: number;
|
|
11
|
+
}
|
|
12
|
+
/** Constructor for {@link PGPoint} */
|
|
13
|
+
export interface PGPointConstructor {
|
|
14
|
+
new (x: number, y: number): PGPoint;
|
|
15
|
+
}
|
|
16
|
+
/** Constructor for {@link PGCircle} */
|
|
17
|
+
export interface PGCircleConstructor {
|
|
18
|
+
new (x: number, y: number, radius: number): PGCircle;
|
|
19
|
+
}
|
|
20
|
+
/** Create a new {@link PGPoint} instance */
|
|
21
|
+
export declare const PGPoint: PGPointConstructor;
|
|
22
|
+
/** Create a new {@link PGCircle} instance */
|
|
23
|
+
export declare const PGCircle: PGCircleConstructor;
|
|
24
|
+
/** Parse a PostgreSQL `point` */
|
|
25
|
+
export declare const parsePoint: PGParser<PGPoint>;
|
|
26
|
+
/** Parse a PostgreSQL `circle` */
|
|
27
|
+
export declare const parseCircle: PGParser<PGCircle>;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
// parsers/geometric.ts
|
|
2
|
+
var PGPoint = class PGPointImpl {
|
|
3
|
+
constructor(x, y) {
|
|
4
|
+
this.x = x;
|
|
5
|
+
this.y = y;
|
|
6
|
+
}
|
|
7
|
+
toPostgres() {
|
|
8
|
+
return `(${this.x},${this.y})`;
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
var PGCircle = class PGCircleImpl extends PGPoint {
|
|
12
|
+
constructor(x, y, radius) {
|
|
13
|
+
super(x, y);
|
|
14
|
+
this.radius = radius;
|
|
15
|
+
}
|
|
16
|
+
toPostgres() {
|
|
17
|
+
return `<(${this.x},${this.y}),${this.radius}>`;
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
var INVALID_POINT = new PGPoint(NaN, NaN);
|
|
21
|
+
var INVALID_CIRCLE = new PGCircle(NaN, NaN, NaN);
|
|
22
|
+
var parsePoint = (value) => {
|
|
23
|
+
if (value[0] !== "(")
|
|
24
|
+
return INVALID_POINT;
|
|
25
|
+
const values = value.substring(1, value.length - 1).split(",");
|
|
26
|
+
return new PGPoint(parseFloat(values[0]), parseFloat(values[1]));
|
|
27
|
+
};
|
|
28
|
+
var parseCircle = (value) => {
|
|
29
|
+
if (value[0] !== "<" && value[1] !== "(")
|
|
30
|
+
return INVALID_CIRCLE;
|
|
31
|
+
let point = "(";
|
|
32
|
+
let radius = "";
|
|
33
|
+
let pointParsed = false;
|
|
34
|
+
for (let i = 2; i < value.length - 1; i++) {
|
|
35
|
+
if (!pointParsed) {
|
|
36
|
+
point += value[i];
|
|
37
|
+
}
|
|
38
|
+
if (value[i] === ")") {
|
|
39
|
+
pointParsed = true;
|
|
40
|
+
continue;
|
|
41
|
+
} else if (!pointParsed) {
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
if (value[i] === ",") {
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
radius += value[i];
|
|
48
|
+
}
|
|
49
|
+
const { x, y } = parsePoint(point);
|
|
50
|
+
return new PGCircle(x, y, parseFloat(radius));
|
|
51
|
+
};
|
|
52
|
+
export {
|
|
53
|
+
PGCircle,
|
|
54
|
+
PGPoint,
|
|
55
|
+
parseCircle,
|
|
56
|
+
parsePoint
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=geometric.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/parsers/geometric.ts"],
|
|
4
|
+
"mappings": ";AA8BO,IAAM,UAA8B,MAAM,YAA+B;AAAA,EAC9E,YAA4B,GAA2B,GAAW;AAAtC;AAA2B;AAAA,EAAY;AAAA,EAEnE,aAAqB;AACnB,WAAO,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC;AAAA,EAC7B;AACF;AAGO,IAAM,WAAgC,MAAM,qBAAqB,QAA4B;AAAA,EAClG,YAAY,GAAW,GAA2B,QAAgB;AAChE,UAAM,GAAG,CAAC;AADsC;AAAA,EAElD;AAAA,EAEA,aAAqB;AACnB,WAAO,KAAK,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM;AAAA,EAC9C;AACF;AAIA,IAAM,gBAAgB,IAAI,QAAQ,KAAK,GAAG;AAC1C,IAAM,iBAAiB,IAAI,SAAS,KAAK,KAAK,GAAG;AAO1C,IAAM,aAAgC,CAAC,UAA2B;AACvE,MAAI,MAAM,CAAC,MAAM;AAAK,WAAO;AAE7B,QAAM,SAAS,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,EAAE,MAAM,GAAG;AAE7D,SAAO,IAAI,QAAQ,WAAW,OAAO,CAAC,CAAE,GAAG,WAAW,OAAO,CAAC,CAAE,CAAC;AACnE;AAGO,IAAM,cAAkC,CAAC,UAA4B;AAC1E,MAAI,MAAM,CAAC,MAAM,OAAO,MAAM,CAAC,MAAM;AAAK,WAAO;AAEjD,MAAI,QAAQ;AACZ,MAAI,SAAS;AACb,MAAI,cAAc;AAClB,WAAS,IAAI,GAAG,IAAI,MAAM,SAAS,GAAG,KAAK;AACzC,QAAI,CAAC,aAAa;AAChB,eAAS,MAAM,CAAC;AAAA,IAClB;AAEA,QAAI,MAAM,CAAC,MAAM,KAAK;AACpB,oBAAc;AACd;AAAA,IACF,WAAW,CAAC,aAAa;AACvB;AAAA,IACF;AAEA,QAAI,MAAM,CAAC,MAAM,KAAK;AACpB;AAAA,IACF;AAEA,cAAU,MAAM,CAAC;AAAA,EACnB;AAEA,QAAM,EAAE,GAAG,EAAE,IAAI,WAAW,KAAK;AACjC,SAAO,IAAI,SAAS,GAAG,GAAG,WAAW,MAAM,CAAC;AAC9C;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
|
|
30
|
+
// parsers/interval.ts
|
|
31
|
+
var interval_exports = {};
|
|
32
|
+
__export(interval_exports, {
|
|
33
|
+
PGInterval: () => PGInterval,
|
|
34
|
+
parseInterval: () => parseInterval
|
|
35
|
+
});
|
|
36
|
+
module.exports = __toCommonJS(interval_exports);
|
|
37
|
+
var import_postgres_interval = __toESM(require("postgres-interval"));
|
|
38
|
+
var PostgresInterval = import_postgres_interval.default;
|
|
39
|
+
var PGInterval = class PGIntervalImpl extends PostgresInterval {
|
|
40
|
+
constructor(value) {
|
|
41
|
+
super(value);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
var parseInterval = (value) => new PGInterval(value);
|
|
45
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
46
|
+
0 && (module.exports = {
|
|
47
|
+
PGInterval,
|
|
48
|
+
parseInterval
|
|
49
|
+
});
|
|
50
|
+
//# sourceMappingURL=interval.cjs.map
|