@scalar/agent-chat 0.9.11 → 0.9.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (232) hide show
  1. package/dist/App.vue.d.ts +6 -6
  2. package/dist/App.vue.js +7 -0
  3. package/dist/App.vue.js.map +1 -0
  4. package/dist/App.vue.script.js +41 -0
  5. package/dist/App.vue.script.js.map +1 -0
  6. package/dist/Chat.vue.js +7 -0
  7. package/dist/Chat.vue.js.map +1 -0
  8. package/dist/Chat.vue.script.js +48 -0
  9. package/dist/Chat.vue.script.js.map +1 -0
  10. package/dist/_virtual/_plugin-vue_export-helper.js +8 -0
  11. package/dist/api.d.ts +8 -8
  12. package/dist/api.js +75 -0
  13. package/dist/api.js.map +1 -0
  14. package/dist/client-tools/execute-request.d.ts +7 -7
  15. package/dist/client-tools/execute-request.js +88 -0
  16. package/dist/client-tools/execute-request.js.map +1 -0
  17. package/dist/components/ActionsDropdown.vue.js +9 -0
  18. package/dist/components/ActionsDropdown.vue.js.map +1 -0
  19. package/dist/components/ActionsDropdown.vue.script.js +33 -0
  20. package/dist/components/ActionsDropdown.vue.script.js.map +1 -0
  21. package/dist/components/ApprovalSection.vue.js +9 -0
  22. package/dist/components/ApprovalSection.vue.js.map +1 -0
  23. package/dist/components/ApprovalSection.vue.script.js +26 -0
  24. package/dist/components/ApprovalSection.vue.script.js.map +1 -0
  25. package/dist/components/AuthenticationProvided.vue.js +13 -0
  26. package/dist/components/AuthenticationProvided.vue.js.map +1 -0
  27. package/dist/components/AuthenticationRequired.vue.js +13 -0
  28. package/dist/components/AuthenticationRequired.vue.js.map +1 -0
  29. package/dist/components/AutosendPaused.vue.js +13 -0
  30. package/dist/components/AutosendPaused.vue.js.map +1 -0
  31. package/dist/components/BuildingRequest.vue.js +19 -0
  32. package/dist/components/BuildingRequest.vue.js.map +1 -0
  33. package/dist/components/ContextItem.vue.js +9 -0
  34. package/dist/components/ContextItem.vue.js.map +1 -0
  35. package/dist/components/ContextItem.vue.script.js +13 -0
  36. package/dist/components/ContextItem.vue.script.js.map +1 -0
  37. package/dist/components/ErrorMessage.vue.d.ts +1 -1
  38. package/dist/components/ErrorMessage.vue.js +9 -0
  39. package/dist/components/ErrorMessage.vue.js.map +1 -0
  40. package/dist/components/ErrorMessage.vue.script.js +22 -0
  41. package/dist/components/ErrorMessage.vue.script.js.map +1 -0
  42. package/dist/components/FreeMessagesInfoSection.vue.js +9 -0
  43. package/dist/components/FreeMessagesInfoSection.vue.js.map +1 -0
  44. package/dist/components/FreeMessagesInfoSection.vue.script.js +43 -0
  45. package/dist/components/FreeMessagesInfoSection.vue.script.js.map +1 -0
  46. package/dist/components/LoadingMiniOpenAPIDoc.vue.js +13 -0
  47. package/dist/components/LoadingMiniOpenAPIDoc.vue.js.map +1 -0
  48. package/dist/components/LoadingOpenAPISpecsSummary.vue.js +13 -0
  49. package/dist/components/LoadingOpenAPISpecsSummary.vue.js.map +1 -0
  50. package/dist/components/Logo.vue.js +23 -0
  51. package/dist/components/Logo.vue.js.map +1 -0
  52. package/dist/components/PaymentSection.vue.js +9 -0
  53. package/dist/components/PaymentSection.vue.js.map +1 -0
  54. package/dist/components/PaymentSection.vue.script.js +22 -0
  55. package/dist/components/PaymentSection.vue.script.js.map +1 -0
  56. package/dist/components/RequestApproved.vue.js +13 -0
  57. package/dist/components/RequestApproved.vue.js.map +1 -0
  58. package/dist/components/RequestFailed.vue.js +19 -0
  59. package/dist/components/RequestFailed.vue.js.map +1 -0
  60. package/dist/components/RequestPreview.vue.d.ts +1 -1
  61. package/dist/components/RequestPreview.vue.js +9 -0
  62. package/dist/components/RequestPreview.vue.js.map +1 -0
  63. package/dist/components/RequestPreview.vue.script.js +96 -0
  64. package/dist/components/RequestPreview.vue.script.js.map +1 -0
  65. package/dist/components/RequestRejected.vue.js +19 -0
  66. package/dist/components/RequestRejected.vue.js.map +1 -0
  67. package/dist/components/RequestSuccess.vue.js +13 -0
  68. package/dist/components/RequestSuccess.vue.js.map +1 -0
  69. package/dist/components/ResponseBody/ResponseBody.vue.d.ts +1 -1
  70. package/dist/components/ResponseBody/ResponseBody.vue.js +7 -0
  71. package/dist/components/ResponseBody/ResponseBody.vue.js.map +1 -0
  72. package/dist/components/ResponseBody/ResponseBody.vue.script.js +43 -0
  73. package/dist/components/ResponseBody/ResponseBody.vue.script.js.map +1 -0
  74. package/dist/components/ResponseBody/ResponseBodyInfo.vue.js +12 -0
  75. package/dist/components/ResponseBody/ResponseBodyInfo.vue.js.map +1 -0
  76. package/dist/components/ResponseBody/ResponseBodyPreview.vue.d.ts +1 -1
  77. package/dist/components/ResponseBody/ResponseBodyPreview.vue.js +9 -0
  78. package/dist/components/ResponseBody/ResponseBodyPreview.vue.js.map +1 -0
  79. package/dist/components/ResponseBody/ResponseBodyPreview.vue.script.js +59 -0
  80. package/dist/components/ResponseBody/ResponseBodyPreview.vue.script.js.map +1 -0
  81. package/dist/components/ResponseBody/ResponseBodyRaw.vue.js +7 -0
  82. package/dist/components/ResponseBody/ResponseBodyRaw.vue.js.map +1 -0
  83. package/dist/components/ResponseBody/ResponseBodyRaw.vue.script.js +22 -0
  84. package/dist/components/ResponseBody/ResponseBodyRaw.vue.script.js.map +1 -0
  85. package/dist/components/ResponseBody/ResponseBodyToggle.vue.js +7 -0
  86. package/dist/components/ResponseBody/ResponseBodyToggle.vue.js.map +1 -0
  87. package/dist/components/ResponseBody/ResponseBodyToggle.vue.script.js +23 -0
  88. package/dist/components/ResponseBody/ResponseBodyToggle.vue.script.js.map +1 -0
  89. package/dist/components/ResponseBody/helpers/media-types.js +223 -0
  90. package/dist/components/ResponseBody/helpers/media-types.js.map +1 -0
  91. package/dist/components/ResponseBody/helpers/process-response-body.js +33 -0
  92. package/dist/components/ResponseBody/helpers/process-response-body.js.map +1 -0
  93. package/dist/components/SearchPopover.vue.js +9 -0
  94. package/dist/components/SearchPopover.vue.js.map +1 -0
  95. package/dist/components/SearchPopover.vue.script.js +53 -0
  96. package/dist/components/SearchPopover.vue.script.js.map +1 -0
  97. package/dist/components/Selector.vue.js +7 -0
  98. package/dist/components/Selector.vue.js.map +1 -0
  99. package/dist/components/Selector.vue.script.js +62 -0
  100. package/dist/components/Selector.vue.script.js.map +1 -0
  101. package/dist/components/SendingRequest.vue.js +19 -0
  102. package/dist/components/SendingRequest.vue.js.map +1 -0
  103. package/dist/components/ServerSelector.vue.js +7 -0
  104. package/dist/components/ServerSelector.vue.js.map +1 -0
  105. package/dist/components/ServerSelector.vue.script.js +60 -0
  106. package/dist/components/ServerSelector.vue.script.js.map +1 -0
  107. package/dist/components/UploadSection.vue.d.ts +1 -1
  108. package/dist/components/UploadSection.vue.js +9 -0
  109. package/dist/components/UploadSection.vue.js.map +1 -0
  110. package/dist/components/UploadSection.vue.script.js +52 -0
  111. package/dist/components/UploadSection.vue.script.js.map +1 -0
  112. package/dist/consts/urls.js +12 -0
  113. package/dist/consts/urls.js.map +1 -0
  114. package/dist/entities/error/constants.js +6 -0
  115. package/dist/entities/error/constants.js.map +1 -0
  116. package/dist/entities/error/helpers.d.ts +1 -1
  117. package/dist/entities/error/helpers.js +11 -0
  118. package/dist/entities/error/helpers.js.map +1 -0
  119. package/dist/entities/index.d.ts +9 -9
  120. package/dist/entities/index.js +10 -2
  121. package/dist/entities/prompt/constants.js +6 -0
  122. package/dist/entities/prompt/constants.js.map +1 -0
  123. package/dist/entities/registry/document.js +14 -0
  124. package/dist/entities/registry/document.js.map +1 -0
  125. package/dist/entities/tools/ask-for-authentication.js +7 -0
  126. package/dist/entities/tools/ask-for-authentication.js.map +1 -0
  127. package/dist/entities/tools/constants.js +6 -0
  128. package/dist/entities/tools/constants.js.map +1 -0
  129. package/dist/entities/tools/execute-request.d.ts +1 -1
  130. package/dist/entities/tools/execute-request.js +13 -0
  131. package/dist/entities/tools/execute-request.js.map +1 -0
  132. package/dist/entities/tools/get-mini-openapi-spec.js +7 -0
  133. package/dist/entities/tools/get-mini-openapi-spec.js.map +1 -0
  134. package/dist/entities/tools/get-openapi-spec-summary.js +6 -0
  135. package/dist/entities/tools/get-openapi-spec-summary.js.map +1 -0
  136. package/dist/helpers.js +42 -0
  137. package/dist/helpers.js.map +1 -0
  138. package/dist/hooks/use-agent-key-documents.js +24 -0
  139. package/dist/hooks/use-agent-key-documents.js.map +1 -0
  140. package/dist/hooks/use-chat-approvals.d.ts +1 -1
  141. package/dist/hooks/use-chat-approvals.js +38 -0
  142. package/dist/hooks/use-chat-approvals.js.map +1 -0
  143. package/dist/hooks/use-chat-error.js +25 -0
  144. package/dist/hooks/use-chat-error.js.map +1 -0
  145. package/dist/hooks/use-chat-pending-client-tool-parts.js +14 -0
  146. package/dist/hooks/use-chat-pending-client-tool-parts.js.map +1 -0
  147. package/dist/hooks/use-chat-scroll.js +17 -0
  148. package/dist/hooks/use-chat-scroll.js.map +1 -0
  149. package/dist/hooks/use-curated-documents.js +14 -0
  150. package/dist/hooks/use-curated-documents.js.map +1 -0
  151. package/dist/hooks/use-search.d.ts +1 -1
  152. package/dist/hooks/use-search.js +23 -0
  153. package/dist/hooks/use-search.js.map +1 -0
  154. package/dist/hooks/use-signup-link.js +17 -0
  155. package/dist/hooks/use-signup-link.js.map +1 -0
  156. package/dist/hooks/use-term-and-conditions.js +20 -0
  157. package/dist/hooks/use-term-and-conditions.js.map +1 -0
  158. package/dist/hooks/use-upload-tmp-document.js +92 -0
  159. package/dist/hooks/use-upload-tmp-document.js.map +1 -0
  160. package/dist/index.d.ts +2 -2
  161. package/dist/index.js +2 -2065
  162. package/dist/package.json +2 -2
  163. package/dist/plugins/persistance.js +16 -0
  164. package/dist/plugins/persistance.js.map +1 -0
  165. package/dist/registry/add-documents-to-store.d.ts +5 -5
  166. package/dist/registry/add-documents-to-store.js +36 -0
  167. package/dist/registry/add-documents-to-store.js.map +1 -0
  168. package/dist/registry/create-document-name.js +8 -0
  169. package/dist/registry/create-document-name.js.map +1 -0
  170. package/dist/state/state.d.ts +7 -7
  171. package/dist/state/state.js +154 -0
  172. package/dist/state/state.js.map +1 -0
  173. package/dist/views/Catalog/Catalog.vue.js +10 -0
  174. package/dist/views/Catalog/Catalog.vue.js.map +1 -0
  175. package/dist/views/Catalog/Catalog.vue.script.js +50 -0
  176. package/dist/views/Catalog/Catalog.vue.script.js.map +1 -0
  177. package/dist/views/Chat/Chat.vue.js +9 -0
  178. package/dist/views/Chat/Chat.vue.js.map +1 -0
  179. package/dist/views/Chat/Chat.vue.script.js +55 -0
  180. package/dist/views/Chat/Chat.vue.script.js.map +1 -0
  181. package/dist/views/Chat/Messages/AskForAuthentication.vue.d.ts +2 -2
  182. package/dist/views/Chat/Messages/AskForAuthentication.vue.js +9 -0
  183. package/dist/views/Chat/Messages/AskForAuthentication.vue.js.map +1 -0
  184. package/dist/views/Chat/Messages/AskForAuthentication.vue.script.js +72 -0
  185. package/dist/views/Chat/Messages/AskForAuthentication.vue.script.js.map +1 -0
  186. package/dist/views/Chat/Messages/ExecuteRequestTool.vue.d.ts +2 -2
  187. package/dist/views/Chat/Messages/ExecuteRequestTool.vue.js +9 -0
  188. package/dist/views/Chat/Messages/ExecuteRequestTool.vue.js.map +1 -0
  189. package/dist/views/Chat/Messages/ExecuteRequestTool.vue.script.js +26 -0
  190. package/dist/views/Chat/Messages/ExecuteRequestTool.vue.script.js.map +1 -0
  191. package/dist/views/Chat/Messages/GetMiniOpenAPIDocTool.vue.d.ts +2 -2
  192. package/dist/views/Chat/Messages/GetMiniOpenAPIDocTool.vue.js +9 -0
  193. package/dist/views/Chat/Messages/GetMiniOpenAPIDocTool.vue.js.map +1 -0
  194. package/dist/views/Chat/Messages/GetMiniOpenAPIDocTool.vue.script.js +39 -0
  195. package/dist/views/Chat/Messages/GetMiniOpenAPIDocTool.vue.script.js.map +1 -0
  196. package/dist/views/Chat/Messages/GetOpenAPISpecsSummary.vue.d.ts +2 -2
  197. package/dist/views/Chat/Messages/GetOpenAPISpecsSummary.vue.js +7 -0
  198. package/dist/views/Chat/Messages/GetOpenAPISpecsSummary.vue.js.map +1 -0
  199. package/dist/views/Chat/Messages/GetOpenAPISpecsSummary.vue.script.js +21 -0
  200. package/dist/views/Chat/Messages/GetOpenAPISpecsSummary.vue.script.js.map +1 -0
  201. package/dist/views/Chat/Messages/Text.vue.js +7 -0
  202. package/dist/views/Chat/Messages/Text.vue.js.map +1 -0
  203. package/dist/views/Chat/Messages/Text.vue.script.js +14 -0
  204. package/dist/views/Chat/Messages/Text.vue.script.js.map +1 -0
  205. package/dist/views/Layout.vue.js +9 -0
  206. package/dist/views/Layout.vue.js.map +1 -0
  207. package/dist/views/Layout.vue.script.js +25 -0
  208. package/dist/views/Layout.vue.script.js.map +1 -0
  209. package/dist/views/PromptForm.vue.js +9 -0
  210. package/dist/views/PromptForm.vue.js.map +1 -0
  211. package/dist/views/PromptForm.vue.script.js +202 -0
  212. package/dist/views/PromptForm.vue.script.js.map +1 -0
  213. package/dist/views/Settings/Auth.vue.js +7 -0
  214. package/dist/views/Settings/Auth.vue.js.map +1 -0
  215. package/dist/views/Settings/Auth.vue.script.js +63 -0
  216. package/dist/views/Settings/Auth.vue.script.js.map +1 -0
  217. package/dist/views/Settings/DocSettings.vue.js +9 -0
  218. package/dist/views/Settings/DocSettings.vue.js.map +1 -0
  219. package/dist/views/Settings/DocSettings.vue.script.js +48 -0
  220. package/dist/views/Settings/DocSettings.vue.script.js.map +1 -0
  221. package/dist/views/Settings/Settings.vue.js +10 -0
  222. package/dist/views/Settings/Settings.vue.js.map +1 -0
  223. package/dist/views/Settings/Settings.vue.script.js +59 -0
  224. package/dist/views/Settings/Settings.vue.script.js.map +1 -0
  225. package/dist/views/Start.vue.js +9 -0
  226. package/dist/views/Start.vue.js.map +1 -0
  227. package/dist/views/Start.vue.script.js +41 -0
  228. package/dist/views/Start.vue.script.js.map +1 -0
  229. package/package.json +9 -9
  230. package/dist/entities-NWeuOkBB.js +0 -28
  231. package/dist/entities-NWeuOkBB.js.map +0 -1
  232. package/dist/index.js.map +0 -1
