build: update production artifacts and simplify dockerfiles to use pre-built output
This commit is contained in:
+2
-2
@@ -1,6 +1,6 @@
|
||||
**/node_modules
|
||||
**/dist
|
||||
**/.output
|
||||
# **/dist
|
||||
# **/.output
|
||||
**/.nuxt
|
||||
**/.turbo
|
||||
**/*.tsbuildinfo
|
||||
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
@@ -1 +1 @@
|
||||
import{b as e}from"./VuesaxIcon-B4ROVNew.js";import{Et as t,It as n,Nt as r,Ot as i,Tt as a,_t as o,dt as s,i as c,kt as l,lt as u,ot as d,r as f,yt as p}from"./index-BAiPliM2.js";var m=Symbol(`form-errors`),h=e=>Object.fromEntries(e.map(e=>[e.path,e.message]));function g(r,i){let a=n(structuredClone(i)),o=n({});t(m,o);function s(){let t=r.safeParse(a.value);return t.success?(o.value={},t.data):(o.value=h(e(t.error)),d.error(`لطفاً خطاهای فرم را برطرف کنید`),null)}function l(e){let t=f(e).issues;t?.length&&(o.value=h(t)),d.error(c(e))}function u(e){a.value=structuredClone(e),o.value={}}return{model:a,errors:o,validate:s,handleError:l,reset:u}}var _=o({__name:`FormField`,props:{path:{},label:{},hint:{},required:{type:Boolean}},setup(e){let t=e,n=p(m,null),o=u(()=>n?.value[t.path]);return(t,n)=>{let c=l(`a-form-item`);return a(),s(c,{label:e.label,required:e.required,"validate-status":o.value?`error`:void 0,help:o.value||e.hint},{default:r(()=>[i(t.$slots,`default`)]),_:3},8,[`label`,`required`,`validate-status`,`help`])}}});export{g as n,_ as t};
|
||||
import{b as e}from"./VuesaxIcon-CrbgSv-1.js";import{Et as t,It as n,Nt as r,Ot as i,Tt as a,_t as o,dt as s,i as c,kt as l,lt as u,ot as d,r as f,yt as p}from"./index-BCImsMjH.js";var m=Symbol(`form-errors`),h=e=>Object.fromEntries(e.map(e=>[e.path,e.message]));function g(r,i){let a=n(structuredClone(i)),o=n({});t(m,o);function s(){let t=r.safeParse(a.value);return t.success?(o.value={},t.data):(o.value=h(e(t.error)),d.error(`لطفاً خطاهای فرم را برطرف کنید`),null)}function l(e){let t=f(e).issues;t?.length&&(o.value=h(t)),d.error(c(e))}function u(e){a.value=structuredClone(e),o.value={}}return{model:a,errors:o,validate:s,handleError:l,reset:u}}var _=o({__name:`FormField`,props:{path:{},label:{},hint:{},required:{type:Boolean}},setup(e){let t=e,n=p(m,null),o=u(()=>n?.value[t.path]);return(t,n)=>{let c=l(`a-form-item`);return a(),s(c,{label:e.label,required:e.required,"validate-status":o.value?`error`:void 0,help:o.value||e.hint},{default:r(()=>[i(t.$slots,`default`)]),_:3},8,[`label`,`required`,`validate-status`,`help`])}}});export{g as n,_ as t};
|
||||
Vendored
+1
-1
@@ -1 +1 @@
|
||||
import{t as e,y as t}from"./VuesaxIcon-B4ROVNew.js";import{Bt as n,Lt as r,Nt as i,Tt as a,_t as o,bt as s,dt as c,gt as l,jt as u,kt as d,pt as f,ut as p}from"./index-BAiPliM2.js";var m={class:`flex items-center gap-2`},h={class:`flex size-9 shrink-0 items-center justify-center rounded-lg border border-gray-200 bg-gray-50 text-[#ff5a00]`},g={key:1,class:`text-xs text-gray-400`},_={class:`flex items-center gap-2.5 py-0.5`,dir:`ltr`},v={class:`text-xs font-mono`},y=o({__name:`IconSelect`,props:s({allowClear:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:[`update:modelValue`],setup(o){let s=u(o,`modelValue`),y=t.map(e=>({value:e,label:e}));return(t,u)=>{let b=d(`a-select`);return a(),f(`div`,m,[p(`span`,h,[s.value?(a(),c(e,{key:0,name:s.value,size:20},null,8,[`name`])):(a(),f(`span`,g,`---`))]),l(b,{value:s.value,"onUpdate:value":u[0]||=e=>s.value=e,class:`min-w-0 flex-1`,"show-search":``,"allow-clear":o.allowClear,options:r(y),placeholder:`انتخاب آیکون`},{option:i(({value:t})=>[p(`span`,_,[l(e,{name:t,size:18,class:`text-orange-600`},null,8,[`name`]),p(`span`,v,n(t),1)])]),_:1},8,[`value`,`allow-clear`,`options`])])}}});export{y as t};
|
||||
import{t as e,y as t}from"./VuesaxIcon-CrbgSv-1.js";import{Bt as n,Lt as r,Nt as i,Tt as a,_t as o,bt as s,dt as c,gt as l,jt as u,kt as d,pt as f,ut as p}from"./index-BCImsMjH.js";var m={class:`flex items-center gap-2`},h={class:`flex size-9 shrink-0 items-center justify-center rounded-lg border border-gray-200 bg-gray-50 text-[#ff5a00]`},g={key:1,class:`text-xs text-gray-400`},_={class:`flex items-center gap-2.5 py-0.5`,dir:`ltr`},v={class:`text-xs font-mono`},y=o({__name:`IconSelect`,props:s({allowClear:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:[`update:modelValue`],setup(o){let s=u(o,`modelValue`),y=t.map(e=>({value:e,label:e}));return(t,u)=>{let b=d(`a-select`);return a(),f(`div`,m,[p(`span`,h,[s.value?(a(),c(e,{key:0,name:s.value,size:20},null,8,[`name`])):(a(),f(`span`,g,`---`))]),l(b,{value:s.value,"onUpdate:value":u[0]||=e=>s.value=e,class:`min-w-0 flex-1`,"show-search":``,"allow-clear":o.allowClear,options:r(y),placeholder:`انتخاب آیکون`},{option:i(({value:t})=>[p(`span`,_,[l(e,{name:t,size:18,class:`text-orange-600`},null,8,[`name`]),p(`span`,v,n(t),1)])]),_:1},8,[`value`,`allow-clear`,`options`])])}}});export{y as t};
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
@@ -1 +1 @@
|
||||
import{c as e,n as t,t as n}from"./VuesaxIcon-B4ROVNew.js";import{It as r,Lt as i,Nt as a,Tt as o,_t as s,a as c,gt as l,ht as u,kt as d,mt as f,o as p,pt as m,st as h,t as g,ut as _}from"./index-BAiPliM2.js";import"./logo-BuUh917n.js";import{n as v,t as y}from"./FormField-CZ_S38rR.js";var b={class:`login-page relative flex min-h-screen overflow-hidden text-[#edede6]`},x={class:`relative z-10 mx-auto grid w-full max-w-[1120px] flex-1 items-center gap-10 px-5 py-12 md:px-8 lg:grid-cols-12 lg:gap-16`},S={class:`login-fade-3 lg:col-span-6`},C={class:`login-panel w-full max-w-md border border-[#2a3d63]/70 bg-[#1a2744]/80 p-7 backdrop-blur-md md:p-8 lg:me-auto`},w=t(s({__name:`LoginPage`,setup(t){let s=g(),w=p(),T=c(),{model:E,validate:D,handleError:O}=v(e,{phone:``,password:``}),k=r(!1);async function A(){let e=D();if(e){k.value=!0;try{await s.login(e);let t=typeof T.query.redirect==`string`?T.query.redirect:`/`;await w.replace(t.startsWith(`/`)?t:`/`)}catch(e){O(e)}finally{k.value=!1}}}return(e,t)=>{let r=d(`a-input`),s=d(`a-input-password`),c=d(`a-button`),p=d(`a-form`);return o(),m(`div`,b,[t[5]||=f(`<div class="pointer-events-none absolute inset-0 bg-[#0b1224]" data-v-2d323d25></div><div class="login-grid pointer-events-none absolute inset-0 opacity-50" data-v-2d323d25></div><div class="pointer-events-none absolute -start-24 top-1/4 size-[420px] rounded-full bg-[#ff5a00]/15 blur-[120px]" data-v-2d323d25></div><div class="pointer-events-none absolute -end-16 bottom-0 size-[360px] rounded-full bg-[#ffb800]/10 blur-[100px]" data-v-2d323d25></div><div class="login-tape pointer-events-none absolute bottom-0 end-0 z-10 h-48 w-1.5 opacity-70" data-v-2d323d25></div><div class="login-noise pointer-events-none absolute inset-0 z-[5]" data-v-2d323d25></div>`,6),_(`div`,x,[_(`div`,S,[_(`div`,C,[t[3]||=_(`div`,{class:`mb-7 text-center`},[_(`div`,{class:`font-mono text-[10px] tracking-[0.28em] text-[#8e9ab0]`},`SIGN IN`),_(`h2`,{class:`mt-2 text-xl font-bold text-[#edede6]`},`ورود به پنل`),_(`p`,{class:`mt-1.5 text-sm text-[#8e9ab0]`},`شماره موبایل و رمز عبور خود را وارد کنید`)],-1),l(p,{class:`login-form`,layout:`vertical`,onSubmit:h(A,[`prevent`])},{default:a(()=>[l(y,{path:`phone`,label:`شماره موبایل`},{default:a(()=>[l(r,{value:i(E).phone,"onUpdate:value":t[0]||=e=>i(E).phone=e,size:`large`,class:`ltr-input`,autocomplete:`tel`,autofocus:``,inputmode:`tel`,placeholder:`09121234567`},{prefix:a(()=>[l(n,{name:`mobile`,size:16,class:`text-[#8e9ab0]`})]),_:1},8,[`value`])]),_:1}),l(y,{path:`password`,label:`رمز عبور`},{default:a(()=>[l(s,{value:i(E).password,"onUpdate:value":t[1]||=e=>i(E).password=e,size:`large`,class:`ltr-input`,autocomplete:`current-password`,placeholder:`••••••••`},{prefix:a(()=>[l(n,{name:`lock`,size:16,class:`text-[#8e9ab0]`})]),_:1},8,[`value`])]),_:1}),l(c,{type:`primary`,"html-type":`submit`,size:`large`,block:``,loading:k.value,class:`!mt-2 !h-12 !rounded-full !font-bold !shadow-[0_8px_32px_rgba(255,90,0,0.35)]`},{default:a(()=>[...t[2]||=[u(` ورود به پنل `,-1)]]),_:1},8,[`loading`])]),_:1})])]),t[4]||=f(`<div class="login-fade-1 lg:col-span-6" data-v-2d323d25><div class="inline-flex items-center gap-2.5 rounded-full border border-[#ff5a00]/30 bg-[#ff5a00]/10 px-4 py-2 backdrop-blur" data-v-2d323d25><span class="size-1.5 animate-pulse rounded-full bg-[#ff5a00]" data-v-2d323d25></span><span class="text-xs font-medium text-[#ff5a00]" data-v-2d323d25>پنل مدیریت ایمن پیشگامان</span></div><div class="mt-8 flex items-center gap-4" data-v-2d323d25><span class="flex size-14 items-center justify-center rounded-xl bg-white shadow-[0_0_28px_rgba(10,30,92,0.45)]" data-v-2d323d25><img src="/logo.png" alt="ایمن پیشگامان" class="size-9 object-contain" data-v-2d323d25></span><div class="leading-tight" data-v-2d323d25><div class="text-2xl font-black tracking-tight md:text-3xl" data-v-2d323d25>ایمن پیشگامان</div><div class="mt-1 font-mono text-[10px] tracking-[0.32em] text-[#8e9ab0]" data-v-2d323d25> IMEN PISHGAMAN CO. </div></div></div><h1 class="mt-8 text-3xl font-black leading-[1.25] md:text-5xl md:leading-[1.2]" data-v-2d323d25> ورود امن <span class="mt-2 inline-block -rotate-1 rounded-lg bg-[#ffb800] px-3 py-1 text-[#0b1224] shadow-[0_10px_40px_rgba(255,184,0,0.22)]" data-v-2d323d25> به سامانه </span></h1><p class="mt-6 max-w-md text-sm leading-8 text-[#edede6]/70 md:text-base md:leading-9" data-v-2d323d25> مدیریت محصولات، محتوا و پیامهای سایت — فقط برای کاربران مجاز. </p></div>`,1)])])}}}),[[`__scopeId`,`data-v-2d323d25`]]);export{w as default};
|
||||
import{c as e,n as t,t as n}from"./VuesaxIcon-CrbgSv-1.js";import{It as r,Lt as i,Nt as a,Tt as o,_t as s,a as c,gt as l,ht as u,kt as d,mt as f,o as p,pt as m,st as h,t as g,ut as _}from"./index-BCImsMjH.js";import"./logo-BuUh917n.js";import{n as v,t as y}from"./FormField-D95xTO-F.js";var b={class:`login-page relative flex min-h-screen overflow-hidden text-[#edede6]`},x={class:`relative z-10 mx-auto grid w-full max-w-[1120px] flex-1 items-center gap-10 px-5 py-12 md:px-8 lg:grid-cols-12 lg:gap-16`},S={class:`login-fade-3 lg:col-span-6`},C={class:`login-panel w-full max-w-md border border-[#2a3d63]/70 bg-[#1a2744]/80 p-7 backdrop-blur-md md:p-8 lg:me-auto`},w=t(s({__name:`LoginPage`,setup(t){let s=g(),w=p(),T=c(),{model:E,validate:D,handleError:O}=v(e,{phone:``,password:``}),k=r(!1);async function A(){let e=D();if(e){k.value=!0;try{await s.login(e);let t=typeof T.query.redirect==`string`?T.query.redirect:`/`;await w.replace(t.startsWith(`/`)?t:`/`)}catch(e){O(e)}finally{k.value=!1}}}return(e,t)=>{let r=d(`a-input`),s=d(`a-input-password`),c=d(`a-button`),p=d(`a-form`);return o(),m(`div`,b,[t[5]||=f(`<div class="pointer-events-none absolute inset-0 bg-[#0b1224]" data-v-2d323d25></div><div class="login-grid pointer-events-none absolute inset-0 opacity-50" data-v-2d323d25></div><div class="pointer-events-none absolute -start-24 top-1/4 size-[420px] rounded-full bg-[#ff5a00]/15 blur-[120px]" data-v-2d323d25></div><div class="pointer-events-none absolute -end-16 bottom-0 size-[360px] rounded-full bg-[#ffb800]/10 blur-[100px]" data-v-2d323d25></div><div class="login-tape pointer-events-none absolute bottom-0 end-0 z-10 h-48 w-1.5 opacity-70" data-v-2d323d25></div><div class="login-noise pointer-events-none absolute inset-0 z-[5]" data-v-2d323d25></div>`,6),_(`div`,x,[_(`div`,S,[_(`div`,C,[t[3]||=_(`div`,{class:`mb-7 text-center`},[_(`div`,{class:`font-mono text-[10px] tracking-[0.28em] text-[#8e9ab0]`},`SIGN IN`),_(`h2`,{class:`mt-2 text-xl font-bold text-[#edede6]`},`ورود به پنل`),_(`p`,{class:`mt-1.5 text-sm text-[#8e9ab0]`},`شماره موبایل و رمز عبور خود را وارد کنید`)],-1),l(p,{class:`login-form`,layout:`vertical`,onSubmit:h(A,[`prevent`])},{default:a(()=>[l(y,{path:`phone`,label:`شماره موبایل`},{default:a(()=>[l(r,{value:i(E).phone,"onUpdate:value":t[0]||=e=>i(E).phone=e,size:`large`,class:`ltr-input`,autocomplete:`tel`,autofocus:``,inputmode:`tel`,placeholder:`09121234567`},{prefix:a(()=>[l(n,{name:`mobile`,size:16,class:`text-[#8e9ab0]`})]),_:1},8,[`value`])]),_:1}),l(y,{path:`password`,label:`رمز عبور`},{default:a(()=>[l(s,{value:i(E).password,"onUpdate:value":t[1]||=e=>i(E).password=e,size:`large`,class:`ltr-input`,autocomplete:`current-password`,placeholder:`••••••••`},{prefix:a(()=>[l(n,{name:`lock`,size:16,class:`text-[#8e9ab0]`})]),_:1},8,[`value`])]),_:1}),l(c,{type:`primary`,"html-type":`submit`,size:`large`,block:``,loading:k.value,class:`!mt-2 !h-12 !rounded-full !font-bold !shadow-[0_8px_32px_rgba(255,90,0,0.35)]`},{default:a(()=>[...t[2]||=[u(` ورود به پنل `,-1)]]),_:1},8,[`loading`])]),_:1})])]),t[4]||=f(`<div class="login-fade-1 lg:col-span-6" data-v-2d323d25><div class="inline-flex items-center gap-2.5 rounded-full border border-[#ff5a00]/30 bg-[#ff5a00]/10 px-4 py-2 backdrop-blur" data-v-2d323d25><span class="size-1.5 animate-pulse rounded-full bg-[#ff5a00]" data-v-2d323d25></span><span class="text-xs font-medium text-[#ff5a00]" data-v-2d323d25>پنل مدیریت ایمن پیشگامان</span></div><div class="mt-8 flex items-center gap-4" data-v-2d323d25><span class="flex size-14 items-center justify-center rounded-xl bg-white shadow-[0_0_28px_rgba(10,30,92,0.45)]" data-v-2d323d25><img src="/logo.png" alt="ایمن پیشگامان" class="size-9 object-contain" data-v-2d323d25></span><div class="leading-tight" data-v-2d323d25><div class="text-2xl font-black tracking-tight md:text-3xl" data-v-2d323d25>ایمن پیشگامان</div><div class="mt-1 font-mono text-[10px] tracking-[0.32em] text-[#8e9ab0]" data-v-2d323d25> IMEN PISHGAMAN CO. </div></div></div><h1 class="mt-8 text-3xl font-black leading-[1.25] md:text-5xl md:leading-[1.2]" data-v-2d323d25> ورود امن <span class="mt-2 inline-block -rotate-1 rounded-lg bg-[#ffb800] px-3 py-1 text-[#0b1224] shadow-[0_10px_40px_rgba(255,184,0,0.22)]" data-v-2d323d25> به سامانه </span></h1><p class="mt-6 max-w-md text-sm leading-8 text-[#edede6]/70 md:text-base md:leading-9" data-v-2d323d25> مدیریت محصولات، محتوا و پیامهای سایت — فقط برای کاربران مجاز. </p></div>`,1)])])}}}),[[`__scopeId`,`data-v-2d323d25`]]);export{w as default};
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
@@ -1 +1 @@
|
||||
import{n as e,t}from"./VuesaxIcon-B4ROVNew.js";import{Bt as n,Nt as r,Ot as i,Tt as a,_t as o,dt as s,ft as c,gt as l,kt as u,pt as d,ut as f}from"./index-BAiPliM2.js";var p={class:`page-header`},m={class:`page-header__main`},h={class:`min-w-0`},g={class:`page-header__title`},_={key:0,class:`page-header__subtitle`},v={key:0,class:`page-header__actions`},y=e(o({__name:`PageHeader`,props:{title:{},subtitle:{},back:{}},setup(e){return(o,y)=>{let b=u(`RouterLink`);return a(),d(`div`,p,[f(`div`,m,[e.back?(a(),s(b,{key:0,to:e.back,class:`page-header__back`,title:`بازگشت`},{default:r(()=>[l(t,{name:`arrow-right`,size:18})]),_:1},8,[`to`])):c(``,!0),f(`div`,h,[f(`h1`,g,n(e.title),1),e.subtitle?(a(),d(`p`,_,n(e.subtitle),1)):c(``,!0)])]),o.$slots.default?(a(),d(`div`,v,[i(o.$slots,`default`,{},void 0,!0)])):c(``,!0)])}}}),[[`__scopeId`,`data-v-c0b72af8`]]);export{y as t};
|
||||
import{n as e,t}from"./VuesaxIcon-CrbgSv-1.js";import{Bt as n,Nt as r,Ot as i,Tt as a,_t as o,dt as s,ft as c,gt as l,kt as u,pt as d,ut as f}from"./index-BCImsMjH.js";var p={class:`page-header`},m={class:`page-header__main`},h={class:`min-w-0`},g={class:`page-header__title`},_={key:0,class:`page-header__subtitle`},v={key:0,class:`page-header__actions`},y=e(o({__name:`PageHeader`,props:{title:{},subtitle:{},back:{}},setup(e){return(o,y)=>{let b=u(`RouterLink`);return a(),d(`div`,p,[f(`div`,m,[e.back?(a(),s(b,{key:0,to:e.back,class:`page-header__back`,title:`بازگشت`},{default:r(()=>[l(t,{name:`arrow-right`,size:18})]),_:1},8,[`to`])):c(``,!0),f(`div`,h,[f(`h1`,g,n(e.title),1),e.subtitle?(a(),d(`p`,_,n(e.subtitle),1)):c(``,!0)])]),o.$slots.default?(a(),d(`div`,v,[i(o.$slots,`default`,{},void 0,!0)])):c(``,!0)])}}}),[[`__scopeId`,`data-v-c0b72af8`]]);export{y as t};
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
import{t as e,v as t}from"./VuesaxIcon-B4ROVNew.js";import{Bt as n,Ct as r,Dt as i,It as a,Lt as o,Mt as s,Nt as c,Rt as l,Tt as u,_t as d,a as f,bt as p,ct as m,dt as h,ft as g,gt as _,ht as v,i as y,jt as b,kt as x,lt as S,n as C,o as ee,ot as w,pt as T,st as te,ut as E}from"./index-BAiPliM2.js";import{t as D}from"./format-NkL3G1Uq.js";import{t as ne}from"./PageHeader-BzyYFxoY.js";import{n as re,t as O}from"./FormField-CZ_S38rR.js";import{n as ie,r as ae,t as oe}from"./ListEditor-cgsKgdfW.js";import{t as se}from"./slug-Flyc3fOh.js";var ce=d({__name:`LinesInput`,props:p({placeholder:{},rows:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=b(e,`modelValue`),n=e=>e.split(`
|
||||
import{t as e,v as t}from"./VuesaxIcon-CrbgSv-1.js";import{Bt as n,Ct as r,Dt as i,It as a,Lt as o,Mt as s,Nt as c,Rt as l,Tt as u,_t as d,a as f,bt as p,ct as m,dt as h,ft as g,gt as _,ht as v,i as y,jt as b,kt as x,lt as S,n as C,o as ee,ot as w,pt as T,st as te,ut as E}from"./index-BCImsMjH.js";import{t as D}from"./format-NkL3G1Uq.js";import{t as ne}from"./PageHeader-vyrIuh7P.js";import{n as re,t as O}from"./FormField-D95xTO-F.js";import{n as ie,r as ae,t as oe}from"./ListEditor-DF9sShFo.js";import{t as se}from"./slug-Flyc3fOh.js";var ce=d({__name:`LinesInput`,props:p({placeholder:{},rows:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=b(e,`modelValue`),n=e=>e.split(`
|
||||
`).map(e=>e.trim()).filter(Boolean),r=a(t.value.join(`
|
||||
`));s(t,e=>{n(r.value).join(`
|
||||
`)!==e.join(`
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
@@ -1 +1 @@
|
||||
import{o as e,s as t}from"./VuesaxIcon-B4ROVNew.js";import{Bt as n,It as r,Lt as i,Nt as a,Tt as o,_t as s,ct as c,gt as l,ht as u,kt as d,n as f,ot as p,pt as m,st as h,t as g,ut as _}from"./index-BAiPliM2.js";import{t as v}from"./PageHeader-BzyYFxoY.js";import{n as y,t as b}from"./FormField-CZ_S38rR.js";var x={class:`grid max-w-4xl gap-4 md:gap-6 md:grid-cols-2`},S={class:`flex items-center gap-3.5 mb-4 pb-4 border-b border-gray-100`},C={class:`flex size-14 items-center justify-center rounded-2xl bg-gradient-to-tr from-[#ff5a00] to-amber-500 text-xl font-black text-white shadow-md shadow-orange-500/20`},w={class:`text-base font-bold text-gray-900`},T={class:`mt-0.5 text-xs font-mono text-gray-500`,dir:`ltr`},E={dir:`ltr`,class:`font-mono`},D=s({__name:`ProfilePage`,setup(s){let D=g(),{model:O,validate:k,handleError:A,reset:j}=y(t,{currentPassword:``,newPassword:``}),M=r(!1);async function N(){let e=k();if(e){M.value=!0;try{await f(`/admin/auth/change-password`,{method:`POST`,body:e}),p.success(`رمز عبور تغییر کرد`),j({currentPassword:``,newPassword:``})}catch(e){A(e)}finally{M.value=!1}}}return(t,r)=>{let s=d(`a-descriptions-item`),f=d(`a-tag`),p=d(`a-descriptions`),g=d(`a-card`),y=d(`a-input-password`),k=d(`a-button`),A=d(`a-form`);return o(),m(c,null,[l(v,{title:`حساب کاربری`,subtitle:`مشخصات فردی، نقش دسترسی و تغییر رمز عبور ورود به سامانه`}),_(`div`,x,[l(g,{title:`مشخصات کاربری`},{default:a(()=>[_(`div`,S,[_(`div`,C,n(i(D).user?.name?.slice(0,1)||`U`),1),_(`div`,null,[_(`div`,w,n(i(D).user?.name),1),_(`div`,T,n(i(D).user?.phone),1)])]),l(p,{column:1,size:`small`},{default:a(()=>[l(s,{label:`نام`},{default:a(()=>[u(n(i(D).user?.name),1)]),_:1}),l(s,{label:`موبایل`},{default:a(()=>[_(`span`,E,n(i(D).user?.phone),1)]),_:1}),l(s,{label:`نقش دسترسی`},{default:a(()=>[l(f,{color:i(D).user?.role===`ADMIN`?`orange`:`blue`},{default:a(()=>[u(n(i(D).user&&i(e)[i(D).user.role]),1)]),_:1},8,[`color`])]),_:1})]),_:1})]),_:1}),l(g,{title:`تغییر رمز عبور`},{default:a(()=>[l(A,{layout:`vertical`,onSubmit:h(N,[`prevent`])},{default:a(()=>[l(b,{path:`currentPassword`,label:`رمز فعلی`,required:``},{default:a(()=>[l(y,{value:i(O).currentPassword,"onUpdate:value":r[0]||=e=>i(O).currentPassword=e,class:`ltr-input h-10`,autocomplete:`current-password`},null,8,[`value`])]),_:1}),l(b,{path:`newPassword`,label:`رمز جدید`,hint:`حداقل ۸ کاراکتر`,required:``},{default:a(()=>[l(y,{value:i(O).newPassword,"onUpdate:value":r[1]||=e=>i(O).newPassword=e,class:`ltr-input h-10`,autocomplete:`new-password`},null,8,[`value`])]),_:1}),l(k,{type:`primary`,"html-type":`submit`,loading:M.value,class:`w-full md:w-auto h-10 !font-bold`},{default:a(()=>[...r[2]||=[u(` تغییر رمز ورود `,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})])],64)}}});export{D as default};
|
||||
import{o as e,s as t}from"./VuesaxIcon-CrbgSv-1.js";import{Bt as n,It as r,Lt as i,Nt as a,Tt as o,_t as s,ct as c,gt as l,ht as u,kt as d,n as f,ot as p,pt as m,st as h,t as g,ut as _}from"./index-BCImsMjH.js";import{t as v}from"./PageHeader-vyrIuh7P.js";import{n as y,t as b}from"./FormField-D95xTO-F.js";var x={class:`grid max-w-4xl gap-4 md:gap-6 md:grid-cols-2`},S={class:`flex items-center gap-3.5 mb-4 pb-4 border-b border-gray-100`},C={class:`flex size-14 items-center justify-center rounded-2xl bg-gradient-to-tr from-[#ff5a00] to-amber-500 text-xl font-black text-white shadow-md shadow-orange-500/20`},w={class:`text-base font-bold text-gray-900`},T={class:`mt-0.5 text-xs font-mono text-gray-500`,dir:`ltr`},E={dir:`ltr`,class:`font-mono`},D=s({__name:`ProfilePage`,setup(s){let D=g(),{model:O,validate:k,handleError:A,reset:j}=y(t,{currentPassword:``,newPassword:``}),M=r(!1);async function N(){let e=k();if(e){M.value=!0;try{await f(`/admin/auth/change-password`,{method:`POST`,body:e}),p.success(`رمز عبور تغییر کرد`),j({currentPassword:``,newPassword:``})}catch(e){A(e)}finally{M.value=!1}}}return(t,r)=>{let s=d(`a-descriptions-item`),f=d(`a-tag`),p=d(`a-descriptions`),g=d(`a-card`),y=d(`a-input-password`),k=d(`a-button`),A=d(`a-form`);return o(),m(c,null,[l(v,{title:`حساب کاربری`,subtitle:`مشخصات فردی، نقش دسترسی و تغییر رمز عبور ورود به سامانه`}),_(`div`,x,[l(g,{title:`مشخصات کاربری`},{default:a(()=>[_(`div`,S,[_(`div`,C,n(i(D).user?.name?.slice(0,1)||`U`),1),_(`div`,null,[_(`div`,w,n(i(D).user?.name),1),_(`div`,T,n(i(D).user?.phone),1)])]),l(p,{column:1,size:`small`},{default:a(()=>[l(s,{label:`نام`},{default:a(()=>[u(n(i(D).user?.name),1)]),_:1}),l(s,{label:`موبایل`},{default:a(()=>[_(`span`,E,n(i(D).user?.phone),1)]),_:1}),l(s,{label:`نقش دسترسی`},{default:a(()=>[l(f,{color:i(D).user?.role===`ADMIN`?`orange`:`blue`},{default:a(()=>[u(n(i(D).user&&i(e)[i(D).user.role]),1)]),_:1},8,[`color`])]),_:1})]),_:1})]),_:1}),l(g,{title:`تغییر رمز عبور`},{default:a(()=>[l(A,{layout:`vertical`,onSubmit:h(N,[`prevent`])},{default:a(()=>[l(b,{path:`currentPassword`,label:`رمز فعلی`,required:``},{default:a(()=>[l(y,{value:i(O).currentPassword,"onUpdate:value":r[0]||=e=>i(O).currentPassword=e,class:`ltr-input h-10`,autocomplete:`current-password`},null,8,[`value`])]),_:1}),l(b,{path:`newPassword`,label:`رمز جدید`,hint:`حداقل ۸ کاراکتر`,required:``},{default:a(()=>[l(y,{value:i(O).newPassword,"onUpdate:value":r[1]||=e=>i(O).newPassword=e,class:`ltr-input h-10`,autocomplete:`new-password`},null,8,[`value`])]),_:1}),l(k,{type:`primary`,"html-type":`submit`,loading:M.value,class:`w-full md:w-auto h-10 !font-bold`},{default:a(()=>[...r[2]||=[u(` تغییر رمز ورود `,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})])],64)}}});export{D as default};
|
||||
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
@@ -1 +1 @@
|
||||
import{d as e,f as t}from"./VuesaxIcon-B4ROVNew.js";import{Bt as n,Ct as r,Dt as i,Ft as a,It as o,Lt as s,Nt as c,Rt as l,Tt as u,_t as d,ct as f,dt as p,ft as m,gt as h,ht as g,i as _,kt as v,n as y,o as b,ot as x,pt as S,t as C,ut as w}from"./index-BAiPliM2.js";import{a as T}from"./format-NkL3G1Uq.js";import{t as E}from"./PageHeader-BzyYFxoY.js";var D={class:`grid gap-4 sm:grid-cols-2 xl:grid-cols-3`},O={class:`flex items-center justify-between gap-2`},k=[`onClick`],A={class:`font-bold text-gray-800 group-hover:text-orange-600 transition-colors`},j={key:0,class:`flex items-center flex-shrink-0`},M=[`onClick`],N=[`onClick`],P={key:0},F=d({__name:`SectionsPage`,setup(d){let F=b(),I=C(),L=e.filter(e=>e!==`settings`||I.isAdmin),R=o(!0),z=a({hero:!0,tape:!0,stats:!0,productsIntro:!0,about:!0,services:!0,standards:!0,industries:!0,testimonials:!0,contact:!0,footer:!0}),B=a({}),V=a({});function H(e){return z[e]!==!1}function U(e){return B[e]??null}async function W(){R.value=!0;try{let e=await y(`/admin/sections`);for(let t of e)z[t.key]=t.enabled!==!1,B[t.key]=t.updatedAt}catch(e){x.error(_(e))}finally{R.value=!1}}async function G(e,n){if(e===`settings`)return;let r=z[e]!==!1;z[e]=n,V[e]=!0;try{let r=await y(`/admin/sections/${e}/visibility`,{method:`PATCH`,body:{enabled:n}});z[e]=r.enabled!==!1,B[e]=r.updatedAt,x.success(`وضعیت «${t[e].title}» به ${n?`نمایش`:`عدم نمایش`} تغییر یافت`)}catch(t){z[e]=r,x.error(_(t))}finally{V[e]=!1}}function K(e){F.push({name:`section-edit`,params:{key:e}})}return r(()=>{W()}),(e,r)=>{let a=v(`a-tag`),o=v(`a-switch`),d=v(`a-card`),_=v(`a-spin`);return u(),S(f,null,[h(E,{title:`بخشهای سایت`,subtitle:`متنها، تصاویر و فهرستهای صفحه اصلی؛ تنظیم وضعیت نمایش و ویرایش محتوا`}),h(_,{spinning:R.value},{default:c(()=>[w(`div`,D,[(u(!0),S(f,null,i(s(L),e=>(u(),S(`div`,{key:e,class:`block group`},[h(d,{hoverable:``,class:l([`h-full flex flex-col justify-between transition-all`,{"opacity-75 bg-gray-50/60":e!==`settings`&&!H(e)}])},{default:c(()=>[w(`div`,null,[w(`div`,O,[w(`div`,{class:`flex items-center gap-2 cursor-pointer flex-1`,onClick:t=>K(e)},[w(`span`,A,n(s(t)[e].title),1),e===`settings`?(u(),p(a,{key:0,color:`blue`},{default:c(()=>[...r[0]||=[g(`تنظیمات پایه`,-1)]]),_:1})):H(e)?m(``,!0):(u(),p(a,{key:1,color:`error`},{default:c(()=>[...r[1]||=[g(`مخفی`,-1)]]),_:1}))],8,k),e===`settings`?m(``,!0):(u(),S(`div`,j,[h(o,{checked:H(e),loading:V[e],"checked-children":`نمایش`,"un-checked-children":`مخفی`,onChange:t=>G(e,!!t)},null,8,[`checked`,`loading`,`onChange`])]))]),w(`p`,{class:`mt-2 text-sm leading-6 text-gray-500 cursor-pointer`,onClick:t=>K(e)},n(s(t)[e].desc),9,M)]),w(`div`,{class:`mt-4 flex items-center justify-between border-t border-gray-100 pt-3 text-xs text-gray-400 cursor-pointer`,onClick:t=>K(e)},[r[2]||=w(`span`,{class:`text-primary font-medium group-hover:underline`},`ویرایش بخش ←`,-1),U(e)?(u(),S(`span`,P,`آخرین تغییر: `+n(s(T)(U(e))),1)):m(``,!0)],8,N)]),_:2},1032,[`class`])]))),128))])]),_:1},8,[`spinning`])],64)}}});export{F as default};
|
||||
import{d as e,f as t}from"./VuesaxIcon-CrbgSv-1.js";import{Bt as n,Ct as r,Dt as i,Ft as a,It as o,Lt as s,Nt as c,Rt as l,Tt as u,_t as d,ct as f,dt as p,ft as m,gt as h,ht as g,i as _,kt as v,n as y,o as b,ot as x,pt as S,t as C,ut as w}from"./index-BCImsMjH.js";import{a as T}from"./format-NkL3G1Uq.js";import{t as E}from"./PageHeader-vyrIuh7P.js";var D={class:`grid gap-4 sm:grid-cols-2 xl:grid-cols-3`},O={class:`flex items-center justify-between gap-2`},k=[`onClick`],A={class:`font-bold text-gray-800 group-hover:text-orange-600 transition-colors`},j={key:0,class:`flex items-center flex-shrink-0`},M=[`onClick`],N=[`onClick`],P={key:0},F=d({__name:`SectionsPage`,setup(d){let F=b(),I=C(),L=e.filter(e=>e!==`settings`||I.isAdmin),R=o(!0),z=a({hero:!0,tape:!0,stats:!0,productsIntro:!0,about:!0,services:!0,standards:!0,industries:!0,testimonials:!0,contact:!0,footer:!0}),B=a({}),V=a({});function H(e){return z[e]!==!1}function U(e){return B[e]??null}async function W(){R.value=!0;try{let e=await y(`/admin/sections`);for(let t of e)z[t.key]=t.enabled!==!1,B[t.key]=t.updatedAt}catch(e){x.error(_(e))}finally{R.value=!1}}async function G(e,n){if(e===`settings`)return;let r=z[e]!==!1;z[e]=n,V[e]=!0;try{let r=await y(`/admin/sections/${e}/visibility`,{method:`PATCH`,body:{enabled:n}});z[e]=r.enabled!==!1,B[e]=r.updatedAt,x.success(`وضعیت «${t[e].title}» به ${n?`نمایش`:`عدم نمایش`} تغییر یافت`)}catch(t){z[e]=r,x.error(_(t))}finally{V[e]=!1}}function K(e){F.push({name:`section-edit`,params:{key:e}})}return r(()=>{W()}),(e,r)=>{let a=v(`a-tag`),o=v(`a-switch`),d=v(`a-card`),_=v(`a-spin`);return u(),S(f,null,[h(E,{title:`بخشهای سایت`,subtitle:`متنها، تصاویر و فهرستهای صفحه اصلی؛ تنظیم وضعیت نمایش و ویرایش محتوا`}),h(_,{spinning:R.value},{default:c(()=>[w(`div`,D,[(u(!0),S(f,null,i(s(L),e=>(u(),S(`div`,{key:e,class:`block group`},[h(d,{hoverable:``,class:l([`h-full flex flex-col justify-between transition-all`,{"opacity-75 bg-gray-50/60":e!==`settings`&&!H(e)}])},{default:c(()=>[w(`div`,null,[w(`div`,O,[w(`div`,{class:`flex items-center gap-2 cursor-pointer flex-1`,onClick:t=>K(e)},[w(`span`,A,n(s(t)[e].title),1),e===`settings`?(u(),p(a,{key:0,color:`blue`},{default:c(()=>[...r[0]||=[g(`تنظیمات پایه`,-1)]]),_:1})):H(e)?m(``,!0):(u(),p(a,{key:1,color:`error`},{default:c(()=>[...r[1]||=[g(`مخفی`,-1)]]),_:1}))],8,k),e===`settings`?m(``,!0):(u(),S(`div`,j,[h(o,{checked:H(e),loading:V[e],"checked-children":`نمایش`,"un-checked-children":`مخفی`,onChange:t=>G(e,!!t)},null,8,[`checked`,`loading`,`onChange`])]))]),w(`p`,{class:`mt-2 text-sm leading-6 text-gray-500 cursor-pointer`,onClick:t=>K(e)},n(s(t)[e].desc),9,M)]),w(`div`,{class:`mt-4 flex items-center justify-between border-t border-gray-100 pt-3 text-xs text-gray-400 cursor-pointer`,onClick:t=>K(e)},[r[2]||=w(`span`,{class:`text-primary font-medium group-hover:underline`},`ویرایش بخش ←`,-1),U(e)?(u(),S(`span`,P,`آخرین تغییر: `+n(s(T)(U(e))),1)):m(``,!0)],8,N)]),_:2},1032,[`class`])]))),128))])]),_:1},8,[`spinning`])],64)}}});export{F as default};
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
+2
-2
File diff suppressed because one or more lines are too long
+2
File diff suppressed because one or more lines are too long
-2
File diff suppressed because one or more lines are too long
Vendored
+2
-2
@@ -6,8 +6,8 @@
|
||||
<meta name="robots" content="noindex, nofollow" />
|
||||
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
||||
<title>پنل مدیریت ایمن پیشگامان</title>
|
||||
<script type="module" crossorigin src="/assets/index-BAiPliM2.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="/assets/index-wbnKnB5E.css">
|
||||
<script type="module" crossorigin src="/assets/index-BCImsMjH.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="/assets/index-DjFpBvci.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"date": "2026-10-24T06:22:37.272Z",
|
||||
"date": "2026-10-24T10:00:02.249Z",
|
||||
"preset": "node-server",
|
||||
"framework": {
|
||||
"name": "nuxt",
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"id":"a8d141b7-21bc-49e2-b0af-d8f546b8f950","timestamp":1792822878753}
|
||||
{"id":"a8b8f23e-57aa-4497-aa31-c772dbae9639","timestamp":1792835930692}
|
||||
@@ -0,0 +1 @@
|
||||
{"id":"a8b8f23e-57aa-4497-aa31-c772dbae9639","timestamp":1792835930692,"prerendered":[]}
|
||||
@@ -1 +0,0 @@
|
||||
{"id":"a8d141b7-21bc-49e2-b0af-d8f546b8f950","timestamp":1792822878753,"prerendered":[]}
|
||||
@@ -4066,7 +4066,7 @@ function _expandFromEnv(value) {
|
||||
const _inlineRuntimeConfig = {
|
||||
"app": {
|
||||
"baseURL": "/",
|
||||
"buildId": "a8d141b7-21bc-49e2-b0af-d8f546b8f950",
|
||||
"buildId": "a8b8f23e-57aa-4497-aa31-c772dbae9639",
|
||||
"buildAssetsDir": "/_nuxt/",
|
||||
"cdnURL": ""
|
||||
},
|
||||
@@ -4813,76 +4813,6 @@ const assets = {
|
||||
"size": 337,
|
||||
"path": "../public/favicon.svg"
|
||||
},
|
||||
"/images/logo.png": {
|
||||
"type": "image/png",
|
||||
"etag": "\"45a79-DygL+P0onWMf3/jsNWp1BqEUPE4\"",
|
||||
"mtime": "2026-10-11T12:10:17.609Z",
|
||||
"size": 285305,
|
||||
"path": "../public/images/logo.png"
|
||||
},
|
||||
"/_nuxt/D0e0LUpa.js": {
|
||||
"type": "text/javascript; charset=utf-8",
|
||||
"etag": "\"794-cNNGOqTLOp2+IDNDEbTWshwORp0\"",
|
||||
"mtime": "2026-10-24T06:22:20.558Z",
|
||||
"size": 1940,
|
||||
"path": "../public/_nuxt/D0e0LUpa.js"
|
||||
},
|
||||
"/_nuxt/BHOIQrRl.js": {
|
||||
"type": "text/javascript; charset=utf-8",
|
||||
"etag": "\"1637-w7apJM7DBwq91AEy0Dz89/JwU4s\"",
|
||||
"mtime": "2026-10-24T06:22:20.558Z",
|
||||
"size": 5687,
|
||||
"path": "../public/_nuxt/BHOIQrRl.js"
|
||||
},
|
||||
"/_nuxt/Dd1GE-gU.js": {
|
||||
"type": "text/javascript; charset=utf-8",
|
||||
"etag": "\"21420-NSMMtehs6gAIMs2sZ84NfSEv/wU\"",
|
||||
"mtime": "2026-10-24T06:22:20.568Z",
|
||||
"size": 136224,
|
||||
"path": "../public/_nuxt/Dd1GE-gU.js"
|
||||
},
|
||||
"/_nuxt/DlAPF8TW.js": {
|
||||
"type": "text/javascript; charset=utf-8",
|
||||
"etag": "\"1e85-YNtOmEmkO1nMcpDM/ztRmg/rRLw\"",
|
||||
"mtime": "2026-10-24T06:22:20.592Z",
|
||||
"size": 7813,
|
||||
"path": "../public/_nuxt/DlAPF8TW.js"
|
||||
},
|
||||
"/_nuxt/DOASWvjr.js": {
|
||||
"type": "text/javascript; charset=utf-8",
|
||||
"etag": "\"3827-3BvUfZznriOnNWFcpi6aALVMpOE\"",
|
||||
"mtime": "2026-10-24T06:22:20.568Z",
|
||||
"size": 14375,
|
||||
"path": "../public/_nuxt/DOASWvjr.js"
|
||||
},
|
||||
"/_nuxt/entry.NJkjIEBJ.css": {
|
||||
"type": "text/css; charset=utf-8",
|
||||
"etag": "\"f954-gFKPvCM4WZHzb2tWqZEkEegmw5w\"",
|
||||
"mtime": "2026-10-24T06:22:20.596Z",
|
||||
"size": 63828,
|
||||
"path": "../public/_nuxt/entry.NJkjIEBJ.css"
|
||||
},
|
||||
"/_nuxt/r7-JdZhN.js": {
|
||||
"type": "text/javascript; charset=utf-8",
|
||||
"etag": "\"78c-4hmOEQGuRxrwCX/1v0DRIhjwpXE\"",
|
||||
"mtime": "2026-10-24T06:22:20.592Z",
|
||||
"size": 1932,
|
||||
"path": "../public/_nuxt/r7-JdZhN.js"
|
||||
},
|
||||
"/_nuxt/VuesaxIcon.4cYnpGo8.css": {
|
||||
"type": "text/css; charset=utf-8",
|
||||
"etag": "\"dc-Uz1+XA31y3oabrHslWpIJp4Ls74\"",
|
||||
"mtime": "2026-10-24T06:22:20.594Z",
|
||||
"size": 220,
|
||||
"path": "../public/_nuxt/VuesaxIcon.4cYnpGo8.css"
|
||||
},
|
||||
"/_nuxt/xGM79_uD.js": {
|
||||
"type": "text/javascript; charset=utf-8",
|
||||
"etag": "\"5023-nhybJtf5A4+tqp5rdRjhnkK+QMY\"",
|
||||
"mtime": "2026-10-24T06:22:20.594Z",
|
||||
"size": 20515,
|
||||
"path": "../public/_nuxt/xGM79_uD.js"
|
||||
},
|
||||
"/fonts/IRANSansWebFaNum.woff2": {
|
||||
"type": "font/woff2",
|
||||
"etag": "\"6d28-AufINCNdNZVNkWiYA6/Wp9W2wE4\"",
|
||||
@@ -4925,38 +4855,108 @@ const assets = {
|
||||
"size": 28208,
|
||||
"path": "../public/fonts/IRANSansWebFaNum_UltraLight.woff2"
|
||||
},
|
||||
"/_nuxt/builds/latest.json": {
|
||||
"type": "application/json",
|
||||
"etag": "\"47-G2SzGQAx+7jjaPS2/R34X5ok/3s\"",
|
||||
"mtime": "2026-10-24T06:22:24.796Z",
|
||||
"size": 71,
|
||||
"path": "../public/_nuxt/builds/latest.json"
|
||||
"/images/logo.png": {
|
||||
"type": "image/png",
|
||||
"etag": "\"45a79-DygL+P0onWMf3/jsNWp1BqEUPE4\"",
|
||||
"mtime": "2026-10-11T12:10:17.609Z",
|
||||
"size": 285305,
|
||||
"path": "../public/images/logo.png"
|
||||
},
|
||||
"/_nuxt/builds/meta/a8d141b7-21bc-49e2-b0af-d8f546b8f950.json": {
|
||||
"type": "application/json",
|
||||
"etag": "\"58-QMCXea6QUkGDqWkAUorw3Tw94e4\"",
|
||||
"mtime": "2026-10-24T06:22:24.796Z",
|
||||
"size": 88,
|
||||
"path": "../public/_nuxt/builds/meta/a8d141b7-21bc-49e2-b0af-d8f546b8f950.json"
|
||||
"/_nuxt/D0e0LUpa.js": {
|
||||
"type": "text/javascript; charset=utf-8",
|
||||
"etag": "\"794-cNNGOqTLOp2+IDNDEbTWshwORp0\"",
|
||||
"mtime": "2026-10-24T09:59:44.867Z",
|
||||
"size": 1940,
|
||||
"path": "../public/_nuxt/D0e0LUpa.js"
|
||||
},
|
||||
"/_nuxt/BHOIQrRl.js": {
|
||||
"type": "text/javascript; charset=utf-8",
|
||||
"etag": "\"1637-w7apJM7DBwq91AEy0Dz89/JwU4s\"",
|
||||
"mtime": "2026-10-24T09:59:44.867Z",
|
||||
"size": 5687,
|
||||
"path": "../public/_nuxt/BHOIQrRl.js"
|
||||
},
|
||||
"/_nuxt/Dd1GE-gU.js": {
|
||||
"type": "text/javascript; charset=utf-8",
|
||||
"etag": "\"21420-NSMMtehs6gAIMs2sZ84NfSEv/wU\"",
|
||||
"mtime": "2026-10-24T09:59:44.868Z",
|
||||
"size": 136224,
|
||||
"path": "../public/_nuxt/Dd1GE-gU.js"
|
||||
},
|
||||
"/_nuxt/DlAPF8TW.js": {
|
||||
"type": "text/javascript; charset=utf-8",
|
||||
"etag": "\"1e85-YNtOmEmkO1nMcpDM/ztRmg/rRLw\"",
|
||||
"mtime": "2026-10-24T09:59:44.868Z",
|
||||
"size": 7813,
|
||||
"path": "../public/_nuxt/DlAPF8TW.js"
|
||||
},
|
||||
"/_nuxt/DOASWvjr.js": {
|
||||
"type": "text/javascript; charset=utf-8",
|
||||
"etag": "\"3827-3BvUfZznriOnNWFcpi6aALVMpOE\"",
|
||||
"mtime": "2026-10-24T09:59:44.868Z",
|
||||
"size": 14375,
|
||||
"path": "../public/_nuxt/DOASWvjr.js"
|
||||
},
|
||||
"/_nuxt/entry.NJkjIEBJ.css": {
|
||||
"type": "text/css; charset=utf-8",
|
||||
"etag": "\"f954-gFKPvCM4WZHzb2tWqZEkEegmw5w\"",
|
||||
"mtime": "2026-10-24T09:59:44.872Z",
|
||||
"size": 63828,
|
||||
"path": "../public/_nuxt/entry.NJkjIEBJ.css"
|
||||
},
|
||||
"/_nuxt/r7-JdZhN.js": {
|
||||
"type": "text/javascript; charset=utf-8",
|
||||
"etag": "\"78c-4hmOEQGuRxrwCX/1v0DRIhjwpXE\"",
|
||||
"mtime": "2026-10-24T09:59:44.872Z",
|
||||
"size": 1932,
|
||||
"path": "../public/_nuxt/r7-JdZhN.js"
|
||||
},
|
||||
"/_nuxt/VuesaxIcon.4cYnpGo8.css": {
|
||||
"type": "text/css; charset=utf-8",
|
||||
"etag": "\"dc-Uz1+XA31y3oabrHslWpIJp4Ls74\"",
|
||||
"mtime": "2026-10-24T09:59:44.872Z",
|
||||
"size": 220,
|
||||
"path": "../public/_nuxt/VuesaxIcon.4cYnpGo8.css"
|
||||
},
|
||||
"/_nuxt/DoONAYG5.js": {
|
||||
"type": "text/javascript; charset=utf-8",
|
||||
"etag": "\"3b62c-dc9OPIQbgdy0oXHYg6EoUgVy6yc\"",
|
||||
"mtime": "2026-10-24T06:22:20.592Z",
|
||||
"mtime": "2026-10-24T09:59:44.872Z",
|
||||
"size": 243244,
|
||||
"path": "../public/_nuxt/DoONAYG5.js"
|
||||
},
|
||||
"/_nuxt/builds/latest.json": {
|
||||
"type": "application/json",
|
||||
"etag": "\"47-Q166IaZkCaNTXHxWgZI+eeFM68U\"",
|
||||
"mtime": "2026-10-24T09:59:49.866Z",
|
||||
"size": 71,
|
||||
"path": "../public/_nuxt/builds/latest.json"
|
||||
},
|
||||
"/_nuxt/builds/meta/a8b8f23e-57aa-4497-aa31-c772dbae9639.json": {
|
||||
"type": "application/json",
|
||||
"etag": "\"58-bKD7NKvUnazN2gxkAMUA2hMGhb8\"",
|
||||
"mtime": "2026-10-24T09:59:49.866Z",
|
||||
"size": 88,
|
||||
"path": "../public/_nuxt/builds/meta/a8b8f23e-57aa-4497-aa31-c772dbae9639.json"
|
||||
},
|
||||
"/_nuxt/xGM79_uD.js": {
|
||||
"type": "text/javascript; charset=utf-8",
|
||||
"etag": "\"5023-nhybJtf5A4+tqp5rdRjhnkK+QMY\"",
|
||||
"mtime": "2026-10-24T09:59:44.872Z",
|
||||
"size": 20515,
|
||||
"path": "../public/_nuxt/xGM79_uD.js"
|
||||
},
|
||||
"/_nuxt/DlDWjZRl.js": {
|
||||
"type": "text/javascript; charset=utf-8",
|
||||
"etag": "\"37855-Z6e8Pe/n6IqFkcSEj31zIJ7FhuQ\"",
|
||||
"mtime": "2026-10-24T06:22:20.558Z",
|
||||
"mtime": "2026-10-24T09:59:44.867Z",
|
||||
"size": 227413,
|
||||
"path": "../public/_nuxt/DlDWjZRl.js"
|
||||
},
|
||||
"/_nuxt/D6Ym2dQP.js": {
|
||||
"type": "text/javascript; charset=utf-8",
|
||||
"etag": "\"1241f5-OG41EU7LABNWcdBigZe253LHLTw\"",
|
||||
"mtime": "2026-10-24T06:22:20.558Z",
|
||||
"mtime": "2026-10-24T09:59:44.868Z",
|
||||
"size": 1196533,
|
||||
"path": "../public/_nuxt/D6Ym2dQP.js"
|
||||
}
|
||||
|
||||
+3
-20
@@ -1,25 +1,8 @@
|
||||
# Admin panel (static SPA served by nginx). Build context: repository root.
|
||||
# docker build -f docker/admin.Dockerfile --build-arg SITE_URL=https://imenpishgaman.ir -t imen-admin .
|
||||
ARG NODE_IMAGE=docker.arvancloud.ir/node:24-alpine
|
||||
# Admin panel (static SPA served by nginx). Pre-built output.
|
||||
# docker build -f docker/admin.Dockerfile -t imen-admin .
|
||||
ARG NGINX_IMAGE=docker.arvancloud.ir/nginx:alpine
|
||||
|
||||
FROM ${NODE_IMAGE} AS build
|
||||
ARG NPM_REGISTRY=https://registry.npmjs.org/
|
||||
ENV COREPACK_NPM_REGISTRY=${NPM_REGISTRY} npm_config_registry=${NPM_REGISTRY}
|
||||
# website address for the "view site" links
|
||||
ARG SITE_URL=https://imenpishgaman.ir
|
||||
ENV VITE_SITE_URL=${SITE_URL}
|
||||
RUN corepack enable
|
||||
WORKDIR /repo
|
||||
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
|
||||
COPY packages/shared packages/shared
|
||||
COPY apps/admin apps/admin
|
||||
RUN pnpm config set fetch-retries 5 \
|
||||
&& pnpm config set fetch-retry-maxtimeout 120000 \
|
||||
&& pnpm install --frozen-lockfile --filter "@imen/admin..." || pnpm install --no-frozen-lockfile --filter "@imen/admin..."
|
||||
RUN pnpm --filter "@imen/admin..." build
|
||||
|
||||
FROM ${NGINX_IMAGE}
|
||||
COPY docker/nginx/admin.conf /etc/nginx/conf.d/default.conf
|
||||
COPY --from=build /repo/apps/admin/dist /usr/share/nginx/html
|
||||
COPY apps/admin/dist /usr/share/nginx/html
|
||||
EXPOSE 80
|
||||
|
||||
+5
-16
@@ -1,25 +1,14 @@
|
||||
# Nuxt website (SSR). Build context: repository root.
|
||||
# Nuxt website (SSR). Pre-built output.
|
||||
# docker build -f docker/web.Dockerfile -t imen-web .
|
||||
ARG NODE_IMAGE=docker.arvancloud.ir/node:24-alpine
|
||||
|
||||
FROM ${NODE_IMAGE} AS build
|
||||
ARG NPM_REGISTRY=https://registry.npmjs.org/
|
||||
ENV COREPACK_NPM_REGISTRY=${NPM_REGISTRY} npm_config_registry=${NPM_REGISTRY}
|
||||
RUN corepack enable
|
||||
WORKDIR /repo
|
||||
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
|
||||
COPY packages/shared packages/shared
|
||||
COPY apps/web apps/web
|
||||
RUN pnpm config set fetch-retries 5 \
|
||||
&& pnpm config set fetch-retry-maxtimeout 120000 \
|
||||
&& pnpm install --frozen-lockfile --filter "@imen/web..." || pnpm install --no-frozen-lockfile --filter "@imen/web..."
|
||||
RUN pnpm --filter "@imen/web..." build
|
||||
|
||||
# .output is self-contained (Nitro bundles the server dependencies it needs)
|
||||
FROM ${NODE_IMAGE}
|
||||
WORKDIR /app
|
||||
ENV NODE_ENV=production PORT=3000
|
||||
COPY --from=build /repo/apps/web/.output ./.output
|
||||
|
||||
# Copy pre-built Nuxt Nitro bundle
|
||||
COPY apps/web/.output ./.output
|
||||
|
||||
USER node
|
||||
EXPOSE 3000
|
||||
CMD ["node", ".output/server/index.mjs"]
|
||||
|
||||
Reference in New Issue
Block a user