@powerhousedao/shared 6.2.2-dev.9 → 6.2.2-staging.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) hide show
  1. package/dist/clis/args/access-token--9H57y8J.d.mts +18 -0
  2. package/dist/clis/args/access-token--9H57y8J.d.mts.map +1 -0
  3. package/dist/clis/args/access-token-To5LaIfL.mjs +22 -0
  4. package/dist/clis/args/access-token-To5LaIfL.mjs.map +1 -0
  5. package/dist/clis/args/access-token.d.mts +2 -18
  6. package/dist/clis/args/access-token.mjs +1 -21
  7. package/dist/clis/args/{common-dbsvksvf.mjs → common-CcYbXrBx.mjs} +7 -2
  8. package/dist/clis/args/common-CcYbXrBx.mjs.map +1 -0
  9. package/dist/clis/args/{common-Cr8LZG55.d.mts → common-Dsf1vpHV.d.mts} +7 -4
  10. package/dist/clis/args/{common-Cr8LZG55.d.mts.map → common-Dsf1vpHV.d.mts.map} +1 -1
  11. package/dist/clis/args/common.d.mts +2 -2
  12. package/dist/clis/args/common.mjs +2 -2
  13. package/dist/clis/args/connect-BVVvCmL9.mjs +198 -0
  14. package/dist/clis/args/connect-BVVvCmL9.mjs.map +1 -0
  15. package/dist/clis/args/connect-DetTnI8g.d.mts +443 -0
  16. package/dist/clis/args/connect-DetTnI8g.d.mts.map +1 -0
  17. package/dist/clis/args/connect.d.mts +2 -434
  18. package/dist/clis/args/connect.mjs +1 -196
  19. package/dist/clis/args/{generate-Cs5okckF.mjs → generate-CA916Fvj.mjs} +2 -2
  20. package/dist/clis/args/{generate-Cs5okckF.mjs.map → generate-CA916Fvj.mjs.map} +1 -1
  21. package/dist/clis/args/generate-DnV-bfXt.d.mts +87 -0
  22. package/dist/clis/args/generate-DnV-bfXt.d.mts.map +1 -0
  23. package/dist/clis/args/generate.d.mts +2 -87
  24. package/dist/clis/args/generate.mjs +1 -1
  25. package/dist/clis/args/{help-BkF9Cxud.mjs → help-Bqbgbalu.mjs} +15 -15
  26. package/dist/clis/args/{help-BkF9Cxud.mjs.map → help-Bqbgbalu.mjs.map} +1 -1
  27. package/dist/clis/args/{help-CYjFrzIJ.d.mts → help-CjAsudUn.d.mts} +1 -1
  28. package/dist/clis/args/{help-CYjFrzIJ.d.mts.map → help-CjAsudUn.d.mts.map} +1 -1
  29. package/dist/clis/args/help.d.mts +1 -1
  30. package/dist/clis/args/help.mjs +1 -13
  31. package/dist/clis/args/index.d.mts +19 -19
  32. package/dist/clis/args/index.mjs +19 -19
  33. package/dist/clis/args/init-CUXyfquF.d.mts +55 -0
  34. package/dist/clis/args/init-CUXyfquF.d.mts.map +1 -0
  35. package/dist/clis/args/init-rz9Ei7nq.mjs +67 -0
  36. package/dist/clis/args/init-rz9Ei7nq.mjs.map +1 -0
  37. package/dist/clis/args/init.d.mts +2 -55
  38. package/dist/clis/args/init.mjs +1 -66
  39. package/dist/clis/args/inspect-DtZeoA5c.d.mts +15 -0
  40. package/dist/clis/args/inspect-DtZeoA5c.d.mts.map +1 -0
  41. package/dist/clis/args/inspect-tckH8mSw.mjs +15 -0
  42. package/dist/clis/args/inspect-tckH8mSw.mjs.map +1 -0
  43. package/dist/clis/args/inspect.d.mts +2 -15
  44. package/dist/clis/args/inspect.mjs +1 -14
  45. package/dist/clis/args/install-CkP8zcHb.d.mts +40 -0
  46. package/dist/clis/args/install-CkP8zcHb.d.mts.map +1 -0
  47. package/dist/clis/args/install-Sz2DlCHh.mjs +32 -0
  48. package/dist/clis/args/install-Sz2DlCHh.mjs.map +1 -0
  49. package/dist/clis/args/install.d.mts +2 -40
  50. package/dist/clis/args/install.mjs +1 -31
  51. package/dist/clis/args/list-BGf8s_gj.d.mts +12 -0
  52. package/dist/clis/args/list-BGf8s_gj.d.mts.map +1 -0
  53. package/dist/clis/args/list-DM2d6f1m.mjs +7 -0
  54. package/dist/clis/args/list-DM2d6f1m.mjs.map +1 -0
  55. package/dist/clis/args/list.d.mts +2 -12
  56. package/dist/clis/args/list.mjs +1 -6
  57. package/dist/clis/args/login-DNsHwvqk.d.mts +27 -0
  58. package/dist/clis/args/login-DNsHwvqk.d.mts.map +1 -0
  59. package/dist/clis/args/login-DiKT5Jfu.mjs +40 -0
  60. package/dist/clis/args/login-DiKT5Jfu.mjs.map +1 -0
  61. package/dist/clis/args/login.d.mts +2 -27
  62. package/dist/clis/args/login.mjs +1 -39
  63. package/dist/clis/args/magic-string.es-h_0HDQBQ.mjs +1013 -0
  64. package/dist/clis/args/magic-string.es-h_0HDQBQ.mjs.map +1 -0
  65. package/dist/clis/args/migrate-CG_gWc4k.mjs +29 -0
  66. package/dist/clis/args/migrate-CG_gWc4k.mjs.map +1 -0
  67. package/dist/clis/args/migrate-sixkWhxm.d.mts +21 -0
  68. package/dist/clis/args/migrate-sixkWhxm.d.mts.map +1 -0
  69. package/dist/clis/args/migrate.d.mts +2 -21
  70. package/dist/clis/args/migrate.mjs +1 -28
  71. package/dist/clis/args/publish-DDZYsUfV.mjs +19 -0
  72. package/dist/clis/args/publish-DDZYsUfV.mjs.map +1 -0
  73. package/dist/clis/args/publish-Dqe5DUst.d.mts +18 -0
  74. package/dist/clis/args/publish-Dqe5DUst.d.mts.map +1 -0
  75. package/dist/clis/args/publish.d.mts +2 -18
  76. package/dist/clis/args/publish.mjs +1 -18
  77. package/dist/clis/args/registry-C_OVFQmI.mjs +23 -0
  78. package/dist/clis/args/registry-C_OVFQmI.mjs.map +1 -0
  79. package/dist/clis/args/registry-C_RfTsKB.d.mts +19 -0
  80. package/dist/clis/args/registry-C_RfTsKB.d.mts.map +1 -0
  81. package/dist/clis/args/registry.d.mts +2 -19
  82. package/dist/clis/args/registry.mjs +1 -22
  83. package/dist/clis/args/service-CHOOr0Gg.mjs +11 -0
  84. package/dist/clis/args/service-CHOOr0Gg.mjs.map +1 -0
  85. package/dist/clis/args/{service-C88bN_g_.d.mts → service-DhIkf8-O.d.mts} +1 -1
  86. package/dist/clis/args/{service-C88bN_g_.d.mts.map → service-DhIkf8-O.d.mts.map} +1 -1
  87. package/dist/clis/args/service.d.mts +1 -1
  88. package/dist/clis/args/service.mjs +1 -10
  89. package/dist/clis/args/switchboard-BlPaq2at.d.mts +72 -0
  90. package/dist/clis/args/switchboard-BlPaq2at.d.mts.map +1 -0
  91. package/dist/clis/args/switchboard-Dsp7nosi.mjs +85 -0
  92. package/dist/clis/args/switchboard-Dsp7nosi.mjs.map +1 -0
  93. package/dist/clis/args/switchboard.d.mts +2 -72
  94. package/dist/clis/args/switchboard.mjs +1 -84
  95. package/dist/clis/args/uninstall-BpA3YYbw.d.mts +31 -0
  96. package/dist/clis/args/uninstall-BpA3YYbw.d.mts.map +1 -0
  97. package/dist/clis/args/uninstall-CTwTX0u_.mjs +16 -0
  98. package/dist/clis/args/uninstall-CTwTX0u_.mjs.map +1 -0
  99. package/dist/clis/args/uninstall.d.mts +2 -31
  100. package/dist/clis/args/uninstall.mjs +1 -15
  101. package/dist/clis/args/unpublish-BPMkGEg5.mjs +30 -0
  102. package/dist/clis/args/unpublish-BPMkGEg5.mjs.map +1 -0
  103. package/dist/clis/args/unpublish-CvwaIimG.d.mts +24 -0
  104. package/dist/clis/args/unpublish-CvwaIimG.d.mts.map +1 -0
  105. package/dist/clis/args/unpublish.d.mts +2 -24
  106. package/dist/clis/args/unpublish.mjs +1 -29
  107. package/dist/clis/args/vetra-DLQ6lhLl.d.mts +113 -0
  108. package/dist/clis/args/vetra-DLQ6lhLl.d.mts.map +1 -0
  109. package/dist/clis/args/vetra-b4KUu1Ax.mjs +126 -0
  110. package/dist/clis/args/vetra-b4KUu1Ax.mjs.map +1 -0
  111. package/dist/clis/args/vetra-ports.test.d.mts +1 -0
  112. package/dist/clis/args/vetra-ports.test.mjs +13249 -0
  113. package/dist/clis/args/vetra-ports.test.mjs.map +1 -0
  114. package/dist/clis/args/vetra.d.mts +2 -102
  115. package/dist/clis/args/vetra.mjs +2 -75
  116. package/dist/clis/build-config.d.mts +1 -1
  117. package/dist/clis/build-config.d.mts.map +1 -1
  118. package/dist/clis/constants.d.mts +199 -55
  119. package/dist/clis/constants.d.mts.map +1 -1
  120. package/dist/clis/constants.mjs +12 -4
  121. package/dist/clis/constants.mjs.map +1 -1
  122. package/dist/clis/index.d.mts +591 -30
  123. package/dist/clis/index.d.mts.map +1 -1
  124. package/dist/clis/index.mjs +413 -18
  125. package/dist/clis/index.mjs.map +1 -1
  126. package/dist/clis/project-env.d.mts +27 -0
  127. package/dist/clis/project-env.d.mts.map +1 -0
  128. package/dist/clis/project-env.mjs +44 -0
  129. package/dist/clis/project-env.mjs.map +1 -0
  130. package/dist/clis/project-ports.d.mts +40 -0
  131. package/dist/clis/project-ports.d.mts.map +1 -0
  132. package/dist/clis/project-ports.mjs +90 -0
  133. package/dist/clis/project-ports.mjs.map +1 -0
  134. package/dist/{config-loader-19K8n4DO.js → config-loader-B845Hidf.js} +11 -14
  135. package/dist/config-loader-B845Hidf.js.map +1 -0
  136. package/dist/connect/config-loader.d.ts +2 -1
  137. package/dist/connect/config-loader.d.ts.map +1 -1
  138. package/dist/connect/config-loader.js +1 -1
  139. package/dist/connect/index.d.ts +486 -27
  140. package/dist/connect/index.d.ts.map +1 -1
  141. package/dist/connect/index.js +531 -5
  142. package/dist/connect/index.js.map +1 -1
  143. package/dist/connect/json-adapter.d.ts.map +1 -1
  144. package/dist/{constants-C_EQX4DY.d.ts → constants-BP_gjn8g.d.ts} +1 -1
  145. package/dist/constants-BP_gjn8g.d.ts.map +1 -0
  146. package/dist/constants.d.ts +1 -1
  147. package/dist/document-drive/index.d.ts +2 -2
  148. package/dist/document-drive/index.js +3 -3
  149. package/dist/document-drive/index.js.map +1 -1
  150. package/dist/document-model/index.d.ts +4 -5
  151. package/dist/document-model/index.js +1337 -133
  152. package/dist/document-model/index.js.map +1 -1
  153. package/dist/document-model/mock.d.ts +22 -2
  154. package/dist/document-model/mock.d.ts.map +1 -0
  155. package/dist/document-model/mock.js +32 -3
  156. package/dist/document-model/mock.js.map +1 -1
  157. package/dist/document-model/utils.d.ts +1 -2
  158. package/dist/document-model/utils.js +1 -2
  159. package/dist/{index-CQDIrK1k.d.ts → index-C_iVZe7f.d.ts} +1 -1
  160. package/dist/index-C_iVZe7f.d.ts.map +1 -0
  161. package/dist/index-DPuio_se.d.ts +836 -0
  162. package/dist/index-DPuio_se.d.ts.map +1 -0
  163. package/dist/index.d.ts +5 -6
  164. package/dist/processors/index.d.ts +2 -2
  165. package/dist/registry/index.d.ts +5 -4
  166. package/dist/registry/index.d.ts.map +1 -1
  167. package/dist/registry/index.js +9 -8
  168. package/dist/registry/index.js.map +1 -1
  169. package/dist/registry/manifest-slim.d.ts +1 -1
  170. package/dist/registry/urls.d.ts +11 -0
  171. package/dist/registry/urls.d.ts.map +1 -0
  172. package/dist/registry/urls.js +15 -0
  173. package/dist/registry/urls.js.map +1 -0
  174. package/dist/{types-DvWPqxJr.d.ts → types-BBUlASQ7.d.ts} +30 -4
  175. package/dist/types-BBUlASQ7.d.ts.map +1 -0
  176. package/dist/{types-DXsYu6Tq.d.ts → types-BzWRXB7f.d.ts} +507 -16
  177. package/dist/types-BzWRXB7f.d.ts.map +1 -0
  178. package/dist/utils-DP122OSS.d.ts +18 -0
  179. package/dist/utils-DP122OSS.d.ts.map +1 -0
  180. package/dist/{utils-DKOFCM0Q.js → utils-aaTmfxFW.js} +45 -2
  181. package/dist/utils-aaTmfxFW.js.map +1 -0
  182. package/package.json +12 -1
  183. package/dist/clis/args/access-token.d.mts.map +0 -1
  184. package/dist/clis/args/access-token.mjs.map +0 -1
  185. package/dist/clis/args/common-dbsvksvf.mjs.map +0 -1
  186. package/dist/clis/args/connect.d.mts.map +0 -1
  187. package/dist/clis/args/connect.mjs.map +0 -1
  188. package/dist/clis/args/generate.d.mts.map +0 -1
  189. package/dist/clis/args/init.d.mts.map +0 -1
  190. package/dist/clis/args/init.mjs.map +0 -1
  191. package/dist/clis/args/inspect.d.mts.map +0 -1
  192. package/dist/clis/args/inspect.mjs.map +0 -1
  193. package/dist/clis/args/install.d.mts.map +0 -1
  194. package/dist/clis/args/install.mjs.map +0 -1
  195. package/dist/clis/args/list.d.mts.map +0 -1
  196. package/dist/clis/args/list.mjs.map +0 -1
  197. package/dist/clis/args/login.d.mts.map +0 -1
  198. package/dist/clis/args/login.mjs.map +0 -1
  199. package/dist/clis/args/migrate.d.mts.map +0 -1
  200. package/dist/clis/args/migrate.mjs.map +0 -1
  201. package/dist/clis/args/publish.d.mts.map +0 -1
  202. package/dist/clis/args/publish.mjs.map +0 -1
  203. package/dist/clis/args/registry.d.mts.map +0 -1
  204. package/dist/clis/args/registry.mjs.map +0 -1
  205. package/dist/clis/args/service.mjs.map +0 -1
  206. package/dist/clis/args/switchboard.d.mts.map +0 -1
  207. package/dist/clis/args/switchboard.mjs.map +0 -1
  208. package/dist/clis/args/uninstall.d.mts.map +0 -1
  209. package/dist/clis/args/uninstall.mjs.map +0 -1
  210. package/dist/clis/args/unpublish.d.mts.map +0 -1
  211. package/dist/clis/args/unpublish.mjs.map +0 -1
  212. package/dist/clis/args/vetra.d.mts.map +0 -1
  213. package/dist/clis/args/vetra.mjs.map +0 -1
  214. package/dist/config-loader-19K8n4DO.js.map +0 -1
  215. package/dist/constants-C_EQX4DY.d.ts.map +0 -1
  216. package/dist/index-CQDIrK1k.d.ts.map +0 -1
  217. package/dist/index-Dz7JrBXs.d.ts +0 -399
  218. package/dist/index-Dz7JrBXs.d.ts.map +0 -1
  219. package/dist/mock-CBcf78ra.d.ts +0 -7
  220. package/dist/mock-CBcf78ra.d.ts.map +0 -1
  221. package/dist/types-D0NNBVGA.d.ts +0 -167
  222. package/dist/types-D0NNBVGA.d.ts.map +0 -1
  223. package/dist/types-DXsYu6Tq.d.ts.map +0 -1
  224. package/dist/types-DvWPqxJr.d.ts.map +0 -1
  225. package/dist/utils-BEByNOHo.d.ts +0 -9
  226. package/dist/utils-BEByNOHo.d.ts.map +0 -1
  227. package/dist/utils-DKOFCM0Q.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { b as PowerhouseConfig, m as PHConnectRuntimeConfig, x as PowerhousePackage } from "../types-D0NNBVGA.js";
