@prisma-next/mongo-orm 0.11.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1,9 +1,9 @@
1
+ import { ContractField, ContractReferenceRelation, ContractValueObject, ContractValueObjectsMap } from "@prisma-next/contract/types";
1
2
  import { AsyncIterableResult } from "@prisma-next/framework-components/runtime";
2
3
  import { MongoFilterExpr, MongoQueryPlan, MongoQueryPlan as MongoQueryPlan$1 } from "@prisma-next/mongo-query-ast/execution";
3
4
  import { Document, MongoValue } from "@prisma-next/mongo-value";
4
5
  import { SimplifyDeep } from "@prisma-next/utils/simplify-deep";
5
- import { ExtractMongoCodecTypes, ExtractMongoFieldInputTypes, ExtractMongoFieldOutputTypes, InferModelRow, MongoContract, MongoContractWithTypeMaps, MongoModelDefinition, MongoTypeMaps } from "@prisma-next/mongo-contract";
6
- import { ContractField, ContractReferenceRelation, ContractValueObject } from "@prisma-next/contract/types";
6
+ import { ExtractMongoCodecTypes, ExtractMongoFieldInputTypes, ExtractMongoFieldOutputTypes, InferModelRow, MongoContract, MongoContractWithTypeMaps, MongoModelDefinition, MongoModelsMap, MongoTypeMaps, RootModelName } from "@prisma-next/mongo-contract";
7
7
 
8
8
  //#region src/executor.d.ts
