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,64 @@
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 halfvec_exports = {};
20
+ __export(halfvec_exports, {
21
+ PgHalfVector: () => PgHalfVector,
22
+ PgHalfVectorBuilder: () => PgHalfVectorBuilder,
23
+ halfvec: () => halfvec
24
+ });
25
+ module.exports = __toCommonJS(halfvec_exports);
26
+ var import_entity = require("../../../entity.cjs");
27
+ var import_common = require("../common.cjs");
28
+ class PgHalfVectorBuilder extends import_common.PgColumnBuilder {
29
+ static [import_entity.entityKind] = "PgHalfVectorBuilder";
30
+ constructor(name, config) {
31
+ super(name, "array", "PgHalfVector");
32
+ this.config.dimensions = config.dimensions;
33
+ }
34
+ /** @internal */
35
+ build(table) {
36
+ return new PgHalfVector(
37
+ table,
38
+ this.config
39
+ );
40
+ }
41
+ }
42
+ class PgHalfVector extends import_common.PgColumn {
43
+ static [import_entity.entityKind] = "PgHalfVector";
44
+ dimensions = this.config.dimensions;
45
+ getSQLType() {
46
+ return `halfvec(${this.dimensions})`;
47
+ }
48
+ mapToDriverValue(value) {
49
+ return JSON.stringify(value);
50
+ }
51
+ mapFromDriverValue(value) {
52
+ return value.slice(1, -1).split(",").map((v) => Number.parseFloat(v));
53
+ }
54
+ }
55
+ function halfvec(name, config) {
56
+ return new PgHalfVectorBuilder(name, config);
57
+ }
58
+ // Annotate the CommonJS export names for ESM import in node:
59
+ 0 && (module.exports = {
60
+ PgHalfVector,
61
+ PgHalfVectorBuilder,
62
+ halfvec
63
+ });
64
+ //# sourceMappingURL=halfvec.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/pg-core/columns/vector_extension/halfvec.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyPgTable } from '~/pg-core/table.ts';\nimport { PgColumn, PgColumnBuilder } from '../common.ts';\n\nexport type PgHalfVectorBuilderInitial<TName extends string> = PgHalfVectorBuilder<{\n\tname: TName;\n\tdataType: 'array';\n\tcolumnType: 'PgHalfVector';\n\tdata: number[];\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class PgHalfVectorBuilder<T extends ColumnBuilderBaseConfig<'array', 'PgHalfVector'>> extends PgColumnBuilder<\n\tT,\n\t{ dimensions: number | undefined }\n> {\n\tstatic readonly [entityKind]: string = 'PgHalfVectorBuilder';\n\n\tconstructor(name: string, config: PgHalfVectorConfig) {\n\t\tsuper(name, 'array', 'PgHalfVector');\n\t\tthis.config.dimensions = config.dimensions;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgHalfVector<MakeColumnConfig<T, TTableName>> {\n\t\treturn new PgHalfVector<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 PgHalfVector<T extends ColumnBaseConfig<'array', 'PgHalfVector'>>\n\textends PgColumn<T, { dimensions: number | undefined }>\n{\n\tstatic readonly [entityKind]: string = 'PgHalfVector';\n\n\treadonly dimensions = this.config.dimensions;\n\n\tgetSQLType(): string {\n\t\treturn `halfvec(${this.dimensions})`;\n\t}\n\n\toverride mapToDriverValue(value: unknown): unknown {\n\t\treturn JSON.stringify(value);\n\t}\n\n\toverride mapFromDriverValue(value: string): unknown {\n\t\treturn value\n\t\t\t.slice(1, -1)\n\t\t\t.split(',')\n\t\t\t.map((v) => Number.parseFloat(v));\n\t}\n}\n\nexport interface PgHalfVectorConfig {\n\tdimensions: number;\n}\n\nexport function halfvec<TName extends string>(\n\tname: TName,\n\tconfig: PgHalfVectorConfig,\n): PgHalfVectorBuilderInitial<TName> {\n\treturn new PgHalfVectorBuilder(name, config);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAE3B,oBAA0C;AAWnC,MAAM,4BAAwF,8BAGnG;AAAA,EACD,QAAiB,wBAAU,IAAY;AAAA,EAEvC,YAAY,MAAc,QAA4B;AACrD,UAAM,MAAM,SAAS,cAAc;AACnC,SAAK,OAAO,aAAa,OAAO;AAAA,EACjC;AAAA;AAAA,EAGS,MACR,OACgD;AAChD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,qBACJ,uBACT;AAAA,EACC,QAAiB,wBAAU,IAAY;AAAA,EAE9B,aAAa,KAAK,OAAO;AAAA,EAElC,aAAqB;AACpB,WAAO,WAAW,KAAK,UAAU;AAAA,EAClC;AAAA,EAES,iBAAiB,OAAyB;AAClD,WAAO,KAAK,UAAU,KAAK;AAAA,EAC5B;AAAA,EAES,mBAAmB,OAAwB;AACnD,WAAO,MACL,MAAM,GAAG,EAAE,EACX,MAAM,GAAG,EACT,IAAI,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AAAA,EAClC;AACD;AAMO,SAAS,QACf,MACA,QACoC;AACpC,SAAO,IAAI,oBAAoB,MAAM,MAAM;AAC5C;","names":[]}
@@ -0,0 +1,31 @@
1
+ import type { ColumnBuilderBaseConfig } from "../../../column-builder.cjs";
2
+ import type { ColumnBaseConfig } from "../../../column.cjs";
3
+ import { entityKind } from "../../../entity.cjs";
4
+ import { PgColumn, PgColumnBuilder } from "../common.cjs";
5
+ export type PgHalfVectorBuilderInitial<TName extends string> = PgHalfVectorBuilder<{
6
+ name: TName;
7
+ dataType: 'array';
8
+ columnType: 'PgHalfVector';
9
+ data: number[];
10
+ driverParam: string;
11
+ enumValues: undefined;
12
+ }>;
13
+ export declare class PgHalfVectorBuilder<T extends ColumnBuilderBaseConfig<'array', 'PgHalfVector'>> extends PgColumnBuilder<T, {
14
+ dimensions: number | undefined;
15
+ }> {
16
+ static readonly [entityKind]: string;
17
+ constructor(name: string, config: PgHalfVectorConfig);
18
+ }
19
+ export declare class PgHalfVector<T extends ColumnBaseConfig<'array', 'PgHalfVector'>> extends PgColumn<T, {
20
+ dimensions: number | undefined;
21
+ }> {
22
+ static readonly [entityKind]: string;
23
+ readonly dimensions: number | undefined;
24
+ getSQLType(): string;
25
+ mapToDriverValue(value: unknown): unknown;
26
+ mapFromDriverValue(value: string): unknown;
27
+ }
28
+ export interface PgHalfVectorConfig {
29
+ dimensions: number;
30
+ }
31
+ export declare function halfvec<TName extends string>(name: TName, config: PgHalfVectorConfig): PgHalfVectorBuilderInitial<TName>;
@@ -0,0 +1,31 @@
1
+ import type { ColumnBuilderBaseConfig } from "../../../column-builder.js";
2
+ import type { ColumnBaseConfig } from "../../../column.js";
3
+ import { entityKind } from "../../../entity.js";
4
+ import { PgColumn, PgColumnBuilder } from "../common.js";
5
+ export type PgHalfVectorBuilderInitial<TName extends string> = PgHalfVectorBuilder<{
6
+ name: TName;
7
+ dataType: 'array';
8
+ columnType: 'PgHalfVector';
9
+ data: number[];
10
+ driverParam: string;
11
+ enumValues: undefined;
12
+ }>;
13
+ export declare class PgHalfVectorBuilder<T extends ColumnBuilderBaseConfig<'array', 'PgHalfVector'>> extends PgColumnBuilder<T, {
14
+ dimensions: number | undefined;
15
+ }> {
16
+ static readonly [entityKind]: string;
17
+ constructor(name: string, config: PgHalfVectorConfig);
18
+ }
19
+ export declare class PgHalfVector<T extends ColumnBaseConfig<'array', 'PgHalfVector'>> extends PgColumn<T, {
20
+ dimensions: number | undefined;
21
+ }> {
22
+ static readonly [entityKind]: string;
23
+ readonly dimensions: number | undefined;
24
+ getSQLType(): string;
25
+ mapToDriverValue(value: unknown): unknown;
26
+ mapFromDriverValue(value: string): unknown;
27
+ }
28
+ export interface PgHalfVectorConfig {
29
+ dimensions: number;
30
+ }
31
+ export declare function halfvec<TName extends string>(name: TName, config: PgHalfVectorConfig): PgHalfVectorBuilderInitial<TName>;
@@ -0,0 +1,38 @@
1
+ import { entityKind } from "../../../entity.js";
2
+ import { PgColumn, PgColumnBuilder } from "../common.js";
3
+ class PgHalfVectorBuilder extends PgColumnBuilder {
4
+ static [entityKind] = "PgHalfVectorBuilder";
5
+ constructor(name, config) {
6
+ super(name, "array", "PgHalfVector");
7
+ this.config.dimensions = config.dimensions;
8
+ }
9
+ /** @internal */
10
+ build(table) {
11
+ return new PgHalfVector(
12
+ table,
13
+ this.config
14
+ );
15
+ }
16
+ }
17
+ class PgHalfVector extends PgColumn {
18
+ static [entityKind] = "PgHalfVector";
19
+ dimensions = this.config.dimensions;
20
+ getSQLType() {
21
+ return `halfvec(${this.dimensions})`;
22
+ }
23
+ mapToDriverValue(value) {
24
+ return JSON.stringify(value);
25
+ }
26
+ mapFromDriverValue(value) {
27
+ return value.slice(1, -1).split(",").map((v) => Number.parseFloat(v));
28
+ }
29
+ }
30
+ function halfvec(name, config) {
31
+ return new PgHalfVectorBuilder(name, config);
32
+ }
33
+ export {
34
+ PgHalfVector,
35
+ PgHalfVectorBuilder,
36
+ halfvec
37
+ };
38
+ //# sourceMappingURL=halfvec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/pg-core/columns/vector_extension/halfvec.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyPgTable } from '~/pg-core/table.ts';\nimport { PgColumn, PgColumnBuilder } from '../common.ts';\n\nexport type PgHalfVectorBuilderInitial<TName extends string> = PgHalfVectorBuilder<{\n\tname: TName;\n\tdataType: 'array';\n\tcolumnType: 'PgHalfVector';\n\tdata: number[];\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class PgHalfVectorBuilder<T extends ColumnBuilderBaseConfig<'array', 'PgHalfVector'>> extends PgColumnBuilder<\n\tT,\n\t{ dimensions: number | undefined }\n> {\n\tstatic readonly [entityKind]: string = 'PgHalfVectorBuilder';\n\n\tconstructor(name: string, config: PgHalfVectorConfig) {\n\t\tsuper(name, 'array', 'PgHalfVector');\n\t\tthis.config.dimensions = config.dimensions;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgHalfVector<MakeColumnConfig<T, TTableName>> {\n\t\treturn new PgHalfVector<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 PgHalfVector<T extends ColumnBaseConfig<'array', 'PgHalfVector'>>\n\textends PgColumn<T, { dimensions: number | undefined }>\n{\n\tstatic readonly [entityKind]: string = 'PgHalfVector';\n\n\treadonly dimensions = this.config.dimensions;\n\n\tgetSQLType(): string {\n\t\treturn `halfvec(${this.dimensions})`;\n\t}\n\n\toverride mapToDriverValue(value: unknown): unknown {\n\t\treturn JSON.stringify(value);\n\t}\n\n\toverride mapFromDriverValue(value: string): unknown {\n\t\treturn value\n\t\t\t.slice(1, -1)\n\t\t\t.split(',')\n\t\t\t.map((v) => Number.parseFloat(v));\n\t}\n}\n\nexport interface PgHalfVectorConfig {\n\tdimensions: number;\n}\n\nexport function halfvec<TName extends string>(\n\tname: TName,\n\tconfig: PgHalfVectorConfig,\n): PgHalfVectorBuilderInitial<TName> {\n\treturn new PgHalfVectorBuilder(name, config);\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAE3B,SAAS,UAAU,uBAAuB;AAWnC,MAAM,4BAAwF,gBAGnG;AAAA,EACD,QAAiB,UAAU,IAAY;AAAA,EAEvC,YAAY,MAAc,QAA4B;AACrD,UAAM,MAAM,SAAS,cAAc;AACnC,SAAK,OAAO,aAAa,OAAO;AAAA,EACjC;AAAA;AAAA,EAGS,MACR,OACgD;AAChD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,qBACJ,SACT;AAAA,EACC,QAAiB,UAAU,IAAY;AAAA,EAE9B,aAAa,KAAK,OAAO;AAAA,EAElC,aAAqB;AACpB,WAAO,WAAW,KAAK,UAAU;AAAA,EAClC;AAAA,EAES,iBAAiB,OAAyB;AAClD,WAAO,KAAK,UAAU,KAAK;AAAA,EAC5B;AAAA,EAES,mBAAmB,OAAwB;AACnD,WAAO,MACL,MAAM,GAAG,EAAE,EACX,MAAM,GAAG,EACT,IAAI,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AAAA,EAClC;AACD;AAMO,SAAS,QACf,MACA,QACoC;AACpC,SAAO,IAAI,oBAAoB,MAAM,MAAM;AAC5C;","names":[]}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var sparsevec_exports = {};
20
+ __export(sparsevec_exports, {
21
+ PgSparseVector: () => PgSparseVector,
22
+ PgSparseVectorBuilder: () => PgSparseVectorBuilder,
23
+ sparsevec: () => sparsevec
24
+ });
25
+ module.exports = __toCommonJS(sparsevec_exports);
26
+ var import_entity = require("../../../entity.cjs");
27
+ var import_common = require("../common.cjs");
28
+ class PgSparseVectorBuilder extends import_common.PgColumnBuilder {
29
+ static [import_entity.entityKind] = "PgSparseVectorBuilder";
30
+ constructor(name, config) {
31
+ super(name, "string", "PgSparseVector");
32
+ this.config.dimensions = config.dimensions;
33
+ }
34
+ /** @internal */
35
+ build(table) {
36
+ return new PgSparseVector(
37
+ table,
38
+ this.config
39
+ );
40
+ }
41
+ }
42
+ class PgSparseVector extends import_common.PgColumn {
43
+ static [import_entity.entityKind] = "PgSparseVector";
44
+ dimensions = this.config.dimensions;
45
+ getSQLType() {
46
+ return `sparsevec(${this.dimensions})`;
47
+ }
48
+ }
49
+ function sparsevec(name, config) {
50
+ return new PgSparseVectorBuilder(name, config);
51
+ }
52
+ // Annotate the CommonJS export names for ESM import in node:
53
+ 0 && (module.exports = {
54
+ PgSparseVector,
55
+ PgSparseVectorBuilder,
56
+ sparsevec
57
+ });
58
+ //# sourceMappingURL=sparsevec.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/pg-core/columns/vector_extension/sparsevec.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyPgTable } from '~/pg-core/table.ts';\nimport { PgColumn, PgColumnBuilder } from '../common.ts';\n\nexport type PgSparseVectorBuilderInitial<TName extends string> = PgSparseVectorBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'PgSparseVector';\n\tdata: string;\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class PgSparseVectorBuilder<T extends ColumnBuilderBaseConfig<'string', 'PgSparseVector'>>\n\textends PgColumnBuilder<\n\t\tT,\n\t\t{ dimensions: number | undefined }\n\t>\n{\n\tstatic readonly [entityKind]: string = 'PgSparseVectorBuilder';\n\n\tconstructor(name: string, config: PgSparseVectorConfig) {\n\t\tsuper(name, 'string', 'PgSparseVector');\n\t\tthis.config.dimensions = config.dimensions;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgSparseVector<MakeColumnConfig<T, TTableName>> {\n\t\treturn new PgSparseVector<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 PgSparseVector<T extends ColumnBaseConfig<'string', 'PgSparseVector'>>\n\textends PgColumn<T, { dimensions: number | undefined }>\n{\n\tstatic readonly [entityKind]: string = 'PgSparseVector';\n\n\treadonly dimensions = this.config.dimensions;\n\n\tgetSQLType(): string {\n\t\treturn `sparsevec(${this.dimensions})`;\n\t}\n}\n\nexport interface PgSparseVectorConfig {\n\tdimensions: number;\n}\n\nexport function sparsevec<TName extends string>(\n\tname: TName,\n\tconfig: PgSparseVectorConfig,\n): PgSparseVectorBuilderInitial<TName> {\n\treturn new PgSparseVectorBuilder(name, config);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAE3B,oBAA0C;AAWnC,MAAM,8BACJ,8BAIT;AAAA,EACC,QAAiB,wBAAU,IAAY;AAAA,EAEvC,YAAY,MAAc,QAA8B;AACvD,UAAM,MAAM,UAAU,gBAAgB;AACtC,SAAK,OAAO,aAAa,OAAO;AAAA,EACjC;AAAA;AAAA,EAGS,MACR,OACkD;AAClD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,uBACJ,uBACT;AAAA,EACC,QAAiB,wBAAU,IAAY;AAAA,EAE9B,aAAa,KAAK,OAAO;AAAA,EAElC,aAAqB;AACpB,WAAO,aAAa,KAAK,UAAU;AAAA,EACpC;AACD;AAMO,SAAS,UACf,MACA,QACsC;AACtC,SAAO,IAAI,sBAAsB,MAAM,MAAM;AAC9C;","names":[]}
@@ -0,0 +1,29 @@
1
+ import type { ColumnBuilderBaseConfig } from "../../../column-builder.cjs";
2
+ import type { ColumnBaseConfig } from "../../../column.cjs";
3
+ import { entityKind } from "../../../entity.cjs";
4
+ import { PgColumn, PgColumnBuilder } from "../common.cjs";
5
+ export type PgSparseVectorBuilderInitial<TName extends string> = PgSparseVectorBuilder<{
6
+ name: TName;
7
+ dataType: 'string';
8
+ columnType: 'PgSparseVector';
9
+ data: string;
10
+ driverParam: string;
11
+ enumValues: undefined;
12
+ }>;
13
+ export declare class PgSparseVectorBuilder<T extends ColumnBuilderBaseConfig<'string', 'PgSparseVector'>> extends PgColumnBuilder<T, {
14
+ dimensions: number | undefined;
15
+ }> {
16
+ static readonly [entityKind]: string;
17
+ constructor(name: string, config: PgSparseVectorConfig);
18
+ }
19
+ export declare class PgSparseVector<T extends ColumnBaseConfig<'string', 'PgSparseVector'>> extends PgColumn<T, {
20
+ dimensions: number | undefined;
21
+ }> {
22
+ static readonly [entityKind]: string;
23
+ readonly dimensions: number | undefined;
24
+ getSQLType(): string;
25
+ }
26
+ export interface PgSparseVectorConfig {
27
+ dimensions: number;
28
+ }
29
+ export declare function sparsevec<TName extends string>(name: TName, config: PgSparseVectorConfig): PgSparseVectorBuilderInitial<TName>;
@@ -0,0 +1,29 @@
1
+ import type { ColumnBuilderBaseConfig } from "../../../column-builder.js";
2
+ import type { ColumnBaseConfig } from "../../../column.js";
3
+ import { entityKind } from "../../../entity.js";
4
+ import { PgColumn, PgColumnBuilder } from "../common.js";
5
+ export type PgSparseVectorBuilderInitial<TName extends string> = PgSparseVectorBuilder<{
6
+ name: TName;
7
+ dataType: 'string';
8
+ columnType: 'PgSparseVector';
9
+ data: string;
10
+ driverParam: string;
11
+ enumValues: undefined;
12
+ }>;
13
+ export declare class PgSparseVectorBuilder<T extends ColumnBuilderBaseConfig<'string', 'PgSparseVector'>> extends PgColumnBuilder<T, {
14
+ dimensions: number | undefined;
15
+ }> {
16
+ static readonly [entityKind]: string;
17
+ constructor(name: string, config: PgSparseVectorConfig);
18
+ }
19
+ export declare class PgSparseVector<T extends ColumnBaseConfig<'string', 'PgSparseVector'>> extends PgColumn<T, {
20
+ dimensions: number | undefined;
21
+ }> {
22
+ static readonly [entityKind]: string;
23
+ readonly dimensions: number | undefined;
24
+ getSQLType(): string;
25
+ }
26
+ export interface PgSparseVectorConfig {
27
+ dimensions: number;
28
+ }
29
+ export declare function sparsevec<TName extends string>(name: TName, config: PgSparseVectorConfig): PgSparseVectorBuilderInitial<TName>;
@@ -0,0 +1,32 @@
1
+ import { entityKind } from "../../../entity.js";
2
+ import { PgColumn, PgColumnBuilder } from "../common.js";
3
+ class PgSparseVectorBuilder extends PgColumnBuilder {
4
+ static [entityKind] = "PgSparseVectorBuilder";
5
+ constructor(name, config) {
6
+ super(name, "string", "PgSparseVector");
7
+ this.config.dimensions = config.dimensions;
8
+ }
9
+ /** @internal */
10
+ build(table) {
11
+ return new PgSparseVector(
12
+ table,
13
+ this.config
14
+ );
15
+ }
16
+ }
17
+ class PgSparseVector extends PgColumn {
18
+ static [entityKind] = "PgSparseVector";
19
+ dimensions = this.config.dimensions;
20
+ getSQLType() {
21
+ return `sparsevec(${this.dimensions})`;
22
+ }
23
+ }
24
+ function sparsevec(name, config) {
25
+ return new PgSparseVectorBuilder(name, config);
26
+ }
27
+ export {
28
+ PgSparseVector,
29
+ PgSparseVectorBuilder,
30
+ sparsevec
31
+ };
32
+ //# sourceMappingURL=sparsevec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/pg-core/columns/vector_extension/sparsevec.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyPgTable } from '~/pg-core/table.ts';\nimport { PgColumn, PgColumnBuilder } from '../common.ts';\n\nexport type PgSparseVectorBuilderInitial<TName extends string> = PgSparseVectorBuilder<{\n\tname: TName;\n\tdataType: 'string';\n\tcolumnType: 'PgSparseVector';\n\tdata: string;\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class PgSparseVectorBuilder<T extends ColumnBuilderBaseConfig<'string', 'PgSparseVector'>>\n\textends PgColumnBuilder<\n\t\tT,\n\t\t{ dimensions: number | undefined }\n\t>\n{\n\tstatic readonly [entityKind]: string = 'PgSparseVectorBuilder';\n\n\tconstructor(name: string, config: PgSparseVectorConfig) {\n\t\tsuper(name, 'string', 'PgSparseVector');\n\t\tthis.config.dimensions = config.dimensions;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgSparseVector<MakeColumnConfig<T, TTableName>> {\n\t\treturn new PgSparseVector<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 PgSparseVector<T extends ColumnBaseConfig<'string', 'PgSparseVector'>>\n\textends PgColumn<T, { dimensions: number | undefined }>\n{\n\tstatic readonly [entityKind]: string = 'PgSparseVector';\n\n\treadonly dimensions = this.config.dimensions;\n\n\tgetSQLType(): string {\n\t\treturn `sparsevec(${this.dimensions})`;\n\t}\n}\n\nexport interface PgSparseVectorConfig {\n\tdimensions: number;\n}\n\nexport function sparsevec<TName extends string>(\n\tname: TName,\n\tconfig: PgSparseVectorConfig,\n): PgSparseVectorBuilderInitial<TName> {\n\treturn new PgSparseVectorBuilder(name, config);\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAE3B,SAAS,UAAU,uBAAuB;AAWnC,MAAM,8BACJ,gBAIT;AAAA,EACC,QAAiB,UAAU,IAAY;AAAA,EAEvC,YAAY,MAAc,QAA8B;AACvD,UAAM,MAAM,UAAU,gBAAgB;AACtC,SAAK,OAAO,aAAa,OAAO;AAAA,EACjC;AAAA;AAAA,EAGS,MACR,OACkD;AAClD,WAAO,IAAI;AAAA,MACV;AAAA,MACA,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAEO,MAAM,uBACJ,SACT;AAAA,EACC,QAAiB,UAAU,IAAY;AAAA,EAE9B,aAAa,KAAK,OAAO;AAAA,EAElC,aAAqB;AACpB,WAAO,aAAa,KAAK,UAAU;AAAA,EACpC;AACD;AAMO,SAAS,UACf,MACA,QACsC;AACtC,SAAO,IAAI,sBAAsB,MAAM,MAAM;AAC9C;","names":[]}
@@ -23,8 +23,8 @@ __export(vector_exports, {
23
23
  vector: () => vector
24
24
  });
