@jxsuite/studio 4.0.0 → 5.0.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 (613) hide show
  1. package/README.md +1 -1
  2. package/data/elements-meta.json +5 -15
  3. package/data/html-meta.json +51 -6
  4. package/dist/chunks/{2020-xp8vnwma.js → 2020-g79n01v9.js} +14 -14
  5. package/dist/chunks/action-group-sp6tna8v.js +118 -0
  6. package/dist/chunks/adapter-nj7tnjfn.js +13 -0
  7. package/dist/chunks/cf-account-picker-fyf63pmy.js +495 -0
  8. package/dist/chunks/cf-settings-71bv5zn9.js +20 -0
  9. package/dist/chunks/color-area-v17df7b8.js +154 -0
  10. package/dist/chunks/color-field-anwybnkn.js +208 -0
  11. package/dist/chunks/color-slider-44ez96fc.js +79 -0
  12. package/dist/chunks/color-xgg3kfw7.js +35 -0
  13. package/dist/chunks/combobox-5e7jev23.js +236 -0
  14. package/dist/chunks/components-2w1f35qs.js +18 -0
  15. package/dist/chunks/content-source-3wqeas45.js +46 -0
  16. package/dist/chunks/convert-to-repeater-d0cgnb6d.js +639 -0
  17. package/dist/chunks/dialog-s890b918.js +85 -0
  18. package/dist/chunks/editor-3qhbg51x.js +35 -0
  19. package/dist/chunks/entry-commands-d6g50j7s.js +42 -0
  20. package/dist/chunks/extension-sections-fy7q4fe9.js +651 -0
  21. package/dist/chunks/file-ops-3btj6st0.js +47 -0
  22. package/dist/chunks/files-ef8fgs3w.js +72 -0
  23. package/dist/chunks/format-host-3c33nwr8.js +40 -0
  24. package/dist/chunks/fs-events-13tj6sex.js +18 -0
  25. package/dist/chunks/git-panel-4wp2rn9b.js +49 -0
  26. package/dist/chunks/icons-yy10wk9r.js +402 -0
  27. package/dist/chunks/iframe-entry-15g3n6xv.js +114 -0
  28. package/dist/chunks/iframe-entry-b27vq81n.js +203 -0
  29. package/dist/chunks/iframe-entry-nbyxee1y.js +154 -0
  30. package/dist/chunks/iframe-host-jgesd924.js +115 -0
  31. package/dist/chunks/{index-nj44jpzj.js → index-mdmyx6s2.js} +11 -11
  32. package/dist/chunks/index-n4j7qxyr.js +109 -0
  33. package/dist/chunks/{javascript-q8kpmfah.js → javascript-xvrfrpkb.js} +8 -9
  34. package/dist/chunks/{jsonMode-dkr040ga.js → jsonMode-tyx2kj6p.js} +526 -527
  35. package/dist/chunks/jx-validate-j0wxk72w.js +15 -0
  36. package/dist/chunks/layers-1nq5evsh.js +29 -0
  37. package/dist/chunks/layers-panel-ar2gh90g.js +40 -0
  38. package/dist/chunks/listbox-6v2ac08j.js +44 -0
  39. package/dist/chunks/lit-html-m244w9nh.js +17 -0
  40. package/dist/chunks/media-picker-2qbetq73.js +33 -0
  41. package/dist/chunks/menu-q99sy9rf.js +285 -0
  42. package/dist/chunks/menu-rf7n72mf.js +14 -0
  43. package/dist/chunks/{monaco-binding-rj6xpx9y.js → monaco-binding-sw6en4dw.js} +12 -15
  44. package/dist/chunks/monaco-buffer-bhy3hb6m.js +24 -0
  45. package/dist/chunks/{monaco-setup-rws7k4br.js → monaco-setup-8r62fj6y.js} +27 -37
  46. package/dist/chunks/notify-628t0anh.js +21 -0
  47. package/dist/chunks/number-field-5cndyft8.js +72 -0
  48. package/dist/chunks/parse-0zx14y15.js +10 -0
  49. package/dist/chunks/platform-ts9cg1a4.js +15 -0
  50. package/dist/chunks/popover-47z3ytva.js +25 -0
  51. package/dist/chunks/publish-panel-98f7sr3g.js +27 -0
  52. package/dist/chunks/quick-search-srzz83k2.js +45 -0
  53. package/dist/chunks/references-n553f0e1.js +26 -0
  54. package/dist/chunks/right-panel-rrgx2dn3.js +45 -0
  55. package/dist/chunks/section-registry-5pq32t0q.js +25 -0
  56. package/dist/chunks/select-2r16ez41.js +49 -0
  57. package/dist/chunks/split-g7nm1rgb.js +191 -0
  58. package/dist/chunks/studio-0hqbpbd0.js +62 -0
  59. package/dist/chunks/studio-18avnhjp.js +2430 -0
  60. package/dist/chunks/{studio-kryvsw6j.js → studio-1k325pwf.js} +48 -48
  61. package/dist/chunks/{studio-hbtp0eh1.js → studio-25hkdrkw.js} +356 -85
  62. package/dist/chunks/studio-26d7myd1.js +258 -0
  63. package/dist/chunks/{studio-p8j86wag.js → studio-38emantv.js} +22 -5
  64. package/dist/chunks/studio-3gxv60tn.js +422 -0
  65. package/dist/chunks/{studio-8swrjbny.js → studio-3hxkd92t.js} +275 -163
  66. package/dist/chunks/studio-4m0haseg.js +185 -0
  67. package/dist/chunks/{studio-ynxwkrzd.js → studio-4wbb9ct0.js} +1953 -1785
  68. package/dist/chunks/{studio-gv8vvshc.js → studio-5523bpzt.js} +11 -11
  69. package/dist/chunks/{studio-5q69gfag.js → studio-57mf66w2.js} +1753 -2484
  70. package/dist/chunks/studio-5jy81t3s.js +17463 -0
  71. package/dist/chunks/studio-5rt7sqa0.js +1168 -0
  72. package/dist/chunks/studio-5te5tqng.js +81 -0
  73. package/dist/chunks/{studio-p4ngc046.js → studio-6ewqv390.js} +9 -9
  74. package/dist/chunks/{studio-9ab8gqsm.js → studio-6nzaktvy.js} +7 -7
  75. package/dist/chunks/studio-6xa21ej9.js +28 -0
  76. package/dist/chunks/{studio-5ehhackm.js → studio-727xh0e3.js} +19 -19
  77. package/dist/chunks/{studio-eenfkt4e.js → studio-79y5sz51.js} +52 -38
  78. package/dist/chunks/{studio-4q0wznzf.js → studio-7e11jpa9.js} +461 -145
  79. package/dist/chunks/{studio-q7v10cg2.js → studio-7r42c6ca.js} +17 -7
  80. package/dist/chunks/studio-7xptrg0j.js +954 -0
  81. package/dist/chunks/{studio-cft9r4r7.js → studio-81390n6f.js} +22 -22
  82. package/dist/chunks/{studio-q43a5y9h.js → studio-8jn5yhyn.js} +16 -16
  83. package/dist/chunks/studio-8qtrpzr3.js +839 -0
  84. package/dist/chunks/{studio-dg7zyt5x.js → studio-98b3z07n.js} +1 -1
  85. package/dist/chunks/studio-9xxz1q69.js +1356 -0
  86. package/dist/chunks/studio-akbww0j5.js +13615 -0
  87. package/dist/chunks/studio-arfpe389.js +195 -0
  88. package/dist/chunks/{studio-2zkz8evn.js → studio-az3zd49t.js} +473 -281
  89. package/dist/chunks/studio-cpvb2ed1.js +1171 -0
  90. package/dist/chunks/{studio-9r6j5ev1.js → studio-d0300636.js} +5078 -19
  91. package/dist/chunks/{studio-bgxt93ga.js → studio-d055c37e.js} +13 -13
  92. package/dist/chunks/studio-d1ja2x9r.js +362 -0
  93. package/dist/chunks/{studio-b9b6t1dg.js → studio-e1f24eff.js} +5664 -5666
  94. package/dist/chunks/{studio-4pqqxbrt.js → studio-em9nw8eh.js} +301 -112
  95. package/dist/chunks/studio-erdatzvp.js +1190 -0
  96. package/dist/chunks/{studio-g1wdche0.js → studio-esrxgwh6.js} +80 -80
  97. package/dist/chunks/studio-fabxk6r9.js +2811 -0
  98. package/dist/chunks/{studio-3n4ndrzh.js → studio-h4nvnjvz.js} +303 -303
  99. package/dist/chunks/studio-hhvs4sdg.js +195 -0
  100. package/dist/chunks/{studio-68n67094.js → studio-kcgff4r0.js} +15 -18
  101. package/dist/chunks/{studio-685s0ytq.js → studio-nqgawfks.js} +572 -572
  102. package/dist/chunks/{studio-xrapxwwc.js → studio-p1dw8wfw.js} +55 -29
  103. package/dist/chunks/studio-pm6hgy7r.js +4763 -0
  104. package/dist/chunks/studio-q0a3yk4n.js +33 -0
  105. package/dist/chunks/{studio-wcy8trfx.js → studio-q3x06vmj.js} +23 -22
  106. package/dist/chunks/studio-qahxvnan.js +111 -0
  107. package/dist/chunks/{studio-53n8bp04.js → studio-r6xmmtfh.js} +1 -1
  108. package/dist/chunks/{studio-kjjsjak4.js → studio-rkstz940.js} +3661 -6136
  109. package/dist/chunks/{studio-tvgyw9xw.js → studio-rnyf3f8e.js} +83 -250
  110. package/dist/chunks/studio-rpyah2ew.js +2805 -0
  111. package/dist/chunks/studio-rs76k67r.js +12 -0
  112. package/dist/chunks/{studio-yxrkyv8a.js → studio-s6z853aq.js} +12108 -11766
  113. package/dist/chunks/{studio-sf7zjgv1.js → studio-sgdc5pfc.js} +8 -8
  114. package/dist/chunks/studio-tb3ev01j.js +763 -0
  115. package/dist/chunks/{studio-t5wqwzdh.js → studio-tjjk7jvk.js} +1 -1
  116. package/dist/chunks/studio-vhv5tgxm.js +51 -0
  117. package/dist/chunks/{studio-htsf0w6m.js → studio-vz68yn9e.js} +31 -154
  118. package/dist/chunks/studio-wqpngpsk.js +174 -0
  119. package/dist/chunks/{studio-eesa1myv.js → studio-x3rty6tr.js} +58 -58
  120. package/dist/chunks/studio-xsykpvsh.js +8448 -0
  121. package/dist/chunks/{studio-92ab2jqe.js → studio-y9zedyjn.js} +14 -14
  122. package/dist/chunks/studio-yxa81f45.js +12 -0
  123. package/dist/chunks/swatch-group-t0n6h2rn.js +139 -0
  124. package/dist/chunks/tabs-wbp1cdws.js +156 -0
  125. package/dist/chunks/textfield-abk6qyee.js +73 -0
  126. package/dist/chunks/toast-780pvfbv.js +27 -0
  127. package/dist/chunks/toast-host-3sqv46sn.js +116 -0
  128. package/dist/chunks/toolbar-xbh5bhtr.js +194 -0
  129. package/dist/chunks/tooltip-eptb614w.js +369 -0
  130. package/dist/chunks/tree-a73p0pqm.js +367 -0
  131. package/dist/chunks/{tsMode-76kr53q0.js → tsMode-jy4m86rv.js} +83 -85
  132. package/dist/chunks/workspace-wrew8zk4.js +69 -0
  133. package/dist/chunks/{ws-client-6shc5rze.js → ws-client-ny4zc51r.js} +20 -22
  134. package/dist/iframe-entry.js +1812 -698
  135. package/dist/manifest.json +7 -0
  136. package/dist/studio.js +52900 -36573
  137. package/dist/workers/editor.worker.js +1040 -1085
  138. package/dist/workers/json.worker.js +1946 -1991
  139. package/dist/workers/ts.worker.js +4960 -5005
  140. package/favicon.ico +0 -0
  141. package/index.html +2 -0
  142. package/package.json +22 -55
  143. package/src/about/about-modal.ts +73 -123
  144. package/src/browse/library-commands.ts +20 -49
  145. package/src/browse/library-layouts.ts +87 -218
  146. package/src/browse/library-pane.ts +406 -438
  147. package/src/canvas/canvas-helpers.ts +0 -49
  148. package/src/canvas/canvas-live-render.ts +25 -2
  149. package/src/canvas/canvas-render.ts +666 -231
  150. package/src/canvas/canvas-surface.ts +0 -1
  151. package/src/canvas/canvas-utils.ts +310 -117
  152. package/src/canvas/dialog-path.ts +76 -0
  153. package/src/canvas/dialog-state.ts +67 -0
  154. package/src/canvas/diff-marks.ts +252 -0
  155. package/src/canvas/diff-toolbar.ts +349 -0
  156. package/src/canvas/diff-view.ts +123 -0
  157. package/src/canvas/edit-width-drag.ts +187 -0
  158. package/src/canvas/edit-width.ts +150 -0
  159. package/src/canvas/iframe-entry.ts +125 -8
  160. package/src/canvas/iframe-host.ts +271 -15
  161. package/src/canvas/iframe-interaction.ts +133 -13
  162. package/src/canvas/iframe-patch.ts +7 -1
  163. package/src/canvas/iframe-position.ts +5 -6
  164. package/src/canvas/iframe-protocol.ts +106 -5
  165. package/src/canvas/iframe-render.ts +373 -5
  166. package/src/canvas/iframe-slash.ts +2 -2
  167. package/src/canvas/iframe-subtree.ts +5 -8
  168. package/src/canvas/path-mapping.ts +25 -3
  169. package/src/canvas/popover-path.ts +106 -0
  170. package/src/canvas/popover-state.ts +155 -0
  171. package/src/canvas/surface-registry.ts +21 -10
  172. package/src/collab/presence-chips.ts +51 -73
  173. package/src/commands/app-commands.ts +10 -0
  174. package/src/commands/budget.ts +12 -0
  175. package/src/commands/command-args.ts +369 -6
  176. package/src/commands/defaults.ts +44 -14
  177. package/src/commands/live-context.ts +11 -5
  178. package/src/commands/reference.ts +12 -2
  179. package/src/commands/registry.ts +165 -8
  180. package/src/content/entry-commands.ts +16 -23
  181. package/src/content/entry-editor.ts +144 -101
  182. package/src/editor/canvas-slash-bridge.ts +2 -2
  183. package/src/editor/context-menu.ts +49 -200
  184. package/src/editor/convert-to-component.ts +42 -82
  185. package/src/editor/convert-to-repeater.ts +132 -173
  186. package/src/editor/inline-edit.ts +11 -0
  187. package/src/editor/shortcuts.ts +65 -26
  188. package/src/editor/slash-menu.ts +150 -157
  189. package/src/files/file-ops.ts +117 -11
  190. package/src/files/files.ts +949 -664
  191. package/src/files/json-layout.ts +474 -0
  192. package/src/files/media-paths.ts +13 -42
  193. package/src/files/media-usage.ts +41 -131
  194. package/src/files/serialize-document.ts +8 -1
  195. package/src/format/convert-file.ts +16 -10
  196. package/src/format/format-host.ts +50 -1
  197. package/src/github/github-auth.ts +71 -29
  198. package/src/github/github-publish.ts +57 -65
  199. package/src/grid/cell-editors.ts +46 -4
  200. package/src/grid/cell-popovers.ts +65 -62
  201. package/src/grid/grid-open.ts +86 -64
  202. package/src/grid/grid-panel.ts +390 -469
  203. package/src/grid/redirects-grid.ts +40 -44
  204. package/src/hosting/document.ts +2 -0
  205. package/src/hosting/layout.ts +10 -0
  206. package/src/i18n/i18n-commands.ts +127 -62
  207. package/src/media/media-pane.ts +83 -133
  208. package/src/new-project/add-repo-modal.ts +125 -176
  209. package/src/new-project/import-tab.ts +201 -250
  210. package/src/new-project/location-fields.ts +101 -165
  211. package/src/new-project/new-project-modal.ts +376 -367
  212. package/src/packages/jxsuite-update.ts +76 -18
  213. package/src/panels/activity-panel.ts +137 -104
  214. package/src/panels/ai-chat/chat-markdown.ts +15 -13
  215. package/src/panels/ai-chat/chat-view.ts +307 -472
  216. package/src/panels/ai-chat/composer.ts +175 -153
  217. package/src/panels/ai-chat/sessions-view.ts +31 -62
  218. package/src/panels/ai-panel.ts +210 -185
  219. package/src/panels/block-action-bar.ts +437 -643
  220. package/src/panels/bottom-dock.ts +112 -47
  221. package/src/panels/chat-panel.ts +19 -14
  222. package/src/panels/data-explorer.ts +141 -102
  223. package/src/panels/data-grid.ts +183 -150
  224. package/src/panels/dnd.ts +75 -20
  225. package/src/panels/editors.ts +26 -19
  226. package/src/panels/elements-panel.ts +243 -186
  227. package/src/panels/empty-state.ts +26 -42
  228. package/src/panels/events-panel.ts +950 -729
  229. package/src/panels/formula-workspace.ts +434 -207
  230. package/src/panels/frontmatter-fields.ts +185 -153
  231. package/src/panels/frontmatter-panel.ts +411 -187
  232. package/src/panels/git-diff-open.ts +148 -0
  233. package/src/panels/git-panel.ts +679 -605
  234. package/src/panels/head-panel.ts +617 -435
  235. package/src/panels/i18n-panel.ts +153 -133
  236. package/src/panels/imports-panel.ts +388 -414
  237. package/src/panels/jump-bar.ts +174 -147
  238. package/src/panels/layers-panel.ts +785 -671
  239. package/src/panels/left-panel.ts +166 -94
  240. package/src/panels/navigator-panels.ts +1 -1
  241. package/src/panels/pane-context.ts +529 -677
  242. package/src/panels/pane-grid.ts +265 -241
  243. package/src/panels/panel-registry.ts +15 -4
  244. package/src/panels/problems-panel.ts +177 -99
  245. package/src/panels/properties-panel.ts +1525 -966
  246. package/src/panels/provenance.ts +31 -113
  247. package/src/panels/quick-search.ts +217 -172
  248. package/src/panels/right-panel.ts +135 -169
  249. package/src/panels/seo-modal.ts +346 -167
  250. package/src/panels/settings-menu.ts +109 -646
  251. package/src/panels/settings-pane.ts +102 -86
  252. package/src/panels/signals-panel.ts +1318 -1172
  253. package/src/panels/statement-editor.ts +556 -428
  254. package/src/panels/style-panel.ts +1367 -630
  255. package/src/panels/style-utils.ts +36 -32
  256. package/src/panels/stylebook-doc.ts +30 -73
  257. package/src/panels/stylebook-layers-panel.ts +202 -109
  258. package/src/panels/stylebook-panel.ts +124 -88
  259. package/src/panels/tab-strip.ts +385 -287
  260. package/src/platforms/cloud.ts +347 -86
  261. package/src/platforms/devserver.ts +13 -0
  262. package/src/publish/deploy-checklist.ts +124 -78
  263. package/src/publish/publish-commands.ts +4 -12
  264. package/src/publish/publish-panel.ts +165 -299
  265. package/src/services/a11y-report.ts +100 -43
  266. package/src/services/ai-command-tools.ts +468 -0
  267. package/src/services/ai-import-tools.ts +50 -12
  268. package/src/services/ai-models.ts +108 -1
  269. package/src/services/ai-session-store.ts +6 -0
  270. package/src/services/ai-system-prompt.ts +110 -18
  271. package/src/services/ai-tools.ts +28 -143
  272. package/src/services/ai-write-report.ts +174 -0
  273. package/src/services/context-manager.ts +12 -1
  274. package/src/services/document-assistant.ts +50 -2
  275. package/src/services/idle.ts +16 -14
  276. package/src/services/live-surfaces.ts +237 -0
  277. package/src/services/model-uri.ts +75 -0
  278. package/src/services/notify.ts +63 -6
  279. package/src/services/popover-report.ts +325 -0
  280. package/src/services/surface-registry.ts +56 -0
  281. package/src/services/tool-executor.ts +17 -0
  282. package/src/settings/contexts-section.ts +301 -299
  283. package/src/settings/contributed-section.ts +361 -222
  284. package/src/settings/css-vars-editor.ts +320 -325
  285. package/src/settings/defs-editor.ts +572 -535
  286. package/src/settings/dependencies-editor.ts +79 -107
  287. package/src/settings/extension-commands.ts +379 -0
  288. package/src/settings/extension-rows.ts +113 -0
  289. package/src/settings/extensions-section.ts +287 -0
  290. package/src/settings/general-settings.ts +130 -181
  291. package/src/settings/head-editor.ts +10 -305
  292. package/src/settings/locales-section.ts +146 -196
  293. package/src/settings/preferences-accounts.ts +193 -12
  294. package/src/settings/preferences-dialog.ts +384 -307
  295. package/src/settings/project-sections.ts +108 -181
  296. package/src/settings/schema-field-ui.ts +11 -399
  297. package/src/settings/section-registry.ts +8 -1
  298. package/src/settings/settings-document.ts +31 -29
  299. package/src/shell/tree.ts +42 -87
  300. package/src/shell.ts +48 -36
  301. package/src/studio.ts +90 -67
  302. package/src/style/token-ref.ts +0 -39
  303. package/src/surfaces/about.json +263 -0
  304. package/src/surfaces/about.ts +163 -0
  305. package/src/surfaces/add-repo.json +486 -0
  306. package/src/surfaces/add-repo.ts +236 -0
  307. package/src/surfaces/ai-chat.json +2185 -0
  308. package/src/surfaces/ai-chat.ts +549 -0
  309. package/src/surfaces/ai-credentials-form.json +332 -0
  310. package/src/surfaces/ai-credentials-form.ts +151 -0
  311. package/src/surfaces/ai-managed-connect.json +108 -0
  312. package/src/surfaces/ai-managed-connect.ts +123 -0
  313. package/src/surfaces/ai-model-picker.json +114 -0
  314. package/src/surfaces/ai-model-picker.ts +139 -0
  315. package/src/surfaces/block-action-bar.json +640 -0
  316. package/src/surfaces/block-action-bar.ts +368 -0
  317. package/src/surfaces/bottom-dock.json +154 -0
  318. package/src/surfaces/bottom-dock.ts +125 -0
  319. package/src/surfaces/canvas-stage.json +444 -0
  320. package/src/surfaces/canvas-stage.ts +253 -0
  321. package/src/surfaces/cf-account-picker.json +300 -0
  322. package/src/surfaces/cf-account-picker.ts +214 -0
  323. package/src/surfaces/commandbar.json +984 -0
  324. package/src/{panels/toolbar.ts → surfaces/commandbar.ts} +414 -389
  325. package/src/surfaces/convert-repeater.json +309 -0
  326. package/src/surfaces/convert-repeater.ts +276 -0
  327. package/src/surfaces/data-actions.json +157 -0
  328. package/src/surfaces/data-actions.ts +115 -0
  329. package/src/surfaces/dialog.json +289 -0
  330. package/src/surfaces/dialog.ts +343 -0
  331. package/src/surfaces/diff-toolbar.json +266 -0
  332. package/src/surfaces/diff-toolbar.ts +139 -0
  333. package/src/surfaces/doc-header.json +739 -0
  334. package/src/surfaces/doc-header.ts +223 -0
  335. package/src/surfaces/empty-state.json +152 -0
  336. package/src/surfaces/empty-state.ts +173 -0
  337. package/src/surfaces/entry-editor.json +281 -0
  338. package/src/surfaces/entry-editor.ts +191 -0
  339. package/src/surfaces/expression-editor.json +977 -0
  340. package/src/surfaces/expression-editor.ts +266 -0
  341. package/src/surfaces/files-panel.json +592 -0
  342. package/src/surfaces/files-panel.ts +301 -0
  343. package/src/surfaces/formula-palette.json +364 -0
  344. package/src/surfaces/formula-palette.ts +340 -0
  345. package/src/surfaces/git-panel.json +1822 -0
  346. package/src/surfaces/git-panel.ts +272 -0
  347. package/src/surfaces/github-auth.json +112 -0
  348. package/src/surfaces/github-auth.ts +139 -0
  349. package/src/surfaces/github-publish.json +206 -0
  350. package/src/surfaces/github-publish.ts +169 -0
  351. package/src/surfaces/grid-cell.json +218 -0
  352. package/src/surfaces/grid-cell.ts +120 -0
  353. package/src/surfaces/grid-open.json +147 -0
  354. package/src/surfaces/grid-open.ts +87 -0
  355. package/src/surfaces/grid-panel.json +706 -0
  356. package/src/surfaces/grid-panel.ts +206 -0
  357. package/src/surfaces/grid-replace.json +179 -0
  358. package/src/surfaces/grid-replace.ts +89 -0
  359. package/src/surfaces/grid-views.json +446 -0
  360. package/src/surfaces/grid-views.ts +172 -0
  361. package/src/surfaces/inspector-dock.json +187 -0
  362. package/src/surfaces/inspector-dock.ts +161 -0
  363. package/src/surfaces/jump-bar.json +243 -0
  364. package/src/surfaces/jump-bar.ts +129 -0
  365. package/src/surfaces/jxsuite-update.json +146 -0
  366. package/src/surfaces/jxsuite-update.ts +149 -0
  367. package/src/surfaces/library-pane.json +1509 -0
  368. package/src/surfaces/library-pane.ts +363 -0
  369. package/src/surfaces/logic-panel.json +1949 -0
  370. package/src/surfaces/logic-panel.ts +369 -0
  371. package/src/surfaces/logic-workspace.json +685 -0
  372. package/src/surfaces/logic-workspace.ts +238 -0
  373. package/src/surfaces/media-browser.json +303 -0
  374. package/src/surfaces/media-browser.ts +145 -0
  375. package/src/surfaces/media-field.json +163 -0
  376. package/src/surfaces/media-field.ts +116 -0
  377. package/src/surfaces/media-pane.json +513 -0
  378. package/src/surfaces/media-pane.ts +197 -0
  379. package/src/surfaces/menu.json +232 -0
  380. package/src/surfaces/menu.ts +375 -0
  381. package/src/surfaces/navigator-dock.json +113 -0
  382. package/src/surfaces/navigator-dock.ts +130 -0
  383. package/src/surfaces/new-project.json +1654 -0
  384. package/src/surfaces/new-project.ts +411 -0
  385. package/src/surfaces/palette.json +535 -0
  386. package/src/surfaces/pane-context.json +1497 -0
  387. package/src/surfaces/pane-context.ts +513 -0
  388. package/src/surfaces/pane-grid.json +188 -0
  389. package/src/surfaces/pane-grid.ts +250 -0
  390. package/src/surfaces/panel-activity.json +563 -0
  391. package/src/surfaces/panel-activity.ts +187 -0
  392. package/src/surfaces/panel-data.json +141 -0
  393. package/src/surfaces/panel-data.ts +156 -0
  394. package/src/surfaces/panel-deploy-checklist.json +283 -0
  395. package/src/surfaces/panel-deploy-checklist.ts +175 -0
  396. package/src/surfaces/panel-elements.json +367 -0
  397. package/src/surfaces/panel-elements.ts +175 -0
  398. package/src/surfaces/panel-i18n.json +569 -0
  399. package/src/surfaces/panel-i18n.ts +212 -0
  400. package/src/surfaces/panel-imports.json +780 -0
  401. package/src/surfaces/panel-imports.ts +209 -0
  402. package/src/surfaces/panel-outline.json +734 -0
  403. package/src/surfaces/panel-outline.ts +326 -0
  404. package/src/surfaces/panel-page.json +1017 -0
  405. package/src/surfaces/panel-page.ts +240 -0
  406. package/src/surfaces/panel-problems.json +497 -0
  407. package/src/surfaces/panel-problems.ts +157 -0
  408. package/src/surfaces/panel-signals.json +1973 -0
  409. package/src/surfaces/panel-signals.ts +436 -0
  410. package/src/surfaces/panel-stylebook-layers.json +317 -0
  411. package/src/surfaces/panel-stylebook-layers.ts +155 -0
  412. package/src/surfaces/preferences.json +850 -0
  413. package/src/surfaces/preferences.ts +332 -0
  414. package/src/surfaces/progress-modal.json +110 -0
  415. package/src/surfaces/progress-modal.ts +150 -0
  416. package/src/surfaces/properties-panel.json +1578 -0
  417. package/src/surfaces/properties-panel.ts +337 -0
  418. package/src/surfaces/publish.json +945 -0
  419. package/src/surfaces/publish.ts +392 -0
  420. package/src/surfaces/push-plan.json +110 -0
  421. package/src/surfaces/push-plan.ts +87 -0
  422. package/src/surfaces/rail.json +255 -0
  423. package/src/surfaces/rail.ts +206 -0
  424. package/src/surfaces/reference-field.json +191 -0
  425. package/src/surfaces/reference-field.ts +168 -0
  426. package/src/surfaces/schema-builder.json +1011 -0
  427. package/src/surfaces/schema-builder.ts +181 -0
  428. package/src/surfaces/schema-form.json +1013 -0
  429. package/src/surfaces/schema-form.ts +287 -0
  430. package/src/surfaces/secret-field.json +60 -0
  431. package/src/surfaces/secret-field.ts +146 -0
  432. package/src/surfaces/seo.json +932 -0
  433. package/src/surfaces/seo.ts +334 -0
  434. package/src/surfaces/settings-contexts.json +538 -0
  435. package/src/surfaces/settings-contexts.ts +196 -0
  436. package/src/surfaces/settings-contributed.json +489 -0
  437. package/src/surfaces/settings-contributed.ts +199 -0
  438. package/src/surfaces/settings-css-vars.json +820 -0
  439. package/src/surfaces/settings-css-vars.ts +199 -0
  440. package/src/surfaces/settings-defs.json +1363 -0
  441. package/src/surfaces/settings-defs.ts +232 -0
  442. package/src/surfaces/settings-deploy.json +108 -0
  443. package/src/surfaces/settings-deploy.ts +135 -0
  444. package/src/surfaces/settings-extensions.json +486 -0
  445. package/src/surfaces/settings-extensions.ts +201 -0
  446. package/src/surfaces/settings-head.json +779 -0
  447. package/src/surfaces/settings-head.ts +397 -0
  448. package/src/surfaces/settings-locales.json +420 -0
  449. package/src/surfaces/settings-locales.ts +137 -0
  450. package/src/surfaces/settings-overview.json +423 -0
  451. package/src/surfaces/settings-overview.ts +218 -0
  452. package/src/surfaces/settings-packages.json +549 -0
  453. package/src/surfaces/settings-packages.ts +158 -0
  454. package/src/surfaces/settings-pane.json +147 -0
  455. package/src/surfaces/settings-pane.ts +150 -0
  456. package/src/surfaces/settings-rawjson.json +104 -0
  457. package/src/surfaces/settings-rawjson.ts +107 -0
  458. package/src/surfaces/shell.json +99 -0
  459. package/src/surfaces/shell.ts +30 -0
  460. package/src/surfaces/slash-menu.json +180 -0
  461. package/src/surfaces/slash-menu.ts +272 -0
  462. package/src/surfaces/statements.json +607 -0
  463. package/src/surfaces/statements.ts +238 -0
  464. package/src/surfaces/statusbar.json +94 -0
  465. package/src/{panels → surfaces}/statusbar.ts +163 -90
  466. package/src/surfaces/style-panel.json +1643 -0
  467. package/src/surfaces/style-panel.ts +338 -0
  468. package/src/surfaces/stylebook-chrome.json +122 -0
  469. package/src/surfaces/stylebook-chrome.ts +122 -0
  470. package/src/surfaces/tab-strip.json +448 -0
  471. package/src/surfaces/tab-strip.ts +200 -0
  472. package/src/surfaces/target-line.json +419 -0
  473. package/src/surfaces/target-line.ts +349 -0
  474. package/src/surfaces/toasts.json +189 -0
  475. package/src/surfaces/welcome.json +571 -0
  476. package/src/surfaces/welcome.ts +338 -0
  477. package/src/tabs/project-config.ts +71 -15
  478. package/src/tabs/tab.ts +52 -1
  479. package/src/types.ts +49 -3
  480. package/src/ui/ai-credentials-form.ts +104 -100
  481. package/src/ui/ai-managed-connect.ts +116 -49
  482. package/src/ui/ai-model-picker.ts +102 -47
  483. package/src/ui/cf-account-picker.ts +135 -0
  484. package/src/ui/color-selector.ts +80 -301
  485. package/src/ui/dynamic-slot.ts +43 -283
  486. package/src/ui/expression-editor.ts +797 -576
  487. package/src/ui/field-input.ts +8 -181
  488. package/src/ui/form-controls.ts +838 -366
  489. package/src/ui/formula-chips.ts +80 -85
  490. package/src/ui/kit.ts +33 -0
  491. package/src/ui/layers.ts +293 -593
  492. package/src/ui/media-picker.ts +203 -284
  493. package/src/ui/panel-resize.ts +251 -64
  494. package/src/ui/popover-surface.ts +153 -0
  495. package/src/ui/progress-modal.ts +22 -60
  496. package/src/ui/regions.ts +13 -7
  497. package/src/ui/schema-form.ts +906 -440
  498. package/src/ui/surface.ts +122 -0
  499. package/src/ui/unit-selector.ts +15 -131
  500. package/src/ui/value-source.ts +14 -0
  501. package/src/ui/virtual-window.ts +88 -9
  502. package/src/utils/canvas-media.ts +72 -0
  503. package/src/utils/edit-display.ts +7 -2
  504. package/src/utils/element-selectors.ts +69 -0
  505. package/src/utils/link-target.ts +2 -2
  506. package/src/utils/studio-utils.ts +0 -10
  507. package/src/view.ts +15 -0
  508. package/src/workspace/pane-derive.ts +36 -14
  509. package/src/workspace/workspace.ts +15 -6
  510. package/styles/canvas.css +72 -467
  511. package/styles/forced-colors.css +48 -82
  512. package/styles/forced-colors.json +41 -0
  513. package/styles/inspector.css +2 -1301
  514. package/styles/overlays.css +96 -2823
  515. package/styles/panels.css +6 -1423
  516. package/styles/shell-frame.css +272 -0
  517. package/styles/shell-frame.json +227 -0
  518. package/styles/shell.css +0 -1532
  519. package/styles/tokens.css +65 -136
  520. package/styles/tokens.json +84 -0
  521. package/dist/chunks/Overlay.dev-723bv0df.js +0 -23
  522. package/dist/chunks/adapter-jkcyhgtr.js +0 -14
  523. package/dist/chunks/cf-settings-45fgyx8y.js +0 -21
  524. package/dist/chunks/components-zmx10t62.js +0 -21
  525. package/dist/chunks/content-source-t88vb2dr.js +0 -49
  526. package/dist/chunks/convert-to-repeater-dhw1nrz9.js +0 -268
  527. package/dist/chunks/editor-cptq5jp1.js +0 -37
  528. package/dist/chunks/entry-commands-6z6bhxg0.js +0 -46
  529. package/dist/chunks/extension-sections-3ydgjbdy.js +0 -311
  530. package/dist/chunks/file-ops-rskmhxyq.js +0 -48
  531. package/dist/chunks/files-0cratsr0.js +0 -92
  532. package/dist/chunks/flow-qbfgrpeh.js +0 -634
  533. package/dist/chunks/focus-trap.esm-ggawf1hy.js +0 -1024
  534. package/dist/chunks/focus-visible-6eg70z18.js +0 -167
  535. package/dist/chunks/format-host-tgcmfs4p.js +0 -43
  536. package/dist/chunks/fs-events-hrrg328g.js +0 -21
  537. package/dist/chunks/git-panel-0yywyk76.js +0 -58
  538. package/dist/chunks/index-zqxmqxmh.js +0 -109
  539. package/dist/chunks/jx-validate-8q2g05x1.js +0 -19
  540. package/dist/chunks/layers-panel-z3tqe5cd.js +0 -67
  541. package/dist/chunks/layers-q75tj2mf.js +0 -45
  542. package/dist/chunks/lit-html-j055mkh8.js +0 -22
  543. package/dist/chunks/monaco-buffer-dqw0xxpx.js +0 -25
  544. package/dist/chunks/notify-yjm79n4s.js +0 -30
  545. package/dist/chunks/parse-24d0gay3.js +0 -19
  546. package/dist/chunks/platform-ba1j1gbh.js +0 -16
  547. package/dist/chunks/publish-panel-54jvhskq.js +0 -28
  548. package/dist/chunks/quick-search-cgfmjwq5.js +0 -65
  549. package/dist/chunks/references-3qx8fkyp.js +0 -29
  550. package/dist/chunks/right-panel-cqp8bc4v.js +0 -46
  551. package/dist/chunks/section-registry-sx1ykvkw.js +0 -30
  552. package/dist/chunks/sp-overlay.dev-yztmtrs1.js +0 -18
  553. package/dist/chunks/sp-popover.dev-n2etmqdp.js +0 -9
  554. package/dist/chunks/sp-progress-circle.dev-hryhj0es.js +0 -15
  555. package/dist/chunks/sp-tooltip.dev-xcvpnqr0.js +0 -15
  556. package/dist/chunks/sp-tray.dev-tkbscm06.js +0 -199
  557. package/dist/chunks/studio-0a5qrh01.js +0 -3
  558. package/dist/chunks/studio-18j3bmcz.js +0 -14
  559. package/dist/chunks/studio-1hbqnt19.js +0 -1823
  560. package/dist/chunks/studio-4rzyrtjz.js +0 -426
  561. package/dist/chunks/studio-5rywrkxz.js +0 -1903
  562. package/dist/chunks/studio-7afd21nw.js +0 -67
  563. package/dist/chunks/studio-7nte2hj4.js +0 -613
  564. package/dist/chunks/studio-8jpzqk5s.js +0 -128
  565. package/dist/chunks/studio-8q517dfr.js +0 -24
  566. package/dist/chunks/studio-9c4k4vhv.js +0 -357
  567. package/dist/chunks/studio-9n4mrmnb.js +0 -184
  568. package/dist/chunks/studio-a0tswy0w.js +0 -58
  569. package/dist/chunks/studio-ahjfdy6e.js +0 -387
  570. package/dist/chunks/studio-ahnzd9rg.js +0 -23
  571. package/dist/chunks/studio-bw5dz6km.js +0 -608
  572. package/dist/chunks/studio-cb12yz9w.js +0 -15055
  573. package/dist/chunks/studio-d1ks410h.js +0 -175
  574. package/dist/chunks/studio-eqq1w638.js +0 -113
  575. package/dist/chunks/studio-ex8zyp98.js +0 -1813
  576. package/dist/chunks/studio-h4rxscfc.js +0 -10
  577. package/dist/chunks/studio-kyh9avvv.js +0 -28
  578. package/dist/chunks/studio-kyk2v92a.js +0 -659
  579. package/dist/chunks/studio-m3hwn7y1.js +0 -120
  580. package/dist/chunks/studio-mmv72a27.js +0 -4344
  581. package/dist/chunks/studio-n8b9wqwy.js +0 -291
  582. package/dist/chunks/studio-pdfjntbk.js +0 -6939
  583. package/dist/chunks/studio-qq6jym04.js +0 -53
  584. package/dist/chunks/studio-r1r7afxx.js +0 -1066
  585. package/dist/chunks/studio-rdx8jcxy.js +0 -83
  586. package/dist/chunks/studio-rn9ta2mz.js +0 -111
  587. package/dist/chunks/studio-t7qb9db8.js +0 -665
  588. package/dist/chunks/studio-tmc5emrw.js +0 -8
  589. package/dist/chunks/studio-txwkm6p9.js +0 -12
  590. package/dist/chunks/studio-v38hmvx1.js +0 -390
  591. package/dist/chunks/studio-vadzgkrz.js +0 -318
  592. package/dist/chunks/studio-wx5609xd.js +0 -341
  593. package/dist/chunks/studio-z6nw2ek2.js +0 -18
  594. package/dist/chunks/studio-zczps70q.js +0 -378
  595. package/dist/chunks/workspace-xpres40v.js +0 -89
  596. package/src/panels/activity-bar.ts +0 -251
  597. package/src/panels/panel-scheduler.ts +0 -219
  598. package/src/panels/style-inputs.ts +0 -237
  599. package/src/panels/target-line.ts +0 -274
  600. package/src/panels/welcome-screen.ts +0 -346
  601. package/src/ui/button-group.ts +0 -102
  602. package/src/ui/choice-field.ts +0 -72
  603. package/src/ui/field-row.ts +0 -249
  604. package/src/ui/formula-palette.ts +0 -213
  605. package/src/ui/icons.ts +0 -52
  606. package/src/ui/jx-theme.ts +0 -130
  607. package/src/ui/spectrum.ts +0 -340
  608. package/src/ui/value-selector.ts +0 -174
  609. package/src/ui/widgets.ts +0 -172
  610. /package/dist/chunks/{javascript-s56a8dpk.css → javascript-4abzjcy9.css} +0 -0
  611. /package/dist/chunks/{jsonMode-zr9sw0c7.css → jsonMode-vvmpmk34.css} +0 -0
  612. /package/dist/chunks/{monaco-setup-pav68602.css → monaco-setup-8vbyqnhr.css} +0 -0
  613. /package/dist/chunks/{tsMode-ef187txx.css → tsMode-hnxxb73h.css} +0 -0
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  __commonJS
3
- } from "./studio-a0tswy0w.js";
3
+ } from "./studio-5te5tqng.js";
4
4
 
