@kingsleyweb/bun-ui 0.0.0-stage → 3.0.0-rc.2

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 (240) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +80 -2
  3. package/app/docs/App.tsx +72 -0
  4. package/app/docs/api/client.ts +303 -0
  5. package/app/docs/api/contract.ts +24 -0
  6. package/app/docs/api/docs.ts +38 -0
  7. package/app/docs/api/errors.ts +144 -0
  8. package/app/docs/boot.tsx +58 -0
  9. package/app/docs/components/Badge.tsx +65 -0
  10. package/app/docs/components/Button.tsx +37 -0
  11. package/app/docs/components/Card.tsx +41 -0
  12. package/app/docs/components/ConfirmDialog.tsx +173 -0
  13. package/app/docs/components/CopyButton.tsx +68 -0
  14. package/app/docs/components/Dialog.tsx +230 -0
  15. package/app/docs/components/EmptyState.tsx +34 -0
  16. package/app/docs/components/ErrorView.tsx +70 -0
  17. package/app/docs/components/Field.tsx +93 -0
  18. package/app/docs/components/JsonEditor.tsx +151 -0
  19. package/app/docs/components/JsonView.tsx +338 -0
  20. package/app/docs/components/KeyValue.tsx +63 -0
  21. package/app/docs/components/ProblemBanner.tsx +116 -0
  22. package/app/docs/components/ScreenErrorBoundary.tsx +141 -0
  23. package/app/docs/components/Spinner.tsx +33 -0
  24. package/app/docs/components/Table.tsx +33 -0
  25. package/app/docs/components/Tabs.tsx +226 -0
  26. package/app/docs/components/classNames.ts +4 -0
  27. package/app/docs/components/components.css +691 -0
  28. package/app/docs/components/copy.ts +89 -0
  29. package/app/docs/components/fieldContext.ts +29 -0
  30. package/app/docs/components/inputValues.ts +142 -0
  31. package/app/docs/components/inputs.tsx +387 -0
  32. package/app/docs/components/jsonParse.ts +338 -0
  33. package/app/docs/components/listKeys.ts +30 -0
  34. package/app/docs/config.ts +86 -0
  35. package/app/docs/context.ts +33 -0
  36. package/app/docs/embed.ts +74 -0
  37. package/app/docs/env.d.ts +2 -0
  38. package/app/docs/format.ts +9 -0
  39. package/app/docs/hooks/useUrlTab.ts +16 -0
  40. package/app/docs/main.tsx +11 -0
  41. package/app/docs/queryClient.ts +54 -0
  42. package/app/docs/router.tsx +194 -0
  43. package/app/docs/routing.ts +194 -0
  44. package/app/docs/screens/docs/document.ts +27 -0
  45. package/app/docs/screens/docs/http/OperationView.tsx +407 -0
  46. package/app/docs/screens/docs/http/Sidebar.tsx +190 -0
  47. package/app/docs/screens/docs/http/TryItPanel.tsx +603 -0
  48. package/app/docs/screens/docs/http/http.css +405 -0
  49. package/app/docs/screens/docs/http/index.tsx +395 -0
  50. package/app/docs/screens/docs/http/model.ts +604 -0
  51. package/app/docs/screens/docs/http/tryIt.ts +455 -0
  52. package/app/docs/screens/docs/permissions.ts +6 -0
  53. package/app/docs/screens/docs/schema/Prose.tsx +43 -0
  54. package/app/docs/screens/docs/schema/SchemaTree.tsx +319 -0
  55. package/app/docs/screens/docs/schema/index.ts +30 -0
  56. package/app/docs/screens/docs/schema/resolve.ts +466 -0
  57. package/app/docs/screens/docs/schema/schema.css +137 -0
  58. package/app/docs/screens/docs/schema/skeleton.ts +92 -0
  59. package/app/docs/screens/docs/viewer.tsx +154 -0
  60. package/app/docs/screens/docs/ws/InlineText.tsx +25 -0
  61. package/app/docs/screens/docs/ws/PayloadSchema.tsx +39 -0
  62. package/app/docs/screens/docs/ws/format.ts +82 -0
  63. package/app/docs/screens/docs/ws/index.tsx +286 -0
  64. package/app/docs/screens/docs/ws/items.tsx +786 -0
  65. package/app/docs/screens/docs/ws/model.ts +1178 -0
  66. package/app/docs/screens/docs/ws/panels.tsx +440 -0
  67. package/app/docs/screens/docs/ws/ws.css +231 -0
  68. package/app/docs/shortcuts.ts +94 -0
  69. package/app/docs/styles/base.css +847 -0
  70. package/app/docs/styles/tokens.css +143 -0
  71. package/app/docs/theme.ts +56 -0
  72. package/app/kit/unauthorized.ts +222 -0
  73. package/dist/docs/assets/main-0rchxtv5.js +18 -0
  74. package/dist/docs/assets/main-0rchxtv5.js.map +99 -0
  75. package/dist/docs/assets/main-cqgyvs86.css +1 -0
  76. package/dist/docs/manifest.json +26 -0
  77. package/dist/jobs/assets/AddFlowDialog-h6xkgx9b.js +6 -0
  78. package/dist/jobs/assets/AddFlowDialog-h6xkgx9b.js.map +11 -0
  79. package/dist/jobs/assets/AddFlowDialog-n7gtc84v.css +1 -0
  80. package/dist/jobs/assets/added-cbwsxv3e.js +4 -0
  81. package/dist/jobs/assets/added-cbwsxv3e.js.map +11 -0
  82. package/dist/jobs/assets/bodies-yyw5hmrp.js +6 -0
  83. package/dist/jobs/assets/bodies-yyw5hmrp.js.map +10 -0
  84. package/dist/jobs/assets/channel-tgkvqm8y.js +4 -0
  85. package/dist/jobs/assets/channel-tgkvqm8y.js.map +10 -0
  86. package/dist/jobs/assets/channelChecks-s4yz4yhw.js +4 -0
  87. package/dist/jobs/assets/channelChecks-s4yz4yhw.js.map +10 -0
  88. package/dist/jobs/assets/index-02427smp.css +1 -0
  89. package/dist/jobs/assets/index-09z2cjft.js +4 -0
  90. package/dist/jobs/assets/index-09z2cjft.js.map +16 -0
  91. package/dist/jobs/assets/index-18bn0gvy.css +1 -0
  92. package/dist/jobs/assets/index-47pxmyxn.js +4 -0
  93. package/dist/jobs/assets/index-47pxmyxn.js.map +10 -0
  94. package/dist/jobs/assets/index-4e55z986.js +4 -0
  95. package/dist/jobs/assets/index-4e55z986.js.map +11 -0
  96. package/dist/jobs/assets/index-5c933424.js +4 -0
  97. package/dist/jobs/assets/index-5c933424.js.map +18 -0
  98. package/dist/jobs/assets/index-5kbyqspm.css +1 -0
  99. package/dist/jobs/assets/index-5ng37hk6.css +1 -0
  100. package/dist/jobs/assets/index-5w8w7fvc.css +1 -0
  101. package/dist/jobs/assets/index-71qs5qyx.css +1 -0
  102. package/dist/jobs/assets/index-btpg4r8b.css +1 -0
  103. package/dist/jobs/assets/index-d5r5n0mm.js +4 -0
  104. package/dist/jobs/assets/index-d5r5n0mm.js.map +23 -0
  105. package/dist/jobs/assets/index-e0yy2skq.css +1 -0
  106. package/dist/jobs/assets/index-hs60b25v.js +10 -0
  107. package/dist/jobs/assets/index-hs60b25v.js.map +62 -0
  108. package/dist/jobs/assets/index-k2smrr70.js +4 -0
  109. package/dist/jobs/assets/index-k2smrr70.js.map +9 -0
  110. package/dist/jobs/assets/index-q24jw3w9.js +4 -0
  111. package/dist/jobs/assets/index-q24jw3w9.js.map +32 -0
  112. package/dist/jobs/assets/index-qfb80xen.css +1 -0
  113. package/dist/jobs/assets/index-rtynx6wj.js +4 -0
  114. package/dist/jobs/assets/index-rtynx6wj.js.map +10 -0
  115. package/dist/jobs/assets/live-6k7s6358.js +4 -0
  116. package/dist/jobs/assets/live-6k7s6358.js.map +10 -0
  117. package/dist/jobs/assets/main-0jmeh6mq.js +6 -0
  118. package/dist/jobs/assets/main-0jmeh6mq.js.map +12 -0
  119. package/dist/jobs/assets/main-3yj6bv90.js +5 -0
  120. package/dist/jobs/assets/main-3yj6bv90.js.map +10 -0
  121. package/dist/jobs/assets/main-4g69fn3x.js +5 -0
  122. package/dist/jobs/assets/main-4g69fn3x.js.map +10 -0
  123. package/dist/jobs/assets/main-4gte3eqq.js +5 -0
  124. package/dist/jobs/assets/main-4gte3eqq.js.map +10 -0
  125. package/dist/jobs/assets/main-4j1fcevh.js +5 -0
  126. package/dist/jobs/assets/main-4j1fcevh.js.map +10 -0
  127. package/dist/jobs/assets/main-54qwkz28.css +1 -0
  128. package/dist/jobs/assets/main-5grjvsy7.js +5 -0
  129. package/dist/jobs/assets/main-5grjvsy7.js.map +11 -0
  130. package/dist/jobs/assets/main-5zbx60gq.js +5 -0
  131. package/dist/jobs/assets/main-5zbx60gq.js.map +11 -0
  132. package/dist/jobs/assets/main-9prgjhg4.js +5 -0
  133. package/dist/jobs/assets/main-9prgjhg4.js.map +10 -0
  134. package/dist/jobs/assets/main-a250ffk7.js +17 -0
  135. package/dist/jobs/assets/main-a250ffk7.js.map +115 -0
  136. package/dist/jobs/assets/main-d6ge7w08.js +5 -0
  137. package/dist/jobs/assets/main-d6ge7w08.js.map +10 -0
  138. package/dist/jobs/assets/main-gngzht43.js +5 -0
  139. package/dist/jobs/assets/main-gngzht43.js.map +10 -0
  140. package/dist/jobs/assets/main-hg0hrg8j.js +5 -0
  141. package/dist/jobs/assets/main-hg0hrg8j.js.map +10 -0
  142. package/dist/jobs/assets/main-hm1ng3yg.js +5 -0
  143. package/dist/jobs/assets/main-hm1ng3yg.js.map +12 -0
  144. package/dist/jobs/assets/main-jkvd92z9.js +5 -0
  145. package/dist/jobs/assets/main-jkvd92z9.js.map +10 -0
  146. package/dist/jobs/assets/main-jv5xqd13.js +5 -0
  147. package/dist/jobs/assets/main-jv5xqd13.js.map +21 -0
  148. package/dist/jobs/assets/main-jxre7w93.js +5 -0
  149. package/dist/jobs/assets/main-jxre7w93.js.map +23 -0
  150. package/dist/jobs/assets/main-kwmqkjfx.js +5 -0
  151. package/dist/jobs/assets/main-kwmqkjfx.js.map +11 -0
  152. package/dist/jobs/assets/main-n9cf6bxm.js +5 -0
  153. package/dist/jobs/assets/main-n9cf6bxm.js.map +11 -0
  154. package/dist/jobs/assets/main-pegp0ygb.js +5 -0
  155. package/dist/jobs/assets/main-pegp0ygb.js.map +10 -0
  156. package/dist/jobs/assets/main-qr573853.js +5 -0
  157. package/dist/jobs/assets/main-qr573853.js.map +12 -0
  158. package/dist/jobs/assets/main-rq97rdr4.js +4 -0
  159. package/dist/jobs/assets/main-rq97rdr4.js.map +22 -0
  160. package/dist/jobs/assets/main-szjdmydc.js +5 -0
  161. package/dist/jobs/assets/main-szjdmydc.js.map +13 -0
  162. package/dist/jobs/assets/main-tnbhrm9n.js +7 -0
  163. package/dist/jobs/assets/main-tnbhrm9n.js.map +11 -0
  164. package/dist/jobs/assets/main-ts19j4n0.js +5 -0
  165. package/dist/jobs/assets/main-ts19j4n0.js.map +25 -0
  166. package/dist/jobs/assets/main-w93x1dzs.js +5 -0
  167. package/dist/jobs/assets/main-w93x1dzs.js.map +10 -0
  168. package/dist/jobs/assets/sections-0ksdxs8m.css +1 -0
  169. package/dist/jobs/assets/sections-0y7w4fb4.js +4 -0
  170. package/dist/jobs/assets/sections-0y7w4fb4.js.map +10 -0
  171. package/dist/jobs/assets/sse-mn0t0fh7.js +5 -0
  172. package/dist/jobs/assets/sse-mn0t0fh7.js.map +11 -0
  173. package/dist/jobs/assets/sseChecks-t7tcm7ra.js +4 -0
  174. package/dist/jobs/assets/sseChecks-t7tcm7ra.js.map +10 -0
  175. package/dist/jobs/assets/validation-ysjfy072.js +4 -0
  176. package/dist/jobs/assets/validation-ysjfy072.js.map +9 -0
  177. package/dist/jobs/manifest.json +511 -0
  178. package/dts/docs/assets.d.ts +144 -0
  179. package/dts/docs/assets.d.ts.map +1 -0
  180. package/dts/docs/browser/config.d.ts +61 -0
  181. package/dts/docs/browser/config.d.ts.map +1 -0
  182. package/dts/docs/browser/index.d.ts +12 -0
  183. package/dts/docs/browser/index.d.ts.map +1 -0
  184. package/dts/docs/docsUi.d.ts +42 -0
  185. package/dts/docs/docsUi.d.ts.map +1 -0
  186. package/dts/docs/hosted.d.ts +22 -0
  187. package/dts/docs/hosted.d.ts.map +1 -0
  188. package/dts/docs/index.d.ts +18 -0
  189. package/dts/docs/index.d.ts.map +1 -0
  190. package/dts/docs/shell.d.ts +57 -0
  191. package/dts/docs/shell.d.ts.map +1 -0
  192. package/dts/docs/types.d.ts +137 -0
  193. package/dts/docs/types.d.ts.map +1 -0
  194. package/dts/index.d.ts +21 -0
  195. package/dts/index.d.ts.map +1 -0
  196. package/dts/jobs/assets.d.ts +157 -0
  197. package/dts/jobs/assets.d.ts.map +1 -0
  198. package/dts/jobs/browser/config.d.ts +67 -0
  199. package/dts/jobs/browser/config.d.ts.map +1 -0
  200. package/dts/jobs/browser/index.d.ts +10 -0
  201. package/dts/jobs/browser/index.d.ts.map +1 -0
  202. package/dts/jobs/browser/unauthorized.d.ts +9 -0
  203. package/dts/jobs/browser/unauthorized.d.ts.map +1 -0
  204. package/dts/jobs/index.d.ts +24 -0
  205. package/dts/jobs/index.d.ts.map +1 -0
  206. package/dts/jobs/jobsUi.d.ts +63 -0
  207. package/dts/jobs/jobsUi.d.ts.map +1 -0
  208. package/dts/jobs/shell.d.ts +77 -0
  209. package/dts/jobs/shell.d.ts.map +1 -0
  210. package/dts/jobs/types.d.ts +146 -0
  211. package/dts/jobs/types.d.ts.map +1 -0
  212. package/dts/kit/browser/shared.d.ts +10 -0
  213. package/dts/kit/browser/shared.d.ts.map +1 -0
  214. package/dts/kit/browser/unauthorized.d.ts +74 -0
  215. package/dts/kit/browser/unauthorized.d.ts.map +1 -0
  216. package/dts/kit/unauthorized.d.ts +47 -0
  217. package/dts/kit/unauthorized.d.ts.map +1 -0
  218. package/guides/docs.md +170 -0
  219. package/guides/jobs.md +1120 -0
  220. package/lib/docs/assets.ts +427 -0
  221. package/lib/docs/browser/config.ts +66 -0
  222. package/lib/docs/browser/index.ts +24 -0
  223. package/lib/docs/docsUi.ts +623 -0
  224. package/lib/docs/hosted.ts +31 -0
  225. package/lib/docs/index.ts +37 -0
  226. package/lib/docs/shell.ts +156 -0
  227. package/lib/docs/types.ts +149 -0
  228. package/lib/index.ts +27 -0
  229. package/lib/jobs/assets.ts +448 -0
  230. package/lib/jobs/browser/config.ts +65 -0
  231. package/lib/jobs/browser/index.ts +9 -0
  232. package/lib/jobs/browser/unauthorized.ts +11 -0
  233. package/lib/jobs/index.ts +41 -0
  234. package/lib/jobs/jobsUi.ts +709 -0
  235. package/lib/jobs/shell.ts +205 -0
  236. package/lib/jobs/types.ts +162 -0
  237. package/lib/kit/browser/shared.ts +11 -0
  238. package/lib/kit/browser/unauthorized.ts +114 -0
  239. package/lib/kit/unauthorized.ts +222 -0
  240. package/package.json +198 -4
