drizzle-orm 0.30.10 → 0.31.0-6df4b83

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 (151) hide show
  1. package/column-builder.cjs.map +1 -1
  2. package/column-builder.d.cts +5 -1
  3. package/column-builder.d.ts +5 -1
  4. package/column-builder.js.map +1 -1
  5. package/mysql-core/dialect.cjs +18 -15
  6. package/mysql-core/dialect.cjs.map +1 -1
  7. package/mysql-core/dialect.d.cts +3 -2
  8. package/mysql-core/dialect.d.ts +3 -2
  9. package/mysql-core/dialect.js +6 -3
  10. package/mysql-core/dialect.js.map +1 -1
  11. package/mysql-core/table.cjs +1 -0
  12. package/mysql-core/table.cjs.map +1 -1
  13. package/mysql-core/table.js +1 -0
  14. package/mysql-core/table.js.map +1 -1
  15. package/mysql-core/utils.d.cts +1 -1
  16. package/mysql-core/utils.d.ts +1 -1
  17. package/package.json +109 -1
  18. package/pg-core/columns/common.cjs +84 -0
  19. package/pg-core/columns/common.cjs.map +1 -1
  20. package/pg-core/columns/common.d.cts +53 -0
  21. package/pg-core/columns/common.d.ts +53 -0
  22. package/pg-core/columns/common.js +82 -0
  23. package/pg-core/columns/common.js.map +1 -1
  24. package/pg-core/columns/index.cjs +15 -1
  25. package/pg-core/columns/index.cjs.map +1 -1
  26. package/pg-core/columns/index.d.cts +7 -0
  27. package/pg-core/columns/index.d.ts +7 -0
  28. package/pg-core/columns/index.js +7 -0
  29. package/pg-core/columns/index.js.map +1 -1
  30. package/pg-core/columns/line.cjs +96 -0
  31. package/pg-core/columns/line.cjs.map +1 -0
  32. package/pg-core/columns/line.d.cts +57 -0
  33. package/pg-core/columns/line.d.ts +57 -0
  34. package/pg-core/columns/line.js +68 -0
  35. package/pg-core/columns/line.js.map +1 -0
  36. package/pg-core/columns/point.cjs +102 -0
  37. package/pg-core/columns/point.cjs.map +1 -0
  38. package/pg-core/columns/point.d.cts +60 -0
  39. package/pg-core/columns/point.d.ts +60 -0
  40. package/pg-core/columns/point.js +74 -0
  41. package/pg-core/columns/point.js.map +1 -0
  42. package/pg-core/columns/postgis_extension/geometry.cjs +96 -0
  43. package/pg-core/columns/postgis_extension/geometry.cjs.map +1 -0
  44. package/pg-core/columns/postgis_extension/geometry.d.cts +57 -0
  45. package/pg-core/columns/postgis_extension/geometry.d.ts +57 -0
  46. package/pg-core/columns/postgis_extension/geometry.js +68 -0
  47. package/pg-core/columns/postgis_extension/geometry.js.map +1 -0
  48. package/pg-core/columns/postgis_extension/utils.cjs +65 -0
  49. package/pg-core/columns/postgis_extension/utils.cjs.map +1 -0
  50. package/pg-core/columns/postgis_extension/utils.d.cts +1 -0
  51. package/pg-core/columns/postgis_extension/utils.d.ts +1 -0
  52. package/pg-core/columns/postgis_extension/utils.js +41 -0
  53. package/pg-core/columns/postgis_extension/utils.js.map +1 -0
  54. package/pg-core/columns/vector_extension/bit.cjs +58 -0
  55. package/pg-core/columns/vector_extension/bit.cjs.map +1 -0
  56. package/pg-core/columns/vector_extension/bit.d.cts +29 -0
  57. package/pg-core/columns/vector_extension/bit.d.ts +29 -0
  58. package/pg-core/columns/vector_extension/bit.js +32 -0
  59. package/pg-core/columns/vector_extension/bit.js.map +1 -0
  60. package/pg-core/columns/vector_extension/halfvec.cjs +64 -0
  61. package/pg-core/columns/vector_extension/halfvec.cjs.map +1 -0
  62. package/pg-core/columns/vector_extension/halfvec.d.cts +31 -0
  63. package/pg-core/columns/vector_extension/halfvec.d.ts +31 -0
  64. package/pg-core/columns/vector_extension/halfvec.js +38 -0
  65. package/pg-core/columns/vector_extension/halfvec.js.map +1 -0
  66. package/pg-core/columns/vector_extension/sparsevec.cjs +58 -0
  67. package/pg-core/columns/vector_extension/sparsevec.cjs.map +1 -0
  68. package/pg-core/columns/vector_extension/sparsevec.d.cts +29 -0
  69. package/pg-core/columns/vector_extension/sparsevec.d.ts +29 -0
  70. package/pg-core/columns/vector_extension/sparsevec.js +32 -0
  71. package/pg-core/columns/vector_extension/sparsevec.js.map +1 -0
  72. package/pg-core/columns/vector_extension/vector.cjs +61 -0
  73. package/pg-core/columns/vector_extension/vector.cjs.map +1 -0
  74. package/pg-core/columns/vector_extension/vector.d.cts +31 -0
  75. package/pg-core/columns/vector_extension/vector.d.ts +31 -0
  76. package/pg-core/columns/vector_extension/vector.js +35 -0
  77. package/pg-core/columns/vector_extension/vector.js.map +1 -0
  78. package/pg-core/dialect.cjs +3 -2
  79. package/pg-core/dialect.cjs.map +1 -1
  80. package/pg-core/dialect.d.cts +1 -1
  81. package/pg-core/dialect.d.ts +1 -1
  82. package/pg-core/dialect.js +3 -2
  83. package/pg-core/dialect.js.map +1 -1
  84. package/pg-core/indexes.cjs +63 -22
  85. package/pg-core/indexes.cjs.map +1 -1
  86. package/pg-core/indexes.d.cts +29 -22
  87. package/pg-core/indexes.d.ts +29 -22
  88. package/pg-core/indexes.js +64 -23
  89. package/pg-core/indexes.js.map +1 -1
  90. package/pg-core/table.cjs +8 -0
  91. package/pg-core/table.cjs.map +1 -1
  92. package/pg-core/table.d.cts +2 -2
  93. package/pg-core/table.d.ts +2 -2
  94. package/pg-core/table.js +8 -0
  95. package/pg-core/table.js.map +1 -1
  96. package/pg-core/utils.cjs +1 -1
  97. package/pg-core/utils.cjs.map +1 -1
  98. package/pg-core/utils.d.cts +1 -1
  99. package/pg-core/utils.d.ts +1 -1
  100. package/pg-core/utils.js +1 -1
  101. package/pg-core/utils.js.map +1 -1
  102. package/relations.cjs +1 -1
  103. package/relations.cjs.map +1 -1
  104. package/relations.js +1 -1
  105. package/relations.js.map +1 -1
  106. package/sql/functions/index.cjs +3 -1
  107. package/sql/functions/index.cjs.map +1 -1
  108. package/sql/functions/index.d.cts +1 -0
  109. package/sql/functions/index.d.ts +1 -0
  110. package/sql/functions/index.js +1 -0
  111. package/sql/functions/index.js.map +1 -1
  112. package/sql/functions/vector.cjs +78 -0
  113. package/sql/functions/vector.cjs.map +1 -0
  114. package/sql/functions/vector.d.cts +120 -0
  115. package/sql/functions/vector.d.ts +120 -0
  116. package/sql/functions/vector.js +49 -0
  117. package/sql/functions/vector.js.map +1 -0
  118. package/sql/sql.cjs +3 -0
  119. package/sql/sql.cjs.map +1 -1
  120. package/sql/sql.d.cts +1 -0
  121. package/sql/sql.d.ts +1 -0
  122. package/sql/sql.js +3 -0
  123. package/sql/sql.js.map +1 -1
  124. package/sqlite-core/dialect.cjs +3 -2
  125. package/sqlite-core/dialect.cjs.map +1 -1
  126. package/sqlite-core/dialect.d.cts +1 -1
  127. package/sqlite-core/dialect.d.ts +1 -1
  128. package/sqlite-core/dialect.js +3 -2
  129. package/sqlite-core/dialect.js.map +1 -1
  130. package/sqlite-core/session.cjs +2 -2
  131. package/sqlite-core/session.cjs.map +1 -1
  132. package/sqlite-core/session.d.cts +1 -1
  133. package/sqlite-core/session.d.ts +1 -1
  134. package/sqlite-core/session.js +1 -1
  135. package/sqlite-core/session.js.map +1 -1
  136. package/sqlite-core/table.cjs +1 -0
  137. package/sqlite-core/table.cjs.map +1 -1
  138. package/sqlite-core/table.js +1 -0
  139. package/sqlite-core/table.js.map +1 -1
  140. package/sqlite-core/utils.d.cts +1 -1
  141. package/sqlite-core/utils.d.ts +1 -1
  142. package/table.cjs +6 -0
  143. package/table.cjs.map +1 -1
  144. package/table.js +5 -0
  145. package/table.js.map +1 -1
  146. package/version.cjs +2 -2
  147. package/version.cjs.map +1 -1
  148. package/version.d.cts +2 -2
  149. package/version.d.ts +2 -2
  150. package/version.js +2 -2
  151. package/version.js.map +1 -1
@@ -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":[]}
@@ -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":[]}