drizzle-orm 0.31.0-e64a96d → 0.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/mysql-core/dialect.cjs +18 -15
- package/mysql-core/dialect.cjs.map +1 -1
- package/mysql-core/dialect.d.cts +3 -2
- package/mysql-core/dialect.d.ts +3 -2
- package/mysql-core/dialect.js +6 -3
- package/mysql-core/dialect.js.map +1 -1
- package/package.json +97 -13
- package/pg-core/columns/index.cjs +14 -2
- package/pg-core/columns/index.cjs.map +1 -1
- package/pg-core/columns/index.d.cts +7 -1
- package/pg-core/columns/index.d.ts +7 -1
- package/pg-core/columns/index.js +7 -1
- package/pg-core/columns/index.js.map +1 -1
- package/pg-core/columns/line.cjs +96 -0
- package/pg-core/columns/line.cjs.map +1 -0
- package/pg-core/columns/line.d.cts +57 -0
- package/pg-core/columns/line.d.ts +57 -0
- package/pg-core/columns/line.js +68 -0
- package/pg-core/columns/line.js.map +1 -0
- package/pg-core/columns/point.cjs +102 -0
- package/pg-core/columns/point.cjs.map +1 -0
- package/pg-core/columns/point.d.cts +60 -0
- package/pg-core/columns/point.d.ts +60 -0
- package/pg-core/columns/point.js +74 -0
- package/pg-core/columns/point.js.map +1 -0
- package/pg-core/columns/postgis_extension/geometry.cjs +96 -0
- package/pg-core/columns/postgis_extension/geometry.cjs.map +1 -0
- package/pg-core/columns/postgis_extension/geometry.d.cts +57 -0
- package/pg-core/columns/postgis_extension/geometry.d.ts +57 -0
- package/pg-core/columns/postgis_extension/geometry.js +68 -0
- package/pg-core/columns/postgis_extension/geometry.js.map +1 -0
- package/pg-core/columns/postgis_extension/utils.cjs +65 -0
- package/pg-core/columns/postgis_extension/utils.cjs.map +1 -0
- package/pg-core/columns/postgis_extension/utils.d.cts +1 -0
- package/pg-core/columns/postgis_extension/utils.d.ts +1 -0
- package/pg-core/columns/postgis_extension/utils.js +41 -0
- package/pg-core/columns/postgis_extension/utils.js.map +1 -0
- package/pg-core/columns/vector_extension/bit.cjs +58 -0
- package/pg-core/columns/vector_extension/bit.cjs.map +1 -0
- package/pg-core/columns/vector_extension/bit.d.cts +29 -0
- package/pg-core/columns/vector_extension/bit.d.ts +29 -0
- package/pg-core/columns/vector_extension/bit.js +32 -0
- package/pg-core/columns/vector_extension/bit.js.map +1 -0
- package/pg-core/columns/vector_extension/halfvec.cjs +64 -0
- package/pg-core/columns/vector_extension/halfvec.cjs.map +1 -0
- package/pg-core/columns/vector_extension/halfvec.d.cts +31 -0
- package/pg-core/columns/vector_extension/halfvec.d.ts +31 -0
- package/pg-core/columns/vector_extension/halfvec.js +38 -0
- package/pg-core/columns/vector_extension/halfvec.js.map +1 -0
- package/pg-core/columns/vector_extension/sparsevec.cjs +58 -0
- package/pg-core/columns/vector_extension/sparsevec.cjs.map +1 -0
- package/pg-core/columns/vector_extension/sparsevec.d.cts +29 -0
- package/pg-core/columns/vector_extension/sparsevec.d.ts +29 -0
- package/pg-core/columns/vector_extension/sparsevec.js +32 -0
- package/pg-core/columns/vector_extension/sparsevec.js.map +1 -0
- package/pg-core/columns/{vector.cjs → vector_extension/vector.cjs} +8 -2
- package/pg-core/columns/vector_extension/vector.cjs.map +1 -0
- package/pg-core/columns/{vector.d.cts → vector_extension/vector.d.cts} +6 -4
- package/pg-core/columns/{vector.d.ts → vector_extension/vector.d.ts} +6 -4
- package/pg-core/columns/{vector.js → vector_extension/vector.js} +8 -2
- package/pg-core/columns/vector_extension/vector.js.map +1 -0
- package/sql/functions/index.cjs +3 -1
- package/sql/functions/index.cjs.map +1 -1
- package/sql/functions/index.d.cts +1 -0
- package/sql/functions/index.d.ts +1 -0
- package/sql/functions/index.js +1 -0
- package/sql/functions/index.js.map +1 -1
- package/sql/functions/vector.cjs +41 -8
- package/sql/functions/vector.cjs.map +1 -1
- package/sql/functions/vector.d.cts +54 -5
- package/sql/functions/vector.d.ts +54 -5
- package/sql/functions/vector.js +36 -6
- package/sql/functions/vector.js.map +1 -1
- package/sqlite-core/dialect.cjs +3 -2
- package/sqlite-core/dialect.cjs.map +1 -1
- package/sqlite-core/dialect.d.cts +1 -1
- package/sqlite-core/dialect.d.ts +1 -1
- package/sqlite-core/dialect.js +3 -2
- package/sqlite-core/dialect.js.map +1 -1
- package/sqlite-core/session.cjs +2 -2
- package/sqlite-core/session.cjs.map +1 -1
- package/sqlite-core/session.d.cts +1 -1
- package/sqlite-core/session.d.ts +1 -1
- package/sqlite-core/session.js +1 -1
- package/sqlite-core/session.js.map +1 -1
- package/version.cjs +1 -1
- package/version.d.cts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/pg-core/columns/vector.cjs.map +0 -1
- package/pg-core/columns/vector.js.map +0 -1
|
@@ -0,0 +1,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("
|
|
27
|
-
var import_common = require("
|
|
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 "
|
|
2
|
-
import type { ColumnBaseConfig } from "
|
|
3
|
-
import { entityKind } from "
|
|
4
|
-
import { PgColumn, PgColumnBuilder } from "
|
|
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 "
|
|
2
|
-
import type { ColumnBaseConfig } from "
|
|
3
|
-
import { entityKind } from "
|
|
4
|
-
import { PgColumn, PgColumnBuilder } from "
|
|
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 "
|
|
2
|
-
import { PgColumn, PgColumnBuilder } from "
|
|
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":[]}
|
package/sql/functions/index.cjs
CHANGED
|
@@ -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":[]}
|
package/sql/functions/index.d.ts
CHANGED
package/sql/functions/index.js
CHANGED
|
@@ -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":[]}
|
package/sql/functions/vector.cjs
CHANGED
|
@@ -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
|
-
|
|
23
|
-
|
|
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
|
-
|
|
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
|
|
34
|
-
|
|
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
|
-
|
|
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
|
-
|
|
43
|
-
|
|
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(
|
|
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":[]}
|