From cc3f62a6a18759919e0d0614ff6dca18fba4d9df Mon Sep 17 00:00:00 2001 From: claude Date: Thu, 26 Mar 2026 14:06:51 +0000 Subject: [PATCH] refactor: reorganize proto clients and settings UI Move generated proto imports under the new server api path and align gRPC auth/client usage with the renamed clients. Polish settings UI details by adding a shared language icon and refining Ads VAST table presentation. Co-Authored-By: Claude Opus 4.6 --- components.d.ts | 2 + src/components/icons/LanguageIcon.vue | 19 + .../useSettingsPreferencesQuery.ts | 4 +- src/mocks/videos.ts | 2 +- src/routes/overview/Overview.vue | 2 +- .../overview/components/RecentVideos.vue | 2 +- .../AdsVast/components/AdsVastTable.tsx | 21 +- src/routes/settings/AdsVast/types.ts | 4 +- src/routes/settings/Billing/Billing.vue | 2 +- .../Billing/components/PaymentHistory.tsx | 2 +- .../Billing/components/PlanSelection.tsx | 2 +- .../Billing/components/UpgradePlan.tsx | 2 +- .../components/SecurityLanguageRow.vue | 7 +- src/routes/settings/admin/Payments.vue | 2 +- src/routes/video/CopyVideoModal.vue | 2 +- src/routes/video/DetailVideoModal.vue | 2 +- src/routes/video/Videos.vue | 2 +- .../video/components/VideoBulkActions.vue | 2 +- src/routes/video/components/VideoTable.vue | 2 +- src/server/api/proto/agent/v1/woodpecker.ts | 2734 +++++++++++++++++ .../{gen => api}/proto/app/v1/account.ts | 323 +- src/server/{gen => api}/proto/app/v1/admin.ts | 97 +- src/server/{gen => api}/proto/app/v1/auth.ts | 33 +- .../{gen => api}/proto/app/v1/catalog.ts | 94 +- .../{gen => api}/proto/app/v1/common.ts | 0 .../{gen => api}/proto/app/v1/payments.ts | 25 +- .../{gen => api}/proto/app/v1/videos.ts | 29 +- .../proto/google/protobuf/timestamp.ts | 0 .../proto/google/protobuf/wrappers.ts | 0 src/server/middlewares/authenticate.ts | 4 +- src/server/routes/auth.ts | 6 +- src/server/routes/rpc/admin.ts | 72 +- src/server/routes/rpc/auth.ts | 14 +- src/server/routes/rpc/me.ts | 74 +- src/server/services/grpcClient.ts | 198 +- src/server/utils/index.ts | 2 +- src/server/utils/proto/v1/user.ts | 6 +- src/stores/auth.ts | 2 +- 38 files changed, 3229 insertions(+), 567 deletions(-) create mode 100644 src/components/icons/LanguageIcon.vue create mode 100644 src/server/api/proto/agent/v1/woodpecker.ts rename src/server/{gen => api}/proto/app/v1/account.ts (95%) rename src/server/{gen => api}/proto/app/v1/admin.ts (99%) rename src/server/{gen => api}/proto/app/v1/auth.ts (97%) rename src/server/{gen => api}/proto/app/v1/catalog.ts (96%) rename src/server/{gen => api}/proto/app/v1/common.ts (100%) rename src/server/{gen => api}/proto/app/v1/payments.ts (97%) rename src/server/{gen => api}/proto/app/v1/videos.ts (98%) rename src/server/{gen => api}/proto/google/protobuf/timestamp.ts (100%) rename src/server/{gen => api}/proto/google/protobuf/wrappers.ts (100%) diff --git a/components.d.ts b/components.d.ts index b871514..104cc60 100644 --- a/components.d.ts +++ b/components.d.ts @@ -55,6 +55,7 @@ declare module 'vue' { Home: typeof import('./src/components/icons/Home.vue')['default'] ImageIcon: typeof import('./src/components/icons/ImageIcon.vue')['default'] InfoIcon: typeof import('./src/components/icons/InfoIcon.vue')['default'] + LanguageIcon: typeof import('./src/components/icons/LanguageIcon.vue')['default'] Layout: typeof import('./src/components/icons/Layout.vue')['default'] LayoutDashboard: typeof import('./src/components/icons/LayoutDashboard.vue')['default'] LinkIcon: typeof import('./src/components/icons/LinkIcon.vue')['default'] @@ -144,6 +145,7 @@ declare global { const Home: typeof import('./src/components/icons/Home.vue')['default'] const ImageIcon: typeof import('./src/components/icons/ImageIcon.vue')['default'] const InfoIcon: typeof import('./src/components/icons/InfoIcon.vue')['default'] + const LanguageIcon: typeof import('./src/components/icons/LanguageIcon.vue')['default'] const Layout: typeof import('./src/components/icons/Layout.vue')['default'] const LayoutDashboard: typeof import('./src/components/icons/LayoutDashboard.vue')['default'] const LinkIcon: typeof import('./src/components/icons/LinkIcon.vue')['default'] diff --git a/src/components/icons/LanguageIcon.vue b/src/components/icons/LanguageIcon.vue new file mode 100644 index 0000000..7c61e9e --- /dev/null +++ b/src/components/icons/LanguageIcon.vue @@ -0,0 +1,19 @@ + + \ No newline at end of file diff --git a/src/composables/useSettingsPreferencesQuery.ts b/src/composables/useSettingsPreferencesQuery.ts index 8801370..f864277 100644 --- a/src/composables/useSettingsPreferencesQuery.ts +++ b/src/composables/useSettingsPreferencesQuery.ts @@ -1,6 +1,6 @@ import { client as rpcClient } from '@/api/rpcclient'; -import type { Preferences } from '@/server/gen/proto/app/v1/common'; -import type { UpdatePreferencesRequest } from '@/server/gen/proto/app/v1/account'; +import type { Preferences } from '@/server/api/proto/app/v1/common'; +import type { UpdatePreferencesRequest } from '@/server/api/proto/app/v1/account'; import { useQuery } from '@pinia/colada'; export const SETTINGS_PREFERENCES_QUERY_KEY = ['settings', 'preferences'] as const; diff --git a/src/mocks/videos.ts b/src/mocks/videos.ts index 0ca60db..f5608f3 100644 --- a/src/mocks/videos.ts +++ b/src/mocks/videos.ts @@ -1,4 +1,4 @@ -import type { Video as ModelVideo } from "@/server/gen/proto/app/v1/common"; +import type { Video as ModelVideo } from "@/server/api/proto/app/v1/common"; export const mockVideos: ModelVideo[] = [ { diff --git a/src/routes/overview/Overview.vue b/src/routes/overview/Overview.vue index 98143f6..f2e239a 100644 --- a/src/routes/overview/Overview.vue +++ b/src/routes/overview/Overview.vue @@ -1,6 +1,6 @@