@happyvertical/smrt-core 0.40.69 → 0.40.70

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 (144) hide show
  1. package/AGENTS.md +29 -4
  2. package/README.md +20 -1
  3. package/agents/query-bounds.md +45 -0
  4. package/agents/schema-paths.md +328 -0
  5. package/dist/browser.d.ts +1 -0
  6. package/dist/browser.d.ts.map +1 -1
  7. package/dist/browser.js +2 -1
  8. package/dist/class.d.ts.map +1 -1
  9. package/dist/class.js +28 -4
  10. package/dist/class.js.map +1 -1
  11. package/dist/collection.d.ts +101 -2
  12. package/dist/collection.d.ts.map +1 -1
  13. package/dist/collection.js +224 -43
  14. package/dist/collection.js.map +1 -1
  15. package/dist/database.d.ts +8 -0
  16. package/dist/database.d.ts.map +1 -1
  17. package/dist/database.js +16 -8
  18. package/dist/database.js.map +1 -1
  19. package/dist/db-errors.d.ts +105 -0
  20. package/dist/db-errors.d.ts.map +1 -0
  21. package/dist/db-errors.js +382 -0
  22. package/dist/db-errors.js.map +1 -0
  23. package/dist/decorators/index.d.ts +17 -1
  24. package/dist/decorators/index.d.ts.map +1 -1
  25. package/dist/decorators/index.js +65 -7
  26. package/dist/decorators/index.js.map +1 -1
  27. package/dist/dispatch/bus.d.ts.map +1 -1
  28. package/dist/dispatch/bus.js +4 -3
  29. package/dist/dispatch/bus.js.map +1 -1
  30. package/dist/errors.d.ts +30 -2
  31. package/dist/errors.d.ts.map +1 -1
  32. package/dist/errors.js +34 -2
  33. package/dist/errors.js.map +1 -1
  34. package/dist/generators/changes-route.d.ts.map +1 -1
  35. package/dist/generators/changes-route.js +6 -3
  36. package/dist/generators/changes-route.js.map +1 -1
  37. package/dist/generators/mcp-runtime-template.d.ts +8 -0
  38. package/dist/generators/mcp-runtime-template.d.ts.map +1 -1
  39. package/dist/generators/mcp-runtime-template.js +38 -4
  40. package/dist/generators/mcp-runtime-template.js.map +1 -1
  41. package/dist/generators/mcp.d.ts +16 -0
  42. package/dist/generators/mcp.d.ts.map +1 -1
  43. package/dist/generators/mcp.js +41 -3
  44. package/dist/generators/mcp.js.map +1 -1
  45. package/dist/generators/rest.d.ts +22 -0
  46. package/dist/generators/rest.d.ts.map +1 -1
  47. package/dist/generators/rest.js +34 -3
  48. package/dist/generators/rest.js.map +1 -1
  49. package/dist/index.d.ts +6 -1
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js +8 -3
  52. package/dist/manifest/static-manifest.js +1 -1
  53. package/dist/manifest/static-manifest.js.map +1 -1
  54. package/dist/manifest/store.js +1 -1
  55. package/dist/manifest.json +1 -1
  56. package/dist/migrations/differ.d.ts +202 -8
  57. package/dist/migrations/differ.d.ts.map +1 -1
  58. package/dist/migrations/differ.js +604 -46
  59. package/dist/migrations/differ.js.map +1 -1
  60. package/dist/migrations/generator.d.ts +31 -4
  61. package/dist/migrations/generator.d.ts.map +1 -1
  62. package/dist/migrations/generator.js +49 -5
  63. package/dist/migrations/generator.js.map +1 -1
  64. package/dist/migrations/index.d.ts +3 -2
  65. package/dist/migrations/index.d.ts.map +1 -1
  66. package/dist/migrations/index.js +5 -3
  67. package/dist/migrations/orchestrate.js +35 -6
  68. package/dist/migrations/orchestrate.js.map +1 -1
  69. package/dist/migrations/sqlite-rebuild.d.ts +142 -0
  70. package/dist/migrations/sqlite-rebuild.d.ts.map +1 -0
  71. package/dist/migrations/sqlite-rebuild.js +514 -0
  72. package/dist/migrations/sqlite-rebuild.js.map +1 -0
  73. package/dist/migrations/tracker.d.ts +114 -1
  74. package/dist/migrations/tracker.d.ts.map +1 -1
  75. package/dist/migrations/tracker.js +331 -16
  76. package/dist/migrations/tracker.js.map +1 -1
  77. package/dist/migrations/types.d.ts +19 -4
  78. package/dist/migrations/types.d.ts.map +1 -1
  79. package/dist/migrations.js +5 -3
  80. package/dist/object.d.ts +45 -6
  81. package/dist/object.d.ts.map +1 -1
  82. package/dist/object.js +60 -13
  83. package/dist/object.js.map +1 -1
  84. package/dist/postgres-timeouts.d.ts +240 -0
  85. package/dist/postgres-timeouts.d.ts.map +1 -0
  86. package/dist/postgres-timeouts.js +204 -0
  87. package/dist/postgres-timeouts.js.map +1 -0
  88. package/dist/query-bounds.d.ts +97 -0
  89. package/dist/query-bounds.d.ts.map +1 -0
  90. package/dist/query-bounds.js +173 -0
  91. package/dist/query-bounds.js.map +1 -0
  92. package/dist/registry/types.d.ts +32 -1
  93. package/dist/registry/types.d.ts.map +1 -1
  94. package/dist/registry.js +1 -1
  95. package/dist/scanner/types.d.ts +5 -0
  96. package/dist/scanner/types.d.ts.map +1 -1
  97. package/dist/scanner/types.js.map +1 -1
  98. package/dist/schema/ddl/base-strategy.d.ts.map +1 -1
  99. package/dist/schema/ddl/base-strategy.js +2 -2
  100. package/dist/schema/ddl/base-strategy.js.map +1 -1
  101. package/dist/schema/generator.d.ts +70 -5
  102. package/dist/schema/generator.d.ts.map +1 -1
  103. package/dist/schema/generator.js +124 -6
  104. package/dist/schema/generator.js.map +1 -1
  105. package/dist/schema/index.d.ts +3 -0
  106. package/dist/schema/index.d.ts.map +1 -1
  107. package/dist/schema/index.js +4 -1
  108. package/dist/schema/live-parity.d.ts +90 -0
  109. package/dist/schema/live-parity.d.ts.map +1 -0
  110. package/dist/schema/live-parity.js +600 -0
  111. package/dist/schema/live-parity.js.map +1 -0
  112. package/dist/schema/manifest-schema.d.ts +121 -0
  113. package/dist/schema/manifest-schema.d.ts.map +1 -0
  114. package/dist/schema/manifest-schema.js +267 -0
  115. package/dist/schema/manifest-schema.js.map +1 -0
  116. package/dist/schema/schema-aggregator.d.ts +24 -10
  117. package/dist/schema/schema-aggregator.d.ts.map +1 -1
  118. package/dist/schema/schema-aggregator.js +35 -90
  119. package/dist/schema/schema-aggregator.js.map +1 -1
  120. package/dist/schema/system-table-shapes.d.ts +52 -0
  121. package/dist/schema/system-table-shapes.d.ts.map +1 -0
  122. package/dist/schema/system-table-shapes.js +174 -0
  123. package/dist/schema/system-table-shapes.js.map +1 -0
  124. package/dist/schema/types.d.ts +103 -4
  125. package/dist/schema/types.d.ts.map +1 -1
  126. package/dist/schema/utils.d.ts +1 -0
  127. package/dist/schema/utils.d.ts.map +1 -1
  128. package/dist/schema/utils.js +3 -1
  129. package/dist/schema/utils.js.map +1 -1
  130. package/dist/schema.js +4 -1
  131. package/dist/smrt-knowledge.json +18 -6
  132. package/dist/sync/apply.d.ts.map +1 -1
  133. package/dist/sync/apply.js +9 -16
  134. package/dist/sync/apply.js.map +1 -1
  135. package/dist/testing/database.d.ts.map +1 -1
  136. package/dist/testing/database.js +1 -0
  137. package/dist/testing/database.js.map +1 -1
  138. package/dist/vite-plugin/sveltekit-generator.d.ts.map +1 -1
  139. package/dist/vite-plugin/sveltekit-generator.js +71 -5
  140. package/dist/vite-plugin/sveltekit-generator.js.map +1 -1
  141. package/dist/vite-plugin/web-collections.d.ts.map +1 -1
  142. package/dist/vite-plugin/web-collections.js +6 -4
  143. package/dist/vite-plugin/web-collections.js.map +1 -1
  144. package/package.json +5 -5
