@warlock.js/cascade 4.0.59 → 4.0.88

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.
@@ -0,0 +1,372 @@
1
+ import type { Infer, ObjectValidator } from "@warlock.js/seal";
2
+ import type { ModelSchema } from "../model/model";
3
+ import { Model } from "../model/model";
4
+ import type { DeleteStrategy, StrictMode } from "../types";
5
+ /**
6
+ * Configuration options for defining a model.
7
+ */
8
+ export type DefineModelOptions<TSchema extends ModelSchema> = {
9
+ /**
10
+ * The database table/collection name.
11
+ */
12
+ table: string;
13
+ /**
14
+ * Model name
15
+ * If provided, it will be registered in the models registery
16
+ */
17
+ name?: string;
18
+ /**
19
+ * The validation schema for the model.
20
+ * Use `v.object()` from @warlock.js/seal to define the schema.
21
+ */
22
+ schema: ObjectValidator;
23
+ /**
24
+ * Optional: Delete strategy for the model.
25
+ * - "hard": Permanently delete records (default)
26
+ * - "soft": Mark records as deleted but keep them in the database
27
+ * - "disable": Mark records as disabled
28
+ */
29
+ deleteStrategy?: DeleteStrategy;
30
+ /**
31
+ * Optional: Strict mode for unknown fields.
32
+ * - "strip": Remove unknown fields (default)
33
+ * - "fail": Throw error on unknown fields
34
+ */
35
+ strictMode?: StrictMode;
36
+ /**
37
+ * Optional: Whether to automatically generate IDs.
38
+ * Default: false (use MongoDB's _id)
39
+ */
40
+ autoGenerateId?: boolean;
41
+ /**
42
+ * Optional: Whether to use random increments for IDs.
43
+ * Default: false
44
+ */
45
+ randomIncrement?: boolean;
46
+ /**
47
+ * Optional: Initial ID value when auto-generating.
48
+ * Default: 1
49
+ */
50
+ initialId?: number;
51
+ /**
52
+ * Optional: Custom instance properties (getters/setters/methods).
53
+ * Define computed properties, custom getters, or instance methods.
54
+ *
55
+ * The `this` context will be the Model instance, giving you access to
56
+ * all Model methods like `get()`, `set()`, `save()`, etc.
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * properties: {
61
+ * get fullName(this: Model<UserSchema>) {
62
+ * return `${this.get("firstName")} ${this.get("lastName")}`;
63
+ * },
64
+ * get isActive(this: Model<UserSchema>) {
65
+ * return this.get("status") === "active";
66
+ * },
67
+ * async sendEmail(this: Model<UserSchema>, subject: string) {
68
+ * // this.get(), this.save(), etc. all work!
69
+ * },
70
+ * }
71
+ * ```
72
+ */
73
+ properties?: ThisType<Model<TSchema>> & Record<string, any>;
74
+ /**
75
+ * Optional: Custom static methods.
76
+ * Define class-level methods like custom finders or utilities.
77
+ *
78
+ * @example
79
+ * ```typescript
80
+ * statics: {
81
+ * async findByEmail(email: string) {
82
+ * return this.first({ email });
83
+ * },
84
+ * async findActive() {
85
+ * return this.query().where("status", "active").get();
86
+ * },
87
+ * }
88
+ * ```
89
+ */
90
+ statics?: Record<string, any>;
91
+ };
92
+ /**
93
+ * Define a model with a clean, concise API.
94
+ *
95
+ * This utility function creates a Model class with the specified configuration,
96
+ * reducing boilerplate and providing a more declarative way to define models.
97
+ *
98
+ * @param options - Model configuration options
99
+ * @returns A Model class with the specified configuration
100
+ *
101
+ * @example
102
+ * ```typescript
103
+ * import { defineModel } from "@warlock.js/cascade";
104
+ * import { v } from "@warlock.js/seal";
105
+ *
106
+ * export const User = defineModel({
107
+ * table: "users",
108
+ * schema: v.object({
109
+ * name: v.string().required().trim(),
110
+ * email: v.string().email().required().lowercase(),
111
+ * password: v.string().required().min(6),
112
+ * role: v.string().default("user"),
113
+ * }),
114
+ * deleteStrategy: "soft",
115
+ * });
116
+ *
117
+ * // Usage
118
+ * const user = await User.create({
119
+ * name: "John Doe",
120
+ * email: "john@example.com",
121
+ * password: "secret123",
122
+ * });
123
+ * ```
124
+ *
125
+ * @example
126
+ * ```typescript
127
+ * // With type inference
128
+ * export const Post = defineModel({
129
+ * table: "posts",
130
+ * schema: v.object({
131
+ * title: v.string().required(),
132
+ * content: v.string().required(),
133
+ * authorId: v.number().required(),
134
+ * published: v.boolean().default(false),
135
+ * }),
136
+ * });
137
+ *
138
+ * // TypeScript knows the exact type!
139
+ * const post = await Post.create({
140
+ * title: "Hello World",
141
+ * content: "My first post",
142
+ * authorId: 1,
143
+ * });
144
+ *
145
+ * console.log(post.title); // ✅ Type-safe!
146
+ * ```
147
+ */
148
+ export declare function defineModel<TSchema extends ModelSchema, TSchemaValidator extends ObjectValidator = ObjectValidator, TProperties extends Record<string, any> = {}, TStatics extends Record<string, any> = {}>(options: DefineModelOptions<TSchema> & {
149
+ schema: TSchemaValidator;
150
+ properties?: ThisType<Model<Infer<TSchemaValidator>>> & TProperties;
151
+ statics?: ThisType<typeof Model<Infer<TSchemaValidator>>> & TStatics;
152
+ }): (new (initialData?: Infer<TSchemaValidator>) => {
153
+ isNew: boolean;
154
+ data: Infer<TSchemaValidator>;
155
+ readonly dirtyTracker: import("..").DatabaseDirtyTracker;
156
+ readonly id: number;
157
+ get<TKey extends string>(field: TKey): Infer<TSchemaValidator>;
158
+ get<TKey_1 extends string>(field: TKey_1, defaultValue: Infer<TSchemaValidator>): Infer<TSchemaValidator>;
159
+ get(field: string): unknown;
160
+ get(field: string, defaultValue: unknown): unknown;
161
+ only<TKey_2 extends string>(fields: TKey_2[]): Record<TKey_2, Infer<TSchemaValidator>>;
162
+ only(fields: string[]): Record<string, unknown>;
163
+ string(key: string, defaultValue?: string): string;
164
+ number(key: string, defaultValue?: number): number;
165
+ boolean(key: string, defaultValue?: boolean): boolean;
166
+ set<TKey_3 extends string>(field: TKey_3, value: Infer<TSchemaValidator>): any;
167
+ set(field: string, value: unknown): any;
168
+ has<TKey_4 extends string>(field: TKey_4): boolean;
169
+ has(field: string): boolean;
170
+ increment<TKey_5 extends string>(field: TKey_5, amount: number): any;
171
+ increment(field: string, amount: number): any;
172
+ decrement<TKey_6 extends string>(field: TKey_6, amount: number): any;
173
+ decrement(field: string, amount: number): any;
174
+ unset(...fields: string[]): any;
175
+ unset(...fields: string[]): any;
176
+ merge(values: Infer<TSchemaValidator>): any;
177
+ merge(values: Record<string, unknown>): any;
178
+ hasChanges(): boolean;
179
+ isDirty(column: string): boolean;
180
+ getDirtyColumnsWithValues(): Record<string, {
181
+ oldValue: unknown;
182
+ newValue: unknown;
183
+ }>;
184
+ getRemovedColumns(): string[];
185
+ getDirtyColumns(): string[];
186
+ emitEvent<TContext = unknown>(event: import("..").ModelEventName, context?: TContext): Promise<void>;
187
+ destroy(options?: {
188
+ strategy?: DeleteStrategy;
189
+ skipEvents?: boolean;
190
+ }): Promise<import("..").RemoverResult>;
191
+ self<TModel extends Model<ModelSchema> = any>(): import("../model/model").ChildModel<TModel>;
192
+ clone(): any;
193
+ deepFreeze<T>(obj: T): T;
194
+ getTableName(): string;
195
+ getPrimaryKey(): string;
196
+ getSchema(): ObjectValidator;
197
+ schemaHas(key: string): boolean;
198
+ getStrictMode(): StrictMode;
199
+ getConnection(): import("..").DataSource;
200
+ readonly embedData: Record<string, unknown>;
201
+ replaceData(data: Record<string, unknown>): void;
202
+ save(options?: import("..").WriterOptions & {
203
+ merge?: Infer<TSchemaValidator>;
204
+ }): Promise<any>;
205
+ serialize(): Record<string, unknown>;
206
+ toJSON(): any;
207
+ } & TProperties) & Omit<{
208
+ new (initialData?: Infer<TSchemaValidator>): {
209
+ isNew: boolean;
210
+ data: Infer<TSchemaValidator>;
211
+ readonly dirtyTracker: import("..").DatabaseDirtyTracker;
212
+ readonly id: number;
213
+ get<TKey extends string>(field: TKey): Infer<TSchemaValidator>;
214
+ get<TKey_1 extends string>(field: TKey_1, defaultValue: Infer<TSchemaValidator>): Infer<TSchemaValidator>;
215
+ get(field: string): unknown;
216
+ get(field: string, defaultValue: unknown): unknown;
217
+ only<TKey_2 extends string>(fields: TKey_2[]): Record<TKey_2, Infer<TSchemaValidator>>;
218
+ only(fields: string[]): Record<string, unknown>;
219
+ string(key: string, defaultValue?: string): string;
220
+ number(key: string, defaultValue?: number): number;
221
+ boolean(key: string, defaultValue?: boolean): boolean;
222
+ set<TKey_3 extends string>(field: TKey_3, value: Infer<TSchemaValidator>): any;
223
+ set(field: string, value: unknown): any;
224
+ has<TKey_4 extends string>(field: TKey_4): boolean;
225
+ has(field: string): boolean;
226
+ increment<TKey_5 extends string>(field: TKey_5, amount: number): any;
227
+ increment(field: string, amount: number): any;
228
+ decrement<TKey_6 extends string>(field: TKey_6, amount: number): any;
229
+ decrement(field: string, amount: number): any;
230
+ unset(...fields: string[]): any;
231
+ unset(...fields: string[]): any;
232
+ merge(values: Infer<TSchemaValidator>): any;
233
+ merge(values: Record<string, unknown>): any;
234
+ hasChanges(): boolean;
235
+ isDirty(column: string): boolean;
236
+ getDirtyColumnsWithValues(): Record<string, {
237
+ oldValue: unknown;
238
+ newValue: unknown;
239
+ }>;
240
+ getRemovedColumns(): string[];
241
+ getDirtyColumns(): string[];
242
+ emitEvent<TContext = unknown>(event: import("..").ModelEventName, context?: TContext): Promise<void>;
243
+ destroy(options?: {
244
+ strategy?: DeleteStrategy;
245
+ skipEvents?: boolean;
246
+ }): Promise<import("..").RemoverResult>;
247
+ self<TModel extends Model<ModelSchema> = any>(): import("../model/model").ChildModel<TModel>;
248
+ clone(): any;
249
+ deepFreeze<T>(obj: T): T;
250
+ getTableName(): string;
251
+ getPrimaryKey(): string;
252
+ getSchema(): ObjectValidator;
253
+ schemaHas(key: string): boolean;
254
+ getStrictMode(): StrictMode;
255
+ getConnection(): import("..").DataSource;
256
+ readonly embedData: Record<string, unknown>;
257
+ replaceData(data: Record<string, unknown>): void;
258
+ save(options?: import("..").WriterOptions & {
259
+ merge?: Infer<TSchemaValidator>;
260
+ }): Promise<any>;
261
+ serialize(): Record<string, unknown>;
262
+ toJSON(): any;
263
+ };
264
+ /**
265
+ * Table/collection name
266
+ */
267
+ table: string;
268
+ /**
269
+ * Validation schema
270
+ */
271
+ schema: any;
272
+ /**
273
+ * Delete strategy
274
+ */
275
+ deleteStrategy: DeleteStrategy;
276
+ /**
277
+ * Strict mode
278
+ */
279
+ strictMode: StrictMode;
280
+ /**
281
+ * Auto-generate ID
282
+ */
283
+ autoGenerateId: boolean;
284
+ /**
285
+ * Random increment
286
+ */
287
+ randomIncrement: boolean;
288
+ /**
289
+ * Initial ID
290
+ */
291
+ initialId: number;
292
+ resource?: any;
293
+ resourceColumns?: string[];
294
+ toJsonColumns?: string[];
295
+ dataSource?: string | import("..").DataSource;
296
+ builder?: new (...args: any[]) => import("..").QueryBuilderContract<Model<ModelSchema>>;
297
+ primaryKey: string;
298
+ embed?: string[];
299
+ randomInitialId?: boolean | (() => number);
300
+ incrementIdBy?: number;
301
+ createdAtColumn?: string | false;
302
+ updatedAtColumn?: string | false;
303
+ deletedAtColumn: string;
304
+ trashTable?: string;
305
+ globalScopes: Map<string, import("../model/model").GlobalScopeDefinition>;
306
+ localScopes: Map<string, import("../model/model").LocalScopeCallback>;
307
+ getModel(name: string): import("../model/model").ChildModel<Model<ModelSchema>>;
308
+ getAllModels(): Map<string, import("../model/model").ChildModel<Model<ModelSchema>>>;
309
+ sync<TModel_1 extends Model<ModelSchema> = Model<ModelSchema>>(this: import("../model/model").ChildModel<TModel_1>, TargetModel: import("../model/model").ChildModel<Model<ModelSchema>>, targetField: string): import("..").ModelSyncOperationContract;
310
+ syncMany<TModel_2 extends Model<ModelSchema> = Model<ModelSchema>>(this: import("../model/model").ChildModel<TModel_2>, TargetModel: import("../model/model").ChildModel<Model<ModelSchema>>, targetField: string): import("..").ModelSyncOperationContract;
311
+ getDataSource(): import("..").DataSource;
312
+ applyModelDefaults(defaults: any): void;
313
+ addGlobalScope(name: string, callback: (query: import("..").QueryBuilderContract<unknown>) => void, options?: import("../model/model").GlobalScopeOptions): void;
314
+ removeGlobalScope(name: string): void;
315
+ addScope(name: string, callback: import("../model/model").LocalScopeCallback): void;
316
+ removeScope(name: string): void;
317
+ query<TModel_3 extends Model<ModelSchema> = Model<ModelSchema>>(this: import("../model/model").ChildModel<TModel_3>): import("..").QueryBuilderContract<TModel_3>;
318
+ newQueryBuilder<TModel_4 extends Model<ModelSchema> = Model<ModelSchema>>(this: import("../model/model").ChildModel<TModel_4>): import("..").QueryBuilderContract<TModel_4>;
319
+ first<TModel_5 extends Model<ModelSchema> = Model<ModelSchema>>(this: import("../model/model").ChildModel<TModel_5>, filter?: Record<string, unknown>): Promise<TModel_5>;
320
+ last<TModel_6 extends Model<ModelSchema> = Model<ModelSchema>>(this: import("../model/model").ChildModel<TModel_6>, filter?: Record<string, unknown>): Promise<TModel_6>;
321
+ where<TModel_7 extends Model<ModelSchema> = Model<ModelSchema>>(this: import("../model/model").ChildModel<TModel_7>, field: string, value: unknown): import("..").QueryBuilderContract<TModel_7>;
322
+ where<TModel_8 extends Model<ModelSchema> = Model<ModelSchema>>(this: import("../model/model").ChildModel<TModel_8>, field: string, operator: string, value: unknown): import("..").QueryBuilderContract<TModel_8>;
323
+ where<TModel_9 extends Model<ModelSchema> = Model<ModelSchema>>(this: (new (...args: any[]) => TModel_9) & Pick<typeof Model, "table" | "getDataSource" | "query">, conditions: import("..").WhereObject): import("..").QueryBuilderContract<TModel_9>;
324
+ where<TModel_10 extends Model<ModelSchema> = Model<ModelSchema>>(this: (new (...args: any[]) => TModel_10) & Pick<typeof Model, "table" | "getDataSource" | "query">, callback: import("..").WhereCallback<TModel_10>): import("..").QueryBuilderContract<TModel_10>;
325
+ count<TModel_11 extends Model<ModelSchema> = Model<ModelSchema>>(this: import("../model/model").ChildModel<TModel_11>, filter?: Record<string, unknown>): Promise<number>;
326
+ find<TModel_12 extends Model<ModelSchema> = Model<ModelSchema>>(this: import("../model/model").ChildModel<TModel_12>, id: string | number): Promise<TModel_12>;
327
+ all<TModel_13 extends Model<ModelSchema> = Model<ModelSchema>>(this: import("../model/model").ChildModel<TModel_13>, filter?: Record<string, unknown>): Promise<TModel_13[]>;
328
+ latest<TModel_14 extends Model<ModelSchema> = Model<ModelSchema>>(this: import("../model/model").ChildModel<TModel_14>, filter?: Record<string, unknown>): Promise<TModel_14[]>;
329
+ increase<TModel_15 extends Model<ModelSchema> = Model<ModelSchema>>(this: import("../model/model").ChildModel<TModel_15>, filter: Record<string, unknown>, field: string, amount: number): Promise<number>;
330
+ decrease<TModel_16 extends Model<ModelSchema> = Model<ModelSchema>>(this: import("../model/model").ChildModel<TModel_16>, filter: Record<string, unknown>, field: string, amount: number): Promise<number>;
331
+ atomic<TModel_17 extends Model<ModelSchema> = Model<ModelSchema>>(this: import("../model/model").ChildModel<TModel_17>, filter: Record<string, unknown>, operations: Record<string, unknown>): Promise<number>;
332
+ delete<TModel_18 extends Model<ModelSchema> = Model<ModelSchema>>(this: import("../model/model").ChildModel<TModel_18>, filter?: Record<string, unknown>): Promise<number>;
333
+ deleteOne<TModel_19 extends Model<ModelSchema> = Model<ModelSchema>>(this: import("../model/model").ChildModel<TModel_19>, filter?: Record<string, unknown>): Promise<number>;
334
+ restore<TModel_20 extends Model<ModelSchema> = Model<ModelSchema>>(this: import("../model/model").ChildModel<TModel_20>, id: string | number, options?: {
335
+ onIdConflict?: "fail" | "assignNew";
336
+ skipEvents?: boolean;
337
+ }): Promise<TModel_20>;
338
+ restoreAll<TModel_21 extends Model<ModelSchema> = Model<ModelSchema>>(this: import("../model/model").ChildModel<TModel_21>, options?: {
339
+ onIdConflict?: "fail" | "assignNew";
340
+ skipEvents?: boolean;
341
+ }): Promise<TModel_21[]>;
342
+ create<TModel_22 extends Model<ModelSchema> = Model<ModelSchema>, TSchema_1 extends ModelSchema = TModel_22 extends Model<infer S extends ModelSchema> ? S : ModelSchema>(this: import("../model/model").ChildModel<TModel_22>, data: Partial<TSchema_1>): Promise<TModel_22>;
343
+ createMany<TModel_23 extends Model<ModelSchema> = Model<ModelSchema>, TSchema_2 extends ModelSchema = TModel_23 extends Model<infer S_1 extends ModelSchema> ? S_1 : ModelSchema>(this: import("../model/model").ChildModel<TModel_23>, data: Partial<TSchema_2>[]): Promise<TModel_23[]>;
344
+ findOrCreate<TModel_24 extends Model<ModelSchema> = Model<ModelSchema>, TSchema_3 extends ModelSchema = TModel_24 extends Model<infer S_2 extends ModelSchema> ? S_2 : ModelSchema>(this: import("../model/model").ChildModel<TModel_24>, filter: Partial<TSchema_3>, data: Partial<TSchema_3>): Promise<TModel_24>;
345
+ updateOrCreate<TModel_25 extends Model<ModelSchema> = Model<ModelSchema>, TSchema_4 extends ModelSchema = TModel_25 extends Model<infer S_3 extends ModelSchema> ? S_3 : ModelSchema>(this: import("../model/model").ChildModel<TModel_25>, filter: Partial<TSchema_4>, data: Partial<TSchema_4>): Promise<TModel_25>;
346
+ events<TModel_26 extends Model<ModelSchema> = Model<ModelSchema>>(this: import("../model/model").ChildModel<TModel_26>): import("..").ModelEvents<TModel_26>;
347
+ $cleanup(): void;
348
+ on<TModel_27 extends Model<ModelSchema> = Model<ModelSchema>, TContext_1 = unknown>(this: import("../model/model").ChildModel<TModel_27>, event: import("..").ModelEventName, listener: import("..").ModelEventListener<TModel_27, TContext_1>): () => void;
349
+ once<TModel_28 extends Model<ModelSchema> = Model<ModelSchema>, TContext_2 = unknown>(this: import("../model/model").ChildModel<TModel_28>, event: import("..").ModelEventName, listener: import("..").ModelEventListener<TModel_28, TContext_2>): () => void;
350
+ off<TModel_29 extends Model<ModelSchema> = Model<ModelSchema>, TContext_3 = unknown>(this: import("../model/model").ChildModel<TModel_29>, event: import("..").ModelEventName, listener: import("..").ModelEventListener<TModel_29, TContext_3>): void;
351
+ globalEvents(): import("..").ModelEvents<Model<ModelSchema>>;
352
+ deserialize<TModel_30 extends Model<ModelSchema>>(this: import("../model/model").ChildModel<TModel_30>, data: any): TModel_30;
353
+ }, "new"> & TStatics;
354
+ /**
355
+ * Type helper to infer the schema type from a defined model.
356
+ *
357
+ * @example
358
+ * ```typescript
359
+ * const User = defineModel({
360
+ * table: "users",
361
+ * schema: v.object({
362
+ * name: v.string(),
363
+ * email: v.string(),
364
+ * }),
365
+ * });
366
+ *
367
+ * type UserType = ModelType<typeof User>;
368
+ * // { name: string; email: string; }
369
+ * ```
370
+ */
371
+ export type ModelType<T extends ReturnType<typeof defineModel>> = T extends new (...args: any[]) => infer R ? R extends Model<infer S> ? S : never : never;
372
+ //# sourceMappingURL=define-model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-model.d.ts","sourceRoot":"","sources":["../../src/utils/define-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3D;;GAEG;AACH,MAAM,MAAM,kBAAkB,CAAC,OAAO,SAAS,WAAW,IAAI;IAC5D;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,MAAM,EAAE,eAAe,CAAC;IAExB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC;;;;OAIG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,UAAU,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE5D;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC/B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,wBAAgB,WAAW,CACzB,OAAO,SAAS,WAAW,EAC3B,gBAAgB,SAAS,eAAe,GAAG,eAAe,EAC1D,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,EAC5C,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,EAEzC,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAC,GAAG;IACrC,MAAM,EAAE,gBAAgB,CAAC;IACzB,UAAU,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;IACpE,OAAO,CAAC,EAAE,QAAQ,CAAC,OAAO,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;CACtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAKC;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;oBAC2B,cAAc;IAE5C;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBA4BN;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,UAAU,CAAC,OAAO,WAAW,CAAC,IAAI,CAAC,SAAS,KAC1E,GAAG,IAAI,EAAE,GAAG,EAAE,KACX,MAAM,CAAC,GACR,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GACtB,CAAC,GACD,KAAK,GACP,KAAK,CAAC"}
@@ -1,4 +1,8 @@
1
1
  export interface DriverBlueprintContract {
2
+ /**
3
+ * Get tables list
4
+ */
5
+ listTables(): Promise<string[]>;
2
6
  /**
3
7
  * Get all indexes of the given table
4
8
  */
@@ -1 +1 @@
1
- {"version":3,"file":"driver-blueprint.contract.d.ts","sourceRoot":"","sources":["../../src/contracts/driver-blueprint.contract.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAE7D;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAEhC;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAE9C;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC9C;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9B,CAAC"}
1
+ {"version":3,"file":"driver-blueprint.contract.d.ts","sourceRoot":"","sources":["../../src/contracts/driver-blueprint.contract.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAChC;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAE7D;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAEhC;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAE9C;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC9C;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"mongodb-driver.d.ts","sourceRoot":"","sources":["../../../src/drivers/mongo/mongodb-driver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mongodb-driver.d.ts","sourceRoot":"","sources":["../../../src/drivers/mongo/mongodb-driver.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,54 @@ import {colors}from'@mongez/copper';import {log}from'@warlock.js/logger';import
3
3
  readConcern: { level: "local" },
4
4
  writeConcern: { w: "majority" },
5
5
  };
6
+ // ============================================================
7
+ // Lazy-loaded MongoDB SDK Types
8
+ // ============================================================
9
+ /**
10
+ * Cached MongoDB module (loaded once, reused)
11
+ */
12
+ let MongoDBClient;
6
13
  let ObjectId;
14
+ let isModuleExists = null;
15
+ let loadingPromise;
16
+ /**
17
+ * Installation instructions for MongoDB package
18
+ */
19
+ const MONGODB_INSTALL_INSTRUCTIONS = `
20
+ MongoDB driver requires the mongodb package.
21
+ Install it with:
22
+
23
+ npm install mongodb
24
+
25
+ Or with your preferred package manager:
26
+
27
+ pnpm add mongodb
28
+ yarn add mongodb
29
+ `.trim();
30
+ /**
31
+ * Load MongoDB module
32
+ */
33
+ async function loadMongoDB() {
34
+ try {
35
+ loadingPromise = import('mongodb');
36
+ MongoDBClient = await loadingPromise;
37
+ ObjectId = MongoDBClient.ObjectId;
38
+ isModuleExists = true;
39
+ }
40
+ catch {
41
+ isModuleExists = false;
42
+ }
43
+ }
44
+ loadMongoDB();
45
+ async function assertModuleIsLoaded() {
46
+ if (isModuleExists === false) {
47
+ throw new Error(MONGODB_INSTALL_INSTRUCTIONS);
48
+ }
49
+ if (isModuleExists === null) {
50
+ await loadingPromise;
51
+ return await assertModuleIsLoaded();
52
+ }
53
+ }
7
54
  /**
8
55
  * MongoDB driver implementation that fulfils the Cascade driver contract.
9
56
  *
@@ -104,8 +151,9 @@ class MongoDbDriver {
104
151
  if (this.connected) {
105
152
  return;
106
153
  }
154
+ await assertModuleIsLoaded();
107
155
  const uri = this.resolveUri();
108
- const { MongoClient, ObjectId: ObjectIdMongoDB } = await import('mongodb');
156
+ const { MongoClient, ObjectId: ObjectIdMongoDB } = MongoDBClient;
109
157
  ObjectId = ObjectIdMongoDB;
110
158
  const client = new MongoClient(uri, this.buildClientOptions());
111
159
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"mongodb-driver.js","sources":["../../../src/drivers/mongo/mongodb-driver.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mongodb-driver.js","sources":["../../../src/drivers/mongo/mongodb-driver.ts"],"sourcesContent":[null],"names":[],"mappings":"8iBAsCA,MAAM,2BAA2B,GAAuB;AACtD,IAAA,cAAc,EAAE,SAAS;AACzB,IAAA,WAAW,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;AAC/B,IAAA,YAAY,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE;CAChC,CAAC;AAEF;AACA;AACA;AAEA;;AAEG;AACH,IAAI,aAAuC,CAAC;AAE5C,IAAI,QAA2C,CAAC;AAEhD,IAAI,cAAc,GAAmB,IAAI,CAAC;AAE1C,IAAI,cAA4B,CAAC;AAEjC;;AAEG;AACH,MAAM,4BAA4B,GAAG,CAAA;;;;;;;;;;CAUpC,CAAC,IAAI,EAAE,CAAC;AAET;;AAEG;AACH,eAAe,WAAW,GAAA;IACxB,IAAI;AACF,QAAA,cAAc,GAAG,OAAO,SAAS,CAAC,CAAC;QACnC,aAAa,GAAG,MAAM,cAAc,CAAC;AACrC,QAAA,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC;QAClC,cAAc,GAAG,IAAI,CAAC;AACvB,KAAA;IAAC,MAAM;QACN,cAAc,GAAG,KAAK,CAAC;AACxB,KAAA;AACH,CAAC;AAED,WAAW,EAAE,CAAC;AAEd,eAAe,oBAAoB,GAAA;IACjC,IAAI,cAAc,KAAK,KAAK,EAAE;AAC5B,QAAA,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;AAC/C,KAAA;IAED,IAAI,cAAc,KAAK,IAAI,EAAE;AAC3B,QAAA,MAAM,cAAc,CAAC;QAErB,OAAO,MAAM,oBAAoB,EAAE,CAAC;AACrC,KAAA;AACH,CAAC;AAED;;;;;AAKG;MACU,aAAa,CAAA;AA+BL,IAAA,MAAA,CAAA;AAUA,IAAA,aAAA,CAAA;AAxCF,IAAA,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;AACtC,IAAA,MAAM,CAAe;AACrB,IAAA,QAAQ,CAAM;IACb,SAAS,GAAG,KAAK,CAAC;AAClB,IAAA,mBAAmB,CAAoB;AACvC,IAAA,uBAAuB,CAA2B;AACzC,IAAA,kBAAkB,CAAqB;AAChD,IAAA,mBAAmB,CAAuB;AAC1C,IAAA,UAAU,CAA2B;AAE7C,IAAA,IAAW,SAAS,GAAA;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,IAAI,CAAC,UAAU,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,QAAS,CAAC,CAAC;AACxD,SAAA;QAED,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;AAED;;AAEG;IACa,IAAI,GAAG,SAAS,CAAC;AAEjC;;;;;AAKG;IACH,WACmB,CAAA,MAShB,EACgB,aAAkC,EAAA;QAVlC,IAAM,CAAA,MAAA,GAAN,MAAM,CAStB;QACgB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAqB;QAEnD,IAAI,CAAC,kBAAkB,GAAG;AACxB,YAAA,GAAG,2BAA2B;YAC9B,GAAG,aAAa,EAAE,kBAAkB;SACrC,CAAC;KACH;AAED;;AAEG;AACH,IAAA,IAAW,WAAW,GAAA;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;AAED;;;;;;;;;;;AAWG;IACI,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,MAAM,IAAI,KAAK,CACb,uFAAuF,CACxF,CAAC;AACH,SAAA;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;AAED;;;;;;;;;;;;;;AAcG;IACI,cAAc,GAAA;;AAEnB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,cAAc,KAAK,KAAK,EAAE;AAChD,YAAA,OAAO,SAAS,CAAC;AAClB,SAAA;;AAGD,QAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;AAC7B,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;AAC9F,SAAA;QAED,OAAO,IAAI,CAAC,mBAAmB,CAAC;KACjC;AAED;;;AAGG;AACI,IAAA,MAAM,OAAO,GAAA;QAClB,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,OAAO;AACR,SAAA;QAED,MAAM,oBAAoB,EAAE,CAAC;AAE7B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC9B,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,aAAa,CAAC;QAEjE,QAAQ,GAAG,eAAe,CAAC;AAE3B,QAAA,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAE/D,IAAI;YACF,GAAG,CAAC,IAAI,CACN,UAAU,EACV,YAAY,EACZ,CAAA,uBAAA,EAA0B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAA,CACnF,CAAC;AACF,YAAA,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;AACvB,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACrB,YAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAChD,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,YAAY,EAAE,uBAAuB,CAAC,CAAC;AAE/D,YAAA,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAK;gBACtB,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,oBAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;oBAC1B,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE,4BAA4B,CAAC,CAAC;AAClE,iBAAA;AACH,aAAC,CAAC,CAAC;AAEH,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACxB,SAAA;AAAC,QAAA,OAAO,KAAK,EAAE;AACd,YAAA,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,MAAM,SAAS,CAAC,CAAC;AAC5C,YAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAC1B,YAAA,MAAM,KAAK,CAAC;AACb,SAAA;KACF;AAED;;AAEG;AACI,IAAA,MAAM,UAAU,GAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,OAAO;AACR,SAAA;QAED,IAAI;AACF,YAAA,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;AAC3B,SAAA;AAAS,gBAAA;AACR,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,YAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAC3B,SAAA;KACF;AAED;;AAEG;IACI,EAAE,CAAC,KAAkB,EAAE,QAA6B,EAAA;QACzD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;KACjC;AAED;;AAEG;AACI,IAAA,MAAM,MAAM,CACjB,KAAa,EACb,QAAiC,EACjC,OAAiC,EAAA;QAEjC,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAChE,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAmB,OAAO,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAElE,OAAO;AACL,YAAA,QAAQ,EAAE;AACR,gBAAA,GAAG,QAAQ;gBACX,GAAG,EAAE,MAAM,CAAC,UAAU;AACvB,aAAA;SACF,CAAC;KACH;AAED;;AAEG;AACI,IAAA,MAAM,UAAU,CACrB,KAAa,EACb,SAAoC,EACpC,OAAiC,EAAA;QAEjC,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAChE,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAmB,OAAO,CAAC,CAAC;QACjE,MAAM,MAAM,GAA8C,MAAM,UAAU,CAAC,UAAU,CACnF,SAAS,EACT,YAAY,CACb,CAAC;QAEF,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,KAAI;YACvC,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,KAAmD,CAAC,CAAC;YAE3F,OAAO;AACL,gBAAA,QAAQ,EAAE;AACR,oBAAA,GAAG,QAAQ;AACX,oBAAA,GAAG,EAAE,UAAU;AAChB,iBAAA;aACF,CAAC;AACJ,SAAC,CAAC,CAAC;KACJ;AAED;;AAEG;IACI,MAAM,MAAM,CACjB,KAAa,EACb,MAA+B,EAC/B,MAA+B,EAC/B,OAAiC,EAAA;QAEjC,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAChE,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAgB,OAAO,CAAC,CAAC;AAC9D,QAAA,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,CACvC,MAAM,EACN,MAA+C,EAC/C,YAAY,CACb,CAAC;AAEF,QAAA,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC;KAChD;AAED;;AAEG;IACI,MAAM,OAAO,CAClB,KAAa,EACb,MAA+B,EAC/B,QAAiC,EACjC,OAAiC,EAAA;QAEjC,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAmC,CAAC,CAAC;QAE/F,OAAO,MAAM,EAAE,KAAiB,CAAC;KAClC;AAED;;AAEG;IACI,MAAM,UAAU,CACrB,KAAa,EACb,MAA+B,EAC/B,MAA+B,EAC/B,OAAiC,EAAA;QAEjC,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAChE,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAgB,OAAO,CAAC,CAAC;AAC9D,QAAA,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,CACxC,MAAM,EACN,MAA+C,EAC/C,YAAY,CACb,CAAC;AAEF,QAAA,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC;KAChD;AAED;;AAEG;IACI,MAAM,MAAM,CACjB,KAAa,EACb,MAAkC,GAAA,EAAE,EACpC,OAAiC,EAAA;QAEjC,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAChE,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAgB,OAAO,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAEhE,QAAA,OAAO,MAAM,CAAC,YAAY,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KACxC;AAED;;AAEG;IACI,MAAM,UAAU,CACrB,KAAa,EACb,MAAkC,GAAA,EAAE,EACpC,OAAiC,EAAA;QAEjC,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAChE,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAgB,OAAO,CAAC,CAAC;QAE9D,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAEjE,QAAA,OAAO,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC;KACjC;AAED;;;;;;AAMG;AACI,IAAA,MAAM,aAAa,CAAC,KAAa,EAAE,OAAiC,EAAA;QACzE,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAChE,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAgB,OAAO,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;AAE7D,QAAA,OAAO,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC;KACjC;AAED;;AAEG;AACI,IAAA,SAAS,CAAC,IAA6B,EAAA;QAC5C,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,YAAY,QAAQ,EAAE;YAC5C,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;AAChC,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;AACI,IAAA,WAAW,CAAC,IAA6B,EAAA;QAC9C,IAAI,IAAI,CAAC,GAAG,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,EAAE;YAC5C,IAAI,CAAC,GAAG,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnC,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;AACI,IAAA,YAAY,CAAc,KAAa,EAAA;QAC5C,OAAO,IAAI,iBAAiB,CAAC,KAAK,EAAE,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC;KAC/D;AAED;;AAEG;AACI,IAAA,MAAM,gBAAgB,GAAA;AAC3B,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACxC,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QAEtC,MAAM,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACxD,QAAA,0BAA0B,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAC9C,IAAI,QAAQ,GAAG,KAAK,CAAC;AAErB,QAAA,MAAM,QAAQ,GAAG,OAAO,SAA8B,KAAmB;AACvE,YAAA,IAAI,QAAQ;gBAAE,OAAO;YAErB,IAAI;gBACF,MAAM,SAAS,EAAE,CAAC;AACnB,aAAA;AAAS,oBAAA;gBACR,QAAQ,GAAG,IAAI,CAAC;gBAChB,0BAA0B,CAAC,IAAI,EAAE,CAAC;AAClC,gBAAA,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,MAAM,SAAS,CAAC,CAAC;AACnD,aAAA;AACH,SAAC,CAAC;QAEF,OAAO;AACL,YAAA,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,YAAW;AACjB,gBAAA,MAAM,QAAQ,CAAC,YAAW;oBACxB,IAAI;AACF,wBAAA,MAAM,OAAO,CAAC,iBAAiB,EAAE,CAAC;AACnC,qBAAA;AAAC,oBAAA,OAAO,KAAK,EAAE;AACd,wBAAA,MAAM,OAAO,CAAC,gBAAgB,EAAE,CAAC,KAAK,CAAC,MAAM,SAAS,CAAC,CAAC;AACxD,wBAAA,MAAM,KAAK,CAAC;AACb,qBAAA;AACH,iBAAC,CAAC,CAAC;aACJ;YACD,QAAQ,EAAE,YAAW;AACnB,gBAAA,MAAM,QAAQ,CAAC,YAAW;AACxB,oBAAA,MAAM,OAAO,CAAC,gBAAgB,EAAE,CAAC;AACnC,iBAAC,CAAC,CAAC;aACJ;SACF,CAAC;KACH;AAED;;;;AAIG;IACI,MAAM,MAAM,CACjB,KAAa,EACb,MAA+B,EAC/B,UAAmC,EACnC,OAAiC,EAAA;QAEjC,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAChE,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAgB,OAAO,CAAC,CAAC;AAC9D,QAAA,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,CACxC,MAAM,EACN,UAAmD,EACnD,YAAY,CACb,CAAC;AAEF,QAAA,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC;KAChD;AAED;;;;AAIG;IACI,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAC7B,IAAI,CAAC,mBAAmB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACvD,SAAA;QAED,OAAO,IAAI,CAAC,mBAAmB,CAAC;KACjC;AAED;;;AAGG;IACI,eAAe,GAAA;AACpB,QAAA,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE;YACjC,IAAI,CAAC,uBAAuB,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC;AAC/D,SAAA;QAED,OAAO,IAAI,CAAC,uBAAwB,CAAC;KACtC;AAED;;AAEG;IACI,SAAS,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;KACjC;AAED;;AAEG;IACK,iBAAiB,GAAA;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAChB,YAAA,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;AACnD,SAAA;QAED,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;AAED;;;AAGG;IACK,mBAAmB,GAAA;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;AACjE,SAAA;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;AAED;;AAEG;IACK,UAAU,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;AACnB,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;AACxB,SAAA;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,WAAW,CAAC;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC;AAEvC,QAAA,OAAO,CAAa,UAAA,EAAA,IAAI,CAAI,CAAA,EAAA,IAAI,EAAE,CAAC;KACpC;AAED;;AAEG;IACK,kBAAkB,GAAA;AACxB,QAAA,MAAM,WAAW,GAAuB;YACtC,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE;SACpC,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;YAC7C,WAAW,CAAC,IAAI,GAAG;AACjB,gBAAA,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;AAC9B,gBAAA,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;aAC/B,CAAC;AACH,SAAA;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE;YACrD,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;AACjD,SAAA;AAED,QAAA,OAAO,WAAW,CAAC;KACpB;AAED;;AAEG;AACK,IAAA,IAAI,CAAC,KAAkB,EAAE,GAAG,IAAe,EAAA;QACjD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;KAClC;AAED;;AAEG;AACK,IAAA,WAAW,CACjB,OAAiC,EAAA;AAEjC,QAAA,MAAM,OAAO,GAAG,0BAA0B,CAAC,UAAU,EAAiB,CAAC;QAEvE,IAAI,CAAC,OAAO,EAAE;AACZ,YAAA,OAAO,OAA+B,CAAC;AACxC,SAAA;AAED,QAAA,MAAM,WAAW,GAAG,OAAO,GAAI,EAAE,GAAG,OAAO,EAAe,GAAI,EAAe,CAAC;AAE9E,QAAA,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC;AAE9B,QAAA,OAAO,WAAW,CAAC;KACpB;AACF"}