@kywi-software/core 0.11.0 → 0.12.1

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 (216) hide show
  1. package/AGENT-PATTERNS.md +96 -10
  2. package/dist/admin/content-form.d.ts.map +1 -1
  3. package/dist/admin/content-form.js +97 -10
  4. package/dist/admin/content-form.js.map +1 -1
  5. package/dist/admin/layout-editor/component-actions.d.ts +219 -22
  6. package/dist/admin/layout-editor/component-actions.d.ts.map +1 -1
  7. package/dist/admin/layout-editor/component-actions.js +356 -36
  8. package/dist/admin/layout-editor/component-actions.js.map +1 -1
  9. package/dist/admin/layout-editor/component-fork.d.ts +224 -0
  10. package/dist/admin/layout-editor/component-fork.d.ts.map +1 -0
  11. package/dist/admin/layout-editor/component-fork.js +342 -0
  12. package/dist/admin/layout-editor/component-fork.js.map +1 -0
  13. package/dist/admin/layout-editor/editor-canvas.d.ts +12 -0
  14. package/dist/admin/layout-editor/editor-canvas.d.ts.map +1 -1
  15. package/dist/admin/layout-editor/editor-canvas.js +76 -12
  16. package/dist/admin/layout-editor/editor-canvas.js.map +1 -1
  17. package/dist/admin/layout-editor/editor-dialog.d.ts +164 -0
  18. package/dist/admin/layout-editor/editor-dialog.d.ts.map +1 -0
  19. package/dist/admin/layout-editor/editor-dialog.js +195 -0
  20. package/dist/admin/layout-editor/editor-dialog.js.map +1 -0
  21. package/dist/admin/layout-editor/editor-state.d.ts +76 -0
  22. package/dist/admin/layout-editor/editor-state.d.ts.map +1 -1
  23. package/dist/admin/layout-editor/editor-state.js +47 -1
  24. package/dist/admin/layout-editor/editor-state.js.map +1 -1
  25. package/dist/admin/layout-editor/editor.css +279 -2
  26. package/dist/admin/layout-editor/index.d.ts +10 -1
  27. package/dist/admin/layout-editor/index.d.ts.map +1 -1
  28. package/dist/admin/layout-editor/index.js +11 -1
  29. package/dist/admin/layout-editor/index.js.map +1 -1
  30. package/dist/admin/layout-editor/layout-editor.d.ts +58 -1
  31. package/dist/admin/layout-editor/layout-editor.d.ts.map +1 -1
  32. package/dist/admin/layout-editor/layout-editor.js +161 -190
  33. package/dist/admin/layout-editor/layout-editor.js.map +1 -1
  34. package/dist/admin/layout-editor/linked-component.d.ts +38 -0
  35. package/dist/admin/layout-editor/linked-component.d.ts.map +1 -0
  36. package/dist/admin/layout-editor/linked-component.js +42 -0
  37. package/dist/admin/layout-editor/linked-component.js.map +1 -0
  38. package/dist/admin/layout-editor/module-overlay.d.ts +10 -1
  39. package/dist/admin/layout-editor/module-overlay.d.ts.map +1 -1
  40. package/dist/admin/layout-editor/module-overlay.js +33 -4
  41. package/dist/admin/layout-editor/module-overlay.js.map +1 -1
  42. package/dist/admin/layout-editor/node-lookup.d.ts +34 -0
  43. package/dist/admin/layout-editor/node-lookup.d.ts.map +1 -1
  44. package/dist/admin/layout-editor/node-lookup.js +90 -0
  45. package/dist/admin/layout-editor/node-lookup.js.map +1 -1
  46. package/dist/admin/layout-editor/overlay-shell.d.ts.map +1 -1
  47. package/dist/admin/layout-editor/overlay-shell.js +114 -23
  48. package/dist/admin/layout-editor/overlay-shell.js.map +1 -1
  49. package/dist/admin/layout-editor/props-panel.d.ts +55 -1
  50. package/dist/admin/layout-editor/props-panel.d.ts.map +1 -1
  51. package/dist/admin/layout-editor/props-panel.js +118 -9
  52. package/dist/admin/layout-editor/props-panel.js.map +1 -1
  53. package/dist/admin/layout-editor/section-overlay.d.ts +9 -1
  54. package/dist/admin/layout-editor/section-overlay.d.ts.map +1 -1
  55. package/dist/admin/layout-editor/section-overlay.js +14 -4
  56. package/dist/admin/layout-editor/section-overlay.js.map +1 -1
  57. package/dist/admin/layout-editor/section-template-picker.d.ts +27 -1
  58. package/dist/admin/layout-editor/section-template-picker.d.ts.map +1 -1
  59. package/dist/admin/layout-editor/section-template-picker.js +71 -17
  60. package/dist/admin/layout-editor/section-template-picker.js.map +1 -1
  61. package/dist/admin/layout-editor/use-component-connect.d.ts +65 -0
  62. package/dist/admin/layout-editor/use-component-connect.d.ts.map +1 -0
  63. package/dist/admin/layout-editor/use-component-connect.js +294 -0
  64. package/dist/admin/layout-editor/use-component-connect.js.map +1 -0
  65. package/dist/admin/layout-editor/use-component-fork.d.ts +123 -0
  66. package/dist/admin/layout-editor/use-component-fork.d.ts.map +1 -0
  67. package/dist/admin/layout-editor/use-component-fork.js +346 -0
  68. package/dist/admin/layout-editor/use-component-fork.js.map +1 -0
  69. package/dist/admin/layout-editor/use-component-library.d.ts +94 -0
  70. package/dist/admin/layout-editor/use-component-library.d.ts.map +1 -0
  71. package/dist/admin/layout-editor/use-component-library.js +55 -0
  72. package/dist/admin/layout-editor/use-component-library.js.map +1 -0
  73. package/dist/admin/registry.d.ts +11 -2
  74. package/dist/admin/registry.d.ts.map +1 -1
  75. package/dist/admin/registry.js +40 -4
  76. package/dist/admin/registry.js.map +1 -1
  77. package/dist/admin/server.d.ts +1 -0
  78. package/dist/admin/server.d.ts.map +1 -1
  79. package/dist/admin/server.js +5 -0
  80. package/dist/admin/server.js.map +1 -1
  81. package/dist/admin/styles/admin.css +43 -0
  82. package/dist/admin/surfaces/components/component-edit.d.ts +3 -0
  83. package/dist/admin/surfaces/components/component-edit.d.ts.map +1 -0
  84. package/dist/admin/surfaces/components/component-edit.js +235 -0
  85. package/dist/admin/surfaces/components/component-edit.js.map +1 -0
  86. package/dist/admin/surfaces/components/components-data.d.ts +153 -0
  87. package/dist/admin/surfaces/components/components-data.d.ts.map +1 -0
  88. package/dist/admin/surfaces/components/components-data.js +154 -0
  89. package/dist/admin/surfaces/components/components-data.js.map +1 -0
  90. package/dist/admin/surfaces/components/components-list.d.ts +3 -0
  91. package/dist/admin/surfaces/components/components-list.d.ts.map +1 -0
  92. package/dist/admin/surfaces/components/components-list.js +196 -0
  93. package/dist/admin/surfaces/components/components-list.js.map +1 -0
  94. package/dist/admin/surfaces/components/definition-canvas.d.ts +73 -0
  95. package/dist/admin/surfaces/components/definition-canvas.d.ts.map +1 -0
  96. package/dist/admin/surfaces/components/definition-canvas.js +207 -0
  97. package/dist/admin/surfaces/components/definition-canvas.js.map +1 -0
  98. package/dist/admin/surfaces/layouts/layout-editor-client.d.ts.map +1 -1
  99. package/dist/admin/surfaces/layouts/layout-editor-client.js +14 -2
  100. package/dist/admin/surfaces/layouts/layout-editor-client.js.map +1 -1
  101. package/dist/admin/surfaces/layouts/layouts-data.d.ts +3 -14
  102. package/dist/admin/surfaces/layouts/layouts-data.d.ts.map +1 -1
  103. package/dist/admin/surfaces/layouts/layouts-data.js +4 -7
  104. package/dist/admin/surfaces/layouts/layouts-data.js.map +1 -1
  105. package/dist/admin/surfaces/layouts/layouts-list.d.ts.map +1 -1
  106. package/dist/admin/surfaces/layouts/layouts-list.js +16 -22
  107. package/dist/admin/surfaces/layouts/layouts-list.js.map +1 -1
  108. package/dist/admin/surfaces/settings/admin-features.d.ts.map +1 -1
  109. package/dist/admin/surfaces/settings/admin-features.js +1 -0
  110. package/dist/admin/surfaces/settings/admin-features.js.map +1 -1
  111. package/dist/api/bulk-routes.d.ts.map +1 -1
  112. package/dist/api/bulk-routes.js +25 -0
  113. package/dist/api/bulk-routes.js.map +1 -1
  114. package/dist/api/changeset-routes.d.ts.map +1 -1
  115. package/dist/api/changeset-routes.js +17 -3
  116. package/dist/api/changeset-routes.js.map +1 -1
  117. package/dist/api/component-routes.d.ts.map +1 -1
  118. package/dist/api/component-routes.js +228 -8
  119. package/dist/api/component-routes.js.map +1 -1
  120. package/dist/api/content-routes.d.ts.map +1 -1
  121. package/dist/api/content-routes.js +64 -0
  122. package/dist/api/content-routes.js.map +1 -1
  123. package/dist/api/feed-routes.d.ts +6 -6
  124. package/dist/api/graphql/resolvers.d.ts +4 -4
  125. package/dist/api/layout-routes.d.ts.map +1 -1
  126. package/dist/api/layout-routes.js +4 -17
  127. package/dist/api/layout-routes.js.map +1 -1
  128. package/dist/api/layout-write-guard.d.ts +80 -0
  129. package/dist/api/layout-write-guard.d.ts.map +1 -0
  130. package/dist/api/layout-write-guard.js +88 -0
  131. package/dist/api/layout-write-guard.js.map +1 -0
  132. package/dist/api/section-template-routes.d.ts.map +1 -1
  133. package/dist/api/section-template-routes.js +11 -0
  134. package/dist/api/section-template-routes.js.map +1 -1
  135. package/dist/api/translation-routes.d.ts.map +1 -1
  136. package/dist/api/translation-routes.js +8 -0
  137. package/dist/api/translation-routes.js.map +1 -1
  138. package/dist/api/version-routes.d.ts.map +1 -1
  139. package/dist/api/version-routes.js +20 -8
  140. package/dist/api/version-routes.js.map +1 -1
  141. package/dist/api/workflow-routes.d.ts.map +1 -1
  142. package/dist/api/workflow-routes.js +53 -8
  143. package/dist/api/workflow-routes.js.map +1 -1
  144. package/dist/db/analytics-queries.d.ts +3 -3
  145. package/dist/db/apply-snapshot.d.ts +75 -8
  146. package/dist/db/apply-snapshot.d.ts.map +1 -1
  147. package/dist/db/apply-snapshot.js +104 -8
  148. package/dist/db/apply-snapshot.js.map +1 -1
  149. package/dist/db/audit-queries.d.ts +12 -12
  150. package/dist/db/category-queries.d.ts +3 -3
  151. package/dist/db/changeset-audit-queries.d.ts +4 -4
  152. package/dist/db/changeset-queries.d.ts +7 -7
  153. package/dist/db/comment-queries.d.ts +8 -8
  154. package/dist/db/comment-subscription-queries.d.ts +2 -2
  155. package/dist/db/component-instance-queries.d.ts +197 -0
  156. package/dist/db/component-instance-queries.d.ts.map +1 -0
  157. package/dist/db/component-instance-queries.js +405 -0
  158. package/dist/db/component-instance-queries.js.map +1 -0
  159. package/dist/db/content-queries.d.ts.map +1 -1
  160. package/dist/db/content-queries.js +39 -2
  161. package/dist/db/content-queries.js.map +1 -1
  162. package/dist/db/extension-queries.d.ts +7 -7
  163. package/dist/db/feed-queries.d.ts +3 -3
  164. package/dist/db/index.d.ts +1 -0
  165. package/dist/db/index.d.ts.map +1 -1
  166. package/dist/db/index.js +1 -0
  167. package/dist/db/index.js.map +1 -1
  168. package/dist/db/layout-queries.d.ts +13 -1
  169. package/dist/db/layout-queries.d.ts.map +1 -1
  170. package/dist/db/layout-queries.js +52 -7
  171. package/dist/db/layout-queries.js.map +1 -1
  172. package/dist/db/locale-queries.d.ts.map +1 -1
  173. package/dist/db/locale-queries.js +0 -0
  174. package/dist/db/locale-queries.js.map +1 -1
  175. package/dist/db/media-queries.d.ts +12 -12
  176. package/dist/db/revision-queries.d.ts +3 -3
  177. package/dist/db/site-admin-queries.d.ts +2 -2
  178. package/dist/db/site-membership-queries.d.ts +3 -3
  179. package/dist/db/site-plugin-queries.d.ts +2 -2
  180. package/dist/db/site-queries.d.ts +6 -6
  181. package/dist/db/version-queries.d.ts +12 -12
  182. package/dist/db/webhook-queries.d.ts +11 -11
  183. package/dist/db/workflow-queries.d.ts +6 -6
  184. package/dist/db/workflow-queries.d.ts.map +1 -1
  185. package/dist/db/workflow-queries.js +11 -2
  186. package/dist/db/workflow-queries.js.map +1 -1
  187. package/dist/layout/component-refs.d.ts +465 -0
  188. package/dist/layout/component-refs.d.ts.map +1 -0
  189. package/dist/layout/component-refs.js +848 -0
  190. package/dist/layout/component-refs.js.map +1 -0
  191. package/dist/layout/index.d.ts +2 -1
  192. package/dist/layout/index.d.ts.map +1 -1
  193. package/dist/layout/index.js +1 -0
  194. package/dist/layout/index.js.map +1 -1
  195. package/dist/layout/module-permissions.d.ts +49 -1
  196. package/dist/layout/module-permissions.d.ts.map +1 -1
  197. package/dist/layout/module-permissions.js +117 -6
  198. package/dist/layout/module-permissions.js.map +1 -1
  199. package/dist/layout/renderer.d.ts +51 -4
  200. package/dist/layout/renderer.d.ts.map +1 -1
  201. package/dist/layout/renderer.js +36 -38
  202. package/dist/layout/renderer.js.map +1 -1
  203. package/dist/layout/types.d.ts +42 -0
  204. package/dist/layout/types.d.ts.map +1 -1
  205. package/dist/layout/types.js +54 -11
  206. package/dist/layout/types.js.map +1 -1
  207. package/dist/schema/base.d.ts +1 -1
  208. package/dist/schema/components.d.ts +150 -0
  209. package/dist/schema/components.d.ts.map +1 -1
  210. package/dist/schema/components.js +50 -4
  211. package/dist/schema/components.js.map +1 -1
  212. package/dist/versioning/scheduler.d.ts +8 -0
  213. package/dist/versioning/scheduler.d.ts.map +1 -1
  214. package/dist/versioning/scheduler.js +21 -7
  215. package/dist/versioning/scheduler.js.map +1 -1
  216. package/package.json +1 -1