1
+ import { D as PHConnectRuntimeConfig, I as PowerhouseConfig, L as PowerhousePackage, S as PHConnectPwaUrlPattern, _ as PHConnectPwaCacheStrategy, b as PHConnectPwaManifest, g as PHConnectPwa, v as PHConnectPwaFileHandler, x as PHConnectPwaRuntimeCaching, y as PHConnectPwaIcon } from "../types-BzWRXB7f.js";
2
2
  import { ConfigAdapter, ConfigLoader, ConfigShape, DeepPartial, deepMerge } from "./config-loader.js";
3
3
  import { JsonConfigAdapter, JsonConfigAdapterOptions } from "./json-adapter.js";
4
4
  import { z } from "zod";
@@ -179,6 +179,104 @@ declare const ROOT_STORAGE_NAMESPACE = "reactor";
179
179
  */
180
180
  declare function getStorageNamespace(basePath: string): string;
181
181
  //#endregion
182
+ //#region connect/pwa-config.d.ts
183
+ /** A labelled PWA fragment, so merge diagnostics can name the contributor. */
184
+ type PwaContribution = {
185
+ /** Human-readable origin (package name, or the project config file). */source: string;
186
+ config: PHConnectPwa;
187
+ };
188
+ type IconLike = {
189
+ src: string;
190
+ sizes?: string;
191
+ purpose?: string | readonly string[];
192
+ };
193
+ /** Concatenate icons, keeping the first occurrence of each (src,sizes,purpose). */
194
+ declare function dedupeIcons<T extends IconLike>(icons: T[]): T[];
195
+ /**
196
+ * Concatenate file handlers, keeping the first occurrence of each entry.
197
+ * Deduped on the WHOLE entry (canonical JSON) rather than any single field:
198
+ * every handler shares Connect's fixed action, and two handlers accepting
199
+ * different file types are both real contributions — only the exact same
200
+ * fragment arriving via two layers is a duplicate. Structural, so it also
201
+ * works on the vite-plugin-pwa handler shape in builder-tools.
202
+ */
203
+ declare function dedupeFileHandlers<T extends object>(handlers: T[]): T[];
204
+ /** Fold a manifest's top-level `category` string into a PWA config as a
205
+ * `categories: [category]` entry. PWA `categories` is DERIVED from the
206
+ * `category` field of every contributing `powerhouse.manifest.json` (never
207
+ * authored under `pwa`); `mergePwaConfig`/`mergeManifest` then union them
208
+ * across contributors. No-op when there is no usable category. */
209
+ declare function withInferredCategory(config: PHConnectPwa, category: unknown): PHConnectPwa;
210
+ /** Order-preserving string union (used for the precache glob lists). */
211
+ declare function unionStrings(base: string[] | undefined, extra: string[]): string[];
212
+ /**
213
+ * Fold the build-time-known package PWA fragments and the project's
214
+ * `connect.pwa` block into one effective fragment. Precedence is
215
+ * `packageContributions (in order) < projectConfig` — the project config wins
216
+ * scalar fields, while arrays (`icons`, globs, `runtimeCaching`,
217
+ * `navigateFallbackDenylist`) are additive across every layer and the size
218
+ * ceiling takes the max.
219
+ *
220
+ * `onWarn` fires when two or more PACKAGES set the same manifest scalar to
221
+ * different values and the project config doesn't settle it — the winner is
222
+ * otherwise decided silently by package load order. The operator resolves it
223
+ * by setting that field in `connect.pwa`, which both wins and silences the
224
+ * warning.
225
+ */
226
+ declare function mergePwaConfig(packageContributions: PwaContribution[], projectConfig?: PHConnectPwa, onWarn?: (message: string) => void): PHConnectPwa;
227
+ /** A serialisable URL pattern as Workbox consumes it: strings pass through
228
+ * verbatim, `{ source, flags }` is rebuilt into a RegExp. */
229
+ declare function toRegExpOrString(pattern: PHConnectPwaUrlPattern): string | RegExp;
230
+ //#endregion
231
+ //#region connect/pwa-manifest.d.ts
232
+ /**
233
+ * The one route launched files open at, shared by the built-in handler and
234
+ * injected into every contributed one. Not configurable: consuming launched
235
+ * files takes runtime code that lives in Connect itself, and a relative "."
236
+ * resolves against the manifest URL so it tracks any deploy base (the
237
+ * webmanifest is served dynamically and never rewritten by the dynamic-base
238
+ * plugin) — same trick as the base start_url/scope.
239
+ */
240
+ declare const PWA_FILE_HANDLER_ACTION = ".";
241
+ declare const PWA_IDB_NAME = "ph-pwa";
242
+ declare const PWA_IDB_STORE = "fragments";
243
+ declare const PWA_IDB_KEY = "merged";
244
+ declare const PWA_IDB_VERSION = 1;
245
+ /** The subset of a web-app manifest this module reads/writes, plus an index
246
+ * signature so untouched fields (name, theme_color, launch_handler, …) pass
247
+ * through verbatim. */
248
+ interface PwaWebManifest {
249
+ icons?: PHConnectPwaIcon[];
250
+ file_handlers?: (PHConnectPwaFileHandler & {
251
+ action?: string;
252
+ })[];
253
+ categories?: string[];
254
+ [key: string]: unknown;
255
+ }
256
+ /**
257
+ * Lay a `PHConnectPwaManifest` fragment over a base web-manifest object.
258
+ *
259
+ * - **scalars** (name, theme_color, launch_handler, …): governed by
260
+ * `scalarPolicy`. `"fragment-wins"` lets the fragment overwrite the base;
261
+ * `"base-wins"` keeps the base and only fills fields it left unset. Keys
262
+ * listed in `protectedScalars` always behave as base-wins even under a
263
+ * fragment-wins policy — used at runtime to fragment-win cosmetic scalars
264
+ * while still protecting navigation-critical ones (`start_url`/`scope`) from
265
+ * an untrusted dynamically-installed package.
266
+ * - **arrays** (icons, file_handlers): always additive, base entries first,
267
+ * de-duplicated — so a package can extend but never displace a built-in
268
+ * (Chromium is first-registered-wins per file extension, so `.phd`/`.phdm`
269
+ * stay Connect's).
270
+ * - **categories**: order-preserving string union (derived from the manifest
271
+ * `category` field, not authored under `pwa`).
272
+ *
273
+ * The Connect-owned file-handler action is injected idempotently.
274
+ */
275
+ declare function mergeManifest(base: PwaWebManifest, fragment: PHConnectPwaManifest | undefined, opts?: {
276
+ scalarPolicy?: "base-wins" | "fragment-wins";
277
+ protectedScalars?: readonly string[];
278
+ }): PwaWebManifest;
279
+ //#endregion
182
280
  //#region connect/runtime-config.d.ts
