@owlmeans/postgres-resource 0.1.18-rc.41 → 0.1.18-rc.43

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 (171) hide show
  1. package/README.md +13 -13
  2. package/agent-meta/manifest.json +2 -2
  3. package/agent-meta/skills/postgres-resource/SKILL.md +2 -2
  4. package/build/consts.d.ts +9 -0
  5. package/build/consts.d.ts.map +1 -1
  6. package/build/consts.js +6 -0
  7. package/build/consts.js.map +1 -1
  8. package/build/declarations/types.d.ts +12 -0
  9. package/build/declarations/types.d.ts.map +1 -0
  10. package/build/declarations/types.js +2 -0
  11. package/build/declarations/types.js.map +1 -0
  12. package/build/declarations.d.ts +6 -9
  13. package/build/declarations.d.ts.map +1 -1
  14. package/build/declarations.js +25 -15
  15. package/build/declarations.js.map +1 -1
  16. package/build/errors.d.ts +0 -20
  17. package/build/errors.d.ts.map +1 -1
  18. package/build/errors.js +1 -111
  19. package/build/errors.js.map +1 -1
  20. package/build/index.d.ts +3 -0
  21. package/build/index.d.ts.map +1 -1
  22. package/build/index.js +1 -0
  23. package/build/index.js.map +1 -1
  24. package/build/pg-error/types.d.ts +24 -0
  25. package/build/pg-error/types.d.ts.map +1 -0
  26. package/build/pg-error/types.js +2 -0
  27. package/build/pg-error/types.js.map +1 -0
  28. package/build/pg-error.d.ts +4 -0
  29. package/build/pg-error.d.ts.map +1 -0
  30. package/build/pg-error.js +100 -0
  31. package/build/pg-error.js.map +1 -0
  32. package/build/resource.d.ts +1 -1
  33. package/build/resource.d.ts.map +1 -1
  34. package/build/resource.js +15 -11
  35. package/build/resource.js.map +1 -1
  36. package/build/types.d.ts +6 -1
  37. package/build/types.d.ts.map +1 -1
  38. package/build/types.local.d.ts +14 -0
  39. package/build/types.local.d.ts.map +1 -0
  40. package/build/types.local.js +2 -0
  41. package/build/types.local.js.map +1 -0
  42. package/build/utils/consts.local.d.ts +35 -0
  43. package/build/utils/consts.local.d.ts.map +1 -0
  44. package/build/utils/consts.local.js +63 -0
  45. package/build/utils/consts.local.js.map +1 -0
  46. package/build/utils/criteria/types.d.ts +31 -0
  47. package/build/utils/criteria/types.d.ts.map +1 -0
  48. package/build/utils/criteria/types.js +2 -0
  49. package/build/utils/criteria/types.js.map +1 -0
  50. package/build/utils/criteria.d.ts +3 -27
  51. package/build/utils/criteria.d.ts.map +1 -1
  52. package/build/utils/criteria.js +88 -107
  53. package/build/utils/criteria.js.map +1 -1
  54. package/build/utils/diff/types.d.ts +40 -0
  55. package/build/utils/diff/types.d.ts.map +1 -0
  56. package/build/utils/diff/types.js +2 -0
  57. package/build/utils/diff/types.js.map +1 -0
  58. package/build/utils/diff.d.ts +5 -35
  59. package/build/utils/diff.d.ts.map +1 -1
  60. package/build/utils/diff.js +321 -343
  61. package/build/utils/diff.js.map +1 -1
  62. package/build/utils/index.d.ts +10 -0
  63. package/build/utils/index.d.ts.map +1 -1
  64. package/build/utils/index.js.map +1 -1
  65. package/build/utils/introspect/types.d.ts +9 -0
  66. package/build/utils/introspect/types.d.ts.map +1 -0
  67. package/build/utils/introspect/types.js +2 -0
  68. package/build/utils/introspect/types.js.map +1 -0
  69. package/build/utils/introspect.d.ts +3 -3
  70. package/build/utils/introspect.d.ts.map +1 -1
  71. package/build/utils/introspect.js +42 -67
  72. package/build/utils/introspect.js.map +1 -1
  73. package/build/utils/life-cycle/types.d.ts +37 -0
  74. package/build/utils/life-cycle/types.d.ts.map +1 -0
  75. package/build/utils/life-cycle/types.js +2 -0
  76. package/build/utils/life-cycle/types.js.map +1 -0
  77. package/build/utils/life-cycle.d.ts +3 -38
  78. package/build/utils/life-cycle.d.ts.map +1 -1
  79. package/build/utils/life-cycle.js +90 -107
  80. package/build/utils/life-cycle.js.map +1 -1
  81. package/build/utils/marshal/types.d.ts +39 -0
  82. package/build/utils/marshal/types.d.ts.map +1 -0
  83. package/build/utils/marshal/types.js +2 -0
  84. package/build/utils/marshal/types.js.map +1 -0
  85. package/build/utils/marshal.d.ts +4 -32
  86. package/build/utils/marshal.d.ts.map +1 -1
  87. package/build/utils/marshal.js +124 -141
  88. package/build/utils/marshal.js.map +1 -1
  89. package/build/utils/migrations.d.ts.map +1 -1
  90. package/build/utils/migrations.js +41 -36
  91. package/build/utils/migrations.js.map +1 -1
  92. package/build/utils/name/types.d.ts +43 -0
  93. package/build/utils/name/types.d.ts.map +1 -0
  94. package/build/utils/name/types.js +2 -0
  95. package/build/utils/name/types.js.map +1 -0
  96. package/build/utils/name.d.ts +6 -35
  97. package/build/utils/name.d.ts.map +1 -1
  98. package/build/utils/name.js +40 -59
  99. package/build/utils/name.js.map +1 -1
  100. package/build/utils/schema/types.d.ts +22 -0
  101. package/build/utils/schema/types.d.ts.map +1 -0
  102. package/build/utils/schema/types.js +2 -0
  103. package/build/utils/schema/types.js.map +1 -0
  104. package/build/utils/schema.d.ts +4 -24
  105. package/build/utils/schema.d.ts.map +1 -1
  106. package/build/utils/schema.js +341 -352
  107. package/build/utils/schema.js.map +1 -1
  108. package/build/utils/sql/types.d.ts +25 -0
  109. package/build/utils/sql/types.d.ts.map +1 -0
  110. package/build/utils/sql/types.js +2 -0
  111. package/build/utils/sql/types.js.map +1 -0
  112. package/build/utils/sql.d.ts +5 -27
  113. package/build/utils/sql.d.ts.map +1 -1
  114. package/build/utils/sql.js +0 -0
  115. package/build/utils/sql.js.map +1 -1
  116. package/build/utils/sync/types.d.ts +25 -0
  117. package/build/utils/sync/types.d.ts.map +1 -0
  118. package/build/utils/sync/types.js +2 -0
  119. package/build/utils/sync/types.js.map +1 -0
  120. package/build/utils/sync.d.ts +2 -19
  121. package/build/utils/sync.d.ts.map +1 -1
  122. package/build/utils/sync.js +67 -84
  123. package/build/utils/sync.js.map +1 -1
  124. package/build/utils/types.d.ts +18 -0
  125. package/build/utils/types.d.ts.map +1 -0
  126. package/build/utils/types.js +2 -0
  127. package/build/utils/types.js.map +1 -0
  128. package/build/utils/types.local.d.ts +33 -0
  129. package/build/utils/types.local.d.ts.map +1 -0
  130. package/build/utils/types.local.js +2 -0
  131. package/build/utils/types.local.js.map +1 -0
  132. package/package.json +14 -13
  133. package/src/consts.ts +7 -0
  134. package/src/declarations/types.ts +12 -0
  135. package/src/declarations.ts +30 -23
  136. package/src/errors.ts +1 -131
  137. package/src/index.ts +3 -0
  138. package/src/pg-error/types.ts +23 -0
  139. package/src/pg-error.ts +114 -0
  140. package/src/resource.ts +20 -24
  141. package/src/types.local.ts +16 -0
  142. package/src/types.ts +8 -4
  143. package/src/utils/consts.local.ts +71 -0
  144. package/src/utils/criteria/types.ts +32 -0
  145. package/src/utils/criteria.ts +99 -129
  146. package/src/utils/diff/types.ts +41 -0
  147. package/src/utils/diff.ts +331 -348
  148. package/src/utils/index.ts +10 -0
  149. package/src/utils/introspect/types.ts +9 -0
  150. package/src/utils/introspect.ts +54 -79
  151. package/src/utils/life-cycle/types.ts +41 -0
  152. package/src/utils/life-cycle.ts +108 -134
  153. package/src/utils/marshal/types.ts +40 -0
  154. package/src/utils/marshal.ts +134 -147
  155. package/src/utils/migrations.ts +39 -33
  156. package/src/utils/name/types.ts +44 -0
  157. package/src/utils/name.ts +49 -63
  158. package/src/utils/schema/types.ts +26 -0
  159. package/src/utils/schema.ts +366 -397
  160. package/src/utils/sql/types.ts +25 -0
  161. package/src/utils/sql.ts +0 -0
  162. package/src/utils/sync/types.ts +25 -0
  163. package/src/utils/sync.ts +65 -83
  164. package/src/utils/types.local.ts +35 -0
  165. package/src/utils/types.ts +19 -0
  166. package/tests/criteria.spec.ts +4 -1
  167. package/tests/diff.spec.ts +28 -1
  168. package/tests/errors.spec.ts +4 -3
  169. package/tests/name.spec.ts +5 -3
  170. package/tests/schema.spec.ts +3 -1
  171. package/tests/sql.spec.ts +20 -22
