neoorm 0.1.4 → 0.2.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 (173) hide show
  1. package/README.md +423 -27
  2. package/dist/bin/neoorm.js +117 -30
  3. package/dist/bin/neoorm.js.map +1 -1
  4. package/dist/codegen/diff-manifest.d.ts +7 -1
  5. package/dist/codegen/diff-manifest.d.ts.map +1 -1
  6. package/dist/codegen/diff-manifest.js +100 -4
  7. package/dist/codegen/diff-manifest.js.map +1 -1
  8. package/dist/codegen/emit-includes.d.ts.map +1 -1
  9. package/dist/codegen/emit-includes.js +7 -1
  10. package/dist/codegen/emit-includes.js.map +1 -1
  11. package/dist/codegen/emit-models.d.ts.map +1 -1
  12. package/dist/codegen/emit-models.js +28 -6
  13. package/dist/codegen/emit-models.js.map +1 -1
  14. package/dist/codegen/generate-summary.d.ts +21 -0
  15. package/dist/codegen/generate-summary.d.ts.map +1 -0
  16. package/dist/codegen/generate-summary.js +101 -0
  17. package/dist/codegen/generate-summary.js.map +1 -0
  18. package/dist/codegen/generate.d.ts +12 -3
  19. package/dist/codegen/generate.d.ts.map +1 -1
  20. package/dist/codegen/generate.js +36 -13
  21. package/dist/codegen/generate.js.map +1 -1
  22. package/dist/codegen/manifest-relations.d.ts.map +1 -1
  23. package/dist/codegen/manifest-relations.js +9 -2
  24. package/dist/codegen/manifest-relations.js.map +1 -1
  25. package/dist/codegen/schema-to-manifest.d.ts +4 -1
  26. package/dist/codegen/schema-to-manifest.d.ts.map +1 -1
  27. package/dist/codegen/schema-to-manifest.js +69 -12
  28. package/dist/codegen/schema-to-manifest.js.map +1 -1
  29. package/dist/config.d.ts +1 -0
  30. package/dist/config.d.ts.map +1 -1
  31. package/dist/config.js.map +1 -1
  32. package/dist/dialect/postgres.d.ts +3 -0
  33. package/dist/dialect/postgres.d.ts.map +1 -1
  34. package/dist/dialect/postgres.js +51 -1
  35. package/dist/dialect/postgres.js.map +1 -1
  36. package/dist/dialect/types.d.ts +13 -1
  37. package/dist/dialect/types.d.ts.map +1 -1
  38. package/dist/index.d.ts +11 -5
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +5 -3
  41. package/dist/index.js.map +1 -1
  42. package/dist/init/scaffold.d.ts +19 -0
  43. package/dist/init/scaffold.d.ts.map +1 -0
  44. package/dist/init/scaffold.js +92 -0
  45. package/dist/init/scaffold.js.map +1 -0
  46. package/dist/init/templates.d.ts +4 -0
  47. package/dist/init/templates.d.ts.map +1 -0
  48. package/dist/init/templates.js +44 -0
  49. package/dist/init/templates.js.map +1 -0
  50. package/dist/introspect/queries.d.ts +5 -0
  51. package/dist/introspect/queries.d.ts.map +1 -1
  52. package/dist/introspect/queries.js +17 -0
  53. package/dist/introspect/queries.js.map +1 -1
  54. package/dist/introspect/to-manifest.d.ts.map +1 -1
  55. package/dist/introspect/to-manifest.js +58 -14
  56. package/dist/introspect/to-manifest.js.map +1 -1
  57. package/dist/migrate/runner.d.ts +26 -0
  58. package/dist/migrate/runner.d.ts.map +1 -1
  59. package/dist/migrate/runner.js +166 -7
  60. package/dist/migrate/runner.js.map +1 -1
  61. package/dist/plugins/builtin.d.ts +35 -2
  62. package/dist/plugins/builtin.d.ts.map +1 -1
  63. package/dist/plugins/builtin.js +318 -1
  64. package/dist/plugins/builtin.js.map +1 -1
  65. package/dist/plugins/json/operators.d.ts +3 -0
  66. package/dist/plugins/json/operators.d.ts.map +1 -0
  67. package/dist/plugins/json/operators.js +65 -0
  68. package/dist/plugins/json/operators.js.map +1 -0
  69. package/dist/plugins/registry.d.ts.map +1 -1
  70. package/dist/plugins/registry.js +3 -1
  71. package/dist/plugins/registry.js.map +1 -1
  72. package/dist/plugins/types.d.ts +1 -0
  73. package/dist/plugins/types.d.ts.map +1 -1
  74. package/dist/runtime/client.d.ts +33 -3
  75. package/dist/runtime/client.d.ts.map +1 -1
  76. package/dist/runtime/client.js +54 -36
  77. package/dist/runtime/client.js.map +1 -1
  78. package/dist/runtime/errors.d.ts +20 -0
  79. package/dist/runtime/errors.d.ts.map +1 -0
  80. package/dist/runtime/errors.js +68 -0
  81. package/dist/runtime/errors.js.map +1 -0
  82. package/dist/runtime/executor.d.ts +1 -0
  83. package/dist/runtime/executor.d.ts.map +1 -1
  84. package/dist/runtime/executor.js +27 -4
  85. package/dist/runtime/executor.js.map +1 -1
  86. package/dist/runtime/pg-error.d.ts +19 -0
  87. package/dist/runtime/pg-error.d.ts.map +1 -0
  88. package/dist/runtime/pg-error.js +110 -0
  89. package/dist/runtime/pg-error.js.map +1 -0
  90. package/dist/runtime/query/aggregate.d.ts +11 -0
  91. package/dist/runtime/query/aggregate.d.ts.map +1 -0
  92. package/dist/runtime/query/aggregate.js +44 -0
  93. package/dist/runtime/query/aggregate.js.map +1 -0
  94. package/dist/runtime/query/compile.d.ts +21 -6
  95. package/dist/runtime/query/compile.d.ts.map +1 -1
  96. package/dist/runtime/query/compile.js +110 -19
  97. package/dist/runtime/query/compile.js.map +1 -1
  98. package/dist/runtime/query/count.d.ts +3 -3
  99. package/dist/runtime/query/count.d.ts.map +1 -1
  100. package/dist/runtime/query/count.js +7 -4
  101. package/dist/runtime/query/count.js.map +1 -1
  102. package/dist/runtime/query/create.d.ts +12 -2
  103. package/dist/runtime/query/create.d.ts.map +1 -1
  104. package/dist/runtime/query/create.js +74 -111
  105. package/dist/runtime/query/create.js.map +1 -1
  106. package/dist/runtime/query/cursor-codec.d.ts +3 -0
  107. package/dist/runtime/query/cursor-codec.d.ts.map +1 -0
  108. package/dist/runtime/query/cursor-codec.js +27 -0
  109. package/dist/runtime/query/cursor-codec.js.map +1 -0
  110. package/dist/runtime/query/cursor.d.ts +22 -0
  111. package/dist/runtime/query/cursor.d.ts.map +1 -0
  112. package/dist/runtime/query/cursor.js +84 -0
  113. package/dist/runtime/query/cursor.js.map +1 -0
  114. package/dist/runtime/query/delete.d.ts +4 -4
  115. package/dist/runtime/query/delete.d.ts.map +1 -1
  116. package/dist/runtime/query/delete.js +18 -8
  117. package/dist/runtime/query/delete.js.map +1 -1
  118. package/dist/runtime/query/execute.d.ts +16 -0
  119. package/dist/runtime/query/execute.d.ts.map +1 -0
  120. package/dist/runtime/query/execute.js +74 -0
  121. package/dist/runtime/query/execute.js.map +1 -0
  122. package/dist/runtime/query/find.d.ts +7 -5
  123. package/dist/runtime/query/find.d.ts.map +1 -1
  124. package/dist/runtime/query/find.js +148 -29
  125. package/dist/runtime/query/find.js.map +1 -1
  126. package/dist/runtime/query/paginate.d.ts +17 -0
  127. package/dist/runtime/query/paginate.d.ts.map +1 -0
  128. package/dist/runtime/query/paginate.js +35 -0
  129. package/dist/runtime/query/paginate.js.map +1 -0
  130. package/dist/runtime/query/primary-key.d.ts +11 -1
  131. package/dist/runtime/query/primary-key.d.ts.map +1 -1
  132. package/dist/runtime/query/primary-key.js +55 -0
  133. package/dist/runtime/query/primary-key.js.map +1 -1
  134. package/dist/runtime/query/relation-writes.d.ts +25 -0
  135. package/dist/runtime/query/relation-writes.d.ts.map +1 -0
  136. package/dist/runtime/query/relation-writes.js +404 -0
  137. package/dist/runtime/query/relation-writes.js.map +1 -0
  138. package/dist/runtime/query/unique.d.ts.map +1 -1
  139. package/dist/runtime/query/unique.js +1 -5
  140. package/dist/runtime/query/unique.js.map +1 -1
  141. package/dist/runtime/query/update.d.ts +4 -4
  142. package/dist/runtime/query/update.d.ts.map +1 -1
  143. package/dist/runtime/query/update.js +97 -38
  144. package/dist/runtime/query/update.js.map +1 -1
  145. package/dist/runtime/query/updated-at.d.ts +6 -0
  146. package/dist/runtime/query/updated-at.d.ts.map +1 -0
  147. package/dist/runtime/query/updated-at.js +21 -0
  148. package/dist/runtime/query/updated-at.js.map +1 -0
  149. package/dist/runtime/query/upsert.d.ts +2 -2
  150. package/dist/runtime/query/upsert.d.ts.map +1 -1
  151. package/dist/runtime/query/upsert.js +12 -8
  152. package/dist/runtime/query/upsert.js.map +1 -1
  153. package/dist/runtime/types.d.ts +21 -11
  154. package/dist/runtime/types.d.ts.map +1 -1
  155. package/dist/schema/column-where.d.ts +30 -14
  156. package/dist/schema/column-where.d.ts.map +1 -1
  157. package/dist/schema/column.d.ts +6 -2
  158. package/dist/schema/column.d.ts.map +1 -1
  159. package/dist/schema/column.js +7 -1
  160. package/dist/schema/column.js.map +1 -1
  161. package/dist/schema/index.d.ts +4 -4
  162. package/dist/schema/index.d.ts.map +1 -1
  163. package/dist/schema/index.js +1 -1
  164. package/dist/schema/index.js.map +1 -1
  165. package/dist/schema/nested-relation-types.d.ts +61 -0
  166. package/dist/schema/nested-relation-types.d.ts.map +1 -0
  167. package/dist/schema/nested-relation-types.js +2 -0
  168. package/dist/schema/nested-relation-types.js.map +1 -0
  169. package/dist/schema/relation-types.d.ts +164 -22
  170. package/dist/schema/relation-types.d.ts.map +1 -1
  171. package/dist/schema/types.d.ts +83 -37
  172. package/dist/schema/types.d.ts.map +1 -1
  173. package/package.json +1 -1
