@prisma-next/mongo-orm 0.3.0-dev.134 → 0.3.0-dev.162

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,24 +1,112 @@
1
- import { ExtractMongoCodecTypes, InferModelRow, MongoContract, MongoContractWithTypeMaps, MongoQueryPlan, MongoTypeMaps } from "@prisma-next/mongo-core";
2
- import { DomainReferenceRelation } from "@prisma-next/contract/types";
3
- import { AsyncIterableResult } from "@prisma-next/runtime-executor";
1
+ import { AsyncIterableResult } from "@prisma-next/framework-components/runtime";
2
+ import { MongoFilterExpr, MongoQueryPlan } from "@prisma-next/mongo-query-ast/execution";
3
+ import { Document, MongoValue } from "@prisma-next/mongo-value";
4
+ import { ExtractMongoCodecTypes, ExtractMongoFieldInputTypes, ExtractMongoFieldOutputTypes, InferModelRow, MongoContract, MongoContractWithTypeMaps, MongoTypeMaps } from "@prisma-next/mongo-contract";
5
+ import { ContractField, ContractReferenceRelation, ContractValueObject } from "@prisma-next/contract/types";
4
6
 
5
- //#region src/types.d.ts
7
+ //#region src/executor.d.ts
6
8
  interface MongoQueryExecutor {
7
9
  execute<Row>(plan: MongoQueryPlan<Row>): AsyncIterableResult<Row>;
8
10
  }
9
- interface MongoOrmOptions<TContract extends MongoContract> {
10
- readonly contract: TContract;
11
- readonly executor: MongoQueryExecutor;
11
+ //#endregion
12
+ //#region src/field-accessor.d.ts
13
+ type UpdateOperator = '$set' | '$unset' | '$inc' | '$mul' | '$push' | '$pull' | '$addToSet' | '$pop';
14
+ interface FieldOperation {
15
+ readonly operator: UpdateOperator;
16
+ readonly field: string;
17
+ readonly value: MongoValue;
12
18
  }
19
+ 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
+ readonly type: {
21
+ readonly kind: 'scalar';
22
+ };
23
+ } ? K : never }[keyof TContract['models'][ModelName]['fields'] & string];
24
+ 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 {
25
+ readonly type: {
26
+ readonly kind: 'valueObject';
27
+ readonly name: string;
28
+ };
29
+ } ? K : never }[keyof TContract['models'][ModelName]['fields'] & string];
30
+ 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>;
31
+ type ResolveFieldType<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models'], K$1 extends keyof TContract['models'][ModelName]['fields'] & string> = K$1 extends keyof ResolvedModelRow<TContract, ModelName> ? ResolvedModelRow<TContract, ModelName>[K$1] : unknown;
32
+ type NumericOps = {
33
+ inc(value: number): FieldOperation;
34
+ mul(value: number): FieldOperation;
35
+ };
36
+ type FieldExpression<T = unknown> = {
37
+ set(value: T): FieldOperation;
38
+ unset(): FieldOperation;
39
+ push(value: T extends readonly (infer E)[] ? E : unknown): FieldOperation;
40
+ pull(match: T extends readonly (infer E)[] ? E | Partial<E> : unknown): FieldOperation;
41
+ addToSet(value: T extends readonly (infer E)[] ? E : unknown): FieldOperation;
42
+ pop(end: 1 | -1): FieldOperation;
43
+ } & (T extends number ? NumericOps : unknown);
44
+ type HasValueObjects = {
45
+ readonly valueObjects?: Record<string, ContractValueObject>;
46
+ };
47
+ type VOFields<TContract extends HasValueObjects, VOName extends string> = TContract extends {
48
+ readonly valueObjects: infer VOs extends Record<string, ContractValueObject>;
49
+ } ? VOName extends keyof VOs ? VOs[VOName]['fields'] : never : never;
50
+ type VOScalarFieldKeys<Fields extends Record<string, ContractField>> = { [K in keyof Fields & string]: Fields[K] extends {
51
+ readonly type: {
52
+ readonly kind: 'scalar';
53
+ };
54
+ } ? K : never }[keyof Fields & string];
55
+ type VOValueObjectFieldKeys<Fields extends Record<string, ContractField>> = { [K in keyof Fields & string]: Fields[K] extends {
56
+ readonly type: {
57
+ readonly kind: 'valueObject';
58
+ readonly name: string;
59
+ };
60
+ } ? K : never }[keyof Fields & string];
61
+ type VODotPaths<TContract extends HasValueObjects, Fields extends Record<string, ContractField>, Prefix extends string> = { [K in VOScalarFieldKeys<Fields>]: `${Prefix}${K}` }[VOScalarFieldKeys<Fields>] | { [K in VOValueObjectFieldKeys<Fields>]: Fields[K] extends {
62
+ readonly type: {
63
+ readonly kind: 'valueObject';
64
+ readonly name: infer N extends string;
65
+ };
66
+ } ? VODotPaths<TContract, VOFields<TContract, N>, `${Prefix}${K}.`> : never }[VOValueObjectFieldKeys<Fields>];
67
+ type DotPath<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models']> = { [K in ValueObjectFieldKeys<TContract, ModelName>]: TContract['models'][ModelName]['fields'][K] extends {
68
+ readonly type: {
69
+ readonly kind: 'valueObject';
70
+ readonly name: infer N extends string;
71
+ };
72
+ } ? VODotPaths<TContract, VOFields<TContract, N>, `${K}.`> : never }[ValueObjectFieldKeys<TContract, ModelName>];
73
+ type ResolveDotPathInFields<TContract extends HasValueObjects, Fields extends Record<string, ContractField>, Path extends string, TCodecTypes extends Record<string, {
74
+ output: unknown;
75
+ }>> = Path extends `${infer Head}.${infer Rest}` ? Head extends keyof Fields & string ? Fields[Head] extends {
76
+ readonly type: {
77
+ readonly kind: 'valueObject';
78
+ readonly name: infer N extends string;
79
+ };
80
+ } ? ResolveDotPathInFields<TContract, VOFields<TContract, N>, Rest, TCodecTypes> : never : never : Path extends keyof Fields & string ? Fields[Path] extends {
81
+ readonly type: {
82
+ readonly kind: 'scalar';
83
+ readonly codecId: infer CId extends string & keyof TCodecTypes;
84
+ };
85
+ } ? TCodecTypes[CId]['output'] : unknown : never;
86
+ type ResolveDotPathType<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models'], Path extends string, TCodecTypes extends Record<string, {
87
+ output: unknown;
88
+ }> = ExtractMongoCodecTypes<TContract>> = Path extends `${infer Head}.${infer Rest}` ? Head extends keyof TContract['models'][ModelName]['fields'] & string ? TContract['models'][ModelName]['fields'][Head] extends {
89
+ readonly type: {
90
+ readonly kind: 'valueObject';
91
+ readonly name: infer N extends string;
92
+ };
93
+ } ? ResolveDotPathInFields<TContract, VOFields<TContract, N>, Rest, TCodecTypes> : never : never : never;
94
+ 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>>);
95
+ declare function createFieldAccessor<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models']>(): FieldAccessor<TContract, ModelName>;
96
+ //#endregion
97
+ //#region src/types.d.ts
13
98
  type Simplify<T> = T extends unknown ? { [K in keyof T]: T[K] } : never;
