@fragno-dev/db 0.0.1 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. package/.turbo/turbo-build.log +137 -13
  2. package/.turbo/turbo-test.log +36 -0
  3. package/CHANGELOG.md +7 -0
  4. package/dist/adapters/adapters.d.ts +18 -0
  5. package/dist/adapters/adapters.d.ts.map +1 -0
  6. package/dist/adapters/drizzle/drizzle-adapter.d.ts +21 -0
  7. package/dist/adapters/drizzle/drizzle-adapter.d.ts.map +1 -0
  8. package/dist/adapters/drizzle/drizzle-adapter.js +62 -0
  9. package/dist/adapters/drizzle/drizzle-adapter.js.map +1 -0
  10. package/dist/adapters/drizzle/drizzle-query.d.ts +17 -0
  11. package/dist/adapters/drizzle/drizzle-query.d.ts.map +1 -0
  12. package/dist/adapters/drizzle/drizzle-query.js +139 -0
  13. package/dist/adapters/drizzle/drizzle-query.js.map +1 -0
  14. package/dist/adapters/drizzle/drizzle-uow-compiler.d.ts +9 -0
  15. package/dist/adapters/drizzle/drizzle-uow-compiler.d.ts.map +1 -0
  16. package/dist/adapters/drizzle/drizzle-uow-compiler.js +300 -0
  17. package/dist/adapters/drizzle/drizzle-uow-compiler.js.map +1 -0
  18. package/dist/adapters/drizzle/drizzle-uow-decoder.js +82 -0
  19. package/dist/adapters/drizzle/drizzle-uow-decoder.js.map +1 -0
  20. package/dist/adapters/drizzle/drizzle-uow-executor.js +125 -0
  21. package/dist/adapters/drizzle/drizzle-uow-executor.js.map +1 -0
  22. package/dist/adapters/drizzle/generate.js +273 -0
  23. package/dist/adapters/drizzle/generate.js.map +1 -0
  24. package/dist/adapters/drizzle/join-column-utils.js +28 -0
  25. package/dist/adapters/drizzle/join-column-utils.js.map +1 -0
  26. package/dist/adapters/drizzle/shared.js +11 -0
  27. package/dist/adapters/drizzle/shared.js.map +1 -0
  28. package/dist/adapters/kysely/kysely-adapter.d.ts +23 -0
  29. package/dist/adapters/kysely/kysely-adapter.d.ts.map +1 -0
  30. package/dist/adapters/kysely/kysely-adapter.js +119 -0
  31. package/dist/adapters/kysely/kysely-adapter.js.map +1 -0
  32. package/dist/adapters/kysely/kysely-query-builder.js +306 -0
  33. package/dist/adapters/kysely/kysely-query-builder.js.map +1 -0
  34. package/dist/adapters/kysely/kysely-query-compiler.js +67 -0
  35. package/dist/adapters/kysely/kysely-query-compiler.js.map +1 -0
  36. package/dist/adapters/kysely/kysely-query.js +158 -0
  37. package/dist/adapters/kysely/kysely-query.js.map +1 -0
  38. package/dist/adapters/kysely/kysely-uow-compiler.js +139 -0
  39. package/dist/adapters/kysely/kysely-uow-compiler.js.map +1 -0
  40. package/dist/adapters/kysely/kysely-uow-executor.js +89 -0
  41. package/dist/adapters/kysely/kysely-uow-executor.js.map +1 -0
  42. package/dist/adapters/kysely/migration/execute.js +176 -0
  43. package/dist/adapters/kysely/migration/execute.js.map +1 -0
  44. package/dist/fragment.d.ts +54 -0
  45. package/dist/fragment.d.ts.map +1 -0
  46. package/dist/fragment.js +92 -0
  47. package/dist/fragment.js.map +1 -0
  48. package/dist/id.d.ts +2 -0
  49. package/dist/migration-engine/auto-from-schema.js +116 -0
  50. package/dist/migration-engine/auto-from-schema.js.map +1 -0
  51. package/dist/migration-engine/create.d.ts +41 -0
  52. package/dist/migration-engine/create.d.ts.map +1 -0
  53. package/dist/migration-engine/create.js +58 -0
  54. package/dist/migration-engine/create.js.map +1 -0
  55. package/dist/migration-engine/shared.d.ts +90 -0
  56. package/dist/migration-engine/shared.d.ts.map +1 -0
  57. package/dist/migration-engine/shared.js +8 -0
  58. package/dist/migration-engine/shared.js.map +1 -0
  59. package/dist/mod.d.ts +55 -2
  60. package/dist/mod.d.ts.map +1 -1
  61. package/dist/mod.js +111 -2
  62. package/dist/mod.js.map +1 -1
  63. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/column-builder.js +108 -0
  64. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/column-builder.js.map +1 -0
  65. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/column.js +55 -0
  66. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/column.js.map +1 -0
  67. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/entity.js +18 -0
  68. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/entity.js.map +1 -0
  69. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/pg-core/columns/common.js +183 -0
  70. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/pg-core/columns/common.js.map +1 -0
  71. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/pg-core/columns/enum.js +58 -0
  72. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/pg-core/columns/enum.js.map +1 -0
  73. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/pg-core/foreign-keys.js +68 -0
  74. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/pg-core/foreign-keys.js.map +1 -0
  75. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/pg-core/unique-constraint.js +56 -0
  76. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/pg-core/unique-constraint.js.map +1 -0
  77. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/pg-core/utils/array.js +65 -0
  78. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/pg-core/utils/array.js.map +1 -0
  79. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/sql/expressions/conditions.js +81 -0
  80. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/sql/expressions/conditions.js.map +1 -0
  81. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/sql/expressions/select.js +13 -0
  82. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/sql/expressions/select.js.map +1 -0
  83. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/sql/functions/aggregate.js +10 -0
  84. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/sql/functions/aggregate.js.map +1 -0
  85. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/sql/sql.js +372 -0
  86. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/sql/sql.js.map +1 -0
  87. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/subquery.js +23 -0
  88. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/subquery.js.map +1 -0
  89. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/table.js +62 -0
  90. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/table.js.map +1 -0
  91. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/table.utils.js +6 -0
  92. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/table.utils.js.map +1 -0
  93. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/tracing-utils.js +8 -0
  94. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/tracing-utils.js.map +1 -0
  95. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/tracing.js +8 -0
  96. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/tracing.js.map +1 -0
  97. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/view-common.js +6 -0
  98. package/dist/node_modules/.bun/drizzle-orm@0.44.6_4fae081eecb963e2/node_modules/drizzle-orm/view-common.js.map +1 -0
  99. package/dist/query/condition-builder.d.ts +41 -0
  100. package/dist/query/condition-builder.d.ts.map +1 -0
  101. package/dist/query/condition-builder.js +93 -0
  102. package/dist/query/condition-builder.js.map +1 -0
  103. package/dist/query/cursor.d.ts +88 -0
  104. package/dist/query/cursor.d.ts.map +1 -0
  105. package/dist/query/cursor.js +103 -0
  106. package/dist/query/cursor.js.map +1 -0
  107. package/dist/query/orm/orm.d.ts +18 -0
  108. package/dist/query/orm/orm.d.ts.map +1 -0
  109. package/dist/query/orm/orm.js +48 -0
  110. package/dist/query/orm/orm.js.map +1 -0
  111. package/dist/query/query.d.ts +79 -0
  112. package/dist/query/query.d.ts.map +1 -0
  113. package/dist/query/query.js +1 -0
  114. package/dist/query/result-transform.js +155 -0
  115. package/dist/query/result-transform.js.map +1 -0
  116. package/dist/query/unit-of-work.d.ts +435 -0
  117. package/dist/query/unit-of-work.d.ts.map +1 -0
  118. package/dist/query/unit-of-work.js +549 -0
  119. package/dist/query/unit-of-work.js.map +1 -0
  120. package/dist/schema/create.d.ts +273 -116
  121. package/dist/schema/create.d.ts.map +1 -1
  122. package/dist/schema/create.js +410 -222
  123. package/dist/schema/create.js.map +1 -1
  124. package/dist/schema/serialize.js +101 -0
  125. package/dist/schema/serialize.js.map +1 -0
  126. package/dist/schema-generator/schema-generator.d.ts +15 -0
  127. package/dist/schema-generator/schema-generator.d.ts.map +1 -0
  128. package/dist/shared/providers.d.ts +6 -0
  129. package/dist/shared/providers.d.ts.map +1 -0
  130. package/dist/util/import-generator.js +26 -0
  131. package/dist/util/import-generator.js.map +1 -0
  132. package/dist/util/parse.js +15 -0
  133. package/dist/util/parse.js.map +1 -0
  134. package/dist/util/types.d.ts +8 -0
  135. package/dist/util/types.d.ts.map +1 -0
  136. package/package.json +63 -2
  137. package/src/adapters/adapters.ts +22 -0
  138. package/src/adapters/drizzle/drizzle-adapter-pglite.test.ts +433 -0
  139. package/src/adapters/drizzle/drizzle-adapter.test.ts +122 -0
  140. package/src/adapters/drizzle/drizzle-adapter.ts +118 -0
  141. package/src/adapters/drizzle/drizzle-query.ts +234 -0
  142. package/src/adapters/drizzle/drizzle-uow-compiler.test.ts +1084 -0
  143. package/src/adapters/drizzle/drizzle-uow-compiler.ts +546 -0
  144. package/src/adapters/drizzle/drizzle-uow-decoder.ts +165 -0
  145. package/src/adapters/drizzle/drizzle-uow-executor.ts +213 -0
  146. package/src/adapters/drizzle/generate.test.ts +643 -0
  147. package/src/adapters/drizzle/generate.ts +481 -0
  148. package/src/adapters/drizzle/join-column-utils.test.ts +79 -0
  149. package/src/adapters/drizzle/join-column-utils.ts +39 -0
  150. package/src/adapters/drizzle/migrate-drizzle.test.ts +226 -0
  151. package/src/adapters/drizzle/shared.ts +22 -0
  152. package/src/adapters/drizzle/test-utils.ts +56 -0
  153. package/src/adapters/kysely/kysely-adapter-pglite.test.ts +789 -0
  154. package/src/adapters/kysely/kysely-adapter.ts +196 -0
  155. package/src/adapters/kysely/kysely-query-builder.test.ts +1344 -0
  156. package/src/adapters/kysely/kysely-query-builder.ts +611 -0
  157. package/src/adapters/kysely/kysely-query-compiler.ts +124 -0
  158. package/src/adapters/kysely/kysely-query.ts +254 -0
  159. package/src/adapters/kysely/kysely-uow-compiler.test.ts +916 -0
  160. package/src/adapters/kysely/kysely-uow-compiler.ts +271 -0
  161. package/src/adapters/kysely/kysely-uow-executor.ts +149 -0
  162. package/src/adapters/kysely/kysely-uow-joins.test.ts +811 -0
  163. package/src/adapters/kysely/migration/execute-mysql.test.ts +1173 -0
  164. package/src/adapters/kysely/migration/execute-postgres.test.ts +2657 -0
  165. package/src/adapters/kysely/migration/execute.ts +382 -0
  166. package/src/adapters/kysely/migration/kysely-migrator.test.ts +197 -0
  167. package/src/fragment.test.ts +287 -0
  168. package/src/fragment.ts +198 -0
  169. package/src/migration-engine/auto-from-schema.test.ts +118 -58
  170. package/src/migration-engine/auto-from-schema.ts +103 -32
  171. package/src/migration-engine/create.test.ts +34 -46
  172. package/src/migration-engine/create.ts +41 -26
  173. package/src/migration-engine/shared.ts +26 -6
  174. package/src/mod.ts +197 -1
  175. package/src/query/condition-builder.test.ts +379 -0
  176. package/src/query/condition-builder.ts +294 -0
  177. package/src/query/cursor.test.ts +296 -0
  178. package/src/query/cursor.ts +147 -0
  179. package/src/query/orm/orm.ts +92 -0
  180. package/src/query/query-type.test.ts +429 -0
  181. package/src/query/query.ts +200 -0
  182. package/src/query/result-transform.test.ts +795 -0
  183. package/src/query/result-transform.ts +247 -0
  184. package/src/query/unit-of-work-types.test.ts +192 -0
  185. package/src/query/unit-of-work.test.ts +947 -0
  186. package/src/query/unit-of-work.ts +1199 -0
  187. package/src/schema/create.test.ts +653 -110
  188. package/src/schema/create.ts +708 -337
  189. package/src/schema/serialize.test.ts +559 -0
  190. package/src/schema/serialize.ts +359 -0
  191. package/src/schema-generator/schema-generator.ts +12 -0
  192. package/src/shared/config.ts +0 -8
  193. package/src/util/import-generator.ts +28 -0
  194. package/src/util/parse.ts +16 -0
  195. package/src/util/types.ts +4 -0
  196. package/tsconfig.json +1 -1
  197. package/tsdown.config.ts +11 -1
  198. package/vitest.config.ts +3 -0
  199. /package/dist/{cuid.js → id.js} +0 -0
  200. /package/src/{cuid.ts → id.ts} +0 -0