5
5
  // ../../node_modules/ajv/dist/compile/codegen/code.js
6
6
  var require_code = __commonJS(function(exports) {
@@ -169,9 +169,9 @@ var require_scope = __commonJS(function(exports) {
169
169
  }
170
170
  }
171
171
  var UsedValueState;
172
- (function(UsedValueState2) {
173
- UsedValueState2[UsedValueState2["Started"] = 0] = "Started";
174
- UsedValueState2[UsedValueState2["Completed"] = 1] = "Completed";
172
+ (function(UsedValueState) {
173
+ UsedValueState[UsedValueState["Started"] = 0] = "Started";
174
+ UsedValueState[UsedValueState["Completed"] = 1] = "Completed";
175
175
  })(UsedValueState || (exports.UsedValueState = UsedValueState = {}));
176
176
  exports.varKinds = {
177
177
  const: new code_1.Name("const"),
@@ -1153,9 +1153,9 @@ var require_util = __commonJS(function(exports) {
1153
1153
  }
1154
1154
  exports.useFunc = useFunc;
1155
1155
  var Type;
1156
- (function(Type2) {
1157
- Type2[Type2["Num"] = 0] = "Num";
1158
- Type2[Type2["Str"] = 1] = "Str";
1156
+ (function(Type) {
1157
+ Type[Type["Num"] = 0] = "Num";
1158
+ Type[Type["Str"] = 1] = "Str";
1159
1159
  })(Type || (exports.Type = Type = {}));
1160
1160
  function getErrorPath(dataProp, dataPropType, jsPropertySyntax) {
1161
1161
  if (dataProp instanceof codegen_1.Name) {
@@ -1425,9 +1425,9 @@ var require_dataType = __commonJS(function(exports) {
1425
1425
  var codegen_1 = require_codegen();
1426
1426
  var util_1 = require_util();
1427
1427
  var DataType;
1428
- (function(DataType2) {
1429
- DataType2[DataType2["Correct"] = 0] = "Correct";
1430
- DataType2[DataType2["Wrong"] = 1] = "Wrong";
1428
+ (function(DataType) {
1429
+ DataType[DataType["Correct"] = 0] = "Correct";
1430
+ DataType[DataType["Wrong"] = 1] = "Wrong";
1431
1431
  })(DataType || (exports.DataType = DataType = {}));
1432
1432
  function getSchemaTypes(schema) {
1433
1433
  const types = getJSONTypes(schema.type);
@@ -1823,8 +1823,8 @@ var require_keyword = __commonJS(function(exports) {
1823
1823
  gen.assign(valid, (0, codegen_1._)`${_await}${(0, code_1.callValidateCode)(cxt, validateRef, passCxt, passSchema)}`, def.modifying);
1824
1824
  }
1825
1825
  function reportErrs(errors) {
1826
- var _a2;
1827
- gen.if((0, codegen_1.not)((_a2 = def.valid) !== null && _a2 !== undefined ? _a2 : valid), errors);
1826
+ var _a;
1827
+ gen.if((0, codegen_1.not)((_a = def.valid) !== null && _a !== undefined ? _a : valid), errors);
1828
1828
  }
1829
1829
  }
1830
1830
  exports.funcKeywordCode = funcKeywordCode;
@@ -3010,7 +3010,25 @@ var require_utils = __commonJS(function(exports, module) {
3010
3010
  var isIPv4 = RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u);
3011
3011
  var isHexPair = RegExp.prototype.test.bind(/^[\da-f]{2}$/iu);
3012
3012
  var isUnreserved = RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu);
3013
- var isPathCharacter = RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);
3013
+ var isPathCharacter = RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:@/]$/u);
3014
+ var isQueryFragmentCharacter = RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:@/?]$/u);
3015
+ var isUserinfoCharacter = RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:]$/u);
3016
+ var BYTE_HEX = new Array(256);
3017
+ {
3018
+ const HEX_DIGITS = "0123456789ABCDEF";
3019
+ for (let i = 0;i < 256; i++) {
3020
+ BYTE_HEX[i] = "%" + HEX_DIGITS[i >> 4] + HEX_DIGITS[i & 15];
3021
+ }
3022
+ }
3023
+ function percentEncodeNonAscii(cp) {
3024
+ if (cp < 2048) {
3025
+ return BYTE_HEX[192 | cp >> 6] + BYTE_HEX[128 | cp & 63];
3026
+ }
3027
+ if (cp < 65536) {
3028
+ return BYTE_HEX[224 | cp >> 12] + BYTE_HEX[128 | cp >> 6 & 63] + BYTE_HEX[128 | cp & 63];
3029
+ }
3030
+ return BYTE_HEX[240 | cp >> 18] + BYTE_HEX[128 | cp >> 12 & 63] + BYTE_HEX[128 | cp >> 6 & 63] + BYTE_HEX[128 | cp & 63];
3031
+ }
3014
3032
  function stringArrayToHexStripped(input) {
3015
3033
  let acc = "";
3016
3034
  let code = 0;
@@ -3035,91 +3053,122 @@ var require_utils = __commonJS(function(exports, module) {
3035
3053
  }
3036
3054
  return acc;
3037
3055
  }
3056
+ var isHextet = RegExp.prototype.test.bind(/^[\dA-Fa-f]{1,4}$/);
3057
+ var isIPvFuture = RegExp.prototype.test.bind(/^[vV][\dA-Fa-f]+\.[A-Za-z\d\-._~!$&'()*+,;=:]+$/);
3058
+ var isZoneCharacter = RegExp.prototype.test.bind(/^[A-Za-z\d\-._~]$/);
3038
3059
  var nonSimpleDomain = RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);
3039
- function consumeIsZone(buffer) {
3040
- buffer.length = 0;
3041
- return true;
3042
- }
3043
- function consumeHextets(buffer, address, output) {
3044
- if (buffer.length) {
3045
- const hex = stringArrayToHexStripped(buffer);
3046
- if (hex !== "") {
3047
- address.push(hex);
3048
- } else {
3049
- output.error = true;
3050
- return false;
3060
+ function isZoneIdentifier(zone) {
3061
+ if (zone.length === 0)
3062
+ return false;
3063
+ for (let i = 0;i < zone.length; i++) {
3064
+ if (isZoneCharacter(zone[i]))
3065
+ continue;
3066
+ if (zone[i] === "%" && i + 2 < zone.length && isHexPair(zone.slice(i + 1, i + 3))) {
3067
+ i += 2;
3068
+ continue;
3051
3069
  }
3052
- buffer.length = 0;
3070
+ return false;
3053
3071
  }
3054
3072
  return true;
3055
3073
  }
3056
- function getIPV6(input) {
3057
- let tokenCount = 0;
3058
- const output = { error: false, address: "", zone: "" };
3059
- const address = [];
3060
- const buffer = [];
3061
- let endipv6Encountered = false;
3062
- let endIpv6 = false;
3063
- let consume = consumeHextets;
3064
- for (let i = 0;i < input.length; i++) {
3065
- const cursor = input[i];
3066
- if (cursor === "[" || cursor === "]") {
3067
- continue;
3068
- }
3069
- if (cursor === ":") {
3070
- if (endipv6Encountered === true) {
3071
- endIpv6 = true;
3074
+ function compressIPv6ZeroRun(hextets) {
3075
+ let bestStart = -1;
3076
+ let bestLength = 0;
3077
+ let runStart = -1;
3078
+ let runLength = 0;
3079
+ for (let i = 0;i < hextets.length; i++) {
3080
+ if (hextets[i] === "0") {
3081
+ if (runStart === -1)
3082
+ runStart = i;
3083
+ runLength++;
3084
+ if (runLength > bestLength) {
3085
+ bestLength = runLength;
3086
+ bestStart = runStart;
3072
3087
  }
3073
- if (!consume(buffer, address, output)) {
3074
- break;
3075
- }
3076
- if (++tokenCount > 7) {
3077
- output.error = true;
3078
- break;
3079
- }
3080
- if (i > 0 && input[i - 1] === ":") {
3081
- endipv6Encountered = true;
3082
- }
3083
- address.push(":");
3084
- continue;
3085
- } else if (cursor === "%") {
3086
- if (!consume(buffer, address, output)) {
3087
- break;
3088
- }
3089
- consume = consumeIsZone;
3090
3088
  } else {
3091
- buffer.push(cursor);
3092
- continue;
3089
+ runStart = -1;
3090
+ runLength = 0;
3093
3091
  }
3094
3092
  }
3095
- if (buffer.length) {
3096
- if (consume === consumeIsZone) {
3097
- output.zone = buffer.join("");
3098
- } else if (endIpv6) {
3099
- address.push(buffer.join(""));
3100
- } else {
3101
- address.push(stringArrayToHexStripped(buffer));
3093
+ if (bestLength < 2)
3094
+ return hextets.join(":");
3095
+ const head = hextets.slice(0, bestStart).join(":");
3096
+ const tail = hextets.slice(bestStart + bestLength).join(":");
3097
+ return head + "::" + tail;
3098
+ }
3099
+ function normalizeIPv6Address(input) {
3100
+ const compression = input.indexOf("::");
3101
+ if (compression !== -1 && input.indexOf("::", compression + 1) !== -1)
3102
+ return;
3103
+ const left = compression === -1 ? input.split(":") : input.slice(0, compression).split(":");
3104
+ const right = compression === -1 ? [] : input.slice(compression + 2).split(":");
3105
+ if (compression !== -1) {
3106
+ if (left.length === 1 && left[0] === "")
3107
+ left.length = 0;
3108
+ if (right.length === 1 && right[0] === "")
3109
+ right.length = 0;
3110
+ }
3111
+ const parts = left.concat(right);
3112
+ let hextetCount = 0;
3113
+ for (let i = 0;i < parts.length; i++) {
3114
+ const part = parts[i];
3115
+ if (part === "")
3116
+ return;
3117
+ if (part.indexOf(".") !== -1) {
3118
+ if (i !== parts.length - 1 || compression !== -1 && right.length === 0 || !isIPv4(part))
3119
+ return;
3120
+ hextetCount += 2;
3121
+ continue;
3102
3122
  }
3123
+ if (!isHextet(part))
3124
+ return;
3125
+ parts[i] = parseInt(part, 16).toString(16);
3126
+ hextetCount++;
3103
3127
  }
3104
- output.address = address.join("");
3105
- return output;
3128
+ if (compression === -1) {
3129
+ if (hextetCount !== 8)
3130
+ return;
3131
+ return compressIPv6ZeroRun(parts);
3132
+ }
3133
+ if (hextetCount >= 8)
3134
+ return;
3135
+ const expanded = parts.slice(0, left.length);
3136
+ for (let i = hextetCount;i < 8; i++)
3137
+ expanded.push("0");
3138
+ for (let i = left.length;i < parts.length; i++)
3139
+ expanded.push(parts[i]);
3140
+ return compressIPv6ZeroRun(expanded);
3106
3141
  }
3107
3142
  function normalizeIPv6(host) {
3108
- if (findToken(host, ":") < 2) {
3109
- return { host, isIPV6: false };
3110
- }
3111
- const ipv6 = getIPV6(host);
3112
- if (!ipv6.error) {
3113
- let newHost = ipv6.address;
3114
- let escapedHost = ipv6.address;
3115
- if (ipv6.zone) {
3116
- newHost += "%" + ipv6.zone;
3117
- escapedHost += "%25" + ipv6.zone;
3118
- }
3119
- return { host: newHost, isIPV6: true, escapedHost };
3120
- } else {
3121
- return { host, isIPV6: false };
3122
- }
3143
+ const bracketed = host[0] === "[" && host[host.length - 1] === "]";
3144
+ const hasBracket = host[0] === "[" || host[host.length - 1] === "]";
3145
+ if (hasBracket && !bracketed)
3146
+ return { host, isIPV6: false, error: true };
3147
+ let input = bracketed ? host.slice(1, -1) : host;
3148
+ if (bracketed && isIPvFuture(input)) {
3149
+ input = input.toLowerCase();
3150
+ return { host: `[${input}]`, escapedHost: input, isIPV6: false, isIPVFuture: true };
3151
+ }
3152
+ if (findToken(input, ":") < 2) {
3153
+ return { host, isIPV6: false, error: bracketed };
3154
+ }
3155
+ let zoneIdentifier = "";
3156
+ const zoneSeparator = input.indexOf("%");
3157
+ if (zoneSeparator !== -1) {
3158
+ const separatorLength = input.slice(zoneSeparator, zoneSeparator + 3).toLowerCase() === "%25" ? 3 : 1;
3159
+ zoneIdentifier = input.slice(zoneSeparator + separatorLength);
3160
+ if (!isZoneIdentifier(zoneIdentifier))
3161
+ return { host, isIPV6: false, error: true };
3162
+ input = input.slice(0, zoneSeparator);
3163
+ }
3164
+ const address = normalizeIPv6Address(input);
3165
+ if (address === undefined)
3166
+ return { host, isIPV6: false, error: true };
3167
+ return {
3168
+ host: address + (zoneIdentifier ? "%" + zoneIdentifier : ""),
3169
+ escapedHost: address + (zoneIdentifier ? "%25" + zoneIdentifier : ""),
3170
+ isIPV6: true
3171
+ };
3123
3172
  }
3124
3173
  function findToken(str, token) {
3125
3174
  let ind = 0;
@@ -3239,7 +3288,8 @@ var require_utils = __commonJS(function(exports, module) {
3239
3288
  function normalizePathEncoding(input) {
3240
3289
  let output = "";
3241
3290
  for (let i = 0;i < input.length; i++) {
3242
- if (input[i] === "%" && i + 2 < input.length) {
3291
+ const ch = input[i];
3292
+ if (ch === "%" && i + 2 < input.length) {
3243
3293
  const hex = input.slice(i + 1, i + 3);
3244
3294
  if (isHexPair(hex)) {
3245
3295
  const normalizedHex = hex.toUpperCase();
@@ -3253,10 +3303,152 @@ var require_utils = __commonJS(function(exports, module) {
3253
3303
  continue;
3254
3304
  }
3255
3305
  }
3256
- if (isPathCharacter(input[i])) {
3257
- output += input[i];
3306
+ if (isPathCharacter(ch)) {
3307
+ output += ch;
3258
3308
  } else {
3259
- output += escape(input[i]);
3309
+ const code = input.charCodeAt(i);
3310
+ if (code < 128) {
3311
+ output += isEscapeSafe(code) ? ch : BYTE_HEX[code];
3312
+ } else if (code < 55296 || code > 57343) {
3313
+ output += percentEncodeNonAscii(code);
3314
+ } else if (code <= 56319 && i + 1 < input.length) {
3315
+ const low = input.charCodeAt(i + 1);
3316
+ if (low >= 56320 && low <= 57343) {
3317
+ output += percentEncodeNonAscii(65536 + (code - 55296 << 10) + (low - 56320));
3318
+ i++;
3319
+ } else {
3320
+ output += percentEncodeNonAscii(65533);
3321
+ }
3322
+ } else {
3323
+ output += percentEncodeNonAscii(65533);
3324
+ }
3325
+ }
3326
+ }
3327
+ return output;
3328
+ }
3329
+ function serializePathEncoding(input, pathNoScheme = false) {
3330
+ let output = "";
3331
+ let firstSegment = pathNoScheme && input[0] !== "/";
3332
+ for (let i = 0;i < input.length; i++) {
3333
+ const ch = input[i];
3334
+ if (ch === "%" && i + 2 < input.length) {
3335
+ const hex = input.slice(i + 1, i + 3);
3336
+ if (isHexPair(hex)) {
3337
+ output += "%" + hex.toUpperCase();
3338
+ i += 2;
3339
+ continue;
3340
+ }
3341
+ }
3342
+ if (ch === "/") {
3343
+ firstSegment = false;
3344
+ }
3345
+ if (isPathCharacter(ch) && (ch !== ":" || !firstSegment)) {
3346
+ output += ch;
3347
+ } else {
3348
+ const code = input.charCodeAt(i);
3349
+ if (code < 128) {
3350
+ output += BYTE_HEX[code];
3351
+ } else if (code < 55296 || code > 57343) {
3352
+ output += percentEncodeNonAscii(code);
3353
+ } else if (code <= 56319 && i + 1 < input.length) {
3354
+ const low = input.charCodeAt(i + 1);
3355
+ if (low >= 56320 && low <= 57343) {
3356
+ output += percentEncodeNonAscii(65536 + (code - 55296 << 10) + (low - 56320));
3357
+ i++;
3358
+ } else {
3359
+ output += percentEncodeNonAscii(65533);
3360
+ }
3361
+ } else {
3362
+ output += percentEncodeNonAscii(65533);
3363
+ }
3364
+ }
3365
+ }
3366
+ return output;
3367
+ }
3368
+ function encodeComponent(input, isAllowed) {
3369
+ let output = "";
3370
+ for (let i = 0;i < input.length; i++) {
3371
+ const ch = input[i];
3372
+ if (ch === "%" && i + 2 < input.length) {
3373
+ const hex = input.slice(i + 1, i + 3);
3374
+ if (isHexPair(hex)) {
3375
+ output += "%" + hex.toUpperCase();
3376
+ i += 2;
3377
+ continue;
3378
+ }
3379
+ }
3380
+ if (isAllowed(ch)) {
3381
+ output += ch;
3382
+ } else {
3383
+ const code = input.charCodeAt(i);
3384
+ if (code < 128) {
3385
+ output += BYTE_HEX[code];
3386
+ } else if (code < 55296 || code > 57343) {
3387
+ output += percentEncodeNonAscii(code);
3388
+ } else if (code <= 56319 && i + 1 < input.length) {
3389
+ const low = input.charCodeAt(i + 1);
3390
+ if (low >= 56320 && low <= 57343) {
3391
+ output += percentEncodeNonAscii(65536 + (code - 55296 << 10) + (low - 56320));
3392
+ i++;
3393
+ } else {
3394
+ output += percentEncodeNonAscii(65533);
3395
+ }
3396
+ } else {
3397
+ output += percentEncodeNonAscii(65533);
3398
+ }
3399
+ }
3400
+ }
3401
+ return output;
3402
+ }
3403
+ function encodeUserinfo(input) {
3404
+ return encodeComponent(input, isUserinfoCharacter);
3405
+ }
3406
+ function encodeQuery(input) {
3407
+ return encodeComponent(input, isQueryFragmentCharacter);
3408
+ }
3409
+ function encodeFragment(input) {
3410
+ return encodeComponent(input, isQueryFragmentCharacter);
3411
+ }
3412
+ function isEscapeSafe(cp) {
3413
+ return cp >= 48 && cp <= 57 || cp >= 65 && cp <= 90 || cp >= 97 && cp <= 122 || cp === 42 || cp === 43 || cp === 45 || cp === 46 || cp === 47 || cp === 64 || cp === 95;
3414
+ }
3415
+ function normalizeQueryFragmentEncoding(input) {
3416
+ let output = "";
3417
+ for (let i = 0;i < input.length; i++) {
3418
+ const ch = input[i];
3419
+ if (ch === "%" && i + 2 < input.length) {
3420
+ const hex = input.slice(i + 1, i + 3);
3421
+ if (isHexPair(hex)) {
3422
+ const normalizedHex = hex.toUpperCase();
3423
+ const decoded = String.fromCharCode(parseInt(normalizedHex, 16));
3424
+ if (isUnreserved(decoded)) {
3425
+ output += decoded;
3426
+ } else {
3427
+ output += "%" + normalizedHex;
3428
+ }
3429
+ i += 2;
3430
+ continue;
3431
+ }
3432
+ }
3433
+ if (isQueryFragmentCharacter(ch)) {
3434
+ output += ch;
3435
+ } else {
3436
+ const code = input.charCodeAt(i);
3437
+ if (code < 128) {
3438
+ output += isEscapeSafe(code) ? ch : BYTE_HEX[code];
3439
+ } else if (code < 55296 || code > 57343) {
3440
+ output += percentEncodeNonAscii(code);
3441
+ } else if (code <= 56319 && i + 1 < input.length) {
3442
+ const low = input.charCodeAt(i + 1);
3443
+ if (low >= 56320 && low <= 57343) {
3444
+ output += percentEncodeNonAscii(65536 + (code - 55296 << 10) + (low - 56320));
3445
+ i++;
3446
+ } else {
3447
+ output += percentEncodeNonAscii(65533);
3448
+ }
3449
+ } else {
3450
+ output += percentEncodeNonAscii(65533);
3451
+ }
3260
3452
  }
3261
3453
  }
3262
3454
  return output;
@@ -3279,14 +3471,18 @@ var require_utils = __commonJS(function(exports, module) {
3279
3471
  function recomposeAuthority(component) {
3280
3472
  const uriTokens = [];
3281
3473
  if (component.userinfo !== undefined) {
3282
- uriTokens.push(component.userinfo);
3474
+ uriTokens.push(encodeUserinfo(component.userinfo));
3283
3475
  uriTokens.push("@");
3284
3476
  }
3285
3477
  if (component.host !== undefined) {
3286
- let host = unescape(component.host);
3478
+ let host = component.host;
3287
3479
  if (!isIPv4(host)) {
3288
- const ipV6res = normalizeIPv6(host);
3289
- if (ipV6res.isIPV6 === true) {
3480
+ let ipV6res = normalizeIPv6(host);
3481
+ if (ipV6res.isIPV6 !== true && ipV6res.isIPVFuture !== true) {
3482
+ host = normalizePercentEncoding(host, true);
3483
+ ipV6res = normalizeIPv6(host);
3484
+ }
3485
+ if (ipV6res.isIPV6 === true || ipV6res.isIPVFuture === true) {
3290
3486
  host = `[${ipV6res.escapedHost}]`;
3291
3487
  } else {
3292
3488
  host = reescapeHostDelimiters(host, false);
@@ -3306,6 +3502,11 @@ var require_utils = __commonJS(function(exports, module) {
3306
3502
  reescapeHostDelimiters,
3307
3503
  normalizePercentEncoding,
3308
3504
  normalizePathEncoding,
3505
+ serializePathEncoding,
3506
+ normalizeQueryFragmentEncoding,
3507
+ encodeUserinfo,
3508
+ encodeQuery,
3509
+ encodeFragment,
3309
3510
  escapePreservingEscapes,
3310
3511
  removeDotSegments,
3311
3512
  isIPv4,
@@ -3318,7 +3519,7 @@ var require_utils = __commonJS(function(exports, module) {
3318
3519
  // ../../node_modules/fast-uri/lib/schemes.js
3319
3520
  var require_schemes = __commonJS(function(exports, module) {
3320
3521
  var { isUUID } = require_utils();
3321
- var URN_REG = /([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu;
3522
+ var URN_REG = /^([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-./:;=@]|%[\da-f]{2})+)$/iu;
3322
3523
  var supportedSchemeNames = [
3323
3524
  "http",
3324
3525
  "https",
@@ -3373,9 +3574,10 @@ var require_schemes = __commonJS(function(exports, module) {
3373
3574
  wsComponent.secure = undefined;
3374
3575
  }
3375
3576
  if (wsComponent.resourceName) {
3376
- const [path, query] = wsComponent.resourceName.split("?");
3577
+ const queryIndex = wsComponent.resourceName.indexOf("?");
3578
+ const path = queryIndex === -1 ? wsComponent.resourceName : wsComponent.resourceName.slice(0, queryIndex);
3377
3579
  wsComponent.path = path && path !== "/" ? path : undefined;
3378
- wsComponent.query = query;
3580
+ wsComponent.query = queryIndex === -1 ? undefined : wsComponent.resourceName.slice(queryIndex + 1);
3379
3581
  wsComponent.resourceName = undefined;
3380
3582
  }
3381
3583
  wsComponent.fragment = undefined;
@@ -3387,7 +3589,7 @@ var require_schemes = __commonJS(function(exports, module) {
3387
3589
  return urnComponent;
3388
3590
  }
3389
3591
  const matches = urnComponent.path.match(URN_REG);
3390
- if (matches) {
3592
+ if (matches && matches[0] === urnComponent.path) {
3391
3593
  const scheme = options.scheme || urnComponent.scheme || "urn";
3392
3594
  urnComponent.nid = matches[1].toLowerCase();
3393
3595
  urnComponent.nss = matches[2];
@@ -3491,8 +3693,17 @@ var require_schemes = __commonJS(function(exports, module) {
3491
3693
 
3492
3694
  // ../../node_modules/fast-uri/index.js
3493
3695
  var require_fast_uri = __commonJS(function(exports, module) {
3494
- var { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizePercentEncoding, normalizePathEncoding, escapePreservingEscapes, reescapeHostDelimiters, isIPv4, nonSimpleDomain } = require_utils();
3696
+ var { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizePercentEncoding, normalizePathEncoding, serializePathEncoding, normalizeQueryFragmentEncoding, encodeQuery, encodeFragment, reescapeHostDelimiters, isIPv4, nonSimpleDomain } = require_utils();
3495
3697
  var { SCHEMES, getSchemeHandler } = require_schemes();
3698
+ var VALID_SCHEME = /^[A-Za-z][A-Za-z0-9+.-]*$/u;
3699
+ var MALFORMED_SCHEME_ERROR = "URI scheme is malformed.";
3700
+ function decodeValidScheme(scheme) {
3701
+ const decodedScheme = unescape(String(scheme));
3702
+ if (!VALID_SCHEME.test(decodedScheme)) {
3703
+ throw new TypeError(MALFORMED_SCHEME_ERROR);
3704
+ }
3705
+ return decodedScheme;
3706
+ }
3496
3707
  function normalize(uri, options) {
3497
3708
  if (typeof uri === "string") {
3498
3709
  uri = normalizeString(uri, options);
@@ -3503,7 +3714,34 @@ var require_fast_uri = __commonJS(function(exports, module) {
3503
3714
  }
3504
3715
  function resolve(baseURI, relativeURI, options) {
3505
3716
  const schemelessOptions = options ? Object.assign({ scheme: "null" }, options) : { scheme: "null" };
3506
- const resolved = resolveComponent(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true);
3717
+ const {
3718
+ parsed: baseParsed,
3719
+ malformedAuthorityOrPort: baseMalformed,
3720
+ malformedPercentEncoding: baseMalformedPercentEncoding,
3721
+ malformedSchemeSpecific: baseMalformedSchemeSpecific,
3722
+ malformedHost: baseMalformedHost,
3723
+ malformedScheme: baseMalformedScheme
3724
+ } = parseWithStatus(baseURI, schemelessOptions);
3725
+ const {
3726
+ parsed: relativeParsed,
3727
+ malformedAuthorityOrPort: relativeMalformed,
3728
+ malformedPercentEncoding: relativeMalformedPercentEncoding,
3729
+ malformedSchemeSpecific: relativeMalformedSchemeSpecific,
3730
+ malformedHost: relativeMalformedHost,
3731
+ malformedScheme: relativeMalformedScheme
3732
+ } = parseWithStatus(relativeURI, schemelessOptions);
3733
+ if (baseMalformed || relativeMalformed || baseMalformedPercentEncoding || relativeMalformedPercentEncoding || baseMalformedSchemeSpecific || relativeMalformedSchemeSpecific || baseMalformedHost || relativeMalformedHost || baseMalformedScheme || relativeMalformedScheme) {
3734
+ throw new Error(baseParsed.error || relativeParsed.error || "URI is malformed.");
3735
+ }
3736
+ const resolved = resolveComponent(baseParsed, relativeParsed, schemelessOptions, true);
3737
+ const resolvedSchemeHandler = getSchemeHandler(options && options.scheme || resolved.scheme);
3738
+ const resolvedHost = resolved.host;
3739
+ const resolvedHostIsIP = resolvedHost !== undefined && resolvedHost !== "" && (isIPv4(resolvedHost) || normalizeIPv6(resolvedHost).isIPV6);
3740
+ canonicalizeHost(resolved, options || {}, resolvedSchemeHandler, resolvedHostIsIP);
3741
+ const encodedASCIIHost = resolvedHost && resolvedHost.indexOf("%") !== -1 && !/\P{ASCII}/u.test(resolvedHost);
3742
+ if (resolved.error && !encodedASCIIHost) {
3743
+ throw new Error(resolved.error);
3744
+ }
3507
3745
  schemelessOptions.skipEscape = true;
3508
3746
  return serialize(resolved, schemelessOptions);
3509
3747
  }
@@ -3563,7 +3801,7 @@ var require_fast_uri = __commonJS(function(exports, module) {
3563
3801
  function equal(uriA, uriB, options) {
3564
3802
  const normalizedA = normalizeComparableURI(uriA, options);
3565
3803
  const normalizedB = normalizeComparableURI(uriB, options);
3566
- return normalizedA !== undefined && normalizedB !== undefined && normalizedA.toLowerCase() === normalizedB.toLowerCase();
3804
+ return normalizedA !== undefined && normalizedB !== undefined && normalizedA === normalizedB;
3567
3805
  }
3568
3806
  function serialize(cmpts, opts) {
3569
3807
  const component = {
@@ -3584,20 +3822,23 @@ var require_fast_uri = __commonJS(function(exports, module) {
3584
3822
  };
3585
3823
  const options = Object.assign({}, opts);
3586
3824
  const uriTokens = [];
3825
+ if (component.scheme) {
3826
+ component.scheme = decodeValidScheme(component.scheme);
3827
+ }
3587
3828
  const schemeHandler = getSchemeHandler(options.scheme || component.scheme);
3588
3829
  if (schemeHandler && schemeHandler.serialize)
3589
3830
  schemeHandler.serialize(component, options);
3831
+ const hasAuthority = component.userinfo !== undefined || component.host !== undefined || component.port !== undefined;
3832
+ const pathNoScheme = !options.skipEscape && component.scheme === undefined && !hasAuthority;
3590
3833
  if (component.path !== undefined) {
3591
3834
  if (!options.skipEscape) {
3592
- component.path = escapePreservingEscapes(component.path);
3593
- if (component.scheme !== undefined) {
3594
- component.path = component.path.split("%3A").join(":");
3595
- }
3835
+ component.path = serializePathEncoding(component.path, pathNoScheme);
3596
3836
  } else {
3597
3837
  component.path = normalizePercentEncoding(component.path);
3598
3838
  }
3599
3839
  }
3600
3840
  if (options.reference !== "suffix" && component.scheme) {
3841
+ component.scheme = decodeValidScheme(component.scheme);
3601
3842
  uriTokens.push(component.scheme, ":");
3602
3843
  }
3603
3844
  const authority = recomposeAuthority(component);
@@ -3615,20 +3856,25 @@ var require_fast_uri = __commonJS(function(exports, module) {
3615
3856
  if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {
3616
3857
  s = removeDotSegments(s);
3617
3858
  }
3859
+ if (pathNoScheme) {
3860
+ s = serializePathEncoding(s, true);
3861
+ }
3618
3862
  if (authority === undefined && s[0] === "/" && s[1] === "/") {
3619
3863
  s = "/%2F" + s.slice(2);
3620
3864
  }
3621
3865
  uriTokens.push(s);
3622
3866
  }
3623
3867
  if (component.query !== undefined) {
3624
- uriTokens.push("?", component.query);
3868
+ uriTokens.push("?", encodeQuery(component.query));
3625
3869
  }
3626
3870
  if (component.fragment !== undefined) {
3627
- uriTokens.push("#", component.fragment);
3871
+ uriTokens.push("#", encodeFragment(component.fragment));
3628
3872
  }
3629
3873
  return uriTokens.join("");
3630
3874
  }
3631
3875
  var URI_PARSE = /^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;
3876
+ var AUTHORITY_PREFIX = /^(?:[^#/:?]+:)?\/\/([^/?#]*)/;
3877
+ var AUTHORITY_INTRODUCER_REGION = /^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;
3632
3878
  function getParseError(parsed, matches) {
3633
3879
  if (matches[2] !== undefined && parsed.path && parsed.path[0] !== "/") {
3634
3880
  return 'URI path must start with "/" when authority is present.';
@@ -3638,6 +3884,33 @@ var require_fast_uri = __commonJS(function(exports, module) {
3638
3884
  }
3639
3885
  return;
3640
3886
  }
3887
+ function hasMalformedPercentEncoding(component) {
3888
+ if (component === undefined)
3889
+ return false;
3890
+ let percent = component.indexOf("%");
3891
+ while (percent !== -1) {
3892
+ if (percent + 2 >= component.length || !/^[\da-f]{2}$/iu.test(component.slice(percent + 1, percent + 3))) {
3893
+ return true;
3894
+ }
3895
+ percent = component.indexOf("%", percent + 3);
3896
+ }
3897
+ return false;
3898
+ }
3899
+ function hasMalformedComponentPercentEncoding(matches) {
3900
+ const host = matches[4];
3901
+ return hasMalformedPercentEncoding(matches[3]) || host !== undefined && !(host[0] === "[" && host[host.length - 1] === "]") && hasMalformedPercentEncoding(host) || hasMalformedPercentEncoding(matches[6]) || hasMalformedPercentEncoding(matches[7]) || hasMalformedPercentEncoding(matches[8]);
3902
+ }
3903
+ function canonicalizeHost(parsed, options, schemeHandler, isIP) {
3904
+ if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport) && parsed.host && parsed.host[0] !== "[" && (options.domainHost || schemeHandler && schemeHandler.domainHost) && isIP === false && nonSimpleDomain(parsed.host)) {
3905
+ try {
3906
+ parsed.host = new URL("http://" + parsed.host).hostname;
3907
+ } catch (e) {
3908
+ parsed.error = parsed.error || "Host's domain name can not be converted to ASCII: " + e;
3909
+ return true;
3910
+ }
3911
+ }
3912
+ return false;
3913
+ }
3641
3914
  function parseWithStatus(uri, opts) {
3642
3915
  const options = Object.assign({}, opts);
3643
3916
  const parsed = {
@@ -3650,6 +3923,11 @@ var require_fast_uri = __commonJS(function(exports, module) {
3650
3923
  fragment: undefined
3651
3924
  };
3652
3925
  let malformedAuthorityOrPort = false;
3926
+ let malformedPercentEncoding = false;
3927
+ let malformedSchemeSpecific = false;
3928
+ let malformedHost = false;
3929
+ let malformedIPLiteral = false;
3930
+ let malformedScheme = false;
3653
3931
  let isIP = false;
3654
3932
  if (options.reference === "suffix") {
3655
3933
  if (options.scheme) {
@@ -3658,6 +3936,25 @@ var require_fast_uri = __commonJS(function(exports, module) {
3658
3936
  uri = "//" + uri;
3659
3937
  }
3660
3938
  }
3939
+ const authorityMatch = uri.match(AUTHORITY_PREFIX);
3940
+ if (authorityMatch !== null && authorityMatch[1].indexOf("\\") !== -1) {
3941
+ parsed.error = "URI authority must not contain a literal backslash.";
3942
+ malformedAuthorityOrPort = true;
3943
+ }
3944
+ const introducerMatch = uri.match(AUTHORITY_INTRODUCER_REGION);
3945
+ if (introducerMatch !== null) {
3946
+ const region = introducerMatch[1];
3947
+ const normalizedRegion = region.replace(/[\t\n\r]/g, "");
3948
+ if (normalizedRegion.length >= 2) {
3949
+ if (normalizedRegion.slice(0, 2) !== "//") {
3950
+ parsed.error = parsed.error || "URI authority must not contain a literal backslash.";
3951
+ malformedAuthorityOrPort = true;
3952
+ } else if (region.length !== normalizedRegion.length) {
3953
+ parsed.error = parsed.error || "URI authority introducer must not contain whitespace.";
3954
+ malformedAuthorityOrPort = true;
3955
+ }
3956
+ }
3957
+ }
3661
3958
  const matches = uri.match(URI_PARSE);
3662
3959
  if (matches) {
3663
3960
  parsed.scheme = matches[1];
@@ -3667,6 +3964,19 @@ var require_fast_uri = __commonJS(function(exports, module) {
3667
3964
  parsed.path = matches[6] || "";
3668
3965
  parsed.query = matches[7];
3669
3966
  parsed.fragment = matches[8];
3967
+ if (parsed.scheme !== undefined) {
3968
+ const decodedScheme = unescape(parsed.scheme);
3969
+ if (VALID_SCHEME.test(decodedScheme)) {
3970
+ parsed.scheme = decodedScheme.toLowerCase();
3971
+ } else {
3972
+ parsed.error = parsed.error || MALFORMED_SCHEME_ERROR;
3973
+ malformedScheme = true;
3974
+ }
3975
+ }
3976
+ malformedPercentEncoding = hasMalformedComponentPercentEncoding(matches);
3977
+ if (malformedPercentEncoding) {
3978
+ parsed.error = parsed.error || "URI contains malformed percent-encoding.";
3979
+ }
3670
3980
  if (isNaN(parsed.port)) {
3671
3981
  parsed.port = matches[5];
3672
3982
  }
@@ -3678,9 +3988,15 @@ var require_fast_uri = __commonJS(function(exports, module) {
3678
3988
  if (parsed.host) {
3679
3989
  const ipv4result = isIPv4(parsed.host);
3680
3990
  if (ipv4result === false) {
3991
+ const bracketedIPLiteral = parsed.host[0] === "[" && parsed.host[parsed.host.length - 1] === "]";
3681
3992
  const ipv6result = normalizeIPv6(parsed.host);
3682
- parsed.host = ipv6result.host.toLowerCase();
3683
- isIP = ipv6result.isIPV6;
3993
+ isIP = ipv6result.isIPV6 || ipv6result.isIPVFuture === true;
3994
+ malformedIPLiteral = bracketedIPLiteral && ipv6result.error === true;
3995
+ parsed.host = isIP ? ipv6result.host : ipv6result.host.toLowerCase();
3996
+ if (malformedIPLiteral) {
3997
+ parsed.error = parsed.error || "URI host is malformed.";
3998
+ malformedAuthorityOrPort = true;
3999
+ }
3684
4000
  } else {
3685
4001
  isIP = true;
3686
4002
  }
@@ -3698,42 +4014,34 @@ var require_fast_uri = __commonJS(function(exports, module) {
3698
4014
  parsed.error = parsed.error || "URI is not a " + options.reference + " reference.";
3699
4015
  }
3700
4016
  const schemeHandler = getSchemeHandler(options.scheme || parsed.scheme);
3701
- if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {
3702
- if (parsed.host && (options.domainHost || schemeHandler && schemeHandler.domainHost) && isIP === false && nonSimpleDomain(parsed.host)) {
3703
- try {
3704
- parsed.host = URL.domainToASCII(parsed.host.toLowerCase());
3705
- } catch (e) {
3706
- parsed.error = parsed.error || "Host's domain name can not be converted to ASCII: " + e;
3707
- }
3708
- }
3709
- }
4017
+ malformedHost = canonicalizeHost(parsed, options, schemeHandler, isIP);
3710
4018
  if (!schemeHandler || schemeHandler && !schemeHandler.skipNormalize) {
3711
4019
  if (uri.indexOf("%") !== -1) {
3712
- if (parsed.scheme !== undefined) {
3713
- parsed.scheme = unescape(parsed.scheme);
3714
- }
3715
- if (parsed.host !== undefined) {
3716
- parsed.host = reescapeHostDelimiters(unescape(parsed.host), isIP);
4020
+ if (parsed.host !== undefined && !malformedIPLiteral) {
4021
+ const host = isIP ? parsed.host : normalizePercentEncoding(parsed.host, true);
4022
+ parsed.host = reescapeHostDelimiters(host, isIP);
3717
4023
  }
3718
4024
  }
3719
4025
  if (parsed.path) {
3720
4026
  parsed.path = normalizePathEncoding(parsed.path);
3721
4027
  }
4028
+ if (parsed.query) {
4029
+ parsed.query = normalizeQueryFragmentEncoding(parsed.query);
4030
+ }
3722
4031
  if (parsed.fragment) {
3723
- try {
3724
- parsed.fragment = encodeURI(decodeURIComponent(parsed.fragment));
3725
- } catch {
3726
- parsed.error = parsed.error || "URI malformed";
3727
- }
4032
+ parsed.fragment = normalizeQueryFragmentEncoding(parsed.fragment);
3728
4033
  }
3729
4034
  }
3730
4035
  if (schemeHandler && schemeHandler.parse) {
3731
4036
  schemeHandler.parse(parsed, options);
4037
+ if (schemeHandler === SCHEMES.urn && parsed.nid === undefined) {
4038
+ malformedSchemeSpecific = true;
4039
+ }
3732
4040
  }
3733
4041
  } else {
3734
4042
  parsed.error = parsed.error || "URI can not be parsed.";
3735
4043
  }
3736
- return { parsed, malformedAuthorityOrPort };
4044
+ return { parsed, malformedAuthorityOrPort, malformedPercentEncoding, malformedSchemeSpecific, malformedHost, malformedScheme };
3737
4045
  }
3738
4046
  function parse(uri, opts) {
3739
4047
  return parseWithStatus(uri, opts).parsed;
@@ -3742,20 +4050,28 @@ var require_fast_uri = __commonJS(function(exports, module) {
3742
4050
  return normalizeStringWithStatus(uri, opts).normalized;
3743
4051
  }
3744
4052
  function normalizeStringWithStatus(uri, opts) {
3745
- const { parsed, malformedAuthorityOrPort } = parseWithStatus(uri, opts);
4053
+ const { parsed, malformedAuthorityOrPort, malformedPercentEncoding, malformedSchemeSpecific, malformedHost, malformedScheme } = parseWithStatus(uri, opts);
3746
4054
  return {
3747
- normalized: malformedAuthorityOrPort ? uri : serialize(parsed, opts),
3748
- malformedAuthorityOrPort
4055
+ normalized: malformedAuthorityOrPort || malformedPercentEncoding || malformedSchemeSpecific || malformedHost || malformedScheme ? uri : serialize(parsed, opts),
4056
+ malformedAuthorityOrPort,
4057
+ malformedPercentEncoding,
4058
+ malformedSchemeSpecific,
4059
+ malformedHost,
4060
+ malformedScheme
3749
4061
  };
3750
4062
  }
3751
4063
  function normalizeComparableURI(uri, opts) {
3752
- if (typeof uri === "string") {
3753
- const { normalized, malformedAuthorityOrPort } = normalizeStringWithStatus(uri, opts);
3754
- return malformedAuthorityOrPort ? undefined : normalized;
4064
+ if (typeof uri !== "string" && typeof uri !== "object") {
4065
+ return;
3755
4066
  }
3756
- if (typeof uri === "object") {
3757
- return serialize(uri, opts);
4067
+ let value;
4068
+ try {
4069
+ value = typeof uri === "string" ? uri : serialize(uri, opts);
4070
+ } catch {
4071
+ return;
3758
4072
  }
4073
+ const { normalized, malformedAuthorityOrPort, malformedPercentEncoding, malformedSchemeSpecific, malformedHost, malformedScheme } = normalizeStringWithStatus(value, opts);
4074
+ return malformedAuthorityOrPort || malformedPercentEncoding || malformedSchemeSpecific || malformedHost || malformedScheme ? undefined : normalized;
3759
4075
  }
3760
4076
  var fastUri = {
3761
4077
  SCHEMES,
@@ -4377,9 +4693,9 @@ var require_types = __commonJS(function(exports) {
4377
4693
  Object.defineProperty(exports, "__esModule", { value: true });
4378
4694
  exports.DiscrError = undefined;
4379
4695
  var DiscrError;
4380
- (function(DiscrError2) {
4381
- DiscrError2["Tag"] = "tag";
4382
- DiscrError2["Mapping"] = "mapping";
4696
+ (function(DiscrError) {
4697
+ DiscrError["Tag"] = "tag";
4698
+ DiscrError["Mapping"] = "mapping";
4383
4699
  })(DiscrError || (exports.DiscrError = DiscrError = {}));
4384
4700
  });
4385
4701
 
@@ -5920,7 +6236,7 @@ var require_applicator = __commonJS(function(exports) {
5920
6236
  });
5921
6237
 
5922
6238
  // ../../node_modules/ajv/dist/vocabularies/format/format.js
5923
- var require_format = __commonJS(function(exports) {
6239
+ var require_format2 = __commonJS(function(exports) {
5924
6240
  Object.defineProperty(exports, "__esModule", { value: true });
5925
6241
  var codegen_1 = require_codegen();
5926
6242
  var error = {
@@ -6007,9 +6323,9 @@ var require_format = __commonJS(function(exports) {
6007
6323
  });
6008
6324
 
6009
6325
  // ../../node_modules/ajv/dist/vocabularies/format/index.js
6010
- var require_format2 = __commonJS(function(exports) {
6326
+ var require_format = __commonJS(function(exports) {
6011
6327
  Object.defineProperty(exports, "__esModule", { value: true });
6012
- var format_1 = require_format();
6328
+ var format_1 = require_format2();
6013
6329
  var format = [format_1.default];
6014
6330
  exports.default = format;
6015
6331
  });
@@ -6034,7 +6350,7 @@ var require_metadata = __commonJS(function(exports) {
6034
6350
  ];
6035
6351
  });
6036
6352
 
6037
- export { require_codegen, require_util, require_names, require_validate, require_validation_error, require_ref_error, require_compile, require_core, require_ref, require_core2 as require_core1, require_validation, require_dependencies, require_applicator, require_format2 as require_format, require_metadata, require_discriminator };
6353
+ export { require_codegen, require_util, require_names, require_validate, require_validation_error, require_ref_error, require_compile, require_core, require_ref, require_core2, require_validation, require_dependencies, require_applicator, require_format, require_metadata, require_discriminator };
6038
6354
 
6039
- //# debugId=43C0A92A8D141E5064756E2164756E21
6040
- //# sourceMappingURL=studio-4q0wznzf.js.map
6355
+ //# debugId=A1412430214E33B764756E2164756E21
6356
+ //# sourceMappingURL=studio-7e11jpa9.js.map