@@ -0,0 +1,33 @@
1
+ import e from "whatwg-mimetype";
2
+ //#region src/components/ResponseBody/helpers/process-response-body.ts
3
+ var t = (e) => {
4
+ try {
5
+ return decodeURIComponent(e);
6
+ } catch {
7
+ return e;
8
+ }
9
+ };
10
+ function n(e) {
11
+ let n = "";
12
+ if (e) {
13
+ let r = e.match(/filename\*=UTF-8''([^;]+)/)?.[1] ?? e.match(/filename\s*=\s*"?([^";]+)"?/)?.[1];
14
+ r && (n = t(r.trim()));
15
+ }
16
+ return n;
17
+ }
18
+ var r = (e) => e instanceof Blob, i = (e) => e ? Object.keys(e).map((t) => ({
19
+ name: t,
20
+ value: e[t] ?? ""
21
+ })) : [];
22
+ function a({ data: t, headers: a }) {
23
+ let o = i(a), s = o.find((e) => e.name.toLowerCase() === "content-type"), c = s?.value ? new e(s.value) : void 0;
24
+ return {
25
+ mimeType: c,
26
+ attachmentFilename: n(o.find((e) => e.name.toLowerCase() === "content-disposition")?.value ?? ""),
27
+ dataUrl: r(t) ? URL.createObjectURL(t) : typeof t == "string" ? URL.createObjectURL(new Blob([t], { type: c ? c.toString() : void 0 })) : t instanceof Object && Object.keys(t).length ? URL.createObjectURL(new Blob([JSON.stringify(t)], { type: c ? c.toString() : void 0 })) : ""
28
+ };
29
+ }
30
+ //#endregion
31
+ export { a as processResponseBody };
32
+
33
+ //# sourceMappingURL=process-response-body.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-response-body.js","names":[],"sources":["../../../../src/components/ResponseBody/helpers/process-response-body.ts"],"sourcesContent":["import MimeType from 'whatwg-mimetype'\n\nconst decodeURIComponentSafe = (str: string) => {\n try {\n return decodeURIComponent(str)\n } catch {\n return str\n }\n}\n\nfunction extractFilename(contentDisposition: string) {\n let filename = ''\n\n if (contentDisposition) {\n const fileNameMatch =\n contentDisposition.match(/filename\\*=UTF-8''([^;]+)/)?.[1] ??\n contentDisposition.match(/filename\\s*=\\s*\"?([^\";]+)\"?/)?.[1]\n\n if (fileNameMatch) {\n filename = decodeURIComponentSafe(fileNameMatch.trim())\n }\n }\n\n return filename\n}\n\nconst isBlob = (b: any): b is Blob => b instanceof Blob\n\nconst getResponseHeaders = (headers?: Record<string, string>) => {\n return headers\n ? Object.keys(headers).map((key) => ({\n name: key,\n value: headers[key] ?? '',\n }))\n : []\n}\n\nexport function processResponseBody({ data, headers }: { data: unknown; headers?: Record<string, string> }) {\n const responseHeaders = getResponseHeaders(headers)\n\n const contentType = responseHeaders.find((header) => header.name.toLowerCase() === 'content-type')\n const mimeType = contentType?.value ? new MimeType(contentType.value) : undefined\n const attachmentFilename = extractFilename(\n responseHeaders.find((header) => header.name.toLowerCase() === 'content-disposition')?.value ?? '',\n )\n\n const dataUrl = (() => {\n if (isBlob(data)) {\n return URL.createObjectURL(data)\n }\n if (typeof data === 'string') {\n return URL.createObjectURL(new Blob([data], { type: mimeType ? mimeType.toString() : undefined }))\n }\n if (data instanceof Object && Object.keys(data).length) {\n return URL.createObjectURL(\n new Blob([JSON.stringify(data)], {\n type: mimeType ? mimeType.toString() : undefined,\n }),\n )\n }\n return ''\n })()\n\n return { mimeType, attachmentFilename, dataUrl }\n}\n"],"mappings":";;AAEA,IAAM,KAA0B,MAAgB;AAC9C,KAAI;AACF,SAAO,mBAAmB,EAAI;SACxB;AACN,SAAO;;;AAIX,SAAS,EAAgB,GAA4B;CACnD,IAAI,IAAW;AAEf,KAAI,GAAoB;EACtB,IAAM,IACJ,EAAmB,MAAM,4BAA4B,GAAG,MACxD,EAAmB,MAAM,8BAA8B,GAAG;AAE5D,EAAI,MACF,IAAW,EAAuB,EAAc,MAAM,CAAC;;AAI3D,QAAO;;AAGT,IAAM,KAAU,MAAsB,aAAa,MAE7C,KAAsB,MACnB,IACH,OAAO,KAAK,EAAQ,CAAC,KAAK,OAAS;CACjC,MAAM;CACN,OAAO,EAAQ,MAAQ;CACxB,EAAE,GACH,EAAE;AAGR,SAAgB,EAAoB,EAAE,SAAM,cAAgE;CAC1G,IAAM,IAAkB,EAAmB,EAAQ,EAE7C,IAAc,EAAgB,MAAM,MAAW,EAAO,KAAK,aAAa,KAAK,eAAe,EAC5F,IAAW,GAAa,QAAQ,IAAI,EAAS,EAAY,MAAM,GAAG,KAAA;AAsBxE,QAAO;EAAE;EAAU,oBArBQ,EACzB,EAAgB,MAAM,MAAW,EAAO,KAAK,aAAa,KAAK,sBAAsB,EAAE,SAAS,GACjG;EAmBsC,SAhBjC,EAAO,EAAK,GACP,IAAI,gBAAgB,EAAK,GAE9B,OAAO,KAAS,WACX,IAAI,gBAAgB,IAAI,KAAK,CAAC,EAAK,EAAE,EAAE,MAAM,IAAW,EAAS,UAAU,GAAG,KAAA,GAAW,CAAC,CAAC,GAEhG,aAAgB,UAAU,OAAO,KAAK,EAAK,CAAC,SACvC,IAAI,gBACT,IAAI,KAAK,CAAC,KAAK,UAAU,EAAK,CAAC,EAAE,EAC/B,MAAM,IAAW,EAAS,UAAU,GAAG,KAAA,GACxC,CAAC,CACH,GAEI;EAGuC"}
@@ -0,0 +1,9 @@
1
+ import e from "../_virtual/_plugin-vue_export-helper.js";
2
+ import t from "./SearchPopover.vue.script.js";
3
+ /* empty css */
4
+ //#region src/components/SearchPopover.vue
5
+ var n = /* @__PURE__ */ e(t, [["__scopeId", "data-v-7945f74c"]]);
6
+ //#endregion
7
+ export { n as default };
8
+
9
+ //# sourceMappingURL=SearchPopover.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchPopover.vue.js","names":[],"sources":["../../src/components/SearchPopover.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarPopover, ScalarTextInput } from '@scalar/components'\nimport { ScalarIconMagnifyingGlass } from '@scalar/icons'\nimport { computed } from 'vue'\n\nimport { useSearch } from '@/hooks/use-search'\nimport { useState } from '@/state/state'\n\nconst state = useState()\n\nconst search = useSearch()\n\nconst searchOptions = computed(() =>\n search.results.value\n .filter(\n (r) =>\n !state.registryDocuments.value.some(\n (d) => d.namespace === r.namespace && d.slug === r.slug,\n ),\n )\n .map((result) => ({\n ...result,\n label: result.title,\n id: result.id,\n })),\n)\n</script>\n\n<template>\n <ScalarPopover\n :offset=\"0\"\n placement=\"top-start\"\n resize\n style=\"width: 220px\">\n <slot />\n <template #popover=\"{ close }\">\n <ScalarTextInput\n autofocus\n class=\"searchInput\"\n :modelValue=\"search.query.value\"\n placeholder=\"Add an API\"\n @update:modelValue=\"(v) => (search.query.value = v ?? '')\">\n <template #prefix>\n <ScalarIconMagnifyingGlass class=\"searchIcon\" />\n </template>\n </ScalarTextInput>\n\n <template v-if=\"searchOptions.length\">\n <button\n v-for=\"option in searchOptions\"\n :key=\"option.id\"\n class=\"searchItem\"\n type=\"button\"\n @click=\"\n () => {\n state.addDocument(option)\n close()\n }\n \">\n <img\n v-if=\"option.logoUrl\"\n class=\"searchItemLogo\"\n :src=\"option.logoUrl\" />\n <span>{{ option.title }}</span>\n </button>\n </template>\n\n <span\n v-else\n class=\"searchResultsEmpty\">\n No APIs found\n </span>\n </template>\n </ScalarPopover>\n</template>\n\n<style scoped>\n.searchItem {\n display: flex;\n align-items: center;\n gap: 9px;\n padding: 8px 10px;\n font-size: var(--scalar-font-size-3);\n}\n\n.searchInput {\n margin-bottom: 5px;\n}\n\n.searchItem:hover {\n background: var(--scalar-background-2);\n}\n\n.searchItemLogo {\n width: 15px;\n}\n\n.searchIcon {\n margin-right: 7px;\n}\n\n.searchResultsEmpty {\n font-size: var(--scalar-font-size-3);\n color: var(--scalar-color-2);\n margin: 10px;\n}\n</style>\n"],"mappings":""}
@@ -0,0 +1,53 @@
1
+ import { useState as e } from "../state/state.js";
2
+ import { useSearch as t } from "../hooks/use-search.js";
3
+ import { Fragment as n, computed as r, createBlock as i, createCommentVNode as a, createElementBlock as o, createElementVNode as s, createVNode as c, defineComponent as l, openBlock as u, renderList as d, renderSlot as f, toDisplayString as p, unref as m, withCtx as h } from "vue";
4
+ import { ScalarPopover as g, ScalarTextInput as _ } from "@scalar/components";
5
+ import { ScalarIconMagnifyingGlass as v } from "@scalar/icons";
6
+ //#region src/components/SearchPopover.vue?vue&type=script&setup=true&lang.ts
7
+ var y = ["onClick"], b = ["src"], x = {
8
+ key: 1,
9
+ class: "searchResultsEmpty"
10
+ }, S = /* @__PURE__ */ l({
11
+ __name: "SearchPopover",
12
+ setup(l) {
13
+ let S = e(), C = t(), w = r(() => C.results.value.filter((e) => !S.registryDocuments.value.some((t) => t.namespace === e.namespace && t.slug === e.slug)).map((e) => ({
14
+ ...e,
15
+ label: e.title,
16
+ id: e.id
17
+ })));
18
+ return (e, t) => (u(), i(m(g), {
19
+ offset: 0,
20
+ placement: "top-start",
21
+ resize: "",
22
+ style: { width: "220px" }
23
+ }, {
24
+ popover: h(({ close: e }) => [c(m(_), {
25
+ autofocus: "",
26
+ class: "searchInput",
27
+ modelValue: m(C).query.value,
28
+ placeholder: "Add an API",
29
+ "onUpdate:modelValue": t[0] ||= (e) => m(C).query.value = e ?? ""
30
+ }, {
31
+ prefix: h(() => [c(m(v), { class: "searchIcon" })]),
32
+ _: 1
33
+ }, 8, ["modelValue"]), w.value.length ? (u(!0), o(n, { key: 0 }, d(w.value, (t) => (u(), o("button", {
34
+ key: t.id,
35
+ class: "searchItem",
36
+ type: "button",
37
+ onClick: () => {
38
+ m(S).addDocument(t), e();
39
+ }
40
+ }, [t.logoUrl ? (u(), o("img", {
41
+ key: 0,
42
+ class: "searchItemLogo",
43
+ src: t.logoUrl
44
+ }, null, 8, b)) : a("", !0), s("span", null, p(t.title), 1)], 8, y))), 128)) : (u(), o("span", x, " No APIs found "))]),
45
+ default: h(() => [f(e.$slots, "default", {}, void 0, !0)]),
46
+ _: 3
47
+ }));
48
+ }
49
+ });
50
+ //#endregion
51
+ export { S as default };
52
+
53
+ //# sourceMappingURL=SearchPopover.vue.script.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchPopover.vue.script.js","names":[],"sources":["../../src/components/SearchPopover.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarPopover, ScalarTextInput } from '@scalar/components'\nimport { ScalarIconMagnifyingGlass } from '@scalar/icons'\nimport { computed } from 'vue'\n\nimport { useSearch } from '@/hooks/use-search'\nimport { useState } from '@/state/state'\n\nconst state = useState()\n\nconst search = useSearch()\n\nconst searchOptions = computed(() =>\n search.results.value\n .filter(\n (r) =>\n !state.registryDocuments.value.some(\n (d) => d.namespace === r.namespace && d.slug === r.slug,\n ),\n )\n .map((result) => ({\n ...result,\n label: result.title,\n id: result.id,\n })),\n)\n</script>\n\n<template>\n <ScalarPopover\n :offset=\"0\"\n placement=\"top-start\"\n resize\n style=\"width: 220px\">\n <slot />\n <template #popover=\"{ close }\">\n <ScalarTextInput\n autofocus\n class=\"searchInput\"\n :modelValue=\"search.query.value\"\n placeholder=\"Add an API\"\n @update:modelValue=\"(v) => (search.query.value = v ?? '')\">\n <template #prefix>\n <ScalarIconMagnifyingGlass class=\"searchIcon\" />\n </template>\n </ScalarTextInput>\n\n <template v-if=\"searchOptions.length\">\n <button\n v-for=\"option in searchOptions\"\n :key=\"option.id\"\n class=\"searchItem\"\n type=\"button\"\n @click=\"\n () => {\n state.addDocument(option)\n close()\n }\n \">\n <img\n v-if=\"option.logoUrl\"\n class=\"searchItemLogo\"\n :src=\"option.logoUrl\" />\n <span>{{ option.title }}</span>\n </button>\n </template>\n\n <span\n v-else\n class=\"searchResultsEmpty\">\n No APIs found\n </span>\n </template>\n </ScalarPopover>\n</template>\n\n<style scoped>\n.searchItem {\n display: flex;\n align-items: center;\n gap: 9px;\n padding: 8px 10px;\n font-size: var(--scalar-font-size-3);\n}\n\n.searchInput {\n margin-bottom: 5px;\n}\n\n.searchItem:hover {\n background: var(--scalar-background-2);\n}\n\n.searchItemLogo {\n width: 15px;\n}\n\n.searchIcon {\n margin-right: 7px;\n}\n\n.searchResultsEmpty {\n font-size: var(--scalar-font-size-3);\n color: var(--scalar-color-2);\n margin: 10px;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;EAQA,IAAM,IAAQ,GAAS,EAEjB,IAAS,GAAU,EAEnB,IAAgB,QACpB,EAAO,QAAQ,MACZ,QACE,MACC,CAAC,EAAM,kBAAkB,MAAM,MAC5B,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,KACpD,CACL,CACC,KAAK,OAAY;GAChB,GAAG;GACH,OAAO,EAAO;GACd,IAAI,EAAO;GACZ,EAAE,CACP;yBAIE,EA4CgB,EAAA,EAAA,EAAA;GA3Cb,QAAQ;GACT,WAAU;GACV,QAAA;GACA,OAAA,EAAA,OAAA,SAAoB;;GAET,SAAO,GAUE,EAVE,eAAK,CACzB,EASkB,EAAA,EAAA,EAAA;IARhB,WAAA;IACA,OAAM;IACL,YAAY,EAAA,EAAM,CAAC,MAAM;IAC1B,aAAY;IACX,uBAAiB,AAAA,EAAA,QAAG,MAAO,EAAA,EAAM,CAAC,MAAM,QAAQ,KAAC;;IACvC,QAAM,QACiC,CAAhD,EAAgD,EAAA,EAAA,EAAA,EAArB,OAAM,cAAY,CAAA,CAAA,CAAA;;0BAIjC,EAAA,MAAc,UAAA,EAAA,GAAA,EAC5B,EAgBS,GAAA,EAAA,KAAA,GAAA,EAAA,EAfU,EAAA,QAAV,YADT,EAgBS,UAAA;IAdN,KAAK,EAAO;IACb,OAAM;IACN,MAAK;IACJ,eAAA;AAAkF,KAAxC,EAAA,EAAK,CAAC,YAAY,EAAM,EAAgB,GAAK;;OAOhF,EAAO,WAAA,GAAA,EADf,EAG0B,OAAA;;IADxB,OAAM;IACL,KAAK,EAAO;gCACf,EAA+B,QAAA,MAAA,EAAtB,EAAO,MAAK,EAAA,EAAA,CAAA,EAAA,GAAA,EAAA,kBAIzB,EAIO,QAJP,GAE6B,kBAE7B,EAAA,CAAA;oBArCM,CAAR,EAAQ,EAAA,QAAA,WAAA,EAAA,EAAA,KAAA,GAAA,GAAA,CAAA,CAAA"}
@@ -0,0 +1,7 @@
1
+ import e from "./Selector.vue.script.js";
2
+ //#region src/components/Selector.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
6
+
7
+ //# sourceMappingURL=Selector.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Selector.vue.js","names":[],"sources":["../../src/components/Selector.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarButton, ScalarListbox } from '@scalar/components'\nimport { ScalarIconCaretDown } from '@scalar/icons'\nimport type { ServerObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { computed } from 'vue'\n\nconst { target, servers, selectedServer } = defineProps<{\n /** The selected server URL */\n selectedServer: ServerObject | null\n /** Available servers */\n servers: ServerObject[]\n /** The id of the target to use for the popover (e.g. address bar) */\n target: string\n}>()\n\nconst emit = defineEmits<{\n /** Emitted when the selected server changes */\n (e: 'update:modelValue', value: string): void\n}>()\n\nconst serverOptions = computed(() =>\n servers.map((server) => ({\n id: server.url,\n label: server.url,\n })),\n)\n\nconst serverUrlWithoutTrailingSlash = computed(\n () => selectedServer?.url?.replace(/\\/$/, '') || '',\n)\n\nconst selectedServerOption = computed(() =>\n serverOptions.value.find((opt) => opt.id === selectedServer?.url),\n)\n\n// For testing\ndefineExpose({\n servers,\n serverUrlWithoutTrailingSlash,\n serverOptions,\n selectedServer,\n})\n</script>\n<template>\n <ScalarListbox\n v-if=\"serverOptions.length > 1\"\n ref=\"elem\"\n class=\"group\"\n :modelValue=\"selectedServerOption\"\n :options=\"serverOptions\"\n placement=\"bottom-start\"\n resize\n :target=\"target\"\n @update:modelValue=\"(e) => emit('update:modelValue', e.id)\">\n <ScalarButton\n class=\"bg-b-1 text-c-1 h-auto w-full justify-start gap-1.5 overflow-x-auto rounded-t-none rounded-b-xl px-3 py-1.5 text-base font-normal whitespace-nowrap -outline-offset-1\"\n variant=\"ghost\">\n <span class=\"sr-only\">Server:</span>\n <span class=\"overflow-x-auto\">{{\n serverUrlWithoutTrailingSlash || 'Select a server'\n }}</span>\n <ScalarIconCaretDown\n class=\"text-c-2 ui-open:rotate-180 mt-0.25 size-3 transition-transform duration-100\"\n weight=\"bold\" />\n </ScalarButton>\n </ScalarListbox>\n <div\n v-else\n class=\"text-c-1 flex h-auto w-full items-center gap-0.75 rounded-b-lg px-3 py-1.5 text-base leading-[20px] whitespace-nowrap\">\n <span class=\"sr-only\">Server:</span>\n <span class=\"overflow-x-auto\">{{ serverUrlWithoutTrailingSlash }}</span>\n </div>\n</template>\n"],"mappings":""}
@@ -0,0 +1,62 @@
1
+ import { computed as e, createBlock as t, createElementBlock as n, createElementVNode as r, createVNode as i, defineComponent as a, openBlock as o, toDisplayString as s, unref as c, withCtx as l } from "vue";
2
+ import { ScalarButton as u, ScalarListbox as d } from "@scalar/components";
3
+ import { ScalarIconCaretDown as f } from "@scalar/icons";
4
+ //#region src/components/Selector.vue?vue&type=script&setup=true&lang.ts
5
+ var p = { class: "overflow-x-auto" }, m = {
6
+ key: 1,
7
+ class: "text-c-1 flex h-auto w-full items-center gap-0.75 rounded-b-lg px-3 py-1.5 text-base leading-[20px] whitespace-nowrap"
8
+ }, h = { class: "overflow-x-auto" }, g = /* @__PURE__ */ a({
9
+ __name: "Selector",
10
+ props: {
11
+ selectedServer: {},
12
+ servers: {},
13
+ target: {}
14
+ },
15
+ emits: ["update:modelValue"],
16
+ setup(a, { expose: g, emit: _ }) {
17
+ let v = _, y = e(() => a.servers.map((e) => ({
18
+ id: e.url,
19
+ label: e.url
20
+ }))), b = e(() => a.selectedServer?.url?.replace(/\/$/, "") || ""), x = e(() => y.value.find((e) => e.id === a.selectedServer?.url));
21
+ return g({
22
+ servers: a.servers,
23
+ serverUrlWithoutTrailingSlash: b,
24
+ serverOptions: y,
25
+ selectedServer: a.selectedServer
26
+ }), (e, g) => y.value.length > 1 ? (o(), t(c(d), {
27
+ key: 0,
28
+ ref: "elem",
29
+ class: "group",
30
+ modelValue: x.value,
31
+ options: y.value,
32
+ placement: "bottom-start",
33
+ resize: "",
34
+ target: a.target,
35
+ "onUpdate:modelValue": g[0] ||= (e) => v("update:modelValue", e.id)
36
+ }, {
37
+ default: l(() => [i(c(u), {
38
+ class: "bg-b-1 text-c-1 h-auto w-full justify-start gap-1.5 overflow-x-auto rounded-t-none rounded-b-xl px-3 py-1.5 text-base font-normal whitespace-nowrap -outline-offset-1",
39
+ variant: "ghost"
40
+ }, {
41
+ default: l(() => [
42
+ g[1] ||= r("span", { class: "sr-only" }, "Server:", -1),
43
+ r("span", p, s(b.value || "Select a server"), 1),
44
+ i(c(f), {
45
+ class: "text-c-2 ui-open:rotate-180 mt-0.25 size-3 transition-transform duration-100",
46
+ weight: "bold"
47
+ })
48
+ ]),
49
+ _: 1
50
+ })]),
51
+ _: 1
52
+ }, 8, [
53
+ "modelValue",
54
+ "options",
55
+ "target"
56
+ ])) : (o(), n("div", m, [g[2] ||= r("span", { class: "sr-only" }, "Server:", -1), r("span", h, s(b.value), 1)]));
57
+ }
58
+ });
59
+ //#endregion
60
+ export { g as default };
61
+
62
+ //# sourceMappingURL=Selector.vue.script.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Selector.vue.script.js","names":[],"sources":["../../src/components/Selector.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarButton, ScalarListbox } from '@scalar/components'\nimport { ScalarIconCaretDown } from '@scalar/icons'\nimport type { ServerObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { computed } from 'vue'\n\nconst { target, servers, selectedServer } = defineProps<{\n /** The selected server URL */\n selectedServer: ServerObject | null\n /** Available servers */\n servers: ServerObject[]\n /** The id of the target to use for the popover (e.g. address bar) */\n target: string\n}>()\n\nconst emit = defineEmits<{\n /** Emitted when the selected server changes */\n (e: 'update:modelValue', value: string): void\n}>()\n\nconst serverOptions = computed(() =>\n servers.map((server) => ({\n id: server.url,\n label: server.url,\n })),\n)\n\nconst serverUrlWithoutTrailingSlash = computed(\n () => selectedServer?.url?.replace(/\\/$/, '') || '',\n)\n\nconst selectedServerOption = computed(() =>\n serverOptions.value.find((opt) => opt.id === selectedServer?.url),\n)\n\n// For testing\ndefineExpose({\n servers,\n serverUrlWithoutTrailingSlash,\n serverOptions,\n selectedServer,\n})\n</script>\n<template>\n <ScalarListbox\n v-if=\"serverOptions.length > 1\"\n ref=\"elem\"\n class=\"group\"\n :modelValue=\"selectedServerOption\"\n :options=\"serverOptions\"\n placement=\"bottom-start\"\n resize\n :target=\"target\"\n @update:modelValue=\"(e) => emit('update:modelValue', e.id)\">\n <ScalarButton\n class=\"bg-b-1 text-c-1 h-auto w-full justify-start gap-1.5 overflow-x-auto rounded-t-none rounded-b-xl px-3 py-1.5 text-base font-normal whitespace-nowrap -outline-offset-1\"\n variant=\"ghost\">\n <span class=\"sr-only\">Server:</span>\n <span class=\"overflow-x-auto\">{{\n serverUrlWithoutTrailingSlash || 'Select a server'\n }}</span>\n <ScalarIconCaretDown\n class=\"text-c-2 ui-open:rotate-180 mt-0.25 size-3 transition-transform duration-100\"\n weight=\"bold\" />\n </ScalarButton>\n </ScalarListbox>\n <div\n v-else\n class=\"text-c-1 flex h-auto w-full items-center gap-0.75 rounded-b-lg px-3 py-1.5 text-base leading-[20px] whitespace-nowrap\">\n <span class=\"sr-only\">Server:</span>\n <span class=\"overflow-x-auto\">{{ serverUrlWithoutTrailingSlash }}</span>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;EAeA,IAAM,IAAO,GAKP,IAAgB,QACpB,EAAA,QAAQ,KAAK,OAAY;GACvB,IAAI,EAAO;GACX,OAAO,EAAO;GACf,EAAE,CACL,EAEM,IAAgC,QAC9B,EAAA,gBAAgB,KAAK,QAAQ,OAAO,GAAG,IAAI,GACnD,EAEM,IAAuB,QAC3B,EAAc,MAAM,MAAM,MAAQ,EAAI,OAAO,EAAA,gBAAgB,IAAI,CACnE;SAGA,EAAa;GACX,SAAM,EAAA;GACN;GACA;GACA,gBAAa,EAAA;GACd,CAAA,YAIS,EAAA,MAAc,SAAM,KAAA,GAAA,EAD5B,EAqBgB,EAAA,EAAA,EAAA;;GAnBd,KAAI;GACJ,OAAM;GACL,YAAY,EAAA;GACZ,SAAS,EAAA;GACV,WAAU;GACV,QAAA;GACC,QAAQ,EAAA;GACR,uBAAiB,AAAA,EAAA,QAAG,MAAM,EAAI,qBAAsB,EAAE,GAAE;;oBAW1C,CAVf,EAUe,EAAA,EAAA,EAAA;IATb,OAAM;IACN,SAAQ;;qBAC4B;cAApC,EAAoC,QAAA,EAA9B,OAAM,WAAS,EAAC,WAAO,GAAA;KAC7B,EAES,QAFT,GAES,EADP,EAAA,SAA6B,kBAAA,EAAA,EAAA;KAE/B,EAEkB,EAAA,EAAA,EAAA;MADhB,OAAM;MACN,QAAO;;;;;;;;;;cAGb,EAKM,OALN,GAKM,CAAA,AAAA,EAAA,OAFJ,EAAoC,QAAA,EAA9B,OAAM,WAAS,EAAC,WAAO,GAAA,EAC7B,EAAwE,QAAxE,GAAwE,EAAvC,EAAA,MAA6B,EAAA,EAAA,CAAA,CAAA"}
@@ -0,0 +1,19 @@
1
+ import e from "../_virtual/_plugin-vue_export-helper.js";
2
+ /* empty css */
3
+ import { createElementBlock as t, createElementVNode as n, createTextVNode as r, openBlock as i } from "vue";
4
+ //#region src/components/SendingRequest.vue
5
+ var a = {}, o = { class: "sendingRequest" };
6
+ function s(e, a) {
7
+ return i(), t("div", o, [...a[0] ||= [n("div", { class: "playIcon" }, [n("svg", {
8
+ fill: "currentColor",
9
+ height: "32",
10
+ viewBox: "0 0 256 256",
11
+ width: "32",
12
+ xmlns: "http://www.w3.org/2000/svg"
13
+ }, [n("path", { d: "M240,128a15.74,15.74,0,0,1-7.6,13.51L88.32,229.65a16,16,0,0,1-16.2.3A15.86,15.86,0,0,1,64,216.13V39.87a15.86,15.86,0,0,1,8.12-13.82,16,16,0,0,1,16.2.3L232.4,114.49A15.74,15.74,0,0,1,240,128Z" })])], -1), r(" Sending Request to Endpoint ", -1)]]);
14
+ }
15
+ var c = /* @__PURE__ */ e(a, [["render", s], ["__scopeId", "data-v-65dc6dfb"]]);
16
+ //#endregion
17
+ export { c as default };
18
+
19
+ //# sourceMappingURL=SendingRequest.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SendingRequest.vue.js","names":[],"sources":["../../src/components/SendingRequest.vue"],"sourcesContent":["<template>\n <div class=\"sendingRequest\">\n <div class=\"playIcon\">\n <svg\n fill=\"currentColor\"\n height=\"32\"\n viewBox=\"0 0 256 256\"\n width=\"32\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M240,128a15.74,15.74,0,0,1-7.6,13.51L88.32,229.65a16,16,0,0,1-16.2.3A15.86,15.86,0,0,1,64,216.13V39.87a15.86,15.86,0,0,1,8.12-13.82,16,16,0,0,1,16.2.3L232.4,114.49A15.74,15.74,0,0,1,240,128Z\"></path>\n </svg>\n </div>\n Sending Request to Endpoint\n </div>\n</template>\n\n<style scoped>\n.playIcon {\n padding: 4px;\n height: 16px;\n width: 16px;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n background: var(--scalar-background-1);\n border-radius: 50%;\n}\n\n.playIcon::before {\n content: '';\n width: 16px;\n height: 16px;\n display: inline-block;\n box-sizing: border-box;\n position: absolute;\n border-width: 1.75px;\n border-style: solid;\n border-color: currentcolor currentcolor transparent;\n border-image: initial;\n border-radius: 50%;\n background: var(--scalar-background-1);\n animation: 0.42s linear 0s infinite normal none running rotation;\n}\n\n.sendingRequest {\n display: flex;\n align-items: center;\n gap: 6px;\n color: var(--scalar-color-blue);\n font-weight: var(--scalar-semibold);\n min-height: 40px;\n font-size: var(--scalar-font-size-3);\n position: relative;\n}\n\n.sendingRequest svg {\n width: 100%;\n height: 100%;\n z-index: 1;\n border-radius: 50%;\n}\n\n@keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n</style>\n"],"mappings":";;;;kBACO,OAAM,kBAAgB;;aAA3B,EAaM,OAbN,GAaM,CAAA,GAAA,AAAA,EAAA,OAAA,CAZJ,EAUM,OAAA,EAVD,OAAM,YAAU,EAAA,CACnB,EAQM,OAAA;EAPJ,MAAK;EACL,QAAO;EACP,SAAQ;EACR,OAAM;EACN,OAAM;KACN,EAC4M,QAAA,EAA1M,GAAE,kMAAgM,CAAA,CAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAElM,iCAER,GAAA,CAAA,CAAA,CAAA"}
@@ -0,0 +1,7 @@
1
+ import e from "./ServerSelector.vue.script.js";
2
+ //#region src/components/ServerSelector.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
6
+
7
+ //# sourceMappingURL=ServerSelector.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerSelector.vue.js","names":[],"sources":["../../src/components/ServerSelector.vue"],"sourcesContent":["<script lang=\"ts\">\ntype SelectorProps = {\n /** The event bus to use for emitting events */\n eventBus: WorkspaceEventBus\n /** The selected server */\n selectedServer: ServerObject | null\n /** Available servers */\n servers: ServerObject[]\n}\n\n/**\n * ServerSelector\n *\n * Core component for rendering a server selector block.\n * Handles server selection and emits a 'server:update:selected' event when the selected server changes.\n *\n * @event server:update:selected - Emitted when the selected server changes\n * @event server:update:variables - Emitted when a server variable changes\n */\nexport default {}\n</script>\n\n<script lang=\"ts\" setup>\nimport { ServerVariablesForm } from '@scalar/api-client/components/Server'\nimport { ScalarMarkdown } from '@scalar/components'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport type { ServerObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { useId } from 'vue'\n\nimport Selector from './Selector.vue'\n\nconst { eventBus, servers, selectedServer } = defineProps<SelectorProps>()\n\nconst id = useId()\n\n/** Update the selected server */\nconst updateServer = (newServer: string) => {\n eventBus.emit('server:update:selected', {\n url: selectedServer?.url === newServer ? '' : newServer,\n meta: {\n type: 'document',\n },\n })\n}\n\n/** Update the server variable */\nconst updateServerVariable = (key: string, value: string) => {\n /** Find the index of the selected server */\n const index = servers.findIndex((s) => s.url === selectedServer?.url)\n if (index === -1) {\n return\n }\n\n eventBus.emit('server:update:variables', {\n index,\n key,\n value,\n meta: {\n type: 'document',\n },\n })\n}\n</script>\n\n<template>\n <label\n class=\"bg-b-2 flex h-8 items-center rounded-t-xl border border-b-0 px-3 py-2.5 font-medium\">\n Server\n </label>\n <div\n :id=\"id\"\n class=\"border\"\n :class=\"{\n 'rounded-b-xl':\n !selectedServer?.description && !selectedServer?.variables,\n }\">\n <Selector\n v-if=\"servers.length\"\n :selectedServer\n :servers=\"servers\"\n :target=\"id\"\n @update:modelValue=\"updateServer\" />\n </div>\n <ServerVariablesForm\n layout=\"reference\"\n :variables=\"selectedServer?.variables\"\n @update:variable=\"updateServerVariable\" />\n\n <!-- Description -->\n <ScalarMarkdown\n v-if=\"selectedServer?.description\"\n class=\"text-c-3 rounded-b-xl border border-t-0 px-3 py-1.5\"\n :value=\"selectedServer.description\" />\n</template>\n"],"mappings":""}
@@ -0,0 +1,60 @@
1
+ import e from "./Selector.vue.js";
2
+ import { Fragment as t, createBlock as n, createCommentVNode as r, createElementBlock as i, createElementVNode as a, createVNode as o, defineComponent as s, normalizeClass as c, openBlock as l, unref as u, useId as d } from "vue";
3
+ import { ScalarMarkdown as f } from "@scalar/components";
4
+ import { ServerVariablesForm as p } from "@scalar/api-client/components/Server";
5
+ //#region src/components/ServerSelector.vue?vue&type=script&setup=true&lang.ts
6
+ var m = ["id"], h = /* @__PURE__ */ s({
7
+ __name: "ServerSelector",
8
+ props: {
9
+ eventBus: {},
10
+ selectedServer: {},
11
+ servers: {}
12
+ },
13
+ setup(s) {
14
+ let h = d(), g = (e) => {
15
+ s.eventBus.emit("server:update:selected", {
16
+ url: s.selectedServer?.url === e ? "" : e,
17
+ meta: { type: "document" }
18
+ });
19
+ }, _ = (e, t) => {
20
+ let n = s.servers.findIndex((e) => e.url === s.selectedServer?.url);
21
+ n !== -1 && s.eventBus.emit("server:update:variables", {
22
+ index: n,
23
+ key: e,
24
+ value: t,
25
+ meta: { type: "document" }
26
+ });
27
+ };
28
+ return (d, v) => (l(), i(t, null, [
29
+ v[0] ||= a("label", { class: "bg-b-2 flex h-8 items-center rounded-t-xl border border-b-0 px-3 py-2.5 font-medium" }, " Server ", -1),
30
+ a("div", {
31
+ id: u(h),
32
+ class: c(["border", { "rounded-b-xl": !s.selectedServer?.description && !s.selectedServer?.variables }])
33
+ }, [s.servers.length ? (l(), n(e, {
34
+ key: 0,
35
+ selectedServer: s.selectedServer,
36
+ servers: s.servers,
37
+ target: u(h),
38
+ "onUpdate:modelValue": g
39
+ }, null, 8, [
40
+ "selectedServer",
41
+ "servers",
42
+ "target"
43
+ ])) : r("", !0)], 10, m),
44
+ o(u(p), {
45
+ layout: "reference",
46
+ variables: s.selectedServer?.variables,
47
+ "onUpdate:variable": _
48
+ }, null, 8, ["variables"]),
49
+ s.selectedServer?.description ? (l(), n(u(f), {
50
+ key: 0,
51
+ class: "text-c-3 rounded-b-xl border border-t-0 px-3 py-1.5",
52
+ value: s.selectedServer.description
53
+ }, null, 8, ["value"])) : r("", !0)
54
+ ], 64));
55
+ }
56
+ });
57
+ //#endregion
58
+ export { h as default };
59
+
60
+ //# sourceMappingURL=ServerSelector.vue.script.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerSelector.vue.script.js","names":[],"sources":["../../src/components/ServerSelector.vue"],"sourcesContent":["<script lang=\"ts\">\ntype SelectorProps = {\n /** The event bus to use for emitting events */\n eventBus: WorkspaceEventBus\n /** The selected server */\n selectedServer: ServerObject | null\n /** Available servers */\n servers: ServerObject[]\n}\n\n/**\n * ServerSelector\n *\n * Core component for rendering a server selector block.\n * Handles server selection and emits a 'server:update:selected' event when the selected server changes.\n *\n * @event server:update:selected - Emitted when the selected server changes\n * @event server:update:variables - Emitted when a server variable changes\n */\nexport default {}\n</script>\n\n<script lang=\"ts\" setup>\nimport { ServerVariablesForm } from '@scalar/api-client/components/Server'\nimport { ScalarMarkdown } from '@scalar/components'\nimport type { WorkspaceEventBus } from '@scalar/workspace-store/events'\nimport type { ServerObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document'\nimport { useId } from 'vue'\n\nimport Selector from './Selector.vue'\n\nconst { eventBus, servers, selectedServer } = defineProps<SelectorProps>()\n\nconst id = useId()\n\n/** Update the selected server */\nconst updateServer = (newServer: string) => {\n eventBus.emit('server:update:selected', {\n url: selectedServer?.url === newServer ? '' : newServer,\n meta: {\n type: 'document',\n },\n })\n}\n\n/** Update the server variable */\nconst updateServerVariable = (key: string, value: string) => {\n /** Find the index of the selected server */\n const index = servers.findIndex((s) => s.url === selectedServer?.url)\n if (index === -1) {\n return\n }\n\n eventBus.emit('server:update:variables', {\n index,\n key,\n value,\n meta: {\n type: 'document',\n },\n })\n}\n</script>\n\n<template>\n <label\n class=\"bg-b-2 flex h-8 items-center rounded-t-xl border border-b-0 px-3 py-2.5 font-medium\">\n Server\n </label>\n <div\n :id=\"id\"\n class=\"border\"\n :class=\"{\n 'rounded-b-xl':\n !selectedServer?.description && !selectedServer?.variables,\n }\">\n <Selector\n v-if=\"servers.length\"\n :selectedServer\n :servers=\"servers\"\n :target=\"id\"\n @update:modelValue=\"updateServer\" />\n </div>\n <ServerVariablesForm\n layout=\"reference\"\n :variables=\"selectedServer?.variables\"\n @update:variable=\"updateServerVariable\" />\n\n <!-- Description -->\n <ScalarMarkdown\n v-if=\"selectedServer?.description\"\n class=\"text-c-3 rounded-b-xl border border-t-0 px-3 py-1.5\"\n :value=\"selectedServer.description\" />\n</template>\n"],"mappings":";;;;;;;;;;;;;EAiCA,IAAM,IAAK,GAAM,EAGX,KAAgB,MAAsB;AAC1C,KAAA,SAAS,KAAK,0BAA0B;IACtC,KAAK,EAAA,gBAAgB,QAAQ,IAAY,KAAK;IAC9C,MAAM,EACJ,MAAM,YACP;IACF,CAAA;KAIG,KAAwB,GAAa,MAAkB;GAE3D,IAAM,IAAQ,EAAA,QAAQ,WAAW,MAAM,EAAE,QAAQ,EAAA,gBAAgB,IAAG;AAChE,SAAU,MAId,EAAA,SAAS,KAAK,2BAA2B;IACvC;IACA;IACA;IACA,MAAM,EACJ,MAAM,YACP;IACF,CAAA;;;YAKD,EAGQ,SAAA,EAFN,OAAM,uFAAqF,EAAC,YAE9F,GAAA;GACA,EAaM,OAAA;IAZH,IAAI,EAAA,EAAE;IACP,OAAK,EAAA,CAAC,UAAQ,EAAA,gBAAA,CAC2B,EAAA,gBAAgB,eAAW,CAAK,EAAA,gBAAgB,WAAA,CAAA,CAAA;OAKjF,EAAA,QAAQ,UAAA,GAAA,EADhB,EAKsC,GAAA;;IAHnC,gBAAA,EAAA;IACA,SAAS,EAAA;IACT,QAAQ,EAAA,EAAE;IACV,uBAAmB;;;;;;GAExB,EAG4C,EAAA,EAAA,EAAA;IAF1C,QAAO;IACN,WAAW,EAAA,gBAAgB;IAC3B,qBAAiB;;GAIZ,EAAA,gBAAgB,eAAA,GAAA,EADxB,EAGwC,EAAA,EAAA,EAAA;;IADtC,OAAM;IACL,OAAO,EAAA,eAAe"}
@@ -1,4 +1,4 @@
1
- import { type UploadTmpDocumentState } from '@/hooks/use-upload-tmp-document';
1
+ import { type UploadTmpDocumentState } from '../hooks/use-upload-tmp-document.js';
2
2
  type __VLS_Props = {
3
3
  uploadState: UploadTmpDocumentState;
4
4
  };
