@cogenta/schema 0.2.0 → 0.4.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 (193) hide show
  1. package/dist/define-collection.d.ts.map +1 -1
  2. package/dist/define-collection.js +53 -3
  3. package/dist/define-collection.js.map +1 -1
  4. package/dist/generate-types.d.ts.map +1 -1
  5. package/dist/generate-types.js +6 -1
  6. package/dist/generate-types.js.map +1 -1
  7. package/dist/index.d.ts +2 -0
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +1 -0
  10. package/dist/index.js.map +1 -1
  11. package/dist/media-usage.d.ts +56 -0
  12. package/dist/media-usage.d.ts.map +1 -0
  13. package/dist/media-usage.js +89 -0
  14. package/dist/media-usage.js.map +1 -0
  15. package/dist/rich-text.d.ts +28 -2
  16. package/dist/rich-text.d.ts.map +1 -1
  17. package/dist/rich-text.js +26 -3
  18. package/dist/rich-text.js.map +1 -1
  19. package/dist/routing/index.d.ts +5 -1
  20. package/dist/routing/index.d.ts.map +1 -1
  21. package/dist/routing/index.js +2 -0
  22. package/dist/routing/index.js.map +1 -1
  23. package/dist/routing/not-found-log.d.ts +78 -0
  24. package/dist/routing/not-found-log.d.ts.map +1 -0
  25. package/dist/routing/not-found-log.js +153 -0
  26. package/dist/routing/not-found-log.js.map +1 -0
  27. package/dist/routing/redirect-patterns.d.ts +61 -0
  28. package/dist/routing/redirect-patterns.d.ts.map +1 -0
  29. package/dist/routing/redirect-patterns.js +173 -0
  30. package/dist/routing/redirect-patterns.js.map +1 -0
  31. package/dist/routing/redirects.d.ts +27 -4
  32. package/dist/routing/redirects.d.ts.map +1 -1
  33. package/dist/routing/redirects.js +160 -48
  34. package/dist/routing/redirects.js.map +1 -1
  35. package/dist/scheduling/index.d.ts +2 -0
  36. package/dist/scheduling/index.d.ts.map +1 -1
  37. package/dist/scheduling/index.js +1 -0
  38. package/dist/scheduling/index.js.map +1 -1
  39. package/dist/scheduling/registry.d.ts +147 -0
  40. package/dist/scheduling/registry.d.ts.map +1 -0
  41. package/dist/scheduling/registry.js +318 -0
  42. package/dist/scheduling/registry.js.map +1 -0
  43. package/dist/search/extract.d.ts +24 -0
  44. package/dist/search/extract.d.ts.map +1 -1
  45. package/dist/search/extract.js +63 -8
  46. package/dist/search/extract.js.map +1 -1
  47. package/dist/search/index.d.ts +2 -1
  48. package/dist/search/index.d.ts.map +1 -1
  49. package/dist/search/index.js +1 -9
  50. package/dist/search/index.js.map +1 -1
  51. package/dist/store/admin-theme-store.d.ts +26 -0
  52. package/dist/store/admin-theme-store.d.ts.map +1 -0
  53. package/dist/store/admin-theme-store.js +81 -0
  54. package/dist/store/admin-theme-store.js.map +1 -0
  55. package/dist/store/admin-theme-tables.d.ts +24 -0
  56. package/dist/store/admin-theme-tables.d.ts.map +1 -0
  57. package/dist/store/admin-theme-tables.js +41 -0
  58. package/dist/store/admin-theme-tables.js.map +1 -0
  59. package/dist/store/admin-theme-templates.d.ts +135 -0
  60. package/dist/store/admin-theme-templates.d.ts.map +1 -0
  61. package/dist/store/admin-theme-templates.js +217 -0
  62. package/dist/store/admin-theme-templates.js.map +1 -0
  63. package/dist/store/columns.d.ts.map +1 -1
  64. package/dist/store/columns.js +8 -2
  65. package/dist/store/columns.js.map +1 -1
  66. package/dist/store/diff.d.ts +40 -0
  67. package/dist/store/diff.d.ts.map +1 -1
  68. package/dist/store/diff.js +148 -0
  69. package/dist/store/diff.js.map +1 -1
  70. package/dist/store/index.d.ts +47 -4
  71. package/dist/store/index.d.ts.map +1 -1
  72. package/dist/store/index.js +26 -2
  73. package/dist/store/index.js.map +1 -1
  74. package/dist/store/maintenance-store.d.ts +34 -0
  75. package/dist/store/maintenance-store.d.ts.map +1 -0
  76. package/dist/store/maintenance-store.js +92 -0
  77. package/dist/store/maintenance-store.js.map +1 -0
  78. package/dist/store/menu-store.d.ts +146 -0
  79. package/dist/store/menu-store.d.ts.map +1 -0
  80. package/dist/store/menu-store.js +565 -0
  81. package/dist/store/menu-store.js.map +1 -0
  82. package/dist/store/menu-tables.d.ts +38 -0
  83. package/dist/store/menu-tables.d.ts.map +1 -0
  84. package/dist/store/menu-tables.js +117 -0
  85. package/dist/store/menu-tables.js.map +1 -0
  86. package/dist/store/naming.d.ts +1 -1
  87. package/dist/store/naming.d.ts.map +1 -1
  88. package/dist/store/naming.js +2 -0
  89. package/dist/store/naming.js.map +1 -1
  90. package/dist/store/pattern-store.d.ts +75 -0
  91. package/dist/store/pattern-store.d.ts.map +1 -0
  92. package/dist/store/pattern-store.js +118 -0
  93. package/dist/store/pattern-store.js.map +1 -0
  94. package/dist/store/pattern-tables.d.ts +29 -0
  95. package/dist/store/pattern-tables.d.ts.map +1 -0
  96. package/dist/store/pattern-tables.js +53 -0
  97. package/dist/store/pattern-tables.js.map +1 -0
  98. package/dist/store/read-only.d.ts +3 -3
  99. package/dist/store/read-only.d.ts.map +1 -1
  100. package/dist/store/read-only.js +4 -3
  101. package/dist/store/read-only.js.map +1 -1
  102. package/dist/store/redirect-tracking.d.ts +50 -0
  103. package/dist/store/redirect-tracking.d.ts.map +1 -0
  104. package/dist/store/redirect-tracking.js +91 -0
  105. package/dist/store/redirect-tracking.js.map +1 -0
  106. package/dist/store/review-transitions.d.ts +34 -0
  107. package/dist/store/review-transitions.d.ts.map +1 -0
  108. package/dist/store/review-transitions.js +51 -0
  109. package/dist/store/review-transitions.js.map +1 -0
  110. package/dist/store/role-permission-export.d.ts +22 -0
  111. package/dist/store/role-permission-export.d.ts.map +1 -0
  112. package/dist/store/role-permission-export.js +0 -0
  113. package/dist/store/role-permission-export.js.map +1 -0
  114. package/dist/store/role-permission-overlay.d.ts +27 -0
  115. package/dist/store/role-permission-overlay.d.ts.map +1 -0
  116. package/dist/store/role-permission-overlay.js +0 -0
  117. package/dist/store/role-permission-overlay.js.map +1 -0
  118. package/dist/store/role-permission-store.d.ts +72 -0
  119. package/dist/store/role-permission-store.d.ts.map +1 -0
  120. package/dist/store/role-permission-store.js +148 -0
  121. package/dist/store/role-permission-store.js.map +1 -0
  122. package/dist/store/role-permission-tables.d.ts +27 -0
  123. package/dist/store/role-permission-tables.d.ts.map +1 -0
  124. package/dist/store/role-permission-tables.js +52 -0
  125. package/dist/store/role-permission-tables.js.map +1 -0
  126. package/dist/store/scheduled-publish-enqueue.d.ts +37 -0
  127. package/dist/store/scheduled-publish-enqueue.d.ts.map +1 -0
  128. package/dist/store/scheduled-publish-enqueue.js +51 -0
  129. package/dist/store/scheduled-publish-enqueue.js.map +1 -0
  130. package/dist/store/scheduled-publish-failures.d.ts +36 -0
  131. package/dist/store/scheduled-publish-failures.d.ts.map +1 -0
  132. package/dist/store/scheduled-publish-failures.js +67 -0
  133. package/dist/store/scheduled-publish-failures.js.map +1 -0
  134. package/dist/store/schema-2-1-migration.d.ts +29 -0
  135. package/dist/store/schema-2-1-migration.d.ts.map +1 -0
  136. package/dist/store/schema-2-1-migration.js +71 -0
  137. package/dist/store/schema-2-1-migration.js.map +1 -0
  138. package/dist/store/search-console-store.d.ts +44 -0
  139. package/dist/store/search-console-store.d.ts.map +1 -0
  140. package/dist/store/search-console-store.js +90 -0
  141. package/dist/store/search-console-store.js.map +1 -0
  142. package/dist/store/search-console-tables.d.ts +14 -0
  143. package/dist/store/search-console-tables.d.ts.map +1 -0
  144. package/dist/store/search-console-tables.js +29 -0
  145. package/dist/store/search-console-tables.js.map +1 -0
  146. package/dist/store/search-indexing.d.ts +36 -0
  147. package/dist/store/search-indexing.d.ts.map +1 -1
  148. package/dist/store/search-indexing.js +33 -0
  149. package/dist/store/search-indexing.js.map +1 -1
  150. package/dist/store/site-settings-registry.d.ts +164 -0
  151. package/dist/store/site-settings-registry.d.ts.map +1 -0
  152. package/dist/store/site-settings-registry.js +1160 -0
  153. package/dist/store/site-settings-registry.js.map +1 -0
  154. package/dist/store/site-settings-store.d.ts +42 -0
  155. package/dist/store/site-settings-store.d.ts.map +1 -0
  156. package/dist/store/site-settings-store.js +97 -0
  157. package/dist/store/site-settings-store.js.map +1 -0
  158. package/dist/store/site-settings-tables.d.ts +29 -0
  159. package/dist/store/site-settings-tables.d.ts.map +1 -0
  160. package/dist/store/site-settings-tables.js +48 -0
  161. package/dist/store/site-settings-tables.js.map +1 -0
  162. package/dist/store/store.d.ts +57 -2
  163. package/dist/store/store.d.ts.map +1 -1
  164. package/dist/store/store.js +278 -37
  165. package/dist/store/store.js.map +1 -1
  166. package/dist/store/tables.d.ts.map +1 -1
  167. package/dist/store/tables.js +11 -0
  168. package/dist/store/tables.js.map +1 -1
  169. package/dist/store/taxonomy-store.d.ts.map +1 -1
  170. package/dist/store/taxonomy-store.js +90 -39
  171. package/dist/store/taxonomy-store.js.map +1 -1
  172. package/dist/store/taxonomy-usage.d.ts +47 -0
  173. package/dist/store/taxonomy-usage.d.ts.map +1 -0
  174. package/dist/store/taxonomy-usage.js +101 -0
  175. package/dist/store/taxonomy-usage.js.map +1 -0
  176. package/dist/store/theme-store.d.ts +73 -0
  177. package/dist/store/theme-store.d.ts.map +1 -0
  178. package/dist/store/theme-store.js +193 -0
  179. package/dist/store/theme-store.js.map +1 -0
  180. package/dist/store/types.d.ts +36 -1
  181. package/dist/store/types.d.ts.map +1 -1
  182. package/dist/store/values.d.ts.map +1 -1
  183. package/dist/store/values.js +28 -1
  184. package/dist/store/values.js.map +1 -1
  185. package/dist/system-fields.d.ts +8 -1
  186. package/dist/system-fields.d.ts.map +1 -1
  187. package/dist/system-fields.js +14 -1
  188. package/dist/system-fields.js.map +1 -1
  189. package/dist/types.d.ts +54 -1
  190. package/dist/types.d.ts.map +1 -1
  191. package/dist/types.js +21 -0
  192. package/dist/types.js.map +1 -1
  193. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"search-indexing.js","sourceRoot":"","sources":["../../src/store/search-indexing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search-indexing.js","sourceRoot":"","sources":["../../src/store/search-indexing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,164 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * The declarative registry fiche 23 task 1 asks for: "un magasin clé/valeur
4
+ * typé, avec un schéma Zod déclarant chaque réglage : clé, type, valeur par
5
+ * défaut, portée (site ou locale), permission requise. Un réglage inconnu est
6
+ * refusé — pas un dépotoir de clés libres."
7
+ *
8
+ * Adding a setting is one entry here — `SiteSettingsStore` validates,
9
+ * defaults and scopes every key generically from this list (never a special
10
+ * case per key), and the admin's settings screen renders a field from each
11
+ * entry's `group`/`order`/`uiType` the same way (`site-settings-field.tsx`).
12
+ * That is what makes the fiche's own acceptance test true: "ajouter un
13
+ * réglage nouveau = une ligne de déclaration, et il apparaît à l'écran sans
14
+ * code d'interface supplémentaire."
15
+ *
16
+ * Every key here is **editorial** (ADR-0025's third category) — a rédacteur
17
+ * changes it from the admin, and it never duplicates a field
18
+ * `cogenta.config.mjs` already owns. `general.defaultLocale` and
19
+ * `reading.notFoundPath`, for instance, stay in the config file on purpose
20
+ * (section 8 of the fiche recommends migrating nothing that already exists);
21
+ * the settings screen shows them too, but read-only, mirrored from
22
+ * `SchemaDocument`/`Site.site` rather than declared here.
23
+ */
24
+ /** How the admin renders a value — never a free-form widget choice per key. */
25
+ export declare const SITE_SETTING_UI_TYPES: readonly ['string', 'text', 'email', 'boolean', 'path', 'number', 'timeZone', 'dateStyle', 'timeStyle',
26
+ /**
27
+ * A closed choice, rendered as a `<select>`. Fiche 34 task 4's first user:
28
+ * `commerce.priceDisplay` (`ttc`/`ht`) — free text would let an operator
29
+ * type a third value the totals engine does not know what to do with.
30
+ */
31
+ 'select',
32
+ /**
33
+ * A single optional media reference, rendered as `MediaPicker` (fiche L21
34
+ * task 8's first and only user: `branding.customLogoMediaId`). The value
35
+ * stored is a media id, or `''` for "unset" — a plain string, like every
36
+ * other value this registry holds; nothing here talks to `MediaStore`
37
+ * directly, exactly the way a `path` setting names a route without
38
+ * checking the route exists.
39
+ */
40
+ 'media',
41
+ /**
42
+ * A short ordered list of `{label, url}` pairs (L25 D2's first and only
43
+ * user: `general.socialLinks`), rendered as a textarea of one
44
+ * `Label | https://url` line per entry, converted to/from JSON by the
45
+ * field component itself — the same "closest shape in the closed set"
46
+ * reasoning `seo.collectionTitleTemplates` already documents for a `text`
47
+ * bypass, except this one *is* a real, generic editor (a JSON object map
48
+ * has no natural line-per-entry form; an ordered list of two short strings
49
+ * does) rather than a placeholder for a bespoke screen.
50
+ */
51
+ 'linkList'];
52
+ export type SiteSettingUiType = (typeof SITE_SETTING_UI_TYPES)[number];
53
+ export declare const SITE_SETTING_GROUPS: readonly ['general', 'reading', 'discussion', 'media', 'privacy',
54
+ /**
55
+ * The shop-wide settings of fiche 34 task 4 — currency, tax-inclusive vs.
56
+ * exclusive display, countries served, minimum order, default backorder
57
+ * policy, and the invoice mentions of task 5. `commerce.tosPagePath` and
58
+ * `commerce.returnPolicyPagePath` are, deliberately, **paths** here —
59
+ * exactly the way `reading.homePath`/`privacy.policyPath` already point at
60
+ * a real content entry rather than storing legal text as a settings field
61
+ * (fiche 34 § pièges: "les CGV doivent être une page publique").
62
+ */
63
+ 'commerce',
64
+ /**
65
+ * Cogenta's own credit and white-label override (fiche L21 task 8) —
66
+ * whether the public footer and the admin shell name Cogenta at all, and
67
+ * what replaces it when they don't. Editorial on purpose: a reseller
68
+ * turns this off from the admin the same way any other setting here
69
+ * changes, with no redeploy and no code touched.
70
+ */
71
+ 'branding',
72
+ /**
73
+ * Search-engine visibility (fiche 21 task 3): title/description templates,
74
+ * per-collection sitemap hints, and social-card defaults. Previously
75
+ * `seo.tsx` was read-only "by design" — that was a scope choice of a
76
+ * previous lot, never an ADR, and this group is what makes it editable
77
+ * without inventing a second settings store: exactly the same registry
78
+ * that already backs `SettingsRoute`, just with its own screen
79
+ * (`SeoRoute`) rather than a tab there, the same way `commerce` gets its
80
+ * own screen instead of a `SettingsRoute` tab.
81
+ */
82
+ 'seo',
83
+ /**
84
+ * OpenTelemetry tracing and structured-log collection (fiche L22 task 5).
85
+ * Editorial on purpose, unlike the OTLP export destination (which stays in
86
+ * `cogenta.config.mjs`'s `observability` section, because it can carry a
87
+ * bearer-token header — rule R7): whether the local recent-events buffer
88
+ * runs at all, and how verbose it is, are exactly the kind of switch an
89
+ * admin should be able to flip from the "Exploitation" screen with no
90
+ * redeploy, the same way `discussion.enabled` already works.
91
+ */
92
+ 'observability',
93
+ /**
94
+ * L22 task 4 — which collections the writing assistant's vector index
95
+ * actually contains. Its own screen (the redesigned `AssistantRoute`),
96
+ * not a `SettingsRoute` tab, for the same reason `commerce`/`seo` get
97
+ * their own: the one key this group holds (`assistant.indexedCollections`)
98
+ * is a per-collection map, not a single scalar a generic form field can
99
+ * render — exactly `seo.sitemapCollectionSettings`'s own shape.
100
+ */
101
+ 'assistant',
102
+ /**
103
+ * The update system (L22 task 9): whether `cogenta serve`'s own
104
+ * `updates-auto-check` scheduled task may apply an npm update on its own,
105
+ * and how far it may go. Lives here, not in `cogenta.config.mjs`, for the
106
+ * same reason `discussion.moderationRequired` does — it is a live
107
+ * operational choice an admin flips from the screen at 3am because a
108
+ * package just misbehaved, not something that should need a git commit
109
+ * and a redeploy to change. Read by the scheduled task on every tick
110
+ * (`updates.ts` in `cogenta serve`'s wiring), never cached at startup.
111
+ */
112
+ 'updates',
113
+ /**
114
+ * Admin nav reordering/hiding (fiche 22 tâche 8, part 3) — which sidebar
115
+ * sections and entries a signed-in actor sees, and in what order.
116
+ * Deliberately **site-wide**, not per-browser: `sidebarCollapsed` and
117
+ * `groupOpen` (`app-shell.tsx`) stay in `localStorage` on purpose (each
118
+ * person's own "collapsed today" is not something anyone else needs to
119
+ * see), but "this site sells nothing, so hide Boutique for everyone" is an
120
+ * editorial decision about the site, no different from every other setting
121
+ * in this registry — it has to survive a different browser, a different
122
+ * person signing in, and a fresh install pulling the same database.
123
+ */
124
+ 'navigation',
125
+ /**
126
+ * Fiche 59 — the one non-secret, operator-set fact a channel's step-by-step
127
+ * guide needs to name the bot by handle instead of "the Cogenta bot": each
128
+ * channel's bot display name/handle, free text, never a credential. Bot
129
+ * *tokens* stay environment-only (R7) and never enter this table — this
130
+ * group exists specifically so a guide can say "open a chat with
131
+ * @my_cogenta_bot" without ever storing anything a leaked table could turn
132
+ * into a working credential.
133
+ */
134
+ 'channels'];
135
+ export type SiteSettingGroup = (typeof SITE_SETTING_GROUPS)[number];
136
+ export declare const SITE_SETTING_SCOPES: readonly ['site', 'locale'];
137
+ export type SiteSettingScope = (typeof SITE_SETTING_SCOPES)[number];
138
+ export interface SiteSettingDefinition {
139
+ /** The machine key, `<group-ish>.<name>` by convention — never parsed, just a stable id. */
140
+ readonly key: string;
141
+ readonly group: SiteSettingGroup;
142
+ /** Sort order within the group, ascending. Ties break on `key`. */
143
+ readonly order: number;
144
+ readonly uiType: SiteSettingUiType;
145
+ readonly scope: SiteSettingScope;
146
+ readonly schema: z.ZodType;
147
+ readonly defaultValue: unknown;
148
+ /** Only meaningful for `uiType: 'select'` — the closed set of choices the admin renders. */
149
+ readonly options?: readonly {
150
+ readonly value: string;
151
+ readonly label: string;
152
+ }[];
153
+ /**
154
+ * Only `admin` may write any of these (fiche 23 § "Critères d'acceptation":
155
+ * "réglages éditoriaux réservés à admin"). Kept on the descriptor rather
156
+ * than hardcoded in the router so a future setting could in principle name
157
+ * a different role — none does today, and the router still refuses
158
+ * anything this field does not say.
159
+ */
160
+ readonly writeRoles: readonly string[];
161
+ }
162
+ export declare const SITE_SETTINGS_REGISTRY: readonly SiteSettingDefinition[];
163
+ export declare function siteSettingByKey(key: string): SiteSettingDefinition | undefined;
164
+ //# sourceMappingURL=site-settings-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"site-settings-registry.d.ts","sourceRoot":"","sources":["../../src/store/site-settings-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,+EAA+E;AAC/E,eAAO,MAAM,qBAAqB,YAChC,QAAQ,EACR,MAAM,EACN,OAAO,EACP,SAAS,EACT,MAAM,EACN,QAAQ,EACR,UAAU,EACV,WAAW,EACX,WAAW;AACX;;;;GAIG;AACH,QAAQ;AACR;;;;;;;GAOG;AACH,OAAO;AACP;;;;;;;;;GASG;AACH,UAAU,CACF,CAAA;AAEV,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAA;AAEtE,eAAO,MAAM,mBAAmB,YAC9B,SAAS,EACT,SAAS,EACT,YAAY,EACZ,OAAO,EACP,SAAS;AACT;;;;;;;;GAQG;AACH,UAAU;AACV;;;;;;GAMG;AACH,UAAU;AACV;;;;;;;;;GASG;AACH,KAAK;AACL;;;;;;;;GAQG;AACH,eAAe;AACf;;;;;;;GAOG;AACH,WAAW;AACX;;;;;;;;;GASG;AACH,SAAS;AACT;;;;;;;;;;GAUG;AACH,YAAY;AACZ;;;;;;;;GAQG;AACH,UAAU,CACF,CAAA;AAEV,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAA;AAEnE,eAAO,MAAM,mBAAmB,YAAI,MAAM,EAAE,QAAQ,CAAU,CAAA;AAE9D,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAA;AAEnE,MAAM,WAAW,qBAAqB;IACpC,4FAA4F;IAC5F,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAA;IAChC,mEAAmE;IACnE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAA;IAClC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAA;IAChC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAA;IAC1B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;IAC9B,4FAA4F;IAC5F,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAChF;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;CACvC;AA4LD,eAAO,MAAM,sBAAsB,EAAE,SAAS,qBAAqB,EAu1BzD,CAAA;AAIV,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS,CAE/E"}