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.
Files changed (91) hide show
  1. package/mysql-core/dialect.cjs +18 -15
  2. package/mysql-core/dialect.cjs.map +1 -1
  3. package/mysql-core/dialect.d.cts +3 -2
  4. package/mysql-core/dialect.d.ts +3 -2
  5. package/mysql-core/dialect.js +6 -3
  6. package/mysql-core/dialect.js.map +1 -1
  7. package/package.json +97 -13
  8. package/pg-core/columns/index.cjs +14 -2
  9. package/pg-core/columns/index.cjs.map +1 -1
  10. package/pg-core/columns/index.d.cts +7 -1
  11. package/pg-core/columns/index.d.ts +7 -1
  12. package/pg-core/columns/index.js +7 -1
  13. package/pg-core/columns/index.js.map +1 -1
  14. package/pg-core/columns/line.cjs +96 -0
  15. package/pg-core/columns/line.cjs.map +1 -0
  16. package/pg-core/columns/line.d.cts +57 -0
  17. package/pg-core/columns/line.d.ts +57 -0
  18. package/pg-core/columns/line.js +68 -0
  19. package/pg-core/columns/line.js.map +1 -0
  20. package/pg-core/columns/point.cjs +102 -0
  21. package/pg-core/columns/point.cjs.map +1 -0
  22. package/pg-core/columns/point.d.cts +60 -0
  23. package/pg-core/columns/point.d.ts +60 -0
  24. package/pg-core/columns/point.js +74 -0
  25. package/pg-core/columns/point.js.map +1 -0
  26. package/pg-core/columns/postgis_extension/geometry.cjs +96 -0
  27. package/pg-core/columns/postgis_extension/geometry.cjs.map +1 -0
  28. package/pg-core/columns/postgis_extension/geometry.d.cts +57 -0
  29. package/pg-core/columns/postgis_extension/geometry.d.ts +57 -0
  30. package/pg-core/columns/postgis_extension/geometry.js +68 -0
  31. package/pg-core/columns/postgis_extension/geometry.js.map +1 -0
  32. package/pg-core/columns/postgis_extension/utils.cjs +65 -0
  33. package/pg-core/columns/postgis_extension/utils.cjs.map +1 -0
  34. package/pg-core/columns/postgis_extension/utils.d.cts +1 -0
  35. package/pg-core/columns/postgis_extension/utils.d.ts +1 -0
  36. package/pg-core/columns/postgis_extension/utils.js +41 -0
  37. package/pg-core/columns/postgis_extension/utils.js.map +1 -0
  38. package/pg-core/columns/vector_extension/bit.cjs +58 -0
  39. package/pg-core/columns/vector_extension/bit.cjs.map +1 -0
  40. package/pg-core/columns/vector_extension/bit.d.cts +29 -0
  41. package/pg-core/columns/vector_extension/bit.d.ts +29 -0
  42. package/pg-core/columns/vector_extension/bit.js +32 -0
  43. package/pg-core/columns/vector_extension/bit.js.map +1 -0
  44. package/pg-core/columns/vector_extension/halfvec.cjs +64 -0
  45. package/pg-core/columns/vector_extension/halfvec.cjs.map +1 -0
  46. package/pg-core/columns/vector_extension/halfvec.d.cts +31 -0
  47. package/pg-core/columns/vector_extension/halfvec.d.ts +31 -0
  48. package/pg-core/columns/vector_extension/halfvec.js +38 -0
  49. package/pg-core/columns/vector_extension/halfvec.js.map +1 -0
  50. package/pg-core/columns/vector_extension/sparsevec.cjs +58 -0
  51. package/pg-core/columns/vector_extension/sparsevec.cjs.map +1 -0
  52. package/pg-core/columns/vector_extension/sparsevec.d.cts +29 -0
  53. package/pg-core/columns/vector_extension/sparsevec.d.ts +29 -0
  54. package/pg-core/columns/vector_extension/sparsevec.js +32 -0
  55. package/pg-core/columns/vector_extension/sparsevec.js.map +1 -0
  56. package/pg-core/columns/{vector.cjs → vector_extension/vector.cjs} +8 -2
  57. package/pg-core/columns/vector_extension/vector.cjs.map +1 -0
  58. package/pg-core/columns/{vector.d.cts → vector_extension/vector.d.cts} +6 -4
  59. package/pg-core/columns/{vector.d.ts → vector_extension/vector.d.ts} +6 -4
  60. package/pg-core/columns/{vector.js → vector_extension/vector.js} +8 -2
  61. package/pg-core/columns/vector_extension/vector.js.map +1 -0
  62. package/sql/functions/index.cjs +3 -1
  63. package/sql/functions/index.cjs.map +1 -1
  64. package/sql/functions/index.d.cts +1 -0
  65. package/sql/functions/index.d.ts +1 -0
  66. package/sql/functions/index.js +1 -0
  67. package/sql/functions/index.js.map +1 -1
  68. package/sql/functions/vector.cjs +41 -8
  69. package/sql/functions/vector.cjs.map +1 -1
  70. package/sql/functions/vector.d.cts +54 -5
  71. package/sql/functions/vector.d.ts +54 -5
  72. package/sql/functions/vector.js +36 -6
  73. package/sql/functions/vector.js.map +1 -1
  74. package/sqlite-core/dialect.cjs +3 -2
  75. package/sqlite-core/dialect.cjs.map +1 -1
  76. package/sqlite-core/dialect.d.cts +1 -1
  77. package/sqlite-core/dialect.d.ts +1 -1
  78. package/sqlite-core/dialect.js +3 -2
  79. package/sqlite-core/dialect.js.map +1 -1
  80. package/sqlite-core/session.cjs +2 -2
  81. package/sqlite-core/session.cjs.map +1 -1
  82. package/sqlite-core/session.d.cts +1 -1
  83. package/sqlite-core/session.d.ts +1 -1
  84. package/sqlite-core/session.js +1 -1
  85. package/sqlite-core/session.js.map +1 -1
  86. package/version.cjs +1 -1
  87. package/version.d.cts +1 -1
  88. package/version.d.ts +1 -1
  89. package/version.js +1 -1
  90. package/pg-core/columns/vector.cjs.map +0 -1
  91. 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":[]}