@opensaas/stack-core 0.23.0 → 0.25.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.
Files changed (77) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +256 -0
  3. package/dist/access/access-filter.d.ts +39 -0
  4. package/dist/access/access-filter.d.ts.map +1 -1
  5. package/dist/access/access-filter.js +121 -0
  6. package/dist/access/access-filter.js.map +1 -1
  7. package/dist/access/field-access.d.ts +1 -0
  8. package/dist/access/field-access.d.ts.map +1 -1
  9. package/dist/access/field-access.js +79 -4
  10. package/dist/access/field-access.js.map +1 -1
  11. package/dist/access/field-access.test.js +213 -0
  12. package/dist/access/field-access.test.js.map +1 -1
  13. package/dist/access/index.d.ts +1 -1
  14. package/dist/access/index.d.ts.map +1 -1
  15. package/dist/access/index.js +1 -1
  16. package/dist/access/index.js.map +1 -1
  17. package/dist/access/types.d.ts +39 -0
  18. package/dist/access/types.d.ts.map +1 -1
  19. package/dist/config/index.d.ts +1 -1
  20. package/dist/config/index.d.ts.map +1 -1
  21. package/dist/config/types.d.ts +378 -0
  22. package/dist/config/types.d.ts.map +1 -1
  23. package/dist/context/index.d.ts +19 -1
  24. package/dist/context/index.d.ts.map +1 -1
  25. package/dist/context/index.js +153 -26
  26. package/dist/context/index.js.map +1 -1
  27. package/dist/context/nested-operations.d.ts +59 -3
  28. package/dist/context/nested-operations.d.ts.map +1 -1
  29. package/dist/context/nested-operations.js +552 -129
  30. package/dist/context/nested-operations.js.map +1 -1
  31. package/dist/context/transaction-boundary.d.ts +91 -0
  32. package/dist/context/transaction-boundary.d.ts.map +1 -0
  33. package/dist/context/transaction-boundary.js +329 -0
  34. package/dist/context/transaction-boundary.js.map +1 -0
  35. package/dist/context/write-pipeline.d.ts +15 -1
  36. package/dist/context/write-pipeline.d.ts.map +1 -1
  37. package/dist/context/write-pipeline.js +173 -10
  38. package/dist/context/write-pipeline.js.map +1 -1
  39. package/dist/fields/calendar-day.test.d.ts +2 -0
  40. package/dist/fields/calendar-day.test.d.ts.map +1 -0
  41. package/dist/fields/calendar-day.test.js +120 -0
  42. package/dist/fields/calendar-day.test.js.map +1 -0
  43. package/dist/fields/index.d.ts +18 -2
  44. package/dist/fields/index.d.ts.map +1 -1
  45. package/dist/fields/index.js +93 -17
  46. package/dist/fields/index.js.map +1 -1
  47. package/dist/hooks/index.d.ts +116 -0
  48. package/dist/hooks/index.d.ts.map +1 -1
  49. package/dist/hooks/index.js +154 -0
  50. package/dist/hooks/index.js.map +1 -1
  51. package/dist/validation/schema.test.js +222 -1
  52. package/dist/validation/schema.test.js.map +1 -1
  53. package/package.json +1 -1
  54. package/src/access/access-filter.ts +156 -0
  55. package/src/access/field-access.test.ts +255 -0
  56. package/src/access/field-access.ts +91 -5
  57. package/src/access/index.ts +1 -1
  58. package/src/access/types.ts +45 -0
  59. package/src/config/index.ts +2 -0
  60. package/src/config/types.ts +426 -0
  61. package/src/context/index.ts +207 -37
  62. package/src/context/nested-operations.ts +969 -143
  63. package/src/context/transaction-boundary.ts +440 -0
  64. package/src/context/write-pipeline.ts +234 -13
  65. package/src/fields/calendar-day.test.ts +140 -0
  66. package/src/fields/index.ts +96 -16
  67. package/src/hooks/index.ts +265 -0
  68. package/src/validation/schema.test.ts +266 -1
  69. package/tests/access.test.ts +24 -16
  70. package/tests/config.test.ts +30 -0
  71. package/tests/context.test.ts +481 -0
  72. package/tests/field-types.test.ts +17 -3
  73. package/tests/nested-access-and-hooks.test.ts +1130 -54
  74. package/tests/nested-operation-registry.test.ts +28 -3
  75. package/tests/nested-write-hooks.test.ts +864 -0
  76. package/tests/transaction-boundary-hooks.test.ts +465 -0
  77. package/tsconfig.tsbuildinfo +1 -1