@@ -0,0 +1,61 @@
1
+ import type { FkBuilder, FkMeta } from "./relation.js";
2
+ import type { ColumnBuilder } from "./column.js";
3
+ import type { ColumnDef, TableDef } from "./table.js";
4
+ import type { ConnectInput, InferInsertRow, SqlNameToAccessor } from "./relation-types.js";
5
+ type Expand<T> = T extends infer O ? {
6
+ [K in keyof O]: O[K];
7
+ } : never;
8
+ type FkMetaOf<C> = C extends FkBuilder<infer TTarget, infer TAs, infer TInverse> ? FkMeta<TTarget, TAs, TInverse> : never;
9
+ type FkColumnNames<TColumns extends Record<string, ColumnDef>> = {
10
+ [K in keyof TColumns]: TColumns[K] extends FkBuilder ? K : never;
11
+ }[keyof TColumns & string];
12
+ type HasExactlyTwoFks<TColumns extends Record<string, ColumnDef>> = FkColumnNames<TColumns> extends infer First extends keyof TColumns & string ? Exclude<FkColumnNames<TColumns>, First> extends infer Second extends keyof TColumns & string ? Exclude<FkColumnNames<TColumns>, First | Second> extends never ? true : false : false : false;
13
+ type HasPrimaryIdColumn<TColumns extends Record<string, ColumnDef>> = {
14
+ [K in keyof TColumns]: TColumns[K] extends ColumnBuilder<unknown, infer M> ? M extends {
15
+ primary: true;
16
+ } ? K : M extends {
17
+ kind: "id";
18
+ } ? K : never : never;
19
+ }[keyof TColumns & string];
20
+ type IsThroughTable<TColumns extends Record<string, ColumnDef>> = [
21
+ HasPrimaryIdColumn<TColumns>
22
+ ] extends [never] ? HasExactlyTwoFks<TColumns> : false;
23
+ type FkTargetMatchesAccessor<TSchema extends Record<string, TableDef>, TTarget extends string, TAccessor extends keyof TSchema & string> = [TTarget] extends [`${TSchema[TAccessor]["_tableName"]}.${string}`] ? true : false;
24
+ type DisconnectWriteForFk<C extends ColumnDef> = C extends FkBuilder ? C["_meta"] extends {
25
+ nullable: true;
26
+ } ? {
27
+ disconnect?: true;
28
+ } : Record<never, never> : Record<never, never>;
29
+ type ShallowToOneRelationWriteForAccessor<TSchema extends Record<string, TableDef>, TAccessor extends keyof TSchema & string, TFkColumn extends ColumnDef> = TAccessor extends keyof TSchema & string ? {
30
+ connect?: ConnectInput<TSchema[TAccessor]["_columns"]>;
31
+ create?: InferInsertRow<TSchema[TAccessor]["_columns"]>;
32
+ } & DisconnectWriteForFk<TFkColumn> : never;
33
+ type ShallowOutgoingFkRelationWriteMap<TSchema extends Record<string, TableDef>, TColumns extends Record<string, ColumnDef>> = {
34
+ [K in keyof TColumns & string as TColumns[K] extends FkBuilder ? TColumns[K]["_meta"] extends FkMeta ? TColumns[K]["_meta"] extends {
35
+ as: infer As extends string;
36
+ target: `${infer Sql}.${string}`;
37
+ } ? SqlNameToAccessor<TSchema, Sql> extends keyof TSchema & string ? As : never : never : never : never]?: TColumns[K] extends FkBuilder ? TColumns[K]["_meta"] extends FkMeta ? TColumns[K]["_meta"]["target"] extends `${infer Sql}.${string}` ? SqlNameToAccessor<TSchema, Sql> extends infer Acc extends keyof TSchema & string ? Acc extends keyof TSchema & string ? ShallowToOneRelationWriteForAccessor<TSchema, Acc, TColumns[K]> : never : never : never : never : never;
38
+ };
39
+ type ParentFkColumnOnChild<TSchema extends Record<string, TableDef>, TParentAccessor extends keyof TSchema & string, TChildAccessor extends keyof TSchema & string> = {
40
+ [K in FkColumnNames<TSchema[TChildAccessor]["_columns"]>]: FkMetaOf<TSchema[TChildAccessor]["_columns"][K]> extends {
41
+ target: infer TTarget extends string;
42
+ } ? FkTargetMatchesAccessor<TSchema, TTarget, TParentAccessor> extends true ? K : never : never;
43
+ }[FkColumnNames<TSchema[TChildAccessor]["_columns"]>];
44
+ export type NestedCreateInput<TSchema extends Record<string, TableDef>, TParentAccessor extends keyof TSchema & string, TChildAccessor extends keyof TSchema & string> = Omit<Expand<InferInsertRow<TSchema[TChildAccessor]["_columns"]> & ShallowOutgoingFkRelationWriteMap<TSchema, TSchema[TChildAccessor]["_columns"]>>, ParentFkColumnOnChild<TSchema, TParentAccessor, TChildAccessor>>;
45
+ type ToManyRelationWrite<TSchema extends Record<string, TableDef>, TParentAccessor extends keyof TSchema & string, TChildAccessor extends keyof TSchema & string> = {
46
+ create?: NestedCreateInput<TSchema, TParentAccessor, TChildAccessor> | NestedCreateInput<TSchema, TParentAccessor, TChildAccessor>[];
47
+ connect?: ConnectInput<TSchema[TChildAccessor]["_columns"]> | ConnectInput<TSchema[TChildAccessor]["_columns"]>[];
48
+ disconnect?: true | ConnectInput<TSchema[TChildAccessor]["_columns"]> | ConnectInput<TSchema[TChildAccessor]["_columns"]>[];
49
+ delete?: true | ConnectInput<TSchema[TChildAccessor]["_columns"]> | ConnectInput<TSchema[TChildAccessor]["_columns"]>[];
50
+ set?: ConnectInput<TSchema[TChildAccessor]["_columns"]>[];
51
+ };
52
+ type InverseRelationWriteEntriesForTable<TSchema extends Record<string, TableDef>, TAccessor extends keyof TSchema & string, TSourceAccessor extends keyof TSchema & string> = IsThroughTable<TSchema[TSourceAccessor]["_columns"]> extends true ? never : {
53
+ [K in FkColumnNames<TSchema[TSourceAccessor]["_columns"]> as TSchema[TSourceAccessor]["_columns"][K] extends FkBuilder<infer TTarget extends string, infer _As, infer Inv extends string> ? FkTargetMatchesAccessor<TSchema, TTarget, TAccessor> extends true ? Inv : never : never]?: ToManyRelationWrite<TSchema, TAccessor, TSourceAccessor>;
54
+ };
55
+ /** Collapse a union of objects into an intersection (merges keys from each variant). */
56
+ type UnionToIntersection<U> = (U extends unknown ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
57
+ export type InverseRelationWriteMap<TSchema extends Record<string, TableDef>, TAccessor extends keyof TSchema & string> = UnionToIntersection<{
58
+ [Source in keyof TSchema & string]: InverseRelationWriteEntriesForTable<TSchema, TAccessor, Source>;
59
+ }[keyof TSchema & string]>;
60
+ export {};
61
+ //# sourceMappingURL=nested-relation-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nested-relation-types.d.ts","sourceRoot":"","sources":["../../src/schema/nested-relation-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=nested-relation-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nested-relation-types.js","sourceRoot":"","sources":["../../src/schema/nested-relation-types.ts"],"names":[],"mappings":""}
@@ -1,11 +1,55 @@
1
1
  import type { FkBuilder, FkMeta } from "./relation.js";
2
2
  import type { ColumnBuilder } from "./column.js";
3
3
  import type { ColumnDef, TableDef } from "./table.js";
4
- import type { ColumnWhereInput } from "./column-where.js";
4
+ import type { ColumnWhereInput, InferColumnValue } from "./column-where.js";
5
+ type IsPrimary<T> = T extends ColumnBuilder<unknown, infer M> ? M extends {
6
+ primary: true;
7
+ } ? true : false : false;
8
+ type IsGenerated<T> = T extends ColumnBuilder<unknown, infer M> ? M extends {
9
+ kind: "serial";
10
+ } ? true : false : false;
11
+ type IsRequired<T> = T extends ColumnBuilder<unknown, infer M> ? M extends {
12
+ nullable: false;
13
+ primary: true;
14
+ } ? false : M extends {
15
+ defaultNow: true;
16
+ } ? false : M extends {
17
+ defaultValue: unknown;
18
+ } ? false : M extends {
19
+ nullable: false;
20
+ } ? true : false : T extends FkBuilder ? T["_meta"] extends {
21
+ nullable: false;
22
+ } ? true : false : false;
23
+ export type InferSelectRow<TColumns extends Record<string, ColumnDef>> = {
24
+ [K in keyof TColumns]: InferColumnValue<TColumns[K]>;
25
+ };
26
+ export type InferInsertRow<TColumns extends Record<string, ColumnDef>> = {
27
+ [K in keyof TColumns as IsPrimary<TColumns[K]> extends true ? never : IsGenerated<TColumns[K]> extends true ? never : K]?: InferColumnValue<TColumns[K]>;
28
+ } & {
29
+ [K in keyof TColumns as IsRequired<TColumns[K]> extends true ? K : never]: InferColumnValue<TColumns[K]>;
30
+ };
31
+ type PrimaryIdValue<TColumns extends Record<string, ColumnDef>> = {
32
+ [K in keyof TColumns]: TColumns[K] extends ColumnBuilder<unknown, infer M> ? M extends {
33
+ primary: true;
34
+ } ? InferColumnValue<TColumns[K]> : never : never;
35
+ }[keyof TColumns & string];
36
+ export type ConnectInput<TColumns extends Record<string, ColumnDef>> = {
37
+ id: [PrimaryIdValue<TColumns>] extends [never] ? string : PrimaryIdValue<TColumns>;
38
+ };
39
+ export type ConnectOrCreateItem<TColumns extends Record<string, ColumnDef>> = {
40
+ where: Partial<InferSelectRow<TColumns>>;
41
+ create: InferInsertRow<TColumns>;
42
+ };
5
43
  export type OrderDirection = "asc" | "desc";
6
44
  export type OrderByInput<TColumns extends Record<string, ColumnDef>> = {
7
45
  [K in keyof TColumns]?: OrderDirection;
8
46
  };
47
+ export type ScalarPkName<TColumns extends Record<string, ColumnDef>> = {
48
+ [K in keyof TColumns]: TColumns[K] extends ColumnBuilder<unknown, infer M> ? M extends {
49
+ primary: true;
50
+ } ? K : never : never;
51
+ }[keyof TColumns & string];
52
+ export type CursorInput<TColumns extends Record<string, ColumnDef>, TOrderBy extends OrderByInput<TColumns>> = Pick<InferSelectRow<TColumns>, (keyof TOrderBy & keyof TColumns) | ScalarPkName<TColumns>>;
9
53
  /** Expands mapped types so IDEs surface keys for autocomplete */
10
54
  type Expand<T> = T extends infer O ? {
11
55
  [K in keyof O]: O[K];
@@ -16,7 +60,13 @@ type MergeRelationUnion<U> = {
16
60
  [P in K]?: infer V;
17
61
  } ? V : never;
18
62
  };
19
- type FkMetaOf<C> = C extends FkBuilder ? C["_meta"] : never;
63
+ /** Merge inverse relation entries without widening literal child accessors. */
64
+ type MergeInverseRelationUnion<U> = {
65
+ [K in U extends unknown ? keyof U : never]?: Extract<U, {
66
+ [P in K]: unknown;
67
+ }>[K];
68
+ };
69
+ type FkMetaOf<C> = C extends FkBuilder<infer TTarget, infer TAs, infer TInverse> ? FkMeta<TTarget, TAs, TInverse> : never;
20
70
  type FkColumnNames<TColumns extends Record<string, ColumnDef>> = {
21
71
  [K in keyof TColumns]: TColumns[K] extends FkBuilder ? K : never;
22
72
  }[keyof TColumns & string];
@@ -24,6 +74,8 @@ type HasExactlyTwoFks<TColumns extends Record<string, ColumnDef>> = FkColumnName
24
74
  type HasPrimaryIdColumn<TColumns extends Record<string, ColumnDef>> = {
25
75
  [K in keyof TColumns]: TColumns[K] extends ColumnBuilder<unknown, infer M> ? M extends {
26
76
  primary: true;
77
+ } ? K : M extends {
78
+ kind: "id";
27
79
  } ? K : never : never;
28
80
  }[keyof TColumns & string];
29
81
  /** Junction / through tables: two FKs and no primary id column (e.g. post_tags). */
@@ -35,31 +87,44 @@ export type SqlNameToAccessor<TSchema extends Record<string, TableDef>, TSqlName
35
87
  [K in keyof TSchema & string]: TSchema[K]["_tableName"] extends TSqlName ? K : never;
36
88
  }[keyof TSchema & string];
