diff --git a/bun.lock b/bun.lock
index 1e859bb..807e4a4 100644
--- a/bun.lock
+++ b/bun.lock
@@ -24,7 +24,7 @@
"@tiptap/suggestion": "^2.12.0",
"@tiptap/vue-3": "^2.12.0",
"@vee-validate/zod": "^4.15.0",
- "@versia/client": "0.1.5",
+ "@versia/client": "0.2.0-alpha.2",
"@videojs-player/vue": "^1.0.0",
"@vite-pwa/nuxt": "^1.0.1",
"@vueuse/core": "^13.2.0",
@@ -270,7 +270,7 @@
"@babel/types": ["@babel/types@7.27.1", "", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1" } }, "sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q=="],
- "@badgateway/oauth2-client": ["@badgateway/oauth2-client@2.4.2", "", {}, "sha512-70Fmzlmn8EfCjjssls8N6E94quBUWnLhu4inPZU2pkwpc6ZvbErkLRvtkYl81KFCvVcuVC0X10QPZVNwjXo2KA=="],
+ "@badgateway/oauth2-client": ["@badgateway/oauth2-client@3.2.0", "", {}, "sha512-EHsoV6oLHot7HeYkIoSxCZApNgBjwNo1OTV9kXIDnmijGAshlVkJreVAAtexFn+sfDKPE0JW5SCPYJV1y4IoMg=="],
"@biomejs/biome": ["@biomejs/biome@1.9.4", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "1.9.4", "@biomejs/cli-darwin-x64": "1.9.4", "@biomejs/cli-linux-arm64": "1.9.4", "@biomejs/cli-linux-arm64-musl": "1.9.4", "@biomejs/cli-linux-x64": "1.9.4", "@biomejs/cli-linux-x64-musl": "1.9.4", "@biomejs/cli-win32-arm64": "1.9.4", "@biomejs/cli-win32-x64": "1.9.4" }, "bin": { "biome": "bin/biome" } }, "sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog=="],
@@ -780,7 +780,7 @@
"@vercel/nft": ["@vercel/nft@0.29.3", "", { "dependencies": { "@mapbox/node-pre-gyp": "^2.0.0", "@rollup/pluginutils": "^5.1.3", "acorn": "^8.6.0", "acorn-import-attributes": "^1.9.5", "async-sema": "^3.1.1", "bindings": "^1.4.0", "estree-walker": "2.0.2", "glob": "^10.4.5", "graceful-fs": "^4.2.9", "node-gyp-build": "^4.2.2", "picomatch": "^4.0.2", "resolve-from": "^5.0.0" }, "bin": { "nft": "out/cli.js" } }, "sha512-aVV0E6vJpuvImiMwU1/5QKkw2N96BRFE7mBYGS7FhXUoS6V7SarQ+8tuj33o7ofECz8JtHpmQ9JW+oVzOoB7MA=="],
- "@versia/client": ["@versia/client@0.1.5", "", { "dependencies": { "@badgateway/oauth2-client": "^2.4.2", "zod": "^3.24.1" } }, "sha512-POD2/IT98EZZ32kWEPc3XUY2zApX94tuBftNWIMyoT04Sp7CPuvv1TT2fxM2kmgrC6kgbh4I6yirPpzVY+FpSA=="],
+ "@versia/client": ["@versia/client@0.2.0-alpha.2", "", { "dependencies": { "@badgateway/oauth2-client": "^3.0.0", "iso-639-1": "^3.1.5", "magic-regexp": "^0.10.0", "zod": "^3.24.2", "zod-openapi": "^4.2.4" } }, "sha512-/x1Z2tyJsfckCOLX8K8XDVs3rd3vX0wfCz20IMTc9uaGRkDTcL7MYzz20WCgOEW/WmnwL3iVf/jVgJm0NzoF4Q=="],
"@videojs-player/vue": ["@videojs-player/vue@1.0.0", "", { "peerDependencies": { "@types/video.js": "7.x", "video.js": "7.x", "vue": "3.x" } }, "sha512-WonTezRfKu3fYdQLt/ta+nuKH6gMZUv8l40Jke/j4Lae7IqeO/+lLAmBnh3ni88bwR+vkFXIlZ2Ci7VKInIYJg=="],
@@ -1516,6 +1516,8 @@
"isexe": ["isexe@3.1.1", "", {}, "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ=="],
+ "iso-639-1": ["iso-639-1@3.1.5", "", {}, "sha512-gXkz5+KN7HrG0Q5UGqSMO2qB9AsbEeyLP54kF1YrMsIxmu+g4BdB7rflReZTSTZGpfj8wywu6pfPBCylPIzGQA=="],
+
"jackspeak": ["jackspeak@3.4.3", "", { "dependencies": { "@isaacs/cliui": "^8.0.2" }, "optionalDependencies": { "@pkgjs/parseargs": "^0.11.0" } }, "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw=="],
"jake": ["jake@10.9.2", "", { "dependencies": { "async": "^3.2.3", "chalk": "^4.0.2", "filelist": "^1.0.4", "minimatch": "^3.1.2" }, "bin": { "jake": "bin/cli.js" } }, "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA=="],
@@ -2444,6 +2446,8 @@
"zod": ["zod@3.25.23", "", {}, "sha512-Od2bdMosahjSrSgJtakrwjMDb1zM1A3VIHCPGveZt/3/wlrTWBya2lmEh2OYe4OIu8mPTmmr0gnLHIWQXdtWBg=="],
+ "zod-openapi": ["zod-openapi@4.2.4", "", { "peerDependencies": { "zod": "^3.21.4" } }, "sha512-tsrQpbpqFCXqVXUzi3TPwFhuMtLN3oNZobOtYnK6/5VkXsNdnIgyNr4r8no4wmYluaxzN3F7iS+8xCW8BmMQ8g=="],
+
"@babel/code-frame/js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="],
"@babel/core/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="],
diff --git a/components/composer/composer.vue b/components/composer/composer.vue
index c38cfe4..0e419aa 100644
--- a/components/composer/composer.vue
+++ b/components/composer/composer.vue
@@ -138,7 +138,7 @@
diff --git a/components/editor/suggestion.ts b/components/editor/suggestion.ts
index 352f188..e9a6d3b 100644
--- a/components/editor/suggestion.ts
+++ b/components/editor/suggestion.ts
@@ -1,15 +1,15 @@
-import { VueRenderer } from "@tiptap/vue-3";
-import tippy, { type Instance } from "tippy.js";
-
import type { MentionNodeAttrs } from "@tiptap/extension-mention";
import type { SuggestionOptions } from "@tiptap/suggestion";
-import type { Account } from "@versia/client/types";
+import { VueRenderer } from "@tiptap/vue-3";
+import type { Account } from "@versia/client/schemas";
import { go } from "fuzzysort";
+import tippy, { type Instance } from "tippy.js";
+import type { z } from "zod";
import MentionList from "./mentions-list.vue";
export type UserData = {
key: string;
- value: Account;
+ value: z.infer;
};
export default {
diff --git a/components/notes/actions.vue b/components/notes/actions.vue
index 9cae48b..d9b22c3 100644
--- a/components/notes/actions.vue
+++ b/components/notes/actions.vue
@@ -17,8 +17,10 @@
diff --git a/components/notes/attachments.vue b/components/notes/attachments.vue
index c5be956..1940e14 100644
--- a/components/notes/attachments.vue
+++ b/components/notes/attachments.vue
@@ -6,10 +6,11 @@
diff --git a/components/notes/attachments/audio.vue b/components/notes/attachments/audio.vue
index fae6236..76d368e 100644
--- a/components/notes/attachments/audio.vue
+++ b/components/notes/attachments/audio.vue
@@ -5,10 +5,11 @@
diff --git a/components/notes/attachments/base.vue b/components/notes/attachments/base.vue
index 4655e07..1b315d9 100644
--- a/components/notes/attachments/base.vue
+++ b/components/notes/attachments/base.vue
@@ -48,8 +48,9 @@
diff --git a/components/notes/attachments/file.vue b/components/notes/attachments/file.vue
index 744d21e..07f745a 100644
--- a/components/notes/attachments/file.vue
+++ b/components/notes/attachments/file.vue
@@ -8,11 +8,12 @@
diff --git a/components/notes/attachments/image.vue b/components/notes/attachments/image.vue
index 1f5a395..1fd397f 100644
--- a/components/notes/attachments/image.vue
+++ b/components/notes/attachments/image.vue
@@ -5,10 +5,11 @@
diff --git a/components/notes/attachments/video.vue b/components/notes/attachments/video.vue
index b10aa09..daf7e8e 100644
--- a/components/notes/attachments/video.vue
+++ b/components/notes/attachments/video.vue
@@ -5,10 +5,11 @@
diff --git a/components/notes/content.vue b/components/notes/content.vue
index c827948..da04f63 100644
--- a/components/notes/content.vue
+++ b/components/notes/content.vue
@@ -13,7 +13,8 @@
diff --git a/components/preferences/emojis/table.vue b/components/preferences/emojis/table.vue
index 0d1ff83..bf091d4 100644
--- a/components/preferences/emojis/table.vue
+++ b/components/preferences/emojis/table.vue
@@ -33,7 +33,7 @@ import {
getSortedRowModel,
useVueTable,
} from "@tanstack/vue-table";
-import type { Emoji } from "@versia/client/types";
+import type { CustomEmoji } from "@versia/client/schemas";
import {
ArrowDownAZ,
ArrowUpAz,
@@ -45,13 +45,14 @@ import {
Plus,
} from "lucide-vue-next";
import { ref } from "vue";
+import type { z } from "zod";
import BatchDropdown from "./batch-dropdown.vue";
import Dropdown from "./dropdown.vue";
import Uploader from "./uploader.vue";
// No destructuring props to avoid reactivity issues
const props = defineProps<{
- emojis: Emoji[];
+ emojis: z.infer[];
canUpload: boolean;
}>();
@@ -64,7 +65,7 @@ const valueUpdater = >(updaterOrValue: T, ref: Ref) => {
: updaterOrValue;
};
-const columns: ColumnDef[] = [
+const columns: ColumnDef>[] = [
{
id: "select",
header: ({ table }) => (
diff --git a/components/preferences/emojis/uploader.vue b/components/preferences/emojis/uploader.vue
index 18404ad..added86 100644
--- a/components/preferences/emojis/uploader.vue
+++ b/components/preferences/emojis/uploader.vue
@@ -160,7 +160,7 @@
diff --git a/components/profiles/profile-fields.vue b/components/profiles/profile-fields.vue
index 890a9ed..a0d68e0 100644
--- a/components/profiles/profile-fields.vue
+++ b/components/profiles/profile-fields.vue
@@ -8,10 +8,11 @@
\ No newline at end of file
+
diff --git a/components/profiles/profile.vue b/components/profiles/profile.vue
index ad80bcb..a0f393a 100644
--- a/components/profiles/profile.vue
+++ b/components/profiles/profile.vue
@@ -66,9 +66,10 @@
diff --git a/components/sidebars/account/account-manager.vue b/components/sidebars/account/account-manager.vue
index 4de1c6f..fb0341f 100644
--- a/components/sidebars/account/account-manager.vue
+++ b/components/sidebars/account/account-manager.vue
@@ -44,8 +44,7 @@
\ No newline at end of file
+
diff --git a/components/timelines/global.vue b/components/timelines/global.vue
index da3f531..d031191 100644
--- a/components/timelines/global.vue
+++ b/components/timelines/global.vue
@@ -1,11 +1,11 @@
-
\ No newline at end of file
+
diff --git a/components/timelines/home.vue b/components/timelines/home.vue
index 195d573..5179486 100644
--- a/components/timelines/home.vue
+++ b/components/timelines/home.vue
@@ -1,13 +1,12 @@
-
-
\ No newline at end of file
+
diff --git a/components/timelines/local.vue b/components/timelines/local.vue
index 0395ec8..2d659c3 100644
--- a/components/timelines/local.vue
+++ b/components/timelines/local.vue
@@ -1,11 +1,11 @@
-
\ No newline at end of file
+
diff --git a/components/timelines/notifications.vue b/components/timelines/notifications.vue
index 74d69a4..013a9c4 100644
--- a/components/timelines/notifications.vue
+++ b/components/timelines/notifications.vue
@@ -1,11 +1,10 @@
-
\ No newline at end of file
+
diff --git a/components/timelines/public.vue b/components/timelines/public.vue
index 3ada22e..8a4f4a7 100644
--- a/components/timelines/public.vue
+++ b/components/timelines/public.vue
@@ -1,11 +1,10 @@
-
\ No newline at end of file
+
diff --git a/components/timelines/timeline-item.vue b/components/timelines/timeline-item.vue
index 52a8b75..82aa22e 100644
--- a/components/timelines/timeline-item.vue
+++ b/components/timelines/timeline-item.vue
@@ -1,15 +1,16 @@
-
diff --git a/components/timelines/timeline.vue b/components/timelines/timeline.vue
index e0caf1b..d5236fe 100644
--- a/components/timelines/timeline.vue
+++ b/components/timelines/timeline.vue
@@ -40,8 +40,9 @@