@prisma-next/mongo-orm 0.11.0-dev.68 → 0.11.0-dev.69

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, RootModelName } 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,42 +17,42 @@ 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'], TCodecTypes extends Record<string, {
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
32
  output: unknown;
33
- }> = ExtractMongoCodecTypes<TContract>> = string extends keyof ExtractMongoFieldOutputTypes<TContract> ? InferModelRow<TContract, ModelName, TContract['models'][ModelName]['fields'], TCodecTypes> : ModelName extends keyof ExtractMongoFieldOutputTypes<TContract> ? { -readonly [K in keyof ExtractMongoFieldOutputTypes<TContract>[ModelName]]: ExtractMongoFieldOutputTypes<TContract>[ModelName][K] } : InferModelRow<TContract, ModelName, TContract['models'][ModelName]['fields'], TCodecTypes>;
34
- type ResolveFieldType<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models'], K extends keyof TContract['models'][ModelName]['fields'] & string, TCodecTypes extends Record<string, {
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
35
  output: unknown;
36
- }> = ExtractMongoCodecTypes<TContract>> = TContract['models'][ModelName]['fields'][K] extends {
36
+ }> = ExtractMongoCodecTypes<TContract>> = MongoModelsMap<TContract>[ModelName]['fields'][K] extends {
37
37
  readonly type: {
38
38
  readonly kind: 'scalar';
39
39
  readonly codecId: infer CId extends string & keyof TCodecTypes;
40
40
  };
41
41
  readonly many: true;
42
42
  readonly nullable: true;
43
- } ? readonly TCodecTypes[CId]['output'][] | null : TContract['models'][ModelName]['fields'][K] extends {
43
+ } ? readonly TCodecTypes[CId]['output'][] | null : MongoModelsMap<TContract>[ModelName]['fields'][K] extends {
44
44
  readonly type: {
45
45
  readonly kind: 'scalar';
46
46
  readonly codecId: infer CId extends string & keyof TCodecTypes;
47
47
  };
48
48
  readonly many: true;
49
- } ? readonly TCodecTypes[CId]['output'][] : TContract['models'][ModelName]['fields'][K] extends {
49
+ } ? readonly TCodecTypes[CId]['output'][] : MongoModelsMap<TContract>[ModelName]['fields'][K] extends {
50
50
  readonly type: {
51
51
  readonly kind: 'scalar';
52
52
  readonly codecId: infer CId extends string & keyof TCodecTypes;
53
53
  };
54
54
  readonly nullable: true;
55
- } ? TCodecTypes[CId]['output'] | null : TContract['models'][ModelName]['fields'][K] extends {
55
+ } ? TCodecTypes[CId]['output'] | null : MongoModelsMap<TContract>[ModelName]['fields'][K] extends {
56
56
  readonly type: {
57
57
  readonly kind: 'scalar';
58
58
  readonly codecId: infer CId extends string & keyof TCodecTypes;
@@ -70,12 +70,13 @@ type FieldExpression<T = unknown> = {
70
70
  addToSet(value: T extends readonly (infer E)[] ? E : unknown): FieldOperation;
71
71
  pop(end: 1 | -1): FieldOperation;
72
72
  } & (T extends number ? NumericOps : unknown);
73
- type HasValueObjects = {
74
- readonly valueObjects?: Record<string, ContractValueObject>;
75
- };
76
- type VOFields<TContract extends HasValueObjects, VOName extends string> = TContract extends {
77
- readonly valueObjects: infer VOs extends Record<string, ContractValueObject>;
78
- } ? 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;
79
80
  type VOScalarFieldKeys<Fields extends Record<string, ContractField>> = { [K in keyof Fields & string]: Fields[K] extends {
80
81
  readonly type: {
81
82
  readonly kind: 'scalar';
@@ -93,7 +94,7 @@ type VODotPaths<TContract extends HasValueObjects, Fields extends Record<string,
93
94
  readonly name: infer N extends string;
94
95
  };
95
96
  } ? VODotPaths<TContract, VOFields<TContract, N>, `${Prefix}${K}.`> : never }[VOValueObjectFieldKeys<Fields>];
96
- 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 {
97
98
  readonly type: {
98
99
  readonly kind: 'valueObject';
99
100
  readonly name: infer N extends string;
@@ -112,85 +113,85 @@ type ResolveDotPathInFields<TContract extends HasValueObjects, Fields extends Re
112
113
  readonly codecId: infer CId extends string & keyof TCodecTypes;
113
114
  };
114
115
  } ? TCodecTypes[CId]['output'] : unknown : never;
115
- 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, {
116
117
  output: unknown;
117
- }> = 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 {
118
119
  readonly type: {
119
120
  readonly kind: 'valueObject';
120
121
  readonly name: infer N extends string;
121
122
  };
122
123
  } ? ResolveDotPathInFields<TContract, VOFields<TContract, N>, Rest, TCodecTypes> : never : never : never;
123
- type FieldAccessor<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models'], TCodecTypes extends Record<string, {
124
+ type FieldAccessor<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof MongoModelsMap<TContract>, TCodecTypes extends Record<string, {
124
125
  output: unknown;
125
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>>);
126
- declare function createFieldAccessor<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models'], TCodecTypes extends Record<string, {
127
+ declare function createFieldAccessor<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof MongoModelsMap<TContract>, TCodecTypes extends Record<string, {
127
128
  output: unknown;
128
129
  }> = ExtractMongoCodecTypes<TContract>>(): FieldAccessor<TContract, ModelName, TCodecTypes>;
129
130
  //#endregion
130
131
  //#region src/types.d.ts
131
132
  type Simplify<T> = T extends unknown ? { [K in keyof T]: T[K] } : never;
132
- type ModelRelations<TContract extends MongoContract, ModelName extends string & keyof TContract['models']> = NonNullable<TContract['models'][ModelName]['relations']>;
133
- 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>];
134
- 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>];
135
- 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>;
136
- 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>;
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>;
137
138
  type RelationTargetModel<TContract extends MongoContract, R> = R extends {
138
139
  readonly to: {
139
- readonly model: infer M extends string & keyof TContract['models'];
140
+ readonly model: infer M extends string & keyof MongoModelsMap<TContract>;
140
141
  };
141
142
  } ? M : never;
