@hedystia/db 2.0.0 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. package/dist/_virtual/_rolldown/runtime.cjs +13 -0
  2. package/dist/_virtual/_rolldown/runtime.mjs +17 -0
  3. package/dist/cache/manager.cjs +137 -0
  4. package/dist/cache/manager.cjs.map +1 -0
  5. package/dist/cache/manager.d.cts +72 -0
  6. package/dist/cache/manager.d.mts +72 -0
  7. package/dist/cache/manager.mjs +140 -0
  8. package/dist/cache/manager.mjs.map +1 -0
  9. package/dist/cache/memory-store.cjs +122 -0
  10. package/dist/cache/memory-store.cjs.map +1 -0
  11. package/dist/cache/memory-store.mjs +122 -0
  12. package/dist/cache/memory-store.mjs.map +1 -0
  13. package/dist/cli/commands/migration.cjs +22 -0
  14. package/dist/cli/commands/migration.cjs.map +1 -0
  15. package/dist/cli/commands/migration.mjs +32 -0
  16. package/dist/cli/commands/migration.mjs.map +1 -0
  17. package/dist/cli/commands/schema.cjs +21 -0
  18. package/dist/cli/commands/schema.cjs.map +1 -0
  19. package/dist/cli/commands/schema.mjs +30 -0
  20. package/dist/cli/commands/schema.mjs.map +1 -0
  21. package/dist/cli.cjs +50 -0
  22. package/dist/cli.cjs.map +1 -0
  23. package/dist/cli.d.cts +1 -0
  24. package/dist/cli.d.mts +1 -0
  25. package/dist/cli.mjs +57 -0
  26. package/dist/cli.mjs.map +1 -0
  27. package/dist/constants.cjs +16 -0
  28. package/dist/constants.cjs.map +1 -0
  29. package/dist/constants.mjs +16 -0
  30. package/dist/constants.mjs.map +1 -0
  31. package/dist/core/database.cjs +158 -0
  32. package/dist/core/database.cjs.map +1 -0
  33. package/dist/core/database.d.cts +74 -0
  34. package/dist/core/database.d.mts +74 -0
  35. package/dist/core/database.mjs +159 -0
  36. package/dist/core/database.mjs.map +1 -0
  37. package/dist/core/repository.cjs +416 -0
  38. package/dist/core/repository.cjs.map +1 -0
  39. package/dist/core/repository.d.cts +110 -0
  40. package/dist/core/repository.d.mts +110 -0
  41. package/dist/core/repository.mjs +416 -0
  42. package/dist/core/repository.mjs.map +1 -0
  43. package/dist/drivers/driver.cjs +11 -0
  44. package/dist/drivers/driver.cjs.map +1 -0
  45. package/dist/drivers/driver.mjs +11 -0
  46. package/dist/drivers/driver.mjs.map +1 -0
  47. package/dist/drivers/file.cjs +336 -0
  48. package/dist/drivers/file.cjs.map +1 -0
  49. package/dist/drivers/file.mjs +337 -0
  50. package/dist/drivers/file.mjs.map +1 -0
  51. package/dist/drivers/index.cjs +28 -0
  52. package/dist/drivers/index.cjs.map +1 -0
  53. package/dist/drivers/index.d.cts +14 -0
  54. package/dist/drivers/index.d.mts +14 -0
  55. package/dist/drivers/index.mjs +28 -0
  56. package/dist/drivers/index.mjs.map +1 -0
  57. package/dist/drivers/mysql.cjs +272 -0
  58. package/dist/drivers/mysql.cjs.map +1 -0
  59. package/dist/drivers/mysql.mjs +272 -0
  60. package/dist/drivers/mysql.mjs.map +1 -0
  61. package/dist/drivers/sql-compiler.cjs +284 -0
  62. package/dist/drivers/sql-compiler.cjs.map +1 -0
  63. package/dist/drivers/sql-compiler.d.cts +66 -0
  64. package/dist/drivers/sql-compiler.d.mts +66 -0
  65. package/dist/drivers/sql-compiler.mjs +276 -0
  66. package/dist/drivers/sql-compiler.mjs.map +1 -0
  67. package/dist/drivers/sqlite.cjs +262 -0
  68. package/dist/drivers/sqlite.cjs.map +1 -0
  69. package/dist/drivers/sqlite.mjs +262 -0
  70. package/dist/drivers/sqlite.mjs.map +1 -0
  71. package/dist/errors.cjs +74 -0
  72. package/dist/errors.cjs.map +1 -0
  73. package/dist/errors.d.cts +46 -0
  74. package/dist/errors.d.mts +46 -0
  75. package/dist/errors.mjs +68 -0
  76. package/dist/errors.mjs.map +1 -0
  77. package/dist/index.cjs +69 -0
  78. package/dist/index.cjs.map +1 -0
  79. package/dist/index.d.cts +15 -0
  80. package/dist/index.d.mts +15 -0
  81. package/dist/index.mjs +21 -0
  82. package/dist/index.mjs.map +1 -0
  83. package/dist/migrations/definition.cjs +20 -0
  84. package/dist/migrations/definition.cjs.map +1 -0
  85. package/dist/migrations/definition.d.cts +18 -0
  86. package/dist/migrations/definition.d.mts +18 -0
  87. package/dist/migrations/definition.mjs +23 -0
  88. package/dist/migrations/definition.mjs.map +1 -0
  89. package/dist/migrations/index.mjs +12 -0
  90. package/dist/migrations/index.mjs.map +1 -0
  91. package/dist/migrations/templates.cjs +39 -0
  92. package/dist/migrations/templates.cjs.map +1 -0
  93. package/dist/migrations/templates.d.cts +16 -0
  94. package/dist/migrations/templates.d.mts +16 -0
  95. package/dist/migrations/templates.mjs +41 -0
  96. package/dist/migrations/templates.mjs.map +1 -0
  97. package/dist/schema/column.cjs +161 -0
  98. package/dist/schema/column.cjs.map +1 -0
  99. package/dist/schema/column.d.cts +120 -0
  100. package/dist/schema/column.d.mts +120 -0
  101. package/dist/schema/column.mjs +161 -0
  102. package/dist/schema/column.mjs.map +1 -0
  103. package/dist/schema/columns/index.cjs +202 -0
  104. package/dist/schema/columns/index.cjs.map +1 -0
  105. package/dist/schema/columns/index.d.cts +141 -0
  106. package/dist/schema/columns/index.d.mts +141 -0
  107. package/dist/schema/columns/index.mjs +182 -0
  108. package/dist/schema/columns/index.mjs.map +1 -0
  109. package/dist/schema/registry.cjs +125 -0
  110. package/dist/schema/registry.cjs.map +1 -0
  111. package/dist/schema/registry.d.cts +66 -0
  112. package/dist/schema/registry.d.mts +66 -0
  113. package/dist/schema/registry.mjs +125 -0
  114. package/dist/schema/registry.mjs.map +1 -0
  115. package/dist/schema/table.cjs +39 -0
  116. package/dist/schema/table.cjs.map +1 -0
  117. package/dist/schema/table.d.cts +17 -0
  118. package/dist/schema/table.d.mts +17 -0
  119. package/dist/schema/table.mjs +39 -0
  120. package/dist/schema/table.mjs.map +1 -0
  121. package/dist/sync/synchronizer.cjs +43 -0
  122. package/dist/sync/synchronizer.cjs.map +1 -0
  123. package/dist/sync/synchronizer.d.cts +22 -0
  124. package/dist/sync/synchronizer.d.mts +22 -0
  125. package/dist/sync/synchronizer.mjs +43 -0
  126. package/dist/sync/synchronizer.mjs.map +1 -0
  127. package/dist/types.d.cts +229 -0
  128. package/dist/types.d.mts +229 -0
  129. package/dist/utils/fs.cjs +24 -0
  130. package/dist/utils/fs.cjs.map +1 -0
  131. package/dist/utils/fs.mjs +26 -0
  132. package/dist/utils/fs.mjs.map +1 -0
  133. package/dist/utils/index.mjs +14 -0
  134. package/dist/utils/index.mjs.map +1 -0
  135. package/dist/utils/naming.cjs +13 -0
  136. package/dist/utils/naming.cjs.map +1 -0
  137. package/dist/utils/naming.mjs +16 -0
  138. package/dist/utils/naming.mjs.map +1 -0
  139. package/dist/utils/stable-stringify.cjs +19 -0
  140. package/dist/utils/stable-stringify.cjs.map +1 -0
  141. package/dist/utils/stable-stringify.mjs +22 -0
  142. package/dist/utils/stable-stringify.mjs.map +1 -0
  143. package/package.json +64 -27
  144. package/readme.md +87 -105
  145. package/index.d.ts +0 -65
  146. package/index.js +0 -1