9
9
  interface MongoQueryExecutor {
@@ -17,19 +17,47 @@ interface FieldOperation {
17
17
  readonly field: string;
18
18
  readonly value: MongoValue;
19
19
  }
20
- type ScalarFieldKeys<TContract extends MongoContract, ModelName extends string & keyof TContract['models']> = { [K in keyof TContract['models'][ModelName]['fields'] & string]: TContract['models'][ModelName]['fields'][K] extends {
20
+ type ScalarFieldKeys<TContract extends MongoContract, ModelName extends string & keyof MongoModelsMap<TContract>> = { [K in keyof MongoModelsMap<TContract>[ModelName]['fields'] & string]: MongoModelsMap<TContract>[ModelName]['fields'][K] extends {
21
21
  readonly type: {
22
22
  readonly kind: 'scalar';
23
23
  };
24
- } ? K : never }[keyof TContract['models'][ModelName]['fields'] & string];
25
- type ValueObjectFieldKeys<TContract extends MongoContract, ModelName extends string & keyof TContract['models']> = { [K in keyof TContract['models'][ModelName]['fields'] & string]: TContract['models'][ModelName]['fields'][K] extends {
24
+ } ? K : never }[keyof MongoModelsMap<TContract>[ModelName]['fields'] & string];
25
+ type ValueObjectFieldKeys<TContract extends MongoContract, ModelName extends string & keyof MongoModelsMap<TContract>> = { [K in keyof MongoModelsMap<TContract>[ModelName]['fields'] & string]: MongoModelsMap<TContract>[ModelName]['fields'][K] extends {
26
26
  readonly type: {
27
27
  readonly kind: 'valueObject';
28
28
  readonly name: string;
29
29
  };
30
- } ? K : never }[keyof TContract['models'][ModelName]['fields'] & string];
31
- type ResolvedModelRow<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models']> = string extends keyof ExtractMongoFieldOutputTypes<TContract> ? InferModelRow<TContract, ModelName> : ModelName extends keyof ExtractMongoFieldOutputTypes<TContract> ? { -readonly [K in keyof ExtractMongoFieldOutputTypes<TContract>[ModelName]]: ExtractMongoFieldOutputTypes<TContract>[ModelName][K] } : InferModelRow<TContract, ModelName>;
32
- type ResolveFieldType<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models'], K extends keyof TContract['models'][ModelName]['fields'] & string> = K extends keyof ResolvedModelRow<TContract, ModelName> ? ResolvedModelRow<TContract, ModelName>[K] : unknown;
30
+ } ? K : never }[keyof MongoModelsMap<TContract>[ModelName]['fields'] & string];
31
+ type ResolvedModelRow<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof MongoModelsMap<TContract>, TCodecTypes extends Record<string, {
32
+ output: unknown;
33
+ }> = ExtractMongoCodecTypes<TContract>> = string extends keyof ExtractMongoFieldOutputTypes<TContract> ? InferModelRow<TContract, ModelName, MongoModelsMap<TContract>[ModelName]['fields'], TCodecTypes> : ModelName extends keyof ExtractMongoFieldOutputTypes<TContract> ? { -readonly [K in keyof ExtractMongoFieldOutputTypes<TContract>[ModelName]]: ExtractMongoFieldOutputTypes<TContract>[ModelName][K] } : InferModelRow<TContract, ModelName, MongoModelsMap<TContract>[ModelName]['fields'], TCodecTypes>;
34
+ type ResolveFieldType<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof MongoModelsMap<TContract>, K extends keyof MongoModelsMap<TContract>[ModelName]['fields'] & string, TCodecTypes extends Record<string, {
35
+ output: unknown;
36
+ }> = ExtractMongoCodecTypes<TContract>> = MongoModelsMap<TContract>[ModelName]['fields'][K] extends {
37
+ readonly type: {
38
+ readonly kind: 'scalar';
39
+ readonly codecId: infer CId extends string & keyof TCodecTypes;
40
+ };
41
+ readonly many: true;
42
+ readonly nullable: true;
43
+ } ? readonly TCodecTypes[CId]['output'][] | null : MongoModelsMap<TContract>[ModelName]['fields'][K] extends {
44
+ readonly type: {
45
+ readonly kind: 'scalar';
46
+ readonly codecId: infer CId extends string & keyof TCodecTypes;
47
+ };
48
+ readonly many: true;
49
+ } ? readonly TCodecTypes[CId]['output'][] : MongoModelsMap<TContract>[ModelName]['fields'][K] extends {
50
+ readonly type: {
51
+ readonly kind: 'scalar';
52
+ readonly codecId: infer CId extends string & keyof TCodecTypes;
53
+ };
54
+ readonly nullable: true;
55
+ } ? TCodecTypes[CId]['output'] | null : MongoModelsMap<TContract>[ModelName]['fields'][K] extends {
56
+ readonly type: {
57
+ readonly kind: 'scalar';
58
+ readonly codecId: infer CId extends string & keyof TCodecTypes;
59
+ };
60
+ } ? TCodecTypes[CId]['output'] : K extends keyof ResolvedModelRow<TContract, ModelName, TCodecTypes> ? ResolvedModelRow<TContract, ModelName, TCodecTypes>[K] : unknown;
33
61
  type NumericOps = {
34
62
  inc(value: number): FieldOperation;
35
63
  mul(value: number): FieldOperation;
@@ -42,12 +70,13 @@ type FieldExpression<T = unknown> = {
42
70
  addToSet(value: T extends readonly (infer E)[] ? E : unknown): FieldOperation;
43
71
  pop(end: 1 | -1): FieldOperation;
44
72
  } & (T extends number ? NumericOps : unknown);
45
- type HasValueObjects = {
46
- readonly valueObjects?: Record<string, ContractValueObject>;
47
- };
48
- type VOFields<TContract extends HasValueObjects, VOName extends string> = TContract extends {
49
- readonly valueObjects: infer VOs extends Record<string, ContractValueObject>;
50
- } ? VOName extends keyof VOs ? VOs[VOName]['fields'] : never : never;
73
+ type HasValueObjects = MongoContract;
74
+ type MergedContractValueObjects<TContract extends HasValueObjects> = ContractValueObjectsMap<TContract> & (TContract extends {
75
+ readonly valueObjects?: infer VOs;
76
+ } ? VOs extends Record<string, ContractValueObject> ? VOs : Record<string, never> : Record<string, never>);
77
+ type VOFields<TContract extends HasValueObjects, VOName extends string> = VOName extends keyof MergedContractValueObjects<TContract> ? MergedContractValueObjects<TContract>[VOName] extends {
78
+ readonly fields: infer F extends Record<string, ContractField>;
79
+ } ? F : never : never;
51
80
  type VOScalarFieldKeys<Fields extends Record<string, ContractField>> = { [K in keyof Fields & string]: Fields[K] extends {
52
81
  readonly type: {
53
82
  readonly kind: 'scalar';
@@ -65,7 +94,7 @@ type VODotPaths<TContract extends HasValueObjects, Fields extends Record<string,
65
94
  readonly name: infer N extends string;
66
95
  };
67
96
  } ? VODotPaths<TContract, VOFields<TContract, N>, `${Prefix}${K}.`> : never }[VOValueObjectFieldKeys<Fields>];
68
- type DotPath<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models']> = { [K in ValueObjectFieldKeys<TContract, ModelName>]: TContract['models'][ModelName]['fields'][K] extends {
97
+ type DotPath<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof MongoModelsMap<TContract>> = { [K in ValueObjectFieldKeys<TContract, ModelName>]: MongoModelsMap<TContract>[ModelName]['fields'][K] extends {
69
98
  readonly type: {
70
99
  readonly kind: 'valueObject';
71
100
  readonly name: infer N extends string;
@@ -84,78 +113,85 @@ type ResolveDotPathInFields<TContract extends HasValueObjects, Fields extends Re
84
113
  readonly codecId: infer CId extends string & keyof TCodecTypes;
85
114
  };
86
115
  } ? TCodecTypes[CId]['output'] : unknown : never;
87
- type ResolveDotPathType<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models'], Path extends string, TCodecTypes extends Record<string, {
116
+ type ResolveDotPathType<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof MongoModelsMap<TContract>, Path extends string, TCodecTypes extends Record<string, {
88
117
  output: unknown;
89
- }> = ExtractMongoCodecTypes<TContract>> = Path extends `${infer Head}.${infer Rest}` ? Head extends keyof TContract['models'][ModelName]['fields'] & string ? TContract['models'][ModelName]['fields'][Head] extends {
118
+ }> = ExtractMongoCodecTypes<TContract>> = Path extends `${infer Head}.${infer Rest}` ? Head extends keyof MongoModelsMap<TContract>[ModelName]['fields'] & string ? MongoModelsMap<TContract>[ModelName]['fields'][Head] extends {
90
119
  readonly type: {
91
120
  readonly kind: 'valueObject';
92
121
  readonly name: infer N extends string;
93
122
  };
94
123
  } ? ResolveDotPathInFields<TContract, VOFields<TContract, N>, Rest, TCodecTypes> : never : never : never;
95
- type FieldAccessor<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models']> = { readonly [K in ScalarFieldKeys<TContract, ModelName>]: FieldExpression<ResolveFieldType<TContract, ModelName, K>> } & { readonly [K in ValueObjectFieldKeys<TContract, ModelName>]: FieldExpression<ResolveFieldType<TContract, ModelName, K>> } & (<P extends DotPath<TContract, ModelName>>(path: P) => FieldExpression<ResolveDotPathType<TContract, ModelName, P>>);
96
- declare function createFieldAccessor<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models']>(): FieldAccessor<TContract, ModelName>;
124
+ type FieldAccessor<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof MongoModelsMap<TContract>, TCodecTypes extends Record<string, {
125
+ output: unknown;
126
+ }> = ExtractMongoCodecTypes<TContract>> = { readonly [K in ScalarFieldKeys<TContract, ModelName>]: FieldExpression<ResolveFieldType<TContract, ModelName, K, TCodecTypes>> } & { readonly [K in ValueObjectFieldKeys<TContract, ModelName>]: FieldExpression<ResolveFieldType<TContract, ModelName, K, TCodecTypes>> } & (<P extends DotPath<TContract, ModelName>>(path: P) => FieldExpression<ResolveDotPathType<TContract, ModelName, P, TCodecTypes>>);
127
+ declare function createFieldAccessor<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof MongoModelsMap<TContract>, TCodecTypes extends Record<string, {
128
+ output: unknown;
129
+ }> = ExtractMongoCodecTypes<TContract>>(): FieldAccessor<TContract, ModelName, TCodecTypes>;
97
130
  //#endregion
98
131
  //#region src/types.d.ts
99
132
  type Simplify<T> = T extends unknown ? { [K in keyof T]: T[K] } : never;
100
- type ModelRelations<TContract extends MongoContract, ModelName extends string & keyof TContract['models']> = NonNullable<TContract['models'][ModelName]['relations']>;
101
- type ReferenceRelationKeys<TContract extends MongoContract, ModelName extends string & keyof TContract['models']> = { [K in keyof ModelRelations<TContract, ModelName>]: ModelRelations<TContract, ModelName>[K] extends ContractReferenceRelation ? K : never }[keyof ModelRelations<TContract, ModelName>];
102
- type EmbedRelationKeys<TContract extends MongoContract, ModelName extends string & keyof TContract['models']> = { [K in keyof ModelRelations<TContract, ModelName>]: ModelRelations<TContract, ModelName>[K] extends ContractReferenceRelation ? never : K }[keyof ModelRelations<TContract, ModelName>];
103
- type ResolvedOutputRow<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models']> = string extends keyof ExtractMongoFieldOutputTypes<TContract> ? InferModelRow<TContract, ModelName> : ModelName extends keyof ExtractMongoFieldOutputTypes<TContract> ? { -readonly [K in keyof ExtractMongoFieldOutputTypes<TContract>[ModelName]]: ExtractMongoFieldOutputTypes<TContract>[ModelName][K] } : InferModelRow<TContract, ModelName>;
104
- type ResolvedInputRow<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models']> = string extends keyof ExtractMongoFieldInputTypes<TContract> ? InferModelRow<TContract, ModelName> : ModelName extends keyof ExtractMongoFieldInputTypes<TContract> ? { -readonly [K in keyof ExtractMongoFieldInputTypes<TContract>[ModelName]]: ExtractMongoFieldInputTypes<TContract>[ModelName][K] } : InferModelRow<TContract, ModelName>;
105
- type EmbedRelationRowType<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models'], RelKey extends keyof ModelRelations<TContract, ModelName>> = ModelRelations<TContract, ModelName>[RelKey] extends {
106
- readonly to: infer To extends string & keyof TContract['models'];
133
+ type ModelRelations<TContract extends MongoContract, ModelName extends string & keyof MongoModelsMap<TContract>> = NonNullable<MongoModelsMap<TContract>[ModelName]['relations']>;
134
+ type ReferenceRelationKeys<TContract extends MongoContract, ModelName extends string & keyof MongoModelsMap<TContract>> = { [K in keyof ModelRelations<TContract, ModelName>]: ModelRelations<TContract, ModelName>[K] extends ContractReferenceRelation ? K : never }[keyof ModelRelations<TContract, ModelName>];
135
+ type EmbedRelationKeys<TContract extends MongoContract, ModelName extends string & keyof MongoModelsMap<TContract>> = { [K in keyof ModelRelations<TContract, ModelName>]: ModelRelations<TContract, ModelName>[K] extends ContractReferenceRelation ? never : K }[keyof ModelRelations<TContract, ModelName>];
136
+ type ResolvedOutputRow<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof MongoModelsMap<TContract>> = string extends keyof ExtractMongoFieldOutputTypes<TContract> ? InferModelRow<TContract, ModelName> : ModelName extends keyof ExtractMongoFieldOutputTypes<TContract> ? { -readonly [K in keyof ExtractMongoFieldOutputTypes<TContract>[ModelName]]: ExtractMongoFieldOutputTypes<TContract>[ModelName][K] } : InferModelRow<TContract, ModelName>;
137
+ type ResolvedInputRow<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof MongoModelsMap<TContract>> = string extends keyof ExtractMongoFieldInputTypes<TContract> ? InferModelRow<TContract, ModelName> : ModelName extends keyof ExtractMongoFieldInputTypes<TContract> ? { -readonly [K in keyof ExtractMongoFieldInputTypes<TContract>[ModelName]]: ExtractMongoFieldInputTypes<TContract>[ModelName][K] } : InferModelRow<TContract, ModelName>;
138
+ type RelationTargetModel<TContract extends MongoContract, R> = R extends {
139
+ readonly to: {
140
+ readonly model: infer M extends string & keyof MongoModelsMap<TContract>;
141
+ };
142
+ } ? M : never;
143
+ type EmbedRelationRowType<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof MongoModelsMap<TContract>, RelKey extends keyof ModelRelations<TContract, ModelName>> = ModelRelations<TContract, ModelName>[RelKey] extends infer R ? R extends {
107
144
  readonly cardinality: infer C;
108
- } ? ModelRelations<TContract, ModelName>[RelKey] extends ContractReferenceRelation ? never : C extends '1:N' ? ResolvedOutputRow<TContract, To>[] : ResolvedOutputRow<TContract, To> : never;
109
- type InferFullRow<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models']> = EmbedRelationKeys<TContract, ModelName> extends never ? ResolvedOutputRow<TContract, ModelName> : ResolvedOutputRow<TContract, ModelName> & { -readonly [K in EmbedRelationKeys<TContract, ModelName> & keyof ModelRelations<TContract, ModelName>]: EmbedRelationRowType<TContract, ModelName, K> };
110
- type VariantRow<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models']> = TContract['models'][ModelName] extends {
145
+ } ? ModelRelations<TContract, ModelName>[RelKey] extends ContractReferenceRelation ? never : RelationTargetModel<TContract, R> extends infer To extends string & keyof MongoModelsMap<TContract> ? C extends '1:N' ? ResolvedOutputRow<TContract, To>[] : ResolvedOutputRow<TContract, To> : never : never : never;
146
+ type InferFullRow<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof MongoModelsMap<TContract>> = EmbedRelationKeys<TContract, ModelName> extends never ? ResolvedOutputRow<TContract, ModelName> : ResolvedOutputRow<TContract, ModelName> & { -readonly [K in EmbedRelationKeys<TContract, ModelName> & keyof ModelRelations<TContract, ModelName>]: EmbedRelationRowType<TContract, ModelName, K> };
147
+ type VariantRow<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof MongoModelsMap<TContract>> = MongoModelsMap<TContract>[ModelName] extends {
111
148
  readonly discriminator: {
112
149
  readonly field: infer DiscField extends string;
113
150
  };
114
151
  readonly variants: infer V;
115
152
  } ? V extends Record<string, {
116
153
  readonly value: string;
117
- }> ? { [VK in keyof V]: VK extends string & keyof TContract['models'] ? Simplify<Omit<InferFullRow<TContract, ModelName>, DiscField> & InferFullRow<TContract, VK> & Record<DiscField, V[VK]['value']>> : never }[keyof V] : InferFullRow<TContract, ModelName> : InferFullRow<TContract, ModelName>;
118
- type InferRootRow<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models']> = VariantRow<TContract, ModelName>;
119
- type VariantNames<TContract extends MongoContract, ModelName extends string & keyof TContract['models']> = TContract['models'][ModelName] extends {
154
+ }> ? { [VK in keyof V]: VK extends string & keyof MongoModelsMap<TContract> ? Simplify<Omit<InferFullRow<TContract, ModelName>, DiscField> & InferFullRow<TContract, VK> & Record<DiscField, V[VK]['value']>> : never }[keyof V] : InferFullRow<TContract, ModelName> : InferFullRow<TContract, ModelName>;
155
+ type InferRootRow<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof MongoModelsMap<TContract>> = VariantRow<TContract, ModelName>;
156
+ type VariantNames<TContract extends MongoContract, ModelName extends string & keyof MongoModelsMap<TContract>> = MongoModelsMap<TContract>[ModelName] extends {
120
157
  readonly variants: infer V extends Record<string, unknown>;
121
158
  } ? keyof V & string : never;
122
- type VariantModelRow<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models'], VariantName extends string> = TContract['models'][ModelName] extends {
159
+ type VariantModelRow<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof MongoModelsMap<TContract>, VariantName extends string> = MongoModelsMap<TContract>[ModelName] extends {
123
160
  readonly discriminator: {
124
161
  readonly field: infer DiscField extends string;
125
162
  };
126
163
  readonly variants: infer V;
127
164
  } ? V extends Record<string, {
128
165
  readonly value: string;
129
- }> ? VariantName extends keyof V & string & keyof TContract['models'] ? Simplify<Omit<InferFullRow<TContract, ModelName>, DiscField> & InferFullRow<TContract, VariantName> & Record<DiscField, V[VariantName]['value']>> : InferFullRow<TContract, ModelName> : InferFullRow<TContract, ModelName> : InferFullRow<TContract, ModelName>;
130
- type IncludeRelationRowType<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models'], RelKey extends keyof ModelRelations<TContract, ModelName>> = ModelRelations<TContract, ModelName>[RelKey] extends ContractReferenceRelation ? ModelRelations<TContract, ModelName>[RelKey] extends {
131
- readonly to: infer To extends string & keyof TContract['models'];
166
+ }> ? VariantName extends keyof V & string & keyof MongoModelsMap<TContract> ? Simplify<Omit<InferFullRow<TContract, ModelName>, DiscField> & InferFullRow<TContract, VariantName> & Record<DiscField, V[VariantName]['value']>> : InferFullRow<TContract, ModelName> : InferFullRow<TContract, ModelName> : InferFullRow<TContract, ModelName>;
167
+ type IncludeRelationRowType<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof MongoModelsMap<TContract>, RelKey extends keyof ModelRelations<TContract, ModelName>> = ModelRelations<TContract, ModelName>[RelKey] extends ContractReferenceRelation ? ModelRelations<TContract, ModelName>[RelKey] extends infer R ? R extends {
132
168
  readonly cardinality: infer C;
133
- } ? C extends 'N:1' | '1:1' ? InferFullRow<TContract, To> | null : InferFullRow<TContract, To>[] : never : never;
134
- type IncludeResultFields<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models'], TInclude extends MongoIncludeSpec<TContract, ModelName>> = { -readonly [K in keyof TInclude & string as TInclude[K] extends true ? K : never]: K extends keyof ModelRelations<TContract, ModelName> ? IncludeRelationRowType<TContract, ModelName, K> : never };
135
- type MongoWhereFilter<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models'], TCodecTypes extends Record<string, {
169
+ } ? RelationTargetModel<TContract, R> extends infer To extends string & keyof MongoModelsMap<TContract> ? C extends 'N:1' | '1:1' ? InferFullRow<TContract, To> | null : InferFullRow<TContract, To>[] : never : never : never : never;
170
+ type IncludeResultFields<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof MongoModelsMap<TContract>, TInclude extends MongoIncludeSpec<TContract, ModelName>> = { -readonly [K in keyof TInclude & string as TInclude[K] extends true ? K : never]: K extends keyof ModelRelations<TContract, ModelName> ? IncludeRelationRowType<TContract, ModelName, K> : never };
171
+ type MongoWhereFilter<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof MongoModelsMap<TContract>, TCodecTypes extends Record<string, {
136
172
  output: unknown;
137
- }> = ExtractMongoCodecTypes<TContract>> = { readonly [K in keyof TContract['models'][ModelName]['fields']]?: TContract['models'][ModelName]['fields'][K] extends {
173
+ }> = ExtractMongoCodecTypes<TContract>> = { readonly [K in keyof MongoModelsMap<TContract>[ModelName]['fields']]?: MongoModelsMap<TContract>[ModelName]['fields'][K] extends {
138
174
  readonly type: {
139
175
  readonly kind: 'scalar';
140
176
  readonly codecId: infer CId extends string & keyof TCodecTypes;
141
177
  };
142
178
  } ? TCodecTypes[CId]['output'] : unknown };
143
- type MongoIncludeSpec<TContract extends MongoContract, ModelName extends string & keyof TContract['models']> = { readonly [K in ReferenceRelationKeys<TContract, ModelName>]?: true };
179
+ type MongoIncludeSpec<TContract extends MongoContract, ModelName extends string & keyof MongoModelsMap<TContract>> = { readonly [K in ReferenceRelationKeys<TContract, ModelName>]?: true };
144
180
  type NoIncludes = Pick<Record<string, boolean>, never>;
145
- type IncludedRow<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models'], TIncludes extends MongoIncludeSpec<TContract, ModelName> = NoIncludes> = InferRootRow<TContract, ModelName> & IncludeResultFields<TContract, ModelName, TIncludes>;
146
- type DefaultModelRow<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models']> = ResolvedOutputRow<TContract, ModelName>;
147
- type CreateInput<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models']> = Omit<ResolvedInputRow<TContract, ModelName>, '_id'> & Partial<Pick<ResolvedInputRow<TContract, ModelName>, '_id' & keyof ResolvedInputRow<TContract, ModelName>>>;
148
- type DiscriminatorField<TContract extends MongoContract, ModelName extends string & keyof TContract['models']> = TContract['models'][ModelName] extends {
181
+ type IncludedRow<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof MongoModelsMap<TContract>, TIncludes extends MongoIncludeSpec<TContract, ModelName> = NoIncludes> = InferRootRow<TContract, ModelName> & IncludeResultFields<TContract, ModelName, TIncludes>;
182
+ type DefaultModelRow<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof MongoModelsMap<TContract>> = ResolvedOutputRow<TContract, ModelName>;
183
+ type CreateInput<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof MongoModelsMap<TContract>> = Omit<ResolvedInputRow<TContract, ModelName>, '_id'> & Partial<Pick<ResolvedInputRow<TContract, ModelName>, '_id' & keyof ResolvedInputRow<TContract, ModelName>>>;
184
+ type DiscriminatorField<TContract extends MongoContract, ModelName extends string & keyof MongoModelsMap<TContract>> = MongoModelsMap<TContract>[ModelName] extends {
149
185
  readonly discriminator: {
150
186
  readonly field: infer F extends string;
151
187
  };
152
188
  } ? F : never;
153
- type VariantCreateInput<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models'], VariantName extends string> = Omit<VariantModelRow<TContract, ModelName, VariantName>, '_id' | DiscriminatorField<TContract, ModelName>> & Partial<Pick<ResolvedInputRow<TContract, ModelName>, '_id' & keyof ResolvedInputRow<TContract, ModelName>>>;
154
- type ResolvedCreateInput<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models'], TVariant extends string> = [TVariant] extends [never] ? CreateInput<TContract, ModelName> : VariantCreateInput<TContract, ModelName, TVariant>;
189
+ type VariantCreateInput<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof MongoModelsMap<TContract>, VariantName extends string> = Omit<VariantModelRow<TContract, ModelName, VariantName>, '_id' | DiscriminatorField<TContract, ModelName>> & Partial<Pick<ResolvedInputRow<TContract, ModelName>, '_id' & keyof ResolvedInputRow<TContract, ModelName>>>;
190
+ type ResolvedCreateInput<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof MongoModelsMap<TContract>, TVariant extends string> = [TVariant] extends [never] ? CreateInput<TContract, ModelName> : VariantCreateInput<TContract, ModelName, TVariant>;
155
191
  //#endregion
156
192
  //#region src/collection.d.ts
157
- type ModelFieldKeys<TContract extends MongoContract, ModelName extends string & keyof TContract['models']> = keyof TContract['models'][ModelName]['fields'] & string;
158
- interface MongoCollection<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models'], TIncludes extends MongoIncludeSpec<TContract, ModelName> = NoIncludes, TVariant extends string = never> {
193
+ type ModelFieldKeys<TContract extends MongoContract, ModelName extends string & keyof MongoModelsMap<TContract>> = keyof MongoModelsMap<TContract>[ModelName]['fields'] & string;
194
+ interface MongoCollection<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof MongoModelsMap<TContract>, TIncludes extends MongoIncludeSpec<TContract, ModelName> = NoIncludes, TVariant extends string = never> {
159
195
  /** Narrows to a specific variant, injecting a discriminator filter. */
160
196
  variant<V extends VariantNames<TContract, ModelName>>(variantName: V): MongoCollection<TContract, ModelName, TIncludes, V>;
161
197
  /** Appends equality filters from a plain object. Values are encoded through codecs. */
@@ -215,7 +251,7 @@ interface MongoCollection<TContract extends MongoContractWithTypeMaps<MongoContr
215
251
  update: (u: FieldAccessor<TContract, ModelName>) => FieldOperation[];
216
252
  }): Promise<IncludedRow<TContract, ModelName, TIncludes>>;
217
253
  }