142
- type EmbedRelationRowType<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models'], RelKey extends keyof ModelRelations<TContract, ModelName>> = ModelRelations<TContract, ModelName>[RelKey] extends infer R ? R extends {
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 {
143
144
  readonly cardinality: infer C;
144
- } ? ModelRelations<TContract, ModelName>[RelKey] extends ContractReferenceRelation ? never : RelationTargetModel<TContract, R> extends infer To extends string & keyof TContract['models'] ? C extends '1:N' ? ResolvedOutputRow<TContract, To>[] : ResolvedOutputRow<TContract, To> : never : never : never;
145
- 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> };
146
- 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 {
147
148
  readonly discriminator: {
148
149
  readonly field: infer DiscField extends string;
149
150
  };
150
151
  readonly variants: infer V;
151
152
  } ? V extends Record<string, {
152
153
  readonly value: string;
153
- }> ? { [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>;
154
- type InferRootRow<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models']> = VariantRow<TContract, ModelName>;
155
- 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 {
156
157
  readonly variants: infer V extends Record<string, unknown>;
157
158
  } ? keyof V & string : never;
158
- 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 {
159
160
  readonly discriminator: {
160
161
  readonly field: infer DiscField extends string;
161
162
  };
162
163
  readonly variants: infer V;
163
164
  } ? V extends Record<string, {
164
165
  readonly value: string;
165
- }> ? 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>;
166
- 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 infer R ? R extends {
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 {
167
168
  readonly cardinality: infer C;
168
- } ? RelationTargetModel<TContract, R> extends infer To extends string & keyof TContract['models'] ? C extends 'N:1' | '1:1' ? InferFullRow<TContract, To> | null : InferFullRow<TContract, To>[] : never : never : never : never;
169
- 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 };
170
- 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, {
171
172
  output: unknown;
172
- }> = 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 {
173
174
  readonly type: {
174
175
  readonly kind: 'scalar';
175
176
  readonly codecId: infer CId extends string & keyof TCodecTypes;
176
177
  };
177
178
  } ? TCodecTypes[CId]['output'] : unknown };
178
- 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 };
179
180
  type NoIncludes = Pick<Record<string, boolean>, never>;