@@ -2,15 +2,26 @@
2
2
  type AnySchema = Schema<Record<string, AnyTable>>;
3
3
  type AnyRelation = Relation;
4
4
  type AnyTable = Table;
5
- type AnyColumn = Column<keyof TypeMap, unknown, unknown> | IdColumn<IdColumnType, unknown, unknown>;
5
+ type AnyColumn = Column<keyof TypeMap, unknown, unknown> | IdColumn<IdColumnType, unknown, unknown> | InternalIdColumn<unknown, unknown> | VersionColumn<unknown, unknown>;
6
6
  /**
7
- * Operations that can be performed on a table during its definition.
7
+ * Sub-operations that can be performed within table operations.
8
+ * These are stored in order within add-table and alter-table operations.
8
9
  */
9
- type TableOperation = {
10
+ type TableSubOperation = {
11
+ type: "add-column";
12
+ columnName: string;
13
+ column: AnyColumn;
14
+ } | {
10
15
  type: "add-index";
11
16
  name: string;
12
17
  columns: string[];
13
18
  unique: boolean;
19
+ } | {
20
+ type: "add-foreign-key";
21
+ name: string;
22
+ columns: string[];
23
+ referencedTable: string;
24
+ referencedColumns: string[];
14
25
  };
15
26
  /**
16
27
  * Operations that can be performed on a schema during its definition.
@@ -19,22 +30,26 @@ type TableOperation = {
19
30
  type SchemaOperation = {
20
31
  type: "add-table";
21
32
  tableName: string;
22
- table: AnyTable;
33
+ operations: TableSubOperation[];
34
+ } | {
35
+ type: "alter-table";
36
+ tableName: string;
37
+ operations: TableSubOperation[];
23
38
  } | {
24
39
  type: "add-reference";
25
40
  tableName: string;
26
41
  referenceName: string;
27
42
  config: {
28
- columns: string[];
29
- targetTable: string;
30
- targetColumns: string[];
43
+ type: "one" | "many";
44
+ from: {
45
+ table: string;
46
+ column: string;
47
+ };
48
+ to: {
49
+ table: string;
50
+ column: string;
51
+ };
31
52
  };
32
- } | {
33
- type: "add-index";
34
- tableName: string;
35
- name: string;
36
- columns: string[];
37
- unique: boolean;
38
53
  };
39
54
  interface ForeignKey {
40
55
  name: string;
@@ -43,56 +58,59 @@ interface ForeignKey {
43
58
  referencedTable: AnyTable;
44
59
  referencedColumns: AnyColumn[];
45
60
  }
46
- declare class RelationInit<TRelationType extends RelationType, TTables extends Record<string, AnyTable>, TTableName extends keyof TTables> {
47
- type: TRelationType;
48
- referencedTable: TTables[TTableName];
61
+ declare class RelationInit<TRelationType$1 extends RelationType, TTables extends Record<string, AnyTable>, TTableName$1 extends keyof TTables> {
62
+ type: TRelationType$1;
63
+ referencedTable: TTables[TTableName$1];
49
64
  referencer: AnyTable;
50
65
  on: [string, string][];
51
- constructor(type: TRelationType, referencedTable: TTables[TTableName], referencer: AnyTable);
66
+ constructor(type: TRelationType$1, referencedTable: TTables[TTableName$1], referencer: AnyTable);
52
67
  }
53
- interface Index {
68
+ interface Index<TColumns$1 extends AnyColumn[] = AnyColumn[], TColumnNames$1 extends readonly string[] = readonly string[]> {
54
69
  name: string;
55
- columns: AnyColumn[];
70
+ columns: TColumns$1;
71
+ columnNames: TColumnNames$1;
56
72
  unique: boolean;
57
73
  }
58
- declare class ExplicitRelationInit<TRelationType extends RelationType, TTables extends Record<string, AnyTable>, TTableName extends keyof TTables> extends RelationInit<TRelationType, TTables, TTableName> {
59
- private foreignKeyName?;
60
- private initForeignKey;
61
- init(ormName: string): Relation<TRelationType, TTables[TTableName]>;
62
- /**
63
- * Define custom foreign key name.
64
- */
65
- foreignKey(name: string): this;
74
+ declare class ExplicitRelationInit<TRelationType$1 extends RelationType, TTables extends Record<string, AnyTable>, TTableName$1 extends keyof TTables> extends RelationInit<TRelationType$1, TTables, TTableName$1> {
75
+ init(ormName: string): Relation<TRelationType$1, TTables[TTableName$1]>;
66
76
  }
67
- interface Relation<TRelationType extends RelationType = RelationType, TTable extends AnyTable = AnyTable> {
77
+ interface Relation<TRelationType$1 extends RelationType = RelationType, TTable extends AnyTable = AnyTable> {
68
78
  id: string;
69
79
  name: string;
70
- type: TRelationType;
80
+ type: TRelationType$1;
71
81
  table: TTable;
72
82
  referencer: AnyTable;
73
83
  on: [string, string][];
74
- foreignKey: ForeignKey;
75
84
  }
76
- interface Table<TColumns extends Record<string, AnyColumn> = Record<string, AnyColumn>, TRelations extends Record<string, AnyRelation> = Record<string, AnyRelation>> {
85
+ interface Table<TColumns$1 extends Record<string, AnyColumn> = Record<string, AnyColumn>, TRelations$1 extends Record<string, AnyRelation> = Record<string, AnyRelation>, TIndexes$1 extends Record<string, Index> = Record<string, Index>> {
77
86
  name: string;
78
87
  ormName: string;
79
- columns: TColumns;
80
- relations: TRelations;
81
- foreignKeys: ForeignKey[];
82
- indexes: Index[];
88
+ columns: TColumns$1;
89
+ relations: TRelations$1;
90
+ indexes: TIndexes$1;
83
91
  /**
84
92
  * Get column by name
85
93
  */
86
94
  getColumnByName: (name: string) => AnyColumn | undefined;
95
+ /**
96
+ * Get the external ID column (user-facing)
97
+ */
87
98
  getIdColumn: () => AnyColumn;
88
- clone: () => Table<TColumns, TRelations>;
99
+ /**
100
+ * Get the internal ID column (database-native, used for joins)
101
+ */
102
+ getInternalIdColumn: () => AnyColumn;
103
+ /**
104
+ * Get the version column (for optimistic concurrency control)
105
+ */
106
+ getVersionColumn: () => AnyColumn;
89
107
  }
90
108
  type DefaultFunctionMap = {
91
109
  date: "now";
92
110
  timestamp: "now";
93
111
  string: "auto";
94
112
  } & Record<`varchar(${number})`, "auto">;
95
- type DefaultFunction<TType extends keyof TypeMap> = (TType extends keyof DefaultFunctionMap ? DefaultFunctionMap[TType] : never) | (() => TypeMap[TType]);
113
+ type DefaultFunction<TType$1 extends keyof TypeMap> = (TType$1 extends keyof DefaultFunctionMap ? DefaultFunctionMap[TType$1] : never) | (() => TypeMap[TType$1]);
96
114
  type IdColumnType = `varchar(${number})`;
97
115
  type TypeMap = {
98
116
  string: string;
@@ -108,88 +126,178 @@ type TypeMap = {
108
126
  date: Date;
109
127
  timestamp: Date;
110
128
  } & Record<`varchar(${number})`, string>;
111
- declare class Column<TType extends keyof TypeMap, TIn = unknown, TOut = unknown> {
112
- type: TType;
129
+ declare class Column<TType$1 extends keyof TypeMap, TIn = unknown, TOut = unknown> {
130
+ type: TType$1;
113
131
  name: string;
114
132
  ormName: string;
115
133
  isNullable: boolean;
116
- isUnique: boolean;
117
- isReference: boolean;
134
+ role: "external-id" | "internal-id" | "version" | "reference" | "regular";
135
+ isHidden: boolean;
118
136
  default?: {
119
- value: TypeMap[TType];
137
+ value: TypeMap[TType$1];
120
138
  } | {
121
- runtime: DefaultFunction<TType>;
139
+ runtime: DefaultFunction<TType$1>;
122
140
  };
123
- table: AnyTable;
124
- constructor(type: TType);
125
- nullable<TNullable extends boolean = true>(nullable?: TNullable): Column<TType, TNullable extends true ? TIn | null : Exclude<TIn, null>, TNullable extends true ? TOut | null : Exclude<TOut, null>>;
141
+ tableName: string;
142
+ constructor(type: TType$1);
143
+ nullable<TNullable extends boolean = true>(nullable?: TNullable): Column<TType$1, TNullable extends true ? TIn | null : Exclude<TIn, null>, TNullable extends true ? TOut | null : Exclude<TOut, null>>;
144
+ hidden<THidden extends boolean = true>(hidden?: THidden): Column<TType$1, null, null>;
126
145
  /**
127
146
  * Generate default value on runtime
128
147
  */
129
- defaultTo$(fn: DefaultFunction<TType>): Column<TType, TIn | null, TOut>;
148
+ defaultTo$(fn: DefaultFunction<TType$1>): Column<TType$1, TIn | null, TOut>;
130
149
  /**
131
150
  * Set a database-level default value
132
151
  *
133
152
  * For schemaless database, it's still generated on runtime
134
153
  */
135
- defaultTo(value: TypeMap[TType]): Column<TType, TIn | null, TOut>;
136
- clone(): Column<TType, unknown, unknown>;
137
- getUniqueConstraintName(): string;
154
+ defaultTo(value: TypeMap[TType$1]): Column<TType$1, TIn | null, TOut>;
138
155
  /**
139
156
  * Generate default value for the column on runtime.
140
157
  */
141
- generateDefaultValue(): TypeMap[TType] | undefined;
158
+ generateDefaultValue(): TypeMap[TType$1] | undefined;
159
+ /**
160
+ * @description This is used for type inference only. Runtime value will be undefined.
161
+ * @internal
162
+ */
142
163
  get $in(): TIn;
164
+ /**
165
+ * @description This is used for type inference only. Runtime value will be undefined.
166
+ * @internal
167
+ */
143
168
  get $out(): TOut;
144
169
  }
145
- declare class IdColumn<TType extends IdColumnType = IdColumnType, TIn = unknown, TOut = unknown> extends Column<TType, TIn, TOut> {
170
+ declare class IdColumn<TType$1 extends IdColumnType = IdColumnType, TIn = unknown, TOut = unknown> extends Column<TType$1, TIn, TOut> {
146
171
  id: boolean;
147
- clone(): IdColumn<TType, unknown, unknown>;
148
- defaultTo$(fn: DefaultFunction<TType>): IdColumn<TType, TIn | null, TOut>;
149
- defaultTo(value: TypeMap[TType]): IdColumn<TType, TIn | null, TOut>;
172
+ defaultTo$(fn: DefaultFunction<TType$1>): IdColumn<TType$1, TIn | null, TOut>;
173
+ defaultTo(value: TypeMap[TType$1]): IdColumn<TType$1, TIn | null, TOut>;
150
174
  }
151
- declare function column<TType extends keyof TypeMap>(type: TType): Column<TType, TypeMap[TType], TypeMap[TType]>;
152
175
  /**
153
- * Create a reference column that points to another table.
176
+ * Internal ID column - used for database-native joins and foreign keys.
177
+ * Hidden from user API by default.
178
+ */
179
+ declare class InternalIdColumn<TIn = unknown, TOut = unknown> extends Column<"bigint", TIn, TOut> {
180
+ role: "internal-id";
181
+ constructor();
182
+ }
183
+ /**
184
+ * Version column - used for optimistic concurrency control.
185
+ * Automatically incremented on each update.
186
+ */
187
+ declare class VersionColumn<TIn = unknown, TOut = unknown> extends Column<"integer", TIn, TOut> {
188
+ role: "version";
189
+ constructor();
190
+ }
191
+ declare function column<TType$1 extends keyof TypeMap>(type: TType$1): Column<TType$1, TypeMap[TType$1], TypeMap[TType$1]>;
192
+ /**
193
+ * Create a reference column that points to another table's internal ID.
154
194
  * This is used for foreign key relationships.
195
+ * Always uses bigint to match the internal ID type.
196
+ */
197
+ declare function referenceColumn(): Column<"bigint", string | bigint | FragnoId | FragnoReference, FragnoReference>;
198
+ /**
199
+ * Create an external ID column (user-facing).
200
+ * This is a CUID string that can be auto-generated or user-provided.
201
+ * Input accepts string | FragnoId | null, output returns FragnoId.
202
+ */
203
+ declare function idColumn(): IdColumn<"varchar(30)", string | FragnoId | null, FragnoId>;
204
+ /**
205
+ * Create an internal ID column (database-native, hidden from user API).
206
+ * Used for joins and foreign keys.
207
+ * @internal
155
208
  */
156
- declare function referenceColumn<TType extends keyof TypeMap = "varchar(30)">(type?: TType): Column<TType, TypeMap[TType], TypeMap[TType]>;
157
- declare function idColumn(): IdColumn<"varchar(30)", string, string>;
158
- type RelationType = "one";
159
- declare class TableBuilder<TColumns extends Record<string, AnyColumn> = Record<string, AnyColumn>, TRelations extends Record<string, AnyRelation> = Record<string, AnyRelation>> {
209
+ declare function internalIdColumn(): InternalIdColumn<null, bigint>;
210
+ /**
211
+ * Create a version column for optimistic concurrency control.
212
+ * @internal
213
+ */
214
+ declare function versionColumn(): VersionColumn<null, number>;
215
+ /**
216
+ * FragnoId represents a unified ID object that can contain external ID, internal ID, or both.
217
+ * @internal
218
+ *
219
+ * For query inputs: externalId is sufficient (internalId is optional)
220
+ * For query results: both externalId and internalId are provided
221
+ */
222
+ declare class FragnoId {
160
223
  #private;
161
- constructor(name: string);
224
+ constructor({
225
+ externalId,
226
+ internalId,
227
+ version
228
+ }: {
229
+ externalId: string;
230
+ internalId?: bigint;
231
+ version: number;
232
+ });
162
233
  /**
163
- * Add a column to the table. Increments the version counter.
234
+ * Create a FragnoId from just an external ID (for inputs)
164
235
  */
165
- addColumn<TColumnName extends string, TColumn extends AnyColumn>(ormName: TColumnName, col: TColumn): TableBuilder<TColumns & Record<TColumnName, TColumn>, TRelations>;
236
+ static fromExternal(externalId: string, version: number): FragnoId;
237
+ get version(): number;
238
+ get externalId(): string;
239
+ get internalId(): bigint | undefined;
166
240
  /**
167
- * Add a column to the table with simplified syntax. Increments the version counter.
241
+ * Get the appropriate ID for database operations
242
+ * Prefers internal ID if available, falls back to external ID
168
243
  */
169
- addColumn<TColumnName extends string, TType extends keyof TypeMap>(ormName: TColumnName, type: TType): TableBuilder<TColumns & Record<TColumnName, Column<TType, TypeMap[TType], TypeMap[TType]>>, TRelations>;
244
+ get databaseId(): string | bigint;
170
245
  /**
171
- * Create an index on the specified columns. Increments the version counter.
246
+ * Convert to a plain object for serialization
172
247
  */
173
- createIndex<TColumnName extends string & keyof TColumns>(name: string, columns: TColumnName[], options?: {
174
- unique?: boolean;
175
- }): TableBuilder<TColumns, TRelations>;
248
+ toJSON(): {
249
+ externalId: string;
250
+ internalId?: string;
251
+ };
252
+ toString(): string;
253
+ valueOf(): string;
254
+ }
255
+ /**
256
+ * FragnoReference represents a foreign key reference to another table's internal ID.
257
+ * Unlike FragnoId, it only contains the internal ID (bigint) of the referenced record.
258
+ * This is used for reference columns in query results.
259
+ * @internal
260
+ */
261
+ declare class FragnoReference {
262
+ #private;
263
+ constructor(internalId: bigint);
176
264
  /**
177
- * Build the final table. This should be called after all columns are added.
265
+ * Create a FragnoReference from an internal ID
178
266
  */
179
- build(): Table<TColumns, TRelations>;
267
+ static fromInternal(internalId: bigint): FragnoReference;
180
268
  /**
181
- * Get the current version of the table builder.
269
+ * Get the internal ID for database operations
182
270
  */
183
- getVersion(): number;
271
+ get internalId(): bigint;
272
+ }
273
+ type RelationType = "one" | "many";
274
+ declare class TableBuilder<TColumns$1 extends Record<string, AnyColumn> = Record<string, AnyColumn>, TRelations$1 extends Record<string, AnyRelation> = Record<string, AnyRelation>, TIndexes$1 extends Record<string, Index> = Record<string, Index>> {
275
+ #private;
276
+ constructor(name: string);
277
+ setColumns(columns: TColumns$1): void;
278
+ setRelations(relations: TRelations$1): void;
279
+ setIndexes(indexes: TIndexes$1): void;
280
+ getIndexes(): Index[];
281
+ getColumnOrder(): string[];
282
+ /**
283
+ * Add a column to the table.
284
+ */
285
+ addColumn<TColumnName extends string, TColumn extends AnyColumn>(ormName: TColumnName, col: TColumn): TableBuilder<TColumns$1 & Record<TColumnName, TColumn>, TRelations$1, TIndexes$1>;
286
+ /**
287
+ * Add a column to the table with simplified syntax.
288
+ */
289
+ addColumn<TColumnName extends string, TType extends keyof TypeMap>(ormName: TColumnName, type: TType): TableBuilder<TColumns$1 & Record<TColumnName, Column<TType, TypeMap[TType], TypeMap[TType]>>, TRelations$1, TIndexes$1>;
290
+ /**
291
+ * Create an index on the specified columns.
292
+ */
293
+ createIndex<TIndexName extends string, const TColumnNames extends readonly (string & keyof TColumns$1)[]>(name: TIndexName, columns: TColumnNames, options?: {
294
+ unique?: boolean;
295
+ }): TableBuilder<TColumns$1, TRelations$1, TIndexes$1 & Record<TIndexName, Index<ColumnsToTuple<TColumns$1, TColumnNames>, TColumnNames>>>;
184
296
  /**
185
- * Get the operations performed on this table.
297
+ * Build the final table. This should be called after all columns are added.
186
298
  */
187
- getOperations(): TableOperation[];
299
+ build(): Table<TColumns$1, TRelations$1, TIndexes$1>;
188
300
  }
189
- /**
190
- * Create a new table with callback pattern.
191
- */
192
- declare function table<TColumns extends Record<string, AnyColumn> = Record<string, AnyColumn>, TRelations extends Record<string, AnyRelation> = Record<string, AnyRelation>>(name: string, callback: (builder: TableBuilder<Record<string, AnyColumn>, Record<string, AnyRelation>>) => TableBuilder<TColumns, TRelations>): Table<TColumns, TRelations>;
193
301
  interface Schema<TTables extends Record<string, AnyTable> = Record<string, AnyTable>> {
194
302
  /**
195
303
  * @description The version of the schema, automatically incremented on each change.
@@ -203,60 +311,109 @@ interface Schema<TTables extends Record<string, AnyTable> = Record<string, AnyTa
203
311
  operations: SchemaOperation[];
204
312
  clone: () => Schema<TTables>;
205
313
  }
206
- declare class SchemaBuilder<TTables extends Record<string, AnyTable> = Record<string, never>> {
314
+ /**
315
+ * Utility type for updating a single table's relations in a schema.
316
+ * Used to properly type the return value of addReference.
317
+ */
318
+ type UpdateTableRelations<TTables extends Record<string, AnyTable>, TTableName$1 extends keyof TTables, TReferenceName$1 extends string, TReferencedTableName extends keyof TTables, TRelationType$1 extends RelationType = RelationType> = { [K in keyof TTables]: K extends TTableName$1 ? Table<TTables[TTableName$1]["columns"], TTables[TTableName$1]["relations"] & Record<TReferenceName$1, Relation<TRelationType$1, TTables[TReferencedTableName]>>, TTables[TTableName$1]["indexes"]> : TTables[K] };
319
+ /**
320
+ * Utility type for updating a single table in a schema.
321
+ * Used to properly type the return value of alterTable.
322
+ */
323
+ type UpdateTable<TTables extends Record<string, AnyTable>, TTableName$1 extends keyof TTables, TNewColumns$1 extends Record<string, AnyColumn>, TNewRelations$1 extends Record<string, AnyRelation>, TNewIndexes$1 extends Record<string, Index>> = { [K in keyof TTables]: K extends TTableName$1 ? Table<TNewColumns$1, TNewRelations$1, TNewIndexes$1> : TTables[K] };
324
+ /**
325
+ * Map an array of column names to a tuple of their actual column types
326
+ */
327
+ type ColumnsToTuple<TColumns$1 extends Record<string, AnyColumn>, TColumnNames$1 extends readonly (keyof TColumns$1)[]> = { [K in keyof TColumnNames$1]: TColumnNames$1[K] extends keyof TColumns$1 ? TColumns$1[TColumnNames$1[K]] : never } & AnyColumn[];
328
+ declare class SchemaBuilder<TTables extends Record<string, AnyTable> = {}> {
207
329
  #private;
208
- constructor();
330
+ constructor(existingSchema?: Schema<TTables>);
331
+ /**
332
+ * Add an existing schema to this builder.
333
+ * Merges tables and operations from the provided schema.
334
+ *
335
+ * @example
336
+ * ```ts
337
+ * const builder = new SchemaBuilder()
338
+ * .add(userSchema)
339
+ * .add(postSchema)
340
+ * .addTable("comments", ...);
341
+ * ```
342
+ */
343
+ mergeWithExistingSchema<TNewTables extends Record<string, AnyTable>>(schema: Schema<TNewTables>): SchemaBuilder<TTables & TNewTables>;
209
344
  /**
210
345
  * Add a table to the schema. Increments the version counter.
211
346
  */
212
- addTable<TTableName extends string, TColumns extends Record<string, AnyColumn>, TRelations extends Record<string, AnyRelation>>(ormName: TTableName, callback: (builder: TableBuilder<Record<string, AnyColumn>, Record<string, AnyRelation>>) => TableBuilder<TColumns, TRelations>): SchemaBuilder<TTables & Record<TTableName, Table<TColumns, TRelations>>>;
347
+ addTable<TTableName extends string, TColumns extends Record<string, AnyColumn>, TRelations extends Record<string, AnyRelation>, TIndexes extends Record<string, Index> = Record<string, Index>>(ormName: TTableName, callback: (builder: TableBuilder<Record<string, AnyColumn>, Record<string, AnyRelation>, Record<string, Index>>) => TableBuilder<TColumns, TRelations, TIndexes>): SchemaBuilder<TTables & Record<TTableName, Table<TColumns, TRelations, TIndexes>>>;
213
348
  /**
214
- * Add a foreign key reference from this table to another table.
349
+ * Add a relation between two tables.
215
350
  *
216
- * @param tableName - The table that has the foreign key column
217
- * @param referenceName - A name for this reference (e.g., "author", "category")
218
- * @param config - Configuration specifying the foreign key mapping
351
+ * @param referenceName - A name for this relation (e.g., "author", "posts")
352
+ * @param config - Configuration specifying the relation type and foreign key mapping
219
353
  *
220
354
  * @example
221
355
  * ```ts
222
- * // Basic foreign key: post -> user
356
+ * // One-to-one or many-to-one: post -> user
223
357
  * schema(s => s
224
358
  * .addTable("users", t => t.addColumn("id", idColumn()))
225
359
  * .addTable("posts", t => t
226
360
  * .addColumn("id", idColumn())
227
- * .addColumn("authorId", referenceColumn()))
228
- * .addReference("posts", "author", {
229
- * columns: ["authorId"],
230
- * targetTable: "users",
231
- * targetColumns: ["id"],
361
+ * .addColumn("userId", referenceColumn()))
362
+ * .addReference("author", {
363
+ * type: "one",
364
+ * from: { table: "posts", column: "userId" },
365
+ * to: { table: "users", column: "id" },
232
366
  * })
233
367
  * )
234
368
  *
235
- * // Self-referencing foreign key
236
- * .addReference("users", "inviter", {
237
- * columns: ["invitedBy"],
238
- * targetTable: "users",
239
- * targetColumns: ["id"],
369
+ * // One-to-many (inverse relation): user -> posts
370
+ * .addReference("posts", {
371
+ * type: "many",
372
+ * from: { table: "users", column: "id" },
373
+ * to: { table: "posts", column: "userId" },
240
374
  * })
241
375
  *
242
- * // Multiple foreign keys - call addReference multiple times
243
- * .addReference("posts", "author", {
244
- * columns: ["authorId"],
245
- * targetTable: "users",
246
- * targetColumns: ["id"],
247
- * })
248
- * .addReference("posts", "category", {
249
- * columns: ["categoryId"],
250
- * targetTable: "categories",
251
- * targetColumns: ["id"],
376
+ * // Self-referencing foreign key
377
+ * .addReference("inviter", {
378
+ * type: "one",
379
+ * from: { table: "users", column: "invitedBy" },
380
+ * to: { table: "users", column: "id" },
252
381
  * })
253
382
  * ```
254
383
  */
255
- addReference<TTableName extends string & keyof TTables, TReferencedTableName extends string & keyof TTables>(tableName: TTableName, referenceName: string, config: {
256
- columns: (keyof TTables[TTableName]["columns"])[];
257
- targetTable: TReferencedTableName;
258
- targetColumns: (keyof TTables[TReferencedTableName]["columns"])[];
259
- }): SchemaBuilder<TTables>;
384
+ addReference<TFromTableName extends string & keyof TTables, TToTableName extends string & keyof TTables, TReferenceName extends string, TRelationType extends RelationType>(referenceName: TReferenceName, config: {
385
+ type: TRelationType;
386
+ from: {
387
+ table: TFromTableName;
388
+ column: keyof TTables[TFromTableName]["columns"];
389
+ };
390
+ to: {
391
+ table: TToTableName;
392
+ column: keyof TTables[TToTableName]["columns"];
393
+ };
394
+ }): SchemaBuilder<UpdateTableRelations<TTables, TFromTableName, TReferenceName, TToTableName, TRelationType>>;
395
+ /**
396
+ * Alter an existing table by adding columns or indexes.
397
+ * This is used for append-only schema modifications.
398
+ *
399
+ * @param tableName - The name of the table to modify
400
+ * @param callback - A callback that receives a table builder for adding columns/indexes
401
+ *
402
+ * @example
403
+ * ```ts
404
+ * // Add a new column to an existing table
405
+ * schema(s => s
406
+ * .addTable("users", t => t
407
+ * .addColumn("id", idColumn())
408
+ * .addColumn("name", column("string")))
409
+ * .alterTable("users", t => t
410
+ * .addColumn("email", column("string"))
411
+ * .addColumn("age", column("integer").nullable())
412
+ * .createIndex("idx_email", ["email"]))
413
+ * )
414
+ * ```
415
+ */
416
+ alterTable<TTableName extends string & keyof TTables, TNewColumns extends Record<string, AnyColumn>, TNewRelations extends Record<string, AnyRelation>, TNewIndexes extends Record<string, Index> = Record<string, Index>>(tableName: TTableName, callback: (builder: TableBuilder<TTables[TTableName]["columns"], TTables[TTableName]["relations"], Record<string, Index>>) => TableBuilder<TNewColumns, TNewRelations, TNewIndexes>): SchemaBuilder<UpdateTable<TTables, TTableName, TNewColumns, TNewRelations, TNewIndexes>>;
260
417
  /**
261
418
  * Build the final schema. This should be called after all tables are added.
262
419
  */
@@ -269,8 +426,8 @@ declare class SchemaBuilder<TTables extends Record<string, AnyTable> = Record<st
269
426
  /**
270
427
  * Create a new schema with callback pattern.
271
428
  */
272
- declare function schema<TTables extends Record<string, AnyTable> = Record<string, never>>(callback: (builder: SchemaBuilder<Record<string, never>>) => SchemaBuilder<TTables>): Schema<TTables>;
273
- declare function compileForeignKey(key: ForeignKey): {
429
+ declare function schema<const TTables extends Record<string, AnyTable> = {}>(callback: (builder: SchemaBuilder<{}>) => SchemaBuilder<TTables>): Schema<TTables>;
430
+ declare function compileForeignKey(key: ForeignKey, nameType?: "sql" | "orm"): {
274
431
  name: string;
275
432
  table: string;
276
433
  referencedTable: string;
@@ -278,5 +435,5 @@ declare function compileForeignKey(key: ForeignKey): {
278
435
  columns: string[];
279
436
  };
280
437
  //#endregion
281
- export { AnyColumn, AnyRelation, AnySchema, AnyTable, Column, ExplicitRelationInit, ForeignKey, IdColumn, Index, Relation, Schema, SchemaBuilder, SchemaOperation, Table, TableBuilder, TableOperation, TypeMap, column, compileForeignKey, idColumn, referenceColumn, schema, table };
438
+ export { AnyColumn, AnyRelation, AnySchema, AnyTable, Column, ExplicitRelationInit, ForeignKey, FragnoId, FragnoReference, IdColumn, Index, InternalIdColumn, Relation, Schema, SchemaBuilder, SchemaOperation, Table, TableBuilder, TableSubOperation, TypeMap, VersionColumn, column, compileForeignKey, idColumn, internalIdColumn, referenceColumn, schema, versionColumn };
282
439
  //# sourceMappingURL=create.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","names":[],"sources":["../../src/schema/create.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"create.d.ts","names":[],"sources":["../../src/schema/create.ts"],"sourcesContent":[],"mappings":"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"}