@@ -0,0 +1,9 @@
1
+ import e from "../_virtual/_plugin-vue_export-helper.js";
2
+ import t from "./UploadSection.vue.script.js";
3
+ /* empty css */
4
+ //#region src/components/UploadSection.vue
5
+ var n = /* @__PURE__ */ e(t, [["__scopeId", "data-v-9551cf83"]]);
6
+ //#endregion
7
+ export { n as default };
8
+
9
+ //# sourceMappingURL=UploadSection.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UploadSection.vue.js","names":[],"sources":["../../src/components/UploadSection.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarLoading, useLoadingState } from '@scalar/components'\nimport { ScalarIconCheck, ScalarIconXCircle } from '@scalar/icons'\nimport { computed } from 'vue'\n\nimport { type UploadTmpDocumentState } from '@/hooks/use-upload-tmp-document'\n\nconst { uploadState } = defineProps<{\n uploadState: UploadTmpDocumentState\n}>()\n\nconst loadingState = useLoadingState()\n\nconst isLoading = computed(() =>\n ['uploading', 'processing', 'loading'].includes(uploadState.type),\n)\n</script>\n\n<template>\n <div\n class=\"uploadSection\"\n :class=\"{\n error: uploadState.type === 'error',\n done: uploadState.type === 'done',\n }\">\n <div\n v-if=\"isLoading\"\n class=\"flex items-center gap-1.5\">\n <ScalarLoading\n class=\"text-blue\"\n :loader=\"{\n ...loadingState,\n isLoading: true,\n }\"\n size=\"lg\" />\n <strong\n v-if=\"uploadState.type === 'loading'\"\n class=\"uploadText\">\n Loading OpenAPI document…\n </strong>\n <strong\n v-else-if=\"uploadState.type === 'processing'\"\n class=\"uploadText\">\n Processing OpenAPI document…\n </strong>\n <strong\n v-else\n class=\"uploadText\">\n Uploading OpenAPI document…\n </strong>\n </div>\n <strong\n v-if=\"uploadState.type === 'done'\"\n class=\"uploadText flex items-center gap-1.5\">\n <ScalarIconCheck class=\"icon text-green\" />\n Your OpenAPI document has been processed successfully.\n </strong>\n <strong\n v-if=\"uploadState.type === 'error'\"\n class=\"uploadText flex items-center gap-1.5\">\n <ScalarIconXCircle class=\"icon text-red\" />\n {{ uploadState.error }}\n </strong>\n </div>\n</template>\n\n<style scoped>\n.uploadSection {\n width: 100%;\n margin-bottom: -16px;\n padding: 8px 8px 24px 12px;\n position: relative;\n background: color-mix(\n in srgb,\n var(--scalar-color-blue),\n var(--scalar-background-1) 95%\n );\n border: var(--scalar-border-width) solid var(--scalar-border-color);\n border-radius: 16px 16px 0 0;\n display: flex;\n align-items: center;\n justify-content: space-between;\n position: absolute;\n top: 0;\n transform: translate3d(0, calc(-100% + 16px), 0);\n}\n\n.uploadSection.error {\n background: color-mix(\n in srgb,\n var(--scalar-color-red),\n var(--scalar-background-1) 95%\n );\n}\n\n.uploadSection.done {\n background: color-mix(\n in srgb,\n var(--scalar-color-green),\n var(--scalar-background-1) 95%\n );\n}\n\n.uploadText {\n font-weight: var(--scalar-semibold);\n font-size: var(--scalar-font-size-3);\n}\n\n.icon {\n height: 20px;\n width: 20px;\n}\n</style>\n"],"mappings":""}
@@ -0,0 +1,52 @@
1
+ import { computed as e, createCommentVNode as t, createElementBlock as n, createTextVNode as r, createVNode as i, defineComponent as a, normalizeClass as o, openBlock as s, toDisplayString as c, unref as l } from "vue";
2
+ import { ScalarLoading as u, useLoadingState as d } from "@scalar/components";
3
+ import { ScalarIconCheck as f, ScalarIconXCircle as p } from "@scalar/icons";
4
+ //#region src/components/UploadSection.vue?vue&type=script&setup=true&lang.ts
5
+ var m = {
6
+ key: 0,
7
+ class: "flex items-center gap-1.5"
8
+ }, h = {
9
+ key: 0,
10
+ class: "uploadText"
11
+ }, g = {
12
+ key: 1,
13
+ class: "uploadText"
14
+ }, _ = {
15
+ key: 2,
16
+ class: "uploadText"
17
+ }, v = {
18
+ key: 1,
19
+ class: "uploadText flex items-center gap-1.5"
20
+ }, y = {
21
+ key: 2,
22
+ class: "uploadText flex items-center gap-1.5"
23
+ }, b = /* @__PURE__ */ a({
24
+ __name: "UploadSection",
25
+ props: { uploadState: {} },
26
+ setup(a) {
27
+ let b = d(), x = e(() => [
28
+ "uploading",
29
+ "processing",
30
+ "loading"
31
+ ].includes(a.uploadState.type));
32
+ return (e, d) => (s(), n("div", { class: o(["uploadSection", {
33
+ error: a.uploadState.type === "error",
34
+ done: a.uploadState.type === "done"
35
+ }]) }, [
36
+ x.value ? (s(), n("div", m, [i(l(u), {
37
+ class: "text-blue",
38
+ loader: {
39
+ ...l(b),
40
+ isLoading: !0
41
+ },
42
+ size: "lg"
43
+ }, null, 8, ["loader"]), a.uploadState.type === "loading" ? (s(), n("strong", h, " Loading OpenAPI document… ")) : a.uploadState.type === "processing" ? (s(), n("strong", g, " Processing OpenAPI document… ")) : (s(), n("strong", _, " Uploading OpenAPI document… "))])) : t("", !0),
44
+ a.uploadState.type === "done" ? (s(), n("strong", v, [i(l(f), { class: "icon text-green" }), d[0] ||= r(" Your OpenAPI document has been processed successfully. ", -1)])) : t("", !0),
45
+ a.uploadState.type === "error" ? (s(), n("strong", y, [i(l(p), { class: "icon text-red" }), r(" " + c(a.uploadState.error), 1)])) : t("", !0)
46
+ ], 2));
47
+ }
48
+ });
49
+ //#endregion
50
+ export { b as default };
51
+
52
+ //# sourceMappingURL=UploadSection.vue.script.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UploadSection.vue.script.js","names":[],"sources":["../../src/components/UploadSection.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarLoading, useLoadingState } from '@scalar/components'\nimport { ScalarIconCheck, ScalarIconXCircle } from '@scalar/icons'\nimport { computed } from 'vue'\n\nimport { type UploadTmpDocumentState } from '@/hooks/use-upload-tmp-document'\n\nconst { uploadState } = defineProps<{\n uploadState: UploadTmpDocumentState\n}>()\n\nconst loadingState = useLoadingState()\n\nconst isLoading = computed(() =>\n ['uploading', 'processing', 'loading'].includes(uploadState.type),\n)\n</script>\n\n<template>\n <div\n class=\"uploadSection\"\n :class=\"{\n error: uploadState.type === 'error',\n done: uploadState.type === 'done',\n }\">\n <div\n v-if=\"isLoading\"\n class=\"flex items-center gap-1.5\">\n <ScalarLoading\n class=\"text-blue\"\n :loader=\"{\n ...loadingState,\n isLoading: true,\n }\"\n size=\"lg\" />\n <strong\n v-if=\"uploadState.type === 'loading'\"\n class=\"uploadText\">\n Loading OpenAPI document…\n </strong>\n <strong\n v-else-if=\"uploadState.type === 'processing'\"\n class=\"uploadText\">\n Processing OpenAPI document…\n </strong>\n <strong\n v-else\n class=\"uploadText\">\n Uploading OpenAPI document…\n </strong>\n </div>\n <strong\n v-if=\"uploadState.type === 'done'\"\n class=\"uploadText flex items-center gap-1.5\">\n <ScalarIconCheck class=\"icon text-green\" />\n Your OpenAPI document has been processed successfully.\n </strong>\n <strong\n v-if=\"uploadState.type === 'error'\"\n class=\"uploadText flex items-center gap-1.5\">\n <ScalarIconXCircle class=\"icon text-red\" />\n {{ uploadState.error }}\n </strong>\n </div>\n</template>\n\n<style scoped>\n.uploadSection {\n width: 100%;\n margin-bottom: -16px;\n padding: 8px 8px 24px 12px;\n position: relative;\n background: color-mix(\n in srgb,\n var(--scalar-color-blue),\n var(--scalar-background-1) 95%\n );\n border: var(--scalar-border-width) solid var(--scalar-border-color);\n border-radius: 16px 16px 0 0;\n display: flex;\n align-items: center;\n justify-content: space-between;\n position: absolute;\n top: 0;\n transform: translate3d(0, calc(-100% + 16px), 0);\n}\n\n.uploadSection.error {\n background: color-mix(\n in srgb,\n var(--scalar-color-red),\n var(--scalar-background-1) 95%\n );\n}\n\n.uploadSection.done {\n background: color-mix(\n in srgb,\n var(--scalar-color-green),\n var(--scalar-background-1) 95%\n );\n}\n\n.uploadText {\n font-weight: var(--scalar-semibold);\n font-size: var(--scalar-font-size-3);\n}\n\n.icon {\n height: 20px;\n width: 20px;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;EAWA,IAAM,IAAe,GAAgB,EAE/B,IAAY,QAChB;GAAC;GAAa;GAAc;GAAU,CAAC,SAAS,EAAA,YAAY,KAAK,CACnE;yBAIE,EA4CM,OAAA,EA3CJ,OAAK,EAAA,CAAC,iBAAe;UACE,EAAA,YAAY,SAAI;SAA0B,EAAA,YAAY,SAAI;;GAKzE,EAAA,SAAA,GAAA,EADR,EAyBM,OAzBN,GAyBM,CAtBJ,EAMc,EAAA,EAAA,EAAA;IALZ,OAAM;IACL,QAAM;QAAiB,EAAA,EAAY;;;IAIpC,MAAK;4BAEC,EAAA,YAAY,SAAI,aAAA,GAAA,EADxB,EAIS,UAJT,GAEqB,8BAErB,IAEa,EAAA,YAAY,SAAI,gBAAA,GAAA,EAD7B,EAIS,UAJT,GAEqB,iCAErB,KAAA,GAAA,EACA,EAIS,UAJT,GAEqB,gCAErB,EAAA,CAAA,IAAA,EAAA,IAAA,GAAA;GAGM,EAAA,YAAY,SAAI,UAAA,GAAA,EADxB,EAKS,UALT,GAKS,CAFP,EAA2C,EAAA,EAAA,EAAA,EAA1B,OAAM,mBAAiB,CAAA,EAAA,AAAA,EAAA,OAAA,EAAG,4DAE7C,GAAA,CAAA,CAAA,IAAA,EAAA,IAAA,GAAA;GAEQ,EAAA,YAAY,SAAI,WAAA,GAAA,EADxB,EAKS,UALT,GAKS,CAFP,EAA2C,EAAA,EAAA,EAAA,EAAxB,OAAM,iBAAe,CAAA,EAAA,EAAG,MAC3C,EAAG,EAAA,YAAY,MAAK,EAAA,EAAA,CAAA,CAAA,IAAA,EAAA,IAAA,GAAA"}
@@ -0,0 +1,12 @@
1
+ //#region src/consts/urls.ts
2
+ var e = {
3
+ DEFAULT_PROXY_URL: "https://proxy.scalar.com",
4
+ PRIVACY_POLICY: "https://scalar.com/legal/privacy-policy",
5
+ TERMS_AND_CONDITIONS: "https://scalar.com/legal/terms-and-conditions",
6
+ AGENT_SCALAR_DOCUMENTATION: "https://scalar.com/products/agent/getting-started",
7
+ PROXY_SOURCE_CODE: "https://github.com/scalar/scalar/tree/main/projects/proxy-scalar-com"
8
+ };
9
+ //#endregion
10
+ export { e as URLS };
11
+
12
+ //# sourceMappingURL=urls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"urls.js","names":[],"sources":["../../src/consts/urls.ts"],"sourcesContent":["export const URLS = {\n DEFAULT_PROXY_URL: 'https://proxy.scalar.com',\n PRIVACY_POLICY: 'https://scalar.com/legal/privacy-policy',\n TERMS_AND_CONDITIONS: 'https://scalar.com/legal/terms-and-conditions',\n AGENT_SCALAR_DOCUMENTATION: 'https://scalar.com/products/agent/getting-started',\n PROXY_SOURCE_CODE: 'https://github.com/scalar/scalar/tree/main/projects/proxy-scalar-com',\n} as const\n"],"mappings":";AAAA,IAAa,IAAO;CAClB,mBAAmB;CACnB,gBAAgB;CAChB,sBAAsB;CACtB,4BAA4B;CAC5B,mBAAmB;CACpB"}
@@ -0,0 +1,6 @@
1
+ //#region src/entities/error/constants.ts
2
+ var e = { LIMIT_REACHED: "LIMIT_REACHED" };
3
+ //#endregion
4
+ export { e as AgentErrorCodes };
5
+
6
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","names":[],"sources":["../../../src/entities/error/constants.ts"],"sourcesContent":["export type AgentChatError<T extends string = string, D = unknown> = {\n code: T\n detail: D\n}\n\nexport const AgentErrorCodes = {\n LIMIT_REACHED: 'LIMIT_REACHED',\n} as const\n"],"mappings":";AAKA,IAAa,IAAkB,EAC7B,eAAe,iBAChB"}
@@ -1,3 +1,3 @@
1
- import type { AgentChatError } from './constants';
1
+ import type { AgentChatError } from './constants.js';
2
2
  export declare function createError<const T extends string, D>(code: T, detail: D): AgentChatError<T, D>;