@@ -0,0 +1,405 @@
1
+ import { eq, and, inArray, notInArray, sql } from 'drizzle-orm';
2
+ import { kywiComponents, kywiComponentInstances } from '../schema/components.js';
3
+ import { kywiContent } from '../schema/base.js';
4
+ import { validateLayoutDocument } from '../layout/types.js';
5
+ import { newlyIntroducedAdminOnlyTypes } from '../layout/module-permissions.js';
6
+ import { getComponentById } from './component-queries.js';
7
+ import { hasMinRole } from '../auth/roles.js';
8
+ import { collectComponentRefs, diffComponentRefs, componentDetachSource, detachComponentFromLayout, } from '../layout/component-refs.js';
9
+ /**
10
+ * The instance index for linked components (kywi-cms#147).
11
+ *
12
+ * `kywi_component_instances` is a derived cache of the `componentId` links that
13
+ * live inside layout JSONB. It exists so the library's usage counts, the save
14
+ * fork's blast-radius wording, and the delete gate are single indexed reads
15
+ * instead of a parse of every layout in the site.
16
+ *
17
+ * Two rules keep it honest:
18
+ * - it is written in the SAME transaction as the layout it describes
19
+ * (`setContentLayout`), so a saved layout and its index rows commit together;
20
+ * - nothing that REWRITES a page trusts it. `detachComponentEverywhere`
21
+ * re-scans layouts, so even a drifted index can never leave a page holding a
22
+ * link to a deleted component.
23
+ */
24
+ /**
25
+ * Run `fn` inside a DB transaction when the client supports one, otherwise run
26
+ * it inline against `db`. Mirrors the guard in content-queries.ts / menu-queries.ts
27
+ * (#95): unit tests hand these queries a minimal chainable mock with no
28
+ * `.transaction`.
29
+ */
30
+ async function runInTransaction(db, fn) {
31
+ if ('transaction' in db && typeof db.transaction === 'function') {
32
+ return db.transaction(fn);
33
+ }
34
+ return fn(db);
35
+ }
36
+ const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;
37
+ /**
38
+ * Component ids reach us from layout JSONB, which is user data — a hand-edited
39
+ * or imported layout can carry a `componentId` that is not a UUID at all.
40
+ * Passing one to a `uuid` column comparison is a driver error ("invalid input
41
+ * syntax for type uuid") that would fail the whole layout save, so non-UUID
42
+ * links are simply not indexable (the renderer already treats them as
43
+ * unresolvable).
44
+ *
45
+ * Canonical (lower-case) form is required, deliberately. Postgres renders a
46
+ * `uuid` column lower-case and the renderer matches links against those strings
47
+ * byte-for-byte, so an upper-case link resolves to nothing on the page. Postgres
48
+ * would happily match it in a `uuid` comparison, though — indexing it would
49
+ * count an instance that no visitor can see and that the layout scan (a text
50
+ * `LIKE` on the canonical id) could never find again. What is indexed is exactly
51
+ * what the renderer can resolve.
52
+ */
53
+ export function isIndexableComponentId(componentId) {
54
+ return UUID_RE.test(componentId);
55
+ }
56
+ /**
57
+ * The definitions behind the `componentId` links a write ADDS, in the shape the
58
+ * admin-only-module gate reads. Returns undefined when the write adds no link —
59
+ * the common case, which then costs no query at all.
60
+ *
61
+ * ONE loader for every door that writes a layout: `PUT .../layout`, the content
62
+ * `PUT`/`PATCH` that carries a `layout` field, and `detachComponentEverywhere`.
63
+ * Linking a component introduces whatever modules its definition contains, so a
64
+ * door that gates modules but not links is not a gate; having each door build its
65
+ * own lookup is how one of them ends up not building it.
66
+ *
67
+ * Links whose id is not a canonical UUID are skipped: the renderer cannot resolve
68
+ * them either (and a `uuid` comparison against such a string is a driver error,
69
+ * not a miss), so they contribute nothing but a failed request.
70
+ */
71
+ export async function buildAddedComponentLookup(db, incoming, stored, siteId) {
72
+ const added = diffComponentRefs(stored, incoming).added;
73
+ const ids = [...new Set(added.map(ref => ref.componentId))].filter(isIndexableComponentId);
74
+ if (ids.length === 0)
75
+ return undefined;
76
+ const rows = await Promise.all(ids.map(id => getComponentById(db, id, siteId)));
77
+ const byId = new Map(rows.filter(row => row !== null).map(row => [row.id, row]));
78
+ return (componentId) => byId.get(componentId) ?? null;
79
+ }
80
+ /**
81
+ * Bring the index rows for one content document in line with its new layout.
82
+ *
83
+ * Only the difference is written: moving a linked node around a page is not a
84
+ * change of placement, so a save that reshuffles a layout writes nothing here.
85
+ * Added links are filtered to components that actually exist in the SAME site —
86
+ * a link to a deleted or foreign component is left unindexed rather than
87
+ * blowing up the save on a foreign-key violation (the renderer degrades to the
88
+ * node's own inline copy for exactly those links).
89
+ */
90
+ export async function syncComponentInstances(db, params) {
91
+ const { added, removed } = diffComponentRefs(params.before, params.after);
92
+ for (const ref of removed) {
93
+ await db
94
+ .delete(kywiComponentInstances)
95
+ .where(and(eq(kywiComponentInstances.contentId, params.contentId), eq(kywiComponentInstances.componentId, ref.componentId), eq(kywiComponentInstances.nodeId, ref.nodeId)));
96
+ }
97
+ const insertable = await filterToExistingComponents(db, params.siteId, added);
98
+ if (insertable.length > 0) {
99
+ await db
100
+ .insert(kywiComponentInstances)
101
+ .values(insertable.map(ref => ({
102
+ componentId: ref.componentId,
103
+ siteId: params.siteId,
104
+ contentId: params.contentId,
105
+ contentType: params.contentType,
106
+ nodeId: ref.nodeId,
107
+ })))
108
+ .onConflictDoNothing();
109
+ }
110
+ return { added: insertable.length, removed: removed.length };
111
+ }
112
+ /** Narrow a set of refs to those pointing at a component that exists in `siteId`. */
113
+ async function filterToExistingComponents(db, siteId, refs) {
114
+ const candidates = refs.filter(ref => isIndexableComponentId(ref.componentId));
115
+ if (candidates.length === 0)
116
+ return [];
117
+ const ids = [...new Set(candidates.map(ref => ref.componentId))];
118
+ const rows = await db
119
+ .select({ id: kywiComponents.id })
120
+ .from(kywiComponents)
121
+ .where(and(eq(kywiComponents.siteId, siteId), inArray(kywiComponents.id, ids)));
122
+ const known = new Set(rows.map(row => row.id));
123
+ return candidates.filter(ref => known.has(ref.componentId));
124
+ }
125
+ /**
126
+ * Where a component is placed, with the page titles the confirm dialogs name.
127
+ * One indexed read plus a join — the shape both the admin library and the save
128
+ * fork consume.
129
+ *
130
+ * Trashed documents are partitioned out of the headline numbers rather than
131
+ * dropped: see {@link ComponentUsage.trashedInstances}.
132
+ */
133
+ export async function getComponentUsage(db, componentId, siteId) {
134
+ if (!isIndexableComponentId(componentId)) {
135
+ return { instances: 0, pages: 0, items: [], trashedInstances: 0, trashedPages: 0 };
136
+ }
137
+ const rows = await db
138
+ .select({
139
+ contentId: kywiComponentInstances.contentId,
140
+ contentType: kywiComponentInstances.contentType,
141
+ nodeId: kywiComponentInstances.nodeId,
142
+ title: kywiContent.title,
143
+ deletedAt: kywiContent.deletedAt,
144
+ })
145
+ .from(kywiComponentInstances)
146
+ .leftJoin(kywiContent, eq(kywiContent.id, kywiComponentInstances.contentId))
147
+ .where(and(eq(kywiComponentInstances.componentId, componentId), eq(kywiComponentInstances.siteId, siteId)));
148
+ const byContent = new Map();
149
+ const trashedByContent = new Set();
150
+ let instances = 0;
151
+ let trashedInstances = 0;
152
+ for (const row of rows) {
153
+ if (row.deletedAt) {
154
+ trashedInstances++;
155
+ trashedByContent.add(row.contentId);
156
+ continue;
157
+ }
158
+ instances++;
159
+ const existing = byContent.get(row.contentId);
160
+ if (existing) {
161
+ existing.nodeIds.push(row.nodeId);
162
+ continue;
163
+ }
164
+ byContent.set(row.contentId, {
165
+ contentId: row.contentId,
166
+ contentType: row.contentType,
167
+ title: row.title ?? null,
168
+ nodeIds: [row.nodeId],
169
+ });
170
+ }
171
+ const items = [...byContent.values()];
172
+ return {
173
+ instances,
174
+ pages: items.length,
175
+ items,
176
+ trashedInstances,
177
+ trashedPages: trashedByContent.size,
178
+ };
179
+ }
180
+ /**
181
+ * Per-component placement counts for a whole site — one grouped read, so the
182
+ * library list doesn't fan out into a usage query per row.
183
+ *
184
+ * The live/trashed split matches {@link getComponentUsage} exactly, so the
185
+ * number in the library list is the same number the component's own usage
186
+ * dialog shows.
187
+ */
188
+ export async function listComponentUsageCounts(db, siteId) {
189
+ const live = sql `${kywiContent.deletedAt} is null`;
190
+ const rows = await db
191
+ .select({
192
+ componentId: kywiComponentInstances.componentId,
193
+ instances: sql `count(*) filter (where ${live})::int`,
194
+ pages: sql `count(distinct ${kywiComponentInstances.contentId}) filter (where ${live})::int`,
195
+ trashedInstances: sql `count(*) filter (where ${kywiContent.deletedAt} is not null)::int`,
196
+ })
197
+ .from(kywiComponentInstances)
198
+ .leftJoin(kywiContent, eq(kywiContent.id, kywiComponentInstances.contentId))
199
+ .where(eq(kywiComponentInstances.siteId, siteId))
200
+ .groupBy(kywiComponentInstances.componentId);
201
+ return rows.map(row => ({
202
+ componentId: row.componentId,
203
+ instances: Number(row.instances),
204
+ pages: Number(row.pages),
205
+ trashedInstances: Number(row.trashedInstances ?? 0),
206
+ }));
207
+ }
208
+ /**
209
+ * Materialise every placement of a component into an independent copy, so the
210
+ * component can be deleted without any page changing what it renders.
211
+ *
212
+ * Candidate documents come from a scan of the site's layouts (a `::text LIKE`
213
+ * on the component's own UUID), NOT from the instance index. The index is a
214
+ * derived cache; if it ever drifted, trusting it here would leave a page
215
+ * pointing at a component that is about to disappear. The scan is bounded by
216
+ * the site and only materialises rows that actually contain the id. Trashed
217
+ * (soft-deleted) documents are included deliberately: they still hold the link
218
+ * and restoring one must not resurrect a dangling reference.
219
+ *
220
+ * Two guards run per document, and BOTH are per-document skips rather than a
221
+ * failure of the whole operation:
222
+ *
223
+ * - the rewritten document must pass `validateLayoutDocument`. A malformed
224
+ * component definition would otherwise be copied into every referencing page
225
+ * and make each of them permanently un-editable (every later layout PUT
226
+ * would 400 on a document the user cannot repair through the UI). A page
227
+ * whose layout was ALREADY invalid before the rewrite is skipped by the same
228
+ * rule — it needs fixing regardless, and knowingly writing an invalid
229
+ * document is never the better option;
230
+ * - the rewritten document must not introduce an admin-only module the caller
231
+ * could not have added by hand — the same differential check
232
+ * `PUT .../layout` applies, with the same role.
233
+ *
234
+ * Skipping is the honest choice over failing everything: one bad page must not
235
+ * make the component undetachable — and so undeletable — everywhere else. The
236
+ * caller is told exactly which documents were left and why, the skipped pages
237
+ * keep their (still working) links, and the delete gate still sees those
238
+ * instances, so a component can never be deleted out from under a page.
239
+ *
240
+ * Everything — the layout rewrites, the index updates, and the sweep of any
241
+ * leftover index rows — happens in one transaction, and each layout is re-read
242
+ * `FOR UPDATE` inside it so a concurrent editor save can't be silently
243
+ * overwritten (it waits, then the detach sees its result).
244
+ */
245
+ export async function detachComponentEverywhere(db, component, options) {
246
+ if (!isIndexableComponentId(component.id))
247
+ return { pages: 0, instances: 0, skipped: [] };
248
+ const source = componentDetachSource(component);
249
+ // siteAdmin and above may introduce admin-only modules anyway, so the
250
+ // differential check is only meaningful (and only paid for) below that.
251
+ const checkAdminOnly = !hasMinRole(options.actorRole, 'siteAdmin');
252
+ return runInTransaction(db, async (tx) => {
253
+ const candidates = await tx
254
+ .select({
255
+ id: kywiContent.id,
256
+ siteId: kywiContent.siteId,
257
+ contentTypeName: kywiContent.contentTypeName,
258
+ layout: kywiContent.layout,
259
+ })
260
+ .from(kywiContent)
261
+ .where(and(eq(kywiContent.siteId, component.siteId), sql `${kywiContent.layout}::text like ${`%${component.id}%`}`))
262
+ .for('update');
263
+ let pages = 0;
264
+ let instances = 0;
265
+ const skipped = [];
266
+ for (const row of candidates) {
267
+ const before = (row.layout ?? null);
268
+ if (!before)
269
+ continue;
270
+ const { layout: after, detached } = detachComponentFromLayout(before, component.id, source);
271
+ if (detached === 0)
272
+ continue;
273
+ const skip = async (reason, detail) => {
274
+ skipped.push({ contentId: row.id, contentType: row.contentTypeName, reason, detail });
275
+ // This document keeps its link, so make sure the index says so: the
276
+ // sweep below spares it, but only rows that already exist. Re-deriving
277
+ // from the untouched layout is idempotent and guarantees the count the
278
+ // delete gate reads includes this page.
279
+ await syncComponentInstances(tx, {
280
+ siteId: row.siteId,
281
+ contentId: row.id,
282
+ contentType: row.contentTypeName,
283
+ before: null,
284
+ after: before,
285
+ });
286
+ };
287
+ const validation = validateLayoutDocument(after);
288
+ if (!validation.success) {
289
+ await skip('invalidLayout', validation.error);
290
+ continue;
291
+ }
292
+ if (checkAdminOnly) {
293
+ // Resolve through any link the rewrite ADDS, exactly as the layout PUT
294
+ // does. Today that set is provably empty — materialisation strips every
295
+ // link inside a definition and definitions may not contain one at all
296
+ // (kywi-cms#147 v1 refusal), so detaching can only ever REMOVE links —
297
+ // and the lookup costs nothing when nothing was added. It is wired
298
+ // anyway because "this door happens not to need the lookup" is a
299
+ // property of code elsewhere, and the day that property changes, this is
300
+ // the door that would silently stop gating.
301
+ const lookup = await buildAddedComponentLookup(tx, after, before, component.siteId);
302
+ const offending = newlyIntroducedAdminOnlyTypes(after, before, lookup);
303
+ if (offending.length > 0) {
304
+ await skip('adminOnlyModule', `Your role may not add these module types: ${offending.join(', ')}`);
305
+ continue;
306
+ }
307
+ }
308
+ await tx
309
+ .update(kywiContent)
310
+ .set({ layout: after, updatedAt: new Date() })
311
+ .where(eq(kywiContent.id, row.id));
312
+ await syncComponentInstances(tx, {
313
+ siteId: row.siteId,
314
+ contentId: row.id,
315
+ contentType: row.contentTypeName,
316
+ before,
317
+ after,
318
+ });
319
+ pages++;
320
+ instances += detached;
321
+ }
322
+ // Anything the scan didn't cover (a row for content whose layout no longer
323
+ // holds the link at all) would keep inflating this component's count and
324
+ // block its delete. The link is gone from every document we rewrote, so
325
+ // sweep the rest — except the documents we skipped, which really do still
326
+ // hold it and whose rows are what keeps the delete gate honest.
327
+ const skippedIds = skipped.map(s => s.contentId);
328
+ await tx
329
+ .delete(kywiComponentInstances)
330
+ .where(skippedIds.length === 0
331
+ ? eq(kywiComponentInstances.componentId, component.id)
332
+ : and(eq(kywiComponentInstances.componentId, component.id), notInArray(kywiComponentInstances.contentId, skippedIds)));
333
+ return { pages, instances, skipped };
334
+ });
335
+ }
336
+ /**
337
+ * Rebuild the instance index from the layouts themselves.
338
+ *
339
+ * This is what makes the index safe on an upgrade: the table ships empty while
340
+ * existing installs already have layouts full of `componentId` links, and
341
+ * `kywi migrate` runs this as a post-step so no operator has to know it exists.
342
+ * It is idempotent (it clears the scope it is about to rebuild) and doubles as
343
+ * the repair path if the index is ever suspected of drift.
344
+ *
345
+ * Only documents whose layout mentions a known component id are parsed, so the
346
+ * cost is one indexed-free scan plus a parse of the pages that actually use
347
+ * components — not a parse of every layout in the database.
348
+ */
349
+ export async function reindexComponentInstances(db, siteId) {
350
+ const componentRows = await db
351
+ .select({ id: kywiComponents.id, siteId: kywiComponents.siteId })
352
+ .from(kywiComponents)
353
+ .where(siteId === undefined ? undefined : eq(kywiComponents.siteId, siteId));
354
+ return runInTransaction(db, async (tx) => {
355
+ await tx
356
+ .delete(kywiComponentInstances)
357
+ .where(siteId === undefined ? undefined : eq(kywiComponentInstances.siteId, siteId));
358
+ if (componentRows.length === 0)
359
+ return { documentsScanned: 0, instances: 0 };
360
+ // Which component ids are legitimate for a given site (per-site components).
361
+ const siteComponents = new Map();
362
+ for (const row of componentRows) {
363
+ const set = siteComponents.get(row.siteId) ?? new Set();
364
+ set.add(row.id);
365
+ siteComponents.set(row.siteId, set);
366
+ }
367
+ const mentionsAnyComponent = sql.join(componentRows.map(row => sql `${kywiContent.layout}::text like ${`%${row.id}%`}`), sql ` or `);
368
+ const documents = await tx
369
+ .select({
370
+ id: kywiContent.id,
371
+ siteId: kywiContent.siteId,
372
+ contentTypeName: kywiContent.contentTypeName,
373
+ layout: kywiContent.layout,
374
+ })
375
+ .from(kywiContent)
376
+ .where(siteId === undefined
377
+ ? sql `(${mentionsAnyComponent})`
378
+ : and(eq(kywiContent.siteId, siteId), sql `(${mentionsAnyComponent})`));
379
+ const values = [];
380
+ for (const doc of documents) {
381
+ const known = siteComponents.get(doc.siteId);
382
+ if (!known)
383
+ continue;
384
+ for (const ref of collectComponentRefs((doc.layout ?? null))) {
385
+ if (!known.has(ref.componentId))
386
+ continue;
387
+ values.push({
388
+ componentId: ref.componentId,
389
+ siteId: doc.siteId,
390
+ contentId: doc.id,
391
+ contentType: doc.contentTypeName,
392
+ nodeId: ref.nodeId,
393
+ });
394
+ }
395
+ }
396
+ // Chunked so a site with thousands of placements doesn't build one
397
+ // multi-megabyte INSERT (and blow past the driver's parameter limit).
398
+ const CHUNK = 500;
399
+ for (let i = 0; i < values.length; i += CHUNK) {
400
+ await tx.insert(kywiComponentInstances).values(values.slice(i, i + CHUNK)).onConflictDoNothing();
401
+ }
402
+ return { documentsScanned: documents.length, instances: values.length };
403
+ });
404
+ }
405
+ //# sourceMappingURL=component-instance-queries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-instance-queries.js","sourceRoot":"","sources":["../../src/db/component-instance-queries.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"content-queries.d.ts","sourceRoot":"","sources":["../../src/db/content-queries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"content-queries.d.ts","sourceRoot":"","sources":["../../src/db/content-queries.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,8 @@ import { eq, and, like, sql, desc, asc, count, inArray, or, lte, gt, ne, getTabl
2
2
  import { kywiContent } from '../schema/base.js';
