From 9cfceb688c7b2190456283c66fa29b901c7c9444 Mon Sep 17 00:00:00 2001 From: artem Date: Fri, 4 Sep 2026 17:09:36 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BE=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=B1=D0=B8=D0=B1=D0=BB=D0=B8=D0=BE=D1=82=D0=B5=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/demo.yaml | 22 +- .roo/memory-bank/activeContext.md | 291 + .roo/memory-bank/productContext.md | 26 + .roo/memory-bank/progress.md | 73 + .roo/memory-bank/projectbrief.md | 27 + .roo/memory-bank/systemPatterns.md | 65 + .roo/memory-bank/techContext.md | 45 + .../rules-architect/architect-instructions.md | 74 + .roo/rules-code/coder-instructions.md | 46 + .../orchestrator-instructions.md | 42 + .roo/rules/common.md | 99 + .roo/rules/memory-bank.md | 35 + README.md | 2 +- eslint.config.mjs | 60 +- package.json | 12 +- src/components/VuesticLogo.vue | 15 +- .../AppLayoutNavigation.vue | 6 +- src/components/icons/VaZoomOut.vue | 61 +- .../navbar/components/AppNavbarActions.vue | 3 - .../components/dropdowns/ProfileDropdown.vue | 11 +- src/components/sidebar/AppSidebar.vue | 5 +- src/components/sidebar/NavigationRoutes.ts | 44 +- src/layouts/AppLayout.vue | 2 +- src/main.ts | 88 +- src/pages/auth/CheckTheEmail.vue | 59 +- src/pages/auth/Login.vue | 46 +- src/pages/auth/Logout.vue | 12 +- src/pages/auth/RecoverPassword.vue | 33 +- src/pages/auth/Signup.vue | 41 +- .../preferences/modals/EditNameModal.vue | 40 +- .../preferences/modals/ResetPasswordModal.vue | 51 +- .../preferences-header/PreferencesHeader.vue | 93 +- src/pages/preferences/settings/Settings.vue | 2 +- src/pages/routes/Route.vue | 249 +- src/pages/workouts/Definitions.vue | 145 +- src/pages/workouts/Feed.vue | 129 +- src/pages/workouts/WorkoutItem.vue | 75 +- src/pages/workouts/WorkoutList.vue | 60 +- src/pages/workouts/WorkoutPublicItem.vue | 75 +- src/pages/workouts/WorkoutUpload.vue | 128 +- src/pages/workouts/components/GetWorkout.ts | 184 +- .../workouts/components/LineWithLineChart.ts | 44 +- src/pages/workouts/components/WorkoutItem.vue | 1030 +- .../workouts/components/WorkoutListItem.vue | 244 +- src/router/index.ts | 8 +- src/services/utils.ts | 2 +- src/stores/user-store.ts | 13 +- yarn.lock | 8922 +++++++++-------- 48 files changed, 6997 insertions(+), 5842 deletions(-) create mode 100644 .roo/memory-bank/activeContext.md create mode 100644 .roo/memory-bank/productContext.md create mode 100644 .roo/memory-bank/progress.md create mode 100644 .roo/memory-bank/projectbrief.md create mode 100644 .roo/memory-bank/systemPatterns.md create mode 100644 .roo/memory-bank/techContext.md create mode 100644 .roo/rules-architect/architect-instructions.md create mode 100644 .roo/rules-code/coder-instructions.md create mode 100644 .roo/rules-orchestrator/orchestrator-instructions.md create mode 100644 .roo/rules/common.md create mode 100644 .roo/rules/memory-bank.md diff --git a/.gitea/workflows/demo.yaml b/.gitea/workflows/demo.yaml index a769718..9c37024 100644 --- a/.gitea/workflows/demo.yaml +++ b/.gitea/workflows/demo.yaml @@ -8,8 +8,8 @@ jobs: container: image: catthehacker/ubuntu:act-latest steps: - - name: Checkout - uses: actions/checkout@v2 # Required to mount the Github Workspace to a volume + - name: Checkout + uses: actions/checkout@v2 # Required to mount the Github Workspace to a volume - name: Login to Docker Hub uses: https://github.com/docker/login-action@v3 with: @@ -22,12 +22,12 @@ jobs: context: . push: true tags: gitea.webart-tech.ru/webart/strava-frontend:${{ gitea.sha }} - - name: Deploy - run: | - git config --global user.email "deploy@deploy.deploy" - git clone https://${{ secrets.DOCKER_USERNAME }}:${{ secrets.DOCKER_PASSWORD }}@gitea.webart-tech.ru/webart/kuber-deploy ./deploy - ls ./ - cd ./deploy - sed -i -E 's/strava-frontend:.+/strava-frontend:${{ gitea.sha }}/g' strava.yml - git commit -am 'auto-deploy' - git push https://${{ secrets.DOCKER_USERNAME }}:${{ secrets.DOCKER_PASSWORD }}@gitea.webart-tech.ru/webart/kuber-deploy \ No newline at end of file + - name: Deploy + run: | + git config --global user.email "deploy@deploy.deploy" + git clone https://${{ secrets.DOCKER_USERNAME }}:${{ secrets.DOCKER_PASSWORD }}@gitea.webart-tech.ru/webart/kuber-deploy ./deploy + ls ./ + cd ./deploy + sed -i -E 's/strava-frontend:.+/strava-frontend:${{ gitea.sha }}/g' strava.yml + git commit -am 'auto-deploy' + git push https://${{ secrets.DOCKER_USERNAME }}:${{ secrets.DOCKER_PASSWORD }}@gitea.webart-tech.ru/webart/kuber-deploy diff --git a/.roo/memory-bank/activeContext.md b/.roo/memory-bank/activeContext.md new file mode 100644 index 0000000..334a28d --- /dev/null +++ b/.roo/memory-bank/activeContext.md @@ -0,0 +1,291 @@ +# Active Context — Strava Frontend + +## Task State + +- task_id: TASK-DEPS-UPDATE-W2c +- status: success +- parent_task: TASK-DEPS-UPDATE (safe dependency update; Storybook 8 EXCLUDED as high-risk) +- summary: W2b DONE + Architect-verified (TS 5.8.3, vue-tsc 2.2.12). Now W2c: vite 4→5 + @vitejs/plugin-vue 4→5. + +## W2b acceptance criteria + +- `vue-tsc` resolved to 2.x and `typescript` to 5.8.x in yarn.lock; NO other package moved to a new major +- `yarn lint` — 0 errors; `yarn build` — green (vue-tsc 2 type-check 0 errors, bundle built) +- Minimal type-only fixes in `src/` allowed only if required by the stricter checker; each documented with justification +- Memory Bank: status `success` + Success Report (old/new versions, full list of src/ fixes with justification) + +## Wave plan (each wave = one atomic task, verified independently) + +- **W0a (TASK-DEPS-UPDATE-W0a, success)**: Fix everything that hard-blocks `yarn build`: + - `LineWithLineChart.ts(41)` TS2532 "Object is possibly 'undefined'" (labels can be undefined) — fix via non-null assertion or guarded length. + - SFC parsing errors: `src/pages/workouts/components/WorkoutItem.vue:260` (`Unexpected token {`) and `WorkoutListItem.vue:60` (`'interface' is reserved`). Root-cause candidates: TS syntax in a plain ` diff --git a/src/components/app-layout-navigation/AppLayoutNavigation.vue b/src/components/app-layout-navigation/AppLayoutNavigation.vue index e8e6aaa..462f6eb 100644 --- a/src/components/app-layout-navigation/AppLayoutNavigation.vue +++ b/src/components/app-layout-navigation/AppLayoutNavigation.vue @@ -29,7 +29,9 @@ import { useColors } from "vuestic-ui"; import VaIconMenuCollapsed from "../icons/VaIconMenuCollapsed.vue"; import { storeToRefs } from "pinia"; import { useGlobalStore } from "../../stores/global-store"; -import NavigationRoutes from "../sidebar/NavigationRoutes"; +import NavigationRoutes, { + type INavigationRoute, +} from "../sidebar/NavigationRoutes"; const { isSidebarMinimized } = storeToRefs(useGlobalStore()); @@ -44,7 +46,7 @@ type BreadcrumbNavigationItem = { }; const findRouteName = (name: string) => { - const traverse = (routers: any[]): string => { + const traverse = (routers: INavigationRoute[]): string => { for (const router of routers) { if (router.name === name) { return router.displayName; diff --git a/src/components/icons/VaZoomOut.vue b/src/components/icons/VaZoomOut.vue index 125dde9..9049bb9 100644 --- a/src/components/icons/VaZoomOut.vue +++ b/src/components/icons/VaZoomOut.vue @@ -1,33 +1,36 @@ - - - - \ No newline at end of file +} + diff --git a/src/components/navbar/components/AppNavbarActions.vue b/src/components/navbar/components/AppNavbarActions.vue index 158108a..cac783b 100644 --- a/src/components/navbar/components/AppNavbarActions.vue +++ b/src/components/navbar/components/AppNavbarActions.vue @@ -12,9 +12,6 @@ import ProfileDropdown from "./dropdowns/ProfileDropdown.vue"; defineProps({ isMobile: { type: Boolean, default: false }, }); - -import { useI18n } from "vue-i18n"; -const { t } = useI18n(); \ No newline at end of file + diff --git a/src/pages/preferences/settings/Settings.vue b/src/pages/preferences/settings/Settings.vue index 27b0344..76bd42b 100644 --- a/src/pages/preferences/settings/Settings.vue +++ b/src/pages/preferences/settings/Settings.vue @@ -43,7 +43,7 @@ > Сбросить пароль - + - - + + \ No newline at end of file + diff --git a/src/pages/workouts/Definitions.vue b/src/pages/workouts/Definitions.vue index 6031cc1..fdd07a6 100644 --- a/src/pages/workouts/Definitions.vue +++ b/src/pages/workouts/Definitions.vue @@ -1,78 +1,77 @@ \ No newline at end of file +export const speedConvert = (speed: number) => { + return Math.round(speed * 3.6); +}; +export type ChartDataset = { + radius: number; + label: string; + backgroundColor: string; + borderColor: string; + data: Array; +}; +export type ChartData = { + labels: Array; + datasets: Array; +}; +export default {}; + diff --git a/src/pages/workouts/Feed.vue b/src/pages/workouts/Feed.vue index 4b85eb5..fcfcfb7 100644 --- a/src/pages/workouts/Feed.vue +++ b/src/pages/workouts/Feed.vue @@ -1,85 +1,81 @@ -