3
3
  //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1,11 @@
1
+ //#region src/entities/error/helpers.ts
2
+ function e(e, t) {
3
+ return {
4
+ code: e,
5
+ detail: t
6
+ };
7
+ }
8
+ //#endregion
9
+ export { e as createError };
10
+
11
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","names":[],"sources":["../../../src/entities/error/helpers.ts"],"sourcesContent":["import type { AgentChatError } from './constants'\n\nexport function createError<const T extends string, D>(code: T, detail: D): AgentChatError<T, D> {\n return {\n code,\n detail,\n }\n}\n"],"mappings":";AAEA,SAAgB,EAAuC,GAAS,GAAiC;AAC/F,QAAO;EACL;EACA;EACD"}
@@ -1,10 +1,10 @@
1
- export { type AgentChatError, AgentErrorCodes, } from './error/constants';
2
- export { createError } from './error/helpers';
3
- export { MAX_PROMPT_SIZE } from './prompt/constants';
4
- export { type ApiMetadata, type DocumentSettings, type RegistryDocument, registryApiMetadata, } from './registry/document';
5
- export { ASK_FOR_AUTHENTICATION_TOOL_NAME, type AskForAuthenticationInput, askForAuthenticationInputSchema, } from './tools/ask-for-authentication';
6
- export { TOOL_NAMESPACE_SLUG_DELIMITER } from './tools/constants';
7
- export { EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME, type ExecuteClientSideRequestToolInput, type ExecuteClientSideRequestToolOutput, executeClientSideRequestToolInputSchema, } from './tools/execute-request';
8
- export { GET_MINI_OPENAPI_SPEC_TOOL_NAME, type GetMiniOpenAPIDocToolInput, type GetMiniOpenAPIDocToolOutput, getMiniOpenAPIDocToolInputSchema, } from './tools/get-mini-openapi-spec';
9
- export { GET_OPENAPI_SPECS_SUMMARY_TOOL_NAME, type GetOpenAPISpecsSummaryToolOutput, } from './tools/get-openapi-spec-summary';
1
+ export { type AgentChatError, AgentErrorCodes, } from './error/constants.js';
2
+ export { createError } from './error/helpers.js';
3
+ export { MAX_PROMPT_SIZE } from './prompt/constants.js';
4
+ export { type ApiMetadata, type DocumentSettings, type RegistryDocument, registryApiMetadata, } from './registry/document.js';
5
+ export { ASK_FOR_AUTHENTICATION_TOOL_NAME, type AskForAuthenticationInput, askForAuthenticationInputSchema, } from './tools/ask-for-authentication.js';
6
+ export { TOOL_NAMESPACE_SLUG_DELIMITER } from './tools/constants.js';
7
+ export { EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME, type ExecuteClientSideRequestToolInput, type ExecuteClientSideRequestToolOutput, executeClientSideRequestToolInputSchema, } from './tools/execute-request.js';
8
+ export { GET_MINI_OPENAPI_SPEC_TOOL_NAME, type GetMiniOpenAPIDocToolInput, type GetMiniOpenAPIDocToolOutput, getMiniOpenAPIDocToolInputSchema, } from './tools/get-mini-openapi-spec.js';
9
+ export { GET_OPENAPI_SPECS_SUMMARY_TOOL_NAME, type GetOpenAPISpecsSummaryToolOutput, } from './tools/get-openapi-spec-summary.js';
10
10
  //# sourceMappingURL=index.d.ts.map