3
3
  import { computePath } from '../nav/builder.js';
4
4
  import { pageFirstOrdering } from '../nav/url-resolver.js';
5
+ import { syncComponentInstances } from './component-instance-queries.js';
6
+ import { setContentLayout } from './layout-queries.js';
5
7
  /**
6
8
  * Thrown when the custom-field (side) table write of a content mutation fails.
7
9
  *
@@ -469,6 +471,29 @@ export async function createContent(db, contentType, customTable, siteId, data,
469
471
  throw new ContentCustomFieldsError(contentType.name, getTableName(customTable), err);
470
472
  }
471
473
  }
474
+ // A node can be born with a layout (the content POST carries one, the
475
+ // translation copy copies its source's), and a layout can carry
476
+ // `componentId` links — so the component instance index has to be written
477
+ // here too, or the library's usage counts and delete gate simply never see
478
+ // the page (kywi-cms#147). This is why the layout rides along in the INSERT
479
+ // instead of being a second `setContentLayout` afterwards: the row, its
480
+ // layout and its index rows are one unit of work, and there is no window in
481
+ // which a created node exists with an unindexed layout. Costs nothing when
482
+ // there is no layout, and no query unless it actually contains links.
483
+ //
484
+ // Validation and the admin-only-module gate belong to the caller: they need
485
+ // a role and must answer with a 400/403, which a db function cannot do. Every
486
+ // HTTP door that reaches createContent with a `layout` runs
487
+ // `takeLayoutFromContentPayload` first (api/layout-write-guard.ts).
488
+ if (inserted.layout) {
489
+ await syncComponentInstances(tx, {
490
+ siteId,
491
+ contentId: inserted.id,
492
+ contentType: contentType.name,
493
+ before: null,
494
+ after: inserted.layout,
495
+ });
496
+ }
472
497
  return inserted;
473
498
  });
474
499
  await warnOnCrossBaseTypeSlugCollision(db, baseRow);
@@ -479,11 +504,20 @@ export async function createContent(db, contentType, customTable, siteId, data,
479
504
  */