@@ -1,8 +1,6 @@
1
1
  import { UnsupportedArgumentError } from '@owlmeans/resource';
2
2
  import { and, asc, desc, or, param, sql } from 'drizzle-orm';
3
- const COMPARISON = {
4
- $eq: '=', $ne: '<>', $gt: '>', $gte: '>=', $lt: '<', $lte: '<='
5
- };
3
+ import { COMPARISON } from './consts.local.js';
6
4
  const columnRef = (table, column) => sql `${table[column.property]}`;
7
5
  const value = (raw, column) => {
8
6
  if (column.jsonb && raw != null && typeof raw !== 'string') {
@@ -132,6 +130,7 @@ const operators = (table, column, spec) => {
132
130
  return conditions;
133
131
  };
134
132
  const escapeLike = (value) => value.replace(/[\\%_]/g, match => `\\${match}`);
133
+ // ─── Dotted paths into a jsonb column ────────────────────────────────────────────────────────────
135
134
  const pathTarget = (table, column, path) => {
136
135
  const value = sql `(${columnRef(table, column)} #> ${param(path)}::text[])`;
137
136
  return {
@@ -239,116 +238,98 @@ const pathCondition = (target, raw, key) => {
239
238
  */
240
239
  const isOperatorSpec = (value) => value != null && typeof value === 'object' && !Array.isArray(value) && !(value instanceof Date)
241
240
  && Object.keys(value).some(key => key.startsWith('$'));
242
- /**
243
- * Translate a {@link Criteria} into a WHERE clause. `undefined` means "no constraint at
244
- * all" — the caller decides whether that is a full scan or a refusal.
245
- *
246
- * An unknown key raises rather than being skipped: a typo silently widening a query to
247
- * the whole table is the failure mode worth being loud about.
248
- *
249
- * @throws {UnsupportedArgumentError}
250
- */
251
- export const criteriaToSql = (criteria, spec, table) => {
252
- const conditions = build(criteria, spec, table);
253
- return conditions.length > 0 ? and(...conditions) : undefined;
254
- };
255
- const build = (criteria, spec, table) => {
256
- const conditions = [];
257
- for (const [key, raw] of Object.entries(criteria ?? {})) {
258
- if (raw === undefined) {
259
- continue;
260
- }
261
- if (key === '$and' || key === '$or') {
262
- const parts = (Array.isArray(raw) ? raw : [raw])
263
- .map(entry => and(...build(entry, spec, table)))
264
- .filter((entry) => entry != null);
265
- if (parts.length > 0) {
266
- const combined = key === '$and' ? and(...parts) : or(...parts);
267
- if (combined != null) {
268
- conditions.push(combined);
241
+ export const createPgCriteriaHelper = () => {
242
+ const criteriaToSql = (criteria, spec, table) => {
243
+ const conditions = build(criteria, spec, table);
244
+ return conditions.length > 0 ? and(...conditions) : undefined;
245
+ };
246
+ const build = (criteria, spec, table) => {
247
+ const conditions = [];
248
+ for (const [key, raw] of Object.entries(criteria ?? {})) {
249
+ if (raw === undefined) {
250
+ continue;
251
+ }
252
+ if (key === '$and' || key === '$or') {
253
+ const parts = (Array.isArray(raw) ? raw : [raw])
254
+ .map(entry => and(...build(entry, spec, table)))
255
+ .filter((entry) => entry != null);
256
+ if (parts.length > 0) {
257
+ const combined = key === '$and' ? and(...parts) : or(...parts);
258
+ if (combined != null) {
259
+ conditions.push(combined);
260
+ }
269
261
  }
262
+ continue;
270
263
  }
271
- continue;
272
- }
273
- if (key === '$not') {
274
- const inner = and(...build(raw, spec, table));
275
- if (inner != null) {
276
- conditions.push(sql `NOT (${inner})`);
264
+ if (key === '$not') {
265
+ const inner = and(...build(raw, spec, table));
266
+ if (inner != null) {
267
+ conditions.push(sql `NOT (${inner})`);
268
+ }
269
+ continue;
277
270
  }
278
- continue;
279
- }
280
- /** `profile.city` reaches into a jsonb column rather than naming a column. */
281
- const [head, ...path] = key.split('.');
282
- const column = spec.byProperty[head];
283
- if (column == null) {
284
- throw new UnsupportedArgumentError(`criteria:${key}`);
285
- }
286
- if (path.length > 0) {
287
- if (!column.jsonb) {
288
- throw new UnsupportedArgumentError(`criteria-path:${key}`);
271
+ /** `profile.city` reaches into a jsonb column rather than naming a column. */
272
+ const [head, ...path] = key.split('.');
273
+ const column = spec.byProperty[head];
274
+ if (column == null) {
275
+ throw new UnsupportedArgumentError(`criteria:${key}`);
289
276
  }
290
- conditions.push(...pathCondition(pathTarget(table, column, path), raw, key));
291
- continue;
292
- }
293
- if (raw === null) {
294
- conditions.push(sql `${columnRef(table, column)} IS NULL`);
295
- continue;
296
- }
297
- if (isOperatorSpec(raw)) {
298
- conditions.push(...operators(table, column, raw));
299
- continue;
300
- }
301
- if (Array.isArray(raw)) {
302
- /**
303
- * A bare array means `IN` for a relational store, which is overwhelmingly the intent.
304
- * Exact array equality against a `text[]` column stays available as `{ $eq: [...] }`.
305
- */
306
- conditions.push(inList(table, column, raw, false));
307
- continue;
308
- }
309
- if (column.jsonb && typeof raw === 'object') {
310
- conditions.push(sql `${columnRef(table, column)} @> ${JSON.stringify(raw)}`);
311
- continue;
312
- }
313
- conditions.push(sql `${columnRef(table, column)} = ${value(raw, column)}`);
314
- }
315
- return conditions;
316
- };
317
- /**
318
- * Translate a {@link Sort} list into ORDER BY. A bare field name is ascending;
319
- * `{ field, order: 'desc' }` reverses it — the same meaning every backend gives it.
320
- *
321
- * The primary key is always appended as a tiebreak. Postgres has no implicit row order, so
322
- * paginating on a non-unique sort key silently duplicates and skips rows between pages —
323
- * a difference from mongo that would otherwise surface as a data bug rather than an error.
324
- *
325
- * A dotted path is a column this table does not have: criteria can reach into jsonb, ORDER BY
326
- * cannot, and refusing is better than ordering by something the caller did not name.
327
- *
328
- * @throws {UnsupportedArgumentError}
329
- */
330
- export const sortToSql = (sort, spec, table) => {
331
- const order = [];
332
- const seen = [];
333
- for (const entry of sort ?? []) {
334
- const property = typeof entry === 'string' ? entry : entry.field;
335
- const descending = typeof entry !== 'string' && entry.order === 'desc';
336
- const column = spec.byProperty[property];
337
- if (column == null) {
338
- throw new UnsupportedArgumentError(`sort:${property}`);
277
+ if (path.length > 0) {
278
+ if (!column.jsonb) {
279
+ throw new UnsupportedArgumentError(`criteria-path:${key}`);
280
+ }
281
+ conditions.push(...pathCondition(pathTarget(table, column, path), raw, key));
282
+ continue;
283
+ }
284
+ if (raw === null) {
285
+ conditions.push(sql `${columnRef(table, column)} IS NULL`);
286
+ continue;
287
+ }
288
+ if (isOperatorSpec(raw)) {
289
+ conditions.push(...operators(table, column, raw));
290
+ continue;
291
+ }
292
+ if (Array.isArray(raw)) {
293
+ /**
294
+ * A bare array means `IN` for a relational store, which is overwhelmingly the intent.
295
+ * Exact array equality against a `text[]` column stays available as `{ $eq: [...] }`.
296
+ */
297
+ conditions.push(inList(table, column, raw, false));
298
+ continue;
299
+ }
300
+ if (column.jsonb && typeof raw === 'object') {
301
+ conditions.push(sql `${columnRef(table, column)} @> ${JSON.stringify(raw)}`);
302
+ continue;
303
+ }
304
+ conditions.push(sql `${columnRef(table, column)} = ${value(raw, column)}`);
339
305
  }
340
- seen.push(column.column);
341
- order.push(descending ? desc(table[column.property]) : asc(table[column.property]));
342
- }
343
- for (const key of spec.primaryKey) {
344
- if (seen.includes(key)) {
345
- continue;
306
+ return conditions;
307
+ };
308
+ const sortToSql = (sort, spec, table) => {
309
+ const order = [];
310
+ const seen = [];
311
+ for (const entry of sort ?? []) {
312
+ const property = typeof entry === 'string' ? entry : entry.field;
313
+ const descending = typeof entry !== 'string' && entry.order === 'desc';
314
+ const column = spec.byProperty[property];
315
+ if (column == null) {
316
+ throw new UnsupportedArgumentError(`sort:${property}`);
317
+ }
318
+ seen.push(column.column);
319
+ order.push(descending ? desc(table[column.property]) : asc(table[column.property]));
346
320
  }
347
- const column = spec.byColumn[key];
348
- if (column != null) {
349
- order.push(asc(table[column.property]));
321
+ for (const key of spec.primaryKey) {
322
+ if (seen.includes(key)) {
323
+ continue;
324
+ }
325
+ const column = spec.byColumn[key];
326
+ if (column != null) {
327
+ order.push(asc(table[column.property]));
328
+ }
350
329
  }
351
- }
352
- return order;
330
+ return order;
331
+ };
332
+ return { criteriaToSql, sortToSql };
353
333
  };
334
+ export const pgCriteriaHelper = createPgCriteriaHelper();
354
335
  //# sourceMappingURL=criteria.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"criteria.js","sourceRoot":"","sources":["../../src/utils/criteria.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"criteria.js","sourceRoot":"","sources":["../../src/utils/criteria.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAiD,MAAM,oBAAoB,CAAA;AAC5G,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAY,MAAM,aAAa,CAAA;AAGtE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAI9C,MAAM,SAAS,GAAG,CAAC,KAAqB,EAAE,MAAkB,EAAO,EAAE,CAAC,GAAG,CAAA,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAA;AAEpG,MAAM,KAAK,GAAG,CAAC,GAAY,EAAE,MAAkB,EAAO,EAAE;IACtD,IAAI,MAAM,CAAC,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC3D,OAAO,GAAG,CAAA,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAA;IACpC,CAAC;IAED,OAAO,GAAG,CAAA,GAAG,GAAG,EAAE,CAAA;AACpB,CAAC,CAAA;AAED,mFAAmF;AACnF,MAAM,MAAM,GAAG,CAAC,OAAgB,EAAa,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;AAE5F,MAAM,aAAa,GAAG,CAAC,GAAY,EAAkC,EAAE,CACrE,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,YAAY,IAAI,CAAC,CAAA;AAEzF,+CAA+C;AAC/C,MAAM,IAAI,GAAG,CAAC,GAAY,EAAO,EAAE,CAAC,GAAG,CAAA,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,YAAY,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAA;AAEhH,mEAAmE;AACnE,MAAM,QAAQ,GAAG,CAAC,MAAiB,EAAO,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;IAC9D,CAAC,CAAC,GAAG,CAAA,kBAAkB;IACvB,CAAC,CAAC,GAAG,CAAA,SAAS,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAA,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,YAAY,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,CAAA,IAAI,CAAC,YAAY,CAAA;AAE/I;;;GAGG;AACH,MAAM,eAAe,GAAG,CAAC,MAAW,EAAE,QAAqB,EAAE,OAAgB,EAAO,EAAE,CACpF,GAAG,CAAA,GAAG,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAA;AAEjG;;;GAGG;AACH,MAAM,WAAW,GAAG,CAAC,MAAW,EAAE,OAAgB,EAAO,EAAE;IACzD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;IAC9B,OAAO,GAAG,CAAA,2BAA2B,MAAM,+DAA+D,MAAM,oCAAoC,QAAQ,CAAC,MAAM,CAAC,WAAW,MAAM,UAAU,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAA;AACzN,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,aAAa,GAAG,CACpB,KAAqB,EAAE,MAAkB,EAAE,QAAkD,EAAE,OAAgB,EAC1G,EAAE;IACP,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IACvC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,QAAQ,KAAK,WAAW;YAC7B,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC;YAC9B,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC9E,CAAC;IACD,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IACjG,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,GAAG,CAAA,GAAG,MAAM,IAAI,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAA;IACvF,CAAC;IAED,OAAO,GAAG,CAAA,GAAG,MAAM,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAA;AAC3D,CAAC,CAAA;AAED,MAAM,MAAM,GAAG,CAAC,KAAqB,EAAE,MAAkB,EAAE,MAAiB,EAAE,MAAe,EAAO,EAAE;IACpG,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,CAAA;IACrD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAA;IAEhD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,oGAAoG;QACpG,OAAO,OAAO;YACZ,CAAC,CAAC,GAAG,CAAA,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,CAAA,KAAK,CAAC,CAAC,CAAC,GAAG,CAAA,EAAE,OAAO;YACvE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAA,MAAM,CAAC,CAAC,CAAC,GAAG,CAAA,OAAO,CAAA;IACrC,CAAC;IAED,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE,GAAG,CAAA,IAAI,CAAC,CAAA;IAC1E,MAAM,UAAU,GAAG,MAAM;QACvB,CAAC,CAAC,GAAG,CAAA,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,YAAY,IAAI,GAAG;QACnD,CAAC,CAAC,GAAG,CAAA,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAA;IAEjD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,UAAU,CAAA;IACnB,CAAC;IACD;;;OAGG;IACH,OAAO,MAAM;QACX,CAAC,CAAC,GAAG,CAAA,IAAI,UAAU,QAAQ,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,eAAe;QAClE,CAAC,CAAC,GAAG,CAAA,IAAI,UAAU,OAAO,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAA;AACjE,CAAC,CAAA;AAED,MAAM,SAAS,GAAG,CAChB,KAAqB,EAAE,MAAkB,EAAE,IAAyB,EAC7D,EAAE;IACT,MAAM,UAAU,GAAU,EAAE,CAAA;IAC5B,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACvD,IAAI,QAAQ,IAAI,UAAU,EAAE,CAAC;YAC3B,UAAU,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI;gBAC7B,CAAC,CAAC,GAAG,CAAA,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAA,KAAK,CAAC,CAAC,CAAC,GAAG,CAAA,EAAE,OAAO;gBACnF,CAAC,CAAC,GAAG,CAAA,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;YAChG,SAAQ;QACV,CAAC;QACD,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,KAAK,CAAC;YACX,KAAK,MAAM;gBACT,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAA;gBACzG,MAAK;YACP,KAAK,SAAS;gBACZ,UAAU,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK;oBAC/B,CAAC,CAAC,GAAG,CAAA,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU;oBAC1C,CAAC,CAAC,GAAG,CAAA,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC,CAAA;gBACjD,MAAK;YACP,KAAK,OAAO;gBACV,UAAU,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK;oBAC/B,CAAC,CAAC,GAAG,CAAA,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,cAAc;oBAC9C,CAAC,CAAC,GAAG,CAAA,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;gBAC7C,MAAK;YACP,KAAK,OAAO;gBACV,UAAU,CAAC,IAAI,CAAC,GAAG,CAAA,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,OAAO,EAAE,CAAC,CAAA;gBACjE,MAAK;YACP,KAAK,QAAQ;gBACX,UAAU,CAAC,IAAI,CAAC,GAAG,CAAA,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,OAAO,EAAE,CAAC,CAAA;gBAClE,MAAK;YACP,KAAK,QAAQ;gBACX,UAAU,CAAC,IAAI,CAAC,GAAG,CAAA,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,OAAO,EAAE,CAAC,CAAA;gBAC9D,MAAK;YACP,KAAK,aAAa;gBAChB,UAAU,CAAC,IAAI,CAAC,GAAG,CAAA,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,GAAG,UAAU,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAA;gBACxF,MAAK;YACP,KAAK,WAAW;gBACd,UAAU,CAAC,IAAI,CAAC,GAAG,CAAA,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,IAAI,UAAU,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;gBACxF,MAAK;YACP,KAAK,UAAU,EAAE,CAAC;gBAChB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACpD,MAAM,IAAI,wBAAwB,CAAC,qBAAqB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;gBAC5E,CAAC;gBACD,UAAU,CAAC,IAAI,CACb,GAAG,CAAA,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,YAAY,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CACvG,CAAA;gBACD,MAAK;YACP,CAAC;YACD,KAAK,WAAW,CAAC;YACjB,KAAK,YAAY,CAAC;YAClB,KAAK,WAAW;gBACd,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAA;gBAChE,MAAK;YACP;gBACE,MAAM,IAAI,wBAAwB,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAA;QACvE,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA;AAED,MAAM,UAAU,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,CAAA;AAE7F,oGAAoG;AAEpG,MAAM,UAAU,GAAG,CAAC,KAAqB,EAAE,MAAkB,EAAE,IAAc,EAAc,EAAE;IAC3F,MAAM,KAAK,GAAG,GAAG,CAAA,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAA;IAE1E,OAAO;QACL,KAAK;QACL,IAAI,EAAE,GAAG,CAAA,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,WAAW;QACnE,OAAO,EAAE,GAAG,CAAA,IAAI,KAAK,eAAe,KAAK,mBAAmB;KAC7D,CAAA;AACH,CAAC,CAAA;AAED,mGAAmG;AACnG,MAAM,QAAQ,GAAG,CAAC,MAAkB,EAAE,MAAiB,EAAE,MAAe,EAAO,EAAE;IAC/E,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,CAAA;IACrD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAA;IAEhD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,OAAO;YACZ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAA,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO;YACtD,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAA,MAAM,CAAC,CAAC,CAAC,GAAG,CAAA,OAAO,CAAA;IACrC,CAAC;IACD,MAAM,UAAU,GAAG,GAAG,CAAA,GAAG,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAA;IACnE,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,GAAG,CAAA,QAAQ,MAAM,CAAC,OAAO,aAAa,UAAU,IAAI,CAAA;IAC7D,CAAC;IAED,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,CAAA,IAAI,UAAU,OAAO,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,UAAU,CAAA;AACzE,CAAC,CAAA;AAED,iFAAiF;AACjF,MAAM,aAAa,GAAG,CAAC,MAAkB,EAAE,IAAyB,EAAE,GAAW,EAAS,EAAE;IAC1F,MAAM,UAAU,GAAU,EAAE,CAAA;IAC5B,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACvD,IAAI,QAAQ,IAAI,UAAU,EAAE,CAAC;YAC3B,UAAU,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI;gBAC7B,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAA,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO;gBAClE,CAAC,CAAC,GAAG,CAAA,GAAG,MAAM,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;YAC3E,SAAQ;QACV,CAAC;QACD,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,KAAK,CAAC;YACX,KAAK,MAAM;gBACT,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAA;gBACvE,MAAK;YACP,KAAK,SAAS;gBACZ,UAAU,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAA,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC,CAAA;gBAChF,MAAK;YACP,KAAK,OAAO;gBACV,UAAU,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAA,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;gBAChF,MAAK;YACP,KAAK,OAAO;gBACV,UAAU,CAAC,IAAI,CAAC,GAAG,CAAA,GAAG,MAAM,CAAC,IAAI,SAAS,OAAO,EAAE,CAAC,CAAA;gBACpD,MAAK;YACP,KAAK,QAAQ;gBACX,UAAU,CAAC,IAAI,CAAC,GAAG,CAAA,GAAG,MAAM,CAAC,IAAI,UAAU,OAAO,EAAE,CAAC,CAAA;gBACrD,MAAK;YACP,KAAK,QAAQ;gBACX,UAAU,CAAC,IAAI,CAAC,GAAG,CAAA,GAAG,MAAM,CAAC,IAAI,MAAM,OAAO,EAAE,CAAC,CAAA;gBACjD,MAAK;YACP,KAAK,aAAa;gBAChB,UAAU,CAAC,IAAI,CAAC,GAAG,CAAA,GAAG,MAAM,CAAC,IAAI,SAAS,GAAG,UAAU,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAA;gBAC3E,MAAK;YACP,KAAK,WAAW;gBACd,UAAU,CAAC,IAAI,CAAC,GAAG,CAAA,GAAG,MAAM,CAAC,IAAI,SAAS,IAAI,UAAU,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;gBAC3E,MAAK;YACP,KAAK,UAAU,EAAE,CAAC;gBAChB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACpD,MAAM,IAAI,wBAAwB,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAA;gBAChE,CAAC;gBACD,UAAU,CAAC,IAAI,CAAC,GAAG,CAAA,GAAG,MAAM,CAAC,KAAK,YAAY,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;gBACzF,MAAK;YACP,CAAC;YACD,KAAK,WAAW;gBACd,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;gBAC7D,MAAK;YACP,KAAK,YAAY;gBACf,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;gBAC7D,MAAK;YACP,KAAK,WAAW;gBACd,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;gBACnD,MAAK;YACP;gBACE,MAAM,IAAI,wBAAwB,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAA;QACvE,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,aAAa,GAAG,CAAC,MAAkB,EAAE,GAAY,EAAE,GAAW,EAAS,EAAE;IAC7E,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACzB,CAAC;IACD,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;IACxC,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;IACvC,CAAC;IACD,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;IACnD,CAAC;IAED,OAAO,CAAC,GAAG,CAAA,GAAG,MAAM,CAAC,KAAK,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;AAC9C,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,cAAc,GAAG,CAAC,KAAc,EAAgC,EAAE,CACtE,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,YAAY,IAAI,CAAC;OAC5F,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;AAExD,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAqB,EAAE;IAC3D,MAAM,aAAa,GAAG,CACpB,QAAiC,EAAE,IAAe,EAAE,KAAqB,EACxD,EAAE;QACnB,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;QAE/C,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC/D,CAAC,CAAA;IAED,MAAM,KAAK,GAAG,CACZ,QAAiC,EAAE,IAAe,EAAE,KAAqB,EAClE,EAAE;QACT,MAAM,UAAU,GAAU,EAAE,CAAA;QAC5B,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;YACxD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtB,SAAQ;YACV,CAAC;YAED,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;gBACpC,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;qBAC7C,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAoB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;qBAC9D,MAAM,CAAC,CAAC,KAAK,EAAgB,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,CAAA;gBACjD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACrB,MAAM,QAAQ,GAAG,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAA;oBAC9D,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;wBACrB,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;oBAC3B,CAAC;gBACH,CAAC;gBACD,SAAQ;YACV,CAAC;YACD,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBACnB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,GAAkB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;gBAC5D,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;oBAClB,UAAU,CAAC,IAAI,CAAC,GAAG,CAAA,QAAQ,KAAK,GAAG,CAAC,CAAA;gBACtC,CAAC;gBACD,SAAQ;YACV,CAAC;YAED,8EAA8E;YAC9E,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACtC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;YACpC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBACnB,MAAM,IAAI,wBAAwB,CAAC,YAAY,GAAG,EAAE,CAAC,CAAA;YACvD,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;oBAClB,MAAM,IAAI,wBAAwB,CAAC,iBAAiB,GAAG,EAAE,CAAC,CAAA;gBAC5D,CAAC;gBACD,UAAU,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;gBAC5E,SAAQ;YACV,CAAC;YAED,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBACjB,UAAU,CAAC,IAAI,CAAC,GAAG,CAAA,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;gBACzD,SAAQ;YACV,CAAC;YACD,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,UAAU,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAA;gBACjD,SAAQ;YACV,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB;;;mBAGG;gBACH,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;gBAClD,SAAQ;YACV,CAAC;YACD,IAAI,MAAM,CAAC,KAAK,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC5C,UAAU,CAAC,IAAI,CAAC,GAAG,CAAA,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;gBAC3E,SAAQ;YACV,CAAC;YACD,UAAU,CAAC,IAAI,CAAC,GAAG,CAAA,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;QAC3E,CAAC;QAED,OAAO,UAAU,CAAA;IACnB,CAAC,CAAA;IAED,MAAM,SAAS,GAAG,CAChB,IAA2B,EAAE,IAAe,EAAE,KAAqB,EAC5D,EAAE;QACT,MAAM,KAAK,GAAU,EAAE,CAAA;QACvB,MAAM,IAAI,GAAa,EAAE,CAAA;QAEzB,KAAK,MAAM,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAA;YAChE,MAAM,UAAU,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,CAAA;YACtE,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;YACxC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBACnB,MAAM,IAAI,wBAAwB,CAAC,QAAQ,QAAQ,EAAE,CAAC,CAAA;YACxD,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YACxB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QACrF,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,SAAQ;YACV,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;YACjC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBACnB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;YACzC,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC,CAAA;IAED,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,CAAA;AACrC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,sBAAsB,EAAE,CAAA"}
@@ -0,0 +1,40 @@
1
+ import type { BasicContext } from '@owlmeans/context';
2
+ import type { DdlPlan, DdlStatement, LiveTable, TableSpec } from '../../types.js';
3
+ /** Structure reconciliation: the DDL that converges a live table onto its compiled spec. */
4
+ export interface PgDiffHelper {
5
+ /**
6
+ * The form an index or constraint definition is compared in, so the statement this package emits
7
+ * and the text Postgres reports for the object it created compare equal.
8
+ *
9
+ * Postgres deparses what it stores: it leaves an identifier unquoted when it can, casts every
10
+ * literal (`''::text`), casts a `varchar` column inside an expression, wraps a partial predicate and
11
+ * each of its operator expressions in parentheses, and rewrites `x IN (…)` as `x = ANY (ARRAY[…])`.
12
+ * Comparing the raw texts made every boot drop and recreate every declared index and every enum
13
+ * `CHECK`. So both sides lose case, quotes, casts, whitespace and parentheses, and `= ANY (ARRAY[…])`
14
+ * reads as `IN (…)`. What that cannot tell apart — two definitions differing only in how their
15
+ * operators group — is a change to make under a new name.
16
+ */
17
+ canonicalDefinition: (definition: string) => string;
18
+ /**
19
+ * Foreign keys are planned separately from the rest of the table, and applied only once
20
+ * every resource has initialized: a key points at a table another resource owns, and that
21
+ * resource's own `init()` may not have run yet.
22
+ *
23
+ * @throws {PostgresPlaceholderError} when a target can't be resolved.
24
+ */
25
+ planForeignKeys: (spec: TableSpec, context?: BasicContext<any>) => DdlStatement[];
26
+ /**
27
+ * Compare the compiled specification against the live table and produce the ordered DDL
28
+ * that converges one onto the other.
29
+ *
30
+ * Statement order is load bearing:
31
+ * - `DROP COLUMN` is last, because a `USING` cast or a backfill may legitimately read a
32
+ * column that is about to disappear.
33
+ * - A primary key constraint is never dropped: it cascades into every referencing key and
34
+ * can't be undone inside the same transaction once dependents exist.
35
+ *
36
+ * Foreign keys are not part of the plan at all — see {@link PgDiffHelper.planForeignKeys}.
37
+ */
38
+ planSync: (spec: TableSpec, live: LiveTable, additive?: boolean) => DdlPlan;
39
+ }
40
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/utils/diff/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAErD,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAEjF,4FAA4F;AAC5F,MAAM,WAAW,YAAY;IAC3B;;;;;;;;;;;OAWG;IACH,mBAAmB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,CAAA;IACnD;;;;;;OAMG;IACH,eAAe,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,KAAK,YAAY,EAAE,CAAA;IACjF;;;;;;;;;;;OAWG;IACH,QAAQ,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,OAAO,CAAA;CAC5E"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/utils/diff/types.ts"],"names":[],"mappings":""}
@@ -1,37 +1,7 @@
1
- import type { BasicContext } from '@owlmeans/context';
2
- import type { DdlPlan, DdlStatement, LiveTable, TableSpec } from '../types.js';
3
- /**
4
- * The form an index or constraint definition is compared in, so the statement this package emits
5
- * and the text Postgres reports for the object it created compare equal.
6
- *
7
- * Postgres deparses what it stores: it leaves an identifier unquoted when it can, casts every
8
- * literal (`''::text`), casts a `varchar` column inside an expression, wraps a partial predicate and
9
- * each of its operator expressions in parentheses, and rewrites `x IN (…)` as `x = ANY (ARRAY[…])`.
10
- * Comparing the raw texts made every boot drop and recreate every declared index and every enum
11
- * `CHECK`. So both sides lose case, quotes, casts, whitespace and parentheses, and `= ANY (ARRAY[…])`
12
- * reads as `IN (…)`. What that cannot tell apart — two definitions differing only in how their
13
- * operators group — is a change to make under a new name.
14
- */
15
- export declare const canonicalDefinition: (definition: string) => string;
16
- /**
17
- * Foreign keys are planned separately from the rest of the table, and applied only once
18
- * every resource has initialized: a key points at a table another resource owns, and that
19
- * resource's own `init()` may not have run yet.
20
- *
21
- * @throws {PostgresPlaceholderError} when a target can't be resolved.
22
- */
23
- export declare const planForeignKeys: (spec: TableSpec, context?: BasicContext<any>) => DdlStatement[];
24
- /**
25
- * Compare the compiled specification against the live table and produce the ordered DDL
26
- * that converges one onto the other.
27
- *
28
- * Statement order is load bearing:
29
- * - `DROP COLUMN` is last, because a `USING` cast or a backfill may legitimately read a
30
- * column that is about to disappear.
31
- * - A primary key constraint is never dropped: it cascades into every referencing key and
32
- * can't be undone inside the same transaction once dependents exist.
33
- *
34
- * Foreign keys are not part of the plan at all — see {@link planForeignKeys}.
35
- */
1
+ import type { DdlPlan, LiveTable, TableSpec } from '../types.js';
2
+ import type { PgDiffHelper } from './diff/types.js';
3
+ export declare const createPgDiffHelper: () => PgDiffHelper;
4
+ export declare const pgDiffHelper: PgDiffHelper;
5
+ /** @deprecated compat:factory-refactor — use `pgDiffHelper.planSync(…)` */
36
6
  export declare const planSync: (spec: TableSpec, live: LiveTable, additive?: boolean) => DdlPlan;
37
7
  //# sourceMappingURL=diff.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/utils/diff.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAKrD,OAAO,KAAK,EACE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAiC,SAAS,EACvF,MAAM,aAAa,CAAA;AAoCpB;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,mBAAmB,eAAgB,MAAM,KAAG,MAKb,CAAA;AAyB5C;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,SACpB,SAAS,YAAY,YAAY,CAAC,GAAG,CAAC,KAC3C,YAAY,EAwCb,CAAA;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,QAAQ,SACb,SAAS,QAAQ,SAAS,aAAY,OAAO,KAClD,OAqPF,CAAA"}
1
+ {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/utils/diff.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACE,OAAO,EAAgB,SAAS,EAAiC,SAAS,EACvF,MAAM,aAAa,CAAA;AAGpB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAEnD,eAAO,MAAM,kBAAkB,QAAO,YA8XrC,CAAA;AAED,eAAO,MAAM,YAAY,cAAuB,CAAA;AAEhD,2EAA2E;AAC3E,eAAO,MAAM,QAAQ,SAAU,SAAS,QAAQ,SAAS,aAAY,OAAO,KAAW,OAC1C,CAAA"}