@@ -1,2 +1,10 @@
1
- import { a as e, c as t, d as n, f as r, i, l as a, n as o, o as s, r as c, s as l, t as u, u as d } from "../entities-NWeuOkBB.js";
2
- export { l as ASK_FOR_AUTHENTICATION_TOOL_NAME, d as AgentErrorCodes, i as EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME, o as GET_MINI_OPENAPI_SPEC_TOOL_NAME, u as GET_OPENAPI_SPECS_SUMMARY_TOOL_NAME, a as MAX_PROMPT_SIZE, s as TOOL_NAMESPACE_SLUG_DELIMITER, t as askForAuthenticationInputSchema, r as createError, e as executeClientSideRequestToolInputSchema, c as getMiniOpenAPIDocToolInputSchema, n as registryApiMetadata };
1
+ import { createError as e } from "./error/helpers.js";
2
+ import { registryApiMetadata as t } from "./registry/document.js";
3
+ import { AgentErrorCodes as n } from "./error/constants.js";
4
+ import { MAX_PROMPT_SIZE as r } from "./prompt/constants.js";
5
+ import { ASK_FOR_AUTHENTICATION_TOOL_NAME as i, askForAuthenticationInputSchema as a } from "./tools/ask-for-authentication.js";
6
+ import { TOOL_NAMESPACE_SLUG_DELIMITER as o } from "./tools/constants.js";
7
+ import { EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME as s, executeClientSideRequestToolInputSchema as c } from "./tools/execute-request.js";
8
+ import { GET_MINI_OPENAPI_SPEC_TOOL_NAME as l, getMiniOpenAPIDocToolInputSchema as u } from "./tools/get-mini-openapi-spec.js";
9
+ import { GET_OPENAPI_SPECS_SUMMARY_TOOL_NAME as d } from "./tools/get-openapi-spec-summary.js";
10
+ export { i as ASK_FOR_AUTHENTICATION_TOOL_NAME, n as AgentErrorCodes, s as EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME, l as GET_MINI_OPENAPI_SPEC_TOOL_NAME, d as GET_OPENAPI_SPECS_SUMMARY_TOOL_NAME, r as MAX_PROMPT_SIZE, o as TOOL_NAMESPACE_SLUG_DELIMITER, a as askForAuthenticationInputSchema, e as createError, c as executeClientSideRequestToolInputSchema, u as getMiniOpenAPIDocToolInputSchema, t as registryApiMetadata };
@@ -0,0 +1,6 @@
1
+ //#region src/entities/prompt/constants.ts
2
+ var e = 1e4;
3
+ //#endregion
4
+ export { e as MAX_PROMPT_SIZE };
5
+
6
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","names":[],"sources":["../../../src/entities/prompt/constants.ts"],"sourcesContent":["export const MAX_PROMPT_SIZE = 10_000\n"],"mappings":";AAAA,IAAa,IAAkB"}
@@ -0,0 +1,14 @@
1
+ import e from "zod";
2
+ //#region src/entities/registry/document.ts
3
+ var t = e.object({
4
+ id: e.string(),
5
+ title: e.string(),
6
+ namespace: e.string(),
7
+ currentVersion: e.string(),
8
+ logoUrl: e.url().nullable(),
9
+ slug: e.string()
10
+ });
11
+ //#endregion
12
+ export { t as registryApiMetadata };
13
+
14
+ //# sourceMappingURL=document.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document.js","names":[],"sources":["../../../src/entities/registry/document.ts"],"sourcesContent":["import type { OpenAPIV3_1 } from '@scalar/openapi-types'\nimport type { SecurityScheme } from '@scalar/types/entities'\nimport z from 'zod'\n\nexport const registryApiMetadata = z.object({\n id: z.string(),\n title: z.string(),\n namespace: z.string(),\n currentVersion: z.string(),\n logoUrl: z.url().nullable(),\n slug: z.string(),\n})\n\nexport type ApiMetadata = z.infer<typeof registryApiMetadata> & { removable?: boolean; searchEnabled?: boolean }\n\nexport type RegistryDocument = { namespace: string; slug: string }\n\nexport type DocumentSettings = Record<\n string,\n {\n securitySchemes: SecurityScheme[]\n activeServer: OpenAPIV3_1.ServerObject | undefined\n }\n>\n"],"mappings":";;AAIA,IAAa,IAAsB,EAAE,OAAO;CAC1C,IAAI,EAAE,QAAQ;CACd,OAAO,EAAE,QAAQ;CACjB,WAAW,EAAE,QAAQ;CACrB,gBAAgB,EAAE,QAAQ;CAC1B,SAAS,EAAE,KAAK,CAAC,UAAU;CAC3B,MAAM,EAAE,QAAQ;CACjB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { z as e } from "zod";
2
+ //#region src/entities/tools/ask-for-authentication.ts
3
+ var t = "ask-for-authentication", n = e.object({ uniqueIdentifier: e.string() });
4
+ //#endregion
5
+ export { t as ASK_FOR_AUTHENTICATION_TOOL_NAME, n as askForAuthenticationInputSchema };
6
+
7
+ //# sourceMappingURL=ask-for-authentication.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ask-for-authentication.js","names":[],"sources":["../../../src/entities/tools/ask-for-authentication.ts"],"sourcesContent":["import { z } from 'zod'\n\nexport const ASK_FOR_AUTHENTICATION_TOOL_NAME = 'ask-for-authentication' as const\n\nexport const askForAuthenticationInputSchema = z.object({\n uniqueIdentifier: z.string(),\n})\n\nexport type AskForAuthenticationInput = z.input<typeof askForAuthenticationInputSchema>\n"],"mappings":";;AAEA,IAAa,IAAmC,0BAEnC,IAAkC,EAAE,OAAO,EACtD,kBAAkB,EAAE,QAAQ,EAC7B,CAAC"}
@@ -0,0 +1,6 @@
1
+ //#region src/entities/tools/constants.ts
2
+ var e = "---";
3
+ //#endregion
4
+ export { e as TOOL_NAMESPACE_SLUG_DELIMITER };
5
+
6
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","names":[],"sources":["../../../src/entities/tools/constants.ts"],"sourcesContent":["export const TOOL_NAMESPACE_SLUG_DELIMITER = '---'\n"],"mappings":";AAAA,IAAa,IAAgC"}
@@ -1,6 +1,6 @@
1
1
  import type { Result } from 'neverpanic';
