@nest-extended/mongoose 0.0.2-beta-13 → 0.0.2-beta-15
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/README.md +103 -9
- package/package.json +2 -2
- package/src/lib/nest.service.js +1 -1
- package/src/lib/nest.service.js.map +1 -1
package/README.md
CHANGED
|
@@ -1,17 +1,62 @@
|
|
|
1
1
|
# @nest-extended/mongoose
|
|
2
2
|
|
|
3
|
-
This package provides powerful Mongoose integrations for the **NestExtended** ecosystem, offering a robust service layer with built-in pagination, filtering,
|
|
3
|
+
This package provides powerful Mongoose integrations for the **NestExtended** ecosystem, offering a robust service layer with built-in pagination, filtering, soft delete capabilities, exception filters, and query utilities.
|
|
4
4
|
|
|
5
5
|
## Key Features
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
- **
|
|
13
|
-
|
|
14
|
-
|
|
7
|
+
### NestService
|
|
8
|
+
|
|
9
|
+
A generic service class (`NestService<M, D>`) that provides:
|
|
10
|
+
|
|
11
|
+
- **CRUD Operations**: `_find`, `_get`, `_create`, `_patch`, `_remove`
|
|
12
|
+
- **Advanced Querying**: Support for `$regex`, `$or`, `$in`, `$nin`, `$lt`, `$lte`, `$gt`, `$gte`, `$ne` and standard MongoDB operators
|
|
13
|
+
- **Pagination**: Built-in pagination logic using `$skip` and `$limit` with configurable defaults (limit: 20, skip: 0)
|
|
14
|
+
- **Soft Delete**: Configurable soft delete support — marks documents as deleted instead of removing, with user tracking via CLS context
|
|
15
|
+
- **Bulk Operations**: Optional multi-document create via `insertMany` (enable with `multi: true`)
|
|
16
|
+
- **Count**: `getCount(filter)` for counting documents matching a filter
|
|
17
|
+
- **Conditional Pagination**: `_find` accepts `{ pagination: false }` to return raw arrays instead of paginated responses
|
|
18
|
+
|
|
19
|
+
**Constructor Options** (`NestServiceOptions`):
|
|
20
|
+
- `multi` (default: `false`) — allow bulk create with arrays
|
|
21
|
+
- `softDelete` (default: `true`) — enable soft delete behavior
|
|
22
|
+
- `pagination` (default: `true`) — enable paginated responses
|
|
23
|
+
|
|
24
|
+
### Query Utilities
|
|
25
|
+
|
|
26
|
+
- **`nestify(query, filters, options)`**: Applies `$select`, `$populate`, `$sort`, `$limit`, `$skip` to a Mongoose query
|
|
27
|
+
- **`rawQuery(query)`**: Converts query params to MongoDB query with auto-ObjectId conversion, `$regex` support, and recursive `$or` handling
|
|
28
|
+
- **`assignFilters`**: Extracts known filter keys (`$sort`, `$limit`, `$skip`, `$select`, `$populate`) from query params
|
|
29
|
+
- **`filterQuery`**: Full query parsing — separates filters from query and validates operators
|
|
30
|
+
- **`cleanQuery`**: Validates query operators and throws `BadRequestException` for invalid `$` params
|
|
31
|
+
|
|
32
|
+
### Helper Utilities
|
|
33
|
+
|
|
34
|
+
- **`EnsureObjectId(id)`**: Validates and converts string to `Types.ObjectId`, throws `Error` on invalid ID
|
|
35
|
+
- **`ensureObjectId`**: Alias export for the same utility
|
|
36
|
+
|
|
37
|
+
### Exception Filters
|
|
38
|
+
|
|
39
|
+
- **`GlobalExceptionFilter`**: Catch-all exception filter that handles:
|
|
40
|
+
- `HttpException` — returns standard NestJS error response
|
|
41
|
+
- `MongooseError` — wraps as `BadRequestException`
|
|
42
|
+
- `ZodError` — wraps as `BadRequestException`
|
|
43
|
+
- `MongoServerError` — parses specific error codes with human-readable messages
|
|
44
|
+
- Unhandled errors — returns 500 with stack trace (stack hidden in production)
|
|
45
|
+
|
|
46
|
+
- **`handleMongoError(exception)`**: Translates MongoDB error codes to user-friendly messages:
|
|
47
|
+
- `11000` — Duplicate key violation
|
|
48
|
+
- `121` — Document validation failure
|
|
49
|
+
- `66` — Immutable field modification
|
|
50
|
+
- `50` — Operation timeout
|
|
51
|
+
- `16755` — Invalid aggregation pipeline
|
|
52
|
+
- `40324` — Invalid index options
|
|
53
|
+
- `8000` — Transaction error
|
|
54
|
+
- `31` — Memory limit exceeded
|
|
55
|
+
|
|
56
|
+
### Types
|
|
57
|
+
|
|
58
|
+
- **`NestifyFilters`**: `$select`, `$populate`, `$sort`, `$limit`, `$skip`
|
|
59
|
+
- **`NestifyOptions`**: `defaultLimit`, `defaultSkip`, `defaultPagination`
|
|
15
60
|
|
|
16
61
|
## Usage
|
|
17
62
|
|
|
@@ -33,6 +78,12 @@ export class CatsService extends NestService<Cat, CatDocument> {
|
|
|
33
78
|
}
|
|
34
79
|
```
|
|
35
80
|
|
|
81
|
+
With custom options:
|
|
82
|
+
|
|
83
|
+
```typescript
|
|
84
|
+
super(catModel, { multi: true, softDelete: false, pagination: false });
|
|
85
|
+
```
|
|
86
|
+
|
|
36
87
|
### Querying
|
|
37
88
|
|
|
38
89
|
You can use the `_find` method with query objects:
|
|
@@ -45,3 +96,46 @@ const results = await this.catsService._find({
|
|
|
45
96
|
$limit: 10
|
|
46
97
|
});
|
|
47
98
|
```
|
|
99
|
+
|
|
100
|
+
Disable pagination for a single query:
|
|
101
|
+
|
|
102
|
+
```typescript
|
|
103
|
+
const allCats = await this.catsService._find({}, { pagination: false });
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### GlobalExceptionFilter
|
|
107
|
+
|
|
108
|
+
Register globally in `app.module.ts`:
|
|
109
|
+
|
|
110
|
+
```typescript
|
|
111
|
+
import { GlobalExceptionFilter } from '@nest-extended/mongoose';
|
|
112
|
+
import { APP_FILTER } from '@nestjs/core';
|
|
113
|
+
|
|
114
|
+
providers: [
|
|
115
|
+
{ provide: APP_FILTER, useClass: GlobalExceptionFilter },
|
|
116
|
+
]
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### EnsureObjectId
|
|
120
|
+
|
|
121
|
+
```typescript
|
|
122
|
+
import { EnsureObjectId } from '@nest-extended/mongoose';
|
|
123
|
+
|
|
124
|
+
const objectId = EnsureObjectId('507f1f77bcf86cd799439011');
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## Exported API
|
|
128
|
+
|
|
129
|
+
| Export | Type | Description |
|
|
130
|
+
|---|---|---|
|
|
131
|
+
| `NestService` | Class | Generic CRUD service with pagination & soft delete |
|
|
132
|
+
| `nestify` | Function | Apply filters/pagination to Mongoose query |
|
|
133
|
+
| `rawQuery` | Function | Convert query params to MongoDB filter |
|
|
134
|
+
| `assignFilters` | Function | Extract filter params from query |
|
|
135
|
+
| `filterQuery` | Function | Full query parsing with operator validation |
|
|
136
|
+
| `cleanQuery` | Function | Validate query operators |
|
|
137
|
+
| `EnsureObjectId` | Function | Validate & convert to ObjectId |
|
|
138
|
+
| `GlobalExceptionFilter` | Filter | Catch-all exception handler |
|
|
139
|
+
| `handleMongoError` | Function | MongoDB error code translator |
|
|
140
|
+
| `NestifyFilters` | Interface | Filter type definition |
|
|
141
|
+
| `NestifyOptions` | Interface | Options type definition |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nest-extended/mongoose",
|
|
3
|
-
"version": "0.0.2-beta-
|
|
3
|
+
"version": "0.0.2-beta-15",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"contributors": [
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"types": "./src/index.d.ts",
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"tslib": "^2.3.0",
|
|
22
|
-
"@nest-extended/core": "0.0.2-beta-
|
|
22
|
+
"@nest-extended/core": "0.0.2-beta-15",
|
|
23
23
|
"zod": "^3.22.4"
|
|
24
24
|
}
|
|
25
25
|
}
|
package/src/lib/nest.service.js
CHANGED
|
@@ -125,7 +125,7 @@ class NestService {
|
|
|
125
125
|
}
|
|
126
126
|
_getOrFind(isSingleUpdate, searchQuery, data) {
|
|
127
127
|
if (isSingleUpdate) {
|
|
128
|
-
return this.model.findOneAndUpdate(searchQuery, data, {
|
|
128
|
+
return this.model.findOneAndUpdate(searchQuery, data, { returnDocument: 'after' });
|
|
129
129
|
}
|
|
130
130
|
return this.model.updateMany(searchQuery, data);
|
|
131
131
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nest.service.js","sourceRoot":"","sources":["../../../../../packages/mongoose/src/lib/nest.service.ts"],"names":[],"mappings":";;;;AAEA,2CAAqD;AACrD,uDAAyE;AACzE,8CAA8C;AAE9C,+CAA4C;AAG5C,8CAAqD;AAErD;;;GAGG;AACH,MAAM,uBAAuB,GAAqB;IAC9C,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,cAAO,CAAC,SAAS,IAAI,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;IACrE,OAAO,EAAE,CAAC,IAAS,EAAE,EAAE,CAAC,CAAC;QACrB,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG;QACpB,SAAS,EAAE,IAAI,IAAI,EAAE;KACxB,CAAC;CACL,CAAC;AAEF,MAAa,WAAW;IAKpB,YACI,KAAe,EACf,iBAAqC,EAAE,EACvC,gBAAmC;QAEnC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,mBACR,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,IAAI,EAChB,UAAU,EAAE,IAAI,IACb,cAAc,CACpB,CAAC;QACF,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,IAAI,uBAAuB,CAAC;IACxE,CAAC;IAED;;OAEG;IACK,qBAAqB,CAAC,KAA0B;QACpD,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAC1B,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;YACzD,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;QAC1C,CAAC;IACL,CAAC;IAEK,KAAK;qEACP,QAA6B,EAAE,EAC/B,cAEI;YACI,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAe;SAC3C;;YAEL,KAAK,qBAAQ,KAAK,CAAE,CAAC;YACrB,sCAAsC;YACtC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAElC,MAAM,OAAO,GAAG,IAAA,2BAAa,EAAC,EAAE,EAAE,KAAK,EAAE,qBAAO,EAAE,EAAE,CAAC,CAAC;YACtD,MAAM,WAAW,GAAG,IAAA,sBAAQ,EAAC,KAAK,CAAC,CAAC;YACpC,MAAM,mBAAmB,GAAG,MAAA,WAAW,CAAC,UAAU,mCAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;YAE9E,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACvC,IAAA,iBAAO,EAAC,CAAQ,EAAE,OAAO,EAAE,cAAO,EAAE,CAAC,mBAAmB,CAAC,CAAC;YAE1D,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACvB,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAgD,CAAC;YAC3E,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU;gBACtC,CAAC,iCAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAK,WAAW,EACvD,CAAC,CAAC,WAAW,CAAC;YAElB,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACpC,CAAC,CAAC,IAAI,EAAE;gBACR,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC;aACxC,CAAC,CAAC;YAEH,OAAO;gBACH,KAAK;gBACL,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,cAAO,CAAC,YAAY;gBACtD,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,cAAO,CAAC,WAAW;gBACnD,IAAI;aACwC,CAAC;QACrD,CAAC;KAAA;IAIK,OAAO,CAAC,IAA+B;;YACzC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;YAEjC,IAAI,KAAK,EAAE,CAAC;gBACR,6DAA6D;gBAC7D,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;oBACtB,0CAA0C;oBAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC3D,CAAC;gBACD,0CAA0C;gBAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACnC,CAAC;YAED,oDAAoD;YACpD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,4BAAmB,CACzB,wFAAwF,CAC3F,CAAC;YACN,CAAC;YACD,0CAA0C;YAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;KAAA;IAEK,MAAM;qEACR,EAAiB,EACjB,IAAsB,EACtB,QAA6B,EAAE;YAE/B,KAAK,qBAAQ,KAAK,CAAE,CAAC;YACrB,sCAAsC;YACtC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAElC,MAAM,OAAO,GAAG,IAAA,2BAAa,EAAC,EAAE,EAAE,KAAK,EAAE,qBAAO,EAAE,EAAE,CAAC,CAAC;YACtD,MAAM,WAAW,GAAmB,EAAE;gBAClC,CAAC,iBAAG,GAAG,EAAE,EAAE,IAAK,IAAA,sBAAQ,EAAC,KAAK,CAAC,EAC/B,CAAC,CAAC,IAAA,sBAAQ,EAAC,KAAK,CAAC,CAAC;YAEtB,MAAM,cAAc,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;YACnC,0CAA0C;YAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;YAE7D,IAAI,cAAc,EAAE,CAAC;gBACjB,IAAA,iBAAO,EAAC,CAAQ,EAAE,OAAO,EAAE,cAAO,EAAE,cAAc,CAAC,CAAC;gBACpD,yCAAyC;gBACzC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YACpB,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YAE9B,4CAA4C;YAC5C,IAAI,MAAM,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;gBAC3B,+CAA+C;gBAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;YAC/C,CAAC;YACD,OAAO,EAAE,CAAC;QACd,CAAC;KAAA;IAEK,IAAI;qEACN,EAAU,EACV,QAA6B,EAAE;YAE/B,KAAK,qBAAQ,KAAK,CAAE,CAAC;YACrB,sCAAsC;YACtC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAElC,MAAM,OAAO,GAAG,IAAA,2BAAa,EAAC,EAAE,EAAE,KAAK,EAAE,qBAAO,EAAE,EAAE,CAAC,CAAC;YACtD,MAAM,WAAW,GAAmB,gCAC7B,IAAA,sBAAQ,EAAC,KAAK,CAAC,KAClB,GAAG,EAAE,EAAE,GACQ,CAAC;YAEpB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC1C,MAAM,iBAAiB,GAAG,IAAI,CAAC;YAC/B,IAAA,iBAAO,EAAC,CAAQ,EAAE,OAAO,EAAE,cAAO,EAAE,iBAAiB,CAAC,CAAC;YACvD,kDAAkD;YAClD,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;QACpC,CAAC;KAAA;IAEO,UAAU,CACd,cAAuB,EACvB,WAA2B,EAC3B,IAAoB;QAEpB,IAAI,cAAc,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"nest.service.js","sourceRoot":"","sources":["../../../../../packages/mongoose/src/lib/nest.service.ts"],"names":[],"mappings":";;;;AAEA,2CAAqD;AACrD,uDAAyE;AACzE,8CAA8C;AAE9C,+CAA4C;AAG5C,8CAAqD;AAErD;;;GAGG;AACH,MAAM,uBAAuB,GAAqB;IAC9C,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,cAAO,CAAC,SAAS,IAAI,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;IACrE,OAAO,EAAE,CAAC,IAAS,EAAE,EAAE,CAAC,CAAC;QACrB,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG;QACpB,SAAS,EAAE,IAAI,IAAI,EAAE;KACxB,CAAC;CACL,CAAC;AAEF,MAAa,WAAW;IAKpB,YACI,KAAe,EACf,iBAAqC,EAAE,EACvC,gBAAmC;QAEnC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,mBACR,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,IAAI,EAChB,UAAU,EAAE,IAAI,IACb,cAAc,CACpB,CAAC;QACF,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,IAAI,uBAAuB,CAAC;IACxE,CAAC;IAED;;OAEG;IACK,qBAAqB,CAAC,KAA0B;QACpD,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAC1B,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;YACzD,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;QAC1C,CAAC;IACL,CAAC;IAEK,KAAK;qEACP,QAA6B,EAAE,EAC/B,cAEI;YACI,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAe;SAC3C;;YAEL,KAAK,qBAAQ,KAAK,CAAE,CAAC;YACrB,sCAAsC;YACtC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAElC,MAAM,OAAO,GAAG,IAAA,2BAAa,EAAC,EAAE,EAAE,KAAK,EAAE,qBAAO,EAAE,EAAE,CAAC,CAAC;YACtD,MAAM,WAAW,GAAG,IAAA,sBAAQ,EAAC,KAAK,CAAC,CAAC;YACpC,MAAM,mBAAmB,GAAG,MAAA,WAAW,CAAC,UAAU,mCAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;YAE9E,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACvC,IAAA,iBAAO,EAAC,CAAQ,EAAE,OAAO,EAAE,cAAO,EAAE,CAAC,mBAAmB,CAAC,CAAC;YAE1D,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACvB,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAgD,CAAC;YAC3E,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU;gBACtC,CAAC,iCAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAK,WAAW,EACvD,CAAC,CAAC,WAAW,CAAC;YAElB,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACpC,CAAC,CAAC,IAAI,EAAE;gBACR,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC;aACxC,CAAC,CAAC;YAEH,OAAO;gBACH,KAAK;gBACL,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,cAAO,CAAC,YAAY;gBACtD,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,cAAO,CAAC,WAAW;gBACnD,IAAI;aACwC,CAAC;QACrD,CAAC;KAAA;IAIK,OAAO,CAAC,IAA+B;;YACzC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;YAEjC,IAAI,KAAK,EAAE,CAAC;gBACR,6DAA6D;gBAC7D,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;oBACtB,0CAA0C;oBAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC3D,CAAC;gBACD,0CAA0C;gBAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACnC,CAAC;YAED,oDAAoD;YACpD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,4BAAmB,CACzB,wFAAwF,CAC3F,CAAC;YACN,CAAC;YACD,0CAA0C;YAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;KAAA;IAEK,MAAM;qEACR,EAAiB,EACjB,IAAsB,EACtB,QAA6B,EAAE;YAE/B,KAAK,qBAAQ,KAAK,CAAE,CAAC;YACrB,sCAAsC;YACtC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAElC,MAAM,OAAO,GAAG,IAAA,2BAAa,EAAC,EAAE,EAAE,KAAK,EAAE,qBAAO,EAAE,EAAE,CAAC,CAAC;YACtD,MAAM,WAAW,GAAmB,EAAE;gBAClC,CAAC,iBAAG,GAAG,EAAE,EAAE,IAAK,IAAA,sBAAQ,EAAC,KAAK,CAAC,EAC/B,CAAC,CAAC,IAAA,sBAAQ,EAAC,KAAK,CAAC,CAAC;YAEtB,MAAM,cAAc,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;YACnC,0CAA0C;YAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;YAE7D,IAAI,cAAc,EAAE,CAAC;gBACjB,IAAA,iBAAO,EAAC,CAAQ,EAAE,OAAO,EAAE,cAAO,EAAE,cAAc,CAAC,CAAC;gBACpD,yCAAyC;gBACzC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YACpB,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YAE9B,4CAA4C;YAC5C,IAAI,MAAM,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;gBAC3B,+CAA+C;gBAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;YAC/C,CAAC;YACD,OAAO,EAAE,CAAC;QACd,CAAC;KAAA;IAEK,IAAI;qEACN,EAAU,EACV,QAA6B,EAAE;YAE/B,KAAK,qBAAQ,KAAK,CAAE,CAAC;YACrB,sCAAsC;YACtC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAElC,MAAM,OAAO,GAAG,IAAA,2BAAa,EAAC,EAAE,EAAE,KAAK,EAAE,qBAAO,EAAE,EAAE,CAAC,CAAC;YACtD,MAAM,WAAW,GAAmB,gCAC7B,IAAA,sBAAQ,EAAC,KAAK,CAAC,KAClB,GAAG,EAAE,EAAE,GACQ,CAAC;YAEpB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC1C,MAAM,iBAAiB,GAAG,IAAI,CAAC;YAC/B,IAAA,iBAAO,EAAC,CAAQ,EAAE,OAAO,EAAE,cAAO,EAAE,iBAAiB,CAAC,CAAC;YACvD,kDAAkD;YAClD,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;QACpC,CAAC;KAAA;IAEO,UAAU,CACd,cAAuB,EACvB,WAA2B,EAC3B,IAAoB;QAEpB,IAAI,cAAc,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CAAC;QACvF,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;IAEK,OAAO;qEACT,EAAiB,EACjB,QAA6B,EAAE,EAC/B,IAAU;YAEV,KAAK,qBAAQ,KAAK,CAAE,CAAC;YACrB,MAAM,WAAW,GAAmB,EAAE;gBAClC,CAAC,iBAAG,GAAG,EAAE,EAAE,IAAK,IAAA,sBAAQ,EAAC,KAAK,CAAC,EAC/B,CAAC,CAAC,IAAA,sBAAQ,EAAC,KAAK,CAAC,CAAC;YAEtB,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAEpD,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBAC1B,qDAAqD;gBACrD,MAAM,WAAW,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,IAAA,qBAAc,GAAE,CAAC;gBAC7C,wDAAwD;gBACxD,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBAClE,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;gBACnD,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,6CAA6C;YAC7C,IAAI,EAAE,EAAE,CAAC;gBACL,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAA;YAClD,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;YACpD,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC;KAAA;IAEK,QAAQ,CAAC,MAAsB;;YACjC,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC;KAAA;CACJ;AAjMD,kCAiMC"}
|