183
281
  type RuntimePowerhouseConfig = {
184
282
  schemaVersion: 2;
@@ -190,18 +288,8 @@ type RuntimePowerhouseConfig = {
190
288
  } | null;
191
289
  connect: PHConnectRuntimeConfig;
192
290
  };
193
- /**
194
- * Default values for every Connect-relevant field. Merged with the
195
- * `connect.*` block of whatever `powerhouse.config.json` Connect is pointed
196
- * at, so the SPA never has to guard against undefined fields.
197
- *
198
- * Scoped to fields Connect actually reads at runtime — build-time concerns
199
- * (studio port, switchboard port, reactor.*, auth.*) live in the source
200
- * config but are not Connect's business and not represented here.
201
- *
202
- * Single source of truth for defaults across Connect's runtime read (via
203
- * ConfigLoader merge), the dist emitter, and the codegen scaffold template.
204
- */
291
+ /** Defaults for every field Connect reads at runtime, merged into the
292
+ * `connect.*` block at boot; also the dist emitter's and the scaffold's base. */
205
293
  declare const DEFAULT_CONNECT_CONFIG: PHConnectRuntimeConfig;
206
294
  declare function buildRuntimeConfig(source: Pick<PowerhouseConfig, "packages" | "connect" | "packageRegistryUrl">, projectInfo: {
207
295
  name: string;
@@ -281,6 +369,18 @@ declare const phConnectRuntimeConfigSchema: {
281
369
  };
282
370
  };
283
371
  };
