@truto/ginger 1.2.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +86 -0
- package/dist/crypto.d.ts.map +1 -1
- package/dist/crypto.js +28 -5
- package/dist/crypto.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/service.d.ts +70 -5
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +237 -30
- package/dist/service.js.map +1 -1
- package/dist/sql-builder.d.ts +8 -1
- package/dist/sql-builder.d.ts.map +1 -1
- package/dist/sql-builder.js +8 -3
- package/dist/sql-builder.js.map +1 -1
- package/dist/types.d.ts +74 -9
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -21,6 +21,7 @@ bun add zod @truto/sqlite-builder
|
|
|
21
21
|
- **Fully type-safe** — Zod schemas drive runtime validation and static types
|
|
22
22
|
- **Cursor pagination** — opaque base64 cursors with `next` / `prev` support
|
|
23
23
|
- **Declarative joins** — `one` and `many` joins with conditional `include`
|
|
24
|
+
- **Field selection** — flat `select: ['id', 'name', '$teams.name']` array picks main-row and join columns, with type narrowing
|
|
24
25
|
- **Field encryption** — AES-256-GCM via Web Crypto, stored as `kid:iv:cipher`
|
|
25
26
|
- **Hook system** — `before` / `after` / `error` hooks per method, inspired by Feathers.js
|
|
26
27
|
- **Dependency injection** — pass other services via `deps` for cross-service logic
|
|
@@ -364,6 +365,63 @@ const user = await service.get(id, {
|
|
|
364
365
|
// user.teams → TeamRow[]
|
|
365
366
|
```
|
|
366
367
|
|
|
368
|
+
### Field selection
|
|
369
|
+
|
|
370
|
+
Limit the columns returned by `list` / `get` / `create` / `update` with a flat
|
|
371
|
+
`select` array. Tokens beginning with `$alias` (mirroring the alias-block
|
|
372
|
+
syntax used by `where`) pick columns from a configured join.
|
|
373
|
+
|
|
374
|
+
```typescript
|
|
375
|
+
// Main row only — pick a subset of the row schema
|
|
376
|
+
const slim = await usersService.get(1, {
|
|
377
|
+
auth,
|
|
378
|
+
select: ['id', 'name'],
|
|
379
|
+
})
|
|
380
|
+
// → { id: 1, name: 'Jane' }
|
|
381
|
+
|
|
382
|
+
// Mix main-row columns with join columns using `$alias.col`
|
|
383
|
+
const withTeam = await usersService.get(1, {
|
|
384
|
+
auth,
|
|
385
|
+
include: { teams: true },
|
|
386
|
+
select: ['id', 'name', '$teams.name'],
|
|
387
|
+
})
|
|
388
|
+
// → { id: 1, name: 'Jane', teams: [{ id: 7, name: 'Eng' }, ...] }
|
|
389
|
+
|
|
390
|
+
// Bare `$alias` expands to all columns in that join's `remote.select`
|
|
391
|
+
const withFullTeams = await usersService.get(1, {
|
|
392
|
+
auth,
|
|
393
|
+
include: { teams: true },
|
|
394
|
+
select: ['id', '$teams'],
|
|
395
|
+
})
|
|
396
|
+
|
|
397
|
+
// Cursor pagination keeps working — orderBy columns are silently included
|
|
398
|
+
const page = await usersService.list({
|
|
399
|
+
auth,
|
|
400
|
+
select: ['name'],
|
|
401
|
+
orderBy: [{ column: 'created_at', direction: 'asc' }],
|
|
402
|
+
limit: 20,
|
|
403
|
+
})
|
|
404
|
+
// page.result[0] → { id: 1, name: 'Jane', created_at: '...' }
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
Behaviour summary:
|
|
408
|
+
|
|
409
|
+
| Aspect | Behaviour |
|
|
410
|
+
| ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
411
|
+
| Primary key | Always silently included in SELECT and kept in the returned row |
|
|
412
|
+
| `orderBy` columns | Always silently included so `nextCursor` / `prevCursor` keep working |
|
|
413
|
+
| Join columns | Use `$alias.column` (per-call override) or `$alias` (use the join's configured `remote.select`). The join must also be enabled via `include[alias] = true` — selection alone does not auto-include. |
|
|
414
|
+
| Join column scope | A per-call `$alias.column` may reference any column on the joined table (not just the configured `remote.select`). The join's PK is silently included. |
|
|
415
|
+
| `includeSecrets` | Independent from `select`. Secrets are surfaced only when `includeSecrets: true`, irrespective of what's in `select`. Secret `logicalName`s are not valid `select` tokens — use `includeSecrets` to opt in. |
|
|
416
|
+
| Validation | Unknown columns and unknown join aliases throw `ValidationError`. Empty/omitted `select` returns the full row (backwards compatible). |
|
|
417
|
+
| `count` / `delete` / `query` | Do not accept `select` (they don't return rows in the same shape). |
|
|
418
|
+
|
|
419
|
+
Type narrowing — pass the array `as const` (or rely on the `<const>` type
|
|
420
|
+
parameter on the service methods) to get `Pick<Row, …>` in the return type.
|
|
421
|
+
Per-call join column overrides currently don't narrow the join schema in
|
|
422
|
+
types — at the type level the join still appears with its full configured
|
|
423
|
+
schema; at runtime the row only contains what was selected.
|
|
424
|
+
|
|
367
425
|
### Field encryption
|
|
368
426
|
|
|
369
427
|
Sensitive fields are encrypted with **AES-256-GCM** via Web Crypto and stored as `kid:iv:cipher` (base64 segments):
|
|
@@ -420,6 +478,34 @@ Encryption is handled automatically:
|
|
|
420
478
|
- On `create` / `update` — the `logicalName` field is encrypted and stored in the `columnName` column
|
|
421
479
|
- On `get` / `list` (when `includeSecrets: true`) — the `columnName` column is decrypted and returned as `logicalName`
|
|
422
480
|
|
|
481
|
+
#### Structured secrets (`serialize` / `deserialize`)
|
|
482
|
+
|
|
483
|
+
By default a secret is treated as an opaque string. To store a **structured**
|
|
484
|
+
value (e.g. multiple related secrets) in a single encrypted column, supply a
|
|
485
|
+
symmetric codec. `serialize` runs before encrypt (its output must be a string)
|
|
486
|
+
and `deserialize` runs after decrypt:
|
|
487
|
+
|
|
488
|
+
```typescript
|
|
489
|
+
const secrets = [
|
|
490
|
+
{
|
|
491
|
+
logicalName: 'secrets', // { client_secret?, sp_signing_key? }
|
|
492
|
+
columnName: 'config_secret',
|
|
493
|
+
keyId: 'default',
|
|
494
|
+
serialize: JSON.stringify,
|
|
495
|
+
deserialize: JSON.parse,
|
|
496
|
+
},
|
|
497
|
+
] as const
|
|
498
|
+
```
|
|
499
|
+
|
|
500
|
+
- `serialize` and `deserialize` must be provided **together or not at all** —
|
|
501
|
+
the `Service` constructor throws a `ValidationError` for an asymmetric codec.
|
|
502
|
+
- `null` / `undefined` values skip the codec entirely (field is omitted on read).
|
|
503
|
+
- A `serialize` that returns a non-string (or throws) surfaces as an
|
|
504
|
+
`EncryptionError`; a `deserialize` failure is wrapped and rethrown with
|
|
505
|
+
`columnName` context rather than silently falling back to the raw string.
|
|
506
|
+
- Fully backwards-compatible: with no codec, behavior is identical (string in,
|
|
507
|
+
string out).
|
|
508
|
+
|
|
423
509
|
### Hooks
|
|
424
510
|
|
|
425
511
|
Feathers.js-inspired hooks with `before` / `after` / `error` phases:
|
package/dist/crypto.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAE7D;;GAEG;AACH,qBAAa,kBAAmB,YAAW,WAAW;IACpD,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,IAAI,CAAqB;gBAErB,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM;IAYvC,MAAM,CAAC,KAAK,GAAE,MAAkB,GAAG,OAAO,CAAC,SAAS,CAAC;CAoC5D;AAED;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CASzD;AAED;;;GAGG;AACH,wBAAsB,OAAO,CAC3B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,WAAW,EACxB,KAAK,GAAE,MAAkB,GACxB,OAAO,CAAC,MAAM,CAAC,CAyBjB;AAED;;GAEG;AACH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,MAAM,CAAC,CAyCjB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpE,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,SAAS,cAAc,EAAE,EAClC,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAE7D;;GAEG;AACH,qBAAa,kBAAmB,YAAW,WAAW;IACpD,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,IAAI,CAAqB;gBAErB,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM;IAYvC,MAAM,CAAC,KAAK,GAAE,MAAkB,GAAG,OAAO,CAAC,SAAS,CAAC;CAoC5D;AAED;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CASzD;AAED;;;GAGG;AACH,wBAAsB,OAAO,CAC3B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,WAAW,EACxB,KAAK,GAAE,MAAkB,GACxB,OAAO,CAAC,MAAM,CAAC,CAyBjB;AAED;;GAEG;AACH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,MAAM,CAAC,CAyCjB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpE,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,SAAS,cAAc,EAAE,EAClC,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAmClC;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpE,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,SAAS,cAAc,EAAE,EAClC,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAmClC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,GAAG,MAAM,EAAE,CAE7E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,SAAS,cAAc,EAAE,GACjC,MAAM,EAAE,CAEV"}
|
package/dist/crypto.js
CHANGED
|
@@ -101,15 +101,26 @@ export async function decrypt(packed, keyProvider) {
|
|
|
101
101
|
export async function encryptSecrets(data, secrets, keyProvider) {
|
|
102
102
|
const result = { ...data };
|
|
103
103
|
for (const secret of secrets) {
|
|
104
|
-
const { logicalName, columnName, keyId = 'default' } = secret;
|
|
104
|
+
const { logicalName, columnName, keyId = 'default', serialize } = secret;
|
|
105
105
|
const value = data[logicalName];
|
|
106
106
|
if (value !== undefined && value !== null) {
|
|
107
|
-
|
|
107
|
+
// Run the optional codec first; default is identity (string passthrough).
|
|
108
|
+
let plaintext = value;
|
|
109
|
+
if (serialize) {
|
|
110
|
+
try {
|
|
111
|
+
plaintext = serialize(value);
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
throw new EncryptionError(`Failed to serialize secret field "${logicalName}"`, { logicalName, error });
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
// Guard after serialize: the value to encrypt must be a string.
|
|
118
|
+
if (typeof plaintext !== 'string') {
|
|
108
119
|
throw new EncryptionError(`Secret field "${logicalName}" must be a string`, { logicalName, value });
|
|
109
120
|
}
|
|
110
121
|
// Replace logical field with encrypted column
|
|
111
122
|
delete result[logicalName];
|
|
112
|
-
result[columnName] = await encrypt(
|
|
123
|
+
result[columnName] = await encrypt(plaintext, keyProvider, keyId);
|
|
113
124
|
}
|
|
114
125
|
}
|
|
115
126
|
return result;
|
|
@@ -120,7 +131,7 @@ export async function encryptSecrets(data, secrets, keyProvider) {
|
|
|
120
131
|
export async function decryptSecrets(data, secrets, keyProvider) {
|
|
121
132
|
const result = { ...data };
|
|
122
133
|
for (const secret of secrets) {
|
|
123
|
-
const { logicalName, columnName } = secret;
|
|
134
|
+
const { logicalName, columnName, deserialize } = secret;
|
|
124
135
|
const encryptedValue = data[columnName];
|
|
125
136
|
if (encryptedValue !== undefined && encryptedValue !== null) {
|
|
126
137
|
if (typeof encryptedValue !== 'string') {
|
|
@@ -128,7 +139,19 @@ export async function decryptSecrets(data, secrets, keyProvider) {
|
|
|
128
139
|
}
|
|
129
140
|
// Replace encrypted column with decrypted logical field
|
|
130
141
|
delete result[columnName];
|
|
131
|
-
|
|
142
|
+
const raw = await decrypt(encryptedValue, keyProvider);
|
|
143
|
+
// Run the optional codec last; default is identity (string passthrough).
|
|
144
|
+
if (deserialize) {
|
|
145
|
+
try {
|
|
146
|
+
result[logicalName] = deserialize(raw);
|
|
147
|
+
}
|
|
148
|
+
catch (error) {
|
|
149
|
+
throw new EncryptionError(`Failed to deserialize secret field "${columnName}"`, { columnName, error });
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
result[logicalName] = raw;
|
|
154
|
+
}
|
|
132
155
|
}
|
|
133
156
|
}
|
|
134
157
|
return result;
|
package/dist/crypto.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* - Safe SQL generation
|
|
13
13
|
*/
|
|
14
14
|
export { Service } from './service.js';
|
|
15
|
-
export type { AuthContext, BaseCtx, BaseService, ComputeJoins, CountParams, CreateParams, CursorToken, Database, ExecResult, PreparedStatement, QueryResult, DeleteParams, ErrorCtx, GetParams, Hook, HookMap, HookPhase, JoinDef, JoinKind, KeyProvider, ListParams, ListResult, MethodName, MethodOptions, OrderBy, OrderDirection, QueryParams, SecretFieldDef, ServiceCreate, ServiceDeps, ServiceOptions, ServiceRow, TimestampConfig, ServiceUpdate, UpdateParams, } from './types.js';
|
|
15
|
+
export type { AuthContext, BaseCtx, BaseService, ComputeJoins, CountParams, CreateParams, CursorToken, Database, ExecResult, PreparedStatement, QueryResult, DeleteParams, ErrorCtx, GetParams, Hook, HookMap, HookPhase, JoinDef, JoinKind, KeyProvider, ListParams, ListResult, MethodName, MethodOptions, OrderBy, OrderDirection, QueryParams, SecretFieldDef, SelectedRow, SelectField, ServiceCreate, ServiceDeps, ServiceOptions, ServiceRow, TimestampConfig, ServiceUpdate, UpdateParams, } from './types.js';
|
|
16
16
|
export { AuthError, CursorError, DatabaseError, DependencyError, EncryptionError, HookError, NotFoundError, ServiceError, SqlBuilderError, ValidationError, } from './errors.js';
|
|
17
17
|
export { decrypt, decryptSecrets, DefaultKeyProvider, encrypt, encryptSecrets, generateSecretKey, getSecretColumns, getSecretLogicalNames, } from './crypto.js';
|
|
18
18
|
export { buildCursorConditions, createCursor, decodeCursor, encodeCursor, getDefaultOrderBy, reverseOrderBy, validateOrderBy, } from './pagination.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAItC,YAAY,EACV,WAAW,EACX,OAAO,EACP,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,WAAW,EAEX,QAAQ,EACR,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,OAAO,EACP,SAAS,EAET,OAAO,EACP,QAAQ,EACR,WAAW,EAEX,UAAU,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,OAAO,EACP,cAAc,EACd,WAAW,EACX,cAAc,EACd,aAAa,EACb,WAAW,EACX,cAAc,EAEd,UAAU,EACV,eAAe,EACf,aAAa,EACb,YAAY,GACb,MAAM,YAAY,CAAA;AAGnB,OAAO,EACL,SAAS,EACT,WAAW,EACX,aAAa,EACb,eAAe,EACf,eAAe,EACf,SAAS,EACT,aAAa,EACb,YAAY,EACZ,eAAe,EACf,eAAe,GAChB,MAAM,aAAa,CAAA;AAGpB,OAAO,EACL,OAAO,EACP,cAAc,EACd,kBAAkB,EAClB,OAAO,EACP,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,aAAa,CAAA;AAGpB,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,eAAe,GAChB,MAAM,iBAAiB,CAAA;AAGxB,OAAO,EACL,UAAU,EACV,WAAW,EACX,WAAW,EACX,WAAW,EACX,eAAe,EACf,WAAW,EACX,YAAY,EACZ,WAAW,GACZ,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAA;AAC7E,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,qBAAqB,CAAA;AAG5B,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAA;AAE3B;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,aAAa,CAC3B,IAAI,SAAS,OAAO,QAAQ,EAAE,UAAU,EACxC,OAAO,SAAS,OAAO,QAAQ,EAAE,UAAU,EAC3C,OAAO,SAAS,OAAO,QAAQ,EAAE,UAAU,EAC3C,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,YAAY,EAAE,OAAO,CAAC,GAAG,MAAM,CAClE,MAAM,EACN,KAAK,CACN,EACD,QAAQ,SACJ,SAAS,OAAO,YAAY,EAAE,cAAc,EAAE,GAC9C,SAAS,GAAG,SAAS,EAEzB,OAAO,EAAE,OAAO,YAAY,EAAE,cAAc,CAC1C,IAAI,EACJ,OAAO,EACP,OAAO,EACP,MAAM,EACN,QAAQ,CACT,GACA,OAAO,cAAc,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAE1E;;;;AAGD,wBAEC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAItC,YAAY,EACV,WAAW,EACX,OAAO,EACP,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,WAAW,EAEX,QAAQ,EACR,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,OAAO,EACP,SAAS,EAET,OAAO,EACP,QAAQ,EACR,WAAW,EAEX,UAAU,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,OAAO,EACP,cAAc,EACd,WAAW,EACX,cAAc,EACd,WAAW,EACX,WAAW,EACX,aAAa,EACb,WAAW,EACX,cAAc,EAEd,UAAU,EACV,eAAe,EACf,aAAa,EACb,YAAY,GACb,MAAM,YAAY,CAAA;AAGnB,OAAO,EACL,SAAS,EACT,WAAW,EACX,aAAa,EACb,eAAe,EACf,eAAe,EACf,SAAS,EACT,aAAa,EACb,YAAY,EACZ,eAAe,EACf,eAAe,GAChB,MAAM,aAAa,CAAA;AAGpB,OAAO,EACL,OAAO,EACP,cAAc,EACd,kBAAkB,EAClB,OAAO,EACP,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,aAAa,CAAA;AAGpB,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,eAAe,GAChB,MAAM,iBAAiB,CAAA;AAGxB,OAAO,EACL,UAAU,EACV,WAAW,EACX,WAAW,EACX,WAAW,EACX,eAAe,EACf,WAAW,EACX,YAAY,EACZ,WAAW,GACZ,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAA;AAC7E,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,qBAAqB,CAAA;AAG5B,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAA;AAE3B;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,aAAa,CAC3B,IAAI,SAAS,OAAO,QAAQ,EAAE,UAAU,EACxC,OAAO,SAAS,OAAO,QAAQ,EAAE,UAAU,EAC3C,OAAO,SAAS,OAAO,QAAQ,EAAE,UAAU,EAC3C,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,YAAY,EAAE,OAAO,CAAC,GAAG,MAAM,CAClE,MAAM,EACN,KAAK,CACN,EACD,QAAQ,SACJ,SAAS,OAAO,YAAY,EAAE,cAAc,EAAE,GAC9C,SAAS,GAAG,SAAS,EAEzB,OAAO,EAAE,OAAO,YAAY,EAAE,cAAc,CAC1C,IAAI,EACJ,OAAO,EACP,OAAO,EACP,MAAM,EACN,QAAQ,CACT,GACA,OAAO,cAAc,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAE1E;;;;AAGD,wBAEC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,qBAAqB;AACrB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,qBAAqB;AACrB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AA+CtC,gBAAgB;AAChB,OAAO,EACL,SAAS,EACT,WAAW,EACX,aAAa,EACb,eAAe,EACf,eAAe,EACf,SAAS,EACT,aAAa,EACb,YAAY,EACZ,eAAe,EACf,eAAe,GAChB,MAAM,aAAa,CAAA;AAEpB,uBAAuB;AACvB,OAAO,EACL,OAAO,EACP,cAAc,EACd,kBAAkB,EAClB,OAAO,EACP,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,aAAa,CAAA;AAEpB,uBAAuB;AACvB,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,eAAe,GAChB,MAAM,iBAAiB,CAAA;AAExB,wBAAwB;AACxB,OAAO,EACL,UAAU,EACV,WAAW,EACX,WAAW,EACX,WAAW,EACX,eAAe,EACf,WAAW,EACX,YAAY,EACZ,WAAW,GACZ,MAAM,kBAAkB,CAAA;AAEzB,oBAAoB;AACpB,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAA;AAQ7E,mCAAmC;AACnC,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAA;AAE3B;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,aAAa,CAY3B,OAMC;IAED,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;AAC7B,CAAC;AAED,iCAAiC;AACjC,eAAe;IACb,aAAa;CACd,CAAA"}
|
package/dist/service.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { z } from 'zod/v4';
|
|
2
|
-
import type { BaseCtx, BaseService, ComputeJoins, CountParams, CreateParams, Database, DeleteParams, GetParams, JoinDef, KeyProvider, ListParams, ListResult, MethodOptions, OrderBy, QueryParams, SecretFieldDef, ServiceOptions, TimestampConfig, UpdateParams } from './types.js';
|
|
2
|
+
import type { BaseCtx, BaseService, ComputeJoins, CountParams, CreateParams, Database, DeleteParams, GetParams, JoinDef, KeyProvider, ListParams, ListResult, MethodOptions, OrderBy, QueryParams, SecretFieldDef, SelectedRow, SelectField, ServiceOptions, TimestampConfig, UpdateParams } from './types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Main service class that provides type-safe data access for SQLite databases
|
|
5
5
|
*/
|
|
@@ -21,23 +21,66 @@ export declare class Service<TRow extends z.ZodTypeAny, TCreate extends z.ZodTyp
|
|
|
21
21
|
constructor(options: ServiceOptions<TRow, TCreate, TUpdate, TJoins, TSecrets>);
|
|
22
22
|
private stripSecretKeys;
|
|
23
23
|
private extractSecretFields;
|
|
24
|
+
/**
|
|
25
|
+
* Parse a `select` array into main-row columns and per-join column overrides.
|
|
26
|
+
*
|
|
27
|
+
* Tokens:
|
|
28
|
+
* - `'col'` → main row column
|
|
29
|
+
* - `'$alias.col'` → column from the join named `alias`
|
|
30
|
+
* - `'$alias'` → all configured columns for the join named `alias`
|
|
31
|
+
*
|
|
32
|
+
* Validates that:
|
|
33
|
+
* - Main columns exist in the row schema (when shape is available).
|
|
34
|
+
* - `$alias` references a configured join AND the join is enabled via
|
|
35
|
+
* `include[alias] = true`. We require explicit include so the return
|
|
36
|
+
* type (which is keyed off `include`) stays accurate.
|
|
37
|
+
*/
|
|
38
|
+
private parseSelect;
|
|
39
|
+
/**
|
|
40
|
+
* Compute the effective list of columns to SELECT from the main table.
|
|
41
|
+
*
|
|
42
|
+
* The user's main-row select is augmented with the primary key columns and
|
|
43
|
+
* any `orderBy` columns so cursor pagination keeps working and so the
|
|
44
|
+
* canonical record is always identifiable. These extras are kept in the
|
|
45
|
+
* returned row (per the design choice "silently include and keep").
|
|
46
|
+
*/
|
|
47
|
+
private resolveMainColumns;
|
|
48
|
+
/**
|
|
49
|
+
* Compute the effective per-join column override map.
|
|
50
|
+
*
|
|
51
|
+
* For each enabled join: if the user asked for specific columns via
|
|
52
|
+
* `$alias.col`, use those; if they used a bare `$alias`, fall back to the
|
|
53
|
+
* join's configured `remote.select`. Joins with no override aren't returned
|
|
54
|
+
* (so `buildSelect` keeps using the configured select for them).
|
|
55
|
+
*
|
|
56
|
+
* The join's PK is silently included so `processJoinedRows` can detect the
|
|
57
|
+
* presence of related data.
|
|
58
|
+
*/
|
|
59
|
+
private resolveJoinOverrides;
|
|
60
|
+
/**
|
|
61
|
+
* Ensure each secret's optional codec is symmetric: `serialize` and
|
|
62
|
+
* `deserialize` must be provided together or not at all. An asymmetric
|
|
63
|
+
* codec (e.g. JSON-encode on write but raw-string on read) silently
|
|
64
|
+
* corrupts round-trips, so we fail fast at construction time.
|
|
65
|
+
*/
|
|
66
|
+
private validateSecretCodecs;
|
|
24
67
|
private validateSecretsNotInRowSchema;
|
|
25
68
|
/**
|
|
26
69
|
* List records with cursor-based pagination
|
|
27
70
|
*/
|
|
28
|
-
list(params?: ListParams & MethodOptions): Promise<ListResult<z.infer<TRow> & ComputeJoins<TJoins, ListParams['include']>>>;
|
|
71
|
+
list<const TSelect extends readonly SelectField[] | undefined = undefined>(params?: ListParams<TSelect> & MethodOptions): Promise<ListResult<SelectedRow<z.infer<TRow>, TSelect> & ComputeJoins<TJoins, ListParams['include']>>>;
|
|
29
72
|
/**
|
|
30
73
|
* Get a single record by ID
|
|
31
74
|
*/
|
|
32
|
-
get(id: string | number, opts?: GetParams & MethodOptions): Promise<(z.infer<TRow> & ComputeJoins<TJoins, GetParams['include']>) | null>;
|
|
75
|
+
get<const TSelect extends readonly SelectField[] | undefined = undefined>(id: string | number, opts?: GetParams<TSelect> & MethodOptions): Promise<(SelectedRow<z.infer<TRow>, TSelect> & ComputeJoins<TJoins, GetParams['include']>) | null>;
|
|
33
76
|
/**
|
|
34
77
|
* Create a new record
|
|
35
78
|
*/
|
|
36
|
-
create(data: z.infer<TCreate>, opts?: CreateParams & MethodOptions): Promise<z.infer<TRow> & ComputeJoins<TJoins, CreateParams['include']>>;
|
|
79
|
+
create<const TSelect extends readonly SelectField[] | undefined = undefined>(data: z.infer<TCreate>, opts?: CreateParams<TSelect> & MethodOptions): Promise<SelectedRow<z.infer<TRow>, TSelect> & ComputeJoins<TJoins, CreateParams['include']>>;
|
|
37
80
|
/**
|
|
38
81
|
* Update a record by ID
|
|
39
82
|
*/
|
|
40
|
-
update(id: string | number, data: Partial<z.infer<TUpdate>>, opts?: UpdateParams & MethodOptions): Promise<(z.infer<TRow> & ComputeJoins<TJoins, UpdateParams['include']>) | null>;
|
|
83
|
+
update<const TSelect extends readonly SelectField[] | undefined = undefined>(id: string | number, data: Partial<z.infer<TUpdate>>, opts?: UpdateParams<TSelect> & MethodOptions): Promise<(SelectedRow<z.infer<TRow>, TSelect> & ComputeJoins<TJoins, UpdateParams['include']>) | null>;
|
|
41
84
|
/**
|
|
42
85
|
* Delete a record by ID
|
|
43
86
|
*/
|
|
@@ -75,6 +118,28 @@ export declare class Service<TRow extends z.ZodTypeAny, TCreate extends z.ZodTyp
|
|
|
75
118
|
* Decrypt secrets in a row
|
|
76
119
|
*/
|
|
77
120
|
private decryptRowSecrets;
|
|
121
|
+
/**
|
|
122
|
+
* Project a processed row down to the caller-requested subset.
|
|
123
|
+
*
|
|
124
|
+
* Callers must pass a row that has already been through
|
|
125
|
+
* `processJoinedRows` (and, for `get()`, `fetchOneToManyJoins`). That means
|
|
126
|
+
* it contains exactly:
|
|
127
|
+
* parsed.mainColumns + primary key + orderBy + secret columns
|
|
128
|
+
* + nested join data under each join key (object | array | null).
|
|
129
|
+
*
|
|
130
|
+
* Here we only need to:
|
|
131
|
+
* 1. Drop the raw secret column names (e.g. `api_key_encrypted`) — those
|
|
132
|
+
* are surfaced under the logicalName when `includeSecrets` is true.
|
|
133
|
+
* 2. Merge in decrypted logical secrets when `includeSecrets` is true.
|
|
134
|
+
*
|
|
135
|
+
* Zod validation is intentionally skipped — selecting a subset would
|
|
136
|
+
* otherwise fail required-field checks.
|
|
137
|
+
*
|
|
138
|
+
* The `include` parameter is currently unused but kept on the signature
|
|
139
|
+
* for symmetry with other helpers and to make future per-join projection
|
|
140
|
+
* easy to thread in.
|
|
141
|
+
*/
|
|
142
|
+
private projectRow;
|
|
78
143
|
/**
|
|
79
144
|
* Process joined rows by extracting join data
|
|
80
145
|
*/
|
package/dist/service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAyB/B,OAAO,KAAK,EACV,OAAO,EACP,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,SAAS,EAET,OAAO,EACP,WAAW,EACX,UAAU,EACV,UAAU,EACV,aAAa,EACb,OAAO,EACP,WAAW,EACX,cAAc,EACd,cAAc,EACd,eAAe,EACf,YAAY,EACb,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|
package/dist/service.js
CHANGED
|
@@ -45,6 +45,7 @@ export class Service {
|
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
this.validateSecretsNotInRowSchema();
|
|
48
|
+
this.validateSecretCodecs();
|
|
48
49
|
}
|
|
49
50
|
stripSecretKeys(row) {
|
|
50
51
|
if (this.secretKeysToStrip.size === 0)
|
|
@@ -66,6 +67,156 @@ export class Service {
|
|
|
66
67
|
}
|
|
67
68
|
return fields;
|
|
68
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* Parse a `select` array into main-row columns and per-join column overrides.
|
|
72
|
+
*
|
|
73
|
+
* Tokens:
|
|
74
|
+
* - `'col'` → main row column
|
|
75
|
+
* - `'$alias.col'` → column from the join named `alias`
|
|
76
|
+
* - `'$alias'` → all configured columns for the join named `alias`
|
|
77
|
+
*
|
|
78
|
+
* Validates that:
|
|
79
|
+
* - Main columns exist in the row schema (when shape is available).
|
|
80
|
+
* - `$alias` references a configured join AND the join is enabled via
|
|
81
|
+
* `include[alias] = true`. We require explicit include so the return
|
|
82
|
+
* type (which is keyed off `include`) stays accurate.
|
|
83
|
+
*/
|
|
84
|
+
parseSelect(select, include) {
|
|
85
|
+
if (!select || select.length === 0)
|
|
86
|
+
return undefined;
|
|
87
|
+
const mainSet = new Set();
|
|
88
|
+
const joinAcc = {};
|
|
89
|
+
const allowedMain = this.getSchemaColumns();
|
|
90
|
+
const wildcard = allowedMain.length === 1 && allowedMain[0] === '*';
|
|
91
|
+
const joinNames = this.joins ? new Set(Object.keys(this.joins)) : new Set();
|
|
92
|
+
for (const raw of select) {
|
|
93
|
+
if (typeof raw !== 'string' || raw.length === 0) {
|
|
94
|
+
throw new ValidationError(`Invalid select token: ${JSON.stringify(raw)}. Expected a non-empty string.`);
|
|
95
|
+
}
|
|
96
|
+
if (raw.startsWith('$')) {
|
|
97
|
+
const body = raw.slice(1);
|
|
98
|
+
const dot = body.indexOf('.');
|
|
99
|
+
const alias = dot === -1 ? body : body.slice(0, dot);
|
|
100
|
+
const column = dot === -1 ? undefined : body.slice(dot + 1);
|
|
101
|
+
if (!alias) {
|
|
102
|
+
throw new ValidationError(`Invalid select token "${raw}": missing alias name after '$'.`);
|
|
103
|
+
}
|
|
104
|
+
if (!joinNames.has(alias)) {
|
|
105
|
+
throw new ValidationError(`Unknown join alias "${alias}" in select token "${raw}". Configured joins: ${Array.from(joinNames).join(', ') || '<none>'}.`);
|
|
106
|
+
}
|
|
107
|
+
if (!include[alias]) {
|
|
108
|
+
throw new ValidationError(`select token "${raw}" requires include.${alias} = true.`);
|
|
109
|
+
}
|
|
110
|
+
if (column === undefined) {
|
|
111
|
+
joinAcc[alias] = '*';
|
|
112
|
+
}
|
|
113
|
+
else if (!column) {
|
|
114
|
+
throw new ValidationError(`Invalid select token "${raw}": missing column name after '$${alias}.'.`);
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
const existing = joinAcc[alias];
|
|
118
|
+
if (existing === '*') {
|
|
119
|
+
// already wildcard; keep wildcard
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
122
|
+
if (!existing) {
|
|
123
|
+
joinAcc[alias] = new Set([column]);
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
existing.add(column);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
if (!wildcard && !allowedMain.includes(raw)) {
|
|
132
|
+
throw new ValidationError(`Unknown column "${raw}" in select. Allowed columns: ${allowedMain.join(', ')}.`);
|
|
133
|
+
}
|
|
134
|
+
mainSet.add(raw);
|
|
135
|
+
}
|
|
136
|
+
const joinColumns = {};
|
|
137
|
+
for (const [alias, value] of Object.entries(joinAcc)) {
|
|
138
|
+
joinColumns[alias] = value === '*' ? '*' : Array.from(value);
|
|
139
|
+
}
|
|
140
|
+
return {
|
|
141
|
+
mainColumns: Array.from(mainSet),
|
|
142
|
+
joinColumns,
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Compute the effective list of columns to SELECT from the main table.
|
|
147
|
+
*
|
|
148
|
+
* The user's main-row select is augmented with the primary key columns and
|
|
149
|
+
* any `orderBy` columns so cursor pagination keeps working and so the
|
|
150
|
+
* canonical record is always identifiable. These extras are kept in the
|
|
151
|
+
* returned row (per the design choice "silently include and keep").
|
|
152
|
+
*/
|
|
153
|
+
resolveMainColumns(parsed, orderBy, includeSecrets) {
|
|
154
|
+
if (!parsed)
|
|
155
|
+
return this.getSelectColumns(includeSecrets);
|
|
156
|
+
const out = new Set(parsed.mainColumns);
|
|
157
|
+
for (const pk of Array.isArray(this.primaryKey)
|
|
158
|
+
? this.primaryKey
|
|
159
|
+
: [this.primaryKey]) {
|
|
160
|
+
out.add(pk);
|
|
161
|
+
}
|
|
162
|
+
for (const order of orderBy) {
|
|
163
|
+
out.add(order.column);
|
|
164
|
+
}
|
|
165
|
+
if (includeSecrets && this.secrets) {
|
|
166
|
+
for (const s of this.secrets) {
|
|
167
|
+
out.add(s.columnName);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
return Array.from(out);
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Compute the effective per-join column override map.
|
|
174
|
+
*
|
|
175
|
+
* For each enabled join: if the user asked for specific columns via
|
|
176
|
+
* `$alias.col`, use those; if they used a bare `$alias`, fall back to the
|
|
177
|
+
* join's configured `remote.select`. Joins with no override aren't returned
|
|
178
|
+
* (so `buildSelect` keeps using the configured select for them).
|
|
179
|
+
*
|
|
180
|
+
* The join's PK is silently included so `processJoinedRows` can detect the
|
|
181
|
+
* presence of related data.
|
|
182
|
+
*/
|
|
183
|
+
resolveJoinOverrides(parsed, include) {
|
|
184
|
+
if (!parsed || !this.joins)
|
|
185
|
+
return undefined;
|
|
186
|
+
const overrides = {};
|
|
187
|
+
for (const [alias, value] of Object.entries(parsed.joinColumns)) {
|
|
188
|
+
if (!include[alias])
|
|
189
|
+
continue;
|
|
190
|
+
const def = this.joins[alias];
|
|
191
|
+
if (!def)
|
|
192
|
+
continue;
|
|
193
|
+
if (value === '*')
|
|
194
|
+
continue; // use configured remote.select
|
|
195
|
+
const cols = new Set(value);
|
|
196
|
+
cols.add(def.remote.pk);
|
|
197
|
+
overrides[alias] = Array.from(cols);
|
|
198
|
+
}
|
|
199
|
+
return Object.keys(overrides).length > 0 ? overrides : undefined;
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Ensure each secret's optional codec is symmetric: `serialize` and
|
|
203
|
+
* `deserialize` must be provided together or not at all. An asymmetric
|
|
204
|
+
* codec (e.g. JSON-encode on write but raw-string on read) silently
|
|
205
|
+
* corrupts round-trips, so we fail fast at construction time.
|
|
206
|
+
*/
|
|
207
|
+
validateSecretCodecs() {
|
|
208
|
+
if (!this.secrets)
|
|
209
|
+
return;
|
|
210
|
+
for (const secret of this.secrets) {
|
|
211
|
+
const hasSerialize = typeof secret.serialize === 'function';
|
|
212
|
+
const hasDeserialize = typeof secret.deserialize === 'function';
|
|
213
|
+
if (hasSerialize !== hasDeserialize) {
|
|
214
|
+
throw new ValidationError(`Secret field '${secret.logicalName}' must define both 'serialize' and ` +
|
|
215
|
+
`'deserialize' or neither — found only ` +
|
|
216
|
+
`'${hasSerialize ? 'serialize' : 'deserialize'}'.`);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
69
220
|
validateSecretsNotInRowSchema() {
|
|
70
221
|
if (!this.secrets)
|
|
71
222
|
return;
|
|
@@ -98,7 +249,7 @@ export class Service {
|
|
|
98
249
|
};
|
|
99
250
|
try {
|
|
100
251
|
await this.runHooks('before', 'list', ctx);
|
|
101
|
-
const { cursor, limit = 50, orderBy: paramOrderBy, where = {}, include = {}, includeSecrets = false, } = params;
|
|
252
|
+
const { cursor, limit = 50, orderBy: paramOrderBy, where = {}, include = {}, includeSecrets = false, select, } = params;
|
|
102
253
|
// Validate limit
|
|
103
254
|
if (limit > 1000) {
|
|
104
255
|
throw new ValidationError('Limit cannot exceed 1000');
|
|
@@ -133,14 +284,16 @@ export class Service {
|
|
|
133
284
|
throw new ValidationError(`Invalid cursor: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
134
285
|
}
|
|
135
286
|
}
|
|
136
|
-
|
|
137
|
-
const columns = this.
|
|
287
|
+
const parsedSelect = this.parseSelect(select, include);
|
|
288
|
+
const columns = this.resolveMainColumns(parsedSelect, orderBy, includeSecrets);
|
|
289
|
+
const joinColumnOverrides = this.resolveJoinOverrides(parsedSelect, include);
|
|
138
290
|
// Build and execute query
|
|
139
291
|
const { text: query, values: sqlParams } = buildSelect(this.table, {
|
|
140
|
-
columns,
|
|
292
|
+
...(columns ? { columns } : {}),
|
|
141
293
|
where,
|
|
142
294
|
...(this.joins ? { joins: this.joins } : {}),
|
|
143
295
|
include,
|
|
296
|
+
...(joinColumnOverrides ? { joinColumnOverrides } : {}),
|
|
144
297
|
orderBy,
|
|
145
298
|
limit: actualLimit,
|
|
146
299
|
...(cursorConditions ? { cursorConditions } : {}),
|
|
@@ -160,11 +313,17 @@ export class Service {
|
|
|
160
313
|
if (includeSecrets && this.secrets) {
|
|
161
314
|
rows = await Promise.all(rows.map((row) => this.decryptRowSecrets(row)));
|
|
162
315
|
}
|
|
163
|
-
// Process joins
|
|
164
|
-
const processedRows = this.processJoinedRows(rows, include);
|
|
165
|
-
// Validate rows
|
|
316
|
+
// Process joins (honour per-call join column overrides)
|
|
317
|
+
const processedRows = this.processJoinedRows(rows, include, joinColumnOverrides);
|
|
318
|
+
// Validate rows. When `select` is provided we project to the requested
|
|
319
|
+
// subset and skip full schema validation (Zod would fail on missing
|
|
320
|
+
// required fields). PK + orderBy columns are always present because
|
|
321
|
+
// resolveMainColumns added them.
|
|
166
322
|
const validatedRows = processedRows.map((row) => {
|
|
167
323
|
const r = row;
|
|
324
|
+
if (parsedSelect) {
|
|
325
|
+
return this.projectRow(r, include, includeSecrets);
|
|
326
|
+
}
|
|
168
327
|
const validated = this.rowSchema.parse(this.stripSecretKeys(r));
|
|
169
328
|
return includeSecrets
|
|
170
329
|
? {
|
|
@@ -214,14 +373,16 @@ export class Service {
|
|
|
214
373
|
};
|
|
215
374
|
try {
|
|
216
375
|
await this.runHooks('before', 'get', ctx);
|
|
217
|
-
const { include = {}, includeSecrets = false } = opts;
|
|
218
|
-
|
|
219
|
-
const columns = this.
|
|
376
|
+
const { include = {}, includeSecrets = false, select } = opts;
|
|
377
|
+
const parsedSelect = this.parseSelect(select, include);
|
|
378
|
+
const columns = this.resolveMainColumns(parsedSelect, [], includeSecrets);
|
|
379
|
+
const joinColumnOverrides = this.resolveJoinOverrides(parsedSelect, include);
|
|
220
380
|
// Build and execute query
|
|
221
381
|
const { text: query, values: params } = buildSelectById(this.table, this.primaryKey, id, {
|
|
222
|
-
columns,
|
|
382
|
+
...(columns ? { columns } : {}),
|
|
223
383
|
...(this.joins ? { joins: this.joins } : {}),
|
|
224
384
|
include,
|
|
385
|
+
...(joinColumnOverrides ? { joinColumnOverrides } : {}),
|
|
225
386
|
});
|
|
226
387
|
const stmt = this.db.prepare(query);
|
|
227
388
|
const result = await stmt.bind(...params).first();
|
|
@@ -235,19 +396,29 @@ export class Service {
|
|
|
235
396
|
if (includeSecrets && this.secrets) {
|
|
236
397
|
row = await this.decryptRowSecrets(row);
|
|
237
398
|
}
|
|
238
|
-
// Process joins
|
|
239
|
-
let processedRow = this.processJoinedRows([row], include)[0];
|
|
399
|
+
// Process joins (honour per-call join column overrides)
|
|
400
|
+
let processedRow = this.processJoinedRows([row], include, joinColumnOverrides)[0];
|
|
240
401
|
// Handle one-to-many joins with separate queries
|
|
241
402
|
if (this.joins && Object.keys(include).length > 0) {
|
|
242
|
-
processedRow = await this.fetchOneToManyJoins(processedRow, include, id);
|
|
243
|
-
}
|
|
244
|
-
//
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
403
|
+
processedRow = await this.fetchOneToManyJoins(processedRow, include, id, joinColumnOverrides);
|
|
404
|
+
}
|
|
405
|
+
// When `select` was provided, project to the requested subset rather
|
|
406
|
+
// than running Zod validation (which would fail on missing required
|
|
407
|
+
// fields). Otherwise validate the full row through the schema.
|
|
408
|
+
let validatedRow;
|
|
409
|
+
if (parsedSelect) {
|
|
410
|
+
// processedRow already has aliased join keys removed and join data
|
|
411
|
+
// attached via processJoinedRows + fetchOneToManyJoins.
|
|
412
|
+
validatedRow = this.projectRow(processedRow, include, includeSecrets);
|
|
413
|
+
}
|
|
414
|
+
else {
|
|
415
|
+
const baseRow = this.rowSchema.parse(this.stripSecretKeys(row));
|
|
416
|
+
validatedRow = {
|
|
417
|
+
...baseRow,
|
|
418
|
+
...(includeSecrets ? this.extractSecretFields(row) : {}),
|
|
419
|
+
...this.extractJoinData(processedRow, include),
|
|
420
|
+
};
|
|
421
|
+
}
|
|
251
422
|
ctx.result = validatedRow;
|
|
252
423
|
await this.runHooks('after', 'get', ctx);
|
|
253
424
|
return validatedRow;
|
|
@@ -272,7 +443,7 @@ export class Service {
|
|
|
272
443
|
};
|
|
273
444
|
try {
|
|
274
445
|
await this.runHooks('before', 'create', ctx);
|
|
275
|
-
const { include = {}, includeSecrets = false } = opts;
|
|
446
|
+
const { include = {}, includeSecrets = false, select } = opts;
|
|
276
447
|
// Validate input data
|
|
277
448
|
const validatedData = this.createSchema.parse(data);
|
|
278
449
|
// Add timestamp fields if configured
|
|
@@ -309,6 +480,7 @@ export class Service {
|
|
|
309
480
|
const createdRecord = await this.get(insertId, {
|
|
310
481
|
include,
|
|
311
482
|
includeSecrets,
|
|
483
|
+
...(select ? { select } : {}),
|
|
312
484
|
auth: opts.auth,
|
|
313
485
|
});
|
|
314
486
|
if (!createdRecord) {
|
|
@@ -338,7 +510,7 @@ export class Service {
|
|
|
338
510
|
};
|
|
339
511
|
try {
|
|
340
512
|
await this.runHooks('before', 'update', ctx);
|
|
341
|
-
const { include = {}, includeSecrets = false } = opts;
|
|
513
|
+
const { include = {}, includeSecrets = false, select } = opts;
|
|
342
514
|
// Check if record exists
|
|
343
515
|
const existingRecord = await this.get(id, { auth: opts.auth });
|
|
344
516
|
if (!existingRecord) {
|
|
@@ -378,6 +550,7 @@ export class Service {
|
|
|
378
550
|
const updatedRecord = await this.get(id, {
|
|
379
551
|
include,
|
|
380
552
|
includeSecrets,
|
|
553
|
+
...(select ? { select } : {}),
|
|
381
554
|
auth: opts.auth,
|
|
382
555
|
});
|
|
383
556
|
ctx.result = updatedRecord;
|
|
@@ -583,10 +756,43 @@ export class Service {
|
|
|
583
756
|
return row;
|
|
584
757
|
return decryptSecrets(row, this.secrets, this.keyProvider);
|
|
585
758
|
}
|
|
759
|
+
/**
|
|
760
|
+
* Project a processed row down to the caller-requested subset.
|
|
761
|
+
*
|
|
762
|
+
* Callers must pass a row that has already been through
|
|
763
|
+
* `processJoinedRows` (and, for `get()`, `fetchOneToManyJoins`). That means
|
|
764
|
+
* it contains exactly:
|
|
765
|
+
* parsed.mainColumns + primary key + orderBy + secret columns
|
|
766
|
+
* + nested join data under each join key (object | array | null).
|
|
767
|
+
*
|
|
768
|
+
* Here we only need to:
|
|
769
|
+
* 1. Drop the raw secret column names (e.g. `api_key_encrypted`) — those
|
|
770
|
+
* are surfaced under the logicalName when `includeSecrets` is true.
|
|
771
|
+
* 2. Merge in decrypted logical secrets when `includeSecrets` is true.
|
|
772
|
+
*
|
|
773
|
+
* Zod validation is intentionally skipped — selecting a subset would
|
|
774
|
+
* otherwise fail required-field checks.
|
|
775
|
+
*
|
|
776
|
+
* The `include` parameter is currently unused but kept on the signature
|
|
777
|
+
* for symmetry with other helpers and to make future per-join projection
|
|
778
|
+
* easy to thread in.
|
|
779
|
+
*/
|
|
780
|
+
projectRow(row, _include, includeSecrets) {
|
|
781
|
+
const out = { ...row };
|
|
782
|
+
if (this.secrets) {
|
|
783
|
+
for (const s of this.secrets) {
|
|
784
|
+
delete out[s.columnName];
|
|
785
|
+
}
|
|
786
|
+
}
|
|
787
|
+
if (includeSecrets) {
|
|
788
|
+
Object.assign(out, this.extractSecretFields(row));
|
|
789
|
+
}
|
|
790
|
+
return out;
|
|
791
|
+
}
|
|
586
792
|
/**
|
|
587
793
|
* Process joined rows by extracting join data
|
|
588
794
|
*/
|
|
589
|
-
processJoinedRows(rows, include) {
|
|
795
|
+
processJoinedRows(rows, include, joinColumnOverrides) {
|
|
590
796
|
if (!this.joins || Object.keys(include).length === 0) {
|
|
591
797
|
return rows;
|
|
592
798
|
}
|
|
@@ -599,8 +805,8 @@ export class Service {
|
|
|
599
805
|
const joinAlias = joinDef.remote.alias || joinName;
|
|
600
806
|
const joinData = {};
|
|
601
807
|
const keysToRemove = [];
|
|
602
|
-
|
|
603
|
-
for (const column of
|
|
808
|
+
const effectiveCols = joinColumnOverrides?.[joinName] ?? joinDef.remote.select;
|
|
809
|
+
for (const column of effectiveCols) {
|
|
604
810
|
const aliasedKey = `${joinAlias}_${column}`;
|
|
605
811
|
if (aliasedKey in row) {
|
|
606
812
|
joinData[column] = row[aliasedKey];
|
|
@@ -644,7 +850,7 @@ export class Service {
|
|
|
644
850
|
/**
|
|
645
851
|
* Fetch one-to-many joins using separate queries
|
|
646
852
|
*/
|
|
647
|
-
async fetchOneToManyJoins(processedRow, include, mainRecordId) {
|
|
853
|
+
async fetchOneToManyJoins(processedRow, include, mainRecordId, joinColumnOverrides) {
|
|
648
854
|
if (!this.joins)
|
|
649
855
|
return processedRow;
|
|
650
856
|
const result = { ...processedRow };
|
|
@@ -652,8 +858,9 @@ export class Service {
|
|
|
652
858
|
if (!include[joinName] || joinDef.kind !== 'many')
|
|
653
859
|
continue;
|
|
654
860
|
let relatedRecords = [];
|
|
861
|
+
const effectiveCols = joinColumnOverrides?.[joinName] ?? joinDef.remote.select;
|
|
655
862
|
if (joinDef.through) {
|
|
656
|
-
const selectColumns =
|
|
863
|
+
const selectColumns = effectiveCols.map((col) => sql `${sql.ident(`${joinDef.remote.table}.${col}`)}`);
|
|
657
864
|
const query = sql `SELECT ${sql.join(selectColumns, ', ')}
|
|
658
865
|
FROM ${sql.ident(joinDef.remote.table)}
|
|
659
866
|
INNER JOIN ${sql.ident(joinDef.through.table)}
|
|
@@ -666,7 +873,7 @@ export class Service {
|
|
|
666
873
|
}
|
|
667
874
|
}
|
|
668
875
|
else {
|
|
669
|
-
const selectColumns =
|
|
876
|
+
const selectColumns = effectiveCols.map((col) => sql `${sql.ident(col)}`);
|
|
670
877
|
const query = sql `SELECT ${sql.join(selectColumns, ', ')}
|
|
671
878
|
FROM ${sql.ident(joinDef.remote.table)}
|
|
672
879
|
WHERE ${sql.ident(joinDef.remote.pk)} = ${mainRecordId}`;
|
package/dist/service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAA;AAE3C,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAChF,OAAO,EACL,aAAa,EACb,SAAS,EACT,aAAa,EACb,eAAe,GAChB,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,eAAe,GAChB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,UAAU,EACV,WAAW,EACX,WAAW,EACX,WAAW,EACX,eAAe,EACf,WAAW,GACZ,MAAM,kBAAkB,CAAA;AAwBzB;;GAEG;AACH,MAAM,OAAO,OAAO;IAQF,KAAK,CAAQ;IACb,EAAE,CAAU;IACZ,SAAS,CAAM;IACf,YAAY,CAAS;IACrB,YAAY,CAAS;IACrB,KAAK,CAAoB;IACzB,OAAO,CAAsB;IAC7B,UAAU,CAAmB;IAC7B,cAAc,CAAqB;IACnC,WAAW,CAAa;IACxB,IAAI,CAAsD;IAC1D,UAAU,CAA6B;IAEtC,KAAK,CAA2B;IAChC,iBAAiB,CAAa;IAE/C,YACE,OAAiE;QAEjE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;QAC1B,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAA;QACpB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAA;QAClC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAA;QACxC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAA;QACxC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;QAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAA+B,CAAA;QACtD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAA;QAChC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAA;QAC9B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,CAAA;QAC5C,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAA;QAC5C,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAA;QACpC,IAAI,CAAC,WAAW;YACd,OAAO,CAAC,WAAW;gBACnB,IAAI,kBAAkB,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC,CAAA;QAEtD,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAA;QAC1C,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC7B,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;gBACxC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;YAC3C,CAAC;QACH,CAAC;QAED,IAAI,CAAC,6BAA6B,EAAE,CAAA;IACtC,CAAC;IAEO,eAAe,CACrB,GAA4B;QAE5B,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,GAAG,CAAA;QACjD,MAAM,OAAO,GAAG,EAAE,GAAG,GAAG,EAAE,CAAA;QAC1B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAA;QACrB,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAEO,mBAAmB,CACzB,GAA4B;QAE5B,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAA;QAC5B,MAAM,MAAM,GAA4B,EAAE,CAAA;QAC1C,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC7B,IAAI,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,SAAS,EAAE,CAAC;gBACrC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;YAC5C,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAEO,6BAA6B;QACnC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAM;QAEzB,MAAM,KAAK,GAAI,IAAI,CAAC,SAAiB,CAAC,KAAK,CAAA;QAC3C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAM;QAE/C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;QAE9C,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;gBACtC,MAAM,IAAI,eAAe,CACvB,kBAAkB,MAAM,CAAC,UAAU,8CAA8C;oBAC/E,wFAAwF,CAC3F,CAAA;YACH,CAAC;YACD,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;gBACvC,MAAM,IAAI,eAAe,CACvB,iBAAiB,MAAM,CAAC,WAAW,+CAA+C;oBAChF,yFAAyF;oBACzF,2BAA2B,CAC9B,CAAA;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CACR,SAAqC,EAAE,IAAI,EAAE,EAAE,EAAE;QAIjD,MAAM,GAAG,GAAY;YACnB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,MAAM;YACd,MAAM;SACP,CAAA;QAED,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,CAAA;YAE1C,MAAM,EACJ,MAAM,EACN,KAAK,GAAG,EAAE,EACV,OAAO,EAAE,YAAY,EACrB,KAAK,GAAG,EAAE,EACV,OAAO,GAAG,EAAE,EACZ,cAAc,GAAG,KAAK,GACvB,GAAG,MAAM,CAAA;YAEV,iBAAiB;YACjB,IAAI,KAAK,GAAG,IAAI,EAAE,CAAC;gBACjB,MAAM,IAAI,eAAe,CAAC,0BAA0B,CAAC,CAAA;YACvD,CAAC;YAED,qBAAqB;YACrB,IAAI,OAAO,GACT,YAAY,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;YAEzE,kEAAkE;YAClE,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAA;YAC/C,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClC,eAAe,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;YAC1C,CAAC;YAED,2BAA2B;YAC3B,IAAI,gBAAoD,CAAA;YACxD,IAAI,WAAW,GAAG,KAAK,GAAG,CAAC,CAAA,CAAC,sDAAsD;YAElF,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC;oBACH,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;oBAExC,kCAAkC;oBAClC,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACnC,iEAAiE;wBACjE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;4BAClC,eAAe,CAAC,WAAW,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;wBACtD,CAAC;wBACD,OAAO;4BACL,WAAW,CAAC,SAAS,KAAK,MAAM;gCAC9B,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,OAAO,CAAC;gCACrC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAA;oBAC3B,CAAC;oBAED,gBAAgB,GAAG,qBAAqB,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;gBACnE,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,IAAI,eAAe,CACvB,mBAAmB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAC9E,CAAA;gBACH,CAAC;YACH,CAAC;YAED,oEAAoE;YACpE,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAA;YAErD,0BAA0B;YAC1B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;gBACjE,OAAO;gBACP,KAAK;gBACL,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5C,OAAO;gBACP,OAAO;gBACP,KAAK,EAAE,WAAW;gBAClB,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAClD,CAAC,CAAA;YAEF,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,EAAE,CAAA;YAElD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,IAAI,aAAa,CAAC,8BAA8B,CAAC,CAAA;YACzD,CAAC;YAED,IAAI,IAAI,GAAI,MAAM,CAAC,OAAqC,IAAI,EAAE,CAAA;YAE9D,kBAAkB;YAClB,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;YACvC,IAAI,WAAW,EAAE,CAAC;gBAChB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA,CAAC,uBAAuB;YACrD,CAAC;YAED,+BAA+B;YAC/B,IAAI,cAAc,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACnC,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YAC1E,CAAC;YAED,gBAAgB;YAChB,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YAE3D,4EAA4E;YAC5E,MAAM,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC9C,MAAM,CAAC,GAAG,GAA8B,CAAA;gBACxC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAA;gBAC/D,OAAO,cAAc;oBACnB,CAAC,CAAC;wBACE,GAAI,SAAqC;wBACzC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;qBAC/B;oBACH,CAAC,CAAC,SAAS,CAAA;YACf,CAAC,CAAC,CAAA;YAEF,mBAAmB;YACnB,IAAI,UAA8B,CAAA;YAClC,IAAI,UAA8B,CAAA;YAElC,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,OAAO,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAE,CAAA;oBACxD,UAAU,GAAG,YAAY,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;gBACnE,CAAC;gBAED,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAE,CAAA;oBAClC,UAAU,GAAG,YAAY,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;gBACpE,CAAC;YACH,CAAC;YAED,MAAM,UAAU,GAAoB;gBAClC,MAAM,EAAE,aAAa;gBACrB,UAAU;gBACV,UAAU;aACX,CAAA;YAED,GAAG,CAAC,MAAM,GAAG,UAAU,CAAA;YACvB,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,CAAA;YAEzC,OAAO,UAAU,CAAA;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,GAAG,KAAc,CAAA;YAC1B,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,CAAA;YACzC,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CACP,EAAmB,EACnB,OAAkC,EAAE,IAAI,EAAE,EAAE,EAAE;QAI9C,MAAM,GAAG,GAAY;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE;SACxB,CAAA;QAED,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;YAEzC,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,cAAc,GAAG,KAAK,EAAE,GAAG,IAAI,CAAA;YAErD,wBAAwB;YACxB,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAA;YAErD,0BAA0B;YAC1B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CACrD,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,UAAU,EACf,EAAE,EACF;gBACE,OAAO;gBACP,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5C,OAAO;aACR,CACF,CAAA;YAED,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,KAAK,EAAE,CAAA;YAEjD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,GAAG,CAAC,MAAM,GAAG,IAAI,CAAA;gBACjB,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;gBACxC,OAAO,IAAI,CAAA;YACb,CAAC;YAED,IAAI,GAAG,GAAG,MAAiC,CAAA;YAE3C,+BAA+B;YAC/B,IAAI,cAAc,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACnC,GAAG,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAA;YACzC,CAAC;YAED,gBAAgB;YAChB,IAAI,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAE,CAAA;YAE7D,iDAAiD;YACjD,IAAI,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClD,YAAY,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,OAAO,EAAE,EAAE,CAAC,CAAA;YAC1E,CAAC;YAED,2EAA2E;YAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAG7D,CAAA;YACD,MAAM,YAAY,GAAG;gBACnB,GAAG,OAAO;gBACV,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxD,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC;aAC/C,CAAA;YAED,GAAG,CAAC,MAAM,GAAG,YAAY,CAAA;YACzB,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;YAExC,OAAO,YAAmB,CAAA;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,GAAG,KAAc,CAAA;YAC1B,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;YACxC,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,IAAsB,EACtB,OAAqC,EAAE,IAAI,EAAE,EAAE,EAAE;QAEjD,MAAM,GAAG,GAAY;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,IAAI;YACZ,IAAI;SACL,CAAA;QAED,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;YAE5C,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,cAAc,GAAG,KAAK,EAAE,GAAG,IAAI,CAAA;YAErD,sBAAsB;YACtB,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAGjD,CAAA;YAED,qCAAqC;YACrC,IAAI,kBAAkB,GAA4B,EAAE,GAAG,aAAa,EAAE,CAAA;YACtE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;gBACpC,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;oBAC9B,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,GAAG,CAAA;gBACrD,CAAC;gBACD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;oBAC9B,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,GAAG,CAAA;gBACrD,CAAC;YACH,CAAC;YAED,kBAAkB;YAClB,IAAI,aAAa,GAAG,kBAAkB,CAAA;YACtC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,aAAa,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAA;YAC9D,CAAC;YAED,8DAA8D;YAC9D,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,CACvD,IAAI,CAAC,KAAK,EACV,aAAa,CACd,CAAA;YACD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;gBAC9C,CAAC,CAAC,IAAI,CAAC,UAAU;gBACjB,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YACrB,MAAM,eAAe,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACjE,MAAM,KAAK,GAAG,GAAG,WAAW,cAAc,eAAe,EAAE,CAAA;YAE3D,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YACnC,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,KAAK,EAAE,CAG5C,CAAA;YAER,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,aAAa,CAAC,yBAAyB,CAAC,CAAA;YACpD,CAAC;YAED,MAAM,QAAQ,GAA8C,KAAK,CAAC,OAAO,CACvE,IAAI,CAAC,UAAU,CAChB;gBACC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClE,CAAC,CAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAqB,CAAA;YAElD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAA2B,EAAE;gBAChE,OAAO;gBACP,cAAc;gBACd,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CAAC,CAAA;YAEF,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,MAAM,IAAI,aAAa,CAAC,mCAAmC,CAAC,CAAA;YAC9D,CAAC;YAED,GAAG,CAAC,MAAM,GAAG,aAAa,CAAA;YAC1B,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;YAE3C,OAAO,aAAa,CAAA;QACtB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,GAAG,KAAc,CAAA;YAC1B,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;YAC3C,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,EAAmB,EACnB,IAA+B,EAC/B,OAAqC,EAAE,IAAI,EAAE,EAAE,EAAE;QAIjD,MAAM,GAAG,GAAY;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE;YACvB,IAAI;SACL,CAAA;QAED,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;YAE5C,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,cAAc,GAAG,KAAK,EAAE,GAAG,IAAI,CAAA;YAErD,yBAAyB;YACzB,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;YAC9D,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YACzC,CAAC;YAED,sBAAsB;YACtB,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAGjD,CAAA;YAED,sCAAsC;YACtC,IAAI,iBAAiB,GAA4B,EAAE,GAAG,aAAa,EAAE,CAAA;YACrE,IAAI,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC;gBAC/B,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;YACzE,CAAC;YAED,kBAAkB;YAClB,IAAI,aAAa,GAAG,iBAAiB,CAAA;YACrC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,aAAa,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAA;YAC9D,CAAC;YAED,gCAAgC;YAChC,MAAM,KAAK,GAA4B,EAAE,CAAA;YACzC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnC,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;oBAC3B,MAAM,IAAI,eAAe,CAAC,0CAA0C,CAAC,CAAA;gBACvE,CAAC;gBACD,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YAC1B,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAA;YAC7B,CAAC;YAED,2BAA2B;YAC3B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,CACjD,IAAI,CAAC,KAAK,EACV,aAAa,EACb,KAAK,CACN,CAAA;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,EAAE,CAAA;YAE/C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,IAAI,aAAa,CAAC,yBAAyB,CAAC,CAAA;YACpD,CAAC;YAED,yBAAyB;YACzB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;gBACvC,OAAO;gBACP,cAAc;gBACd,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CAAC,CAAA;YAEF,GAAG,CAAC,MAAM,GAAG,aAAa,CAAA;YAC1B,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;YAE3C,OAAO,aAAa,CAAA;QACtB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,GAAG,KAAc,CAAA;YAC1B,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;YAC3C,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,EAAmB,EACnB,OAAqC,EAAE,IAAI,EAAE,EAAE,EAAE;QAEjD,MAAM,GAAG,GAAY;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE;SACxB,CAAA;QAED,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;YAE5C,yBAAyB;YACzB,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;YAC9D,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YACzC,CAAC;YAED,gCAAgC;YAChC,MAAM,KAAK,GAA4B,EAAE,CAAA;YACzC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnC,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;oBAC3B,MAAM,IAAI,eAAe,CAAC,0CAA0C,CAAC,CAAA;gBACvE,CAAC;gBACD,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YAC1B,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAA;YAC7B,CAAC;YAED,2BAA2B;YAC3B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;YACtE,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,EAAE,CAAA;YAE/C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,IAAI,aAAa,CAAC,yBAAyB,CAAC,CAAA;YACpD,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAA;YAEvC,GAAG,CAAC,MAAM,GAAG,OAAO,CAAA;YACpB,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;YAE3C,OAAO,OAAO,CAAA;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,GAAG,KAAc,CAAA;YAC1B,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;YAC3C,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CACT,SAAsC,EAAE,IAAI,EAAE,EAAE,EAAE;QAElD,MAAM,GAAG,GAAY;YACnB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,OAAO;YACf,MAAM;SACP,CAAA;QAED,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;YAE3C,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,MAAM,CAAA;YAE7B,gCAAgC;YAChC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;YACxE,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,KAAK,EAAE,CAAA;YAEpD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,aAAa,CAAC,+BAA+B,CAAC,CAAA;YAC1D,CAAC;YAED,MAAM,KAAK,GAAI,MAA4B,CAAC,KAAK,CAAA;YAEjD,GAAG,CAAC,MAAM,GAAG,KAAK,CAAA;YAClB,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;YAE1C,OAAO,KAAK,CAAA;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,GAAG,KAAc,CAAA;YAC1B,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;YAC1C,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CACT,KAAa,EACb,OAAoC,EAAE,IAAI,EAAE,EAAE,EAAE,EAChD,GAAG,SAAoB;QAEvB,MAAM,GAAG,GAAY;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,IAAI;SACb,CAAA;QAED,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;YAE3C,MAAM,EAAE,cAAc,GAAG,KAAK,EAAE,GAAG,IAAI,CAAA;YAEvC,oBAAoB;YACpB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YACnC,MAAM,MAAM,GACV,SAAS,CAAC,MAAM,GAAG,CAAC;gBAClB,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,EAAE;gBACrC,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,CAAA;YAEtB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,IAAI,aAAa,CAAC,gCAAgC,CAAC,CAAA;YAC3D,CAAC;YAED,IAAI,IAAI,GAAI,MAAM,CAAC,OAAqC,IAAI,EAAE,CAAA;YAE9D,+BAA+B;YAC/B,IAAI,cAAc,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACnC,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YAC1E,CAAC;YAED,GAAG,CAAC,MAAM,GAAG,IAAI,CAAA;YACjB,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;YAE1C,OAAO,IAAW,CAAA;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,GAAG,KAAc,CAAA;YAC1B,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;YAC1C,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,QAAQ,CACtB,KAAmC,EACnC,MAAe,EACf,GAAY;QAEZ,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACtC,IAAI,CAAC,WAAW;YAAE,OAAM;QAExB,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;QAChC,IAAI,CAAC,KAAK;YAAE,OAAM;QAElB,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;QAEzD,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,GAAU,CAAC,CAAA;YACxB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;oBACtB,MAAM,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAc,CAAC,CAAA;gBACpD,CAAC;gBACD,uDAAuD;gBACvD,OAAO,CAAC,KAAK,CAAC,2BAA2B,MAAM,GAAG,EAAE,KAAK,CAAC,CAAA;YAC5D,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,cAAuB;QAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAA;QAE7C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,aAAa,CAAA;QACtB,CAAC;QAED,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;QAExE,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,OAAO,GAAG,CAAC,GAAG,aAAa,CAAC,CAAA;YAClC,KAAK,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;gBACpC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC3B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBACnB,CAAC;YACH,CAAC;YACD,OAAO,OAAO,CAAA;QAChB,CAAC;QAED,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IACnE,CAAC;IAED;;OAEG;IACK,iBAAiB;QACvB,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAA;IAChC,CAAC;IAED;;;OAGG;IACK,gBAAgB;QACtB,MAAM,KAAK,GAAI,IAAI,CAAC,SAAiB,CAAC,KAAK,CAAA;QAC3C,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvC,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC3B,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,CAAA;IACd,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,kBAAkB,CAC9B,IAA6B;QAE7B,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAA;QAC9B,OAAO,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;IAC7D,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB,CAC7B,GAA4B;QAE5B,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,GAAG,CAAA;QAC7B,OAAO,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;IAC5D,CAAC;IAED;;OAEG;IACK,iBAAiB,CACvB,IAA+B,EAC/B,OAAgC;QAEhC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrD,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAM,CAAA;QAEzB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACtB,MAAM,YAAY,GAAG,EAAE,GAAG,GAAG,EAAE,CAAA;YAE/B,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;oBAAE,SAAQ;gBAEhC,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,QAAQ,CAAA;gBAClD,MAAM,QAAQ,GAA4B,EAAE,CAAA;gBAC5C,MAAM,YAAY,GAAa,EAAE,CAAA;gBAEjC,uBAAuB;gBACvB,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;oBAC3C,MAAM,UAAU,GAAG,GAAG,SAAS,IAAI,MAAM,EAAE,CAAA;oBAC3C,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;wBACtB,QAAQ,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAA;wBAClC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;oBAC/B,CAAC;gBACH,CAAC;gBAED,oCAAoC;gBACpC,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;oBAC/B,OAAO,YAAY,CAAC,GAAG,CAAC,CAAA;gBAC1B,CAAC;gBAED,mCAAmC;gBACnC,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;oBAC3B,wCAAwC;oBACxC,MAAM,OAAO,GACX,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC;wBAChC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAC1B,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CACjD,CAAA;oBACH,YAAY,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAA;gBACpD,CAAC;qBAAM,CAAC;oBACN,kEAAkE;oBAClE,wCAAwC;oBACxC,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAA;gBAC7B,CAAC;YACH,CAAC;YAED,OAAO,YAAY,CAAA;QACrB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACK,eAAe,CACrB,YAAqC,EACrC,OAAgC;QAEhC,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAA;QAE1B,MAAM,QAAQ,GAA4B,EAAE,CAAA;QAE5C,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/C,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,IAAI,YAAY,EAAE,CAAC;gBAClD,QAAQ,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;YAC7C,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,mBAAmB,CAC/B,YAAqC,EACrC,OAAgC,EAChC,YAA6B;QAE7B,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,YAAY,CAAA;QAEpC,MAAM,MAAM,GAAG,EAAE,GAAG,YAAY,EAAE,CAAA;QAElC,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7D,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM;gBAAE,SAAQ;YAE3D,IAAI,cAAc,GAAU,EAAE,CAAA;YAE9B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAC7C,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAA,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,GAAG,EAAE,CAAC,EAAE,CAC7D,CAAA;gBACD,MAAM,KAAK,GAAG,GAAG,CAAA,UAAU,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC;mBAC7C,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;yBACzB,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;mBACtC,GAAG,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;oBACzH,GAAG,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,YAAY,EAAE,CAAA;gBAE7F,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBACxC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAA;gBAE1D,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;oBACxB,cAAc,GAAG,WAAW,CAAC,OAAgB,CAAA;gBAC/C,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAC7C,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAA,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAChC,CAAA;gBACD,MAAM,KAAK,GAAG,GAAG,CAAA,UAAU,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC;mBAC7C,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;oBAC9B,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,YAAY,EAAE,CAAA;gBAE5D,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBACxC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAA;gBAE1D,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;oBACxB,cAAc,GAAG,WAAW,CAAC,OAAgB,CAAA;gBAC/C,CAAC;YACH,CAAC;YAED,MAAM,CAAC,QAAQ,CAAC,GAAG,cAAc,IAAI,EAAE,CAAA;QACzC,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAA;AAE3C,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAChF,OAAO,EACL,aAAa,EACb,SAAS,EACT,aAAa,EACb,eAAe,GAChB,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,eAAe,GAChB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,UAAU,EACV,WAAW,EACX,WAAW,EACX,WAAW,EACX,eAAe,EACf,WAAW,GACZ,MAAM,kBAAkB,CAAA;AAoCzB;;GAEG;AACH,MAAM,OAAO,OAAO;IAQF,KAAK,CAAQ;IACb,EAAE,CAAU;IACZ,SAAS,CAAM;IACf,YAAY,CAAS;IACrB,YAAY,CAAS;IACrB,KAAK,CAAoB;IACzB,OAAO,CAAsB;IAC7B,UAAU,CAAmB;IAC7B,cAAc,CAAqB;IACnC,WAAW,CAAa;IACxB,IAAI,CAAsD;IAC1D,UAAU,CAA6B;IAEtC,KAAK,CAA2B;IAChC,iBAAiB,CAAa;IAE/C,YACE,OAAiE;QAEjE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;QAC1B,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAA;QACpB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAA;QAClC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAA;QACxC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAA;QACxC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;QAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAA+B,CAAA;QACtD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAA;QAChC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAA;QAC9B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,CAAA;QAC5C,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAA;QAC5C,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAA;QACpC,IAAI,CAAC,WAAW;YACd,OAAO,CAAC,WAAW;gBACnB,IAAI,kBAAkB,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC,CAAA;QAEtD,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAA;QAC1C,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC7B,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;gBACxC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;YAC3C,CAAC;QACH,CAAC;QAED,IAAI,CAAC,6BAA6B,EAAE,CAAA;QACpC,IAAI,CAAC,oBAAoB,EAAE,CAAA;IAC7B,CAAC;IAEO,eAAe,CACrB,GAA4B;QAE5B,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,GAAG,CAAA;QACjD,MAAM,OAAO,GAAG,EAAE,GAAG,GAAG,EAAE,CAAA;QAC1B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAA;QACrB,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAEO,mBAAmB,CACzB,GAA4B;QAE5B,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAA;QAC5B,MAAM,MAAM,GAA4B,EAAE,CAAA;QAC1C,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC7B,IAAI,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,SAAS,EAAE,CAAC;gBACrC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;YAC5C,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;;;;;;;;;;OAaG;IACK,WAAW,CACjB,MAA0C,EAC1C,OAAgC;QAEhC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAA;QAEpD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAA;QACjC,MAAM,OAAO,GAAsC,EAAE,CAAA;QACrD,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAA;QAC3C,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,GAAG,CAAA;QACnE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAA;QAE3E,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YACzB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAChD,MAAM,IAAI,eAAe,CACvB,yBAAyB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,gCAAgC,CAC7E,CAAA;YACH,CAAC;YAED,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;gBACzB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;gBAC7B,MAAM,KAAK,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;gBACpD,MAAM,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;gBAE3D,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,MAAM,IAAI,eAAe,CACvB,yBAAyB,GAAG,kCAAkC,CAC/D,CAAA;gBACH,CAAC;gBACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC1B,MAAM,IAAI,eAAe,CACvB,uBAAuB,KAAK,sBAAsB,GAAG,wBACnD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QACtC,GAAG,CACJ,CAAA;gBACH,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBACpB,MAAM,IAAI,eAAe,CACvB,iBAAiB,GAAG,sBAAsB,KAAK,UAAU,CAC1D,CAAA;gBACH,CAAC;gBACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACzB,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA;gBACtB,CAAC;qBAAM,IAAI,CAAC,MAAM,EAAE,CAAC;oBACnB,MAAM,IAAI,eAAe,CACvB,yBAAyB,GAAG,kCAAkC,KAAK,KAAK,CACzE,CAAA;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;oBAC/B,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;wBACrB,kCAAkC;wBAClC,SAAQ;oBACV,CAAC;oBACD,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACd,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;oBACpC,CAAC;yBAAM,CAAC;wBACN,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;oBACtB,CAAC;gBACH,CAAC;gBACD,SAAQ;YACV,CAAC;YAED,IAAI,CAAC,QAAQ,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5C,MAAM,IAAI,eAAe,CACvB,mBAAmB,GAAG,iCAAiC,WAAW,CAAC,IAAI,CACrE,IAAI,CACL,GAAG,CACL,CAAA;YACH,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAClB,CAAC;QAED,MAAM,WAAW,GAAmC,EAAE,CAAA;QACtD,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACrD,WAAW,CAAC,KAAK,CAAC,GAAG,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC9D,CAAC;QAED,OAAO;YACL,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;YAChC,WAAW;SACZ,CAAA;IACH,CAAC;IAED;;;;;;;OAOG;IACK,kBAAkB,CACxB,MAAgC,EAChC,OAAkB,EAClB,cAAuB;QAEvB,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAA;QAEzD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAS,MAAM,CAAC,WAAW,CAAC,CAAA;QAE/C,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;YAC7C,CAAC,CAAC,IAAI,CAAC,UAAU;YACjB,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACtB,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACb,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACvB,CAAC;QAED,IAAI,cAAc,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACnC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC7B,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;YACvB,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;IAED;;;;;;;;;;OAUG;IACK,oBAAoB,CAC1B,MAAgC,EAChC,OAAgC;QAEhC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAA;QAE5C,MAAM,SAAS,GAA6B,EAAE,CAAA;QAC9C,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;YAChE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;gBAAE,SAAQ;YAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YAC7B,IAAI,CAAC,GAAG;gBAAE,SAAQ;YAClB,IAAI,KAAK,KAAK,GAAG;gBAAE,SAAQ,CAAC,+BAA+B;YAC3D,MAAM,IAAI,GAAG,IAAI,GAAG,CAAS,KAAK,CAAC,CAAA;YACnC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YACvB,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrC,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;IAClE,CAAC;IAED;;;;;OAKG;IACK,oBAAoB;QAC1B,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAM;QAEzB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,MAAM,YAAY,GAAG,OAAO,MAAM,CAAC,SAAS,KAAK,UAAU,CAAA;YAC3D,MAAM,cAAc,GAAG,OAAO,MAAM,CAAC,WAAW,KAAK,UAAU,CAAA;YAE/D,IAAI,YAAY,KAAK,cAAc,EAAE,CAAC;gBACpC,MAAM,IAAI,eAAe,CACvB,iBAAiB,MAAM,CAAC,WAAW,qCAAqC;oBACtE,wCAAwC;oBACxC,IAAI,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,IAAI,CACrD,CAAA;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAEO,6BAA6B;QACnC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAM;QAEzB,MAAM,KAAK,GAAI,IAAI,CAAC,SAAiB,CAAC,KAAK,CAAA;QAC3C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAM;QAE/C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;QAE9C,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;gBACtC,MAAM,IAAI,eAAe,CACvB,kBAAkB,MAAM,CAAC,UAAU,8CAA8C;oBAC/E,wFAAwF,CAC3F,CAAA;YACH,CAAC;YACD,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;gBACvC,MAAM,IAAI,eAAe,CACvB,iBAAiB,MAAM,CAAC,WAAW,+CAA+C;oBAChF,yFAAyF;oBACzF,2BAA2B,CAC9B,CAAA;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAGR,SAA8C,EAAE,IAAI,EAAE,EAAE,EAAE;QAO1D,MAAM,GAAG,GAAY;YACnB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,MAAM;YACd,MAAM;SACP,CAAA;QAED,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,CAAA;YAE1C,MAAM,EACJ,MAAM,EACN,KAAK,GAAG,EAAE,EACV,OAAO,EAAE,YAAY,EACrB,KAAK,GAAG,EAAE,EACV,OAAO,GAAG,EAAE,EACZ,cAAc,GAAG,KAAK,EACtB,MAAM,GACP,GAAG,MAAM,CAAA;YAEV,iBAAiB;YACjB,IAAI,KAAK,GAAG,IAAI,EAAE,CAAC;gBACjB,MAAM,IAAI,eAAe,CAAC,0BAA0B,CAAC,CAAA;YACvD,CAAC;YAED,qBAAqB;YACrB,IAAI,OAAO,GACT,YAAY,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;YAEzE,kEAAkE;YAClE,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAA;YAC/C,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClC,eAAe,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;YAC1C,CAAC;YAED,2BAA2B;YAC3B,IAAI,gBAAoD,CAAA;YACxD,IAAI,WAAW,GAAG,KAAK,GAAG,CAAC,CAAA,CAAC,sDAAsD;YAElF,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC;oBACH,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;oBAExC,kCAAkC;oBAClC,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACnC,iEAAiE;wBACjE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;4BAClC,eAAe,CAAC,WAAW,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;wBACtD,CAAC;wBACD,OAAO;4BACL,WAAW,CAAC,SAAS,KAAK,MAAM;gCAC9B,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,OAAO,CAAC;gCACrC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAA;oBAC3B,CAAC;oBAED,gBAAgB,GAAG,qBAAqB,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;gBACnE,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,IAAI,eAAe,CACvB,mBAAmB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAC9E,CAAA;gBACH,CAAC;YACH,CAAC;YAED,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;YACtD,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CACrC,YAAY,EACZ,OAAO,EACP,cAAc,CACf,CAAA;YACD,MAAM,mBAAmB,GAAG,IAAI,CAAC,oBAAoB,CACnD,YAAY,EACZ,OAAO,CACR,CAAA;YAED,0BAA0B;YAC1B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE;gBACjE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/B,KAAK;gBACL,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5C,OAAO;gBACP,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvD,OAAO;gBACP,KAAK,EAAE,WAAW;gBAClB,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAClD,CAAC,CAAA;YAEF,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,EAAE,CAAA;YAElD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,IAAI,aAAa,CAAC,8BAA8B,CAAC,CAAA;YACzD,CAAC;YAED,IAAI,IAAI,GAAI,MAAM,CAAC,OAAqC,IAAI,EAAE,CAAA;YAE9D,kBAAkB;YAClB,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;YACvC,IAAI,WAAW,EAAE,CAAC;gBAChB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA,CAAC,uBAAuB;YACrD,CAAC;YAED,+BAA+B;YAC/B,IAAI,cAAc,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACnC,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YAC1E,CAAC;YAED,wDAAwD;YACxD,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAC1C,IAAI,EACJ,OAAO,EACP,mBAAmB,CACpB,CAAA;YAED,uEAAuE;YACvE,oEAAoE;YACpE,oEAAoE;YACpE,iCAAiC;YACjC,MAAM,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC9C,MAAM,CAAC,GAAG,GAA8B,CAAA;gBACxC,IAAI,YAAY,EAAE,CAAC;oBACjB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,CAAA;gBACpD,CAAC;gBACD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAA;gBAC/D,OAAO,cAAc;oBACnB,CAAC,CAAC;wBACE,GAAI,SAAqC;wBACzC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;qBAC/B;oBACH,CAAC,CAAC,SAAS,CAAA;YACf,CAAC,CAAC,CAAA;YAEF,mBAAmB;YACnB,IAAI,UAA8B,CAAA;YAClC,IAAI,UAA8B,CAAA;YAElC,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,OAAO,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAE,CAAA;oBACxD,UAAU,GAAG,YAAY,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;gBACnE,CAAC;gBAED,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAE,CAAA;oBAClC,UAAU,GAAG,YAAY,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;gBACpE,CAAC;YACH,CAAC;YAED,MAAM,UAAU,GAAoB;gBAClC,MAAM,EAAE,aAAa;gBACrB,UAAU;gBACV,UAAU;aACX,CAAA;YAED,GAAG,CAAC,MAAM,GAAG,UAAU,CAAA;YACvB,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,CAAA;YAEzC,OAAO,UAAU,CAAA;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,GAAG,KAAc,CAAA;YAC1B,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,CAAA;YACzC,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAGP,EAAmB,EACnB,OAA2C,EAAE,IAAI,EAAE,EAAE,EAAE;QAMvD,MAAM,GAAG,GAAY;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE;SACxB,CAAA;QAED,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;YAEzC,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,cAAc,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;YAE7D,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;YACtD,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,EAAE,EAAE,cAAc,CAAC,CAAA;YACzE,MAAM,mBAAmB,GAAG,IAAI,CAAC,oBAAoB,CACnD,YAAY,EACZ,OAAO,CACR,CAAA;YAED,0BAA0B;YAC1B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CACrD,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,UAAU,EACf,EAAE,EACF;gBACE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/B,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5C,OAAO;gBACP,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxD,CACF,CAAA;YAED,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,KAAK,EAAE,CAAA;YAEjD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,GAAG,CAAC,MAAM,GAAG,IAAI,CAAA;gBACjB,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;gBACxC,OAAO,IAAI,CAAA;YACb,CAAC;YAED,IAAI,GAAG,GAAG,MAAiC,CAAA;YAE3C,+BAA+B;YAC/B,IAAI,cAAc,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACnC,GAAG,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAA;YACzC,CAAC;YAED,wDAAwD;YACxD,IAAI,YAAY,GAAG,IAAI,CAAC,iBAAiB,CACvC,CAAC,GAAG,CAAC,EACL,OAAO,EACP,mBAAmB,CACpB,CAAC,CAAC,CAAE,CAAA;YAEL,iDAAiD;YACjD,IAAI,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClD,YAAY,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAC3C,YAAY,EACZ,OAAO,EACP,EAAE,EACF,mBAAmB,CACpB,CAAA;YACH,CAAC;YAED,qEAAqE;YACrE,oEAAoE;YACpE,+DAA+D;YAC/D,IAAI,YAAqC,CAAA;YACzC,IAAI,YAAY,EAAE,CAAC;gBACjB,mEAAmE;gBACnE,wDAAwD;gBACxD,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,OAAO,EAAE,cAAc,CAAC,CAAA;YACvE,CAAC;iBAAM,CAAC;gBACN,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAClC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CACC,CAAA;gBAC5B,YAAY,GAAG;oBACb,GAAG,OAAO;oBACV,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACxD,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC;iBAC/C,CAAA;YACH,CAAC;YAED,GAAG,CAAC,MAAM,GAAG,YAAY,CAAA;YACzB,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;YAExC,OAAO,YAAmB,CAAA;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,GAAG,KAAc,CAAA;YAC1B,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;YACxC,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAGV,IAAsB,EACtB,OAA8C,EAAE,IAAI,EAAE,EAAE,EAAE;QAK1D,MAAM,GAAG,GAAY;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,IAAI;YACZ,IAAI;SACL,CAAA;QAED,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;YAE5C,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,cAAc,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;YAE7D,sBAAsB;YACtB,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAGjD,CAAA;YAED,qCAAqC;YACrC,IAAI,kBAAkB,GAA4B,EAAE,GAAG,aAAa,EAAE,CAAA;YACtE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;gBACpC,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;oBAC9B,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,GAAG,CAAA;gBACrD,CAAC;gBACD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;oBAC9B,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,GAAG,CAAA;gBACrD,CAAC;YACH,CAAC;YAED,kBAAkB;YAClB,IAAI,aAAa,GAAG,kBAAkB,CAAA;YACtC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,aAAa,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAA;YAC9D,CAAC;YAED,8DAA8D;YAC9D,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,CACvD,IAAI,CAAC,KAAK,EACV,aAAa,CACd,CAAA;YACD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;gBAC9C,CAAC,CAAC,IAAI,CAAC,UAAU;gBACjB,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YACrB,MAAM,eAAe,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACjE,MAAM,KAAK,GAAG,GAAG,WAAW,cAAc,eAAe,EAAE,CAAA;YAE3D,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YACnC,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,KAAK,EAAE,CAG5C,CAAA;YAER,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,aAAa,CAAC,yBAAyB,CAAC,CAAA;YACpD,CAAC;YAED,MAAM,QAAQ,GAA8C,KAAK,CAAC,OAAO,CACvE,IAAI,CAAC,UAAU,CAChB;gBACC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClE,CAAC,CAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAqB,CAAA;YAElD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,GAAG,CAClC,QAA2B,EAC3B;gBACE,OAAO;gBACP,cAAc;gBACd,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;aACsB,CACxC,CAAA;YAED,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,MAAM,IAAI,aAAa,CAAC,mCAAmC,CAAC,CAAA;YAC9D,CAAC;YAED,GAAG,CAAC,MAAM,GAAG,aAAa,CAAA;YAC1B,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;YAE3C,OAAO,aAAoB,CAAA;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,GAAG,KAAc,CAAA;YAC1B,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;YAC3C,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAGV,EAAmB,EACnB,IAA+B,EAC/B,OAA8C,EAAE,IAAI,EAAE,EAAE,EAAE;QAM1D,MAAM,GAAG,GAAY;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE;YACvB,IAAI;SACL,CAAA;QAED,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;YAE5C,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,cAAc,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;YAE7D,yBAAyB;YACzB,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;YAC9D,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YACzC,CAAC;YAED,sBAAsB;YACtB,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAGjD,CAAA;YAED,sCAAsC;YACtC,IAAI,iBAAiB,GAA4B,EAAE,GAAG,aAAa,EAAE,CAAA;YACrE,IAAI,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC;gBAC/B,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;YACzE,CAAC;YAED,kBAAkB;YAClB,IAAI,aAAa,GAAG,iBAAiB,CAAA;YACrC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,aAAa,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAA;YAC9D,CAAC;YAED,gCAAgC;YAChC,MAAM,KAAK,GAA4B,EAAE,CAAA;YACzC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnC,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;oBAC3B,MAAM,IAAI,eAAe,CAAC,0CAA0C,CAAC,CAAA;gBACvE,CAAC;gBACD,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YAC1B,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAA;YAC7B,CAAC;YAED,2BAA2B;YAC3B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,CACjD,IAAI,CAAC,KAAK,EACV,aAAa,EACb,KAAK,CACN,CAAA;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,EAAE,CAAA;YAE/C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,IAAI,aAAa,CAAC,yBAAyB,CAAC,CAAA;YACpD,CAAC;YAED,yBAAyB;YACzB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;gBACvC,OAAO;gBACP,cAAc;gBACd,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;aACsB,CAAC,CAAA;YAExC,GAAG,CAAC,MAAM,GAAG,aAAa,CAAA;YAC1B,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;YAE3C,OAAO,aAAoB,CAAA;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,GAAG,KAAc,CAAA;YAC1B,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;YAC3C,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,EAAmB,EACnB,OAAqC,EAAE,IAAI,EAAE,EAAE,EAAE;QAEjD,MAAM,GAAG,GAAY;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE;SACxB,CAAA;QAED,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;YAE5C,yBAAyB;YACzB,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;YAC9D,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YACzC,CAAC;YAED,gCAAgC;YAChC,MAAM,KAAK,GAA4B,EAAE,CAAA;YACzC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnC,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;oBAC3B,MAAM,IAAI,eAAe,CAAC,0CAA0C,CAAC,CAAA;gBACvE,CAAC;gBACD,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YAC1B,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAA;YAC7B,CAAC;YAED,2BAA2B;YAC3B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;YACtE,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,EAAE,CAAA;YAE/C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,IAAI,aAAa,CAAC,yBAAyB,CAAC,CAAA;YACpD,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAA;YAEvC,GAAG,CAAC,MAAM,GAAG,OAAO,CAAA;YACpB,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;YAE3C,OAAO,OAAO,CAAA;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,GAAG,KAAc,CAAA;YAC1B,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;YAC3C,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CACT,SAAsC,EAAE,IAAI,EAAE,EAAE,EAAE;QAElD,MAAM,GAAG,GAAY;YACnB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,OAAO;YACf,MAAM;SACP,CAAA;QAED,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;YAE3C,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,MAAM,CAAA;YAE7B,gCAAgC;YAChC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;YACxE,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,KAAK,EAAE,CAAA;YAEpD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,aAAa,CAAC,+BAA+B,CAAC,CAAA;YAC1D,CAAC;YAED,MAAM,KAAK,GAAI,MAA4B,CAAC,KAAK,CAAA;YAEjD,GAAG,CAAC,MAAM,GAAG,KAAK,CAAA;YAClB,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;YAE1C,OAAO,KAAK,CAAA;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,GAAG,KAAc,CAAA;YAC1B,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;YAC1C,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CACT,KAAa,EACb,OAAoC,EAAE,IAAI,EAAE,EAAE,EAAE,EAChD,GAAG,SAAoB;QAEvB,MAAM,GAAG,GAAY;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,IAAI;SACb,CAAA;QAED,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;YAE3C,MAAM,EAAE,cAAc,GAAG,KAAK,EAAE,GAAG,IAAI,CAAA;YAEvC,oBAAoB;YACpB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YACnC,MAAM,MAAM,GACV,SAAS,CAAC,MAAM,GAAG,CAAC;gBAClB,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,EAAE;gBACrC,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,CAAA;YAEtB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,IAAI,aAAa,CAAC,gCAAgC,CAAC,CAAA;YAC3D,CAAC;YAED,IAAI,IAAI,GAAI,MAAM,CAAC,OAAqC,IAAI,EAAE,CAAA;YAE9D,+BAA+B;YAC/B,IAAI,cAAc,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACnC,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YAC1E,CAAC;YAED,GAAG,CAAC,MAAM,GAAG,IAAI,CAAA;YACjB,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;YAE1C,OAAO,IAAW,CAAA;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,GAAG,KAAc,CAAA;YAC1B,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;YAC1C,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,QAAQ,CACtB,KAAmC,EACnC,MAAe,EACf,GAAY;QAEZ,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACtC,IAAI,CAAC,WAAW;YAAE,OAAM;QAExB,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;QAChC,IAAI,CAAC,KAAK;YAAE,OAAM;QAElB,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;QAEzD,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,GAAU,CAAC,CAAA;YACxB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;oBACtB,MAAM,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAc,CAAC,CAAA;gBACpD,CAAC;gBACD,uDAAuD;gBACvD,OAAO,CAAC,KAAK,CAAC,2BAA2B,MAAM,GAAG,EAAE,KAAK,CAAC,CAAA;YAC5D,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,cAAuB;QAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAA;QAE7C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,aAAa,CAAA;QACtB,CAAC;QAED,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;QAExE,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,OAAO,GAAG,CAAC,GAAG,aAAa,CAAC,CAAA;YAClC,KAAK,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;gBACpC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC3B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBACnB,CAAC;YACH,CAAC;YACD,OAAO,OAAO,CAAA;QAChB,CAAC;QAED,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IACnE,CAAC;IAED;;OAEG;IACK,iBAAiB;QACvB,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAA;IAChC,CAAC;IAED;;;OAGG;IACK,gBAAgB;QACtB,MAAM,KAAK,GAAI,IAAI,CAAC,SAAiB,CAAC,KAAK,CAAA;QAC3C,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvC,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC3B,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,CAAA;IACd,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,kBAAkB,CAC9B,IAA6B;QAE7B,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAA;QAC9B,OAAO,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;IAC7D,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB,CAC7B,GAA4B;QAE5B,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,GAAG,CAAA;QAC7B,OAAO,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;IAC5D,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACK,UAAU,CAChB,GAA4B,EAC5B,QAAiC,EACjC,cAAuB;QAEvB,MAAM,GAAG,GAA4B,EAAE,GAAG,GAAG,EAAE,CAAA;QAE/C,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC7B,OAAO,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;YAC1B,CAAC;QACH,CAAC;QAED,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAA;QACnD,CAAC;QAED,OAAO,GAAG,CAAA;IACZ,CAAC;IAED;;OAEG;IACK,iBAAiB,CACvB,IAA+B,EAC/B,OAAgC,EAChC,mBAA8C;QAE9C,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrD,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAM,CAAA;QAEzB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACtB,MAAM,YAAY,GAAG,EAAE,GAAG,GAAG,EAAE,CAAA;YAE/B,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;oBAAE,SAAQ;gBAEhC,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,QAAQ,CAAA;gBAClD,MAAM,QAAQ,GAA4B,EAAE,CAAA;gBAC5C,MAAM,YAAY,GAAa,EAAE,CAAA;gBAEjC,MAAM,aAAa,GACjB,mBAAmB,EAAE,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,CAAA;gBAC1D,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;oBACnC,MAAM,UAAU,GAAG,GAAG,SAAS,IAAI,MAAM,EAAE,CAAA;oBAC3C,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;wBACtB,QAAQ,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAA;wBAClC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;oBAC/B,CAAC;gBACH,CAAC;gBAED,oCAAoC;gBACpC,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;oBAC/B,OAAO,YAAY,CAAC,GAAG,CAAC,CAAA;gBAC1B,CAAC;gBAED,mCAAmC;gBACnC,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;oBAC3B,wCAAwC;oBACxC,MAAM,OAAO,GACX,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC;wBAChC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAC1B,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CACjD,CAAA;oBACH,YAAY,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAA;gBACpD,CAAC;qBAAM,CAAC;oBACN,kEAAkE;oBAClE,wCAAwC;oBACxC,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAA;gBAC7B,CAAC;YACH,CAAC;YAED,OAAO,YAAY,CAAA;QACrB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACK,eAAe,CACrB,YAAqC,EACrC,OAAgC;QAEhC,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAA;QAE1B,MAAM,QAAQ,GAA4B,EAAE,CAAA;QAE5C,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/C,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,IAAI,YAAY,EAAE,CAAC;gBAClD,QAAQ,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;YAC7C,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,mBAAmB,CAC/B,YAAqC,EACrC,OAAgC,EAChC,YAA6B,EAC7B,mBAA8C;QAE9C,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,YAAY,CAAA;QAEpC,MAAM,MAAM,GAAG,EAAE,GAAG,YAAY,EAAE,CAAA;QAElC,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7D,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM;gBAAE,SAAQ;YAE3D,IAAI,cAAc,GAAU,EAAE,CAAA;YAE9B,MAAM,aAAa,GACjB,mBAAmB,EAAE,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,CAAA;YAE1D,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,aAAa,GAAG,aAAa,CAAC,GAAG,CACrC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAA,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,GAAG,EAAE,CAAC,EAAE,CAC7D,CAAA;gBACD,MAAM,KAAK,GAAG,GAAG,CAAA,UAAU,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC;mBAC7C,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;yBACzB,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;mBACtC,GAAG,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;oBACzH,GAAG,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,YAAY,EAAE,CAAA;gBAE7F,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBACxC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAA;gBAE1D,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;oBACxB,cAAc,GAAG,WAAW,CAAC,OAAgB,CAAA;gBAC/C,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAA,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;gBACxE,MAAM,KAAK,GAAG,GAAG,CAAA,UAAU,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC;mBAC7C,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;oBAC9B,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,YAAY,EAAE,CAAA;gBAE5D,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBACxC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAA;gBAE1D,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;oBACxB,cAAc,GAAG,WAAW,CAAC,OAAgB,CAAA;gBAC/C,CAAC;YACH,CAAC;YAED,MAAM,CAAC,QAAQ,CAAC,GAAG,cAAc,IAAI,EAAE,CAAA;QACzC,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;CACF"}
|
package/dist/sql-builder.d.ts
CHANGED
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
import { sql } from '@truto/sqlite-builder';
|
|
2
2
|
import type { JoinDef, OrderBy } from './types.js';
|
|
3
3
|
/**
|
|
4
|
-
* Build a SELECT query with joins and pagination
|
|
4
|
+
* Build a SELECT query with joins and pagination.
|
|
5
|
+
*
|
|
6
|
+
* `joinColumnOverrides[joinName]` overrides the columns pulled from that
|
|
7
|
+
* join's remote table for this query only (instead of using the join's
|
|
8
|
+
* configured `remote.select`). The base service uses this to honour the
|
|
9
|
+
* caller's `select: ['$alias.col', ...]` request.
|
|
5
10
|
*/
|
|
6
11
|
export declare function buildSelect(table: string, options?: {
|
|
7
12
|
columns?: string[];
|
|
8
13
|
where?: Record<string, unknown>;
|
|
9
14
|
joins?: Record<string, JoinDef>;
|
|
10
15
|
include?: Record<string, boolean>;
|
|
16
|
+
joinColumnOverrides?: Record<string, string[]>;
|
|
11
17
|
orderBy?: OrderBy[];
|
|
12
18
|
limit?: number;
|
|
13
19
|
offset?: number;
|
|
@@ -36,6 +42,7 @@ export declare function buildSelectById(table: string, primaryKey: string | stri
|
|
|
36
42
|
columns?: string[];
|
|
37
43
|
joins?: Record<string, JoinDef>;
|
|
38
44
|
include?: Record<string, boolean>;
|
|
45
|
+
joinColumnOverrides?: Record<string, string[]>;
|
|
39
46
|
}): ReturnType<typeof sql>;
|
|
40
47
|
/**
|
|
41
48
|
* Escape a column name using sql.ident
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql-builder.d.ts","sourceRoot":"","sources":["../src/sql-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,GAAG,EAAE,MAAM,uBAAuB,CAAA;AAE1D,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAElD
|
|
1
|
+
{"version":3,"file":"sql-builder.d.ts","sourceRoot":"","sources":["../src/sql-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,GAAG,EAAE,MAAM,uBAAuB,CAAA;AAE1D,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAElD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IACP,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IAC9C,OAAO,CAAC,EAAE,OAAO,EAAE,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,gBAAgB,CAAC,EAAE,UAAU,CAAC,OAAO,GAAG,CAAC,CAAA;CACrC,GACL,UAAU,CAAC,OAAO,GAAG,CAAC,CAwGxB;AAqCD;;GAEG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,UAAU,CAAC,OAAO,GAAG,CAAC,CAoBxB;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,UAAU,CAAC,OAAO,GAAG,CAAC,CAuBxB;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,UAAU,CAAC,OAAO,GAAG,CAAC,CAgBxB;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,UAAU,CAAC,OAAO,GAAG,CAAC,CAgBxB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,EAC7B,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7C,OAAO,GAAE;IACP,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;CAC1C,GACL,UAAU,CAAC,OAAO,GAAG,CAAC,CAqCxB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjD"}
|
package/dist/sql-builder.js
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import { compileFilter, sql } from '@truto/sqlite-builder';
|
|
2
2
|
import { SqlBuilderError } from './errors.js';
|
|
3
3
|
/**
|
|
4
|
-
* Build a SELECT query with joins and pagination
|
|
4
|
+
* Build a SELECT query with joins and pagination.
|
|
5
|
+
*
|
|
6
|
+
* `joinColumnOverrides[joinName]` overrides the columns pulled from that
|
|
7
|
+
* join's remote table for this query only (instead of using the join's
|
|
8
|
+
* configured `remote.select`). The base service uses this to honour the
|
|
9
|
+
* caller's `select: ['$alias.col', ...]` request.
|
|
5
10
|
*/
|
|
6
11
|
export function buildSelect(table, options = {}) {
|
|
7
12
|
try {
|
|
@@ -13,12 +18,12 @@ export function buildSelect(table, options = {}) {
|
|
|
13
18
|
else {
|
|
14
19
|
selectColumns.push(sql `${sql.ident(table)}.*`);
|
|
15
20
|
}
|
|
16
|
-
// Add join columns
|
|
17
21
|
if (options.joins && options.include) {
|
|
18
22
|
for (const [joinName, joinDef] of Object.entries(options.joins)) {
|
|
19
23
|
if (options.include[joinName]) {
|
|
20
24
|
const joinAlias = joinDef.remote.alias || joinName;
|
|
21
|
-
const
|
|
25
|
+
const cols = options.joinColumnOverrides?.[joinName] ?? joinDef.remote.select;
|
|
26
|
+
const joinColumns = cols.map((col) => sql `${sql.ident(`${joinDef.remote.table}.${col}`)} as ${sql.ident(`${joinAlias}_${col}`)}`);
|
|
22
27
|
selectColumns.push(...joinColumns);
|
|
23
28
|
}
|
|
24
29
|
}
|
package/dist/sql-builder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql-builder.js","sourceRoot":"","sources":["../src/sql-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAG7C
|
|
1
|
+
{"version":3,"file":"sql-builder.js","sourceRoot":"","sources":["../src/sql-builder.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -104,16 +104,58 @@ export interface OrderBy {
|
|
|
104
104
|
column: string;
|
|
105
105
|
direction: OrderDirection;
|
|
106
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* Field selection for read methods.
|
|
109
|
+
*
|
|
110
|
+
* Use a flat array of column names to project the result to a subset of the
|
|
111
|
+
* row schema. To select columns from a configured join, use `$alias.column`
|
|
112
|
+
* notation (mirrors the alias-block syntax used by `where`):
|
|
113
|
+
*
|
|
114
|
+
* @example
|
|
115
|
+
* ```ts
|
|
116
|
+
* service.list({
|
|
117
|
+
* auth,
|
|
118
|
+
* select: ['id', 'name', '$teams.id', '$teams.name'],
|
|
119
|
+
* include: { teams: true },
|
|
120
|
+
* })
|
|
121
|
+
* ```
|
|
122
|
+
*
|
|
123
|
+
* Notes:
|
|
124
|
+
* - The primary key and any `orderBy` columns are always included internally
|
|
125
|
+
* (and surfaced in the returned row) so cursor pagination keeps working.
|
|
126
|
+
* - `select` is independent of `includeSecrets`; secrets are still controlled
|
|
127
|
+
* exclusively by the `includeSecrets` flag.
|
|
128
|
+
* - `$alias.column` selects the given column from the joined table. A bare
|
|
129
|
+
* `$alias` token expands to all columns configured in the join's
|
|
130
|
+
* `remote.select`. The join must also be enabled via `include[alias] = true`.
|
|
131
|
+
* - Pass the array `as const` (or rely on the `<const>` type parameter) to
|
|
132
|
+
* narrow the return type to `Pick<Row, …>`.
|
|
133
|
+
*/
|
|
134
|
+
export type SelectField = string;
|
|
135
|
+
/**
|
|
136
|
+
* Narrow a row type based on the columns chosen via `select`.
|
|
137
|
+
*
|
|
138
|
+
* - When `TSelect` is omitted/undefined → returns the full row.
|
|
139
|
+
* - When `TSelect` is a tuple (preserved by the `<const>` type parameter on
|
|
140
|
+
* service methods) → returns `Pick<Row, …non-$tokens…>`.
|
|
141
|
+
* - When `TSelect` widens to `string[]` (e.g. user did not pass `as const` and
|
|
142
|
+
* compiler couldn't preserve the tuple) → falls back to the full row.
|
|
143
|
+
*
|
|
144
|
+
* `$alias.column` and bare `$alias` tokens are stripped from the picked keys
|
|
145
|
+
* because join columns live on the join object, not on the row itself.
|
|
146
|
+
*/
|
|
147
|
+
export type SelectedRow<TRow, TSelect extends readonly SelectField[] | undefined> = TSelect extends readonly SelectField[] ? string[] extends TSelect ? TRow : Pick<TRow, Extract<Exclude<TSelect[number], `$${string}`>, keyof TRow>> : TRow;
|
|
107
148
|
/**
|
|
108
149
|
* Pagination parameters
|
|
109
150
|
*/
|
|
110
|
-
export interface ListParams {
|
|
151
|
+
export interface ListParams<TSelect extends readonly SelectField[] | undefined = undefined> {
|
|
111
152
|
cursor?: string;
|
|
112
153
|
limit?: number;
|
|
113
154
|
orderBy?: OrderBy[];
|
|
114
155
|
where?: Record<string, unknown>;
|
|
115
156
|
include?: Record<string, boolean>;
|
|
116
157
|
includeSecrets?: boolean;
|
|
158
|
+
select?: TSelect;
|
|
117
159
|
}
|
|
118
160
|
/**
|
|
119
161
|
* Paginated list result
|
|
@@ -132,23 +174,26 @@ export interface CountParams {
|
|
|
132
174
|
/**
|
|
133
175
|
* Get parameters
|
|
134
176
|
*/
|
|
135
|
-
export interface GetParams {
|
|
177
|
+
export interface GetParams<TSelect extends readonly SelectField[] | undefined = undefined> {
|
|
136
178
|
include?: Record<string, boolean>;
|
|
137
179
|
includeSecrets?: boolean;
|
|
180
|
+
select?: TSelect;
|
|
138
181
|
}
|
|
139
182
|
/**
|
|
140
183
|
* Create parameters
|
|
141
184
|
*/
|
|
142
|
-
export interface CreateParams {
|
|
185
|
+
export interface CreateParams<TSelect extends readonly SelectField[] | undefined = undefined> {
|
|
143
186
|
include?: Record<string, boolean>;
|
|
144
187
|
includeSecrets?: boolean;
|
|
188
|
+
select?: TSelect;
|
|
145
189
|
}
|
|
146
190
|
/**
|
|
147
191
|
* Update parameters
|
|
148
192
|
*/
|
|
149
|
-
export interface UpdateParams {
|
|
193
|
+
export interface UpdateParams<TSelect extends readonly SelectField[] | undefined = undefined> {
|
|
150
194
|
include?: Record<string, boolean>;
|
|
151
195
|
includeSecrets?: boolean;
|
|
196
|
+
select?: TSelect;
|
|
152
197
|
}
|
|
153
198
|
/**
|
|
154
199
|
* Delete parameters
|
|
@@ -193,12 +238,32 @@ export interface JoinDef {
|
|
|
193
238
|
schema: z.ZodTypeAny;
|
|
194
239
|
}
|
|
195
240
|
/**
|
|
196
|
-
* Secret field definition
|
|
241
|
+
* Secret field definition.
|
|
242
|
+
*
|
|
243
|
+
* `serialize`/`deserialize` form an optional, symmetric codec applied around
|
|
244
|
+
* encryption. When omitted the field behaves as a plain string passthrough
|
|
245
|
+
* (the historical behavior). When provided, `serialize` runs before encrypt
|
|
246
|
+
* (its output must be a string) and `deserialize` runs after decrypt. They
|
|
247
|
+
* must be supplied together or not at all (enforced by the `Service`
|
|
248
|
+
* constructor).
|
|
249
|
+
*
|
|
250
|
+
* @example
|
|
251
|
+
* ```ts
|
|
252
|
+
* {
|
|
253
|
+
* logicalName: 'secrets',
|
|
254
|
+
* columnName: 'config_secret',
|
|
255
|
+
* keyId: 'default',
|
|
256
|
+
* serialize: JSON.stringify,
|
|
257
|
+
* deserialize: JSON.parse,
|
|
258
|
+
* }
|
|
259
|
+
* ```
|
|
197
260
|
*/
|
|
198
261
|
export interface SecretFieldDef {
|
|
199
262
|
logicalName: string;
|
|
200
263
|
columnName: string;
|
|
201
264
|
keyId?: string;
|
|
265
|
+
serialize?: (value: unknown) => string;
|
|
266
|
+
deserialize?: (value: string) => unknown;
|
|
202
267
|
}
|
|
203
268
|
/**
|
|
204
269
|
* Encryption key provider
|
|
@@ -218,10 +283,10 @@ export interface CursorToken {
|
|
|
218
283
|
* Base service interface
|
|
219
284
|
*/
|
|
220
285
|
export interface BaseService<TRow extends z.ZodTypeAny, TCreate extends z.ZodTypeAny, TUpdate extends z.ZodTypeAny, TJoins extends Record<string, JoinDef>, _TSecrets extends readonly SecretFieldDef[] | undefined> {
|
|
221
|
-
list(params?: ListParams & MethodOptions): Promise<ListResult<z.infer<TRow> & ComputeJoins<TJoins, ListParams['include']>>>;
|
|
222
|
-
get(id: string | number, opts?: GetParams & MethodOptions): Promise<(z.infer<TRow> & ComputeJoins<TJoins, GetParams['include']>) | null>;
|
|
223
|
-
create(data: z.infer<TCreate>, opts?: CreateParams & MethodOptions): Promise<z.infer<TRow> & ComputeJoins<TJoins, CreateParams['include']>>;
|
|
224
|
-
update(id: string | number, data: Partial<z.infer<TUpdate>>, opts?: UpdateParams & MethodOptions): Promise<(z.infer<TRow> & ComputeJoins<TJoins, UpdateParams['include']>) | null>;
|
|
286
|
+
list<const TSelect extends readonly SelectField[] | undefined = undefined>(params?: ListParams<TSelect> & MethodOptions): Promise<ListResult<SelectedRow<z.infer<TRow>, TSelect> & ComputeJoins<TJoins, ListParams['include']>>>;
|
|
287
|
+
get<const TSelect extends readonly SelectField[] | undefined = undefined>(id: string | number, opts?: GetParams<TSelect> & MethodOptions): Promise<(SelectedRow<z.infer<TRow>, TSelect> & ComputeJoins<TJoins, GetParams['include']>) | null>;
|
|
288
|
+
create<const TSelect extends readonly SelectField[] | undefined = undefined>(data: z.infer<TCreate>, opts?: CreateParams<TSelect> & MethodOptions): Promise<SelectedRow<z.infer<TRow>, TSelect> & ComputeJoins<TJoins, CreateParams['include']>>;
|
|
289
|
+
update<const TSelect extends readonly SelectField[] | undefined = undefined>(id: string | number, data: Partial<z.infer<TUpdate>>, opts?: UpdateParams<TSelect> & MethodOptions): Promise<(SelectedRow<z.infer<TRow>, TSelect> & ComputeJoins<TJoins, UpdateParams['include']>) | null>;
|
|
225
290
|
delete(id: string | number, opts?: DeleteParams & MethodOptions): Promise<boolean>;
|
|
226
291
|
count(params?: CountParams & MethodOptions): Promise<number>;
|
|
227
292
|
query<T = z.infer<TRow>>(sql: string, params?: QueryParams & MethodOptions): Promise<T[]>;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@truto/ginger",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "A type-safe SQLite data access layer for Cloudflare D1, Bun SQLite, and Durable Objects with cursor pagination, joins, AES-256-GCM encryption, and a Feathers.js-inspired hook system",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cloudflare",
|