@scalar/api-client 2.38.1 → 2.38.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 (1162) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/AddressBar-B4xnl66I.js +302 -0
  3. package/dist/AddressBar-B4xnl66I.js.map +1 -0
  4. package/dist/App-BVH4lIe8.js +533 -0
  5. package/dist/App-BVH4lIe8.js.map +1 -0
  6. package/dist/App-CvClwSlM.js +2510 -0
  7. package/dist/App-CvClwSlM.js.map +1 -0
  8. package/dist/CodeInput-C-igR77V.js +694 -0
  9. package/dist/CodeInput-C-igR77V.js.map +1 -0
  10. package/dist/CodeSnippet-D7Heh1nd.js +218 -0
  11. package/dist/CodeSnippet-D7Heh1nd.js.map +1 -0
  12. package/dist/Collection-4MT9WmDD.js +219 -0
  13. package/dist/Collection-4MT9WmDD.js.map +1 -0
  14. package/dist/CollectionAuthentication-MHWQpw74.js +56 -0
  15. package/dist/CollectionAuthentication-MHWQpw74.js.map +1 -0
  16. package/dist/CollectionCookies-DyjPPMdt.js +19 -0
  17. package/dist/CollectionCookies-DyjPPMdt.js.map +1 -0
  18. package/dist/CollectionEnvironment-Dw35vIqo.js +514 -0
  19. package/dist/CollectionEnvironment-Dw35vIqo.js.map +1 -0
  20. package/dist/CollectionOverview-TUdDIu5f.js +131 -0
  21. package/dist/CollectionOverview-TUdDIu5f.js.map +1 -0
  22. package/dist/CollectionScripts-CMNlBlby.js +19 -0
  23. package/dist/CollectionScripts-CMNlBlby.js.map +1 -0
  24. package/dist/CollectionServers-BrjTCfDe.js +168 -0
  25. package/dist/CollectionServers-BrjTCfDe.js.map +1 -0
  26. package/dist/CollectionSettings-HVSlp2Gv.js +87 -0
  27. package/dist/CollectionSettings-HVSlp2Gv.js.map +1 -0
  28. package/dist/CollectionSync-CAflc5yW.js +19 -0
  29. package/dist/CollectionSync-CAflc5yW.js.map +1 -0
  30. package/dist/CommandActionInput-TkcAx6E8.js +97 -0
  31. package/dist/CommandActionInput-TkcAx6E8.js.map +1 -0
  32. package/dist/CommandPalette-CL8k4CoN.js +964 -0
  33. package/dist/CommandPalette-CL8k4CoN.js.map +1 -0
  34. package/dist/CommandPaletteImport-Diu5dDIY.js +622 -0
  35. package/dist/CommandPaletteImport-Diu5dDIY.js.map +1 -0
  36. package/dist/Cookies-DbOKTi1f.js +284 -0
  37. package/dist/Cookies-DbOKTi1f.js.map +1 -0
  38. package/dist/DataTable-BqbZKW3K.js +62 -0
  39. package/dist/DataTable-BqbZKW3K.js.map +1 -0
  40. package/dist/DataTableHeader-DJVB0jCZ.js +21 -0
  41. package/dist/DataTableHeader-DJVB0jCZ.js.map +1 -0
  42. package/dist/DataTableInput-yaU5g-kP.js +166 -0
  43. package/dist/DataTableInput-yaU5g-kP.js.map +1 -0
  44. package/dist/DataTableRow-c3XveEUO.js +57 -0
  45. package/dist/DataTableRow-c3XveEUO.js.map +1 -0
  46. package/dist/DeleteSidebarListElement-C-p87d03.js +78 -0
  47. package/dist/DeleteSidebarListElement-C-p87d03.js.map +1 -0
  48. package/dist/EditSidebarListElement-CodWPnM6.js +32 -0
  49. package/dist/EditSidebarListElement-CodWPnM6.js.map +1 -0
  50. package/dist/Editor-BomsGWHx.js +909 -0
  51. package/dist/Editor-BomsGWHx.js.map +1 -0
  52. package/dist/EmptyState-Cnm7hGW5.js +46 -0
  53. package/dist/EmptyState-Cnm7hGW5.js.map +1 -0
  54. package/dist/Environment-DJatRQIg.js +416 -0
  55. package/dist/Environment-DJatRQIg.js.map +1 -0
  56. package/dist/EnvironmentModal-DBEJ4Kzj.js +288 -0
  57. package/dist/EnvironmentModal-DBEJ4Kzj.js.map +1 -0
  58. package/dist/Form-CSKzyHGO.js +83 -0
  59. package/dist/Form-CSKzyHGO.js.map +1 -0
  60. package/dist/HttpMethod-rnWEgC3T.js +78 -0
  61. package/dist/HttpMethod-rnWEgC3T.js.map +1 -0
  62. package/dist/IconSelector-BDC_GQXv.js +67 -0
  63. package/dist/IconSelector-BDC_GQXv.js.map +1 -0
  64. package/dist/ImportCollection-DfX1UQ5u.js +804 -0
  65. package/dist/ImportCollection-DfX1UQ5u.js.map +1 -0
  66. package/dist/IntegrationLogo-B9EDW8db.js +51 -0
  67. package/dist/IntegrationLogo-B9EDW8db.js.map +1 -0
  68. package/dist/MainLayout-BEFMl1ud.js +281 -0
  69. package/dist/MainLayout-BEFMl1ud.js.map +1 -0
  70. package/dist/Modal-sQ9vH6MN.js +67 -0
  71. package/dist/Modal-sQ9vH6MN.js.map +1 -0
  72. package/dist/ModalClientContainer-qHsZi4wQ.js +65 -0
  73. package/dist/ModalClientContainer-qHsZi4wQ.js.map +1 -0
  74. package/dist/Request-gscRsGQ8.js +212 -0
  75. package/dist/Request-gscRsGQ8.js.map +1 -0
  76. package/dist/RequestAuth-BzBfIysT.js +989 -0
  77. package/dist/RequestAuth-BzBfIysT.js.map +1 -0
  78. package/dist/RequestRoot-3Bj8JZD-.js +1611 -0
  79. package/dist/RequestRoot-3Bj8JZD-.js.map +1 -0
  80. package/dist/RequestSection-HhdJj9hW.js +1582 -0
  81. package/dist/RequestSection-HhdJj9hW.js.map +1 -0
  82. package/dist/ResponseSection-DMJ0tw8E.js +949 -0
  83. package/dist/ResponseSection-DMJ0tw8E.js.map +1 -0
  84. package/dist/ScalarAsciiArt-BjuSnj8e.js +45 -0
  85. package/dist/ScalarAsciiArt-BjuSnj8e.js.map +1 -0
  86. package/dist/SectionFilter-hrtoRLwj.js +99 -0
  87. package/dist/SectionFilter-hrtoRLwj.js.map +1 -0
  88. package/dist/Server-DnA_BzPS.js +303 -0
  89. package/dist/Server-DnA_BzPS.js.map +1 -0
  90. package/dist/ServerVariablesForm-BRZ9XC8o.js +145 -0
  91. package/dist/ServerVariablesForm-BRZ9XC8o.js.map +1 -0
  92. package/dist/Settings-CYZzdJPO.js +347 -0
  93. package/dist/Settings-CYZzdJPO.js.map +1 -0
  94. package/dist/Sidebar-C6AdX6-N.js +73 -0
  95. package/dist/Sidebar-C6AdX6-N.js.map +1 -0
  96. package/dist/SidebarButton-BAagdMDe.js +37 -0
  97. package/dist/SidebarButton-BAagdMDe.js.map +1 -0
  98. package/dist/SidebarListElement-BfTPiihc.js +232 -0
  99. package/dist/SidebarListElement-BfTPiihc.js.map +1 -0
  100. package/dist/TheCommandPalette-Dl9TAeke.js +204 -0
  101. package/dist/TheCommandPalette-Dl9TAeke.js.map +1 -0
  102. package/dist/ValueEmitter-QYkZ9Hdc.js +20 -0
  103. package/dist/ValueEmitter-QYkZ9Hdc.js.map +1 -0
  104. package/dist/ViewLayout-BOXN0IYo.js +17 -0
  105. package/dist/ViewLayout-BOXN0IYo.js.map +1 -0
  106. package/dist/ViewLayoutCollapse-CiTb-Uml.js +86 -0
  107. package/dist/ViewLayoutCollapse-CiTb-Uml.js.map +1 -0
  108. package/dist/ViewLayoutContent-CvMoJYPF.js +13 -0
  109. package/dist/ViewLayoutContent-CvMoJYPF.js.map +1 -0
  110. package/dist/ViewLayoutSection-mUqKbQry.js +23 -0
  111. package/dist/ViewLayoutSection-mUqKbQry.js.map +1 -0
  112. package/dist/WatchModeToggle-D_eAiTWJ.js +41 -0
  113. package/dist/WatchModeToggle-D_eAiTWJ.js.map +1 -0
  114. package/dist/_plugin-vue_export-helper-BmmBcIzD.js +8 -0
  115. package/dist/analytics-BZimCWcw.js +7 -0
  116. package/dist/analytics-BZimCWcw.js.map +1 -0
  117. package/dist/build-request-security-BQjNr2MD.js +41 -0
  118. package/dist/build-request-security-BQjNr2MD.js.map +1 -0
  119. package/dist/code-input-iq-moLxi.js +775 -0
  120. package/dist/code-input-iq-moLxi.js.map +1 -0
  121. package/dist/components/AddressBar/AddressBar.vue.d.ts +1 -1
  122. package/dist/components/AddressBar/index.d.ts +1 -1
  123. package/dist/components/AddressBar/index.js +5 -4
  124. package/dist/components/CodeInput/CodeInput.vue.d.ts +1 -1
  125. package/dist/components/CodeInput/codeVariableWidget.d.ts +1 -1
  126. package/dist/components/CodeInput/index.d.ts +1 -1
  127. package/dist/components/CodeInput/index.js +2 -4
  128. package/dist/components/CommandPalette/index.d.ts +1 -1
  129. package/dist/components/CommandPalette/index.js +3 -4
  130. package/dist/components/DataTable/DataTableInput.vue.d.ts +2 -2
  131. package/dist/components/DataTable/index.d.ts +8 -8
  132. package/dist/components/DataTable/index.js +6 -18
  133. package/dist/components/Form/LabelInput.vue.d.ts +1 -1
  134. package/dist/components/HttpMethod/index.d.ts +1 -1
  135. package/dist/components/HttpMethod/index.js +2 -4
  136. package/dist/components/ImportCollection/index.d.ts +1 -1
  137. package/dist/components/ImportCollection/index.js +2 -4
  138. package/dist/components/ImportCollection/utils/import-collection.d.ts +1 -1
  139. package/dist/components/ImportCollection/utils/workspace-store-is-empty.d.ts +1 -1
  140. package/dist/components/Server/ServerVariablesForm.vue.d.ts +1 -1
  141. package/dist/components/Server/index.d.ts +3 -3
  142. package/dist/components/Server/index.js +3 -8
  143. package/dist/components/Sidebar/index.d.ts +1 -1
  144. package/dist/components/Sidebar/index.js +2 -4
  145. package/dist/components/ViewLayout/index.d.ts +1 -1
  146. package/dist/components/ViewLayout/index.js +2 -4
  147. package/dist/components/index.d.ts +3 -3
  148. package/dist/components/index.js +7 -8
  149. package/dist/components-CSxJTn6F.js +183 -0
  150. package/dist/components-CSxJTn6F.js.map +1 -0
  151. package/dist/components-ChixwQhN.js +61 -0
  152. package/dist/components-ChixwQhN.js.map +1 -0
  153. package/dist/computer-D7VW3Ruy.js +562 -0
  154. package/dist/computer-D7VW3Ruy.js.map +1 -0
  155. package/dist/consts-CyGRb9dl.js +318 -0
  156. package/dist/consts-CyGRb9dl.js.map +1 -0
  157. package/dist/curl-nbw1OxbV.js +54 -0
  158. package/dist/curl-nbw1OxbV.js.map +1 -0
  159. package/dist/data-table-PL7e8NRO.js +282 -0
  160. package/dist/data-table-PL7e8NRO.js.map +1 -0
  161. package/dist/editor-BZ_J0eze.js +466 -0
  162. package/dist/editor-BZ_J0eze.js.map +1 -0
  163. package/dist/environments-ByLK9lnC.js +592 -0
  164. package/dist/environments-ByLK9lnC.js.map +1 -0
  165. package/dist/formatters-DOGXZq9R.js +36 -0
  166. package/dist/formatters-DOGXZq9R.js.map +1 -0
  167. package/dist/forms-CZX6cFDS.js +42 -0
  168. package/dist/forms-CZX6cFDS.js.map +1 -0
  169. package/dist/get-active-environment-CkxyQ1dM.js +19 -0
  170. package/dist/get-active-environment-CkxyQ1dM.js.map +1 -0
  171. package/dist/get-resolved-url-BUCwrBzc.js +30 -0
  172. package/dist/get-resolved-url-BUCwrBzc.js.map +1 -0
  173. package/dist/get-server-url-o3On8CEr.js +32 -0
  174. package/dist/get-server-url-o3On8CEr.js.map +1 -0
  175. package/dist/get-servers-B_WNlQWB.js +106 -0
  176. package/dist/get-servers-B_WNlQWB.js.map +1 -0
  177. package/dist/get-snippet-DBRUSfZ2.js +39 -0
  178. package/dist/get-snippet-DBRUSfZ2.js.map +1 -0
  179. package/dist/global-cookies-D3ZS9ON3.js +184 -0
  180. package/dist/global-cookies-D3ZS9ON3.js.map +1 -0
  181. package/dist/hooks/index.d.ts +4 -4
  182. package/dist/hooks/index.js +3 -11
  183. package/dist/hooks/useSidebar.d.ts +1 -1
  184. package/dist/hooks-BvZxH4XB.js +80 -0
  185. package/dist/hooks-BvZxH4XB.js.map +1 -0
  186. package/dist/index.d.ts +3 -3
  187. package/dist/index.js +8 -12
  188. package/dist/layout-BWiL7dfb.js +81 -0
  189. package/dist/layout-BWiL7dfb.js.map +1 -0
  190. package/dist/layouts/App/create-api-client-app.d.ts +9 -9
  191. package/dist/layouts/App/index.d.ts +2 -2
  192. package/dist/layouts/App/index.js +5 -7
  193. package/dist/layouts/Modal/create-api-client-modal.d.ts +1 -1
  194. package/dist/layouts/Modal/index.d.ts +2 -2
  195. package/dist/layouts/Modal/index.js +3 -4
  196. package/dist/layouts/Web/create-api-client-web.d.ts +9 -9
  197. package/dist/layouts/Web/index.d.ts +2 -2
  198. package/dist/layouts/Web/index.js +101 -6
  199. package/dist/layouts/Web/index.js.map +1 -0
  200. package/dist/libs/create-client.d.ts +9 -9
  201. package/dist/libs/create-client.d.ts.map +1 -1
  202. package/dist/libs/environment-parser.d.ts +1 -1
  203. package/dist/libs/get-request-uid-by-path-method.d.ts +1 -1
  204. package/dist/libs/hot-keys.d.ts +1 -1
  205. package/dist/libs/importers/index.d.ts +1 -1
  206. package/dist/libs/importers/index.js +2 -4
  207. package/dist/libs/index.d.ts +15 -15
  208. package/dist/libs/index.js +6 -45
  209. package/dist/libs/local-storage.d.ts +1 -1
  210. package/dist/libs/send-request/create-request-operation.d.ts +3 -3
  211. package/dist/libs/send-request/index.d.ts +3 -3
  212. package/dist/libs/send-request/index.js +3 -8
  213. package/dist/libs-spbv4P0g.js +249 -0
  214. package/dist/libs-spbv4P0g.js.map +1 -0
  215. package/dist/monacoeditorwork/json.worker.bundle.js +8 -8
  216. package/dist/monacoeditorwork/yaml.worker.bundle.js +151 -151
  217. package/dist/operation-block-BnMIKAOh.js +1624 -0
  218. package/dist/operation-block-BnMIKAOh.js.map +1 -0
  219. package/dist/operation-code-sample-ZUTueV3v.js +1726 -0
  220. package/dist/operation-code-sample-ZUTueV3v.js.map +1 -0
  221. package/dist/parse-curl-BtypQT3D.js +106 -0
  222. package/dist/parse-curl-BtypQT3D.js.map +1 -0
  223. package/dist/plugins/hooks/usePluginManager.d.ts +1 -1
  224. package/dist/plugins/index.d.ts +2 -2
  225. package/dist/plugins/index.js +2 -7
  226. package/dist/plugins/plugin-manager.d.ts +10 -4
  227. package/dist/plugins/plugin-manager.d.ts.map +1 -1
  228. package/dist/plugins-B52hCIyZ.js +50 -0
  229. package/dist/plugins-B52hCIyZ.js.map +1 -0
  230. package/dist/rabbitjump-CMZXAR6d.js +9 -0
  231. package/dist/rabbitjump-CMZXAR6d.js.map +1 -0
  232. package/dist/request-block-DwsGy64Q.js +1466 -0
  233. package/dist/request-block-DwsGy64Q.js.map +1 -0
  234. package/dist/resize-D2IYvVdh.js +114 -0
  235. package/dist/resize-D2IYvVdh.js.map +1 -0
  236. package/dist/response-block-DmkaDZYs.js +1188 -0
  237. package/dist/response-block-DmkaDZYs.js.map +1 -0
  238. package/dist/scalar-address-bar-block--Vs6IBU1.js +425 -0
  239. package/dist/scalar-address-bar-block--Vs6IBU1.js.map +1 -0
  240. package/dist/scalar-auth-selector-block-DI3DLag9.js +1886 -0
  241. package/dist/scalar-auth-selector-block-DI3DLag9.js.map +1 -0
  242. package/dist/search-CmsQQkjn.js +151 -0
  243. package/dist/search-CmsQQkjn.js.map +1 -0
  244. package/dist/send-request-BsTfRiBC.js +348 -0
  245. package/dist/send-request-BsTfRiBC.js.map +1 -0
  246. package/dist/server-tcI-OCyx.js +140 -0
  247. package/dist/server-tcI-OCyx.js.map +1 -0
  248. package/dist/set-request-cookies-BJJhsU4A.js +88 -0
  249. package/dist/set-request-cookies-BJJhsU4A.js.map +1 -0
  250. package/dist/settings-BKk_1lcH.js +455 -0
  251. package/dist/settings-BKk_1lcH.js.map +1 -0
  252. package/dist/sidebar-ceSbYmnt.js +217 -0
  253. package/dist/sidebar-ceSbYmnt.js.map +1 -0
  254. package/dist/store/collections.d.ts +1 -1
  255. package/dist/store/environment.d.ts +1 -1
  256. package/dist/store/events.d.ts +8 -8
  257. package/dist/store/import-spec.d.ts +2 -2
  258. package/dist/store/index.d.ts +2 -2
  259. package/dist/store/index.js +2 -10
  260. package/dist/store/request-example.d.ts +1 -1
  261. package/dist/store/requests.d.ts +1 -1
  262. package/dist/store/security-schemes.d.ts +1 -1
  263. package/dist/store/servers.d.ts +1 -1
  264. package/dist/store/store.d.ts +7 -7
  265. package/dist/store/tags.d.ts +1 -1
  266. package/dist/store/workspace.d.ts +1 -1
  267. package/dist/store-DpSUVhjp.js +1512 -0
  268. package/dist/store-DpSUVhjp.js.map +1 -0
  269. package/dist/string-template-sS5PtY6T.js +64 -0
  270. package/dist/string-template-sS5PtY6T.js.map +1 -0
  271. package/dist/style.css +10372 -1
  272. package/dist/types/index.js +0 -1
  273. package/dist/use-global-hot-keys-D8Ai8Qbm.js +274 -0
  274. package/dist/use-global-hot-keys-D8Ai8Qbm.js.map +1 -0
  275. package/dist/useSidebar-DLTwHDI-.js +45 -0
  276. package/dist/useSidebar-DLTwHDI-.js.map +1 -0
  277. package/dist/v2/blocks/operation-block/OperationBlock.vue.d.ts +3 -3
  278. package/dist/v2/blocks/operation-block/components/Header.vue.d.ts +2 -2
  279. package/dist/v2/blocks/operation-block/helpers/build-request-security.d.ts +2 -2
  280. package/dist/v2/blocks/operation-block/helpers/build-request.d.ts +2 -2
  281. package/dist/v2/blocks/operation-block/helpers/build-request.d.ts.map +1 -1
  282. package/dist/v2/blocks/operation-block/helpers/har-to-fetch-response.d.ts +1 -1
  283. package/dist/v2/blocks/operation-block/helpers/send-request.d.ts +1 -1
  284. package/dist/v2/blocks/operation-block/index.d.ts +4 -4
  285. package/dist/v2/blocks/operation-block/index.js +20 -11
  286. package/dist/v2/blocks/operation-code-sample/components/OperationCodeSample.vue.d.ts +2 -2
  287. package/dist/v2/blocks/operation-code-sample/helpers/find-client.d.ts +1 -1
  288. package/dist/v2/blocks/operation-code-sample/helpers/generate-client-options.d.ts +1 -1
  289. package/dist/v2/blocks/operation-code-sample/helpers/generate-code-snippet.d.ts +2 -2
  290. package/dist/v2/blocks/operation-code-sample/helpers/get-clients.d.ts +2 -2
  291. package/dist/v2/blocks/operation-code-sample/helpers/get-secrets.d.ts +1 -1
  292. package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/operation-to-har.d.ts +1 -1
  293. package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/process-body.d.ts +1 -1
  294. package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/process-security-schemes.d.ts +1 -1
  295. package/dist/v2/blocks/operation-code-sample/index.d.ts +6 -6
  296. package/dist/v2/blocks/operation-code-sample/index.js +2 -16
  297. package/dist/v2/blocks/request-block/RequestBlock.vue.d.ts +4 -4
  298. package/dist/v2/blocks/request-block/components/RequestCodeSnippet.vue.d.ts +1 -1
  299. package/dist/v2/blocks/request-block/components/RequestParams.vue.d.ts +1 -1
  300. package/dist/v2/blocks/request-block/components/RequestTable.vue.d.ts +1 -1
  301. package/dist/v2/blocks/request-block/helpers/create-parameter-handlers.d.ts +1 -1
  302. package/dist/v2/blocks/request-block/helpers/get-default-headers.d.ts +3 -2
  303. package/dist/v2/blocks/request-block/helpers/get-default-headers.d.ts.map +1 -1
  304. package/dist/v2/blocks/request-block/helpers/get-form-body-rows.d.ts +1 -1
  305. package/dist/v2/blocks/request-block/index.d.ts +1 -1
  306. package/dist/v2/blocks/request-block/index.js +9 -4
  307. package/dist/v2/blocks/response-block/ResponseBlock.vue.d.ts +1 -1
  308. package/dist/v2/blocks/response-block/components/ResponseBodyPreview.vue.d.ts +1 -1
  309. package/dist/v2/blocks/response-block/components/ResponseEmpty.vue.d.ts +1 -1
  310. package/dist/v2/blocks/response-block/index.d.ts +1 -1
  311. package/dist/v2/blocks/response-block/index.js +6 -4
  312. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBar.vue.d.ts +2 -2
  313. package/dist/v2/blocks/scalar-address-bar-block/index.d.ts +2 -2
  314. package/dist/v2/blocks/scalar-address-bar-block/index.js +5 -4
  315. package/dist/v2/blocks/scalar-auth-selector-block/components/AuthSelector.vue.d.ts +3 -3
  316. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuth2.vue.d.ts +1 -1
  317. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTable.vue.d.ts +2 -2
  318. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTableInput.vue.d.ts +1 -1
  319. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthTab.vue.d.ts +1 -1
  320. package/dist/v2/blocks/scalar-auth-selector-block/helpers/fetch-openid-connect-discovery.d.ts +1 -1
  321. package/dist/v2/blocks/scalar-auth-selector-block/helpers/oauth.d.ts +2 -2
  322. package/dist/v2/blocks/scalar-auth-selector-block/helpers/openid-discovery-to-flows.d.ts +1 -1
  323. package/dist/v2/blocks/scalar-auth-selector-block/index.d.ts +4 -4
  324. package/dist/v2/blocks/scalar-auth-selector-block/index.js +6 -8
  325. package/dist/v2/components/code-input/CodeInput.vue.d.ts +1 -1
  326. package/dist/v2/components/code-input/index.d.ts +1 -1
  327. package/dist/v2/components/code-input/index.js +2 -4
  328. package/dist/v2/components/data-table/DataTableInput.vue.d.ts +1 -1
  329. package/dist/v2/components/data-table/DataTableInputSelect.vue.d.ts +1 -1
  330. package/dist/v2/components/data-table/index.d.ts +8 -8
  331. package/dist/v2/components/data-table/index.js +3 -18
  332. package/dist/v2/components/forms/index.d.ts +1 -1
  333. package/dist/v2/components/forms/index.js +2 -4
  334. package/dist/v2/components/layout/index.d.ts +1 -1
  335. package/dist/v2/components/layout/index.js +2 -4
  336. package/dist/v2/components/modals/index.d.ts +1 -1
  337. package/dist/v2/components/modals/index.js +37 -3
  338. package/dist/v2/components/modals/index.js.map +1 -0
  339. package/dist/v2/components/resize/index.d.ts +2 -2
  340. package/dist/v2/components/resize/index.js +2 -6
  341. package/dist/v2/components/server/ServerDropdown.vue.d.ts +1 -1
  342. package/dist/v2/components/server/index.d.ts +1 -1
  343. package/dist/v2/components/server/index.js +2 -4
  344. package/dist/v2/components/sidebar/Sidebar.vue.d.ts +1 -1
  345. package/dist/v2/components/sidebar/index.d.ts +3 -3
  346. package/dist/v2/components/sidebar/index.js +3 -8
  347. package/dist/v2/features/app/App.vue.d.ts +4 -4
  348. package/dist/v2/features/app/components/AppSidebar.vue.d.ts +1 -1
  349. package/dist/v2/features/app/components/index.d.ts +1 -1
  350. package/dist/v2/features/app/components/index.js +10 -5
  351. package/dist/v2/features/app/helpers/create-api-client-app.d.ts +3 -3
  352. package/dist/v2/features/app/helpers/get-route-param.d.ts +1 -1
  353. package/dist/v2/features/app/helpers/routes.d.ts +5 -5
  354. package/dist/v2/features/app/hooks/use-theme.d.ts +1 -1
  355. package/dist/v2/features/app/index.d.ts +8 -8
  356. package/dist/v2/features/app/index.js +3161 -19
  357. package/dist/v2/features/app/index.js.map +1 -0
  358. package/dist/v2/features/collection/DocumentCollection.vue.d.ts +1 -1
  359. package/dist/v2/features/collection/OperationCollection.vue.d.ts +1 -1
  360. package/dist/v2/features/collection/WorkspaceCollection.vue.d.ts +1 -1
  361. package/dist/v2/features/collection/components/Authentication.vue.d.ts +4 -4
  362. package/dist/v2/features/collection/components/Cookies.vue.d.ts +4 -4
  363. package/dist/v2/features/collection/components/Editor/Editor.vue.d.ts +4 -4
  364. package/dist/v2/features/collection/components/Editor/index.d.ts +1 -1
  365. package/dist/v2/features/collection/components/Editor/index.js +2 -4
  366. package/dist/v2/features/collection/components/Environment.vue.d.ts +4 -4
  367. package/dist/v2/features/collection/components/Overview.vue.d.ts +4 -4
  368. package/dist/v2/features/collection/components/Servers.vue.d.ts +4 -4
  369. package/dist/v2/features/collection/components/Settings.vue.d.ts +4 -4
  370. package/dist/v2/features/collection/components/Tabs.vue.d.ts +1 -1
  371. package/dist/v2/features/command-palette/TheCommandPalette.vue.d.ts +1 -1
  372. package/dist/v2/features/command-palette/hooks/use-command-palette-state.d.ts +10 -45
  373. package/dist/v2/features/command-palette/hooks/use-command-palette-state.d.ts.map +1 -1
  374. package/dist/v2/features/command-palette/index.d.ts +2 -2
  375. package/dist/v2/features/command-palette/index.js +3 -6
  376. package/dist/v2/features/editor/helpers/json/create-json-model.d.ts +1 -1
  377. package/dist/v2/features/editor/helpers/json/get-json-ast-node-from-path.d.ts +1 -1
  378. package/dist/v2/features/editor/helpers/json/json-pointer-path.d.ts +1 -1
  379. package/dist/v2/features/editor/helpers/yaml/create-yaml-model.d.ts +1 -1
  380. package/dist/v2/features/editor/helpers/yaml/get-yaml-node-range-from-path.d.ts +1 -1
  381. package/dist/v2/features/editor/hooks/use-editor.d.ts +1 -1
  382. package/dist/v2/features/editor/hooks/use-json-pointer-link-support.d.ts +1 -1
  383. package/dist/v2/features/editor/index.d.ts +4 -4
  384. package/dist/v2/features/editor/index.js +2 -10
  385. package/dist/v2/features/environments/index.d.ts +1 -1
  386. package/dist/v2/features/environments/index.js +4 -4
  387. package/dist/v2/features/global-cookies/index.d.ts +1 -1
  388. package/dist/v2/features/global-cookies/index.js +4 -4
  389. package/dist/v2/features/modal/Modal.vue.d.ts +1 -1
  390. package/dist/v2/features/modal/helpers/create-api-client-modal.d.ts +2 -2
  391. package/dist/v2/features/modal/hooks/use-modal-sidebar.d.ts +1 -1
  392. package/dist/v2/features/modal/index.d.ts +3 -3
  393. package/dist/v2/features/modal/index.js +639 -7
  394. package/dist/v2/features/modal/index.js.map +1 -0
  395. package/dist/v2/features/modal/modal-events.d.ts +1 -1
  396. package/dist/v2/features/operation/Operation.vue.d.ts +2 -2
  397. package/dist/v2/features/operation/index.d.ts +5 -5
  398. package/dist/v2/features/operation/index.js +19 -12
  399. package/dist/v2/features/search/helpers/create-fuse-instance.d.ts +1 -1
  400. package/dist/v2/features/search/helpers/create-search-index.d.ts +1 -1
  401. package/dist/v2/features/search/index.d.ts +1 -1
  402. package/dist/v2/features/search/index.js +2 -4
  403. package/dist/v2/features/settings/index.d.ts +2 -2
  404. package/dist/v2/features/settings/index.js +2 -6
  405. package/dist/v2/helpers/get-active-proxy-url.d.ts +1 -1
  406. package/dist/v2/helpers/get-tab-details.d.ts +1 -1
  407. package/dist/v2/helpers/handle-hotkeys.d.ts +1 -1
  408. package/dist/v2/helpers/index.d.ts +2 -2
  409. package/dist/v2/helpers/index.js +3 -6
  410. package/dist/v2/hooks/use-global-hot-keys.d.ts +1 -1
  411. package/dist/views/Collection/components/EnvironmentForm.vue.d.ts +1 -1
  412. package/dist/views/Collection/components/MarkdownInput.vue.d.ts +1 -1
  413. package/dist/views/Components/CodeSnippet/CodeSnippet.vue.d.ts +1 -1
  414. package/dist/views/Components/CodeSnippet/helpers/get-har-request.d.ts +1 -1
  415. package/dist/views/Components/CodeSnippet/helpers/get-snippet.d.ts +1 -1
  416. package/dist/views/Components/CodeSnippet/index.d.ts +4 -4
  417. package/dist/views/Components/CodeSnippet/index.js +3 -10
  418. package/dist/views/Environment/EnvironmentVariableDropdown.vue.d.ts +1 -1
  419. package/dist/views/Environment/handle-drag.d.ts +1 -1
  420. package/dist/views/Request/Request.vue.d.ts +1 -1
  421. package/dist/views/Request/RequestSection/RequestAuth/OAuth2.vue.d.ts +1 -1
  422. package/dist/views/Request/RequestSection/RequestAuth/OAuthScopesInput.vue.d.ts +1 -1
  423. package/dist/views/Request/RequestSection/RequestAuth/RequestAuth.vue.d.ts +1 -1
  424. package/dist/views/Request/RequestSection/RequestAuth/RequestAuthDataTable.vue.d.ts +1 -1
  425. package/dist/views/Request/RequestSection/RequestAuth/RequestAuthDataTableInput.vue.d.ts +2 -2
  426. package/dist/views/Request/RequestSection/RequestAuth/RequestAuthTab.vue.d.ts +1 -1
  427. package/dist/views/Request/RequestSection/RequestAuth/helpers/restore-auth-from-local-storage.d.ts +1 -1
  428. package/dist/views/Request/RequestSection/RequestAuth/index.d.ts +3 -3
  429. package/dist/views/Request/RequestSection/RequestAuth/index.js +4 -8
  430. package/dist/views/Request/RequestSection/RequestBody.vue.d.ts +1 -1
  431. package/dist/views/Request/RequestSection/RequestCodeExample.vue.d.ts +1 -1
  432. package/dist/views/Request/RequestSection/RequestParams.vue.d.ts +1 -1
  433. package/dist/views/Request/RequestSection/RequestPathParams.vue.d.ts +1 -1
  434. package/dist/views/Request/RequestSection/RequestSection.vue.d.ts +1 -1
  435. package/dist/views/Request/RequestSection/RequestTable.vue.d.ts +1 -1
  436. package/dist/views/Request/RequestSection/helpers/update-scheme.d.ts +1 -1
  437. package/dist/views/Request/RequestSection/index.d.ts +2 -2
  438. package/dist/views/Request/RequestSection/index.js +42 -5
  439. package/dist/views/Request/RequestSection/index.js.map +1 -0
  440. package/dist/views/Request/RequestSidebarItem.vue.d.ts +1 -1
  441. package/dist/views/Request/RequestSidebarItemMenu.vue.d.ts +3 -3
  442. package/dist/views/Request/RequestSubpageHeader.vue.d.ts +1 -1
  443. package/dist/views/Request/ResponseSection/ResponseBodyPreview.vue.d.ts +1 -1
  444. package/dist/views/Request/ResponseSection/ResponseSection.vue.d.ts +1 -1
  445. package/dist/views/Request/ResponseSection/index.d.ts +2 -2
  446. package/dist/views/Request/ResponseSection/index.js +7 -6
  447. package/dist/views/Request/components/index.d.ts +1 -1
  448. package/dist/views/Request/components/index.js +2 -4
  449. package/dist/views/Request/consts/index.d.ts +2 -2
  450. package/dist/views/Request/consts/index.js +2 -10
  451. package/dist/views/Request/handle-drag.d.ts +2 -2
  452. package/dist/views/Request/libs/auth.d.ts +1 -1
  453. package/dist/views/Request/libs/index.d.ts +3 -3
  454. package/dist/views/Request/libs/index.js +3 -22
  455. package/dist/views/Request/libs/oauth2.d.ts +1 -1
  456. package/dist/views/Request/libs/watch-mode.d.ts +2 -2
  457. package/dist/views/Request/types/index.js +0 -1
  458. package/dist/watch-mode-Dbaqd9bG.js +375 -0
  459. package/dist/watch-mode-Dbaqd9bG.js.map +1 -0
  460. package/package.json +29 -33
  461. package/dist/_virtual/_plugin-vue_export-helper.js +0 -9
  462. package/dist/analytics.js +0 -9
  463. package/dist/assets/computer.ascii.js +0 -34
  464. package/dist/assets/keycap.ascii.js +0 -25
  465. package/dist/assets/rabbit.ascii.js +0 -11
  466. package/dist/assets/rabbitjump.ascii.js +0 -11
  467. package/dist/components/AddressBar/AddressBar.vue.js +0 -7
  468. package/dist/components/AddressBar/AddressBar.vue2.js +0 -160
  469. package/dist/components/AddressBar/AddressBarHistory.vue.js +0 -7
  470. package/dist/components/AddressBar/AddressBarHistory.vue2.js +0 -98
  471. package/dist/components/AddressBar/httpStatusCodeColors.js +0 -38
  472. package/dist/components/CodeInput/CodeInput.vue.js +0 -8
  473. package/dist/components/CodeInput/CodeInput.vue2.js +0 -209
  474. package/dist/components/CodeInput/codeVariableWidget.js +0 -111
  475. package/dist/components/CommandPalette/CommandActionForm.vue.js +0 -44
  476. package/dist/components/CommandPalette/CommandActionForm.vue2.js +0 -4
  477. package/dist/components/CommandPalette/CommandActionInput.vue.js +0 -52
  478. package/dist/components/CommandPalette/CommandActionInput.vue2.js +0 -4
  479. package/dist/components/CommandPalette/CommandPaletteCollection.vue.js +0 -80
  480. package/dist/components/CommandPalette/CommandPaletteCollection.vue2.js +0 -4
  481. package/dist/components/CommandPalette/CommandPaletteExample.vue.js +0 -116
  482. package/dist/components/CommandPalette/CommandPaletteExample.vue2.js +0 -4
  483. package/dist/components/CommandPalette/CommandPaletteImport.vue.js +0 -217
  484. package/dist/components/CommandPalette/CommandPaletteImport.vue2.js +0 -4
  485. package/dist/components/CommandPalette/CommandPaletteImportCurl.vue.js +0 -7
  486. package/dist/components/CommandPalette/CommandPaletteImportCurl.vue2.js +0 -136
  487. package/dist/components/CommandPalette/CommandPaletteServer.vue.js +0 -123
  488. package/dist/components/CommandPalette/CommandPaletteServer.vue2.js +0 -4
  489. package/dist/components/CommandPalette/CommandPaletteTag.vue.js +0 -84
  490. package/dist/components/CommandPalette/CommandPaletteTag.vue2.js +0 -4
  491. package/dist/components/CommandPalette/CommandPaletteWorkspace.vue.js +0 -48
  492. package/dist/components/CommandPalette/CommandPaletteWorkspace.vue2.js +0 -4
  493. package/dist/components/CommandPalette/TheCommandPalette.vue.js +0 -7
  494. package/dist/components/CommandPalette/TheCommandPalette.vue2.js +0 -305
  495. package/dist/components/CommandPalette/WatchModeToggle.vue.js +0 -39
  496. package/dist/components/CommandPalette/WatchModeToggle.vue2.js +0 -4
  497. package/dist/components/DataTable/DataTable.vue.js +0 -38
  498. package/dist/components/DataTable/DataTable.vue2.js +0 -4
  499. package/dist/components/DataTable/DataTableCell.vue.js +0 -26
  500. package/dist/components/DataTable/DataTableCell.vue2.js +0 -4
  501. package/dist/components/DataTable/DataTableCheckbox.vue.js +0 -53
  502. package/dist/components/DataTable/DataTableCheckbox.vue2.js +0 -4
  503. package/dist/components/DataTable/DataTableHeader.vue.js +0 -18
  504. package/dist/components/DataTable/DataTableHeader.vue2.js +0 -4
  505. package/dist/components/DataTable/DataTableInput.vue.js +0 -7
  506. package/dist/components/DataTable/DataTableInput.vue2.js +0 -124
  507. package/dist/components/DataTable/DataTableInputSelect.vue.js +0 -146
  508. package/dist/components/DataTable/DataTableInputSelect.vue2.js +0 -4
  509. package/dist/components/DataTable/DataTableRow.vue.js +0 -12
  510. package/dist/components/DataTable/DataTableText.vue.js +0 -23
  511. package/dist/components/DataTable/DataTableText.vue2.js +0 -4
  512. package/dist/components/EmptyState.vue.js +0 -7
  513. package/dist/components/EmptyState.vue2.js +0 -42
  514. package/dist/components/EnvironmentSelector/EnvironmentSelector.vue.js +0 -113
  515. package/dist/components/EnvironmentSelector/EnvironmentSelector.vue2.js +0 -4
  516. package/dist/components/Form/Form.vue.js +0 -83
  517. package/dist/components/Form/Form.vue2.js +0 -4
  518. package/dist/components/Form/LabelInput.vue.js +0 -7
  519. package/dist/components/Form/LabelInput.vue2.js +0 -42
  520. package/dist/components/HelpfulLink.vue.js +0 -20
  521. package/dist/components/HelpfulLink.vue2.js +0 -4
  522. package/dist/components/HttpMethod/HttpMethod.vue.js +0 -7
  523. package/dist/components/HttpMethod/HttpMethod.vue2.js +0 -62
  524. package/dist/components/IconSelector.vue.js +0 -75
  525. package/dist/components/IconSelector.vue2.js +0 -4
  526. package/dist/components/ImportCollection/DropEventListener.vue.js +0 -81
  527. package/dist/components/ImportCollection/DropEventListener.vue2.js +0 -4
  528. package/dist/components/ImportCollection/ImportCollectionListener.vue.js +0 -77
  529. package/dist/components/ImportCollection/ImportCollectionListener.vue2.js +0 -4
  530. package/dist/components/ImportCollection/ImportCollectionModal.vue.js +0 -208
  531. package/dist/components/ImportCollection/ImportCollectionModal.vue3.js +0 -5
  532. package/dist/components/ImportCollection/ImportNowButton.vue.js +0 -73
  533. package/dist/components/ImportCollection/ImportNowButton.vue2.js +0 -4
  534. package/dist/components/ImportCollection/IntegrationLogo.vue.js +0 -44
  535. package/dist/components/ImportCollection/IntegrationLogo.vue2.js +0 -4
  536. package/dist/components/ImportCollection/PasteEventListener.vue.js +0 -24
  537. package/dist/components/ImportCollection/PasteEventListener.vue2.js +0 -4
  538. package/dist/components/ImportCollection/PrefetchError.vue.js +0 -27
  539. package/dist/components/ImportCollection/PrefetchError.vue2.js +0 -4
  540. package/dist/components/ImportCollection/UrlQueryParameterChecker.vue.js +0 -20
  541. package/dist/components/ImportCollection/UrlQueryParameterChecker.vue2.js +0 -4
  542. package/dist/components/ImportCollection/WorkspaceSelector.vue.js +0 -134
  543. package/dist/components/ImportCollection/WorkspaceSelector.vue2.js +0 -4
  544. package/dist/components/ImportCollection/hooks/useUrlPrefetcher.js +0 -106
  545. package/dist/components/ImportCollection/utils/get-openapi-version.js +0 -20
  546. package/dist/components/ImportCollection/utils/import-collection.js +0 -29
  547. package/dist/components/ImportCollection/utils/is-document.js +0 -9
  548. package/dist/components/ImportCollection/utils/is-url.js +0 -9
  549. package/dist/components/ImportCollection/utils/workspace-store-is-empty.js +0 -7
  550. package/dist/components/OpenApiClientButton.vue.js +0 -7
  551. package/dist/components/OpenApiClientButton.vue2.js +0 -48
  552. package/dist/components/ScalarAsciiArt.vue.js +0 -7
  553. package/dist/components/ScalarAsciiArt.vue2.js +0 -37
  554. package/dist/components/Search/useSearch.js +0 -78
  555. package/dist/components/SectionFilter.vue.js +0 -7
  556. package/dist/components/SectionFilter.vue2.js +0 -64
  557. package/dist/components/SectionFilterButton.vue.js +0 -23
  558. package/dist/components/SectionFilterButton.vue2.js +0 -4
  559. package/dist/components/Server/ServerDropdown.vue.js +0 -132
  560. package/dist/components/Server/ServerDropdown.vue2.js +0 -4
  561. package/dist/components/Server/ServerDropdownItem.vue.js +0 -7
  562. package/dist/components/Server/ServerDropdownItem.vue2.js +0 -84
  563. package/dist/components/Server/ServerSelector.vue.js +0 -82
  564. package/dist/components/Server/ServerSelector.vue2.js +0 -4
  565. package/dist/components/Server/ServerVariablesForm.vue.js +0 -49
  566. package/dist/components/Server/ServerVariablesForm.vue2.js +0 -4
  567. package/dist/components/Server/ServerVariablesSelect.vue.js +0 -54
  568. package/dist/components/Server/ServerVariablesSelect.vue2.js +0 -4
  569. package/dist/components/Server/ServerVariablesTextbox.vue.js +0 -29
  570. package/dist/components/Server/ServerVariablesTextbox.vue2.js +0 -4
  571. package/dist/components/SideNav/DownloadAppButton.vue.js +0 -7
  572. package/dist/components/SideNav/DownloadAppButton.vue2.js +0 -33
  573. package/dist/components/SideNav/SideHelp.vue.js +0 -127
  574. package/dist/components/SideNav/SideHelp.vue2.js +0 -4
  575. package/dist/components/SideNav/SideNav.vue.js +0 -96
  576. package/dist/components/SideNav/SideNav.vue2.js +0 -4
  577. package/dist/components/SideNav/SideNavGroup.vue.js +0 -16
  578. package/dist/components/SideNav/SideNavGroup.vue2.js +0 -4
  579. package/dist/components/SideNav/SideNavLink.vue.js +0 -39
  580. package/dist/components/SideNav/SideNavLink.vue2.js +0 -4
  581. package/dist/components/SideNav/SideNavRouterLink.vue.js +0 -27
  582. package/dist/components/SideNav/SideNavRouterLink.vue2.js +0 -4
  583. package/dist/components/Sidebar/Actions/DeleteSidebarListElement.vue.js +0 -30
  584. package/dist/components/Sidebar/Actions/DeleteSidebarListElement.vue2.js +0 -4
  585. package/dist/components/Sidebar/Actions/EditSidebarListCollection.vue.js +0 -58
  586. package/dist/components/Sidebar/Actions/EditSidebarListCollection.vue2.js +0 -4
  587. package/dist/components/Sidebar/Actions/EditSidebarListElement.vue.js +0 -29
  588. package/dist/components/Sidebar/Actions/EditSidebarListElement.vue2.js +0 -4
  589. package/dist/components/Sidebar/Actions/SidebarListElementForm.vue.js +0 -46
  590. package/dist/components/Sidebar/Actions/SidebarListElementForm.vue2.js +0 -4
  591. package/dist/components/Sidebar/Sidebar.vue.js +0 -7
  592. package/dist/components/Sidebar/Sidebar.vue2.js +0 -63
  593. package/dist/components/Sidebar/SidebarButton.vue.js +0 -33
  594. package/dist/components/Sidebar/SidebarButton.vue2.js +0 -4
  595. package/dist/components/Sidebar/SidebarList.vue.js +0 -12
  596. package/dist/components/Sidebar/SidebarListElement.vue.js +0 -8
  597. package/dist/components/Sidebar/SidebarListElement.vue2.js +0 -94
  598. package/dist/components/Sidebar/SidebarListElementActions.vue.js +0 -86
  599. package/dist/components/Sidebar/SidebarListElementActions.vue2.js +0 -4
  600. package/dist/components/Sidebar/SidebarToggle.vue.js +0 -49
  601. package/dist/components/Sidebar/SidebarToggle.vue2.js +0 -4
  602. package/dist/components/TopNav/TopNav.vue.js +0 -210
  603. package/dist/components/TopNav/TopNav.vue2.js +0 -4
  604. package/dist/components/TopNav/TopNavItem.vue.js +0 -7
  605. package/dist/components/TopNav/TopNavItem.vue2.js +0 -138
  606. package/dist/components/ViewLayout/ViewLayout.vue.js +0 -18
  607. package/dist/components/ViewLayout/ViewLayout.vue2.js +0 -4
  608. package/dist/components/ViewLayout/ViewLayoutCollapse.vue.js +0 -92
  609. package/dist/components/ViewLayout/ViewLayoutCollapse.vue2.js +0 -4
  610. package/dist/components/ViewLayout/ViewLayoutContent.vue.js +0 -12
  611. package/dist/components/ViewLayout/ViewLayoutSection.vue.js +0 -23
  612. package/dist/components/ViewLayout/ViewLayoutSection.vue2.js +0 -4
  613. package/dist/constants.js +0 -40
  614. package/dist/data/httpHeaders.js +0 -537
  615. package/dist/hooks/useAnalytics.js +0 -11
  616. package/dist/hooks/useClientConfig.js +0 -7
  617. package/dist/hooks/useFileDialog.js +0 -21
  618. package/dist/hooks/useLayout.js +0 -8
  619. package/dist/hooks/useResponseBody.js +0 -20
  620. package/dist/hooks/useSidebar.js +0 -28
  621. package/dist/layouts/App/ApiClientApp.vue.js +0 -70
  622. package/dist/layouts/App/ApiClientApp.vue3.js +0 -5
  623. package/dist/layouts/App/MainLayout.vue.js +0 -26
  624. package/dist/layouts/App/MainLayout.vue2.js +0 -4
  625. package/dist/layouts/App/create-api-client-app.js +0 -35
  626. package/dist/layouts/App/hotkeys.js +0 -21
  627. package/dist/layouts/Modal/ApiClientModal.vue.js +0 -30
  628. package/dist/layouts/Modal/ApiClientModal.vue2.js +0 -4
  629. package/dist/layouts/Modal/create-api-client-modal.js +0 -32
  630. package/dist/layouts/Web/ApiClientWeb.vue.js +0 -64
  631. package/dist/layouts/Web/ApiClientWeb.vue3.js +0 -5
  632. package/dist/layouts/Web/create-api-client-web.js +0 -32
  633. package/dist/libs/create-client.js +0 -189
  634. package/dist/libs/electron.js +0 -4
  635. package/dist/libs/env-helpers.js +0 -6
  636. package/dist/libs/environment-parser.js +0 -18
  637. package/dist/libs/errors.js +0 -16
  638. package/dist/libs/event-bus.js +0 -32
  639. package/dist/libs/extractAttachmentFilename.js +0 -18
  640. package/dist/libs/find-request.js +0 -23
  641. package/dist/libs/formatters.js +0 -10
  642. package/dist/libs/get-request-uid-by-path-method.js +0 -18
  643. package/dist/libs/getOpenApiDocumentDetails.js +0 -40
  644. package/dist/libs/hot-keys.js +0 -44
  645. package/dist/libs/importers/curl.js +0 -53
  646. package/dist/libs/isUrl.js +0 -7
  647. package/dist/libs/local-storage.js +0 -41
  648. package/dist/libs/normalize-headers.js +0 -27
  649. package/dist/libs/parse-curl.js +0 -59
  650. package/dist/libs/postman.js +0 -37
  651. package/dist/libs/send-request/build-request-security.js +0 -35
  652. package/dist/libs/send-request/create-fetch-body.js +0 -25
  653. package/dist/libs/send-request/create-fetch-headers.js +0 -11
  654. package/dist/libs/send-request/create-fetch-query-params.js +0 -33
  655. package/dist/libs/send-request/create-request-operation.js +0 -140
  656. package/dist/libs/send-request/decode-buffer.js +0 -9
  657. package/dist/libs/send-request/set-request-cookies.js +0 -58
  658. package/dist/libs/string-template.js +0 -42
  659. package/dist/libs/validate-parameters.js +0 -16
  660. package/dist/plugins/hooks/usePluginManager.js +0 -10
  661. package/dist/plugins/plugin-manager.js +0 -26
  662. package/dist/routes.js +0 -210
  663. package/dist/store/active-entities.js +0 -118
  664. package/dist/store/collections.js +0 -73
  665. package/dist/store/cookies.js +0 -13
  666. package/dist/store/environment.js +0 -32
  667. package/dist/store/events.js +0 -35
  668. package/dist/store/import-spec.js +0 -55
  669. package/dist/store/request-example.js +0 -43
  670. package/dist/store/requests.js +0 -97
  671. package/dist/store/router-params.js +0 -22
  672. package/dist/store/security-schemes.js +0 -55
  673. package/dist/store/servers.js +0 -39
  674. package/dist/store/store.js +0 -144
  675. package/dist/store/tags.js +0 -45
  676. package/dist/store/workspace.js +0 -52
  677. package/dist/v2/blocks/operation-block/OperationBlock.vue.js +0 -242
  678. package/dist/v2/blocks/operation-block/OperationBlock.vue2.js +0 -4
  679. package/dist/v2/blocks/operation-block/components/Header.vue.js +0 -7
  680. package/dist/v2/blocks/operation-block/components/Header.vue2.js +0 -100
  681. package/dist/v2/blocks/operation-block/helpers/build-request-body.js +0 -40
  682. package/dist/v2/blocks/operation-block/helpers/build-request-cookie-header.js +0 -31
  683. package/dist/v2/blocks/operation-block/helpers/build-request-parameters.js +0 -107
  684. package/dist/v2/blocks/operation-block/helpers/build-request-security.js +0 -46
  685. package/dist/v2/blocks/operation-block/helpers/build-request.js +0 -70
  686. package/dist/v2/blocks/operation-block/helpers/de-serialize-parameter.js +0 -25
  687. package/dist/v2/blocks/operation-block/helpers/decode-buffer.js +0 -9
  688. package/dist/v2/blocks/operation-block/helpers/filter-global-cookies.js +0 -14
  689. package/dist/v2/blocks/operation-block/helpers/get-cookie-header-keys.js +0 -4
  690. package/dist/v2/blocks/operation-block/helpers/get-environment-variables.js +0 -7
  691. package/dist/v2/blocks/operation-block/helpers/get-example.js +0 -36
  692. package/dist/v2/blocks/operation-block/helpers/get-resolved-url.js +0 -17
  693. package/dist/v2/blocks/operation-block/helpers/get-selected-body-content-type.js +0 -4
  694. package/dist/v2/blocks/operation-block/helpers/get-server-url.js +0 -12
  695. package/dist/v2/blocks/operation-block/helpers/har-to-fetch-request.js +0 -31
  696. package/dist/v2/blocks/operation-block/helpers/har-to-fetch-response.js +0 -43
  697. package/dist/v2/blocks/operation-block/helpers/response-cache.js +0 -12
  698. package/dist/v2/blocks/operation-block/helpers/send-request.js +0 -122
  699. package/dist/v2/blocks/operation-block/helpers/serialize-parameter.js +0 -49
  700. package/dist/v2/blocks/operation-block/helpers/validate-path-parameters.js +0 -17
  701. package/dist/v2/blocks/operation-code-sample/components/ExamplePicker.vue.js +0 -56
  702. package/dist/v2/blocks/operation-code-sample/components/ExamplePicker.vue2.js +0 -4
  703. package/dist/v2/blocks/operation-code-sample/components/HttpMethod.vue.js +0 -30
  704. package/dist/v2/blocks/operation-code-sample/components/HttpMethod.vue2.js +0 -4
  705. package/dist/v2/blocks/operation-code-sample/components/OperationCodeSample.vue.js +0 -7
  706. package/dist/v2/blocks/operation-code-sample/components/OperationCodeSample.vue2.js +0 -227
  707. package/dist/v2/blocks/operation-code-sample/helpers/find-client.js +0 -22
  708. package/dist/v2/blocks/operation-code-sample/helpers/generate-client-options.js +0 -27
  709. package/dist/v2/blocks/operation-code-sample/helpers/generate-code-snippet.js +0 -40
  710. package/dist/v2/blocks/operation-code-sample/helpers/get-clients.js +0 -20
  711. package/dist/v2/blocks/operation-code-sample/helpers/get-custom-code-samples.js +0 -4
  712. package/dist/v2/blocks/operation-code-sample/helpers/get-example-from-schema.js +0 -302
  713. package/dist/v2/blocks/operation-code-sample/helpers/get-resolved-ref-deep.js +0 -28
  714. package/dist/v2/blocks/operation-code-sample/helpers/get-secrets.js +0 -10
  715. package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/operation-to-har.js +0 -67
  716. package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/process-body.js +0 -66
  717. package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/process-parameters.js +0 -172
  718. package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/process-security-schemes.js +0 -55
  719. package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/process-server-url.js +0 -18
  720. package/dist/v2/blocks/request-block/RequestBlock.vue.js +0 -7
  721. package/dist/v2/blocks/request-block/RequestBlock.vue2.js +0 -347
  722. package/dist/v2/blocks/request-block/components/RequestBody.vue.js +0 -7
  723. package/dist/v2/blocks/request-block/components/RequestBody.vue2.js +0 -191
  724. package/dist/v2/blocks/request-block/components/RequestBodyForm.vue.js +0 -84
  725. package/dist/v2/blocks/request-block/components/RequestBodyForm.vue2.js +0 -4
  726. package/dist/v2/blocks/request-block/components/RequestCodeSnippet.vue.js +0 -135
  727. package/dist/v2/blocks/request-block/components/RequestCodeSnippet.vue2.js +0 -4
  728. package/dist/v2/blocks/request-block/components/RequestParams.vue.js +0 -78
  729. package/dist/v2/blocks/request-block/components/RequestParams.vue2.js +0 -4
  730. package/dist/v2/blocks/request-block/components/RequestTable.vue.js +0 -7
  731. package/dist/v2/blocks/request-block/components/RequestTable.vue2.js +0 -74
  732. package/dist/v2/blocks/request-block/components/RequestTableRow.vue.js +0 -204
  733. package/dist/v2/blocks/request-block/components/RequestTableRow.vue2.js +0 -4
  734. package/dist/v2/blocks/request-block/components/RequestTableTooltip.vue.js +0 -7
  735. package/dist/v2/blocks/request-block/components/RequestTableTooltip.vue2.js +0 -63
  736. package/dist/v2/blocks/request-block/helpers/create-parameter-handlers.js +0 -55
  737. package/dist/v2/blocks/request-block/helpers/files.js +0 -7
  738. package/dist/v2/blocks/request-block/helpers/get-default-headers.js +0 -26
  739. package/dist/v2/blocks/request-block/helpers/get-form-body-rows.js +0 -29
  740. package/dist/v2/blocks/request-block/helpers/get-parameter-content.js +0 -9
  741. package/dist/v2/blocks/request-block/helpers/get-parameter-schema.js +0 -6
  742. package/dist/v2/blocks/request-block/helpers/get-request-body-example.js +0 -16
  743. package/dist/v2/blocks/request-block/helpers/group-by.js +0 -10
  744. package/dist/v2/blocks/request-block/helpers/is-param-disabled.js +0 -7
  745. package/dist/v2/blocks/request-block/helpers/validate-parameter.js +0 -32
  746. package/dist/v2/blocks/response-block/ResponseBlock.vue.js +0 -7
  747. package/dist/v2/blocks/response-block/ResponseBlock.vue2.js +0 -180
  748. package/dist/v2/blocks/response-block/components/Headers.vue.js +0 -96
  749. package/dist/v2/blocks/response-block/components/Headers.vue2.js +0 -4
  750. package/dist/v2/blocks/response-block/components/ResponseBody.vue.js +0 -7
  751. package/dist/v2/blocks/response-block/components/ResponseBody.vue2.js +0 -87
  752. package/dist/v2/blocks/response-block/components/ResponseBodyDownload.vue.js +0 -36
  753. package/dist/v2/blocks/response-block/components/ResponseBodyDownload.vue2.js +0 -4
  754. package/dist/v2/blocks/response-block/components/ResponseBodyInfo.vue.js +0 -14
  755. package/dist/v2/blocks/response-block/components/ResponseBodyPreview.vue.js +0 -7
  756. package/dist/v2/blocks/response-block/components/ResponseBodyPreview.vue2.js +0 -63
  757. package/dist/v2/blocks/response-block/components/ResponseBodyRaw.vue.js +0 -7
  758. package/dist/v2/blocks/response-block/components/ResponseBodyRaw.vue2.js +0 -41
  759. package/dist/v2/blocks/response-block/components/ResponseBodyStreaming.vue.js +0 -94
  760. package/dist/v2/blocks/response-block/components/ResponseBodyStreaming.vue2.js +0 -4
  761. package/dist/v2/blocks/response-block/components/ResponseBodyToggle.vue.js +0 -25
  762. package/dist/v2/blocks/response-block/components/ResponseBodyToggle.vue2.js +0 -4
  763. package/dist/v2/blocks/response-block/components/ResponseBodyVirtual.vue.js +0 -52
  764. package/dist/v2/blocks/response-block/components/ResponseBodyVirtual.vue3.js +0 -5
  765. package/dist/v2/blocks/response-block/components/ResponseCookies.vue.js +0 -54
  766. package/dist/v2/blocks/response-block/components/ResponseCookies.vue2.js +0 -4
  767. package/dist/v2/blocks/response-block/components/ResponseEmpty.vue.js +0 -7
  768. package/dist/v2/blocks/response-block/components/ResponseEmpty.vue2.js +0 -79
  769. package/dist/v2/blocks/response-block/components/ResponseLoadingOverlay.vue.js +0 -7
  770. package/dist/v2/blocks/response-block/components/ResponseLoadingOverlay.vue2.js +0 -46
  771. package/dist/v2/blocks/response-block/components/ResponseMetaInformation.vue.js +0 -67
  772. package/dist/v2/blocks/response-block/components/ResponseMetaInformation.vue2.js +0 -4
  773. package/dist/v2/blocks/response-block/helpers/extract-filename.js +0 -18
  774. package/dist/v2/blocks/response-block/helpers/get-content-length.js +0 -12
  775. package/dist/v2/blocks/response-block/helpers/media-types.js +0 -126
  776. package/dist/v2/blocks/response-block/helpers/parse-set-cookie.js +0 -12
  777. package/dist/v2/blocks/response-block/helpers/process-response-body.js +0 -16
  778. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBar.vue.js +0 -7
  779. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBar.vue2.js +0 -208
  780. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBarHistory.vue.js +0 -7
  781. package/dist/v2/blocks/scalar-address-bar-block/components/AddressBarHistory.vue2.js +0 -95
  782. package/dist/v2/blocks/scalar-address-bar-block/components/EnvironmentSelector.vue.js +0 -145
  783. package/dist/v2/blocks/scalar-address-bar-block/components/EnvironmentSelector.vue2.js +0 -4
  784. package/dist/v2/blocks/scalar-address-bar-block/components/httpStatusCodeColors.js +0 -38
  785. package/dist/v2/blocks/scalar-address-bar-block/hooks/use-loading-animation.js +0 -25
  786. package/dist/v2/blocks/scalar-auth-selector-block/components/AuthSelector.vue.js +0 -184
  787. package/dist/v2/blocks/scalar-auth-selector-block/components/AuthSelector.vue2.js +0 -4
  788. package/dist/v2/blocks/scalar-auth-selector-block/components/DeleteRequestAuthModal.vue.js +0 -51
  789. package/dist/v2/blocks/scalar-auth-selector-block/components/DeleteRequestAuthModal.vue2.js +0 -4
  790. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuth2.vue.js +0 -330
  791. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuth2.vue2.js +0 -4
  792. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesAddModal.vue.js +0 -7
  793. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesAddModal.vue2.js +0 -76
  794. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesInput.vue.js +0 -165
  795. package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesInput.vue3.js +0 -5
  796. package/dist/v2/blocks/scalar-auth-selector-block/components/OpenIDConnect.vue.js +0 -91
  797. package/dist/v2/blocks/scalar-auth-selector-block/components/OpenIDConnect.vue2.js +0 -4
  798. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTable.vue.js +0 -83
  799. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTable.vue2.js +0 -4
  800. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTableInput.vue.js +0 -46
  801. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTableInput.vue2.js +0 -4
  802. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthTab.vue.js +0 -244
  803. package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthTab.vue2.js +0 -4
  804. package/dist/v2/blocks/scalar-auth-selector-block/helpers/auth-options.js +0 -97
  805. package/dist/v2/blocks/scalar-auth-selector-block/helpers/extract-security-scheme-secrets.js +0 -135
  806. package/dist/v2/blocks/scalar-auth-selector-block/helpers/fetch-openid-connect-discovery.js +0 -35
  807. package/dist/v2/blocks/scalar-auth-selector-block/helpers/is-auth-optional.js +0 -7
  808. package/dist/v2/blocks/scalar-auth-selector-block/helpers/merge-security.js +0 -23
  809. package/dist/v2/blocks/scalar-auth-selector-block/helpers/oauth.js +0 -139
  810. package/dist/v2/blocks/scalar-auth-selector-block/helpers/openid-discovery-to-flows.js +0 -27
  811. package/dist/v2/blocks/scalar-auth-selector-block/helpers/security-scheme.js +0 -64
  812. package/dist/v2/components/callout/Callout.vue.js +0 -7
  813. package/dist/v2/components/callout/Callout.vue2.js +0 -43
  814. package/dist/v2/components/code-input/CodeInput.vue.js +0 -8
  815. package/dist/v2/components/code-input/CodeInput.vue2.js +0 -213
  816. package/dist/v2/components/code-input/code-variable-widget.js +0 -106
  817. package/dist/v2/components/data-table/DataTable.vue.js +0 -38
  818. package/dist/v2/components/data-table/DataTable.vue2.js +0 -4
  819. package/dist/v2/components/data-table/DataTableCell.vue.js +0 -26
  820. package/dist/v2/components/data-table/DataTableCell.vue2.js +0 -4
  821. package/dist/v2/components/data-table/DataTableCheckbox.vue.js +0 -53
  822. package/dist/v2/components/data-table/DataTableCheckbox.vue2.js +0 -4
  823. package/dist/v2/components/data-table/DataTableHeader.vue.js +0 -18
  824. package/dist/v2/components/data-table/DataTableHeader.vue2.js +0 -4
  825. package/dist/v2/components/data-table/DataTableInput.vue.js +0 -7
  826. package/dist/v2/components/data-table/DataTableInput.vue2.js +0 -121
  827. package/dist/v2/components/data-table/DataTableInputSelect.vue.js +0 -149
  828. package/dist/v2/components/data-table/DataTableInputSelect.vue2.js +0 -4
  829. package/dist/v2/components/data-table/DataTableRow.vue.js +0 -12
  830. package/dist/v2/components/data-table/DataTableText.vue.js +0 -23
  831. package/dist/v2/components/data-table/DataTableText.vue2.js +0 -4
  832. package/dist/v2/components/forms/ConfirmationForm.vue.js +0 -45
  833. package/dist/v2/components/forms/ConfirmationForm.vue2.js +0 -4
  834. package/dist/v2/components/layout/CollapsibleSection.vue.js +0 -89
  835. package/dist/v2/components/layout/CollapsibleSection.vue2.js +0 -4
  836. package/dist/v2/components/layout/ValueEmitter.vue.js +0 -21
  837. package/dist/v2/components/layout/ValueEmitter.vue2.js +0 -4
  838. package/dist/v2/components/modals/DeleteModal.vue.js +0 -31
  839. package/dist/v2/components/modals/DeleteModal.vue2.js +0 -4
  840. package/dist/v2/components/modals/ModalClientContainer.vue.js +0 -7
  841. package/dist/v2/components/modals/ModalClientContainer.vue2.js +0 -60
  842. package/dist/v2/components/resize/Resize.vue.js +0 -8
  843. package/dist/v2/components/resize/Resize.vue2.js +0 -36
  844. package/dist/v2/components/resize/use-split-resize.js +0 -57
  845. package/dist/v2/components/server/ServerDropdown.vue.js +0 -91
  846. package/dist/v2/components/server/ServerDropdown.vue2.js +0 -4
  847. package/dist/v2/components/server/ServerDropdownItem.vue.js +0 -7
  848. package/dist/v2/components/server/ServerDropdownItem.vue2.js +0 -49
  849. package/dist/v2/components/sidebar/Sidebar.vue.js +0 -115
  850. package/dist/v2/components/sidebar/Sidebar.vue2.js +0 -4
  851. package/dist/v2/components/sidebar/SidebarMenu.vue.js +0 -52
  852. package/dist/v2/components/sidebar/SidebarMenu.vue2.js +0 -4
  853. package/dist/v2/components/sidebar/SidebarToggle.vue.js +0 -52
  854. package/dist/v2/components/sidebar/SidebarToggle.vue2.js +0 -4
  855. package/dist/v2/features/app/App.vue.js +0 -152
  856. package/dist/v2/features/app/App.vue3.js +0 -5
  857. package/dist/v2/features/app/app-events.js +0 -251
  858. package/dist/v2/features/app/app-state.js +0 -415
  859. package/dist/v2/features/app/components/AppSidebar.vue.js +0 -7
  860. package/dist/v2/features/app/components/AppSidebar.vue2.js +0 -304
  861. package/dist/v2/features/app/components/CreateWorkspaceModal.vue.js +0 -56
  862. package/dist/v2/features/app/components/CreateWorkspaceModal.vue2.js +0 -4
  863. package/dist/v2/features/app/components/DesktopTab.vue.js +0 -7
  864. package/dist/v2/features/app/components/DesktopTab.vue2.js +0 -134
  865. package/dist/v2/features/app/components/DesktopTabs.vue.js +0 -56
  866. package/dist/v2/features/app/components/DesktopTabs.vue2.js +0 -4
  867. package/dist/v2/features/app/components/DownloadAppButton.vue.js +0 -7
  868. package/dist/v2/features/app/components/DownloadAppButton.vue2.js +0 -19
  869. package/dist/v2/features/app/components/SidebarItemMenu.vue.js +0 -185
  870. package/dist/v2/features/app/components/SidebarItemMenu.vue2.js +0 -4
  871. package/dist/v2/features/app/components/SplashScreen.vue.js +0 -7
  872. package/dist/v2/features/app/components/SplashScreen.vue2.js +0 -18
  873. package/dist/v2/features/app/helpers/create-api-client-app.js +0 -36
  874. package/dist/v2/features/app/helpers/filter-workspaces.js +0 -5
  875. package/dist/v2/features/app/helpers/get-route-param.js +0 -9
  876. package/dist/v2/features/app/helpers/group-workspaces.js +0 -23
  877. package/dist/v2/features/app/helpers/routes.js +0 -157
  878. package/dist/v2/features/app/hooks/use-document-watcher.js +0 -66
  879. package/dist/v2/features/app/hooks/use-theme.js +0 -48
  880. package/dist/v2/features/collection/DocumentCollection.vue.js +0 -336
  881. package/dist/v2/features/collection/DocumentCollection.vue3.js +0 -5
  882. package/dist/v2/features/collection/OperationCollection.vue.js +0 -86
  883. package/dist/v2/features/collection/OperationCollection.vue2.js +0 -4
  884. package/dist/v2/features/collection/WorkspaceCollection.vue.js +0 -68
  885. package/dist/v2/features/collection/WorkspaceCollection.vue2.js +0 -4
  886. package/dist/v2/features/collection/components/Authentication.vue.js +0 -7
  887. package/dist/v2/features/collection/components/Authentication.vue2.js +0 -154
  888. package/dist/v2/features/collection/components/Cookies.vue.js +0 -52
  889. package/dist/v2/features/collection/components/Cookies.vue2.js +0 -4
  890. package/dist/v2/features/collection/components/Editor/Editor.vue.js +0 -7
  891. package/dist/v2/features/collection/components/Editor/Editor.vue2.js +0 -344
  892. package/dist/v2/features/collection/components/Editor/components/EditorDiagnosticsPanel.vue.js +0 -78
  893. package/dist/v2/features/collection/components/Editor/components/EditorDiagnosticsPanel.vue2.js +0 -4
  894. package/dist/v2/features/collection/components/Editor/components/EditorSavePanel.vue.js +0 -83
  895. package/dist/v2/features/collection/components/Editor/components/EditorSavePanel.vue2.js +0 -4
  896. package/dist/v2/features/collection/components/Editor/helpers/get-diagnostic-counts.js +0 -10
  897. package/dist/v2/features/collection/components/Editor/helpers/get-operation-context.js +0 -5
  898. package/dist/v2/features/collection/components/Editor/helpers/get-visible-diagnostics.js +0 -5
  899. package/dist/v2/features/collection/components/Editor/helpers/parse-editor-object.js +0 -21
  900. package/dist/v2/features/collection/components/Editor/helpers/stringify-document.js +0 -5
  901. package/dist/v2/features/collection/components/Editor/hooks/use-editor-state.js +0 -25
  902. package/dist/v2/features/collection/components/Environment.vue.js +0 -54
  903. package/dist/v2/features/collection/components/Environment.vue2.js +0 -4
  904. package/dist/v2/features/collection/components/Form.vue.js +0 -78
  905. package/dist/v2/features/collection/components/Form.vue2.js +0 -4
  906. package/dist/v2/features/collection/components/LabelInput.vue.js +0 -7
  907. package/dist/v2/features/collection/components/LabelInput.vue2.js +0 -35
  908. package/dist/v2/features/collection/components/Overview.vue.js +0 -7
  909. package/dist/v2/features/collection/components/Overview.vue2.js +0 -208
  910. package/dist/v2/features/collection/components/Servers.vue.js +0 -210
  911. package/dist/v2/features/collection/components/Servers.vue2.js +0 -4
  912. package/dist/v2/features/collection/components/Settings.vue.js +0 -61
  913. package/dist/v2/features/collection/components/Settings.vue2.js +0 -4
  914. package/dist/v2/features/collection/components/SyncConflictResolutionEditor.vue.js +0 -7
  915. package/dist/v2/features/collection/components/SyncConflictResolutionEditor.vue2.js +0 -136
  916. package/dist/v2/features/collection/components/Tabs.vue.js +0 -44
  917. package/dist/v2/features/collection/components/Tabs.vue2.js +0 -4
  918. package/dist/v2/features/collection/helpers/get-default-operation-security-toggle.js +0 -13
  919. package/dist/v2/features/command-palette/TheCommandPalette.vue.js +0 -7
  920. package/dist/v2/features/command-palette/TheCommandPalette.vue2.js +0 -152
  921. package/dist/v2/features/command-palette/components/CommandActionForm.vue.js +0 -48
  922. package/dist/v2/features/command-palette/components/CommandActionForm.vue2.js +0 -4
  923. package/dist/v2/features/command-palette/components/CommandActionInput.vue.js +0 -52
  924. package/dist/v2/features/command-palette/components/CommandActionInput.vue2.js +0 -4
  925. package/dist/v2/features/command-palette/components/CommandPaletteExample.vue.js +0 -211
  926. package/dist/v2/features/command-palette/components/CommandPaletteExample.vue2.js +0 -4
  927. package/dist/v2/features/command-palette/components/CommandPaletteImport.vue.js +0 -182
  928. package/dist/v2/features/command-palette/components/CommandPaletteImport.vue2.js +0 -4
  929. package/dist/v2/features/command-palette/components/CommandPaletteImportCurl.vue.js +0 -7
  930. package/dist/v2/features/command-palette/components/CommandPaletteImportCurl.vue2.js +0 -115
  931. package/dist/v2/features/command-palette/components/CommandPaletteOpenApiDocument.vue.js +0 -78
  932. package/dist/v2/features/command-palette/components/CommandPaletteOpenApiDocument.vue2.js +0 -4
  933. package/dist/v2/features/command-palette/components/CommandPaletteRequest.vue.js +0 -221
  934. package/dist/v2/features/command-palette/components/CommandPaletteRequest.vue2.js +0 -4
  935. package/dist/v2/features/command-palette/components/CommandPaletteTag.vue.js +0 -114
  936. package/dist/v2/features/command-palette/components/CommandPaletteTag.vue2.js +0 -4
  937. package/dist/v2/features/command-palette/components/WatchModeToggle.vue.js +0 -40
  938. package/dist/v2/features/command-palette/components/WatchModeToggle.vue2.js +0 -4
  939. package/dist/v2/features/command-palette/helpers/generate-unique-slug.js +0 -11
  940. package/dist/v2/features/command-palette/helpers/get-openapi-document-details.js +0 -31
  941. package/dist/v2/features/command-palette/helpers/get-openapi-from-postman.js +0 -11
  942. package/dist/v2/features/command-palette/helpers/get-operation-from-curl.js +0 -76
  943. package/dist/v2/features/command-palette/helpers/get-postman-document-details.js +0 -18
  944. package/dist/v2/features/command-palette/helpers/import-document-to-workspace.js +0 -33
  945. package/dist/v2/features/command-palette/helpers/is-postman-collection.js +0 -11
  946. package/dist/v2/features/command-palette/helpers/load-document-from-source.js +0 -52
  947. package/dist/v2/features/command-palette/hooks/use-command-palette-state.js +0 -139
  948. package/dist/v2/features/editor/config.js +0 -16
  949. package/dist/v2/features/editor/helpers/configure-language-support.js +0 -39
  950. package/dist/v2/features/editor/helpers/ensure-monaco-environment.js +0 -20
  951. package/dist/v2/features/editor/helpers/json/create-json-model.js +0 -19
  952. package/dist/v2/features/editor/helpers/json/get-json-ast-node-from-path.js +0 -9
  953. package/dist/v2/features/editor/helpers/json/json-ast.js +0 -24
  954. package/dist/v2/features/editor/helpers/json/json-pointer-links.js +0 -72
  955. package/dist/v2/features/editor/helpers/json/json-pointer-path.js +0 -21
  956. package/dist/v2/features/editor/helpers/range-to-whole-line.js +0 -8
  957. package/dist/v2/features/editor/helpers/theme/apply-scalar-theme.js +0 -56
  958. package/dist/v2/features/editor/helpers/theme/load-css-variables.js +0 -21
  959. package/dist/v2/features/editor/helpers/yaml/create-yaml-model.js +0 -19
  960. package/dist/v2/features/editor/helpers/yaml/get-yaml-node-range-from-path.js +0 -50
  961. package/dist/v2/features/editor/hooks/use-editor-markers.js +0 -34
  962. package/dist/v2/features/editor/hooks/use-editor.js +0 -107
  963. package/dist/v2/features/editor/hooks/use-json-pointer-link-support.js +0 -27
  964. package/dist/v2/features/editor/hooks/use-three-way-merge-editor.js +0 -316
  965. package/dist/v2/features/editor/schemas/openapi-3.1-schema.json.js +0 -25
  966. package/dist/v2/features/environments/EnvironmentsList.vue.js +0 -68
  967. package/dist/v2/features/environments/EnvironmentsList.vue2.js +0 -4
  968. package/dist/v2/features/environments/components/Environment.vue.js +0 -66
  969. package/dist/v2/features/environments/components/Environment.vue2.js +0 -4
  970. package/dist/v2/features/environments/components/EnvironmentColors.vue.js +0 -121
  971. package/dist/v2/features/environments/components/EnvironmentColors.vue2.js +0 -4
  972. package/dist/v2/features/environments/components/EnvironmentCreateModal.vue.js +0 -85
  973. package/dist/v2/features/environments/components/EnvironmentCreateModal.vue2.js +0 -4
  974. package/dist/v2/features/environments/components/EnvironmentDeleteModal.vue.js +0 -53
  975. package/dist/v2/features/environments/components/EnvironmentDeleteModal.vue2.js +0 -4
  976. package/dist/v2/features/environments/components/EnvironmentVariablesDropdown.vue.js +0 -109
  977. package/dist/v2/features/environments/components/EnvironmentVariablesDropdown.vue2.js +0 -4
  978. package/dist/v2/features/environments/components/EnvironmentVariablesTable.vue.js +0 -7
  979. package/dist/v2/features/environments/components/EnvironmentVariablesTable.vue2.js +0 -136
  980. package/dist/v2/features/global-cookies/components/CookiesTable.vue.js +0 -7
  981. package/dist/v2/features/global-cookies/components/CookiesTable.vue2.js +0 -189
  982. package/dist/v2/features/modal/Modal.vue.js +0 -122
  983. package/dist/v2/features/modal/Modal.vue2.js +0 -4
  984. package/dist/v2/features/modal/helpers/create-api-client-modal.js +0 -89
  985. package/dist/v2/features/modal/helpers/map-hidden-clients-config.js +0 -36
  986. package/dist/v2/features/modal/helpers/resolve-route-parameters.js +0 -29
  987. package/dist/v2/features/modal/helpers/restore-workspace-state.js +0 -36
  988. package/dist/v2/features/modal/hooks/use-modal-sidebar.js +0 -93
  989. package/dist/v2/features/modal/modal-events.js +0 -44
  990. package/dist/v2/features/operation/Operation.vue.js +0 -126
  991. package/dist/v2/features/operation/Operation.vue2.js +0 -4
  992. package/dist/v2/features/operation/helpers/combine-params.js +0 -14
  993. package/dist/v2/features/operation/helpers/get-security-requirements.js +0 -4
  994. package/dist/v2/features/operation/helpers/get-selected-security.js +0 -18
  995. package/dist/v2/features/operation/helpers/get-selected-server.js +0 -4
  996. package/dist/v2/features/search/helpers/create-fuse-instance.js +0 -43
  997. package/dist/v2/features/search/helpers/create-search-index.js +0 -63
  998. package/dist/v2/features/search/hooks/use-search-index.js +0 -18
  999. package/dist/v2/features/settings/CollectionSettings.vue.js +0 -275
  1000. package/dist/v2/features/settings/CollectionSettings.vue2.js +0 -4
  1001. package/dist/v2/features/settings/DocumentSettings.vue.js +0 -115
  1002. package/dist/v2/features/settings/DocumentSettings.vue2.js +0 -4
  1003. package/dist/v2/features/settings/components/Appearance.vue.js +0 -88
  1004. package/dist/v2/features/settings/components/Appearance.vue2.js +0 -4
  1005. package/dist/v2/features/settings/components/Section.vue.js +0 -35
  1006. package/dist/v2/features/settings/components/Section.vue2.js +0 -4
  1007. package/dist/v2/features/settings/helpers/get-theme-colors.js +0 -16
  1008. package/dist/v2/helpers/drag-handle-factory.js +0 -120
  1009. package/dist/v2/helpers/generate-location-id.js +0 -10
  1010. package/dist/v2/helpers/get-active-environment.js +0 -22
  1011. package/dist/v2/helpers/get-active-proxy-url.js +0 -5
  1012. package/dist/v2/helpers/get-servers.js +0 -66
  1013. package/dist/v2/helpers/get-tab-details.js +0 -34
  1014. package/dist/v2/helpers/handle-hotkeys.js +0 -54
  1015. package/dist/v2/helpers/is-url.js +0 -5
  1016. package/dist/v2/helpers/slugify.js +0 -4
  1017. package/dist/v2/helpers/storage.js +0 -16
  1018. package/dist/v2/hooks/use-color-mode.js +0 -24
  1019. package/dist/v2/hooks/use-global-hot-keys.js +0 -11
  1020. package/dist/v2/hooks/use-scroll-lock.js +0 -21
  1021. package/dist/v2/workspace-events.js +0 -252
  1022. package/dist/views/Collection/Collection.vue.js +0 -4
  1023. package/dist/views/Collection/Collection.vue2.js +0 -49
  1024. package/dist/views/Collection/CollectionAuthentication.vue.js +0 -7
  1025. package/dist/views/Collection/CollectionAuthentication.vue2.js +0 -56
  1026. package/dist/views/Collection/CollectionCookies.vue.js +0 -4
  1027. package/dist/views/Collection/CollectionCookies.vue2.js +0 -16
  1028. package/dist/views/Collection/CollectionEnvironment.vue.js +0 -5
  1029. package/dist/views/Collection/CollectionEnvironment.vue2.js +0 -229
  1030. package/dist/views/Collection/CollectionInfoForm.vue.js +0 -7
  1031. package/dist/views/Collection/CollectionInfoForm.vue2.js +0 -63
  1032. package/dist/views/Collection/CollectionNavigation.vue.js +0 -133
  1033. package/dist/views/Collection/CollectionNavigation.vue2.js +0 -4
  1034. package/dist/views/Collection/CollectionOverview.vue.js +0 -4
  1035. package/dist/views/Collection/CollectionOverview.vue2.js +0 -34
  1036. package/dist/views/Collection/CollectionScripts.vue.js +0 -4
  1037. package/dist/views/Collection/CollectionScripts.vue2.js +0 -16
  1038. package/dist/views/Collection/CollectionServerForm.vue.js +0 -75
  1039. package/dist/views/Collection/CollectionServerForm.vue2.js +0 -4
  1040. package/dist/views/Collection/CollectionServers.vue.js +0 -4
  1041. package/dist/views/Collection/CollectionServers.vue2.js +0 -94
  1042. package/dist/views/Collection/CollectionSettings.vue.js +0 -4
  1043. package/dist/views/Collection/CollectionSettings.vue2.js +0 -118
  1044. package/dist/views/Collection/CollectionSync.vue.js +0 -4
  1045. package/dist/views/Collection/CollectionSync.vue2.js +0 -16
  1046. package/dist/views/Collection/components/EnvironmentForm.vue.js +0 -7
  1047. package/dist/views/Collection/components/EnvironmentForm.vue2.js +0 -270
  1048. package/dist/views/Collection/components/MarkdownInput.vue.js +0 -7
  1049. package/dist/views/Collection/components/MarkdownInput.vue2.js +0 -100
  1050. package/dist/views/Components/CodeSnippet/CodeSnippet.vue.js +0 -50
  1051. package/dist/views/Components/CodeSnippet/CodeSnippet.vue2.js +0 -4
  1052. package/dist/views/Components/CodeSnippet/helpers/convert-to-har-request.js +0 -62
  1053. package/dist/views/Components/CodeSnippet/helpers/get-har-request.js +0 -82
  1054. package/dist/views/Components/CodeSnippet/helpers/get-snippet.js +0 -30
  1055. package/dist/views/Cookies/CookieForm.vue.js +0 -34
  1056. package/dist/views/Cookies/CookieForm.vue2.js +0 -4
  1057. package/dist/views/Cookies/CookieModal.vue.js +0 -7
  1058. package/dist/views/Cookies/CookieModal.vue2.js +0 -88
  1059. package/dist/views/Cookies/Cookies.vue.js +0 -4
  1060. package/dist/views/Cookies/Cookies.vue2.js +0 -162
  1061. package/dist/views/Environment/Environment.vue.js +0 -4
  1062. package/dist/views/Environment/Environment.vue2.js +0 -402
  1063. package/dist/views/Environment/EnvironmentColorModal.vue.js +0 -42
  1064. package/dist/views/Environment/EnvironmentColorModal.vue2.js +0 -4
  1065. package/dist/views/Environment/EnvironmentColors.vue.js +0 -118
  1066. package/dist/views/Environment/EnvironmentColors.vue2.js +0 -4
  1067. package/dist/views/Environment/EnvironmentModal.vue.js +0 -131
  1068. package/dist/views/Environment/EnvironmentModal.vue2.js +0 -4
  1069. package/dist/views/Environment/EnvironmentVariableDropdown.vue.js +0 -129
  1070. package/dist/views/Environment/EnvironmentVariableDropdown.vue2.js +0 -4
  1071. package/dist/views/Environment/handle-drag.js +0 -32
  1072. package/dist/views/Request/Request.vue.js +0 -7
  1073. package/dist/views/Request/Request.vue2.js +0 -105
  1074. package/dist/views/Request/RequestRoot.vue.js +0 -7
  1075. package/dist/views/Request/RequestRoot.vue2.js +0 -123
  1076. package/dist/views/Request/RequestSection/RequestAuth/DeleteRequestAuthModal.vue.js +0 -52
  1077. package/dist/views/Request/RequestSection/RequestAuth/DeleteRequestAuthModal.vue2.js +0 -4
  1078. package/dist/views/Request/RequestSection/RequestAuth/OAuth2.vue.js +0 -246
  1079. package/dist/views/Request/RequestSection/RequestAuth/OAuth2.vue2.js +0 -4
  1080. package/dist/views/Request/RequestSection/RequestAuth/OAuthScopesInput.vue.js +0 -135
  1081. package/dist/views/Request/RequestSection/RequestAuth/OAuthScopesInput.vue2.js +0 -4
  1082. package/dist/views/Request/RequestSection/RequestAuth/RequestAuth.vue.js +0 -7
  1083. package/dist/views/Request/RequestSection/RequestAuth/RequestAuth.vue2.js +0 -209
  1084. package/dist/views/Request/RequestSection/RequestAuth/RequestAuthDataTable.vue.js +0 -7
  1085. package/dist/views/Request/RequestSection/RequestAuth/RequestAuthDataTable.vue2.js +0 -116
  1086. package/dist/views/Request/RequestSection/RequestAuth/RequestAuthDataTableInput.vue.js +0 -50
  1087. package/dist/views/Request/RequestSection/RequestAuth/RequestAuthDataTableInput.vue2.js +0 -4
  1088. package/dist/views/Request/RequestSection/RequestAuth/RequestAuthTab.vue.js +0 -219
  1089. package/dist/views/Request/RequestSection/RequestAuth/RequestAuthTab.vue2.js +0 -4
  1090. package/dist/views/Request/RequestSection/RequestAuth/helpers/restore-auth-from-local-storage.js +0 -28
  1091. package/dist/views/Request/RequestSection/RequestBody.vue.js +0 -7
  1092. package/dist/views/Request/RequestSection/RequestBody.vue2.js +0 -451
  1093. package/dist/views/Request/RequestSection/RequestCodeExample.vue.js +0 -7
  1094. package/dist/views/Request/RequestSection/RequestCodeExample.vue2.js +0 -170
  1095. package/dist/views/Request/RequestSection/RequestParams.vue.js +0 -162
  1096. package/dist/views/Request/RequestSection/RequestParams.vue2.js +0 -4
  1097. package/dist/views/Request/RequestSection/RequestPathParams.vue.js +0 -96
  1098. package/dist/views/Request/RequestSection/RequestPathParams.vue2.js +0 -4
  1099. package/dist/views/Request/RequestSection/RequestSection.vue.js +0 -7
  1100. package/dist/views/Request/RequestSection/RequestSection.vue2.js +0 -247
  1101. package/dist/views/Request/RequestSection/RequestTable.vue.js +0 -7
  1102. package/dist/views/Request/RequestSection/RequestTable.vue2.js +0 -227
  1103. package/dist/views/Request/RequestSection/RequestTableTooltip.vue.js +0 -7
  1104. package/dist/views/Request/RequestSection/RequestTableTooltip.vue2.js +0 -61
  1105. package/dist/views/Request/RequestSection/helpers/filter-security-requirements.js +0 -29
  1106. package/dist/views/Request/RequestSection/helpers/getting-started.js +0 -13
  1107. package/dist/views/Request/RequestSection/helpers/update-scheme.js +0 -16
  1108. package/dist/views/Request/RequestSidebar.vue.js +0 -7
  1109. package/dist/views/Request/RequestSidebar.vue2.js +0 -341
  1110. package/dist/views/Request/RequestSidebarItem.vue.js +0 -8
  1111. package/dist/views/Request/RequestSidebarItem.vue2.js +0 -464
  1112. package/dist/views/Request/RequestSidebarItemMenu.vue.js +0 -7
  1113. package/dist/views/Request/RequestSidebarItemMenu.vue2.js +0 -236
  1114. package/dist/views/Request/RequestSubpageHeader.vue.js +0 -7
  1115. package/dist/views/Request/RequestSubpageHeader.vue2.js +0 -79
  1116. package/dist/views/Request/ResponseSection/RequestHeaders.vue.js +0 -96
  1117. package/dist/views/Request/ResponseSection/RequestHeaders.vue2.js +0 -4
  1118. package/dist/views/Request/ResponseSection/ResponseBody.vue.js +0 -7
  1119. package/dist/views/Request/ResponseSection/ResponseBody.vue2.js +0 -83
  1120. package/dist/views/Request/ResponseSection/ResponseBodyDownload.vue.js +0 -36
  1121. package/dist/views/Request/ResponseSection/ResponseBodyDownload.vue2.js +0 -4
  1122. package/dist/views/Request/ResponseSection/ResponseBodyInfo.vue.js +0 -14
  1123. package/dist/views/Request/ResponseSection/ResponseBodyPreview.vue.js +0 -7
  1124. package/dist/views/Request/ResponseSection/ResponseBodyPreview.vue2.js +0 -63
  1125. package/dist/views/Request/ResponseSection/ResponseBodyRaw.vue.js +0 -7
  1126. package/dist/views/Request/ResponseSection/ResponseBodyRaw.vue2.js +0 -42
  1127. package/dist/views/Request/ResponseSection/ResponseBodyStreaming.vue.js +0 -74
  1128. package/dist/views/Request/ResponseSection/ResponseBodyStreaming.vue2.js +0 -4
  1129. package/dist/views/Request/ResponseSection/ResponseBodyToggle.vue.js +0 -25
  1130. package/dist/views/Request/ResponseSection/ResponseBodyToggle.vue2.js +0 -4
  1131. package/dist/views/Request/ResponseSection/ResponseBodyVirtual.vue.js +0 -50
  1132. package/dist/views/Request/ResponseSection/ResponseBodyVirtual.vue3.js +0 -5
  1133. package/dist/views/Request/ResponseSection/ResponseCookies.vue.js +0 -51
  1134. package/dist/views/Request/ResponseSection/ResponseCookies.vue2.js +0 -4
  1135. package/dist/views/Request/ResponseSection/ResponseEmpty.vue.js +0 -7
  1136. package/dist/views/Request/ResponseSection/ResponseEmpty.vue2.js +0 -103
  1137. package/dist/views/Request/ResponseSection/ResponseHeaders.vue.js +0 -96
  1138. package/dist/views/Request/ResponseSection/ResponseHeaders.vue2.js +0 -4
  1139. package/dist/views/Request/ResponseSection/ResponseLoadingOverlay.vue.js +0 -7
  1140. package/dist/views/Request/ResponseSection/ResponseLoadingOverlay.vue2.js +0 -38
  1141. package/dist/views/Request/ResponseSection/ResponseMetaInformation.vue.js +0 -67
  1142. package/dist/views/Request/ResponseSection/ResponseMetaInformation.vue2.js +0 -4
  1143. package/dist/views/Request/ResponseSection/ResponseSection.vue.js +0 -7
  1144. package/dist/views/Request/ResponseSection/ResponseSection.vue2.js +0 -189
  1145. package/dist/views/Request/components/WorkspaceDropdown.vue.js +0 -182
  1146. package/dist/views/Request/components/WorkspaceDropdown.vue2.js +0 -4
  1147. package/dist/views/Request/consts/mediaTypes.js +0 -131
  1148. package/dist/views/Request/consts/new-auth-options.js +0 -100
  1149. package/dist/views/Request/handle-drag.js +0 -42
  1150. package/dist/views/Request/hooks/useOpenApiWatcher.js +0 -57
  1151. package/dist/views/Request/libs/auth.js +0 -52
  1152. package/dist/views/Request/libs/oauth2.js +0 -127
  1153. package/dist/views/Request/libs/request.js +0 -40
  1154. package/dist/views/Request/libs/watch-mode.js +0 -337
  1155. package/dist/views/Settings/Settings.vue.js +0 -4
  1156. package/dist/views/Settings/Settings.vue2.js +0 -29
  1157. package/dist/views/Settings/SettingsGeneral.vue.js +0 -286
  1158. package/dist/views/Settings/SettingsGeneral.vue2.js +0 -4
  1159. package/dist/views/Settings/components/SettingsAppearance.vue.js +0 -85
  1160. package/dist/views/Settings/components/SettingsAppearance.vue2.js +0 -4
  1161. package/dist/views/Settings/components/SettingsSection.vue.js +0 -24
  1162. package/dist/views/Settings/components/SettingsSection.vue2.js +0 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodeInput-C-igR77V.js","names":["$attrs","$slots"],"sources":["../src/views/Environment/EnvironmentVariableDropdown.vue","../src/views/Environment/EnvironmentVariableDropdown.vue","../src/components/DataTable/DataTableInputSelect.vue","../src/components/DataTable/DataTableInputSelect.vue","../src/components/CodeInput/codeVariableWidget.ts","../src/components/CodeInput/CodeInput.vue","../src/components/CodeInput/CodeInput.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarButton, ScalarTeleport } from '@scalar/components'\nimport { ScalarIconGlobe, ScalarIconPlus } from '@scalar/icons'\nimport type { Environment } from '@scalar/oas-utils/entities/environment'\nimport { onClickOutside } from '@vueuse/core'\nimport Fuse from 'fuse.js'\nimport { computed, onMounted, ref, type CSSProperties } from 'vue'\nimport { useRouter } from 'vue-router'\n\nimport { parseEnvVariables } from '@/libs'\nimport { getEnvColor, type EnvVariables } from '@/libs/env-helpers'\nimport { PathId } from '@/routes'\nimport { useActiveEntities } from '@/store'\n\nconst props = defineProps<{\n query: string\n environment: Environment\n envVariables: EnvVariables\n // withServers?: boolean\n dropdownPosition?: { left: number; top: number }\n}>()\n\nconst emit = defineEmits<{\n (e: 'select', variable: string): void\n}>()\n\nconst isOpen = ref(true)\nconst dropdownRef = ref<HTMLElement | null>(null)\nconst selectedVariableIndex = ref(0)\nconst router = useRouter()\nconst { activeCollection } = useActiveEntities()\n\nconst redirectToEnvironment = () => {\n if (!router) {\n return\n }\n const { currentRoute, push } = router\n const workspaceId = currentRoute.value.params.workspace\n\n // Global environment page for draft collection\n if (\n !activeCollection.value ||\n activeCollection.value.info?.title === 'Drafts'\n ) {\n push({\n name: 'environment.default',\n params: {\n [PathId.Workspace]: workspaceId,\n },\n })\n } else {\n // Collection environment page for collections\n push({\n name: 'collection.environment',\n params: {\n [PathId.Collection]: activeCollection.value.uid,\n },\n })\n }\n isOpen.value = false\n}\n\nconst fuse = new Fuse(parseEnvVariables(props.envVariables), {\n keys: ['key', 'value'],\n})\n\nconst filteredVariables = computed(() => {\n const searchQuery = props.query\n\n if (!searchQuery) {\n /** return the last 4 environment variables on first display */\n return parseEnvVariables(props.envVariables)\n .slice(-4)\n .filter(({ key, value }) => key !== '' || value !== '')\n }\n\n /** filter environment variables by name */\n const result = fuse.search(searchQuery, { limit: 10 })\n if (result.length > 0) {\n return result\n .map((res) => res.item)\n .filter(({ key, value }) => key !== '' || value !== '')\n }\n\n return []\n})\n\nconst selectVariable = (variableKey: string) => {\n emit('select', variableKey)\n}\n\nconst handleArrowKey = (direction: 'up' | 'down') => {\n const offset = direction === 'up' ? -1 : 1\n const length = filteredVariables.value.length\n\n if (length === 0) {\n return\n }\n\n selectedVariableIndex.value =\n (selectedVariableIndex.value + offset + length) % length\n}\n\nconst handleSelect = () => {\n if (selectedVariableIndex.value >= 0) {\n const selectedVariable =\n filteredVariables.value[selectedVariableIndex.value]\n if (selectedVariable) {\n selectVariable(selectedVariable.key)\n }\n }\n}\n\ndefineExpose({\n handleArrowKey,\n handleSelect,\n})\n\nonMounted(() => {\n // Reset selected index to the first item when dropdown opens\n selectedVariableIndex.value = 0\n})\n\nconst dropdownStyle = computed<CSSProperties>(() => {\n return {\n left: (props.dropdownPosition?.left ?? 0) + 'px',\n // Add a 5px offset from the editor\n top: (props.dropdownPosition?.top ?? 0) + 5 + 'px',\n }\n})\n\nonClickOutside(\n dropdownRef,\n () => {\n isOpen.value = false\n },\n { ignore: [dropdownRef] },\n)\n</script>\n<template>\n <ScalarTeleport\n v-if=\"isOpen\"\n class=\"scalar-client\">\n <div\n ref=\"dropdownRef\"\n class=\"custom-scroll fixed top-0 left-0 flex max-h-[60svh] w-56 flex-col rounded border p-0.75\"\n :style=\"dropdownStyle\">\n <ul\n v-if=\"filteredVariables.length\"\n class=\"gap-1/2 flex flex-col\">\n <template\n v-for=\"(item, index) in filteredVariables\"\n :key=\"item.key\">\n <li\n class=\"font-code text-xxs hover:bg-b-2 flex h-8 cursor-pointer items-center justify-between gap-1.5 rounded p-1.5 transition-colors duration-150\"\n :class=\"{ 'bg-b-2': index === selectedVariableIndex }\"\n @click=\"selectVariable(item.key)\">\n <div class=\"flex items-center gap-2 whitespace-nowrap\">\n <span\n v-if=\"\n item.source === 'collection' &&\n environment.name !== 'No Environment'\n \"\n class=\"h-2.25 w-2.25 min-w-2.25 rounded-full\"\n :style=\"{\n backgroundColor: getEnvColor(environment),\n }\"></span>\n <ScalarIconGlobe\n v-else\n class=\"-ml-0.25 size-2.5\"\n icon=\"Globe\" />\n {{ item.key }}\n </div>\n <span\n class=\"w-20 overflow-hidden text-right text-ellipsis whitespace-nowrap\">\n {{ item.value }}\n </span>\n </li>\n </template>\n </ul>\n <ScalarButton\n v-else-if=\"router\"\n class=\"font-code text-xxs bg-b-inherit hover:bg-b-2 flex h-8 w-full justify-start gap-2 px-1.5 transition-colors duration-150\"\n variant=\"outlined\"\n @click=\"redirectToEnvironment\">\n <ScalarIconPlus class=\"size-3\" />\n Add Variable\n </ScalarButton>\n <!-- Backdrop for the dropdown -->\n <div\n class=\"bg-b-1 brightness-lifted absolute inset-0 -z-1 rounded shadow-lg\" />\n </div>\n </ScalarTeleport>\n</template>\n","<script setup lang=\"ts\">\nimport { ScalarButton, ScalarTeleport } from '@scalar/components'\nimport { ScalarIconGlobe, ScalarIconPlus } from '@scalar/icons'\nimport type { Environment } from '@scalar/oas-utils/entities/environment'\nimport { onClickOutside } from '@vueuse/core'\nimport Fuse from 'fuse.js'\nimport { computed, onMounted, ref, type CSSProperties } from 'vue'\nimport { useRouter } from 'vue-router'\n\nimport { parseEnvVariables } from '@/libs'\nimport { getEnvColor, type EnvVariables } from '@/libs/env-helpers'\nimport { PathId } from '@/routes'\nimport { useActiveEntities } from '@/store'\n\nconst props = defineProps<{\n query: string\n environment: Environment\n envVariables: EnvVariables\n // withServers?: boolean\n dropdownPosition?: { left: number; top: number }\n}>()\n\nconst emit = defineEmits<{\n (e: 'select', variable: string): void\n}>()\n\nconst isOpen = ref(true)\nconst dropdownRef = ref<HTMLElement | null>(null)\nconst selectedVariableIndex = ref(0)\nconst router = useRouter()\nconst { activeCollection } = useActiveEntities()\n\nconst redirectToEnvironment = () => {\n if (!router) {\n return\n }\n const { currentRoute, push } = router\n const workspaceId = currentRoute.value.params.workspace\n\n // Global environment page for draft collection\n if (\n !activeCollection.value ||\n activeCollection.value.info?.title === 'Drafts'\n ) {\n push({\n name: 'environment.default',\n params: {\n [PathId.Workspace]: workspaceId,\n },\n })\n } else {\n // Collection environment page for collections\n push({\n name: 'collection.environment',\n params: {\n [PathId.Collection]: activeCollection.value.uid,\n },\n })\n }\n isOpen.value = false\n}\n\nconst fuse = new Fuse(parseEnvVariables(props.envVariables), {\n keys: ['key', 'value'],\n})\n\nconst filteredVariables = computed(() => {\n const searchQuery = props.query\n\n if (!searchQuery) {\n /** return the last 4 environment variables on first display */\n return parseEnvVariables(props.envVariables)\n .slice(-4)\n .filter(({ key, value }) => key !== '' || value !== '')\n }\n\n /** filter environment variables by name */\n const result = fuse.search(searchQuery, { limit: 10 })\n if (result.length > 0) {\n return result\n .map((res) => res.item)\n .filter(({ key, value }) => key !== '' || value !== '')\n }\n\n return []\n})\n\nconst selectVariable = (variableKey: string) => {\n emit('select', variableKey)\n}\n\nconst handleArrowKey = (direction: 'up' | 'down') => {\n const offset = direction === 'up' ? -1 : 1\n const length = filteredVariables.value.length\n\n if (length === 0) {\n return\n }\n\n selectedVariableIndex.value =\n (selectedVariableIndex.value + offset + length) % length\n}\n\nconst handleSelect = () => {\n if (selectedVariableIndex.value >= 0) {\n const selectedVariable =\n filteredVariables.value[selectedVariableIndex.value]\n if (selectedVariable) {\n selectVariable(selectedVariable.key)\n }\n }\n}\n\ndefineExpose({\n handleArrowKey,\n handleSelect,\n})\n\nonMounted(() => {\n // Reset selected index to the first item when dropdown opens\n selectedVariableIndex.value = 0\n})\n\nconst dropdownStyle = computed<CSSProperties>(() => {\n return {\n left: (props.dropdownPosition?.left ?? 0) + 'px',\n // Add a 5px offset from the editor\n top: (props.dropdownPosition?.top ?? 0) + 5 + 'px',\n }\n})\n\nonClickOutside(\n dropdownRef,\n () => {\n isOpen.value = false\n },\n { ignore: [dropdownRef] },\n)\n</script>\n<template>\n <ScalarTeleport\n v-if=\"isOpen\"\n class=\"scalar-client\">\n <div\n ref=\"dropdownRef\"\n class=\"custom-scroll fixed top-0 left-0 flex max-h-[60svh] w-56 flex-col rounded border p-0.75\"\n :style=\"dropdownStyle\">\n <ul\n v-if=\"filteredVariables.length\"\n class=\"gap-1/2 flex flex-col\">\n <template\n v-for=\"(item, index) in filteredVariables\"\n :key=\"item.key\">\n <li\n class=\"font-code text-xxs hover:bg-b-2 flex h-8 cursor-pointer items-center justify-between gap-1.5 rounded p-1.5 transition-colors duration-150\"\n :class=\"{ 'bg-b-2': index === selectedVariableIndex }\"\n @click=\"selectVariable(item.key)\">\n <div class=\"flex items-center gap-2 whitespace-nowrap\">\n <span\n v-if=\"\n item.source === 'collection' &&\n environment.name !== 'No Environment'\n \"\n class=\"h-2.25 w-2.25 min-w-2.25 rounded-full\"\n :style=\"{\n backgroundColor: getEnvColor(environment),\n }\"></span>\n <ScalarIconGlobe\n v-else\n class=\"-ml-0.25 size-2.5\"\n icon=\"Globe\" />\n {{ item.key }}\n </div>\n <span\n class=\"w-20 overflow-hidden text-right text-ellipsis whitespace-nowrap\">\n {{ item.value }}\n </span>\n </li>\n </template>\n </ul>\n <ScalarButton\n v-else-if=\"router\"\n class=\"font-code text-xxs bg-b-inherit hover:bg-b-2 flex h-8 w-full justify-start gap-2 px-1.5 transition-colors duration-150\"\n variant=\"outlined\"\n @click=\"redirectToEnvironment\">\n <ScalarIconPlus class=\"size-3\" />\n Add Variable\n </ScalarButton>\n <!-- Backdrop for the dropdown -->\n <div\n class=\"bg-b-1 brightness-lifted absolute inset-0 -z-1 rounded shadow-lg\" />\n </div>\n </ScalarTeleport>\n</template>\n","<script setup lang=\"ts\">\nimport {\n ScalarButton,\n ScalarComboboxMultiselect,\n ScalarDropdown,\n ScalarDropdownDivider,\n ScalarDropdownItem,\n ScalarIcon,\n} from '@scalar/components'\nimport { computed, nextTick, ref, watch } from 'vue'\n\nconst props = withDefaults(\n defineProps<{\n modelValue: string | number\n value?: string[]\n default?: string | number | undefined\n canAddCustomValue?: boolean\n type?: string | undefined\n }>(),\n { canAddCustomValue: true },\n)\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', v: string): void\n}>()\n\nconst options = computed(() => props.value ?? [])\nconst addingCustomValue = ref(false)\nconst customValue = ref('')\nconst inputRef = ref<HTMLInputElement | null>(null)\n\nwatch(customValue, (newValue) => {\n emit('update:modelValue', newValue)\n})\n\nconst updateSelected = (value: string) => {\n emit('update:modelValue', value)\n addingCustomValue.value = false\n}\n\nconst addCustomValue = () => {\n if (customValue.value.trim()) {\n updateSelected(customValue.value)\n }\n}\n\nconst handleBlur = () => {\n if (!customValue.value.trim()) {\n emit('update:modelValue', '')\n }\n addingCustomValue.value = false\n}\n\nconst isSelected = (value: string) => {\n return props.modelValue.toString() === value\n}\n\nwatch(addingCustomValue, (newValue) => {\n if (newValue) {\n nextTick(() => {\n inputRef.value?.focus()\n })\n }\n})\n\nconst initialValue = computed(() => {\n return props.modelValue !== undefined ? props.modelValue : props.default\n})\n\n/** Currently selected array example values */\nconst selectedArrayOptions = computed(() => {\n const selectedValues = new Set(props.modelValue.toString().split(', '))\n return options.value\n .filter((option) => selectedValues.has(option))\n .map((option) => ({ id: option, label: option, value: option }))\n})\n\n/** Options for the array type */\nconst arrayOptions = computed(() =>\n options.value.map((option) => ({ id: option, label: option, value: option })),\n)\n\n/** Update the model value when the selected options change */\nconst updateSelectedOptions = (selectedOptions: any) => {\n const selectedValues = selectedOptions.map((option: any) => option.value)\n emit('update:modelValue', selectedValues.join(', '))\n}\n</script>\n\n<template>\n <div\n class=\"group-[.alert]:outline-orange group-[.error]:outline-red w-full pr-10 -outline-offset-1 has-[:focus-visible]:rounded-[4px] has-[:focus-visible]:outline\">\n <template v-if=\"type === 'array'\">\n <ScalarComboboxMultiselect\n :modelValue=\"selectedArrayOptions\"\n :options=\"arrayOptions\"\n @update:modelValue=\"updateSelectedOptions\">\n <ScalarButton\n class=\"custom-scroll h-full justify-start gap-1.5 px-2 py-1.5 pr-6 font-normal outline-none\"\n fullWidth\n variant=\"ghost\">\n <span class=\"text-c-1 whitespace-nowrap\">{{\n selectedArrayOptions.length > 0\n ? selectedArrayOptions.map((option) => option.label).join(', ')\n : 'Select a value'\n }}</span>\n <ScalarIcon\n icon=\"ChevronDown\"\n size=\"md\"\n class=\"min-w-4\" />\n </ScalarButton>\n </ScalarComboboxMultiselect>\n </template>\n <template v-else-if=\"addingCustomValue\">\n <input\n ref=\"inputRef\"\n v-model=\"customValue\"\n class=\"text-c-1 w-full min-w-0 border-none px-2 py-1.5 outline-none\"\n placeholder=\"Value\"\n type=\"text\"\n @blur=\"handleBlur\"\n @keyup.enter=\"addCustomValue\" />\n </template>\n <template v-else>\n <ScalarDropdown\n resize\n :value=\"initialValue\">\n <ScalarButton\n class=\"size-full justify-start gap-1.5 overflow-auto px-2 py-1.5 font-normal whitespace-nowrap outline-none\"\n variant=\"ghost\">\n <span class=\"text-c-1 overflow-hidden text-ellipsis\">{{\n initialValue || 'Select a value'\n }}</span>\n <ScalarIcon\n icon=\"ChevronDown\"\n size=\"md\" />\n </ScalarButton>\n <template #items>\n <ScalarDropdownItem\n v-for=\"option in options\"\n :key=\"option\"\n class=\"group/item flex items-center gap-1.5 overflow-hidden text-ellipsis whitespace-nowrap\"\n :value=\"option\"\n @click=\"updateSelected(option)\">\n <div\n class=\"flex h-4 w-4 items-center justify-center rounded-full p-[3px]\"\n :class=\"\n isSelected(option)\n ? 'bg-c-accent text-b-1'\n : 'shadow-border text-transparent'\n \">\n <ScalarIcon\n class=\"size-2.5\"\n icon=\"Checkmark\"\n thickness=\"3\" />\n </div>\n <span class=\"overflow-hidden text-ellipsis\">{{ option }}</span>\n </ScalarDropdownItem>\n <template v-if=\"canAddCustomValue\">\n <ScalarDropdownDivider v-if=\"options.length\" />\n <ScalarDropdownItem\n class=\"flex items-center gap-1.5\"\n @click=\"addingCustomValue = true\">\n <div class=\"flex h-4 w-4 items-center justify-center\">\n <ScalarIcon\n icon=\"Add\"\n size=\"sm\" />\n </div>\n <span>Add value</span>\n </ScalarDropdownItem>\n </template>\n </template>\n </ScalarDropdown>\n </template>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport {\n ScalarButton,\n ScalarComboboxMultiselect,\n ScalarDropdown,\n ScalarDropdownDivider,\n ScalarDropdownItem,\n ScalarIcon,\n} from '@scalar/components'\nimport { computed, nextTick, ref, watch } from 'vue'\n\nconst props = withDefaults(\n defineProps<{\n modelValue: string | number\n value?: string[]\n default?: string | number | undefined\n canAddCustomValue?: boolean\n type?: string | undefined\n }>(),\n { canAddCustomValue: true },\n)\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', v: string): void\n}>()\n\nconst options = computed(() => props.value ?? [])\nconst addingCustomValue = ref(false)\nconst customValue = ref('')\nconst inputRef = ref<HTMLInputElement | null>(null)\n\nwatch(customValue, (newValue) => {\n emit('update:modelValue', newValue)\n})\n\nconst updateSelected = (value: string) => {\n emit('update:modelValue', value)\n addingCustomValue.value = false\n}\n\nconst addCustomValue = () => {\n if (customValue.value.trim()) {\n updateSelected(customValue.value)\n }\n}\n\nconst handleBlur = () => {\n if (!customValue.value.trim()) {\n emit('update:modelValue', '')\n }\n addingCustomValue.value = false\n}\n\nconst isSelected = (value: string) => {\n return props.modelValue.toString() === value\n}\n\nwatch(addingCustomValue, (newValue) => {\n if (newValue) {\n nextTick(() => {\n inputRef.value?.focus()\n })\n }\n})\n\nconst initialValue = computed(() => {\n return props.modelValue !== undefined ? props.modelValue : props.default\n})\n\n/** Currently selected array example values */\nconst selectedArrayOptions = computed(() => {\n const selectedValues = new Set(props.modelValue.toString().split(', '))\n return options.value\n .filter((option) => selectedValues.has(option))\n .map((option) => ({ id: option, label: option, value: option }))\n})\n\n/** Options for the array type */\nconst arrayOptions = computed(() =>\n options.value.map((option) => ({ id: option, label: option, value: option })),\n)\n\n/** Update the model value when the selected options change */\nconst updateSelectedOptions = (selectedOptions: any) => {\n const selectedValues = selectedOptions.map((option: any) => option.value)\n emit('update:modelValue', selectedValues.join(', '))\n}\n</script>\n\n<template>\n <div\n class=\"group-[.alert]:outline-orange group-[.error]:outline-red w-full pr-10 -outline-offset-1 has-[:focus-visible]:rounded-[4px] has-[:focus-visible]:outline\">\n <template v-if=\"type === 'array'\">\n <ScalarComboboxMultiselect\n :modelValue=\"selectedArrayOptions\"\n :options=\"arrayOptions\"\n @update:modelValue=\"updateSelectedOptions\">\n <ScalarButton\n class=\"custom-scroll h-full justify-start gap-1.5 px-2 py-1.5 pr-6 font-normal outline-none\"\n fullWidth\n variant=\"ghost\">\n <span class=\"text-c-1 whitespace-nowrap\">{{\n selectedArrayOptions.length > 0\n ? selectedArrayOptions.map((option) => option.label).join(', ')\n : 'Select a value'\n }}</span>\n <ScalarIcon\n icon=\"ChevronDown\"\n size=\"md\"\n class=\"min-w-4\" />\n </ScalarButton>\n </ScalarComboboxMultiselect>\n </template>\n <template v-else-if=\"addingCustomValue\">\n <input\n ref=\"inputRef\"\n v-model=\"customValue\"\n class=\"text-c-1 w-full min-w-0 border-none px-2 py-1.5 outline-none\"\n placeholder=\"Value\"\n type=\"text\"\n @blur=\"handleBlur\"\n @keyup.enter=\"addCustomValue\" />\n </template>\n <template v-else>\n <ScalarDropdown\n resize\n :value=\"initialValue\">\n <ScalarButton\n class=\"size-full justify-start gap-1.5 overflow-auto px-2 py-1.5 font-normal whitespace-nowrap outline-none\"\n variant=\"ghost\">\n <span class=\"text-c-1 overflow-hidden text-ellipsis\">{{\n initialValue || 'Select a value'\n }}</span>\n <ScalarIcon\n icon=\"ChevronDown\"\n size=\"md\" />\n </ScalarButton>\n <template #items>\n <ScalarDropdownItem\n v-for=\"option in options\"\n :key=\"option\"\n class=\"group/item flex items-center gap-1.5 overflow-hidden text-ellipsis whitespace-nowrap\"\n :value=\"option\"\n @click=\"updateSelected(option)\">\n <div\n class=\"flex h-4 w-4 items-center justify-center rounded-full p-[3px]\"\n :class=\"\n isSelected(option)\n ? 'bg-c-accent text-b-1'\n : 'shadow-border text-transparent'\n \">\n <ScalarIcon\n class=\"size-2.5\"\n icon=\"Checkmark\"\n thickness=\"3\" />\n </div>\n <span class=\"overflow-hidden text-ellipsis\">{{ option }}</span>\n </ScalarDropdownItem>\n <template v-if=\"canAddCustomValue\">\n <ScalarDropdownDivider v-if=\"options.length\" />\n <ScalarDropdownItem\n class=\"flex items-center gap-1.5\"\n @click=\"addingCustomValue = true\">\n <div class=\"flex h-4 w-4 items-center justify-center\">\n <ScalarIcon\n icon=\"Add\"\n size=\"sm\" />\n </div>\n <span>Add value</span>\n </ScalarDropdownItem>\n </template>\n </template>\n </ScalarDropdown>\n </template>\n </div>\n</template>\n","import { ScalarTooltip } from '@scalar/components'\nimport { ScalarIconGlobe } from '@scalar/icons'\nimport type { Environment } from '@scalar/oas-utils/entities/environment'\nimport { REGEX } from '@scalar/oas-utils/helpers'\nimport {\n Decoration,\n type DecorationSet,\n EditorView,\n RangeSetBuilder,\n ViewPlugin,\n type ViewUpdate,\n WidgetType,\n} from '@scalar/use-codemirror'\nimport { nanoid } from 'nanoid'\nimport { createApp, defineComponent, h } from 'vue'\n\nimport { parseEnvVariables } from '@/libs'\nimport { type EnvVariables, getEnvColor } from '@/libs/env-helpers'\n\n/**\n * Displays the value of a variable of the active environment in a pill\n */\nclass PillWidget extends WidgetType {\n private app: any\n private uid: string\n environment: Environment | undefined\n envVariables: EnvVariables | undefined\n isReadOnly: boolean\n\n constructor(\n private variableName: string,\n environment: Environment | undefined,\n envVariables: EnvVariables | undefined,\n isReadOnly: boolean | undefined,\n ) {\n super()\n this.variableName = variableName\n this.environment = environment\n this.envVariables = envVariables\n this.isReadOnly = isReadOnly ?? false\n this.uid = nanoid()\n }\n\n toDOM() {\n const span = document.createElement('span')\n span.className = 'cm-pill'\n span.textContent = `${this.variableName}`\n\n const tooltipComponent = defineComponent({\n props: { variableName: { type: String, default: null } },\n render: () => {\n const val = this.envVariables\n ? parseEnvVariables(this.envVariables).find((thing) => thing.key === this.variableName)\n : undefined\n\n // Set the pill color based on the environment source or fallback to default color\n const isGlobal = val?.source === 'global'\n const pillColor = isGlobal\n ? 'var(--scalar-color-1)'\n : val && this.environment && this.environment.name !== 'No Environment'\n ? getEnvColor(this.environment)\n : 'var(--scalar-color-1)'\n\n span.style.setProperty('--tw-bg-base', pillColor)\n\n // Set opacity based on the existence of a value\n span.style.opacity = val?.value ? '1' : '0.5'\n\n // Tooltip content as string\n const tooltipContent = val?.value || 'No value'\n\n // Tooltip trigger element\n const tooltipTrigger = h('div', { class: 'flex items-center gap-1 whitespace-nowrap' }, [\n (isGlobal || (this.environment?.name === 'No Environment' && val?.value)) &&\n h(ScalarIconGlobe, { class: 'size-3 -ml-1', icon: 'Globe' }),\n h('span', this.variableName),\n ])\n\n return h(\n ScalarTooltip,\n {\n content: tooltipContent,\n delay: 0,\n placement: 'bottom',\n offset: 6,\n },\n {\n default: () => tooltipTrigger,\n },\n )\n },\n })\n\n this.app = createApp(tooltipComponent, { variableName: this.variableName })\n this.app.mount(span)\n\n return span\n }\n\n override destroy() {\n if (this.app) {\n this.app.unmount()\n }\n }\n\n override eq(other: WidgetType) {\n return other instanceof PillWidget && other.variableName === this.variableName && other.uid === this.uid\n }\n\n override ignoreEvent() {\n return false\n }\n}\n\n/**\n * Styles the active environment variable pill\n */\nexport const pillPlugin = (props: {\n environment: Environment | undefined\n envVariables: EnvVariables | undefined\n isReadOnly: boolean | undefined\n}) =>\n ViewPlugin.fromClass(\n class {\n decorations: DecorationSet\n\n constructor(view: EditorView) {\n this.decorations = this.buildDecorations(view)\n }\n\n update(update: ViewUpdate) {\n if (update.docChanged || update.viewportChanged) {\n requestAnimationFrame(() => {\n this.decorations = this.buildDecorations(update.view)\n update.view.update([])\n })\n }\n }\n\n buildDecorations(view: EditorView) {\n const builder = new RangeSetBuilder<Decoration>()\n\n for (const { from, to } of view.visibleRanges) {\n const text = view.state.doc.sliceString(from, to)\n let match\n\n while ((match = REGEX.VARIABLES.exec(text)) !== null) {\n const start = from + match.index\n const end = start + match[0].length\n const variableName = match[1] ?? ''\n builder.add(\n start,\n end,\n Decoration.widget({\n widget: new PillWidget(variableName, props.environment, props.envVariables, props.isReadOnly),\n side: 1,\n }),\n )\n }\n }\n\n return builder.finish()\n }\n },\n {\n decorations: (v) => v.decorations,\n },\n )\n\nexport const backspaceCommand = EditorView.domEventHandlers({\n keydown(event, view) {\n if (event.key === 'Backspace') {\n const { state } = view\n const { from, to } = state.selection.main\n\n // Prevent breaking line content addition on pill removal\n if (from === 0 && to === state.doc.length) {\n view.dispatch({\n changes: { from: 0, to: state.doc.length },\n selection: { anchor: 0 },\n })\n event.preventDefault()\n return true\n }\n\n if (from === to && from > 0) {\n const before = state.doc.sliceString(from - 2, from)\n if (before === '}}') {\n view.dispatch({\n changes: { from: from - 2, to },\n selection: { anchor: from - 2 },\n })\n event.preventDefault()\n return true\n }\n }\n }\n return false\n },\n})\n","<script setup lang=\"ts\">\nimport type { Environment } from '@scalar/oas-utils/entities/environment'\nimport {\n colorPicker as colorPickerExtension,\n useCodeMirror,\n useDropdown,\n type CodeMirrorLanguage,\n type Extension,\n} from '@scalar/use-codemirror'\nimport { nanoid } from 'nanoid'\nimport { computed, ref, toRef, useAttrs, watch, type Ref } from 'vue'\n\nimport { useLayout } from '@/hooks'\nimport type { EnvVariable } from '@/store/active-entities'\nimport EnvironmentVariableDropdown from '@/views/Environment/EnvironmentVariableDropdown.vue'\n\nimport DataTableInputSelect from '../DataTable/DataTableInputSelect.vue'\nimport { backspaceCommand, pillPlugin } from './codeVariableWidget'\n\nconst props = withDefaults(\n defineProps<{\n colorPicker?: boolean\n disabled?: boolean\n modelValue: string | number\n error?: boolean\n emitOnBlur?: boolean\n extensions?: Extension[]\n lineNumbers?: boolean\n lint?: boolean\n disableTabIndent?: boolean\n language?: CodeMirrorLanguage\n handleFieldSubmit?: (e: string) => void\n handleFieldChange?: (e: string) => void\n placeholder?: string\n required?: boolean\n disableEnter?: boolean\n disableCloseBrackets?: boolean\n enum?: string[]\n examples?: string[]\n type?: string | string[] | undefined\n nullable?: boolean\n withVariables?: boolean\n importCurl?: boolean\n default?: string | number\n environment: Environment\n envVariables: EnvVariable[]\n lineWrapping?: boolean\n }>(),\n {\n disableCloseBrackets: false,\n disableEnter: false,\n extensions: () => [],\n disableTabIndent: false,\n emitOnBlur: true,\n colorPicker: false,\n nullable: false,\n withVariables: true,\n disabled: false,\n lineWrapping: false,\n },\n)\nconst emit = defineEmits<{\n (e: 'submit', v: string): void\n (e: 'update:modelValue', v: string): void\n (e: 'curl', v: string): void\n (e: 'blur', v: string): void\n}>()\n\nconst attrs = useAttrs() as { id?: string }\nconst uid = (attrs.id as string) || `id-${nanoid()}`\n\nconst isFocused = ref(false)\n\n// Environment variable dropdown init\nconst showDropdown = ref(false)\nconst dropdownQuery = ref('')\nconst dropdownPosition = ref({ left: 0, top: 0 })\nconst dropdownRef = ref<InstanceType<\n typeof EnvironmentVariableDropdown\n> | null>(null)\n\nconst { layout } = useLayout()\n\n// ---------------------------------------------------------------------------\n// Event mapping from codemirror to standard input interfaces\n\n/** Change is emitted during typing. This does not trigger validation */\nfunction handleChange(value: string) {\n // We need to be careful, only if the value is different we trigger an update\n // on initial load of the component, this gets triggered cause we set the content\n if (value === props.modelValue) {\n return null\n }\n if (props.importCurl && value.trim().toLowerCase().startsWith('curl')) {\n emit('curl', value)\n // Maintain previous input value\n codeMirror.value?.dispatch({\n changes: {\n from: 0,\n to: codeMirror.value.state.doc.length,\n insert: String(props.modelValue),\n },\n })\n // Prevent table value population on current request\n return null\n }\n\n return props.handleFieldChange\n ? props.handleFieldChange(value)\n : emit('update:modelValue', value)\n}\n\n/** Submit is emitted on blur and enter. This will trigger validation */\nfunction handleSubmit(value: string) {\n return props.handleFieldSubmit\n ? props.handleFieldSubmit(value)\n : emit('submit', value)\n}\n\n/** Optional submit on blur. */\nfunction handleBlur(value: string) {\n isFocused.value = false\n if (props.emitOnBlur && props.modelValue) {\n handleSubmit(value)\n }\n emit('blur', value)\n}\n\n// ---------------------------------------------------------------------------\n// Codemirror instance handling\n\n// WARNING: Extensions are non-reactive! If props change nothing will happen\n\nconst extensions: Extension[] = [...props.extensions]\nif (props.colorPicker) {\n extensions.push(colorPickerExtension)\n}\n\n// Create a reactive pill plugin that updates when environment changes\nconst pillPluginExtension = computed(() =>\n pillPlugin({\n environment: props.environment,\n envVariables: props.envVariables,\n isReadOnly: layout === 'modal',\n }),\n)\n\n// Base extensions that will be used for the editor\nconst baseExtensions = computed(() => [\n ...extensions,\n pillPluginExtension.value,\n backspaceCommand,\n])\n\nconst codeMirrorRef: Ref<HTMLDivElement | null> = ref(null)\n\nconst { codeMirror } = useCodeMirror({\n content: toRef(() =>\n props.modelValue !== undefined ? String(props.modelValue) : '',\n ),\n onChange: (value) => {\n handleChange(value)\n updateDropdownVisibility()\n },\n onFocus: () => (isFocused.value = true),\n onBlur: (val) => handleBlur(val),\n codeMirrorRef,\n disableTabIndent: toRef(() => props.disableTabIndent),\n disableEnter: toRef(() => props.disableEnter),\n disableCloseBrackets: toRef(() => props.disableCloseBrackets),\n lineNumbers: toRef(() => props.lineNumbers),\n language: toRef(() => props.language),\n lint: toRef(() => props.lint),\n extensions: baseExtensions,\n placeholder: toRef(() => props.placeholder),\n})\n\ncodeMirror.value?.focus()\n\n// If we specify autofocus then focus codemirror on creation\nwatch(codeMirror, () => {\n if (codeMirror.value && Object.hasOwn(attrs, 'autofocus')) {\n codeMirror.value.focus()\n }\n})\n\nconst { handleDropdownSelect, updateDropdownVisibility } = useDropdown({\n codeMirror,\n query: dropdownQuery,\n showDropdown,\n dropdownPosition,\n})\n\n// Computed property to check if type is boolean and nullable\nconst booleanOptions = computed(() =>\n props.nullable ? ['true', 'false', 'null'] : ['true', 'false'],\n)\n\nconst handleKeyDown = (key: string, event: KeyboardEvent) => {\n if (showDropdown.value) {\n if (key === 'down') {\n event.preventDefault()\n dropdownRef.value?.handleArrowKey('down')\n } else if (key === 'up') {\n event.preventDefault()\n dropdownRef.value?.handleArrowKey('up')\n } else if (key === 'enter') {\n event.preventDefault()\n dropdownRef.value?.handleSelect()\n }\n } else if (key === 'escape') {\n if (!props.disableTabIndent) {\n event.stopPropagation()\n }\n } else if (key === 'enter' && event.target instanceof HTMLDivElement) {\n handleSubmit(event.target.textContent ?? '')\n }\n}\n\nconst defaultType = computed(() => {\n return Array.isArray(props.type)\n ? // Find the first type, that's not 'null'\n (props.type.find((type) => type !== 'null') ?? 'string')\n : // If it's not an array, just return the type\n props.type\n})\n\nconst displayVariablesDropdown = computed(\n () =>\n showDropdown.value &&\n props.withVariables &&\n layout !== 'modal' &&\n props.environment,\n)\n\ndefineExpose({\n /** Expose focus method */\n focus: () => {\n codeMirror.value?.focus()\n },\n // Expose these methods for testing\n handleChange,\n handleSubmit,\n handleBlur,\n booleanOptions,\n codeMirror,\n modelValue: props.modelValue,\n})\n</script>\n<script lang=\"ts\">\n// use normal <script> to declare options\nexport default {\n inheritAttrs: false,\n}\n</script>\n<template>\n <template v-if=\"disabled\">\n <div\n class=\"text-c-2 flex cursor-default items-center justify-center\"\n :class=\"layout === 'modal' ? 'font-code pr-2 pl-1 text-base' : 'px-2'\"\n data-testid=\"code-input-disabled\">\n <span class=\"whitespace-nowrap\">{{ modelValue }}</span>\n </div>\n </template>\n <template v-else-if=\"props.enum && props.enum.length\">\n <DataTableInputSelect\n :default=\"props.default\"\n :modelValue=\"modelValue\"\n :type=\"defaultType\"\n :value=\"props.enum\"\n @update:modelValue=\"emit('update:modelValue', $event)\" />\n </template>\n <template v-else-if=\"type === 'boolean' || type?.includes('boolean')\">\n <DataTableInputSelect\n :default=\"props.default\"\n :modelValue=\"modelValue\"\n :value=\"booleanOptions\"\n @update:modelValue=\"emit('update:modelValue', $event)\" />\n </template>\n <template v-else-if=\"props.examples && props.examples.length\">\n <DataTableInputSelect\n :default=\"props.default\"\n :modelValue=\"props.modelValue\"\n :value=\"props.examples\"\n @update:modelValue=\"emit('update:modelValue', $event)\" />\n </template>\n <template v-else>\n <div\n :id=\"uid\"\n v-bind=\"$attrs\"\n ref=\"codeMirrorRef\"\n class=\"group/input group-[.alert]:outline-orange group-[.error]:outline-red font-code peer relative w-full overflow-hidden text-xs leading-[1.44] whitespace-nowrap -outline-offset-1 has-[:focus-visible]:rounded-[4px] has-[:focus-visible]:outline\"\n :class=\"{\n 'line-wrapping has-[:focus-visible]:bg-b-1 has-[:focus-visible]:absolute has-[:focus-visible]:z-1':\n lineWrapping,\n 'flow-code-input--error': error,\n }\"\n @keydown.down.stop=\"handleKeyDown('down', $event)\"\n @keydown.enter=\"handleKeyDown('enter', $event)\"\n @keydown.escape=\"handleKeyDown('escape', $event)\"\n @keydown.up.stop=\"handleKeyDown('up', $event)\">\n <div\n v-if=\"!disableTabIndent\"\n class=\"z-context text-c-2 absolute right-1.5 bottom-1 hidden font-sans group-has-[:focus-visible]/input:block\"\n role=\"alert\">\n Press\n <kbd class=\"-mx-0.25 rounded border px-0.5 font-mono\">Esc</kbd> then\n <kbd class=\"-mx-0.25 rounded border px-0.5 font-mono\">Tab</kbd> to exit\n </div>\n </div>\n </template>\n <div\n v-if=\"$slots.warning\"\n class=\"centered-y text-orange absolute right-7 text-xs\">\n <slot name=\"warning\" />\n </div>\n <div\n v-if=\"$slots.icon\"\n class=\"centered-y absolute right-0 flex h-full items-center p-1.5 group-has-[.cm-focused]:z-1\">\n <slot name=\"icon\" />\n </div>\n <div\n v-if=\"required\"\n class=\"required centered-y text-xxs text-c-3 group-[.error]:text-red bg-b-1 pointer-events-none absolute right-0 mr-0.5 pt-px pr-2 opacity-100 shadow-[-8px_0_4px_var(--scalar-background-1)] transition-opacity duration-150 group-[.alert]:bg-transparent group-[.alert]:shadow-none group-[.error]:bg-transparent group-[.error]:shadow-none peer-has-[.cm-focused]:opacity-0\">\n Required\n </div>\n <EnvironmentVariableDropdown\n v-if=\"displayVariablesDropdown\"\n ref=\"dropdownRef\"\n :dropdownPosition=\"dropdownPosition\"\n :envVariables=\"envVariables\"\n :environment=\"environment\"\n :query=\"dropdownQuery\"\n @select=\"handleDropdownSelect\" />\n</template>\n<style scoped>\n/*\n Deep styling for customizing Codemirror\n*/\n:deep(.cm-editor) {\n height: 100%;\n outline: none;\n padding: 0;\n background: transparent;\n}\n:deep(.cm-placeholder) {\n color: var(--scalar-color-3);\n}\n:deep(.cm-content) {\n font-family: var(--scalar-font-code);\n font-size: var(--scalar-small);\n max-height: 20px;\n padding: 8px 0;\n}\n/* Tooltip helper */\n:deep(.cm-tooltip) {\n background: transparent !important;\n filter: brightness(var(--scalar-lifted-brightness));\n border-radius: var(--scalar-radius);\n box-shadow: var(--scalar-shadow-2);\n border: none !important;\n outline: none !important;\n overflow: hidden !important;\n}\n:deep(.cm-tooltip-autocomplete ul li) {\n padding: 3px 6px !important;\n}\n:deep(.cm-completionIcon-type:after) {\n color: var(--scalar-color-3) !important;\n}\n:deep(.cm-tooltip-autocomplete ul li[aria-selected]) {\n background: var(--scalar-background-2) !important;\n color: var(--scalar-color-1) !important;\n}\n:deep(.cm-tooltip-autocomplete ul) {\n padding: 6px !important;\n position: relative;\n}\n:deep(.cm-tooltip-autocomplete ul li:hover) {\n border-radius: 3px;\n color: var(--scalar-color-1) !important;\n background: var(--scalar-background-3) !important;\n}\n/* Disable active line highlighting */\n:deep(.cm-activeLine),\n:deep(.cm-activeLineGutter) {\n background-color: transparent;\n}\n/* Color selection matching */\n:deep(.cm-selectionMatch),\n:deep(.cm-matchingBracket) {\n border-radius: var(--scalar-radius);\n background: var(--scalar-background-4) !important;\n}\n/* Color Picker Swatches */\n:deep(.cm-css-color-picker-wrapper) {\n display: inline-flex;\n outline: 1px solid var(--scalar-background-3);\n border-radius: 3px;\n overflow: hidden;\n}\n/* Number gutter */\n:deep(.cm-gutters) {\n background-color: transparent;\n border-right: none;\n color: var(--scalar-color-3);\n font-size: var(--scalar-small);\n line-height: 22px;\n border-radius: 0 0 0 3px;\n}\n:deep(.cm-gutters:before) {\n content: '';\n position: absolute;\n top: 2px;\n left: 2px;\n width: calc(100% - 2px);\n height: calc(100% - 4px);\n border-radius: var(--scalar-radius) 0 0 var(--scalar-radius);\n background-color: var(--scalar-background-1);\n}\n:deep(.cm-gutterElement) {\n font-family: var(--scalar-font-code) !important;\n padding-left: 0px !important;\n padding-right: 6px !important;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n position: relative;\n}\n:deep(.cm-lineNumbers .cm-gutterElement) {\n min-width: fit-content;\n}\n:deep(.cm-gutter + .cm-gutter :not(.cm-foldGutter) .cm-gutterElement) {\n padding-left: 0 !important;\n}\n:deep(.cm-scroller) {\n overflow: auto;\n}\n.line-wrapping:focus-within :deep(.cm-content) {\n display: inline-table;\n min-height: fit-content;\n padding: 3px 6px;\n white-space: break-spaces;\n word-break: break-all;\n}\n</style>\n<style>\n.cm-pill {\n --tw-bg-base: var(--scalar-color-1);\n color: var(--tw-bg-base);\n padding: 0px 9px;\n border-radius: 3px;\n display: inline-block;\n border-radius: 30px;\n font-size: var(--scalar-small);\n background: color-mix(in srgb, var(--tw-bg-base), transparent 94%) !important;\n}\n.cm-pill.bg-grey {\n background: var(--scalar-background-3) !important;\n}\n.dark-mode .cm-pill {\n background: color-mix(in srgb, var(--tw-bg-base), transparent 90%) !important;\n}\n.cm-pill:first-of-type {\n margin-left: 0;\n}\n.cm-editor .cm-widgetBuffer {\n display: none;\n}\n.cm-foldPlaceholder:hover {\n color: var(--scalar-color-1);\n}\n.cm-foldGutter .cm-gutterElement {\n font-size: var(--scalar-heading-4);\n padding: 2px !important;\n}\n.cm-foldGutter .cm-gutterElement:first-of-type {\n display: none;\n}\n.cm-foldGutter .cm-gutterElement .cm-foldMarker {\n padding: 2px;\n padding-top: 2px;\n}\n.cm-foldGutter .cm-gutterElement:hover .cm-foldMarker {\n background: var(--scalar-background-2);\n border-radius: var(--scalar-radius);\n color: var(--scalar-color-1);\n}\n</style>\n","<script setup lang=\"ts\">\nimport type { Environment } from '@scalar/oas-utils/entities/environment'\nimport {\n colorPicker as colorPickerExtension,\n useCodeMirror,\n useDropdown,\n type CodeMirrorLanguage,\n type Extension,\n} from '@scalar/use-codemirror'\nimport { nanoid } from 'nanoid'\nimport { computed, ref, toRef, useAttrs, watch, type Ref } from 'vue'\n\nimport { useLayout } from '@/hooks'\nimport type { EnvVariable } from '@/store/active-entities'\nimport EnvironmentVariableDropdown from '@/views/Environment/EnvironmentVariableDropdown.vue'\n\nimport DataTableInputSelect from '../DataTable/DataTableInputSelect.vue'\nimport { backspaceCommand, pillPlugin } from './codeVariableWidget'\n\nconst props = withDefaults(\n defineProps<{\n colorPicker?: boolean\n disabled?: boolean\n modelValue: string | number\n error?: boolean\n emitOnBlur?: boolean\n extensions?: Extension[]\n lineNumbers?: boolean\n lint?: boolean\n disableTabIndent?: boolean\n language?: CodeMirrorLanguage\n handleFieldSubmit?: (e: string) => void\n handleFieldChange?: (e: string) => void\n placeholder?: string\n required?: boolean\n disableEnter?: boolean\n disableCloseBrackets?: boolean\n enum?: string[]\n examples?: string[]\n type?: string | string[] | undefined\n nullable?: boolean\n withVariables?: boolean\n importCurl?: boolean\n default?: string | number\n environment: Environment\n envVariables: EnvVariable[]\n lineWrapping?: boolean\n }>(),\n {\n disableCloseBrackets: false,\n disableEnter: false,\n extensions: () => [],\n disableTabIndent: false,\n emitOnBlur: true,\n colorPicker: false,\n nullable: false,\n withVariables: true,\n disabled: false,\n lineWrapping: false,\n },\n)\nconst emit = defineEmits<{\n (e: 'submit', v: string): void\n (e: 'update:modelValue', v: string): void\n (e: 'curl', v: string): void\n (e: 'blur', v: string): void\n}>()\n\nconst attrs = useAttrs() as { id?: string }\nconst uid = (attrs.id as string) || `id-${nanoid()}`\n\nconst isFocused = ref(false)\n\n// Environment variable dropdown init\nconst showDropdown = ref(false)\nconst dropdownQuery = ref('')\nconst dropdownPosition = ref({ left: 0, top: 0 })\nconst dropdownRef = ref<InstanceType<\n typeof EnvironmentVariableDropdown\n> | null>(null)\n\nconst { layout } = useLayout()\n\n// ---------------------------------------------------------------------------\n// Event mapping from codemirror to standard input interfaces\n\n/** Change is emitted during typing. This does not trigger validation */\nfunction handleChange(value: string) {\n // We need to be careful, only if the value is different we trigger an update\n // on initial load of the component, this gets triggered cause we set the content\n if (value === props.modelValue) {\n return null\n }\n if (props.importCurl && value.trim().toLowerCase().startsWith('curl')) {\n emit('curl', value)\n // Maintain previous input value\n codeMirror.value?.dispatch({\n changes: {\n from: 0,\n to: codeMirror.value.state.doc.length,\n insert: String(props.modelValue),\n },\n })\n // Prevent table value population on current request\n return null\n }\n\n return props.handleFieldChange\n ? props.handleFieldChange(value)\n : emit('update:modelValue', value)\n}\n\n/** Submit is emitted on blur and enter. This will trigger validation */\nfunction handleSubmit(value: string) {\n return props.handleFieldSubmit\n ? props.handleFieldSubmit(value)\n : emit('submit', value)\n}\n\n/** Optional submit on blur. */\nfunction handleBlur(value: string) {\n isFocused.value = false\n if (props.emitOnBlur && props.modelValue) {\n handleSubmit(value)\n }\n emit('blur', value)\n}\n\n// ---------------------------------------------------------------------------\n// Codemirror instance handling\n\n// WARNING: Extensions are non-reactive! If props change nothing will happen\n\nconst extensions: Extension[] = [...props.extensions]\nif (props.colorPicker) {\n extensions.push(colorPickerExtension)\n}\n\n// Create a reactive pill plugin that updates when environment changes\nconst pillPluginExtension = computed(() =>\n pillPlugin({\n environment: props.environment,\n envVariables: props.envVariables,\n isReadOnly: layout === 'modal',\n }),\n)\n\n// Base extensions that will be used for the editor\nconst baseExtensions = computed(() => [\n ...extensions,\n pillPluginExtension.value,\n backspaceCommand,\n])\n\nconst codeMirrorRef: Ref<HTMLDivElement | null> = ref(null)\n\nconst { codeMirror } = useCodeMirror({\n content: toRef(() =>\n props.modelValue !== undefined ? String(props.modelValue) : '',\n ),\n onChange: (value) => {\n handleChange(value)\n updateDropdownVisibility()\n },\n onFocus: () => (isFocused.value = true),\n onBlur: (val) => handleBlur(val),\n codeMirrorRef,\n disableTabIndent: toRef(() => props.disableTabIndent),\n disableEnter: toRef(() => props.disableEnter),\n disableCloseBrackets: toRef(() => props.disableCloseBrackets),\n lineNumbers: toRef(() => props.lineNumbers),\n language: toRef(() => props.language),\n lint: toRef(() => props.lint),\n extensions: baseExtensions,\n placeholder: toRef(() => props.placeholder),\n})\n\ncodeMirror.value?.focus()\n\n// If we specify autofocus then focus codemirror on creation\nwatch(codeMirror, () => {\n if (codeMirror.value && Object.hasOwn(attrs, 'autofocus')) {\n codeMirror.value.focus()\n }\n})\n\nconst { handleDropdownSelect, updateDropdownVisibility } = useDropdown({\n codeMirror,\n query: dropdownQuery,\n showDropdown,\n dropdownPosition,\n})\n\n// Computed property to check if type is boolean and nullable\nconst booleanOptions = computed(() =>\n props.nullable ? ['true', 'false', 'null'] : ['true', 'false'],\n)\n\nconst handleKeyDown = (key: string, event: KeyboardEvent) => {\n if (showDropdown.value) {\n if (key === 'down') {\n event.preventDefault()\n dropdownRef.value?.handleArrowKey('down')\n } else if (key === 'up') {\n event.preventDefault()\n dropdownRef.value?.handleArrowKey('up')\n } else if (key === 'enter') {\n event.preventDefault()\n dropdownRef.value?.handleSelect()\n }\n } else if (key === 'escape') {\n if (!props.disableTabIndent) {\n event.stopPropagation()\n }\n } else if (key === 'enter' && event.target instanceof HTMLDivElement) {\n handleSubmit(event.target.textContent ?? '')\n }\n}\n\nconst defaultType = computed(() => {\n return Array.isArray(props.type)\n ? // Find the first type, that's not 'null'\n (props.type.find((type) => type !== 'null') ?? 'string')\n : // If it's not an array, just return the type\n props.type\n})\n\nconst displayVariablesDropdown = computed(\n () =>\n showDropdown.value &&\n props.withVariables &&\n layout !== 'modal' &&\n props.environment,\n)\n\ndefineExpose({\n /** Expose focus method */\n focus: () => {\n codeMirror.value?.focus()\n },\n // Expose these methods for testing\n handleChange,\n handleSubmit,\n handleBlur,\n booleanOptions,\n codeMirror,\n modelValue: props.modelValue,\n})\n</script>\n<script lang=\"ts\">\n// use normal <script> to declare options\nexport default {\n inheritAttrs: false,\n}\n</script>\n<template>\n <template v-if=\"disabled\">\n <div\n class=\"text-c-2 flex cursor-default items-center justify-center\"\n :class=\"layout === 'modal' ? 'font-code pr-2 pl-1 text-base' : 'px-2'\"\n data-testid=\"code-input-disabled\">\n <span class=\"whitespace-nowrap\">{{ modelValue }}</span>\n </div>\n </template>\n <template v-else-if=\"props.enum && props.enum.length\">\n <DataTableInputSelect\n :default=\"props.default\"\n :modelValue=\"modelValue\"\n :type=\"defaultType\"\n :value=\"props.enum\"\n @update:modelValue=\"emit('update:modelValue', $event)\" />\n </template>\n <template v-else-if=\"type === 'boolean' || type?.includes('boolean')\">\n <DataTableInputSelect\n :default=\"props.default\"\n :modelValue=\"modelValue\"\n :value=\"booleanOptions\"\n @update:modelValue=\"emit('update:modelValue', $event)\" />\n </template>\n <template v-else-if=\"props.examples && props.examples.length\">\n <DataTableInputSelect\n :default=\"props.default\"\n :modelValue=\"props.modelValue\"\n :value=\"props.examples\"\n @update:modelValue=\"emit('update:modelValue', $event)\" />\n </template>\n <template v-else>\n <div\n :id=\"uid\"\n v-bind=\"$attrs\"\n ref=\"codeMirrorRef\"\n class=\"group/input group-[.alert]:outline-orange group-[.error]:outline-red font-code peer relative w-full overflow-hidden text-xs leading-[1.44] whitespace-nowrap -outline-offset-1 has-[:focus-visible]:rounded-[4px] has-[:focus-visible]:outline\"\n :class=\"{\n 'line-wrapping has-[:focus-visible]:bg-b-1 has-[:focus-visible]:absolute has-[:focus-visible]:z-1':\n lineWrapping,\n 'flow-code-input--error': error,\n }\"\n @keydown.down.stop=\"handleKeyDown('down', $event)\"\n @keydown.enter=\"handleKeyDown('enter', $event)\"\n @keydown.escape=\"handleKeyDown('escape', $event)\"\n @keydown.up.stop=\"handleKeyDown('up', $event)\">\n <div\n v-if=\"!disableTabIndent\"\n class=\"z-context text-c-2 absolute right-1.5 bottom-1 hidden font-sans group-has-[:focus-visible]/input:block\"\n role=\"alert\">\n Press\n <kbd class=\"-mx-0.25 rounded border px-0.5 font-mono\">Esc</kbd> then\n <kbd class=\"-mx-0.25 rounded border px-0.5 font-mono\">Tab</kbd> to exit\n </div>\n </div>\n </template>\n <div\n v-if=\"$slots.warning\"\n class=\"centered-y text-orange absolute right-7 text-xs\">\n <slot name=\"warning\" />\n </div>\n <div\n v-if=\"$slots.icon\"\n class=\"centered-y absolute right-0 flex h-full items-center p-1.5 group-has-[.cm-focused]:z-1\">\n <slot name=\"icon\" />\n </div>\n <div\n v-if=\"required\"\n class=\"required centered-y text-xxs text-c-3 group-[.error]:text-red bg-b-1 pointer-events-none absolute right-0 mr-0.5 pt-px pr-2 opacity-100 shadow-[-8px_0_4px_var(--scalar-background-1)] transition-opacity duration-150 group-[.alert]:bg-transparent group-[.alert]:shadow-none group-[.error]:bg-transparent group-[.error]:shadow-none peer-has-[.cm-focused]:opacity-0\">\n Required\n </div>\n <EnvironmentVariableDropdown\n v-if=\"displayVariablesDropdown\"\n ref=\"dropdownRef\"\n :dropdownPosition=\"dropdownPosition\"\n :envVariables=\"envVariables\"\n :environment=\"environment\"\n :query=\"dropdownQuery\"\n @select=\"handleDropdownSelect\" />\n</template>\n<style scoped>\n/*\n Deep styling for customizing Codemirror\n*/\n:deep(.cm-editor) {\n height: 100%;\n outline: none;\n padding: 0;\n background: transparent;\n}\n:deep(.cm-placeholder) {\n color: var(--scalar-color-3);\n}\n:deep(.cm-content) {\n font-family: var(--scalar-font-code);\n font-size: var(--scalar-small);\n max-height: 20px;\n padding: 8px 0;\n}\n/* Tooltip helper */\n:deep(.cm-tooltip) {\n background: transparent !important;\n filter: brightness(var(--scalar-lifted-brightness));\n border-radius: var(--scalar-radius);\n box-shadow: var(--scalar-shadow-2);\n border: none !important;\n outline: none !important;\n overflow: hidden !important;\n}\n:deep(.cm-tooltip-autocomplete ul li) {\n padding: 3px 6px !important;\n}\n:deep(.cm-completionIcon-type:after) {\n color: var(--scalar-color-3) !important;\n}\n:deep(.cm-tooltip-autocomplete ul li[aria-selected]) {\n background: var(--scalar-background-2) !important;\n color: var(--scalar-color-1) !important;\n}\n:deep(.cm-tooltip-autocomplete ul) {\n padding: 6px !important;\n position: relative;\n}\n:deep(.cm-tooltip-autocomplete ul li:hover) {\n border-radius: 3px;\n color: var(--scalar-color-1) !important;\n background: var(--scalar-background-3) !important;\n}\n/* Disable active line highlighting */\n:deep(.cm-activeLine),\n:deep(.cm-activeLineGutter) {\n background-color: transparent;\n}\n/* Color selection matching */\n:deep(.cm-selectionMatch),\n:deep(.cm-matchingBracket) {\n border-radius: var(--scalar-radius);\n background: var(--scalar-background-4) !important;\n}\n/* Color Picker Swatches */\n:deep(.cm-css-color-picker-wrapper) {\n display: inline-flex;\n outline: 1px solid var(--scalar-background-3);\n border-radius: 3px;\n overflow: hidden;\n}\n/* Number gutter */\n:deep(.cm-gutters) {\n background-color: transparent;\n border-right: none;\n color: var(--scalar-color-3);\n font-size: var(--scalar-small);\n line-height: 22px;\n border-radius: 0 0 0 3px;\n}\n:deep(.cm-gutters:before) {\n content: '';\n position: absolute;\n top: 2px;\n left: 2px;\n width: calc(100% - 2px);\n height: calc(100% - 4px);\n border-radius: var(--scalar-radius) 0 0 var(--scalar-radius);\n background-color: var(--scalar-background-1);\n}\n:deep(.cm-gutterElement) {\n font-family: var(--scalar-font-code) !important;\n padding-left: 0px !important;\n padding-right: 6px !important;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n position: relative;\n}\n:deep(.cm-lineNumbers .cm-gutterElement) {\n min-width: fit-content;\n}\n:deep(.cm-gutter + .cm-gutter :not(.cm-foldGutter) .cm-gutterElement) {\n padding-left: 0 !important;\n}\n:deep(.cm-scroller) {\n overflow: auto;\n}\n.line-wrapping:focus-within :deep(.cm-content) {\n display: inline-table;\n min-height: fit-content;\n padding: 3px 6px;\n white-space: break-spaces;\n word-break: break-all;\n}\n</style>\n<style>\n.cm-pill {\n --tw-bg-base: var(--scalar-color-1);\n color: var(--tw-bg-base);\n padding: 0px 9px;\n border-radius: 3px;\n display: inline-block;\n border-radius: 30px;\n font-size: var(--scalar-small);\n background: color-mix(in srgb, var(--tw-bg-base), transparent 94%) !important;\n}\n.cm-pill.bg-grey {\n background: var(--scalar-background-3) !important;\n}\n.dark-mode .cm-pill {\n background: color-mix(in srgb, var(--tw-bg-base), transparent 90%) !important;\n}\n.cm-pill:first-of-type {\n margin-left: 0;\n}\n.cm-editor .cm-widgetBuffer {\n display: none;\n}\n.cm-foldPlaceholder:hover {\n color: var(--scalar-color-1);\n}\n.cm-foldGutter .cm-gutterElement {\n font-size: var(--scalar-heading-4);\n padding: 2px !important;\n}\n.cm-foldGutter .cm-gutterElement:first-of-type {\n display: none;\n}\n.cm-foldGutter .cm-gutterElement .cm-foldMarker {\n padding: 2px;\n padding-top: 2px;\n}\n.cm-foldGutter .cm-gutterElement:hover .cm-foldMarker {\n background: var(--scalar-background-2);\n border-radius: var(--scalar-radius);\n color: var(--scalar-color-1);\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECcA,MAAM,QAAQ;EAQd,MAAM,OAAO;EAIb,MAAM,SAAS,IAAI,KAAI;EACvB,MAAM,cAAc,IAAwB,KAAI;EAChD,MAAM,wBAAwB,IAAI,EAAC;EACnC,MAAM,SAAS,WAAU;EACzB,MAAM,EAAE,qBAAqB,mBAAkB;EAE/C,MAAM,8BAA8B;AAClC,OAAI,CAAC,OACH;GAEF,MAAM,EAAE,cAAc,SAAS;GAC/B,MAAM,cAAc,aAAa,MAAM,OAAO;AAG9C,OACE,CAAC,iBAAiB,SAClB,iBAAiB,MAAM,MAAM,UAAU,SAEvC,MAAK;IACH,MAAM;IACN,QAAQ,GACL,OAAO,YAAY,aACrB;IACF,CAAA;OAGD,MAAK;IACH,MAAM;IACN,QAAQ,GACL,OAAO,aAAa,iBAAiB,MAAM,KAC7C;IACF,CAAA;AAEH,UAAO,QAAQ;;EAGjB,MAAM,OAAO,IAAI,KAAK,kBAAkB,MAAM,aAAa,EAAE,EAC3D,MAAM,CAAC,OAAO,QAAQ,EACvB,CAAA;EAED,MAAM,oBAAoB,eAAe;GACvC,MAAM,cAAc,MAAM;AAE1B,OAAI,CAAC;;AAEH,UAAO,kBAAkB,MAAM,aAAY,CACxC,MAAM,GAAE,CACR,QAAQ,EAAE,KAAK,YAAY,QAAQ,MAAM,UAAU,GAAE;;GAI1D,MAAM,SAAS,KAAK,OAAO,aAAa,EAAE,OAAO,IAAI,CAAA;AACrD,OAAI,OAAO,SAAS,EAClB,QAAO,OACJ,KAAK,QAAQ,IAAI,KAAI,CACrB,QAAQ,EAAE,KAAK,YAAY,QAAQ,MAAM,UAAU,GAAE;AAG1D,UAAO,EAAC;IACT;EAED,MAAM,kBAAkB,gBAAwB;AAC9C,QAAK,UAAU,YAAW;;EAG5B,MAAM,kBAAkB,cAA6B;GACnD,MAAM,SAAS,cAAc,OAAO,KAAK;GACzC,MAAM,SAAS,kBAAkB,MAAM;AAEvC,OAAI,WAAW,EACb;AAGF,yBAAsB,SACnB,sBAAsB,QAAQ,SAAS,UAAU;;EAGtD,MAAM,qBAAqB;AACzB,OAAI,sBAAsB,SAAS,GAAG;IACpC,MAAM,mBACJ,kBAAkB,MAAM,sBAAsB;AAChD,QAAI,iBACF,gBAAe,iBAAiB,IAAG;;;AAKzC,WAAa;GACX;GACA;GACD,CAAA;AAED,kBAAgB;AAEd,yBAAsB,QAAQ;IAC/B;EAED,MAAM,gBAAgB,eAA8B;AAClD,UAAO;IACL,OAAO,MAAM,kBAAkB,QAAQ,KAAK;IAE5C,MAAM,MAAM,kBAAkB,OAAO,KAAK,IAAI;IAChD;IACD;AAED,iBACE,mBACM;AACJ,UAAO,QAAQ;KAEjB,EAAE,QAAQ,CAAC,YAAY,EAAE,CAC3B;;UAIU,OAAA,SAAA,WAAA,EADR,YAoDiB,MAAA,eAAA,EAAA;;IAlDf,OAAM;;2BAiDA,CAhDN,mBAgDM,OAAA;cA/CA;KAAJ,KAAI;KACJ,OAAM;KACL,OAAK,eAAE,cAAA,MAAa;QAEb,kBAAA,MAAkB,UAAA,WAAA,EAD1B,mBAgCK,MAhCL,cAgCK,EAAA,UAAA,KAAA,EA7BH,mBA4BW,UAAA,MAAA,WA3Be,kBAAA,QAAhB,MAAM,UAAK;yBAEnB,mBAwBK,MAAA;WAzBC,KAAK;MAET,OAAK,eAAA,CAAC,6IAA2I,EAAA,UAC7H,UAAU,sBAAA,OAAqB,CAAA,CAAA;MAClD,UAAK,WAAE,eAAe,KAAK,IAAG;SAC/B,mBAeM,OAfN,cAeM,CAbuB,KAAK,WAAM,gBAAuC,QAAA,YAAY,SAAI,oBAAA,WAAA,EAD7F,mBAQY,QAAA;;MAHV,OAAM;MACL,OAAK,eAAA,EAAA,iBAAuC,MAAA,YAAW,CAAC,QAAA,YAAW,EAAA,CAAA;kCAGtE,YAGiB,MAAA,gBAAA,EAAA;;MADf,OAAM;MACN,MAAK;0BAAU,MACjB,gBAAG,KAAK,IAAG,EAAA,EAAA,CAAA,CAAA,EAEb,mBAGO,QAHP,cAGO,gBADF,KAAK,MAAK,EAAA,EAAA,CAAA,EAAA,IAAA,aAAA;mBAMR,MAAA,OAAM,IAAA,WAAA,EADnB,YAOe,MAAA,aAAA,EAAA;;KALb,OAAM;KACN,SAAQ;KACP,SAAO;;4BACyB,CAAjC,YAAiC,MAAA,eAAA,EAAA,EAAjB,OAAM,UAAQ,CAAA,EAAA,OAAA,OAAA,OAAA,KAAA,gBAAG,kBAEnC,GAAA,EAAA,CAAA;;kEAEA,mBAC6E,OAAA,EAA3E,OAAM,oEAAkE,EAAA,MAAA,GAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EEnLhF,MAAM,QAAQ;EAWd,MAAM,OAAO;EAIb,MAAM,UAAU,eAAe,MAAM,SAAS,EAAE,CAAA;EAChD,MAAM,oBAAoB,IAAI,MAAK;EACnC,MAAM,cAAc,IAAI,GAAE;EAC1B,MAAM,WAAW,IAA6B,KAAI;AAElD,QAAM,cAAc,aAAa;AAC/B,QAAK,qBAAqB,SAAQ;IACnC;EAED,MAAM,kBAAkB,UAAkB;AACxC,QAAK,qBAAqB,MAAK;AAC/B,qBAAkB,QAAQ;;EAG5B,MAAM,uBAAuB;AAC3B,OAAI,YAAY,MAAM,MAAM,CAC1B,gBAAe,YAAY,MAAK;;EAIpC,MAAM,mBAAmB;AACvB,OAAI,CAAC,YAAY,MAAM,MAAM,CAC3B,MAAK,qBAAqB,GAAE;AAE9B,qBAAkB,QAAQ;;EAG5B,MAAM,cAAc,UAAkB;AACpC,UAAO,MAAM,WAAW,UAAU,KAAK;;AAGzC,QAAM,oBAAoB,aAAa;AACrC,OAAI,SACF,gBAAe;AACb,aAAS,OAAO,OAAM;KACvB;IAEJ;EAED,MAAM,eAAe,eAAe;AAClC,UAAO,MAAM,eAAe,KAAA,IAAY,MAAM,aAAa,MAAM;IAClE;;EAGD,MAAM,uBAAuB,eAAe;GAC1C,MAAM,iBAAiB,IAAI,IAAI,MAAM,WAAW,UAAU,CAAC,MAAM,KAAK,CAAA;AACtE,UAAO,QAAQ,MACZ,QAAQ,WAAW,eAAe,IAAI,OAAO,CAAA,CAC7C,KAAK,YAAY;IAAE,IAAI;IAAQ,OAAO;IAAQ,OAAO;IAAQ,EAAC;IAClE;;EAGD,MAAM,eAAe,eACnB,QAAQ,MAAM,KAAK,YAAY;GAAE,IAAI;GAAQ,OAAO;GAAQ,OAAO;GAAQ,EAAE,CAC/E;;EAGA,MAAM,yBAAyB,oBAAyB;AAEtD,QAAK,qBADkB,gBAAgB,KAAK,WAAgB,OAAO,MAAK,CAC/B,KAAK,KAAK,CAAA;;;uBAKnD,mBAoFM,OApFN,cAoFM,CAlFY,QAAA,SAAI,WAAA,WAAA,EAClB,YAkB4B,MAAA,0BAAA,EAAA;;IAjBzB,YAAY,qBAAA;IACZ,SAAS,aAAA;IACT,uBAAmB;;2BAcL,CAbf,YAae,MAAA,aAAA,EAAA;KAZb,OAAM;KACN,WAAA;KACA,SAAQ;;4BAKC,CAJT,mBAIS,QAJT,cAIS,gBAHP,qBAAA,MAAqB,SAAM,IAAqB,qBAAA,MAAqB,KAAK,WAAW,OAAO,MAAK,CAAE,KAAI,KAAA,GAAA,iBAAA,EAAA,EAAA,EAIzG,YAGoB,MAAA,WAAA,EAAA;MAFlB,MAAK;MACL,MAAK;MACL,OAAM;;;;;uCAIO,kBAAA,QAAA,gBAAA,WAAA,EACnB,mBAOkC,SAAA;;aAN5B;IAAJ,KAAI;6EACgB,QAAA;IACpB,OAAM;IACN,aAAY;IACZ,MAAK;IACJ,QAAM;IACN,SAAK,SAAQ,gBAAc,CAAA,QAAA,CAAA;iCALnB,YAAA,MAAW,CAAA,CAAA,IAAA,WAAA,EAQtB,YAgDiB,MAAA,eAAA,EAAA;;IA/Cf,QAAA;IACC,OAAO,aAAA;;IAWG,OAAK,cAEa,EAAA,UAAA,KAAA,EAD3B,mBAmBqB,UAAA,MAAA,WAlBF,QAAA,QAAV,WAAM;yBADf,YAmBqB,MAAA,mBAAA,EAAA;MAjBlB,KAAK;MACN,OAAM;MACL,OAAO;MACP,UAAK,WAAE,eAAe,OAAM;;6BAYvB,CAXN,mBAWM,OAAA,EAVJ,OAAK,eAAA,CAAC,iEACmB,WAAW,OAAM,GAAA,yBAAA,iCAAA,CAAA,EAAA,EAAA,CAK1C,YAGkB,MAAA,WAAA,EAAA;OAFhB,OAAM;OACN,MAAK;OACL,WAAU;eAEd,mBAA+D,QAA/D,cAA+D,gBAAhB,OAAM,EAAA,EAAA,CAAA,CAAA;;;eAEvC,QAAA,qBAAA,WAAA,EAAhB,mBAYW,UAAA,EAAA,KAAA,GAAA,EAAA,CAXoB,QAAA,MAAQ,UAAA,WAAA,EAArC,YAA+C,MAAA,sBAAA,EAAA,EAAA,KAAA,GAAA,CAAA,IAAA,mBAAA,IAAA,KAAA,EAC/C,YASqB,MAAA,mBAAA,EAAA;KARnB,OAAM;KACL,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,kBAAA,QAAiB;;4BAKnB,CAJN,mBAIM,OAJN,cAIM,CAHJ,YAEc,MAAA,WAAA,EAAA;MADZ,MAAK;MACL,MAAK;qCAET,mBAAsB,QAAA,MAAhB,aAAS,GAAA,EAAA,CAAA;;;2BAhCN,CATf,YASe,MAAA,aAAA,EAAA;KARb,OAAM;KACN,SAAQ;;4BAGC,CAFT,mBAES,QAFT,cAES,gBADP,aAAA,SAAY,iBAAA,EAAA,EAAA,EAEd,YAEc,MAAA,WAAA,EAAA;MADZ,MAAK;MACL,MAAK;;;;;;;;;;;;;;ACjHjB,IAAM,aAAN,MAAM,mBAAmB,WAAW;CAClC;CACA;CACA;CACA;CACA;CAEA,YACE,cACA,aACA,cACA,YACA;AACA,SAAO;AALC,OAAA,eAAA;AAMR,OAAK,eAAe;AACpB,OAAK,cAAc;AACnB,OAAK,eAAe;AACpB,OAAK,aAAa,cAAc;AAChC,OAAK,MAAM,QAAQ;;CAGrB,QAAQ;EACN,MAAM,OAAO,SAAS,cAAc,OAAO;AAC3C,OAAK,YAAY;AACjB,OAAK,cAAc,GAAG,KAAK;AA+C3B,OAAK,MAAM,UA7Cc,gBAAgB;GACvC,OAAO,EAAE,cAAc;IAAE,MAAM;IAAQ,SAAS;IAAM,EAAE;GACxD,cAAc;IACZ,MAAM,MAAM,KAAK,eACb,kBAAkB,KAAK,aAAa,CAAC,MAAM,UAAU,MAAM,QAAQ,KAAK,aAAa,GACrF,KAAA;IAGJ,MAAM,WAAW,KAAK,WAAW;IACjC,MAAM,YAAY,WACd,0BACA,OAAO,KAAK,eAAe,KAAK,YAAY,SAAS,mBACnD,YAAY,KAAK,YAAY,GAC7B;AAEN,SAAK,MAAM,YAAY,gBAAgB,UAAU;AAGjD,SAAK,MAAM,UAAU,KAAK,QAAQ,MAAM;IAGxC,MAAM,iBAAiB,KAAK,SAAS;IAGrC,MAAM,iBAAiB,EAAE,OAAO,EAAE,OAAO,6CAA6C,EAAE,EACrF,YAAa,KAAK,aAAa,SAAS,oBAAoB,KAAK,UAChE,EAAE,iBAAiB;KAAE,OAAO;KAAgB,MAAM;KAAS,CAAC,EAC9D,EAAE,QAAQ,KAAK,aAAa,CAC7B,CAAC;AAEF,WAAO,EACL,eACA;KACE,SAAS;KACT,OAAO;KACP,WAAW;KACX,QAAQ;KACT,EACD,EACE,eAAe,gBAChB,CACF;;GAEJ,CAAC,EAEqC,EAAE,cAAc,KAAK,cAAc,CAAC;AAC3E,OAAK,IAAI,MAAM,KAAK;AAEpB,SAAO;;CAGT,UAAmB;AACjB,MAAI,KAAK,IACP,MAAK,IAAI,SAAS;;CAItB,GAAY,OAAmB;AAC7B,SAAO,iBAAiB,cAAc,MAAM,iBAAiB,KAAK,gBAAgB,MAAM,QAAQ,KAAK;;CAGvG,cAAuB;AACrB,SAAO;;;;;;AAOX,IAAa,cAAc,UAKzB,WAAW,UACT,MAAM;CACJ;CAEA,YAAY,MAAkB;AAC5B,OAAK,cAAc,KAAK,iBAAiB,KAAK;;CAGhD,OAAO,QAAoB;AACzB,MAAI,OAAO,cAAc,OAAO,gBAC9B,6BAA4B;AAC1B,QAAK,cAAc,KAAK,iBAAiB,OAAO,KAAK;AACrD,UAAO,KAAK,OAAO,EAAE,CAAC;IACtB;;CAIN,iBAAiB,MAAkB;EACjC,MAAM,UAAU,IAAI,iBAA6B;AAEjD,OAAK,MAAM,EAAE,MAAM,QAAQ,KAAK,eAAe;GAC7C,MAAM,OAAO,KAAK,MAAM,IAAI,YAAY,MAAM,GAAG;GACjD,IAAI;AAEJ,WAAQ,QAAQ,MAAM,UAAU,KAAK,KAAK,MAAM,MAAM;IACpD,MAAM,QAAQ,OAAO,MAAM;IAC3B,MAAM,MAAM,QAAQ,MAAM,GAAG;IAC7B,MAAM,eAAe,MAAM,MAAM;AACjC,YAAQ,IACN,OACA,KACA,WAAW,OAAO;KAChB,QAAQ,IAAI,WAAW,cAAc,MAAM,aAAa,MAAM,cAAc,MAAM,WAAW;KAC7F,MAAM;KACP,CAAC,CACH;;;AAIL,SAAO,QAAQ,QAAQ;;GAG3B,EACE,cAAc,MAAM,EAAE,aACvB,CACF;AAEH,IAAa,mBAAmB,WAAW,iBAAiB,EAC1D,QAAQ,OAAO,MAAM;AACnB,KAAI,MAAM,QAAQ,aAAa;EAC7B,MAAM,EAAE,UAAU;EAClB,MAAM,EAAE,MAAM,OAAO,MAAM,UAAU;AAGrC,MAAI,SAAS,KAAK,OAAO,MAAM,IAAI,QAAQ;AACzC,QAAK,SAAS;IACZ,SAAS;KAAE,MAAM;KAAG,IAAI,MAAM,IAAI;KAAQ;IAC1C,WAAW,EAAE,QAAQ,GAAG;IACzB,CAAC;AACF,SAAM,gBAAgB;AACtB,UAAO;;AAGT,MAAI,SAAS,MAAM,OAAO;OACT,MAAM,IAAI,YAAY,OAAO,GAAG,KAAK,KACrC,MAAM;AACnB,SAAK,SAAS;KACZ,SAAS;MAAE,MAAM,OAAO;MAAG;MAAI;KAC/B,WAAW,EAAE,QAAQ,OAAO,GAAG;KAChC,CAAC;AACF,UAAM,gBAAgB;AACtB,WAAO;;;;AAIb,QAAO;GAEV,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;CEqDA,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAzOhB,MAAM,QAAQ;EA0Cd,MAAM,OAAO;EAOb,MAAM,QAAQ,UAAU;EACxB,MAAM,MAAO,MAAM,MAAiB,MAAM,QAAQ;EAElD,MAAM,YAAY,IAAI,MAAK;EAG3B,MAAM,eAAe,IAAI,MAAK;EAC9B,MAAM,gBAAgB,IAAI,GAAE;EAC5B,MAAM,mBAAmB,IAAI;GAAE,MAAM;GAAG,KAAK;GAAG,CAAA;EAChD,MAAM,cAAc,IAEV,KAAI;EAEd,MAAM,EAAE,WAAW,WAAU;;EAM7B,SAAS,aAAa,OAAe;AAGnC,OAAI,UAAU,MAAM,WAClB,QAAO;AAET,OAAI,MAAM,cAAc,MAAM,MAAM,CAAC,aAAa,CAAC,WAAW,OAAO,EAAE;AACrE,SAAK,QAAQ,MAAK;AAElB,eAAW,OAAO,SAAS,EACzB,SAAS;KACP,MAAM;KACN,IAAI,WAAW,MAAM,MAAM,IAAI;KAC/B,QAAQ,OAAO,MAAM,WAAW;KACjC,EACF,CAAA;AAED,WAAO;;AAGT,UAAO,MAAM,oBACT,MAAM,kBAAkB,MAAK,GAC7B,KAAK,qBAAqB,MAAK;;;EAIrC,SAAS,aAAa,OAAe;AACnC,UAAO,MAAM,oBACT,MAAM,kBAAkB,MAAK,GAC7B,KAAK,UAAU,MAAK;;;EAI1B,SAAS,WAAW,OAAe;AACjC,aAAU,QAAQ;AAClB,OAAI,MAAM,cAAc,MAAM,WAC5B,cAAa,MAAK;AAEpB,QAAK,QAAQ,MAAK;;EAQpB,MAAM,aAA0B,CAAC,GAAG,MAAM,WAAU;AACpD,MAAI,MAAM,YACR,YAAW,KAAK,YAAoB;EAItC,MAAM,sBAAsB,eAC1B,WAAW;GACT,aAAa,MAAM;GACnB,cAAc,MAAM;GACpB,YAAY,WAAW;GACxB,CAAC,CACJ;EAGA,MAAM,iBAAiB,eAAe;GACpC,GAAG;GACH,oBAAoB;GACpB;GACD,CAAA;EAED,MAAM,gBAA4C,IAAI,KAAI;EAE1D,MAAM,EAAE,eAAe,cAAc;GACnC,SAAS,YACP,MAAM,eAAe,KAAA,IAAY,OAAO,MAAM,WAAW,GAAG,GAC7D;GACD,WAAW,UAAU;AACnB,iBAAa,MAAK;AAClB,8BAAyB;;GAE3B,eAAgB,UAAU,QAAQ;GAClC,SAAS,QAAQ,WAAW,IAAI;GAChC;GACA,kBAAkB,YAAY,MAAM,iBAAiB;GACrD,cAAc,YAAY,MAAM,aAAa;GAC7C,sBAAsB,YAAY,MAAM,qBAAqB;GAC7D,aAAa,YAAY,MAAM,YAAY;GAC3C,UAAU,YAAY,MAAM,SAAS;GACrC,MAAM,YAAY,MAAM,KAAK;GAC7B,YAAY;GACZ,aAAa,YAAY,MAAM,YAAY;GAC5C,CAAA;AAED,aAAW,OAAO,OAAM;AAGxB,QAAM,kBAAkB;AACtB,OAAI,WAAW,SAAS,OAAO,OAAO,OAAO,YAAY,CACvD,YAAW,MAAM,OAAM;IAE1B;EAED,MAAM,EAAE,sBAAsB,6BAA6B,YAAY;GACrE;GACA,OAAO;GACP;GACA;GACD,CAAA;EAGD,MAAM,iBAAiB,eACrB,MAAM,WAAW;GAAC;GAAQ;GAAS;GAAO,GAAG,CAAC,QAAQ,QAAQ,CAChE;EAEA,MAAM,iBAAiB,KAAa,UAAyB;AAC3D,OAAI,aAAa;QACX,QAAQ,QAAQ;AAClB,WAAM,gBAAe;AACrB,iBAAY,OAAO,eAAe,OAAM;eAC/B,QAAQ,MAAM;AACvB,WAAM,gBAAe;AACrB,iBAAY,OAAO,eAAe,KAAI;eAC7B,QAAQ,SAAS;AAC1B,WAAM,gBAAe;AACrB,iBAAY,OAAO,cAAa;;cAEzB,QAAQ;QACb,CAAC,MAAM,iBACT,OAAM,iBAAgB;cAEf,QAAQ,WAAW,MAAM,kBAAkB,eACpD,cAAa,MAAM,OAAO,eAAe,GAAE;;EAI/C,MAAM,cAAc,eAAe;AACjC,UAAO,MAAM,QAAQ,MAAM,KAAI,GAE1B,MAAM,KAAK,MAAM,SAAS,SAAS,OAAO,IAAI,WAE/C,MAAM;IACX;EAED,MAAM,2BAA2B,eAE7B,aAAa,SACb,MAAM,iBACN,WAAW,WACX,MAAM,YACV;AAEA,WAAa;GAEX,aAAa;AACX,eAAW,OAAO,OAAM;;GAG1B;GACA;GACA;GACA;GACA;GACA,YAAY,MAAM;GACnB,CAAA;;;IASiB,QAAA,YAAA,WAAA,EACd,mBAKM,OAAA;;KAJJ,OAAK,eAAA,CAAC,4DACE,MAAA,OAAM,KAAA,UAAA,kCAAA,OAAA,CAAA;KACd,eAAY;QACZ,mBAAuD,QAAvD,YAAuD,gBAApB,QAAA,WAAU,EAAA,EAAA,CAAA,EAAA,EAAA,IAG5B,MAAM,QAAQ,MAAM,KAAK,UAAA,WAAA,EAC5C,YAK2D,8BAAA;;KAJxD,SAAS,MAAM;KACf,YAAY,QAAA;KACZ,MAAM,YAAA;KACN,OAAO,MAAM;KACb,uBAAiB,OAAA,OAAA,OAAA,MAAA,WAAE,KAAI,qBAAsB,OAAM;;;;;;UAEnC,QAAA,SAAI,aAAkB,QAAA,MAAM,SAAQ,UAAA,IAAA,WAAA,EACvD,YAI2D,8BAAA;;KAHxD,SAAS,MAAM;KACf,YAAY,QAAA;KACZ,OAAO,eAAA;KACP,uBAAiB,OAAA,OAAA,OAAA,MAAA,WAAE,KAAI,qBAAsB,OAAM;;;;;UAEnC,MAAM,YAAY,MAAM,SAAS,UAAA,WAAA,EACpD,YAI2D,8BAAA;;KAHxD,SAAS,MAAM;KACf,YAAY,MAAM;KAClB,OAAO,MAAM;KACb,uBAAiB,OAAA,OAAA,OAAA,MAAA,WAAE,KAAI,qBAAsB,OAAM;;;;;wBAGtD,mBAsBM,OAtBN,WAsBM;;KArBH,IAAI,MAAA,IAAG;OACAA,KAAAA,QAAM;cACV;KAAJ,KAAI;KACJ,OAAK,CAAC,kPAAgP;0GACtH,QAAA;gCAAgD,QAAA;;KAK/K,WAAO;mEAAY,cAAa,QAAS,OAAM,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,OAAA,CAAA;qDAChC,cAAa,SAAU,OAAM,EAAA,CAAA,QAAA,CAAA;qDAC5B,cAAa,UAAW,OAAM,EAAA,CAAA,SAAA,CAAA;mEAC7B,cAAa,MAAO,OAAM,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,KAAA,CAAA;;UAEnC,QAAA,oBAAA,WAAA,EADT,mBAOM,OAPN,YAOM,CAAA,GAAA,OAAA,OAAA,OAAA,KAAA;qBAJS,WAEb,GAAA;KAAA,mBAA+D,OAAA,EAA1D,OAAM,4CAA0C,EAAC,OAAG,GAAA;qBAAM,UAC/D,GAAA;KAAA,mBAA+D,OAAA,EAA1D,OAAM,4CAA0C,EAAC,OAAG,GAAA;qBAAM,aACjE,GAAA;;IAIIC,KAAAA,OAAO,WAAA,WAAA,EADf,mBAIM,OAJN,YAIM,CADJ,WAAuB,KAAA,QAAA,WAAA,EAAA,EAAA,KAAA,GAAA,KAAA,CAAA,CAAA,IAAA,mBAAA,IAAA,KAAA;IAGjBA,KAAAA,OAAO,QAAA,WAAA,EADf,mBAIM,OAJN,YAIM,CADJ,WAAoB,KAAA,QAAA,QAAA,EAAA,EAAA,KAAA,GAAA,KAAA,CAAA,CAAA,IAAA,mBAAA,IAAA,KAAA;IAGd,QAAA,YAAA,WAAA,EADR,mBAIM,OAJN,YAEoX,aAEpX,IAAA,mBAAA,IAAA,KAAA;IAEQ,yBAAA,SAAA,WAAA,EADR,YAOmC,qCAAA;;cAL7B;KAAJ,KAAI;KACH,kBAAkB,iBAAA;KAClB,cAAc,QAAA;KACd,aAAa,QAAA;KACb,OAAO,cAAA;KACP,UAAQ,MAAA,qBAAoB"}
@@ -0,0 +1,218 @@
1
+ import { n as replaceTemplateVariables } from "./string-template-sS5PtY6T.js";
2
+ import { t as buildRequestSecurity } from "./build-request-security-BQjNr2MD.js";
3
+ import { t as getSnippet } from "./get-snippet-DBRUSfZ2.js";
4
+ import { computed, createBlock, createCommentVNode, createElementBlock, defineComponent, openBlock, toDisplayString, unref } from "vue";
5
+ import { ScalarCodeBlock } from "@scalar/components";
6
+ import { REGEX, isDefined, mergeUrls } from "@scalar/oas-utils/helpers";
7
+ import { encode } from "js-base64";
8
+ //#region src/views/Components/CodeSnippet/CodeSnippet.vue?vue&type=script&setup=true&lang.ts
9
+ var _hoisted_1 = {
10
+ key: 0,
11
+ class: "text-c-3 flex min-h-16 items-center justify-center px-4 text-sm"
12
+ };
13
+ //#endregion
14
+ //#region src/views/Components/CodeSnippet/CodeSnippet.vue
15
+ var CodeSnippet_default = /* @__PURE__ */ defineComponent({
16
+ __name: "CodeSnippet",
17
+ props: {
18
+ target: {},
19
+ client: {},
20
+ operation: {},
21
+ server: {},
22
+ example: {},
23
+ securitySchemes: { default: () => [] },
24
+ environment: {}
25
+ },
26
+ setup(__props) {
27
+ /** Block secrets from being shown in the code block */
28
+ const secretCredentials = computed(() => __props.securitySchemes.flatMap((scheme) => {
29
+ if (scheme.type === "apiKey") return scheme.value;
30
+ if (scheme?.type === "http") return [
31
+ scheme.token,
32
+ scheme.password,
33
+ encode(`${scheme.username}:${scheme.password}`)
34
+ ];
35
+ if (scheme.type === "oauth2") return Object.values(scheme.flows).map((flow) => flow?.token).filter(isDefined);
36
+ return [];
37
+ }));
38
+ /** Generated code example */
39
+ const content = computed(() => {
40
+ const harRequest = getHarRequest({
41
+ operation: __props.operation,
42
+ example: __props.example,
43
+ server: __props.server,
44
+ securitySchemes: __props.securitySchemes,
45
+ environment: __props.environment
46
+ });
47
+ const [error, payload] = getSnippet(__props.target, __props.client, harRequest);
48
+ return {
49
+ error,
50
+ payload
51
+ };
52
+ });
53
+ /** CodeMirror syntax highlighting language */
54
+ const language = computed(() => {
55
+ if (__props.target === "shell" && __props.client === "curl") return "curl";
56
+ return __props.target ?? "plaintext";
57
+ });
58
+ return (_ctx, _cache) => {
59
+ return content.value.error ? (openBlock(), createElementBlock("div", _hoisted_1, toDisplayString(content.value.error.message), 1)) : content.value.payload ? (openBlock(), createBlock(unref(ScalarCodeBlock), {
60
+ key: 1,
61
+ class: "w-full",
62
+ content: content.value.payload,
63
+ hideCredentials: secretCredentials.value,
64
+ lang: language.value,
65
+ lineNumbers: ""
66
+ }, null, 8, [
67
+ "content",
68
+ "hideCredentials",
69
+ "lang"
70
+ ])) : createCommentVNode("", true);
71
+ };
72
+ }
73
+ });
74
+ //#endregion
75
+ //#region src/views/Components/CodeSnippet/helpers/convert-to-har-request.ts
76
+ /**
77
+ * Takes in a regular request object and returns a HAR request
78
+ * We also Titlecase the headers and remove accept header if it's *
79
+ */
80
+ var convertToHarRequest = ({ baseUrl = "", method, body, path, cookies, headers, query }) => {
81
+ const url = mergeUrls(baseUrl, path, void 0, true);
82
+ const harRequest = {
83
+ method: method.toUpperCase(),
84
+ url: url.toString(),
85
+ httpVersion: "HTTP/1.1",
86
+ headers: [],
87
+ queryString: [],
88
+ cookies: [],
89
+ headersSize: -1,
90
+ bodySize: -1
91
+ };
92
+ if (cookies.length) harRequest.cookies = cookies.filter((c) => c.enabled).map(({ key, value }) => ({
93
+ name: key,
94
+ value
95
+ }));
96
+ if (headers.length) harRequest.headers = headers.filter((h) => h.enabled && !(h.key.toLowerCase() === "accept" && h.value === "*/*")).map(({ key, value }) => ({
97
+ name: key.replace(/\b\w/g, (letter) => letter.toUpperCase()),
98
+ value
99
+ }));
100
+ if (query.length) harRequest.queryString = query.filter((q) => q.enabled).map(({ key, value }) => ({
101
+ name: key,
102
+ value
103
+ }));
104
+ if (body) try {
105
+ const contentType = headers.find((h) => h.key.toLowerCase() === "content-type")?.value;
106
+ if (body.activeBody === "formData" && body.formData) {
107
+ const params = [];
108
+ body.formData.value.forEach(({ key, value, file, enabled }) => {
109
+ if (!enabled) return;
110
+ if (file) params.push({
111
+ name: key || "blob",
112
+ value: "BINARY",
113
+ fileName: file.name,
114
+ contentType: file.type || "application/octet-stream"
115
+ });
116
+ else params.push({
117
+ name: key,
118
+ value
119
+ });
120
+ });
121
+ if (body.formData?.encoding === "urlencoded") harRequest.postData = {
122
+ mimeType: contentType || "application/x-www-form-urlencoded",
123
+ params
124
+ };
125
+ else harRequest.postData = {
126
+ mimeType: contentType || "multipart/form-data",
127
+ params
128
+ };
129
+ } else if (body.activeBody === "raw" && body.raw) harRequest.postData = {
130
+ mimeType: contentType || "application/json",
131
+ text: body.raw?.value ?? ""
132
+ };
133
+ } catch (_e) {}
134
+ return harRequest;
135
+ };
136
+ //#endregion
137
+ //#region src/views/Components/CodeSnippet/helpers/get-har-request.ts
138
+ var EMPTY_TOKEN_PLACEHOLDER = "YOUR_SECRET_TOKEN";
139
+ /**
140
+ * Creates a snippetz-compatible HarRequest from OpenAPI-like store entities
141
+ *
142
+ * @deprecated, can be removed once we've migrated to the new code snippet component
143
+ */
144
+ var getHarRequest = ({ operation, example, server, securitySchemes = [], environment }) => {
145
+ const env = environment && Array.isArray(environment) ? Object.fromEntries(environment.map((v) => [v.key, v.value])) : environment || {};
146
+ const encodedPathVars = (example?.parameters?.path ?? []).reduce((vars, param) => {
147
+ if (param.enabled) {
148
+ const substitutedValue = replaceTemplateVariables(param.value, env);
149
+ vars[param.key] = encodeURIComponent(substitutedValue);
150
+ }
151
+ return vars;
152
+ }, {});
153
+ const serverString = (() => {
154
+ if (server?.url && (REGEX.VARIABLES.test(server.url) || REGEX.PATH.test(server.url))) {
155
+ const serverParams = Object.entries(server?.variables || {}).reduce((acc, [key, variable]) => {
156
+ if (encodedPathVars[key]) acc[key] = encodedPathVars[key];
157
+ else if (variable.default) acc[key] = replaceTemplateVariables(variable.default, env);
158
+ return acc;
159
+ }, {});
160
+ return replaceTemplateVariables(replaceTemplateVariables(server.url, env), serverParams);
161
+ }
162
+ return server?.url;
163
+ })();
164
+ const pathString = (() => {
165
+ const path = operation?.path ?? "/";
166
+ if (path && (REGEX.VARIABLES.test(path) || REGEX.PATH.test(path))) return replaceTemplateVariables(replaceTemplateVariables(path, env), encodedPathVars);
167
+ return path;
168
+ })();
169
+ const security = buildRequestSecurity(securitySchemes, env, EMPTY_TOKEN_PLACEHOLDER);
170
+ const headers = [...(example?.parameters.headers ?? []).map((h) => ({
171
+ ...h,
172
+ value: REGEX.VARIABLES.test(h.value) || REGEX.PATH.test(h.value) ? replaceTemplateVariables(h.value, env) : h.value
173
+ })) ?? [], ...Object.entries(security.headers).map(([key, value]) => ({
174
+ key,
175
+ value,
176
+ enabled: true
177
+ }))];
178
+ const cookies = [...(example?.parameters.cookies ?? []).map((c) => ({
179
+ ...c,
180
+ value: REGEX.VARIABLES.test(c.value) || REGEX.PATH.test(c.value) ? replaceTemplateVariables(c.value, env) : c.value
181
+ })) ?? [], ...security.cookies.map((cookie) => ({
182
+ key: cookie.name,
183
+ value: cookie.value,
184
+ enabled: true
185
+ }))];
186
+ const query = [...(example?.parameters.query ?? []).map((q) => ({
187
+ ...q,
188
+ value: REGEX.VARIABLES.test(q.value) || REGEX.PATH.test(q.value) ? replaceTemplateVariables(q.value, env) : q.value
189
+ })) ?? [], ...Array.from(security.urlParams.entries()).map(([key, value]) => ({
190
+ key,
191
+ value,
192
+ enabled: true
193
+ }))];
194
+ const body = (() => {
195
+ const body = example?.body;
196
+ if (body?.raw?.value && (REGEX.VARIABLES.test(body.raw.value) || REGEX.PATH.test(body.raw.value))) return {
197
+ ...body,
198
+ raw: {
199
+ ...body.raw,
200
+ value: replaceTemplateVariables(body.raw.value, env)
201
+ }
202
+ };
203
+ return body;
204
+ })();
205
+ return convertToHarRequest({
206
+ baseUrl: serverString,
207
+ method: operation?.method ?? "get",
208
+ path: pathString,
209
+ body,
210
+ cookies,
211
+ headers,
212
+ query
213
+ });
214
+ };
215
+ //#endregion
216
+ export { convertToHarRequest as n, CodeSnippet_default as r, getHarRequest as t };
217
+
218
+ //# sourceMappingURL=CodeSnippet-D7Heh1nd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodeSnippet-D7Heh1nd.js","names":[],"sources":["../src/views/Components/CodeSnippet/CodeSnippet.vue","../src/views/Components/CodeSnippet/CodeSnippet.vue","../src/views/Components/CodeSnippet/helpers/convert-to-har-request.ts","../src/views/Components/CodeSnippet/helpers/get-har-request.ts"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarCodeBlock } from '@scalar/components'\nimport type {\n Operation,\n RequestExample,\n SecurityScheme,\n Server,\n} from '@scalar/oas-utils/entities/spec'\nimport { isDefined } from '@scalar/oas-utils/helpers'\nimport type { ClientId, TargetId } from '@scalar/snippetz'\nimport { encode } from 'js-base64'\nimport { computed } from 'vue'\n\nimport type { EnvVariables } from '@/libs/env-helpers'\nimport { getHarRequest, getSnippet } from '@/views/Components/CodeSnippet'\n\nconst {\n target,\n client,\n operation,\n server,\n example,\n securitySchemes = [],\n environment,\n} = defineProps<{\n target: TargetId\n client: ClientId<TargetId>\n operation?: Operation | undefined\n server?: Server | undefined\n example?: RequestExample | undefined\n securitySchemes?: SecurityScheme[]\n environment?: EnvVariables | undefined\n}>()\n\n/** Block secrets from being shown in the code block */\nconst secretCredentials = computed(() =>\n securitySchemes.flatMap((scheme) => {\n if (scheme.type === 'apiKey') {\n return scheme.value\n }\n if (scheme?.type === 'http') {\n return [\n scheme.token,\n scheme.password,\n encode(`${scheme.username}:${scheme.password}`),\n ]\n }\n if (scheme.type === 'oauth2') {\n return Object.values(scheme.flows)\n .map((flow) => flow?.token)\n .filter(isDefined)\n }\n\n return []\n }),\n)\n\n/** Generated code example */\nconst content = computed(() => {\n const harRequest = getHarRequest({\n operation,\n example,\n server,\n securitySchemes,\n environment,\n })\n\n const [error, payload] = getSnippet(target, client, harRequest)\n return { error, payload }\n})\n\n/** CodeMirror syntax highlighting language */\nconst language = computed(() => {\n // Normalize languages\n if (target === 'shell' && client === 'curl') {\n return 'curl'\n }\n // TODO: js -> javascript?\n\n return target ?? 'plaintext'\n})\n</script>\n<template>\n <div\n v-if=\"content.error\"\n class=\"text-c-3 flex min-h-16 items-center justify-center px-4 text-sm\">\n {{ content.error.message }}\n </div>\n <ScalarCodeBlock\n v-else-if=\"content.payload\"\n class=\"w-full\"\n :content=\"content.payload\"\n :hideCredentials=\"secretCredentials\"\n :lang=\"language\"\n lineNumbers />\n</template>\n","<script setup lang=\"ts\">\nimport { ScalarCodeBlock } from '@scalar/components'\nimport type {\n Operation,\n RequestExample,\n SecurityScheme,\n Server,\n} from '@scalar/oas-utils/entities/spec'\nimport { isDefined } from '@scalar/oas-utils/helpers'\nimport type { ClientId, TargetId } from '@scalar/snippetz'\nimport { encode } from 'js-base64'\nimport { computed } from 'vue'\n\nimport type { EnvVariables } from '@/libs/env-helpers'\nimport { getHarRequest, getSnippet } from '@/views/Components/CodeSnippet'\n\nconst {\n target,\n client,\n operation,\n server,\n example,\n securitySchemes = [],\n environment,\n} = defineProps<{\n target: TargetId\n client: ClientId<TargetId>\n operation?: Operation | undefined\n server?: Server | undefined\n example?: RequestExample | undefined\n securitySchemes?: SecurityScheme[]\n environment?: EnvVariables | undefined\n}>()\n\n/** Block secrets from being shown in the code block */\nconst secretCredentials = computed(() =>\n securitySchemes.flatMap((scheme) => {\n if (scheme.type === 'apiKey') {\n return scheme.value\n }\n if (scheme?.type === 'http') {\n return [\n scheme.token,\n scheme.password,\n encode(`${scheme.username}:${scheme.password}`),\n ]\n }\n if (scheme.type === 'oauth2') {\n return Object.values(scheme.flows)\n .map((flow) => flow?.token)\n .filter(isDefined)\n }\n\n return []\n }),\n)\n\n/** Generated code example */\nconst content = computed(() => {\n const harRequest = getHarRequest({\n operation,\n example,\n server,\n securitySchemes,\n environment,\n })\n\n const [error, payload] = getSnippet(target, client, harRequest)\n return { error, payload }\n})\n\n/** CodeMirror syntax highlighting language */\nconst language = computed(() => {\n // Normalize languages\n if (target === 'shell' && client === 'curl') {\n return 'curl'\n }\n // TODO: js -> javascript?\n\n return target ?? 'plaintext'\n})\n</script>\n<template>\n <div\n v-if=\"content.error\"\n class=\"text-c-3 flex min-h-16 items-center justify-center px-4 text-sm\">\n {{ content.error.message }}\n </div>\n <ScalarCodeBlock\n v-else-if=\"content.payload\"\n class=\"w-full\"\n :content=\"content.payload\"\n :hideCredentials=\"secretCredentials\"\n :lang=\"language\"\n lineNumbers />\n</template>\n","import type { Operation, RequestExample } from '@scalar/oas-utils/entities/spec'\nimport { mergeUrls } from '@scalar/oas-utils/helpers'\nimport type { FormDataParam, HarRequest } from '@scalar/snippetz'\n\ntype Props = {\n baseUrl: string | undefined\n body?: RequestExample['body'] | undefined\n cookies: { key: string; value: string; enabled: boolean }[]\n headers: { key: string; value: string; enabled: boolean }[]\n query: { key: string; value: string; enabled: boolean }[]\n} & Pick<Operation, 'method' | 'path'>\n\n/**\n * Takes in a regular request object and returns a HAR request\n * We also Titlecase the headers and remove accept header if it's *\n */\nexport const convertToHarRequest = ({\n baseUrl = '',\n method,\n body,\n path,\n cookies,\n headers,\n query,\n}: Props): HarRequest => {\n // Merge the two urls with a failsafe\n const url = mergeUrls(baseUrl, path, undefined, true)\n\n // Create base HAR request structure\n const harRequest: HarRequest = {\n method: method.toUpperCase(),\n url: url.toString(),\n httpVersion: 'HTTP/1.1',\n headers: [],\n queryString: [],\n cookies: [],\n headersSize: -1,\n bodySize: -1,\n }\n\n // Handle cookies from Cookie header\n if (cookies.length) {\n harRequest.cookies = cookies\n .filter((c) => c.enabled)\n .map(({ key, value }) => ({\n name: key,\n value,\n }))\n }\n\n // Convert headers\n if (headers.length) {\n harRequest.headers = headers\n .filter((h) => h.enabled && !(h.key.toLowerCase() === 'accept' && h.value === '*/*'))\n .map(({ key, value }) => ({\n name: key.replace(/\\b\\w/g, (letter) => letter.toUpperCase()),\n value,\n }))\n }\n\n // Handle query parameters\n if (query.length) {\n harRequest.queryString = query\n .filter((q) => q.enabled)\n .map(({ key, value }) => ({\n name: key,\n value,\n }))\n }\n\n // Handle request body if present\n if (body) {\n try {\n const contentType = headers.find((h) => h.key.toLowerCase() === 'content-type')?.value\n\n // For form-data, convert to object while handling File objects\n if (body.activeBody === 'formData' && body.formData) {\n const params: FormDataParam[] = []\n\n body.formData.value.forEach(({ key, value, file, enabled }) => {\n if (!enabled) {\n return\n }\n\n if (file) {\n params.push({\n name: key || 'blob',\n value: 'BINARY',\n fileName: file.name,\n contentType: file.type || 'application/octet-stream',\n })\n } else {\n params.push({\n name: key,\n value,\n })\n }\n })\n\n // Handle urlencoded form data\n if (body.formData?.encoding === 'urlencoded') {\n harRequest.postData = {\n mimeType: contentType || 'application/x-www-form-urlencoded',\n params,\n }\n } else {\n harRequest.postData = {\n mimeType: contentType || 'multipart/form-data',\n params,\n }\n }\n } else if (body.activeBody === 'raw' && body.raw) {\n // For other content types (JSON, plain text, url-encoded)\n harRequest.postData = {\n mimeType: contentType || 'application/json',\n text: body.raw?.value ?? '',\n }\n }\n } catch (_e) {\n // Invalid request body, leave postData empty\n }\n }\n\n return harRequest\n}\n","import type { Operation, RequestExample, SecurityScheme, Server } from '@scalar/oas-utils/entities/spec'\nimport { REGEX } from '@scalar/oas-utils/helpers'\nimport type { HarRequest } from '@scalar/snippetz'\n\nimport type { EnvVariables } from '@/libs/env-helpers'\nimport { buildRequestSecurity } from '@/libs/send-request/build-request-security'\nimport { replaceTemplateVariables } from '@/libs/string-template'\n\nimport { convertToHarRequest } from './convert-to-har-request'\n\nconst EMPTY_TOKEN_PLACEHOLDER = 'YOUR_SECRET_TOKEN'\n\n/**\n * Creates a snippetz-compatible HarRequest from OpenAPI-like store entities\n *\n * @deprecated, can be removed once we've migrated to the new code snippet component\n */\nexport const getHarRequest = ({\n operation,\n example,\n server,\n securitySchemes = [],\n environment,\n}: {\n operation?: Operation | undefined\n example?: RequestExample | undefined\n server?: Server | undefined\n securitySchemes?: SecurityScheme[]\n environment?: EnvVariables | undefined\n}): HarRequest => {\n // Convert environment variables to a key-value object\n const env =\n environment && Array.isArray(environment)\n ? Object.fromEntries(environment.map((v: any) => [v.key, v.value]))\n : environment || {}\n\n const encodedPathVars = (example?.parameters?.path ?? []).reduce<Record<string, string>>((vars, param) => {\n if (param.enabled) {\n const substitutedValue = replaceTemplateVariables(param.value, env)\n vars[param.key] = encodeURIComponent(substitutedValue)\n }\n return vars\n }, {})\n\n const serverString = (() => {\n if (server?.url && (REGEX.VARIABLES.test(server.url) || REGEX.PATH.test(server.url))) {\n const serverParams = Object.entries(server?.variables || {}).reduce<Record<string, string>>(\n (acc, [key, variable]) => {\n if (encodedPathVars[key]) {\n acc[key] = encodedPathVars[key]\n } else if (variable.default) {\n acc[key] = replaceTemplateVariables(variable.default, env)\n }\n return acc\n },\n {},\n )\n return replaceTemplateVariables(replaceTemplateVariables(server.url, env), serverParams)\n }\n return server?.url\n })()\n\n const pathString = (() => {\n const path = operation?.path ?? '/'\n if (path && (REGEX.VARIABLES.test(path) || REGEX.PATH.test(path))) {\n return replaceTemplateVariables(replaceTemplateVariables(path, env), encodedPathVars)\n }\n return path\n })()\n\n // Grab the security headers, cookies and url params\n const security = buildRequestSecurity(securitySchemes, env, EMPTY_TOKEN_PLACEHOLDER)\n\n // Merge the security headers, cookies and query with example parameters\n const headers = [\n ...((example?.parameters.headers ?? []).map((h) => ({\n ...h,\n value:\n REGEX.VARIABLES.test(h.value) || REGEX.PATH.test(h.value) ? replaceTemplateVariables(h.value, env) : h.value,\n })) ?? []),\n ...Object.entries(security.headers).map(([key, value]) => ({\n key,\n value,\n enabled: true,\n })),\n ]\n const cookies = [\n ...((example?.parameters.cookies ?? []).map((c) => ({\n ...c,\n value:\n REGEX.VARIABLES.test(c.value) || REGEX.PATH.test(c.value) ? replaceTemplateVariables(c.value, env) : c.value,\n })) ?? []),\n ...security.cookies.map((cookie) => ({\n key: cookie.name,\n value: cookie.value,\n enabled: true,\n })),\n ]\n const query = [\n ...((example?.parameters.query ?? []).map((q) => ({\n ...q,\n value:\n REGEX.VARIABLES.test(q.value) || REGEX.PATH.test(q.value) ? replaceTemplateVariables(q.value, env) : q.value,\n })) ?? []),\n ...Array.from(security.urlParams.entries()).map(([key, value]) => ({\n key,\n value,\n enabled: true,\n })),\n ]\n\n // Fallback variable replacement for body (raw)\n const body = (() => {\n const body = example?.body\n if (body?.raw?.value && (REGEX.VARIABLES.test(body.raw.value) || REGEX.PATH.test(body.raw.value))) {\n return {\n ...body,\n raw: {\n ...body.raw,\n value: replaceTemplateVariables(body.raw.value, env),\n },\n }\n }\n return body\n })()\n\n // Converts it to a snippetz-compatible HarRequest\n return convertToHarRequest({\n baseUrl: serverString,\n method: operation?.method ?? 'get',\n path: pathString,\n body,\n cookies,\n headers,\n query,\n })\n}\n"],"mappings":"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"}