@@ -1,4 +1,4 @@
1
- import { checkAccess, mergeFilters, filterReadableFields, buildIncludeWithAccessControl, } from '../access/index.js';
1
+ import { checkAccess, mergeFilters, filterReadableFields, buildIncludeWithAccessControl, mergeIncludeWithAccessControl, } from '../access/index.js';
2
2
  import { ValidationError, DatabaseError } from '../hooks/index.js';
3
3
  import { getDbKey } from '../lib/case-utils.js';
4
4
  import { buildInclude, pickFields, isFragment } from '../query/index.js';
@@ -37,6 +37,63 @@ function warnIfSelectIgnored(args, listName, operation) {
37
37
  function isSingletonList(listConfig) {
38
38
  return !!listConfig.isSingleton;
39
39
  }
40
+ /**
41
+ * Compute the set of single-field unique selectors a `findUnique` `where` may be
42
+ * keyed by, derived from what the list config exposes at runtime.
43
+ *
44
+ * The set is:
45
+ * - `id` — always a unique identifier on every list.
46
+ * - Any field declared `isIndexed: 'unique'` in the config (e.g. `text({ isIndexed: 'unique' })`).
47
+ * - For a `relationship` field declared `isIndexed: 'unique'`, the foreign-key
48
+ * column name (`<field>Id`) — that is the column Prisma marks `@unique`, so the
49
+ * unique `where` is keyed by `<field>Id`, not the relation field itself.
50
+ *
51
+ * Chosen rule (documented intentionally): the config does NOT expose compound
52
+ * (`@@unique`) keys at runtime — there is no list-level unique declaration in the
53
+ * config API — so we cannot validate compound `<Model>_<a>_<b>` selectors. We
54
+ * therefore enforce the tractable subset: `where` must contain EXACTLY ONE
55
+ * recognised single-field unique key and NO other keys. This rejects non-unique
56
+ * filters (the bug in #567) and rejects extra non-unique keys alongside a unique
57
+ * one, while never falsely rejecting a valid single-field unique lookup. If a
58
+ * project legitimately needs a compound-unique lookup, that path is not covered
59
+ * here and would need explicit config support; the safe escape hatch for any
60
+ * non-unique single-row lookup is `findFirst` (see #565).
61
+ */
62
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- ListConfig must accept any TypeInfo
63
+ function getUniqueWhereKeys(listConfig) {
64
+ const keys = new Set(['id']);
65
+ for (const [fieldKey, fieldConfig] of Object.entries(listConfig.fields)) {
66
+ if (!fieldConfig || typeof fieldConfig !== 'object')
67
+ continue;
68
+ if (!('isIndexed' in fieldConfig) || fieldConfig.isIndexed !== 'unique')
69
+ continue;
70
+ if (fieldConfig.type === 'relationship') {
71
+ // A unique relationship's `@unique` lives on the FK column `<field>Id`.
72
+ keys.add(`${fieldKey}Id`);
73
+ }
74
+ else {
75
+ keys.add(fieldKey);
76
+ }
77
+ }
78
+ return keys;
79
+ }
80
+ /**
81
+ * Enforce Keystone `findOne` semantics for `findUnique`: the caller-supplied
82
+ * `where` must be a valid unique selector. A non-unique `where` is a caller-shape
83
+ * error (not an access denial), so this THROWS rather than silently returning
84
+ * `null` — consistent with the fail-loud-on-misuse stance of PRD #581. A
85
+ * non-unique single-row lookup should use `findFirst` instead (see #565).
86
+ */
87
+ function assertUniqueWhere(where, uniqueKeys, listName) {
88
+ const keys = where ? Object.keys(where) : [];
89
+ const message = `findUnique on "${listName}" requires a unique \`where\` (a single unique key such as ` +
90
+ `${Array.from(uniqueKeys).join(', ')}). ` +
91
+ `Received: ${keys.length === 0 ? '{}' : `{ ${keys.join(', ')} }`}. ` +
92
+ `Use \`findFirst\` for a non-unique single-row lookup.`;
93
+ if (keys.length !== 1 || !uniqueKeys.has(keys[0])) {
94
+ throw new ValidationError([message], {});
95
+ }
96
+ }
40
97
  /**
41
98
  * Check if auto-create is enabled for a singleton list
42
99
  * Defaults to true if not explicitly set to false
@@ -151,29 +208,8 @@ export function getContext(config, prisma, session, storage, _isSudo = false) {
151
208
  _isSudo,
152
209
  _resolveOutputCounter: { depth: 0 },
153
210
  };
154
- // Create access-controlled operations for each list
155
- for (const [listName, listConfig] of Object.entries(config.lists)) {
156
- const dbKey = getDbKey(listName);
157
- // Create base operations
158
- const createOp = createCreate(listName, listConfig, prisma, context, config);
159
- const findManyOp = createFindMany(listName, listConfig, prisma, context, config);
160
- const updateOp = createUpdate(listName, listConfig, prisma, context, config);
161
- const operations = {
162
- findUnique: createFindUnique(listName, listConfig, prisma, context, config),
163
- findMany: findManyOp,
164
- create: createOp,
165
- update: updateOp,
166
- delete: createDelete(listName, listConfig, prisma, context, config),
167
- count: createCount(listName, listConfig, prisma, context),
168
- createMany: createCreateMany(listName, listConfig, prisma, context, config, createOp),
169
- updateMany: createUpdateMany(listName, listConfig, prisma, context, config, findManyOp, updateOp),
170
- };
171
- // Add get() method for singleton lists
172
- if (isSingletonList(listConfig)) {
173
- operations.get = createGet(listName, listConfig, prisma, context, config, createOp);
174
- }
175
- db[dbKey] = operations;
176
- }
211
+ // Create access-controlled operations for each list, populating `db` in place.
212
+ populateDbDelegate(db, config, prisma, context);
177
213
  // Execute plugin runtime functions and populate context.plugins
178
214
  // Use _plugins (sorted by dependencies) if available, otherwise fall back to plugins array
179
215
  const pluginsToExecute = config._plugins || config.plugins || [];
@@ -277,6 +313,52 @@ export function getContext(config, prisma, session, storage, _isSudo = false) {
277
313
  _isSudo,
278
314
  };
279
315
  }
316
+ /**
317
+ * Populate `target` with the access-controlled CRUD operations for every list,
318
+ * each bound to `prisma` and `context`. Used both by {@link getContext} (at
319
+ * request setup) and by the Write Pipeline to rebuild a `db` delegate against a
320
+ * transaction client (ADR-0010), so a hook's `context.db` write participates in
321
+ * the same transaction.
322
+ *
323
+ * The operations capture `prisma` at construction, so rebinding to a different
324
+ * client (e.g. a transaction `tx`) requires rebuilding the delegate — which is
325
+ * exactly what this function enables.
326
+ */
327
+ export function populateDbDelegate(target, config, prisma, context) {
328
+ for (const [listName, listConfig] of Object.entries(config.lists)) {
329
+ const dbKey = getDbKey(listName);
330
+ // Create base operations
331
+ const createOp = createCreate(listName, listConfig, prisma, context, config);
332
+ const findManyOp = createFindMany(listName, listConfig, prisma, context, config);
333
+ const updateOp = createUpdate(listName, listConfig, prisma, context, config);
334
+ const operations = {
335
+ findUnique: createFindUnique(listName, listConfig, prisma, context, config),
336
+ findMany: findManyOp,
337
+ findFirst: createFindFirst(findManyOp),
338
+ create: createOp,
339
+ update: updateOp,
340
+ delete: createDelete(listName, listConfig, prisma, context, config),
341
+ count: createCount(listName, listConfig, prisma, context),
342
+ createMany: createCreateMany(listName, listConfig, prisma, context, config, createOp),
343
+ updateMany: createUpdateMany(listName, listConfig, prisma, context, config, findManyOp, updateOp),
344
+ };
345
+ // Add get() method for singleton lists
346
+ if (isSingletonList(listConfig)) {
347
+ operations.get = createGet(listName, listConfig, prisma, context, config, createOp);
348
+ }
349
+ target[dbKey] = operations;
350
+ }
351
+ }
352
+ /**
353
+ * Build a fresh access-controlled `db` delegate bound to `prisma` and `context`.
354
+ * Convenience wrapper over {@link populateDbDelegate} returning a new object,
355
+ * used by the Write Pipeline to rebind `db` to a transaction client.
356
+ */
357
+ export function buildDbDelegate(config, prisma, context) {
358
+ const db = {};
359
+ populateDbDelegate(db, config, prisma, context);
360
+ return db;
361
+ }
280
362
  /**
281
363
  * Create findUnique operation with access control
282
364
  */
@@ -286,6 +368,14 @@ listConfig, prisma, context, config) {
286
368
  return async (args) => {
287
369
  // `select` is a visible no-op: warn, then proceed with include/query narrowing.
288
370
  warnIfSelectIgnored(args, listName, 'findUnique');
371
+ // Enforce unique-`where` (Keystone `findOne` parity). This is a caller-shape
372
+ // check independent of access, so it runs first and THROWS on misuse — it is
373
+ // not an access denial and must not be masked as a silent `null`. The
374
+ // type-level constraint already lives on the generated delegate: the custom
375
+ // `<List>FindUniqueArgs` only Omits `select`/`include` from
376
+ // `Prisma.<List>FindUniqueArgs`, so its `where` stays Prisma's
377
+ // `<List>WhereUniqueInput` — this runtime guard backstops untyped callers.
378
+ assertUniqueWhere(args.where, getUniqueWhereKeys(listConfig), listName);
289
379
  // Check query access (skip if sudo mode)
290
380
  let where = args.where;
291
381
  if (!context._isSudo) {
@@ -312,13 +402,24 @@ listConfig, prisma, context, config) {
312
402
  if (fragment) {
313
403
  include = buildInclude(fragment._fields) ?? undefined;
314
404
  }
405
+ else if (context._isSudo) {
406
+ // Sudo bypasses access control entirely — the caller's include is trusted
407
+ // and used as-is (matching the prior behaviour); no per-relation filtering.
408
+ include = args.include;
409
+ }
315
410
  else {
316
411
  // Build include with access control filters
317
412
  const accessControlledInclude = await buildIncludeWithAccessControl(listConfig.fields, {
318
413
  session: context.session,
319
414
  context,
320
415
  }, config);
321
- include = args.include || accessControlledInclude;
416
+ // MERGE (not replace) a caller-supplied include with the access-controlled
417
+ // include: the caller selects WHICH relations to fetch, access control
418
+ // decides WHETHER and WITH WHAT filter (#566). A bare auto-include (no
419
+ // caller include) still uses the access-controlled include directly.
420
+ include = args.include
421
+ ? mergeIncludeWithAccessControl(args.include, accessControlledInclude, listConfig.fields, config)
422
+ : accessControlledInclude;
322
423
  }
323
424
  // Execute query with optimized includes
324
425
  // Access Prisma model dynamically - required because model names are generated at runtime
@@ -381,13 +482,24 @@ listConfig, prisma, context, config) {
381
482
  if (fragment) {
382
483
  include = buildInclude(fragment._fields) ?? undefined;
383
484
  }
485
+ else if (context._isSudo) {
486
+ // Sudo bypasses access control entirely — the caller's include is trusted
487
+ // and used as-is (matching the prior behaviour); no per-relation filtering.
488
+ include = args?.include;
489
+ }
384
490
  else {
385
491
  // Build include with access control filters
386
492
  const accessControlledInclude = await buildIncludeWithAccessControl(listConfig.fields, {
387
493
  session: context.session,
388
494
  context,
389
495
  }, config);
390
- include = args?.include || accessControlledInclude;
496
+ // MERGE (not replace) a caller-supplied include with the access-controlled
497
+ // include: the caller selects WHICH relations to fetch, access control
498
+ // decides WHETHER and WITH WHAT filter (#566). A bare auto-include (no
499
+ // caller include) still uses the access-controlled include directly.
500
+ include = args?.include
501
+ ? mergeIncludeWithAccessControl(args.include, accessControlledInclude, listConfig.fields, config)
502
+ : accessControlledInclude;
391
503
  }
392
504
  // Execute query with optimized includes
393
505
  // Access Prisma model dynamically - required because model names are generated at runtime
@@ -413,6 +525,21 @@ listConfig, prisma, context, config) {
413
525
  return filtered;
414
526
  };
415
527
  }
528
+ /**
529
+ * Create findFirst operation with access control.
530
+ *
531
+ * findFirst is sugar over the access-controlled findMany: it runs the exact same
532
+ * query-access checks and access-controlled include building as findMany, then
533
+ * returns the first matching row (or null when nothing matches). This introduces
534
+ * no new access surface — it inherits findMany's silent-failure contract (an
535
+ * access-denied query yields `[]`, which becomes `null` here).
536
+ */
537
+ function createFindFirst(findManyOp) {
538
+ return async (args) => {
539
+ const result = await findManyOp({ ...args, take: 1 });
540
+ return result[0] ?? null;
541
+ };
542
+ }
416
543
  /**
417
544
  * Create create operation with access control and hooks
418
545
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,66 @@
1
1
  import type { OpenSaasConfig, FieldConfig } from '../config/types.js';
2
2
  import type { AccessContext } from '../access/types.js';
3
3
  /**
4
- * Process all nested operations in a data payload
5
- * Recursively handles relationship fields with nested writes
4
+ * Nested writes (#569 / ADR-0010).
5
+ *
6
+ * Nested `create`/`update`/`delete` must fire the SAME list- and field-level
7
+ * `beforeOperation`/`afterOperation` as the equivalent top-level write, so a
8
+ * record's side effects are identical whether it was written nested or
9
+ * top-level. Persistence itself is still performed by Prisma's single nested
10
+ * write (so Prisma keeps owning FK ordering and intra-statement atomicity); we
11
+ * run the nested records' `beforeOperation` BEFORE that persist and their
12
+ * `afterOperation` AFTER it, all inside the one interactive transaction the
13
+ * Write Pipeline opens.
14
+ *
15
+ * Mechanism (per ADR-0010, "hooks around a single nested persist"):
16
+ * - `processNestedOperations` runs nested resolveInput/validate/field-rules
17
+ * (as before) AND nested `beforeOperation`, and returns the transformed
18
+ * payload together with a list of deferred {@link AfterTask}s.
19
+ * - The Write Pipeline persists the parent (with the nested relations
20
+ * `include`d so the persisted nested rows come back), then calls
21
+ * {@link runAfterTasks} so each nested record's `afterOperation` fires with
22
+ * a real persisted `item` and (for update/delete) its `originalItem`.
23
+ * - Everything runs inside the transaction, so a throwing `beforeOperation`/
24
+ * `afterOperation` rolls back the whole write.
25
+ */
26
+ /**
27
+ * A deferred nested `afterOperation` task, run after the parent has persisted.
28
+ * It receives the persisted parent row (with nested relations included) so it
29
+ * can recover the persisted nested `item`.
30
+ */
31
+ export interface AfterTask {
32
+ /** Field name on the parent linking to the related list (for include lookup). */
33
+ fieldName: string;
34
+ run(parentResult: Record<string, unknown>): Promise<void>;
35
+ }
36
+ /**
37
+ * Result of processing nested operations: the transformed write payload plus
38
+ * the deferred `afterOperation` tasks and the relation fields the parent write
39
+ * must `include` so those tasks can recover their persisted `item`.
40
+ */
41
+ export interface NestedOpsResult {
42
+ /** The transformed write payload handed to Prisma. */
43
+ data: Record<string, unknown>;
44
+ /** Deferred `afterOperation` tasks to run after the parent persist. */
45
+ afterTasks: AfterTask[];
46
+ /** Relationship field names to `include` in the parent write result. */
47
+ includeFields: Set<string>;
48
+ }
49
+ /**
50
+ * Process all nested operations in a data payload.
51
+ *
52
+ * Recursively handles relationship fields with nested writes. In addition to
53
+ * transforming the payload it runs each nested record's `beforeOperation` and
54
+ * collects deferred `afterOperation` tasks (run by the Write Pipeline after the
55
+ * parent persist via {@link runAfterTasks}). See ADR-0010.
6
56
  */
7
57
  export declare function processNestedOperations(data: Record<string, unknown>, fieldConfigs: Record<string, FieldConfig>, config: OpenSaasConfig, context: AccessContext & {
8
58
  prisma: unknown;
9
- }, operation: 'create' | 'update', depth?: number): Promise<Record<string, unknown>>;
59
+ }, operation: 'create' | 'update', parentListName: string, parentOriginalItem: Record<string, unknown> | undefined, parentInputData?: Record<string, unknown> | undefined, depth?: number): Promise<NestedOpsResult>;
60
+ /**
61
+ * Run a set of deferred nested `afterOperation` tasks against a persisted parent
62
+ * row. Tasks run sequentially so a throwing after-hook aborts the rest (and, run
63
+ * inside the transaction by the Write Pipeline, rolls the whole write back).
64
+ */
65
+ export declare function runAfterTasks(afterTasks: AfterTask[], parentResult: Record<string, unknown>): Promise<void>;
10
66
  //# sourceMappingURL=nested-operations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"nested-operations.d.ts","sourceRoot":"","sources":["../../src/context/nested-operations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAc,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAwevD;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EACzC,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,aAAa,GAAG;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,EAC5C,SAAS,EAAE,QAAQ,GAAG,QAAQ,EAC9B,KAAK,GAAE,MAAU,GAChB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAuClC"}
1
+ {"version":3,"file":"nested-operations.d.ts","sourceRoot":"","sources":["../../src/context/nested-operations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAc,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACjF,OAAO,KAAK,EAAE,aAAa,EAAe,MAAM,oBAAoB,CAAA;AAiBpE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,iFAAiF;IACjF,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC1D;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,uEAAuE;IACvE,UAAU,EAAE,SAAS,EAAE,CAAA;IACvB,wEAAwE;IACxE,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAC3B;AA+qCD;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EACzC,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,aAAa,GAAG;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,EAC5C,SAAS,EAAE,QAAQ,GAAG,QAAQ,EAC9B,cAAc,EAAE,MAAM,EACtB,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAKvD,eAAe,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAqB,EAChE,KAAK,GAAE,MAAU,GAChB,OAAO,CAAC,eAAe,CAAC,CAiE1B;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,SAAS,EAAE,EACvB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACpC,OAAO,CAAC,IAAI,CAAC,CAIf"}