@meistrari/chat-nuxt 1.1.3 → 1.2.1
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/README.md +70 -4
- package/dist/module.d.mts +5 -0
- package/dist/module.json +1 -1
- package/dist/module.mjs +74 -27
- package/dist/runtime/components/chat/conversation-list.d.vue.ts +1 -0
- package/dist/runtime/components/chat/conversation-list.vue +22 -2
- package/dist/runtime/components/chat/conversation-list.vue.d.ts +1 -0
- package/dist/runtime/components/chat/message-list.d.vue.ts +1 -0
- package/dist/runtime/components/chat/message-list.vue +23 -2
- package/dist/runtime/components/chat/message-list.vue.d.ts +1 -0
- package/dist/runtime/composables/useChat.d.ts +2 -1
- package/dist/runtime/composables/useChat.js +32 -3
- package/dist/runtime/composables/useChatApi.js +2 -1
- package/dist/runtime/composables/useConversations.d.ts +6 -3
- package/dist/runtime/composables/useConversations.js +114 -12
- package/dist/runtime/composables/useEmbedConfig.d.ts +11 -6
- package/dist/runtime/composables/useEmbedConfig.js +35 -7
- package/dist/runtime/composables/useIDB.js +4 -0
- package/dist/runtime/composables/usePdf.d.ts +840 -1
- package/dist/runtime/composables/usePdf.js +21 -3
- package/dist/runtime/composables/useWorkspaceContextFiles.d.ts +3 -3
- package/dist/runtime/composables/useWorkspaceContextFiles.js +19 -10
- package/dist/runtime/composables/useWorkspaceExternalSkills.d.ts +1 -1
- package/dist/runtime/composables/useWorkspaceExternalSkills.js +5 -6
- package/dist/runtime/composables/useWorkspacePersonalization.d.ts +1 -1
- package/dist/runtime/composables/useWorkspacePersonalization.js +4 -5
- package/dist/runtime/composables/useWorkspaceSettings.js +11 -12
- package/dist/runtime/embed/components/ChatConfigurationModal.d.vue.ts +25 -0
- package/dist/runtime/embed/components/ChatConfigurationModal.vue +373 -0
- package/dist/runtime/embed/components/ChatConfigurationModal.vue.d.ts +25 -0
- package/dist/runtime/embed/components/ChatEmbed.vue +12 -1
- package/dist/runtime/embed/components/ChatEmbedInner.vue +35 -19
- package/dist/runtime/embed/components/configuration/ChatConfigurationContextFilesTab.d.vue.ts +22 -0
- package/dist/runtime/embed/components/configuration/ChatConfigurationContextFilesTab.vue +133 -0
- package/dist/runtime/embed/components/configuration/ChatConfigurationContextFilesTab.vue.d.ts +22 -0
- package/dist/runtime/embed/components/configuration/ChatConfigurationCredentialsTab.d.vue.ts +10 -0
- package/dist/runtime/embed/components/configuration/ChatConfigurationCredentialsTab.vue +220 -0
- package/dist/runtime/embed/components/configuration/ChatConfigurationCredentialsTab.vue.d.ts +10 -0
- package/dist/runtime/embed/components/configuration/ChatConfigurationExternalSkillsTab.d.vue.ts +32 -0
- package/dist/runtime/embed/components/configuration/ChatConfigurationExternalSkillsTab.vue +222 -0
- package/dist/runtime/embed/components/configuration/ChatConfigurationExternalSkillsTab.vue.d.ts +32 -0
- package/dist/runtime/embed/components/configuration/ChatConfigurationKnowledgeSourcesTab.d.vue.ts +18 -0
- package/dist/runtime/embed/components/configuration/ChatConfigurationKnowledgeSourcesTab.vue +142 -0
- package/dist/runtime/embed/components/configuration/ChatConfigurationKnowledgeSourcesTab.vue.d.ts +18 -0
- package/dist/runtime/embed/components/configuration/ChatConfigurationPersonalizationTab.d.vue.ts +10 -0
- package/dist/runtime/embed/components/configuration/ChatConfigurationPersonalizationTab.vue +37 -0
- package/dist/runtime/embed/components/configuration/ChatConfigurationPersonalizationTab.vue.d.ts +10 -0
- package/dist/runtime/embed/components/configuration/ChatConfigurationTelaToolsTab.d.vue.ts +20 -0
- package/dist/runtime/embed/components/configuration/ChatConfigurationTelaToolsTab.vue +146 -0
- package/dist/runtime/embed/components/configuration/ChatConfigurationTelaToolsTab.vue.d.ts +20 -0
- package/dist/runtime/server/api/conversations/[id]/duplicate.post.js +45 -12
- package/dist/runtime/types/chat.d.ts +2 -1
- package/dist/runtime/types/workspace-settings.d.ts +3 -0
- package/dist/runtime/types/workspace-settings.js +0 -0
- package/dist/runtime/utils/conversation-list-skeleton.d.ts +31 -0
- package/dist/runtime/utils/conversation-list-skeleton.js +12 -0
- package/dist/runtime/utils/file.js +42 -42
- package/dist/types.d.mts +2 -0
- package/package.json +23 -27
- package/dist/runtime/composables/PageNavigation.d.ts +0 -13
- package/dist/runtime/composables/PageNavigation.js +0 -18
- /package/dist/runtime/components/{pdf-preview.d.vue.ts → pdf-preview.client.d.vue.ts} +0 -0
- /package/dist/runtime/components/{pdf-preview.vue → pdf-preview.client.vue} +0 -0
- /package/dist/runtime/components/{pdf-preview.vue.d.ts → pdf-preview.client.vue.d.ts} +0 -0
- /package/dist/runtime/components/{pdf-viewer.d.vue.ts → pdf-viewer.client.d.vue.ts} +0 -0
- /package/dist/runtime/components/{pdf-viewer.vue → pdf-viewer.client.vue} +0 -0
- /package/dist/runtime/components/{pdf-viewer.vue.d.ts → pdf-viewer.client.vue.d.ts} +0 -0
- /package/dist/runtime/public/{github.svg → assets/github.svg} +0 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { TelaCanvas } from '../../../types/tela.js';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
searchQuery: string;
|
|
4
|
+
canvas: TelaCanvas[];
|
|
5
|
+
filteredCanvasTools: TelaCanvas[];
|
|
6
|
+
selectedToolIds: Set<string>;
|
|
7
|
+
allToolsSelected: boolean;
|
|
8
|
+
getProjectName: (projectId: string) => string;
|
|
9
|
+
};
|
|
10
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
11
|
+
"update:searchQuery": (value: string) => any;
|
|
12
|
+
toggleTool: (canvasId: string) => any;
|
|
13
|
+
toggleAll: (selected: boolean | "indeterminate") => any;
|
|
14
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
15
|
+
"onUpdate:searchQuery"?: ((value: string) => any) | undefined;
|
|
16
|
+
onToggleTool?: ((canvasId: string) => any) | undefined;
|
|
17
|
+
onToggleAll?: ((selected: boolean | "indeterminate") => any) | undefined;
|
|
18
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
19
|
+
declare const _default: typeof __VLS_export;
|
|
20
|
+
export default _default;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createError, defineEventHandler, getRouterParam } from "h3";
|
|
2
|
-
import { eq, and } from "drizzle-orm";
|
|
2
|
+
import { eq, and, asc } from "drizzle-orm";
|
|
3
3
|
import { useDb, schema } from "#chat-runtime/server/db";
|
|
4
4
|
import { resolveChatContext } from "#chat-runtime/server/utils/chat-context";
|
|
5
5
|
import { getWorkspaceSettingsUpdatedAt, resolveWorkspaceSettings, serializeResolvedWorkspaceSettings } from "#chat-runtime/server/utils/chat-workspace-settings";
|
|
@@ -27,16 +27,49 @@ export default defineEventHandler(async (event) => {
|
|
|
27
27
|
});
|
|
28
28
|
}
|
|
29
29
|
const trustedSettings = original.appliedSettingsSnapshot ? original.appliedSettingsSnapshot : await resolveWorkspaceSettings(event, context, db);
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
30
|
+
const duplicated = await db.transaction(async (tx) => {
|
|
31
|
+
const [newConversation] = await tx.insert(schema.conversations).values({
|
|
32
|
+
workspaceId: context.workspaceId,
|
|
33
|
+
userId: context.user.id,
|
|
34
|
+
title: `${original.title} (copy)`,
|
|
35
|
+
createdBy: context.user.email,
|
|
36
|
+
model: original.model,
|
|
37
|
+
appliedSettingsAt: getWorkspaceSettingsUpdatedAt(trustedSettings),
|
|
38
|
+
appliedSettingsSnapshot: serializeResolvedWorkspaceSettings(trustedSettings)
|
|
39
|
+
}).returning();
|
|
40
|
+
if (!newConversation) {
|
|
41
|
+
throw createError({
|
|
42
|
+
statusCode: 500,
|
|
43
|
+
statusMessage: "Failed to duplicate conversation"
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
const originalMessages = await tx.select().from(schema.messages).where(eq(schema.messages.conversationId, original.id)).orderBy(asc(schema.messages.createdAt));
|
|
47
|
+
let duplicatedMessages = [];
|
|
48
|
+
if (originalMessages.length > 0) {
|
|
49
|
+
duplicatedMessages = await tx.insert(schema.messages).values(
|
|
50
|
+
originalMessages.map((message) => ({
|
|
51
|
+
conversationId: newConversation.id,
|
|
52
|
+
role: message.role,
|
|
53
|
+
content: message.content,
|
|
54
|
+
status: message.status,
|
|
55
|
+
reasoningData: message.reasoningData,
|
|
56
|
+
files: message.files,
|
|
57
|
+
externalUuid: null,
|
|
58
|
+
ttft: message.ttft,
|
|
59
|
+
createdBy: message.createdBy,
|
|
60
|
+
createdAt: message.createdAt,
|
|
61
|
+
updatedAt: message.updatedAt
|
|
62
|
+
}))
|
|
63
|
+
).returning();
|
|
64
|
+
}
|
|
65
|
+
return {
|
|
66
|
+
...newConversation,
|
|
67
|
+
messages: duplicatedMessages
|
|
68
|
+
};
|
|
69
|
+
});
|
|
70
|
+
logger.info(
|
|
71
|
+
{ originalId: id, duplicatedId: duplicated.id, workspaceId: context.workspaceId },
|
|
72
|
+
"Conversation duplicated"
|
|
73
|
+
);
|
|
41
74
|
return duplicated;
|
|
42
75
|
});
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { InferSelectModel } from 'drizzle-orm';
|
|
2
|
-
import type { conversations, messages, ContextFile as SchemaContextFile, MessageFile as SchemaMessageFile } from '#chat-runtime/server/db/schema';
|
|
2
|
+
import type { conversations, messages, ContextFile as SchemaContextFile, ExternalSkill as SchemaExternalSkill, MessageFile as SchemaMessageFile } from '#chat-runtime/server/db/schema';
|
|
3
3
|
export type ContextFile = SchemaContextFile;
|
|
4
|
+
export type ExternalSkill = SchemaExternalSkill;
|
|
4
5
|
export type MessageFile = SchemaMessageFile;
|
|
5
6
|
export type Conversation = InferSelectModel<typeof conversations>;
|
|
6
7
|
export type Message = InferSelectModel<typeof messages>;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { ChatConfigurationSavePayload, ChatConfigurationTab } from '../embed/components/ChatConfigurationModal.vue.js';
|
|
2
|
+
import type { WorkspaceSettings, WorkspaceSettingsUpdate } from '../composables/useWorkspaceSettings.js';
|
|
3
|
+
export type { ChatConfigurationSavePayload, ChatConfigurationTab, WorkspaceSettings, WorkspaceSettingsUpdate, };
|
|
File without changes
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export declare const conversationListSkeletonRows: readonly [{
|
|
2
|
+
readonly id: "row-1";
|
|
3
|
+
readonly width: "72%";
|
|
4
|
+
}, {
|
|
5
|
+
readonly id: "row-2";
|
|
6
|
+
readonly width: "54%";
|
|
7
|
+
}, {
|
|
8
|
+
readonly id: "row-3";
|
|
9
|
+
readonly width: "64%";
|
|
10
|
+
}, {
|
|
11
|
+
readonly id: "row-4";
|
|
12
|
+
readonly width: "46%";
|
|
13
|
+
}, {
|
|
14
|
+
readonly id: "row-5";
|
|
15
|
+
readonly width: "78%";
|
|
16
|
+
}, {
|
|
17
|
+
readonly id: "row-6";
|
|
18
|
+
readonly width: "58%";
|
|
19
|
+
}, {
|
|
20
|
+
readonly id: "row-7";
|
|
21
|
+
readonly width: "69%";
|
|
22
|
+
}, {
|
|
23
|
+
readonly id: "row-8";
|
|
24
|
+
readonly width: "51%";
|
|
25
|
+
}, {
|
|
26
|
+
readonly id: "row-9";
|
|
27
|
+
readonly width: "74%";
|
|
28
|
+
}, {
|
|
29
|
+
readonly id: "row-10";
|
|
30
|
+
readonly width: "62%";
|
|
31
|
+
}];
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export const conversationListSkeletonRows = [
|
|
2
|
+
{ id: "row-1", width: "72%" },
|
|
3
|
+
{ id: "row-2", width: "54%" },
|
|
4
|
+
{ id: "row-3", width: "64%" },
|
|
5
|
+
{ id: "row-4", width: "46%" },
|
|
6
|
+
{ id: "row-5", width: "78%" },
|
|
7
|
+
{ id: "row-6", width: "58%" },
|
|
8
|
+
{ id: "row-7", width: "69%" },
|
|
9
|
+
{ id: "row-8", width: "51%" },
|
|
10
|
+
{ id: "row-9", width: "74%" },
|
|
11
|
+
{ id: "row-10", width: "62%" }
|
|
12
|
+
];
|
|
@@ -65,53 +65,53 @@ const MIME_TO_EXTENSION = (() => {
|
|
|
65
65
|
return map;
|
|
66
66
|
})();
|
|
67
67
|
const FILE_ICONS = {
|
|
68
|
-
"application/pdf": "/files/pdf.svg",
|
|
69
|
-
"application/msword": "/files/doc.svg",
|
|
70
|
-
"application/vnd.openxmlformats-officedocument.wordprocessingml.document": "/files/doc.svg",
|
|
71
|
-
"application/vnd.ms-excel": "/files/sheet.svg",
|
|
72
|
-
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": "/files/sheet.svg",
|
|
73
|
-
"application/vnd.ms-powerpoint": "/files/presentation.svg",
|
|
74
|
-
"application/vnd.openxmlformats-officedocument.presentationml.presentation": "/files/presentation.svg",
|
|
75
|
-
"text/csv": "/files/sheet.svg",
|
|
76
|
-
"text/plain": "/files/generic.svg",
|
|
77
|
-
"text/markdown": "/files/markdown.svg",
|
|
78
|
-
"application/json": "/files/json.svg",
|
|
79
|
-
"application/xml": "/files/generic.svg",
|
|
80
|
-
"application/zip": "/files/archive.svg",
|
|
81
|
-
"application/x-rar-compressed": "/files/archive.svg",
|
|
82
|
-
"application/x-tar": "/files/archive.svg",
|
|
83
|
-
"application/gzip": "/files/archive.svg",
|
|
84
|
-
"image/jpeg": "/files/image.svg",
|
|
85
|
-
"image/png": "/files/image.svg",
|
|
86
|
-
"image/gif": "/files/image.svg",
|
|
87
|
-
"image/webp": "/files/image.svg",
|
|
88
|
-
"image/svg+xml": "/files/image.svg",
|
|
89
|
-
"video/mp4": "/files/video.svg",
|
|
90
|
-
"video/webm": "/files/video.svg",
|
|
91
|
-
"audio/mpeg": "/files/audio.svg",
|
|
92
|
-
"audio/wav": "/files/audio.svg",
|
|
93
|
-
"audio/ogg": "/files/audio.svg",
|
|
94
|
-
"text/x-python": "/files/python.svg",
|
|
95
|
-
"text/javascript": "/files/javascript.svg",
|
|
96
|
-
"text/typescript": "/files/typescript.svg",
|
|
97
|
-
"text/html": "/files/html.svg",
|
|
98
|
-
"text/css": "/files/css.svg",
|
|
99
|
-
"text/sql": "/files/sql.svg",
|
|
100
|
-
"text/yaml": "/files/yaml.svg",
|
|
101
|
-
"text/x-go": "/files/go.svg",
|
|
102
|
-
"text/x-rust": "/files/rust.svg",
|
|
103
|
-
"text/x-ruby": "/files/ruby.svg",
|
|
104
|
-
"text/x-java": "/files/java.svg",
|
|
105
|
-
"text/x-shellscript": "/files/shell.svg",
|
|
106
|
-
"text/x-c": "/files/c.svg",
|
|
107
|
-
"text/x-cpp": "/files/cpp.svg",
|
|
108
|
-
"unknown": "/files/generic.svg"
|
|
68
|
+
"application/pdf": "/chat-files/pdf.svg",
|
|
69
|
+
"application/msword": "/chat-files/doc.svg",
|
|
70
|
+
"application/vnd.openxmlformats-officedocument.wordprocessingml.document": "/chat-files/doc.svg",
|
|
71
|
+
"application/vnd.ms-excel": "/chat-files/sheet.svg",
|
|
72
|
+
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": "/chat-files/sheet.svg",
|
|
73
|
+
"application/vnd.ms-powerpoint": "/chat-files/presentation.svg",
|
|
74
|
+
"application/vnd.openxmlformats-officedocument.presentationml.presentation": "/chat-files/presentation.svg",
|
|
75
|
+
"text/csv": "/chat-files/sheet.svg",
|
|
76
|
+
"text/plain": "/chat-files/generic.svg",
|
|
77
|
+
"text/markdown": "/chat-files/markdown.svg",
|
|
78
|
+
"application/json": "/chat-files/json.svg",
|
|
79
|
+
"application/xml": "/chat-files/generic.svg",
|
|
80
|
+
"application/zip": "/chat-files/archive.svg",
|
|
81
|
+
"application/x-rar-compressed": "/chat-files/archive.svg",
|
|
82
|
+
"application/x-tar": "/chat-files/archive.svg",
|
|
83
|
+
"application/gzip": "/chat-files/archive.svg",
|
|
84
|
+
"image/jpeg": "/chat-files/image.svg",
|
|
85
|
+
"image/png": "/chat-files/image.svg",
|
|
86
|
+
"image/gif": "/chat-files/image.svg",
|
|
87
|
+
"image/webp": "/chat-files/image.svg",
|
|
88
|
+
"image/svg+xml": "/chat-files/image.svg",
|
|
89
|
+
"video/mp4": "/chat-files/video.svg",
|
|
90
|
+
"video/webm": "/chat-files/video.svg",
|
|
91
|
+
"audio/mpeg": "/chat-files/audio.svg",
|
|
92
|
+
"audio/wav": "/chat-files/audio.svg",
|
|
93
|
+
"audio/ogg": "/chat-files/audio.svg",
|
|
94
|
+
"text/x-python": "/chat-files/python.svg",
|
|
95
|
+
"text/javascript": "/chat-files/javascript.svg",
|
|
96
|
+
"text/typescript": "/chat-files/typescript.svg",
|
|
97
|
+
"text/html": "/chat-files/html.svg",
|
|
98
|
+
"text/css": "/chat-files/css.svg",
|
|
99
|
+
"text/sql": "/chat-files/sql.svg",
|
|
100
|
+
"text/yaml": "/chat-files/yaml.svg",
|
|
101
|
+
"text/x-go": "/chat-files/go.svg",
|
|
102
|
+
"text/x-rust": "/chat-files/rust.svg",
|
|
103
|
+
"text/x-ruby": "/chat-files/ruby.svg",
|
|
104
|
+
"text/x-java": "/chat-files/java.svg",
|
|
105
|
+
"text/x-shellscript": "/chat-files/shell.svg",
|
|
106
|
+
"text/x-c": "/chat-files/c.svg",
|
|
107
|
+
"text/x-cpp": "/chat-files/cpp.svg",
|
|
108
|
+
"unknown": "/chat-files/generic.svg"
|
|
109
109
|
};
|
|
110
110
|
function normalizeMimeType(mimeType) {
|
|
111
111
|
return mimeType.split(";")[0]?.trim() ?? mimeType;
|
|
112
112
|
}
|
|
113
113
|
function getFileIcon(mimeType) {
|
|
114
|
-
return FILE_ICONS[mimeType] ?? "/files/generic.svg";
|
|
114
|
+
return FILE_ICONS[mimeType] ?? "/chat-files/generic.svg";
|
|
115
115
|
}
|
|
116
116
|
function getFileTypeLabel(mimeType) {
|
|
117
117
|
if (mimeType.includes("pdf"))
|
package/dist/types.d.mts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@meistrari/chat-nuxt",
|
|
3
|
-
"version": "1.1
|
|
3
|
+
"version": "1.2.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -8,7 +8,14 @@
|
|
|
8
8
|
"import": "./dist/module.mjs"
|
|
9
9
|
},
|
|
10
10
|
"./assets/css/*": "./dist/runtime/assets/css/*",
|
|
11
|
-
"./types/*":
|
|
11
|
+
"./types/*": {
|
|
12
|
+
"types": "./dist/runtime/types/*.d.ts",
|
|
13
|
+
"import": "./dist/runtime/types/*.js"
|
|
14
|
+
},
|
|
15
|
+
"./utils/*": {
|
|
16
|
+
"types": "./dist/runtime/utils/*.d.ts",
|
|
17
|
+
"import": "./dist/runtime/utils/*.js"
|
|
18
|
+
}
|
|
12
19
|
},
|
|
13
20
|
"main": "./dist/module.mjs",
|
|
14
21
|
"types": "./dist/types.d.mts",
|
|
@@ -18,6 +25,7 @@
|
|
|
18
25
|
"scripts": {
|
|
19
26
|
"build": "mkdir -p .nuxt && { [ -f .nuxt/tsconfig.json ] || printf '{}' > .nuxt/tsconfig.json; } && { [ -f .nuxt/tsconfig.server.json ] || printf '{}' > .nuxt/tsconfig.server.json; } && nuxt-module-build build",
|
|
20
27
|
"dev:prepare": "nuxt-module-build build --stub",
|
|
28
|
+
"smoke:pack": "./scripts/smoke-pack-consumer.sh",
|
|
21
29
|
"lint": "eslint .",
|
|
22
30
|
"lint:fix": "eslint . --fix",
|
|
23
31
|
"lint:attrs": "! grep -rn '[a-z0-9-]![[:space:]>@\"'\"'\"']' --include='*.vue' src/runtime/components/ src/runtime/embed/components/ 2>/dev/null",
|
|
@@ -28,61 +36,49 @@
|
|
|
28
36
|
"db:studio": "infisical run --env=dev -- ./scripts/drizzle.sh studio"
|
|
29
37
|
},
|
|
30
38
|
"peerDependencies": {
|
|
31
|
-
"@iconify/vue": "^5.0.0",
|
|
32
|
-
"@meistrari/auth-nuxt": "^3.4.1",
|
|
33
|
-
"@meistrari/tela-build": "^1.30.0",
|
|
34
|
-
"@sentry/nuxt": "^10.0.0",
|
|
35
|
-
"@vueuse/components": "^12.8.0",
|
|
36
|
-
"@vueuse/core": "^12.8.0",
|
|
37
|
-
"h3": "^1.15.0",
|
|
38
|
-
"markstream-vue": "0.0.3-beta.6",
|
|
39
|
-
"motion": "^11.13.0",
|
|
40
|
-
"nitropack": "^2.10.0",
|
|
41
39
|
"nuxt": "^3.17.0",
|
|
42
|
-
"
|
|
43
|
-
"vue": "^3.5.0",
|
|
44
|
-
"vue-i18n": "^11.0.0"
|
|
40
|
+
"vue": "^3.5.0"
|
|
45
41
|
},
|
|
46
42
|
"dependencies": {
|
|
47
43
|
"@iconify-json/ph": "^1.2.2",
|
|
44
|
+
"@iconify/vue": "^5.0.0",
|
|
45
|
+
"@meistrari/auth-nuxt": "^3.5.0",
|
|
48
46
|
"@meistrari/logger": "^2.1.3",
|
|
49
47
|
"@meistrari/mise-en-place": "^2.5.1",
|
|
50
48
|
"@meistrari/tela-sdk-js": "^2.8.0",
|
|
49
|
+
"@meistrari/tela-build": "^1.30.0",
|
|
51
50
|
"@meistrari/vault-sdk": "^3.0.0",
|
|
51
|
+
"@sentry/nuxt": "^10.0.0",
|
|
52
|
+
"@vueuse/components": "^12.8.0",
|
|
53
|
+
"@vueuse/core": "^12.8.0",
|
|
52
54
|
"beautiful-mermaid": "^1.1.3",
|
|
53
55
|
"dompurify": "^3.3.2",
|
|
54
56
|
"drizzle-orm": "^0.38.0",
|
|
57
|
+
"h3": "^1.15.0",
|
|
58
|
+
"markstream-vue": "0.0.3-beta.6",
|
|
55
59
|
"mermaid": "^11.13.0",
|
|
60
|
+
"motion": "^11.13.0",
|
|
61
|
+
"nitropack": "^2.10.0",
|
|
56
62
|
"pdfjs-dist": "^5.4.530",
|
|
57
63
|
"postgres": "^3.4.5",
|
|
58
64
|
"posthog-js": "^1.364.2",
|
|
65
|
+
"virtua": "^0.42.0",
|
|
59
66
|
"xlsx": "^0.18.5",
|
|
67
|
+
"vue-i18n": "^11.0.0",
|
|
60
68
|
"zod": "^4.1.13"
|
|
61
69
|
},
|
|
62
70
|
"devDependencies": {
|
|
63
71
|
"@antfu/eslint-config": "3.11.2",
|
|
64
|
-
"@iconify/vue": "5.0.0",
|
|
65
|
-
"@meistrari/auth-nuxt": "3.4.1",
|
|
66
|
-
"@meistrari/tela-build": "^1.30.0",
|
|
67
72
|
"@nuxt/module-builder": "^1.0.2",
|
|
68
|
-
"@sentry/nuxt": "^10.38.0",
|
|
69
73
|
"@types/node": "^20.19.0",
|
|
70
|
-
"@vueuse/components": "12.8.2",
|
|
71
|
-
"@vueuse/core": "12.8.2",
|
|
72
74
|
"dotenv-cli": "^11.0.0",
|
|
73
75
|
"drizzle-kit": "^0.30.0",
|
|
74
76
|
"eslint": "9.16.0",
|
|
75
|
-
"h3": "^1.15.1",
|
|
76
|
-
"markstream-vue": "0.0.3-beta.6",
|
|
77
|
-
"motion": "11.13.1",
|
|
78
|
-
"nitropack": "2.10.4",
|
|
79
77
|
"nuxt": "3.17.7",
|
|
80
78
|
"pino": "^10.3.1",
|
|
81
79
|
"pino-pretty": "^13.1.3",
|
|
82
80
|
"typescript": "^5.7.3",
|
|
83
|
-
"virtua": "0.42.0",
|
|
84
81
|
"vitest": "^3.2.1",
|
|
85
|
-
"vue-i18n": "11.3.2",
|
|
86
82
|
"vue-tsc": "^3.2.6"
|
|
87
83
|
}
|
|
88
84
|
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export declare function usePageNavigation(): {
|
|
2
|
-
currentPage: any;
|
|
3
|
-
pageMetadata: {
|
|
4
|
-
readonly '/': {
|
|
5
|
-
readonly title: "Home";
|
|
6
|
-
readonly icon: "i-ph-house";
|
|
7
|
-
};
|
|
8
|
-
readonly '/sample-page': {
|
|
9
|
-
readonly title: "Sample Page";
|
|
10
|
-
readonly icon: "i-ph-stack-simple";
|
|
11
|
-
};
|
|
12
|
-
};
|
|
13
|
-
};
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export function usePageNavigation() {
|
|
2
|
-
const pageMetadata = {
|
|
3
|
-
"/": {
|
|
4
|
-
title: "Home",
|
|
5
|
-
icon: "i-ph-house"
|
|
6
|
-
},
|
|
7
|
-
"/sample-page": {
|
|
8
|
-
title: "Sample Page",
|
|
9
|
-
icon: "i-ph-stack-simple"
|
|
10
|
-
}
|
|
11
|
-
};
|
|
12
|
-
const route = useRoute();
|
|
13
|
-
const currentPage = computed(() => pageMetadata[route.path]);
|
|
14
|
-
return {
|
|
15
|
-
currentPage,
|
|
16
|
-
pageMetadata
|
|
17
|
-
};
|
|
18
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|