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 line_exports = {};
20
+ __export(line_exports, {
21
+ PgLineABC: () => PgLineABC,
22
+ PgLineABCBuilder: () => PgLineABCBuilder,
23
+ PgLineBuilder: () => PgLineBuilder,
24
+ PgLineTuple: () => PgLineTuple,
25
+ line: () => line
26
+ });
27
+ module.exports = __toCommonJS(line_exports);
28
+ var import_entity = require("../../entity.cjs");
29
+ var import_common = require("./common.cjs");
30
+ class PgLineBuilder extends import_common.PgColumnBuilder {
31
+ static [import_entity.entityKind] = "PgLineBuilder";
32
+ constructor(name) {
33
+ super(name, "array", "PgLine");
34
+ }
35
+ /** @internal */
36
+ build(table) {
37
+ return new PgLineTuple(
38
+ table,
39
+ this.config
40
+ );
41
+ }
42
+ }
43
+ class PgLineTuple extends import_common.PgColumn {
44
+ static [import_entity.entityKind] = "PgLine";
45
+ getSQLType() {
46
+ return "line";
47
+ }
48
+ mapFromDriverValue(value) {
49
+ const [a, b, c] = value.slice(1, -1).split(",");
50
+ return [Number.parseFloat(a), Number.parseFloat(b), Number.parseFloat(c)];
51
+ }
52
+ mapToDriverValue(value) {
53
+ return `{${value[0]},${value[1]},${value[2]}}`;
54
+ }
55
+ }
56
+ class PgLineABCBuilder extends import_common.PgColumnBuilder {
57
+ static [import_entity.entityKind] = "PgLineABCBuilder";
58
+ constructor(name) {
59
+ super(name, "json", "PgLineABC");
60
+ }
61
+ /** @internal */
62
+ build(table) {
63
+ return new PgLineABC(
64
+ table,
65
+ this.config
66
+ );
67
+ }
68
+ }
69
+ class PgLineABC extends import_common.PgColumn {
70
+ static [import_entity.entityKind] = "PgLineABC";
71
+ getSQLType() {
72
+ return "line";
73
+ }
74
+ mapFromDriverValue(value) {
75
+ const [a, b, c] = value.slice(1, -1).split(",");
76
+ return { a: Number.parseFloat(a), b: Number.parseFloat(b), c: Number.parseFloat(c) };
77
+ }
78
+ mapToDriverValue(value) {
79
+ return `{${value.a},${value.b},${value.c}}`;
80
+ }
81
+ }
82
+ function line(name, config) {
83
+ if (!config?.mode || config.mode === "tuple") {
84
+ return new PgLineBuilder(name);
85
+ }
86
+ return new PgLineABCBuilder(name);
87
+ }
88
+ // Annotate the CommonJS export names for ESM import in node:
89
+ 0 && (module.exports = {
90
+ PgLineABC,
91
+ PgLineABCBuilder,
92
+ PgLineBuilder,
93
+ PgLineTuple,
94
+ line
95
+ });
96
+ //# sourceMappingURL=line.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/pg-core/columns/line.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';\n\nexport type PgLineBuilderInitial<TName extends string> = PgLineBuilder<{\n\tname: TName;\n\tdataType: 'array';\n\tcolumnType: 'PgLine';\n\tdata: [number, number, number];\n\tdriverParam: number | string;\n\tenumValues: undefined;\n}>;\n\nexport class PgLineBuilder<T extends ColumnBuilderBaseConfig<'array', 'PgLine'>> extends PgColumnBuilder<T> {\n\tstatic readonly [entityKind]: string = 'PgLineBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'array', 'PgLine');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgLineTuple<MakeColumnConfig<T, TTableName>> {\n\t\treturn new PgLineTuple<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 PgLineTuple<T extends ColumnBaseConfig<'array', 'PgLine'>> extends PgColumn<T> {\n\tstatic readonly [entityKind]: string = 'PgLine';\n\n\tgetSQLType(): string {\n\t\treturn 'line';\n\t}\n\n\toverride mapFromDriverValue(value: string): [number, number, number] {\n\t\tconst [a, b, c] = value.slice(1, -1).split(',');\n\t\treturn [Number.parseFloat(a!), Number.parseFloat(b!), Number.parseFloat(c!)];\n\t}\n\n\toverride mapToDriverValue(value: [number, number, number]): string {\n\t\treturn `{${value[0]},${value[1]},${value[2]}}`;\n\t}\n}\n\nexport type PgLineABCBuilderInitial<TName extends string> = PgLineABCBuilder<{\n\tname: TName;\n\tdataType: 'json';\n\tcolumnType: 'PgLineABC';\n\tdata: { a: number; b: number; c: number };\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class PgLineABCBuilder<T extends ColumnBuilderBaseConfig<'json', 'PgLineABC'>> extends PgColumnBuilder<T> {\n\tstatic readonly [entityKind]: string = 'PgLineABCBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'json', 'PgLineABC');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgLineABC<MakeColumnConfig<T, TTableName>> {\n\t\treturn new PgLineABC<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 PgLineABC<T extends ColumnBaseConfig<'json', 'PgLineABC'>> extends PgColumn<T> {\n\tstatic readonly [entityKind]: string = 'PgLineABC';\n\n\tgetSQLType(): string {\n\t\treturn 'line';\n\t}\n\n\toverride mapFromDriverValue(value: string): { a: number; b: number; c: number } {\n\t\tconst [a, b, c] = value.slice(1, -1).split(',');\n\t\treturn { a: Number.parseFloat(a!), b: Number.parseFloat(b!), c: Number.parseFloat(c!) };\n\t}\n\n\toverride mapToDriverValue(value: { a: number; b: number; c: number }): string {\n\t\treturn `{${value.a},${value.b},${value.c}}`;\n\t}\n}\n\nexport interface PgLineTypeConfig<T extends 'tuple' | 'abc' = 'tuple' | 'abc'> {\n\tmode?: T;\n}\n\nexport function line<TName extends string, TMode extends PgLineTypeConfig['mode'] & {}>(\n\tname: TName,\n\tconfig?: PgLineTypeConfig<TMode>,\n): Equal<TMode, 'abc'> extends true ? PgLineABCBuilderInitial<TName>\n\t: PgLineBuilderInitial<TName>;\nexport function line(name: string, config?: PgLineTypeConfig) {\n\tif (!config?.mode || config.mode === 'tuple') {\n\t\treturn new PgLineBuilder(name);\n\t}\n\n\treturn new PgLineABCBuilder(name);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAI3B,oBAA0C;AAWnC,MAAM,sBAA4E,8BAAmB;AAAA,EAC3G,QAAiB,wBAAU,IAAY;AAAA,EAEvC,YAAY,MAAiB;AAC5B,UAAM,MAAM,SAAS,QAAQ;AAAA,EAC9B;AAAA;AAAA,EAGS,MACR,OAC+C;AAC/C,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,oBAAmE,uBAAY;AAAA,EAC3F,QAAiB,wBAAU,IAAY;AAAA,EAEvC,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAAyC;AACpE,UAAM,CAAC,GAAG,GAAG,CAAC,IAAI,MAAM,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG;AAC9C,WAAO,CAAC,OAAO,WAAW,CAAE,GAAG,OAAO,WAAW,CAAE,GAAG,OAAO,WAAW,CAAE,CAAC;AAAA,EAC5E;AAAA,EAES,iBAAiB,OAAyC;AAClE,WAAO,IAAI,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;AAAA,EAC5C;AACD;AAWO,MAAM,yBAAiF,8BAAmB;AAAA,EAChH,QAAiB,wBAAU,IAAY;AAAA,EAEvC,YAAY,MAAiB;AAC5B,UAAM,MAAM,QAAQ,WAAW;AAAA,EAChC;AAAA;AAAA,EAGS,MACR,OAC6C;AAC7C,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,kBAAmE,uBAAY;AAAA,EAC3F,QAAiB,wBAAU,IAAY;AAAA,EAEvC,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAAoD;AAC/E,UAAM,CAAC,GAAG,GAAG,CAAC,IAAI,MAAM,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG;AAC9C,WAAO,EAAE,GAAG,OAAO,WAAW,CAAE,GAAG,GAAG,OAAO,WAAW,CAAE,GAAG,GAAG,OAAO,WAAW,CAAE,EAAE;AAAA,EACvF;AAAA,EAES,iBAAiB,OAAoD;AAC7E,WAAO,IAAI,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,MAAM,CAAC;AAAA,EACzC;AACD;AAWO,SAAS,KAAK,MAAc,QAA2B;AAC7D,MAAI,CAAC,QAAQ,QAAQ,OAAO,SAAS,SAAS;AAC7C,WAAO,IAAI,cAAc,IAAI;AAAA,EAC9B;AAEA,SAAO,IAAI,iBAAiB,IAAI;AACjC;","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 PgLineBuilderInitial<TName extends string> = PgLineBuilder<{
7
+ name: TName;
8
+ dataType: 'array';
9
+ columnType: 'PgLine';
10
+ data: [number, number, number];
11
+ driverParam: number | string;
12
+ enumValues: undefined;
13
+ }>;
14
+ export declare class PgLineBuilder<T extends ColumnBuilderBaseConfig<'array', 'PgLine'>> extends PgColumnBuilder<T> {
15
+ static readonly [entityKind]: string;
16
+ constructor(name: T['name']);
17
+ }
18
+ export declare class PgLineTuple<T extends ColumnBaseConfig<'array', 'PgLine'>> extends PgColumn<T> {
19
+ static readonly [entityKind]: string;
20
+ getSQLType(): string;
21
+ mapFromDriverValue(value: string): [number, number, number];
22
+ mapToDriverValue(value: [number, number, number]): string;
23
+ }
24
+ export type PgLineABCBuilderInitial<TName extends string> = PgLineABCBuilder<{
25
+ name: TName;
26
+ dataType: 'json';
27
+ columnType: 'PgLineABC';
28
+ data: {
29
+ a: number;
30
+ b: number;
31
+ c: number;
32
+ };
33
+ driverParam: string;
34
+ enumValues: undefined;
35
+ }>;
36
+ export declare class PgLineABCBuilder<T extends ColumnBuilderBaseConfig<'json', 'PgLineABC'>> extends PgColumnBuilder<T> {
37
+ static readonly [entityKind]: string;
38
+ constructor(name: T['name']);
39
+ }
40
+ export declare class PgLineABC<T extends ColumnBaseConfig<'json', 'PgLineABC'>> extends PgColumn<T> {
41
+ static readonly [entityKind]: string;
42
+ getSQLType(): string;
43
+ mapFromDriverValue(value: string): {
44
+ a: number;
45
+ b: number;
46
+ c: number;
47
+ };
48
+ mapToDriverValue(value: {
49
+ a: number;
50
+ b: number;
51
+ c: number;
52
+ }): string;
53
+ }
54
+ export interface PgLineTypeConfig<T extends 'tuple' | 'abc' = 'tuple' | 'abc'> {
55
+ mode?: T;
56
+ }
57
+ export declare function line<TName extends string, TMode extends PgLineTypeConfig['mode'] & {}>(name: TName, config?: PgLineTypeConfig<TMode>): Equal<TMode, 'abc'> extends true ? PgLineABCBuilderInitial<TName> : PgLineBuilderInitial<TName>;
@@ -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 PgLineBuilderInitial<TName extends string> = PgLineBuilder<{
7
+ name: TName;
8
+ dataType: 'array';
9
+ columnType: 'PgLine';
10
+ data: [number, number, number];
11
+ driverParam: number | string;
12
+ enumValues: undefined;
13
+ }>;
14
+ export declare class PgLineBuilder<T extends ColumnBuilderBaseConfig<'array', 'PgLine'>> extends PgColumnBuilder<T> {
15
+ static readonly [entityKind]: string;
16
+ constructor(name: T['name']);
17
+ }
18
+ export declare class PgLineTuple<T extends ColumnBaseConfig<'array', 'PgLine'>> extends PgColumn<T> {
19
+ static readonly [entityKind]: string;
20
+ getSQLType(): string;
21
+ mapFromDriverValue(value: string): [number, number, number];
22
+ mapToDriverValue(value: [number, number, number]): string;
23
+ }
24
+ export type PgLineABCBuilderInitial<TName extends string> = PgLineABCBuilder<{
25
+ name: TName;
26
+ dataType: 'json';
27
+ columnType: 'PgLineABC';
28
+ data: {
29
+ a: number;
30
+ b: number;
31
+ c: number;
32
+ };
33
+ driverParam: string;
34
+ enumValues: undefined;
35
+ }>;
36
+ export declare class PgLineABCBuilder<T extends ColumnBuilderBaseConfig<'json', 'PgLineABC'>> extends PgColumnBuilder<T> {
37
+ static readonly [entityKind]: string;
38
+ constructor(name: T['name']);
39
+ }
40
+ export declare class PgLineABC<T extends ColumnBaseConfig<'json', 'PgLineABC'>> extends PgColumn<T> {
41
+ static readonly [entityKind]: string;
42
+ getSQLType(): string;
43
+ mapFromDriverValue(value: string): {
44
+ a: number;
45
+ b: number;
46
+ c: number;
47
+ };
48
+ mapToDriverValue(value: {
49
+ a: number;
50
+ b: number;
51
+ c: number;
52
+ }): string;
53
+ }
54
+ export interface PgLineTypeConfig<T extends 'tuple' | 'abc' = 'tuple' | 'abc'> {
55
+ mode?: T;
56
+ }
57
+ export declare function line<TName extends string, TMode extends PgLineTypeConfig['mode'] & {}>(name: TName, config?: PgLineTypeConfig<TMode>): Equal<TMode, 'abc'> extends true ? PgLineABCBuilderInitial<TName> : PgLineBuilderInitial<TName>;
@@ -0,0 +1,68 @@
1
+ import { entityKind } from "../../entity.js";
2
+ import { PgColumn, PgColumnBuilder } from "./common.js";
3
+ class PgLineBuilder extends PgColumnBuilder {
4
+ static [entityKind] = "PgLineBuilder";
5
+ constructor(name) {
6
+ super(name, "array", "PgLine");
7
+ }
8
+ /** @internal */
9
+ build(table) {
10
+ return new PgLineTuple(
11
+ table,
12
+ this.config
13
+ );
14
+ }
15
+ }
16
+ class PgLineTuple extends PgColumn {
17
+ static [entityKind] = "PgLine";
18
+ getSQLType() {
19
+ return "line";
20
+ }
21
+ mapFromDriverValue(value) {
22
+ const [a, b, c] = value.slice(1, -1).split(",");
23
+ return [Number.parseFloat(a), Number.parseFloat(b), Number.parseFloat(c)];
24
+ }
25
+ mapToDriverValue(value) {
26
+ return `{${value[0]},${value[1]},${value[2]}}`;
27
+ }
28
+ }
29
+ class PgLineABCBuilder extends PgColumnBuilder {
30
+ static [entityKind] = "PgLineABCBuilder";
31
+ constructor(name) {
32
+ super(name, "json", "PgLineABC");
33
+ }
34
+ /** @internal */
35
+ build(table) {
36
+ return new PgLineABC(
37
+ table,
38
+ this.config
39
+ );
40
+ }
41
+ }
42
+ class PgLineABC extends PgColumn {
43
+ static [entityKind] = "PgLineABC";
44
+ getSQLType() {
45
+ return "line";
46
+ }
47
+ mapFromDriverValue(value) {
48
+ const [a, b, c] = value.slice(1, -1).split(",");
49
+ return { a: Number.parseFloat(a), b: Number.parseFloat(b), c: Number.parseFloat(c) };
50
+ }
51
+ mapToDriverValue(value) {
52
+ return `{${value.a},${value.b},${value.c}}`;
53
+ }
54
+ }
55
+ function line(name, config) {
56
+ if (!config?.mode || config.mode === "tuple") {
57
+ return new PgLineBuilder(name);
58
+ }
59
+ return new PgLineABCBuilder(name);
60
+ }
61
+ export {
62
+ PgLineABC,
63
+ PgLineABCBuilder,
64
+ PgLineBuilder,
65
+ PgLineTuple,
66
+ line
67
+ };
68
+ //# sourceMappingURL=line.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/pg-core/columns/line.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';\n\nexport type PgLineBuilderInitial<TName extends string> = PgLineBuilder<{\n\tname: TName;\n\tdataType: 'array';\n\tcolumnType: 'PgLine';\n\tdata: [number, number, number];\n\tdriverParam: number | string;\n\tenumValues: undefined;\n}>;\n\nexport class PgLineBuilder<T extends ColumnBuilderBaseConfig<'array', 'PgLine'>> extends PgColumnBuilder<T> {\n\tstatic readonly [entityKind]: string = 'PgLineBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'array', 'PgLine');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgLineTuple<MakeColumnConfig<T, TTableName>> {\n\t\treturn new PgLineTuple<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 PgLineTuple<T extends ColumnBaseConfig<'array', 'PgLine'>> extends PgColumn<T> {\n\tstatic readonly [entityKind]: string = 'PgLine';\n\n\tgetSQLType(): string {\n\t\treturn 'line';\n\t}\n\n\toverride mapFromDriverValue(value: string): [number, number, number] {\n\t\tconst [a, b, c] = value.slice(1, -1).split(',');\n\t\treturn [Number.parseFloat(a!), Number.parseFloat(b!), Number.parseFloat(c!)];\n\t}\n\n\toverride mapToDriverValue(value: [number, number, number]): string {\n\t\treturn `{${value[0]},${value[1]},${value[2]}}`;\n\t}\n}\n\nexport type PgLineABCBuilderInitial<TName extends string> = PgLineABCBuilder<{\n\tname: TName;\n\tdataType: 'json';\n\tcolumnType: 'PgLineABC';\n\tdata: { a: number; b: number; c: number };\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class PgLineABCBuilder<T extends ColumnBuilderBaseConfig<'json', 'PgLineABC'>> extends PgColumnBuilder<T> {\n\tstatic readonly [entityKind]: string = 'PgLineABCBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'json', 'PgLineABC');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgLineABC<MakeColumnConfig<T, TTableName>> {\n\t\treturn new PgLineABC<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 PgLineABC<T extends ColumnBaseConfig<'json', 'PgLineABC'>> extends PgColumn<T> {\n\tstatic readonly [entityKind]: string = 'PgLineABC';\n\n\tgetSQLType(): string {\n\t\treturn 'line';\n\t}\n\n\toverride mapFromDriverValue(value: string): { a: number; b: number; c: number } {\n\t\tconst [a, b, c] = value.slice(1, -1).split(',');\n\t\treturn { a: Number.parseFloat(a!), b: Number.parseFloat(b!), c: Number.parseFloat(c!) };\n\t}\n\n\toverride mapToDriverValue(value: { a: number; b: number; c: number }): string {\n\t\treturn `{${value.a},${value.b},${value.c}}`;\n\t}\n}\n\nexport interface PgLineTypeConfig<T extends 'tuple' | 'abc' = 'tuple' | 'abc'> {\n\tmode?: T;\n}\n\nexport function line<TName extends string, TMode extends PgLineTypeConfig['mode'] & {}>(\n\tname: TName,\n\tconfig?: PgLineTypeConfig<TMode>,\n): Equal<TMode, 'abc'> extends true ? PgLineABCBuilderInitial<TName>\n\t: PgLineBuilderInitial<TName>;\nexport function line(name: string, config?: PgLineTypeConfig) {\n\tif (!config?.mode || config.mode === 'tuple') {\n\t\treturn new PgLineBuilder(name);\n\t}\n\n\treturn new PgLineABCBuilder(name);\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAI3B,SAAS,UAAU,uBAAuB;AAWnC,MAAM,sBAA4E,gBAAmB;AAAA,EAC3G,QAAiB,UAAU,IAAY;AAAA,EAEvC,YAAY,MAAiB;AAC5B,UAAM,MAAM,SAAS,QAAQ;AAAA,EAC9B;AAAA;AAAA,EAGS,MACR,OAC+C;AAC/C,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,oBAAmE,SAAY;AAAA,EAC3F,QAAiB,UAAU,IAAY;AAAA,EAEvC,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAAyC;AACpE,UAAM,CAAC,GAAG,GAAG,CAAC,IAAI,MAAM,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG;AAC9C,WAAO,CAAC,OAAO,WAAW,CAAE,GAAG,OAAO,WAAW,CAAE,GAAG,OAAO,WAAW,CAAE,CAAC;AAAA,EAC5E;AAAA,EAES,iBAAiB,OAAyC;AAClE,WAAO,IAAI,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;AAAA,EAC5C;AACD;AAWO,MAAM,yBAAiF,gBAAmB;AAAA,EAChH,QAAiB,UAAU,IAAY;AAAA,EAEvC,YAAY,MAAiB;AAC5B,UAAM,MAAM,QAAQ,WAAW;AAAA,EAChC;AAAA;AAAA,EAGS,MACR,OAC6C;AAC7C,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,kBAAmE,SAAY;AAAA,EAC3F,QAAiB,UAAU,IAAY;AAAA,EAEvC,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAAoD;AAC/E,UAAM,CAAC,GAAG,GAAG,CAAC,IAAI,MAAM,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG;AAC9C,WAAO,EAAE,GAAG,OAAO,WAAW,CAAE,GAAG,GAAG,OAAO,WAAW,CAAE,GAAG,GAAG,OAAO,WAAW,CAAE,EAAE;AAAA,EACvF;AAAA,EAES,iBAAiB,OAAoD;AAC7E,WAAO,IAAI,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,MAAM,CAAC;AAAA,EACzC;AACD;AAWO,SAAS,KAAK,MAAc,QAA2B;AAC7D,MAAI,CAAC,QAAQ,QAAQ,OAAO,SAAS,SAAS;AAC7C,WAAO,IAAI,cAAc,IAAI;AAAA,EAC9B;AAEA,SAAO,IAAI,iBAAiB,IAAI;AACjC;","names":[]}
@@ -0,0 +1,102 @@
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 point_exports = {};
20
+ __export(point_exports, {
21
+ PgPointObject: () => PgPointObject,
22
+ PgPointObjectBuilder: () => PgPointObjectBuilder,
23
+ PgPointTuple: () => PgPointTuple,
24
+ PgPointTupleBuilder: () => PgPointTupleBuilder,
25
+ point: () => point
26
+ });
27
+ module.exports = __toCommonJS(point_exports);
28
+ var import_entity = require("../../entity.cjs");
29
+ var import_common = require("./common.cjs");
30
+ class PgPointTupleBuilder extends import_common.PgColumnBuilder {
31
+ static [import_entity.entityKind] = "PgPointTupleBuilder";
32
+ constructor(name) {
33
+ super(name, "array", "PgPointTuple");
34
+ }
35
+ /** @internal */
36
+ build(table) {
37
+ return new PgPointTuple(
38
+ table,
39
+ this.config
40
+ );
41
+ }
42
+ }
43
+ class PgPointTuple extends import_common.PgColumn {
44
+ static [import_entity.entityKind] = "PgPointTuple";
45
+ getSQLType() {
46
+ return "point";
47
+ }
48
+ mapFromDriverValue(value) {
49
+ if (typeof value === "string") {
50
+ const [x, y] = value.slice(1, -1).split(",");
51
+ return [Number.parseFloat(x), Number.parseFloat(y)];
52
+ }
53
+ return [value.x, value.y];
54
+ }
55
+ mapToDriverValue(value) {
56
+ return `(${value[0]},${value[1]})`;
57
+ }
58
+ }
59
+ class PgPointObjectBuilder extends import_common.PgColumnBuilder {
60
+ static [import_entity.entityKind] = "PgPointObjectBuilder";
61
+ constructor(name) {
62
+ super(name, "json", "PgPointObject");
63
+ }
64
+ /** @internal */
65
+ build(table) {
66
+ return new PgPointObject(
67
+ table,
68
+ this.config
69
+ );
70
+ }
71
+ }
72
+ class PgPointObject extends import_common.PgColumn {
73
+ static [import_entity.entityKind] = "PgPointObject";
74
+ getSQLType() {
75
+ return "point";
76
+ }
77
+ mapFromDriverValue(value) {
78
+ if (typeof value === "string") {
79
+ const [x, y] = value.slice(1, -1).split(",");
80
+ return { x: Number.parseFloat(x), y: Number.parseFloat(y) };
81
+ }
82
+ return value;
83
+ }
84
+ mapToDriverValue(value) {
85
+ return `(${value.x},${value.y})`;
86
+ }
87
+ }
88
+ function point(name, config) {
89
+ if (!config?.mode || config.mode === "tuple") {
90
+ return new PgPointTupleBuilder(name);
91
+ }
92
+ return new PgPointObjectBuilder(name);
93
+ }
94
+ // Annotate the CommonJS export names for ESM import in node:
95
+ 0 && (module.exports = {
96
+ PgPointObject,
97
+ PgPointObjectBuilder,
98
+ PgPointTuple,
99
+ PgPointTupleBuilder,
100
+ point
101
+ });
102
+ //# sourceMappingURL=point.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/pg-core/columns/point.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';\n\nexport type PgPointTupleBuilderInitial<TName extends string> = PgPointTupleBuilder<{\n\tname: TName;\n\tdataType: 'array';\n\tcolumnType: 'PgPointTuple';\n\tdata: [number, number];\n\tdriverParam: number | string;\n\tenumValues: undefined;\n}>;\n\nexport class PgPointTupleBuilder<T extends ColumnBuilderBaseConfig<'array', 'PgPointTuple'>>\n\textends PgColumnBuilder<T>\n{\n\tstatic readonly [entityKind]: string = 'PgPointTupleBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'array', 'PgPointTuple');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgPointTuple<MakeColumnConfig<T, TTableName>> {\n\t\treturn new PgPointTuple<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 PgPointTuple<T extends ColumnBaseConfig<'array', 'PgPointTuple'>> extends PgColumn<T> {\n\tstatic readonly [entityKind]: string = 'PgPointTuple';\n\n\tgetSQLType(): string {\n\t\treturn 'point';\n\t}\n\n\toverride mapFromDriverValue(value: string | { x: number; y: number }): [number, number] {\n\t\tif (typeof value === 'string') {\n\t\t\tconst [x, y] = value.slice(1, -1).split(',');\n\t\t\treturn [Number.parseFloat(x!), Number.parseFloat(y!)];\n\t\t}\n\t\treturn [value.x, value.y];\n\t}\n\n\toverride mapToDriverValue(value: [number, number]): string {\n\t\treturn `(${value[0]},${value[1]})`;\n\t}\n}\n\nexport type PgPointObjectBuilderInitial<TName extends string> = PgPointObjectBuilder<{\n\tname: TName;\n\tdataType: 'json';\n\tcolumnType: 'PgPointObject';\n\tdata: { x: number; y: number };\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class PgPointObjectBuilder<T extends ColumnBuilderBaseConfig<'json', 'PgPointObject'>>\n\textends PgColumnBuilder<T>\n{\n\tstatic readonly [entityKind]: string = 'PgPointObjectBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'json', 'PgPointObject');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgPointObject<MakeColumnConfig<T, TTableName>> {\n\t\treturn new PgPointObject<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 PgPointObject<T extends ColumnBaseConfig<'json', 'PgPointObject'>> extends PgColumn<T> {\n\tstatic readonly [entityKind]: string = 'PgPointObject';\n\n\tgetSQLType(): string {\n\t\treturn 'point';\n\t}\n\n\toverride mapFromDriverValue(value: string | { x: number; y: number }): { x: number; y: number } {\n\t\tif (typeof value === 'string') {\n\t\t\tconst [x, y] = value.slice(1, -1).split(',');\n\t\t\treturn { x: Number.parseFloat(x!), y: Number.parseFloat(y!) };\n\t\t}\n\t\treturn value;\n\t}\n\n\toverride mapToDriverValue(value: { x: number; y: number }): string {\n\t\treturn `(${value.x},${value.y})`;\n\t}\n}\n\nexport interface PgPointConfig<T extends 'tuple' | 'xy' = 'tuple' | 'xy'> {\n\tmode?: T;\n}\n\nexport function point<TName extends string, TMode extends PgPointConfig['mode'] & {}>(\n\tname: TName,\n\tconfig?: PgPointConfig<TMode>,\n): Equal<TMode, 'xy'> extends true ? PgPointObjectBuilderInitial<TName>\n\t: PgPointTupleBuilderInitial<TName>;\nexport function point(name: string, config?: PgPointConfig) {\n\tif (!config?.mode || config.mode === 'tuple') {\n\t\treturn new PgPointTupleBuilder(name);\n\t}\n\treturn new PgPointObjectBuilder(name);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAI3B,oBAA0C;AAWnC,MAAM,4BACJ,8BACT;AAAA,EACC,QAAiB,wBAAU,IAAY;AAAA,EAEvC,YAAY,MAAiB;AAC5B,UAAM,MAAM,SAAS,cAAc;AAAA,EACpC;AAAA;AAAA,EAGS,MACR,OACgD;AAChD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,qBAA0E,uBAAY;AAAA,EAClG,QAAiB,wBAAU,IAAY;AAAA,EAEvC,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAA4D;AACvF,QAAI,OAAO,UAAU,UAAU;AAC9B,YAAM,CAAC,GAAG,CAAC,IAAI,MAAM,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG;AAC3C,aAAO,CAAC,OAAO,WAAW,CAAE,GAAG,OAAO,WAAW,CAAE,CAAC;AAAA,IACrD;AACA,WAAO,CAAC,MAAM,GAAG,MAAM,CAAC;AAAA,EACzB;AAAA,EAES,iBAAiB,OAAiC;AAC1D,WAAO,IAAI,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;AAAA,EAChC;AACD;AAWO,MAAM,6BACJ,8BACT;AAAA,EACC,QAAiB,wBAAU,IAAY;AAAA,EAEvC,YAAY,MAAiB;AAC5B,UAAM,MAAM,QAAQ,eAAe;AAAA,EACpC;AAAA;AAAA,EAGS,MACR,OACiD;AACjD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,sBAA2E,uBAAY;AAAA,EACnG,QAAiB,wBAAU,IAAY;AAAA,EAEvC,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAAoE;AAC/F,QAAI,OAAO,UAAU,UAAU;AAC9B,YAAM,CAAC,GAAG,CAAC,IAAI,MAAM,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG;AAC3C,aAAO,EAAE,GAAG,OAAO,WAAW,CAAE,GAAG,GAAG,OAAO,WAAW,CAAE,EAAE;AAAA,IAC7D;AACA,WAAO;AAAA,EACR;AAAA,EAES,iBAAiB,OAAyC;AAClE,WAAO,IAAI,MAAM,CAAC,IAAI,MAAM,CAAC;AAAA,EAC9B;AACD;AAWO,SAAS,MAAM,MAAc,QAAwB;AAC3D,MAAI,CAAC,QAAQ,QAAQ,OAAO,SAAS,SAAS;AAC7C,WAAO,IAAI,oBAAoB,IAAI;AAAA,EACpC;AACA,SAAO,IAAI,qBAAqB,IAAI;AACrC;","names":[]}
@@ -0,0 +1,60 @@
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 PgPointTupleBuilderInitial<TName extends string> = PgPointTupleBuilder<{
7
+ name: TName;
8
+ dataType: 'array';
9
+ columnType: 'PgPointTuple';
10
+ data: [number, number];
11
+ driverParam: number | string;
12
+ enumValues: undefined;
13
+ }>;
14
+ export declare class PgPointTupleBuilder<T extends ColumnBuilderBaseConfig<'array', 'PgPointTuple'>> extends PgColumnBuilder<T> {
15
+ static readonly [entityKind]: string;
16
+ constructor(name: T['name']);
17
+ }
18
+ export declare class PgPointTuple<T extends ColumnBaseConfig<'array', 'PgPointTuple'>> extends PgColumn<T> {
19
+ static readonly [entityKind]: string;
20
+ getSQLType(): string;
21
+ mapFromDriverValue(value: string | {
22
+ x: number;
23
+ y: number;
24
+ }): [number, number];
25
+ mapToDriverValue(value: [number, number]): string;
26
+ }
27
+ export type PgPointObjectBuilderInitial<TName extends string> = PgPointObjectBuilder<{
28
+ name: TName;
29
+ dataType: 'json';
30
+ columnType: 'PgPointObject';
31
+ data: {
32
+ x: number;
33
+ y: number;
34
+ };
35
+ driverParam: string;
36
+ enumValues: undefined;
37
+ }>;
38
+ export declare class PgPointObjectBuilder<T extends ColumnBuilderBaseConfig<'json', 'PgPointObject'>> extends PgColumnBuilder<T> {
39
+ static readonly [entityKind]: string;
40
+ constructor(name: T['name']);
41
+ }
42
+ export declare class PgPointObject<T extends ColumnBaseConfig<'json', 'PgPointObject'>> extends PgColumn<T> {
43
+ static readonly [entityKind]: string;
44
+ getSQLType(): string;
45
+ mapFromDriverValue(value: string | {
46
+ x: number;
47
+ y: number;
48
+ }): {
49
+ x: number;
50
+ y: number;
51
+ };
52
+ mapToDriverValue(value: {
53
+ x: number;
54
+ y: number;
55
+ }): string;
56
+ }
57
+ export interface PgPointConfig<T extends 'tuple' | 'xy' = 'tuple' | 'xy'> {
58
+ mode?: T;
59
+ }
60
+ export declare function point<TName extends string, TMode extends PgPointConfig['mode'] & {}>(name: TName, config?: PgPointConfig<TMode>): Equal<TMode, 'xy'> extends true ? PgPointObjectBuilderInitial<TName> : PgPointTupleBuilderInitial<TName>;
@@ -0,0 +1,60 @@
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 PgPointTupleBuilderInitial<TName extends string> = PgPointTupleBuilder<{
7
+ name: TName;
8
+ dataType: 'array';
9
+ columnType: 'PgPointTuple';
10
+ data: [number, number];
11
+ driverParam: number | string;
12
+ enumValues: undefined;
13
+ }>;
14
+ export declare class PgPointTupleBuilder<T extends ColumnBuilderBaseConfig<'array', 'PgPointTuple'>> extends PgColumnBuilder<T> {
15
+ static readonly [entityKind]: string;
16
+ constructor(name: T['name']);
17
+ }
18
+ export declare class PgPointTuple<T extends ColumnBaseConfig<'array', 'PgPointTuple'>> extends PgColumn<T> {
19
+ static readonly [entityKind]: string;
20
+ getSQLType(): string;
21
+ mapFromDriverValue(value: string | {
22
+ x: number;
23
+ y: number;
24
+ }): [number, number];
25
+ mapToDriverValue(value: [number, number]): string;
26
+ }
27
+ export type PgPointObjectBuilderInitial<TName extends string> = PgPointObjectBuilder<{
28
+ name: TName;
29
+ dataType: 'json';
30
+ columnType: 'PgPointObject';
31
+ data: {
32
+ x: number;
33
+ y: number;
34
+ };
35
+ driverParam: string;
36
+ enumValues: undefined;
37
+ }>;
38
+ export declare class PgPointObjectBuilder<T extends ColumnBuilderBaseConfig<'json', 'PgPointObject'>> extends PgColumnBuilder<T> {
39
+ static readonly [entityKind]: string;
40
+ constructor(name: T['name']);
41
+ }
42
+ export declare class PgPointObject<T extends ColumnBaseConfig<'json', 'PgPointObject'>> extends PgColumn<T> {
43
+ static readonly [entityKind]: string;
44
+ getSQLType(): string;
45
+ mapFromDriverValue(value: string | {
46
+ x: number;
47
+ y: number;
48
+ }): {
49
+ x: number;
50
+ y: number;
51
+ };
52
+ mapToDriverValue(value: {
53
+ x: number;
54
+ y: number;
55
+ }): string;
56
+ }
57
+ export interface PgPointConfig<T extends 'tuple' | 'xy' = 'tuple' | 'xy'> {
58
+ mode?: T;
59
+ }
60
+ export declare function point<TName extends string, TMode extends PgPointConfig['mode'] & {}>(name: TName, config?: PgPointConfig<TMode>): Equal<TMode, 'xy'> extends true ? PgPointObjectBuilderInitial<TName> : PgPointTupleBuilderInitial<TName>;
@@ -0,0 +1,74 @@
1
+ import { entityKind } from "../../entity.js";
2
+ import { PgColumn, PgColumnBuilder } from "./common.js";
3
+ class PgPointTupleBuilder extends PgColumnBuilder {
4
+ static [entityKind] = "PgPointTupleBuilder";
5
+ constructor(name) {
6
+ super(name, "array", "PgPointTuple");
7
+ }
8
+ /** @internal */
9
+ build(table) {
10
+ return new PgPointTuple(
11
+ table,
12
+ this.config
13
+ );
14
+ }
15
+ }
16
+ class PgPointTuple extends PgColumn {
17
+ static [entityKind] = "PgPointTuple";
18
+ getSQLType() {
19
+ return "point";
20
+ }
21
+ mapFromDriverValue(value) {
22
+ if (typeof value === "string") {
23
+ const [x, y] = value.slice(1, -1).split(",");
24
+ return [Number.parseFloat(x), Number.parseFloat(y)];
25
+ }
26
+ return [value.x, value.y];
27
+ }
28
+ mapToDriverValue(value) {
29
+ return `(${value[0]},${value[1]})`;
30
+ }
31
+ }
32
+ class PgPointObjectBuilder extends PgColumnBuilder {
33
+ static [entityKind] = "PgPointObjectBuilder";
34
+ constructor(name) {
35
+ super(name, "json", "PgPointObject");
36
+ }
37
+ /** @internal */
38
+ build(table) {
39
+ return new PgPointObject(
40
+ table,
41
+ this.config
42
+ );
43
+ }
44
+ }
45
+ class PgPointObject extends PgColumn {
46
+ static [entityKind] = "PgPointObject";
47
+ getSQLType() {
48
+ return "point";
49
+ }
50
+ mapFromDriverValue(value) {
51
+ if (typeof value === "string") {
52
+ const [x, y] = value.slice(1, -1).split(",");
53
+ return { x: Number.parseFloat(x), y: Number.parseFloat(y) };
54
+ }
55
+ return value;
56
+ }
57
+ mapToDriverValue(value) {
58
+ return `(${value.x},${value.y})`;
59
+ }
60
+ }
61
+ function point(name, config) {
62
+ if (!config?.mode || config.mode === "tuple") {
63
+ return new PgPointTupleBuilder(name);
64
+ }
65
+ return new PgPointObjectBuilder(name);
66
+ }
67
+ export {
68
+ PgPointObject,
69
+ PgPointObjectBuilder,
70
+ PgPointTuple,
71
+ PgPointTupleBuilder,
72
+ point
73
+ };
74
+ //# sourceMappingURL=point.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/pg-core/columns/point.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';\n\nexport type PgPointTupleBuilderInitial<TName extends string> = PgPointTupleBuilder<{\n\tname: TName;\n\tdataType: 'array';\n\tcolumnType: 'PgPointTuple';\n\tdata: [number, number];\n\tdriverParam: number | string;\n\tenumValues: undefined;\n}>;\n\nexport class PgPointTupleBuilder<T extends ColumnBuilderBaseConfig<'array', 'PgPointTuple'>>\n\textends PgColumnBuilder<T>\n{\n\tstatic readonly [entityKind]: string = 'PgPointTupleBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'array', 'PgPointTuple');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgPointTuple<MakeColumnConfig<T, TTableName>> {\n\t\treturn new PgPointTuple<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 PgPointTuple<T extends ColumnBaseConfig<'array', 'PgPointTuple'>> extends PgColumn<T> {\n\tstatic readonly [entityKind]: string = 'PgPointTuple';\n\n\tgetSQLType(): string {\n\t\treturn 'point';\n\t}\n\n\toverride mapFromDriverValue(value: string | { x: number; y: number }): [number, number] {\n\t\tif (typeof value === 'string') {\n\t\t\tconst [x, y] = value.slice(1, -1).split(',');\n\t\t\treturn [Number.parseFloat(x!), Number.parseFloat(y!)];\n\t\t}\n\t\treturn [value.x, value.y];\n\t}\n\n\toverride mapToDriverValue(value: [number, number]): string {\n\t\treturn `(${value[0]},${value[1]})`;\n\t}\n}\n\nexport type PgPointObjectBuilderInitial<TName extends string> = PgPointObjectBuilder<{\n\tname: TName;\n\tdataType: 'json';\n\tcolumnType: 'PgPointObject';\n\tdata: { x: number; y: number };\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class PgPointObjectBuilder<T extends ColumnBuilderBaseConfig<'json', 'PgPointObject'>>\n\textends PgColumnBuilder<T>\n{\n\tstatic readonly [entityKind]: string = 'PgPointObjectBuilder';\n\n\tconstructor(name: T['name']) {\n\t\tsuper(name, 'json', 'PgPointObject');\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgPointObject<MakeColumnConfig<T, TTableName>> {\n\t\treturn new PgPointObject<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 PgPointObject<T extends ColumnBaseConfig<'json', 'PgPointObject'>> extends PgColumn<T> {\n\tstatic readonly [entityKind]: string = 'PgPointObject';\n\n\tgetSQLType(): string {\n\t\treturn 'point';\n\t}\n\n\toverride mapFromDriverValue(value: string | { x: number; y: number }): { x: number; y: number } {\n\t\tif (typeof value === 'string') {\n\t\t\tconst [x, y] = value.slice(1, -1).split(',');\n\t\t\treturn { x: Number.parseFloat(x!), y: Number.parseFloat(y!) };\n\t\t}\n\t\treturn value;\n\t}\n\n\toverride mapToDriverValue(value: { x: number; y: number }): string {\n\t\treturn `(${value.x},${value.y})`;\n\t}\n}\n\nexport interface PgPointConfig<T extends 'tuple' | 'xy' = 'tuple' | 'xy'> {\n\tmode?: T;\n}\n\nexport function point<TName extends string, TMode extends PgPointConfig['mode'] & {}>(\n\tname: TName,\n\tconfig?: PgPointConfig<TMode>,\n): Equal<TMode, 'xy'> extends true ? PgPointObjectBuilderInitial<TName>\n\t: PgPointTupleBuilderInitial<TName>;\nexport function point(name: string, config?: PgPointConfig) {\n\tif (!config?.mode || config.mode === 'tuple') {\n\t\treturn new PgPointTupleBuilder(name);\n\t}\n\treturn new PgPointObjectBuilder(name);\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAI3B,SAAS,UAAU,uBAAuB;AAWnC,MAAM,4BACJ,gBACT;AAAA,EACC,QAAiB,UAAU,IAAY;AAAA,EAEvC,YAAY,MAAiB;AAC5B,UAAM,MAAM,SAAS,cAAc;AAAA,EACpC;AAAA;AAAA,EAGS,MACR,OACgD;AAChD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,qBAA0E,SAAY;AAAA,EAClG,QAAiB,UAAU,IAAY;AAAA,EAEvC,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAA4D;AACvF,QAAI,OAAO,UAAU,UAAU;AAC9B,YAAM,CAAC,GAAG,CAAC,IAAI,MAAM,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG;AAC3C,aAAO,CAAC,OAAO,WAAW,CAAE,GAAG,OAAO,WAAW,CAAE,CAAC;AAAA,IACrD;AACA,WAAO,CAAC,MAAM,GAAG,MAAM,CAAC;AAAA,EACzB;AAAA,EAES,iBAAiB,OAAiC;AAC1D,WAAO,IAAI,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;AAAA,EAChC;AACD;AAWO,MAAM,6BACJ,gBACT;AAAA,EACC,QAAiB,UAAU,IAAY;AAAA,EAEvC,YAAY,MAAiB;AAC5B,UAAM,MAAM,QAAQ,eAAe;AAAA,EACpC;AAAA;AAAA,EAGS,MACR,OACiD;AACjD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,sBAA2E,SAAY;AAAA,EACnG,QAAiB,UAAU,IAAY;AAAA,EAEvC,aAAqB;AACpB,WAAO;AAAA,EACR;AAAA,EAES,mBAAmB,OAAoE;AAC/F,QAAI,OAAO,UAAU,UAAU;AAC9B,YAAM,CAAC,GAAG,CAAC,IAAI,MAAM,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG;AAC3C,aAAO,EAAE,GAAG,OAAO,WAAW,CAAE,GAAG,GAAG,OAAO,WAAW,CAAE,EAAE;AAAA,IAC7D;AACA,WAAO;AAAA,EACR;AAAA,EAES,iBAAiB,OAAyC;AAClE,WAAO,IAAI,MAAM,CAAC,IAAI,MAAM,CAAC;AAAA,EAC9B;AACD;AAWO,SAAS,MAAM,MAAc,QAAwB;AAC3D,MAAI,CAAC,QAAQ,QAAQ,OAAO,SAAS,SAAS;AAC7C,WAAO,IAAI,oBAAoB,IAAI;AAAA,EACpC;AACA,SAAO,IAAI,qBAAqB,IAAI;AACrC;","names":[]}