@scalar/api-client 2.38.0 → 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.
- package/CHANGELOG.md +33 -0
- package/dist/AddressBar-B4xnl66I.js +302 -0
- package/dist/AddressBar-B4xnl66I.js.map +1 -0
- package/dist/App-BVH4lIe8.js +533 -0
- package/dist/App-BVH4lIe8.js.map +1 -0
- package/dist/App-CvClwSlM.js +2510 -0
- package/dist/App-CvClwSlM.js.map +1 -0
- package/dist/CodeInput-C-igR77V.js +694 -0
- package/dist/CodeInput-C-igR77V.js.map +1 -0
- package/dist/CodeSnippet-D7Heh1nd.js +218 -0
- package/dist/CodeSnippet-D7Heh1nd.js.map +1 -0
- package/dist/Collection-4MT9WmDD.js +219 -0
- package/dist/Collection-4MT9WmDD.js.map +1 -0
- package/dist/CollectionAuthentication-MHWQpw74.js +56 -0
- package/dist/CollectionAuthentication-MHWQpw74.js.map +1 -0
- package/dist/CollectionCookies-DyjPPMdt.js +19 -0
- package/dist/CollectionCookies-DyjPPMdt.js.map +1 -0
- package/dist/CollectionEnvironment-Dw35vIqo.js +514 -0
- package/dist/CollectionEnvironment-Dw35vIqo.js.map +1 -0
- package/dist/CollectionOverview-TUdDIu5f.js +131 -0
- package/dist/CollectionOverview-TUdDIu5f.js.map +1 -0
- package/dist/CollectionScripts-CMNlBlby.js +19 -0
- package/dist/CollectionScripts-CMNlBlby.js.map +1 -0
- package/dist/CollectionServers-BrjTCfDe.js +168 -0
- package/dist/CollectionServers-BrjTCfDe.js.map +1 -0
- package/dist/CollectionSettings-HVSlp2Gv.js +87 -0
- package/dist/CollectionSettings-HVSlp2Gv.js.map +1 -0
- package/dist/CollectionSync-CAflc5yW.js +19 -0
- package/dist/CollectionSync-CAflc5yW.js.map +1 -0
- package/dist/CommandActionInput-TkcAx6E8.js +97 -0
- package/dist/CommandActionInput-TkcAx6E8.js.map +1 -0
- package/dist/CommandPalette-CL8k4CoN.js +964 -0
- package/dist/CommandPalette-CL8k4CoN.js.map +1 -0
- package/dist/CommandPaletteImport-Diu5dDIY.js +622 -0
- package/dist/CommandPaletteImport-Diu5dDIY.js.map +1 -0
- package/dist/Cookies-DbOKTi1f.js +284 -0
- package/dist/Cookies-DbOKTi1f.js.map +1 -0
- package/dist/DataTable-BqbZKW3K.js +62 -0
- package/dist/DataTable-BqbZKW3K.js.map +1 -0
- package/dist/DataTableHeader-DJVB0jCZ.js +21 -0
- package/dist/DataTableHeader-DJVB0jCZ.js.map +1 -0
- package/dist/DataTableInput-yaU5g-kP.js +166 -0
- package/dist/DataTableInput-yaU5g-kP.js.map +1 -0
- package/dist/DataTableRow-c3XveEUO.js +57 -0
- package/dist/DataTableRow-c3XveEUO.js.map +1 -0
- package/dist/DeleteSidebarListElement-C-p87d03.js +78 -0
- package/dist/DeleteSidebarListElement-C-p87d03.js.map +1 -0
- package/dist/EditSidebarListElement-CodWPnM6.js +32 -0
- package/dist/EditSidebarListElement-CodWPnM6.js.map +1 -0
- package/dist/Editor-BomsGWHx.js +909 -0
- package/dist/Editor-BomsGWHx.js.map +1 -0
- package/dist/EmptyState-Cnm7hGW5.js +46 -0
- package/dist/EmptyState-Cnm7hGW5.js.map +1 -0
- package/dist/Environment-DJatRQIg.js +416 -0
- package/dist/Environment-DJatRQIg.js.map +1 -0
- package/dist/EnvironmentModal-DBEJ4Kzj.js +288 -0
- package/dist/EnvironmentModal-DBEJ4Kzj.js.map +1 -0
- package/dist/Form-CSKzyHGO.js +83 -0
- package/dist/Form-CSKzyHGO.js.map +1 -0
- package/dist/HttpMethod-rnWEgC3T.js +78 -0
- package/dist/HttpMethod-rnWEgC3T.js.map +1 -0
- package/dist/IconSelector-BDC_GQXv.js +67 -0
- package/dist/IconSelector-BDC_GQXv.js.map +1 -0
- package/dist/ImportCollection-DfX1UQ5u.js +804 -0
- package/dist/ImportCollection-DfX1UQ5u.js.map +1 -0
- package/dist/IntegrationLogo-B9EDW8db.js +51 -0
- package/dist/IntegrationLogo-B9EDW8db.js.map +1 -0
- package/dist/MainLayout-BEFMl1ud.js +281 -0
- package/dist/MainLayout-BEFMl1ud.js.map +1 -0
- package/dist/Modal-sQ9vH6MN.js +67 -0
- package/dist/Modal-sQ9vH6MN.js.map +1 -0
- package/dist/ModalClientContainer-qHsZi4wQ.js +65 -0
- package/dist/ModalClientContainer-qHsZi4wQ.js.map +1 -0
- package/dist/Request-gscRsGQ8.js +212 -0
- package/dist/Request-gscRsGQ8.js.map +1 -0
- package/dist/RequestAuth-BzBfIysT.js +989 -0
- package/dist/RequestAuth-BzBfIysT.js.map +1 -0
- package/dist/RequestRoot-3Bj8JZD-.js +1611 -0
- package/dist/RequestRoot-3Bj8JZD-.js.map +1 -0
- package/dist/RequestSection-HhdJj9hW.js +1582 -0
- package/dist/RequestSection-HhdJj9hW.js.map +1 -0
- package/dist/ResponseSection-DMJ0tw8E.js +949 -0
- package/dist/ResponseSection-DMJ0tw8E.js.map +1 -0
- package/dist/ScalarAsciiArt-BjuSnj8e.js +45 -0
- package/dist/ScalarAsciiArt-BjuSnj8e.js.map +1 -0
- package/dist/SectionFilter-hrtoRLwj.js +99 -0
- package/dist/SectionFilter-hrtoRLwj.js.map +1 -0
- package/dist/Server-DnA_BzPS.js +303 -0
- package/dist/Server-DnA_BzPS.js.map +1 -0
- package/dist/ServerVariablesForm-BRZ9XC8o.js +145 -0
- package/dist/ServerVariablesForm-BRZ9XC8o.js.map +1 -0
- package/dist/Settings-CYZzdJPO.js +347 -0
- package/dist/Settings-CYZzdJPO.js.map +1 -0
- package/dist/Sidebar-C6AdX6-N.js +73 -0
- package/dist/Sidebar-C6AdX6-N.js.map +1 -0
- package/dist/SidebarButton-BAagdMDe.js +37 -0
- package/dist/SidebarButton-BAagdMDe.js.map +1 -0
- package/dist/SidebarListElement-BfTPiihc.js +232 -0
- package/dist/SidebarListElement-BfTPiihc.js.map +1 -0
- package/dist/TheCommandPalette-Dl9TAeke.js +204 -0
- package/dist/TheCommandPalette-Dl9TAeke.js.map +1 -0
- package/dist/ValueEmitter-QYkZ9Hdc.js +20 -0
- package/dist/ValueEmitter-QYkZ9Hdc.js.map +1 -0
- package/dist/ViewLayout-BOXN0IYo.js +17 -0
- package/dist/ViewLayout-BOXN0IYo.js.map +1 -0
- package/dist/ViewLayoutCollapse-CiTb-Uml.js +86 -0
- package/dist/ViewLayoutCollapse-CiTb-Uml.js.map +1 -0
- package/dist/ViewLayoutContent-CvMoJYPF.js +13 -0
- package/dist/ViewLayoutContent-CvMoJYPF.js.map +1 -0
- package/dist/ViewLayoutSection-mUqKbQry.js +23 -0
- package/dist/ViewLayoutSection-mUqKbQry.js.map +1 -0
- package/dist/WatchModeToggle-D_eAiTWJ.js +41 -0
- package/dist/WatchModeToggle-D_eAiTWJ.js.map +1 -0
- package/dist/_plugin-vue_export-helper-BmmBcIzD.js +8 -0
- package/dist/analytics-BZimCWcw.js +7 -0
- package/dist/analytics-BZimCWcw.js.map +1 -0
- package/dist/build-request-security-BQjNr2MD.js +41 -0
- package/dist/build-request-security-BQjNr2MD.js.map +1 -0
- package/dist/code-input-iq-moLxi.js +775 -0
- package/dist/code-input-iq-moLxi.js.map +1 -0
- package/dist/components/AddressBar/AddressBar.vue.d.ts +1 -1
- package/dist/components/AddressBar/index.d.ts +1 -1
- package/dist/components/AddressBar/index.js +5 -4
- package/dist/components/CodeInput/CodeInput.vue.d.ts +1 -1
- package/dist/components/CodeInput/codeVariableWidget.d.ts +1 -1
- package/dist/components/CodeInput/index.d.ts +1 -1
- package/dist/components/CodeInput/index.js +2 -4
- package/dist/components/CommandPalette/index.d.ts +1 -1
- package/dist/components/CommandPalette/index.js +3 -4
- package/dist/components/DataTable/DataTableInput.vue.d.ts +2 -2
- package/dist/components/DataTable/index.d.ts +8 -8
- package/dist/components/DataTable/index.js +6 -18
- package/dist/components/Form/LabelInput.vue.d.ts +1 -1
- package/dist/components/HttpMethod/index.d.ts +1 -1
- package/dist/components/HttpMethod/index.js +2 -4
- package/dist/components/ImportCollection/index.d.ts +1 -1
- package/dist/components/ImportCollection/index.js +2 -4
- package/dist/components/ImportCollection/utils/import-collection.d.ts +1 -1
- package/dist/components/ImportCollection/utils/workspace-store-is-empty.d.ts +1 -1
- package/dist/components/Server/ServerVariablesForm.vue.d.ts +1 -1
- package/dist/components/Server/index.d.ts +3 -3
- package/dist/components/Server/index.js +3 -8
- package/dist/components/Sidebar/index.d.ts +1 -1
- package/dist/components/Sidebar/index.js +2 -4
- package/dist/components/ViewLayout/index.d.ts +1 -1
- package/dist/components/ViewLayout/index.js +2 -4
- package/dist/components/index.d.ts +3 -3
- package/dist/components/index.js +7 -8
- package/dist/components-CSxJTn6F.js +183 -0
- package/dist/components-CSxJTn6F.js.map +1 -0
- package/dist/components-ChixwQhN.js +61 -0
- package/dist/components-ChixwQhN.js.map +1 -0
- package/dist/computer-D7VW3Ruy.js +562 -0
- package/dist/computer-D7VW3Ruy.js.map +1 -0
- package/dist/consts-CyGRb9dl.js +318 -0
- package/dist/consts-CyGRb9dl.js.map +1 -0
- package/dist/curl-nbw1OxbV.js +54 -0
- package/dist/curl-nbw1OxbV.js.map +1 -0
- package/dist/data-table-PL7e8NRO.js +282 -0
- package/dist/data-table-PL7e8NRO.js.map +1 -0
- package/dist/editor-BZ_J0eze.js +466 -0
- package/dist/editor-BZ_J0eze.js.map +1 -0
- package/dist/environments-ByLK9lnC.js +592 -0
- package/dist/environments-ByLK9lnC.js.map +1 -0
- package/dist/formatters-DOGXZq9R.js +36 -0
- package/dist/formatters-DOGXZq9R.js.map +1 -0
- package/dist/forms-CZX6cFDS.js +42 -0
- package/dist/forms-CZX6cFDS.js.map +1 -0
- package/dist/get-active-environment-CkxyQ1dM.js +19 -0
- package/dist/get-active-environment-CkxyQ1dM.js.map +1 -0
- package/dist/get-resolved-url-BUCwrBzc.js +30 -0
- package/dist/get-resolved-url-BUCwrBzc.js.map +1 -0
- package/dist/get-server-url-o3On8CEr.js +32 -0
- package/dist/get-server-url-o3On8CEr.js.map +1 -0
- package/dist/get-servers-B_WNlQWB.js +106 -0
- package/dist/get-servers-B_WNlQWB.js.map +1 -0
- package/dist/get-snippet-DBRUSfZ2.js +39 -0
- package/dist/get-snippet-DBRUSfZ2.js.map +1 -0
- package/dist/global-cookies-D3ZS9ON3.js +184 -0
- package/dist/global-cookies-D3ZS9ON3.js.map +1 -0
- package/dist/hooks/index.d.ts +4 -4
- package/dist/hooks/index.js +3 -11
- package/dist/hooks/useSidebar.d.ts +1 -1
- package/dist/hooks-BvZxH4XB.js +80 -0
- package/dist/hooks-BvZxH4XB.js.map +1 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.js +8 -12
- package/dist/layout-BWiL7dfb.js +81 -0
- package/dist/layout-BWiL7dfb.js.map +1 -0
- package/dist/layouts/App/create-api-client-app.d.ts +9 -9
- package/dist/layouts/App/index.d.ts +2 -2
- package/dist/layouts/App/index.js +5 -7
- package/dist/layouts/Modal/create-api-client-modal.d.ts +1 -1
- package/dist/layouts/Modal/index.d.ts +2 -2
- package/dist/layouts/Modal/index.js +3 -4
- package/dist/layouts/Web/create-api-client-web.d.ts +9 -9
- package/dist/layouts/Web/index.d.ts +2 -2
- package/dist/layouts/Web/index.js +101 -6
- package/dist/layouts/Web/index.js.map +1 -0
- package/dist/libs/create-client.d.ts +9 -9
- package/dist/libs/create-client.d.ts.map +1 -1
- package/dist/libs/environment-parser.d.ts +1 -1
- package/dist/libs/get-request-uid-by-path-method.d.ts +1 -1
- package/dist/libs/hot-keys.d.ts +1 -1
- package/dist/libs/importers/index.d.ts +1 -1
- package/dist/libs/importers/index.js +2 -4
- package/dist/libs/index.d.ts +15 -15
- package/dist/libs/index.js +6 -45
- package/dist/libs/local-storage.d.ts +1 -1
- package/dist/libs/send-request/create-request-operation.d.ts +3 -3
- package/dist/libs/send-request/index.d.ts +3 -3
- package/dist/libs/send-request/index.js +3 -8
- package/dist/libs-spbv4P0g.js +249 -0
- package/dist/libs-spbv4P0g.js.map +1 -0
- package/dist/monacoeditorwork/json.worker.bundle.js +8 -8
- package/dist/monacoeditorwork/yaml.worker.bundle.js +151 -151
- package/dist/operation-block-BnMIKAOh.js +1624 -0
- package/dist/operation-block-BnMIKAOh.js.map +1 -0
- package/dist/operation-code-sample-ZUTueV3v.js +1726 -0
- package/dist/operation-code-sample-ZUTueV3v.js.map +1 -0
- package/dist/parse-curl-BtypQT3D.js +106 -0
- package/dist/parse-curl-BtypQT3D.js.map +1 -0
- package/dist/plugins/hooks/usePluginManager.d.ts +1 -1
- package/dist/plugins/index.d.ts +2 -2
- package/dist/plugins/index.js +2 -7
- package/dist/plugins/plugin-manager.d.ts +10 -4
- package/dist/plugins/plugin-manager.d.ts.map +1 -1
- package/dist/plugins-B52hCIyZ.js +50 -0
- package/dist/plugins-B52hCIyZ.js.map +1 -0
- package/dist/rabbitjump-CMZXAR6d.js +9 -0
- package/dist/rabbitjump-CMZXAR6d.js.map +1 -0
- package/dist/request-block-DwsGy64Q.js +1466 -0
- package/dist/request-block-DwsGy64Q.js.map +1 -0
- package/dist/resize-D2IYvVdh.js +114 -0
- package/dist/resize-D2IYvVdh.js.map +1 -0
- package/dist/response-block-DmkaDZYs.js +1188 -0
- package/dist/response-block-DmkaDZYs.js.map +1 -0
- package/dist/scalar-address-bar-block--Vs6IBU1.js +425 -0
- package/dist/scalar-address-bar-block--Vs6IBU1.js.map +1 -0
- package/dist/scalar-auth-selector-block-DI3DLag9.js +1886 -0
- package/dist/scalar-auth-selector-block-DI3DLag9.js.map +1 -0
- package/dist/search-CmsQQkjn.js +151 -0
- package/dist/search-CmsQQkjn.js.map +1 -0
- package/dist/send-request-BsTfRiBC.js +348 -0
- package/dist/send-request-BsTfRiBC.js.map +1 -0
- package/dist/server-tcI-OCyx.js +140 -0
- package/dist/server-tcI-OCyx.js.map +1 -0
- package/dist/set-request-cookies-BJJhsU4A.js +88 -0
- package/dist/set-request-cookies-BJJhsU4A.js.map +1 -0
- package/dist/settings-BKk_1lcH.js +455 -0
- package/dist/settings-BKk_1lcH.js.map +1 -0
- package/dist/sidebar-ceSbYmnt.js +217 -0
- package/dist/sidebar-ceSbYmnt.js.map +1 -0
- package/dist/store/collections.d.ts +1 -1
- package/dist/store/environment.d.ts +1 -1
- package/dist/store/events.d.ts +8 -8
- package/dist/store/import-spec.d.ts +2 -2
- package/dist/store/index.d.ts +2 -2
- package/dist/store/index.js +2 -10
- package/dist/store/request-example.d.ts +1 -1
- package/dist/store/requests.d.ts +1 -1
- package/dist/store/security-schemes.d.ts +1 -1
- package/dist/store/servers.d.ts +1 -1
- package/dist/store/store.d.ts +7 -7
- package/dist/store/tags.d.ts +1 -1
- package/dist/store/workspace.d.ts +1 -1
- package/dist/store-DpSUVhjp.js +1512 -0
- package/dist/store-DpSUVhjp.js.map +1 -0
- package/dist/string-template-sS5PtY6T.js +64 -0
- package/dist/string-template-sS5PtY6T.js.map +1 -0
- package/dist/style.css +10372 -1
- package/dist/types/index.js +0 -1
- package/dist/use-global-hot-keys-D8Ai8Qbm.js +274 -0
- package/dist/use-global-hot-keys-D8Ai8Qbm.js.map +1 -0
- package/dist/useSidebar-DLTwHDI-.js +45 -0
- package/dist/useSidebar-DLTwHDI-.js.map +1 -0
- package/dist/v2/blocks/operation-block/OperationBlock.vue.d.ts +3 -3
- package/dist/v2/blocks/operation-block/components/Header.vue.d.ts +2 -2
- package/dist/v2/blocks/operation-block/helpers/build-request-security.d.ts +2 -2
- package/dist/v2/blocks/operation-block/helpers/build-request.d.ts +2 -2
- package/dist/v2/blocks/operation-block/helpers/build-request.d.ts.map +1 -1
- package/dist/v2/blocks/operation-block/helpers/har-to-fetch-response.d.ts +1 -1
- package/dist/v2/blocks/operation-block/helpers/send-request.d.ts +1 -1
- package/dist/v2/blocks/operation-block/index.d.ts +4 -4
- package/dist/v2/blocks/operation-block/index.js +20 -11
- package/dist/v2/blocks/operation-code-sample/components/OperationCodeSample.vue.d.ts +2 -2
- package/dist/v2/blocks/operation-code-sample/helpers/find-client.d.ts +1 -1
- package/dist/v2/blocks/operation-code-sample/helpers/generate-client-options.d.ts +1 -1
- package/dist/v2/blocks/operation-code-sample/helpers/generate-code-snippet.d.ts +2 -2
- package/dist/v2/blocks/operation-code-sample/helpers/get-clients.d.ts +2 -2
- package/dist/v2/blocks/operation-code-sample/helpers/get-secrets.d.ts +1 -1
- package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/operation-to-har.d.ts +1 -1
- package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/process-body.d.ts +1 -1
- package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/process-security-schemes.d.ts +1 -1
- package/dist/v2/blocks/operation-code-sample/index.d.ts +6 -6
- package/dist/v2/blocks/operation-code-sample/index.js +2 -16
- package/dist/v2/blocks/request-block/RequestBlock.vue.d.ts +4 -4
- package/dist/v2/blocks/request-block/RequestBlock.vue.d.ts.map +1 -1
- package/dist/v2/blocks/request-block/components/RequestCodeSnippet.vue.d.ts +1 -1
- package/dist/v2/blocks/request-block/components/RequestParams.vue.d.ts +1 -1
- package/dist/v2/blocks/request-block/components/RequestTable.vue.d.ts +1 -1
- package/dist/v2/blocks/request-block/helpers/create-parameter-handlers.d.ts +1 -1
- package/dist/v2/blocks/request-block/helpers/get-default-headers.d.ts +3 -2
- package/dist/v2/blocks/request-block/helpers/get-default-headers.d.ts.map +1 -1
- package/dist/v2/blocks/request-block/helpers/get-form-body-rows.d.ts +1 -1
- package/dist/v2/blocks/request-block/index.d.ts +1 -1
- package/dist/v2/blocks/request-block/index.js +9 -4
- package/dist/v2/blocks/response-block/ResponseBlock.vue.d.ts +1 -1
- package/dist/v2/blocks/response-block/components/ResponseBodyPreview.vue.d.ts +1 -1
- package/dist/v2/blocks/response-block/components/ResponseEmpty.vue.d.ts +1 -1
- package/dist/v2/blocks/response-block/index.d.ts +1 -1
- package/dist/v2/blocks/response-block/index.js +6 -4
- package/dist/v2/blocks/scalar-address-bar-block/components/AddressBar.vue.d.ts +2 -2
- package/dist/v2/blocks/scalar-address-bar-block/index.d.ts +2 -2
- package/dist/v2/blocks/scalar-address-bar-block/index.js +5 -4
- package/dist/v2/blocks/scalar-auth-selector-block/components/AuthSelector.vue.d.ts +5 -3
- package/dist/v2/blocks/scalar-auth-selector-block/components/AuthSelector.vue.d.ts.map +1 -1
- package/dist/v2/blocks/scalar-auth-selector-block/components/OAuth2.vue.d.ts +1 -1
- package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTable.vue.d.ts +2 -2
- package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTableInput.vue.d.ts +1 -1
- package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthTab.vue.d.ts +1 -1
- package/dist/v2/blocks/scalar-auth-selector-block/helpers/fetch-openid-connect-discovery.d.ts +1 -1
- package/dist/v2/blocks/scalar-auth-selector-block/helpers/oauth.d.ts +2 -2
- package/dist/v2/blocks/scalar-auth-selector-block/helpers/openid-discovery-to-flows.d.ts +1 -1
- package/dist/v2/blocks/scalar-auth-selector-block/index.d.ts +4 -4
- package/dist/v2/blocks/scalar-auth-selector-block/index.js +6 -8
- package/dist/v2/components/code-input/CodeInput.vue.d.ts +1 -1
- package/dist/v2/components/code-input/index.d.ts +1 -1
- package/dist/v2/components/code-input/index.js +2 -4
- package/dist/v2/components/data-table/DataTableInput.vue.d.ts +1 -1
- package/dist/v2/components/data-table/DataTableInputSelect.vue.d.ts +1 -1
- package/dist/v2/components/data-table/index.d.ts +8 -8
- package/dist/v2/components/data-table/index.js +3 -18
- package/dist/v2/components/forms/index.d.ts +1 -1
- package/dist/v2/components/forms/index.js +2 -4
- package/dist/v2/components/layout/index.d.ts +1 -1
- package/dist/v2/components/layout/index.js +2 -4
- package/dist/v2/components/modals/index.d.ts +1 -1
- package/dist/v2/components/modals/index.js +37 -3
- package/dist/v2/components/modals/index.js.map +1 -0
- package/dist/v2/components/resize/index.d.ts +2 -2
- package/dist/v2/components/resize/index.js +2 -6
- package/dist/v2/components/server/ServerDropdown.vue.d.ts +1 -1
- package/dist/v2/components/server/index.d.ts +1 -1
- package/dist/v2/components/server/index.js +2 -4
- package/dist/v2/components/sidebar/Sidebar.vue.d.ts +1 -1
- package/dist/v2/components/sidebar/SidebarMenu.vue.d.ts.map +1 -1
- package/dist/v2/components/sidebar/index.d.ts +3 -3
- package/dist/v2/components/sidebar/index.js +3 -8
- package/dist/v2/features/app/App.vue.d.ts +4 -4
- package/dist/v2/features/app/components/AppSidebar.vue.d.ts +1 -1
- package/dist/v2/features/app/components/index.d.ts +1 -1
- package/dist/v2/features/app/components/index.js +10 -5
- package/dist/v2/features/app/helpers/create-api-client-app.d.ts +3 -3
- package/dist/v2/features/app/helpers/get-route-param.d.ts +1 -1
- package/dist/v2/features/app/helpers/routes.d.ts +5 -5
- package/dist/v2/features/app/hooks/use-theme.d.ts +1 -1
- package/dist/v2/features/app/index.d.ts +8 -8
- package/dist/v2/features/app/index.js +3161 -19
- package/dist/v2/features/app/index.js.map +1 -0
- package/dist/v2/features/collection/DocumentCollection.vue.d.ts +1 -1
- package/dist/v2/features/collection/OperationCollection.vue.d.ts +1 -1
- package/dist/v2/features/collection/WorkspaceCollection.vue.d.ts +1 -1
- package/dist/v2/features/collection/components/Authentication.vue.d.ts +4 -4
- package/dist/v2/features/collection/components/Cookies.vue.d.ts +4 -4
- package/dist/v2/features/collection/components/Editor/Editor.vue.d.ts +4 -4
- package/dist/v2/features/collection/components/Editor/index.d.ts +1 -1
- package/dist/v2/features/collection/components/Editor/index.js +2 -4
- package/dist/v2/features/collection/components/Environment.vue.d.ts +4 -4
- package/dist/v2/features/collection/components/Form.vue.d.ts +1 -0
- package/dist/v2/features/collection/components/Form.vue.d.ts.map +1 -1
- package/dist/v2/features/collection/components/Overview.vue.d.ts +4 -4
- package/dist/v2/features/collection/components/Servers.vue.d.ts +4 -4
- package/dist/v2/features/collection/components/Servers.vue.d.ts.map +1 -1
- package/dist/v2/features/collection/components/Settings.vue.d.ts +4 -4
- package/dist/v2/features/collection/components/Tabs.vue.d.ts +1 -1
- package/dist/v2/features/command-palette/TheCommandPalette.vue.d.ts +1 -1
- package/dist/v2/features/command-palette/hooks/use-command-palette-state.d.ts +10 -45
- package/dist/v2/features/command-palette/hooks/use-command-palette-state.d.ts.map +1 -1
- package/dist/v2/features/command-palette/index.d.ts +2 -2
- package/dist/v2/features/command-palette/index.js +3 -6
- package/dist/v2/features/editor/helpers/json/create-json-model.d.ts +1 -1
- package/dist/v2/features/editor/helpers/json/get-json-ast-node-from-path.d.ts +1 -1
- package/dist/v2/features/editor/helpers/json/json-pointer-path.d.ts +1 -1
- package/dist/v2/features/editor/helpers/yaml/create-yaml-model.d.ts +1 -1
- package/dist/v2/features/editor/helpers/yaml/get-yaml-node-range-from-path.d.ts +1 -1
- package/dist/v2/features/editor/hooks/use-editor.d.ts +1 -1
- package/dist/v2/features/editor/hooks/use-json-pointer-link-support.d.ts +1 -1
- package/dist/v2/features/editor/index.d.ts +4 -4
- package/dist/v2/features/editor/index.js +2 -10
- package/dist/v2/features/environments/index.d.ts +1 -1
- package/dist/v2/features/environments/index.js +4 -4
- package/dist/v2/features/global-cookies/index.d.ts +1 -1
- package/dist/v2/features/global-cookies/index.js +4 -4
- package/dist/v2/features/modal/Modal.vue.d.ts +1 -1
- package/dist/v2/features/modal/helpers/create-api-client-modal.d.ts +2 -2
- package/dist/v2/features/modal/hooks/use-modal-sidebar.d.ts +1 -1
- package/dist/v2/features/modal/index.d.ts +3 -3
- package/dist/v2/features/modal/index.js +639 -7
- package/dist/v2/features/modal/index.js.map +1 -0
- package/dist/v2/features/modal/modal-events.d.ts +1 -1
- package/dist/v2/features/operation/Operation.vue.d.ts +2 -2
- package/dist/v2/features/operation/index.d.ts +5 -5
- package/dist/v2/features/operation/index.js +19 -12
- package/dist/v2/features/search/helpers/create-fuse-instance.d.ts +1 -1
- package/dist/v2/features/search/helpers/create-search-index.d.ts +1 -1
- package/dist/v2/features/search/index.d.ts +1 -1
- package/dist/v2/features/search/index.js +2 -4
- package/dist/v2/features/settings/components/Section.vue.d.ts.map +1 -1
- package/dist/v2/features/settings/index.d.ts +2 -2
- package/dist/v2/features/settings/index.js +2 -6
- package/dist/v2/helpers/get-active-proxy-url.d.ts +1 -1
- package/dist/v2/helpers/get-tab-details.d.ts +1 -1
- package/dist/v2/helpers/handle-hotkeys.d.ts +1 -1
- package/dist/v2/helpers/index.d.ts +2 -2
- package/dist/v2/helpers/index.js +3 -6
- package/dist/v2/hooks/use-global-hot-keys.d.ts +1 -1
- package/dist/views/Collection/components/EnvironmentForm.vue.d.ts +1 -1
- package/dist/views/Collection/components/MarkdownInput.vue.d.ts +1 -1
- package/dist/views/Components/CodeSnippet/CodeSnippet.vue.d.ts +1 -1
- package/dist/views/Components/CodeSnippet/helpers/get-har-request.d.ts +1 -1
- package/dist/views/Components/CodeSnippet/helpers/get-snippet.d.ts +1 -1
- package/dist/views/Components/CodeSnippet/index.d.ts +4 -4
- package/dist/views/Components/CodeSnippet/index.js +3 -10
- package/dist/views/Environment/EnvironmentVariableDropdown.vue.d.ts +1 -1
- package/dist/views/Environment/handle-drag.d.ts +1 -1
- package/dist/views/Request/Request.vue.d.ts +1 -1
- package/dist/views/Request/RequestSection/RequestAuth/OAuth2.vue.d.ts +1 -1
- package/dist/views/Request/RequestSection/RequestAuth/OAuthScopesInput.vue.d.ts +1 -1
- package/dist/views/Request/RequestSection/RequestAuth/RequestAuth.vue.d.ts +1 -1
- package/dist/views/Request/RequestSection/RequestAuth/RequestAuthDataTable.vue.d.ts +1 -1
- package/dist/views/Request/RequestSection/RequestAuth/RequestAuthDataTableInput.vue.d.ts +2 -2
- package/dist/views/Request/RequestSection/RequestAuth/RequestAuthTab.vue.d.ts +1 -1
- package/dist/views/Request/RequestSection/RequestAuth/helpers/restore-auth-from-local-storage.d.ts +1 -1
- package/dist/views/Request/RequestSection/RequestAuth/index.d.ts +3 -3
- package/dist/views/Request/RequestSection/RequestAuth/index.js +4 -8
- package/dist/views/Request/RequestSection/RequestBody.vue.d.ts +1 -1
- package/dist/views/Request/RequestSection/RequestCodeExample.vue.d.ts +1 -1
- package/dist/views/Request/RequestSection/RequestParams.vue.d.ts +1 -1
- package/dist/views/Request/RequestSection/RequestPathParams.vue.d.ts +1 -1
- package/dist/views/Request/RequestSection/RequestSection.vue.d.ts +1 -1
- package/dist/views/Request/RequestSection/RequestTable.vue.d.ts +1 -1
- package/dist/views/Request/RequestSection/helpers/update-scheme.d.ts +1 -1
- package/dist/views/Request/RequestSection/index.d.ts +2 -2
- package/dist/views/Request/RequestSection/index.js +42 -5
- package/dist/views/Request/RequestSection/index.js.map +1 -0
- package/dist/views/Request/RequestSidebarItem.vue.d.ts +1 -1
- package/dist/views/Request/RequestSidebarItemMenu.vue.d.ts +3 -3
- package/dist/views/Request/RequestSubpageHeader.vue.d.ts +1 -1
- package/dist/views/Request/ResponseSection/ResponseBodyPreview.vue.d.ts +1 -1
- package/dist/views/Request/ResponseSection/ResponseSection.vue.d.ts +1 -1
- package/dist/views/Request/ResponseSection/index.d.ts +2 -2
- package/dist/views/Request/ResponseSection/index.js +7 -6
- package/dist/views/Request/components/index.d.ts +1 -1
- package/dist/views/Request/components/index.js +2 -4
- package/dist/views/Request/consts/index.d.ts +2 -2
- package/dist/views/Request/consts/index.js +2 -10
- package/dist/views/Request/handle-drag.d.ts +2 -2
- package/dist/views/Request/libs/auth.d.ts +1 -1
- package/dist/views/Request/libs/index.d.ts +3 -3
- package/dist/views/Request/libs/index.js +3 -22
- package/dist/views/Request/libs/oauth2.d.ts +1 -1
- package/dist/views/Request/libs/watch-mode.d.ts +2 -2
- package/dist/views/Request/types/index.js +0 -1
- package/dist/watch-mode-Dbaqd9bG.js +375 -0
- package/dist/watch-mode-Dbaqd9bG.js.map +1 -0
- package/package.json +29 -33
- package/dist/_virtual/_plugin-vue_export-helper.js +0 -9
- package/dist/analytics.js +0 -9
- package/dist/assets/computer.ascii.js +0 -34
- package/dist/assets/keycap.ascii.js +0 -25
- package/dist/assets/rabbit.ascii.js +0 -11
- package/dist/assets/rabbitjump.ascii.js +0 -11
- package/dist/components/AddressBar/AddressBar.vue.js +0 -7
- package/dist/components/AddressBar/AddressBar.vue2.js +0 -160
- package/dist/components/AddressBar/AddressBarHistory.vue.js +0 -7
- package/dist/components/AddressBar/AddressBarHistory.vue2.js +0 -98
- package/dist/components/AddressBar/httpStatusCodeColors.js +0 -38
- package/dist/components/CodeInput/CodeInput.vue.js +0 -8
- package/dist/components/CodeInput/CodeInput.vue2.js +0 -209
- package/dist/components/CodeInput/codeVariableWidget.js +0 -111
- package/dist/components/CommandPalette/CommandActionForm.vue.js +0 -44
- package/dist/components/CommandPalette/CommandActionForm.vue2.js +0 -4
- package/dist/components/CommandPalette/CommandActionInput.vue.js +0 -52
- package/dist/components/CommandPalette/CommandActionInput.vue2.js +0 -4
- package/dist/components/CommandPalette/CommandPaletteCollection.vue.js +0 -80
- package/dist/components/CommandPalette/CommandPaletteCollection.vue2.js +0 -4
- package/dist/components/CommandPalette/CommandPaletteExample.vue.js +0 -116
- package/dist/components/CommandPalette/CommandPaletteExample.vue2.js +0 -4
- package/dist/components/CommandPalette/CommandPaletteImport.vue.js +0 -217
- package/dist/components/CommandPalette/CommandPaletteImport.vue2.js +0 -4
- package/dist/components/CommandPalette/CommandPaletteImportCurl.vue.js +0 -7
- package/dist/components/CommandPalette/CommandPaletteImportCurl.vue2.js +0 -136
- package/dist/components/CommandPalette/CommandPaletteServer.vue.js +0 -123
- package/dist/components/CommandPalette/CommandPaletteServer.vue2.js +0 -4
- package/dist/components/CommandPalette/CommandPaletteTag.vue.js +0 -84
- package/dist/components/CommandPalette/CommandPaletteTag.vue2.js +0 -4
- package/dist/components/CommandPalette/CommandPaletteWorkspace.vue.js +0 -48
- package/dist/components/CommandPalette/CommandPaletteWorkspace.vue2.js +0 -4
- package/dist/components/CommandPalette/TheCommandPalette.vue.js +0 -7
- package/dist/components/CommandPalette/TheCommandPalette.vue2.js +0 -305
- package/dist/components/CommandPalette/WatchModeToggle.vue.js +0 -39
- package/dist/components/CommandPalette/WatchModeToggle.vue2.js +0 -4
- package/dist/components/DataTable/DataTable.vue.js +0 -38
- package/dist/components/DataTable/DataTable.vue2.js +0 -4
- package/dist/components/DataTable/DataTableCell.vue.js +0 -26
- package/dist/components/DataTable/DataTableCell.vue2.js +0 -4
- package/dist/components/DataTable/DataTableCheckbox.vue.js +0 -53
- package/dist/components/DataTable/DataTableCheckbox.vue2.js +0 -4
- package/dist/components/DataTable/DataTableHeader.vue.js +0 -18
- package/dist/components/DataTable/DataTableHeader.vue2.js +0 -4
- package/dist/components/DataTable/DataTableInput.vue.js +0 -7
- package/dist/components/DataTable/DataTableInput.vue2.js +0 -124
- package/dist/components/DataTable/DataTableInputSelect.vue.js +0 -146
- package/dist/components/DataTable/DataTableInputSelect.vue2.js +0 -4
- package/dist/components/DataTable/DataTableRow.vue.js +0 -12
- package/dist/components/DataTable/DataTableText.vue.js +0 -23
- package/dist/components/DataTable/DataTableText.vue2.js +0 -4
- package/dist/components/EmptyState.vue.js +0 -7
- package/dist/components/EmptyState.vue2.js +0 -42
- package/dist/components/EnvironmentSelector/EnvironmentSelector.vue.js +0 -113
- package/dist/components/EnvironmentSelector/EnvironmentSelector.vue2.js +0 -4
- package/dist/components/Form/Form.vue.js +0 -83
- package/dist/components/Form/Form.vue2.js +0 -4
- package/dist/components/Form/LabelInput.vue.js +0 -7
- package/dist/components/Form/LabelInput.vue2.js +0 -42
- package/dist/components/HelpfulLink.vue.js +0 -20
- package/dist/components/HelpfulLink.vue2.js +0 -4
- package/dist/components/HttpMethod/HttpMethod.vue.js +0 -7
- package/dist/components/HttpMethod/HttpMethod.vue2.js +0 -62
- package/dist/components/IconSelector.vue.js +0 -75
- package/dist/components/IconSelector.vue2.js +0 -4
- package/dist/components/ImportCollection/DropEventListener.vue.js +0 -81
- package/dist/components/ImportCollection/DropEventListener.vue2.js +0 -4
- package/dist/components/ImportCollection/ImportCollectionListener.vue.js +0 -77
- package/dist/components/ImportCollection/ImportCollectionListener.vue2.js +0 -4
- package/dist/components/ImportCollection/ImportCollectionModal.vue.js +0 -208
- package/dist/components/ImportCollection/ImportCollectionModal.vue3.js +0 -5
- package/dist/components/ImportCollection/ImportNowButton.vue.js +0 -73
- package/dist/components/ImportCollection/ImportNowButton.vue2.js +0 -4
- package/dist/components/ImportCollection/IntegrationLogo.vue.js +0 -44
- package/dist/components/ImportCollection/IntegrationLogo.vue2.js +0 -4
- package/dist/components/ImportCollection/PasteEventListener.vue.js +0 -24
- package/dist/components/ImportCollection/PasteEventListener.vue2.js +0 -4
- package/dist/components/ImportCollection/PrefetchError.vue.js +0 -27
- package/dist/components/ImportCollection/PrefetchError.vue2.js +0 -4
- package/dist/components/ImportCollection/UrlQueryParameterChecker.vue.js +0 -20
- package/dist/components/ImportCollection/UrlQueryParameterChecker.vue2.js +0 -4
- package/dist/components/ImportCollection/WorkspaceSelector.vue.js +0 -134
- package/dist/components/ImportCollection/WorkspaceSelector.vue2.js +0 -4
- package/dist/components/ImportCollection/hooks/useUrlPrefetcher.js +0 -106
- package/dist/components/ImportCollection/utils/get-openapi-version.js +0 -20
- package/dist/components/ImportCollection/utils/import-collection.js +0 -29
- package/dist/components/ImportCollection/utils/is-document.js +0 -9
- package/dist/components/ImportCollection/utils/is-url.js +0 -9
- package/dist/components/ImportCollection/utils/workspace-store-is-empty.js +0 -7
- package/dist/components/OpenApiClientButton.vue.js +0 -7
- package/dist/components/OpenApiClientButton.vue2.js +0 -48
- package/dist/components/ScalarAsciiArt.vue.js +0 -7
- package/dist/components/ScalarAsciiArt.vue2.js +0 -37
- package/dist/components/Search/useSearch.js +0 -78
- package/dist/components/SectionFilter.vue.js +0 -7
- package/dist/components/SectionFilter.vue2.js +0 -64
- package/dist/components/SectionFilterButton.vue.js +0 -23
- package/dist/components/SectionFilterButton.vue2.js +0 -4
- package/dist/components/Server/ServerDropdown.vue.js +0 -132
- package/dist/components/Server/ServerDropdown.vue2.js +0 -4
- package/dist/components/Server/ServerDropdownItem.vue.js +0 -7
- package/dist/components/Server/ServerDropdownItem.vue2.js +0 -84
- package/dist/components/Server/ServerSelector.vue.js +0 -82
- package/dist/components/Server/ServerSelector.vue2.js +0 -4
- package/dist/components/Server/ServerVariablesForm.vue.js +0 -49
- package/dist/components/Server/ServerVariablesForm.vue2.js +0 -4
- package/dist/components/Server/ServerVariablesSelect.vue.js +0 -54
- package/dist/components/Server/ServerVariablesSelect.vue2.js +0 -4
- package/dist/components/Server/ServerVariablesTextbox.vue.js +0 -29
- package/dist/components/Server/ServerVariablesTextbox.vue2.js +0 -4
- package/dist/components/SideNav/DownloadAppButton.vue.js +0 -7
- package/dist/components/SideNav/DownloadAppButton.vue2.js +0 -33
- package/dist/components/SideNav/SideHelp.vue.js +0 -127
- package/dist/components/SideNav/SideHelp.vue2.js +0 -4
- package/dist/components/SideNav/SideNav.vue.js +0 -96
- package/dist/components/SideNav/SideNav.vue2.js +0 -4
- package/dist/components/SideNav/SideNavGroup.vue.js +0 -16
- package/dist/components/SideNav/SideNavGroup.vue2.js +0 -4
- package/dist/components/SideNav/SideNavLink.vue.js +0 -39
- package/dist/components/SideNav/SideNavLink.vue2.js +0 -4
- package/dist/components/SideNav/SideNavRouterLink.vue.js +0 -27
- package/dist/components/SideNav/SideNavRouterLink.vue2.js +0 -4
- package/dist/components/Sidebar/Actions/DeleteSidebarListElement.vue.js +0 -30
- package/dist/components/Sidebar/Actions/DeleteSidebarListElement.vue2.js +0 -4
- package/dist/components/Sidebar/Actions/EditSidebarListCollection.vue.js +0 -58
- package/dist/components/Sidebar/Actions/EditSidebarListCollection.vue2.js +0 -4
- package/dist/components/Sidebar/Actions/EditSidebarListElement.vue.js +0 -29
- package/dist/components/Sidebar/Actions/EditSidebarListElement.vue2.js +0 -4
- package/dist/components/Sidebar/Actions/SidebarListElementForm.vue.js +0 -46
- package/dist/components/Sidebar/Actions/SidebarListElementForm.vue2.js +0 -4
- package/dist/components/Sidebar/Sidebar.vue.js +0 -7
- package/dist/components/Sidebar/Sidebar.vue2.js +0 -63
- package/dist/components/Sidebar/SidebarButton.vue.js +0 -33
- package/dist/components/Sidebar/SidebarButton.vue2.js +0 -4
- package/dist/components/Sidebar/SidebarList.vue.js +0 -12
- package/dist/components/Sidebar/SidebarListElement.vue.js +0 -8
- package/dist/components/Sidebar/SidebarListElement.vue2.js +0 -94
- package/dist/components/Sidebar/SidebarListElementActions.vue.js +0 -86
- package/dist/components/Sidebar/SidebarListElementActions.vue2.js +0 -4
- package/dist/components/Sidebar/SidebarToggle.vue.js +0 -49
- package/dist/components/Sidebar/SidebarToggle.vue2.js +0 -4
- package/dist/components/TopNav/TopNav.vue.js +0 -210
- package/dist/components/TopNav/TopNav.vue2.js +0 -4
- package/dist/components/TopNav/TopNavItem.vue.js +0 -7
- package/dist/components/TopNav/TopNavItem.vue2.js +0 -138
- package/dist/components/ViewLayout/ViewLayout.vue.js +0 -18
- package/dist/components/ViewLayout/ViewLayout.vue2.js +0 -4
- package/dist/components/ViewLayout/ViewLayoutCollapse.vue.js +0 -92
- package/dist/components/ViewLayout/ViewLayoutCollapse.vue2.js +0 -4
- package/dist/components/ViewLayout/ViewLayoutContent.vue.js +0 -12
- package/dist/components/ViewLayout/ViewLayoutSection.vue.js +0 -23
- package/dist/components/ViewLayout/ViewLayoutSection.vue2.js +0 -4
- package/dist/constants.js +0 -40
- package/dist/data/httpHeaders.js +0 -537
- package/dist/hooks/useAnalytics.js +0 -11
- package/dist/hooks/useClientConfig.js +0 -7
- package/dist/hooks/useFileDialog.js +0 -21
- package/dist/hooks/useLayout.js +0 -8
- package/dist/hooks/useResponseBody.js +0 -20
- package/dist/hooks/useSidebar.js +0 -28
- package/dist/layouts/App/ApiClientApp.vue.js +0 -70
- package/dist/layouts/App/ApiClientApp.vue3.js +0 -5
- package/dist/layouts/App/MainLayout.vue.js +0 -26
- package/dist/layouts/App/MainLayout.vue2.js +0 -4
- package/dist/layouts/App/create-api-client-app.js +0 -35
- package/dist/layouts/App/hotkeys.js +0 -21
- package/dist/layouts/Modal/ApiClientModal.vue.js +0 -30
- package/dist/layouts/Modal/ApiClientModal.vue2.js +0 -4
- package/dist/layouts/Modal/create-api-client-modal.js +0 -32
- package/dist/layouts/Web/ApiClientWeb.vue.js +0 -64
- package/dist/layouts/Web/ApiClientWeb.vue3.js +0 -5
- package/dist/layouts/Web/create-api-client-web.js +0 -32
- package/dist/libs/create-client.js +0 -189
- package/dist/libs/electron.js +0 -4
- package/dist/libs/env-helpers.js +0 -6
- package/dist/libs/environment-parser.js +0 -18
- package/dist/libs/errors.js +0 -16
- package/dist/libs/event-bus.js +0 -32
- package/dist/libs/extractAttachmentFilename.js +0 -18
- package/dist/libs/find-request.js +0 -23
- package/dist/libs/formatters.js +0 -10
- package/dist/libs/get-request-uid-by-path-method.js +0 -18
- package/dist/libs/getOpenApiDocumentDetails.js +0 -40
- package/dist/libs/hot-keys.js +0 -44
- package/dist/libs/importers/curl.js +0 -53
- package/dist/libs/isUrl.js +0 -7
- package/dist/libs/local-storage.js +0 -41
- package/dist/libs/normalize-headers.js +0 -27
- package/dist/libs/parse-curl.js +0 -59
- package/dist/libs/postman.js +0 -37
- package/dist/libs/send-request/build-request-security.js +0 -35
- package/dist/libs/send-request/create-fetch-body.js +0 -25
- package/dist/libs/send-request/create-fetch-headers.js +0 -11
- package/dist/libs/send-request/create-fetch-query-params.js +0 -33
- package/dist/libs/send-request/create-request-operation.js +0 -140
- package/dist/libs/send-request/decode-buffer.js +0 -9
- package/dist/libs/send-request/set-request-cookies.js +0 -58
- package/dist/libs/string-template.js +0 -42
- package/dist/libs/validate-parameters.js +0 -16
- package/dist/plugins/hooks/usePluginManager.js +0 -10
- package/dist/plugins/plugin-manager.js +0 -26
- package/dist/routes.js +0 -210
- package/dist/store/active-entities.js +0 -118
- package/dist/store/collections.js +0 -73
- package/dist/store/cookies.js +0 -13
- package/dist/store/environment.js +0 -32
- package/dist/store/events.js +0 -35
- package/dist/store/import-spec.js +0 -55
- package/dist/store/request-example.js +0 -43
- package/dist/store/requests.js +0 -97
- package/dist/store/router-params.js +0 -22
- package/dist/store/security-schemes.js +0 -55
- package/dist/store/servers.js +0 -39
- package/dist/store/store.js +0 -144
- package/dist/store/tags.js +0 -45
- package/dist/store/workspace.js +0 -52
- package/dist/v2/blocks/operation-block/OperationBlock.vue.js +0 -242
- package/dist/v2/blocks/operation-block/OperationBlock.vue2.js +0 -4
- package/dist/v2/blocks/operation-block/components/Header.vue.js +0 -7
- package/dist/v2/blocks/operation-block/components/Header.vue2.js +0 -100
- package/dist/v2/blocks/operation-block/helpers/build-request-body.js +0 -40
- package/dist/v2/blocks/operation-block/helpers/build-request-cookie-header.js +0 -31
- package/dist/v2/blocks/operation-block/helpers/build-request-parameters.js +0 -107
- package/dist/v2/blocks/operation-block/helpers/build-request-security.js +0 -46
- package/dist/v2/blocks/operation-block/helpers/build-request.js +0 -70
- package/dist/v2/blocks/operation-block/helpers/de-serialize-parameter.js +0 -25
- package/dist/v2/blocks/operation-block/helpers/decode-buffer.js +0 -9
- package/dist/v2/blocks/operation-block/helpers/filter-global-cookies.js +0 -14
- package/dist/v2/blocks/operation-block/helpers/get-cookie-header-keys.js +0 -4
- package/dist/v2/blocks/operation-block/helpers/get-environment-variables.js +0 -7
- package/dist/v2/blocks/operation-block/helpers/get-example.js +0 -36
- package/dist/v2/blocks/operation-block/helpers/get-resolved-url.js +0 -17
- package/dist/v2/blocks/operation-block/helpers/get-selected-body-content-type.js +0 -4
- package/dist/v2/blocks/operation-block/helpers/get-server-url.js +0 -12
- package/dist/v2/blocks/operation-block/helpers/har-to-fetch-request.js +0 -31
- package/dist/v2/blocks/operation-block/helpers/har-to-fetch-response.js +0 -43
- package/dist/v2/blocks/operation-block/helpers/response-cache.js +0 -12
- package/dist/v2/blocks/operation-block/helpers/send-request.js +0 -122
- package/dist/v2/blocks/operation-block/helpers/serialize-parameter.js +0 -49
- package/dist/v2/blocks/operation-block/helpers/validate-path-parameters.js +0 -17
- package/dist/v2/blocks/operation-code-sample/components/ExamplePicker.vue.js +0 -56
- package/dist/v2/blocks/operation-code-sample/components/ExamplePicker.vue2.js +0 -4
- package/dist/v2/blocks/operation-code-sample/components/HttpMethod.vue.js +0 -30
- package/dist/v2/blocks/operation-code-sample/components/HttpMethod.vue2.js +0 -4
- package/dist/v2/blocks/operation-code-sample/components/OperationCodeSample.vue.js +0 -7
- package/dist/v2/blocks/operation-code-sample/components/OperationCodeSample.vue2.js +0 -227
- package/dist/v2/blocks/operation-code-sample/helpers/find-client.js +0 -22
- package/dist/v2/blocks/operation-code-sample/helpers/generate-client-options.js +0 -27
- package/dist/v2/blocks/operation-code-sample/helpers/generate-code-snippet.js +0 -40
- package/dist/v2/blocks/operation-code-sample/helpers/get-clients.js +0 -20
- package/dist/v2/blocks/operation-code-sample/helpers/get-custom-code-samples.js +0 -4
- package/dist/v2/blocks/operation-code-sample/helpers/get-example-from-schema.js +0 -302
- package/dist/v2/blocks/operation-code-sample/helpers/get-resolved-ref-deep.js +0 -28
- package/dist/v2/blocks/operation-code-sample/helpers/get-secrets.js +0 -10
- package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/operation-to-har.js +0 -67
- package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/process-body.js +0 -66
- package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/process-parameters.js +0 -172
- package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/process-security-schemes.js +0 -55
- package/dist/v2/blocks/operation-code-sample/helpers/operation-to-har/process-server-url.js +0 -18
- package/dist/v2/blocks/request-block/RequestBlock.vue.js +0 -7
- package/dist/v2/blocks/request-block/RequestBlock.vue2.js +0 -344
- package/dist/v2/blocks/request-block/components/RequestBody.vue.js +0 -7
- package/dist/v2/blocks/request-block/components/RequestBody.vue2.js +0 -191
- package/dist/v2/blocks/request-block/components/RequestBodyForm.vue.js +0 -84
- package/dist/v2/blocks/request-block/components/RequestBodyForm.vue2.js +0 -4
- package/dist/v2/blocks/request-block/components/RequestCodeSnippet.vue.js +0 -135
- package/dist/v2/blocks/request-block/components/RequestCodeSnippet.vue2.js +0 -4
- package/dist/v2/blocks/request-block/components/RequestParams.vue.js +0 -78
- package/dist/v2/blocks/request-block/components/RequestParams.vue2.js +0 -4
- package/dist/v2/blocks/request-block/components/RequestTable.vue.js +0 -7
- package/dist/v2/blocks/request-block/components/RequestTable.vue2.js +0 -74
- package/dist/v2/blocks/request-block/components/RequestTableRow.vue.js +0 -204
- package/dist/v2/blocks/request-block/components/RequestTableRow.vue2.js +0 -4
- package/dist/v2/blocks/request-block/components/RequestTableTooltip.vue.js +0 -7
- package/dist/v2/blocks/request-block/components/RequestTableTooltip.vue2.js +0 -63
- package/dist/v2/blocks/request-block/helpers/create-parameter-handlers.js +0 -55
- package/dist/v2/blocks/request-block/helpers/files.js +0 -7
- package/dist/v2/blocks/request-block/helpers/get-default-headers.js +0 -26
- package/dist/v2/blocks/request-block/helpers/get-form-body-rows.js +0 -29
- package/dist/v2/blocks/request-block/helpers/get-parameter-content.js +0 -9
- package/dist/v2/blocks/request-block/helpers/get-parameter-schema.js +0 -6
- package/dist/v2/blocks/request-block/helpers/get-request-body-example.js +0 -16
- package/dist/v2/blocks/request-block/helpers/group-by.js +0 -10
- package/dist/v2/blocks/request-block/helpers/is-param-disabled.js +0 -7
- package/dist/v2/blocks/request-block/helpers/validate-parameter.js +0 -32
- package/dist/v2/blocks/response-block/ResponseBlock.vue.js +0 -7
- package/dist/v2/blocks/response-block/ResponseBlock.vue2.js +0 -180
- package/dist/v2/blocks/response-block/components/Headers.vue.js +0 -96
- package/dist/v2/blocks/response-block/components/Headers.vue2.js +0 -4
- package/dist/v2/blocks/response-block/components/ResponseBody.vue.js +0 -7
- package/dist/v2/blocks/response-block/components/ResponseBody.vue2.js +0 -87
- package/dist/v2/blocks/response-block/components/ResponseBodyDownload.vue.js +0 -36
- package/dist/v2/blocks/response-block/components/ResponseBodyDownload.vue2.js +0 -4
- package/dist/v2/blocks/response-block/components/ResponseBodyInfo.vue.js +0 -14
- package/dist/v2/blocks/response-block/components/ResponseBodyPreview.vue.js +0 -7
- package/dist/v2/blocks/response-block/components/ResponseBodyPreview.vue2.js +0 -63
- package/dist/v2/blocks/response-block/components/ResponseBodyRaw.vue.js +0 -7
- package/dist/v2/blocks/response-block/components/ResponseBodyRaw.vue2.js +0 -41
- package/dist/v2/blocks/response-block/components/ResponseBodyStreaming.vue.js +0 -94
- package/dist/v2/blocks/response-block/components/ResponseBodyStreaming.vue2.js +0 -4
- package/dist/v2/blocks/response-block/components/ResponseBodyToggle.vue.js +0 -25
- package/dist/v2/blocks/response-block/components/ResponseBodyToggle.vue2.js +0 -4
- package/dist/v2/blocks/response-block/components/ResponseBodyVirtual.vue.js +0 -52
- package/dist/v2/blocks/response-block/components/ResponseBodyVirtual.vue3.js +0 -5
- package/dist/v2/blocks/response-block/components/ResponseCookies.vue.js +0 -54
- package/dist/v2/blocks/response-block/components/ResponseCookies.vue2.js +0 -4
- package/dist/v2/blocks/response-block/components/ResponseEmpty.vue.js +0 -7
- package/dist/v2/blocks/response-block/components/ResponseEmpty.vue2.js +0 -79
- package/dist/v2/blocks/response-block/components/ResponseLoadingOverlay.vue.js +0 -7
- package/dist/v2/blocks/response-block/components/ResponseLoadingOverlay.vue2.js +0 -46
- package/dist/v2/blocks/response-block/components/ResponseMetaInformation.vue.js +0 -67
- package/dist/v2/blocks/response-block/components/ResponseMetaInformation.vue2.js +0 -4
- package/dist/v2/blocks/response-block/helpers/extract-filename.js +0 -18
- package/dist/v2/blocks/response-block/helpers/get-content-length.js +0 -12
- package/dist/v2/blocks/response-block/helpers/media-types.js +0 -126
- package/dist/v2/blocks/response-block/helpers/parse-set-cookie.js +0 -12
- package/dist/v2/blocks/response-block/helpers/process-response-body.js +0 -16
- package/dist/v2/blocks/scalar-address-bar-block/components/AddressBar.vue.js +0 -7
- package/dist/v2/blocks/scalar-address-bar-block/components/AddressBar.vue2.js +0 -208
- package/dist/v2/blocks/scalar-address-bar-block/components/AddressBarHistory.vue.js +0 -7
- package/dist/v2/blocks/scalar-address-bar-block/components/AddressBarHistory.vue2.js +0 -95
- package/dist/v2/blocks/scalar-address-bar-block/components/EnvironmentSelector.vue.js +0 -145
- package/dist/v2/blocks/scalar-address-bar-block/components/EnvironmentSelector.vue2.js +0 -4
- package/dist/v2/blocks/scalar-address-bar-block/components/httpStatusCodeColors.js +0 -38
- package/dist/v2/blocks/scalar-address-bar-block/hooks/use-loading-animation.js +0 -25
- package/dist/v2/blocks/scalar-auth-selector-block/components/AuthSelector.vue.js +0 -182
- package/dist/v2/blocks/scalar-auth-selector-block/components/AuthSelector.vue2.js +0 -4
- package/dist/v2/blocks/scalar-auth-selector-block/components/DeleteRequestAuthModal.vue.js +0 -51
- package/dist/v2/blocks/scalar-auth-selector-block/components/DeleteRequestAuthModal.vue2.js +0 -4
- package/dist/v2/blocks/scalar-auth-selector-block/components/OAuth2.vue.js +0 -330
- package/dist/v2/blocks/scalar-auth-selector-block/components/OAuth2.vue2.js +0 -4
- package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesAddModal.vue.js +0 -7
- package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesAddModal.vue2.js +0 -76
- package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesInput.vue.js +0 -165
- package/dist/v2/blocks/scalar-auth-selector-block/components/OAuthScopesInput.vue3.js +0 -5
- package/dist/v2/blocks/scalar-auth-selector-block/components/OpenIDConnect.vue.js +0 -91
- package/dist/v2/blocks/scalar-auth-selector-block/components/OpenIDConnect.vue2.js +0 -4
- package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTable.vue.js +0 -83
- package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTable.vue2.js +0 -4
- package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTableInput.vue.js +0 -46
- package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthDataTableInput.vue2.js +0 -4
- package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthTab.vue.js +0 -244
- package/dist/v2/blocks/scalar-auth-selector-block/components/RequestAuthTab.vue2.js +0 -4
- package/dist/v2/blocks/scalar-auth-selector-block/helpers/auth-options.js +0 -97
- package/dist/v2/blocks/scalar-auth-selector-block/helpers/extract-security-scheme-secrets.js +0 -135
- package/dist/v2/blocks/scalar-auth-selector-block/helpers/fetch-openid-connect-discovery.js +0 -35
- package/dist/v2/blocks/scalar-auth-selector-block/helpers/is-auth-optional.js +0 -7
- package/dist/v2/blocks/scalar-auth-selector-block/helpers/merge-security.js +0 -23
- package/dist/v2/blocks/scalar-auth-selector-block/helpers/oauth.js +0 -139
- package/dist/v2/blocks/scalar-auth-selector-block/helpers/openid-discovery-to-flows.js +0 -27
- package/dist/v2/blocks/scalar-auth-selector-block/helpers/security-scheme.js +0 -64
- package/dist/v2/components/callout/Callout.vue.js +0 -7
- package/dist/v2/components/callout/Callout.vue2.js +0 -43
- package/dist/v2/components/code-input/CodeInput.vue.js +0 -8
- package/dist/v2/components/code-input/CodeInput.vue2.js +0 -213
- package/dist/v2/components/code-input/code-variable-widget.js +0 -106
- package/dist/v2/components/data-table/DataTable.vue.js +0 -38
- package/dist/v2/components/data-table/DataTable.vue2.js +0 -4
- package/dist/v2/components/data-table/DataTableCell.vue.js +0 -26
- package/dist/v2/components/data-table/DataTableCell.vue2.js +0 -4
- package/dist/v2/components/data-table/DataTableCheckbox.vue.js +0 -53
- package/dist/v2/components/data-table/DataTableCheckbox.vue2.js +0 -4
- package/dist/v2/components/data-table/DataTableHeader.vue.js +0 -18
- package/dist/v2/components/data-table/DataTableHeader.vue2.js +0 -4
- package/dist/v2/components/data-table/DataTableInput.vue.js +0 -7
- package/dist/v2/components/data-table/DataTableInput.vue2.js +0 -121
- package/dist/v2/components/data-table/DataTableInputSelect.vue.js +0 -149
- package/dist/v2/components/data-table/DataTableInputSelect.vue2.js +0 -4
- package/dist/v2/components/data-table/DataTableRow.vue.js +0 -12
- package/dist/v2/components/data-table/DataTableText.vue.js +0 -23
- package/dist/v2/components/data-table/DataTableText.vue2.js +0 -4
- package/dist/v2/components/forms/ConfirmationForm.vue.js +0 -45
- package/dist/v2/components/forms/ConfirmationForm.vue2.js +0 -4
- package/dist/v2/components/layout/CollapsibleSection.vue.js +0 -89
- package/dist/v2/components/layout/CollapsibleSection.vue2.js +0 -4
- package/dist/v2/components/layout/ValueEmitter.vue.js +0 -21
- package/dist/v2/components/layout/ValueEmitter.vue2.js +0 -4
- package/dist/v2/components/modals/DeleteModal.vue.js +0 -31
- package/dist/v2/components/modals/DeleteModal.vue2.js +0 -4
- package/dist/v2/components/modals/ModalClientContainer.vue.js +0 -7
- package/dist/v2/components/modals/ModalClientContainer.vue2.js +0 -60
- package/dist/v2/components/resize/Resize.vue.js +0 -8
- package/dist/v2/components/resize/Resize.vue2.js +0 -36
- package/dist/v2/components/resize/use-split-resize.js +0 -57
- package/dist/v2/components/server/ServerDropdown.vue.js +0 -91
- package/dist/v2/components/server/ServerDropdown.vue2.js +0 -4
- package/dist/v2/components/server/ServerDropdownItem.vue.js +0 -7
- package/dist/v2/components/server/ServerDropdownItem.vue2.js +0 -49
- package/dist/v2/components/sidebar/Sidebar.vue.js +0 -115
- package/dist/v2/components/sidebar/Sidebar.vue2.js +0 -4
- package/dist/v2/components/sidebar/SidebarMenu.vue.js +0 -50
- package/dist/v2/components/sidebar/SidebarMenu.vue2.js +0 -4
- package/dist/v2/components/sidebar/SidebarToggle.vue.js +0 -52
- package/dist/v2/components/sidebar/SidebarToggle.vue2.js +0 -4
- package/dist/v2/features/app/App.vue.js +0 -152
- package/dist/v2/features/app/App.vue3.js +0 -5
- package/dist/v2/features/app/app-events.js +0 -251
- package/dist/v2/features/app/app-state.js +0 -415
- package/dist/v2/features/app/components/AppSidebar.vue.js +0 -7
- package/dist/v2/features/app/components/AppSidebar.vue2.js +0 -304
- package/dist/v2/features/app/components/CreateWorkspaceModal.vue.js +0 -56
- package/dist/v2/features/app/components/CreateWorkspaceModal.vue2.js +0 -4
- package/dist/v2/features/app/components/DesktopTab.vue.js +0 -7
- package/dist/v2/features/app/components/DesktopTab.vue2.js +0 -134
- package/dist/v2/features/app/components/DesktopTabs.vue.js +0 -56
- package/dist/v2/features/app/components/DesktopTabs.vue2.js +0 -4
- package/dist/v2/features/app/components/DownloadAppButton.vue.js +0 -7
- package/dist/v2/features/app/components/DownloadAppButton.vue2.js +0 -19
- package/dist/v2/features/app/components/SidebarItemMenu.vue.js +0 -185
- package/dist/v2/features/app/components/SidebarItemMenu.vue2.js +0 -4
- package/dist/v2/features/app/components/SplashScreen.vue.js +0 -7
- package/dist/v2/features/app/components/SplashScreen.vue2.js +0 -18
- package/dist/v2/features/app/helpers/create-api-client-app.js +0 -36
- package/dist/v2/features/app/helpers/filter-workspaces.js +0 -5
- package/dist/v2/features/app/helpers/get-route-param.js +0 -9
- package/dist/v2/features/app/helpers/group-workspaces.js +0 -23
- package/dist/v2/features/app/helpers/routes.js +0 -157
- package/dist/v2/features/app/hooks/use-document-watcher.js +0 -66
- package/dist/v2/features/app/hooks/use-theme.js +0 -48
- package/dist/v2/features/collection/DocumentCollection.vue.js +0 -336
- package/dist/v2/features/collection/DocumentCollection.vue3.js +0 -5
- package/dist/v2/features/collection/OperationCollection.vue.js +0 -86
- package/dist/v2/features/collection/OperationCollection.vue2.js +0 -4
- package/dist/v2/features/collection/WorkspaceCollection.vue.js +0 -68
- package/dist/v2/features/collection/WorkspaceCollection.vue2.js +0 -4
- package/dist/v2/features/collection/components/Authentication.vue.js +0 -7
- package/dist/v2/features/collection/components/Authentication.vue2.js +0 -154
- package/dist/v2/features/collection/components/Cookies.vue.js +0 -52
- package/dist/v2/features/collection/components/Cookies.vue2.js +0 -4
- package/dist/v2/features/collection/components/Editor/Editor.vue.js +0 -7
- package/dist/v2/features/collection/components/Editor/Editor.vue2.js +0 -344
- package/dist/v2/features/collection/components/Editor/components/EditorDiagnosticsPanel.vue.js +0 -78
- package/dist/v2/features/collection/components/Editor/components/EditorDiagnosticsPanel.vue2.js +0 -4
- package/dist/v2/features/collection/components/Editor/components/EditorSavePanel.vue.js +0 -83
- package/dist/v2/features/collection/components/Editor/components/EditorSavePanel.vue2.js +0 -4
- package/dist/v2/features/collection/components/Editor/helpers/get-diagnostic-counts.js +0 -10
- package/dist/v2/features/collection/components/Editor/helpers/get-operation-context.js +0 -5
- package/dist/v2/features/collection/components/Editor/helpers/get-visible-diagnostics.js +0 -5
- package/dist/v2/features/collection/components/Editor/helpers/parse-editor-object.js +0 -21
- package/dist/v2/features/collection/components/Editor/helpers/stringify-document.js +0 -5
- package/dist/v2/features/collection/components/Editor/hooks/use-editor-state.js +0 -25
- package/dist/v2/features/collection/components/Environment.vue.js +0 -54
- package/dist/v2/features/collection/components/Environment.vue2.js +0 -4
- package/dist/v2/features/collection/components/Form.vue.js +0 -78
- package/dist/v2/features/collection/components/Form.vue2.js +0 -4
- package/dist/v2/features/collection/components/LabelInput.vue.js +0 -7
- package/dist/v2/features/collection/components/LabelInput.vue2.js +0 -35
- package/dist/v2/features/collection/components/Overview.vue.js +0 -7
- package/dist/v2/features/collection/components/Overview.vue2.js +0 -208
- package/dist/v2/features/collection/components/Servers.vue.js +0 -209
- package/dist/v2/features/collection/components/Servers.vue2.js +0 -4
- package/dist/v2/features/collection/components/Settings.vue.js +0 -61
- package/dist/v2/features/collection/components/Settings.vue2.js +0 -4
- package/dist/v2/features/collection/components/SyncConflictResolutionEditor.vue.js +0 -7
- package/dist/v2/features/collection/components/SyncConflictResolutionEditor.vue2.js +0 -136
- package/dist/v2/features/collection/components/Tabs.vue.js +0 -44
- package/dist/v2/features/collection/components/Tabs.vue2.js +0 -4
- package/dist/v2/features/collection/helpers/get-default-operation-security-toggle.js +0 -13
- package/dist/v2/features/command-palette/TheCommandPalette.vue.js +0 -7
- package/dist/v2/features/command-palette/TheCommandPalette.vue2.js +0 -152
- package/dist/v2/features/command-palette/components/CommandActionForm.vue.js +0 -48
- package/dist/v2/features/command-palette/components/CommandActionForm.vue2.js +0 -4
- package/dist/v2/features/command-palette/components/CommandActionInput.vue.js +0 -52
- package/dist/v2/features/command-palette/components/CommandActionInput.vue2.js +0 -4
- package/dist/v2/features/command-palette/components/CommandPaletteExample.vue.js +0 -211
- package/dist/v2/features/command-palette/components/CommandPaletteExample.vue2.js +0 -4
- package/dist/v2/features/command-palette/components/CommandPaletteImport.vue.js +0 -182
- package/dist/v2/features/command-palette/components/CommandPaletteImport.vue2.js +0 -4
- package/dist/v2/features/command-palette/components/CommandPaletteImportCurl.vue.js +0 -7
- package/dist/v2/features/command-palette/components/CommandPaletteImportCurl.vue2.js +0 -115
- package/dist/v2/features/command-palette/components/CommandPaletteOpenApiDocument.vue.js +0 -78
- package/dist/v2/features/command-palette/components/CommandPaletteOpenApiDocument.vue2.js +0 -4
- package/dist/v2/features/command-palette/components/CommandPaletteRequest.vue.js +0 -221
- package/dist/v2/features/command-palette/components/CommandPaletteRequest.vue2.js +0 -4
- package/dist/v2/features/command-palette/components/CommandPaletteTag.vue.js +0 -114
- package/dist/v2/features/command-palette/components/CommandPaletteTag.vue2.js +0 -4
- package/dist/v2/features/command-palette/components/WatchModeToggle.vue.js +0 -40
- package/dist/v2/features/command-palette/components/WatchModeToggle.vue2.js +0 -4
- package/dist/v2/features/command-palette/helpers/generate-unique-slug.js +0 -11
- package/dist/v2/features/command-palette/helpers/get-openapi-document-details.js +0 -31
- package/dist/v2/features/command-palette/helpers/get-openapi-from-postman.js +0 -11
- package/dist/v2/features/command-palette/helpers/get-operation-from-curl.js +0 -76
- package/dist/v2/features/command-palette/helpers/get-postman-document-details.js +0 -18
- package/dist/v2/features/command-palette/helpers/import-document-to-workspace.js +0 -33
- package/dist/v2/features/command-palette/helpers/is-postman-collection.js +0 -11
- package/dist/v2/features/command-palette/helpers/load-document-from-source.js +0 -52
- package/dist/v2/features/command-palette/hooks/use-command-palette-state.js +0 -139
- package/dist/v2/features/editor/config.js +0 -16
- package/dist/v2/features/editor/helpers/configure-language-support.js +0 -39
- package/dist/v2/features/editor/helpers/ensure-monaco-environment.js +0 -20
- package/dist/v2/features/editor/helpers/json/create-json-model.js +0 -19
- package/dist/v2/features/editor/helpers/json/get-json-ast-node-from-path.js +0 -9
- package/dist/v2/features/editor/helpers/json/json-ast.js +0 -24
- package/dist/v2/features/editor/helpers/json/json-pointer-links.js +0 -72
- package/dist/v2/features/editor/helpers/json/json-pointer-path.js +0 -21
- package/dist/v2/features/editor/helpers/range-to-whole-line.js +0 -8
- package/dist/v2/features/editor/helpers/theme/apply-scalar-theme.js +0 -56
- package/dist/v2/features/editor/helpers/theme/load-css-variables.js +0 -21
- package/dist/v2/features/editor/helpers/yaml/create-yaml-model.js +0 -19
- package/dist/v2/features/editor/helpers/yaml/get-yaml-node-range-from-path.js +0 -50
- package/dist/v2/features/editor/hooks/use-editor-markers.js +0 -34
- package/dist/v2/features/editor/hooks/use-editor.js +0 -107
- package/dist/v2/features/editor/hooks/use-json-pointer-link-support.js +0 -27
- package/dist/v2/features/editor/hooks/use-three-way-merge-editor.js +0 -316
- package/dist/v2/features/editor/schemas/openapi-3.1-schema.json.js +0 -25
- package/dist/v2/features/environments/EnvironmentsList.vue.js +0 -68
- package/dist/v2/features/environments/EnvironmentsList.vue2.js +0 -4
- package/dist/v2/features/environments/components/Environment.vue.js +0 -66
- package/dist/v2/features/environments/components/Environment.vue2.js +0 -4
- package/dist/v2/features/environments/components/EnvironmentColors.vue.js +0 -121
- package/dist/v2/features/environments/components/EnvironmentColors.vue2.js +0 -4
- package/dist/v2/features/environments/components/EnvironmentCreateModal.vue.js +0 -85
- package/dist/v2/features/environments/components/EnvironmentCreateModal.vue2.js +0 -4
- package/dist/v2/features/environments/components/EnvironmentDeleteModal.vue.js +0 -53
- package/dist/v2/features/environments/components/EnvironmentDeleteModal.vue2.js +0 -4
- package/dist/v2/features/environments/components/EnvironmentVariablesDropdown.vue.js +0 -109
- package/dist/v2/features/environments/components/EnvironmentVariablesDropdown.vue2.js +0 -4
- package/dist/v2/features/environments/components/EnvironmentVariablesTable.vue.js +0 -7
- package/dist/v2/features/environments/components/EnvironmentVariablesTable.vue2.js +0 -136
- package/dist/v2/features/global-cookies/components/CookiesTable.vue.js +0 -7
- package/dist/v2/features/global-cookies/components/CookiesTable.vue2.js +0 -189
- package/dist/v2/features/modal/Modal.vue.js +0 -122
- package/dist/v2/features/modal/Modal.vue2.js +0 -4
- package/dist/v2/features/modal/helpers/create-api-client-modal.js +0 -89
- package/dist/v2/features/modal/helpers/map-hidden-clients-config.js +0 -36
- package/dist/v2/features/modal/helpers/resolve-route-parameters.js +0 -29
- package/dist/v2/features/modal/helpers/restore-workspace-state.js +0 -36
- package/dist/v2/features/modal/hooks/use-modal-sidebar.js +0 -93
- package/dist/v2/features/modal/modal-events.js +0 -44
- package/dist/v2/features/operation/Operation.vue.js +0 -126
- package/dist/v2/features/operation/Operation.vue2.js +0 -4
- package/dist/v2/features/operation/helpers/combine-params.js +0 -14
- package/dist/v2/features/operation/helpers/get-security-requirements.js +0 -4
- package/dist/v2/features/operation/helpers/get-selected-security.js +0 -18
- package/dist/v2/features/operation/helpers/get-selected-server.js +0 -4
- package/dist/v2/features/search/helpers/create-fuse-instance.js +0 -43
- package/dist/v2/features/search/helpers/create-search-index.js +0 -63
- package/dist/v2/features/search/hooks/use-search-index.js +0 -18
- package/dist/v2/features/settings/CollectionSettings.vue.js +0 -275
- package/dist/v2/features/settings/CollectionSettings.vue2.js +0 -4
- package/dist/v2/features/settings/DocumentSettings.vue.js +0 -115
- package/dist/v2/features/settings/DocumentSettings.vue2.js +0 -4
- package/dist/v2/features/settings/components/Appearance.vue.js +0 -88
- package/dist/v2/features/settings/components/Appearance.vue2.js +0 -4
- package/dist/v2/features/settings/components/Section.vue.js +0 -35
- package/dist/v2/features/settings/components/Section.vue2.js +0 -4
- package/dist/v2/features/settings/helpers/get-theme-colors.js +0 -16
- package/dist/v2/helpers/drag-handle-factory.js +0 -120
- package/dist/v2/helpers/generate-location-id.js +0 -10
- package/dist/v2/helpers/get-active-environment.js +0 -22
- package/dist/v2/helpers/get-active-proxy-url.js +0 -5
- package/dist/v2/helpers/get-servers.js +0 -66
- package/dist/v2/helpers/get-tab-details.js +0 -34
- package/dist/v2/helpers/handle-hotkeys.js +0 -54
- package/dist/v2/helpers/is-url.js +0 -5
- package/dist/v2/helpers/slugify.js +0 -4
- package/dist/v2/helpers/storage.js +0 -16
- package/dist/v2/hooks/use-color-mode.js +0 -24
- package/dist/v2/hooks/use-global-hot-keys.js +0 -11
- package/dist/v2/hooks/use-scroll-lock.js +0 -21
- package/dist/v2/workspace-events.js +0 -252
- package/dist/views/Collection/Collection.vue.js +0 -4
- package/dist/views/Collection/Collection.vue2.js +0 -49
- package/dist/views/Collection/CollectionAuthentication.vue.js +0 -7
- package/dist/views/Collection/CollectionAuthentication.vue2.js +0 -56
- package/dist/views/Collection/CollectionCookies.vue.js +0 -4
- package/dist/views/Collection/CollectionCookies.vue2.js +0 -16
- package/dist/views/Collection/CollectionEnvironment.vue.js +0 -5
- package/dist/views/Collection/CollectionEnvironment.vue2.js +0 -229
- package/dist/views/Collection/CollectionInfoForm.vue.js +0 -7
- package/dist/views/Collection/CollectionInfoForm.vue2.js +0 -63
- package/dist/views/Collection/CollectionNavigation.vue.js +0 -133
- package/dist/views/Collection/CollectionNavigation.vue2.js +0 -4
- package/dist/views/Collection/CollectionOverview.vue.js +0 -4
- package/dist/views/Collection/CollectionOverview.vue2.js +0 -34
- package/dist/views/Collection/CollectionScripts.vue.js +0 -4
- package/dist/views/Collection/CollectionScripts.vue2.js +0 -16
- package/dist/views/Collection/CollectionServerForm.vue.js +0 -75
- package/dist/views/Collection/CollectionServerForm.vue2.js +0 -4
- package/dist/views/Collection/CollectionServers.vue.js +0 -4
- package/dist/views/Collection/CollectionServers.vue2.js +0 -94
- package/dist/views/Collection/CollectionSettings.vue.js +0 -4
- package/dist/views/Collection/CollectionSettings.vue2.js +0 -118
- package/dist/views/Collection/CollectionSync.vue.js +0 -4
- package/dist/views/Collection/CollectionSync.vue2.js +0 -16
- package/dist/views/Collection/components/EnvironmentForm.vue.js +0 -7
- package/dist/views/Collection/components/EnvironmentForm.vue2.js +0 -270
- package/dist/views/Collection/components/MarkdownInput.vue.js +0 -7
- package/dist/views/Collection/components/MarkdownInput.vue2.js +0 -100
- package/dist/views/Components/CodeSnippet/CodeSnippet.vue.js +0 -50
- package/dist/views/Components/CodeSnippet/CodeSnippet.vue2.js +0 -4
- package/dist/views/Components/CodeSnippet/helpers/convert-to-har-request.js +0 -62
- package/dist/views/Components/CodeSnippet/helpers/get-har-request.js +0 -82
- package/dist/views/Components/CodeSnippet/helpers/get-snippet.js +0 -30
- package/dist/views/Cookies/CookieForm.vue.js +0 -34
- package/dist/views/Cookies/CookieForm.vue2.js +0 -4
- package/dist/views/Cookies/CookieModal.vue.js +0 -7
- package/dist/views/Cookies/CookieModal.vue2.js +0 -88
- package/dist/views/Cookies/Cookies.vue.js +0 -4
- package/dist/views/Cookies/Cookies.vue2.js +0 -162
- package/dist/views/Environment/Environment.vue.js +0 -4
- package/dist/views/Environment/Environment.vue2.js +0 -402
- package/dist/views/Environment/EnvironmentColorModal.vue.js +0 -42
- package/dist/views/Environment/EnvironmentColorModal.vue2.js +0 -4
- package/dist/views/Environment/EnvironmentColors.vue.js +0 -118
- package/dist/views/Environment/EnvironmentColors.vue2.js +0 -4
- package/dist/views/Environment/EnvironmentModal.vue.js +0 -131
- package/dist/views/Environment/EnvironmentModal.vue2.js +0 -4
- package/dist/views/Environment/EnvironmentVariableDropdown.vue.js +0 -129
- package/dist/views/Environment/EnvironmentVariableDropdown.vue2.js +0 -4
- package/dist/views/Environment/handle-drag.js +0 -32
- package/dist/views/Request/Request.vue.js +0 -7
- package/dist/views/Request/Request.vue2.js +0 -105
- package/dist/views/Request/RequestRoot.vue.js +0 -7
- package/dist/views/Request/RequestRoot.vue2.js +0 -123
- package/dist/views/Request/RequestSection/RequestAuth/DeleteRequestAuthModal.vue.js +0 -52
- package/dist/views/Request/RequestSection/RequestAuth/DeleteRequestAuthModal.vue2.js +0 -4
- package/dist/views/Request/RequestSection/RequestAuth/OAuth2.vue.js +0 -246
- package/dist/views/Request/RequestSection/RequestAuth/OAuth2.vue2.js +0 -4
- package/dist/views/Request/RequestSection/RequestAuth/OAuthScopesInput.vue.js +0 -135
- package/dist/views/Request/RequestSection/RequestAuth/OAuthScopesInput.vue2.js +0 -4
- package/dist/views/Request/RequestSection/RequestAuth/RequestAuth.vue.js +0 -7
- package/dist/views/Request/RequestSection/RequestAuth/RequestAuth.vue2.js +0 -209
- package/dist/views/Request/RequestSection/RequestAuth/RequestAuthDataTable.vue.js +0 -7
- package/dist/views/Request/RequestSection/RequestAuth/RequestAuthDataTable.vue2.js +0 -116
- package/dist/views/Request/RequestSection/RequestAuth/RequestAuthDataTableInput.vue.js +0 -50
- package/dist/views/Request/RequestSection/RequestAuth/RequestAuthDataTableInput.vue2.js +0 -4
- package/dist/views/Request/RequestSection/RequestAuth/RequestAuthTab.vue.js +0 -219
- package/dist/views/Request/RequestSection/RequestAuth/RequestAuthTab.vue2.js +0 -4
- package/dist/views/Request/RequestSection/RequestAuth/helpers/restore-auth-from-local-storage.js +0 -28
- package/dist/views/Request/RequestSection/RequestBody.vue.js +0 -7
- package/dist/views/Request/RequestSection/RequestBody.vue2.js +0 -451
- package/dist/views/Request/RequestSection/RequestCodeExample.vue.js +0 -7
- package/dist/views/Request/RequestSection/RequestCodeExample.vue2.js +0 -170
- package/dist/views/Request/RequestSection/RequestParams.vue.js +0 -162
- package/dist/views/Request/RequestSection/RequestParams.vue2.js +0 -4
- package/dist/views/Request/RequestSection/RequestPathParams.vue.js +0 -96
- package/dist/views/Request/RequestSection/RequestPathParams.vue2.js +0 -4
- package/dist/views/Request/RequestSection/RequestSection.vue.js +0 -7
- package/dist/views/Request/RequestSection/RequestSection.vue2.js +0 -247
- package/dist/views/Request/RequestSection/RequestTable.vue.js +0 -7
- package/dist/views/Request/RequestSection/RequestTable.vue2.js +0 -227
- package/dist/views/Request/RequestSection/RequestTableTooltip.vue.js +0 -7
- package/dist/views/Request/RequestSection/RequestTableTooltip.vue2.js +0 -61
- package/dist/views/Request/RequestSection/helpers/filter-security-requirements.js +0 -29
- package/dist/views/Request/RequestSection/helpers/getting-started.js +0 -13
- package/dist/views/Request/RequestSection/helpers/update-scheme.js +0 -16
- package/dist/views/Request/RequestSidebar.vue.js +0 -7
- package/dist/views/Request/RequestSidebar.vue2.js +0 -341
- package/dist/views/Request/RequestSidebarItem.vue.js +0 -8
- package/dist/views/Request/RequestSidebarItem.vue2.js +0 -464
- package/dist/views/Request/RequestSidebarItemMenu.vue.js +0 -7
- package/dist/views/Request/RequestSidebarItemMenu.vue2.js +0 -236
- package/dist/views/Request/RequestSubpageHeader.vue.js +0 -7
- package/dist/views/Request/RequestSubpageHeader.vue2.js +0 -79
- package/dist/views/Request/ResponseSection/RequestHeaders.vue.js +0 -96
- package/dist/views/Request/ResponseSection/RequestHeaders.vue2.js +0 -4
- package/dist/views/Request/ResponseSection/ResponseBody.vue.js +0 -7
- package/dist/views/Request/ResponseSection/ResponseBody.vue2.js +0 -83
- package/dist/views/Request/ResponseSection/ResponseBodyDownload.vue.js +0 -36
- package/dist/views/Request/ResponseSection/ResponseBodyDownload.vue2.js +0 -4
- package/dist/views/Request/ResponseSection/ResponseBodyInfo.vue.js +0 -14
- package/dist/views/Request/ResponseSection/ResponseBodyPreview.vue.js +0 -7
- package/dist/views/Request/ResponseSection/ResponseBodyPreview.vue2.js +0 -63
- package/dist/views/Request/ResponseSection/ResponseBodyRaw.vue.js +0 -7
- package/dist/views/Request/ResponseSection/ResponseBodyRaw.vue2.js +0 -42
- package/dist/views/Request/ResponseSection/ResponseBodyStreaming.vue.js +0 -74
- package/dist/views/Request/ResponseSection/ResponseBodyStreaming.vue2.js +0 -4
- package/dist/views/Request/ResponseSection/ResponseBodyToggle.vue.js +0 -25
- package/dist/views/Request/ResponseSection/ResponseBodyToggle.vue2.js +0 -4
- package/dist/views/Request/ResponseSection/ResponseBodyVirtual.vue.js +0 -50
- package/dist/views/Request/ResponseSection/ResponseBodyVirtual.vue3.js +0 -5
- package/dist/views/Request/ResponseSection/ResponseCookies.vue.js +0 -51
- package/dist/views/Request/ResponseSection/ResponseCookies.vue2.js +0 -4
- package/dist/views/Request/ResponseSection/ResponseEmpty.vue.js +0 -7
- package/dist/views/Request/ResponseSection/ResponseEmpty.vue2.js +0 -103
- package/dist/views/Request/ResponseSection/ResponseHeaders.vue.js +0 -96
- package/dist/views/Request/ResponseSection/ResponseHeaders.vue2.js +0 -4
- package/dist/views/Request/ResponseSection/ResponseLoadingOverlay.vue.js +0 -7
- package/dist/views/Request/ResponseSection/ResponseLoadingOverlay.vue2.js +0 -38
- package/dist/views/Request/ResponseSection/ResponseMetaInformation.vue.js +0 -67
- package/dist/views/Request/ResponseSection/ResponseMetaInformation.vue2.js +0 -4
- package/dist/views/Request/ResponseSection/ResponseSection.vue.js +0 -7
- package/dist/views/Request/ResponseSection/ResponseSection.vue2.js +0 -189
- package/dist/views/Request/components/WorkspaceDropdown.vue.js +0 -182
- package/dist/views/Request/components/WorkspaceDropdown.vue2.js +0 -4
- package/dist/views/Request/consts/mediaTypes.js +0 -131
- package/dist/views/Request/consts/new-auth-options.js +0 -100
- package/dist/views/Request/handle-drag.js +0 -42
- package/dist/views/Request/hooks/useOpenApiWatcher.js +0 -57
- package/dist/views/Request/libs/auth.js +0 -52
- package/dist/views/Request/libs/oauth2.js +0 -127
- package/dist/views/Request/libs/request.js +0 -40
- package/dist/views/Request/libs/watch-mode.js +0 -337
- package/dist/views/Settings/Settings.vue.js +0 -4
- package/dist/views/Settings/Settings.vue2.js +0 -29
- package/dist/views/Settings/SettingsGeneral.vue.js +0 -286
- package/dist/views/Settings/SettingsGeneral.vue2.js +0 -4
- package/dist/views/Settings/components/SettingsAppearance.vue.js +0 -85
- package/dist/views/Settings/components/SettingsAppearance.vue2.js +0 -4
- package/dist/views/Settings/components/SettingsSection.vue.js +0 -24
- package/dist/views/Settings/components/SettingsSection.vue2.js +0 -4
|
@@ -0,0 +1,1624 @@
|
|
|
1
|
+
import { a as ERRORS, i as normalizeHeaders, o as normalizeError } from "./send-request-BsTfRiBC.js";
|
|
2
|
+
import { i as isElectron } from "./set-request-cookies-BJJhsU4A.js";
|
|
3
|
+
import { i as isTextMediaType } from "./consts-CyGRb9dl.js";
|
|
4
|
+
import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BmmBcIzD.js";
|
|
5
|
+
import { t as OpenApiClientButton_default } from "./components-ChixwQhN.js";
|
|
6
|
+
import { C as getDefaultHeaders, _ as serializeSimpleStyle, b as deSerializeParameter, f as serializeContentValue, g as serializePipeDelimitedStyle, h as serializeFormStyleForCookies, m as serializeFormStyle, o as generateClientOptions, p as serializeDeepObjectStyle, v as serializeSpaceDelimitedStyle, w as getExample, x as filterGlobalCookie, y as isParamDisabled } from "./operation-code-sample-ZUTueV3v.js";
|
|
7
|
+
import { n as getEnvironmentVariables } from "./get-server-url-o3On8CEr.js";
|
|
8
|
+
import { t as getResolvedUrl } from "./get-resolved-url-BUCwrBzc.js";
|
|
9
|
+
import { t as ViewLayout_default } from "./ViewLayout-BOXN0IYo.js";
|
|
10
|
+
import { t as ViewLayoutContent_default } from "./ViewLayoutContent-CvMoJYPF.js";
|
|
11
|
+
import { n as getExampleFromBody, r as getSelectedBodyContentType, t as RequestBlock_default } from "./request-block-DwsGy64Q.js";
|
|
12
|
+
import { r as isAuthOptional } from "./scalar-auth-selector-block-DI3DLag9.js";
|
|
13
|
+
import { t as ResponseBlock_default } from "./response-block-DmkaDZYs.js";
|
|
14
|
+
import { t as AddressBar_default } from "./scalar-address-bar-block--Vs6IBU1.js";
|
|
15
|
+
import { t as getServers } from "./get-servers-B_WNlQWB.js";
|
|
16
|
+
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, normalizeClass, onBeforeUnmount, onMounted, openBlock, ref, renderList, toDisplayString, toValue, unref, watch, withCtx, withModifiers } from "vue";
|
|
17
|
+
import { ScalarButton, ScalarDropdown, ScalarDropdownDivider, ScalarDropdownItem, ScalarIcon } from "@scalar/components";
|
|
18
|
+
import { useToasts } from "@scalar/use-toasts";
|
|
19
|
+
import { executeHook } from "@scalar/oas-utils/helpers";
|
|
20
|
+
import { encode } from "js-base64";
|
|
21
|
+
import { isDefined as isDefined$1 } from "@scalar/helpers/array/is-defined";
|
|
22
|
+
import { httpStatusCodes as httpStatusCodes$1 } from "@scalar/helpers/http/http-status-codes";
|
|
23
|
+
import { redirectToProxy, shouldUseProxy } from "@scalar/helpers/url/redirect-to-proxy";
|
|
24
|
+
import MimeTypeParser from "whatwg-mimetype";
|
|
25
|
+
import { objectKeys } from "@scalar/helpers/object/object-keys";
|
|
26
|
+
import { replaceEnvVariables } from "@scalar/helpers/regex/replace-variables";
|
|
27
|
+
import { getResolvedRef } from "@scalar/workspace-store/helpers/get-resolved-ref";
|
|
28
|
+
import { xScalarCookieSchema } from "@scalar/workspace-store/schemas/extensions/general/x-scalar-cookies";
|
|
29
|
+
import { coerceValue } from "@scalar/workspace-store/schemas/typebox-coerce";
|
|
30
|
+
import { isObject } from "@scalar/helpers/object/is-object";
|
|
31
|
+
import { unpackProxyObject } from "@scalar/workspace-store/helpers/unpack-proxy";
|
|
32
|
+
import { AVAILABLE_CLIENTS, GROUPED_CLIENTS } from "@scalar/types/snippetz";
|
|
33
|
+
import { canMethodHaveBody as canMethodHaveBody$1 } from "@scalar/helpers/http/can-method-have-body";
|
|
34
|
+
//#region src/v2/blocks/operation-block/helpers/build-request-security.ts
|
|
35
|
+
/**
|
|
36
|
+
* Get the selected security schemes from security requirements.
|
|
37
|
+
* Takes security requirement objects and resolves them to actual security scheme objects.
|
|
38
|
+
*/
|
|
39
|
+
var getSecuritySchemes = (securitySchemes, selectedSecurity) => selectedSecurity.flatMap((scheme) => objectKeys(scheme).flatMap((key) => {
|
|
40
|
+
const scheme = getResolvedRef(securitySchemes?.[key]);
|
|
41
|
+
if (scheme) return scheme;
|
|
42
|
+
return [];
|
|
43
|
+
})) ?? [];
|
|
44
|
+
/**
|
|
45
|
+
* Generates the headers, cookies and query params for selected security schemes
|
|
46
|
+
* In the future we can add customization for where the security is applied
|
|
47
|
+
*/
|
|
48
|
+
var buildRequestSecurity = (selectedSecuritySchemes, env = {}, emptyTokenPlaceholder = "") => {
|
|
49
|
+
const headers = {};
|
|
50
|
+
const cookies = [];
|
|
51
|
+
const urlParams = new URLSearchParams();
|
|
52
|
+
selectedSecuritySchemes.forEach((scheme) => {
|
|
53
|
+
if (scheme.type === "apiKey") {
|
|
54
|
+
const name = replaceEnvVariables(scheme.name, env);
|
|
55
|
+
const value = replaceEnvVariables(scheme["x-scalar-secret-token"], env) || emptyTokenPlaceholder;
|
|
56
|
+
if (scheme.in === "header") headers[name] = value;
|
|
57
|
+
if (scheme.in === "query") urlParams.append(name, value);
|
|
58
|
+
if (scheme.in === "cookie") cookies.push(coerceValue(xScalarCookieSchema, {
|
|
59
|
+
name,
|
|
60
|
+
value,
|
|
61
|
+
path: "/"
|
|
62
|
+
}));
|
|
63
|
+
}
|
|
64
|
+
if (scheme.type === "http") if (scheme.scheme === "basic") {
|
|
65
|
+
const value = `${replaceEnvVariables(scheme["x-scalar-secret-username"], env)}:${replaceEnvVariables(scheme["x-scalar-secret-password"], env)}`;
|
|
66
|
+
headers["Authorization"] = `Basic ${value === ":" ? "username:password" : encode(value)}`;
|
|
67
|
+
} else headers["Authorization"] = `Bearer ${replaceEnvVariables(scheme["x-scalar-secret-token"], env) || emptyTokenPlaceholder}`;
|
|
68
|
+
if (scheme.type === "oauth2") headers["Authorization"] = `Bearer ${replaceEnvVariables(Object.values(scheme?.flows ?? {}).filter(isDefined$1).find((f) => f["x-scalar-secret-token"])?.["x-scalar-secret-token"] ?? "", env) || emptyTokenPlaceholder}`;
|
|
69
|
+
});
|
|
70
|
+
return {
|
|
71
|
+
headers,
|
|
72
|
+
cookies,
|
|
73
|
+
urlParams
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
//#endregion
|
|
77
|
+
//#region src/v2/blocks/operation-block/helpers/build-request-body.ts
|
|
78
|
+
/**
|
|
79
|
+
* Create the fetch request body
|
|
80
|
+
*/
|
|
81
|
+
var buildRequestBody = (requestBody, env = {}, exampleKey = "default") => {
|
|
82
|
+
if (!requestBody) return null;
|
|
83
|
+
/** Selected content type for the body from the dropdown, stored as x-scalar-selected-content-type */
|
|
84
|
+
const bodyContentType = getSelectedBodyContentType(requestBody, exampleKey);
|
|
85
|
+
if (!bodyContentType) return null;
|
|
86
|
+
/** An example value or generated example from the schema */
|
|
87
|
+
const example = getExampleFromBody(requestBody, bodyContentType, exampleKey);
|
|
88
|
+
if (!example) return null;
|
|
89
|
+
if ((bodyContentType === "multipart/form-data" || bodyContentType === "application/x-www-form-urlencoded") && Array.isArray(example.value)) {
|
|
90
|
+
const exampleValue = example.value.filter((item) => !item.isDisabled);
|
|
91
|
+
const form = bodyContentType === "multipart/form-data" ? new FormData() : new URLSearchParams();
|
|
92
|
+
exampleValue.forEach(({ name, value }) => {
|
|
93
|
+
if (!name) return;
|
|
94
|
+
const replacedName = replaceEnvVariables(name, env);
|
|
95
|
+
if (value instanceof File && form instanceof FormData) {
|
|
96
|
+
/**
|
|
97
|
+
* We need to unwrap the proxies to get the file name due to the
|
|
98
|
+
* "this" context in the proxy causing an illegal invocation error
|
|
99
|
+
*/
|
|
100
|
+
const unwrappedValue = unpackProxyObject(value);
|
|
101
|
+
form.append(replacedName, unwrappedValue, unwrappedValue.name);
|
|
102
|
+
} else if (typeof value === "string") form.append(replacedName, replaceEnvVariables(value, env));
|
|
103
|
+
});
|
|
104
|
+
return form;
|
|
105
|
+
}
|
|
106
|
+
if (bodyContentType === "application/x-www-form-urlencoded" && example.value !== null && typeof example.value === "object" && !Array.isArray(example.value)) {
|
|
107
|
+
const form = new URLSearchParams();
|
|
108
|
+
for (const [key, value] of Object.entries(example.value)) if (key && value !== void 0 && value !== null) {
|
|
109
|
+
const replacedKey = replaceEnvVariables(key, env);
|
|
110
|
+
const stringValue = typeof value === "string" ? value : String(value);
|
|
111
|
+
form.append(replacedKey, replaceEnvVariables(stringValue, env));
|
|
112
|
+
}
|
|
113
|
+
return form;
|
|
114
|
+
}
|
|
115
|
+
const exampleValue = example.value !== null && typeof example.value === "object" ? unpackProxyObject(example.value) : example.value;
|
|
116
|
+
if (exampleValue instanceof File) return exampleValue;
|
|
117
|
+
if (typeof exampleValue === "object") return replaceEnvVariables(JSON.stringify(exampleValue), env);
|
|
118
|
+
return typeof exampleValue === "string" ? replaceEnvVariables(exampleValue, env) : exampleValue;
|
|
119
|
+
};
|
|
120
|
+
//#endregion
|
|
121
|
+
//#region src/v2/blocks/operation-block/helpers/build-request-cookie-header.ts
|
|
122
|
+
var CUSTOM_COOKIE_HEADER_WARNING = "We're using a `X-Scalar-Cookie` custom header to the request. The proxy will forward this as a `Cookie` header. We do this to avoid the browser omitting the `Cookie` header for cross-origin requests for security reasons.";
|
|
123
|
+
var COOKIE_HEADER_WARNING = `We're trying to add a Cookie header, but browsers often omit them for cross-origin requests for various security reasons. If it's not working, that's probably why. Here are the requirements for it to work:
|
|
124
|
+
|
|
125
|
+
- The browser URL must be on the same domain as the server URL.
|
|
126
|
+
- The connection must be made over HTTPS.
|
|
127
|
+
`;
|
|
128
|
+
/**
|
|
129
|
+
* Generate a cookie header from the cookie params
|
|
130
|
+
*/
|
|
131
|
+
var getCookieHeader = (cookieParams, originalCookieHeader) => {
|
|
132
|
+
const cookieHeader = cookieParams.map((c) => `${c.name}=${c.value}`).join("; ");
|
|
133
|
+
if (originalCookieHeader && cookieHeader) return `${originalCookieHeader}; ${cookieHeader}`;
|
|
134
|
+
return originalCookieHeader || cookieHeader || "";
|
|
135
|
+
};
|
|
136
|
+
/**
|
|
137
|
+
* Build out the cookies header taking in global, param and security scheme cookies
|
|
138
|
+
*/
|
|
139
|
+
var buildRequestCookieHeader = ({ paramCookies, globalCookies, env, originalCookieHeader, url, useCustomCookieHeader, disabledGlobalCookies }) => {
|
|
140
|
+
/** Generate the cookie header */
|
|
141
|
+
const cookieHeader = getCookieHeader([...globalCookies.filter((cookie) => filterGlobalCookie({
|
|
142
|
+
cookie,
|
|
143
|
+
url,
|
|
144
|
+
disabledGlobalCookies
|
|
145
|
+
})).map((cookie) => {
|
|
146
|
+
return coerceValue(xScalarCookieSchema, {
|
|
147
|
+
...cookie,
|
|
148
|
+
name: replaceEnvVariables(cookie.name, env),
|
|
149
|
+
value: replaceEnvVariables(cookie.value, env)
|
|
150
|
+
});
|
|
151
|
+
}), ...paramCookies], originalCookieHeader ?? void 0);
|
|
152
|
+
if (cookieHeader) {
|
|
153
|
+
if (useCustomCookieHeader) {
|
|
154
|
+
console.warn(CUSTOM_COOKIE_HEADER_WARNING);
|
|
155
|
+
return {
|
|
156
|
+
name: "X-Scalar-Cookie",
|
|
157
|
+
value: cookieHeader
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
console.warn(COOKIE_HEADER_WARNING);
|
|
161
|
+
return {
|
|
162
|
+
name: "Cookie",
|
|
163
|
+
value: cookieHeader
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
return null;
|
|
167
|
+
};
|
|
168
|
+
//#endregion
|
|
169
|
+
//#region src/v2/blocks/operation-block/helpers/build-request-parameters.ts
|
|
170
|
+
/** Helper to get explode value with default */
|
|
171
|
+
var getExplode = (param, defaultValue) => "explode" in param && param.explode !== void 0 ? param.explode : defaultValue;
|
|
172
|
+
/**
|
|
173
|
+
* Converts the parameters into a set of headers, cookies and url params while
|
|
174
|
+
* replacing environment variables and extracting example values. Also builds up a record of the path
|
|
175
|
+
* parameters which can then be used to replace variables in the path.
|
|
176
|
+
* Also handles both content based and schema based parameters.
|
|
177
|
+
*
|
|
178
|
+
* @param parameters - Unfiltered parameters
|
|
179
|
+
* @param env - Environment variables flattened into a key-value object
|
|
180
|
+
* @param exampleKey - The key of the current example
|
|
181
|
+
* @returns A set of headers, cookies and url params
|
|
182
|
+
*/
|
|
183
|
+
var buildRequestParameters = (parameters = [], env = {}, exampleKey = "default") => {
|
|
184
|
+
const result = {
|
|
185
|
+
cookies: [],
|
|
186
|
+
headers: {},
|
|
187
|
+
pathVariables: {},
|
|
188
|
+
urlParams: new URLSearchParams()
|
|
189
|
+
};
|
|
190
|
+
if (parameters.length === 0) return result;
|
|
191
|
+
for (const referencedParam of parameters) {
|
|
192
|
+
const param = getResolvedRef(referencedParam);
|
|
193
|
+
const example = getExample(param, exampleKey, void 0);
|
|
194
|
+
if (!example || isParamDisabled(param, example)) continue;
|
|
195
|
+
/** De-serialize the example value if it is a string and matches the schema type */
|
|
196
|
+
const deSerializedValue = deSerializeParameter(typeof example.value === "string" ? replaceEnvVariables(example.value, env) : example.value, param);
|
|
197
|
+
const paramName = replaceEnvVariables(param.name, env);
|
|
198
|
+
switch (param.in) {
|
|
199
|
+
case "header": {
|
|
200
|
+
if (paramName.toLowerCase() === "content-type" && deSerializedValue === "multipart/form-data") break;
|
|
201
|
+
/** Headers only support simple style according to OpenAPI 3.1.1 */
|
|
202
|
+
const serialized = serializeSimpleStyle(deSerializedValue, getExplode(param, false));
|
|
203
|
+
if (!isDefined$1(serialized)) break;
|
|
204
|
+
/** Headers can only be strings so we can cast numbers etc */
|
|
205
|
+
const serializedString = String(serialized);
|
|
206
|
+
if (result.headers[paramName]) result.headers[paramName] = `${result.headers[paramName]},${serializedString}`;
|
|
207
|
+
else result.headers[paramName] = serializedString;
|
|
208
|
+
break;
|
|
209
|
+
}
|
|
210
|
+
case "path": {
|
|
211
|
+
const serialized = serializeSimpleStyle(deSerializedValue, getExplode(param, false));
|
|
212
|
+
result.pathVariables[paramName] = encodeURIComponent(String(serialized));
|
|
213
|
+
break;
|
|
214
|
+
}
|
|
215
|
+
case "query":
|
|
216
|
+
processQueryParameter(param, paramName, deSerializedValue, result.urlParams);
|
|
217
|
+
break;
|
|
218
|
+
case "cookie":
|
|
219
|
+
processCookieParameter(paramName, deSerializedValue, getExplode(param, true), result.cookies);
|
|
220
|
+
break;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
return result;
|
|
224
|
+
};
|
|
225
|
+
/** Ensure we only apply the correcet style to the correct types */
|
|
226
|
+
var getStyle = (param, replacedValue) => {
|
|
227
|
+
if (!("style" in param) || !param.style) return "form";
|
|
228
|
+
if (param.style === "deepObject") {
|
|
229
|
+
if (isObject(replacedValue)) return "deepObject";
|
|
230
|
+
return "form";
|
|
231
|
+
}
|
|
232
|
+
return param.style;
|
|
233
|
+
};
|
|
234
|
+
/**
|
|
235
|
+
* Helper function to process query parameters.
|
|
236
|
+
* Extracted to reduce complexity in main function.
|
|
237
|
+
*/
|
|
238
|
+
var processQueryParameter = (param, paramName, replacedValue, urlParams) => {
|
|
239
|
+
/** If the parameter should be exploded, defaults to true for form style */
|
|
240
|
+
const explodeParam = "explode" in param && param.explode !== void 0 ? param.explode : true;
|
|
241
|
+
/** Style of the parameter, defaults to form */
|
|
242
|
+
const style = getStyle(param, replacedValue);
|
|
243
|
+
if ("content" in param && param.content) {
|
|
244
|
+
const serializedValue = serializeContentValue(replacedValue, Object.keys(param.content)[0] ?? "application/json");
|
|
245
|
+
urlParams.set(paramName, serializedValue);
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
if (style === "deepObject" && explodeParam) {
|
|
249
|
+
const entries = serializeDeepObjectStyle(paramName, replacedValue);
|
|
250
|
+
for (const entry of entries) urlParams.append(entry.key, entry.value);
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
if (style === "spaceDelimited") {
|
|
254
|
+
const serialized = serializeSpaceDelimitedStyle(replacedValue);
|
|
255
|
+
const existingValue = urlParams.get(paramName);
|
|
256
|
+
urlParams.set(paramName, existingValue ? `${existingValue} ${serialized}` : serialized);
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
259
|
+
if (style === "pipeDelimited") {
|
|
260
|
+
const serialized = serializePipeDelimitedStyle(replacedValue);
|
|
261
|
+
const existingValue = urlParams.get(paramName);
|
|
262
|
+
urlParams.set(paramName, existingValue ? `${existingValue}|${serialized}` : serialized);
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
const serialized = serializeFormStyle(replacedValue, explodeParam);
|
|
266
|
+
if (Array.isArray(serialized)) for (const entry of serialized) {
|
|
267
|
+
const key = entry.key || paramName;
|
|
268
|
+
urlParams.append(key, String(entry.value));
|
|
269
|
+
}
|
|
270
|
+
else urlParams.append(paramName, String(serialized));
|
|
271
|
+
};
|
|
272
|
+
/**
|
|
273
|
+
* Helper function to process cookie parameters.
|
|
274
|
+
* Extracted to reduce complexity in main function.
|
|
275
|
+
*/
|
|
276
|
+
var processCookieParameter = (paramName, replacedValue, explode, cookies) => {
|
|
277
|
+
const serialized = serializeFormStyleForCookies(replacedValue, explode);
|
|
278
|
+
if (Array.isArray(serialized)) for (const entry of serialized) {
|
|
279
|
+
const key = entry.key || paramName;
|
|
280
|
+
cookies.push(coerceValue(xScalarCookieSchema, {
|
|
281
|
+
name: key,
|
|
282
|
+
value: String(entry.value),
|
|
283
|
+
path: "/"
|
|
284
|
+
}));
|
|
285
|
+
}
|
|
286
|
+
else cookies.push(coerceValue(xScalarCookieSchema, {
|
|
287
|
+
name: paramName,
|
|
288
|
+
value: String(serialized),
|
|
289
|
+
path: "/"
|
|
290
|
+
}));
|
|
291
|
+
};
|
|
292
|
+
//#endregion
|
|
293
|
+
//#region src/v2/blocks/operation-block/helpers/build-request.ts
|
|
294
|
+
/**
|
|
295
|
+
* Builds a fully configured Request object ready for execution.
|
|
296
|
+
*
|
|
297
|
+
* This function processes an OpenAPI operation and constructs a fetch-compatible
|
|
298
|
+
* Request by resolving environment variables, applying security schemes, building
|
|
299
|
+
* headers and cookies, handling proxy redirection, and preparing the request body.
|
|
300
|
+
*
|
|
301
|
+
* The function handles special cases like Electron environments and proxy usage
|
|
302
|
+
* where custom cookie headers are required.
|
|
303
|
+
*
|
|
304
|
+
* @returns A tuple containing either an error or the request object with an abort controller
|
|
305
|
+
*/
|
|
306
|
+
var buildRequest = ({ environment, exampleKey = "default", globalCookies, method, operation, path, proxyUrl, server, selectedSecuritySchemes }) => {
|
|
307
|
+
try {
|
|
308
|
+
const requestBody = getResolvedRef(operation.requestBody);
|
|
309
|
+
/** Flatten the environment variables array into a key-value object */
|
|
310
|
+
const env = getEnvironmentVariables(environment);
|
|
311
|
+
/** Build out the request parameters */
|
|
312
|
+
const params = buildRequestParameters(operation.parameters ?? [], env, exampleKey);
|
|
313
|
+
const security = buildRequestSecurity(selectedSecuritySchemes, env);
|
|
314
|
+
const defaultHeaders = getDefaultHeaders({
|
|
315
|
+
method,
|
|
316
|
+
operation,
|
|
317
|
+
exampleKey,
|
|
318
|
+
hideDisabledHeaders: true
|
|
319
|
+
}).filter((header) => !header.isOverridden).reduce((acc, header) => {
|
|
320
|
+
acc[header.name] = header.defaultValue;
|
|
321
|
+
return acc;
|
|
322
|
+
}, {});
|
|
323
|
+
const headers = new Headers({
|
|
324
|
+
...defaultHeaders,
|
|
325
|
+
...params.headers,
|
|
326
|
+
...security.headers
|
|
327
|
+
});
|
|
328
|
+
const urlParams = new URLSearchParams([...params.urlParams, ...security.urlParams]);
|
|
329
|
+
const body = canMethodHaveBody$1(method) ? buildRequestBody(requestBody, env, exampleKey) : null;
|
|
330
|
+
if (body && (body instanceof FormData || body instanceof URLSearchParams)) headers.delete("Content-Type");
|
|
331
|
+
/** Combine the server url, path and url params into a single url */
|
|
332
|
+
const url = getResolvedUrl({
|
|
333
|
+
environment,
|
|
334
|
+
server,
|
|
335
|
+
path,
|
|
336
|
+
pathVariables: params.pathVariables,
|
|
337
|
+
urlParams
|
|
338
|
+
});
|
|
339
|
+
if (!url) throw ERRORS.URL_EMPTY;
|
|
340
|
+
const isUsingProxy = shouldUseProxy(proxyUrl, url);
|
|
341
|
+
const proxiedUrl = redirectToProxy(proxyUrl, url);
|
|
342
|
+
const userAgentHeader = headers.get("User-Agent");
|
|
343
|
+
if (isElectron() && userAgentHeader) headers.set("X-Scalar-User-Agent", userAgentHeader);
|
|
344
|
+
/** Build out the cookies header */
|
|
345
|
+
const cookiesHeader = buildRequestCookieHeader({
|
|
346
|
+
paramCookies: [...params.cookies, ...security.cookies],
|
|
347
|
+
globalCookies,
|
|
348
|
+
env,
|
|
349
|
+
originalCookieHeader: headers.get("Cookie"),
|
|
350
|
+
url,
|
|
351
|
+
useCustomCookieHeader: isElectron() || isUsingProxy,
|
|
352
|
+
disabledGlobalCookies: operation["x-scalar-disable-parameters"]?.["global-cookies"]?.[exampleKey] ?? {}
|
|
353
|
+
});
|
|
354
|
+
if (cookiesHeader) headers.set(cookiesHeader.name, cookiesHeader.value);
|
|
355
|
+
/** Controller to allow aborting the request */
|
|
356
|
+
const controller = new AbortController();
|
|
357
|
+
const isSseAcceptHeader = headers.get("Accept")?.toLowerCase().includes("text/event-stream") ?? false;
|
|
358
|
+
const requestCacheMode = isSseAcceptHeader ? "no-store" : "default";
|
|
359
|
+
if (isSseAcceptHeader) {
|
|
360
|
+
headers.set("Cache-Control", "no-cache");
|
|
361
|
+
headers.set("Pragma", "no-cache");
|
|
362
|
+
}
|
|
363
|
+
return [null, {
|
|
364
|
+
controller,
|
|
365
|
+
isUsingProxy,
|
|
366
|
+
request: new Request(proxiedUrl, {
|
|
367
|
+
method: method.toUpperCase(),
|
|
368
|
+
headers,
|
|
369
|
+
signal: controller.signal,
|
|
370
|
+
body,
|
|
371
|
+
cache: requestCacheMode
|
|
372
|
+
})
|
|
373
|
+
}];
|
|
374
|
+
} catch (error) {
|
|
375
|
+
return [normalizeError(error, ERRORS.BUILDING_REQUEST_FAILED), null];
|
|
376
|
+
}
|
|
377
|
+
};
|
|
378
|
+
//#endregion
|
|
379
|
+
//#region src/v2/blocks/operation-block/helpers/har-to-fetch-request.ts
|
|
380
|
+
/**
|
|
381
|
+
* Converts a HAR (HTTP Archive) Request to a Fetch API Request object.
|
|
382
|
+
*
|
|
383
|
+
* This function is the reverse of fetchRequestToHar - it takes a HAR request
|
|
384
|
+
* and converts it into a standard JavaScript Fetch API Request object.
|
|
385
|
+
*
|
|
386
|
+
* The conversion handles:
|
|
387
|
+
* - Request method and URL reconstruction
|
|
388
|
+
* - Headers reconstruction from HAR headers array
|
|
389
|
+
* - Cookies conversion to Cookie header
|
|
390
|
+
* - Form data (params) conversion to FormData or URLSearchParams
|
|
391
|
+
* - Body decoding
|
|
392
|
+
* - Content-Type and other header restoration
|
|
393
|
+
* - Query parameters (already embedded in the URL)
|
|
394
|
+
*
|
|
395
|
+
* Use cases:
|
|
396
|
+
* - Replaying recorded HTTP requests
|
|
397
|
+
* - Creating mock requests from HAR files
|
|
398
|
+
* - Testing with fixtures
|
|
399
|
+
* - Request caching and restoration
|
|
400
|
+
* - Re-executing historical API calls
|
|
401
|
+
*
|
|
402
|
+
* Note: The Fetch API Request object does not support setting the HTTP version,
|
|
403
|
+
* so that information from the HAR is not preserved in the returned Request.
|
|
404
|
+
* Query parameters are expected to be already part of the URL in the HAR.
|
|
405
|
+
*
|
|
406
|
+
* @see https://w3c.github.io/web-performance/specs/HAR/Overview.html
|
|
407
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/Request
|
|
408
|
+
*
|
|
409
|
+
* @example
|
|
410
|
+
* const harRequest = { method: 'POST', url: 'https://api.example.com', ... }
|
|
411
|
+
* const request = harToFetchRequest({ harRequest })
|
|
412
|
+
* const response = await fetch(request)
|
|
413
|
+
*/
|
|
414
|
+
var harToFetchRequest = ({ harRequest }) => {
|
|
415
|
+
const headers = buildHeaders$1(harRequest);
|
|
416
|
+
const body = buildBody(harRequest.postData);
|
|
417
|
+
return new Request(harRequest.url, {
|
|
418
|
+
method: harRequest.method,
|
|
419
|
+
headers,
|
|
420
|
+
body
|
|
421
|
+
});
|
|
422
|
+
};
|
|
423
|
+
/**
|
|
424
|
+
* Builds Headers object from HAR request headers and cookies.
|
|
425
|
+
*/
|
|
426
|
+
var buildHeaders$1 = (harRequest) => {
|
|
427
|
+
const headers = new Headers();
|
|
428
|
+
harRequest.headers.forEach(({ name, value }) => {
|
|
429
|
+
headers.append(name, value);
|
|
430
|
+
});
|
|
431
|
+
if (harRequest.cookies?.length) {
|
|
432
|
+
const cookieString = harRequest.cookies.map(({ name, value }) => `${name}=${value}`).join("; ");
|
|
433
|
+
headers.append("Cookie", cookieString);
|
|
434
|
+
}
|
|
435
|
+
return headers;
|
|
436
|
+
};
|
|
437
|
+
/**
|
|
438
|
+
* Builds request body from HAR postData.
|
|
439
|
+
* Returns FormData for multipart forms, URLSearchParams for URL-encoded forms,
|
|
440
|
+
* or encoded text for other content types.
|
|
441
|
+
*/
|
|
442
|
+
var buildBody = (postData) => {
|
|
443
|
+
if (!postData) return null;
|
|
444
|
+
const { params, text, mimeType } = postData;
|
|
445
|
+
if (params?.length) {
|
|
446
|
+
const form = mimeType?.includes("multipart/form-data") ? new FormData() : new URLSearchParams();
|
|
447
|
+
params.forEach(({ name, value }) => {
|
|
448
|
+
form.append(name, value || "");
|
|
449
|
+
});
|
|
450
|
+
return form;
|
|
451
|
+
}
|
|
452
|
+
if (text) return new TextEncoder().encode(text);
|
|
453
|
+
return null;
|
|
454
|
+
};
|
|
455
|
+
//#endregion
|
|
456
|
+
//#region src/v2/blocks/operation-block/helpers/get-cookie-header-keys.ts
|
|
457
|
+
/**
|
|
458
|
+
* Safely extract cookie header keys from response headers.
|
|
459
|
+
* Modern browsers support getSetCookie() which returns an array of Set-Cookie values.
|
|
460
|
+
*
|
|
461
|
+
* Note: Set-Cookie headers are often hidden from JavaScript due to security restrictions.
|
|
462
|
+
* The browser's network tab may show Set-Cookie headers that are not accessible via the
|
|
463
|
+
* Fetch API Headers object. This is intentional browser behavior to prevent JavaScript
|
|
464
|
+
* from accessing HttpOnly cookies and other sensitive cookie data.
|
|
465
|
+
*
|
|
466
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/Headers/getSetCookie
|
|
467
|
+
*
|
|
468
|
+
* @param headers - The response headers object
|
|
469
|
+
* @returns Array of cookie header keys or empty array if not supported or restricted
|
|
470
|
+
*/
|
|
471
|
+
var getCookieHeaderKeys = (headers) => {
|
|
472
|
+
return "getSetCookie" in headers && typeof headers.getSetCookie === "function" ? headers.getSetCookie() : [];
|
|
473
|
+
};
|
|
474
|
+
//#endregion
|
|
475
|
+
//#region src/v2/blocks/operation-block/helpers/har-to-fetch-response.ts
|
|
476
|
+
/**
|
|
477
|
+
* Converts a HAR (HTTP Archive) Response back to a ResponseInstance object.
|
|
478
|
+
*
|
|
479
|
+
* This function is the reverse of fetchResponseToHar - it takes a HAR response
|
|
480
|
+
* and converts it back into a ResponseInstance object that includes both the
|
|
481
|
+
* standard Fetch API Response properties and additional metadata.
|
|
482
|
+
*
|
|
483
|
+
* The conversion handles:
|
|
484
|
+
* - Status code and status text restoration
|
|
485
|
+
* - Headers reconstruction from HAR headers array
|
|
486
|
+
* - Body decoding
|
|
487
|
+
* - Content-Type and other header restoration
|
|
488
|
+
* - URL property setting (if provided)
|
|
489
|
+
* - Cookie header detection
|
|
490
|
+
* - Duration tracking
|
|
491
|
+
* - Response size calculation in bytes
|
|
492
|
+
*
|
|
493
|
+
* Body Handling:
|
|
494
|
+
* - Plain text (no encoding): Text-based responses under 1MB from fetchResponseToHar
|
|
495
|
+
* - Base64 encoded: Binary or legacy data (note: new HAR files won't contain binary data)
|
|
496
|
+
* - Empty: Streaming responses, large responses (>1MB), or responses without bodies
|
|
497
|
+
*
|
|
498
|
+
* Use cases:
|
|
499
|
+
* - Replaying recorded HTTP responses
|
|
500
|
+
* - Creating mock responses from HAR files
|
|
501
|
+
* - Testing with fixtures
|
|
502
|
+
* - Response caching and restoration
|
|
503
|
+
*
|
|
504
|
+
* Note: The Fetch API Response object does not support setting the HTTP version,
|
|
505
|
+
* so that information from the HAR is not preserved in the returned Response.
|
|
506
|
+
* The URL property is set using Object.defineProperty since it is read-only
|
|
507
|
+
* in the standard Response constructor.
|
|
508
|
+
*
|
|
509
|
+
* @see https://w3c.github.io/web-performance/specs/HAR/Overview.html
|
|
510
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/Response
|
|
511
|
+
*
|
|
512
|
+
* @example
|
|
513
|
+
* const harResponse = { status: 200, statusText: 'OK', ... }
|
|
514
|
+
* const response = harToFetchResponse({
|
|
515
|
+
* harResponse,
|
|
516
|
+
* url: 'https://api.example.com',
|
|
517
|
+
* method: 'GET',
|
|
518
|
+
* path: '/users',
|
|
519
|
+
* duration: 250
|
|
520
|
+
* })
|
|
521
|
+
* console.log(response.url) // 'https://api.example.com'
|
|
522
|
+
* console.log(response.duration) // 250
|
|
523
|
+
*/
|
|
524
|
+
var harToFetchResponse = ({ harResponse, url = "", method, path, duration = 0 }) => {
|
|
525
|
+
const headers = buildHeaders(harResponse);
|
|
526
|
+
const { body, data, size } = processBody(harResponse);
|
|
527
|
+
const cookieHeaderKeys = getCookieHeaderKeys(headers);
|
|
528
|
+
return {
|
|
529
|
+
...new Response(body, {
|
|
530
|
+
status: harResponse.status,
|
|
531
|
+
statusText: harResponse.statusText,
|
|
532
|
+
headers
|
|
533
|
+
}),
|
|
534
|
+
headers: Object.fromEntries(headers.entries()),
|
|
535
|
+
cookieHeaderKeys,
|
|
536
|
+
duration,
|
|
537
|
+
status: harResponse.status,
|
|
538
|
+
statusText: harResponse.statusText,
|
|
539
|
+
method,
|
|
540
|
+
path,
|
|
541
|
+
data,
|
|
542
|
+
size,
|
|
543
|
+
url
|
|
544
|
+
};
|
|
545
|
+
};
|
|
546
|
+
/**
|
|
547
|
+
* Builds Headers object and record from HAR response headers.
|
|
548
|
+
*/
|
|
549
|
+
var buildHeaders = (harResponse) => {
|
|
550
|
+
const headers = new Headers();
|
|
551
|
+
harResponse.headers.forEach(({ name, value }) => {
|
|
552
|
+
headers.append(name, value);
|
|
553
|
+
});
|
|
554
|
+
return headers;
|
|
555
|
+
};
|
|
556
|
+
/**
|
|
557
|
+
* Processes HAR response body content.
|
|
558
|
+
* Returns body, data and size for ResponseInstance.
|
|
559
|
+
*/
|
|
560
|
+
var processBody = (harResponse) => {
|
|
561
|
+
if (!harResponse.content.text) return {
|
|
562
|
+
body: null,
|
|
563
|
+
data: "",
|
|
564
|
+
size: 0
|
|
565
|
+
};
|
|
566
|
+
const { text, encoding } = harResponse.content;
|
|
567
|
+
if (encoding) return {
|
|
568
|
+
body: null,
|
|
569
|
+
data: text,
|
|
570
|
+
size: text.length
|
|
571
|
+
};
|
|
572
|
+
const body = new TextEncoder().encode(text).buffer;
|
|
573
|
+
return {
|
|
574
|
+
body,
|
|
575
|
+
data: text,
|
|
576
|
+
size: body.byteLength
|
|
577
|
+
};
|
|
578
|
+
};
|
|
579
|
+
//#endregion
|
|
580
|
+
//#region src/v2/blocks/operation-block/helpers/response-cache.ts
|
|
581
|
+
/**
|
|
582
|
+
* In-memory cache of operation example id → { response, request }.
|
|
583
|
+
* Restores the last response when navigating back to an operation until
|
|
584
|
+
* the user refreshes the page or makes a new request.
|
|
585
|
+
*/
|
|
586
|
+
var responseCache = /* @__PURE__ */ new Map();
|
|
587
|
+
/**
|
|
588
|
+
* Constructs a unique cache key for a specific operation/example.
|
|
589
|
+
* The key is composed of the HTTP method, request path, and the example key,
|
|
590
|
+
* delimited by "|", e.g. "GET|/pets|123".
|
|
591
|
+
*
|
|
592
|
+
* @param method - HTTP method (e.g., "GET", "POST")
|
|
593
|
+
* @param path - The request path (e.g., "/pets")
|
|
594
|
+
* @param exampleKey - A unique key identifying the example/request variant
|
|
595
|
+
* @returns The constructed cache key string
|
|
596
|
+
*/
|
|
597
|
+
function getOperationExampleKey(method, path, exampleKey) {
|
|
598
|
+
return `${method}|${path}|${exampleKey}`;
|
|
599
|
+
}
|
|
600
|
+
/**
|
|
601
|
+
* Determines if a response is a streaming response (e.g., server-sent events).
|
|
602
|
+
* Assumes streaming responses include a 'reader' property.
|
|
603
|
+
*
|
|
604
|
+
* @param response - The response instance to check
|
|
605
|
+
* @returns True if response is streaming, otherwise false
|
|
606
|
+
*/
|
|
607
|
+
function isStreamingResponse(response) {
|
|
608
|
+
return "reader" in response;
|
|
609
|
+
}
|
|
610
|
+
//#endregion
|
|
611
|
+
//#region src/v2/blocks/operation-block/helpers/decode-buffer.ts
|
|
612
|
+
/**
|
|
613
|
+
* Decode the buffer according to its content-type
|
|
614
|
+
*
|
|
615
|
+
* @returns The decoded string or Blob
|
|
616
|
+
*/
|
|
617
|
+
var decodeBuffer = (buffer, contentType) => {
|
|
618
|
+
const mimeType = new MimeTypeParser(contentType);
|
|
619
|
+
if (isTextMediaType(mimeType.essence)) return new TextDecoder(mimeType.parameters.get("charset")).decode(buffer);
|
|
620
|
+
return new Blob([buffer], { type: mimeType.essence });
|
|
621
|
+
};
|
|
622
|
+
//#endregion
|
|
623
|
+
//#region src/v2/blocks/operation-block/helpers/send-request.ts
|
|
624
|
+
/** HTTP status codes that should not include a response body */
|
|
625
|
+
var NO_BODY_STATUS_CODES = [
|
|
626
|
+
204,
|
|
627
|
+
205,
|
|
628
|
+
304
|
|
629
|
+
];
|
|
630
|
+
/**
|
|
631
|
+
* Execute the built fetch request and return a structured response.
|
|
632
|
+
*
|
|
633
|
+
* This function handles the complete request lifecycle including plugin hooks,
|
|
634
|
+
* response processing, streaming detection, and error handling. It supports both
|
|
635
|
+
* standard responses and server-sent event streams.
|
|
636
|
+
*
|
|
637
|
+
* @param request - The request built by the buildRequest helper
|
|
638
|
+
* @param operation - The OpenAPI operation being executed
|
|
639
|
+
* @param plugins - Array of client plugins to execute hooks
|
|
640
|
+
* @param isUsingProxy - Whether the request is being proxied for header handling
|
|
641
|
+
* @returns A tuple with either an error or the response data
|
|
642
|
+
*/
|
|
643
|
+
var sendRequest = async ({ isUsingProxy, operation, request, plugins }) => {
|
|
644
|
+
try {
|
|
645
|
+
const { request: modifiedRequest } = await executeHook({ request }, "beforeRequest", plugins);
|
|
646
|
+
const startTime = Date.now();
|
|
647
|
+
const response = await fetch(modifiedRequest.clone());
|
|
648
|
+
const endTime = Date.now();
|
|
649
|
+
const duration = endTime - startTime;
|
|
650
|
+
const contentType = response.headers.get("content-type");
|
|
651
|
+
const responseHeaders = normalizeHeaders(response.headers, isUsingProxy);
|
|
652
|
+
const responseUrl = new URL(response.url);
|
|
653
|
+
const fullPath = responseUrl.pathname + responseUrl.search;
|
|
654
|
+
const statusText = response.statusText || httpStatusCodes$1[response.status]?.name || "";
|
|
655
|
+
const method = modifiedRequest.method;
|
|
656
|
+
const shouldSkipBody = NO_BODY_STATUS_CODES.includes(response.status);
|
|
657
|
+
/**
|
|
658
|
+
* Handle server-sent event streams separately.
|
|
659
|
+
* These responses need a reader instead of buffered data.
|
|
660
|
+
* We check this early to avoid unnecessary body reading.
|
|
661
|
+
*/
|
|
662
|
+
if (contentType?.startsWith("text/event-stream") && response.body) return buildStreamingResponse({
|
|
663
|
+
response,
|
|
664
|
+
modifiedRequest,
|
|
665
|
+
operation,
|
|
666
|
+
plugins,
|
|
667
|
+
endTime,
|
|
668
|
+
duration,
|
|
669
|
+
responseHeaders,
|
|
670
|
+
statusText,
|
|
671
|
+
method,
|
|
672
|
+
fullPath
|
|
673
|
+
});
|
|
674
|
+
return buildStandardResponse({
|
|
675
|
+
response,
|
|
676
|
+
modifiedRequest,
|
|
677
|
+
operation,
|
|
678
|
+
plugins,
|
|
679
|
+
endTime,
|
|
680
|
+
duration,
|
|
681
|
+
responseHeaders,
|
|
682
|
+
statusText,
|
|
683
|
+
method,
|
|
684
|
+
fullPath,
|
|
685
|
+
contentType,
|
|
686
|
+
shouldSkipBody
|
|
687
|
+
});
|
|
688
|
+
} catch (error) {
|
|
689
|
+
return [normalizeError(error, ERRORS.REQUEST_FAILED), null];
|
|
690
|
+
}
|
|
691
|
+
};
|
|
692
|
+
/**
|
|
693
|
+
* Build a streaming response for server-sent events.
|
|
694
|
+
* Streaming responses use a reader instead of buffering the entire body.
|
|
695
|
+
*/
|
|
696
|
+
var buildStreamingResponse = async ({ response, modifiedRequest, operation, plugins, endTime, duration, responseHeaders, statusText, method, fullPath }) => {
|
|
697
|
+
const normalizedResponse = new Response(null, {
|
|
698
|
+
status: response.status,
|
|
699
|
+
statusText,
|
|
700
|
+
headers: response.headers
|
|
701
|
+
});
|
|
702
|
+
await executeHook({
|
|
703
|
+
response: normalizedResponse,
|
|
704
|
+
request: modifiedRequest,
|
|
705
|
+
operation
|
|
706
|
+
}, "responseReceived", plugins);
|
|
707
|
+
const cookieHeaderKeys = getCookieHeaderKeys(normalizedResponse.headers);
|
|
708
|
+
return [null, {
|
|
709
|
+
timestamp: endTime,
|
|
710
|
+
request: modifiedRequest,
|
|
711
|
+
response: {
|
|
712
|
+
...normalizedResponse,
|
|
713
|
+
headers: responseHeaders,
|
|
714
|
+
cookieHeaderKeys,
|
|
715
|
+
reader: response.body.getReader(),
|
|
716
|
+
duration,
|
|
717
|
+
method,
|
|
718
|
+
path: fullPath
|
|
719
|
+
},
|
|
720
|
+
originalResponse: normalizedResponse.clone()
|
|
721
|
+
}];
|
|
722
|
+
};
|
|
723
|
+
/**
|
|
724
|
+
* Build a standard response with buffered body data.
|
|
725
|
+
* This handles all non-streaming responses including JSON, text, and binary data.
|
|
726
|
+
*/
|
|
727
|
+
var buildStandardResponse = async ({ response, modifiedRequest, operation, plugins, endTime, duration, responseHeaders, statusText, method, fullPath, contentType, shouldSkipBody }) => {
|
|
728
|
+
const arrayBuffer = await response.clone().arrayBuffer();
|
|
729
|
+
const responseData = decodeBuffer(arrayBuffer, contentType ?? "text/plain;charset=UTF-8");
|
|
730
|
+
/**
|
|
731
|
+
* Create a new Response using the arrayBuffer we already read.
|
|
732
|
+
* ArrayBuffers can be reused to create new Response objects without additional memory.
|
|
733
|
+
*/
|
|
734
|
+
const normalizedResponse = new Response(shouldSkipBody ? null : arrayBuffer, {
|
|
735
|
+
status: response.status,
|
|
736
|
+
statusText,
|
|
737
|
+
headers: response.headers
|
|
738
|
+
});
|
|
739
|
+
await executeHook({
|
|
740
|
+
response: normalizedResponse,
|
|
741
|
+
request: modifiedRequest,
|
|
742
|
+
operation
|
|
743
|
+
}, "responseReceived", plugins);
|
|
744
|
+
const cookieHeaderKeys = getCookieHeaderKeys(normalizedResponse.headers);
|
|
745
|
+
return [null, {
|
|
746
|
+
timestamp: endTime,
|
|
747
|
+
request: modifiedRequest,
|
|
748
|
+
response: {
|
|
749
|
+
...normalizedResponse,
|
|
750
|
+
headers: responseHeaders,
|
|
751
|
+
cookieHeaderKeys,
|
|
752
|
+
data: responseData,
|
|
753
|
+
size: arrayBuffer.byteLength,
|
|
754
|
+
duration,
|
|
755
|
+
method,
|
|
756
|
+
status: response.status,
|
|
757
|
+
path: fullPath
|
|
758
|
+
},
|
|
759
|
+
originalResponse: response.clone()
|
|
760
|
+
}];
|
|
761
|
+
};
|
|
762
|
+
//#endregion
|
|
763
|
+
//#region src/v2/blocks/operation-block/helpers/validate-path-parameters.ts
|
|
764
|
+
/** Treats undefined, null, and blank/whitespace strings as empty. */
|
|
765
|
+
var isEmptyParamValue = (value) => {
|
|
766
|
+
if (value === void 0 || value === null) return true;
|
|
767
|
+
if (typeof value === "string") return value.trim() === "";
|
|
768
|
+
return false;
|
|
769
|
+
};
|
|
770
|
+
/**
|
|
771
|
+
* Validates that all required path parameters have non-empty values.
|
|
772
|
+
*
|
|
773
|
+
* Path parameters are always required per the OpenAPI specification.
|
|
774
|
+
* Returns the names of any path parameters that are missing values.
|
|
775
|
+
*/
|
|
776
|
+
var validatePathParameters = (parameters = [], exampleKey = "default") => {
|
|
777
|
+
const invalidParams = [];
|
|
778
|
+
for (const referencedParam of parameters) {
|
|
779
|
+
const param = getResolvedRef(referencedParam);
|
|
780
|
+
if (param.in !== "path") continue;
|
|
781
|
+
const example = getExample(param, exampleKey, void 0);
|
|
782
|
+
if (isParamDisabled(param, example)) continue;
|
|
783
|
+
if (isEmptyParamValue(example?.value)) invalidParams.push(param.name);
|
|
784
|
+
}
|
|
785
|
+
return invalidParams.length > 0 ? {
|
|
786
|
+
ok: false,
|
|
787
|
+
invalidParams
|
|
788
|
+
} : { ok: true };
|
|
789
|
+
};
|
|
790
|
+
//#endregion
|
|
791
|
+
//#region src/v2/features/operation/helpers/combine-params.ts
|
|
792
|
+
/** Combine pathItem and operation parameters into a single, dereferenced parameter array */
|
|
793
|
+
var combineParams = (pathParams = [], operationParams = []) => {
|
|
794
|
+
const operationKeys = operationParams.flatMap((unresolvedParam) => {
|
|
795
|
+
const param = getResolvedRef(unresolvedParam);
|
|
796
|
+
if (!param) return [];
|
|
797
|
+
return `${param.in}:${param.name}`;
|
|
798
|
+
});
|
|
799
|
+
const operationSet = new Set(operationKeys);
|
|
800
|
+
return [...pathParams.filter((unresolvedParam) => {
|
|
801
|
+
const param = getResolvedRef(unresolvedParam);
|
|
802
|
+
if (!param) return false;
|
|
803
|
+
return !operationSet.has(`${param.in}:${param.name}`);
|
|
804
|
+
}), ...operationParams];
|
|
805
|
+
};
|
|
806
|
+
//#endregion
|
|
807
|
+
//#region src/v2/features/operation/helpers/get-security-requirements.ts
|
|
808
|
+
/**
|
|
809
|
+
* Compute what the security requirements should be for a request
|
|
810
|
+
*
|
|
811
|
+
* If an operation has only one optional security requirement,
|
|
812
|
+
* use the document security and ensure it includes an optional object.
|
|
813
|
+
*
|
|
814
|
+
* Otherwise we generally go operation -> document security.
|
|
815
|
+
*/
|
|
816
|
+
var getSecurityRequirements = (documentSecurity, operationSecurity) => {
|
|
817
|
+
if (JSON.stringify(operationSecurity) === "[{}]" && documentSecurity?.length) return Boolean(documentSecurity.find((s) => JSON.stringify(s) === "{}")) ? documentSecurity : [...documentSecurity, {}];
|
|
818
|
+
return operationSecurity ?? documentSecurity ?? [];
|
|
819
|
+
};
|
|
820
|
+
//#endregion
|
|
821
|
+
//#region src/v2/features/operation/helpers/get-selected-security.ts
|
|
822
|
+
/**
|
|
823
|
+
* Resolves which security selection to use for an operation.
|
|
824
|
+
* Priority: operation-level selection, then document-level selection, then a default.
|
|
825
|
+
* When neither level has a selection, returns the first security requirement unless
|
|
826
|
+
* authentication is optional or there are no requirements, in which case returns no selection.
|
|
827
|
+
*/
|
|
828
|
+
var getSelectedSecurity = (documentSelectedSecurity, operationSelectedSecurity, securityRequirements = []) => {
|
|
829
|
+
if (operationSelectedSecurity) return operationSelectedSecurity;
|
|
830
|
+
if (documentSelectedSecurity) return documentSelectedSecurity;
|
|
831
|
+
const isOptional = isAuthOptional(securityRequirements);
|
|
832
|
+
const firstRequirement = securityRequirements[0];
|
|
833
|
+
if (isOptional || !firstRequirement) return {
|
|
834
|
+
selectedIndex: -1,
|
|
835
|
+
selectedSchemes: []
|
|
836
|
+
};
|
|
837
|
+
return {
|
|
838
|
+
selectedIndex: 0,
|
|
839
|
+
selectedSchemes: [firstRequirement]
|
|
840
|
+
};
|
|
841
|
+
};
|
|
842
|
+
//#endregion
|
|
843
|
+
//#region src/v2/features/operation/helpers/get-selected-server.ts
|
|
844
|
+
/**
|
|
845
|
+
* Get the selected server from a list of servers and an optional selected-server URL.
|
|
846
|
+
* Works for both document-level and operation-level servers: the caller passes the
|
|
847
|
+
* appropriate selected URL (from document or operation).
|
|
848
|
+
*
|
|
849
|
+
* - If selectedServerUrl is undefined and servers has items, returns the first server
|
|
850
|
+
* (user has not selected yet).
|
|
851
|
+
* - If selectedServerUrl is '' (user un-selected), returns null.
|
|
852
|
+
* - Otherwise returns the server whose url matches selectedServerUrl, or null.
|
|
853
|
+
*/
|
|
854
|
+
var getSelectedServer = (servers, selectedServerUrl) => {
|
|
855
|
+
if (!servers?.length) return null;
|
|
856
|
+
if (selectedServerUrl === void 0) return servers[0];
|
|
857
|
+
if (selectedServerUrl === "") return null;
|
|
858
|
+
return servers.find(({ url }) => url === selectedServerUrl) ?? null;
|
|
859
|
+
};
|
|
860
|
+
//#endregion
|
|
861
|
+
//#region src/v2/features/modal/helpers/map-hidden-clients-config.ts
|
|
862
|
+
/**
|
|
863
|
+
* Map the old hiddenClients config to the new httpClients config.
|
|
864
|
+
* Filters out clients based on the configuration and returns the remaining clients.
|
|
865
|
+
*/
|
|
866
|
+
var mapHiddenClientsConfig = (hiddenClients) => {
|
|
867
|
+
if (hiddenClients === true) return [];
|
|
868
|
+
if (!hiddenClients || Array.isArray(hiddenClients) && hiddenClients.length === 0) return AVAILABLE_CLIENTS;
|
|
869
|
+
const visibleClientsSet = new Set(AVAILABLE_CLIENTS);
|
|
870
|
+
if (Array.isArray(hiddenClients)) for (const item of hiddenClients) {
|
|
871
|
+
const group = GROUPED_CLIENTS[item];
|
|
872
|
+
if (group) for (const client of group) visibleClientsSet.delete(`${item}/${client}`);
|
|
873
|
+
else if (item.includes("/")) visibleClientsSet.delete(item);
|
|
874
|
+
else for (const language of objectKeys(GROUPED_CLIENTS)) visibleClientsSet.delete(`${language}/${item}`);
|
|
875
|
+
}
|
|
876
|
+
else if (typeof hiddenClients === "object") {
|
|
877
|
+
for (const [targetId, clients] of Object.entries(hiddenClients)) if (clients === true) {
|
|
878
|
+
const group = GROUPED_CLIENTS[targetId];
|
|
879
|
+
if (group) for (const client of group) visibleClientsSet.delete(`${targetId}/${client}`);
|
|
880
|
+
} else if (Array.isArray(clients)) for (const client of clients) {
|
|
881
|
+
visibleClientsSet.delete(client);
|
|
882
|
+
visibleClientsSet.delete(`${targetId}/${client}`);
|
|
883
|
+
}
|
|
884
|
+
}
|
|
885
|
+
return Array.from(visibleClientsSet);
|
|
886
|
+
};
|
|
887
|
+
//#endregion
|
|
888
|
+
//#region src/v2/helpers/get-active-proxy-url.ts
|
|
889
|
+
/**
|
|
890
|
+
* Returns the default proxy URL for web layout.
|
|
891
|
+
* For the 'web' layout, this ensures requests use Scalar's hosted proxy unless overridden,
|
|
892
|
+
* which is important for browser environments with CORS or network restrictions.
|
|
893
|
+
* For 'desktop' or 'modal' layouts, returns null to indicate no proxy by default.
|
|
894
|
+
*/
|
|
895
|
+
var getDefaultProxyUrl = (layout) => {
|
|
896
|
+
if (layout === "web") return "https://proxy.scalar.com";
|
|
897
|
+
return null;
|
|
898
|
+
};
|
|
899
|
+
/**
|
|
900
|
+
* Returns the active proxy URL for the workspace.
|
|
901
|
+
*
|
|
902
|
+
* Logic:
|
|
903
|
+
* - If the active proxy url is not set, use the default proxy url.
|
|
904
|
+
* - Otherwise, use the active proxy url.
|
|
905
|
+
*/
|
|
906
|
+
var getActiveProxyUrl = (activeProxyUrl, layout) => {
|
|
907
|
+
if (activeProxyUrl === void 0) return getDefaultProxyUrl(layout);
|
|
908
|
+
return activeProxyUrl;
|
|
909
|
+
};
|
|
910
|
+
//#endregion
|
|
911
|
+
//#region src/v2/features/operation/Operation.vue?vue&type=script&setup=true&lang.ts
|
|
912
|
+
var _hoisted_1$3 = {
|
|
913
|
+
key: 1,
|
|
914
|
+
class: "flex h-full w-full items-center justify-center"
|
|
915
|
+
};
|
|
916
|
+
//#endregion
|
|
917
|
+
//#region src/v2/features/operation/Operation.vue
|
|
918
|
+
var Operation_default = /* @__PURE__ */ defineComponent({
|
|
919
|
+
__name: "Operation",
|
|
920
|
+
props: {
|
|
921
|
+
documentSlug: {},
|
|
922
|
+
document: {},
|
|
923
|
+
eventBus: {},
|
|
924
|
+
layout: {},
|
|
925
|
+
path: {},
|
|
926
|
+
method: {},
|
|
927
|
+
exampleName: {},
|
|
928
|
+
environment: {},
|
|
929
|
+
securitySchemes: {},
|
|
930
|
+
workspaceStore: {},
|
|
931
|
+
activeWorkspace: {},
|
|
932
|
+
plugins: {},
|
|
933
|
+
customThemes: {},
|
|
934
|
+
currentTheme: {},
|
|
935
|
+
isDarkMode: { type: Boolean },
|
|
936
|
+
fetchRegistryDocument: { type: Function },
|
|
937
|
+
options: {}
|
|
938
|
+
},
|
|
939
|
+
setup(__props) {
|
|
940
|
+
/** Grab the path item object from the document */
|
|
941
|
+
const pathItem = computed(() => {
|
|
942
|
+
if (!__props.path) return null;
|
|
943
|
+
return getResolvedRef(__props.document?.paths?.[__props.path]);
|
|
944
|
+
});
|
|
945
|
+
/** Find the operation and augment with any path parameters */
|
|
946
|
+
const operation = computed(() => {
|
|
947
|
+
if (!__props.path || !__props.method) return null;
|
|
948
|
+
const operation = getResolvedRef(__props.document?.paths?.[__props.path]?.[__props.method]);
|
|
949
|
+
if (!operation) return null;
|
|
950
|
+
if (!pathItem.value) return operation;
|
|
951
|
+
const parameters = combineParams(pathItem.value.parameters, operation.parameters);
|
|
952
|
+
return {
|
|
953
|
+
...operation,
|
|
954
|
+
parameters
|
|
955
|
+
};
|
|
956
|
+
});
|
|
957
|
+
/** Combine the workspace and document cookies */
|
|
958
|
+
const globalCookies = computed(() => [...(__props.workspaceStore.workspace?.["x-scalar-cookies"] ?? []).map((it) => ({
|
|
959
|
+
...it,
|
|
960
|
+
location: "workspace"
|
|
961
|
+
})), ...(__props.document?.["x-scalar-cookies"] ?? []).map((it) => ({
|
|
962
|
+
...it,
|
|
963
|
+
location: "document"
|
|
964
|
+
}))]);
|
|
965
|
+
/** Compute the servers for the operation */
|
|
966
|
+
const servers = computed(() => {
|
|
967
|
+
return getServers(toValue(__props.options)?.servers ?? operation.value?.servers ?? __props.document?.servers, {
|
|
968
|
+
baseServerUrl: toValue(__props.options)?.baseServerURL,
|
|
969
|
+
documentUrl: __props.document?.["x-scalar-original-source-url"]
|
|
970
|
+
});
|
|
971
|
+
});
|
|
972
|
+
/** Selected server URL from the same source as servers: operation, then document (config has no stored selection so use document selection) */
|
|
973
|
+
const selectedServerUrl = computed(() => {
|
|
974
|
+
if (toValue(__props.options)?.servers != null) return __props.document?.["x-scalar-selected-server"];
|
|
975
|
+
if (operation.value?.servers != null) return operation.value["x-scalar-selected-server"];
|
|
976
|
+
return __props.document?.["x-scalar-selected-server"];
|
|
977
|
+
});
|
|
978
|
+
/** Selected server for the operation (document-level or operation-level servers) */
|
|
979
|
+
const selectedServer = computed(() => getSelectedServer(servers.value, selectedServerUrl.value));
|
|
980
|
+
const serverMeta = computed(() => {
|
|
981
|
+
if (operation.value?.servers != null) return {
|
|
982
|
+
type: "operation",
|
|
983
|
+
path: __props.path ?? "",
|
|
984
|
+
method: __props.method ?? "get"
|
|
985
|
+
};
|
|
986
|
+
return { type: "document" };
|
|
987
|
+
});
|
|
988
|
+
const documentSelectedSecurity = computed(() => {
|
|
989
|
+
return __props.workspaceStore.auth.getAuthSelectedSchemas({
|
|
990
|
+
type: "document",
|
|
991
|
+
documentName: __props.documentSlug
|
|
992
|
+
});
|
|
993
|
+
});
|
|
994
|
+
const operationSelectedSecurity = computed(() => {
|
|
995
|
+
return __props.workspaceStore.auth.getAuthSelectedSchemas({
|
|
996
|
+
type: "operation",
|
|
997
|
+
documentName: __props.documentSlug,
|
|
998
|
+
path: __props.path ?? "",
|
|
999
|
+
method: __props.method ?? "get"
|
|
1000
|
+
});
|
|
1001
|
+
});
|
|
1002
|
+
/** Select document vs operation meta based on the extension */
|
|
1003
|
+
const authMeta = computed(() => {
|
|
1004
|
+
if (operationSelectedSecurity.value !== void 0) return {
|
|
1005
|
+
type: "operation",
|
|
1006
|
+
path: __props.path ?? "",
|
|
1007
|
+
method: __props.method ?? "get"
|
|
1008
|
+
};
|
|
1009
|
+
return { type: "document" };
|
|
1010
|
+
});
|
|
1011
|
+
/** Combine environments from document and workspace into a unique array of environment names */
|
|
1012
|
+
const environments = computed(() => {
|
|
1013
|
+
return Array.from(new Set(Object.keys({
|
|
1014
|
+
...__props.document?.["x-scalar-environments"],
|
|
1015
|
+
...__props.workspaceStore.workspace["x-scalar-environments"]
|
|
1016
|
+
})));
|
|
1017
|
+
});
|
|
1018
|
+
/** Temporarily use the old config.hiddenClients until we migrate to the new httpClients config */
|
|
1019
|
+
const httpClients = computed(() => mapHiddenClientsConfig(toValue(__props.options)?.hiddenClients));
|
|
1020
|
+
const APP_VERSION = "2.38.2";
|
|
1021
|
+
return (_ctx, _cache) => {
|
|
1022
|
+
return __props.path && __props.method && __props.exampleName && operation.value ? (openBlock(), createBlock(unref(OperationBlock_default), {
|
|
1023
|
+
key: 0,
|
|
1024
|
+
activeEnvironment: __props.workspaceStore.workspace["x-scalar-active-environment"],
|
|
1025
|
+
appVersion: unref(APP_VERSION),
|
|
1026
|
+
authMeta: authMeta.value,
|
|
1027
|
+
documentSecurity: __props.document?.security ?? [],
|
|
1028
|
+
documentSelectedSecurity: documentSelectedSecurity.value,
|
|
1029
|
+
documentUrl: __props.document?.["x-scalar-original-source-url"],
|
|
1030
|
+
environment: __props.environment,
|
|
1031
|
+
environments: environments.value,
|
|
1032
|
+
eventBus: __props.eventBus,
|
|
1033
|
+
exampleKey: __props.exampleName,
|
|
1034
|
+
globalCookies: globalCookies.value,
|
|
1035
|
+
hideClientButton: toValue(__props.options)?.hideClientButton ?? false,
|
|
1036
|
+
history: __props.workspaceStore.history.getHistory(__props.documentSlug, __props.path, __props.method),
|
|
1037
|
+
httpClients: httpClients.value,
|
|
1038
|
+
layout: __props.layout,
|
|
1039
|
+
method: __props.method,
|
|
1040
|
+
operation: operation.value,
|
|
1041
|
+
operationSelectedSecurity: operationSelectedSecurity.value,
|
|
1042
|
+
path: __props.path,
|
|
1043
|
+
plugins: __props.plugins,
|
|
1044
|
+
proxyUrl: unref(getActiveProxyUrl)(__props.workspaceStore.workspace["x-scalar-active-proxy"], __props.layout) ?? "",
|
|
1045
|
+
securitySchemes: __props.securitySchemes,
|
|
1046
|
+
selectedClient: __props.workspaceStore.workspace["x-scalar-default-client"],
|
|
1047
|
+
server: selectedServer.value,
|
|
1048
|
+
serverMeta: serverMeta.value,
|
|
1049
|
+
servers: servers.value
|
|
1050
|
+
}, null, 8, [
|
|
1051
|
+
"activeEnvironment",
|
|
1052
|
+
"appVersion",
|
|
1053
|
+
"authMeta",
|
|
1054
|
+
"documentSecurity",
|
|
1055
|
+
"documentSelectedSecurity",
|
|
1056
|
+
"documentUrl",
|
|
1057
|
+
"environment",
|
|
1058
|
+
"environments",
|
|
1059
|
+
"eventBus",
|
|
1060
|
+
"exampleKey",
|
|
1061
|
+
"globalCookies",
|
|
1062
|
+
"hideClientButton",
|
|
1063
|
+
"history",
|
|
1064
|
+
"httpClients",
|
|
1065
|
+
"layout",
|
|
1066
|
+
"method",
|
|
1067
|
+
"operation",
|
|
1068
|
+
"operationSelectedSecurity",
|
|
1069
|
+
"path",
|
|
1070
|
+
"plugins",
|
|
1071
|
+
"proxyUrl",
|
|
1072
|
+
"securitySchemes",
|
|
1073
|
+
"selectedClient",
|
|
1074
|
+
"server",
|
|
1075
|
+
"serverMeta",
|
|
1076
|
+
"servers"
|
|
1077
|
+
])) : (openBlock(), createElementBlock("div", _hoisted_1$3, [..._cache[0] || (_cache[0] = [createElementVNode("span", { class: "text-c-3" }, "Select an operation to view details", -1)])]));
|
|
1078
|
+
};
|
|
1079
|
+
}
|
|
1080
|
+
});
|
|
1081
|
+
//#endregion
|
|
1082
|
+
//#region src/v2/blocks/scalar-address-bar-block/components/EnvironmentSelector.vue?vue&type=script&setup=true&lang.ts
|
|
1083
|
+
var _hoisted_1$2 = { class: "relative flex items-center" };
|
|
1084
|
+
var _hoisted_2$2 = { class: "flex max-w-[220px] min-w-0 items-center gap-1.5" };
|
|
1085
|
+
var _hoisted_3 = { class: "text-xxs block max-w-[160px] min-w-0 truncate text-left font-medium" };
|
|
1086
|
+
var _hoisted_4 = { class: "min-w-0 flex-1 truncate" };
|
|
1087
|
+
var _hoisted_5 = { class: "bg-c-accent text-b-1 mt-0.5 flex h-4 w-4 shrink-0 items-center justify-center rounded-full p-[3px]" };
|
|
1088
|
+
var _hoisted_6 = { class: "min-w-0 flex-1 text-left" };
|
|
1089
|
+
var _hoisted_7 = { class: "block truncate" };
|
|
1090
|
+
var _hoisted_8 = { class: "flex h-4 w-4 items-center justify-center" };
|
|
1091
|
+
var _hoisted_9 = {
|
|
1092
|
+
key: 5,
|
|
1093
|
+
class: "text-c-3 px-2 py-1.5 text-xs"
|
|
1094
|
+
};
|
|
1095
|
+
//#endregion
|
|
1096
|
+
//#region src/v2/blocks/scalar-address-bar-block/components/EnvironmentSelector.vue
|
|
1097
|
+
var EnvironmentSelector_default = /* @__PURE__ */ defineComponent({
|
|
1098
|
+
__name: "EnvironmentSelector",
|
|
1099
|
+
props: {
|
|
1100
|
+
environments: { default: () => [] },
|
|
1101
|
+
activeEnvironment: {}
|
|
1102
|
+
},
|
|
1103
|
+
emits: ["select:environment", "add:environment"],
|
|
1104
|
+
setup(__props, { emit: __emit }) {
|
|
1105
|
+
const emit = __emit;
|
|
1106
|
+
/** Whether an environment is currently active */
|
|
1107
|
+
const hasActiveEnvironment = computed(() => !!__props.activeEnvironment);
|
|
1108
|
+
/** Whether environments exist */
|
|
1109
|
+
const hasEnvironments = computed(() => __props.environments.length > 0);
|
|
1110
|
+
/** Whether the currently selected environment exists in the dropdown options */
|
|
1111
|
+
const hasSelectedEnvironmentInOptions = computed(() => {
|
|
1112
|
+
if (!__props.activeEnvironment) return false;
|
|
1113
|
+
return __props.environments.includes(__props.activeEnvironment);
|
|
1114
|
+
});
|
|
1115
|
+
/** True when an environment is selected but unavailable in the current context */
|
|
1116
|
+
const hasMissingActiveEnvironment = computed(() => hasActiveEnvironment.value && !hasSelectedEnvironmentInOptions.value);
|
|
1117
|
+
/** Display text for the button */
|
|
1118
|
+
const displayText = computed(() => {
|
|
1119
|
+
if (hasMissingActiveEnvironment.value) return `${__props.activeEnvironment} (Unavailable)`;
|
|
1120
|
+
if (hasActiveEnvironment.value) return __props.activeEnvironment;
|
|
1121
|
+
if (!hasEnvironments.value) return "Add Environment";
|
|
1122
|
+
return "Select Environment";
|
|
1123
|
+
});
|
|
1124
|
+
/** Button styling based on state */
|
|
1125
|
+
const buttonClass = computed(() => {
|
|
1126
|
+
if (hasMissingActiveEnvironment.value) return "hover:bg-b-2 text-c-2 border-transparent";
|
|
1127
|
+
if (hasActiveEnvironment.value) return "bg-c-accent/10 text-c-accent hover:bg-c-accent/20 border-c-accent/30";
|
|
1128
|
+
if (!hasEnvironments.value) return "hover:bg-b-2 text-c-3 border-transparent";
|
|
1129
|
+
return "hover:bg-b-2 text-c-2 border-transparent";
|
|
1130
|
+
});
|
|
1131
|
+
const handleAddEnvironment = () => {
|
|
1132
|
+
emit("add:environment");
|
|
1133
|
+
};
|
|
1134
|
+
const handleSelectEnvironment = (environmentName) => {
|
|
1135
|
+
emit("select:environment", environmentName);
|
|
1136
|
+
};
|
|
1137
|
+
return (_ctx, _cache) => {
|
|
1138
|
+
return openBlock(), createElementBlock("div", _hoisted_1$2, [createVNode(unref(ScalarDropdown), null, {
|
|
1139
|
+
items: withCtx(() => [
|
|
1140
|
+
hasActiveEnvironment.value ? (openBlock(), createBlock(unref(ScalarDropdownItem), {
|
|
1141
|
+
key: 0,
|
|
1142
|
+
class: "group/item flex w-full items-center gap-1.5",
|
|
1143
|
+
onClick: _cache[0] || (_cache[0] = withModifiers(($event) => handleSelectEnvironment(""), ["stop"]))
|
|
1144
|
+
}, {
|
|
1145
|
+
default: withCtx(() => [createElementVNode("div", { class: normalizeClass(["flex h-4 w-4 items-center justify-center rounded-full p-[3px]", !__props.activeEnvironment ? "bg-c-accent text-b-1" : "shadow-border text-transparent"]) }, [createVNode(unref(ScalarIcon), {
|
|
1146
|
+
class: "size-2.5",
|
|
1147
|
+
icon: "Checkmark",
|
|
1148
|
+
thickness: "3"
|
|
1149
|
+
})], 2), _cache[1] || (_cache[1] = createElementVNode("span", { class: "text-c-2" }, "No Environment", -1))]),
|
|
1150
|
+
_: 1
|
|
1151
|
+
})) : createCommentVNode("", true),
|
|
1152
|
+
hasActiveEnvironment.value && hasEnvironments.value ? (openBlock(), createBlock(unref(ScalarDropdownDivider), { key: 1 })) : createCommentVNode("", true),
|
|
1153
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.environments, (environmentName) => {
|
|
1154
|
+
return openBlock(), createBlock(unref(ScalarDropdownItem), {
|
|
1155
|
+
key: environmentName,
|
|
1156
|
+
class: "group/item flex w-full min-w-0 items-center gap-1.5 overflow-hidden text-ellipsis whitespace-nowrap",
|
|
1157
|
+
onClick: withModifiers(($event) => handleSelectEnvironment(environmentName), ["stop"])
|
|
1158
|
+
}, {
|
|
1159
|
+
default: withCtx(() => [createElementVNode("div", { class: normalizeClass(["flex h-4 w-4 items-center justify-center rounded-full p-[3px]", __props.activeEnvironment === environmentName ? "bg-c-accent text-b-1" : "shadow-border text-transparent"]) }, [createVNode(unref(ScalarIcon), {
|
|
1160
|
+
class: "size-2.5",
|
|
1161
|
+
icon: "Checkmark",
|
|
1162
|
+
thickness: "3"
|
|
1163
|
+
})], 2), createElementVNode("span", _hoisted_4, toDisplayString(environmentName), 1)]),
|
|
1164
|
+
_: 2
|
|
1165
|
+
}, 1032, ["onClick"]);
|
|
1166
|
+
}), 128)),
|
|
1167
|
+
hasMissingActiveEnvironment.value ? (openBlock(), createBlock(unref(ScalarDropdownDivider), { key: 2 })) : createCommentVNode("", true),
|
|
1168
|
+
hasMissingActiveEnvironment.value ? (openBlock(), createBlock(unref(ScalarDropdownItem), {
|
|
1169
|
+
key: 3,
|
|
1170
|
+
class: "group/item flex h-auto w-full min-w-0 items-start gap-1.5 overflow-hidden",
|
|
1171
|
+
disabled: ""
|
|
1172
|
+
}, {
|
|
1173
|
+
default: withCtx(() => [createElementVNode("div", _hoisted_5, [createVNode(unref(ScalarIcon), {
|
|
1174
|
+
class: "size-2.5",
|
|
1175
|
+
icon: "Checkmark",
|
|
1176
|
+
thickness: "3"
|
|
1177
|
+
})]), createElementVNode("div", _hoisted_6, [createElementVNode("span", _hoisted_7, toDisplayString(__props.activeEnvironment), 1), _cache[2] || (_cache[2] = createElementVNode("span", { class: "text-c-3 block truncate text-xs" }, " Not available in this context ", -1))])]),
|
|
1178
|
+
_: 1
|
|
1179
|
+
})) : createCommentVNode("", true),
|
|
1180
|
+
hasEnvironments.value ? (openBlock(), createBlock(unref(ScalarDropdownDivider), { key: 4 })) : createCommentVNode("", true),
|
|
1181
|
+
createVNode(unref(ScalarDropdownItem), {
|
|
1182
|
+
class: "text-c-accent flex items-center gap-1.5",
|
|
1183
|
+
onClick: handleAddEnvironment
|
|
1184
|
+
}, {
|
|
1185
|
+
default: withCtx(() => [createElementVNode("div", _hoisted_8, [createVNode(unref(ScalarIcon), {
|
|
1186
|
+
icon: "Add",
|
|
1187
|
+
size: "sm"
|
|
1188
|
+
})]), createElementVNode("span", null, toDisplayString(hasEnvironments.value ? "New Environment" : "Create Environment"), 1)]),
|
|
1189
|
+
_: 1
|
|
1190
|
+
}),
|
|
1191
|
+
!hasEnvironments.value && !hasActiveEnvironment.value ? (openBlock(), createElementBlock("div", _hoisted_9, [..._cache[3] || (_cache[3] = [createElementVNode("p", { class: "mb-1" }, " Environments let you manage variables like API keys and base URLs across different contexts. ", -1)])])) : createCommentVNode("", true)
|
|
1192
|
+
]),
|
|
1193
|
+
default: withCtx(() => [createVNode(unref(ScalarButton), {
|
|
1194
|
+
"aria-label": `Current environment: ${displayText.value}`,
|
|
1195
|
+
class: normalizeClass(["line-clamp-1 h-full w-fit justify-start border px-2 py-1 font-normal transition-colors", buttonClass.value]),
|
|
1196
|
+
size: "sm",
|
|
1197
|
+
variant: "ghost"
|
|
1198
|
+
}, {
|
|
1199
|
+
default: withCtx(() => [createElementVNode("div", _hoisted_2$2, [
|
|
1200
|
+
createVNode(unref(ScalarIcon), {
|
|
1201
|
+
class: normalizeClass(["shrink-0", hasActiveEnvironment.value && !hasMissingActiveEnvironment.value ? "text-c-accent" : "text-c-3"]),
|
|
1202
|
+
icon: "Globe",
|
|
1203
|
+
size: "sm"
|
|
1204
|
+
}, null, 8, ["class"]),
|
|
1205
|
+
createElementVNode("span", _hoisted_3, toDisplayString(displayText.value), 1),
|
|
1206
|
+
createVNode(unref(ScalarIcon), {
|
|
1207
|
+
class: "shrink-0",
|
|
1208
|
+
icon: "ChevronDown",
|
|
1209
|
+
size: "xs"
|
|
1210
|
+
})
|
|
1211
|
+
])]),
|
|
1212
|
+
_: 1
|
|
1213
|
+
}, 8, ["aria-label", "class"])]),
|
|
1214
|
+
_: 1
|
|
1215
|
+
})]);
|
|
1216
|
+
};
|
|
1217
|
+
}
|
|
1218
|
+
});
|
|
1219
|
+
//#endregion
|
|
1220
|
+
//#region src/v2/blocks/operation-block/components/Header.vue?vue&type=script&setup=true&lang.ts
|
|
1221
|
+
var _hoisted_1$1 = { class: "lg:min-h-header t-app__top-container flex w-full flex-wrap items-center justify-center p-2 pt-2 lg:p-1 lg:pt-1" };
|
|
1222
|
+
var _hoisted_2$1 = { class: "mb-2 flex w-1/2 flex-row items-center justify-end gap-2 lg:mb-0 lg:flex-1 lg:px-2.5" };
|
|
1223
|
+
//#endregion
|
|
1224
|
+
//#region src/v2/blocks/operation-block/components/Header.vue
|
|
1225
|
+
var Header_default = /* @__PURE__ */ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
|
|
1226
|
+
__name: "Header",
|
|
1227
|
+
props: {
|
|
1228
|
+
path: {},
|
|
1229
|
+
method: {},
|
|
1230
|
+
layout: {},
|
|
1231
|
+
hideClientButton: {
|
|
1232
|
+
type: Boolean,
|
|
1233
|
+
default: false
|
|
1234
|
+
},
|
|
1235
|
+
integration: {},
|
|
1236
|
+
documentUrl: {},
|
|
1237
|
+
source: {},
|
|
1238
|
+
server: {},
|
|
1239
|
+
servers: {},
|
|
1240
|
+
history: {},
|
|
1241
|
+
eventBus: {},
|
|
1242
|
+
environments: {},
|
|
1243
|
+
activeEnvironment: {},
|
|
1244
|
+
environment: {},
|
|
1245
|
+
serverMeta: {}
|
|
1246
|
+
},
|
|
1247
|
+
emits: [
|
|
1248
|
+
"execute",
|
|
1249
|
+
"select:history:item",
|
|
1250
|
+
"add:environment"
|
|
1251
|
+
],
|
|
1252
|
+
setup(__props, { emit: __emit }) {
|
|
1253
|
+
const emit = __emit;
|
|
1254
|
+
const handleSelectEnvironment = (environmentName) => {
|
|
1255
|
+
__props.eventBus.emit("workspace:update:active-environment", environmentName);
|
|
1256
|
+
};
|
|
1257
|
+
const handleAddEnvironment = () => {
|
|
1258
|
+
__props.eventBus.emit("ui:navigate", {
|
|
1259
|
+
page: "document",
|
|
1260
|
+
path: "environment"
|
|
1261
|
+
});
|
|
1262
|
+
};
|
|
1263
|
+
return (_ctx, _cache) => {
|
|
1264
|
+
return openBlock(), createElementBlock("div", _hoisted_1$1, [
|
|
1265
|
+
_cache[7] || (_cache[7] = createElementVNode("div", { class: "mb-2 flex w-1/2 flex-row items-center gap-1 lg:mb-0 lg:flex-1 lg:px-1" }, [createElementVNode("div", { class: "size-8" })], -1)),
|
|
1266
|
+
createVNode(unref(AddressBar_default), {
|
|
1267
|
+
activeEnvironment: __props.activeEnvironment,
|
|
1268
|
+
environment: __props.environment,
|
|
1269
|
+
environments: __props.environments,
|
|
1270
|
+
eventBus: __props.eventBus,
|
|
1271
|
+
history: __props.history,
|
|
1272
|
+
layout: __props.layout,
|
|
1273
|
+
method: __props.method,
|
|
1274
|
+
path: __props.path,
|
|
1275
|
+
server: __props.server,
|
|
1276
|
+
serverMeta: __props.serverMeta,
|
|
1277
|
+
servers: __props.servers,
|
|
1278
|
+
"onAdd:environment": _cache[0] || (_cache[0] = ($event) => emit("add:environment")),
|
|
1279
|
+
onExecute: _cache[1] || (_cache[1] = ($event) => emit("execute")),
|
|
1280
|
+
"onSelect:history:item": _cache[2] || (_cache[2] = (payload) => emit("select:history:item", payload))
|
|
1281
|
+
}, null, 8, [
|
|
1282
|
+
"activeEnvironment",
|
|
1283
|
+
"environment",
|
|
1284
|
+
"environments",
|
|
1285
|
+
"eventBus",
|
|
1286
|
+
"history",
|
|
1287
|
+
"layout",
|
|
1288
|
+
"method",
|
|
1289
|
+
"path",
|
|
1290
|
+
"server",
|
|
1291
|
+
"serverMeta",
|
|
1292
|
+
"servers"
|
|
1293
|
+
]),
|
|
1294
|
+
createElementVNode("div", _hoisted_2$1, [
|
|
1295
|
+
__props.layout !== "modal" ? (openBlock(), createBlock(EnvironmentSelector_default, {
|
|
1296
|
+
key: 0,
|
|
1297
|
+
activeEnvironment: __props.activeEnvironment,
|
|
1298
|
+
environments: __props.environments,
|
|
1299
|
+
"onAdd:environment": handleAddEnvironment,
|
|
1300
|
+
"onSelect:environment": handleSelectEnvironment
|
|
1301
|
+
}, null, 8, ["activeEnvironment", "environments"])) : createCommentVNode("", true),
|
|
1302
|
+
__props.layout === "modal" && __props.documentUrl && !__props.hideClientButton ? (openBlock(), createBlock(unref(OpenApiClientButton_default), {
|
|
1303
|
+
key: 1,
|
|
1304
|
+
buttonSource: "modal",
|
|
1305
|
+
class: "!w-fit lg:-mr-1",
|
|
1306
|
+
integration: __props.integration ?? null,
|
|
1307
|
+
source: __props.source ?? "api-reference",
|
|
1308
|
+
url: __props.documentUrl
|
|
1309
|
+
}, null, 8, [
|
|
1310
|
+
"integration",
|
|
1311
|
+
"source",
|
|
1312
|
+
"url"
|
|
1313
|
+
])) : createCommentVNode("", true),
|
|
1314
|
+
__props.layout === "modal" && __props.source !== "gitbook" ? (openBlock(), createElementBlock("button", {
|
|
1315
|
+
key: 2,
|
|
1316
|
+
class: "app-exit-button zoomed:static zoomed:p-1 fixed top-2 right-2 rounded-full p-2",
|
|
1317
|
+
type: "button",
|
|
1318
|
+
onClick: _cache[3] || (_cache[3] = ($event) => __props.eventBus.emit("ui:close:client-modal"))
|
|
1319
|
+
}, [createVNode(unref(ScalarIcon), {
|
|
1320
|
+
icon: "Close",
|
|
1321
|
+
size: "lg",
|
|
1322
|
+
thickness: "2"
|
|
1323
|
+
}), _cache[5] || (_cache[5] = createElementVNode("span", { class: "sr-only" }, "Close Client", -1))])) : createCommentVNode("", true),
|
|
1324
|
+
__props.layout === "modal" && __props.source === "gitbook" ? (openBlock(), createElementBlock("button", {
|
|
1325
|
+
key: 3,
|
|
1326
|
+
class: "text-c-1 hover:bg-b-2 active:text-c-1 -mr-1.5 rounded p-2",
|
|
1327
|
+
type: "button",
|
|
1328
|
+
onClick: _cache[4] || (_cache[4] = ($event) => __props.eventBus.emit("ui:close:client-modal"))
|
|
1329
|
+
}, [createVNode(unref(ScalarIcon), {
|
|
1330
|
+
icon: "Close",
|
|
1331
|
+
size: "md",
|
|
1332
|
+
thickness: "1.75"
|
|
1333
|
+
}), _cache[6] || (_cache[6] = createElementVNode("span", { class: "sr-only" }, "Close Client", -1))])) : createCommentVNode("", true)
|
|
1334
|
+
])
|
|
1335
|
+
]);
|
|
1336
|
+
};
|
|
1337
|
+
}
|
|
1338
|
+
}), [["__scopeId", "data-v-0e03d0d8"]]);
|
|
1339
|
+
//#endregion
|
|
1340
|
+
//#region src/v2/blocks/operation-block/OperationBlock.vue?vue&type=script&setup=true&lang.ts
|
|
1341
|
+
var _hoisted_1 = { class: "bg-b-1 flex h-full flex-col" };
|
|
1342
|
+
var _hoisted_2 = { class: "lg:min-h-header flex w-full flex-wrap items-center justify-center p-2 lg:p-0" };
|
|
1343
|
+
//#endregion
|
|
1344
|
+
//#region src/v2/blocks/operation-block/OperationBlock.vue
|
|
1345
|
+
var OperationBlock_default = /* @__PURE__ */ defineComponent({
|
|
1346
|
+
name: "OperationBlock",
|
|
1347
|
+
props: {
|
|
1348
|
+
eventBus: {},
|
|
1349
|
+
documentSecurity: {},
|
|
1350
|
+
documentSelectedSecurity: {},
|
|
1351
|
+
appVersion: {},
|
|
1352
|
+
globalCookies: { default: () => [] },
|
|
1353
|
+
path: {},
|
|
1354
|
+
method: {},
|
|
1355
|
+
httpClients: { default: () => AVAILABLE_CLIENTS },
|
|
1356
|
+
history: { default: () => [] },
|
|
1357
|
+
layout: {},
|
|
1358
|
+
server: {},
|
|
1359
|
+
selectedClient: {},
|
|
1360
|
+
servers: {},
|
|
1361
|
+
serverMeta: {},
|
|
1362
|
+
hideClientButton: { type: Boolean },
|
|
1363
|
+
integration: {},
|
|
1364
|
+
documentUrl: {},
|
|
1365
|
+
source: {},
|
|
1366
|
+
operation: {},
|
|
1367
|
+
operationSelectedSecurity: {},
|
|
1368
|
+
exampleKey: {},
|
|
1369
|
+
authMeta: {},
|
|
1370
|
+
securitySchemes: {},
|
|
1371
|
+
plugins: { default: () => [] },
|
|
1372
|
+
environments: {},
|
|
1373
|
+
activeEnvironment: {},
|
|
1374
|
+
environment: {},
|
|
1375
|
+
proxyUrl: {}
|
|
1376
|
+
},
|
|
1377
|
+
setup(__props) {
|
|
1378
|
+
/** Hoist up client generation so it doesn't get re-generated on every operation */
|
|
1379
|
+
const clientOptions = computed(() => generateClientOptions(__props.httpClients));
|
|
1380
|
+
/** Compute what the security requirements should be for an operation */
|
|
1381
|
+
const securityRequirements = computed(() => getSecurityRequirements(__props.documentSecurity, __props.operation.security));
|
|
1382
|
+
/** The selected security for the operation or document */
|
|
1383
|
+
const selectedSecurity = computed(() => getSelectedSecurity(__props.documentSelectedSecurity, __props.operationSelectedSecurity, securityRequirements.value));
|
|
1384
|
+
/** The above selected requirements in scheme form */
|
|
1385
|
+
const selectedSecuritySchemes = computed(() => getSecuritySchemes(__props.securitySchemes, selectedSecurity.value.selectedSchemes));
|
|
1386
|
+
const { toast } = useToasts();
|
|
1387
|
+
const abortController = ref(null);
|
|
1388
|
+
const response = ref(null);
|
|
1389
|
+
const request = ref(null);
|
|
1390
|
+
/** Cancel the request */
|
|
1391
|
+
const cancelRequest = () => abortController.value?.abort(ERRORS.REQUEST_ABORTED);
|
|
1392
|
+
/** Execute the current operation example */
|
|
1393
|
+
const handleExecute = async () => {
|
|
1394
|
+
if (validatePathParameters(__props.operation.parameters ?? [], __props.exampleKey).ok === false) {
|
|
1395
|
+
toast("Path parameters must have values.", "error");
|
|
1396
|
+
return;
|
|
1397
|
+
}
|
|
1398
|
+
const [error, result] = buildRequest({
|
|
1399
|
+
environment: __props.environment,
|
|
1400
|
+
exampleKey: __props.exampleKey,
|
|
1401
|
+
globalCookies: __props.globalCookies,
|
|
1402
|
+
method: __props.method,
|
|
1403
|
+
operation: __props.operation,
|
|
1404
|
+
path: __props.path,
|
|
1405
|
+
selectedSecuritySchemes: selectedSecuritySchemes.value,
|
|
1406
|
+
server: __props.server,
|
|
1407
|
+
proxyUrl: __props.proxyUrl
|
|
1408
|
+
});
|
|
1409
|
+
if (error) {
|
|
1410
|
+
toast(error.message, "error");
|
|
1411
|
+
return;
|
|
1412
|
+
}
|
|
1413
|
+
abortController.value = result.controller;
|
|
1414
|
+
if (response.value && "reader" in response.value) response.value.reader.cancel();
|
|
1415
|
+
__props.eventBus.emit("hooks:on:request:sent", { meta: {
|
|
1416
|
+
method: __props.method,
|
|
1417
|
+
path: __props.path,
|
|
1418
|
+
exampleKey: __props.exampleKey
|
|
1419
|
+
} });
|
|
1420
|
+
/** Execute the request */
|
|
1421
|
+
const [sendError, sendResult] = await sendRequest({
|
|
1422
|
+
isUsingProxy: result.isUsingProxy,
|
|
1423
|
+
operation: __props.operation,
|
|
1424
|
+
plugins: __props.plugins,
|
|
1425
|
+
request: result.request
|
|
1426
|
+
});
|
|
1427
|
+
__props.eventBus.emit("hooks:on:request:complete", {
|
|
1428
|
+
payload: sendResult ? {
|
|
1429
|
+
response: sendResult.originalResponse,
|
|
1430
|
+
request: sendResult.request.clone(),
|
|
1431
|
+
duration: sendResult.response.duration,
|
|
1432
|
+
timestamp: sendResult.timestamp
|
|
1433
|
+
} : void 0,
|
|
1434
|
+
meta: {
|
|
1435
|
+
method: __props.method,
|
|
1436
|
+
path: __props.path,
|
|
1437
|
+
exampleKey: __props.exampleKey
|
|
1438
|
+
}
|
|
1439
|
+
});
|
|
1440
|
+
if (sendError) {
|
|
1441
|
+
toast(sendError.message, "error");
|
|
1442
|
+
return;
|
|
1443
|
+
}
|
|
1444
|
+
response.value = sendResult.response;
|
|
1445
|
+
request.value = sendResult.request;
|
|
1446
|
+
if (!isStreamingResponse(sendResult.response)) responseCache.set(getOperationExampleKey(__props.method, __props.path, __props.exampleKey), {
|
|
1447
|
+
response: sendResult.response,
|
|
1448
|
+
request: sendResult.request
|
|
1449
|
+
});
|
|
1450
|
+
};
|
|
1451
|
+
onMounted(() => {
|
|
1452
|
+
__props.eventBus.on("operation:send:request:hotkey", handleExecute);
|
|
1453
|
+
__props.eventBus.on("operation:cancel:request", cancelRequest);
|
|
1454
|
+
});
|
|
1455
|
+
onBeforeUnmount(() => {
|
|
1456
|
+
__props.eventBus.off("operation:send:request:hotkey", handleExecute);
|
|
1457
|
+
__props.eventBus.off("operation:cancel:request", cancelRequest);
|
|
1458
|
+
});
|
|
1459
|
+
const operationHistory = computed(() => __props.history.map((entry) => ({
|
|
1460
|
+
method: entry.request.method,
|
|
1461
|
+
path: entry.request.url,
|
|
1462
|
+
duration: entry.time,
|
|
1463
|
+
status: entry.response.status
|
|
1464
|
+
})).reverse());
|
|
1465
|
+
const handleSelectHistoryItem = ({ index }) => {
|
|
1466
|
+
const transformedIndex = (__props.history.length ?? 0) - index - 1;
|
|
1467
|
+
const historyItem = __props.history[transformedIndex];
|
|
1468
|
+
if (!historyItem) return;
|
|
1469
|
+
const navigate = () => __props.eventBus.emit("ui:navigate", {
|
|
1470
|
+
page: "example",
|
|
1471
|
+
method: __props.method,
|
|
1472
|
+
path: __props.path,
|
|
1473
|
+
exampleName: "draft",
|
|
1474
|
+
callback: (status) => {
|
|
1475
|
+
if (status !== "success") return;
|
|
1476
|
+
const fetchResponse = harToFetchResponse({
|
|
1477
|
+
harResponse: historyItem.response,
|
|
1478
|
+
url: historyItem.request.url,
|
|
1479
|
+
method: __props.method,
|
|
1480
|
+
path: __props.path,
|
|
1481
|
+
duration: historyItem.time
|
|
1482
|
+
});
|
|
1483
|
+
const fetchRequest = harToFetchRequest({ harRequest: historyItem.request });
|
|
1484
|
+
response.value = fetchResponse;
|
|
1485
|
+
request.value = fetchRequest;
|
|
1486
|
+
}
|
|
1487
|
+
});
|
|
1488
|
+
__props.eventBus.emit("operation:reload:history", {
|
|
1489
|
+
meta: {
|
|
1490
|
+
path: __props.path,
|
|
1491
|
+
method: __props.method
|
|
1492
|
+
},
|
|
1493
|
+
index: transformedIndex,
|
|
1494
|
+
callback: navigate
|
|
1495
|
+
});
|
|
1496
|
+
};
|
|
1497
|
+
/**
|
|
1498
|
+
* When the path, method, or example key changes: save current response to
|
|
1499
|
+
* cache (so it can be restored when navigating back), then restore from cache
|
|
1500
|
+
* for the new operation or clear if no cached response. Response is only
|
|
1501
|
+
* cleared on page refresh or when making a new request for that operation.
|
|
1502
|
+
*/
|
|
1503
|
+
watch([
|
|
1504
|
+
() => __props.path,
|
|
1505
|
+
() => __props.method,
|
|
1506
|
+
() => __props.exampleKey
|
|
1507
|
+
], ([newPath, newMethod, newExampleKey]) => {
|
|
1508
|
+
const newKey = getOperationExampleKey(newMethod, newPath, newExampleKey);
|
|
1509
|
+
const cached = responseCache.get(newKey);
|
|
1510
|
+
if (cached) {
|
|
1511
|
+
response.value = cached.response;
|
|
1512
|
+
request.value = cached.request;
|
|
1513
|
+
} else {
|
|
1514
|
+
response.value = null;
|
|
1515
|
+
request.value = null;
|
|
1516
|
+
}
|
|
1517
|
+
cancelRequest();
|
|
1518
|
+
}, { immediate: true });
|
|
1519
|
+
onBeforeUnmount(() => {
|
|
1520
|
+
cancelRequest();
|
|
1521
|
+
});
|
|
1522
|
+
return (_ctx, _cache) => {
|
|
1523
|
+
return openBlock(), createElementBlock("div", _hoisted_1, [createElementVNode("div", _hoisted_2, [createVNode(Header_default, {
|
|
1524
|
+
activeEnvironment: __props.activeEnvironment,
|
|
1525
|
+
documentUrl: __props.documentUrl,
|
|
1526
|
+
environment: __props.environment,
|
|
1527
|
+
environments: __props.environments,
|
|
1528
|
+
eventBus: __props.eventBus,
|
|
1529
|
+
hideClientButton: __props.hideClientButton,
|
|
1530
|
+
history: operationHistory.value,
|
|
1531
|
+
integration: __props.integration,
|
|
1532
|
+
layout: __props.layout,
|
|
1533
|
+
method: __props.method,
|
|
1534
|
+
path: __props.path,
|
|
1535
|
+
server: __props.server,
|
|
1536
|
+
serverMeta: __props.serverMeta,
|
|
1537
|
+
servers: __props.servers,
|
|
1538
|
+
source: __props.source,
|
|
1539
|
+
onExecute: handleExecute,
|
|
1540
|
+
"onSelect:history:item": handleSelectHistoryItem
|
|
1541
|
+
}, null, 8, [
|
|
1542
|
+
"activeEnvironment",
|
|
1543
|
+
"documentUrl",
|
|
1544
|
+
"environment",
|
|
1545
|
+
"environments",
|
|
1546
|
+
"eventBus",
|
|
1547
|
+
"hideClientButton",
|
|
1548
|
+
"history",
|
|
1549
|
+
"integration",
|
|
1550
|
+
"layout",
|
|
1551
|
+
"method",
|
|
1552
|
+
"path",
|
|
1553
|
+
"server",
|
|
1554
|
+
"serverMeta",
|
|
1555
|
+
"servers",
|
|
1556
|
+
"source"
|
|
1557
|
+
])]), createVNode(ViewLayout_default, { class: "border-t" }, {
|
|
1558
|
+
default: withCtx(() => [createVNode(ViewLayoutContent_default, { class: "flex-1" }, {
|
|
1559
|
+
default: withCtx(() => [createVNode(unref(RequestBlock_default), {
|
|
1560
|
+
authMeta: __props.authMeta,
|
|
1561
|
+
clientOptions: clientOptions.value,
|
|
1562
|
+
environment: __props.environment,
|
|
1563
|
+
eventBus: __props.eventBus,
|
|
1564
|
+
exampleKey: __props.exampleKey,
|
|
1565
|
+
globalCookies: __props.globalCookies,
|
|
1566
|
+
layout: __props.layout,
|
|
1567
|
+
method: __props.method,
|
|
1568
|
+
operation: __props.operation,
|
|
1569
|
+
path: __props.path,
|
|
1570
|
+
plugins: __props.plugins,
|
|
1571
|
+
proxyUrl: __props.proxyUrl,
|
|
1572
|
+
securityRequirements: securityRequirements.value,
|
|
1573
|
+
securitySchemes: __props.securitySchemes,
|
|
1574
|
+
selectedClient: __props.selectedClient,
|
|
1575
|
+
selectedSecurity: selectedSecurity.value,
|
|
1576
|
+
selectedSecuritySchemes: selectedSecuritySchemes.value,
|
|
1577
|
+
server: __props.server
|
|
1578
|
+
}, null, 8, [
|
|
1579
|
+
"authMeta",
|
|
1580
|
+
"clientOptions",
|
|
1581
|
+
"environment",
|
|
1582
|
+
"eventBus",
|
|
1583
|
+
"exampleKey",
|
|
1584
|
+
"globalCookies",
|
|
1585
|
+
"layout",
|
|
1586
|
+
"method",
|
|
1587
|
+
"operation",
|
|
1588
|
+
"path",
|
|
1589
|
+
"plugins",
|
|
1590
|
+
"proxyUrl",
|
|
1591
|
+
"securityRequirements",
|
|
1592
|
+
"securitySchemes",
|
|
1593
|
+
"selectedClient",
|
|
1594
|
+
"selectedSecurity",
|
|
1595
|
+
"selectedSecuritySchemes",
|
|
1596
|
+
"server"
|
|
1597
|
+
]), createVNode(unref(ResponseBlock_default), {
|
|
1598
|
+
appVersion: __props.appVersion,
|
|
1599
|
+
eventBus: __props.eventBus,
|
|
1600
|
+
layout: __props.layout,
|
|
1601
|
+
plugins: __props.plugins,
|
|
1602
|
+
request: request.value,
|
|
1603
|
+
response: response.value,
|
|
1604
|
+
totalPerformedRequests: operationHistory.value.length
|
|
1605
|
+
}, null, 8, [
|
|
1606
|
+
"appVersion",
|
|
1607
|
+
"eventBus",
|
|
1608
|
+
"layout",
|
|
1609
|
+
"plugins",
|
|
1610
|
+
"request",
|
|
1611
|
+
"response",
|
|
1612
|
+
"totalPerformedRequests"
|
|
1613
|
+
])]),
|
|
1614
|
+
_: 1
|
|
1615
|
+
})]),
|
|
1616
|
+
_: 1
|
|
1617
|
+
})]);
|
|
1618
|
+
};
|
|
1619
|
+
}
|
|
1620
|
+
});
|
|
1621
|
+
//#endregion
|
|
1622
|
+
export { getSelectedServer as a, combineParams as c, mapHiddenClientsConfig as i, buildRequestSecurity as l, Operation_default as n, getSelectedSecurity as o, getActiveProxyUrl as r, getSecurityRequirements as s, OperationBlock_default as t, getSecuritySchemes as u };
|
|
1623
|
+
|
|
1624
|
+
//# sourceMappingURL=operation-block-BnMIKAOh.js.map
|