drizzle-orm 0.31.0-e64a96d → 0.31.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/mysql-core/dialect.cjs +18 -15
- package/mysql-core/dialect.cjs.map +1 -1
- package/mysql-core/dialect.d.cts +3 -2
- package/mysql-core/dialect.d.ts +3 -2
- package/mysql-core/dialect.js +6 -3
- package/mysql-core/dialect.js.map +1 -1
- package/package.json +97 -13
- package/pg-core/columns/index.cjs +14 -2
- package/pg-core/columns/index.cjs.map +1 -1
- package/pg-core/columns/index.d.cts +7 -1
- package/pg-core/columns/index.d.ts +7 -1
- package/pg-core/columns/index.js +7 -1
- package/pg-core/columns/index.js.map +1 -1
- package/pg-core/columns/line.cjs +96 -0
- package/pg-core/columns/line.cjs.map +1 -0
- package/pg-core/columns/line.d.cts +57 -0
- package/pg-core/columns/line.d.ts +57 -0
- package/pg-core/columns/line.js +68 -0
- package/pg-core/columns/line.js.map +1 -0
- package/pg-core/columns/point.cjs +102 -0
- package/pg-core/columns/point.cjs.map +1 -0
- package/pg-core/columns/point.d.cts +60 -0
- package/pg-core/columns/point.d.ts +60 -0
- package/pg-core/columns/point.js +74 -0
- package/pg-core/columns/point.js.map +1 -0
- package/pg-core/columns/postgis_extension/geometry.cjs +96 -0
- package/pg-core/columns/postgis_extension/geometry.cjs.map +1 -0
- package/pg-core/columns/postgis_extension/geometry.d.cts +57 -0
- package/pg-core/columns/postgis_extension/geometry.d.ts +57 -0
- package/pg-core/columns/postgis_extension/geometry.js +68 -0
- package/pg-core/columns/postgis_extension/geometry.js.map +1 -0
- package/pg-core/columns/postgis_extension/utils.cjs +65 -0
- package/pg-core/columns/postgis_extension/utils.cjs.map +1 -0
- package/pg-core/columns/postgis_extension/utils.d.cts +1 -0
- package/pg-core/columns/postgis_extension/utils.d.ts +1 -0
- package/pg-core/columns/postgis_extension/utils.js +41 -0
- package/pg-core/columns/postgis_extension/utils.js.map +1 -0
- package/pg-core/columns/vector_extension/bit.cjs +58 -0
- package/pg-core/columns/vector_extension/bit.cjs.map +1 -0
- package/pg-core/columns/vector_extension/bit.d.cts +29 -0
- package/pg-core/columns/vector_extension/bit.d.ts +29 -0
- package/pg-core/columns/vector_extension/bit.js +32 -0
- package/pg-core/columns/vector_extension/bit.js.map +1 -0
- package/pg-core/columns/vector_extension/halfvec.cjs +64 -0
- package/pg-core/columns/vector_extension/halfvec.cjs.map +1 -0
- package/pg-core/columns/vector_extension/halfvec.d.cts +31 -0
- package/pg-core/columns/vector_extension/halfvec.d.ts +31 -0
- package/pg-core/columns/vector_extension/halfvec.js +38 -0
- package/pg-core/columns/vector_extension/halfvec.js.map +1 -0
- package/pg-core/columns/vector_extension/sparsevec.cjs +58 -0
- package/pg-core/columns/vector_extension/sparsevec.cjs.map +1 -0
- package/pg-core/columns/vector_extension/sparsevec.d.cts +29 -0
- package/pg-core/columns/vector_extension/sparsevec.d.ts +29 -0
- package/pg-core/columns/vector_extension/sparsevec.js +32 -0
- package/pg-core/columns/vector_extension/sparsevec.js.map +1 -0
- package/pg-core/columns/{vector.cjs → vector_extension/vector.cjs} +8 -2
- package/pg-core/columns/vector_extension/vector.cjs.map +1 -0
- package/pg-core/columns/{vector.d.cts → vector_extension/vector.d.cts} +6 -4
- package/pg-core/columns/{vector.d.ts → vector_extension/vector.d.ts} +6 -4
- package/pg-core/columns/{vector.js → vector_extension/vector.js} +8 -2
- package/pg-core/columns/vector_extension/vector.js.map +1 -0
- package/sql/functions/index.cjs +3 -1
- package/sql/functions/index.cjs.map +1 -1
- package/sql/functions/index.d.cts +1 -0
- package/sql/functions/index.d.ts +1 -0
- package/sql/functions/index.js +1 -0
- package/sql/functions/index.js.map +1 -1
- package/sql/functions/vector.cjs +41 -8
- package/sql/functions/vector.cjs.map +1 -1
- package/sql/functions/vector.d.cts +54 -5
- package/sql/functions/vector.d.ts +54 -5
- package/sql/functions/vector.js +36 -6
- package/sql/functions/vector.js.map +1 -1
- package/sqlite-core/dialect.cjs +3 -2
- package/sqlite-core/dialect.cjs.map +1 -1
- package/sqlite-core/dialect.d.cts +1 -1
- package/sqlite-core/dialect.d.ts +1 -1
- package/sqlite-core/dialect.js +3 -2
- package/sqlite-core/dialect.js.map +1 -1
- package/sqlite-core/session.cjs +2 -2
- package/sqlite-core/session.cjs.map +1 -1
- package/sqlite-core/session.d.cts +1 -1
- package/sqlite-core/session.d.ts +1 -1
- package/sqlite-core/session.js +1 -1
- package/sqlite-core/session.js.map +1 -1
- package/version.cjs +1 -1
- package/version.d.cts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/pg-core/columns/vector.cjs.map +0 -1
- package/pg-core/columns/vector.js.map +0 -1
|
@@ -0,0 +1,96 @@
|
|
|
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
|
+
var geometry_exports = {};
|
|
20
|
+
__export(geometry_exports, {
|
|
21
|
+
PgGeometry: () => PgGeometry,
|
|
22
|
+
PgGeometryBuilder: () => PgGeometryBuilder,
|
|
23
|
+
PgGeometryObject: () => PgGeometryObject,
|
|
24
|
+
PgGeometryObjectBuilder: () => PgGeometryObjectBuilder,
|
|
25
|
+
geometry: () => geometry
|
|
26
|
+
});
|
|
27
|
+
module.exports = __toCommonJS(geometry_exports);
|
|
28
|
+
var import_entity = require("../../../entity.cjs");
|
|
29
|
+
var import_common = require("../common.cjs");
|
|
30
|
+
var import_utils = require("./utils.cjs");
|
|
31
|
+
class PgGeometryBuilder extends import_common.PgColumnBuilder {
|
|
32
|
+
static [import_entity.entityKind] = "PgGeometryBuilder";
|
|
33
|
+
constructor(name) {
|
|
34
|
+
super(name, "array", "PgGeometry");
|
|
35
|
+
}
|
|
36
|
+
/** @internal */
|
|
37
|
+
build(table) {
|
|
38
|
+
return new PgGeometry(
|
|
39
|
+
table,
|
|
40
|
+
this.config
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
class PgGeometry extends import_common.PgColumn {
|
|
45
|
+
static [import_entity.entityKind] = "PgGeometry";
|
|
46
|
+
getSQLType() {
|
|
47
|
+
return "geometry(point)";
|
|
48
|
+
}
|
|
49
|
+
mapFromDriverValue(value) {
|
|
50
|
+
return (0, import_utils.parseEWKB)(value);
|
|
51
|
+
}
|
|
52
|
+
mapToDriverValue(value) {
|
|
53
|
+
return `point(${value[0]} ${value[1]})`;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
class PgGeometryObjectBuilder extends import_common.PgColumnBuilder {
|
|
57
|
+
static [import_entity.entityKind] = "PgGeometryObjectBuilder";
|
|
58
|
+
constructor(name) {
|
|
59
|
+
super(name, "json", "PgGeometryObject");
|
|
60
|
+
}
|
|
61
|
+
/** @internal */
|
|
62
|
+
build(table) {
|
|
63
|
+
return new PgGeometryObject(
|
|
64
|
+
table,
|
|
65
|
+
this.config
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
class PgGeometryObject extends import_common.PgColumn {
|
|
70
|
+
static [import_entity.entityKind] = "PgGeometryObject";
|
|
71
|
+
getSQLType() {
|
|
72
|
+
return "geometry(point)";
|
|
73
|
+
}
|
|
74
|
+
mapFromDriverValue(value) {
|
|
75
|
+
const parsed = (0, import_utils.parseEWKB)(value);
|
|
76
|
+
return { x: parsed[0], y: parsed[1] };
|
|
77
|
+
}
|
|
78
|
+
mapToDriverValue(value) {
|
|
79
|
+
return `point(${value.x} ${value.y})`;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
function geometry(name, config) {
|
|
83
|
+
if (!config?.mode || config.mode === "tuple") {
|
|
84
|
+
return new PgGeometryBuilder(name);
|
|
85
|
+
}
|
|
86
|
+
return new PgGeometryObjectBuilder(name);
|
|
87
|
+
}
|
|
88
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
89
|
+
0 && (module.exports = {
|
|
90
|
+
PgGeometry,
|
|
91
|
+
PgGeometryBuilder,
|
|
92
|
+
PgGeometryObject,
|
|
93
|
+
PgGeometryObjectBuilder,
|
|
94
|
+
geometry
|
|
95
|
+
});
|
|
96
|
+
//# sourceMappingURL=geometry.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/pg-core/columns/postgis_extension/geometry.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyPgTable } from '~/pg-core/table.ts';\n\nimport type { Equal } from '~/utils.ts';\nimport { PgColumn, PgColumnBuilder } from '../common.ts';\nimport { parseEWKB } from './utils.ts';\n\nexport type PgGeometryBuilderInitial<TName extends string> = PgGeometryBuilder<{\n\tname: TName;\n\tdataType: 'array';\n\tcolumnType: 'PgGeometry';\n\tdata: [number, number];\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class PgGeometryBuilder<T extends ColumnBuilderBaseConfig<'array', 'PgGeometry'>> extends PgColumnBuilder<T> {\n\tstatic readonly [entityKind]: string = 'PgGeometryBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'array', 'PgGeometry');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgGeometry<MakeColumnConfig<T, TTableName>> {\n\t\treturn new PgGeometry<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class PgGeometry<T extends ColumnBaseConfig<'array', 'PgGeometry'>> extends PgColumn<T> {\n\tstatic readonly [entityKind]: string = 'PgGeometry';\n\n\tgetSQLType(): string {\n\t\treturn 'geometry(point)';\n\t}\n\n\toverride mapFromDriverValue(value: string): [number, number] {\n\t\treturn parseEWKB(value);\n\t}\n\n\toverride mapToDriverValue(value: [number, number]): string {\n\t\treturn `point(${value[0]} ${value[1]})`;\n\t}\n}\n\nexport type PgGeometryObjectBuilderInitial<TName extends string> = PgGeometryObjectBuilder<{\n\tname: TName;\n\tdataType: 'json';\n\tcolumnType: 'PgGeometryObject';\n\tdata: { x: number; y: number };\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class PgGeometryObjectBuilder<T extends ColumnBuilderBaseConfig<'json', 'PgGeometryObject'>>\n\textends PgColumnBuilder<T>\n{\n\tstatic readonly [entityKind]: string = 'PgGeometryObjectBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'json', 'PgGeometryObject');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgGeometryObject<MakeColumnConfig<T, TTableName>> {\n\t\treturn new PgGeometryObject<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class PgGeometryObject<T extends ColumnBaseConfig<'json', 'PgGeometryObject'>> extends PgColumn<T> {\n\tstatic readonly [entityKind]: string = 'PgGeometryObject';\n\n\tgetSQLType(): string {\n\t\treturn 'geometry(point)';\n\t}\n\n\toverride mapFromDriverValue(value: string): { x: number; y: number } {\n\t\tconst parsed = parseEWKB(value);\n\t\treturn { x: parsed[0], y: parsed[1] };\n\t}\n\n\toverride mapToDriverValue(value: { x: number; y: number }): string {\n\t\treturn `point(${value.x} ${value.y})`;\n\t}\n}\n\ninterface PgGeometryConfig<T extends 'tuple' | 'xy' = 'tuple' | 'xy'> {\n\tmode?: T;\n\ttype?: 'point' | (string & {});\n\tsrid?: number;\n}\n\nexport function geometry<TName extends string, TMode extends PgGeometryConfig['mode'] & {}>(\n\tname: TName,\n\tconfig?: PgGeometryConfig<TMode>,\n): Equal<TMode, 'xy'> extends true ? PgGeometryObjectBuilderInitial<TName>\n\t: PgGeometryBuilderInitial<TName>;\nexport function geometry(name: string, config?: PgGeometryConfig) {\n\tif (!config?.mode || config.mode === 'tuple') {\n\t\treturn new PgGeometryBuilder(name);\n\t}\n\treturn new PgGeometryObjectBuilder(name);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAI3B,oBAA0C;AAC1C,mBAA0B;AAWnB,MAAM,0BAAoF,8BAAmB;AAAA,EACnH,QAAiB,wBAAU,IAAY;AAAA,EAEvC,YAAY,MAAiB;AAC5B,UAAM,MAAM,SAAS,YAAY;AAAA,EAClC;AAAA;AAAA,EAGS,MACR,OAC8C;AAC9C,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,mBAAsE,uBAAY;AAAA,EAC9F,QAAiB,wBAAU,IAAY;AAAA,EAEvC,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAAiC;AAC5D,eAAO,wBAAU,KAAK;AAAA,EACvB;AAAA,EAES,iBAAiB,OAAiC;AAC1D,WAAO,SAAS,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;AAAA,EACrC;AACD;AAWO,MAAM,gCACJ,8BACT;AAAA,EACC,QAAiB,wBAAU,IAAY;AAAA,EAEvC,YAAY,MAAiB;AAC5B,UAAM,MAAM,QAAQ,kBAAkB;AAAA,EACvC;AAAA;AAAA,EAGS,MACR,OACoD;AACpD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,yBAAiF,uBAAY;AAAA,EACzG,QAAiB,wBAAU,IAAY;AAAA,EAEvC,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAAyC;AACpE,UAAM,aAAS,wBAAU,KAAK;AAC9B,WAAO,EAAE,GAAG,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,EAAE;AAAA,EACrC;AAAA,EAES,iBAAiB,OAAyC;AAClE,WAAO,SAAS,MAAM,CAAC,IAAI,MAAM,CAAC;AAAA,EACnC;AACD;AAaO,SAAS,SAAS,MAAc,QAA2B;AACjE,MAAI,CAAC,QAAQ,QAAQ,OAAO,SAAS,SAAS;AAC7C,WAAO,IAAI,kBAAkB,IAAI;AAAA,EAClC;AACA,SAAO,IAAI,wBAAwB,IAAI;AACxC;","names":[]}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { ColumnBuilderBaseConfig } from "../../../column-builder.cjs";
|
|
2
|
+
import type { ColumnBaseConfig } from "../../../column.cjs";
|
|
3
|
+
import { entityKind } from "../../../entity.cjs";
|
|
4
|
+
import type { Equal } from "../../../utils.cjs";
|
|
5
|
+
import { PgColumn, PgColumnBuilder } from "../common.cjs";
|
|
6
|
+
export type PgGeometryBuilderInitial<TName extends string> = PgGeometryBuilder<{
|
|
7
|
+
name: TName;
|
|
8
|
+
dataType: 'array';
|
|
9
|
+
columnType: 'PgGeometry';
|
|
10
|
+
data: [number, number];
|
|
11
|
+
driverParam: string;
|
|
12
|
+
enumValues: undefined;
|
|
13
|
+
}>;
|
|
14
|
+
export declare class PgGeometryBuilder<T extends ColumnBuilderBaseConfig<'array', 'PgGeometry'>> extends PgColumnBuilder<T> {
|
|
15
|
+
static readonly [entityKind]: string;
|
|
16
|
+
constructor(name: T['name']);
|
|
17
|
+
}
|
|
18
|
+
export declare class PgGeometry<T extends ColumnBaseConfig<'array', 'PgGeometry'>> extends PgColumn<T> {
|
|
19
|
+
static readonly [entityKind]: string;
|
|
20
|
+
getSQLType(): string;
|
|
21
|
+
mapFromDriverValue(value: string): [number, number];
|
|
22
|
+
mapToDriverValue(value: [number, number]): string;
|
|
23
|
+
}
|
|
24
|
+
export type PgGeometryObjectBuilderInitial<TName extends string> = PgGeometryObjectBuilder<{
|
|
25
|
+
name: TName;
|
|
26
|
+
dataType: 'json';
|
|
27
|
+
columnType: 'PgGeometryObject';
|
|
28
|
+
data: {
|
|
29
|
+
x: number;
|
|
30
|
+
y: number;
|
|
31
|
+
};
|
|
32
|
+
driverParam: string;
|
|
33
|
+
enumValues: undefined;
|
|
34
|
+
}>;
|
|
35
|
+
export declare class PgGeometryObjectBuilder<T extends ColumnBuilderBaseConfig<'json', 'PgGeometryObject'>> extends PgColumnBuilder<T> {
|
|
36
|
+
static readonly [entityKind]: string;
|
|
37
|
+
constructor(name: T['name']);
|
|
38
|
+
}
|
|
39
|
+
export declare class PgGeometryObject<T extends ColumnBaseConfig<'json', 'PgGeometryObject'>> extends PgColumn<T> {
|
|
40
|
+
static readonly [entityKind]: string;
|
|
41
|
+
getSQLType(): string;
|
|
42
|
+
mapFromDriverValue(value: string): {
|
|
43
|
+
x: number;
|
|
44
|
+
y: number;
|
|
45
|
+
};
|
|
46
|
+
mapToDriverValue(value: {
|
|
47
|
+
x: number;
|
|
48
|
+
y: number;
|
|
49
|
+
}): string;
|
|
50
|
+
}
|
|
51
|
+
interface PgGeometryConfig<T extends 'tuple' | 'xy' = 'tuple' | 'xy'> {
|
|
52
|
+
mode?: T;
|
|
53
|
+
type?: 'point' | (string & {});
|
|
54
|
+
srid?: number;
|
|
55
|
+
}
|
|
56
|
+
export declare function geometry<TName extends string, TMode extends PgGeometryConfig['mode'] & {}>(name: TName, config?: PgGeometryConfig<TMode>): Equal<TMode, 'xy'> extends true ? PgGeometryObjectBuilderInitial<TName> : PgGeometryBuilderInitial<TName>;
|
|
57
|
+
export {};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { ColumnBuilderBaseConfig } from "../../../column-builder.js";
|
|
2
|
+
import type { ColumnBaseConfig } from "../../../column.js";
|
|
3
|
+
import { entityKind } from "../../../entity.js";
|
|
4
|
+
import type { Equal } from "../../../utils.js";
|
|
5
|
+
import { PgColumn, PgColumnBuilder } from "../common.js";
|
|
6
|
+
export type PgGeometryBuilderInitial<TName extends string> = PgGeometryBuilder<{
|
|
7
|
+
name: TName;
|
|
8
|
+
dataType: 'array';
|
|
9
|
+
columnType: 'PgGeometry';
|
|
10
|
+
data: [number, number];
|
|
11
|
+
driverParam: string;
|
|
12
|
+
enumValues: undefined;
|
|
13
|
+
}>;
|
|
14
|
+
export declare class PgGeometryBuilder<T extends ColumnBuilderBaseConfig<'array', 'PgGeometry'>> extends PgColumnBuilder<T> {
|
|
15
|
+
static readonly [entityKind]: string;
|
|
16
|
+
constructor(name: T['name']);
|
|
17
|
+
}
|
|
18
|
+
export declare class PgGeometry<T extends ColumnBaseConfig<'array', 'PgGeometry'>> extends PgColumn<T> {
|
|
19
|
+
static readonly [entityKind]: string;
|
|
20
|
+
getSQLType(): string;
|
|
21
|
+
mapFromDriverValue(value: string): [number, number];
|
|
22
|
+
mapToDriverValue(value: [number, number]): string;
|
|
23
|
+
}
|
|
24
|
+
export type PgGeometryObjectBuilderInitial<TName extends string> = PgGeometryObjectBuilder<{
|
|
25
|
+
name: TName;
|
|
26
|
+
dataType: 'json';
|
|
27
|
+
columnType: 'PgGeometryObject';
|
|
28
|
+
data: {
|
|
29
|
+
x: number;
|
|
30
|
+
y: number;
|
|
31
|
+
};
|
|
32
|
+
driverParam: string;
|
|
33
|
+
enumValues: undefined;
|
|
34
|
+
}>;
|
|
35
|
+
export declare class PgGeometryObjectBuilder<T extends ColumnBuilderBaseConfig<'json', 'PgGeometryObject'>> extends PgColumnBuilder<T> {
|
|
36
|
+
static readonly [entityKind]: string;
|
|
37
|
+
constructor(name: T['name']);
|
|
38
|
+
}
|
|
39
|
+
export declare class PgGeometryObject<T extends ColumnBaseConfig<'json', 'PgGeometryObject'>> extends PgColumn<T> {
|
|
40
|
+
static readonly [entityKind]: string;
|
|
41
|
+
getSQLType(): string;
|
|
42
|
+
mapFromDriverValue(value: string): {
|
|
43
|
+
x: number;
|
|
44
|
+
y: number;
|
|
45
|
+
};
|
|
46
|
+
mapToDriverValue(value: {
|
|
47
|
+
x: number;
|
|
48
|
+
y: number;
|
|
49
|
+
}): string;
|
|
50
|
+
}
|
|
51
|
+
interface PgGeometryConfig<T extends 'tuple' | 'xy' = 'tuple' | 'xy'> {
|
|
52
|
+
mode?: T;
|
|
53
|
+
type?: 'point' | (string & {});
|
|
54
|
+
srid?: number;
|
|
55
|
+
}
|
|
56
|
+
export declare function geometry<TName extends string, TMode extends PgGeometryConfig['mode'] & {}>(name: TName, config?: PgGeometryConfig<TMode>): Equal<TMode, 'xy'> extends true ? PgGeometryObjectBuilderInitial<TName> : PgGeometryBuilderInitial<TName>;
|
|
57
|
+
export {};
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { entityKind } from "../../../entity.js";
|
|
2
|
+
import { PgColumn, PgColumnBuilder } from "../common.js";
|
|
3
|
+
import { parseEWKB } from "./utils.js";
|
|
4
|
+
class PgGeometryBuilder extends PgColumnBuilder {
|
|
5
|
+
static [entityKind] = "PgGeometryBuilder";
|
|
6
|
+
constructor(name) {
|
|
7
|
+
super(name, "array", "PgGeometry");
|
|
8
|
+
}
|
|
9
|
+
/** @internal */
|
|
10
|
+
build(table) {
|
|
11
|
+
return new PgGeometry(
|
|
12
|
+
table,
|
|
13
|
+
this.config
|
|
14
|
+
);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
class PgGeometry extends PgColumn {
|
|
18
|
+
static [entityKind] = "PgGeometry";
|
|
19
|
+
getSQLType() {
|
|
20
|
+
return "geometry(point)";
|
|
21
|
+
}
|
|
22
|
+
mapFromDriverValue(value) {
|
|
23
|
+
return parseEWKB(value);
|
|
24
|
+
}
|
|
25
|
+
mapToDriverValue(value) {
|
|
26
|
+
return `point(${value[0]} ${value[1]})`;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
class PgGeometryObjectBuilder extends PgColumnBuilder {
|
|
30
|
+
static [entityKind] = "PgGeometryObjectBuilder";
|
|
31
|
+
constructor(name) {
|
|
32
|
+
super(name, "json", "PgGeometryObject");
|
|
33
|
+
}
|
|
34
|
+
/** @internal */
|
|
35
|
+
build(table) {
|
|
36
|
+
return new PgGeometryObject(
|
|
37
|
+
table,
|
|
38
|
+
this.config
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
class PgGeometryObject extends PgColumn {
|
|
43
|
+
static [entityKind] = "PgGeometryObject";
|
|
44
|
+
getSQLType() {
|
|
45
|
+
return "geometry(point)";
|
|
46
|
+
}
|
|
47
|
+
mapFromDriverValue(value) {
|
|
48
|
+
const parsed = parseEWKB(value);
|
|
49
|
+
return { x: parsed[0], y: parsed[1] };
|
|
50
|
+
}
|
|
51
|
+
mapToDriverValue(value) {
|
|
52
|
+
return `point(${value.x} ${value.y})`;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
function geometry(name, config) {
|
|
56
|
+
if (!config?.mode || config.mode === "tuple") {
|
|
57
|
+
return new PgGeometryBuilder(name);
|
|
58
|
+
}
|
|
59
|
+
return new PgGeometryObjectBuilder(name);
|
|
60
|
+
}
|
|
61
|
+
export {
|
|
62
|
+
PgGeometry,
|
|
63
|
+
PgGeometryBuilder,
|
|
64
|
+
PgGeometryObject,
|
|
65
|
+
PgGeometryObjectBuilder,
|
|
66
|
+
geometry
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=geometry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/pg-core/columns/postgis_extension/geometry.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyPgTable } from '~/pg-core/table.ts';\n\nimport type { Equal } from '~/utils.ts';\nimport { PgColumn, PgColumnBuilder } from '../common.ts';\nimport { parseEWKB } from './utils.ts';\n\nexport type PgGeometryBuilderInitial<TName extends string> = PgGeometryBuilder<{\n\tname: TName;\n\tdataType: 'array';\n\tcolumnType: 'PgGeometry';\n\tdata: [number, number];\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class PgGeometryBuilder<T extends ColumnBuilderBaseConfig<'array', 'PgGeometry'>> extends PgColumnBuilder<T> {\n\tstatic readonly [entityKind]: string = 'PgGeometryBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'array', 'PgGeometry');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgGeometry<MakeColumnConfig<T, TTableName>> {\n\t\treturn new PgGeometry<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class PgGeometry<T extends ColumnBaseConfig<'array', 'PgGeometry'>> extends PgColumn<T> {\n\tstatic readonly [entityKind]: string = 'PgGeometry';\n\n\tgetSQLType(): string {\n\t\treturn 'geometry(point)';\n\t}\n\n\toverride mapFromDriverValue(value: string): [number, number] {\n\t\treturn parseEWKB(value);\n\t}\n\n\toverride mapToDriverValue(value: [number, number]): string {\n\t\treturn `point(${value[0]} ${value[1]})`;\n\t}\n}\n\nexport type PgGeometryObjectBuilderInitial<TName extends string> = PgGeometryObjectBuilder<{\n\tname: TName;\n\tdataType: 'json';\n\tcolumnType: 'PgGeometryObject';\n\tdata: { x: number; y: number };\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class PgGeometryObjectBuilder<T extends ColumnBuilderBaseConfig<'json', 'PgGeometryObject'>>\n\textends PgColumnBuilder<T>\n{\n\tstatic readonly [entityKind]: string = 'PgGeometryObjectBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'json', 'PgGeometryObject');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgGeometryObject<MakeColumnConfig<T, TTableName>> {\n\t\treturn new PgGeometryObject<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class PgGeometryObject<T extends ColumnBaseConfig<'json', 'PgGeometryObject'>> extends PgColumn<T> {\n\tstatic readonly [entityKind]: string = 'PgGeometryObject';\n\n\tgetSQLType(): string {\n\t\treturn 'geometry(point)';\n\t}\n\n\toverride mapFromDriverValue(value: string): { x: number; y: number } {\n\t\tconst parsed = parseEWKB(value);\n\t\treturn { x: parsed[0], y: parsed[1] };\n\t}\n\n\toverride mapToDriverValue(value: { x: number; y: number }): string {\n\t\treturn `point(${value.x} ${value.y})`;\n\t}\n}\n\ninterface PgGeometryConfig<T extends 'tuple' | 'xy' = 'tuple' | 'xy'> {\n\tmode?: T;\n\ttype?: 'point' | (string & {});\n\tsrid?: number;\n}\n\nexport function geometry<TName extends string, TMode extends PgGeometryConfig['mode'] & {}>(\n\tname: TName,\n\tconfig?: PgGeometryConfig<TMode>,\n): Equal<TMode, 'xy'> extends true ? PgGeometryObjectBuilderInitial<TName>\n\t: PgGeometryBuilderInitial<TName>;\nexport function geometry(name: string, config?: PgGeometryConfig) {\n\tif (!config?.mode || config.mode === 'tuple') {\n\t\treturn new PgGeometryBuilder(name);\n\t}\n\treturn new PgGeometryObjectBuilder(name);\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAI3B,SAAS,UAAU,uBAAuB;AAC1C,SAAS,iBAAiB;AAWnB,MAAM,0BAAoF,gBAAmB;AAAA,EACnH,QAAiB,UAAU,IAAY;AAAA,EAEvC,YAAY,MAAiB;AAC5B,UAAM,MAAM,SAAS,YAAY;AAAA,EAClC;AAAA;AAAA,EAGS,MACR,OAC8C;AAC9C,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,mBAAsE,SAAY;AAAA,EAC9F,QAAiB,UAAU,IAAY;AAAA,EAEvC,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAAiC;AAC5D,WAAO,UAAU,KAAK;AAAA,EACvB;AAAA,EAES,iBAAiB,OAAiC;AAC1D,WAAO,SAAS,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;AAAA,EACrC;AACD;AAWO,MAAM,gCACJ,gBACT;AAAA,EACC,QAAiB,UAAU,IAAY;AAAA,EAEvC,YAAY,MAAiB;AAC5B,UAAM,MAAM,QAAQ,kBAAkB;AAAA,EACvC;AAAA;AAAA,EAGS,MACR,OACoD;AACpD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,yBAAiF,SAAY;AAAA,EACzG,QAAiB,UAAU,IAAY;AAAA,EAEvC,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAAyC;AACpE,UAAM,SAAS,UAAU,KAAK;AAC9B,WAAO,EAAE,GAAG,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,EAAE;AAAA,EACrC;AAAA,EAES,iBAAiB,OAAyC;AAClE,WAAO,SAAS,MAAM,CAAC,IAAI,MAAM,CAAC;AAAA,EACnC;AACD;AAaO,SAAS,SAAS,MAAc,QAA2B;AACjE,MAAI,CAAC,QAAQ,QAAQ,OAAO,SAAS,SAAS;AAC7C,WAAO,IAAI,kBAAkB,IAAI;AAAA,EAClC;AACA,SAAO,IAAI,wBAAwB,IAAI;AACxC;","names":[]}
|
|
@@ -0,0 +1,65 @@
|
|
|
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
|
+
var utils_exports = {};
|
|
20
|
+
__export(utils_exports, {
|
|
21
|
+
parseEWKB: () => parseEWKB
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(utils_exports);
|
|
24
|
+
function hexToBytes(hex) {
|
|
25
|
+
const bytes = [];
|
|
26
|
+
for (let c = 0; c < hex.length; c += 2) {
|
|
27
|
+
bytes.push(Number.parseInt(hex.slice(c, c + 2), 16));
|
|
28
|
+
}
|
|
29
|
+
return new Uint8Array(bytes);
|
|
30
|
+
}
|
|
31
|
+
function bytesToFloat64(bytes, offset) {
|
|
32
|
+
const buffer = new ArrayBuffer(8);
|
|
33
|
+
const view = new DataView(buffer);
|
|
34
|
+
for (let i = 0; i < 8; i++) {
|
|
35
|
+
view.setUint8(i, bytes[offset + i]);
|
|
36
|
+
}
|
|
37
|
+
return view.getFloat64(0, true);
|
|
38
|
+
}
|
|
39
|
+
function parseEWKB(hex) {
|
|
40
|
+
const bytes = hexToBytes(hex);
|
|
41
|
+
let offset = 0;
|
|
42
|
+
const byteOrder = bytes[offset];
|
|
43
|
+
offset += 1;
|
|
44
|
+
const view = new DataView(bytes.buffer);
|
|
45
|
+
const geomType = view.getUint32(offset, byteOrder === 1);
|
|
46
|
+
offset += 4;
|
|
47
|
+
let _srid;
|
|
48
|
+
if (geomType & 536870912) {
|
|
49
|
+
_srid = view.getUint32(offset, byteOrder === 1);
|
|
50
|
+
offset += 4;
|
|
51
|
+
}
|
|
52
|
+
if ((geomType & 65535) === 1) {
|
|
53
|
+
const x = bytesToFloat64(bytes, offset);
|
|
54
|
+
offset += 8;
|
|
55
|
+
const y = bytesToFloat64(bytes, offset);
|
|
56
|
+
offset += 8;
|
|
57
|
+
return [x, y];
|
|
58
|
+
}
|
|
59
|
+
throw new Error("Unsupported geometry type");
|
|
60
|
+
}
|
|
61
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
62
|
+
0 && (module.exports = {
|
|
63
|
+
parseEWKB
|
|
64
|
+
});
|
|
65
|
+
//# sourceMappingURL=utils.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/pg-core/columns/postgis_extension/utils.ts"],"sourcesContent":["function hexToBytes(hex: string): Uint8Array {\n\tconst bytes: number[] = [];\n\tfor (let c = 0; c < hex.length; c += 2) {\n\t\tbytes.push(Number.parseInt(hex.slice(c, c + 2), 16));\n\t}\n\treturn new Uint8Array(bytes);\n}\n\nfunction bytesToFloat64(bytes: Uint8Array, offset: number): number {\n\tconst buffer = new ArrayBuffer(8);\n\tconst view = new DataView(buffer);\n\tfor (let i = 0; i < 8; i++) {\n\t\tview.setUint8(i, bytes[offset + i]!);\n\t}\n\treturn view.getFloat64(0, true);\n}\n\nexport function parseEWKB(hex: string): [number, number] {\n\tconst bytes = hexToBytes(hex);\n\n\tlet offset = 0;\n\n\t// Byte order: 1 is little-endian, 0 is big-endian\n\tconst byteOrder = bytes[offset];\n\toffset += 1;\n\n\tconst view = new DataView(bytes.buffer);\n\tconst geomType = view.getUint32(offset, byteOrder === 1);\n\toffset += 4;\n\n\tlet _srid: number | undefined;\n\tif (geomType & 0x20000000) { // SRID flag\n\t\t_srid = view.getUint32(offset, byteOrder === 1);\n\t\toffset += 4;\n\t}\n\n\tif ((geomType & 0xFFFF) === 1) {\n\t\tconst x = bytesToFloat64(bytes, offset);\n\t\toffset += 8;\n\t\tconst y = bytesToFloat64(bytes, offset);\n\t\toffset += 8;\n\n\t\treturn [x, y];\n\t}\n\n\tthrow new Error('Unsupported geometry type');\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAS,WAAW,KAAyB;AAC5C,QAAM,QAAkB,CAAC;AACzB,WAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK,GAAG;AACvC,UAAM,KAAK,OAAO,SAAS,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAAA,EACpD;AACA,SAAO,IAAI,WAAW,KAAK;AAC5B;AAEA,SAAS,eAAe,OAAmB,QAAwB;AAClE,QAAM,SAAS,IAAI,YAAY,CAAC;AAChC,QAAM,OAAO,IAAI,SAAS,MAAM;AAChC,WAAS,IAAI,GAAG,IAAI,GAAG,KAAK;AAC3B,SAAK,SAAS,GAAG,MAAM,SAAS,CAAC,CAAE;AAAA,EACpC;AACA,SAAO,KAAK,WAAW,GAAG,IAAI;AAC/B;AAEO,SAAS,UAAU,KAA+B;AACxD,QAAM,QAAQ,WAAW,GAAG;AAE5B,MAAI,SAAS;AAGb,QAAM,YAAY,MAAM,MAAM;AAC9B,YAAU;AAEV,QAAM,OAAO,IAAI,SAAS,MAAM,MAAM;AACtC,QAAM,WAAW,KAAK,UAAU,QAAQ,cAAc,CAAC;AACvD,YAAU;AAEV,MAAI;AACJ,MAAI,WAAW,WAAY;AAC1B,YAAQ,KAAK,UAAU,QAAQ,cAAc,CAAC;AAC9C,cAAU;AAAA,EACX;AAEA,OAAK,WAAW,WAAY,GAAG;AAC9B,UAAM,IAAI,eAAe,OAAO,MAAM;AACtC,cAAU;AACV,UAAM,IAAI,eAAe,OAAO,MAAM;AACtC,cAAU;AAEV,WAAO,CAAC,GAAG,CAAC;AAAA,EACb;AAEA,QAAM,IAAI,MAAM,2BAA2B;AAC5C;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function parseEWKB(hex: string): [number, number];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function parseEWKB(hex: string): [number, number];
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
function hexToBytes(hex) {
|
|
2
|
+
const bytes = [];
|
|
3
|
+
for (let c = 0; c < hex.length; c += 2) {
|
|
4
|
+
bytes.push(Number.parseInt(hex.slice(c, c + 2), 16));
|
|
5
|
+
}
|
|
6
|
+
return new Uint8Array(bytes);
|
|
7
|
+
}
|
|
8
|
+
function bytesToFloat64(bytes, offset) {
|
|
9
|
+
const buffer = new ArrayBuffer(8);
|
|
10
|
+
const view = new DataView(buffer);
|
|
11
|
+
for (let i = 0; i < 8; i++) {
|
|
12
|
+
view.setUint8(i, bytes[offset + i]);
|
|
13
|
+
}
|
|
14
|
+
return view.getFloat64(0, true);
|
|
15
|
+
}
|
|
16
|
+
function parseEWKB(hex) {
|
|
17
|
+
const bytes = hexToBytes(hex);
|
|
18
|
+
let offset = 0;
|
|
19
|
+
const byteOrder = bytes[offset];
|
|
20
|
+
offset += 1;
|
|
21
|
+
const view = new DataView(bytes.buffer);
|
|
22
|
+
const geomType = view.getUint32(offset, byteOrder === 1);
|
|
23
|
+
offset += 4;
|
|
24
|
+
let _srid;
|
|
25
|
+
if (geomType & 536870912) {
|
|
26
|
+
_srid = view.getUint32(offset, byteOrder === 1);
|
|
27
|
+
offset += 4;
|
|
28
|
+
}
|
|
29
|
+
if ((geomType & 65535) === 1) {
|
|
30
|
+
const x = bytesToFloat64(bytes, offset);
|
|
31
|
+
offset += 8;
|
|
32
|
+
const y = bytesToFloat64(bytes, offset);
|
|
33
|
+
offset += 8;
|
|
34
|
+
return [x, y];
|
|
35
|
+
}
|
|
36
|
+
throw new Error("Unsupported geometry type");
|
|
37
|
+
}
|
|
38
|
+
export {
|
|
39
|
+
parseEWKB
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/pg-core/columns/postgis_extension/utils.ts"],"sourcesContent":["function hexToBytes(hex: string): Uint8Array {\n\tconst bytes: number[] = [];\n\tfor (let c = 0; c < hex.length; c += 2) {\n\t\tbytes.push(Number.parseInt(hex.slice(c, c + 2), 16));\n\t}\n\treturn new Uint8Array(bytes);\n}\n\nfunction bytesToFloat64(bytes: Uint8Array, offset: number): number {\n\tconst buffer = new ArrayBuffer(8);\n\tconst view = new DataView(buffer);\n\tfor (let i = 0; i < 8; i++) {\n\t\tview.setUint8(i, bytes[offset + i]!);\n\t}\n\treturn view.getFloat64(0, true);\n}\n\nexport function parseEWKB(hex: string): [number, number] {\n\tconst bytes = hexToBytes(hex);\n\n\tlet offset = 0;\n\n\t// Byte order: 1 is little-endian, 0 is big-endian\n\tconst byteOrder = bytes[offset];\n\toffset += 1;\n\n\tconst view = new DataView(bytes.buffer);\n\tconst geomType = view.getUint32(offset, byteOrder === 1);\n\toffset += 4;\n\n\tlet _srid: number | undefined;\n\tif (geomType & 0x20000000) { // SRID flag\n\t\t_srid = view.getUint32(offset, byteOrder === 1);\n\t\toffset += 4;\n\t}\n\n\tif ((geomType & 0xFFFF) === 1) {\n\t\tconst x = bytesToFloat64(bytes, offset);\n\t\toffset += 8;\n\t\tconst y = bytesToFloat64(bytes, offset);\n\t\toffset += 8;\n\n\t\treturn [x, y];\n\t}\n\n\tthrow new Error('Unsupported geometry type');\n}\n"],"mappings":"AAAA,SAAS,WAAW,KAAyB;AAC5C,QAAM,QAAkB,CAAC;AACzB,WAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK,GAAG;AACvC,UAAM,KAAK,OAAO,SAAS,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAAA,EACpD;AACA,SAAO,IAAI,WAAW,KAAK;AAC5B;AAEA,SAAS,eAAe,OAAmB,QAAwB;AAClE,QAAM,SAAS,IAAI,YAAY,CAAC;AAChC,QAAM,OAAO,IAAI,SAAS,MAAM;AAChC,WAAS,IAAI,GAAG,IAAI,GAAG,KAAK;AAC3B,SAAK,SAAS,GAAG,MAAM,SAAS,CAAC,CAAE;AAAA,EACpC;AACA,SAAO,KAAK,WAAW,GAAG,IAAI;AAC/B;AAEO,SAAS,UAAU,KAA+B;AACxD,QAAM,QAAQ,WAAW,GAAG;AAE5B,MAAI,SAAS;AAGb,QAAM,YAAY,MAAM,MAAM;AAC9B,YAAU;AAEV,QAAM,OAAO,IAAI,SAAS,MAAM,MAAM;AACtC,QAAM,WAAW,KAAK,UAAU,QAAQ,cAAc,CAAC;AACvD,YAAU;AAEV,MAAI;AACJ,MAAI,WAAW,WAAY;AAC1B,YAAQ,KAAK,UAAU,QAAQ,cAAc,CAAC;AAC9C,cAAU;AAAA,EACX;AAEA,OAAK,WAAW,WAAY,GAAG;AAC9B,UAAM,IAAI,eAAe,OAAO,MAAM;AACtC,cAAU;AACV,UAAM,IAAI,eAAe,OAAO,MAAM;AACtC,cAAU;AAEV,WAAO,CAAC,GAAG,CAAC;AAAA,EACb;AAEA,QAAM,IAAI,MAAM,2BAA2B;AAC5C;","names":[]}
|
|
@@ -0,0 +1,58 @@
|
|
|
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
|
+
var bit_exports = {};
|
|
20
|
+
__export(bit_exports, {
|
|
21
|
+
PgBinaryVector: () => PgBinaryVector,
|
|
22
|
+
PgBinaryVectorBuilder: () => PgBinaryVectorBuilder,
|
|
23
|
+
bit: () => bit
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(bit_exports);
|
|
26
|
+
var import_entity = require("../../../entity.cjs");
|
|
27
|
+
var import_common = require("../common.cjs");
|
|
28
|
+
class PgBinaryVectorBuilder extends import_common.PgColumnBuilder {
|
|
29
|
+
static [import_entity.entityKind] = "PgBinaryVectorBuilder";
|
|
30
|
+
constructor(name, config) {
|
|
31
|
+
super(name, "string", "PgBinaryVector");
|
|
32
|
+
this.config.dimensions = config.dimensions;
|
|
33
|
+
}
|
|
34
|
+
/** @internal */
|
|
35
|
+
build(table) {
|
|
36
|
+
return new PgBinaryVector(
|
|
37
|
+
table,
|
|
38
|
+
this.config
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
class PgBinaryVector extends import_common.PgColumn {
|
|
43
|
+
static [import_entity.entityKind] = "PgBinaryVector";
|
|
44
|
+
dimensions = this.config.dimensions;
|
|
45
|
+
getSQLType() {
|
|
46
|
+
return `bit(${this.dimensions})`;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
function bit(name, config) {
|
|
50
|
+
return new PgBinaryVectorBuilder(name, config);
|
|
51
|
+
}
|
|
52
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
53
|
+
0 && (module.exports = {
|
|
54
|
+
PgBinaryVector,
|
|
55
|
+
PgBinaryVectorBuilder,
|
|
56
|
+
bit
|
|
57
|
+
});
|
|
58
|
+
//# sourceMappingURL=bit.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/pg-core/columns/vector_extension/bit.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyPgTable } from '~/pg-core/table.ts';\nimport { PgColumn, PgColumnBuilder } from '../common.ts';\n\nexport type PgBinaryVectorBuilderInitial<TName extends string> = PgBinaryVectorBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'PgBinaryVector';\n\tdata: string;\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class PgBinaryVectorBuilder<T extends ColumnBuilderBaseConfig<'string', 'PgBinaryVector'>>\n\textends PgColumnBuilder<\n\t\tT,\n\t\t{ dimensions: number | undefined }\n\t>\n{\n\tstatic readonly [entityKind]: string = 'PgBinaryVectorBuilder';\n\n\tconstructor(name: string, config: PgBinaryVectorConfig) {\n\t\tsuper(name, 'string', 'PgBinaryVector');\n\t\tthis.config.dimensions = config.dimensions;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgBinaryVector<MakeColumnConfig<T, TTableName>> {\n\t\treturn new PgBinaryVector<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class PgBinaryVector<T extends ColumnBaseConfig<'string', 'PgBinaryVector'>>\n\textends PgColumn<T, { dimensions: number | undefined }>\n{\n\tstatic readonly [entityKind]: string = 'PgBinaryVector';\n\n\treadonly dimensions = this.config.dimensions;\n\n\tgetSQLType(): string {\n\t\treturn `bit(${this.dimensions})`;\n\t}\n}\n\nexport interface PgBinaryVectorConfig {\n\tdimensions: number;\n}\n\nexport function bit<TName extends string>(\n\tname: TName,\n\tconfig: PgBinaryVectorConfig,\n): PgBinaryVectorBuilderInitial<TName> {\n\treturn new PgBinaryVectorBuilder(name, config);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAE3B,oBAA0C;AAWnC,MAAM,8BACJ,8BAIT;AAAA,EACC,QAAiB,wBAAU,IAAY;AAAA,EAEvC,YAAY,MAAc,QAA8B;AACvD,UAAM,MAAM,UAAU,gBAAgB;AACtC,SAAK,OAAO,aAAa,OAAO;AAAA,EACjC;AAAA;AAAA,EAGS,MACR,OACkD;AAClD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,uBACJ,uBACT;AAAA,EACC,QAAiB,wBAAU,IAAY;AAAA,EAE9B,aAAa,KAAK,OAAO;AAAA,EAElC,aAAqB;AACpB,WAAO,OAAO,KAAK,UAAU;AAAA,EAC9B;AACD;AAMO,SAAS,IACf,MACA,QACsC;AACtC,SAAO,IAAI,sBAAsB,MAAM,MAAM;AAC9C;","names":[]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { ColumnBuilderBaseConfig } from "../../../column-builder.cjs";
|
|
2
|
+
import type { ColumnBaseConfig } from "../../../column.cjs";
|
|
3
|
+
import { entityKind } from "../../../entity.cjs";
|
|
4
|
+
import { PgColumn, PgColumnBuilder } from "../common.cjs";
|
|
5
|
+
export type PgBinaryVectorBuilderInitial<TName extends string> = PgBinaryVectorBuilder<{
|
|
6
|
+
name: TName;
|
|
7
|
+
dataType: 'string';
|
|
8
|
+
columnType: 'PgBinaryVector';
|
|
9
|
+
data: string;
|
|
10
|
+
driverParam: string;
|
|
11
|
+
enumValues: undefined;
|
|
12
|
+
}>;
|
|
13
|
+
export declare class PgBinaryVectorBuilder<T extends ColumnBuilderBaseConfig<'string', 'PgBinaryVector'>> extends PgColumnBuilder<T, {
|
|
14
|
+
dimensions: number | undefined;
|
|
15
|
+
}> {
|
|
16
|
+
static readonly [entityKind]: string;
|
|
17
|
+
constructor(name: string, config: PgBinaryVectorConfig);
|
|
18
|
+
}
|
|
19
|
+
export declare class PgBinaryVector<T extends ColumnBaseConfig<'string', 'PgBinaryVector'>> extends PgColumn<T, {
|
|
20
|
+
dimensions: number | undefined;
|
|
21
|
+
}> {
|
|
22
|
+
static readonly [entityKind]: string;
|
|
23
|
+
readonly dimensions: number | undefined;
|
|
24
|
+
getSQLType(): string;
|
|
25
|
+
}
|
|
26
|
+
export interface PgBinaryVectorConfig {
|
|
27
|
+
dimensions: number;
|
|
28
|
+
}
|
|
29
|
+
export declare function bit<TName extends string>(name: TName, config: PgBinaryVectorConfig): PgBinaryVectorBuilderInitial<TName>;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { ColumnBuilderBaseConfig } from "../../../column-builder.js";
|
|
2
|
+
import type { ColumnBaseConfig } from "../../../column.js";
|
|
3
|
+
import { entityKind } from "../../../entity.js";
|
|
4
|
+
import { PgColumn, PgColumnBuilder } from "../common.js";
|
|
5
|
+
export type PgBinaryVectorBuilderInitial<TName extends string> = PgBinaryVectorBuilder<{
|
|
6
|
+
name: TName;
|
|
7
|
+
dataType: 'string';
|
|
8
|
+
columnType: 'PgBinaryVector';
|
|
9
|
+
data: string;
|
|
10
|
+
driverParam: string;
|
|
11
|
+
enumValues: undefined;
|
|
12
|
+
}>;
|
|
13
|
+
export declare class PgBinaryVectorBuilder<T extends ColumnBuilderBaseConfig<'string', 'PgBinaryVector'>> extends PgColumnBuilder<T, {
|
|
14
|
+
dimensions: number | undefined;
|
|
15
|
+
}> {
|
|
16
|
+
static readonly [entityKind]: string;
|
|
17
|
+
constructor(name: string, config: PgBinaryVectorConfig);
|
|
18
|
+
}
|
|
19
|
+
export declare class PgBinaryVector<T extends ColumnBaseConfig<'string', 'PgBinaryVector'>> extends PgColumn<T, {
|
|
20
|
+
dimensions: number | undefined;
|
|
21
|
+
}> {
|
|
22
|
+
static readonly [entityKind]: string;
|
|
23
|
+
readonly dimensions: number | undefined;
|
|
24
|
+
getSQLType(): string;
|
|
25
|
+
}
|
|
26
|
+
export interface PgBinaryVectorConfig {
|
|
27
|
+
dimensions: number;
|
|
28
|
+
}
|
|
29
|
+
export declare function bit<TName extends string>(name: TName, config: PgBinaryVectorConfig): PgBinaryVectorBuilderInitial<TName>;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { entityKind } from "../../../entity.js";
|
|
2
|
+
import { PgColumn, PgColumnBuilder } from "../common.js";
|
|
3
|
+
class PgBinaryVectorBuilder extends PgColumnBuilder {
|
|
4
|
+
static [entityKind] = "PgBinaryVectorBuilder";
|
|
5
|
+
constructor(name, config) {
|
|
6
|
+
super(name, "string", "PgBinaryVector");
|
|
7
|
+
this.config.dimensions = config.dimensions;
|
|
8
|
+
}
|
|
9
|
+
/** @internal */
|
|
10
|
+
build(table) {
|
|
11
|
+
return new PgBinaryVector(
|
|
12
|
+
table,
|
|
13
|
+
this.config
|
|
14
|
+
);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
class PgBinaryVector extends PgColumn {
|
|
18
|
+
static [entityKind] = "PgBinaryVector";
|
|
19
|
+
dimensions = this.config.dimensions;
|
|
20
|
+
getSQLType() {
|
|
21
|
+
return `bit(${this.dimensions})`;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
function bit(name, config) {
|
|
25
|
+
return new PgBinaryVectorBuilder(name, config);
|
|
26
|
+
}
|
|
27
|
+
export {
|
|
28
|
+
PgBinaryVector,
|
|
29
|
+
PgBinaryVectorBuilder,
|
|
30
|
+
bit
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=bit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/pg-core/columns/vector_extension/bit.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyPgTable } from '~/pg-core/table.ts';\nimport { PgColumn, PgColumnBuilder } from '../common.ts';\n\nexport type PgBinaryVectorBuilderInitial<TName extends string> = PgBinaryVectorBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'PgBinaryVector';\n\tdata: string;\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class PgBinaryVectorBuilder<T extends ColumnBuilderBaseConfig<'string', 'PgBinaryVector'>>\n\textends PgColumnBuilder<\n\t\tT,\n\t\t{ dimensions: number | undefined }\n\t>\n{\n\tstatic readonly [entityKind]: string = 'PgBinaryVectorBuilder';\n\n\tconstructor(name: string, config: PgBinaryVectorConfig) {\n\t\tsuper(name, 'string', 'PgBinaryVector');\n\t\tthis.config.dimensions = config.dimensions;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgBinaryVector<MakeColumnConfig<T, TTableName>> {\n\t\treturn new PgBinaryVector<MakeColumnConfig<T, TTableName>>(\n\t\t\ttable,\n\t\t\tthis.config as ColumnBuilderRuntimeConfig<any, any>,\n\t\t);\n\t}\n}\n\nexport class PgBinaryVector<T extends ColumnBaseConfig<'string', 'PgBinaryVector'>>\n\textends PgColumn<T, { dimensions: number | undefined }>\n{\n\tstatic readonly [entityKind]: string = 'PgBinaryVector';\n\n\treadonly dimensions = this.config.dimensions;\n\n\tgetSQLType(): string {\n\t\treturn `bit(${this.dimensions})`;\n\t}\n}\n\nexport interface PgBinaryVectorConfig {\n\tdimensions: number;\n}\n\nexport function bit<TName extends string>(\n\tname: TName,\n\tconfig: PgBinaryVectorConfig,\n): PgBinaryVectorBuilderInitial<TName> {\n\treturn new PgBinaryVectorBuilder(name, config);\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAE3B,SAAS,UAAU,uBAAuB;AAWnC,MAAM,8BACJ,gBAIT;AAAA,EACC,QAAiB,UAAU,IAAY;AAAA,EAEvC,YAAY,MAAc,QAA8B;AACvD,UAAM,MAAM,UAAU,gBAAgB;AACtC,SAAK,OAAO,aAAa,OAAO;AAAA,EACjC;AAAA;AAAA,EAGS,MACR,OACkD;AAClD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,uBACJ,SACT;AAAA,EACC,QAAiB,UAAU,IAAY;AAAA,EAE9B,aAAa,KAAK,OAAO;AAAA,EAElC,aAAqB;AACpB,WAAO,OAAO,KAAK,UAAU;AAAA,EAC9B;AACD;AAMO,SAAS,IACf,MACA,QACsC;AACtC,SAAO,IAAI,sBAAsB,MAAM,MAAM;AAC9C;","names":[]}
|