372
+ readonly ai: {
373
+ readonly type: "object";
374
+ readonly additionalProperties: false;
375
+ readonly description: "AI assistant (chat) behaviour.";
376
+ readonly properties: {
377
+ readonly assistantEnabled: {
378
+ readonly type: "boolean";
379
+ readonly description: "When true, Connect mounts the in-browser AI assistant (bottom-right chat FAB that talks to a user-configured OpenAI-compatible endpoint and acts on the reactor). Disabled by default.";
380
+ readonly default: false;
381
+ };
382
+ };
383
+ };
284
384
  readonly packages: {
285
385
  readonly type: "object";
286
386
  readonly additionalProperties: false;
@@ -310,23 +410,49 @@ declare const phConnectRuntimeConfigSchema: {
310
410
  };
311
411
  readonly defaultDrives: {
312
412
  readonly type: "array";
313
- readonly description: "Drives the SPA auto-connects to on first load. Each must specify a URL; name and icon are optional overrides.";
413
+ readonly description: "Drives the SPA auto-connects to on first load. Each entry is either a remote drive (a URL, with optional name/icon overrides) or a local drive (created locally on first boot, with a stable id and optional name/icon/app).";
314
414
  readonly default: readonly [];
315
415
  readonly items: {
316
- readonly type: "object";
317
- readonly additionalProperties: false;
318
- readonly required: readonly ["url"];
319
- readonly properties: {
320
- readonly url: {
321
- readonly type: "string";
322
- };
323
- readonly name: {
324
- readonly type: readonly ["string", "null"];
416
+ readonly oneOf: readonly [{
417
+ readonly type: "object";
418
+ readonly additionalProperties: false;
419
+ readonly required: readonly ["url"];
420
+ readonly properties: {
421
+ readonly url: {
422
+ readonly type: "string";
423
+ };
424
+ readonly name: {
425
+ readonly type: readonly ["string", "null"];
426
+ };
427
+ readonly icon: {
428
+ readonly type: readonly ["string", "null"];
429
+ };
325
430
  };
326
- readonly icon: {
327
- readonly type: readonly ["string", "null"];
431
+ }, {
432
+ readonly type: "object";
433
+ readonly additionalProperties: false;
434
+ readonly required: readonly ["local", "id"];
435
+ readonly properties: {
436
+ readonly local: {
437
+ readonly const: true;
438
+ readonly description: "Discriminator: this entry is a local drive created on first boot.";
439
+ };
440
+ readonly id: {
441
+ readonly type: "string";
442
+ readonly description: "Stable drive id. The drive is created with this id on first boot and is not re-created on later boots.";
443
+ };
444
+ readonly name: {
445
+ readonly type: readonly ["string", "null"];
446
+ };
447
+ readonly icon: {
448
+ readonly type: readonly ["string", "null"];
449
+ };
450
+ readonly app: {
451
+ readonly type: "string";
452
+ readonly description: "Drive app (preferred editor) to open on the drive.";
453
+ };
328
454
  };
329
- };
455
+ }];
330
456
  };
331
457
  };
332
458
  readonly preserveStrategy: {
@@ -407,6 +533,58 @@ declare const phConnectRuntimeConfigSchema: {
407
533
  readonly description: "CAIP-2 chain reference within the network namespace.";
408
534
  readonly default: 1;
409
535
  };
536
+ readonly namespace: {
537
+ readonly type: "string";
538
+ readonly description: "Renown localStorage namespace; share it across Connects to share login.";
539
+ };
540
+ readonly switchboardUrl: {
541
+ readonly type: "string";
542
+ readonly description: "Switchboard GraphQL URL. When set, Connect enables in-page (no-redirect) Renown sign-in; otherwise it falls back to the redirect flow via `url`.";
543
+ };
544
+ readonly adapters: {
545
+ readonly type: "object";
546
+ readonly additionalProperties: false;
547
+ readonly description: "Per-adapter wallet config for in-page auth. Presence of an adapter key enables it; omit or leave empty for redirect-only behaviour.";
548
+ readonly properties: {
549
+ readonly rainbow: {
550
+ readonly type: "object";
551
+ readonly additionalProperties: false;
552
+ readonly description: "wagmi + RainbowKit external-wallet adapter config.";
553
+ readonly properties: {
554
+ readonly walletConnectProjectId: {
555
+ readonly type: "string";
556
+ readonly description: "WalletConnect project id; required for this adapter to function.";
557
+ };
558
+ readonly infuraProjectId: {
559
+ readonly type: "string";
560
+ readonly description: "Optional Infura project id used to build RPC transports.";
561
+ };
562
+ };
563
+ };
564
+ readonly privy: {
565
+ readonly type: "object";
566
+ readonly additionalProperties: false;
567
+ readonly description: "Privy embedded/social adapter config.";
568
+ readonly properties: {
569
+ readonly appId: {
570
+ readonly type: "string";
571
+ readonly description: "Privy application id; required for this adapter to function.";
572
+ };
573
+ readonly clientId: {
574
+ readonly type: "string";
575
+ readonly description: "Optional Privy client id.";
576
+ };
577
+ readonly methods: {
578
+ readonly type: "array";
579
+ readonly description: "Login methods this adapter offers; default per adapter when omitted.";
580
+ readonly items: {
581
+ readonly type: "string";
582
+ };
583
+ };
584
+ };
585
+ };
586
+ };
587
+ };
410
588
  };
411
589
  };
412
590
  readonly sentry: {
@@ -449,8 +627,289 @@ declare const phConnectRuntimeConfigSchema: {
449
627
  };
450
628
  };
451
629
  };
630
+ readonly reactor: {
631
+ readonly type: "object";
632
+ readonly additionalProperties: false;
633
+ readonly description: "Settings for the reactor Connect runs in the browser, on the main thread or in the shared worker alike.";
634
+ readonly properties: {
635
+ readonly featureFlags: {
636
+ readonly type: "object";
637
+ readonly additionalProperties: false;
638
+ readonly description: "Enforcement flags. Each implies its predecessors, and the reactor refuses to boot on a set that names a later flag without an earlier one. These are consensus settings: a Connect syncing with a fleet must carry the same flags the fleet does, or the two reach different replay outcomes for the same history and diverge.";
639
+ readonly properties: {
640
+ readonly documentDecisions: {
641
+ readonly type: "boolean";
642
+ readonly description: "Decide writes from the document stream rather than the document meta cache, so a backdated deletion denies the operations that sort after it.";
643
+ readonly default: false;
644
+ };
645
+ readonly authEnforcement: {
646
+ readonly type: "boolean";
647
+ readonly description: "Enforce the auth scope's policy at admission, replay, and read. Requires documentDecisions.";
648
+ readonly default: false;
649
+ };
650
+ readonly authGroups: {
651
+ readonly type: "boolean";
652
+ readonly description: "Let `{ group }` principals match against the rosters of the group documents a policy names. Requires authEnforcement.";
653
+ readonly default: false;
654
+ };
655
+ readonly authConditions: {
656
+ readonly type: "boolean";
657
+ readonly description: "Evaluate `where` and `match` conditions on grants. Requires authGroups. Do not enable on a fleet `preflight:auth` reports as crossing a reducer version.";
658
+ readonly default: false;
659
+ };
660
+ };
661
+ };
662
+ };
663
+ };
664
+ readonly pwa: {
665
+ readonly type: "object";
666
+ readonly additionalProperties: false;
667
+ readonly description: "Progressive-web-app / service-worker overrides, layered on Connect's built-in PWA defaults at build time. Scalar fields deep-merge (this layer wins); the array members (icons, file_handlers, globs, runtimeCaching and denylist patterns) are additive; maximumFileSizeToCacheInBytes takes the max across contributors. (categories is not set here — it is derived from the manifest's category field.) Only applied when connect.app.offline is true.";
668
+ readonly properties: {
669
+ readonly manifest: {
670
+ readonly type: "object";
671
+ readonly additionalProperties: false;
672
+ readonly description: "Web-app-manifest field overrides.";
673
+ readonly properties: {
674
+ readonly name: {
675
+ readonly type: "string";
676
+ };
677
+ readonly short_name: {
678
+ readonly type: "string";
679
+ };
680
+ readonly description: {
681
+ readonly type: "string";
682
+ };
683
+ readonly theme_color: {
684
+ readonly type: "string";
685
+ };
686
+ readonly background_color: {
687
+ readonly type: "string";
688
+ };
689
+ readonly display: {
690
+ readonly type: "string";
691
+ readonly enum: readonly ["fullscreen", "standalone", "minimal-ui", "browser"];
692
+ };
693
+ readonly start_url: {
694
+ readonly type: "string";
695
+ };
696
+ readonly scope: {
697
+ readonly type: "string";
698
+ };
699
+ readonly icons: {
700
+ readonly type: "array";
701
+ readonly description: "Icons appended to the built-in set and de-duplicated by (src, sizes, purpose).";
702
+ readonly items: {
703
+ readonly type: "object";
704
+ readonly additionalProperties: false;
705
+ readonly required: readonly ["src"];
706
+ readonly properties: {
707
+ readonly src: {
708
+ readonly type: "string";
709
+ };
710
+ readonly sizes: {
711
+ readonly type: "string";
712
+ };
713
+ readonly type: {
714
+ readonly type: "string";
715
+ };
716
+ readonly purpose: {
717
+ readonly type: "string";
718
+ };
719
+ };
720
+ };
721
+ };
722
+ readonly file_handlers: {
723
+ readonly type: "array";
724
+ readonly description: "File associations appended after Connect's built-in .phd/.phdm handler and de-duplicated on the whole entry. Entries only declare accepted types; there is no action field, because opening the files requires Connect's own runtime handling, so every handler opens at the app root.";
725
+ readonly items: {
726
+ readonly type: "object";
727
+ readonly additionalProperties: false;
728
+ readonly required: readonly ["accept"];
729
+ readonly properties: {
730
+ readonly accept: {
731
+ readonly type: "object";
732
+ readonly description: "MIME type → file extensions. Each extension must start with '.'; browsers ignore entries without it.";
733
+ readonly additionalProperties: {
734
+ readonly type: "array";
735
+ readonly items: {
736
+ readonly type: "string";
737
+ readonly pattern: "^\\.";
738
+ };
739
+ };
740
+ };
741
+ readonly icons: {
742
+ readonly type: "array";
743
+ readonly description: "OS-level file-type icons.";
744
+ readonly items: {
745
+ readonly type: "object";
746
+ readonly additionalProperties: false;
747
+ readonly required: readonly ["src"];
748
+ readonly properties: {
749
+ readonly src: {
750
+ readonly type: "string";
751
+ };
752
+ readonly sizes: {
753
+ readonly type: "string";
754
+ };
755
+ readonly type: {
756
+ readonly type: "string";
757
+ };
758
+ readonly purpose: {
759
+ readonly type: "string";
760
+ };
761
+ };
762
+ };
763
+ };
764
+ readonly launch_type: {
765
+ readonly type: "string";
766
+ readonly enum: readonly ["single-client", "multiple-clients"];
767
+ };
768
+ };
769
+ };
770
+ };
771
+ readonly launch_handler: {
772
+ readonly type: "object";
773
+ readonly additionalProperties: false;
774
+ readonly required: readonly ["client_mode"];
775
+ readonly description: "How the OS launches the app for handled files/links. Connect defaults to focus-existing.";
776
+ readonly properties: {
777
+ readonly client_mode: {
778
+ readonly type: "string";
779
+ readonly enum: readonly ["auto", "focus-existing", "navigate-existing", "navigate-new"];
780
+ };
781
+ };
782
+ };
783
+ };
784
+ };
785
+ readonly globPatterns: {
786
+ readonly type: "array";
787
+ readonly items: {
788
+ readonly type: "string";
789
+ };
790
+ readonly description: "Extra Workbox precache globs, unioned with the built-ins.";
791
+ };
792
+ readonly globIgnores: {
793
+ readonly type: "array";
794
+ readonly items: {
795
+ readonly type: "string";
796
+ };
797
+ readonly description: "Extra precache ignore globs, unioned with the built-ins.";
798
+ };
799
+ readonly maximumFileSizeToCacheInBytes: {
800
+ readonly type: "number";
801
+ readonly description: "Raise the precache file-size ceiling. The max across all contributors wins, so no contributor can shrink another's limit.";
802
+ };
803
+ readonly runtimeCaching: {
804
+ readonly type: "array";
805
+ readonly description: "Runtime-caching rules appended after the built-in rules. Workbox is first-match-wins, so these cannot override a built-in rule matching the same URL.";
806
+ readonly items: {
807
+ readonly type: "object";
808
+ readonly additionalProperties: false;
809
+ readonly required: readonly ["urlPattern", "handler"];
810
+ readonly properties: {
811
+ readonly urlPattern: {
812
+ readonly description: "URL match. A string is matched verbatim by Workbox; { source, flags } is rebuilt into a RegExp at build time.";
813
+ readonly oneOf: readonly [{
814
+ readonly type: "string";
815
+ }, {
816
+ readonly type: "object";
817
+ readonly additionalProperties: false;
818
+ readonly required: readonly ["source"];
819
+ readonly properties: {
820
+ readonly source: {
821
+ readonly type: "string";
822
+ readonly description: "RegExp source.";
823
+ };
824
+ readonly flags: {
825
+ readonly type: "string";
826
+ readonly description: "RegExp flags (e.g. 'i').";
827
+ };
828
+ };
829
+ }];
830
+ };
831
+ readonly handler: {
832
+ readonly type: "string";
833
+ readonly enum: readonly ["CacheFirst", "CacheOnly", "NetworkFirst", "NetworkOnly", "StaleWhileRevalidate"];
834
+ };
835
+ readonly method: {
836
+ readonly type: "string";
837
+ readonly enum: readonly ["GET", "POST", "PUT", "DELETE", "HEAD", "PATCH"];
838
+ };
839
+ readonly options: {
840
+ readonly type: "object";
841
+ readonly additionalProperties: false;
842
+ readonly properties: {
843
+ readonly cacheName: {
844
+ readonly type: "string";
845
+ };
846
+ readonly networkTimeoutSeconds: {
847
+ readonly type: "number";
848
+ readonly description: "Seconds a NetworkFirst rule waits for the network before falling back to the cache.";
849
+ };
850
+ readonly expiration: {
851
+ readonly type: "object";
852
+ readonly additionalProperties: false;
853
+ readonly properties: {
854
+ readonly maxEntries: {
855
+ readonly type: "number";
856
+ };
857
+ readonly maxAgeSeconds: {
858
+ readonly type: "number";
859
+ };
860
+ };
861
+ };
862
+ readonly cacheableResponse: {
863
+ readonly type: "object";
864
+ readonly additionalProperties: false;
865
+ readonly properties: {
866
+ readonly statuses: {
867
+ readonly type: "array";
868
+ readonly items: {
869
+ readonly type: "number";
870
+ };
871
+ };
872
+ readonly headers: {
873
+ readonly type: "object";
874
+ readonly additionalProperties: {
875
+ readonly type: "string";
876
+ };
877
+ };
878
+ };
879
+ };
880
+ };
881
+ };
882
+ };
883
+ };
884
+ };
885
+ readonly navigateFallbackDenylist: {
886
+ readonly type: "array";
887
+ readonly description: "Extra SPA navigate-fallback denylist patterns, unioned with the built-ins.";
888
+ readonly items: {
889
+ readonly description: "URL match. A string is matched verbatim by Workbox; { source, flags } is rebuilt into a RegExp at build time.";
890
+ readonly oneOf: readonly [{
891
+ readonly type: "string";
892
+ }, {
893
+ readonly type: "object";
894
+ readonly additionalProperties: false;
895
+ readonly required: readonly ["source"];
896
+ readonly properties: {
897
+ readonly source: {
898
+ readonly type: "string";
899
+ readonly description: "RegExp source.";
900
+ };
901
+ readonly flags: {
902
+ readonly type: "string";
903
+ readonly description: "RegExp flags (e.g. 'i').";
904
+ };
905
+ };
906
+ }];
907
+ };
908
+ };
909
+ };
910
+ };
452
911
  };