180
- 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>;
181
- type DefaultModelRow<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models']> = ResolvedOutputRow<TContract, ModelName>;
182
- 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>>>;
183
- 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 {
184
185
  readonly discriminator: {
185
186
  readonly field: infer F extends string;
186
187
  };
187
188
  } ? F : never;
188
- 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>>>;
189
- 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>;
190
191
  //#endregion
191
192
  //#region src/collection.d.ts
192
- type ModelFieldKeys<TContract extends MongoContract, ModelName extends string & keyof TContract['models']> = keyof TContract['models'][ModelName]['fields'] & string;
193
- 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> {
194
195
  /** Narrows to a specific variant, injecting a discriminator filter. */
195
196
  variant<V extends VariantNames<TContract, ModelName>>(variantName: V): MongoCollection<TContract, ModelName, TIncludes, V>;
196
197
  /** Appends equality filters from a plain object. Values are encoded through codecs. */
@@ -250,7 +251,7 @@ interface MongoCollection<TContract extends MongoContractWithTypeMaps<MongoContr
250
251
  update: (u: FieldAccessor<TContract, ModelName>) => FieldOperation[];
251
252
  }): Promise<IncludedRow<TContract, ModelName, TIncludes>>;
252
253
  }
253
- 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>;
254
255
  //#endregion
255
256
  //#region src/collection-state.d.ts