37
89
  /** FK relations defined on this table's columns (as name -> target accessor) */
38
- type OutgoingFkRelationEntry<TSchema extends Record<string, TableDef>, C extends ColumnDef> = FkMetaOf<C> extends infer M extends FkMeta ? M["as"] extends infer As extends string ? M["target"] extends `${infer Sql}.${string}` ? SqlNameToAccessor<TSchema, Sql> extends infer Acc extends keyof TSchema & string ? IsThroughTable<TSchema[Acc]["_columns"]> extends true ? never : {
90
+ type OutgoingFkRelationEntry<TSchema extends Record<string, TableDef>, C extends ColumnDef> = FkMetaOf<C> extends {
91
+ target: infer TTarget extends string;
92
+ as: infer As extends string;
93
+ } ? TTarget extends `${infer Sql}.${string}` ? SqlNameToAccessor<TSchema, Sql> extends infer Acc extends keyof TSchema & string ? IsThroughTable<TSchema[Acc]["_columns"]> extends true ? never : {
39
94
  [P in As]: Acc;
40
- } : never : never : never : never;
95
+ } : never : never : never;
41
96
  export type OutgoingFkRelations<TSchema extends Record<string, TableDef>, TColumns extends Record<string, ColumnDef>> = MergeRelationUnion<{
42
97
  [K in keyof TColumns]: OutgoingFkRelationEntry<TSchema, TColumns[K]>;
43
98
  }[keyof TColumns]>;