453
912
  };
454
913
  //#endregion
455
- export { ConfigAdapter, ConfigLoader, ConfigShape, ConnectBuildEnv, ConnectEnv, ConnectRuntimeEnv, DEFAULT_CONNECT_CONFIG, DeepPartial, JsonConfigAdapter, JsonConfigAdapterOptions, LoadEnvOptions, ROOT_STORAGE_NAMESPACE, RuntimePowerhouseConfig, buildRuntimeConfig, connectEnvSchema, deepMerge, getStorageNamespace, loadConnectEnv, loadRuntimeEnv, normalizeBasePath, phConnectRuntimeConfigSchema, powerhousePackageSchema, runtimeEnvSchema, setConnectEnv };
914
+ export { ConfigAdapter, ConfigLoader, ConfigShape, ConnectBuildEnv, ConnectEnv, ConnectRuntimeEnv, DEFAULT_CONNECT_CONFIG, DeepPartial, JsonConfigAdapter, JsonConfigAdapterOptions, LoadEnvOptions, type PHConnectPwa, type PHConnectPwaCacheStrategy, type PHConnectPwaFileHandler, type PHConnectPwaIcon, type PHConnectPwaManifest, type PHConnectPwaRuntimeCaching, type PHConnectPwaUrlPattern, PWA_FILE_HANDLER_ACTION, PWA_IDB_KEY, PWA_IDB_NAME, PWA_IDB_STORE, PWA_IDB_VERSION, PwaContribution, PwaWebManifest, ROOT_STORAGE_NAMESPACE, RuntimePowerhouseConfig, buildRuntimeConfig, connectEnvSchema, dedupeFileHandlers, dedupeIcons, deepMerge, getStorageNamespace, loadConnectEnv, loadRuntimeEnv, mergeManifest, mergePwaConfig, normalizeBasePath, phConnectRuntimeConfigSchema, powerhousePackageSchema, runtimeEnvSchema, setConnectEnv, toRegExpOrString, unionStrings, withInferredCategory };
456
915
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../connect/env-config.ts","../../connect/runtime-config.ts","../../connect/schema-fragments.ts"],"mappings":";;;;;;;;;cAoBM,cAAA,EAAc,CAAA,CAAA,SAAA;;;;;;;;;;;;cA2HP,gBAAA,EAAgB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAOhB,gBAAA,EAAgB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAKjB,eAAA,GAAkB,CAAA,CAAE,KAAA,QAAa,cAAA;AAAA,KACjC,iBAAA,GAAoB,CAAA,CAAE,KAAA,QAAa,gBAAA;AAAA,KACnC,UAAA,GAAa,CAAA,CAAE,KAAA,QAAa,gBAAA;;;;UASvB,cAAA;;;;EAIf,UAAA,GAAa,MAAA;;;;EAIb,OAAA,GAAU,MAAA;AAAA;;;;;;;;;;iBAkEI,cAAA,CAAe,OAAA,GAAS,cAAA,GAAsB,UAAA;;;;;;;;;iBAkB9C,cAAA,CACd,OAAA,GAAS,cAAA,GACR,iBAAA;;;;;;;;;;;;;;;iBAoBa,aAAA,CAAc,MAAA,EAAQ,OAAA,CAAQ,UAAA;;;;;;;;;;;;;;;;;iBA4C9B,iBAAA,CAAkB,QAAA;;;;;;cA8BrB,sBAAA;;;;;;;;;;;;;;;;;;;;;;;iBAwBG,mBAAA,CAAoB,QAAA;;;KCpXxB,uBAAA;EACV,aAAA;EACA,QAAA,EAAU,iBAAA;EACV,kBAAA;EACA,YAAA;IAAgB,IAAA;IAAc,OAAA;EAAA;EAC9B,OAAA,EAAS,sBAAA;AAAA;;;;;;;;;;;;;cAeE,sBAAA,EAAwB,sBAAA;AAAA,iBA0CrB,kBAAA,CACd,MAAA,EAAQ,IAAA,CAAK,gBAAA,kDACb,WAAA;EAAe,IAAA;EAAc,OAAA;AAAA,WAC5B,uBAAA;;;cChEU,uBAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;cAuDA,4BAAA;EAAA"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../connect/env-config.ts","../../connect/pwa-config.ts","../../connect/pwa-manifest.ts","../../connect/runtime-config.ts","../../connect/schema-fragments.ts"],"mappings":";;;;;;;;;cAoBM,cAAA,EAAc,CAAA,CAAA,SAAA;;;;;;;;;;;;cA2HP,gBAAA,EAAgB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAOhB,gBAAA,EAAgB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAKjB,eAAA,GAAkB,CAAA,CAAE,KAAA,QAAa,cAAA;AAAA,KACjC,iBAAA,GAAoB,CAAA,CAAE,KAAA,QAAa,gBAAA;AAAA,KACnC,UAAA,GAAa,CAAA,CAAE,KAAA,QAAa,gBAAA;;;;UASvB,cAAA;;;;EAIf,UAAA,GAAa,MAAA;;;;EAIb,OAAA,GAAU,MAAA;AAAA;;;;;;;;;;iBAkEI,cAAA,CAAe,OAAA,GAAS,cAAA,GAAsB,UAAA;;;;;;;;;iBAkB9C,cAAA,CACd,OAAA,GAAS,cAAA,GACR,iBAAA;;;;;;;;;;;;;;;iBAoBa,aAAA,CAAc,MAAA,EAAQ,OAAA,CAAQ,UAAA;;;;;;;;;;;;;;;;;iBA4C9B,iBAAA,CAAkB,QAAA;;;;;;cA8BrB,sBAAA;;;;;;;;;;;;;;;;;;;;;;;iBAwBG,mBAAA,CAAoB,QAAA;;;;KCrVxB,eAAA;0EAEV,MAAA;EACA,MAAA,EAAQ,YAAA;AAAA;AAAA,KA6BL,QAAA;EACH,GAAA;EACA,KAAA;EACA,OAAA;AAAA;;iBAyBc,WAAA,WAAsB,QAAA,CAAA,CAAU,KAAA,EAAO,CAAA,KAAM,CAAA;;;;;;;;;iBA4B7C,kBAAA,kBAAA,CAAqC,QAAA,EAAU,CAAA,KAAM,CAAA;;;;;;iBASrD,oBAAA,CACd,MAAA,EAAQ,YAAA,EACR,QAAA,YACC,YAAA;;iBASa,YAAA,CACd,IAAA,wBACA,KAAA;;;;;;;;;;;;;;;iBA2Gc,cAAA,CACd,oBAAA,EAAsB,eAAA,IACtB,aAAA,GAAgB,YAAA,EAChB,MAAA,IAAS,OAAA,oBACR,YAAA;;;iBA8Ca,gBAAA,CACd,OAAA,EAAS,sBAAA,YACC,MAAA;;;;;;;;ADnTY;;;cE8BX,uBAAA;AAAA,cAQA,YAAA;AAAA,cACA,aAAA;AAAA,cACA,WAAA;AAAA,cACA,eAAA;;;;UAKI,cAAA;EACf,KAAA,GAAQ,gBAAA;EACR,aAAA,IAAiB,uBAAA;IAA4B,MAAA;EAAA;EAC7C,UAAA;EAAA,CACC,GAAA;AAAA;;;;;;;;;;;;;;;;;;;;iBAsBa,aAAA,CACd,IAAA,EAAM,cAAA,EACN,QAAA,EAAU,oBAAA,cACV,IAAA;EACE,YAAA;EACA,gBAAA;AAAA,IAED,cAAA;;;KCzES,uBAAA;EACV,aAAA;EACA,QAAA,EAAU,iBAAA;EACV,kBAAA;EACA,YAAA;IAAgB,IAAA;IAAc,OAAA;EAAA;EAC9B,OAAA,EAAS,sBAAA;AAAA;;;cAKE,sBAAA,EAAwB,sBAAA;AAAA,iBAqDrB,kBAAA,CACd,MAAA,EAAQ,IAAA,CAAK,gBAAA,kDACb,WAAA;EAAe,IAAA;EAAc,OAAA;AAAA,WAC5B,uBAAA;;;cCjEU,uBAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;cA0FA,4BAAA;EAAA"}