@truto/ginger 1.1.1 → 1.3.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 +72 -5
- package/dist/example.d.ts +0 -1
- package/dist/example.d.ts.map +1 -1
- package/dist/example.js +2 -1
- package/dist/example.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 +67 -5
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +274 -29
- 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 +53 -8
- 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
|
|
@@ -44,6 +45,8 @@ import {
|
|
|
44
45
|
|
|
45
46
|
// ── Schemas ──────────────────────────────────────────────────────────
|
|
46
47
|
|
|
48
|
+
// Secret fields (apiKey / api_key_encrypted) must NOT be in rowSchema.
|
|
49
|
+
// They are managed by the secrets config and returned only when includeSecrets: true.
|
|
47
50
|
const UserRow = z.object({
|
|
48
51
|
id: z.number(),
|
|
49
52
|
name: z.string(),
|
|
@@ -362,6 +365,63 @@ const user = await service.get(id, {
|
|
|
362
365
|
// user.teams → TeamRow[]
|
|
363
366
|
```
|
|
364
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
|
+
|
|
365
425
|
### Field encryption
|
|
366
426
|
|
|
367
427
|
Sensitive fields are encrypted with **AES-256-GCM** via Web Crypto and stored as `kid:iv:cipher` (base64 segments):
|
|
@@ -369,8 +429,8 @@ Sensitive fields are encrypted with **AES-256-GCM** via Web Crypto and stored as
|
|
|
369
429
|
```typescript
|
|
370
430
|
const secrets = [
|
|
371
431
|
{
|
|
372
|
-
logicalName: 'apiKey', // field in your
|
|
373
|
-
columnName: 'api_key_enc', // column in the DB
|
|
432
|
+
logicalName: 'apiKey', // field name in your application
|
|
433
|
+
columnName: 'api_key_enc', // actual column in the DB
|
|
374
434
|
keyId: 'api-keys', // key identifier
|
|
375
435
|
},
|
|
376
436
|
] as const
|
|
@@ -397,6 +457,13 @@ const service = createService({
|
|
|
397
457
|
})
|
|
398
458
|
```
|
|
399
459
|
|
|
460
|
+
> **Important:** Do **not** include secret fields in `rowSchema` — neither the `columnName` (e.g. `api_key_enc`) nor the `logicalName` (e.g. `apiKey`). Ginger manages these separately:
|
|
461
|
+
>
|
|
462
|
+
> - The `columnName` is excluded from SELECT queries by default and included only when `includeSecrets: true`.
|
|
463
|
+
> - The `logicalName` is injected into the result after decryption when `includeSecrets: true`.
|
|
464
|
+
>
|
|
465
|
+
> If you accidentally include either in `rowSchema`, Ginger will throw a `ValidationError` at service creation time with a clear message explaining what to remove.
|
|
466
|
+
|
|
400
467
|
Generate a key:
|
|
401
468
|
|
|
402
469
|
```typescript
|
|
@@ -406,10 +473,10 @@ const key = await generateSecretKey()
|
|
|
406
473
|
// → base64-encoded 256-bit key
|
|
407
474
|
```
|
|
408
475
|
|
|
409
|
-
Encryption is
|
|
476
|
+
Encryption is handled automatically:
|
|
410
477
|
|
|
411
|
-
- `
|
|
412
|
-
- `
|
|
478
|
+
- On `create` / `update` — the `logicalName` field is encrypted and stored in the `columnName` column
|
|
479
|
+
- On `get` / `list` (when `includeSecrets: true`) — the `columnName` column is decrypted and returned as `logicalName`
|
|
413
480
|
|
|
414
481
|
### Hooks
|
|
415
482
|
|
package/dist/example.d.ts
CHANGED
package/dist/example.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"example.d.ts","sourceRoot":"","sources":["../src/example.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAiB,CAAC,EAAqC,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"example.d.ts","sourceRoot":"","sources":["../src/example.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAiB,CAAC,EAAqC,MAAM,YAAY,CAAA;AAqEhF;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,GAAG,EACP,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA2CvC;AAED;;GAEG;;oBAEqB,OAAO,OAAO,GAAG,QAAQ,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;;AADxE,wBA+GC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG"}
|
package/dist/example.js
CHANGED
|
@@ -7,11 +7,12 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { createService, z } from './index.js';
|
|
9
9
|
// Schema definitions
|
|
10
|
+
// Note: secret fields (apiKey) must NOT be in rowSchema — they are managed
|
|
11
|
+
// separately by the secrets config and injected only when includeSecrets: true.
|
|
10
12
|
const UserRowSchema = z.object({
|
|
11
13
|
id: z.number(),
|
|
12
14
|
name: z.string(),
|
|
13
15
|
email: z.string(),
|
|
14
|
-
apiKey: z.string(), // This will be encrypted
|
|
15
16
|
tenantId: z.string(),
|
|
16
17
|
createdAt: z.string(),
|
|
17
18
|
updatedAt: z.string(),
|
package/dist/example.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"example.js","sourceRoot":"","sources":["../src/example.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,aAAa,EAAE,CAAC,EAAqC,MAAM,YAAY,CAAA;AAEhF,qBAAqB;AACrB,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,
|
|
1
|
+
{"version":3,"file":"example.js","sourceRoot":"","sources":["../src/example.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
|
*/
|
|
@@ -17,23 +17,63 @@ export declare class Service<TRow extends z.ZodTypeAny, TCreate extends z.ZodTyp
|
|
|
17
17
|
readonly deps: Record<string, BaseService<any, any, any, any, any>>;
|
|
18
18
|
readonly timestamps: TimestampConfig | undefined;
|
|
19
19
|
private readonly hooks;
|
|
20
|
+
private readonly secretKeysToStrip;
|
|
20
21
|
constructor(options: ServiceOptions<TRow, TCreate, TUpdate, TJoins, TSecrets>);
|
|
22
|
+
private stripSecretKeys;
|
|
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
|
+
private validateSecretsNotInRowSchema;
|
|
21
61
|
/**
|
|
22
62
|
* List records with cursor-based pagination
|
|
23
63
|
*/
|
|
24
|
-
list(params?: ListParams & MethodOptions): Promise<ListResult<z.infer<TRow> & ComputeJoins<TJoins, ListParams['include']>>>;
|
|
64
|
+
list<const TSelect extends readonly SelectField[] | undefined = undefined>(params?: ListParams<TSelect> & MethodOptions): Promise<ListResult<SelectedRow<z.infer<TRow>, TSelect> & ComputeJoins<TJoins, ListParams['include']>>>;
|
|
25
65
|
/**
|
|
26
66
|
* Get a single record by ID
|
|
27
67
|
*/
|
|
28
|
-
get(id: string | number, opts?: GetParams & MethodOptions): Promise<(z.infer<TRow> & ComputeJoins<TJoins, GetParams['include']>) | null>;
|
|
68
|
+
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>;
|
|
29
69
|
/**
|
|
30
70
|
* Create a new record
|
|
31
71
|
*/
|
|
32
|
-
create(data: z.infer<TCreate>, opts?: CreateParams & MethodOptions): Promise<z.infer<TRow> & ComputeJoins<TJoins, CreateParams['include']>>;
|
|
72
|
+
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']>>;
|
|
33
73
|
/**
|
|
34
74
|
* Update a record by ID
|
|
35
75
|
*/
|
|
36
|
-
update(id: string | number, data: Partial<z.infer<TUpdate>>, opts?: UpdateParams & MethodOptions): Promise<(z.infer<TRow> & ComputeJoins<TJoins, UpdateParams['include']>) | null>;
|
|
76
|
+
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>;
|
|
37
77
|
/**
|
|
38
78
|
* Delete a record by ID
|
|
39
79
|
*/
|
|
@@ -71,6 +111,28 @@ export declare class Service<TRow extends z.ZodTypeAny, TCreate extends z.ZodTyp
|
|
|
71
111
|
* Decrypt secrets in a row
|
|
72
112
|
*/
|
|
73
113
|
private decryptRowSecrets;
|
|
114
|
+
/**
|
|
115
|
+
* Project a processed row down to the caller-requested subset.
|
|
116
|
+
*
|
|
117
|
+
* Callers must pass a row that has already been through
|
|
118
|
+
* `processJoinedRows` (and, for `get()`, `fetchOneToManyJoins`). That means
|
|
119
|
+
* it contains exactly:
|
|
120
|
+
* parsed.mainColumns + primary key + orderBy + secret columns
|
|
121
|
+
* + nested join data under each join key (object | array | null).
|
|
122
|
+
*
|
|
123
|
+
* Here we only need to:
|
|
124
|
+
* 1. Drop the raw secret column names (e.g. `api_key_encrypted`) — those
|
|
125
|
+
* are surfaced under the logicalName when `includeSecrets` is true.
|
|
126
|
+
* 2. Merge in decrypted logical secrets when `includeSecrets` is true.
|
|
127
|
+
*
|
|
128
|
+
* Zod validation is intentionally skipped — selecting a subset would
|
|
129
|
+
* otherwise fail required-field checks.
|
|
130
|
+
*
|
|
131
|
+
* The `include` parameter is currently unused but kept on the signature
|
|
132
|
+
* for symmetry with other helpers and to make future per-join projection
|
|
133
|
+
* easy to thread in.
|
|
134
|
+
*/
|
|
135
|
+
private projectRow;
|
|
74
136
|
/**
|
|
75
137
|
* Process joined rows by extracting join data
|
|
76
138
|
*/
|
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
|
@@ -20,6 +20,7 @@ export class Service {
|
|
|
20
20
|
deps;
|
|
21
21
|
timestamps;
|
|
22
22
|
hooks;
|
|
23
|
+
secretKeysToStrip;
|
|
23
24
|
constructor(options) {
|
|
24
25
|
this.table = options.table;
|
|
25
26
|
this.db = options.db;
|
|
@@ -36,6 +37,184 @@ export class Service {
|
|
|
36
37
|
this.keyProvider =
|
|
37
38
|
options.keyProvider ||
|
|
38
39
|
new DefaultKeyProvider(options.encryptionKeys || {});
|
|
40
|
+
this.secretKeysToStrip = new Set();
|
|
41
|
+
if (this.secrets) {
|
|
42
|
+
for (const s of this.secrets) {
|
|
43
|
+
this.secretKeysToStrip.add(s.columnName);
|
|
44
|
+
this.secretKeysToStrip.add(s.logicalName);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
this.validateSecretsNotInRowSchema();
|
|
48
|
+
}
|
|
49
|
+
stripSecretKeys(row) {
|
|
50
|
+
if (this.secretKeysToStrip.size === 0)
|
|
51
|
+
return row;
|
|
52
|
+
const cleaned = { ...row };
|
|
53
|
+
for (const key of this.secretKeysToStrip) {
|
|
54
|
+
delete cleaned[key];
|
|
55
|
+
}
|
|
56
|
+
return cleaned;
|
|
57
|
+
}
|
|
58
|
+
extractSecretFields(row) {
|
|
59
|
+
if (!this.secrets)
|
|
60
|
+
return {};
|
|
61
|
+
const fields = {};
|
|
62
|
+
for (const s of this.secrets) {
|
|
63
|
+
if (row[s.logicalName] !== undefined) {
|
|
64
|
+
fields[s.logicalName] = row[s.logicalName];
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return fields;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Parse a `select` array into main-row columns and per-join column overrides.
|
|
71
|
+
*
|
|
72
|
+
* Tokens:
|
|
73
|
+
* - `'col'` → main row column
|
|
74
|
+
* - `'$alias.col'` → column from the join named `alias`
|
|
75
|
+
* - `'$alias'` → all configured columns for the join named `alias`
|
|
76
|
+
*
|
|
77
|
+
* Validates that:
|
|
78
|
+
* - Main columns exist in the row schema (when shape is available).
|
|
79
|
+
* - `$alias` references a configured join AND the join is enabled via
|
|
80
|
+
* `include[alias] = true`. We require explicit include so the return
|
|
81
|
+
* type (which is keyed off `include`) stays accurate.
|
|
82
|
+
*/
|
|
83
|
+
parseSelect(select, include) {
|
|
84
|
+
if (!select || select.length === 0)
|
|
85
|
+
return undefined;
|
|
86
|
+
const mainSet = new Set();
|
|
87
|
+
const joinAcc = {};
|
|
88
|
+
const allowedMain = this.getSchemaColumns();
|
|
89
|
+
const wildcard = allowedMain.length === 1 && allowedMain[0] === '*';
|
|
90
|
+
const joinNames = this.joins ? new Set(Object.keys(this.joins)) : new Set();
|
|
91
|
+
for (const raw of select) {
|
|
92
|
+
if (typeof raw !== 'string' || raw.length === 0) {
|
|
93
|
+
throw new ValidationError(`Invalid select token: ${JSON.stringify(raw)}. Expected a non-empty string.`);
|
|
94
|
+
}
|
|
95
|
+
if (raw.startsWith('$')) {
|
|
96
|
+
const body = raw.slice(1);
|
|
97
|
+
const dot = body.indexOf('.');
|
|
98
|
+
const alias = dot === -1 ? body : body.slice(0, dot);
|
|
99
|
+
const column = dot === -1 ? undefined : body.slice(dot + 1);
|
|
100
|
+
if (!alias) {
|
|
101
|
+
throw new ValidationError(`Invalid select token "${raw}": missing alias name after '$'.`);
|
|
102
|
+
}
|
|
103
|
+
if (!joinNames.has(alias)) {
|
|
104
|
+
throw new ValidationError(`Unknown join alias "${alias}" in select token "${raw}". Configured joins: ${Array.from(joinNames).join(', ') || '<none>'}.`);
|
|
105
|
+
}
|
|
106
|
+
if (!include[alias]) {
|
|
107
|
+
throw new ValidationError(`select token "${raw}" requires include.${alias} = true.`);
|
|
108
|
+
}
|
|
109
|
+
if (column === undefined) {
|
|
110
|
+
joinAcc[alias] = '*';
|
|
111
|
+
}
|
|
112
|
+
else if (!column) {
|
|
113
|
+
throw new ValidationError(`Invalid select token "${raw}": missing column name after '$${alias}.'.`);
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
const existing = joinAcc[alias];
|
|
117
|
+
if (existing === '*') {
|
|
118
|
+
// already wildcard; keep wildcard
|
|
119
|
+
continue;
|
|
120
|
+
}
|
|
121
|
+
if (!existing) {
|
|
122
|
+
joinAcc[alias] = new Set([column]);
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
existing.add(column);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
continue;
|
|
129
|
+
}
|
|
130
|
+
if (!wildcard && !allowedMain.includes(raw)) {
|
|
131
|
+
throw new ValidationError(`Unknown column "${raw}" in select. Allowed columns: ${allowedMain.join(', ')}.`);
|
|
132
|
+
}
|
|
133
|
+
mainSet.add(raw);
|
|
134
|
+
}
|
|
135
|
+
const joinColumns = {};
|
|
136
|
+
for (const [alias, value] of Object.entries(joinAcc)) {
|
|
137
|
+
joinColumns[alias] = value === '*' ? '*' : Array.from(value);
|
|
138
|
+
}
|
|
139
|
+
return {
|
|
140
|
+
mainColumns: Array.from(mainSet),
|
|
141
|
+
joinColumns,
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Compute the effective list of columns to SELECT from the main table.
|
|
146
|
+
*
|
|
147
|
+
* The user's main-row select is augmented with the primary key columns and
|
|
148
|
+
* any `orderBy` columns so cursor pagination keeps working and so the
|
|
149
|
+
* canonical record is always identifiable. These extras are kept in the
|
|
150
|
+
* returned row (per the design choice "silently include and keep").
|
|
151
|
+
*/
|
|
152
|
+
resolveMainColumns(parsed, orderBy, includeSecrets) {
|
|
153
|
+
if (!parsed)
|
|
154
|
+
return this.getSelectColumns(includeSecrets);
|
|
155
|
+
const out = new Set(parsed.mainColumns);
|
|
156
|
+
for (const pk of Array.isArray(this.primaryKey)
|
|
157
|
+
? this.primaryKey
|
|
158
|
+
: [this.primaryKey]) {
|
|
159
|
+
out.add(pk);
|
|
160
|
+
}
|
|
161
|
+
for (const order of orderBy) {
|
|
162
|
+
out.add(order.column);
|
|
163
|
+
}
|
|
164
|
+
if (includeSecrets && this.secrets) {
|
|
165
|
+
for (const s of this.secrets) {
|
|
166
|
+
out.add(s.columnName);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
return Array.from(out);
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Compute the effective per-join column override map.
|
|
173
|
+
*
|
|
174
|
+
* For each enabled join: if the user asked for specific columns via
|
|
175
|
+
* `$alias.col`, use those; if they used a bare `$alias`, fall back to the
|
|
176
|
+
* join's configured `remote.select`. Joins with no override aren't returned
|
|
177
|
+
* (so `buildSelect` keeps using the configured select for them).
|
|
178
|
+
*
|
|
179
|
+
* The join's PK is silently included so `processJoinedRows` can detect the
|
|
180
|
+
* presence of related data.
|
|
181
|
+
*/
|
|
182
|
+
resolveJoinOverrides(parsed, include) {
|
|
183
|
+
if (!parsed || !this.joins)
|
|
184
|
+
return undefined;
|
|
185
|
+
const overrides = {};
|
|
186
|
+
for (const [alias, value] of Object.entries(parsed.joinColumns)) {
|
|
187
|
+
if (!include[alias])
|
|
188
|
+
continue;
|
|
189
|
+
const def = this.joins[alias];
|
|
190
|
+
if (!def)
|
|
191
|
+
continue;
|
|
192
|
+
if (value === '*')
|
|
193
|
+
continue; // use configured remote.select
|
|
194
|
+
const cols = new Set(value);
|
|
195
|
+
cols.add(def.remote.pk);
|
|
196
|
+
overrides[alias] = Array.from(cols);
|
|
197
|
+
}
|
|
198
|
+
return Object.keys(overrides).length > 0 ? overrides : undefined;
|
|
199
|
+
}
|
|
200
|
+
validateSecretsNotInRowSchema() {
|
|
201
|
+
if (!this.secrets)
|
|
202
|
+
return;
|
|
203
|
+
const shape = this.rowSchema.shape;
|
|
204
|
+
if (!shape || typeof shape !== 'object')
|
|
205
|
+
return;
|
|
206
|
+
const schemaKeys = new Set(Object.keys(shape));
|
|
207
|
+
for (const secret of this.secrets) {
|
|
208
|
+
if (schemaKeys.has(secret.columnName)) {
|
|
209
|
+
throw new ValidationError(`Secret column '${secret.columnName}' (columnName) should not be in rowSchema — ` +
|
|
210
|
+
`secret fields are managed separately via the secrets config. Remove it from rowSchema.`);
|
|
211
|
+
}
|
|
212
|
+
if (schemaKeys.has(secret.logicalName)) {
|
|
213
|
+
throw new ValidationError(`Secret field '${secret.logicalName}' (logicalName) should not be in rowSchema — ` +
|
|
214
|
+
`when includeSecrets is true, it is automatically added to the result after decryption. ` +
|
|
215
|
+
`Remove it from rowSchema.`);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
39
218
|
}
|
|
40
219
|
/**
|
|
41
220
|
* List records with cursor-based pagination
|
|
@@ -50,7 +229,7 @@ export class Service {
|
|
|
50
229
|
};
|
|
51
230
|
try {
|
|
52
231
|
await this.runHooks('before', 'list', ctx);
|
|
53
|
-
const { cursor, limit = 50, orderBy: paramOrderBy, where = {}, include = {}, includeSecrets = false, } = params;
|
|
232
|
+
const { cursor, limit = 50, orderBy: paramOrderBy, where = {}, include = {}, includeSecrets = false, select, } = params;
|
|
54
233
|
// Validate limit
|
|
55
234
|
if (limit > 1000) {
|
|
56
235
|
throw new ValidationError('Limit cannot exceed 1000');
|
|
@@ -85,14 +264,16 @@ export class Service {
|
|
|
85
264
|
throw new ValidationError(`Invalid cursor: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
86
265
|
}
|
|
87
266
|
}
|
|
88
|
-
|
|
89
|
-
const columns = this.
|
|
267
|
+
const parsedSelect = this.parseSelect(select, include);
|
|
268
|
+
const columns = this.resolveMainColumns(parsedSelect, orderBy, includeSecrets);
|
|
269
|
+
const joinColumnOverrides = this.resolveJoinOverrides(parsedSelect, include);
|
|
90
270
|
// Build and execute query
|
|
91
271
|
const { text: query, values: sqlParams } = buildSelect(this.table, {
|
|
92
|
-
columns,
|
|
272
|
+
...(columns ? { columns } : {}),
|
|
93
273
|
where,
|
|
94
274
|
...(this.joins ? { joins: this.joins } : {}),
|
|
95
275
|
include,
|
|
276
|
+
...(joinColumnOverrides ? { joinColumnOverrides } : {}),
|
|
96
277
|
orderBy,
|
|
97
278
|
limit: actualLimit,
|
|
98
279
|
...(cursorConditions ? { cursorConditions } : {}),
|
|
@@ -112,10 +293,25 @@ export class Service {
|
|
|
112
293
|
if (includeSecrets && this.secrets) {
|
|
113
294
|
rows = await Promise.all(rows.map((row) => this.decryptRowSecrets(row)));
|
|
114
295
|
}
|
|
115
|
-
// Process joins
|
|
116
|
-
const processedRows = this.processJoinedRows(rows, include);
|
|
117
|
-
// Validate rows
|
|
118
|
-
|
|
296
|
+
// Process joins (honour per-call join column overrides)
|
|
297
|
+
const processedRows = this.processJoinedRows(rows, include, joinColumnOverrides);
|
|
298
|
+
// Validate rows. When `select` is provided we project to the requested
|
|
299
|
+
// subset and skip full schema validation (Zod would fail on missing
|
|
300
|
+
// required fields). PK + orderBy columns are always present because
|
|
301
|
+
// resolveMainColumns added them.
|
|
302
|
+
const validatedRows = processedRows.map((row) => {
|
|
303
|
+
const r = row;
|
|
304
|
+
if (parsedSelect) {
|
|
305
|
+
return this.projectRow(r, include, includeSecrets);
|
|
306
|
+
}
|
|
307
|
+
const validated = this.rowSchema.parse(this.stripSecretKeys(r));
|
|
308
|
+
return includeSecrets
|
|
309
|
+
? {
|
|
310
|
+
...validated,
|
|
311
|
+
...this.extractSecretFields(r),
|
|
312
|
+
}
|
|
313
|
+
: validated;
|
|
314
|
+
});
|
|
119
315
|
// Generate cursors
|
|
120
316
|
let nextCursor;
|
|
121
317
|
let prevCursor;
|
|
@@ -157,14 +353,16 @@ export class Service {
|
|
|
157
353
|
};
|
|
158
354
|
try {
|
|
159
355
|
await this.runHooks('before', 'get', ctx);
|
|
160
|
-
const { include = {}, includeSecrets = false } = opts;
|
|
161
|
-
|
|
162
|
-
const columns = this.
|
|
356
|
+
const { include = {}, includeSecrets = false, select } = opts;
|
|
357
|
+
const parsedSelect = this.parseSelect(select, include);
|
|
358
|
+
const columns = this.resolveMainColumns(parsedSelect, [], includeSecrets);
|
|
359
|
+
const joinColumnOverrides = this.resolveJoinOverrides(parsedSelect, include);
|
|
163
360
|
// Build and execute query
|
|
164
361
|
const { text: query, values: params } = buildSelectById(this.table, this.primaryKey, id, {
|
|
165
|
-
columns,
|
|
362
|
+
...(columns ? { columns } : {}),
|
|
166
363
|
...(this.joins ? { joins: this.joins } : {}),
|
|
167
364
|
include,
|
|
365
|
+
...(joinColumnOverrides ? { joinColumnOverrides } : {}),
|
|
168
366
|
});
|
|
169
367
|
const stmt = this.db.prepare(query);
|
|
170
368
|
const result = await stmt.bind(...params).first();
|
|
@@ -178,18 +376,29 @@ export class Service {
|
|
|
178
376
|
if (includeSecrets && this.secrets) {
|
|
179
377
|
row = await this.decryptRowSecrets(row);
|
|
180
378
|
}
|
|
181
|
-
// Process joins
|
|
182
|
-
let processedRow = this.processJoinedRows([row], include)[0];
|
|
379
|
+
// Process joins (honour per-call join column overrides)
|
|
380
|
+
let processedRow = this.processJoinedRows([row], include, joinColumnOverrides)[0];
|
|
183
381
|
// Handle one-to-many joins with separate queries
|
|
184
382
|
if (this.joins && Object.keys(include).length > 0) {
|
|
185
|
-
processedRow = await this.fetchOneToManyJoins(processedRow, include, id);
|
|
383
|
+
processedRow = await this.fetchOneToManyJoins(processedRow, include, id, joinColumnOverrides);
|
|
384
|
+
}
|
|
385
|
+
// When `select` was provided, project to the requested subset rather
|
|
386
|
+
// than running Zod validation (which would fail on missing required
|
|
387
|
+
// fields). Otherwise validate the full row through the schema.
|
|
388
|
+
let validatedRow;
|
|
389
|
+
if (parsedSelect) {
|
|
390
|
+
// processedRow already has aliased join keys removed and join data
|
|
391
|
+
// attached via processJoinedRows + fetchOneToManyJoins.
|
|
392
|
+
validatedRow = this.projectRow(processedRow, include, includeSecrets);
|
|
393
|
+
}
|
|
394
|
+
else {
|
|
395
|
+
const baseRow = this.rowSchema.parse(this.stripSecretKeys(row));
|
|
396
|
+
validatedRow = {
|
|
397
|
+
...baseRow,
|
|
398
|
+
...(includeSecrets ? this.extractSecretFields(row) : {}),
|
|
399
|
+
...this.extractJoinData(processedRow, include),
|
|
400
|
+
};
|
|
186
401
|
}
|
|
187
|
-
// Validate row (but preserve join data)
|
|
188
|
-
const baseRow = this.rowSchema.parse(row);
|
|
189
|
-
const validatedRow = {
|
|
190
|
-
...baseRow,
|
|
191
|
-
...this.extractJoinData(processedRow, include),
|
|
192
|
-
};
|
|
193
402
|
ctx.result = validatedRow;
|
|
194
403
|
await this.runHooks('after', 'get', ctx);
|
|
195
404
|
return validatedRow;
|
|
@@ -214,7 +423,7 @@ export class Service {
|
|
|
214
423
|
};
|
|
215
424
|
try {
|
|
216
425
|
await this.runHooks('before', 'create', ctx);
|
|
217
|
-
const { include = {}, includeSecrets = false } = opts;
|
|
426
|
+
const { include = {}, includeSecrets = false, select } = opts;
|
|
218
427
|
// Validate input data
|
|
219
428
|
const validatedData = this.createSchema.parse(data);
|
|
220
429
|
// Add timestamp fields if configured
|
|
@@ -251,6 +460,7 @@ export class Service {
|
|
|
251
460
|
const createdRecord = await this.get(insertId, {
|
|
252
461
|
include,
|
|
253
462
|
includeSecrets,
|
|
463
|
+
...(select ? { select } : {}),
|
|
254
464
|
auth: opts.auth,
|
|
255
465
|
});
|
|
256
466
|
if (!createdRecord) {
|
|
@@ -280,7 +490,7 @@ export class Service {
|
|
|
280
490
|
};
|
|
281
491
|
try {
|
|
282
492
|
await this.runHooks('before', 'update', ctx);
|
|
283
|
-
const { include = {}, includeSecrets = false } = opts;
|
|
493
|
+
const { include = {}, includeSecrets = false, select } = opts;
|
|
284
494
|
// Check if record exists
|
|
285
495
|
const existingRecord = await this.get(id, { auth: opts.auth });
|
|
286
496
|
if (!existingRecord) {
|
|
@@ -320,6 +530,7 @@ export class Service {
|
|
|
320
530
|
const updatedRecord = await this.get(id, {
|
|
321
531
|
include,
|
|
322
532
|
includeSecrets,
|
|
533
|
+
...(select ? { select } : {}),
|
|
323
534
|
auth: opts.auth,
|
|
324
535
|
});
|
|
325
536
|
ctx.result = updatedRecord;
|
|
@@ -525,10 +736,43 @@ export class Service {
|
|
|
525
736
|
return row;
|
|
526
737
|
return decryptSecrets(row, this.secrets, this.keyProvider);
|
|
527
738
|
}
|
|
739
|
+
/**
|
|
740
|
+
* Project a processed row down to the caller-requested subset.
|
|
741
|
+
*
|
|
742
|
+
* Callers must pass a row that has already been through
|
|
743
|
+
* `processJoinedRows` (and, for `get()`, `fetchOneToManyJoins`). That means
|
|
744
|
+
* it contains exactly:
|
|
745
|
+
* parsed.mainColumns + primary key + orderBy + secret columns
|
|
746
|
+
* + nested join data under each join key (object | array | null).
|
|
747
|
+
*
|
|
748
|
+
* Here we only need to:
|
|
749
|
+
* 1. Drop the raw secret column names (e.g. `api_key_encrypted`) — those
|
|
750
|
+
* are surfaced under the logicalName when `includeSecrets` is true.
|
|
751
|
+
* 2. Merge in decrypted logical secrets when `includeSecrets` is true.
|
|
752
|
+
*
|
|
753
|
+
* Zod validation is intentionally skipped — selecting a subset would
|
|
754
|
+
* otherwise fail required-field checks.
|
|
755
|
+
*
|
|
756
|
+
* The `include` parameter is currently unused but kept on the signature
|
|
757
|
+
* for symmetry with other helpers and to make future per-join projection
|
|
758
|
+
* easy to thread in.
|
|
759
|
+
*/
|
|
760
|
+
projectRow(row, _include, includeSecrets) {
|
|
761
|
+
const out = { ...row };
|
|
762
|
+
if (this.secrets) {
|
|
763
|
+
for (const s of this.secrets) {
|
|
764
|
+
delete out[s.columnName];
|
|
765
|
+
}
|
|
766
|
+
}
|
|
767
|
+
if (includeSecrets) {
|
|
768
|
+
Object.assign(out, this.extractSecretFields(row));
|
|
769
|
+
}
|
|
770
|
+
return out;
|
|
771
|
+
}
|
|
528
772
|
/**
|
|
529
773
|
* Process joined rows by extracting join data
|
|
530
774
|
*/
|
|
531
|
-
processJoinedRows(rows, include) {
|
|
775
|
+
processJoinedRows(rows, include, joinColumnOverrides) {
|
|
532
776
|
if (!this.joins || Object.keys(include).length === 0) {
|
|
533
777
|
return rows;
|
|
534
778
|
}
|
|
@@ -541,8 +785,8 @@ export class Service {
|
|
|
541
785
|
const joinAlias = joinDef.remote.alias || joinName;
|
|
542
786
|
const joinData = {};
|
|
543
787
|
const keysToRemove = [];
|
|
544
|
-
|
|
545
|
-
for (const column of
|
|
788
|
+
const effectiveCols = joinColumnOverrides?.[joinName] ?? joinDef.remote.select;
|
|
789
|
+
for (const column of effectiveCols) {
|
|
546
790
|
const aliasedKey = `${joinAlias}_${column}`;
|
|
547
791
|
if (aliasedKey in row) {
|
|
548
792
|
joinData[column] = row[aliasedKey];
|
|
@@ -586,7 +830,7 @@ export class Service {
|
|
|
586
830
|
/**
|
|
587
831
|
* Fetch one-to-many joins using separate queries
|
|
588
832
|
*/
|
|
589
|
-
async fetchOneToManyJoins(processedRow, include, mainRecordId) {
|
|
833
|
+
async fetchOneToManyJoins(processedRow, include, mainRecordId, joinColumnOverrides) {
|
|
590
834
|
if (!this.joins)
|
|
591
835
|
return processedRow;
|
|
592
836
|
const result = { ...processedRow };
|
|
@@ -594,8 +838,9 @@ export class Service {
|
|
|
594
838
|
if (!include[joinName] || joinDef.kind !== 'many')
|
|
595
839
|
continue;
|
|
596
840
|
let relatedRecords = [];
|
|
841
|
+
const effectiveCols = joinColumnOverrides?.[joinName] ?? joinDef.remote.select;
|
|
597
842
|
if (joinDef.through) {
|
|
598
|
-
const selectColumns =
|
|
843
|
+
const selectColumns = effectiveCols.map((col) => sql `${sql.ident(`${joinDef.remote.table}.${col}`)}`);
|
|
599
844
|
const query = sql `SELECT ${sql.join(selectColumns, ', ')}
|
|
600
845
|
FROM ${sql.ident(joinDef.remote.table)}
|
|
601
846
|
INNER JOIN ${sql.ident(joinDef.through.table)}
|
|
@@ -608,7 +853,7 @@ export class Service {
|
|
|
608
853
|
}
|
|
609
854
|
}
|
|
610
855
|
else {
|
|
611
|
-
const selectColumns =
|
|
856
|
+
const selectColumns = effectiveCols.map((col) => sql `${sql.ident(col)}`);
|
|
612
857
|
const query = sql `SELECT ${sql.join(selectColumns, ', ')}
|
|
613
858
|
FROM ${sql.ident(joinDef.remote.table)}
|
|
614
859
|
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;IAEjD,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;IACxD,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,gBAAgB;YAChB,MAAM,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAC9C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAC1B,CAAA;YAED,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,wCAAwC;YACxC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAA;YACpE,MAAM,YAAY,GAAG;gBACnB,GAAG,OAAO;gBACV,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":"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"}
|
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
|
|
@@ -218,10 +263,10 @@ export interface CursorToken {
|
|
|
218
263
|
* Base service interface
|
|
219
264
|
*/
|
|
220
265
|
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>;
|
|
266
|
+
list<const TSelect extends readonly SelectField[] | undefined = undefined>(params?: ListParams<TSelect> & MethodOptions): Promise<ListResult<SelectedRow<z.infer<TRow>, TSelect> & ComputeJoins<TJoins, ListParams['include']>>>;
|
|
267
|
+
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>;
|
|
268
|
+
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']>>;
|
|
269
|
+
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
270
|
delete(id: string | number, opts?: DeleteParams & MethodOptions): Promise<boolean>;
|
|
226
271
|
count(params?: CountParams & MethodOptions): Promise<number>;
|
|
227
272
|
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.3.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",
|