480
505
  export async function updateContent(db, contentType, customTable, id, data, userId) {
481
506
  const customFieldNames = contentType.fields.map(f => f.name);
482
- const { baseFields, customFields } = splitCustomFields(data, customFieldNames);
507
+ const { baseFields: allBaseFields, customFields } = splitCustomFields(data, customFieldNames);
508
+ // A `layout` never rides along in the column update (kywi-cms#147): it goes
509
+ // through setContentLayout below, the write path that reconciles
510
+ // kywi_component_instances. Every HTTP door validates and gates the document
511
+ // before it gets here (api/layout-write-guard.ts) — what this does is make it
512
+ // structurally impossible for ANY caller of updateContent, including
513
+ // programmatic ones, to leave the index describing a layout that is gone.
514
+ const writesLayout = 'layout' in allBaseFields;
515
+ const { layout: layoutValue, ...baseFields } = allBaseFields;
483
516
  // kywi-cms#95 — same unit-of-work rule as createContent: a failed side-table
484
517
  // write must not leave the base row updated on its own.
485
518
  await runInTransaction(db, async (tx) => {
486
- if (Object.keys(baseFields).length > 0) {
519
+ // A layout-only update still stamps updatedBy/updatedAt, as it always did.
520
+ if (Object.keys(baseFields).length > 0 || writesLayout) {
487
521
  const setValues = { ...baseFields, updatedBy: userId, updatedAt: new Date() };
488
522
  // A status change into 'published' (e.g. via PUT/PATCH) stamps publishedAt.
489
523
  // COALESCE preserves any existing timestamp so the original publish date is
@@ -496,6 +530,9 @@ export async function updateContent(db, contentType, customTable, id, data, user
496
530
  .set(setValues)
497
531
  .where(eq(kywiContent.id, id));
498
532
  }
533
+ if (writesLayout) {
534
+ await setContentLayout(tx, id, (layoutValue ?? null));
535
+ }
499
536
  if (customTable && Object.keys(customFields).length > 0) {
500
537
  try {
501
538
  const result = await tx
@@ -1 +1 @@
1
- {"version":3,"file":"content-queries.js","sourceRoot":"","sources":["../../src/db/content-queries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"content-queries.js","sourceRoot":"","sources":["../../src/db/content-queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE3H,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAK1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAA;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAEtD;;;;;;;;GAQG;AACH,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IACxC,eAAe,CAAQ;IACvB,SAAS,CAAQ;IAC1B,YAAY,eAAuB,EAAE,SAAiB,EAAE,KAAc;QACpE,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACrE,KAAK,CACH,mDAAmD,eAAe,IAAI;YACtE,gBAAgB,SAAS,OAAO,MAAM,2CAA2C;YACjF,uEAAuE;YACvE,+DAA+D,EAC/D,EAAE,KAAK,EAAE,CACV,CAAA;QACD,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAA;QACtC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;QACtC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;CACF;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,gBAAgB,CAAI,EAAU,EAAE,EAA8B;IAC3E,IAAI,aAAa,IAAI,EAAE,IAAI,OAAQ,EAAU,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;QACzE,OAAQ,EAAU,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;IACpC,CAAC;IACD,OAAO,EAAE,CAAC,EAAE,CAAC,CAAA;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAAC,MAAY,IAAI,IAAI,EAAE;IACjE,OAAO;QACL,gDAAgD;QAChD,EAAE;QACF,8EAA8E;QAC9E,0EAA0E;QAC1E,qEAAqE;QACrE,uEAAuE;QACvE,yEAAyE;QACzE,EAAE,CACA,GAAG,CAAA,GAAG,WAAW,CAAC,YAAY,UAAU,EACxC,GAAG,CAAC,WAAW,CAAC,YAAY,EAAE,GAAG,CAAC,CACnC;QACD,6CAA6C;QAC7C,EAAE,CACA,GAAG,CAAA,GAAG,WAAW,CAAC,WAAW,UAAU,EACvC,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE,GAAG,CAAC,CACjC;KACF,CAAA;AACH,CAAC;AAID;;;;;GAKG;AACH,SAAS,uBAAuB,CAC9B,WAAuD;IAEvD,IAAI,CAAC,WAAW;QAAE,OAAO,EAAE,CAAA;IAC3B,MAAM,QAAQ,GAAyB,EAAE,CAAA;IACzC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;QAC5D,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,QAAQ;YAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;IAC5D,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAC7B,IAA6B,EAC7B,MAAsC,EACtC,WAA4C;IAE5C,MAAM,QAAQ,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAA;IACrD,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAA;IAC5C,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,EAAE,GAAG,MAAM,CAAA;IAC5D,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,YAAY,EAAE,CAAA;AAClD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,KAA8B,EAC9B,gBAA0B;IAE1B,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAA;IAChD,MAAM,UAAU,GAA4B,EAAE,CAAA;IAC9C,MAAM,YAAY,GAA4B,EAAE,CAAA;IAEhD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;QAC3B,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;QACzB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,CAAA;AACrC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CACxC,YAAoC,EACpC,WAA2C;IAE3C,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAErE,MAAM,UAAU,GAA4B,EAAE,CAAA;IAC9C,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QAC1D,MAAM,GAAG,GAAI,WAAmB,CAAC,KAAK,CAAC,CAAA;QACvC,IAAI,GAAG,EAAE,CAAC;YACR,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;QACjC,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAA;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,EAAU,EACV,WAA8B,EAC9B,WAA2C,EAC3C,MAAc,EACd,UAA4B,EAC5B,IAAgB,EAChB,OAAqB,EACrB,eAA0B;IAE1B,MAAM,UAAU,GAAG;QACjB,EAAE,CAAC,WAAW,CAAC,eAAe,EAAE,WAAW,CAAC,IAAI,CAAC;QACjD,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC;QAC9B,GAAG,CAAA,GAAG,WAAW,CAAC,SAAS,UAAU;QACrC,GAAG,4BAA4B,EAAE;KAClC,CAAA;IAED,4EAA4E;IAC5E,IAAI,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAA;IAC/D,CAAC;SAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QAC1B,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;IACzD,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;IACzD,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC7D,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IACjE,CAAC;IAED,yBAAyB;IACzB,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,EAAE,CAAC;QAChE,UAAU,CAAC,IAAI,CAAC,GAAG,0BAA0B,CAAC,OAAO,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAA;IACnF,CAAC;IAED,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,UAAU,CAAC,CAAA;IAEhC,MAAM,UAAU,GAAI,WAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,WAAW,CAAC,SAAS,CAAA;IAChF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAE3E,MAAM,CAAC,WAAW,CAAC,GAAG,MAAM,EAAE;SAC3B,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC;SAC1B,IAAI,CAAC,WAAW,CAAC;SACjB,KAAK,CAAC,KAAK,CAAC,CAAA;IAEf,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;IAE7C,IAAI,KAAK,CAAA;IACT,IAAI,WAAW,EAAE,CAAC;QAChB,KAAK,GAAG,EAAE;aACP,MAAM,EAAE;aACR,IAAI,CAAC,WAAW,CAAC;aACjB,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,EAAG,WAAmB,CAAC,EAAE,CAAC,CAAC;aAClE,KAAK,CAAC,KAAK,CAAC;aACZ,OAAO,CAAC,OAAO,CAAC;aAChB,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;aACvB,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IAC9B,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,EAAE;aACP,MAAM,EAAE;aACR,IAAI,CAAC,WAAW,CAAC;aACjB,KAAK,CAAC,KAAK,CAAC;aACZ,OAAO,CAAC,OAAO,CAAC;aAChB,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;aACvB,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IAC9B,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,KAAK,CAAA;IAE3B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE;QACpC,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,cAAc,CAAC,CAAA;YACpE,OAAO,eAAe,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,IAAI,IAAI,EAAE,WAAW,CAAC,CAAA;QACnF,CAAC;QACD,OAAO,GAA8B,CAAA;IACvC,CAAC,CAAC,CAAA;IAEF,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;AACxB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,EAAU,EACV,WAA2C,EAC3C,EAAU,EACV,MAAe;IAEf,MAAM,WAAW,GAAG,MAAM,KAAK,SAAS;QACtC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAA,GAAG,WAAW,CAAC,SAAS,UAAU,CAAC;QACpE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,CAAA,GAAG,WAAW,CAAC,SAAS,UAAU,CAAC,CAAA;IACtG,IAAI,KAAK,CAAA;IACT,IAAI,WAAW,EAAE,CAAC;QAChB,KAAK,GAAG,EAAE;aACP,MAAM,EAAE;aACR,IAAI,CAAC,WAAW,CAAC;aACjB,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,EAAG,WAAmB,CAAC,EAAE,CAAC,CAAC;aAClE,KAAK,CAAC,WAAW,CAAC;aAClB,KAAK,CAAC,CAAC,CAAC,CAAA;IACb,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,EAAE;aACP,MAAM,EAAE;aACR,IAAI,CAAC,WAAW,CAAC;aACjB,KAAK,CAAC,WAAW,CAAC;aAClB,KAAK,CAAC,CAAC,CAAC,CAAA;IACb,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,KAAK,CAAA;IACzB,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAA;IAErB,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,GAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,cAAc,CAAC,CAAA;QAC3E,OAAO,eAAe,CAAE,GAAW,CAAC,YAAY,EAAG,GAAW,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,IAAI,IAAI,EAAE,WAAW,CAAC,CAAA;IACrG,CAAC;IACD,OAAO,GAA8B,CAAA;AACvC,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,EAAU,EACV,WAA2C,EAC3C,IAAY,EACZ,MAAc,EACd,OAAiE;IAEjE,MAAM,UAAU,GAAG;QACjB,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC;QAC1B,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC;QAC9B,GAAG,CAAA,GAAG,WAAW,CAAC,SAAS,UAAU;KACtC,CAAA;IAED,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;QACpB,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;IACzD,CAAC;IAED,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC;QACtB,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC7D,CAAC;IAED,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;QACpB,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;IACzD,CAAC;IAED,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,UAAU,CAAC,CAAA;IAEhC,4EAA4E;IAC5E,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAA;IAE7D,IAAI,KAAK,CAAA;IACT,IAAI,WAAW,EAAE,CAAC;QAChB,KAAK,GAAG,EAAE;aACP,MAAM,EAAE;aACR,IAAI,CAAC,WAAW,CAAC;aACjB,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,EAAG,WAAmB,CAAC,EAAE,CAAC,CAAC;aAClE,KAAK,CAAC,KAAK,CAAC;aACZ,OAAO,CAAC,GAAG,QAAQ,CAAC;aACpB,KAAK,CAAC,CAAC,CAAC,CAAA;IACb,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,EAAE;aACP,MAAM,EAAE;aACR,IAAI,CAAC,WAAW,CAAC;aACjB,KAAK,CAAC,KAAK,CAAC;aACZ,OAAO,CAAC,GAAG,QAAQ,CAAC;aACpB,KAAK,CAAC,CAAC,CAAC,CAAA;IACb,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,KAAK,CAAA;IACzB,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAA;IAErB,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,GAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,cAAc,CAAC,CAAA;QAC3E,OAAO,eAAe,CAAE,GAAW,CAAC,YAAY,EAAG,GAAW,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,IAAI,IAAI,EAAE,WAAW,CAAC,CAAA;IACrG,CAAC;IACD,OAAO,GAA8B,CAAA;AACvC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,EAAU,EACV,MAAc,EACd,IAAY,EACZ,QAAgB,EAChB,gBAAyB;IAEzB,MAAM,UAAU,GAAG;QACjB,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC;QAC9B,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC;QAC1B,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAClC,GAAG,CAAA,GAAG,WAAW,CAAC,SAAS,UAAU;KACtC,CAAA;IACD,IAAI,gBAAgB,KAAK,SAAS;QAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAA;IAEzF,OAAO,EAAE;SACN,MAAM,CAAC;QACN,EAAE,EAAE,WAAW,CAAC,EAAE;QAClB,KAAK,EAAE,WAAW,CAAC,KAAK;QACxB,QAAQ,EAAE,WAAW,CAAC,QAAQ;QAC9B,eAAe,EAAE,WAAW,CAAC,eAAe;KAC7C,CAAC;SACD,IAAI,CAAC,WAAW,CAAC;SACjB,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAA;AAC9B,CAAC;AAED;;;;;;;;;;;GAWG;AACH,KAAK,UAAU,gCAAgC,CAC7C,EAAU,EACV,GAA4B;IAE5B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,GAAG,CAAC,MAA4B,CAAA;QAC/C,MAAM,IAAI,GAAG,GAAG,CAAC,IAA0B,CAAA;QAC3C,MAAM,QAAQ,GAAG,GAAG,CAAC,QAA8B,CAAA;QACnD,MAAM,EAAE,GAAG,GAAG,CAAC,EAAwB,CAAA;QACvC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAM;QAEzC,MAAM,UAAU,GAAG,MAAM,+BAA+B,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAA;QACxF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAM;QAEnC,MAAM,MAAM,GAAG,UAAU;aACtB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,eAAe,eAAe,CAAC,CAAC,QAAQ,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC;aACvE,IAAI,CAAC,IAAI,CAAC,CAAA;QACb,OAAO,CAAC,IAAI,CACV,mCAAmC,IAAI,oBAAoB,GAAG,CAAC,eAAe,GAAG;YACjF,cAAc,QAAQ,UAAU,MAAM,YAAY,MAAM,IAAI;YAC5D,kGAAkG,CACnG,CAAA;IACH,CAAC;IAAC,MAAM,CAAC;QACP,2BAA2B;IAC7B,CAAC;AACH,CAAC;AAED,4EAA4E;AAC5E,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAA;AAC5E,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,KAAK,UAAU,oBAAoB,CACjC,EAAU,EACV,MAAc,EACd,QAAmC,EACnC,IAAY,EACZ,UAAmC;IAEnC,MAAM,GAAG,GAA0D,EAAE,CAAA;IAErE,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACpE,IAAI,UAAU,GAAG,GAAG,CAAA;QACpB,IAAI,WAAW,GAAG,CAAC,CAAC,CAAA,CAAC,uCAAuC;QAC5D,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE;iBACtB,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC;iBAC5D,IAAI,CAAC,WAAW,CAAC;iBACjB,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;iBACnC,KAAK,CAAC,CAAC,CAAC,CAAA;YACX,IAAI,MAAM,EAAE,CAAC;gBACX,UAAU,GAAG,MAAM,CAAC,IAAI,CAAA;gBACxB,WAAW,GAAG,MAAM,CAAC,KAAK,CAAA;YAC5B,CAAC;QACH,CAAC;QACD,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS;YAAE,GAAG,CAAC,IAAI,GAAG,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;QAC3E,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS;YAAE,GAAG,CAAC,KAAK,GAAG,WAAW,GAAG,CAAC,CAAA;IACjE,CAAC;IAED,IAAI,UAAU,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG;YACZ,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC;YAC9B,GAAG,CAAA,GAAG,WAAW,CAAC,SAAS,UAAU;YACrC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA,GAAG,WAAW,CAAC,QAAQ,UAAU;SACrF,CAAA;QACD,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE;aACnB,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAQ,gBAAgB,WAAW,CAAC,SAAS,QAAQ,EAAE,CAAC;aAC9E,IAAI,CAAC,WAAW,CAAC;aACjB,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAA;QACvB,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,EAAE,QAAQ,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACjD,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,EAAU,EACV,WAA8B,EAC9B,WAA2C,EAC3C,MAAc,EACd,IAA6B,EAC7B,MAAqB;IAErB,MAAM,gBAAgB,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IAC5D,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAA;IAE9E,6EAA6E;IAC7E,0EAA0E;IAC1E,+CAA+C;IAC/C,MAAM,YAAY,GAAG,OAAO,UAAU,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IACtF,MAAM,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,KAAe,CAAC,CAAA;IAE3F,+EAA+E;IAC/E,6EAA6E;IAC7E,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAC1C,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,QAAqC,EAAE,IAAI,EAAE,UAAU,CAC/E,CAAA;IAED,MAAM,MAAM,GAAI,UAAU,CAAC,MAAiB,IAAI,OAAO,CAAA;IACvD,MAAM,YAAY,GAA4B;QAC5C,GAAG,UAAU;QACb,MAAM;QACN,IAAI;QACJ,GAAG,SAAS;QACZ,eAAe,EAAE,WAAW,CAAC,IAAI;QACjC,QAAQ,EAAE,WAAW,CAAC,QAAQ;QAC9B,MAAM;QACN,SAAS,EAAE,MAAM;QACjB,SAAS,EAAE,MAAM;KAClB,CAAA;IACD,8EAA8E;IAC9E,4EAA4E;IAC5E,0CAA0C;IAC1C,IAAI,MAAM,KAAK,WAAW,IAAI,YAAY,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACrE,YAAY,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAA;IACvC,CAAC;IAED,kFAAkF;IAClF,8EAA8E;IAC9E,8EAA8E;IAC9E,2EAA2E;IAC3E,6EAA6E;IAC7E,oEAAoE;IACpE,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;QACtD,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,EAAE;aACxB,MAAM,CAAC,WAAW,CAAC;aACnB,MAAM,CAAC,YAAmB,CAAC;aAC3B,SAAS,EAAE,CAAA;QAEd,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;QAE1D,IAAI,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxD,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;oBAClC,EAAE,EAAE,QAAQ,CAAC,EAAE;oBACf,MAAM;oBACN,GAAG,YAAY;iBACT,CAAC,CAAA;YACX,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,IAAI,wBAAwB,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,CAAA;YACtF,CAAC;QACH,CAAC;QAED,sEAAsE;QACtE,gEAAgE;QAChE,0EAA0E;QAC1E,2EAA2E;QAC3E,4EAA4E;QAC5E,wEAAwE;QACxE,4EAA4E;QAC5E,2EAA2E;QAC3E,sEAAsE;QACtE,EAAE;QACF,4EAA4E;QAC5E,8EAA8E;QAC9E,4DAA4D;QAC5D,oEAAoE;QACpE,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,sBAAsB,CAAC,EAAE,EAAE;gBAC/B,MAAM;gBACN,SAAS,EAAE,QAAQ,CAAC,EAAE;gBACtB,WAAW,EAAE,WAAW,CAAC,IAAI;gBAC7B,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,QAAQ,CAAC,MAAwB;aACzC,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,QAAQ,CAAA;IACjB,CAAC,CAAC,CAAA;IAEF,MAAM,gCAAgC,CAAC,EAAE,EAAE,OAAkC,CAAC,CAAA;IAE9E,OAAO,eAAe,CACpB,OAAO,EACP,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,EACzF,WAAW,CACZ,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,EAAU,EACV,WAA8B,EAC9B,WAA2C,EAC3C,EAAU,EACV,IAA6B,EAC7B,MAAqB;IAErB,MAAM,gBAAgB,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IAC5D,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAA;IAE7F,4EAA4E;IAC5E,iEAAiE;IACjE,6EAA6E;IAC7E,8EAA8E;IAC9E,qEAAqE;IACrE,0EAA0E;IAC1E,MAAM,YAAY,GAAG,QAAQ,IAAI,aAAa,CAAA;IAC9C,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,UAAU,EAAE,GAAG,aAAa,CAAA;IAE5D,6EAA6E;IAC7E,wDAAwD;IACxD,MAAM,gBAAgB,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;QACtC,2EAA2E;QAC3E,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,EAAE,CAAC;YACvD,MAAM,SAAS,GAA4B,EAAE,GAAG,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CAAA;YACtG,4EAA4E;YAC5E,4EAA4E;YAC5E,6EAA6E;YAC7E,IAAI,UAAU,CAAC,MAAM,KAAK,WAAW,IAAI,UAAU,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC9E,SAAS,CAAC,WAAW,GAAG,GAAG,CAAA,YAAY,WAAW,CAAC,WAAW,UAAU,CAAA;YAC1E,CAAC;YACD,MAAM,EAAE;iBACL,MAAM,CAAC,WAAW,CAAC;iBACnB,GAAG,CAAC,SAAgB,CAAC;iBACrB,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;QAClC,CAAC;QAED,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,gBAAgB,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,WAAW,IAAI,IAAI,CAA0B,CAAC,CAAA;QAChF,CAAC;QAED,IAAI,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxD,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,EAAE;qBACpB,MAAM,CAAC,WAAW,CAAC;qBACnB,GAAG,CAAC,YAAmB,CAAC;qBACxB,KAAK,CAAC,EAAE,CAAE,WAAmB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;gBAEzC,IAAK,MAAc,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;oBACnC,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;oBACjH,IAAI,OAAO,EAAE,CAAC;wBACZ,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,YAAY,EAAS,CAAC,CAAA;oBAC7F,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,IAAI,wBAAwB,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,CAAA;YACtF,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC,CAAA;IAEzD,oEAAoE;IACpE,IAAI,OAAO,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7C,MAAM,gCAAgC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;IACrD,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;GAEG;AACH,kFAAkF;AAClF,gFAAgF;AAChF,iFAAiF;AACjF,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,EAAU,EACV,EAAU,EACV,MAAe;IAEf,MAAM,UAAU,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAA,GAAG,WAAW,CAAC,SAAS,UAAU,CAAC,CAAA;IAClF,IAAI,MAAM,KAAK,SAAS;QAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACzE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE;SACnB,MAAM,CAAC,WAAW,CAAC;SACnB,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAS,CAAC;SACrC,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;SACzB,SAAS,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,CAAA;IAEpC,OAAO,GAAG,KAAK,SAAS,CAAA;AAC1B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,EAAU,EACV,EAAU,EACV,MAAe;IAEf,MAAM,KAAK,GAAG,MAAM,KAAK,SAAS;QAChC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC;QACxB,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAC/D,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE;SACnB,MAAM,CAAC,WAAW,CAAC;SACnB,GAAG,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,CAAA,YAAY,WAAW,CAAC,WAAW,UAAU,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAS,CAAC;SACzH,KAAK,CAAC,KAAK,CAAC;SACZ,SAAS,EAAE,CAAA;IAEd,OAAO,GAAG,IAAI,IAAI,CAAA;AACpB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,EAAU,EACV,EAAU,EACV,MAAe;IAEf,MAAM,KAAK,GAAG,MAAM,KAAK,SAAS;QAChC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC;QACxB,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAC/D,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE;SACnB,MAAM,CAAC,WAAW,CAAC;SACnB,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAS,CAAC;SACtD,KAAK,CAAC,KAAK,CAAC;SACZ,SAAS,EAAE,CAAA;IAEd,OAAO,GAAG,IAAI,IAAI,CAAA;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,EAAU,EAAE,EAAU;IACzD,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE;SACnB,MAAM,CAAC,WAAW,CAAC;SACnB,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAS,CAAC;SACtD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAA,GAAG,WAAW,CAAC,SAAS,cAAc,CAAC,CAAC;SAC7E,SAAS,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,CAAA;IACpC,OAAO,GAAG,KAAK,SAAS,CAAA;AAC1B,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,EAAU,EAAE,EAAU,EAAE,MAAe;IAClF,MAAM,UAAU,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAA,GAAG,WAAW,CAAC,SAAS,cAAc,CAAC,CAAA;IACtF,IAAI,MAAM,KAAK,SAAS;QAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACzE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE;SACnB,MAAM,CAAC,WAAW,CAAC;SACnB,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;SACzB,SAAS,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,CAAA;IACpC,OAAO,GAAG,KAAK,SAAS,CAAA;AAC1B,CAAC"}