44
99
  /** Inverse relations from other tables pointing at this table (inverse name -> source accessor) */
45
- type InverseRelationEntryForSource<TSchema extends Record<string, TableDef>, TTargetAccessor extends keyof TSchema & string, TSourceAccessor extends keyof TSchema & string, C extends ColumnDef> = IsThroughTable<TSchema[TSourceAccessor]["_columns"]> extends true ? never : FkMetaOf<C> extends infer M extends FkMeta ? M["target"] extends `${TSchema[TTargetAccessor]["_tableName"]}.${string}` ? M["inverse"] extends infer Inv extends string ? {
100
+ export type InverseRelationEntryForSource<TSchema extends Record<string, TableDef>, TTargetAccessor extends keyof TSchema & string, TSourceAccessor extends keyof TSchema & string, C extends ColumnDef> = IsThroughTable<TSchema[TSourceAccessor]["_columns"]> extends true ? never : FkMetaOf<C> extends {
101
+ target: infer TTarget extends string;
102
+ inverse: infer Inv extends string;
103
+ } ? [TTarget] extends [`${TSchema[TTargetAccessor]["_tableName"]}.${string}`] ? {
46
104
  [P in Inv]: TSourceAccessor;
47
- } : never : never : never;
48
- export type InverseRelations<TSchema extends Record<string, TableDef>, TAccessor extends keyof TSchema & string> = MergeRelationUnion<{
49
- [K in keyof TSchema & string]: MergeRelationUnion<{
50
- [C in keyof TSchema[K]["_columns"]]: InverseRelationEntryForSource<TSchema, TAccessor, K, TSchema[K]["_columns"][C]>;
51
- }[keyof TSchema[K]["_columns"]]>;
105
+ } : never : never;
106
+ export type InverseRelationEntriesForTable<TSchema extends Record<string, TableDef>, TAccessor extends keyof TSchema & string, TSourceAccessor extends keyof TSchema & string> = {
107
+ [K in FkColumnNames<TSchema[TSourceAccessor]["_columns"]>]: InverseRelationEntryForSource<TSchema, TAccessor, TSourceAccessor, TSchema[TSourceAccessor]["_columns"][K]>;
108
+ }[FkColumnNames<TSchema[TSourceAccessor]["_columns"]>];
109
+ export type InverseRelations<TSchema extends Record<string, TableDef>, TAccessor extends keyof TSchema & string> = MergeInverseRelationUnion<{
110
+ [K in keyof TSchema & string]: MergeInverseRelationUnion<InverseRelationEntriesForTable<TSchema, TAccessor, K>>;
52
111
  }[keyof TSchema & string]>;
53
- type OtherFkTarget<TSchema extends Record<string, TableDef>, TThroughAccessor extends keyof TSchema & string, TCurrentAccessor extends keyof TSchema & string, TFkCol extends FkColumnNames<TSchema[TThroughAccessor]["_columns"]>> = FkMetaOf<TSchema[TThroughAccessor]["_columns"][TFkCol]> extends infer M extends FkMeta ? M["target"] extends `${TSchema[TCurrentAccessor]["_tableName"]}.${string}` ? never : M["target"] extends `${infer Sql}.${string}` ? SqlNameToAccessor<TSchema, Sql> : never : never;
112
+ type FkTargetMatchesAccessor<TSchema extends Record<string, TableDef>, TTarget extends string, TAccessor extends keyof TSchema & string> = [TTarget] extends [`${TSchema[TAccessor]["_tableName"]}.${string}`] ? true : false;
113
+ type OtherFkTarget<TSchema extends Record<string, TableDef>, TThroughAccessor extends keyof TSchema & string, TCurrentAccessor extends keyof TSchema & string, TFkCol extends FkColumnNames<TSchema[TThroughAccessor]["_columns"]>> = FkMetaOf<TSchema[TThroughAccessor]["_columns"][TFkCol]> extends {
114
+ target: infer TTarget extends string;
115
+ } ? FkTargetMatchesAccessor<TSchema, TTarget, TCurrentAccessor> extends true ? never : TTarget extends `${infer Sql}.${string}` ? SqlNameToAccessor<TSchema, Sql> : never : never;
54
116
  /** M2M via junction tables: relation name = target table accessor */
55
117
  type JunctionM2MEntry<TSchema extends Record<string, TableDef>, TAccessor extends keyof TSchema & string, TThroughAccessor extends keyof TSchema & string> = MergeRelationUnion<{
56
118
  [C in FkColumnNames<TSchema[TThroughAccessor]["_columns"]>]: OtherFkTarget<TSchema, TThroughAccessor, TAccessor, C> extends infer Target extends keyof TSchema & string ? {
57
119
  [P in Target]: Target;
58
120
  } : never;
59
121
  }[FkColumnNames<TSchema[TThroughAccessor]["_columns"]>]>;
60
- type HasFkTo<TSchema extends Record<string, TableDef>, TThroughAccessor extends keyof TSchema & string, TAccessor extends keyof TSchema & string> = {
61
- [C in keyof TSchema[TThroughAccessor]["_columns"]]: FkMetaOf<TSchema[TThroughAccessor]["_columns"][C]> extends infer M extends FkMeta ? M["target"] extends `${TSchema[TAccessor]["_tableName"]}.${string}` ? true : never : never;
62
- }[keyof TSchema[TThroughAccessor]["_columns"]] extends infer R ? [R] extends [never] ? false : true : false;
122
+ type HasFkToEntries<TSchema extends Record<string, TableDef>, TThroughAccessor extends keyof TSchema & string, TAccessor extends keyof TSchema & string> = {
123
+ [K in FkColumnNames<TSchema[TThroughAccessor]["_columns"]>]: FkMetaOf<TSchema[TThroughAccessor]["_columns"][K]> extends {
124
+ target: infer TTarget extends string;
125
+ } ? FkTargetMatchesAccessor<TSchema, TTarget, TAccessor> extends true ? true : never : never;
126
+ }[FkColumnNames<TSchema[TThroughAccessor]["_columns"]>];
127
+ type HasFkTo<TSchema extends Record<string, TableDef>, TThroughAccessor extends keyof TSchema & string, TAccessor extends keyof TSchema & string> = HasFkToEntries<TSchema, TThroughAccessor, TAccessor> extends infer R ? [R] extends [never] ? false : true : false;
63
128
  export type JunctionM2MRelations<TSchema extends Record<string, TableDef>, TAccessor extends keyof TSchema & string> = MergeRelationUnion<{
64
129
  [K in keyof TSchema & string]: K extends TAccessor ? never : IsThroughTable<TSchema[K]["_columns"]> extends true ? HasFkTo<TSchema, K, TAccessor> extends true ? JunctionM2MEntry<TSchema, TAccessor, K> : never : never;
65
130
  }[keyof TSchema & string]>;
@@ -87,29 +152,71 @@ export type WithInclude<TSchema extends Record<string, TableDef>, TRelation exte
87
152
  */
88
153
  export type WithInputMap<TSchema extends Record<string, TableDef>, TAccessor extends keyof TSchema & string> = Expand<{
89
154
  [R in keyof RelationAccessors<TSchema, TAccessor> & string]: WithInclude<TSchema, R, TAccessor> | undefined;
155
+ } & {
156
+ _count?: RelationCountInput<TSchema, TAccessor>;
157
+ }>;
158
+ export type RelationCountSpec<TSchema extends Record<string, TableDef>, TRelation extends keyof RelationAccessors<TSchema, TAccessor> & string, TAccessor extends keyof TSchema & string> = true | {
159
+ where?: WhereInput<TargetColumns<TSchema, RelationTarget<TSchema, TAccessor, TRelation> & keyof TSchema & string>, TSchema, RelationTarget<TSchema, TAccessor, TRelation> & keyof TSchema & string>;
160
+ };
161
+ export type RelationCountInput<TSchema extends Record<string, TableDef>, TAccessor extends keyof TSchema & string> = Expand<{
162
+ [R in keyof RelationAccessors<TSchema, TAccessor> & string]?: RelationCountSpec<TSchema, R, TAccessor>;
90
163
  }>;
164
+ type SelectKeys<S> = S extends readonly (infer K extends PropertyKey)[] ? K : S extends Record<string, unknown> ? {
165
+ [K in keyof S]: S[K] extends true ? K : never;
166
+ }[keyof S] : never;
167
+ export type ApplySelect<Row extends Record<string, unknown>, S> = Pick<Row, SelectKeys<S> & keyof Row>;
168
+ type RelationTargetModel<TSchema extends Record<string, TableDef>, TTargetAccessor extends keyof TSchema & string> = InferSelectRow<TSchema[TTargetAccessor]["_columns"]>;
169
+ type InferNestedWithResult<TSchema extends Record<string, TableDef>, TTargetAccessor extends keyof TSchema & string, TInclude, TModel extends Record<string, unknown>> = TInclude extends {
170
+ select?: infer S;
171
+ with?: infer NW;
172
+ } ? ApplySelect<TModel, S> & (NW extends Record<string, unknown> ? InferWithRelations<TSchema, TTargetAccessor, NW> : Record<string, never>) : TModel;
173
+ export type InferRelationIncludeResult<TSchema extends Record<string, TableDef>, TAccessor extends keyof TSchema & string, TRelation extends keyof RelationAccessors<TSchema, TAccessor> & string, TInclude, TModel extends Record<string, unknown> = RelationTargetModel<TSchema, RelationTarget<TSchema, TAccessor, TRelation> & keyof TSchema & string>> = TRelation extends keyof RelationAccessors<TSchema, TAccessor> & string ? RelationAccessors<TSchema, TAccessor>[TRelation] extends infer TTarget extends keyof TSchema & string ? TInclude extends {
174
+ select?: unknown;
175
+ with?: unknown;
176
+ orderBy?: unknown;
177
+ limit?: unknown;
178
+ } ? InferNestedWithResult<TSchema, TTarget, TInclude, RelationTargetModel<TSchema, TTarget>> : TInclude extends true ? RelationTargetModel<TSchema, TTarget> : TInclude extends false | undefined ? never : RelationTargetModel<TSchema, TTarget> : never : never;
179
+ type IsManyRelation<TSchema extends Record<string, TableDef>, TAccessor extends keyof TSchema & string, TRelation extends keyof RelationAccessors<TSchema, TAccessor> & string> = TRelation extends keyof InverseRelations<TSchema, TAccessor> ? true : TRelation extends keyof JunctionM2MRelations<TSchema, TAccessor> ? true : false;
180
+ type InferWithRelations<TSchema extends Record<string, TableDef>, TAccessor extends keyof TSchema & string, W> = {
181
+ [R in keyof W & keyof RelationAccessors<TSchema, TAccessor> & string]: W[R] extends boolean | WithRelationOptions<TSchema, RelationTarget<TSchema, TAccessor, R> & keyof TSchema & string> ? RelationAccessors<TSchema, TAccessor>[R] extends infer TTarget extends keyof TSchema & string ? InferRelationIncludeResult<TSchema, TAccessor, R, W[R], RelationTargetModel<TSchema, TTarget>> extends infer Row ? IsManyRelation<TSchema, TAccessor, R> extends true ? Row[] : Row | null : never : never : never;
182
+ };
183
+ type InferCountResult<TSchema extends Record<string, TableDef>, TAccessor extends keyof TSchema & string, W> = W extends {
184
+ _count: infer C;
185
+ } ? C extends Record<string, unknown> ? {
186
+ _count: {
187
+ [K in keyof C & string]: number;
188
+ };
189
+ } : Record<string, never> : Record<string, never>;
190
+ export type InferWithResult<TSchema extends Record<string, TableDef>, TAccessor extends keyof TSchema & string, W, TBase extends Record<string, unknown> = InferSelectRow<TSchema[TAccessor]["_columns"]>> = W extends undefined ? TBase : Expand<TBase & InferWithRelations<TSchema, TAccessor, W> & InferCountResult<TSchema, TAccessor, W>>;
91
191
  export type ManyRelationFilter<TSchema extends Record<string, TableDef>, TTargetAccessor extends keyof TSchema & string> = {
92
192
  some?: WhereInput<TSchema[TTargetAccessor]["_columns"], TSchema, TTargetAccessor>;
93
193
  every?: WhereInput<TSchema[TTargetAccessor]["_columns"], TSchema, TTargetAccessor>;
94
194
  none?: WhereInput<TSchema[TTargetAccessor]["_columns"], TSchema, TTargetAccessor>;
95
195
  };
96
- type OutgoingFkRelationWhereEntry<TSchema extends Record<string, TableDef>, C extends ColumnDef> = FkMetaOf<C> extends infer M extends FkMeta ? M["as"] extends infer As extends string ? M["target"] extends `${infer Sql}.${string}` ? SqlNameToAccessor<TSchema, Sql> extends infer Acc extends keyof TSchema & string ? IsThroughTable<TSchema[Acc]["_columns"]> extends true ? never : {
196
+ type OutgoingFkRelationWhereEntry<TSchema extends Record<string, TableDef>, C extends ColumnDef> = FkMetaOf<C> extends {
197
+ target: infer TTarget extends string;
198
+ as: infer As extends string;
199
+ } ? TTarget extends `${infer Sql}.${string}` ? SqlNameToAccessor<TSchema, Sql> extends infer Acc extends keyof TSchema & string ? IsThroughTable<TSchema[Acc]["_columns"]> extends true ? never : {
97
200
  [P in As]?: WhereInput<TSchema[Acc]["_columns"], TSchema, Acc>;
98
- } : never : never : never : never;
99
- type InverseRelationWhereEntry<TSchema extends Record<string, TableDef>, TTargetAccessor extends keyof TSchema & string, TSourceAccessor extends keyof TSchema & string, C extends ColumnDef> = IsThroughTable<TSchema[TSourceAccessor]["_columns"]> extends true ? never : FkMetaOf<C> extends infer M extends FkMeta ? M["target"] extends `${TSchema[TTargetAccessor]["_tableName"]}.${string}` ? M["inverse"] extends infer Inv extends string ? {
100
- [P in Inv]?: ManyRelationFilter<TSchema, TSourceAccessor>;
101
201
  } : never : never : never;
202
+ type InverseRelationWhereEntry<TSchema extends Record<string, TableDef>, TTargetAccessor extends keyof TSchema & string, TSourceAccessor extends keyof TSchema & string, C extends ColumnDef> = IsThroughTable<TSchema[TSourceAccessor]["_columns"]> extends true ? never : FkMetaOf<C> extends {
203
+ target: infer TTarget extends string;
204
+ inverse: infer Inv extends string;
205
+ } ? [TTarget] extends [`${TSchema[TTargetAccessor]["_tableName"]}.${string}`] ? {
206
+ [P in Inv]?: ManyRelationFilter<TSchema, TSourceAccessor>;
207
+ } : never : never;
102
208
  type JunctionM2MWhereEntry<TSchema extends Record<string, TableDef>, TAccessor extends keyof TSchema & string, TThroughAccessor extends keyof TSchema & string> = MergeRelationUnion<{
103
209
  [C in FkColumnNames<TSchema[TThroughAccessor]["_columns"]>]: OtherFkTarget<TSchema, TThroughAccessor, TAccessor, C> extends infer Target extends keyof TSchema & string ? {
104
210
  [P in Target]?: ManyRelationFilter<TSchema, Target>;
105
211
  } : never;
106
212
  }[FkColumnNames<TSchema[TThroughAccessor]["_columns"]>]>;
213
+ type InverseRelationWhereEntriesForTable<TSchema extends Record<string, TableDef>, TAccessor extends keyof TSchema & string, TSourceAccessor extends keyof TSchema & string> = {
214
+ [K in FkColumnNames<TSchema[TSourceAccessor]["_columns"]>]: InverseRelationWhereEntry<TSchema, TAccessor, TSourceAccessor, TSchema[TSourceAccessor]["_columns"][K]>;
215
+ }[FkColumnNames<TSchema[TSourceAccessor]["_columns"]>];
107
216
  export type RelationWhereMap<TSchema extends Record<string, TableDef>, TAccessor extends keyof TSchema & string> = MergeRelationUnion<{
108
217
  [K in keyof TSchema[TAccessor]["_columns"]]: OutgoingFkRelationWhereEntry<TSchema, TSchema[TAccessor]["_columns"][K]>;
109
218
  }[keyof TSchema[TAccessor]["_columns"]]> & MergeRelationUnion<{
110
- [K in keyof TSchema & string]: MergeRelationUnion<{
111
- [C in keyof TSchema[K]["_columns"]]: InverseRelationWhereEntry<TSchema, TAccessor, K, TSchema[K]["_columns"][C]>;
112
- }[keyof TSchema[K]["_columns"]]>;
219
+ [K in keyof TSchema & string]: MergeRelationUnion<InverseRelationWhereEntriesForTable<TSchema, TAccessor, K>>;
113
220
  }[keyof TSchema & string]> & MergeRelationUnion<{
114
221
  [K in keyof TSchema & string]: K extends TAccessor ? never : IsThroughTable<TSchema[K]["_columns"]> extends true ? HasFkTo<TSchema, K, TAccessor> extends true ? JunctionM2MWhereEntry<TSchema, TAccessor, K> : never : never;
115
222
  }[keyof TSchema & string]>;
@@ -119,5 +226,40 @@ export type LogicalWhereInput<TColumns extends Record<string, ColumnDef>, TSchem
119
226
  NOT?: WhereInput<TColumns, TSchema, TAccessor>;
120
227
  };
121
228
  export type WhereInput<TColumns extends Record<string, ColumnDef>, TSchema extends Record<string, TableDef> = Record<string, TableDef>, TAccessor extends keyof TSchema & string = keyof TSchema & string> = LogicalWhereInput<TColumns, TSchema, TAccessor> & ColumnWhereInput<TColumns> & RelationWhereMap<TSchema, TAccessor>;
122
- export {};
229
+ type DisconnectWriteForFk<C extends ColumnDef> = C extends FkBuilder ? C["_meta"] extends {
230
+ nullable: true;
231
+ } ? {
232
+ disconnect?: true;
233
+ } : Record<never, never> : Record<never, never>;
234
+ type ToOneRelationWriteForAccessor<TSchema extends Record<string, TableDef>, TAccessor extends keyof TSchema & string, TFkColumn extends ColumnDef> = TAccessor extends keyof TSchema & string ? {
235
+ connect?: ConnectInput<TSchema[TAccessor]["_columns"]>;
236
+ create?: InferInsertRow<TSchema[TAccessor]["_columns"]>;
237
+ } & DisconnectWriteForFk<TFkColumn> : never;
238
+ type OutgoingFkRelationWriteMap<TSchema extends Record<string, TableDef>, TColumns extends Record<string, ColumnDef>> = {
239
+ [K in keyof TColumns & string as TColumns[K] extends FkBuilder ? TColumns[K]["_meta"] extends FkMeta ? TColumns[K]["_meta"] extends {
240
+ as: infer As extends string;
241
+ target: `${infer Sql}.${string}`;
242
+ } ? SqlNameToAccessor<TSchema, Sql> extends keyof TSchema & string ? As : never : never : never : never]?: TColumns[K] extends FkBuilder ? TColumns[K]["_meta"] extends FkMeta ? TColumns[K]["_meta"]["target"] extends `${infer Sql}.${string}` ? SqlNameToAccessor<TSchema, Sql> extends infer Acc extends keyof TSchema & string ? Acc extends keyof TSchema & string ? ToOneRelationWriteForAccessor<TSchema, Acc, TColumns[K]> : never : never : never : never : never;
243
+ };
244
+ type M2MRelationWriteForAccessor<TSchema extends Record<string, TableDef>, TTargetAccessor extends keyof TSchema & string> = TTargetAccessor extends keyof TSchema & string ? {
245
+ connect?: ConnectInput<TSchema[TTargetAccessor]["_columns"]>[];
246
+ disconnect?: true | ConnectInput<TSchema[TTargetAccessor]["_columns"]>[];
247
+ delete?: true | ConnectInput<TSchema[TTargetAccessor]["_columns"]>[];
248
+ set?: ConnectInput<TSchema[TTargetAccessor]["_columns"]>[];
249
+ connectOrCreate?: ConnectOrCreateItem<TSchema[TTargetAccessor]["_columns"]>[];
250
+ } : never;
251
+ type JunctionM2MWriteEntryForFk<TSchema extends Record<string, TableDef>, TAccessor extends keyof TSchema & string, TThroughAccessor extends keyof TSchema & string, TFkCol extends FkColumnNames<TSchema[TThroughAccessor]["_columns"]>> = OtherFkTarget<TSchema, TThroughAccessor, TAccessor, TFkCol> extends infer Target extends keyof TSchema & string ? {
252
+ [P in Target]?: M2MRelationWriteForAccessor<TSchema, Target>;
253
+ } : never;
254
+ type JunctionM2MWriteEntry<TSchema extends Record<string, TableDef>, TAccessor extends keyof TSchema & string, TThroughAccessor extends keyof TSchema & string> = MergeRelationUnion<{
255
+ [C in FkColumnNames<TSchema[TThroughAccessor]["_columns"]>]: JunctionM2MWriteEntryForFk<TSchema, TAccessor, TThroughAccessor, C>;
256
+ }[FkColumnNames<TSchema[TThroughAccessor]["_columns"]>]>;
257
+ type JunctionM2MRelationWriteMap<TSchema extends Record<string, TableDef>, TAccessor extends keyof TSchema & string> = MergeRelationUnion<{
258
+ [K in keyof TSchema & string]: K extends TAccessor ? never : [IsThroughTable<TSchema[K]["_columns"]>] extends [true] ? [HasFkTo<TSchema, K, TAccessor>] extends [true] ? JunctionM2MWriteEntry<TSchema, TAccessor, K> : never : never;
259
+ }[keyof TSchema & string]>;
260
+ /** Typed relation writes for create. */
261
+ export type RelationCreateMap<TSchema extends Record<string, TableDef>, TAccessor extends keyof TSchema & string> = Expand<OutgoingFkRelationWriteMap<TSchema, TSchema[TAccessor]["_columns"]> & import("./nested-relation-types.js").InverseRelationWriteMap<TSchema, TAccessor> & JunctionM2MRelationWriteMap<TSchema, TAccessor>>;
262
+ /** Typed relation writes for update. */
263
+ export type RelationUpdateMap<TSchema extends Record<string, TableDef>, TAccessor extends keyof TSchema & string> = Expand<OutgoingFkRelationWriteMap<TSchema, TSchema[TAccessor]["_columns"]> & import("./nested-relation-types.js").InverseRelationWriteMap<TSchema, TAccessor> & JunctionM2MRelationWriteMap<TSchema, TAccessor>>;
264
+ export type { NestedCreateInput } from "./nested-relation-types.js";
123
265
  //# sourceMappingURL=relation-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"relation-types.d.ts","sourceRoot":"","sources":["../../src/schema/relation-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relation-types.d.ts","sourceRoot":"","sources":["../../src/schema/relation-types.ts"],"names":[],"mappings":"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"}
@@ -1,45 +1,40 @@
1
1
  import type { ColumnBuilder } from "./column.js";
2
- import type { FkBuilder } from "./relation.js";
3
2
  import type { ColumnDef, TableDef } from "./table.js";
4
3
  import type { InferColumnValue } from "./column-where.js";
5
- import type { WithInputMap, WhereInput, OrderByInput, OrderDirection } from "./relation-types.js";
4
+ import type { ConnectOrCreateItem, InferInsertRow, InferSelectRow, RelationCreateMap, RelationUpdateMap, WithInputMap, WhereInput, OrderByInput, OrderDirection, CursorInput, SelectInput } from "./relation-types.js";
6
5
  type IsPrimary<T> = T extends ColumnBuilder<unknown, infer M> ? M extends {
7
6
  primary: true;
8
7
  } ? true : false : false;
9
- type IsRequired<T> = T extends ColumnBuilder<unknown, infer M> ? M extends {
10
- nullable: false;
11
- primary: true;
12
- } ? false : M extends {
13
- nullable: false;
14
- } ? true : false : T extends FkBuilder ? T["_meta"] extends {
15
- nullable: false;
8
+ type IsUpdatedAt<T> = T extends ColumnBuilder<unknown, infer M> ? M extends {
9
+ updatedAt: true;
16
10
  } ? true : false : false;
17
- export type InferSelectRow<TColumns extends Record<string, ColumnDef>> = {
18
- [K in keyof TColumns]: InferColumnValue<TColumns[K]>;
19
- };
20
- export type InferInsertRow<TColumns extends Record<string, ColumnDef>> = {
21
- [K in keyof TColumns as IsPrimary<TColumns[K]> extends true ? never : K]?: InferColumnValue<TColumns[K]>;
22
- } & {
23
- [K in keyof TColumns as IsRequired<TColumns[K]> extends true ? K : never]: InferColumnValue<TColumns[K]>;
24
- };
11
+ /** Expands mapped types so IDEs surface keys for autocomplete */
12
+ type Expand<T> = T extends infer O ? {
13
+ [K in keyof O]: O[K];
14
+ } : never;
25
15
  export type { InferColumnValue, WhereOperators, ColumnWhereInput } from "./column-where.js";
26
- export type { WhereInput, LogicalWhereInput, RelationWhereMap, ManyRelationFilter, OrderDirection, OrderByInput, WithInputMap, WithInclude, RelationAccessors, SelectInput, WithRelationOptions, } from "./relation-types.js";
27
- export type ConnectInput<TColumns extends Record<string, ColumnDef>> = {
28
- id: InferColumnValue<TColumns[keyof TColumns & string]>;
29
- };
30
- export type ConnectOrCreateItem<TColumns extends Record<string, ColumnDef>> = {
31
- where: Partial<InferSelectRow<TColumns>>;
32
- create: InferInsertRow<TColumns>;
33
- };
16
+ export type { ConnectInput, ConnectOrCreateItem, InferInsertRow, InferSelectRow, WhereInput, LogicalWhereInput, RelationWhereMap, ManyRelationFilter, OrderDirection, OrderByInput, CursorInput, ScalarPkName, WithInputMap, WithInclude, RelationAccessors, SelectInput, WithRelationOptions, RelationCreateMap, RelationUpdateMap, RelationCountInput, InferWithResult, ApplySelect, } from "./relation-types.js";
34
17
  export type RelationWriteInput = {
35
18
  connect?: {
36
19
  id: string;
37
20
  };
38
21
  connectOrCreate?: ConnectOrCreateItem<Record<string, ColumnDef>>[];
22
+ disconnect?: true | {
23
+ id: string;
24
+ } | {
25
+ id: string;
26
+ }[];
27
+ delete?: true | {
28
+ id: string;
29
+ } | {
30
+ id: string;
31
+ }[];
32
+ set?: {
33
+ id: string;
34
+ }[];
35
+ create?: Record<string, unknown> | Record<string, unknown>[];
39
36
  };
40
- export type CreateInput<TColumns extends Record<string, ColumnDef>> = Partial<InferInsertRow<TColumns>> & {
41
- [key: string]: unknown;
42
- };
37
+ export type CreateInput<TColumns extends Record<string, ColumnDef>, TSchema extends Record<string, TableDef> = Record<string, TableDef>, TAccessor extends keyof TSchema & string = keyof TSchema & string> = Expand<InferInsertRow<TColumns> & RelationCreateMap<TSchema, TAccessor>>;
43
38
  /** @deprecated Use WithInputMap for typed relation includes */
44
39
  export type WithInput = boolean | {
45
40
  select?: readonly string[];
@@ -55,6 +50,7 @@ export type FindManyArgs<TSchema extends Record<string, TableDef>, TAccessor ext
55
50
  orderBy?: OrderByInput<TSchema[TAccessor]["_columns"]>;
56
51
  limit?: number;
57
52
  offset?: number;
53
+ distinct?: SelectInput<TSchema[TAccessor]["_columns"]>;
58
54
  with?: WithInputMap<TSchema, TAccessor>;
59
55
  };
60
56
  export type FindFirstArgs<TSchema extends Record<string, TableDef>, TAccessor extends keyof TSchema & string> = FindManyArgs<TSchema, TAccessor>;
@@ -62,22 +58,25 @@ export type FindByIdArgs<TSchema extends Record<string, TableDef>, TAccessor ext
62
58
  with?: WithInputMap<TSchema, TAccessor>;
63
59
  };
64
60
  export type CreateArgs<TSchema extends Record<string, TableDef>, TAccessor extends keyof TSchema & string> = {
65
- data: CreateInput<TSchema[TAccessor]["_columns"]>;
61
+ data: CreateInput<TSchema[TAccessor]["_columns"], TSchema, TAccessor>;
66
62
  with?: WithInputMap<TSchema, TAccessor>;
67
63
  };
68
- export type UpdateInput<TColumns extends Record<string, ColumnDef>> = {
69
- [K in keyof TColumns as IsPrimary<TColumns[K]> extends true ? never : K]?: InferColumnValue<TColumns[K]>;
70
- } & {
71
- [key: string]: unknown;
64
+ export type CreateManyInput<TColumns extends Record<string, ColumnDef>> = Expand<InferInsertRow<TColumns>>;
65
+ export type CreateManyArgs<TSchema extends Record<string, TableDef>, TAccessor extends keyof TSchema & string> = {
66
+ data: CreateManyInput<TSchema[TAccessor]["_columns"]>[];
72
67
  };
68
+ export type CreateManyAndReturnArgs<TSchema extends Record<string, TableDef>, TAccessor extends keyof TSchema & string> = CreateManyArgs<TSchema, TAccessor>;
69
+ export type UpdateInput<TColumns extends Record<string, ColumnDef>, TSchema extends Record<string, TableDef> = Record<string, TableDef>, TAccessor extends keyof TSchema & string = keyof TSchema & string> = Expand<{
70
+ [K in keyof TColumns as IsPrimary<TColumns[K]> extends true ? never : IsUpdatedAt<TColumns[K]> extends true ? never : K]?: InferColumnValue<TColumns[K]>;
71
+ } & RelationUpdateMap<TSchema, TAccessor>>;
73
72
  export type UpdateArgs<TSchema extends Record<string, TableDef>, TAccessor extends keyof TSchema & string> = {
74
73
  where: WhereInput<TSchema[TAccessor]["_columns"], TSchema, TAccessor>;
75
- data: UpdateInput<TSchema[TAccessor]["_columns"]>;
74
+ data: UpdateInput<TSchema[TAccessor]["_columns"], TSchema, TAccessor>;
76
75
  with?: WithInputMap<TSchema, TAccessor>;
77
76
  };
78
77
  export type UpdateManyArgs<TSchema extends Record<string, TableDef>, TAccessor extends keyof TSchema & string> = {
79
78
  where?: WhereInput<TSchema[TAccessor]["_columns"], TSchema, TAccessor>;
80
- data: UpdateInput<TSchema[TAccessor]["_columns"]>;
79
+ data: UpdateInput<TSchema[TAccessor]["_columns"], TSchema, TAccessor>;
81
80
  };
82
81
  export type DeleteArgs<TSchema extends Record<string, TableDef>, TAccessor extends keyof TSchema & string> = {
83
82
  where: WhereInput<TSchema[TAccessor]["_columns"], TSchema, TAccessor>;
@@ -93,10 +92,57 @@ export type FindUniqueArgs<TSchema extends Record<string, TableDef>, TAccessor e
93
92
  export type CountArgs<TSchema extends Record<string, TableDef>, TAccessor extends keyof TSchema & string> = {
94
93
  where?: WhereInput<TSchema[TAccessor]["_columns"], TSchema, TAccessor>;
95
94
  };
95
+ type AggregateFieldSelect<TColumns extends Record<string, ColumnDef>> = Expand<{
96
+ [K in keyof TColumns & string]?: true;
97
+ }>;
98
+ type InferAggregateBucket<TSelect> = TSelect extends Record<string, true> ? {
99
+ [K in keyof TSelect & string]: number | null;
100
+ } : Record<string, never>;
101
+ export type AggregateArgs<TSchema extends Record<string, TableDef>, TAccessor extends keyof TSchema & string> = {
102
+ where?: WhereInput<TSchema[TAccessor]["_columns"], TSchema, TAccessor>;
103
+ _count?: true;
104
+ _avg?: AggregateFieldSelect<TSchema[TAccessor]["_columns"]>;
105
+ _sum?: AggregateFieldSelect<TSchema[TAccessor]["_columns"]>;
106
+ _min?: AggregateFieldSelect<TSchema[TAccessor]["_columns"]>;
107
+ _max?: AggregateFieldSelect<TSchema[TAccessor]["_columns"]>;
108
+ };
109
+ export type InferAggregateResult<TArgs> = Expand<(TArgs extends {
110
+ _count: true;
111
+ } ? {
112
+ _count: number;
113
+ } : Record<string, never>) & (TArgs extends {
114
+ _avg: infer S extends Record<string, true>;
115
+ } ? {
116
+ _avg: InferAggregateBucket<S>;
117
+ } : Record<string, never>) & (TArgs extends {
118
+ _sum: infer S extends Record<string, true>;
119
+ } ? {
120
+ _sum: InferAggregateBucket<S>;
121
+ } : Record<string, never>) & (TArgs extends {
122
+ _min: infer S extends Record<string, true>;
123
+ } ? {
124
+ _min: InferAggregateBucket<S>;
125
+ } : Record<string, never>) & (TArgs extends {
126
+ _max: infer S extends Record<string, true>;
127
+ } ? {
128
+ _max: InferAggregateBucket<S>;
129
+ } : Record<string, never>)>;
130
+ export type PaginateArgs<TSchema extends Record<string, TableDef>, TAccessor extends keyof TSchema & string, TOrderBy extends OrderByInput<TSchema[TAccessor]["_columns"]> = OrderByInput<TSchema[TAccessor]["_columns"]>> = {
131
+ where?: WhereInput<TSchema[TAccessor]["_columns"], TSchema, TAccessor>;
132
+ orderBy: TOrderBy;
133
+ take: number;
134
+ after?: CursorInput<TSchema[TAccessor]["_columns"], TOrderBy>;
135
+ with?: WithInputMap<TSchema, TAccessor>;
136
+ };
137
+ export type PaginateResult<TRow, TCursor> = {
138
+ items: TRow[];
139
+ nextCursor: TCursor | null;
140
+ hasMore: boolean;
141
+ };
96
142
  export type UpsertArgs<TSchema extends Record<string, TableDef>, TAccessor extends keyof TSchema & string> = {
97
143
  where: WhereInput<TSchema[TAccessor]["_columns"], TSchema, TAccessor>;
98
- create: CreateInput<TSchema[TAccessor]["_columns"]>;
99
- update: UpdateInput<TSchema[TAccessor]["_columns"]>;
144
+ create: CreateInput<TSchema[TAccessor]["_columns"], TSchema, TAccessor>;
145
+ update: UpdateInput<TSchema[TAccessor]["_columns"], TSchema, TAccessor>;
100
146
  with?: WithInputMap<TSchema, TAccessor>;
101
147
  };
102
148
  //# sourceMappingURL=types.d.ts.map