256
257
  interface MongoIncludeExpr {
@@ -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,3 +1,4 @@
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";
@@ -163,12 +164,12 @@ var MongoCollectionImpl = class MongoCollectionImpl {
163
164
  this.#contract = contract;
164
165
  this.#modelName = modelName;
165
166
  this.#executor = executor;
166
- const model = contract.models[modelName];
167
+ const model = contractModels(contract)[modelName];
167
168
  this.#collectionName = resolveCollectionName(model, modelName);
168
169
  this.#state = emptyCollectionState();
169
170
  }
170
171
  variant(variantName) {
171
- const model = this.#contract.models[this.#modelName];
172
+ const model = contractModels(this.#contract)[this.#modelName];
172
173
  if (!model?.discriminator || !model.variants) return this;
173
174
  const variantEntry = model.variants[variantName];
174
175
  if (!variantEntry) return this;
@@ -184,7 +185,7 @@ var MongoCollectionImpl = class MongoCollectionImpl {
184
185
  return this.#clone({ selectedFields: [...this.#state.selectedFields ?? [], ...fields] });
185
186
  }
186
187
  include(relationName) {
187
- const relation = this.#contract.models[this.#modelName].relations?.[relationName];
188
+ const relation = contractModels(this.#contract)[this.#modelName].relations?.[relationName];
188
189
  if (!relation) throw new Error(`Unknown relation "${relationName}" on model "${this.#modelName}"`);
189
190
  if (!("on" in relation)) throw new Error(`Relation "${relationName}" is an embed relation — only reference relations can be included`);
190
191
  const ref = relation;
@@ -192,7 +193,7 @@ var MongoCollectionImpl = class MongoCollectionImpl {
192
193
  const foreignField = ref.on.targetFields[0];
193
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}"`);
194
195
  const targetModelName = ref.to.model;
195
- const targetModel = this.#contract.models[targetModelName];
196
+ const targetModel = contractModels(this.#contract)[targetModelName];
196
197
  if (!targetModel) throw new Error(`Target model "${targetModelName}" not found for relation "${relationName}"`);
197
198
  const includeExpr = {
198
199
  relationName,
@@ -364,7 +365,7 @@ var MongoCollectionImpl = class MongoCollectionImpl {
364
365
  return this.#executor.execute(plan);
365
366
  }
366
367
  #compile() {
367
- const model = this.#contract.models[this.#modelName];
368
+ const model = contractModels(this.#contract)[this.#modelName];
368
369
  if (!model) throw new Error(`Unknown model: "${this.#modelName}".`);
369
370
  return compileMongoQuery(this.#collectionName, this.#state, this.#contract.storage.storageHash, model);
370
371
  }
@@ -383,7 +384,7 @@ var MongoCollectionImpl = class MongoCollectionImpl {
383
384
  return rows;
384
385
  }
385
386
  #modelFields() {
386
- return this.#contract.models[this.#modelName]?.fields ?? {};
387
+ return contractModels(this.#contract)[this.#modelName]?.fields ?? {};
387
388
  }
388
389
  #compileWhereObject(data) {
389
390
  const fields = this.#modelFields();
@@ -400,7 +401,7 @@ var MongoCollectionImpl = class MongoCollectionImpl {
400
401
  if (field.type.kind === "scalar") return new MongoParamRef(value, { codecId: field.type.codecId });
401
402
  if (field.type.kind === "valueObject") {
402
403
  const voName = field.type.name;
403
- const voDef = this.#contract.valueObjects?.[voName];
404
+ const voDef = contractValueObjects(this.#contract)?.[voName];
404
405
  if (!voDef || value === null) return new MongoParamRef(value);
405
406
  if (field.many && Array.isArray(value)) return value.map((item) => this.#wrapValueObject(item, voDef));
406
407
  return this.#wrapValueObject(value, voDef);
@@ -459,7 +460,7 @@ var MongoCollectionImpl = class MongoCollectionImpl {
459
460
  const raw = value.value;
460
461
  if (typeof raw === "object" && raw !== null && !Array.isArray(raw)) {
461
462
  const voName = contractField.type.name;
462
- const voDef = this.#contract.valueObjects?.[voName];
463
+ const voDef = contractValueObjects(this.#contract)?.[voName];
463
464
  if (voDef) return this.#wrapValueObject(raw, voDef);
464
465
  }
465
466
  }
@@ -472,7 +473,7 @@ var MongoCollectionImpl = class MongoCollectionImpl {
472
473
  for (let i = 1; i < parts.length; i++) {
473
474
  if (!currentField || currentField.type.kind !== "valueObject") return value;
474
475
  const voName = currentField.type.name;
475
- const voDef = this.#contract.valueObjects?.[voName];
476
+ const voDef = contractValueObjects(this.#contract)?.[voName];
476
477
  if (!voDef) return value;
477
478
  const partKey = parts[i];
478
479
  currentField = partKey ? voDef.fields[partKey] : void 0;
@@ -482,7 +483,7 @@ var MongoCollectionImpl = class MongoCollectionImpl {
482
483
  const raw = value.value;
483
484
  if (typeof raw === "object" && raw !== null && !Array.isArray(raw)) {
484
485
  const voName = currentField.type.name;
485
- const voDef = this.#contract.valueObjects?.[voName];
486
+ const voDef = contractValueObjects(this.#contract)?.[voName];
486
487
  if (voDef) return this.#wrapValueObject(raw, voDef);
487
488
  }
488
489
  }
@@ -511,7 +512,7 @@ var MongoCollectionImpl = class MongoCollectionImpl {
511
512
  }
512
513
  #injectDiscriminator(data) {
513
514
  if (!this.#variantName) return data;
514
- const model = this.#contract.models[this.#modelName];
515
+ const model = contractModels(this.#contract)[this.#modelName];
515
516
  if (!model?.discriminator || !model.variants) return data;
516
517
  const variantEntry = model.variants[this.#variantName];
517
518
  if (!variantEntry) return data;
@@ -598,8 +599,9 @@ function mongoRaw(options) {
598
599
  const { contract } = options;
599
600
  return { collection(rootName) {
600
601
  const modelName = contract.roots[rootName]?.model;
601
- if (!modelName || !Object.hasOwn(contract.models, modelName)) throw new Error(`Unknown model "${modelName ?? ""}" for root "${rootName}"`);
602
- return createRawMongoCollection(contract.models[modelName].storage.collection ?? modelName, {
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, {
603
605
  target: "mongo",
604
606
  storageHash: contract.storage.storageHash,
605
607
  lane: "mongo-raw"