2
2
  import { z } from 'zod';
3
- import type { AgentChatError } from '@/entities/error/constants';
3
+ import type { AgentChatError } from '../../entities/error/constants.js';
4
4
  export declare const EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME: "execute-request";
5
5
  export declare const executeClientSideRequestToolInputSchema: z.ZodObject<{
6
6
  method: z.ZodString;
@@ -0,0 +1,13 @@
1
+ import { z as e } from "zod";
2
+ //#region src/entities/tools/execute-request.ts
3
+ var t = "execute-request", n = e.object({
4
+ method: e.string(),
5
+ path: e.string(),
6
+ headers: e.record(e.string(), e.string()).optional(),
7
+ body: e.string().optional(),
8
+ documentIdentifier: e.string()
9
+ });
10
+ //#endregion
11
+ export { t as EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME, n as executeClientSideRequestToolInputSchema };
12
+
13
+ //# sourceMappingURL=execute-request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute-request.js","names":[],"sources":["../../../src/entities/tools/execute-request.ts"],"sourcesContent":["import type { Result } from 'neverpanic'\nimport { z } from 'zod'\n\nimport type { AgentChatError } from '@/entities/error/constants'\n\nexport const EXECUTE_CLIENT_SIDE_REQUEST_TOOL_NAME = 'execute-request' as const\n\nexport const executeClientSideRequestToolInputSchema = z.object({\n method: z.string(),\n path: z.string(),\n headers: z.record(z.string(), z.string()).optional(),\n body: z.string().optional(),\n documentIdentifier: z.string(),\n})\n\nexport type ExecuteClientSideRequestToolInput = z.input<typeof executeClientSideRequestToolInputSchema>\n\nexport type ExecuteClientSideRequestToolOutput = Result<\n { status: number; responseBody?: unknown; headers: {} },\n | AgentChatError<\n 'FAILED_TO_PARSE_RESPONSE_BODY',\n {\n originalError: unknown\n }\n >\n | AgentChatError<\n 'REQUEST_NOT_OK',\n {\n status: number\n url: string\n responseBody: unknown\n headers: Record<string, string>\n }\n >\n | AgentChatError<\n 'FAILED_TO_FETCH',\n {\n originalError: unknown\n }\n >\n | AgentChatError<\n 'DOCUMENT_SETTINGS_COULD_NOT_BE_DETERMINED',\n {\n documentName: string\n namespace: string\n slug: string\n }\n >\n | AgentChatError<'FAILED_TO_DETERMINE_DOCUMENT', { namespace?: string; slug?: string; documentIdentifier: string }>\n | AgentChatError<'FAILED_TO_EXECUTE_REQUEST', unknown>\n>\n"],"mappings":";;AAKA,IAAa,IAAwC,mBAExC,IAA0C,EAAE,OAAO;CAC9D,QAAQ,EAAE,QAAQ;CAClB,MAAM,EAAE,QAAQ;CAChB,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAC,UAAU;CACpD,MAAM,EAAE,QAAQ,CAAC,UAAU;CAC3B,oBAAoB,EAAE,QAAQ;CAC/B,CAAC"}