99
+ type SimplifyDeep<T> = T extends readonly (infer E)[] ? SimplifyDeep<E>[] : T extends Date | RegExp | ((...args: never[]) => unknown) ? T : T extends object ? T extends unknown ? { [K in keyof T]: SimplifyDeep<T[K]> } : never : T;
14
100
  type ModelRelations<TContract extends MongoContract, ModelName extends string & keyof TContract['models']> = NonNullable<TContract['models'][ModelName]['relations']>;
15
- type ReferenceRelationKeys<TContract extends MongoContract, ModelName extends string & keyof TContract['models']> = { [K in keyof ModelRelations<TContract, ModelName>]: ModelRelations<TContract, ModelName>[K] extends DomainReferenceRelation ? K : never }[keyof ModelRelations<TContract, ModelName>];
16
- type EmbedRelationKeys<TContract extends MongoContract, ModelName extends string & keyof TContract['models']> = { [K in keyof ModelRelations<TContract, ModelName>]: ModelRelations<TContract, ModelName>[K] extends DomainReferenceRelation ? never : K }[keyof ModelRelations<TContract, ModelName>];
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>;
17
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 {
18
106
  readonly to: infer To extends string & keyof TContract['models'];
19
107
  readonly cardinality: infer C;
20
- } ? ModelRelations<TContract, ModelName>[RelKey] extends DomainReferenceRelation ? never : C extends '1:N' ? InferModelRow<TContract, To>[] : InferModelRow<TContract, To> : never;
21
- type InferFullRow<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models']> = EmbedRelationKeys<TContract, ModelName> extends never ? InferModelRow<TContract, ModelName> : InferModelRow<TContract, ModelName> & { -readonly [K in EmbedRelationKeys<TContract, ModelName> & keyof ModelRelations<TContract, ModelName>]: EmbedRelationRowType<TContract, ModelName, K> };
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> };
22
110
  type VariantRow<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models']> = TContract['models'][ModelName] extends {
