@scalar/agent-chat 0.10.12 → 0.10.14
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/dist/App.vue.js +3 -3
- package/dist/App.vue.script.js +24 -20
- package/dist/App.vue.script.js.map +1 -1
- package/dist/Chat.vue.js +3 -3
- package/dist/Chat.vue.script.js +50 -39
- package/dist/Chat.vue.script.js.map +1 -1
- package/dist/_virtual/_plugin-vue_export-helper.js +5 -5
- package/dist/api.js +66 -57
- package/dist/api.js.map +1 -1
- package/dist/client-tools/execute-request.js +84 -60
- package/dist/client-tools/execute-request.js.map +1 -1
- package/dist/components/ActionsDropdown.vue.js +4 -4
- package/dist/components/ActionsDropdown.vue.script.js +29 -25
- package/dist/components/ActionsDropdown.vue.script.js.map +1 -1
- package/dist/components/ApprovalSection.vue.js +4 -4
- package/dist/components/ApprovalSection.vue.script.js +23 -18
- package/dist/components/ApprovalSection.vue.script.js.map +1 -1
- package/dist/components/AuthenticationProvided.vue.js +8 -7
- package/dist/components/AuthenticationProvided.vue.js.map +1 -1
- package/dist/components/AuthenticationRequired.vue.js +8 -7
- package/dist/components/AuthenticationRequired.vue.js.map +1 -1
- package/dist/components/AutosendPaused.vue.js +8 -7
- package/dist/components/AutosendPaused.vue.js.map +1 -1
- package/dist/components/BuildingRequest.vue.js +9 -8
- package/dist/components/BuildingRequest.vue.js.map +1 -1
- package/dist/components/ContextItem.vue.js +4 -4
- package/dist/components/ContextItem.vue.script.js +8 -5
- package/dist/components/ContextItem.vue.script.js.map +1 -1
- package/dist/components/ErrorMessage.vue.js +4 -4
- package/dist/components/ErrorMessage.vue.script.js +15 -12
- package/dist/components/ErrorMessage.vue.script.js.map +1 -1
- package/dist/components/FreeMessagesInfoSection.vue.js +4 -4
- package/dist/components/FreeMessagesInfoSection.vue.script.js +45 -34
- package/dist/components/FreeMessagesInfoSection.vue.script.js.map +1 -1
- package/dist/components/LoadingOpenAPISpecsSummary.vue.js +8 -7
- package/dist/components/LoadingOpenAPISpecsSummary.vue.js.map +1 -1
- package/dist/components/LoadingSearchOpenAPIOperations.vue.js +8 -7
- package/dist/components/LoadingSearchOpenAPIOperations.vue.js.map +1 -1
- package/dist/components/Logo.vue.js +9 -8
- package/dist/components/Logo.vue.js.map +1 -1
- package/dist/components/PaymentSection.vue.js +4 -4
- package/dist/components/PaymentSection.vue.script.js +20 -15
- package/dist/components/PaymentSection.vue.script.js.map +1 -1
- package/dist/components/RequestApproved.vue.js +8 -7
- package/dist/components/RequestApproved.vue.js.map +1 -1
- package/dist/components/RequestFailed.vue.js +9 -8
- package/dist/components/RequestFailed.vue.js.map +1 -1
- package/dist/components/RequestPreview.vue.js +4 -4
- package/dist/components/RequestPreview.vue.script.js +96 -73
- package/dist/components/RequestPreview.vue.script.js.map +1 -1
- package/dist/components/RequestRejected.vue.js +9 -8
- package/dist/components/RequestRejected.vue.js.map +1 -1
- package/dist/components/RequestSuccess.vue.js +8 -7
- package/dist/components/RequestSuccess.vue.js.map +1 -1
- package/dist/components/ResponseBody/ResponseBody.vue.js +3 -3
- package/dist/components/ResponseBody/ResponseBody.vue.script.js +33 -30
- package/dist/components/ResponseBody/ResponseBody.vue.script.js.map +1 -1
- package/dist/components/ResponseBody/ResponseBodyInfo.vue.js +9 -7
- package/dist/components/ResponseBody/ResponseBodyInfo.vue.js.map +1 -1
- package/dist/components/ResponseBody/ResponseBodyPreview.vue.js +4 -4
- package/dist/components/ResponseBody/ResponseBodyPreview.vue.script.js +51 -44
- package/dist/components/ResponseBody/ResponseBodyPreview.vue.script.js.map +1 -1
- package/dist/components/ResponseBody/ResponseBodyRaw.vue.js +3 -3
- package/dist/components/ResponseBody/ResponseBodyRaw.vue.script.js +13 -11
- package/dist/components/ResponseBody/ResponseBodyRaw.vue.script.js.map +1 -1
- package/dist/components/ResponseBody/ResponseBodyToggle.vue.js +3 -3
- package/dist/components/ResponseBody/ResponseBodyToggle.vue.script.js +17 -14
- package/dist/components/ResponseBody/ResponseBodyToggle.vue.script.js.map +1 -1
- package/dist/components/ResponseBody/helpers/media-types.js +37 -35
- package/dist/components/ResponseBody/helpers/media-types.js.map +1 -1
- package/dist/components/ResponseBody/helpers/process-response-body.js +30 -20
- package/dist/components/ResponseBody/helpers/process-response-body.js.map +1 -1
- package/dist/components/SearchPopover.vue.js +4 -4
- package/dist/components/SearchPopover.vue.script.js +52 -42
- package/dist/components/SearchPopover.vue.script.js.map +1 -1
- package/dist/components/Selector.vue.js +3 -3
- package/dist/components/Selector.vue.script.js +54 -45
- package/dist/components/Selector.vue.script.js.map +1 -1
- package/dist/components/SendingRequest.vue.js +9 -8
- package/dist/components/SendingRequest.vue.js.map +1 -1
- package/dist/components/ServerSelector.vue.js +3 -3
- package/dist/components/ServerSelector.vue.script.js +52 -43
- package/dist/components/ServerSelector.vue.script.js.map +1 -1
- package/dist/components/UploadSection.vue.js +4 -4
- package/dist/components/UploadSection.vue.script.js +38 -29
- package/dist/components/UploadSection.vue.script.js.map +1 -1
- package/dist/consts/urls.js +2 -2
- package/dist/consts/urls.js.map +1 -1
- package/dist/entities/error/constants.js +2 -2
- package/dist/entities/error/constants.js.map +1 -1
- package/dist/entities/error/helpers.js +4 -4
- package/dist/entities/error/helpers.js.map +1 -1
- package/dist/entities/index.js +10 -10
- package/dist/entities/prompt/constants.js +2 -2
- package/dist/entities/prompt/constants.js.map +1 -1
- package/dist/entities/registry/document.js +9 -9
- package/dist/entities/registry/document.js.map +1 -1
- package/dist/entities/tools/ask-for-authentication.js +6 -5
- package/dist/entities/tools/ask-for-authentication.js.map +1 -1
- package/dist/entities/tools/execute-request.js +10 -9
- package/dist/entities/tools/execute-request.js.map +1 -1
- package/dist/entities/tools/get-openapi-specs-summary.js +2 -2
- package/dist/entities/tools/get-openapi-specs-summary.js.map +1 -1
- package/dist/entities/tools/search-openapi-operations.js +4 -3
- package/dist/entities/tools/search-openapi-operations.js.map +1 -1
- package/dist/helpers.js +53 -27
- package/dist/helpers.js.map +1 -1
- package/dist/hooks/use-agent-key-documents.js +16 -15
- package/dist/hooks/use-agent-key-documents.js.map +1 -1
- package/dist/hooks/use-chat-approvals.js +27 -24
- package/dist/hooks/use-chat-approvals.js.map +1 -1
- package/dist/hooks/use-chat-error.js +19 -17
- package/dist/hooks/use-chat-error.js.map +1 -1
- package/dist/hooks/use-chat-pending-client-tool-parts.js +10 -8
- package/dist/hooks/use-chat-pending-client-tool-parts.js.map +1 -1
- package/dist/hooks/use-chat-scroll.js +13 -10
- package/dist/hooks/use-chat-scroll.js.map +1 -1
- package/dist/hooks/use-curated-documents.js +9 -8
- package/dist/hooks/use-curated-documents.js.map +1 -1
- package/dist/hooks/use-search.js +25 -16
- package/dist/hooks/use-search.js.map +1 -1
- package/dist/hooks/use-signup-link.js +19 -9
- package/dist/hooks/use-signup-link.js.map +1 -1
- package/dist/hooks/use-term-and-conditions.js +12 -11
- package/dist/hooks/use-term-and-conditions.js.map +1 -1
- package/dist/hooks/use-upload-tmp-document.js +67 -54
- package/dist/hooks/use-upload-tmp-document.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/package.json +9 -2
- package/dist/plugins/persistance.js +18 -10
- package/dist/plugins/persistance.js.map +1 -1
- package/dist/registry/add-documents-to-store.js +39 -33
- package/dist/registry/add-documents-to-store.js.map +1 -1
- package/dist/registry/create-document-name.js +3 -3
- package/dist/registry/create-document-name.js.map +1 -1
- package/dist/state/state.js +176 -132
- package/dist/state/state.js.map +1 -1
- package/dist/style.css +6596 -1
- package/dist/styles/tailwind.config.css +12 -0
- package/dist/views/Catalog/Catalog.vue.js +4 -4
- package/dist/views/Catalog/Catalog.vue.script.js +56 -39
- package/dist/views/Catalog/Catalog.vue.script.js.map +1 -1
- package/dist/views/Chat/Chat.vue.js +4 -4
- package/dist/views/Chat/Chat.vue.script.js +55 -43
- package/dist/views/Chat/Chat.vue.script.js.map +1 -1
- package/dist/views/Chat/Messages/AskForAuthentication.vue.js +4 -4
- package/dist/views/Chat/Messages/AskForAuthentication.vue.script.js +67 -55
- package/dist/views/Chat/Messages/AskForAuthentication.vue.script.js.map +1 -1
- package/dist/views/Chat/Messages/ExecuteRequestTool.vue.js +4 -4
- package/dist/views/Chat/Messages/ExecuteRequestTool.vue.script.js +29 -18
- package/dist/views/Chat/Messages/ExecuteRequestTool.vue.script.js.map +1 -1
- package/dist/views/Chat/Messages/GetOpenAPISpecsSummary.vue.js +3 -3
- package/dist/views/Chat/Messages/GetOpenAPISpecsSummary.vue.script.js +15 -10
- package/dist/views/Chat/Messages/GetOpenAPISpecsSummary.vue.script.js.map +1 -1
- package/dist/views/Chat/Messages/SearchOpenAPIOperationsTool.vue.js +4 -4
- package/dist/views/Chat/Messages/SearchOpenAPIOperationsTool.vue.script.js +55 -40
- package/dist/views/Chat/Messages/SearchOpenAPIOperationsTool.vue.script.js.map +1 -1
- package/dist/views/Chat/Messages/Text.vue.js +3 -3
- package/dist/views/Chat/Messages/Text.vue.script.js +8 -6
- package/dist/views/Chat/Messages/Text.vue.script.js.map +1 -1
- package/dist/views/Layout.vue.js +4 -4
- package/dist/views/Layout.vue.script.js +21 -17
- package/dist/views/Layout.vue.script.js.map +1 -1
- package/dist/views/PromptForm.vue.js +4 -4
- package/dist/views/PromptForm.vue.script.js +214 -170
- package/dist/views/PromptForm.vue.script.js.map +1 -1
- package/dist/views/Settings/Auth.vue.js +3 -3
- package/dist/views/Settings/Auth.vue.script.js +58 -46
- package/dist/views/Settings/Auth.vue.script.js.map +1 -1
- package/dist/views/Settings/DocSettings.vue.js +4 -4
- package/dist/views/Settings/DocSettings.vue.script.js +45 -39
- package/dist/views/Settings/DocSettings.vue.script.js.map +1 -1
- package/dist/views/Settings/Settings.vue.js +4 -4
- package/dist/views/Settings/Settings.vue.script.js +59 -48
- package/dist/views/Settings/Settings.vue.script.js.map +1 -1
- package/dist/views/Start.vue.js +4 -4
- package/dist/views/Start.vue.script.js +40 -33
- package/dist/views/Start.vue.script.js.map +1 -1
- package/dist/vue-styles.css +1341 -0
- package/package.json +17 -10
|
@@ -1,80 +1,93 @@
|
|
|
1
|
-
import { useState
|
|
2
|
-
import { ref
|
|
3
|
-
import { redirectToProxy
|
|
4
|
-
import { z
|
|
1
|
+
import { useState } from "../state/state.js";
|
|
2
|
+
import { ref } from "vue";
|
|
3
|
+
import { redirectToProxy } from "@scalar/helpers/url/redirect-to-proxy";
|
|
4
|
+
import { z } from "zod/mini";
|
|
5
5
|
//#region src/hooks/use-upload-tmp-document.ts
|
|
6
|
-
var
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
var SHOW_UPLOAD_SUCCESS_DELAY = 5e3;
|
|
7
|
+
var TMP_DOC_LS_KEY = "scalar-tmp-doc";
|
|
8
|
+
function saveTmpDocumentInLocalStorage({ namespace, slug }) {
|
|
9
|
+
localStorage.setItem(TMP_DOC_LS_KEY, JSON.stringify({
|
|
10
|
+
namespace,
|
|
11
|
+
slug
|
|
11
12
|
}));
|
|
12
13
|
}
|
|
13
|
-
function
|
|
14
|
-
|
|
15
|
-
if (
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
function getTmpDocFromLocalStorage() {
|
|
15
|
+
const tmpDoc = localStorage.getItem(TMP_DOC_LS_KEY);
|
|
16
|
+
if (!tmpDoc) return;
|
|
17
|
+
return z.object({
|
|
18
|
+
namespace: z.string(),
|
|
19
|
+
slug: z.string()
|
|
20
|
+
}).parse(JSON.parse(tmpDoc));
|
|
19
21
|
}
|
|
20
|
-
function
|
|
21
|
-
localStorage.getItem(
|
|
22
|
+
function removeTmpDocFromLocalStorage() {
|
|
23
|
+
if (!localStorage.getItem(TMP_DOC_LS_KEY)) return;
|
|
24
|
+
localStorage.removeItem(TMP_DOC_LS_KEY);
|
|
22
25
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
/**
|
|
27
|
+
* Handle uploading a temporary OpenAPI document.
|
|
28
|
+
*/
|
|
29
|
+
function useUploadTmpDocument() {
|
|
30
|
+
const state = useState();
|
|
31
|
+
const uploadState = ref();
|
|
32
|
+
function createUrl(path) {
|
|
33
|
+
const fullUrl = `${state.baseUrl}${path}`;
|
|
34
|
+
return redirectToProxy(state.platformProxyUrl, fullUrl);
|
|
28
35
|
}
|
|
29
|
-
async function
|
|
36
|
+
async function uploadTempDocument(document, isAgent = false) {
|
|
30
37
|
try {
|
|
31
|
-
|
|
32
|
-
|
|
38
|
+
uploadState.value = { type: "uploading" };
|
|
39
|
+
const response = await fetch(createUrl(`/core/share/upload/apis${isAgent ? "?source=agent" : ""}`), {
|
|
33
40
|
method: "POST",
|
|
34
41
|
headers: { "Content-Type": "application/json" },
|
|
35
|
-
body: JSON.stringify({ document
|
|
42
|
+
body: JSON.stringify({ document })
|
|
36
43
|
});
|
|
37
|
-
if (!
|
|
38
|
-
|
|
44
|
+
if (!response.ok) {
|
|
45
|
+
uploadState.value = {
|
|
39
46
|
type: "error",
|
|
40
47
|
error: "Failed to upload your OpenAPI document."
|
|
41
48
|
};
|
|
42
49
|
return;
|
|
43
50
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
+
const json = await response.json();
|
|
52
|
+
const { success, data } = z.object({
|
|
53
|
+
url: z.string(),
|
|
54
|
+
namespace: z.string(),
|
|
55
|
+
slug: z.string()
|
|
56
|
+
}).safeParse(json);
|
|
57
|
+
if (!success) {
|
|
58
|
+
uploadState.value = {
|
|
51
59
|
type: "error",
|
|
52
60
|
error: "Failed to process document."
|
|
53
61
|
};
|
|
54
62
|
return;
|
|
55
63
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
namespace:
|
|
60
|
-
slug:
|
|
61
|
-
})
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
64
|
+
uploadState.value = { type: "processing" };
|
|
65
|
+
const embeddingStatusResponse = await fetch(createUrl(`/vector/registry/embeddings/${data.namespace}/${data.slug}`), { method: "GET" });
|
|
66
|
+
saveTmpDocumentInLocalStorage({
|
|
67
|
+
namespace: data.namespace,
|
|
68
|
+
slug: data.slug
|
|
69
|
+
});
|
|
70
|
+
await state.addDocument({
|
|
71
|
+
namespace: data.namespace,
|
|
72
|
+
slug: data.slug,
|
|
73
|
+
removable: false,
|
|
74
|
+
tmp: true
|
|
75
|
+
});
|
|
76
|
+
if (!embeddingStatusResponse.ok) {
|
|
77
|
+
uploadState.value = {
|
|
68
78
|
type: "error",
|
|
69
79
|
error: "Failed to embed document."
|
|
70
80
|
};
|
|
71
81
|
return;
|
|
72
82
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
83
|
+
uploadState.value = { type: "done" };
|
|
84
|
+
state.uploadedTmpDocumentUrl.value = data.url;
|
|
85
|
+
setTimeout(() => {
|
|
86
|
+
uploadState.value = void 0;
|
|
87
|
+
}, SHOW_UPLOAD_SUCCESS_DELAY);
|
|
88
|
+
return data;
|
|
76
89
|
} catch {
|
|
77
|
-
|
|
90
|
+
uploadState.value = {
|
|
78
91
|
type: "error",
|
|
79
92
|
error: "Failed to upload your OpenAPI document."
|
|
80
93
|
};
|
|
@@ -82,11 +95,11 @@ function l() {
|
|
|
82
95
|
}
|
|
83
96
|
}
|
|
84
97
|
return {
|
|
85
|
-
uploadTempDocument
|
|
86
|
-
uploadState
|
|
98
|
+
uploadTempDocument,
|
|
99
|
+
uploadState
|
|
87
100
|
};
|
|
88
101
|
}
|
|
89
102
|
//#endregion
|
|
90
|
-
export {
|
|
103
|
+
export { getTmpDocFromLocalStorage, removeTmpDocFromLocalStorage, useUploadTmpDocument };
|
|
91
104
|
|
|
92
105
|
//# sourceMappingURL=use-upload-tmp-document.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-upload-tmp-document.js","names":[],"sources":["../../src/hooks/use-upload-tmp-document.ts"],"sourcesContent":["import { redirectToProxy } from '@scalar/helpers/url/redirect-to-proxy'\nimport { ref } from 'vue'\nimport { z } from 'zod/mini'\n\nimport { useState } from '@/state/state'\n\nconst SHOW_UPLOAD_SUCCESS_DELAY = 5_000 // 5 seconds\n\nexport type UploadTmpDocumentState =\n | { type: 'error'; error: unknown }\n | { type: 'uploading' }\n | { type: 'processing' }\n | { type: 'loading' }\n | { type: 'done' }\n\nconst TMP_DOC_LS_KEY = 'scalar-tmp-doc'\n\nfunction saveTmpDocumentInLocalStorage({ namespace, slug }: { namespace: string; slug: string }) {\n localStorage.setItem(TMP_DOC_LS_KEY, JSON.stringify({ namespace, slug }))\n}\n\nexport function getTmpDocFromLocalStorage() {\n const tmpDoc = localStorage.getItem(TMP_DOC_LS_KEY)\n if (!tmpDoc) {\n return\n }\n\n return z\n .object({\n namespace: z.string(),\n slug: z.string(),\n })\n .parse(JSON.parse(tmpDoc))\n}\n\nexport function removeTmpDocFromLocalStorage() {\n const tmpDoc = localStorage.getItem(TMP_DOC_LS_KEY)\n if (!tmpDoc) {\n return\n }\n\n localStorage.removeItem(TMP_DOC_LS_KEY)\n}\n\n/**\n * Handle uploading a temporary OpenAPI document.\n */\nexport function useUploadTmpDocument() {\n const state = useState()\n const uploadState = ref<UploadTmpDocumentState>()\n\n function createUrl(path: string) {\n const fullUrl = `${state.baseUrl}${path}`\n return redirectToProxy(state.platformProxyUrl, fullUrl)\n }\n\n async function uploadTempDocument(document: string, isAgent = false) {\n try {\n uploadState.value = {\n type: 'uploading',\n }\n\n const response = await fetch(createUrl(`/core/share/upload/apis${isAgent ? '?source=agent' : ''}`), {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ document }),\n })\n\n if (!response.ok) {\n uploadState.value = {\n type: 'error',\n error: 'Failed to upload your OpenAPI document.',\n }\n\n return\n }\n\n const json = await response.json()\n\n const { success, data } = z.object({ url: z.string(), namespace: z.string(), slug: z.string() }).safeParse(json)\n\n if (!success) {\n uploadState.value = {\n type: 'error',\n error: 'Failed to process document.',\n }\n return\n }\n\n uploadState.value = {\n type: 'processing',\n }\n const embeddingStatusResponse = await fetch(\n createUrl(`/vector/registry/embeddings/${data.namespace}/${data.slug}`),\n {\n method: 'GET',\n },\n )\n\n saveTmpDocumentInLocalStorage({\n namespace: data.namespace,\n slug: data.slug,\n })\n\n await state.addDocument({\n namespace: data.namespace,\n slug: data.slug,\n removable: false,\n tmp: true,\n })\n\n if (!embeddingStatusResponse.ok) {\n uploadState.value = {\n type: 'error',\n error: 'Failed to embed document.',\n }\n return\n }\n\n uploadState.value = { type: 'done' }\n state.uploadedTmpDocumentUrl.value = data.url\n\n setTimeout(() => {\n uploadState.value = undefined\n }, SHOW_UPLOAD_SUCCESS_DELAY)\n\n return data\n } catch {\n uploadState.value = { type: 'error', error: 'Failed to upload your OpenAPI document.' }\n return\n }\n }\n\n return {\n uploadTempDocument,\n uploadState,\n }\n}\n"],"mappings":";;;;;AAMA,IAAM,
|
|
1
|
+
{"version":3,"file":"use-upload-tmp-document.js","names":[],"sources":["../../src/hooks/use-upload-tmp-document.ts"],"sourcesContent":["import { redirectToProxy } from '@scalar/helpers/url/redirect-to-proxy'\nimport { ref } from 'vue'\nimport { z } from 'zod/mini'\n\nimport { useState } from '@/state/state'\n\nconst SHOW_UPLOAD_SUCCESS_DELAY = 5_000 // 5 seconds\n\nexport type UploadTmpDocumentState =\n | { type: 'error'; error: unknown }\n | { type: 'uploading' }\n | { type: 'processing' }\n | { type: 'loading' }\n | { type: 'done' }\n\nconst TMP_DOC_LS_KEY = 'scalar-tmp-doc'\n\nfunction saveTmpDocumentInLocalStorage({ namespace, slug }: { namespace: string; slug: string }) {\n localStorage.setItem(TMP_DOC_LS_KEY, JSON.stringify({ namespace, slug }))\n}\n\nexport function getTmpDocFromLocalStorage() {\n const tmpDoc = localStorage.getItem(TMP_DOC_LS_KEY)\n if (!tmpDoc) {\n return\n }\n\n return z\n .object({\n namespace: z.string(),\n slug: z.string(),\n })\n .parse(JSON.parse(tmpDoc))\n}\n\nexport function removeTmpDocFromLocalStorage() {\n const tmpDoc = localStorage.getItem(TMP_DOC_LS_KEY)\n if (!tmpDoc) {\n return\n }\n\n localStorage.removeItem(TMP_DOC_LS_KEY)\n}\n\n/**\n * Handle uploading a temporary OpenAPI document.\n */\nexport function useUploadTmpDocument() {\n const state = useState()\n const uploadState = ref<UploadTmpDocumentState>()\n\n function createUrl(path: string) {\n const fullUrl = `${state.baseUrl}${path}`\n return redirectToProxy(state.platformProxyUrl, fullUrl)\n }\n\n async function uploadTempDocument(document: string, isAgent = false) {\n try {\n uploadState.value = {\n type: 'uploading',\n }\n\n const response = await fetch(createUrl(`/core/share/upload/apis${isAgent ? '?source=agent' : ''}`), {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ document }),\n })\n\n if (!response.ok) {\n uploadState.value = {\n type: 'error',\n error: 'Failed to upload your OpenAPI document.',\n }\n\n return\n }\n\n const json = await response.json()\n\n const { success, data } = z.object({ url: z.string(), namespace: z.string(), slug: z.string() }).safeParse(json)\n\n if (!success) {\n uploadState.value = {\n type: 'error',\n error: 'Failed to process document.',\n }\n return\n }\n\n uploadState.value = {\n type: 'processing',\n }\n const embeddingStatusResponse = await fetch(\n createUrl(`/vector/registry/embeddings/${data.namespace}/${data.slug}`),\n {\n method: 'GET',\n },\n )\n\n saveTmpDocumentInLocalStorage({\n namespace: data.namespace,\n slug: data.slug,\n })\n\n await state.addDocument({\n namespace: data.namespace,\n slug: data.slug,\n removable: false,\n tmp: true,\n })\n\n if (!embeddingStatusResponse.ok) {\n uploadState.value = {\n type: 'error',\n error: 'Failed to embed document.',\n }\n return\n }\n\n uploadState.value = { type: 'done' }\n state.uploadedTmpDocumentUrl.value = data.url\n\n setTimeout(() => {\n uploadState.value = undefined\n }, SHOW_UPLOAD_SUCCESS_DELAY)\n\n return data\n } catch {\n uploadState.value = { type: 'error', error: 'Failed to upload your OpenAPI document.' }\n return\n }\n }\n\n return {\n uploadTempDocument,\n uploadState,\n }\n}\n"],"mappings":";;;;;AAMA,IAAM,4BAA4B;AASlC,IAAM,iBAAiB;AAEvB,SAAS,8BAA8B,EAAE,WAAW,QAA6C;AAC/F,cAAa,QAAQ,gBAAgB,KAAK,UAAU;EAAE;EAAW;EAAM,CAAC,CAAC;;AAG3E,SAAgB,4BAA4B;CAC1C,MAAM,SAAS,aAAa,QAAQ,eAAe;AACnD,KAAI,CAAC,OACH;AAGF,QAAO,EACJ,OAAO;EACN,WAAW,EAAE,QAAQ;EACrB,MAAM,EAAE,QAAQ;EACjB,CAAC,CACD,MAAM,KAAK,MAAM,OAAO,CAAC;;AAG9B,SAAgB,+BAA+B;AAE7C,KAAI,CADW,aAAa,QAAQ,eAAe,CAEjD;AAGF,cAAa,WAAW,eAAe;;;;;AAMzC,SAAgB,uBAAuB;CACrC,MAAM,QAAQ,UAAU;CACxB,MAAM,cAAc,KAA6B;CAEjD,SAAS,UAAU,MAAc;EAC/B,MAAM,UAAU,GAAG,MAAM,UAAU;AACnC,SAAO,gBAAgB,MAAM,kBAAkB,QAAQ;;CAGzD,eAAe,mBAAmB,UAAkB,UAAU,OAAO;AACnE,MAAI;AACF,eAAY,QAAQ,EAClB,MAAM,aACP;GAED,MAAM,WAAW,MAAM,MAAM,UAAU,0BAA0B,UAAU,kBAAkB,KAAK,EAAE;IAClG,QAAQ;IACR,SAAS,EACP,gBAAgB,oBACjB;IACD,MAAM,KAAK,UAAU,EAAE,UAAU,CAAC;IACnC,CAAC;AAEF,OAAI,CAAC,SAAS,IAAI;AAChB,gBAAY,QAAQ;KAClB,MAAM;KACN,OAAO;KACR;AAED;;GAGF,MAAM,OAAO,MAAM,SAAS,MAAM;GAElC,MAAM,EAAE,SAAS,SAAS,EAAE,OAAO;IAAE,KAAK,EAAE,QAAQ;IAAE,WAAW,EAAE,QAAQ;IAAE,MAAM,EAAE,QAAQ;IAAE,CAAC,CAAC,UAAU,KAAK;AAEhH,OAAI,CAAC,SAAS;AACZ,gBAAY,QAAQ;KAClB,MAAM;KACN,OAAO;KACR;AACD;;AAGF,eAAY,QAAQ,EAClB,MAAM,cACP;GACD,MAAM,0BAA0B,MAAM,MACpC,UAAU,+BAA+B,KAAK,UAAU,GAAG,KAAK,OAAO,EACvE,EACE,QAAQ,OACT,CACF;AAED,iCAA8B;IAC5B,WAAW,KAAK;IAChB,MAAM,KAAK;IACZ,CAAC;AAEF,SAAM,MAAM,YAAY;IACtB,WAAW,KAAK;IAChB,MAAM,KAAK;IACX,WAAW;IACX,KAAK;IACN,CAAC;AAEF,OAAI,CAAC,wBAAwB,IAAI;AAC/B,gBAAY,QAAQ;KAClB,MAAM;KACN,OAAO;KACR;AACD;;AAGF,eAAY,QAAQ,EAAE,MAAM,QAAQ;AACpC,SAAM,uBAAuB,QAAQ,KAAK;AAE1C,oBAAiB;AACf,gBAAY,QAAQ,KAAA;MACnB,0BAA0B;AAE7B,UAAO;UACD;AACN,eAAY,QAAQ;IAAE,MAAM;IAAS,OAAO;IAA2C;AACvF;;;AAIJ,QAAO;EACL;EACA;EACD"}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
export {
|
|
1
|
+
import App_default from "./App.vue.js";
|
|
2
|
+
export { App_default as Chat };
|
package/dist/package.json
CHANGED
|
@@ -10,13 +10,15 @@
|
|
|
10
10
|
"url": "git+https://github.com/scalar/scalar.git",
|
|
11
11
|
"directory": "packages/agent-chat"
|
|
12
12
|
},
|
|
13
|
-
"version": "0.10.
|
|
13
|
+
"version": "0.10.14",
|
|
14
14
|
"engines": {
|
|
15
15
|
"node": ">=22"
|
|
16
16
|
},
|
|
17
17
|
"scripts": {
|
|
18
|
-
"build": "vite build && vue-tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && shx cp package.json dist",
|
|
18
|
+
"build": "vite build && pnpm build:styles && vue-tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && shx cp package.json dist",
|
|
19
|
+
"build:styles": "cp -r src/styles dist && tailwindcss --optimize -i src/style.css -o dist/style.css && cat dist/vue-styles.css >> dist/style.css",
|
|
19
20
|
"build:watch": "vite build --watch",
|
|
21
|
+
"dev": "pnpm playground",
|
|
20
22
|
"playground": "cd playground && vite",
|
|
21
23
|
"test": "vitest --run",
|
|
22
24
|
"types:check": "vue-tsc --noEmit"
|
|
@@ -39,6 +41,9 @@
|
|
|
39
41
|
"require": "./dist/css/*.css",
|
|
40
42
|
"default": "./dist/css/*.css"
|
|
41
43
|
},
|
|
44
|
+
"./style.css": "./dist/style.css",
|
|
45
|
+
"./tailwind.config.css": "./dist/styles/tailwind.config.css",
|
|
46
|
+
"./vue-styles.css": "./dist/vue-styles.css",
|
|
42
47
|
"./entities": {
|
|
43
48
|
"import": "./dist/entities/index.js",
|
|
44
49
|
"types": "./dist/entities/index.d.ts",
|
|
@@ -69,6 +74,8 @@
|
|
|
69
74
|
"zod": "catalog:*"
|
|
70
75
|
},
|
|
71
76
|
"devDependencies": {
|
|
77
|
+
"@scalar/sidebar": "workspace:*",
|
|
78
|
+
"@tailwindcss/cli": "catalog:*",
|
|
72
79
|
"@tailwindcss/vite": "catalog:*",
|
|
73
80
|
"@types/jsdom": "catalog:*",
|
|
74
81
|
"@vitejs/plugin-vue": "catalog:*",
|
|
@@ -1,16 +1,24 @@
|
|
|
1
|
-
import { authStorage
|
|
2
|
-
import { debounce
|
|
1
|
+
import { authStorage } from "../helpers.js";
|
|
2
|
+
import { debounce } from "@scalar/helpers/general/debounce";
|
|
3
3
|
//#region src/plugins/persistance.ts
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Plugin to persist workspace state changes with debounced writes.
|
|
6
|
+
*/
|
|
7
|
+
var persistencePlugin = ({ debounceDelay = 500, maxWait = 1e4, persistAuth = false }) => {
|
|
8
|
+
const { execute } = debounce({
|
|
9
|
+
delay: debounceDelay,
|
|
10
|
+
maxWait
|
|
11
|
+
});
|
|
12
|
+
const authPersistence = authStorage();
|
|
13
|
+
const getPersistAuth = () => {
|
|
14
|
+
if (typeof persistAuth === "function") return persistAuth();
|
|
15
|
+
return persistAuth;
|
|
16
|
+
};
|
|
17
|
+
return { hooks: { onWorkspaceStateChanges(event) {
|
|
18
|
+
if (getPersistAuth() && event.type === "auth") execute("auth", () => authPersistence.setAuth(event.documentName, event.value));
|
|
11
19
|
} } };
|
|
12
20
|
};
|
|
13
21
|
//#endregion
|
|
14
|
-
export {
|
|
22
|
+
export { persistencePlugin };
|
|
15
23
|
|
|
16
24
|
//# sourceMappingURL=persistance.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistance.js","names":[],"sources":["../../src/plugins/persistance.ts"],"sourcesContent":["import { debounce } from '@scalar/helpers/general/debounce'\nimport type { WorkspacePlugin } from '@scalar/workspace-store/workspace-plugin'\n\nimport { authStorage } from '@/helpers'\n\n/**\n * Plugin to persist workspace state changes with debounced writes.\n */\nexport const persistencePlugin = ({\n debounceDelay = 500,\n maxWait = 10000,\n persistAuth = false,\n}: {\n debounceDelay?: number\n /** Maximum time in milliseconds to wait before forcing execution, even with continuous calls. */\n maxWait?: number\n /**\n * Determines whether authentication details should be persisted.\n * Accepts a boolean or a function that returns a boolean.\n * Allows for conditional persistence logic, e.g., based on environment or user settings.\n */\n persistAuth?: boolean | (() => boolean)\n}): WorkspacePlugin => {\n // Debounced execute function for batching similar state changes\n const { execute } = debounce({ delay: debounceDelay, maxWait })\n const authPersistence = authStorage()\n\n const getPersistAuth = () => {\n if (typeof persistAuth === 'function') {\n return persistAuth()\n }\n\n return persistAuth\n }\n\n return {\n hooks: {\n /**\n * Handles all workspace state change events.\n * Each write is debounced by a key to prevent frequent writes for the same entity.\n */\n onWorkspaceStateChanges(event) {\n // Persist auth\n if (getPersistAuth() && event.type === 'auth') {\n execute('auth', () => authPersistence.setAuth(event.documentName, event.value))\n }\n\n // No action for other event types\n return\n },\n },\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"persistance.js","names":[],"sources":["../../src/plugins/persistance.ts"],"sourcesContent":["import { debounce } from '@scalar/helpers/general/debounce'\nimport type { WorkspacePlugin } from '@scalar/workspace-store/workspace-plugin'\n\nimport { authStorage } from '@/helpers'\n\n/**\n * Plugin to persist workspace state changes with debounced writes.\n */\nexport const persistencePlugin = ({\n debounceDelay = 500,\n maxWait = 10000,\n persistAuth = false,\n}: {\n debounceDelay?: number\n /** Maximum time in milliseconds to wait before forcing execution, even with continuous calls. */\n maxWait?: number\n /**\n * Determines whether authentication details should be persisted.\n * Accepts a boolean or a function that returns a boolean.\n * Allows for conditional persistence logic, e.g., based on environment or user settings.\n */\n persistAuth?: boolean | (() => boolean)\n}): WorkspacePlugin => {\n // Debounced execute function for batching similar state changes\n const { execute } = debounce({ delay: debounceDelay, maxWait })\n const authPersistence = authStorage()\n\n const getPersistAuth = () => {\n if (typeof persistAuth === 'function') {\n return persistAuth()\n }\n\n return persistAuth\n }\n\n return {\n hooks: {\n /**\n * Handles all workspace state change events.\n * Each write is debounced by a key to prevent frequent writes for the same entity.\n */\n onWorkspaceStateChanges(event) {\n // Persist auth\n if (getPersistAuth() && event.type === 'auth') {\n execute('auth', () => authPersistence.setAuth(event.documentName, event.value))\n }\n\n // No action for other event types\n return\n },\n },\n }\n}\n"],"mappings":";;;;;;AAQA,IAAa,qBAAqB,EAChC,gBAAgB,KAChB,UAAU,KACV,cAAc,YAWO;CAErB,MAAM,EAAE,YAAY,SAAS;EAAE,OAAO;EAAe;EAAS,CAAC;CAC/D,MAAM,kBAAkB,aAAa;CAErC,MAAM,uBAAuB;AAC3B,MAAI,OAAO,gBAAgB,WACzB,QAAO,aAAa;AAGtB,SAAO;;AAGT,QAAO,EACL,OAAO,EAKL,wBAAwB,OAAO;AAE7B,MAAI,gBAAgB,IAAI,MAAM,SAAS,OACrC,SAAQ,cAAc,gBAAgB,QAAQ,MAAM,cAAc,MAAM,MAAM,CAAC;IAMpF,EACF"}
|
|
@@ -1,41 +1,47 @@
|
|
|
1
|
-
import { createError
|
|
2
|
-
import { createDocumentName
|
|
3
|
-
import { restoreAuthSecretsFromStorage
|
|
4
|
-
import { n
|
|
5
|
-
import { bundle
|
|
6
|
-
import { fetchUrls
|
|
1
|
+
import { createError } from "../entities/error/helpers.js";
|
|
2
|
+
import { createDocumentName } from "./create-document-name.js";
|
|
3
|
+
import { restoreAuthSecretsFromStorage } from "../helpers.js";
|
|
4
|
+
import { n } from "neverpanic";
|
|
5
|
+
import { bundle } from "@scalar/json-magic/bundle";
|
|
6
|
+
import { fetchUrls } from "@scalar/json-magic/bundle/plugins/browser";
|
|
7
7
|
//#region src/registry/add-documents-to-store.ts
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
namespace
|
|
11
|
-
slug
|
|
8
|
+
var loadDocument = n.safeFn(async ({ namespace, slug, workspaceStore, registryDocuments, getAccessToken, registryUrl, config, api, removable }) => {
|
|
9
|
+
const getDocumentResult = await api.getDocument({
|
|
10
|
+
namespace,
|
|
11
|
+
slug
|
|
12
12
|
});
|
|
13
|
-
if (!
|
|
14
|
-
|
|
15
|
-
...
|
|
16
|
-
removable
|
|
13
|
+
if (!getDocumentResult.success) return getDocumentResult;
|
|
14
|
+
registryDocuments.value.push({
|
|
15
|
+
...getDocumentResult.data,
|
|
16
|
+
removable
|
|
17
17
|
});
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
const url = new URL(`/@${namespace}/apis/${slug}/latest`, registryUrl);
|
|
19
|
+
const headers = [];
|
|
20
|
+
const token = getAccessToken?.();
|
|
21
|
+
if (token) headers.push({
|
|
22
|
+
domains: [new URL(registryUrl).host],
|
|
23
|
+
headers: { "x-scalar-auth": token }
|
|
22
24
|
});
|
|
23
|
-
|
|
24
|
-
plugins: [
|
|
25
|
-
treeShake:
|
|
26
|
-
})
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
25
|
+
const document = await bundle(url.toString(), {
|
|
26
|
+
plugins: [fetchUrls({ headers })],
|
|
27
|
+
treeShake: false
|
|
28
|
+
});
|
|
29
|
+
const documentName = createDocumentName(namespace, slug);
|
|
30
|
+
await workspaceStore.addDocument({
|
|
31
|
+
name: documentName,
|
|
32
|
+
document
|
|
33
|
+
}, config);
|
|
34
|
+
workspaceStore.update("x-scalar-active-document", documentName);
|
|
35
|
+
restoreAuthSecretsFromStorage({
|
|
36
|
+
documentName,
|
|
37
|
+
workspaceStore
|
|
38
|
+
});
|
|
39
|
+
return {
|
|
40
|
+
success: true,
|
|
41
|
+
data: getDocumentResult.data
|
|
36
42
|
};
|
|
37
|
-
}, (
|
|
43
|
+
}, (originalError) => createError("UNABLE_TO_LOAD_DOCUMENT", originalError));
|
|
38
44
|
//#endregion
|
|
39
|
-
export {
|
|
45
|
+
export { loadDocument };
|
|
40
46
|
|
|
41
47
|
//# sourceMappingURL=add-documents-to-store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-documents-to-store.js","names":[],"sources":["../../src/registry/add-documents-to-store.ts"],"sourcesContent":["import { bundle } from '@scalar/json-magic/bundle'\nimport { fetchUrls } from '@scalar/json-magic/bundle/plugins/browser'\nimport type { OpenAPIV3_1 } from '@scalar/openapi-types'\nimport type { ApiReferenceConfiguration } from '@scalar/types/api-reference'\nimport type { WorkspaceStore } from '@scalar/workspace-store/client'\nimport { n } from 'neverpanic'\nimport type { Ref } from 'vue'\n\nimport type { Api } from '@/api'\nimport { createError } from '@/entities'\nimport type { ApiMetadata } from '@/entities/registry/document'\nimport { restoreAuthSecretsFromStorage } from '@/helpers'\nimport { createDocumentName } from '@/registry/create-document-name'\n\nexport const loadDocument = n.safeFn(\n async ({\n namespace,\n slug,\n workspaceStore,\n registryDocuments,\n getAccessToken,\n registryUrl,\n config,\n api,\n removable,\n }: {\n namespace: string\n slug: string\n workspaceStore: WorkspaceStore\n getAccessToken?: () => string\n registryDocuments: Ref<ApiMetadata[]>\n registryUrl: string\n config: Partial<ApiReferenceConfiguration>\n api: Api\n removable?: boolean\n }) => {\n const getDocumentResult = await api.getDocument({\n namespace,\n slug,\n })\n\n if (!getDocumentResult.success) {\n return getDocumentResult\n }\n\n registryDocuments.value.push({ ...getDocumentResult.data, removable })\n\n const url = new URL(`/@${namespace}/apis/${slug}/latest`, registryUrl)\n\n const headers: {\n headers: HeadersInit\n domains: string[]\n }[] = []\n\n const token = getAccessToken?.()\n\n if (token) {\n headers.push({\n domains: [new URL(registryUrl).host],\n headers: {\n 'x-scalar-auth': token,\n },\n })\n }\n\n const document: OpenAPIV3_1.Document = await bundle(url.toString(), {\n plugins: [\n fetchUrls({\n headers,\n }),\n ],\n treeShake: false,\n })\n\n const documentName = createDocumentName(namespace, slug)\n\n await workspaceStore.addDocument(\n {\n name: documentName,\n document,\n },\n config,\n )\n\n workspaceStore.update('x-scalar-active-document', documentName)\n\n restoreAuthSecretsFromStorage({ documentName, workspaceStore })\n\n return {\n success: true,\n data: getDocumentResult.data,\n }\n },\n (originalError) => createError('UNABLE_TO_LOAD_DOCUMENT', originalError),\n)\n"],"mappings":";;;;;;;AAcA,IAAa,
|
|
1
|
+
{"version":3,"file":"add-documents-to-store.js","names":[],"sources":["../../src/registry/add-documents-to-store.ts"],"sourcesContent":["import { bundle } from '@scalar/json-magic/bundle'\nimport { fetchUrls } from '@scalar/json-magic/bundle/plugins/browser'\nimport type { OpenAPIV3_1 } from '@scalar/openapi-types'\nimport type { ApiReferenceConfiguration } from '@scalar/types/api-reference'\nimport type { WorkspaceStore } from '@scalar/workspace-store/client'\nimport { n } from 'neverpanic'\nimport type { Ref } from 'vue'\n\nimport type { Api } from '@/api'\nimport { createError } from '@/entities'\nimport type { ApiMetadata } from '@/entities/registry/document'\nimport { restoreAuthSecretsFromStorage } from '@/helpers'\nimport { createDocumentName } from '@/registry/create-document-name'\n\nexport const loadDocument = n.safeFn(\n async ({\n namespace,\n slug,\n workspaceStore,\n registryDocuments,\n getAccessToken,\n registryUrl,\n config,\n api,\n removable,\n }: {\n namespace: string\n slug: string\n workspaceStore: WorkspaceStore\n getAccessToken?: () => string\n registryDocuments: Ref<ApiMetadata[]>\n registryUrl: string\n config: Partial<ApiReferenceConfiguration>\n api: Api\n removable?: boolean\n }) => {\n const getDocumentResult = await api.getDocument({\n namespace,\n slug,\n })\n\n if (!getDocumentResult.success) {\n return getDocumentResult\n }\n\n registryDocuments.value.push({ ...getDocumentResult.data, removable })\n\n const url = new URL(`/@${namespace}/apis/${slug}/latest`, registryUrl)\n\n const headers: {\n headers: HeadersInit\n domains: string[]\n }[] = []\n\n const token = getAccessToken?.()\n\n if (token) {\n headers.push({\n domains: [new URL(registryUrl).host],\n headers: {\n 'x-scalar-auth': token,\n },\n })\n }\n\n const document: OpenAPIV3_1.Document = await bundle(url.toString(), {\n plugins: [\n fetchUrls({\n headers,\n }),\n ],\n treeShake: false,\n })\n\n const documentName = createDocumentName(namespace, slug)\n\n await workspaceStore.addDocument(\n {\n name: documentName,\n document,\n },\n config,\n )\n\n workspaceStore.update('x-scalar-active-document', documentName)\n\n restoreAuthSecretsFromStorage({ documentName, workspaceStore })\n\n return {\n success: true,\n data: getDocumentResult.data,\n }\n },\n (originalError) => createError('UNABLE_TO_LOAD_DOCUMENT', originalError),\n)\n"],"mappings":";;;;;;;AAcA,IAAa,eAAe,EAAE,OAC5B,OAAO,EACL,WACA,MACA,gBACA,mBACA,gBACA,aACA,QACA,KACA,gBAWI;CACJ,MAAM,oBAAoB,MAAM,IAAI,YAAY;EAC9C;EACA;EACD,CAAC;AAEF,KAAI,CAAC,kBAAkB,QACrB,QAAO;AAGT,mBAAkB,MAAM,KAAK;EAAE,GAAG,kBAAkB;EAAM;EAAW,CAAC;CAEtE,MAAM,MAAM,IAAI,IAAI,KAAK,UAAU,QAAQ,KAAK,UAAU,YAAY;CAEtE,MAAM,UAGA,EAAE;CAER,MAAM,QAAQ,kBAAkB;AAEhC,KAAI,MACF,SAAQ,KAAK;EACX,SAAS,CAAC,IAAI,IAAI,YAAY,CAAC,KAAK;EACpC,SAAS,EACP,iBAAiB,OAClB;EACF,CAAC;CAGJ,MAAM,WAAiC,MAAM,OAAO,IAAI,UAAU,EAAE;EAClE,SAAS,CACP,UAAU,EACR,SACD,CAAC,CACH;EACD,WAAW;EACZ,CAAC;CAEF,MAAM,eAAe,mBAAmB,WAAW,KAAK;AAExD,OAAM,eAAe,YACnB;EACE,MAAM;EACN;EACD,EACD,OACD;AAED,gBAAe,OAAO,4BAA4B,aAAa;AAE/D,+BAA8B;EAAE;EAAc;EAAgB,CAAC;AAE/D,QAAO;EACL,SAAS;EACT,MAAM,kBAAkB;EACzB;IAEF,kBAAkB,YAAY,2BAA2B,cAAc,CACzE"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
//#region src/registry/create-document-name.ts
|
|
2
|
-
function
|
|
3
|
-
return `${
|
|
2
|
+
function createDocumentName(namespace, slug) {
|
|
3
|
+
return `${namespace}/${slug}`;
|
|
4
4
|
}
|
|
5
5
|
//#endregion
|
|
6
|
-
export {
|
|
6
|
+
export { createDocumentName };
|
|
7
7
|
|
|
8
8
|
//# sourceMappingURL=create-document-name.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-document-name.js","names":[],"sources":["../../src/registry/create-document-name.ts"],"sourcesContent":["export function createDocumentName(namespace: string, slug: string) {\n return `${namespace}/${slug}`\n}\n"],"mappings":";AAAA,SAAgB,
|
|
1
|
+
{"version":3,"file":"create-document-name.js","names":[],"sources":["../../src/registry/create-document-name.ts"],"sourcesContent":["export function createDocumentName(namespace: string, slug: string) {\n return `${namespace}/${slug}`\n}\n"],"mappings":";AAAA,SAAgB,mBAAmB,WAAmB,MAAc;AAClE,QAAO,GAAG,UAAU,GAAG"}
|