@@ -0,0 +1,5 @@
1
+ import{u}from"./main-a250ffk7.js";var o={ready:{label:"Ready",tone:"success",hint:"Its config is validated and it can summon."},pending:{label:"Pending",tone:"warning",hint:"Its config is still being validated. It can't summon yet, and what it declares appears once it's ready."},failed:{label:"Failed",tone:"danger",hint:"Its config was rejected, or building it threw. It can't summon until it's reconfigured; Test connection says why, where the provider has one."}};function pt(e){return typeof e==="string"&&Object.hasOwn(o,e)?o[e]:{label:u(e),tone:"neutral",hint:"A readiness this version of the UI does not know."}}var a={misconfigured:"Configuration problem: fix the provider's config.",auth:"Credentials problem: the platform refused them.",transient:"Platform trouble, for now: try again.",throttled:"The platform is throttling calls: try again later.",quota:"The platform's quota is used up.",conflict:"A bug in the provider: it gave conflicting answers."},s={pass:{label:"Pass",tone:"success"},warn:{label:"Warn",tone:"warning"},fail:{label:"Fail",tone:"danger"}};function d(e){return typeof e==="string"&&Object.hasOwn(a,e)?a[e]:`The preflight failed (${u(e)}).`}function rs(e){return typeof e==="string"&&Object.hasOwn(s,e)?s[e]:{label:u(e),tone:"neutral"}}function os(e){if(e.error!==void 0){let{kind:t,detail:n}=e.error;if(n==="timeout")return"No answer: the preflight timed out.";if(n.startsWith("invalid config: "))return`Configuration problem: invalid ${n.slice(16)}.`;return`${d(t)} (${u(n)})`}let i=e.checks.filter((t)=>t.status==="fail"),r=e.checks.filter((t)=>t.status==="warn");if(i.length>0)return`Connection failed: ${i.length} of ${e.checks.length} checks failed.`;if(r.length>0)return`Connected, with ${r.length} warning${r.length===1?"":"s"}.`;return e.checks.length===0?"Connected.":`Connected: all ${e.checks.length} checks passed.`}
2
+ export{pt,rs,os};
3
+
4
+ //# debugId=2E819A42228AE52E64756E2164756E21
5
+ //# sourceMappingURL=main-9prgjhg4.js.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["app/jobs/screens/providers/providerText.ts"],
4
+ "sourcesContent": [
5
+ "import type { ProviderDto, ProviderValidationDto } from \"../../api/types\";\nimport type { BadgeTone } from \"../../components/Badge\";\nimport { displayText } from \"../../format\";\n\n/**\n * A compute provider in plain words: its readiness, and what \"Test\n * connection\" found.\n *\n * Each table is an exhaustive record of the values the contract lists, so a\n * value added there is a compile error here until it is named, and each\n * lookup shows a value this build does not know as its raw string.\n */\n\n/** A provider's readiness. */\nexport type ProviderReadiness = ProviderDto[\"readiness\"];\n\n/** The kind a failed preflight classifies as. */\nexport type ProviderErrorKind = NonNullable<\n ProviderValidationDto[\"error\"]\n>[\"kind\"];\n\n/** A check's status. */\nexport type ProviderCheckStatus =\n ProviderValidationDto[\"checks\"][number][\"status\"];\n\n/** How a readiness reads. */\ninterface ReadinessText {\n /** In plain words. */\n label: string;\n /** Its badge colour. */\n tone: BadgeTone;\n /** What it means. */\n hint: string;\n}\n\nconst READINESS: Readonly<Record<ProviderReadiness, ReadinessText>> = {\n ready: {\n label: \"Ready\",\n tone: \"success\",\n hint: \"Its config is validated and it can summon.\",\n },\n pending: {\n label: \"Pending\",\n tone: \"warning\",\n hint: \"Its config is still being validated. It can't summon yet, and what it declares appears once it's ready.\",\n },\n failed: {\n label: \"Failed\",\n tone: \"danger\",\n hint: \"Its config was rejected, or building it threw. It can't summon until it's reconfigured; Test connection says why, where the provider has one.\",\n },\n};\n\n/** A readiness in plain words, with its tone and meaning; a raw string for one this build does not know. */\nexport function providerReadiness(readiness: ProviderReadiness): ReadinessText {\n return typeof readiness === \"string\" && Object.hasOwn(READINESS, readiness)\n ? READINESS[readiness]\n : {\n label: displayText(readiness),\n tone: \"neutral\",\n hint: \"A readiness this version of the UI does not know.\",\n };\n}\n\n/**\n * Whose problem a failed preflight is: the config's or credentials' to fix,\n * the platform's for now, or the provider's own bug.\n */\nconst KIND: Readonly<Record<ProviderErrorKind, string>> = {\n misconfigured: \"Configuration problem: fix the provider's config.\",\n auth: \"Credentials problem: the platform refused them.\",\n transient: \"Platform trouble, for now: try again.\",\n throttled: \"The platform is throttling calls: try again later.\",\n quota: \"The platform's quota is used up.\",\n conflict: \"A bug in the provider: it gave conflicting answers.\",\n};\n\nconst CHECK: Readonly<\n Record<ProviderCheckStatus, { label: string; tone: BadgeTone }>\n> = {\n pass: { label: \"Pass\", tone: \"success\" },\n warn: { label: \"Warn\", tone: \"warning\" },\n fail: { label: \"Fail\", tone: \"danger\" },\n};\n\n/** Whose problem a failure is, in a sentence; a raw string for a kind this build does not know. */\nexport function providerErrorKind(kind: ProviderErrorKind): string {\n return typeof kind === \"string\" && Object.hasOwn(KIND, kind)\n ? KIND[kind]\n : `The preflight failed (${displayText(kind)}).`;\n}\n\n/** A check's status as a label and tone; a raw string for one this build does not know. */\nexport function providerCheck(status: ProviderCheckStatus): {\n label: string;\n tone: BadgeTone;\n} {\n return typeof status === \"string\" && Object.hasOwn(CHECK, status)\n ? CHECK[status]\n : { label: displayText(status), tone: \"neutral\" };\n}\n\n/**\n * What \"Test connection\" found, in one line: passed, passed with warnings,\n * a failed check, a timeout, an invalid config, or a classified failure.\n */\nexport function validationSummary(result: ProviderValidationDto): string {\n if (result.error !== undefined) {\n const { kind, detail } = result.error;\n if (detail === \"timeout\") {\n return \"No answer: the preflight timed out.\";\n }\n if (detail.startsWith(\"invalid config: \")) {\n return `Configuration problem: invalid ${detail.slice(\"invalid config: \".length)}.`;\n }\n return `${providerErrorKind(kind)} (${displayText(detail)})`;\n }\n const failed = result.checks.filter((check) => check.status === \"fail\");\n const warned = result.checks.filter((check) => check.status === \"warn\");\n if (failed.length > 0) {\n return `Connection failed: ${failed.length} of ${result.checks.length} checks failed.`;\n }\n if (warned.length > 0) {\n return `Connected, with ${warned.length} warning${warned.length === 1 ? \"\" : \"s\"}.`;\n }\n return result.checks.length === 0\n ? \"Connected.\"\n : `Connected: all ${result.checks.length} checks passed.`;\n}\n"
6
+ ],
7
+ "mappings": "kCAmCA,IAAM,EAAgE,CACpE,MAAO,CACL,MAAO,QACP,KAAM,UACN,KAAM,4CACR,EACA,QAAS,CACP,MAAO,UACP,KAAM,UACN,KAAM,yGACR,EACA,OAAQ,CACN,MAAO,SACP,KAAM,SACN,KAAM,+IACR,CACF,EAGO,SAAS,EAAiB,CAAC,EAA6C,CAC7E,OAAO,OAAO,IAAc,UAAY,OAAO,OAAO,EAAW,CAAS,EACtE,EAAU,GACV,CACE,MAAO,EAAY,CAAS,EAC5B,KAAM,UACN,KAAM,mDACR,EAON,IAAM,EAAoD,CACxD,cAAe,oDACf,KAAM,kDACN,UAAW,wCACX,UAAW,qDACX,MAAO,mCACP,SAAU,qDACZ,EAEM,EAEF,CACF,KAAM,CAAE,MAAO,OAAQ,KAAM,SAAU,EACvC,KAAM,CAAE,MAAO,OAAQ,KAAM,SAAU,EACvC,KAAM,CAAE,MAAO,OAAQ,KAAM,QAAS,CACxC,EAGO,SAAS,CAAiB,CAAC,EAAiC,CACjE,OAAO,OAAO,IAAS,UAAY,OAAO,OAAO,EAAM,CAAI,EACvD,EAAK,GACL,yBAAyB,EAAY,CAAI,MAIxC,SAAS,EAAa,CAAC,EAG5B,CACA,OAAO,OAAO,IAAW,UAAY,OAAO,OAAO,EAAO,CAAM,EAC5D,EAAM,GACN,CAAE,MAAO,EAAY,CAAM,EAAG,KAAM,SAAU,EAO7C,SAAS,EAAiB,CAAC,EAAuC,CACvE,GAAI,EAAO,QAAU,OAAW,CAC9B,IAAQ,OAAM,UAAW,EAAO,MAChC,GAAI,IAAW,UACb,MAAO,sCAET,GAAI,EAAO,WAAW,kBAAkB,EACtC,MAAO,kCAAkC,EAAO,MAAM,EAAyB,KAEjF,MAAO,GAAG,EAAkB,CAAI,MAAM,EAAY,CAAM,KAE1D,IAAM,EAAS,EAAO,OAAO,OAAO,CAAC,IAAU,EAAM,SAAW,MAAM,EAChE,EAAS,EAAO,OAAO,OAAO,CAAC,IAAU,EAAM,SAAW,MAAM,EACtE,GAAI,EAAO,OAAS,EAClB,MAAO,sBAAsB,EAAO,aAAa,EAAO,OAAO,wBAEjE,GAAI,EAAO,OAAS,EAClB,MAAO,mBAAmB,EAAO,iBAAiB,EAAO,SAAW,EAAI,GAAK,OAE/E,OAAO,EAAO,OAAO,SAAW,EAC5B,aACA,kBAAkB,EAAO,OAAO",
8
+ "debugId": "2E819A42228AE52E64756E2164756E21",
9
+ "names": []
10
+ }