23
111
  readonly discriminator: {
24
112
  readonly field: infer DiscField extends string;
@@ -28,7 +116,18 @@ type VariantRow<TContract extends MongoContractWithTypeMaps<MongoContract, Mongo
28
116
  readonly value: string;
29
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>;
30
118
  type InferRootRow<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models']> = VariantRow<TContract, ModelName>;
31
- type IncludeRelationRowType<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models'], RelKey extends keyof ModelRelations<TContract, ModelName>> = ModelRelations<TContract, ModelName>[RelKey] extends DomainReferenceRelation ? ModelRelations<TContract, ModelName>[RelKey] extends {
119
+ type VariantNames<TContract extends MongoContract, ModelName extends string & keyof TContract['models']> = TContract['models'][ModelName] extends {
120
+ readonly variants: infer V extends Record<string, unknown>;
121
+ } ? 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 {
123
+ readonly discriminator: {
124
+ readonly field: infer DiscField extends string;
125
+ };
126
+ readonly variants: infer V;
127
+ } ? V extends Record<string, {
128
+ 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 {
32
131
  readonly to: infer To extends string & keyof TContract['models'];
33
132
  readonly cardinality: infer C;
34
133
  } ? C extends 'N:1' | '1:1' ? InferFullRow<TContract, To> | null : InferFullRow<TContract, To>[] : never : never;
@@ -36,20 +135,141 @@ type IncludeResultFields<TContract extends MongoContractWithTypeMaps<MongoContra
36
135
  type MongoWhereFilter<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models'], TCodecTypes extends Record<string, {
37
136
  output: unknown;
38
137
  }> = ExtractMongoCodecTypes<TContract>> = { readonly [K in keyof TContract['models'][ModelName]['fields']]?: TContract['models'][ModelName]['fields'][K] extends {
39
- readonly codecId: infer CId extends string & keyof TCodecTypes;
138
+ readonly type: {
139
+ readonly kind: 'scalar';
140
+ readonly codecId: infer CId extends string & keyof TCodecTypes;
141
+ };
40
142
  } ? TCodecTypes[CId]['output'] : unknown };
41
143
  type MongoIncludeSpec<TContract extends MongoContract, ModelName extends string & keyof TContract['models']> = { readonly [K in ReferenceRelationKeys<TContract, ModelName>]?: true };
42
- interface MongoFindManyOptions<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models'], TInclude extends MongoIncludeSpec<TContract, ModelName> = Record<string, never>> {
43
- readonly where?: MongoWhereFilter<TContract, ModelName>;
44
- readonly include?: TInclude;
144
+ 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 {
149
+ readonly discriminator: {
150
+ readonly field: infer F extends string;
151
+ };
152
+ } ? 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>;
155
+ //#endregion
156
+ //#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> {
159
+ /** Narrows to a specific variant, injecting a discriminator filter. */
160
+ variant<V$1 extends VariantNames<TContract, ModelName>>(variantName: V$1): MongoCollection<TContract, ModelName, TIncludes, V$1>;
161
+ /** Appends equality filters from a plain object. Values are encoded through codecs. */
162
+ where(filter: MongoWhereFilter<TContract, ModelName>): MongoCollection<TContract, ModelName, TIncludes, TVariant>;
163
+ /** Appends a filter condition from a raw filter expression. */
164
+ where(filter: MongoFilterExpr): MongoCollection<TContract, ModelName, TIncludes, TVariant>;
165
+ /** Restricts returned fields to the given subset. Returns a new immutable collection. */
166
+ select(...fields: ModelFieldKeys<TContract, ModelName>[]): MongoCollection<TContract, ModelName, TIncludes, TVariant>;
167
+ /** Adds a `$lookup` for a reference relation. Returns a new immutable collection. */
168
+ include<K$1 extends ReferenceRelationKeys<TContract, ModelName> & string>(relationName: K$1): MongoCollection<TContract, ModelName, TIncludes & Record<K$1, true>, TVariant>;
169
+ /** Sets sort order. Returns a new immutable collection. */
170
+ orderBy(spec: Partial<Record<ModelFieldKeys<TContract, ModelName>, 1 | -1>>): MongoCollection<TContract, ModelName, TIncludes, TVariant>;
171
+ /** Limits the number of results. Returns a new immutable collection. */
172
+ take(n: number): MongoCollection<TContract, ModelName, TIncludes, TVariant>;
173
+ /** Skips the first `n` results. Returns a new immutable collection. */
174
+ skip(n: number): MongoCollection<TContract, ModelName, TIncludes, TVariant>;
175
+ /** Executes the query and returns all matching rows as an async iterable. */
176
+ all(): AsyncIterableResult<IncludedRow<TContract, ModelName, TIncludes>>;
177
+ /** Executes the query with limit 1. Returns the first matching row or `null`. */
178
+ first(): Promise<IncludedRow<TContract, ModelName, TIncludes> | null>;
179
+ /** Returns the input data with the server-assigned `_id`. Does not re-read the stored document. */
180
+ create(data: ResolvedCreateInput<TContract, ModelName, TVariant>): Promise<IncludedRow<TContract, ModelName, TIncludes>>;
181
+ /** Returns input rows with server-assigned `_id`s. Does not re-read stored documents. */
182
+ createAll(data: ReadonlyArray<ResolvedCreateInput<TContract, ModelName, TVariant>>): AsyncIterableResult<IncludedRow<TContract, ModelName, TIncludes>>;
183
+ /** Inserts multiple documents and returns the number inserted. */
184
+ createCount(data: ReadonlyArray<ResolvedCreateInput<TContract, ModelName, TVariant>>): Promise<number>;
185
+ /** Updates one matching document via `findOneAndUpdate`. Returns the updated document or `null`. Requires `.where()`. */
186
+ update(data: Partial<DefaultModelRow<TContract, ModelName>>): Promise<IncludedRow<TContract, ModelName, TIncludes> | null>;
187
+ /** Updates one matching document using field operations from a callback. Requires `.where()`. */
188
+ update(callback: (u: FieldAccessor<TContract, ModelName>) => FieldOperation[]): Promise<IncludedRow<TContract, ModelName, TIncludes> | null>;
189
+ /** Non-atomic: captures matching `_id`s, updates, then re-reads by `_id`. Requires `.where()`. */
190
+ updateAll(data: Partial<DefaultModelRow<TContract, ModelName>>): AsyncIterableResult<IncludedRow<TContract, ModelName, TIncludes>>;
191
+ /** Updates all matching documents using field operations from a callback. Requires `.where()`. */
192
+ updateAll(callback: (u: FieldAccessor<TContract, ModelName>) => FieldOperation[]): AsyncIterableResult<IncludedRow<TContract, ModelName, TIncludes>>;
193
+ /** Updates all matching documents and returns the number modified. Requires `.where()`. */
194
+ updateCount(data: Partial<DefaultModelRow<TContract, ModelName>>): Promise<number>;
195
+ /** Updates all matching documents using field operations and returns the number modified. Requires `.where()`. */
196
+ updateCount(callback: (u: FieldAccessor<TContract, ModelName>) => FieldOperation[]): Promise<number>;
197
+ /** Deletes one matching document via `findOneAndDelete`. Returns the deleted document or `null`. Requires `.where()`. */
198
+ delete(): Promise<IncludedRow<TContract, ModelName, TIncludes> | null>;
199
+ /** Non-atomic: reads matching docs then deletes them. Concurrent writes may cause stale results. Requires `.where()`. */
200
+ deleteAll(): AsyncIterableResult<IncludedRow<TContract, ModelName, TIncludes>>;
201
+ /** Deletes all matching documents and returns the number deleted. Requires `.where()`. */
202
+ deleteCount(): Promise<number>;
203
+ /**
204
+ * On insert: `update` fields are applied via `$set`, remaining `create` fields via `$setOnInsert`.
205
+ * This means `update` values take precedence over `create` for overlapping fields on insert.
206
+ * Requires `.where()`.
207
+ */
208
+ upsert(input: {
209
+ create: ResolvedCreateInput<TContract, ModelName, TVariant>;
210
+ update: Partial<DefaultModelRow<TContract, ModelName>>;
211
+ }): Promise<IncludedRow<TContract, ModelName, TIncludes>>;
212
+ /** Upsert using field operations callback for the update part. Requires `.where()`. */
213
+ upsert(input: {
214
+ create: ResolvedCreateInput<TContract, ModelName, TVariant>;
215
+ update: (u: FieldAccessor<TContract, ModelName>) => FieldOperation[];
216
+ }): Promise<IncludedRow<TContract, ModelName, TIncludes>>;
45
217
  }