@@ -1,13 +1,32 @@
1
- import { SchemaChange, SchemaDefinition, SchemaDiff } from '../schema/types.js';
1
+ import { SchemaChange, SchemaDefinition, SchemaDiff, SQLDataType } from '../schema/types.js';
2
2
  import { DatabaseInterface } from './types.js';
3
3
  /**
4
4
  * Options for schema comparison
5
5
  */
6
6
  export interface DiffOptions {
7
- /** Include dropped tables in diff (default: false for safety) */
7
+ /**
8
+ * Emit executable `DROP TABLE` entries (`dropped_tables`) for tables that
9
+ * exist in the database but not in the manifest. Default: false. Orphan
10
+ * tables are always *reported* via `SchemaDiff.orphan_tables` regardless.
11
+ */
8
12
  includeDroppedTables?: boolean;
9
- /** Include dropped columns in diff (default: false for safety) */
13
+ /**
14
+ * Emit executable `drop_column` changes for columns that exist in the
15
+ * database but not in the manifest. Default: false. Orphan columns are
16
+ * always *reported* as `orphan_column` advisories regardless — a NOT NULL
17
+ * orphan without a default is flagged as a warning because every ORM
18
+ * insert (which never supplies the column) will fail on it (#2369).
19
+ */
10
20
  includeDroppedColumns?: boolean;
21
+ /**
22
+ * Execute constraint relaxations instead of only reporting them:
23
+ * `DROP NOT NULL` / `DROP DEFAULT` on live columns that are stricter than
24
+ * the manifest, and `DROP NOT NULL` on orphan NOT NULL columns. Default:
25
+ * false — relaxations are reported as advisories with the suggested SQL.
26
+ * Strengthening repairs (`SET NOT NULL`, `SET DEFAULT`) are always emitted
27
+ * where the engine supports `ALTER COLUMN` (#2369).
28
+ */
29
+ relaxColumns?: boolean;
11
30
  /**
12
31
  * Drop indexes that exist in the database but are absent from the manifest
13
32
  * AND are not functionally equivalent to anything in the manifest. Default:
@@ -38,6 +57,31 @@ export interface DiffOptions {
38
57
  legacyTimezone: 'UTC';
39
58
  };
40
59
  }
60
+ /**
61
+ * Name of the unique index that backs a `unique: true` column. Mirrors the
62
+ * `<table>_<column>_key` name PostgreSQL gives the implicit index of an
63
+ * inline column UNIQUE constraint, so the same column ends up with the same
64
+ * index name on every engine and the orphan-index sweep treats it as
65
+ * constraint-owned.
66
+ */
67
+ export declare function uniqueColumnIndexName(tableName: string, columnName: string): string;
68
+ /**
69
+ * True when a change is report-only: it carries an advisory and no
70
+ * executable statement. Such changes never reach the migration stream.
71
+ */
72
+ export declare function isAdvisoryOnlyChange(change: SchemaChange): boolean;
73
+ /**
74
+ * True for an info-level report-only change: listed in `SchemaDiff.changes`
75
+ * for visibility but not counted by `has_changes` (a harmless orphan column,
76
+ * a live default the manifest no longer declares).
77
+ */
78
+ export declare function isInfoOnlyChange(change: SchemaChange): boolean;
79
+ /**
80
+ * True when a change has no executable DDL: `type_mismatch`, an advisory-only
81
+ * change, or a change whose only SQL is an advisory comment (e.g. a SQLite
82
+ * `ALTER COLUMN` the engine cannot perform in place).
83
+ */
84
+ export declare function isManualOrAdvisoryChange(change: SchemaChange): boolean;
41
85
  /**
42
86
  * Normalize a partial-index `WHERE` predicate so semantically-identical
43
87
  * clauses from different sources compare equal (issue #1692).
@@ -67,6 +111,33 @@ export declare function normalizeIndexPredicate(where?: string | null): string;
67
111
  * `pg_indexes.indexdef`. Returns '' for a non-partial index.
68
112
  */
69
113
  export declare function extractIndexPredicate(createIndexSql: string): string;
114
+ /**
115
+ * Canonical form of a column default for drift comparison (#2369).
116
+ *
117
+ * The manifest side is the DDL fragment `formatDefaultValue()` would emit
118
+ * (`'anon'`, `0`, `TRUE`, `'{}'`, `current_timestamp`); the database side is
119
+ * whatever the catalog reports, which each engine renders differently:
120
+ * PostgreSQL appends casts (`'anon'::text`, `'{}'::jsonb`, `'-1'::integer`)
121
+ * and upper-cases `CURRENT_TIMESTAMP`, DuckDB wraps booleans
122
+ * (`CAST('t' AS BOOLEAN)`), SQLite echoes the literal verbatim. Both sides
123
+ * are reduced by the *manifest column type* to a `{kind, key}` pair:
124
+ *
125
+ * - `none` — no default (`undefined`, empty, or the `NULL` keyword)
126
+ * - `now` — the current-timestamp family (`current_timestamp`, `now()`,
127
+ * `transaction_timestamp()`, `datetime('now')`)
128
+ * - `number` — numeric columns, compared by numeric value
129
+ * - `bool` — boolean columns (`true`/`false`/`t`/`f`/`1`/`0`)
130
+ * - `text` — string literal contents (JSON columns compare the parsed
131
+ * value when both sides parse)
132
+ * - `func` — other function calls / keywords, compared lowercase and
133
+ * whitespace-collapsed
134
+ * - `raw` — could not be classified; callers must skip the comparison
135
+ * rather than risk a false positive
136
+ */
137
+ export declare function canonicalizeDefault(fragment: string | undefined, columnType: SQLDataType): {
138
+ kind: 'none' | 'now' | 'number' | 'bool' | 'text' | 'func' | 'raw';
139
+ key: string;
140
+ };
70
141
  /**
71
142
  * SchemaComparer class for comparing manifest schemas to database
72
143
  */
@@ -85,9 +156,88 @@ export declare class SchemaComparer {
85
156
  */
86
157
  compareTable(tableName: string, manifest: SchemaDefinition): Promise<SchemaChange[]>;
87
158
  /**
88
- * Compare columns between manifest and database
159
+ * Compare columns between manifest and database.
160
+ *
161
+ * Three families of drift (#2369):
162
+ *
163
+ * 1. **Missing column** — emit `add_column` with an executable plan for the
164
+ * engine (see {@link generateAddColumnChanges}).
165
+ * 2. **Existing column** — type drift (as before), then nullability and
166
+ * default drift (see {@link compareColumnConstraints}).
167
+ * 3. **Orphan column** (in DB, not in manifest) — always reported. With
168
+ * `includeDroppedColumns` it becomes an executable `drop_column`; a
169
+ * NOT NULL orphan without a default is a `warning` advisory because ORM
170
+ * inserts never supply it and will fail (`23502`); with `relaxColumns`
171
+ * that orphan gets an executable `DROP NOT NULL` where the engine allows.
89
172
  */
90
173
  private compareColumns;
174
+ /**
175
+ * Compare nullability and default between a manifest column and the live
176
+ * column, emitting `alter_column` changes (#2369).
177
+ *
178
+ * Rules:
179
+ * - Primary-key columns are owned by the PK constraint (SQLite reports a
180
+ * `TEXT PRIMARY KEY` as nullable while PostgreSQL/DuckDB imply NOT NULL),
181
+ * so they are skipped entirely.
182
+ * - Strengthening (`SET NOT NULL`, `SET DEFAULT`) is emitted as executable
183
+ * SQL on engines with `ALTER COLUMN` (PostgreSQL/DuckDB). A `SET NOT NULL`
184
+ * is preceded by a backfill of the manifest default when there is one;
185
+ * without a default the live data is probed and, if NULLs exist, the
186
+ * change is reported as manual with the suggested backfill instead of
187
+ * emitting an ALTER the engine would reject mid-batch.
188
+ * - Relaxing (`DROP NOT NULL`, `DROP DEFAULT`) is reported as an advisory
189
+ * unless `relaxColumns` is set, in which case it is executable.
190
+ * - SQLite has no `ALTER COLUMN`; every alteration is reported as manual
191
+ * (advisory-comment SQL) until the table-rebuild path (#2370) lands.
192
+ * - Defaults are compared through {@link canonicalizeDefault}; when either
193
+ * side cannot be canonicalized the comparison is skipped rather than
194
+ * risking a false positive that would churn every run.
195
+ */
196
+ private compareColumnConstraints;
197
+ /**
198
+ * Assemble an `alter_column` change.
199
+ *
200
+ * - `statements: null` means the engine cannot alter the column in place
201
+ * (SQLite): the change is reported as manual with advisory-comment SQL.
202
+ * - `relaxation` marks a weakening change: without `relaxColumns` it is
203
+ * emitted as a report-only advisory (no SQL); with it, the statements are
204
+ * executable.
205
+ */
206
+ private buildAlterColumnChange;
207
+ /**
208
+ * Describe a DB column that has no manifest counterpart. Blocking when it
209
+ * is NOT NULL without a default: ORM inserts never supply it, so every
210
+ * insert fails with a not-null violation while `db:status` would otherwise
211
+ * say the schema is in sync (#2369).
212
+ */
213
+ private describeOrphanColumn;
214
+ /**
215
+ * Remediation hint for a relaxation advisory. On engines with `ALTER
216
+ * COLUMN` the flag executes it; SQLite cannot relax in place, so the hint
217
+ * says so instead of implying the flag will act (#2370).
218
+ */
219
+ private relaxHint;
220
+ private describeDbColumn;
221
+ /**
222
+ * Whether the engine can alter nullability/defaults of an existing column
223
+ * in place. SQLite cannot (`ALTER TABLE ... ALTER COLUMN` does not exist);
224
+ * PostgreSQL, DuckDB and the DuckDB-backed JSON adapter can.
225
+ */
226
+ private supportsAlterColumn;
227
+ private generateSetDefaultSQL;
228
+ /**
229
+ * Live-data probe: does the table hold any row? Used to decide whether an
230
+ * added required column without a default can be enforced NOT NULL right
231
+ * away. Errors (adapter without raw query, etc.) resolve to `true` so the
232
+ * caller takes the conservative path.
233
+ */
234
+ private tableHasRows;
235
+ /**
236
+ * Live-data probe: does the column hold any NULL? Used before emitting a
237
+ * `SET NOT NULL` that has no default to backfill with. Errors resolve to
238
+ * `true` (conservative: report instead of emitting an ALTER that fails).
239
+ */
240
+ private columnHasNulls;
91
241
  private isUuidTextEquivalentColumn;
92
242
  private isStructuralUuidCompatibleColumn;
93
243
  /**
@@ -244,9 +394,40 @@ export declare class SchemaComparer {
244
394
  private generatePostgresTimestampPreflightSQL;
245
395
  private quoteLiteral;
246
396
  /**
247
- * Generate SQL for adding a column
397
+ * Plan the changes that add a missing column so the emitted DDL is
398
+ * executable on the active engine (#2369).
399
+ *
400
+ * Engines disagree on what `ALTER TABLE ... ADD COLUMN` may carry inline
401
+ * (probed on SQLite 3.4x/3.5x, DuckDB 1.4.x, PostgreSQL 16/17):
402
+ *
403
+ * | clause | SQLite | DuckDB | PostgreSQL |
404
+ * |-----------------|--------------------------------|----------|---------------------|
405
+ * | NOT NULL + DEF | ok | rejected | ok |
406
+ * | NOT NULL, no DEF| ok on empty, rejected populated| rejected | ok empty, rej. pop. |
407
+ * | UNIQUE | rejected | rejected | ok |
408
+ * | DEFAULT | ok | ok | ok |
409
+ * | CHECK | ok | rejected | ok |
410
+ *
411
+ * so the plan is:
412
+ * - `NOT NULL` with a default: inline on SQLite/PostgreSQL (existing rows
413
+ * receive the default); DuckDB adds with `DEFAULT` then a separate
414
+ * `ALTER COLUMN ... SET NOT NULL`.
415
+ * - `NOT NULL` without a default: enforced only when the table is empty
416
+ * (inline on SQLite/PostgreSQL, `SET NOT NULL` step on DuckDB). On a
417
+ * populated table there is nothing to backfill with, so the column is
418
+ * added nullable and a manual `alter_column` (`set_not_null`) is reported
419
+ * with the exact remediation instead of emitting DDL every engine rejects.
420
+ * - `UNIQUE`: inline on PostgreSQL (a real constraint); SQLite/DuckDB get a
421
+ * separate `CREATE UNIQUE INDEX <table>_<col>_key` (the PostgreSQL
422
+ * constraint-index name, so the orphan sweep leaves it alone).
423
+ * - `CHECK`: inline where accepted; DuckDB rejects it in ADD COLUMN, so it
424
+ * is dropped there with a warning (SMRT's generators never emit `check`).
425
+ *
426
+ * The primary `add_column` change carries the whole plan in
427
+ * `sqlStatements` (and the last statement in `sql`) so both the CLI and the
428
+ * orchestrator execute it as one unit.
248
429
  */
249
- private generateAddColumnSQL;
430
+ private generateAddColumnChanges;
250
431
  /**
251
432
  * Generate SQL for dropping a column
252
433
  */
@@ -262,6 +443,11 @@ export declare class SchemaComparer {
262
443
  * reject partial indexes — the predicate is dropped so the emitted DDL stays
263
444
  * executable (a partial index degrades to a full index there). The predicate
264
445
  * is trimmed and a redundant leading `WHERE` stripped for robustness.
446
+ *
447
+ * `IF NOT EXISTS` matches the canonical `generateIndexes()` DDL path and
448
+ * makes a retry after a partially applied batch repair the schema instead of
449
+ * erroring on the indexes that did land (issue #2362). All three engines
450
+ * (SQLite, PostgreSQL, DuckDB) accept the clause.
265
451
  */
266
452
  private generateAddIndexSQL;
267
453
  /**
@@ -285,11 +471,19 @@ export declare class SchemaComparer {
285
471
  */
286
472
  export declare function generateSchemaDiff(db: DatabaseInterface, manifestSchemas: Record<string, SchemaDefinition>, options?: DiffOptions): Promise<SchemaDiff>;
287
473
  /**
288
- * Check if a diff has any actionable changes (excluding type mismatches)
474
+ * Check if a diff has any actionable changes a table to create or drop, or
475
+ * a change with executable DDL. Incompatible type mismatches, report-only
476
+ * advisories (orphan columns/indexes, relaxations the caller has not opted
477
+ * into) and comment-only changes (SQLite in-place limitations, live data
478
+ * blocking a repair) are not actionable; they surface through
479
+ * `unactionableChanges` / the CLI's manual bucket instead.
289
480
  */
290
481
  export declare function hasActionableChanges(diff: SchemaDiff): boolean;
291
482
  /**
292
- * Get SQL statements from a diff for execution
483
+ * Get SQL statements from a diff for execution. Advisory-only changes carry
484
+ * no statements and are skipped; comment-only statements (SQLite in-place
485
+ * limitations) pass through unchanged so callers can filter them the way
486
+ * they already do for `type_upgrade`.
293
487
  */
294
488
  export declare function getSQLFromDiff(diff: SchemaDiff): string[];
295
489
  //# sourceMappingURL=differ.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"differ.d.ts","sourceRoot":"","sources":["../../src/migrations/differ.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"differ.d.ts","sourceRoot":"","sources":["../../src/migrations/differ.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAIV,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,WAAW,EACZ,MAAM,oBAAoB,CAAC;AAM5B,OAAO,KAAK,EAAE,iBAAiB,EAAsB,MAAM,YAAY,CAAC;AA8BxE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;;;OAOG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,iDAAiD;IACjD,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,0BAA0B,CAAC,EAAE;QAAE,cAAc,EAAE,KAAK,CAAA;KAAE,CAAC;CACxD;AAqBD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,MAAM,CAER;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAIlE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAE9D;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAQtE;AASD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAsCrE;AAiBD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAOpE;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,UAAU,EAAE,WAAW,GACtB;IACD,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;IACnE,GAAG,EAAE,MAAM,CAAC;CACb,CAyFA;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,WAAW,CAAoC;gBAE3C,EAAE,EAAE,iBAAiB,EAAE,OAAO,GAAE,WAAgB;IAsB5D;;OAEG;IACG,OAAO,CACX,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAChD,OAAO,CAAC,UAAU,CAAC;IAuDtB;;OAEG;IACG,YAAY,CAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,YAAY,EAAE,CAAC;IAsD1B;;;;;;;;;;;;;;OAcG;YACW,cAAc;IA6J5B;;;;;;;;;;;;;;;;;;;;;OAqBG;YACW,wBAAwB;IAwLtC;;;;;;;;OAQG;IACH,OAAO,CAAC,sBAAsB;IAgE9B;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IA2D5B;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,gBAAgB;IAWxB;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,qBAAqB;IAe7B;;;;;OAKG;YACW,YAAY;IAe1B;;;;OAIG;YACW,cAAc;IAkB5B,OAAO,CAAC,0BAA0B;IAkBlC,OAAO,CAAC,gCAAgC;IAexC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACH,OAAO,CAAC,cAAc;IA+MtB;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,OAAO,CAAC,iBAAiB;IAezB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,sBAAsB;IAI9B;;;;;;;;;;;;;;;;;;;OAmBG;YACW,oBAAoB;IAmDlC;;OAEG;YACW,iBAAiB;IAoB/B;;OAEG;IACH,OAAO,CAAC,aAAa;IAiErB;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,uBAAuB;IA8D/B;;;;;;;OAOG;IACH,OAAO,CAAC,sBAAsB;IAmJ9B;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB;;;;OAIG;IACH,OAAO,CAAC,mCAAmC;IAgB3C;;;;OAIG;IACH,OAAO,CAAC,qCAAqC;IAU7C,OAAO,CAAC,YAAY;IAIpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;YACW,wBAAwB;IAqHtC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAI7B;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,mBAAmB;IAW3B;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,oBAAoB;CAG7B;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,iBAAiB,EACrB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,EACjD,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,UAAU,CAAC,CAGrB;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAI9D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,EAAE,CAgBzD"}