dsqlbase 0.1.0 → 0.1.1
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/CHANGELOG.md +8 -0
- package/dist/client/create.d.ts +73 -0
- package/dist/client/create.d.ts.map +1 -0
- package/dist/client/create.js +82 -0
- package/dist/client/create.js.map +1 -0
- package/dist/client/database/base.d.ts +8 -0
- package/dist/client/database/base.d.ts.map +1 -0
- package/dist/client/database/base.js +13 -0
- package/dist/client/database/base.js.map +1 -0
- package/dist/client/database/client.d.ts +5 -0
- package/dist/client/database/client.d.ts.map +1 -0
- package/dist/client/database/client.js +4 -0
- package/dist/client/database/client.js.map +1 -0
- package/dist/client/database/index.d.ts +9 -0
- package/dist/client/database/index.d.ts.map +1 -0
- package/dist/client/database/index.js +3 -0
- package/dist/client/database/index.js.map +1 -0
- package/dist/client/index.d.ts +6 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +5 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/model/base.d.ts +330 -0
- package/dist/client/model/base.d.ts.map +1 -0
- package/dist/client/model/base.js +7 -0
- package/dist/client/model/base.js.map +1 -0
- package/dist/client/model/client.d.ts +102 -0
- package/dist/client/model/client.d.ts.map +1 -0
- package/dist/client/model/client.js +123 -0
- package/dist/client/model/client.js.map +1 -0
- package/dist/client/model/normalizer.d.ts +19 -0
- package/dist/client/model/normalizer.d.ts.map +1 -0
- package/dist/client/model/normalizer.js +221 -0
- package/dist/client/model/normalizer.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/pg/index.d.ts +9 -0
- package/dist/pg/index.d.ts.map +1 -0
- package/dist/pg/index.js +14 -0
- package/dist/pg/index.js.map +1 -0
- package/dist/pglite/index.d.ts +9 -0
- package/dist/pglite/index.d.ts.map +1 -0
- package/dist/pglite/index.js +14 -0
- package/dist/pglite/index.js.map +1 -0
- package/dist/schema/columns/array.d.ts +16 -0
- package/dist/schema/columns/array.d.ts.map +1 -0
- package/dist/schema/columns/array.js +24 -0
- package/dist/schema/columns/array.js.map +1 -0
- package/dist/schema/columns/bigint.d.ts +11 -0
- package/dist/schema/columns/bigint.d.ts.map +1 -0
- package/dist/schema/columns/bigint.js +19 -0
- package/dist/schema/columns/bigint.js.map +1 -0
- package/dist/schema/columns/boolean.d.ts +10 -0
- package/dist/schema/columns/boolean.d.ts.map +1 -0
- package/dist/schema/columns/boolean.js +18 -0
- package/dist/schema/columns/boolean.js.map +1 -0
- package/dist/schema/columns/bytea.d.ts +8 -0
- package/dist/schema/columns/bytea.d.ts.map +1 -0
- package/dist/schema/columns/bytea.js +16 -0
- package/dist/schema/columns/bytea.js.map +1 -0
- package/dist/schema/columns/char.d.ts +10 -0
- package/dist/schema/columns/char.d.ts.map +1 -0
- package/dist/schema/columns/char.js +18 -0
- package/dist/schema/columns/char.js.map +1 -0
- package/dist/schema/columns/date.d.ts +23 -0
- package/dist/schema/columns/date.d.ts.map +1 -0
- package/dist/schema/columns/date.js +29 -0
- package/dist/schema/columns/date.js.map +1 -0
- package/dist/schema/columns/double.d.ts +13 -0
- package/dist/schema/columns/double.d.ts.map +1 -0
- package/dist/schema/columns/double.js +21 -0
- package/dist/schema/columns/double.js.map +1 -0
- package/dist/schema/columns/identity.d.ts +56 -0
- package/dist/schema/columns/identity.d.ts.map +1 -0
- package/dist/schema/columns/identity.js +65 -0
- package/dist/schema/columns/identity.js.map +1 -0
- package/dist/schema/columns/int.d.ts +11 -0
- package/dist/schema/columns/int.d.ts.map +1 -0
- package/dist/schema/columns/int.js +19 -0
- package/dist/schema/columns/int.js.map +1 -0
- package/dist/schema/columns/interval.d.ts +23 -0
- package/dist/schema/columns/interval.d.ts.map +1 -0
- package/dist/schema/columns/interval.js +40 -0
- package/dist/schema/columns/interval.js.map +1 -0
- package/dist/schema/columns/json.d.ts +9 -0
- package/dist/schema/columns/json.d.ts.map +1 -0
- package/dist/schema/columns/json.js +18 -0
- package/dist/schema/columns/json.js.map +1 -0
- package/dist/schema/columns/numeric.d.ts +11 -0
- package/dist/schema/columns/numeric.d.ts.map +1 -0
- package/dist/schema/columns/numeric.js +19 -0
- package/dist/schema/columns/numeric.js.map +1 -0
- package/dist/schema/columns/real.d.ts +13 -0
- package/dist/schema/columns/real.d.ts.map +1 -0
- package/dist/schema/columns/real.js +21 -0
- package/dist/schema/columns/real.js.map +1 -0
- package/dist/schema/columns/smallint.d.ts +11 -0
- package/dist/schema/columns/smallint.d.ts.map +1 -0
- package/dist/schema/columns/smallint.js +19 -0
- package/dist/schema/columns/smallint.js.map +1 -0
- package/dist/schema/columns/text.d.ts +9 -0
- package/dist/schema/columns/text.d.ts.map +1 -0
- package/dist/schema/columns/text.js +17 -0
- package/dist/schema/columns/text.js.map +1 -0
- package/dist/schema/columns/time.d.ts +20 -0
- package/dist/schema/columns/time.d.ts.map +1 -0
- package/dist/schema/columns/time.js +19 -0
- package/dist/schema/columns/time.js.map +1 -0
- package/dist/schema/columns/timestamp.d.ts +40 -0
- package/dist/schema/columns/timestamp.d.ts.map +1 -0
- package/dist/schema/columns/timestamp.js +48 -0
- package/dist/schema/columns/timestamp.js.map +1 -0
- package/dist/schema/columns/uuid.d.ts +17 -0
- package/dist/schema/columns/uuid.d.ts.map +1 -0
- package/dist/schema/columns/uuid.js +27 -0
- package/dist/schema/columns/uuid.js.map +1 -0
- package/dist/schema/columns/varchar.d.ts +9 -0
- package/dist/schema/columns/varchar.d.ts.map +1 -0
- package/dist/schema/columns/varchar.js +17 -0
- package/dist/schema/columns/varchar.js.map +1 -0
- package/dist/schema/domain.d.ts +19 -0
- package/dist/schema/domain.d.ts.map +1 -0
- package/dist/schema/domain.js +37 -0
- package/dist/schema/domain.js.map +1 -0
- package/dist/schema/index.d.ts +27 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +25 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/namespace.d.ts +22 -0
- package/dist/schema/namespace.d.ts.map +1 -0
- package/dist/schema/namespace.js +24 -0
- package/dist/schema/namespace.js.map +1 -0
- package/dist/schema/relations.d.ts +12 -0
- package/dist/schema/relations.d.ts.map +1 -0
- package/dist/schema/relations.js +29 -0
- package/dist/schema/relations.js.map +1 -0
- package/dist/schema/sequence.d.ts +14 -0
- package/dist/schema/sequence.d.ts.map +1 -0
- package/dist/schema/sequence.js +16 -0
- package/dist/schema/sequence.js.map +1 -0
- package/dist/schema/table.d.ts +20 -0
- package/dist/schema/table.d.ts.map +1 -0
- package/dist/schema/table.js +22 -0
- package/dist/schema/table.js.map +1 -0
- package/dist/schema/utils/date.d.ts +33 -0
- package/dist/schema/utils/date.d.ts.map +1 -0
- package/dist/schema/utils/date.js +62 -0
- package/dist/schema/utils/date.js.map +1 -0
- package/dist/schema/utils/duration.d.ts +66 -0
- package/dist/schema/utils/duration.d.ts.map +1 -0
- package/dist/schema/utils/duration.js +167 -0
- package/dist/schema/utils/duration.js.map +1 -0
- package/dist/schema/utils/json.d.ts +2 -0
- package/dist/schema/utils/json.d.ts.map +1 -0
- package/dist/schema/utils/json.js +12 -0
- package/dist/schema/utils/json.js.map +1 -0
- package/package.json +33 -7
- package/dist/schema.d.ts +0 -2
- package/dist/schema.d.ts.map +0 -1
- package/dist/schema.js +0 -8
- package/dist/schema.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"real.js","sourceRoot":"","sources":["../../../src/schema/columns/real.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEhE;;;;;;;;GAQG;AACH,MAAM,UAAU,IAAI,CAA6B,IAAW;IAC1D,OAAO,IAAI,gBAAgB,CAAsC,IAAI,EAAE;QACrE,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE;YACL,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE;YACnC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;SACrC;KACF,CAAC,CAAC;AACL,CAAC;AAED,OAAO,EAAE,IAAI,IAAI,MAAM,EAAE,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ColumnConfig, ColumnDefinition } from "@dsqlbase/core";
|
|
2
|
+
/**
|
|
3
|
+
* Defines a `smallint` (2 bytes) data type column in the database schema.
|
|
4
|
+
*
|
|
5
|
+
* Range: `-32_768 to +32_767`
|
|
6
|
+
* @param name Column name in database
|
|
7
|
+
* @returns Serializable column definition for a smallint column.
|
|
8
|
+
*/
|
|
9
|
+
export declare function smallint<const TName extends string>(name: TName): ColumnDefinition<TName, ColumnConfig<number, string>>;
|
|
10
|
+
export { smallint as int2 };
|
|
11
|
+
//# sourceMappingURL=smallint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smallint.d.ts","sourceRoot":"","sources":["../../../src/schema/columns/smallint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEhE;;;;;;GAMG;AAEH,wBAAgB,QAAQ,CAAC,KAAK,CAAC,KAAK,SAAS,MAAM,EAAE,IAAI,EAAE,KAAK,yDAQ/D;AAED,OAAO,EAAE,QAAQ,IAAI,IAAI,EAAE,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ColumnDefinition } from "@dsqlbase/core";
|
|
2
|
+
/**
|
|
3
|
+
* Defines a `smallint` (2 bytes) data type column in the database schema.
|
|
4
|
+
*
|
|
5
|
+
* Range: `-32_768 to +32_767`
|
|
6
|
+
* @param name Column name in database
|
|
7
|
+
* @returns Serializable column definition for a smallint column.
|
|
8
|
+
*/
|
|
9
|
+
export function smallint(name) {
|
|
10
|
+
return new ColumnDefinition(name, {
|
|
11
|
+
dataType: "smallint",
|
|
12
|
+
codec: {
|
|
13
|
+
encode: (value) => value.toString(),
|
|
14
|
+
decode: (value) => parseInt(value, 10),
|
|
15
|
+
},
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
export { smallint as int2 };
|
|
19
|
+
//# sourceMappingURL=smallint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smallint.js","sourceRoot":"","sources":["../../../src/schema/columns/smallint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEhE;;;;;;GAMG;AAEH,MAAM,UAAU,QAAQ,CAA6B,IAAW;IAC9D,OAAO,IAAI,gBAAgB,CAAsC,IAAI,EAAE;QACrE,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE;YACL,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE;YACnC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;SACvC;KACF,CAAC,CAAC;AACL,CAAC;AAED,OAAO,EAAE,QAAQ,IAAI,IAAI,EAAE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ColumnConfig, ColumnDefinition } from "@dsqlbase/core/definition";
|
|
2
|
+
/**
|
|
3
|
+
* Defines a `text` type column in the database schema.
|
|
4
|
+
*
|
|
5
|
+
* @param name Name of the column in database
|
|
6
|
+
* @returns Serializable column definition for a text column.
|
|
7
|
+
*/
|
|
8
|
+
export declare function text<TName extends string>(name: TName): ColumnDefinition<TName, ColumnConfig<string, string>>;
|
|
9
|
+
//# sourceMappingURL=text.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../src/schema/columns/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE3E;;;;;GAKG;AAEH,wBAAgB,IAAI,CAAC,KAAK,SAAS,MAAM,EAAE,IAAI,EAAE,KAAK,yDAQrD"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ColumnDefinition } from "@dsqlbase/core/definition";
|
|
2
|
+
/**
|
|
3
|
+
* Defines a `text` type column in the database schema.
|
|
4
|
+
*
|
|
5
|
+
* @param name Name of the column in database
|
|
6
|
+
* @returns Serializable column definition for a text column.
|
|
7
|
+
*/
|
|
8
|
+
export function text(name) {
|
|
9
|
+
return new ColumnDefinition(name, {
|
|
10
|
+
dataType: "text",
|
|
11
|
+
codec: {
|
|
12
|
+
encode: (value) => value,
|
|
13
|
+
decode: (value) => value,
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/schema/columns/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE3E;;;;;GAKG;AAEH,MAAM,UAAU,IAAI,CAAuB,IAAW;IACpD,OAAO,IAAI,gBAAgB,CAAsC,IAAI,EAAE;QACrE,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE;YACL,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;YACxB,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;SACzB;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ColumnConfig, ColumnDefinition } from "@dsqlbase/core";
|
|
2
|
+
export interface TimeColumnOptions {
|
|
3
|
+
/**
|
|
4
|
+
* Determines how the time is parsed and formatted, at runtime:
|
|
5
|
+
* - `"string"`: The column will handle time values as strings in 'HH:mm:ss' format.
|
|
6
|
+
* - `"iso"`: The column will handle time values as ISO 8601 time strings (e.g., 'HH:mm:ss.sssZ').
|
|
7
|
+
*
|
|
8
|
+
* @default "string"
|
|
9
|
+
*/
|
|
10
|
+
mode?: "string" | "iso";
|
|
11
|
+
/**
|
|
12
|
+
* Whether to include timezone information when encoding/decoding time values:
|
|
13
|
+
* - `true`: Column is defined as `time with time zone` and will handle time values with timezone information (e.g., 'HH:mm:ssZ' or 'HH:mm:ss+00:00').
|
|
14
|
+
* - `false`: Column is defined as `time without time zone` and will handle time values without timezone information (e.g., 'HH:mm:ss').
|
|
15
|
+
* @default false
|
|
16
|
+
*/
|
|
17
|
+
tz?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export declare function time<const TName extends string, const TOptions extends TimeColumnOptions>(name: TName, options?: TOptions): ColumnDefinition<TName, ColumnConfig<string | Date, string>>;
|
|
20
|
+
//# sourceMappingURL=time.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../../src/schema/columns/time.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGhE,MAAM,WAAW,iBAAiB;IAChC;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IAExB;;;;;OAKG;IACH,EAAE,CAAC,EAAE,OAAO,CAAC;CACd;AAED,wBAAgB,IAAI,CAAC,KAAK,CAAC,KAAK,SAAS,MAAM,EAAE,KAAK,CAAC,QAAQ,SAAS,iBAAiB,EACvF,IAAI,EAAE,KAAK,EACX,OAAO,CAAC,EAAE,QAAQ,gEAiBnB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ColumnDefinition } from "@dsqlbase/core";
|
|
2
|
+
import { formatTime } from "../utils/date.js";
|
|
3
|
+
export function time(name, options) {
|
|
4
|
+
const withTimezone = options?.tz ?? false;
|
|
5
|
+
const dataType = withTimezone ? "time with time zone" : "time";
|
|
6
|
+
return new ColumnDefinition(name, {
|
|
7
|
+
dataType,
|
|
8
|
+
codec: {
|
|
9
|
+
encode: (value) => {
|
|
10
|
+
if (value instanceof Date) {
|
|
11
|
+
return formatTime(value, { tz: withTimezone });
|
|
12
|
+
}
|
|
13
|
+
return value;
|
|
14
|
+
},
|
|
15
|
+
decode: (value) => value,
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=time.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time.js","sourceRoot":"","sources":["../../../src/schema/columns/time.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAqB9C,MAAM,UAAU,IAAI,CAClB,IAAW,EACX,OAAkB;IAElB,MAAM,YAAY,GAAG,OAAO,EAAE,EAAE,IAAI,KAAK,CAAC;IAC1C,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,MAAM,CAAC;IAE/D,OAAO,IAAI,gBAAgB,CAA6C,IAAI,EAAE;QAC5E,QAAQ;QACR,KAAK,EAAE;YACL,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;gBAChB,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;oBAC1B,OAAO,UAAU,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;gBACjD,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;YACD,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;SACzB;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { ColumnConfig, ColumnDefinition } from "@dsqlbase/core/definition";
|
|
2
|
+
import { DateTimeMode } from "../utils/date.js";
|
|
3
|
+
import { DateValueType } from "./date.js";
|
|
4
|
+
import { HasDefault } from "@dsqlbase/core/utils";
|
|
5
|
+
export interface TimestampColumnConfig<TValueType = unknown, TRawType = unknown> extends ColumnConfig<TValueType, TRawType> {
|
|
6
|
+
withTimezone?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare class TimestampColumnDefinition<TName extends string, TConfig extends TimestampColumnConfig> extends ColumnDefinition<TName, TConfig> {
|
|
9
|
+
private _withTimezone;
|
|
10
|
+
constructor(name: TName, config?: Partial<TConfig>);
|
|
11
|
+
defaultNow(): HasDefault<this>;
|
|
12
|
+
}
|
|
13
|
+
export interface DateTimeColumnOptions {
|
|
14
|
+
/**
|
|
15
|
+
* Determines how the datetime is parsed and formatted, at runtime:
|
|
16
|
+
* - `"iso"`: The column will handle datetime values as ISO 8601 strings (e.g., 'YYYY-MM-DDTHH:mm:ss.sssZ').
|
|
17
|
+
* - `"string"`: The column will handle datetime values as human-readable strings (e.g., 'Wed Sep 15 2021 14:48:00 GMT+0000 (Coordinated Universal Time)').
|
|
18
|
+
* - `"date"`: The column will handle datetime values as JavaScript Date objects.
|
|
19
|
+
*
|
|
20
|
+
* @default "date"
|
|
21
|
+
*/
|
|
22
|
+
mode?: DateTimeMode;
|
|
23
|
+
/**
|
|
24
|
+
* Whether to include timezone information when encoding/decoding datetime values:
|
|
25
|
+
* - `true`: Column is defined as `timestamp with time zone` and will handle datetime values with timezone information (e.g., 'YYYY-MM-DDTHH:mm:ssZ' or 'YYYY-MM-DDTHH:mm:ss+00:00').
|
|
26
|
+
* - `false`: Column is defined as `timestamp without time zone` and will handle datetime values without timezone information (e.g., 'YYYY-MM-DDTHH:mm:ss').
|
|
27
|
+
* @default true
|
|
28
|
+
*/
|
|
29
|
+
tz?: boolean;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Defines a `timestamp` type column in the database schema.
|
|
33
|
+
*
|
|
34
|
+
* @param name Column name
|
|
35
|
+
* @param options Optional configuration for datetime parsing and formatting
|
|
36
|
+
* @returns Serializable column definition for a datetime column.
|
|
37
|
+
*/
|
|
38
|
+
export declare function timestamp<const TName extends string, const TOptions extends DateTimeColumnOptions>(name: TName, options?: TOptions): TimestampColumnDefinition<TName, TimestampColumnConfig<DateValueType<TOptions>, string>>;
|
|
39
|
+
export { timestamp as datetime };
|
|
40
|
+
//# sourceMappingURL=timestamp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timestamp.d.ts","sourceRoot":"","sources":["../../../src/schema/columns/timestamp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAkC,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGlD,MAAM,WAAW,qBAAqB,CACpC,UAAU,GAAG,OAAO,EACpB,QAAQ,GAAG,OAAO,CAClB,SAAQ,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC;IAC1C,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,qBAAa,yBAAyB,CACpC,KAAK,SAAS,MAAM,EACpB,OAAO,SAAS,qBAAqB,CACrC,SAAQ,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC;IACxC,OAAO,CAAC,aAAa,CAAU;gBAEnB,IAAI,EAAE,KAAK,EAAE,MAAM,GAAE,OAAO,CAAC,OAAO,CAAM;IAM/C,UAAU,IAAI,UAAU,CAAC,IAAI,CAAC;CAOtC;AAED,MAAM,WAAW,qBAAqB;IACpC;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,YAAY,CAAC;IAEpB;;;;;OAKG;IACH,EAAE,CAAC,EAAE,OAAO,CAAC;CACd;AAED;;;;;;GAMG;AAEH,wBAAgB,SAAS,CAAC,KAAK,CAAC,KAAK,SAAS,MAAM,EAAE,KAAK,CAAC,QAAQ,SAAS,qBAAqB,EAChG,IAAI,EAAE,KAAK,EACX,OAAO,CAAC,EAAE,QAAQ,4FA4BnB;AAED,OAAO,EAAE,SAAS,IAAI,QAAQ,EAAE,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { ColumnDefinition } from "@dsqlbase/core/definition";
|
|
2
|
+
import { formatTimestamp, safeParseDate } from "../utils/date.js";
|
|
3
|
+
import { sql } from "@dsqlbase/core";
|
|
4
|
+
export class TimestampColumnDefinition extends ColumnDefinition {
|
|
5
|
+
_withTimezone;
|
|
6
|
+
constructor(name, config = {}) {
|
|
7
|
+
super(name, config);
|
|
8
|
+
this._withTimezone = config.withTimezone ?? false;
|
|
9
|
+
}
|
|
10
|
+
defaultNow() {
|
|
11
|
+
this._defaultValue = this._withTimezone
|
|
12
|
+
? sql.raw("current_timestamp")
|
|
13
|
+
: sql.raw("localtimestamp");
|
|
14
|
+
return this;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Defines a `timestamp` type column in the database schema.
|
|
19
|
+
*
|
|
20
|
+
* @param name Column name
|
|
21
|
+
* @param options Optional configuration for datetime parsing and formatting
|
|
22
|
+
* @returns Serializable column definition for a datetime column.
|
|
23
|
+
*/
|
|
24
|
+
export function timestamp(name, options) {
|
|
25
|
+
const withTimezone = options?.tz ?? true;
|
|
26
|
+
const dataType = withTimezone ? "timestamp with time zone" : "timestamp";
|
|
27
|
+
return new TimestampColumnDefinition(name, {
|
|
28
|
+
dataType,
|
|
29
|
+
withTimezone,
|
|
30
|
+
codec: {
|
|
31
|
+
encode: (value) => formatTimestamp(safeParseDate(value), { tz: withTimezone }),
|
|
32
|
+
decode: (value) => {
|
|
33
|
+
const date = safeParseDate(value);
|
|
34
|
+
switch (options?.mode) {
|
|
35
|
+
case "iso":
|
|
36
|
+
return date.toISOString();
|
|
37
|
+
case "string":
|
|
38
|
+
return formatTimestamp(date, { tz: withTimezone });
|
|
39
|
+
case "date":
|
|
40
|
+
default:
|
|
41
|
+
return date;
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
export { timestamp as datetime };
|
|
48
|
+
//# sourceMappingURL=timestamp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timestamp.js","sourceRoot":"","sources":["../../../src/schema/columns/timestamp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAgB,eAAe,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGhF,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AASrC,MAAM,OAAO,yBAGX,SAAQ,gBAAgC;IAChC,aAAa,CAAU;IAE/B,YAAY,IAAW,EAAE,SAA2B,EAAE;QACpD,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAEpB,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,YAAY,IAAI,KAAK,CAAC;IACpD,CAAC;IAEM,UAAU;QACf,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa;YACrC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC;YAC9B,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAE9B,OAAO,IAAwB,CAAC;IAClC,CAAC;CACF;AAsBD;;;;;;GAMG;AAEH,MAAM,UAAU,SAAS,CACvB,IAAW,EACX,OAAkB;IAElB,MAAM,YAAY,GAAG,OAAO,EAAE,EAAE,IAAI,IAAI,CAAC;IACzC,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,WAAW,CAAC;IAEzE,OAAO,IAAI,yBAAyB,CAGlC,IAAI,EAAE;QACN,QAAQ;QACR,YAAY;QACZ,KAAK,EAAE;YACL,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC;YAC9E,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;gBAChB,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;gBAElC,QAAQ,OAAO,EAAE,IAAI,EAAE,CAAC;oBACtB,KAAK,KAAK;wBACR,OAAO,IAAI,CAAC,WAAW,EAA6B,CAAC;oBACvD,KAAK,QAAQ;wBACX,OAAO,eAAe,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,CAA4B,CAAC;oBAChF,KAAK,MAAM,CAAC;oBACZ;wBACE,OAAO,IAA+B,CAAC;gBAC3C,CAAC;YACH,CAAC;SACF;KACF,CAAC,CAAC;AACL,CAAC;AAED,OAAO,EAAE,SAAS,IAAI,QAAQ,EAAE,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ColumnConfig, ColumnDefinition } from "@dsqlbase/core";
|
|
2
|
+
import { HasDefault } from "@dsqlbase/core/utils";
|
|
3
|
+
export declare class UUIDColumnDefinition<TName extends string, TConfig extends ColumnConfig> extends ColumnDefinition<TName, TConfig> {
|
|
4
|
+
/**
|
|
5
|
+
* Sets `gen_random_uuid()` as the default value for this UUID column, at database level.
|
|
6
|
+
* @returns *`this`*
|
|
7
|
+
*/
|
|
8
|
+
defaultRandom(): HasDefault<this>;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Defines a `UUID` data type column in the database schema.
|
|
12
|
+
*
|
|
13
|
+
* @param name Name of the column in database
|
|
14
|
+
* @returns Serializable column definition for a UUID column.
|
|
15
|
+
*/
|
|
16
|
+
export declare function uuid<TName extends string>(name: TName): UUIDColumnDefinition<TName, ColumnConfig<string, string>>;
|
|
17
|
+
//# sourceMappingURL=uuid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uuid.d.ts","sourceRoot":"","sources":["../../../src/schema/columns/uuid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAO,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,qBAAa,oBAAoB,CAC/B,KAAK,SAAS,MAAM,EACpB,OAAO,SAAS,YAAY,CAC5B,SAAQ,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC;IACxC;;;OAGG;IACI,aAAa,IAAI,UAAU,CAAC,IAAI,CAAC;CAIzC;AAED;;;;;GAKG;AAEH,wBAAgB,IAAI,CAAC,KAAK,SAAS,MAAM,EAAE,IAAI,EAAE,KAAK,6DAQrD"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ColumnDefinition, sql } from "@dsqlbase/core";
|
|
2
|
+
export class UUIDColumnDefinition extends ColumnDefinition {
|
|
3
|
+
/**
|
|
4
|
+
* Sets `gen_random_uuid()` as the default value for this UUID column, at database level.
|
|
5
|
+
* @returns *`this`*
|
|
6
|
+
*/
|
|
7
|
+
defaultRandom() {
|
|
8
|
+
this._defaultValue = sql.raw("gen_random_uuid()");
|
|
9
|
+
return this;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Defines a `UUID` data type column in the database schema.
|
|
14
|
+
*
|
|
15
|
+
* @param name Name of the column in database
|
|
16
|
+
* @returns Serializable column definition for a UUID column.
|
|
17
|
+
*/
|
|
18
|
+
export function uuid(name) {
|
|
19
|
+
return new UUIDColumnDefinition(name, {
|
|
20
|
+
dataType: "uuid",
|
|
21
|
+
codec: {
|
|
22
|
+
encode: (value) => value,
|
|
23
|
+
decode: (value) => value,
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=uuid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uuid.js","sourceRoot":"","sources":["../../../src/schema/columns/uuid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,gBAAgB,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAGrE,MAAM,OAAO,oBAGX,SAAQ,gBAAgC;IACxC;;;OAGG;IACI,aAAa;QAClB,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAClD,OAAO,IAAwB,CAAC;IAClC,CAAC;CACF;AAED;;;;;GAKG;AAEH,MAAM,UAAU,IAAI,CAAuB,IAAW;IACpD,OAAO,IAAI,oBAAoB,CAAsC,IAAI,EAAE;QACzE,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE;YACL,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;YACxB,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;SACzB;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ColumnConfig, ColumnDefinition } from "@dsqlbase/core";
|
|
2
|
+
/**
|
|
3
|
+
* Defines a `varchar(n)` type column in the database schema.
|
|
4
|
+
* @param name Name of the column in database
|
|
5
|
+
* @param length Maximum length of the varchar field
|
|
6
|
+
* @returns Serializable column definition for a varchar column.
|
|
7
|
+
*/
|
|
8
|
+
export declare function varchar<const TName extends string, const TLength extends number>(name: TName, length: TLength): ColumnDefinition<TName, ColumnConfig<string, string>>;
|
|
9
|
+
//# sourceMappingURL=varchar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"varchar.d.ts","sourceRoot":"","sources":["../../../src/schema/columns/varchar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEhE;;;;;GAKG;AAEH,wBAAgB,OAAO,CAAC,KAAK,CAAC,KAAK,SAAS,MAAM,EAAE,KAAK,CAAC,OAAO,SAAS,MAAM,EAC9E,IAAI,EAAE,KAAK,EACX,MAAM,EAAE,OAAO,yDAShB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ColumnDefinition } from "@dsqlbase/core";
|
|
2
|
+
/**
|
|
3
|
+
* Defines a `varchar(n)` type column in the database schema.
|
|
4
|
+
* @param name Name of the column in database
|
|
5
|
+
* @param length Maximum length of the varchar field
|
|
6
|
+
* @returns Serializable column definition for a varchar column.
|
|
7
|
+
*/
|
|
8
|
+
export function varchar(name, length) {
|
|
9
|
+
return new ColumnDefinition(name, {
|
|
10
|
+
dataType: `varchar(${length})`,
|
|
11
|
+
codec: {
|
|
12
|
+
encode: (value) => value,
|
|
13
|
+
decode: (value) => value,
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=varchar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"varchar.js","sourceRoot":"","sources":["../../../src/schema/columns/varchar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEhE;;;;;GAKG;AAEH,MAAM,UAAU,OAAO,CACrB,IAAW,EACX,MAAe;IAEf,OAAO,IAAI,gBAAgB,CAAsC,IAAI,EAAE;QACrE,QAAQ,EAAE,WAAW,MAAM,GAAG;QAC9B,KAAK,EAAE;YACL,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;YACxB,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;SACzB;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { AnyNamespaceDefinition, DomainDefinition } from "@dsqlbase/core";
|
|
2
|
+
/**
|
|
3
|
+
* Creates a domain definition.
|
|
4
|
+
* A domain is a user-defined data type that can be used to define columns in tables. It allows you to specify constraints and validation rules for the data stored in the column.
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* const emailDomain = domain("email")
|
|
8
|
+
* .check((value) => sql`${value} LIKE '%@%'`, "email_format_check");
|
|
9
|
+
*
|
|
10
|
+
* const usersTable = table("users", {
|
|
11
|
+
* email: emailDomain.column("email"),
|
|
12
|
+
* });
|
|
13
|
+
* ```
|
|
14
|
+
* @param name The name of the domain.
|
|
15
|
+
* @returns A new DomainDefinition instance.
|
|
16
|
+
*/
|
|
17
|
+
export declare function domain<TName extends string>(name: TName): DomainDefinition<TName, string, string, AnyNamespaceDefinition>;
|
|
18
|
+
export declare function $enum<TName extends string, const TValues extends string[]>(name: TName, values: TValues): DomainDefinition<TName, TValues[number], string, AnyNamespaceDefinition>;
|
|
19
|
+
//# sourceMappingURL=domain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../src/schema/domain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAO,MAAM,gBAAgB,CAAC;AAE/E;;;;;;;;;;;;;;GAcG;AAEH,wBAAgB,MAAM,CAAC,KAAK,SAAS,MAAM,EAAE,IAAI,EAAE,KAAK,mEASvD;AAED,wBAAgB,KAAK,CAAC,KAAK,SAAS,MAAM,EAAE,KAAK,CAAC,OAAO,SAAS,MAAM,EAAE,EACxE,IAAI,EAAE,KAAK,EACX,MAAM,EAAE,OAAO,4EAchB"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { DomainDefinition, sql } from "@dsqlbase/core";
|
|
2
|
+
/**
|
|
3
|
+
* Creates a domain definition.
|
|
4
|
+
* A domain is a user-defined data type that can be used to define columns in tables. It allows you to specify constraints and validation rules for the data stored in the column.
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* const emailDomain = domain("email")
|
|
8
|
+
* .check((value) => sql`${value} LIKE '%@%'`, "email_format_check");
|
|
9
|
+
*
|
|
10
|
+
* const usersTable = table("users", {
|
|
11
|
+
* email: emailDomain.column("email"),
|
|
12
|
+
* });
|
|
13
|
+
* ```
|
|
14
|
+
* @param name The name of the domain.
|
|
15
|
+
* @returns A new DomainDefinition instance.
|
|
16
|
+
*/
|
|
17
|
+
export function domain(name) {
|
|
18
|
+
return new DomainDefinition(name, {
|
|
19
|
+
notNull: false,
|
|
20
|
+
dataType: "text",
|
|
21
|
+
codec: {
|
|
22
|
+
encode: (value) => value,
|
|
23
|
+
decode: (value) => value,
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
export function $enum(name, values) {
|
|
28
|
+
const domain = new DomainDefinition(name, {
|
|
29
|
+
dataType: "text",
|
|
30
|
+
codec: {
|
|
31
|
+
encode: (value) => value,
|
|
32
|
+
decode: (value) => value,
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
return domain.check((v) => sql.in(v, values), `${name}_enum_check`);
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=domain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain.js","sourceRoot":"","sources":["../../src/schema/domain.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,gBAAgB,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAE/E;;;;;;;;;;;;;;GAcG;AAEH,MAAM,UAAU,MAAM,CAAuB,IAAW;IACtD,OAAO,IAAI,gBAAgB,CAAgD,IAAI,EAAE;QAC/E,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE;YACL,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;YACxB,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;SACzB;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,KAAK,CACnB,IAAW,EACX,MAAe;IAEf,MAAM,MAAM,GAAG,IAAI,gBAAgB,CACjC,IAAI,EACJ;QACE,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE;YACL,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;YACxB,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;SACzB;KACF,CACF,CAAC;IAEF,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,GAAG,IAAI,aAAa,CAAC,CAAC;AACtE,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export { array } from "./columns/array.js";
|
|
2
|
+
export { bigint, int8 } from "./columns/bigint.js";
|
|
3
|
+
export { boolean, bool } from "./columns/boolean.js";
|
|
4
|
+
export { bytea } from "./columns/bytea.js";
|
|
5
|
+
export { char } from "./columns/char.js";
|
|
6
|
+
export { date, type DateValueType, type DateColumnOptions } from "./columns/date.js";
|
|
7
|
+
export { double, float8 } from "./columns/double.js";
|
|
8
|
+
export { identity, IdentityColumnDefinition, type IdentityColumnOptions, } from "./columns/identity.js";
|
|
9
|
+
export { int, int4 } from "./columns/int.js";
|
|
10
|
+
export { interval, duration, type IntervalColumnOptions } from "./columns/interval.js";
|
|
11
|
+
export { json } from "./columns/json.js";
|
|
12
|
+
export { decimal, numeric } from "./columns/numeric.js";
|
|
13
|
+
export { real, float4 } from "./columns/real.js";
|
|
14
|
+
export { smallint, int2 } from "./columns/smallint.js";
|
|
15
|
+
export { text } from "./columns/text.js";
|
|
16
|
+
export { time, type TimeColumnOptions } from "./columns/time.js";
|
|
17
|
+
export { timestamp, datetime, type DateTimeColumnOptions } from "./columns/timestamp.js";
|
|
18
|
+
export { uuid, UUIDColumnDefinition } from "./columns/uuid.js";
|
|
19
|
+
export { varchar } from "./columns/varchar.js";
|
|
20
|
+
export { domain, $enum } from "./domain.js";
|
|
21
|
+
export { namespace, schema } from "./namespace.js";
|
|
22
|
+
export { sequence } from "./sequence.js";
|
|
23
|
+
export { table } from "./table.js";
|
|
24
|
+
export { relations, belongsTo, hasMany, hasOne } from "./relations.js";
|
|
25
|
+
export { type Duration } from "./utils/duration.js";
|
|
26
|
+
export { type DateTimeMode } from "./utils/date.js";
|
|
27
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,KAAK,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EACL,QAAQ,EACR,wBAAwB,EACxB,KAAK,qBAAqB,GAC3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACzF,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAEvE,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export { array } from "./columns/array.js";
|
|
2
|
+
export { bigint, int8 } from "./columns/bigint.js";
|
|
3
|
+
export { boolean, bool } from "./columns/boolean.js";
|
|
4
|
+
export { bytea } from "./columns/bytea.js";
|
|
5
|
+
export { char } from "./columns/char.js";
|
|
6
|
+
export { date } from "./columns/date.js";
|
|
7
|
+
export { double, float8 } from "./columns/double.js";
|
|
8
|
+
export { identity, IdentityColumnDefinition, } from "./columns/identity.js";
|
|
9
|
+
export { int, int4 } from "./columns/int.js";
|
|
10
|
+
export { interval, duration } from "./columns/interval.js";
|
|
11
|
+
export { json } from "./columns/json.js";
|
|
12
|
+
export { decimal, numeric } from "./columns/numeric.js";
|
|
13
|
+
export { real, float4 } from "./columns/real.js";
|
|
14
|
+
export { smallint, int2 } from "./columns/smallint.js";
|
|
15
|
+
export { text } from "./columns/text.js";
|
|
16
|
+
export { time } from "./columns/time.js";
|
|
17
|
+
export { timestamp, datetime } from "./columns/timestamp.js";
|
|
18
|
+
export { uuid, UUIDColumnDefinition } from "./columns/uuid.js";
|
|
19
|
+
export { varchar } from "./columns/varchar.js";
|
|
20
|
+
export { domain, $enum } from "./domain.js";
|
|
21
|
+
export { namespace, schema } from "./namespace.js";
|
|
22
|
+
export { sequence } from "./sequence.js";
|
|
23
|
+
export { table } from "./table.js";
|
|
24
|
+
export { relations, belongsTo, hasMany, hasOne } from "./relations.js";
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,IAAI,EAA8C,MAAM,mBAAmB,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EACL,QAAQ,EACR,wBAAwB,GAEzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAA8B,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,IAAI,EAA0B,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAA8B,MAAM,wBAAwB,CAAC;AACzF,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { NamespaceDefinition } from "@dsqlbase/core";
|
|
2
|
+
/**
|
|
3
|
+
* Creates a namespace definition.
|
|
4
|
+
* A namespace is a logical grouping of database objects, such as tables, views, and sequences.
|
|
5
|
+
* It helps to organize and manage database objects within a schema.
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* const myNamespace = namespace("my_schema");
|
|
9
|
+
*
|
|
10
|
+
* const usersTable = myNamespace.table("users", {
|
|
11
|
+
* id: uuid("id").primaryKey(),
|
|
12
|
+
* name: text("name").notNull(),
|
|
13
|
+
* });
|
|
14
|
+
*
|
|
15
|
+
* const userIdSequence = myNamespace.sequence("user_id_seq");
|
|
16
|
+
* ```
|
|
17
|
+
* @param name The name of the namespace.
|
|
18
|
+
* @returns A new NamespaceDefinition instance.
|
|
19
|
+
*/
|
|
20
|
+
export declare function namespace<const TName extends string>(name: TName): NamespaceDefinition<TName>;
|
|
21
|
+
export { namespace as schema };
|
|
22
|
+
//# sourceMappingURL=namespace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../src/schema/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD;;;;;;;;;;;;;;;;;GAiBG;AAEH,wBAAgB,SAAS,CAAC,KAAK,CAAC,KAAK,SAAS,MAAM,EAAE,IAAI,EAAE,KAAK,8BAEhE;AAED,OAAO,EAAE,SAAS,IAAI,MAAM,EAAE,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { NamespaceDefinition } from "@dsqlbase/core";
|
|
2
|
+
/**
|
|
3
|
+
* Creates a namespace definition.
|
|
4
|
+
* A namespace is a logical grouping of database objects, such as tables, views, and sequences.
|
|
5
|
+
* It helps to organize and manage database objects within a schema.
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* const myNamespace = namespace("my_schema");
|
|
9
|
+
*
|
|
10
|
+
* const usersTable = myNamespace.table("users", {
|
|
11
|
+
* id: uuid("id").primaryKey(),
|
|
12
|
+
* name: text("name").notNull(),
|
|
13
|
+
* });
|
|
14
|
+
*
|
|
15
|
+
* const userIdSequence = myNamespace.sequence("user_id_seq");
|
|
16
|
+
* ```
|
|
17
|
+
* @param name The name of the namespace.
|
|
18
|
+
* @returns A new NamespaceDefinition instance.
|
|
19
|
+
*/
|
|
20
|
+
export function namespace(name) {
|
|
21
|
+
return new NamespaceDefinition(name);
|
|
22
|
+
}
|
|
23
|
+
export { namespace as schema };
|
|
24
|
+
//# sourceMappingURL=namespace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../src/schema/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,UAAU,SAAS,CAA6B,IAAW;IAC/D,OAAO,IAAI,mBAAmB,CAAQ,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED,OAAO,EAAE,SAAS,IAAI,MAAM,EAAE,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AnyTableDefinition, FieldRelation, RelationsDefinition } from "@dsqlbase/core/definition";
|
|
2
|
+
export declare function relations<TTable extends AnyTableDefinition, TRelations extends Record<string, FieldRelation<TTable>>>(table: TTable, relations: TRelations): RelationsDefinition<TTable, TRelations>;
|
|
3
|
+
export declare function hasMany<TSource extends AnyTableDefinition, TTarget extends AnyTableDefinition>(target: TTarget, config: {
|
|
4
|
+
from: FieldRelation<TSource, TTarget, "has_many">["from"];
|
|
5
|
+
to: FieldRelation<TSource, TTarget, "has_many">["to"];
|
|
6
|
+
}): FieldRelation<TSource, TTarget, "has_many">;
|
|
7
|
+
export declare function belongsTo<TSource extends AnyTableDefinition, TTarget extends AnyTableDefinition>(target: TTarget, config: {
|
|
8
|
+
from: FieldRelation<TSource, TTarget, "belongs_to">["from"];
|
|
9
|
+
to: FieldRelation<TSource, TTarget, "belongs_to">["to"];
|
|
10
|
+
}): FieldRelation<TSource, TTarget, "belongs_to">;
|
|
11
|
+
export declare function hasOne<TSource extends AnyTableDefinition, TTarget extends AnyTableDefinition>(target: TTarget, config: Pick<FieldRelation<TSource, TTarget, "has_one">, "from" | "to">): FieldRelation<TSource, TTarget, "has_one">;
|
|
12
|
+
//# sourceMappingURL=relations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relations.d.ts","sourceRoot":"","sources":["../../src/schema/relations.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,aAAa,EAEb,mBAAmB,EACpB,MAAM,2BAA2B,CAAC;AAEnC,wBAAgB,SAAS,CACvB,MAAM,SAAS,kBAAkB,EACjC,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,EACxD,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,2CAErC;AAED,wBAAgB,OAAO,CAAC,OAAO,SAAS,kBAAkB,EAAE,OAAO,SAAS,kBAAkB,EAC5F,MAAM,EAAE,OAAO,EACf,MAAM,EAAE;IACN,IAAI,EAAE,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1D,EAAE,EAAE,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;CACvD,GACA,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAO7C;AAED,wBAAgB,SAAS,CAAC,OAAO,SAAS,kBAAkB,EAAE,OAAO,SAAS,kBAAkB,EAC9F,MAAM,EAAE,OAAO,EACf,MAAM,EAAE;IACN,IAAI,EAAE,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5D,EAAE,EAAE,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC;CACzD,GACA,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAO/C;AAED,wBAAgB,MAAM,CAAC,OAAO,SAAS,kBAAkB,EAAE,OAAO,SAAS,kBAAkB,EAC3F,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,GACtE,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAO5C"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Relation, RelationsDefinition, } from "@dsqlbase/core/definition";
|
|
2
|
+
export function relations(table, relations) {
|
|
3
|
+
return new RelationsDefinition(table, relations);
|
|
4
|
+
}
|
|
5
|
+
export function hasMany(target, config) {
|
|
6
|
+
return {
|
|
7
|
+
type: Relation.HAS_MANY,
|
|
8
|
+
target,
|
|
9
|
+
from: config.from,
|
|
10
|
+
to: config.to,
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export function belongsTo(target, config) {
|
|
14
|
+
return {
|
|
15
|
+
type: Relation.BELONGS_TO,
|
|
16
|
+
target,
|
|
17
|
+
from: config.from,
|
|
18
|
+
to: config.to,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export function hasOne(target, config) {
|
|
22
|
+
return {
|
|
23
|
+
type: Relation.HAS_ONE,
|
|
24
|
+
target,
|
|
25
|
+
from: config.from,
|
|
26
|
+
to: config.to,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=relations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relations.js","sourceRoot":"","sources":["../../src/schema/relations.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,QAAQ,EACR,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,UAAU,SAAS,CAGvB,KAAa,EAAE,SAAqB;IACpC,OAAO,IAAI,mBAAmB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,OAAO,CACrB,MAAe,EACf,MAGC;IAED,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,QAAQ;QACvB,MAAM;QACN,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,EAAE,EAAE,MAAM,CAAC,EAAE;KAC0C,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,MAAe,EACf,MAGC;IAED,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,UAAU;QACzB,MAAM;QACN,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,EAAE,EAAE,MAAM,CAAC,EAAE;KAC4C,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,MAAM,CACpB,MAAe,EACf,MAAuE;IAEvE,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,OAAO;QACtB,MAAM;QACN,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,EAAE,EAAE,MAAM,CAAC,EAAE;KACyC,CAAC;AAC3D,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { AnyNamespaceDefinition, SequenceDefinition } from "@dsqlbase/core";
|
|
2
|
+
/**
|
|
3
|
+
* Creates a sequence definition.
|
|
4
|
+
* A sequence is a database object that generates a sequence of unique numeric values.
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* const userIdSequence = sequence("user_id_seq");
|
|
8
|
+
* ```
|
|
9
|
+
*
|
|
10
|
+
* @param name The name of the sequence.
|
|
11
|
+
* @returns A new SequenceDefinition instance.
|
|
12
|
+
*/
|
|
13
|
+
export declare function sequence<const TName extends string>(name: TName): SequenceDefinition<TName, AnyNamespaceDefinition>;
|
|
14
|
+
//# sourceMappingURL=sequence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sequence.d.ts","sourceRoot":"","sources":["../../src/schema/sequence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAE5E;;;;;;;;;;GAUG;AAEH,wBAAgB,QAAQ,CAAC,KAAK,CAAC,KAAK,SAAS,MAAM,EAAE,IAAI,EAAE,KAAK,qDAE/D"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { SequenceDefinition } from "@dsqlbase/core";
|
|
2
|
+
/**
|
|
3
|
+
* Creates a sequence definition.
|
|
4
|
+
* A sequence is a database object that generates a sequence of unique numeric values.
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* const userIdSequence = sequence("user_id_seq");
|
|
8
|
+
* ```
|
|
9
|
+
*
|
|
10
|
+
* @param name The name of the sequence.
|
|
11
|
+
* @returns A new SequenceDefinition instance.
|
|
12
|
+
*/
|
|
13
|
+
export function sequence(name) {
|
|
14
|
+
return new SequenceDefinition(name);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=sequence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sequence.js","sourceRoot":"","sources":["../../src/schema/sequence.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAE5E;;;;;;;;;;GAUG;AAEH,MAAM,UAAU,QAAQ,CAA6B,IAAW;IAC9D,OAAO,IAAI,kBAAkB,CAAgC,IAAI,CAAC,CAAC;AACrE,CAAC"}
|