46
- 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 };
47
- interface MongoCollection<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models']> {
48
- findMany<TInclude extends MongoIncludeSpec<TContract, ModelName> = Record<string, never>>(options?: MongoFindManyOptions<TContract, ModelName, TInclude>): AsyncIterableResult<InferRootRow<TContract, ModelName> & IncludeResultFields<TContract, ModelName, TInclude>>;
218
+ declare function createMongoCollection<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>, ModelName extends string & keyof TContract['models']>(contract: TContract, modelName: ModelName, executor: MongoQueryExecutor): MongoCollection<TContract, ModelName>;
219
+ //#endregion
220
+ //#region src/collection-state.d.ts
221
+ interface MongoIncludeExpr {
222
+ readonly relationName: string;
223
+ readonly from: string;
224
+ readonly localField: string;
225
+ readonly foreignField: string;
226
+ readonly cardinality: '1:1' | 'N:1' | '1:N' | 'M:N';
49
227
  }
228
+ interface MongoCollectionState {
229
+ readonly filters: readonly MongoFilterExpr[];
230
+ readonly includes: readonly MongoIncludeExpr[];
231
+ readonly orderBy: Readonly<Record<string, 1 | -1>> | undefined;
232
+ readonly selectedFields: readonly string[] | undefined;
233
+ readonly limit: number | undefined;
234
+ readonly offset: number | undefined;
235
+ }
236
+ //#endregion
237
+ //#region src/compile.d.ts
238
+ declare function compileMongoQuery<Row = unknown>(collection: string, state: MongoCollectionState, storageHash: string): MongoQueryPlan<Row>;
50
239
  //#endregion
51
240
  //#region src/mongo-orm.d.ts
241
+ interface MongoOrmOptions<TContract extends MongoContract> {
242
+ readonly contract: TContract;
243
+ readonly executor: MongoQueryExecutor;
244
+ }
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 };
52
246
  declare function mongoOrm<TContract extends MongoContractWithTypeMaps<MongoContract, MongoTypeMaps>>(options: MongoOrmOptions<TContract>): MongoOrmClient<TContract>;
53
247
  //#endregion