218
- declare function createMongoCollection<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models']>(contract: TContract, modelName: ModelName, executor: MongoQueryExecutor): MongoCollection<TContract, ModelName>;
254
+ declare function createMongoCollection<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof MongoModelsMap<TContract>>(contract: TContract, modelName: ModelName, executor: MongoQueryExecutor): MongoCollection<TContract, ModelName>;
219
255
  //#endregion
220
256
  //#region src/collection-state.d.ts
221
257
  interface MongoIncludeExpr {
@@ -242,7 +278,7 @@ interface MongoOrmOptions<TContract extends MongoContract> {
242
278
  readonly contract: TContract;
243
279
  readonly executor: MongoQueryExecutor;
244
280
  }
245
- type MongoOrmClient<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>> = { readonly [K in keyof TContract['roots']]: TContract['roots'][K] extends string & keyof TContract['models'] ? MongoCollection<TContract, TContract['roots'][K]> : never };
281
+ type MongoOrmClient<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>> = { readonly [K in keyof TContract['roots'] & string]: MongoCollection<TContract, RootModelName<TContract, K>> };
246
282
  declare function mongoOrm<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>>(options: MongoOrmOptions<TContract>): MongoOrmClient<TContract>;
247
283
  //#endregion
248
284
  //#region src/raw-collection.d.ts
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/executor.ts","../src/field-accessor.ts","../src/types.ts","../src/collection.ts","../src/collection-state.ts","../src/compile.ts","../src/mongo-orm.ts","../src/raw-collection.ts","../src/mongo-raw.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/executor.ts","../src/field-accessor.ts","../src/types.ts","../src/collection.ts","../src/collection-state.ts","../src/compile.ts","../src/mongo-orm.ts","../src/raw-collection.ts","../src/mongo-raw.ts"],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -1,8 +1,10 @@
1
+ import { contractModels, contractValueObjects } from "@prisma-next/contract/types";
1
2
  import { AsyncIterableResult } from "@prisma-next/framework-components/runtime";
2
3
  import { AggregateCommand, DeleteManyCommand, FindOneAndDeleteCommand, FindOneAndUpdateCommand, InsertManyCommand, InsertOneCommand, MongoAndExpr, MongoFieldFilter, MongoLimitStage, MongoLookupStage, MongoMatchStage, MongoProjectStage, MongoSkipStage, MongoSortStage, MongoUnwindStage, RawAggregateCommand, RawDeleteManyCommand, RawDeleteOneCommand, RawFindOneAndDeleteCommand, RawFindOneAndUpdateCommand, RawInsertManyCommand, RawInsertOneCommand, RawUpdateManyCommand, RawUpdateOneCommand, UpdateManyCommand, isMongoFilterExpr } from "@prisma-next/mongo-query-ast/execution";
3
4
  import { MongoParamRef } from "@prisma-next/mongo-value";
4
5
  import { contractModelToMongoResultShape } from "@prisma-next/mongo-query-builder";
5
6
  import { ifDefined } from "@prisma-next/utils/defined";
7
+ import { blindCast } from "@prisma-next/utils/casts";
6
8
  //#region src/collection-state.ts
7
9
  function emptyCollectionState() {
8
10
  return {
@@ -162,12 +164,12 @@ var MongoCollectionImpl = class MongoCollectionImpl {
162
164
  this.#contract = contract;
163
165
  this.#modelName = modelName;
164
166
  this.#executor = executor;
165
- const model = contract.models[modelName];
167
+ const model = contractModels(contract)[modelName];
166
168
  this.#collectionName = resolveCollectionName(model, modelName);
167
169
  this.#state = emptyCollectionState();
168
170
  }
169
171
  variant(variantName) {
170
- const model = this.#contract.models[this.#modelName];
172
+ const model = contractModels(this.#contract)[this.#modelName];
171
173
  if (!model?.discriminator || !model.variants) return this;
172
174
  const variantEntry = model.variants[variantName];
173
175
  if (!variantEntry) return this;
@@ -183,18 +185,19 @@ var MongoCollectionImpl = class MongoCollectionImpl {
183
185
  return this.#clone({ selectedFields: [...this.#state.selectedFields ?? [], ...fields] });
184
186
  }
185
187
  include(relationName) {
186
- const relation = this.#contract.models[this.#modelName].relations?.[relationName];
188
+ const relation = contractModels(this.#contract)[this.#modelName].relations?.[relationName];
187
189
  if (!relation) throw new Error(`Unknown relation "${relationName}" on model "${this.#modelName}"`);
188
190
  if (!("on" in relation)) throw new Error(`Relation "${relationName}" is an embed relation — only reference relations can be included`);
189
191
  const ref = relation;
190
192
  const localField = ref.on.localFields[0];
191
193
  const foreignField = ref.on.targetFields[0];
192
194
  if (!localField || !foreignField || ref.on.localFields.length !== 1 || ref.on.targetFields.length !== 1) throw new Error(`Compound references are not yet supported: relation "${relationName}"`);
193
- const targetModel = this.#contract.models[ref.to];
194
- if (!targetModel) throw new Error(`Target model "${ref.to}" not found for relation "${relationName}"`);
195
+ const targetModelName = ref.to.model;
196
+ const targetModel = contractModels(this.#contract)[targetModelName];
197
+ if (!targetModel) throw new Error(`Target model "${targetModelName}" not found for relation "${relationName}"`);
195
198
  const includeExpr = {
196
199
  relationName,
197
- from: resolveCollectionName(targetModel, ref.to),
200
+ from: resolveCollectionName(targetModel, targetModelName),
198
201
  localField,
199
202
  foreignField,
200
203
  cardinality: ref.cardinality
@@ -362,7 +365,7 @@ var MongoCollectionImpl = class MongoCollectionImpl {
362
365
  return this.#executor.execute(plan);
363
366
  }
364
367
  #compile() {
365
- const model = this.#contract.models[this.#modelName];
368
+ const model = contractModels(this.#contract)[this.#modelName];
366
369
  if (!model) throw new Error(`Unknown model: "${this.#modelName}".`);
367
370
  return compileMongoQuery(this.#collectionName, this.#state, this.#contract.storage.storageHash, model);
368
371
  }
@@ -381,7 +384,7 @@ var MongoCollectionImpl = class MongoCollectionImpl {
381
384
  return rows;
382
385
  }
383
386
  #modelFields() {
384
- return this.#contract.models[this.#modelName]?.fields ?? {};
387
+ return contractModels(this.#contract)[this.#modelName]?.fields ?? {};
385
388
  }
386
389
  #compileWhereObject(data) {
387
390
  const fields = this.#modelFields();
@@ -398,7 +401,7 @@ var MongoCollectionImpl = class MongoCollectionImpl {
398
401
  if (field.type.kind === "scalar") return new MongoParamRef(value, { codecId: field.type.codecId });
399
402
  if (field.type.kind === "valueObject") {
400
403
  const voName = field.type.name;
401
- const voDef = this.#contract.valueObjects?.[voName];
404
+ const voDef = contractValueObjects(this.#contract)?.[voName];
402
405
  if (!voDef || value === null) return new MongoParamRef(value);
403
406
  if (field.many && Array.isArray(value)) return value.map((item) => this.#wrapValueObject(item, voDef));
404
407
  return this.#wrapValueObject(value, voDef);
@@ -457,7 +460,7 @@ var MongoCollectionImpl = class MongoCollectionImpl {
457
460
  const raw = value.value;
458
461
  if (typeof raw === "object" && raw !== null && !Array.isArray(raw)) {
459
462
  const voName = contractField.type.name;
460
- const voDef = this.#contract.valueObjects?.[voName];
463
+ const voDef = contractValueObjects(this.#contract)?.[voName];
461
464
  if (voDef) return this.#wrapValueObject(raw, voDef);
462
465
  }
463
466
  }
@@ -470,7 +473,7 @@ var MongoCollectionImpl = class MongoCollectionImpl {
470
473
  for (let i = 1; i < parts.length; i++) {
471
474
  if (!currentField || currentField.type.kind !== "valueObject") return value;
472
475
  const voName = currentField.type.name;
473
- const voDef = this.#contract.valueObjects?.[voName];
476
+ const voDef = contractValueObjects(this.#contract)?.[voName];
474
477
  if (!voDef) return value;
475
478
  const partKey = parts[i];
476
479
  currentField = partKey ? voDef.fields[partKey] : void 0;
@@ -480,7 +483,7 @@ var MongoCollectionImpl = class MongoCollectionImpl {
480
483
  const raw = value.value;
481
484
  if (typeof raw === "object" && raw !== null && !Array.isArray(raw)) {
482
485
  const voName = currentField.type.name;
483
- const voDef = this.#contract.valueObjects?.[voName];
486
+ const voDef = contractValueObjects(this.#contract)?.[voName];
484
487
  if (voDef) return this.#wrapValueObject(raw, voDef);
485
488
  }
486
489
  }
@@ -509,7 +512,7 @@ var MongoCollectionImpl = class MongoCollectionImpl {
509
512
  }
510
513
  #injectDiscriminator(data) {
511
514
  if (!this.#variantName) return data;
512
- const model = this.#contract.models[this.#modelName];
515
+ const model = contractModels(this.#contract)[this.#modelName];
513
516
  if (!model?.discriminator || !model.variants) return data;
514
517
  const variantEntry = model.variants[this.#variantName];
515
518
  if (!variantEntry) return data;
@@ -547,7 +550,7 @@ function createMongoCollection(contract, modelName, executor) {
547
550
  function mongoOrm(options) {
548
551
  const { contract, executor } = options;
549
552
  const client = {};
550
- for (const [rootName, modelName] of Object.entries(contract.roots)) client[rootName] = createMongoCollection(contract, modelName, executor);
553
+ for (const [rootName, rootRef] of Object.entries(contract.roots)) client[rootName] = createMongoCollection(contract, blindCast(rootRef.model), executor);
551
554
  return client;
552
555
  }
553
556
  //#endregion
@@ -595,9 +598,10 @@ function createRawMongoCollection(collectionName, meta) {
595
598
  function mongoRaw(options) {
596
599
  const { contract } = options;
597
600
  return { collection(rootName) {
598
- const modelName = contract.roots[rootName];
599
- if (!Object.hasOwn(contract.models, modelName)) throw new Error(`Unknown model "${modelName}" for root "${rootName}"`);
600
- return createRawMongoCollection(contract.models[modelName].storage.collection ?? modelName, {
601
+ const modelName = contract.roots[rootName]?.model;
602
+ const models = contractModels(contract);
603
+ if (!modelName || !Object.hasOwn(models, modelName)) throw new Error(`Unknown model "${modelName ?? ""}" for root "${rootName}"`);
604
+ return createRawMongoCollection(models[modelName].storage.collection ?? modelName, {
601
605
  target: "mongo",
602
606
  storageHash: contract.storage.storageHash,
603
607
  lane: "mongo-raw"