fix(auth): secure sessions and app routing

Validate sessions against the API, honor configurable base paths, and route unknown pages to 404. Keep development ports stable so user and admin apps cannot be confused.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
2026-09-24 20:14:11 +03:30
co-authored by Copilot
parent c0c2221d91
commit adb6ca47cd
56 changed files with 160 additions and 406 deletions
+1
View File
@@ -0,0 +1 @@
import{D as e,E as t,Et as n,G as r,J as i,Kt as a,N as o,O as s,P as c,T as l,Xt as u,Yt as d,Z as f,b as p,g as m,h,t as g,vt as _,w as v}from"./_plugin-vue_export-helper-Bo3WtfwJ.js";import{o as y}from"./format-C72AoJ2H.js";import{t as b}from"./catalog-CIw6in_a.js";import{i as x}from"./index-BAQfYU-Q.js";import{t as S}from"./IconChevronBack-DfGoZJJk.js";import{t as C}from"./SearchField-BMLbKLPW.js";import{t as ee}from"./PageSkeleton-DHtB6RUa.js";import{i as te,n as ne,r as w,t as T}from"./catalogNavigation-BKzzgMwI.js";import{t as E}from"./crm-CooNUbmr.js";import{t as D}from"./IconSearch-BUr8iOwb.js";import{t as O}from"./useGoBack-TJZZv7or.js";var k={class:`page calite-hub`},A={class:`calite-hub__nav`},j={class:`calite-hub__nav-end`},M={class:`page__scroll page__scroll--with-nav calite-hub__scroll`},N={class:`calite-hub__chips`,role:`tablist`,"aria-label":`مرتب‌سازی کالیته‌ها`},P=[`onClick`],F={key:1,class:`calite-hub__empty`},I={key:2,class:`calite-hub__list`},L=[`onClick`],R={key:0,class:`calite-card__badge`},z={class:`calite-card__copy`,dir:`rtl`},re={class:`mr-4 text-white`},B={class:`text-lg font-bold`},V={class:`text-md`},H={class:`text-xs mt-4`},U=g(c({__name:`CatalogsHubView`,setup(c){let g=h(),U=m(),{goBack:W}=O(`/`),G=b(),K=E(),q=_([]),J=_([]),Y=_(!0),X=_(``),Z=_(null),Q=_(`all`),ie=[{id:`all`,label:`همه`},{id:`newest`,label:`جدیدترین`},{id:`popular`,label:`محبوب‌ترین`},{id:`season`,label:`بر اساس فصل`}],ae=v(()=>{let e=ne(q.value,J.value);return e.length?e:te}),$=v(()=>w(ae.value,Q.value,X.value));r(async()=>{try{let e=await G.loadCompanies(),[t,n]=await Promise.all([Promise.all(e.map(e=>G.loadCatalogs(e.id))),K.loadBrowseProducts().catch(()=>[])]);q.value=t.flat(),J.value=n;let r=String(g.query.id??``);r&&q.value.some(e=>e.id===r)&&await T(U,r,J.value)}catch{q.value=[]}finally{Y.value=!1}});function oe(e){T(U,e,J.value)}function se(){Z.value?.focus()}function ce(e){let t=e.season===`winter`?`مناسب زمستان`:e.season===`summer`?`مناسب تابستان`:`مناسب چهار فصل`;return`${y(e.patternCount)} طرح • ${t}`}return(r,c)=>(i(),s(`div`,k,[l(`header`,A,[l(`button`,{type:`button`,class:`icon-btn mobile-only`,"aria-label":`بازگشت`,onClick:c[0]||=(...e)=>n(W)&&n(W)(...e)},[o(S,{size:20})]),c[2]||=l(`h1`,null,`کالیته‌ها`,-1),l(`div`,j,[o(x,{variant:`inline`,class:`mobile-only`}),l(`button`,{type:`button`,class:`icon-btn mobile-only`,"aria-label":`جستجو`,onClick:se},[o(D,{size:20})])])]),l(`div`,M,[c[4]||=l(`p`,{class:`calite-hub__lead`},`مجموعه‌ای از بهترین پارچه‌ها، در یک نگاه`,-1),o(C,{ref_key:`searchFieldRef`,ref:Z,modelValue:X.value,"onUpdate:modelValue":c[1]||=e=>X.value=e,class:`calite-hub__search`,placeholder:`جستجوی نام کالیته...`},null,8,[`modelValue`]),l(`div`,N,[(i(),s(p,null,f(ie,e=>l(`button`,{key:e.id,type:`button`,class:a([`calite-chip`,{"is-on":Q.value===e.id}]),onClick:t=>Q.value=e.id},u(e.label),11,P)),64))]),Y.value?(i(),t(ee,{key:0,variant:`cards`,rows:4})):$.value.length?(i(),s(`div`,I,[(i(!0),s(p,null,f($.value,t=>(i(),s(`button`,{key:t.id,type:`button`,class:`calite-card`,dir:`ltr`,onClick:e=>oe(t.id)},[l(`span`,{class:`calite-card__photo`,style:d(t.imageUrl?{backgroundImage:`url(${t.imageUrl})`}:void 0)},null,4),t.badge?(i(),s(`span`,R,u(t.badge===`new`?`جدید`:`پرفروش`),1)):e(``,!0),l(`div`,z,[c[3]||=l(`svg`,{class:`calite-card__arrow`,width:`12`,height:`16`,viewBox:`0 0 8 12`,fill:`none`,"aria-hidden":`true`},[l(`path`,{d:`M1.5 1.5 6 6l-4.5 4.5`,stroke:`#fff`,"stroke-width":`1.4`,"stroke-linecap":`round`,"stroke-linejoin":`round`})],-1),l(`div`,re,[l(`div`,B,u(t.title),1),l(`div`,V,u(t.subtitle),1),l(`div`,H,u(ce(t)),1)])])],8,L))),128))])):(i(),s(`p`,F,`کالیته‌ای یافت نشد.`))])]))}}),[[`__scopeId`,`data-v-daa79410`]]);export{U as default};