25
25
  module.exports = __toCommonJS(vector_exports);
26
- var import_entity = require("../../entity.cjs");
27
- var import_common = require("./common.cjs");
26
+ var import_entity = require("../../../entity.cjs");
27
+ var import_common = require("../common.cjs");
28
28
  class PgVectorBuilder extends import_common.PgColumnBuilder {
29
29
  static [import_entity.entityKind] = "PgVectorBuilder";
30
30
  constructor(name, config) {
@@ -42,6 +42,12 @@ class PgVector extends import_common.PgColumn {
42
42
  getSQLType() {
43
43
  return `vector(${this.dimensions})`;
44
44
  }
45
+ mapToDriverValue(value) {
46
+ return JSON.stringify(value);
47
+ }
48
+ mapFromDriverValue(value) {
49
+ return value.slice(1, -1).split(",").map((v) => Number.parseFloat(v));
50
+ }
45
51
  }
46
52
  function vector(name, config) {
47
53
  return new PgVectorBuilder(name, config);
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/pg-core/columns/vector_extension/vector.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyPgTable } from '~/pg-core/table.ts';\nimport { PgColumn, PgColumnBuilder } from '../common.ts';\n\nexport type PgVectorBuilderInitial<TName extends string> = PgVectorBuilder<{\n\tname: TName;\n\tdataType: 'array';\n\tcolumnType: 'PgVector';\n\tdata: number[];\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class PgVectorBuilder<T extends ColumnBuilderBaseConfig<'array', 'PgVector'>> extends PgColumnBuilder<\n\tT,\n\t{ dimensions: number | undefined }\n> {\n\tstatic readonly [entityKind]: string = 'PgVectorBuilder';\n\n\tconstructor(name: string, config: PgVectorConfig) {\n\t\tsuper(name, 'array', 'PgVector');\n\t\tthis.config.dimensions = config.dimensions;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgVector<MakeColumnConfig<T, TTableName>> {\n\t\treturn new PgVector<MakeColumnConfig<T, TTableName>>(table, this.config as ColumnBuilderRuntimeConfig<any, any>);\n\t}\n}\n\nexport class PgVector<T extends ColumnBaseConfig<'array', 'PgVector'>>\n\textends PgColumn<T, { dimensions: number | undefined }>\n{\n\tstatic readonly [entityKind]: string = 'PgVector';\n\n\treadonly dimensions = this.config.dimensions;\n\n\tgetSQLType(): string {\n\t\treturn `vector(${this.dimensions})`;\n\t}\n\n\toverride mapToDriverValue(value: unknown): unknown {\n\t\treturn JSON.stringify(value);\n\t}\n\n\toverride mapFromDriverValue(value: string): unknown {\n\t\treturn value\n\t\t\t.slice(1, -1)\n\t\t\t.split(',')\n\t\t\t.map((v) => Number.parseFloat(v));\n\t}\n}\n\nexport interface PgVectorConfig {\n\tdimensions: number;\n}\n\nexport function vector<TName extends string>(\n\tname: TName,\n\tconfig: PgVectorConfig,\n): PgVectorBuilderInitial<TName> {\n\treturn new PgVectorBuilder(name, config);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA2B;AAE3B,oBAA0C;AAWnC,MAAM,wBAAgF,8BAG3F;AAAA,EACD,QAAiB,wBAAU,IAAY;AAAA,EAEvC,YAAY,MAAc,QAAwB;AACjD,UAAM,MAAM,SAAS,UAAU;AAC/B,SAAK,OAAO,aAAa,OAAO;AAAA,EACjC;AAAA;AAAA,EAGS,MACR,OAC4C;AAC5C,WAAO,IAAI,SAA0C,OAAO,KAAK,MAA8C;AAAA,EAChH;AACD;AAEO,MAAM,iBACJ,uBACT;AAAA,EACC,QAAiB,wBAAU,IAAY;AAAA,EAE9B,aAAa,KAAK,OAAO;AAAA,EAElC,aAAqB;AACpB,WAAO,UAAU,KAAK,UAAU;AAAA,EACjC;AAAA,EAES,iBAAiB,OAAyB;AAClD,WAAO,KAAK,UAAU,KAAK;AAAA,EAC5B;AAAA,EAES,mBAAmB,OAAwB;AACnD,WAAO,MACL,MAAM,GAAG,EAAE,EACX,MAAM,GAAG,EACT,IAAI,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AAAA,EAClC;AACD;AAMO,SAAS,OACf,MACA,QACgC;AAChC,SAAO,IAAI,gBAAgB,MAAM,MAAM;AACxC;","names":[]}
@@ -1,7 +1,7 @@
1
- import type { ColumnBuilderBaseConfig } from "../../column-builder.cjs";
2
- import type { ColumnBaseConfig } from "../../column.cjs";
3
- import { entityKind } from "../../entity.cjs";
4
- import { PgColumn, PgColumnBuilder } from "./common.cjs";
1
+ import type { ColumnBuilderBaseConfig } from "../../../column-builder.cjs";
2
+ import type { ColumnBaseConfig } from "../../../column.cjs";
3
+ import { entityKind } from "../../../entity.cjs";
4
+ import { PgColumn, PgColumnBuilder } from "../common.cjs";
5
5
  export type PgVectorBuilderInitial<TName extends string> = PgVectorBuilder<{
6
6
  name: TName;
7
7
  dataType: 'array';
@@ -22,6 +22,8 @@ export declare class PgVector<T extends ColumnBaseConfig<'array', 'PgVector'>> e
22
22
  static readonly [entityKind]: string;
23
23
  readonly dimensions: number | undefined;
24
24
  getSQLType(): string;
25
+ mapToDriverValue(value: unknown): unknown;
26
+ mapFromDriverValue(value: string): unknown;
25
27
  }
26
28
  export interface PgVectorConfig {
27
29
  dimensions: number;
@@ -1,7 +1,7 @@
1
- import type { ColumnBuilderBaseConfig } from "../../column-builder.js";
2
- import type { ColumnBaseConfig } from "../../column.js";
3
- import { entityKind } from "../../entity.js";
4
- import { PgColumn, PgColumnBuilder } from "./common.js";
1
+ import type { ColumnBuilderBaseConfig } from "../../../column-builder.js";
2
+ import type { ColumnBaseConfig } from "../../../column.js";
3
+ import { entityKind } from "../../../entity.js";
4
+ import { PgColumn, PgColumnBuilder } from "../common.js";
5
5
  export type PgVectorBuilderInitial<TName extends string> = PgVectorBuilder<{
6
6
  name: TName;
7
7
  dataType: 'array';
@@ -22,6 +22,8 @@ export declare class PgVector<T extends ColumnBaseConfig<'array', 'PgVector'>> e
22
22
  static readonly [entityKind]: string;
23
23
  readonly dimensions: number | undefined;
24
24
  getSQLType(): string;
25
+ mapToDriverValue(value: unknown): unknown;
26
+ mapFromDriverValue(value: string): unknown;
25
27
  }
26
28
  export interface PgVectorConfig {
27
29
  dimensions: number;
@@ -1,5 +1,5 @@
1
- import { entityKind } from "../../entity.js";
2
- import { PgColumn, PgColumnBuilder } from "./common.js";
1
+ import { entityKind } from "../../../entity.js";
2
+ import { PgColumn, PgColumnBuilder } from "../common.js";
3
3
  class PgVectorBuilder extends PgColumnBuilder {
4
4
  static [entityKind] = "PgVectorBuilder";
5
5
  constructor(name, config) {
@@ -17,6 +17,12 @@ class PgVector extends PgColumn {
17
17
  getSQLType() {
18
18
  return `vector(${this.dimensions})`;
19
19
  }
20
+ mapToDriverValue(value) {
21
+ return JSON.stringify(value);
22
+ }
23
+ mapFromDriverValue(value) {
24
+ return value.slice(1, -1).split(",").map((v) => Number.parseFloat(v));
25
+ }
20
26
  }
21
27
  function vector(name, config) {
22
28
  return new PgVectorBuilder(name, config);
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/pg-core/columns/vector_extension/vector.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnBuilderRuntimeConfig, MakeColumnConfig } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { AnyPgTable } from '~/pg-core/table.ts';\nimport { PgColumn, PgColumnBuilder } from '../common.ts';\n\nexport type PgVectorBuilderInitial<TName extends string> = PgVectorBuilder<{\n\tname: TName;\n\tdataType: 'array';\n\tcolumnType: 'PgVector';\n\tdata: number[];\n\tdriverParam: string;\n\tenumValues: undefined;\n}>;\n\nexport class PgVectorBuilder<T extends ColumnBuilderBaseConfig<'array', 'PgVector'>> extends PgColumnBuilder<\n\tT,\n\t{ dimensions: number | undefined }\n> {\n\tstatic readonly [entityKind]: string = 'PgVectorBuilder';\n\n\tconstructor(name: string, config: PgVectorConfig) {\n\t\tsuper(name, 'array', 'PgVector');\n\t\tthis.config.dimensions = config.dimensions;\n\t}\n\n\t/** @internal */\n\toverride build<TTableName extends string>(\n\t\ttable: AnyPgTable<{ name: TTableName }>,\n\t): PgVector<MakeColumnConfig<T, TTableName>> {\n\t\treturn new PgVector<MakeColumnConfig<T, TTableName>>(table, this.config as ColumnBuilderRuntimeConfig<any, any>);\n\t}\n}\n\nexport class PgVector<T extends ColumnBaseConfig<'array', 'PgVector'>>\n\textends PgColumn<T, { dimensions: number | undefined }>\n{\n\tstatic readonly [entityKind]: string = 'PgVector';\n\n\treadonly dimensions = this.config.dimensions;\n\n\tgetSQLType(): string {\n\t\treturn `vector(${this.dimensions})`;\n\t}\n\n\toverride mapToDriverValue(value: unknown): unknown {\n\t\treturn JSON.stringify(value);\n\t}\n\n\toverride mapFromDriverValue(value: string): unknown {\n\t\treturn value\n\t\t\t.slice(1, -1)\n\t\t\t.split(',')\n\t\t\t.map((v) => Number.parseFloat(v));\n\t}\n}\n\nexport interface PgVectorConfig {\n\tdimensions: number;\n}\n\nexport function vector<TName extends string>(\n\tname: TName,\n\tconfig: PgVectorConfig,\n): PgVectorBuilderInitial<TName> {\n\treturn new PgVectorBuilder(name, config);\n}\n"],"mappings":"AAEA,SAAS,kBAAkB;AAE3B,SAAS,UAAU,uBAAuB;AAWnC,MAAM,wBAAgF,gBAG3F;AAAA,EACD,QAAiB,UAAU,IAAY;AAAA,EAEvC,YAAY,MAAc,QAAwB;AACjD,UAAM,MAAM,SAAS,UAAU;AAC/B,SAAK,OAAO,aAAa,OAAO;AAAA,EACjC;AAAA;AAAA,EAGS,MACR,OAC4C;AAC5C,WAAO,IAAI,SAA0C,OAAO,KAAK,MAA8C;AAAA,EAChH;AACD;AAEO,MAAM,iBACJ,SACT;AAAA,EACC,QAAiB,UAAU,IAAY;AAAA,EAE9B,aAAa,KAAK,OAAO;AAAA,EAElC,aAAqB;AACpB,WAAO,UAAU,KAAK,UAAU;AAAA,EACjC;AAAA,EAES,iBAAiB,OAAyB;AAClD,WAAO,KAAK,UAAU,KAAK;AAAA,EAC5B;AAAA,EAES,mBAAmB,OAAwB;AACnD,WAAO,MACL,MAAM,GAAG,EAAE,EACX,MAAM,GAAG,EACT,IAAI,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AAAA,EAClC;AACD;AAMO,SAAS,OACf,MACA,QACgC;AAChC,SAAO,IAAI,gBAAgB,MAAM,MAAM;AACxC;","names":[]}
@@ -16,8 +16,10 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
16
16
  var functions_exports = {};
17
17
  module.exports = __toCommonJS(functions_exports);
18
18
  __reExport(functions_exports, require("./aggregate.cjs"), module.exports);
19
+ __reExport(functions_exports, require("./vector.cjs"), module.exports);
19
20
  // Annotate the CommonJS export names for ESM import in node:
20
21
  0 && (module.exports = {
21
- ...require("./aggregate.cjs")
22
+ ...require("./aggregate.cjs"),
23
+ ...require("./vector.cjs")
22
24
  });
23
25
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/sql/functions/index.ts"],"sourcesContent":["export * from './aggregate.ts';\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AAAA;AAAA,8BAAc,2BAAd;","names":[]}
1
+ {"version":3,"sources":["../../../src/sql/functions/index.ts"],"sourcesContent":["export * from './aggregate.ts';\nexport * from './vector.ts';\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AAAA;AAAA,8BAAc,2BAAd;AACA,8BAAc,wBADd;","names":[]}
@@ -1 +1,2 @@
1
1
  export * from "./aggregate.cjs";
2
+ export * from "./vector.cjs";
@@ -1 +1,2 @@
1
1
  export * from "./aggregate.js";
2
+ export * from "./vector.js";
@@ -1,2 +1,3 @@
1
1
  export * from "./aggregate.js";
2
+ export * from "./vector.js";
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/sql/functions/index.ts"],"sourcesContent":["export * from './aggregate.ts';\n"],"mappings":"AAAA,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../src/sql/functions/index.ts"],"sourcesContent":["export * from './aggregate.ts';\nexport * from './vector.ts';\n"],"mappings":"AAAA,cAAc;AACd,cAAc;","names":[]}
@@ -19,8 +19,11 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
19
19
  var vector_exports = {};
20
20
  __export(vector_exports, {
21
21
  cosineDistance: () => cosineDistance,
22
- l2Distance: () => l2Distance,
23
- maxInnerProduct: () => maxInnerProduct
22
+ hammingDistance: () => hammingDistance,
23
+ innerProduct: () => innerProduct,
24
+ jaccardDistance: () => jaccardDistance,
25
+ l1Distance: () => l1Distance,
26
+ l2Distance: () => l2Distance
24
27
  });
25
28
  module.exports = __toCommonJS(vector_exports);
26
29
  var import_sql = require("../sql.cjs");
@@ -28,18 +31,48 @@ function toSql(value) {
28
31
  return JSON.stringify(value);
29
32
  }
30
33
  function l2Distance(column, value) {
31
- return import_sql.sql`${column} <-> ${toSql(value)}`.mapWith(Number);
34
+ if (Array.isArray(value)) {
35
+ return import_sql.sql`${column} <-> ${toSql(value)}`;
36
+ }
37
+ return import_sql.sql`${column} <-> ${value}`;
32
38
  }
33
- function maxInnerProduct(column, value) {
34
- return import_sql.sql`${column} <#> ${toSql(value)}`.mapWith(Number);
39
+ function l1Distance(column, value) {
40
+ if (Array.isArray(value)) {
41
+ return import_sql.sql`${column} <+> ${toSql(value)}`;
42
+ }
43
+ return import_sql.sql`${column} <+> ${value}`;
44
+ }
45
+ function innerProduct(column, value) {
46
+ if (Array.isArray(value)) {
47
+ return import_sql.sql`${column} <#> ${toSql(value)}`;
48
+ }
49
+ return import_sql.sql`${column} <#> ${value}`;
35
50
  }
36
51
  function cosineDistance(column, value) {
37
- return import_sql.sql`${column} <=> ${toSql(value)}`.mapWith(Number);
52
+ if (Array.isArray(value)) {
53
+ return import_sql.sql`${column} <=> ${toSql(value)}`;
54
+ }
55
+ return import_sql.sql`${column} <=> ${value}`;
56
+ }
57
+ function hammingDistance(column, value) {
58
+ if (Array.isArray(value)) {
59
+ return import_sql.sql`${column} <~> ${toSql(value)}`;
60
+ }
61
+ return import_sql.sql`${column} <~> ${value}`;
62
+ }
63
+ function jaccardDistance(column, value) {
64
+ if (Array.isArray(value)) {
65
+ return import_sql.sql`${column} <%> ${toSql(value)}`;
66
+ }
67
+ return import_sql.sql`${column} <%> ${value}`;
38
68
  }
39
69
  // Annotate the CommonJS export names for ESM import in node:
40
70
  0 && (module.exports = {
41
71
  cosineDistance,
42
- l2Distance,
43
- maxInnerProduct
72
+ hammingDistance,
73
+ innerProduct,
74
+ jaccardDistance,
75
+ l1Distance,
76
+ l2Distance
44
77
  });
45
78
  //# sourceMappingURL=vector.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/sql/functions/vector.ts"],"sourcesContent":["import type { AnyColumn } from '~/index.ts';\nimport { type SQL, sql, type SQLWrapper } from '../sql.ts';\n\nfunction toSql(value: number[]): string {\n\treturn JSON.stringify(value);\n}\n\n/**\n * Used in sorting and in querying, if used in sorting,\n * this specifies that the given column or expression should be sorted in an order\n * that minimizes the L2 distance to the given value.\n * If used in querying, this specifies that it should return the L2 distance\n * between the given column or expression and the given value.\n *\n * ## Examples\n *\n * ```ts\n * // Sort cars by embedding similarity\n * // to the given embedding\n * db.select().from(cars)\n * .orderBy(l2Distance(cars.embedding, embedding));\n * ```\n *\n * ```ts\n * // Select distance of cars and embedding\n * // to the given embedding\n * db.select({distance: l2Distance(cars.embedding, embedding)}).from(cars)\n * ```\n */\nexport function l2Distance(column: SQLWrapper | AnyColumn, value: number[]): SQL {\n\treturn sql`${column} <-> ${toSql(value)}`.mapWith(Number);\n}\n\n/**\n * Used in sorting and in querying, if used in sorting,\n * this specifies that the given column or expression should be sorted in an order\n * that minimizes the inner product distance to the given value.\n * If used in querying, this specifies that it should return the inner product distance\n * between the given column or expression and the given value.\n *\n * ## Examples\n *\n * ```ts\n * // Sort cars by embedding similarity\n * // to the given embedding\n * db.select().from(cars)\n * .orderBy(maxInnerProduct(cars.embedding, embedding));\n * ```\n *\n * ```ts\n * // Select distance of cars and embedding\n * // to the given embedding\n * db.select({distance: maxInnerProduct(cars.embedding, embedding)}).from(cars)\n * ```\n */\nexport function maxInnerProduct(\n\tcolumn: SQLWrapper | AnyColumn,\n\tvalue: number[],\n): SQL {\n\treturn sql`${column} <#> ${toSql(value)}`.mapWith(Number);\n}\n\n/**\n * Used in sorting and in querying, if used in sorting,\n * this specifies that the given column or expression should be sorted in an order\n * that minimizes the cosine distance to the given value.\n * If used in querying, this specifies that it should return the cosine distance\n * between the given column or expression and the given value.\n *\n * ## Examples\n *\n * ```ts\n * // Sort cars by embedding similarity\n * // to the given embedding\n * db.select().from(cars)\n * .orderBy(cosineDistance(cars.embedding, embedding));\n * ```\n *\n * ```ts\n * // Select distance of cars and embedding\n * // to the given embedding\n * db.select({distance: cosineDistance(cars.embedding, embedding)}).from(cars)\n * ```\n */\nexport function cosineDistance(\n\tcolumn: SQLWrapper | AnyColumn,\n\tvalue: number[],\n): SQL {\n\treturn sql`${column} <=> ${toSql(value)}`.mapWith(Number);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,iBAA+C;AAE/C,SAAS,MAAM,OAAyB;AACvC,SAAO,KAAK,UAAU,KAAK;AAC5B;AAwBO,SAAS,WAAW,QAAgC,OAAsB;AAChF,SAAO,iBAAM,MAAM,QAAQ,MAAM,KAAK,CAAC,GAAG,QAAQ,MAAM;AACzD;AAwBO,SAAS,gBACf,QACA,OACM;AACN,SAAO,iBAAM,MAAM,QAAQ,MAAM,KAAK,CAAC,GAAG,QAAQ,MAAM;AACzD;AAwBO,SAAS,eACf,QACA,OACM;AACN,SAAO,iBAAM,MAAM,QAAQ,MAAM,KAAK,CAAC,GAAG,QAAQ,MAAM;AACzD;","names":[]}
1
+ {"version":3,"sources":["../../../src/sql/functions/vector.ts"],"sourcesContent":["import type { AnyColumn } from '~/index.ts';\nimport type { TypedQueryBuilder } from '~/query-builders/query-builder.ts';\nimport { type SQL, sql, type SQLWrapper } from '../sql.ts';\n\nfunction toSql(value: number[] | string[]): string {\n\treturn JSON.stringify(value);\n}\n\n/**\n * Used in sorting and in querying, if used in sorting,\n * this specifies that the given column or expression should be sorted in an order\n * that minimizes the L2 distance to the given value.\n * If used in querying, this specifies that it should return the L2 distance\n * between the given column or expression and the given value.\n *\n * ## Examples\n *\n * ```ts\n * // Sort cars by embedding similarity\n * // to the given embedding\n * db.select().from(cars)\n * .orderBy(l2Distance(cars.embedding, embedding));\n * ```\n *\n * ```ts\n * // Select distance of cars and embedding\n * // to the given embedding\n * db.select({distance: l2Distance(cars.embedding, embedding)}).from(cars)\n * ```\n */\nexport function l2Distance(\n\tcolumn: SQLWrapper | AnyColumn,\n\tvalue: number[] | string[] | TypedQueryBuilder<any> | string,\n): SQL {\n\tif (Array.isArray(value)) {\n\t\treturn sql`${column} <-> ${toSql(value)}`;\n\t}\n\treturn sql`${column} <-> ${value}`;\n}\n\n/**\n * L1 distance is one of the possible distance measures between two probability distribution vectors and it is\n * calculated as the sum of the absolute differences.\n * The smaller the distance between the observed probability vectors, the higher the accuracy of the synthetic data\n *\n * ## Examples\n *\n * ```ts\n * // Sort cars by embedding similarity\n * // to the given embedding\n * db.select().from(cars)\n * .orderBy(l1Distance(cars.embedding, embedding));\n * ```\n *\n * ```ts\n * // Select distance of cars and embedding\n * // to the given embedding\n * db.select({distance: l1Distance(cars.embedding, embedding)}).from(cars)\n * ```\n */\nexport function l1Distance(\n\tcolumn: SQLWrapper | AnyColumn,\n\tvalue: number[] | string[] | TypedQueryBuilder<any> | string,\n): SQL {\n\tif (Array.isArray(value)) {\n\t\treturn sql`${column} <+> ${toSql(value)}`;\n\t}\n\treturn sql`${column} <+> ${value}`;\n}\n\n/**\n * Used in sorting and in querying, if used in sorting,\n * this specifies that the given column or expression should be sorted in an order\n * that minimizes the inner product distance to the given value.\n * If used in querying, this specifies that it should return the inner product distance\n * between the given column or expression and the given value.\n *\n * ## Examples\n *\n * ```ts\n * // Sort cars by embedding similarity\n * // to the given embedding\n * db.select().from(cars)\n * .orderBy(innerProduct(cars.embedding, embedding));\n * ```\n *\n * ```ts\n * // Select distance of cars and embedding\n * // to the given embedding\n * db.select({ distance: innerProduct(cars.embedding, embedding) }).from(cars)\n * ```\n */\nexport function innerProduct(\n\tcolumn: SQLWrapper | AnyColumn,\n\tvalue: number[] | string[] | TypedQueryBuilder<any> | string,\n): SQL {\n\tif (Array.isArray(value)) {\n\t\treturn sql`${column} <#> ${toSql(value)}`;\n\t}\n\treturn sql`${column} <#> ${value}`;\n}\n\n/**\n * Used in sorting and in querying, if used in sorting,\n * this specifies that the given column or expression should be sorted in an order\n * that minimizes the cosine distance to the given value.\n * If used in querying, this specifies that it should return the cosine distance\n * between the given column or expression and the given value.\n *\n * ## Examples\n *\n * ```ts\n * // Sort cars by embedding similarity\n * // to the given embedding\n * db.select().from(cars)\n * .orderBy(cosineDistance(cars.embedding, embedding));\n * ```\n *\n * ```ts\n * // Select distance of cars and embedding\n * // to the given embedding\n * db.select({distance: cosineDistance(cars.embedding, embedding)}).from(cars)\n * ```\n */\nexport function cosineDistance(\n\tcolumn: SQLWrapper | AnyColumn,\n\tvalue: number[] | string[] | TypedQueryBuilder<any> | string,\n): SQL {\n\tif (Array.isArray(value)) {\n\t\treturn sql`${column} <=> ${toSql(value)}`;\n\t}\n\treturn sql`${column} <=> ${value}`;\n}\n\n/**\n * Hamming distance between two strings or vectors of equal length is the number of positions at which the\n * corresponding symbols are different. In other words, it measures the minimum number of\n * substitutions required to change one string into the other, or equivalently,\n * the minimum number of errors that could have transformed one string into the other\n *\n * ## Examples\n *\n * ```ts\n * // Sort cars by embedding similarity\n * // to the given embedding\n * db.select().from(cars)\n * .orderBy(hammingDistance(cars.embedding, embedding));\n * ```\n */\nexport function hammingDistance(\n\tcolumn: SQLWrapper | AnyColumn,\n\tvalue: number[] | string[] | TypedQueryBuilder<any> | string,\n): SQL {\n\tif (Array.isArray(value)) {\n\t\treturn sql`${column} <~> ${toSql(value)}`;\n\t}\n\treturn sql`${column} <~> ${value}`;\n}\n\n/**\n * ## Examples\n *\n * ```ts\n * // Sort cars by embedding similarity\n * // to the given embedding\n * db.select().from(cars)\n * .orderBy(jaccardDistance(cars.embedding, embedding));\n * ```\n */\nexport function jaccardDistance(\n\tcolumn: SQLWrapper | AnyColumn,\n\tvalue: number[] | string[] | TypedQueryBuilder<any> | string,\n): SQL {\n\tif (Array.isArray(value)) {\n\t\treturn sql`${column} <%> ${toSql(value)}`;\n\t}\n\treturn sql`${column} <%> ${value}`;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,iBAA+C;AAE/C,SAAS,MAAM,OAAoC;AAClD,SAAO,KAAK,UAAU,KAAK;AAC5B;AAwBO,SAAS,WACf,QACA,OACM;AACN,MAAI,MAAM,QAAQ,KAAK,GAAG;AACzB,WAAO,iBAAM,MAAM,QAAQ,MAAM,KAAK,CAAC;AAAA,EACxC;AACA,SAAO,iBAAM,MAAM,QAAQ,KAAK;AACjC;AAsBO,SAAS,WACf,QACA,OACM;AACN,MAAI,MAAM,QAAQ,KAAK,GAAG;AACzB,WAAO,iBAAM,MAAM,QAAQ,MAAM,KAAK,CAAC;AAAA,EACxC;AACA,SAAO,iBAAM,MAAM,QAAQ,KAAK;AACjC;AAwBO,SAAS,aACf,QACA,OACM;AACN,MAAI,MAAM,QAAQ,KAAK,GAAG;AACzB,WAAO,iBAAM,MAAM,QAAQ,MAAM,KAAK,CAAC;AAAA,EACxC;AACA,SAAO,iBAAM,MAAM,QAAQ,KAAK;AACjC;AAwBO,SAAS,eACf,QACA,OACM;AACN,MAAI,MAAM,QAAQ,KAAK,GAAG;AACzB,WAAO,iBAAM,MAAM,QAAQ,MAAM,KAAK,CAAC;AAAA,EACxC;AACA,SAAO,iBAAM,MAAM,QAAQ,KAAK;AACjC;AAiBO,SAAS,gBACf,QACA,OACM;AACN,MAAI,MAAM,QAAQ,KAAK,GAAG;AACzB,WAAO,iBAAM,MAAM,QAAQ,MAAM,KAAK,CAAC;AAAA,EACxC;AACA,SAAO,iBAAM,MAAM,QAAQ,KAAK;AACjC;AAYO,SAAS,gBACf,QACA,OACM;AACN,MAAI,MAAM,QAAQ,KAAK,GAAG;AACzB,WAAO,iBAAM,MAAM,QAAQ,MAAM,KAAK,CAAC;AAAA,EACxC;AACA,SAAO,iBAAM,MAAM,QAAQ,KAAK;AACjC;","names":[]}