@@ -0,0 +1,120 @@
1
+ import { ColumnDataType, ColumnMetadata, DeferredRefMeta, ReferenceAction } from "../types.mjs";
2
+
3
+ //#region src/schema/column.d.ts
4
+ /**
5
+ * Base column builder with chainable methods for defining column properties
6
+ * @template T - The TypeScript type this column resolves to
7
+ * @template TN - The table name this column belongs to (set by table())
8
+ * @template CN - The column name (set by table())
9
+ * @template Ref - The deferred reference metadata (set by references())
10
+ */
11
+ declare class ColumnBuilder<T = unknown, TN extends string = string, CN extends string = string, Ref extends DeferredRefMeta = never> {
12
+ readonly __type: T;
13
+ readonly __tableName: TN;
14
+ readonly __columnName: CN;
15
+ readonly __ref: Ref;
16
+ private _type;
17
+ private _primaryKey;
18
+ private _autoIncrement;
19
+ private _notNull;
20
+ private _unique;
21
+ private _defaultValue;
22
+ private _length?;
23
+ private _precision?;
24
+ private _scale?;
25
+ private _columnAlias?;
26
+ private _references?;
27
+ constructor(type: ColumnDataType, length?: number, precision?: number, scale?: number);
28
+ /**
29
+ * Set a custom database column name different from the property key
30
+ * @param {string} alias - The column name to use in the database
31
+ * @returns {ColumnBuilder<T, TN, CN, Ref>} The column builder for chaining
32
+ * @example
33
+ * // In code: guildId, In database: guild_id
34
+ * guildId: varchar(255).name("guild_id")
35
+ */
36
+ name(alias: string): ColumnBuilder<T, TN, CN, Ref>;
37
+ /**
38
+ * Override the TypeScript type for this column with a custom type literal
39
+ * @template U - The custom type to use
40
+ * @returns {ColumnBuilder<U, TN, CN, Ref>} The column builder with the new type
41
+ * @example
42
+ * // Limits autocomplete to specific values
43
+ * locale: varchar(25).type<"en_US" | "es_ES">()
44
+ */
45
+ type<U>(): ColumnBuilder<U, TN, CN, Ref>;
46
+ /**
47
+ * Mark this column as a primary key
48
+ * @returns {ColumnBuilder<T, TN, CN, Ref>} The column builder for chaining
49
+ */
50
+ primaryKey(): ColumnBuilder<T, TN, CN, Ref>;
51
+ /**
52
+ * Mark this column as auto-incrementing
53
+ * @returns {ColumnBuilder<T, TN, CN, Ref>} The column builder for chaining
54
+ */
55
+ autoIncrement(): ColumnBuilder<T, TN, CN, Ref>;
56
+ /**
57
+ * Mark this column as NOT NULL
58
+ * @returns {ColumnBuilder<NonNullable<T>, TN, CN, Ref>} The column builder for chaining
59
+ */
60
+ notNull(): ColumnBuilder<NonNullable<T>, TN, CN, Ref>;
61
+ /**
62
+ * Mark this column as nullable
63
+ * @returns {ColumnBuilder<T | null, TN, CN, Ref>} The column builder for chaining
64
+ */
65
+ nullable(): ColumnBuilder<T | null, TN, CN, Ref>;
66
+ /**
67
+ * Mark this column as nullable (alias for {@link nullable})
68
+ * @returns {ColumnBuilder<T | null, TN, CN, Ref>} The column builder for chaining
69
+ */
70
+ null(): ColumnBuilder<T | null, TN, CN, Ref>;
71
+ /**
72
+ * Set a default value for this column
73
+ * @param {T} value - The default value
74
+ * @returns {ColumnBuilder<T, TN, CN, Ref>} The column builder for chaining
75
+ */
76
+ default(value: T): ColumnBuilder<T, TN, CN, Ref>;
77
+ /**
78
+ * Mark this column as having a unique constraint
79
+ * @returns {ColumnBuilder<T, TN, CN, Ref>} The column builder for chaining
80
+ */
81
+ unique(): ColumnBuilder<T, TN, CN, Ref>;
82
+ /**
83
+ * Add a foreign key reference to another table's column
84
+ * @param {() => ColumnBuilder<any>} ref - A function returning the referenced column
85
+ * @param {object} [options] - Reference options
86
+ * @param {ReferenceAction} [options.onDelete] - Action on delete
87
+ * @param {ReferenceAction} [options.onUpdate] - Action on update
88
+ * @param {string} [options.relationName] - Name for the relation
89
+ * @returns {ColumnBuilder<T>} The column builder for chaining
90
+ */
91
+ references<R extends ColumnBuilder<any, string, string, any>, O extends {
92
+ onDelete?: ReferenceAction;
93
+ onUpdate?: ReferenceAction;
94
+ relationName?: string;
95
+ } = never>(ref: () => R, options?: O): ColumnBuilder<T, TN, CN, DeferredRefMeta<CN, R["__tableName"], R["__columnName"], O extends {
96
+ relationName: infer N extends string;
97
+ } ? N : undefined>>;
98
+ /**
99
+ * Build the column metadata from the builder configuration
100
+ * @param {string} name - The column name
101
+ * @returns {ColumnMetadata} The built column metadata
102
+ */
103
+ __build(name: string): ColumnMetadata;
104
+ /**
105
+ * Get deferred reference data if this column has a foreign key reference
106
+ * @returns {object | null} The deferred reference data or null
107
+ */
108
+ __getDeferredRef(): {
109
+ resolve: () => {
110
+ table: string;
111
+ column: string;
112
+ };
113
+ onDelete?: ReferenceAction;
114
+ onUpdate?: ReferenceAction;
115
+ relationName?: string;
116
+ } | null;
117
+ }
118
+ //#endregion
119
+ export { ColumnBuilder };
120
+ //# sourceMappingURL=column.d.mts.map
@@ -0,0 +1,161 @@
1
+ //#region src/schema/column.ts
2
+ /**
3
+ * Base column builder with chainable methods for defining column properties
4
+ * @template T - The TypeScript type this column resolves to
5
+ * @template TN - The table name this column belongs to (set by table())
6
+ * @template CN - The column name (set by table())
7
+ * @template Ref - The deferred reference metadata (set by references())
8
+ */
9
+ var ColumnBuilder = class {
10
+ _type;
11
+ _primaryKey = false;
12
+ _autoIncrement = false;
13
+ _notNull = false;
14
+ _unique = false;
15
+ _defaultValue = void 0;
16
+ _length;
17
+ _precision;
18
+ _scale;
19
+ _columnAlias;
20
+ _references;
21
+ constructor(type, length, precision, scale) {
22
+ this._type = type;
23
+ this._length = length;
24
+ this._precision = precision;
25
+ this._scale = scale;
26
+ }
27
+ /**
28
+ * Set a custom database column name different from the property key
29
+ * @param {string} alias - The column name to use in the database
30
+ * @returns {ColumnBuilder<T, TN, CN, Ref>} The column builder for chaining
31
+ * @example
32
+ * // In code: guildId, In database: guild_id
33
+ * guildId: varchar(255).name("guild_id")
34
+ */
35
+ name(alias) {
36
+ this._columnAlias = alias;
37
+ return this;
38
+ }
39
+ /**
40
+ * Override the TypeScript type for this column with a custom type literal
41
+ * @template U - The custom type to use
42
+ * @returns {ColumnBuilder<U, TN, CN, Ref>} The column builder with the new type
43
+ * @example
44
+ * // Limits autocomplete to specific values
45
+ * locale: varchar(25).type<"en_US" | "es_ES">()
46
+ */
47
+ type() {
48
+ return this;
49
+ }
50
+ /**
51
+ * Mark this column as a primary key
52
+ * @returns {ColumnBuilder<T, TN, CN, Ref>} The column builder for chaining
53
+ */
54
+ primaryKey() {
55
+ this._primaryKey = true;
56
+ return this;
57
+ }
58
+ /**
59
+ * Mark this column as auto-incrementing
60
+ * @returns {ColumnBuilder<T, TN, CN, Ref>} The column builder for chaining
61
+ */
62
+ autoIncrement() {
63
+ this._autoIncrement = true;
64
+ return this;
65
+ }
66
+ /**
67
+ * Mark this column as NOT NULL
68
+ * @returns {ColumnBuilder<NonNullable<T>, TN, CN, Ref>} The column builder for chaining
69
+ */
70
+ notNull() {
71
+ this._notNull = true;
72
+ return this;
73
+ }
74
+ /**
75
+ * Mark this column as nullable
76
+ * @returns {ColumnBuilder<T | null, TN, CN, Ref>} The column builder for chaining
77
+ */
78
+ nullable() {
79
+ this._notNull = false;
80
+ return this;
81
+ }
82
+ /**
83
+ * Mark this column as nullable (alias for {@link nullable})
84
+ * @returns {ColumnBuilder<T | null, TN, CN, Ref>} The column builder for chaining
85
+ */
86
+ null() {
87
+ return this.nullable();
88
+ }
89
+ /**
90
+ * Set a default value for this column
91
+ * @param {T} value - The default value
92
+ * @returns {ColumnBuilder<T, TN, CN, Ref>} The column builder for chaining
93
+ */
94
+ default(value) {
95
+ this._defaultValue = value;
96
+ return this;
97
+ }
98
+ /**
99
+ * Mark this column as having a unique constraint
100
+ * @returns {ColumnBuilder<T, TN, CN, Ref>} The column builder for chaining
101
+ */
102
+ unique() {
103
+ this._unique = true;
104
+ return this;
105
+ }
106
+ /**
107
+ * Add a foreign key reference to another table's column
108
+ * @param {() => ColumnBuilder<any>} ref - A function returning the referenced column
109
+ * @param {object} [options] - Reference options
110
+ * @param {ReferenceAction} [options.onDelete] - Action on delete
111
+ * @param {ReferenceAction} [options.onUpdate] - Action on update
112
+ * @param {string} [options.relationName] - Name for the relation
113
+ * @returns {ColumnBuilder<T>} The column builder for chaining
114
+ */
115
+ references(ref, options) {
116
+ this._references = {
117
+ resolve: () => {
118
+ const col = ref();
119
+ return {
120
+ table: col.__tableName ?? "",
121
+ column: col.__columnName ?? ""
122
+ };
123
+ },
124
+ onDelete: options?.onDelete,
125
+ onUpdate: options?.onUpdate,
126
+ relationName: options?.relationName
127
+ };
128
+ return this;
129
+ }
130
+ /**
131
+ * Build the column metadata from the builder configuration
132
+ * @param {string} name - The column name
133
+ * @returns {ColumnMetadata} The built column metadata
134
+ */
135
+ __build(name) {
136
+ return {
137
+ name: this._columnAlias ?? name,
138
+ type: this._type,
139
+ primaryKey: this._primaryKey,
140
+ autoIncrement: this._autoIncrement,
141
+ notNull: this._notNull || this._primaryKey,
142
+ unique: this._unique || this._primaryKey,
143
+ defaultValue: this._defaultValue,
144
+ length: this._length,
145
+ precision: this._precision,
146
+ scale: this._scale,
147
+ columnAlias: this._columnAlias
148
+ };
149
+ }
150
+ /**
151
+ * Get deferred reference data if this column has a foreign key reference
152
+ * @returns {object | null} The deferred reference data or null
153
+ */
154
+ __getDeferredRef() {
155
+ return this._references ?? null;
156
+ }
157
+ };
158
+ //#endregion
159
+ export { ColumnBuilder };
160
+
161
+ //# sourceMappingURL=column.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column.mjs","names":[],"sources":["../../src/schema/column.ts"],"sourcesContent":["import type { ColumnDataType, ColumnMetadata, DeferredRefMeta, ReferenceAction } from \"../types\";\n\n/**\n * Base column builder with chainable methods for defining column properties\n * @template T - The TypeScript type this column resolves to\n * @template TN - The table name this column belongs to (set by table())\n * @template CN - The column name (set by table())\n * @template Ref - The deferred reference metadata (set by references())\n */\nexport class ColumnBuilder<\n T = unknown,\n TN extends string = string,\n CN extends string = string,\n Ref extends DeferredRefMeta = never,\n> {\n declare readonly __type: T;\n declare readonly __tableName: TN;\n declare readonly __columnName: CN;\n declare readonly __ref: Ref;\n private _type: ColumnDataType;\n private _primaryKey = false;\n private _autoIncrement = false;\n private _notNull = false;\n private _unique = false;\n private _defaultValue: unknown = undefined;\n private _length?: number;\n private _precision?: number;\n private _scale?: number;\n private _columnAlias?: string;\n private _references?: {\n resolve: () => { table: string; column: string };\n onDelete?: ReferenceAction;\n onUpdate?: ReferenceAction;\n relationName?: string;\n };\n\n constructor(type: ColumnDataType, length?: number, precision?: number, scale?: number) {\n this._type = type;\n this._length = length;\n this._precision = precision;\n this._scale = scale;\n }\n\n /**\n * Set a custom database column name different from the property key\n * @param {string} alias - The column name to use in the database\n * @returns {ColumnBuilder<T, TN, CN, Ref>} The column builder for chaining\n * @example\n * // In code: guildId, In database: guild_id\n * guildId: varchar(255).name(\"guild_id\")\n */\n name(alias: string): ColumnBuilder<T, TN, CN, Ref> {\n this._columnAlias = alias;\n return this;\n }\n\n /**\n * Override the TypeScript type for this column with a custom type literal\n * @template U - The custom type to use\n * @returns {ColumnBuilder<U, TN, CN, Ref>} The column builder with the new type\n * @example\n * // Limits autocomplete to specific values\n * locale: varchar(25).type<\"en_US\" | \"es_ES\">()\n */\n type<U>(): ColumnBuilder<U, TN, CN, Ref> {\n return this as unknown as ColumnBuilder<U, TN, CN, Ref>;\n }\n\n /**\n * Mark this column as a primary key\n * @returns {ColumnBuilder<T, TN, CN, Ref>} The column builder for chaining\n */\n primaryKey(): ColumnBuilder<T, TN, CN, Ref> {\n this._primaryKey = true;\n return this;\n }\n\n /**\n * Mark this column as auto-incrementing\n * @returns {ColumnBuilder<T, TN, CN, Ref>} The column builder for chaining\n */\n autoIncrement(): ColumnBuilder<T, TN, CN, Ref> {\n this._autoIncrement = true;\n return this;\n }\n\n /**\n * Mark this column as NOT NULL\n * @returns {ColumnBuilder<NonNullable<T>, TN, CN, Ref>} The column builder for chaining\n */\n notNull(): ColumnBuilder<NonNullable<T>, TN, CN, Ref> {\n this._notNull = true;\n return this as unknown as ColumnBuilder<NonNullable<T>, TN, CN, Ref>;\n }\n\n /**\n * Mark this column as nullable\n * @returns {ColumnBuilder<T | null, TN, CN, Ref>} The column builder for chaining\n */\n nullable(): ColumnBuilder<T | null, TN, CN, Ref> {\n this._notNull = false;\n return this as unknown as ColumnBuilder<T | null, TN, CN, Ref>;\n }\n\n /**\n * Mark this column as nullable (alias for {@link nullable})\n * @returns {ColumnBuilder<T | null, TN, CN, Ref>} The column builder for chaining\n */\n null(): ColumnBuilder<T | null, TN, CN, Ref> {\n return this.nullable();\n }\n\n /**\n * Set a default value for this column\n * @param {T} value - The default value\n * @returns {ColumnBuilder<T, TN, CN, Ref>} The column builder for chaining\n */\n default(value: T): ColumnBuilder<T, TN, CN, Ref> {\n this._defaultValue = value;\n return this;\n }\n\n /**\n * Mark this column as having a unique constraint\n * @returns {ColumnBuilder<T, TN, CN, Ref>} The column builder for chaining\n */\n unique(): ColumnBuilder<T, TN, CN, Ref> {\n this._unique = true;\n return this;\n }\n\n /**\n * Add a foreign key reference to another table's column\n * @param {() => ColumnBuilder<any>} ref - A function returning the referenced column\n * @param {object} [options] - Reference options\n * @param {ReferenceAction} [options.onDelete] - Action on delete\n * @param {ReferenceAction} [options.onUpdate] - Action on update\n * @param {string} [options.relationName] - Name for the relation\n * @returns {ColumnBuilder<T>} The column builder for chaining\n */\n references<\n R extends ColumnBuilder<any, string, string, any>,\n O extends {\n onDelete?: ReferenceAction;\n onUpdate?: ReferenceAction;\n relationName?: string;\n } = never,\n >(\n ref: () => R,\n options?: O,\n ): ColumnBuilder<\n T,\n TN,\n CN,\n DeferredRefMeta<\n CN,\n R[\"__tableName\"],\n R[\"__columnName\"],\n O extends { relationName: infer N extends string } ? N : undefined\n >\n > {\n this._references = {\n resolve: () => {\n const col = ref();\n return {\n table: (col as any).__tableName ?? \"\",\n column: (col as any).__columnName ?? \"\",\n };\n },\n onDelete: options?.onDelete,\n onUpdate: options?.onUpdate,\n relationName: options?.relationName,\n };\n return this as any;\n }\n\n /**\n * Build the column metadata from the builder configuration\n * @param {string} name - The column name\n * @returns {ColumnMetadata} The built column metadata\n */\n __build(name: string): ColumnMetadata {\n return {\n name: this._columnAlias ?? name,\n type: this._type,\n primaryKey: this._primaryKey,\n autoIncrement: this._autoIncrement,\n notNull: this._notNull || this._primaryKey,\n unique: this._unique || this._primaryKey,\n defaultValue: this._defaultValue,\n length: this._length,\n precision: this._precision,\n scale: this._scale,\n columnAlias: this._columnAlias,\n };\n }\n\n /**\n * Get deferred reference data if this column has a foreign key reference\n * @returns {object | null} The deferred reference data or null\n */\n __getDeferredRef(): {\n resolve: () => { table: string; column: string };\n onDelete?: ReferenceAction;\n onUpdate?: ReferenceAction;\n relationName?: string;\n } | null {\n return this._references ?? null;\n }\n}\n"],"mappings":";;;;;;;;AASA,IAAa,gBAAb,MAKE;CAKA;CACA,cAAsB;CACtB,iBAAyB;CACzB,WAAmB;CACnB,UAAkB;CAClB,gBAAiC,KAAA;CACjC;CACA;CACA;CACA;CACA;CAOA,YAAY,MAAsB,QAAiB,WAAoB,OAAgB;AACrF,OAAK,QAAQ;AACb,OAAK,UAAU;AACf,OAAK,aAAa;AAClB,OAAK,SAAS;;;;;;;;;;CAWhB,KAAK,OAA8C;AACjD,OAAK,eAAe;AACpB,SAAO;;;;;;;;;;CAWT,OAAyC;AACvC,SAAO;;;;;;CAOT,aAA4C;AAC1C,OAAK,cAAc;AACnB,SAAO;;;;;;CAOT,gBAA+C;AAC7C,OAAK,iBAAiB;AACtB,SAAO;;;;;;CAOT,UAAsD;AACpD,OAAK,WAAW;AAChB,SAAO;;;;;;CAOT,WAAiD;AAC/C,OAAK,WAAW;AAChB,SAAO;;;;;;CAOT,OAA6C;AAC3C,SAAO,KAAK,UAAU;;;;;;;CAQxB,QAAQ,OAAyC;AAC/C,OAAK,gBAAgB;AACrB,SAAO;;;;;;CAOT,SAAwC;AACtC,OAAK,UAAU;AACf,SAAO;;;;;;;;;;;CAYT,WAQE,KACA,SAWA;AACA,OAAK,cAAc;GACjB,eAAe;IACb,MAAM,MAAM,KAAK;AACjB,WAAO;KACL,OAAQ,IAAY,eAAe;KACnC,QAAS,IAAY,gBAAgB;KACtC;;GAEH,UAAU,SAAS;GACnB,UAAU,SAAS;GACnB,cAAc,SAAS;GACxB;AACD,SAAO;;;;;;;CAQT,QAAQ,MAA8B;AACpC,SAAO;GACL,MAAM,KAAK,gBAAgB;GAC3B,MAAM,KAAK;GACX,YAAY,KAAK;GACjB,eAAe,KAAK;GACpB,SAAS,KAAK,YAAY,KAAK;GAC/B,QAAQ,KAAK,WAAW,KAAK;GAC7B,cAAc,KAAK;GACnB,QAAQ,KAAK;GACb,WAAW,KAAK;GAChB,OAAO,KAAK;GACZ,aAAa,KAAK;GACnB;;;;;;CAOH,mBAKS;AACP,SAAO,KAAK,eAAe"}
@@ -0,0 +1,202 @@
1
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
2
+ const require_column = require("../column.cjs");
3
+ //#region src/schema/columns/index.ts
4
+ var columns_exports = /* @__PURE__ */ require_runtime.__exportAll({
5
+ NamedColumnStarter: () => NamedColumnStarter,
6
+ bigint: () => bigint,
7
+ blob: () => blob,
8
+ boolean: () => boolean,
9
+ char: () => char,
10
+ d: () => d,
11
+ datetime: () => datetime,
12
+ decimal: () => decimal,
13
+ float: () => float,
14
+ integer: () => integer,
15
+ json: () => json,
16
+ name: () => name,
17
+ text: () => text,
18
+ timestamp: () => timestamp,
19
+ varchar: () => varchar
20
+ });
21
+ /**
22
+ * Create an INTEGER column
23
+ * @returns {ColumnBuilder<number>} Column builder for integer type
24
+ */
25
+ const integer = () => new require_column.ColumnBuilder("integer");
26
+ /**
27
+ * Create a BIGINT column
28
+ * @returns {ColumnBuilder<number>} Column builder for bigint type
29
+ */
30
+ const bigint = () => new require_column.ColumnBuilder("bigint");
31
+ /**
32
+ * Create a VARCHAR column with specified length
33
+ * @param {number} [length=255] - Maximum character length
34
+ * @returns {ColumnBuilder<string>} Column builder for varchar type
35
+ */
36
+ const varchar = (length = 255) => new require_column.ColumnBuilder("varchar", length);
37
+ /**
38
+ * Create a CHAR column with specified length
39
+ * @param {number} [length=1] - Fixed character length
40
+ * @returns {ColumnBuilder<string>} Column builder for char type
41
+ */
42
+ const char = (length = 1) => new require_column.ColumnBuilder("char", length);
43
+ /**
44
+ * Create a TEXT column
45
+ * @returns {ColumnBuilder<string>} Column builder for text type
46
+ */
47
+ const text = () => new require_column.ColumnBuilder("text");
48
+ /**
49
+ * Create a BOOLEAN column
50
+ * @returns {ColumnBuilder<boolean>} Column builder for boolean type
51
+ */
52
+ const boolean = () => new require_column.ColumnBuilder("boolean");
53
+ /**
54
+ * Create a JSON column
55
+ * @returns {ColumnBuilder<unknown>} Column builder for json type
56
+ */
57
+ const json = () => new require_column.ColumnBuilder("json");
58
+ /**
59
+ * Create a DATETIME column
60
+ * @returns {ColumnBuilder<Date>} Column builder for datetime type
61
+ */
62
+ const datetime = () => new require_column.ColumnBuilder("datetime");
63
+ /**
64
+ * Create a TIMESTAMP column
65
+ * @returns {ColumnBuilder<Date>} Column builder for timestamp type
66
+ */
67
+ const timestamp = () => new require_column.ColumnBuilder("timestamp");
68
+ /**
69
+ * Create a DECIMAL column with precision and scale
70
+ * @param {number} [precision=10] - Total number of digits
71
+ * @param {number} [scale=2] - Number of decimal digits
72
+ * @returns {ColumnBuilder<number>} Column builder for decimal type
73
+ */
74
+ const decimal = (precision = 10, scale = 2) => new require_column.ColumnBuilder("decimal", void 0, precision, scale);
75
+ /**
76
+ * Create a FLOAT column
77
+ * @returns {ColumnBuilder<number>} Column builder for float type
78
+ */
79
+ const float = () => new require_column.ColumnBuilder("float");
80
+ /**
81
+ * Create a BLOB column
82
+ * @returns {ColumnBuilder<Buffer>} Column builder for blob type
83
+ */
84
+ const blob = () => new require_column.ColumnBuilder("blob");
85
+ /**
86
+ * Starter class for creating columns with a pre-set database column name
87
+ * @example
88
+ * // Start with name, then pick column type
89
+ * guildId: name("guild_id").varchar(255)
90
+ */
91
+ var NamedColumnStarter = class {
92
+ _alias;
93
+ constructor(alias) {
94
+ this._alias = alias;
95
+ }
96
+ /** Create an INTEGER column with this database column name */
97
+ integer() {
98
+ return new require_column.ColumnBuilder("integer").name(this._alias);
99
+ }
100
+ /** Create a BIGINT column with this database column name */
101
+ bigint() {
102
+ return new require_column.ColumnBuilder("bigint").name(this._alias);
103
+ }
104
+ /** Create a VARCHAR column with this database column name
105
+ * @param {number} [length=255] - Maximum character length
106
+ */
107
+ varchar(length = 255) {
108
+ return new require_column.ColumnBuilder("varchar", length).name(this._alias);
109
+ }
110
+ /** Create a CHAR column with this database column name
111
+ * @param {number} [length=1] - Fixed character length
112
+ */
113
+ char(length = 1) {
114
+ return new require_column.ColumnBuilder("char", length).name(this._alias);
115
+ }
116
+ /** Create a TEXT column with this database column name */
117
+ text() {
118
+ return new require_column.ColumnBuilder("text").name(this._alias);
119
+ }
120
+ /** Create a BOOLEAN column with this database column name */
121
+ boolean() {
122
+ return new require_column.ColumnBuilder("boolean").name(this._alias);
123
+ }
124
+ /** Create a JSON column with this database column name */
125
+ json() {
126
+ return new require_column.ColumnBuilder("json").name(this._alias);
127
+ }
128
+ /** Create a DATETIME column with this database column name */
129
+ datetime() {
130
+ return new require_column.ColumnBuilder("datetime").name(this._alias);
131
+ }
132
+ /** Create a TIMESTAMP column with this database column name */
133
+ timestamp() {
134
+ return new require_column.ColumnBuilder("timestamp").name(this._alias);
135
+ }
136
+ /** Create a DECIMAL column with this database column name
137
+ * @param {number} [precision=10] - Total number of digits
138
+ * @param {number} [scale=2] - Number of decimal digits
139
+ */
140
+ decimal(precision = 10, scale = 2) {
141
+ return new require_column.ColumnBuilder("decimal", void 0, precision, scale).name(this._alias);
142
+ }
143
+ /** Create a FLOAT column with this database column name */
144
+ float() {
145
+ return new require_column.ColumnBuilder("float").name(this._alias);
146
+ }
147
+ /** Create a BLOB column with this database column name */
148
+ blob() {
149
+ return new require_column.ColumnBuilder("blob").name(this._alias);
150
+ }
151
+ };
152
+ /**
153
+ * Create a column with a custom database column name, then pick the column type
154
+ * @param {string} alias - The column name to use in the database
155
+ * @returns {NamedColumnStarter} A starter object to pick the column type
156
+ * @example
157
+ * guildId: name("guild_id").varchar(255).notNull()
158
+ */
159
+ const name = (alias) => new NamedColumnStarter(alias);
160
+ /**
161
+ * Column type helpers object for schema definitions
162
+ * @returns {typeof d} Column type helpers
163
+ */
164
+ const d = {
165
+ integer,
166
+ bigint,
167
+ varchar,
168
+ char,
169
+ text,
170
+ boolean,
171
+ json,
172
+ datetime,
173
+ timestamp,
174
+ decimal,
175
+ float,
176
+ blob,
177
+ name
178
+ };
179
+ //#endregion
180
+ exports.NamedColumnStarter = NamedColumnStarter;
181
+ exports.bigint = bigint;
182
+ exports.blob = blob;
183
+ exports.boolean = boolean;
184
+ exports.char = char;
185
+ Object.defineProperty(exports, "columns_exports", {
186
+ enumerable: true,
187
+ get: function() {
188
+ return columns_exports;
189
+ }
190
+ });
191
+ exports.d = d;
192
+ exports.datetime = datetime;
193
+ exports.decimal = decimal;
194
+ exports.float = float;
195
+ exports.integer = integer;
196
+ exports.json = json;
197
+ exports.name = name;
198
+ exports.text = text;
199
+ exports.timestamp = timestamp;
200
+ exports.varchar = varchar;
201
+
202
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":["ColumnBuilder"],"sources":["../../../src/schema/columns/index.ts"],"sourcesContent":["import { ColumnBuilder } from \"../column\";\n\n/**\n * Create an INTEGER column\n * @returns {ColumnBuilder<number>} Column builder for integer type\n */\nexport const integer = (): ColumnBuilder<number> => new ColumnBuilder<number>(\"integer\");\n\n/**\n * Create a BIGINT column\n * @returns {ColumnBuilder<number>} Column builder for bigint type\n */\nexport const bigint = (): ColumnBuilder<number> => new ColumnBuilder<number>(\"bigint\");\n\n/**\n * Create a VARCHAR column with specified length\n * @param {number} [length=255] - Maximum character length\n * @returns {ColumnBuilder<string>} Column builder for varchar type\n */\nexport const varchar = (length = 255): ColumnBuilder<string> =>\n new ColumnBuilder<string>(\"varchar\", length);\n\n/**\n * Create a CHAR column with specified length\n * @param {number} [length=1] - Fixed character length\n * @returns {ColumnBuilder<string>} Column builder for char type\n */\nexport const char = (length = 1): ColumnBuilder<string> =>\n new ColumnBuilder<string>(\"char\", length);\n\n/**\n * Create a TEXT column\n * @returns {ColumnBuilder<string>} Column builder for text type\n */\nexport const text = (): ColumnBuilder<string> => new ColumnBuilder<string>(\"text\");\n\n/**\n * Create a BOOLEAN column\n * @returns {ColumnBuilder<boolean>} Column builder for boolean type\n */\nexport const boolean = (): ColumnBuilder<boolean> => new ColumnBuilder<boolean>(\"boolean\");\n\n/**\n * Create a JSON column\n * @returns {ColumnBuilder<unknown>} Column builder for json type\n */\nexport const json = (): ColumnBuilder<unknown> => new ColumnBuilder<unknown>(\"json\");\n\n/**\n * Create a DATETIME column\n * @returns {ColumnBuilder<Date>} Column builder for datetime type\n */\nexport const datetime = (): ColumnBuilder<Date> => new ColumnBuilder<Date>(\"datetime\");\n\n/**\n * Create a TIMESTAMP column\n * @returns {ColumnBuilder<Date>} Column builder for timestamp type\n */\nexport const timestamp = (): ColumnBuilder<Date> => new ColumnBuilder<Date>(\"timestamp\");\n\n/**\n * Create a DECIMAL column with precision and scale\n * @param {number} [precision=10] - Total number of digits\n * @param {number} [scale=2] - Number of decimal digits\n * @returns {ColumnBuilder<number>} Column builder for decimal type\n */\nexport const decimal = (precision = 10, scale = 2): ColumnBuilder<number> =>\n new ColumnBuilder<number>(\"decimal\", undefined, precision, scale);\n\n/**\n * Create a FLOAT column\n * @returns {ColumnBuilder<number>} Column builder for float type\n */\nexport const float = (): ColumnBuilder<number> => new ColumnBuilder<number>(\"float\");\n\n/**\n * Create a BLOB column\n * @returns {ColumnBuilder<Buffer>} Column builder for blob type\n */\nexport const blob = (): ColumnBuilder<Buffer> => new ColumnBuilder<Buffer>(\"blob\");\n\n/**\n * Starter class for creating columns with a pre-set database column name\n * @example\n * // Start with name, then pick column type\n * guildId: name(\"guild_id\").varchar(255)\n */\nexport class NamedColumnStarter {\n private _alias: string;\n\n constructor(alias: string) {\n this._alias = alias;\n }\n\n /** Create an INTEGER column with this database column name */\n integer(): ColumnBuilder<number> {\n return new ColumnBuilder<number>(\"integer\").name(this._alias);\n }\n\n /** Create a BIGINT column with this database column name */\n bigint(): ColumnBuilder<number> {\n return new ColumnBuilder<number>(\"bigint\").name(this._alias);\n }\n\n /** Create a VARCHAR column with this database column name\n * @param {number} [length=255] - Maximum character length\n */\n varchar(length = 255): ColumnBuilder<string> {\n return new ColumnBuilder<string>(\"varchar\", length).name(this._alias);\n }\n\n /** Create a CHAR column with this database column name\n * @param {number} [length=1] - Fixed character length\n */\n char(length = 1): ColumnBuilder<string> {\n return new ColumnBuilder<string>(\"char\", length).name(this._alias);\n }\n\n /** Create a TEXT column with this database column name */\n text(): ColumnBuilder<string> {\n return new ColumnBuilder<string>(\"text\").name(this._alias);\n }\n\n /** Create a BOOLEAN column with this database column name */\n boolean(): ColumnBuilder<boolean> {\n return new ColumnBuilder<boolean>(\"boolean\").name(this._alias);\n }\n\n /** Create a JSON column with this database column name */\n json(): ColumnBuilder<unknown> {\n return new ColumnBuilder<unknown>(\"json\").name(this._alias);\n }\n\n /** Create a DATETIME column with this database column name */\n datetime(): ColumnBuilder<Date> {\n return new ColumnBuilder<Date>(\"datetime\").name(this._alias);\n }\n\n /** Create a TIMESTAMP column with this database column name */\n timestamp(): ColumnBuilder<Date> {\n return new ColumnBuilder<Date>(\"timestamp\").name(this._alias);\n }\n\n /** Create a DECIMAL column with this database column name\n * @param {number} [precision=10] - Total number of digits\n * @param {number} [scale=2] - Number of decimal digits\n */\n decimal(precision = 10, scale = 2): ColumnBuilder<number> {\n return new ColumnBuilder<number>(\"decimal\", undefined, precision, scale).name(this._alias);\n }\n\n /** Create a FLOAT column with this database column name */\n float(): ColumnBuilder<number> {\n return new ColumnBuilder<number>(\"float\").name(this._alias);\n }\n\n /** Create a BLOB column with this database column name */\n blob(): ColumnBuilder<Buffer> {\n return new ColumnBuilder<Buffer>(\"blob\").name(this._alias);\n }\n}\n\n/**\n * Create a column with a custom database column name, then pick the column type\n * @param {string} alias - The column name to use in the database\n * @returns {NamedColumnStarter} A starter object to pick the column type\n * @example\n * guildId: name(\"guild_id\").varchar(255).notNull()\n */\nexport const name = (alias: string): NamedColumnStarter => new NamedColumnStarter(alias);\n\n/**\n * Column type helpers object for schema definitions\n * @returns {typeof d} Column type helpers\n */\nexport const d = {\n integer,\n bigint,\n varchar,\n char,\n text,\n boolean,\n json,\n datetime,\n timestamp,\n decimal,\n float,\n blob,\n name,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAMA,MAAa,gBAAuC,IAAIA,eAAAA,cAAsB,UAAU;;;;;AAMxF,MAAa,eAAsC,IAAIA,eAAAA,cAAsB,SAAS;;;;;;AAOtF,MAAa,WAAW,SAAS,QAC/B,IAAIA,eAAAA,cAAsB,WAAW,OAAO;;;;;;AAO9C,MAAa,QAAQ,SAAS,MAC5B,IAAIA,eAAAA,cAAsB,QAAQ,OAAO;;;;;AAM3C,MAAa,aAAoC,IAAIA,eAAAA,cAAsB,OAAO;;;;;AAMlF,MAAa,gBAAwC,IAAIA,eAAAA,cAAuB,UAAU;;;;;AAM1F,MAAa,aAAqC,IAAIA,eAAAA,cAAuB,OAAO;;;;;AAMpF,MAAa,iBAAsC,IAAIA,eAAAA,cAAoB,WAAW;;;;;AAMtF,MAAa,kBAAuC,IAAIA,eAAAA,cAAoB,YAAY;;;;;;;AAQxF,MAAa,WAAW,YAAY,IAAI,QAAQ,MAC9C,IAAIA,eAAAA,cAAsB,WAAW,KAAA,GAAW,WAAW,MAAM;;;;;AAMnE,MAAa,cAAqC,IAAIA,eAAAA,cAAsB,QAAQ;;;;;AAMpF,MAAa,aAAoC,IAAIA,eAAAA,cAAsB,OAAO;;;;;;;AAQlF,IAAa,qBAAb,MAAgC;CAC9B;CAEA,YAAY,OAAe;AACzB,OAAK,SAAS;;;CAIhB,UAAiC;AAC/B,SAAO,IAAIA,eAAAA,cAAsB,UAAU,CAAC,KAAK,KAAK,OAAO;;;CAI/D,SAAgC;AAC9B,SAAO,IAAIA,eAAAA,cAAsB,SAAS,CAAC,KAAK,KAAK,OAAO;;;;;CAM9D,QAAQ,SAAS,KAA4B;AAC3C,SAAO,IAAIA,eAAAA,cAAsB,WAAW,OAAO,CAAC,KAAK,KAAK,OAAO;;;;;CAMvE,KAAK,SAAS,GAA0B;AACtC,SAAO,IAAIA,eAAAA,cAAsB,QAAQ,OAAO,CAAC,KAAK,KAAK,OAAO;;;CAIpE,OAA8B;AAC5B,SAAO,IAAIA,eAAAA,cAAsB,OAAO,CAAC,KAAK,KAAK,OAAO;;;CAI5D,UAAkC;AAChC,SAAO,IAAIA,eAAAA,cAAuB,UAAU,CAAC,KAAK,KAAK,OAAO;;;CAIhE,OAA+B;AAC7B,SAAO,IAAIA,eAAAA,cAAuB,OAAO,CAAC,KAAK,KAAK,OAAO;;;CAI7D,WAAgC;AAC9B,SAAO,IAAIA,eAAAA,cAAoB,WAAW,CAAC,KAAK,KAAK,OAAO;;;CAI9D,YAAiC;AAC/B,SAAO,IAAIA,eAAAA,cAAoB,YAAY,CAAC,KAAK,KAAK,OAAO;;;;;;CAO/D,QAAQ,YAAY,IAAI,QAAQ,GAA0B;AACxD,SAAO,IAAIA,eAAAA,cAAsB,WAAW,KAAA,GAAW,WAAW,MAAM,CAAC,KAAK,KAAK,OAAO;;;CAI5F,QAA+B;AAC7B,SAAO,IAAIA,eAAAA,cAAsB,QAAQ,CAAC,KAAK,KAAK,OAAO;;;CAI7D,OAA8B;AAC5B,SAAO,IAAIA,eAAAA,cAAsB,OAAO,CAAC,KAAK,KAAK,OAAO;;;;;;;;;;AAW9D,MAAa,QAAQ,UAAsC,IAAI,mBAAmB,MAAM;;;;;AAMxF,MAAa,IAAI;CACf;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD"}
@@ -0,0 +1,141 @@
1
+ import { ColumnBuilder } from "../column.cjs";
2
+
3
+ //#region src/schema/columns/index.d.ts
4
+ declare namespace index_d_exports {
5
+ export { NamedColumnStarter, bigint, blob, boolean, char, d, datetime, decimal, float, integer, json, name, text, timestamp, varchar };
6
+ }
7
+ /**
8
+ * Create an INTEGER column
9
+ * @returns {ColumnBuilder<number>} Column builder for integer type
10
+ */
11
+ declare const integer: () => ColumnBuilder<number>;
12
+ /**
13
+ * Create a BIGINT column
14
+ * @returns {ColumnBuilder<number>} Column builder for bigint type
15
+ */
16
+ declare const bigint: () => ColumnBuilder<number>;
17
+ /**
18
+ * Create a VARCHAR column with specified length
19
+ * @param {number} [length=255] - Maximum character length
20
+ * @returns {ColumnBuilder<string>} Column builder for varchar type
21
+ */
22
+ declare const varchar: (length?: number) => ColumnBuilder<string>;
23
+ /**
24
+ * Create a CHAR column with specified length
25
+ * @param {number} [length=1] - Fixed character length
26
+ * @returns {ColumnBuilder<string>} Column builder for char type
27
+ */
28
+ declare const char: (length?: number) => ColumnBuilder<string>;
29
+ /**
30
+ * Create a TEXT column
31
+ * @returns {ColumnBuilder<string>} Column builder for text type
32
+ */
33
+ declare const text: () => ColumnBuilder<string>;
34
+ /**
35
+ * Create a BOOLEAN column
36
+ * @returns {ColumnBuilder<boolean>} Column builder for boolean type
37
+ */
38
+ declare const boolean: () => ColumnBuilder<boolean>;
39
+ /**
40
+ * Create a JSON column
41
+ * @returns {ColumnBuilder<unknown>} Column builder for json type
42
+ */
43
+ declare const json: () => ColumnBuilder<unknown>;
44
+ /**
45
+ * Create a DATETIME column
46
+ * @returns {ColumnBuilder<Date>} Column builder for datetime type
47
+ */
48
+ declare const datetime: () => ColumnBuilder<Date>;
49
+ /**
50
+ * Create a TIMESTAMP column
51
+ * @returns {ColumnBuilder<Date>} Column builder for timestamp type
52
+ */
53
+ declare const timestamp: () => ColumnBuilder<Date>;
54
+ /**
55
+ * Create a DECIMAL column with precision and scale
56
+ * @param {number} [precision=10] - Total number of digits
57
+ * @param {number} [scale=2] - Number of decimal digits
58
+ * @returns {ColumnBuilder<number>} Column builder for decimal type
59
+ */
60
+ declare const decimal: (precision?: number, scale?: number) => ColumnBuilder<number>;
61
+ /**
62
+ * Create a FLOAT column
63
+ * @returns {ColumnBuilder<number>} Column builder for float type
64
+ */
65
+ declare const float: () => ColumnBuilder<number>;
66
+ /**
67
+ * Create a BLOB column
68
+ * @returns {ColumnBuilder<Buffer>} Column builder for blob type
69
+ */
70
+ declare const blob: () => ColumnBuilder<Buffer>;
71
+ /**
72
+ * Starter class for creating columns with a pre-set database column name
73
+ * @example
74
+ * // Start with name, then pick column type
75
+ * guildId: name("guild_id").varchar(255)
76
+ */
77
+ declare class NamedColumnStarter {
78
+ private _alias;
79
+ constructor(alias: string);
80
+ /** Create an INTEGER column with this database column name */
81
+ integer(): ColumnBuilder<number>;
82
+ /** Create a BIGINT column with this database column name */
83
+ bigint(): ColumnBuilder<number>;
84
+ /** Create a VARCHAR column with this database column name
85
+ * @param {number} [length=255] - Maximum character length
86
+ */
87
+ varchar(length?: number): ColumnBuilder<string>;
88
+ /** Create a CHAR column with this database column name
89
+ * @param {number} [length=1] - Fixed character length
90
+ */
91
+ char(length?: number): ColumnBuilder<string>;
92
+ /** Create a TEXT column with this database column name */
93
+ text(): ColumnBuilder<string>;
94
+ /** Create a BOOLEAN column with this database column name */
95
+ boolean(): ColumnBuilder<boolean>;
96
+ /** Create a JSON column with this database column name */
97
+ json(): ColumnBuilder<unknown>;
98
+ /** Create a DATETIME column with this database column name */
99
+ datetime(): ColumnBuilder<Date>;
100
+ /** Create a TIMESTAMP column with this database column name */
101
+ timestamp(): ColumnBuilder<Date>;
102
+ /** Create a DECIMAL column with this database column name
103
+ * @param {number} [precision=10] - Total number of digits
104
+ * @param {number} [scale=2] - Number of decimal digits
105
+ */
106
+ decimal(precision?: number, scale?: number): ColumnBuilder<number>;
107
+ /** Create a FLOAT column with this database column name */
108
+ float(): ColumnBuilder<number>;
109
+ /** Create a BLOB column with this database column name */
110
+ blob(): ColumnBuilder<Buffer>;
111
+ }
112
+ /**
113
+ * Create a column with a custom database column name, then pick the column type
114
+ * @param {string} alias - The column name to use in the database
115
+ * @returns {NamedColumnStarter} A starter object to pick the column type
116
+ * @example
117
+ * guildId: name("guild_id").varchar(255).notNull()
118
+ */
119
+ declare const name: (alias: string) => NamedColumnStarter;
120
+ /**
121
+ * Column type helpers object for schema definitions
122
+ * @returns {typeof d} Column type helpers
123
+ */
124
+ declare const d: {
125
+ integer: () => ColumnBuilder<number>;
126
+ bigint: () => ColumnBuilder<number>;
127
+ varchar: (length?: number) => ColumnBuilder<string>;
128
+ char: (length?: number) => ColumnBuilder<string>;
129
+ text: () => ColumnBuilder<string>;
130
+ boolean: () => ColumnBuilder<boolean>;
131
+ json: () => ColumnBuilder<unknown>;
132
+ datetime: () => ColumnBuilder<Date>;
133
+ timestamp: () => ColumnBuilder<Date>;
134
+ decimal: (precision?: number, scale?: number) => ColumnBuilder<number>;
135
+ float: () => ColumnBuilder<number>;
136
+ blob: () => ColumnBuilder<Buffer>;
137
+ name: (alias: string) => NamedColumnStarter;
138
+ };
139
+ //#endregion
140
+ export { NamedColumnStarter, bigint, blob, boolean, char, d, datetime, decimal, float, index_d_exports, integer, json, name, text, timestamp, varchar };
141
+ //# sourceMappingURL=index.d.cts.map