54
- export { type IncludeResultFields, type InferFullRow, type InferRootRow, type MongoCollection, type MongoFindManyOptions, type MongoIncludeSpec, type MongoOrmClient, type MongoOrmOptions, type MongoQueryExecutor, type MongoWhereFilter, mongoOrm };
248
+ //#region src/raw-collection.d.ts
249
+ interface Buildable<Row = unknown> {
250
+ build(): MongoQueryPlan<Row>;
251
+ }
252
+ interface RawMongoCollection {
253
+ aggregate<Row = Record<string, unknown>>(pipeline: ReadonlyArray<Document>): Buildable<Row>;
254
+ insertOne(document: Document): Buildable;
255
+ insertMany(documents: ReadonlyArray<Document>): Buildable;
256
+ updateOne(filter: Document, update: Document | ReadonlyArray<Document>): Buildable;
257
+ updateMany(filter: Document, update: Document | ReadonlyArray<Document>): Buildable;
258
+ deleteOne(filter: Document): Buildable;
259
+ deleteMany(filter: Document): Buildable;
260
+ findOneAndUpdate(filter: Document, update: Document | ReadonlyArray<Document>, options?: {
261
+ upsert?: boolean;
262
+ }): Buildable;
263
+ findOneAndDelete(filter: Document): Buildable;
264
+ }
265
+ //#endregion
266
+ //#region src/mongo-raw.d.ts
267
+ interface MongoRawClient<TContract extends MongoContract> {
268
+ collection<K$1 extends keyof TContract['roots'] & string>(rootName: K$1): RawMongoCollection;
269
+ }
270
+ declare function mongoRaw<TContract extends MongoContract>(options: {
271
+ contract: TContract;
272
+ }): MongoRawClient<TContract>;
273
+ //#endregion
274
+ export { type CreateInput, type DefaultModelRow, type DotPath, type FieldAccessor, type FieldExpression, type FieldOperation, type IncludeResultFields, type IncludedRow, type InferFullRow, type InferRootRow, type MongoCollection, type MongoIncludeSpec, type MongoOrmClient, type MongoOrmOptions, type MongoQueryExecutor, type MongoRawClient, type MongoWhereFilter, type NoIncludes, type RawMongoCollection, type ResolveDotPathType, type ResolvedCreateInput, type SimplifyDeep, type UpdateOperator, type VariantCreateInput, type VariantModelRow, type VariantNames, compileMongoQuery, createFieldAccessor, createMongoCollection, mongoOrm, mongoRaw };
55
275
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/mongo-orm.ts"],"sourcesContent":[],"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"],"sourcesContent":[],"mappings":"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AmB,KEoClD,iBFpCkD,CAAA,kBEqC1C,aFrC0C,EAAA,kBAAA,MAAA,GAAA,MEsC3B,SFtC2B,CAAA,QAAA,CAAA,CAAA,GAAA,cEwChD,eAAe,WAAW,aAAa,eACjD,WACA,WACA,WAAW,oCAET,UACE,eAAe,WAAW;KAE7B,oCACe,0BAA0B,eAAe,iDAC1B,4CACV,6BAA6B,aAClD,cAAc,WAAW,aACzB,wBAAwB,6BAA6B,+BD3C7C,MC6CkB,4BD7CJ,CC6CiC,SD7CjC,CAAA,CC6C4C,SD7C5C,CAAA,GC6CyD,4BD7CzD,CC6CsF,SD7CtF,CAAA,CC6CiG,SD7CjG,CAAA,CC6C4G,CD7C5G,CAAA,EAU1B,GCqCM,aDrCW,CCqCG,SDrCW,ECqCA,SDpCV,CAAA;AAGpB,KCmCI,gBD/BA,CAAe,kBCgCA,yBDhCA,CCgC0B,aDhC1B,ECgCyC,aDhCzC,CAAA,EAAA,kBAAA,MAAA,GAAA,MCiCe,SDjCf,CAAA,QAAA,CAAA,CAAA,GAAA,MAAA,SAAA,MCkCK,2BDlCL,CCkCiC,SDlCjC,CAAA,GCmChB,aDnCgB,CCmCF,SDnCE,ECmCS,SDnCT,CAAA,GCoChB,SDpCgB,SAAA,MCoCQ,2BDpCR,CCoCoC,SDpCpC,CAAA,GAAA,kBACA,MCqCU,2BDrCV,CCqCsC,SDrCtC,CAAA,CCqCiD,SDrCjD,CAAA,GCqC8D,2BDrC9D,CCqC0F,SDrC1F,CAAA,CCqCqG,SDrCrG,CAAA,CCqCgH,CDrChH,CAAA,EACe,GCsC7B,aDtC6B,CCsCf,SDtCe,ECsCJ,SDtCI,CAAA;KCwC9B,oBDtCS,CAAA,kBCuCM,yBDvCN,CCuCgC,aDvChC,ECuC+C,aDvC/C,CAAA,EAAA,kBAAA,MAAA,GAAA,MCwCqB,SDxCrB,CAAA,QAAA,CAAA,EAAA,eAAA,MCyCS,cDzCT,CCyCwB,SDzCxB,ECyCmC,SDzCnC,CAAA,CAAA,GC0CV,cD1CU,CC0CK,SD1CL,EC0CgB,SD1ChB,CAAA,CC0C2B,MD1C3B,CAAA,SAAA;EAAoB,SAAA,EAAA,EAAA,KAAA,YAAA,MAAA,GAAA,MC2Ca,SD3Cb,CAAA,QAAA,CAAA;EACrB,SAAA,WAAA,EAAA,KAAA,EAAA;CAAoB,GC6C7B,cD7C6B,CC6Cd,SD7Cc,EC6CH,SD7CG,CAAA,CC6CQ,MD7CR,CAAA,SC6CwB,yBD7CxB,GAAA,KAAA,GAAA,CAAA,SAAA,KAAA,GCgDzB,iBDhDyB,CCgDP,SDhDO,ECgDI,EDhDJ,CAAA,EAAA,GCiDzB,iBDjDyB,CCiDP,SDjDO,ECiDI,EDjDJ,CAAA,GAAA,KAAA;AAAqB,KCoD1C,YDpD0C,CAAA,kBCqDlC,yBDrDkC,CCqDR,aDrDQ,ECqDO,aDrDP,CAAA,EAAA,kBAAA,MAAA,GAAA,MCsDnB,SDtDmB,CAAA,QAAA,CAAA,CAAA,GCuDlD,iBDvDkD,CCuDhC,SDvDgC,ECuDrB,SDvDqB,CAAA,SAAA,KAAA,GCwDlD,iBDxDkD,CCwDhC,SDxDgC,ECwDrB,SDxDqB,CAAA,GCyDlD,iBDzDkD,CCyDhC,SDzDgC,ECyDrB,SDzDqB,CAAA,GAAA,kBC0DhC,iBDvDhB,CCuDkC,SDvDlC,ECuD6C,SDvD7C,CAAA,GAAA,MCwDQ,cDxDR,CCwDuB,SDxDvB,ECwDkC,SDxDlC,CAAA,GCwD+C,oBDxD/C,CCwDoE,SDxDpE,ECwD+E,SDxD/E,ECwD0F,CDxD1F,CAAA,EAEE;KCyDH,UDzDuB,CAAA,kBC0DR,yBD1DQ,CC0DkB,aD1DlB,EC0DiC,aD1DjC,CAAA,EAAA,kBAAA,MAAA,GAAA,MC2DO,SD3DP,CAAA,QAAA,CAAA,CAAA,GC4DxB,SD5DwB,CAAA,QAAA,CAAA,CC4DJ,SD5DI,CAAA,SAAA;EAAS,SAAA,aAAA,EAAA;IAEhC,SAAA,KAAA,EAAA,KAAoB,mBAAA,MAAA;EACL,CAAA;EACe,SAAA,QAAA,EAAA,KAAA,EAAA;CAErB,GAAA,CAAA,SC0DA,MD1DA,CAAA,MAAA,EAAA;EAAoB,SAAA,KAAA,EAAA,MAAA;CACrB,CAAA,GAAA,SAAoB,MC2DZ,CD3DY,GC2DR,ED3DQ,SAAA,MAAA,GAAA,MC2DkB,SD3DlB,CAAA,QAAA,CAAA,GC4DrB,QD5DqB,CC6DnB,ID7DmB,CC6Dd,YD7Dc,CC6DD,SD7DC,EC6DU,SD7DV,CAAA,EC6DsB,SD7DtB,CAAA,GC8DjB,YD9DiB,CC8DJ,SD9DI,EC8DO,ED9DP,CAAA,GC+DjB,MD/DiB,CC+DV,SD/DU,EC+DC,CD/DD,CC+DG,ED/DH,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA,GAAA,KAAA,EAAqB,CAAA,MCkExC,CDlEwC,CAAA,GCmEhD,YDnEgD,CCmEnC,SDnEmC,ECmExB,SDnEwB,CAAA,GCoElD,YDpEkD,CCoErC,SDpEqC,ECoE1B,SDpE0B,CAAA;AAGhD,KCmEM,YDnEN,CAAA,kBCoEc,yBDpEd,CCoEwC,aDpExC,ECoEuD,aDpEvD,CAAA,EAAA,kBAAA,MAAA,GAAA,MCqE6B,SDrE7B,CAAA,QAAA,CAAA,CAAA,GCsEF,UDtEE,CCsES,SDtET,ECsEoB,SDtEpB,CAAA;AAEE,KCsEI,YDtEJ,CAAA,kBCuEY,aDvEZ,EAAA,kBAAA,MAAA,GAAA,MCwE2B,SDxE3B,CAAA,QAAA,CAAA,CAAA,GCyEJ,SDzEI,CAAA,QAAA,CAAA,CCyEgB,SDzEhB,CAAA,SAAA;EAAoB,SAAA,QAAA,EAAA,KAAA,WC0ES,MD1ET,CAAA,MAAA,EAAA,OAAA,CAAA;CAAS,GAAA,MC4E3B,CD5E2B,GAAA,MAAA,GAAA,KAAA;AAEhC,KC6EO,eD7ES,CAAA,kBC8ED,yBD9EC,CC8EyB,aD9EzB,EC8EwC,aD9ExC,CAAA,EAAA,kBAAA,MAAA,GAAA,MC+Ec,SD/Ed,CAAA,QAAA,CAAA,EAAA,oBAAA,MAAA,CAAA,GCiFjB,SDjFiB,CAAA,QAAA,CAAA,CCiFG,SDjFH,CAAA,SAAA;EACyB,SAAA,aAAA,EAAA;IAAe,SAAA,KAAA,EAAA,KAAA,mBAAA,MAAA;EAAzC,CAAA;EACe,SAAA,QAAA,EAAA,KAAA,EAAA;CACmB,GAAA,CAAA,SCkFxC,MDlFwC,CAAA,MAAA,EAAA;EAA7B,SAAA,KAAA,EAAA,MAAA;CACP,CAAA,GCkFZ,WDlFY,SAAA,MCkFc,CDlFd,GAAA,MAAA,GAAA,MCkFiC,SDlFjC,CAAA,QAAA,CAAA,GCmFV,QDnFU,CCoFR,IDpFQ,CCoFH,YDpFG,CCoFU,SDpFV,ECoFqB,SDpFrB,CAAA,ECoFiC,SDpFjC,CAAA,GCqFN,YDrFM,CCqFO,SDrFP,ECqFkB,WDrFlB,CAAA,GCsFN,MDtFM,CCsFC,SDtFD,ECsFY,CDtFZ,CCsFc,WDtFd,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA,GCwFV,YDxFU,CCwFG,SDxFH,ECwFc,SDxFd,CAAA,GCyFZ,YDzFY,CCyFC,SDzFD,ECyFY,SDzFZ,CAAA,GC0Fd,YD1Fc,CC0FD,SD1FC,EC0FU,SD1FV,CAAA;KC4Fb,sBD5FwB,CAAA,kBC6FT,yBD7FS,CC6FiB,aD7FjB,EC6FgC,aD7FhC,CAAA,EAAA,kBAAA,MAAA,GAAA,MC8FM,SD9FN,CAAA,QAAA,CAAA,EAAA,eAAA,MC+FN,cD/FM,CC+FS,SD/FT,EC+FoB,SD/FpB,CAAA,CAAA,GCgGzB,cDhGyB,CCgGV,SDhGU,ECgGC,SDhGD,CAAA,CCgGY,MDhGZ,CAAA,SCgG4B,yBDhG5B,GCiGzB,cDjGyB,CCiGV,SDjGU,ECiGC,SDjGD,CAAA,CCiGY,MDjGZ,CAAA,SAAA;EAAzB,SAAA,EAAA,EAAA,KAAA,YAAA,MAAA,GAAA,MCkG+C,SDlG/C,CAAA,QAAA,CAAA;EACA,SAAA,WAAA,EAAA,KAAA,EAAA;CAAqD,GAAA,CAAA,SAAA,KAAA,GAAA,KAAA,GCqGjD,YDrGiD,CCqGpC,SDrGoC,ECqGzB,EDrGyB,CAAA,GAAA,IAAA,GCsGjD,YDtGiD,CCsGpC,SDtGoC,ECsGzB,EDtGyB,CAAA,EAAA,GAAA,KAAA,GAAA,KAAA;AAA7B,KC0GhB,mBD1GgB,CAAA,kBC2GR,yBD3GQ,CC2GkB,aD3GlB,EC2GiC,aD3GjC,CAAA,EAAA,kBAAA,MAAA,GAAA,MC4GO,SD5GP,CAAA,QAAA,CAAA,EAAA,iBC6GT,gBD7GS,CC6GQ,SD7GR,EC6GmB,SD7GnB,CAAA,CAAA,GAAA,kBAE+B,MC6GnC,QD7GmC,GAAA,MAAA,IC6Gd,QD7Gc,CC6GL,CD7GK,CAAA,SAAA,IAAA,GC8GrD,CD9GqD,GAAA,KAAA,GC+G7C,CD/G6C,SAAA,MC+G7B,cD/G6B,CC+Gd,SD/Gc,EC+GH,SD/GG,CAAA,GCgHrD,sBDhHqD,CCgH9B,SDhH8B,ECgHnB,SDhHmB,ECgHR,CDhHQ,CAAA,GAAA,KAAA,EAA7B;AAAwC,KCoH1D,gBDpH0D,CAAA,kBCqHlD,yBDrHkD,CCqHxB,aDrHwB,ECqHT,aDrHS,CAAA,EAAA,kBAAA,MAAA,GAAA,MCsHnC,SDtHmC,CAAA,QAAA,CAAA,EAAA,oBCuHhD,MDvHgD,CAAA,MAAA,EAAA;EAA0C,MAAA,EAAA,OAAA;CAA7B,CAAA,GCuHvB,sBDvHuB,CCuHA,SDvHA,CAAA,CAAA,GAAA,iBAAwC,MCyHpG,SDzHoG,CAAA,QAAA,CAAA,CCyHhF,SDzHgF,CAAA,CAAA,QAAA,CAAA,ICyHxD,SDzHwD,CAAA,QAAA,CAAA,CCyHpC,SDzHoC,CAAA,CAAA,QAAA,CAAA,CCyHf,CDzHe,CAAA,SAAA;EAAW,SAAA,IAAA,EAAA;IAElH,SAAA,IAAA,EAAA,QAAA;IAAW,SAAA,OAAA,EAAA,KAAA,aAAA,MAAA,GAAA,MC0H0B,WD1H1B;EAAzB,CAAA;AAAa,CAAA,GC6Hb,WD7Ha,CC6HD,GD7HC,CAAA,CAAA,QAAA,CAAA,GAAA,OAAA,EAAA;AAG2B,KC8HlC,gBD9HkC,CAAA,kBC+H1B,aD/H0B,EAAA,kBAAA,MAAA,GAAA,MCgIX,SDhIW,CAAA,QAAA,CAAA,CAAA,GAAA,iBCkI7B,qBDlI4C,CCkItB,SDlIsB,ECkIX,SDlIW,CAAA,IAAA,IAAA,EAAzC;AACe,KCoIvB,UAAA,GAAa,IDpIU,CCoIL,MDpIK,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,KAAA,CAAA;AACjB,KCqIN,WDrIM,CAAA,kBCsIE,yBDtIF,CCsI4B,aDtI5B,ECsI2C,aDtI3C,CAAA,EAAA,kBAAA,MAAA,GAAA,MCuIiB,SDvIjB,CAAA,QAAA,CAAA,EAAA,kBCwIE,gBDxIF,CCwImB,SDxInB,ECwI8B,SDxI9B,CAAA,GCwI2C,UDxI3C,CAAA,GCyId,YDzIc,CCyID,SDzIC,ECyIU,SDzIV,CAAA,GCyIuB,mBDzIvB,CCyI2C,SDzI3C,ECyIsD,SDzItD,ECyIiE,SDzIjE,CAAA;AAAoB,KC2I1B,eD3I0B,CAAA,kBC4IlB,yBD5IkB,CC4IQ,aD5IR,EC4IuB,aD5IvB,CAAA,EAAA,kBAAA,MAAA,GAAA,MC6IH,SD7IG,CAAA,QAAA,CAAA,CAAA,GC8IlC,iBD9IkC,CC8IhB,SD9IgB,EC8IL,SD9IK,CAAA;AAClC,KC+IQ,WD/IR,CAAA,kBCgJgB,yBDhJhB,CCgJ0C,aDhJ1C,ECgJyD,aDhJzD,CAAA,EAAA,kBAAA,MAAA,GAAA,MCiJ+B,SDjJ/B,CAAA,QAAA,CAAA,CAAA,GCkJA,IDlJA,CCkJK,gBDlJL,CCkJsB,SDlJtB,ECkJiC,SDlJjC,CAAA,EAAA,KAAA,CAAA,GCmJF,ODnJE,CCoJA,IDpJA,CCqJE,gBDrJF,CCqJmB,SDrJnB,ECqJ8B,SDrJ9B,CAAA,EAAA,KAAA,GAAA,MCsJgB,gBDtJhB,CCsJiC,SDtJjC,ECsJ4C,SDtJ5C,CAAA,CAAA,CAAA;KC0JC,kBD1JgC,CAAA,kBC2JjB,aD3JiB,EAAA,kBAAA,MAAA,GAAA,MC4JF,SD5JE,CAAA,QAAA,CAAA,CAAA,GC6JjC,SD7JiC,CAAA,QAAA,CAAA,CC6Jb,SD7Ja,CAAA,SAAA;EAAW,SAAA,aAAA,EAAA;IAA5B,SAAA,KAAA,EAAA,KAAA,WAAA,MAAA;EACC,CAAA;CAAW,GAAA,CAAA,GAAA,KAAA;AAA5B,KCsKQ,kBDtKR,CAAA,kBCuKgB,yBDvKhB,CCuK0C,aDvK1C,ECuKyD,aDvKzD,CAAA,EAAA,kBAAA,MAAA,GAAA,MCwK+B,SDxK/B,CAAA,QAAA,CAAA,EAAA,oBAAA,MAAA,CAAA,GC0KA,ID1KA,CC2KF,eD3KE,CC2Kc,SD3Kd,EC2KyB,SD3KzB,EC2KoC,WD3KpC,CAAA,EAAA,KAAA,GC4KM,kBD5KN,CC4KyB,SD5KzB,EC4KoC,SD5KpC,CAAA,CAAA,GC8KF,OD9KE,CC+KA,ID/KA,CCgLE,gBDhLF,CCgLmB,SDhLnB,ECgL8B,SDhL9B,CAAA,EAAA,KAAA,GAAA,MCiLgB,gBDjLhB,CCiLiC,SDjLjC,ECiL4C,SDjL5C,CAAA,CAAA,CAAA;AAAuC,KCqL/B,mBDrL+B,CAAA,kBCsLvB,yBDtLuB,CCsLG,aDtLH,ECsLkB,aDtLlB,CAAA,EAAA,kBAAA,MAAA,GAAA,MCuLR,SDvLQ,CAAA,QAAA,CAAA,EAAA,iBAAA,MAAA,CAAA,GAAA,CCyLtC,QDzLsC,CAAA,SAAA,CAAA,KAAA,CAAA,GC0LvC,WD1LuC,CC0L3B,SD1L2B,EC0LhB,SD1LgB,CAAA,GC2LvC,kBD3LuC,CC2LpB,SD3LoB,EC2LT,SD3LS,EC2LE,QD3LF,CAAA;;;KEpBtC,iCACe,gDACe,6BACzB,oBAAoB;AHpDb,UGsDA,eHtDkB,CAAA,kBGuDf,yBHvDe,CGuDW,aHvDX,EGuD0B,aHvD1B,CAAA,EAAA,kBAAA,MAAA,GAAA,MGwDA,SHxDA,CAAA,QAAA,CAAA,EAAA,kBGyDf,gBHzDe,CGyDE,SHzDF,EGyDa,SHzDb,CAAA,GGyD0B,UHzD1B,EAAA,iBAAA,MAAA,GAAA,KAAA,CAAA,CAAA;EACC;EAAf,OAAA,CAAA,YG4DD,YH5DC,CG4DY,SH5DZ,EG4DuB,SH5DvB,CAAA,CAAA,CAAA,WAAA,EG6DJ,GH7DI,CAAA,EG8DhB,eH9DgB,CG8DA,SH9DA,EG8DW,SH9DX,EG8DsB,SH9DtB,EG8DiC,GH9DjC,CAAA;EAA0C;EAApB,KAAA,CAAA,MAAA,EGiE/B,gBHjE+B,CGiEd,SHjEc,EGiEH,SHjEG,CAAA,CAAA,EGkEtC,eHlEsC,CGkEtB,SHlEsB,EGkEX,SHlEW,EGkEA,SHlEA,EGkEW,QHlEX,CAAA;EAAmB;gBGoE9C,kBAAkB,gBAAgB,WAAW,WAAW,WAAW;;oBAGpE,eAAe,WAAW,eACpC,gBAAgB,WAAW,WAAW,WAAW;EF9D1C;EAUK,OAAA,CAAA,YEsDG,qBFrDC,CEqDqB,SFnDxB,EEmDmC,SFnDzB,CAAA,GAAA,MAAA,CAAA,CAAA,YAAA,EEoDV,GFpDU,CAAA,EEqDvB,eFrDuB,CEqDP,SFrDO,EEqDI,SFrDJ,EEqDe,SFrDf,GEqD2B,MFrD3B,CEqDkC,GFrDlC,EAAA,IAAA,CAAA,EEqD4C,QFrD5C,CAAA;EAKvB;EACe,OAAA,CAAA,IAAA,EEkDV,OFlDU,CEkDF,MFlDE,CEkDK,cFlDL,CEkDoB,SFlDpB,EEkD+B,SFlD/B,CAAA,EAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EEmDf,eFnDe,CEmDC,SFnDD,EEmDY,SFnDZ,EEmDuB,SFnDvB,EEmDkC,QFnDlC,CAAA;EACe;EAErB,IAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EEkDK,eFlDL,CEkDqB,SFlDrB,EEkDgC,SFlDhC,EEkD2C,SFlD3C,EEkDsD,QFlDtD,CAAA;EAAoB;EACrB,IAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EEmDM,eFnDN,CEmDsB,SFnDtB,EEmDiC,SFnDjC,EEmD4C,SFnD5C,EEmDuD,QFnDvD,CAAA;EAAoB;EAAqB,GAAA,EAAA,EEqD7C,mBFrD6C,CEqDzB,WFrDyB,CEqDb,SFrDa,EEqDF,SFrDE,EEqDS,SFrDT,CAAA,CAAA;EAGhD;EAEE,KAAA,EAAA,EEkDG,OFlDH,CEkDW,WFlDX,CEkDuB,SFlDvB,EEkDkC,SFlDlC,EEkD6C,SFlD7C,CAAA,GAAA,IAAA,CAAA;EAAoB;EAAS,MAAA,CAAA,IAAA,EEqD3B,mBFrD2B,CEqDP,SFrDO,EEqDI,SFrDJ,EEqDe,QFrDf,CAAA,CAAA,EEsDhC,OFtDgC,CEsDxB,WFtDwB,CEsDZ,SFtDY,EEsDD,SFtDC,EEsDU,SFtDV,CAAA,CAAA;EAEhC;EACe,SAAA,CAAA,IAAA,EEsDV,aFtDU,CEsDI,mBFtDJ,CEsDwB,SFtDxB,EEsDmC,SFtDnC,EEsD8C,QFtD9C,CAAA,CAAA,CAAA,EEuDf,mBFvDe,CEuDK,WFvDL,CEuDiB,SFvDjB,EEuD4B,SFvD5B,EEuDuC,SFvDvC,CAAA,CAAA;EACe;EAErB,WAAA,CAAA,IAAA,EEuDJ,aFvDI,CEuDU,mBFvDV,CEuD8B,SFvD9B,EEuDyC,SFvDzC,EEuDoD,QFvDpD,CAAA,CAAA,CAAA,EEwDT,OFxDS,CAAA,MAAA,CAAA;EAAoB;EACrB,MAAA,CAAA,IAAA,EE0DH,OF1DG,CE0DK,eF1DL,CE0DqB,SF1DrB,EE0DgC,SF1DhC,CAAA,CAAA,CAAA,EE2DR,OF3DQ,CE2DA,WF3DA,CE2DY,SF3DZ,EE2DuB,SF3DvB,EE2DkC,SF3DlC,CAAA,GAAA,IAAA,CAAA;EAAoB;EAAqB,MAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EE8DpC,aF9DoC,CE8DtB,SF9DsB,EE8DX,SF9DW,CAAA,EAAA,GE8DI,cF9DJ,EAAA,CAAA,EE+DjD,OF/DiD,CE+DzC,WF/DyC,CE+D7B,SF/D6B,EE+DlB,SF/DkB,EE+DP,SF/DO,CAAA,GAAA,IAAA,CAAA;EAGhD;EAEE,SAAA,CAAA,IAAA,EE6DE,OF7DF,CE6DU,eF7DV,CE6D0B,SF7D1B,EE6DqC,SF7DrC,CAAA,CAAA,CAAA,EE8DH,mBF9DG,CE8DiB,WF9DjB,CE8D6B,SF9D7B,EE8DwC,SF9DxC,EE8DmD,SF9DnD,CAAA,CAAA;EAAoB;EAAS,SAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EEiEnB,aFjEmB,CEiEL,SFjEK,EEiEM,SFjEN,CAAA,EAAA,GEiEqB,cFjErB,EAAA,CAAA,EEkEhC,mBFlEgC,CEkEZ,WFlEY,CEkEA,SFlEA,EEkEW,SFlEX,EEkEsB,SFlEtB,CAAA,CAAA;EAEhC;EACyC,WAAA,CAAA,IAAA,EEiE1B,OFjE0B,CEiElB,eFjEkB,CEiEF,SFjEE,EEiES,SFjET,CAAA,CAAA,CAAA,EEiEuB,OFjEvB,CAAA,MAAA,CAAA;EAAe;EAAzC,WAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EEoEF,aFpEE,CEoEY,SFpEZ,EEoEuB,SFpEvB,CAAA,EAAA,GEoEsC,cFpEtC,EAAA,CAAA,EEqEf,OFrEe,CAAA,MAAA,CAAA;EACe;EACmB,MAAA,EAAA,EEqE1C,OFrE0C,CEqElC,WFrEkC,CEqEtB,SFrEsB,EEqEX,SFrEW,EEqEA,SFrEA,CAAA,GAAA,IAAA,CAAA;EAA7B;EACP,SAAA,EAAA,EEsEH,mBFtEG,CEsEiB,WFtEjB,CEsE6B,SFtE7B,EEsEwC,SFtExC,EEsEmD,SFtEnD,CAAA,CAAA;EAAW;EAAzB,WAAA,EAAA,EEwEa,OFxEb,CAAA,MAAA,CAAA;EACA;;;;;EAEkE,MAAA,CAAA,KAAA,EAAA;IAA0C,MAAA,EE4EpG,mBF5EoG,CE4EhF,SF5EgF,EE4ErE,SF5EqE,EE4E1D,QF5E0D,CAAA;IAA7B,MAAA,EE6EvE,OF7EuE,CE6E/D,eF7E+D,CE6E/C,SF7E+C,EE6EpC,SF7EoC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"}