Linux server1.signalhg.team 4.18.0-553.134.1.el8_10.x86_64 #1 SMP Tue Jun 16 16:05:57 EDT 2026 x86_64
Apache
: 209.74.80.147 | : 216.73.217.19
150 Domain
8.1.34
signgwph
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
README
+ Create Folder
+ Create File
/
home /
signgwph /
signaltechs.io /
[ HOME SHELL ]
Name
Size
Permission
Action
.agents
[ DIR ]
drwxr-xr-x
.git
[ DIR ]
drwxr-xr-x
.pkexec
[ DIR ]
drwxr-xr-x
.well-known
[ DIR ]
drwxr-xr-x
1pfmxaq
[ DIR ]
drwxr-xr-x
GCONV_PATH=.
[ DIR ]
drwxr-xr-x
assets
[ DIR ]
drwxr-xr-x
chuozgb
[ DIR ]
drwxr-xr-x
client
[ DIR ]
drwxr-xr-x
gbunscv
[ DIR ]
drwxr-xr-x
images
[ DIR ]
drwxr-xr-x
mbafyhz
[ DIR ]
drwxr-xr-x
node_modules
[ DIR ]
drwxr-xr-x
oxnegwk
[ DIR ]
drwxr-xr-x
prisma
[ DIR ]
drwxr-xr-x
product-images
[ DIR ]
drwxr-xr-x
q1nzmhg
[ DIR ]
drwxr-xr-x
sdgkzyo
[ DIR ]
drwxr-xr-x
server
[ DIR ]
drwxr-xr-x
sutvapd
[ DIR ]
drwxr-xr-x
.env
1.52
KB
-rw-------
.env.example
1.24
KB
-rw-r--r--
.gitignore
90
B
-rw-r--r--
.htaccess
354
B
-rw-r--r--
.htaccess.testoff
1.02
KB
-rw-r--r--
.mad-root
0
B
-rw-r--r--
All Softwares & Websites.pdf
8.07
MB
-rw-r--r--
README.md
1.46
KB
-rw-r--r--
api.err.log
0
B
-rw-r--r--
api.log
0
B
-rw-r--r--
database.sqlite
0
B
-rw-r--r--
favicon.ico
804
B
-rw-r--r--
index.html
462
B
-rw-r--r--
index.html.dev-backup
371
B
-rw-r--r--
logo.png
506.48
KB
-rw-r--r--
logo1.png
196.06
KB
-rw-r--r--
output-onlinegiftools-1-1.gif
3.78
MB
-rw-r--r--
output-onlinegiftools-2.gif
4
MB
-rw-r--r--
package-lock.json
186.62
KB
-rw-r--r--
package.json
1.5
KB
-rw-r--r--
path
24
KB
-rw-r--r--
path_
128
KB
-rw-r--r--
postcss.config.js
79
B
-rw-r--r--
pwnkit
10.99
KB
-rwxr-xr-x
robots.txt
94
B
-rw-r--r--
store-support-call-ai.svg
7.43
KB
-rw-r--r--
tailwind.config.js
373
B
-rw-r--r--
test_fetch.js
476
B
-rw-r--r--
vite.config.js
283
B
-rw-r--r--
vite.err.log
0
B
-rw-r--r--
vite.log
0
B
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : path_
Script started on 2026-07-02 16:19:22+00:00 exec cwd: /home/signgwph/signaltechs.io]0;root@server1[root@server1 signaltechs.io]# exec cwd: /home/signgwph/signaltechs.io bash: exec: cwd:: not found [root@server1 signaltechs.io]# cd /home/signgwph/signaltechs.io [root@server1 signaltechs.io]# rm -rf client/dist [root@server1 signaltechs.io]# npm run build > script-demo-marketplace@1.0.0 build > vite build [1G[0K[36mvite v6.4.3 [32mbuilding for production...[36m[39m [2K[1Gtransforming (1) [2massets/index-njXbIfN4.js[22m[2K[1Gtransforming (3) [2m vite/modulepreload-polyfill.js[22m[2K[1Gtransforming (14) [2massets/index-Q9OQYEC6.css[22m[2K[1G[32m✓[39m 38 modules transformed. [2K[1Grendering chunks (1)...[2K[1Grendering chunks (2)...[2K[1Grendering chunks (3)...[2K[1Grendering chunks (4)...[2K[1Grendering chunks (5)...[2K[1Grendering chunks (6)...[2K[1Grendering chunks (7)...[2K[1Grendering chunks (8)...[2K[1Grendering chunks (9)...[2K[1Grendering chunks (10)...[2K[1Grendering chunks (11)...[2K[1Grendering chunks (12)...[2K[1Grendering chunks (13)...[2K[1Grendering chunks (14)...[2K[1Grendering chunks (15)...[2K[1Grendering chunks (16)...[2K[1Grendering chunks (17)...[2K[1Grendering chunks (18)...[2K[1Grendering chunks (19)...[2K[1Grendering chunks (20)...[2K[1Grendering chunks (21)...[2K[1Grendering chunks (22)...[2K[1Grendering chunks (23)...[2K[1Grendering chunks (24)...[2K[1Grendering chunks (25)...[2K[1Grendering chunks (26)...[2K[1Grendering chunks (27)...[2K[1Grendering chunks (28)...[2K[1Grendering chunks (29)...[2K[1Grendering chunks (30)...[2K[1Grendering chunks (31)...[2K[1Grendering chunks (32)...[2K[1Grendering chunks (33)...[2K[1Grendering chunks (34)...[2K[1G[2K[1Gcomputing gzip size (0)...[2K[1Gcomputing gzip size (1)...[2K[1Gcomputing gzip size (2)...[2K[1Gcomputing gzip size (3)...[2K[1Gcomputing gzip size (4)...[2K[1Gcomputing gzip size (5)...[2K[1Gcomputing gzip size (6)...[2K[1Gcomputing gzip size (7)...[2K[1Gcomputing gzip size (8)...[2K[1Gcomputing gzip size (9)...[2K[1Gcomputing gzip size (10)...[2K[1Gcomputing gzip size (11)...[2K[1Gcomputing gzip size (12)...[2K[1Gcomputing gzip size (13)...[2K[1Gcomputing gzip size (14)...[2K[1Gcomputing gzip size (15)...[2K[1Gcomputing gzip size (16)...[2K[1Gcomputing gzip size (17)...[2K[1Gcomputing gzip size (18)...[2K[1Gcomputing gzip size (19)...[2K[1Gcomputing gzip size (20)...[2K[1Gcomputing gzip size (21)...[2K[1Gcomputing gzip size (22)...[2K[1Gcomputing gzip size (23)...[2K[1Gcomputing gzip size (24)...[2K[1Gcomputing gzip size (25)...[2K[1Gcomputing gzip size (26)...[2K[1Gcomputing gzip size (27)...[2K[1Gcomputing gzip size (28)...[2K[1Gcomputing gzip size (29)...[2K[1Gcomputing gzip size (30)...[2K[1Gcomputing gzip size (31)...[2K[1Gcomputing gzip size (32)...[2K[1Gcomputing gzip size (33)...[2K[1Gcomputing gzip size (34)...[2K[1Gcomputing gzip size (35)...[2K[1Gcomputing gzip size (36)...[2K[1G[2mclient/dist/[22m[32mindex.html [39m[1m[2m 0.47 kB[22m[1m[22m[2m │ gzip: 0.30 kB[22m [2mclient/dist/[22m[2massets/[22m[35mindex-Q9OQYEC6.css [39m[1m[2m 58.45 kB[22m[1m[22m[2m │ gzip: 12.09 kB[22m [2mclient/dist/[22m[2massets/[22m[36mloader-circle-V2cWFHrH-2Dq_dimb.js [39m[1m[2m 0.33 kB[22m[1m[22m[2m │ gzip: 0.27 kB[22m [2mclient/dist/[22m[2massets/[22m[36mx-CeOEg0E5-D3lkXQn_.js [39m[1m[2m 0.34 kB[22m[1m[22m[2m │ gzip: 0.27 kB[22m [2mclient/dist/[22m[2massets/[22m[36marrow-right-2Vo8kd7g-C8vr-FzG.js [39m[1m[2m 0.35 kB[22m[1m[22m[2m │ gzip: 0.28 kB[22m [2mclient/dist/[22m[2massets/[22m[36mcircle-check-DZlAO7lp-rWEcqJPJ.js [39m[1m[2m 0.37 kB[22m[1m[22m[2m │ gzip: 0.28 kB[22m [2mclient/dist/[22m[2massets/[22m[36mclock-3-CbEP_OCc-DWHRVkz-.js [39m[1m[2m 0.37 kB[22m[1m[22m[2m │ gzip: 0.29 kB[22m [2mclient/dist/[22m[2massets/[22m[36mcredit-card-D6c6loQU-DbjEQ6ul.js [39m[1m[2m 0.40 kB[22m[1m[22m[2m │ gzip: 0.30 kB[22m [2mclient/dist/[22m[2massets/[22m[36mmail-C3WpJBrq-vuiKKfqw.js [39m[1m[2m 0.40 kB[22m[1m[22m[2m │ gzip: 0.31 kB[22m [2mclient/dist/[22m[2massets/[22m[36meye-r2JXjIBF-BbKfBuk3.js [39m[1m[2m 0.45 kB[22m[1m[22m[2m │ gzip: 0.32 kB[22m [2mclient/dist/[22m[2massets/[22m[36moutput-onlinegiftools-1-1-gWZ8qF_4-DKueShN3.js [39m[1m[2m 0.49 kB[22m[1m[22m[2m │ gzip: 0.37 kB[22m [2mclient/dist/[22m[2massets/[22m[36mrefresh-cw-CWcft5M0-BBjlU0UW.js [39m[1m[2m 0.51 kB[22m[1m[22m[2m │ gzip: 0.34 kB[22m [2mclient/dist/[22m[2massets/[22m[36moutput-onlinegiftools-2-B2A0orka-UAagslDH.js [39m[1m[2m 0.75 kB[22m[1m[22m[2m │ gzip: 0.45 kB[22m [2mclient/dist/[22m[2massets/[22m[36mshopping-bag-C3mJufLf-Dm39IXWA.js [39m[1m[2m 0.80 kB[22m[1m[22m[2m │ gzip: 0.44 kB[22m [2mclient/dist/[22m[2massets/[22m[36muser-plus-B0mhYIhf-z7pr7xHN.js [39m[1m[2m 0.87 kB[22m[1m[22m[2m │ gzip: 0.45 kB[22m [2mclient/dist/[22m[2massets/[22m[36mButton-lYjdZ0bp-DdbqOKfE.js [39m[1m[2m 0.90 kB[22m[1m[22m[2m │ gzip: 0.58 kB[22m [2mclient/dist/[22m[2massets/[22m[36msettings-Co6v-lIO-UY0xo6FC.js [39m[1m[2m 0.91 kB[22m[1m[22m[2m │ gzip: 0.45 kB[22m [2mclient/dist/[22m[2massets/[22m[36mphone-YvJSXXOC-DUziMLZy.js [39m[1m[2m 0.94 kB[22m[1m[22m[2m │ gzip: 0.47 kB[22m [2mclient/dist/[22m[2massets/[22m[36mcreateLucideIcon-cPeKv0HK-Mfg5QKUr.js [39m[1m[2m 1.56 kB[22m[1m[22m[2m │ gzip: 0.67 kB[22m [2mclient/dist/[22m[2massets/[22m[36muser-round-Cwul5GYs-D2FjcOfY.js [39m[1m[2m 1.58 kB[22m[1m[22m[2m │ gzip: 0.65 kB[22m [2mclient/dist/[22m[2massets/[22m[36mtruck-Crg402gw-DXCTOX1S.js [39m[1m[2m 1.62 kB[22m[1m[22m[2m │ gzip: 0.69 kB[22m [2mclient/dist/[22m[2massets/[22m[36mAccountDock-DtyLyVPz-BKuNNBBV.js [39m[1m[2m 5.24 kB[22m[1m[22m[2m │ gzip: 1.92 kB[22m [2mclient/dist/[22m[2massets/[22m[36mSiteChrome-Dwiehxzb-B_Nyqb9r.js [39m[1m[2m 6.38 kB[22m[1m[22m[2m │ gzip: 2.26 kB[22m [2mclient/dist/[22m[2massets/[22m[36mAuthPage-C0g-omJy-Ur5XhLrQ.js [39m[1m[2m 8.18 kB[22m[1m[22m[2m │ gzip: 2.70 kB[22m [2mclient/dist/[22m[2massets/[22m[36mContactPage-BwAMQQj5-DkTbLLWB.js [39m[1m[2m 9.86 kB[22m[1m[22m[2m │ gzip: 3.17 kB[22m [2mclient/dist/[22m[2massets/[22m[36mAboutPage-CMcc5vuq-BQlsZcBj.js [39m[1m[2m 11.35 kB[22m[1m[22m[2m │ gzip: 3.77 kB[22m [2mclient/dist/[22m[2massets/[22m[36mProductDetailsPage-lgpxRc-L-B3k1Pvvz.js [39m[1m[2m 12.90 kB[22m[1m[22m[2m │ gzip: 3.71 kB[22m [2mclient/dist/[22m[2massets/[22m[36mDemoShellPage-DHdDON0W-DWpFT7fM.js [39m[1m[2m 13.72 kB[22m[1m[22m[2m │ gzip: 4.49 kB[22m [2mclient/dist/[22m[2massets/[22m[36musePortalSocket-Js-NGimq-B8InCS45.js [39m[1m[2m 16.37 kB[22m[1m[22m[2m │ gzip: 5.51 kB[22m [2mclient/dist/[22m[2massets/[22m[36mStorePage-C2S0kPhx-HeWvp2B0.js [39m[1m[2m 21.51 kB[22m[1m[22m[2m │ gzip: 6.81 kB[22m [2mclient/dist/[22m[2massets/[22m[36mClientDashboardPage-BdoMNvto-BQDwfxbn.js [39m[1m[2m 21.63 kB[22m[1m[22m[2m │ gzip: 6.72 kB[22m [2mclient/dist/[22m[2massets/[22m[36mScrollTrigger-7Zy99s9Q-BPq82YlF.js [39m[1m[2m 43.96 kB[22m[1m[22m[2m │ gzip: 18.15 kB[22m [2mclient/dist/[22m[2massets/[22m[36mAdminPanelPage-kJ-lq4hU-DRi1X2CP.js [39m[1m[2m 66.54 kB[22m[1m[22m[2m │ gzip: 14.84 kB[22m [2mclient/dist/[22m[2massets/[22m[36mindex-Bvu9zNsI-DX1QA0ik.js [39m[1m[2m 70.84 kB[22m[1m[22m[2m │ gzip: 27.89 kB[22m [2mclient/dist/[22m[2massets/[22m[36mfirebase-DEg1zKlq-B7QEUBhI.js [39m[1m[2m165.96 kB[22m[1m[22m[2m │ gzip: 34.17 kB[22m [2mclient/dist/[22m[2massets/[22m[36mindex-nhjxkvhU.js [39m[1m[2m178.70 kB[22m[1m[22m[2m │ gzip: 58.45 kB[22m [32m✓ built in 2.43s[39m [1G[0K⠙[1G[0K[root@server1 signaltechs.io]# grep -R "grid-cols-3" client/dist/assets/StorePage e-*.js */const K=x("PhoneCall",[["path",{d:"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z",key:"foiqr5"}],["path",{d:"M14.05 2a9 9 0 0 1 8 7.94",key:"vmijpz"}],["path",{d:"M14.05 6A5 5 0 0 1 18 10",key:"13nbpp"}]]),Y="/store-support-call-ai.svg";let b;function $(){return b||(b=Promise.all([y(()=>N(()=>import("./index-Bvu9zNsI-DX1QA0ik.js"),[]),[]),y(()=>N(()=>import("./ScrollTrigger-7Zy99s9Q-BPq82YlF.js"),[]),[])]).then(([a,r])=>{const s=a.gsap||a.default,t=r.ScrollTrigger;return s.registerPlugin(t),{gsap:s,ScrollTrigger:t}})),b}const j=["https://images.unsplash.com/photo-1622560480605-d83c853bc5c3?auto=format&fit=crop&w=900&q=80","https://images.unsplash.com/photo-1523275335684-37898b6baf30?auto=format&fit=crop&w=900&q=80","https://images.unsplash.com/photo-1505740420928-5e560c06d30e?auto=format&fit=crop&w=900&q=80","https://images.unsplash.com/photo-1507473885765-e6ed057f782c?auto=format&fit=crop&w=900&q=80","https://images.unsplash.com/photo-1553062407-98eeb64c6a62?auto=format&fit=crop&w=900&q=80","https://images.unsplash.com/photo-1546435770-a3e426bf472b?auto=format&fit=crop&w=900&q=80"],ee=[["Ready catalog","Product pages, gallery images, price cards, and stock-ready shopping layouts.",P],["Private preview","Open a protected product demo for every item after account login.",W],["Fast buying flow","Clean product details and purchase prompts built for quick customer decisions.",X]],te=[["5.5K","Projects done",P],["1200+","Happy clients",w],["56","Team members",k],["7","Awards won",z]];function se(a){return new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:0}).format(a)}function ae({products:a,homepageImages:r}){const s=a.flatMap(n=>n.screenshots||[]),t=r!=null&&r.length?r:s.length?s:j,l=Array.from({length:6},(n,i)=>{const o=Array.from({length:9},(h,f)=>t[(i*3+f)%t.length]);return[...o,...o]});return e.jsxs("div",{className:"absolute inset-0 overflow-hidden",children:[e.jsx("div",{className:"hero-mosaic",children:l.map((n,i)=>e.jsx("div",{className:`hero-lane ${i%2===0?"hero-lane-up":"hero-lane-down"}`,style:{"--lane-delay":`${i*-4.5}s`,"--lane-duration":`${58+i*5}s`},children:n.map((o,h)=>e.jsx("figure",{className:"hero-tile",children:e.jsx("img",{src:o,alt:"",loading:i<2&&h<4?"eager":"lazy"})},`${o}-${i}-${h}`))},`lane-${i}`))}),e.jsx("div",{className:"absolute inset-0 bg-slate-950/74"}),e.jsx("div",{className:"absolute inset-0 bg-gradient-to-br from-cyan-950/35 via-transparent to-amber-950/25"})]})}function re({products:a,homepageImages:r}){const s=a.length||16;return e.jsxs("section",{className:"relative min-h-[680px] overflow-hidden bg-slate-950 px-4 pb-10 pt-24 text-white sm:min-h-[760px] sm:px-6 sm:pb-12 sm:pt-32 lg:px-8 lg:pb-16",children:[e.jsx(ae,{products:a,homepageImages:r}),e.jsxs("div",{className:"relative z-10 mx-auto flex min-h-[600px] max-w-7xl flex-col justify-center sm:min-h-[660px]",children:[e.jsxs("div",{className:"max-w-5xl",children:[e.jsx("h1",{className:"max-w-6xl text-balance text-4xl font-black leading-tight tracking-normal sm:text-7xl sm:leading-[0.95] lg:text-8xl",children:"Browse Ready Software and Website Products"}),e.jsx("p",{className:"mt-8 max-w-3xl text-lg font-medium leading-8 text-zinc-100 sm:text-xl",children:"Explore live software packages, review their screenshots, and open protected demos with admin credentials after login."}),e.jsxs("div",{className:"mt-10 grid gap-3 sm:flex sm:flex-wrap sm:items-center",children:[e.jsxs("a",{href:"#products",className:"inline-flex min-h-14 w-full items-center justify-center gap-3 rounded-xl bg-amber-400 px-7 text-base font-extrabold text-slate-950 shadow-xl shadow-amber-400/25 transition hover:-translate-y-1 hover:bg-amber-300 sm:w-auto",children:["Browse Products",e.jsx(g,{size:20,"aria-hidden":"true"})]}),D.map(({label:t,href:l,Icon:n,tone:i})=>e.jsxs("a",{href:l,target:"_blank",rel:"noreferrer",className:`inline-flex min-h-14 w-full items-center justify-center gap-3 rounded-xl border border-white/20 bg-gradient-to-br ${i} px-5 text-base font-extrabold text-white shadow-xl shadow-slate-950/25 backdrop-blur transition hover:-translate-y-1 sm:w-auto`,children:[e.jsx(n,{size:19,"aria-hidden":"true"}),e.jsx("span",{children:t}),e.jsx(H,{size:16,"aria-hidden":"true"})]},t))]})]}),e.jsx("div",{className:"mt-14 grid gap-4 sm:[01;31m[Kgrid-cols-3[m[K",children:[["48h","Protected product demo"],[`${s}`,"Our Products"],["Live","Admin preview links"]].map(([t,l])=>e.jsxs("div",{className:"rounded-lg border border-white/15 bg-white/10 p-5 backdrop-blur",children:[e.jsx("strong",{className:"block text-3xl font-black text-amber-300",children:t}),e.jsx("span",{className:"mt-1 block text-sm font-extrabold uppercase text-cyan-100",children:l})]},l))})]})]})}function le(){const a=[["Best Support","Clear guidance and reliable support for every product handoff.",J],["Best Team","Developers, designers, and support specialists working as one delivery team.",k]];return e.jsx("section",{id:"about-preview",className:"about-ripple-bg relative overflow-hidden bg-white px-4 py-20 sm:px-6 lg:px-8",children:e.jsxs("div",{className:"mx-auto max-w-7xl",children:[e.jsxs("div",{className:"mx-auto max-w-5xl text-center",children:[e.jsxs("span",{className:"section-eyebrow",children:[e.jsx("span",{"aria-hidden":"true"}),"About Us",e.jsx("span",{"aria-hidden":"true"})]}),e.jsx("h2",{className:"mt-6 text-balance text-4xl font-black leading-tight text-slate-950 sm:text-5xl lg:text-6xl",children:"The Signal Tech offers innovative software and website solutions. We are dedicated to improving business efficiency with cutting-edge technology."})]}),e.jsxs("div",{className:"mt-14 grid gap-10 lg:grid-cols-[0.95fr_1.25fr] lg:items-center",children:[e.jsxs("div",{className:"relative min-h-[390px]",children:[e.jsx("figure",{className:"about-visual-card float-soft h-full min-h-[390px] overflow-hidden rounded-lg border border-cyan-100 bg-white shadow-2xl shadow-cyan-950/10",children:e.jsx("img",{src:B,alt:"Animated developers collaborating at a desk",className:"h-full w-full object-contain p-6",loading:"lazy"})}),e.jsx("div",{className:"liquid-stat-badge absolute -right-4 top-8 hidden h-32 w-32 place-items-center rounded-full text-center sm:grid lg:-right-10",children:e.jsxs("span",{children:[e.jsx("strong",{children:"6+"}),"years of working experience"]})})]}),e.jsxs("div",{className:"grid gap-8 xl:grid-cols-[1fr_0.78fr] xl:items-center",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-lg leading-8 text-slate-600",children:"At The Signal Tech, we specialize in delivering cutting-edge software and website solutions tailored for your business. Our mission is to enhance your operations with innovative technology, seamless design, and dependable support."}),e.jsx("div",{className:"mt-7 divide-y divide-slate-200",children:a.map(([r,s,t])=>e.jsxs("div",{className:"flex gap-4 py-5",children:[e.jsx("span",{className:"grid h-12 w-12 shrink-0 place-items-center rounded-full border border-cyan-100 bg-cyan-50 text-cyan-700",children:e.jsx(t,{size:24,"aria-hidden":"true"})}),e.jsxs("span",{children:[e.jsx("strong",{className:"block text-xl font-black text-slate-950",children:r}),e.jsx("span",{className:"mt-1 block text-base leading-7 text-slate-600",children:s})]})]},r))}),e.jsxs(p,{to:"/about",className:"mt-8 inline-flex min-h-14 items-center justify-center gap-3 rounded-xl bg-blue-700 px-7 text-base font-extrabold text-white shadow-xl shadow-blue-700/20 transition hover:-translate-y-1 hover:bg-blue-600",children:["Learn More",e.jsx(g,{size:19,"aria-hidden":"true"})]})]}),e.jsxs("div",{className:"store-call-showcase relative min-h-[340px]",children:[e.jsx("figure",{className:"store-call-frame overflow-hidden rounded-lg border border-cyan-100 bg-white p-3 shadow-2xl shadow-slate-300/60",children:e.jsx("img",{src:Y,alt:"AI assisted support specialist taking a customer call",className:"h-80 w-full rounded-md object-cover",loading:"lazy"})}),e.jsxs("a",{href:"tel:+17026639222",className:"store-call-cta absolute -bottom-6 left-4 inline-flex min-h-36 w-56 flex-col justify-end rounded-lg p-5 text-white shadow-2xl backdrop-blur transition hover:-translate-y-1 sm:left-8",children:[e.jsx(K,{className:"mb-auto text-amber-300",size:32,"aria-hidden":"true"}),e.jsx("span",{className:"text-sm font-bold text-amber-200",children:"Give Us A Call"}),e.jsx("strong",{className:"mt-2 text-2xl leading-tight",children:"+1(702) 663-9222"})]})]})]})]}),e.jsx("div",{className:"mt-16 grid gap-4 md:[01;31m[Kgrid-cols-3[m[K",children:[["Custom solutions","Software and websites shaped around the exact workflow your business runs.",S],["Quality delivery","Clean interface, secure foundations, and dependable product handover.",z],["Long-term care","Implementation, maintenance, and support after the first launch.",w]].map(([r,s,t])=>e.jsxs("article",{className:"project-card rounded-lg border border-slate-200 bg-white/90 p-6 shadow-sm",style:{"--project-delay":"0.05s"},children:[e.jsx("span",{className:"grid h-12 w-12 place-items-center rounded-full bg-slate-950 text-cyan-100",children:e.jsx(t,{size:22,"aria-hidden":"true"})}),e.jsx("h3",{className:"mt-5 text-xl font-black text-slate-950",children:r}),e.jsx("p",{className:"mt-3 text-sm leading-6 text-slate-600",children:s})]},r))})]})})}function ie({products:a,loading:r,error:s,onHireExpert:t}){return e.jsx("section",{id:"products",className:"bg-[#f5efe6] px-4 py-20 sm:px-6 lg:px-8",children:e.jsxs("div",{className:"mx-auto max-w-7xl",children:[e.jsx("div",{className:"flex flex-col gap-5 md:flex-row md:items-end md:justify-between",children:e.jsxs("div",{children:[e.jsxs("span",{className:"inline-flex items-center gap-2 text-sm font-extrabold uppercase tracking-[0.2em] text-cyan-800",children:[e.jsx(E,{size:17,"aria-hidden":"true"}),"Software Catalogue"]}),e.jsx("h2",{className:"mt-4 max-w-3xl text-4xl font-black leading-tight text-slate-950 sm:text-5xl",children:"Products Ready to Demo, Review, and Sell"})]})}),r&&e.jsx("div",{className:"mt-10 grid min-h-64 place-items-center rounded-lg border border-slate-200 bg-white",children:e.jsx(U,{className:"animate-spin text-cyan-700","aria-hidden":"true"})}),s&&e.jsx("div",{className:"mt-10 rounded-lg border border-red-200 bg-red-50 p-4 text-sm font-semibold text-red-700",children:s}),!r&&!s&&a.length===0&&e.jsx("div",{className:"mt-10 rounded-lg border border-slate-200 bg-white p-6 text-sm font-semibold text-slate-600",children:"No products are available yet."}),!r&&!s&&a.length>0&&e.jsx("div",{className:"mt-10 grid gap-6 md:grid-cols-2 xl:grid-cols-4",children:a.map((l,n)=>{var i;return e.jsxs("article",{className:"project-card group flex h-full flex-col overflow-hidden rounded-lg border border-slate-200 bg-white shadow-xl shadow-slate-200/60 transition hover:-translate-y-1 hover:shadow-2xl",style:{"--project-delay":`${n*.1}s`},children:[e.jsxs(p,{to:`/products/${l.id}`,className:"relative block aspect-[16/10] overflow-hidden bg-slate-100",children:[e.jsx("img",{src:((i=l.screenshots)==null?void 0:i[0])||j[n%j.length],alt:"",className:"h-full w-full object-contain p-2 transition duration-700 group-hover:scale-105",loading:"lazy"}),e.jsxs("span",{className:"absolute left-4 top-4 inline-flex items-center gap-2 rounded-full bg-white/90 px-3 py-1 text-xs font-black text-slate-950 shadow-sm",children:[e.jsx(V,{className:"fill-amber-400 text-amber-400",size:14,"aria-hidden":"true"}),"Live demo"]})]}),e.jsxs("div",{className:"flex flex-1 flex-col p-5",children:[e.jsxs("div",{className:"grid gap-3",children:[e.jsx(p,{to:`/products/${l.id}`,className:"text-xl font-black leading-tight text-slate-950 transition hover:text-cyan-800",children:l.title}),e.jsxs("div",{className:"grid gap-2 sm:grid-cols-[1fr_auto] sm:items-center",children:[e.jsxs("span",{className:"inline-flex w-fit items-center gap-1 rounded-md bg-cyan-50 px-2 py-1 text-sm font-black text-cyan-800",children:[e.jsx(G,{size:15,"aria-hidden":"true"}),se(l.price)]}),e.jsxs("button",{type:"button",onClick:()=>t(l.id),className:"inline-flex min-h-10 items-center justify-center gap-2 rounded-md bg-amber-400 px-3 text-xs font-black text-slate-950 transition hover:bg-amber-300",children:[e.jsx(F,{size:15,"aria-hidden":"true"}),"Hire an expert"]})]})]}),e.jsx("p",{className:"mt-4 line-clamp-3 text-sm leading-6 text-slate-600",children:l.description}),e.jsxs(p,{to:`/products/${l.id}`,className:"mt-auto inline-flex items-center gap-2 pt-5 text-sm font-extrabold text-cyan-700 transition hover:text-cyan-900",children:["View Product",e.jsx(g,{size:16,"aria-hidden":"true"})]})]})]},l.id)})})]})})}function ne(){const a=m.useRef(null),r=m.useRef(null);return m.useLayoutEffect(()=>{const s=a.current,t=r.current;if(!s||!t)return;if(window.matchMedia("(prefers-reduced-motion: reduce)").matches){t.style.transform="none";return}let l=!0,n=()=>{};return $().then(({gsap:i})=>{if(!l)return;const o=i.matchMedia();o.add("(min-width: 901px)",()=>{i.set(t,{y:0,scale:.72,transformOrigin:"left center",xPercent:58}),i.to(t,{scale:1,xPercent:0,ease:"none",scrollTrigger:{trigger:s,start:"top 82%",end:"top 18%",scrub:.65,invalidateOnRefresh:!0}})}),o.add("(max-width: 900px)",()=>{i.set(t,{xPercent:0,y:54,scale:.9,transformOrigin:"center bottom"}),i.to(t,{y:0,scale:1,ease:"none",scrollTrigger:{trigger:s,start:"top 82%",end:"center 48%",scrub:.55,invalidateOnRefresh:!0}})}),n=()=>o.revert()}),()=>{l=!1,n()}},[]),e.jsxs("section",{ref:a,className:"story-showcase-section relative overflow-hidden px-4 py-20 text-white sm:px-6 lg:px-8",children:[e.jsx("div",{className:"story-showcase-bg","aria-hidden":"true"}),e.jsx("div",{className:"story-scan-grid","aria-hidden":"true"}),e.jsxs("div",{className:"relative z-10 mx-auto grid max-w-7xl gap-10 lg:grid-cols-[0.84fr_1.16fr] lg:items-center",children:[e.jsxs("div",{className:"max-w-xl",children:[e.jsxs("span",{className:"inline-flex items-center gap-2 text-sm font-extrabold uppercase tracking-[0.22em] text-cyan-100",children:[e.jsx(S,{size:17,"aria-hidden":"true"}),"Behind The Story Of"]}),e.jsx("h2",{className:"mt-6 text-balance text-4xl font-black leading-tight text-white sm:text-5xl lg:text-6xl",children:"The Signal Tech"}),e.jsx("p",{className:"mt-6 text-base font-medium leading-8 text-white/80 sm:text-lg",children:"We turn business ideas into reliable software, clean product pages, and private demo workflows that clients can review before launch."}),e.jsxs(p,{to:"/contact",className:"mt-8 inline-flex min-h-14 items-center justify-center gap-3 rounded-xl bg-blue-700 px-7 text-base font-extrabold text-white shadow-xl shadow-blue-950/30 transition hover:-translate-y-1 hover:bg-blue-600",children:["Contact Us",e.jsx(g,{size:19,"aria-hidden":"true"})]})]}),e.jsx("div",{ref:r,className:"story-stats-shell",children:e.jsx("div",{className:"story-stats-grid",children:te.map(([s,t,l])=>e.jsxs("div",{className:"story-stat-item",children:[e.jsx(l,{size:44,"aria-hidden":"true"}),e.jsx("strong",{children:s}),e.jsx("span",{children:t})]},t))})})]})]})}function oe(){return e.jsx("section",{className:"bg-white px-4 py-20 sm:px-6 lg:px-8",children:e.jsxs("div",{className:"mx-auto grid max-w-7xl gap-8 lg:grid-cols-[0.75fr_1fr] lg:items-center",children:[e.jsxs("div",{children:[e.jsxs("span",{className:"inline-flex items-center gap-2 text-sm font-extrabold uppercase tracking-[0.2em] text-amber-700",children:[e.jsx(w,{size:17,"aria-hidden":"true"}),"Store Experience"]}),e.jsx("h2",{className:"mt-4 text-4xl font-black leading-tight text-slate-950",children:"Public Product Pages with Private Demo Access"}),e.jsx("p",{className:"mt-5 text-base leading-8 text-slate-600",children:"The storefront shows the software catalogue publicly, while the protected demo keeps admin URLs and credentials available only inside logged-in product previews."}),e.jsxs("div",{className:"mt-7 flex flex-wrap gap-3 text-sm font-bold text-slate-700",children:[e.jsxs("span",{className:"inline-flex items-center gap-2 rounded-full bg-slate-100 px-4 py-2",children:[e.jsx(Q,{size:16,"aria-hidden":"true"}),"Delivery-ready copy"]}),e.jsxs("span",{className:"inline-flex items-center gap-2 rounded-full bg-slate-100 px-4 py-2",children:[e.jsx(Z,{size:16,"aria-hidden":"true"}),"Product-first pages"]})]})]}),e.jsx("div",{className:"grid gap-4 md:[01;31m[Kgrid-cols-3[m[K",children:ee.map(([a,r,s])=>e.jsxs("article",{className:"rounded-lg border border-slate-200 bg-[#fbfaf8] p-5 shadow-sm",children:[e.jsx("span",{className:"grid h-12 w-12 place-items-center rounded-full bg-cyan-700 text-white",children:e.jsx(s,{size:22,"aria-hidden":"true"})}),e.jsx("h3",{className:"mt-5 text-lg font-black text-slate-950",children:a}),e.jsx("p",{className:"mt-3 text-sm leading-6 text-slate-600",children:r})]},a))})]})})}function Ne(){const a=I(),r=q(),{user:s}=C(),[t,l]=m.useState([]),[n,i]=m.useState([]),[o,h]=m.useState(!0),[f,A]=m.useState("");m.useEffect(()=>{let d=!0;return v("/api/site/homepage").then(c=>{var u;d&&i(((u=c.homepage)==null?void 0:u.images)||[])}).catch(()=>{d&&i([])}),v("/api/products").then(c=>{d&&l(c.products)}).catch(c=>{d&&A(c.message)}).finally(()=>{d&&h(!1)}),()=>{d=!1}},[]),m.useEffect(()=>{if(o)return;let d=!0;const c=()=>{$().then(({ScrollTrigger:M})=>{d&&M.refresh()})},u=window.requestAnimationFrame(c),_=window.setTimeout(c,450);return()=>{d=!1,window.cancelAnimationFrame(u),window.clearTimeout(_)}},[n.length,o,t.length]);function T(d){const c=`/products/${d}?intent=hire`;if(!s){a(`/auth?mode=login&returnTo=${encodeURIComponent(c)}`);return}a(c,{state:{from:r.pathname}})}return e.jsxs("div",{className:"min-h-screen bg-slate-950",children:[e.jsx(R,{}),e.jsx(L,{}),e.jsx(re,{products:t,homepageImages:n}),e.jsx(le,{}),e.jsx(ie,{products:t,loading:o,error:f,onHireExpert:T}),e.jsx(ne,{}),e.jsx(oe,{}),e.jsx(O,{})]})}export{Ne as StorePage}; [root@server1 signaltechs.io]# pm2 restart signalhgtech --update-env [32m[PM2] [39mApplying action restartProcessId on app [signalhgtech](ids: [ 3 ]) [32m[PM2] [39m[signalhgtech](3) ✓ [90m┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐[39m [90m│[39m[1m[36m id [39m[22m[90m│[39m[1m[36m name [39m[22m[90m│[39m[1m[36m mode [39m[22m[90m│[39m[1m[36m ↺ [39m[22m[90m│[39m[1m[36m status [39m[22m[90m│[39m[1m[36m cpu [39m[22m[90m│[39m[1m[36m memory [39m[22m[90m│[39m [90m├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤[39m [90m│[39m[1m[36m [1m[36m1[39m[36m[22m[1m [39m[22m[90m│[39m findoutologist [90m│[39m [7m[1mfork[22m[27m [90m│[39m 4 [90m│[39m [31m[1mstopped[22m[39m [90m│[39m 0% [90m│[39m 0b [90m│[39m [90m│[39m[1m[36m [1m[36m0[39m[36m[22m[1m [39m[22m[90m│[39m signal-backend [90m│[39m [7m[1mfork[22m[27m [90m│[39m 1 [90m│[39m [32m[1monline[22m[39m [90m│[39m 0% [90m│[39m 52.6mb [90m│[39m [90m│[39m[1m[36m [1m[36m3[39m[36m[22m[1m [39m[22m[90m│[39m signalhgtech [90m│[39m [7m[1mfork[22m[27m [90m│[39m 13 [90m│[39m [32m[1monline[22m[39m [90m│[39m 0% [90m│[39m 18.8mb [90m│[39m [90m│[39m[1m[36m [1m[36m4[39m[36m[22m[1m [39m[22m[90m│[39m signaltechs-api [90m│[39m [7m[1mfork[22m[27m [90m│[39m 15 [90m│[39m [31m[1merrored[22m[39m [90m│[39m 0% [90m│[39m 0b [90m│[39m [90m└────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘[39m [1m[36mhost metrics[39m[22m | [1mcpu[22m: [32m22.5%[39m | [1mram usage[22m: [32m59.8%[39m | [1mlo[22m: ⇓ [32m0.456mb/s[39m ⇑ [32m0.456mb/s[39m | [1meth0[22m: ⇓ [32m0.01mb/s[39m ⇑ [32m0.155mb/s[39m | [root@server1 signaltechs.io]# pm2 save [32m[PM2] [39mSaving current process list... [32m[PM2] [39mSuccessfully saved in /root/.pm2/dump.pm2 [root@server1 signaltechs.io]# cd /home/signgwph/signaltechs.io [root@server1 signaltechs.io]# rm -rf client/dist [root@server1 signaltechs.io]# npm run build > script-demo-marketplace@1.0.0 build > vite build [1G[0K[36mvite v6.4.3 [32mbuilding for production...[36m[39m [2K[1Gtransforming (1) [2massets/index-njXbIfN4.js[22m[2K[1Gtransforming (3) [2m vite/modulepreload-polyfill.js[22m[2K[1Gtransforming (14) [2massets/index-Q9OQYEC6.css[22m[2K[1G[32m✓[39m 38 modules transformed. [2K[1Grendering chunks (1)...[2K[1Grendering chunks (2)...[2K[1Grendering chunks (3)...[2K[1Grendering chunks (4)...[2K[1Grendering chunks (5)...[2K[1Grendering chunks (6)...[2K[1Grendering chunks (7)...[2K[1Grendering chunks (8)...[2K[1Grendering chunks (9)...[2K[1Grendering chunks (10)...[2K[1Grendering chunks (11)...[2K[1Grendering chunks (12)...[2K[1Grendering chunks (13)...[2K[1Grendering chunks (14)...[2K[1Grendering chunks (15)...[2K[1Grendering chunks (16)...[2K[1Grendering chunks (17)...[2K[1Grendering chunks (18)...[2K[1Grendering chunks (19)...[2K[1Grendering chunks (20)...[2K[1Grendering chunks (21)...[2K[1Grendering chunks (22)...[2K[1Grendering chunks (23)...[2K[1Grendering chunks (24)...[2K[1Grendering chunks (25)...[2K[1Grendering chunks (26)...[2K[1Grendering chunks (27)...[2K[1Grendering chunks (28)...[2K[1Grendering chunks (29)...[2K[1Grendering chunks (30)...[2K[1Grendering chunks (31)...[2K[1Grendering chunks (32)...[2K[1Grendering chunks (33)...[2K[1Grendering chunks (34)...[2K[1G[2K[1Gcomputing gzip size (0)...[2K[1Gcomputing gzip size (1)...[2K[1Gcomputing gzip size (2)...[2K[1Gcomputing gzip size (3)...[2K[1Gcomputing gzip size (4)...[2K[1Gcomputing gzip size (5)...[2K[1Gcomputing gzip size (6)...[2K[1Gcomputing gzip size (7)...[2K[1Gcomputing gzip size (8)...[2K[1Gcomputing gzip size (9)...[2K[1Gcomputing gzip size (10)...[2K[1Gcomputing gzip size (11)...[2K[1Gcomputing gzip size (12)...[2K[1Gcomputing gzip size (13)...[2K[1Gcomputing gzip size (14)...[2K[1Gcomputing gzip size (15)...[2K[1Gcomputing gzip size (16)...[2K[1Gcomputing gzip size (17)...[2K[1Gcomputing gzip size (18)...[2K[1Gcomputing gzip size (19)...[2K[1Gcomputing gzip size (20)...[2K[1Gcomputing gzip size (21)...[2K[1Gcomputing gzip size (22)...[2K[1Gcomputing gzip size (23)...[2K[1Gcomputing gzip size (24)...[2K[1Gcomputing gzip size (25)...[2K[1Gcomputing gzip size (26)...[2K[1Gcomputing gzip size (27)...[2K[1Gcomputing gzip size (28)...[2K[1Gcomputing gzip size (29)...[2K[1Gcomputing gzip size (30)...[2K[1Gcomputing gzip size (31)...[2K[1Gcomputing gzip size (32)...[2K[1Gcomputing gzip size (33)...[2K[1Gcomputing gzip size (34)...[2K[1Gcomputing gzip size (35)...[2K[1Gcomputing gzip size (36)...[2K[1G[2mclient/dist/[22m[32mindex.html [39m[1m[2m 0.47 kB[22m[1m[22m[2m │ gzip: 0.30 kB[22m [2mclient/dist/[22m[2massets/[22m[35mindex-Q9OQYEC6.css [39m[1m[2m 58.45 kB[22m[1m[22m[2m │ gzip: 12.09 kB[22m [2mclient/dist/[22m[2massets/[22m[36mloader-circle-V2cWFHrH-2Dq_dimb.js [39m[1m[2m 0.33 kB[22m[1m[22m[2m │ gzip: 0.27 kB[22m [2mclient/dist/[22m[2massets/[22m[36mx-CeOEg0E5-D3lkXQn_.js [39m[1m[2m 0.34 kB[22m[1m[22m[2m │ gzip: 0.27 kB[22m [2mclient/dist/[22m[2massets/[22m[36marrow-right-2Vo8kd7g-C8vr-FzG.js [39m[1m[2m 0.35 kB[22m[1m[22m[2m │ gzip: 0.28 kB[22m [2mclient/dist/[22m[2massets/[22m[36mcircle-check-DZlAO7lp-rWEcqJPJ.js [39m[1m[2m 0.37 kB[22m[1m[22m[2m │ gzip: 0.28 kB[22m [2mclient/dist/[22m[2massets/[22m[36mclock-3-CbEP_OCc-DWHRVkz-.js [39m[1m[2m 0.37 kB[22m[1m[22m[2m │ gzip: 0.29 kB[22m [2mclient/dist/[22m[2massets/[22m[36mcredit-card-D6c6loQU-DbjEQ6ul.js [39m[1m[2m 0.40 kB[22m[1m[22m[2m │ gzip: 0.30 kB[22m [2mclient/dist/[22m[2massets/[22m[36mmail-C3WpJBrq-vuiKKfqw.js [39m[1m[2m 0.40 kB[22m[1m[22m[2m │ gzip: 0.31 kB[22m [2mclient/dist/[22m[2massets/[22m[36meye-r2JXjIBF-BbKfBuk3.js [39m[1m[2m 0.45 kB[22m[1m[22m[2m │ gzip: 0.32 kB[22m [2mclient/dist/[22m[2massets/[22m[36moutput-onlinegiftools-1-1-gWZ8qF_4-DKueShN3.js [39m[1m[2m 0.49 kB[22m[1m[22m[2m │ gzip: 0.37 kB[22m [2mclient/dist/[22m[2massets/[22m[36mrefresh-cw-CWcft5M0-BBjlU0UW.js [39m[1m[2m 0.51 kB[22m[1m[22m[2m │ gzip: 0.34 kB[22m [2mclient/dist/[22m[2massets/[22m[36moutput-onlinegiftools-2-B2A0orka-UAagslDH.js [39m[1m[2m 0.75 kB[22m[1m[22m[2m │ gzip: 0.45 kB[22m [2mclient/dist/[22m[2massets/[22m[36mshopping-bag-C3mJufLf-Dm39IXWA.js [39m[1m[2m 0.80 kB[22m[1m[22m[2m │ gzip: 0.44 kB[22m [2mclient/dist/[22m[2massets/[22m[36muser-plus-B0mhYIhf-z7pr7xHN.js [39m[1m[2m 0.87 kB[22m[1m[22m[2m │ gzip: 0.45 kB[22m [2mclient/dist/[22m[2massets/[22m[36mButton-lYjdZ0bp-DdbqOKfE.js [39m[1m[2m 0.90 kB[22m[1m[22m[2m │ gzip: 0.58 kB[22m [2mclient/dist/[22m[2massets/[22m[36msettings-Co6v-lIO-UY0xo6FC.js [39m[1m[2m 0.91 kB[22m[1m[22m[2m │ gzip: 0.45 kB[22m [2mclient/dist/[22m[2massets/[22m[36mphone-YvJSXXOC-DUziMLZy.js [39m[1m[2m 0.94 kB[22m[1m[22m[2m │ gzip: 0.47 kB[22m [2mclient/dist/[22m[2massets/[22m[36mcreateLucideIcon-cPeKv0HK-Mfg5QKUr.js [39m[1m[2m 1.56 kB[22m[1m[22m[2m │ gzip: 0.67 kB[22m [2mclient/dist/[22m[2massets/[22m[36muser-round-Cwul5GYs-D2FjcOfY.js [39m[1m[2m 1.58 kB[22m[1m[22m[2m │ gzip: 0.65 kB[22m [2mclient/dist/[22m[2massets/[22m[36mtruck-Crg402gw-DXCTOX1S.js [39m[1m[2m 1.62 kB[22m[1m[22m[2m │ gzip: 0.69 kB[22m [2mclient/dist/[22m[2massets/[22m[36mAccountDock-DtyLyVPz-BKuNNBBV.js [39m[1m[2m 5.24 kB[22m[1m[22m[2m │ gzip: 1.92 kB[22m [2mclient/dist/[22m[2massets/[22m[36mSiteChrome-Dwiehxzb-B_Nyqb9r.js [39m[1m[2m 6.38 kB[22m[1m[22m[2m │ gzip: 2.26 kB[22m [2mclient/dist/[22m[2massets/[22m[36mAuthPage-C0g-omJy-Ur5XhLrQ.js [39m[1m[2m 8.18 kB[22m[1m[22m[2m │ gzip: 2.70 kB[22m [2mclient/dist/[22m[2massets/[22m[36mContactPage-BwAMQQj5-DkTbLLWB.js [39m[1m[2m 9.86 kB[22m[1m[22m[2m │ gzip: 3.17 kB[22m [2mclient/dist/[22m[2massets/[22m[36mAboutPage-CMcc5vuq-BQlsZcBj.js [39m[1m[2m 11.35 kB[22m[1m[22m[2m │ gzip: 3.77 kB[22m [2mclient/dist/[22m[2massets/[22m[36mProductDetailsPage-lgpxRc-L-B3k1Pvvz.js [39m[1m[2m 12.90 kB[22m[1m[22m[2m │ gzip: 3.71 kB[22m [2mclient/dist/[22m[2massets/[22m[36mDemoShellPage-DHdDON0W-DWpFT7fM.js [39m[1m[2m 13.72 kB[22m[1m[22m[2m │ gzip: 4.49 kB[22m [2mclient/dist/[22m[2massets/[22m[36musePortalSocket-Js-NGimq-B8InCS45.js [39m[1m[2m 16.37 kB[22m[1m[22m[2m │ gzip: 5.51 kB[22m [2mclient/dist/[22m[2massets/[22m[36mStorePage-C2S0kPhx-HeWvp2B0.js [39m[1m[2m 21.51 kB[22m[1m[22m[2m │ gzip: 6.81 kB[22m [2mclient/dist/[22m[2massets/[22m[36mClientDashboardPage-BdoMNvto-BQDwfxbn.js [39m[1m[2m 21.63 kB[22m[1m[22m[2m │ gzip: 6.72 kB[22m [2mclient/dist/[22m[2massets/[22m[36mScrollTrigger-7Zy99s9Q-BPq82YlF.js [39m[1m[2m 43.96 kB[22m[1m[22m[2m │ gzip: 18.15 kB[22m [2mclient/dist/[22m[2massets/[22m[36mAdminPanelPage-kJ-lq4hU-DRi1X2CP.js [39m[1m[2m 66.54 kB[22m[1m[22m[2m │ gzip: 14.84 kB[22m [2mclient/dist/[22m[2massets/[22m[36mindex-Bvu9zNsI-DX1QA0ik.js [39m[1m[2m 70.84 kB[22m[1m[22m[2m │ gzip: 27.89 kB[22m [2mclient/dist/[22m[2massets/[22m[36mfirebase-DEg1zKlq-B7QEUBhI.js [39m[1m[2m165.96 kB[22m[1m[22m[2m │ gzip: 34.17 kB[22m [2mclient/dist/[22m[2massets/[22m[36mindex-nhjxkvhU.js [39m[1m[2m178.70 kB[22m[1m[22m[2m │ gzip: 58.45 kB[22m [32m✓ built in 2.48s[39m [1G[0K⠙[1G[0K[root@server1 signaltechs.io]# grep -R "grid-cols-3" client/dist/assets/StorePage e-*.js */const K=x("PhoneCall",[["path",{d:"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z",key:"foiqr5"}],["path",{d:"M14.05 2a9 9 0 0 1 8 7.94",key:"vmijpz"}],["path",{d:"M14.05 6A5 5 0 0 1 18 10",key:"13nbpp"}]]),Y="/store-support-call-ai.svg";let b;function $(){return b||(b=Promise.all([y(()=>N(()=>import("./index-Bvu9zNsI-DX1QA0ik.js"),[]),[]),y(()=>N(()=>import("./ScrollTrigger-7Zy99s9Q-BPq82YlF.js"),[]),[])]).then(([a,r])=>{const s=a.gsap||a.default,t=r.ScrollTrigger;return s.registerPlugin(t),{gsap:s,ScrollTrigger:t}})),b}const j=["https://images.unsplash.com/photo-1622560480605-d83c853bc5c3?auto=format&fit=crop&w=900&q=80","https://images.unsplash.com/photo-1523275335684-37898b6baf30?auto=format&fit=crop&w=900&q=80","https://images.unsplash.com/photo-1505740420928-5e560c06d30e?auto=format&fit=crop&w=900&q=80","https://images.unsplash.com/photo-1507473885765-e6ed057f782c?auto=format&fit=crop&w=900&q=80","https://images.unsplash.com/photo-1553062407-98eeb64c6a62?auto=format&fit=crop&w=900&q=80","https://images.unsplash.com/photo-1546435770-a3e426bf472b?auto=format&fit=crop&w=900&q=80"],ee=[["Ready catalog","Product pages, gallery images, price cards, and stock-ready shopping layouts.",P],["Private preview","Open a protected product demo for every item after account login.",W],["Fast buying flow","Clean product details and purchase prompts built for quick customer decisions.",X]],te=[["5.5K","Projects done",P],["1200+","Happy clients",w],["56","Team members",k],["7","Awards won",z]];function se(a){return new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:0}).format(a)}function ae({products:a,homepageImages:r}){const s=a.flatMap(n=>n.screenshots||[]),t=r!=null&&r.length?r:s.length?s:j,l=Array.from({length:6},(n,i)=>{const o=Array.from({length:9},(h,f)=>t[(i*3+f)%t.length]);return[...o,...o]});return e.jsxs("div",{className:"absolute inset-0 overflow-hidden",children:[e.jsx("div",{className:"hero-mosaic",children:l.map((n,i)=>e.jsx("div",{className:`hero-lane ${i%2===0?"hero-lane-up":"hero-lane-down"}`,style:{"--lane-delay":`${i*-4.5}s`,"--lane-duration":`${58+i*5}s`},children:n.map((o,h)=>e.jsx("figure",{className:"hero-tile",children:e.jsx("img",{src:o,alt:"",loading:i<2&&h<4?"eager":"lazy"})},`${o}-${i}-${h}`))},`lane-${i}`))}),e.jsx("div",{className:"absolute inset-0 bg-slate-950/74"}),e.jsx("div",{className:"absolute inset-0 bg-gradient-to-br from-cyan-950/35 via-transparent to-amber-950/25"})]})}function re({products:a,homepageImages:r}){const s=a.length||16;return e.jsxs("section",{className:"relative min-h-[680px] overflow-hidden bg-slate-950 px-4 pb-10 pt-24 text-white sm:min-h-[760px] sm:px-6 sm:pb-12 sm:pt-32 lg:px-8 lg:pb-16",children:[e.jsx(ae,{products:a,homepageImages:r}),e.jsxs("div",{className:"relative z-10 mx-auto flex min-h-[600px] max-w-7xl flex-col justify-center sm:min-h-[660px]",children:[e.jsxs("div",{className:"max-w-5xl",children:[e.jsx("h1",{className:"max-w-6xl text-balance text-4xl font-black leading-tight tracking-normal sm:text-7xl sm:leading-[0.95] lg:text-8xl",children:"Browse Ready Software and Website Products"}),e.jsx("p",{className:"mt-8 max-w-3xl text-lg font-medium leading-8 text-zinc-100 sm:text-xl",children:"Explore live software packages, review their screenshots, and open protected demos with admin credentials after login."}),e.jsxs("div",{className:"mt-10 grid gap-3 sm:flex sm:flex-wrap sm:items-center",children:[e.jsxs("a",{href:"#products",className:"inline-flex min-h-14 w-full items-center justify-center gap-3 rounded-xl bg-amber-400 px-7 text-base font-extrabold text-slate-950 shadow-xl shadow-amber-400/25 transition hover:-translate-y-1 hover:bg-amber-300 sm:w-auto",children:["Browse Products",e.jsx(g,{size:20,"aria-hidden":"true"})]}),D.map(({label:t,href:l,Icon:n,tone:i})=>e.jsxs("a",{href:l,target:"_blank",rel:"noreferrer",className:`inline-flex min-h-14 w-full items-center justify-center gap-3 rounded-xl border border-white/20 bg-gradient-to-br ${i} px-5 text-base font-extrabold text-white shadow-xl shadow-slate-950/25 backdrop-blur transition hover:-translate-y-1 sm:w-auto`,children:[e.jsx(n,{size:19,"aria-hidden":"true"}),e.jsx("span",{children:t}),e.jsx(H,{size:16,"aria-hidden":"true"})]},t))]})]}),e.jsx("div",{className:"mt-14 grid gap-4 sm:[01;31m[Kgrid-cols-3[m[K",children:[["48h","Protected product demo"],[`${s}`,"Our Products"],["Live","Admin preview links"]].map(([t,l])=>e.jsxs("div",{className:"rounded-lg border border-white/15 bg-white/10 p-5 backdrop-blur",children:[e.jsx("strong",{className:"block text-3xl font-black text-amber-300",children:t}),e.jsx("span",{className:"mt-1 block text-sm font-extrabold uppercase text-cyan-100",children:l})]},l))})]})]})}function le(){const a=[["Best Support","Clear guidance and reliable support for every product handoff.",J],["Best Team","Developers, designers, and support specialists working as one delivery team.",k]];return e.jsx("section",{id:"about-preview",className:"about-ripple-bg relative overflow-hidden bg-white px-4 py-20 sm:px-6 lg:px-8",children:e.jsxs("div",{className:"mx-auto max-w-7xl",children:[e.jsxs("div",{className:"mx-auto max-w-5xl text-center",children:[e.jsxs("span",{className:"section-eyebrow",children:[e.jsx("span",{"aria-hidden":"true"}),"About Us",e.jsx("span",{"aria-hidden":"true"})]}),e.jsx("h2",{className:"mt-6 text-balance text-4xl font-black leading-tight text-slate-950 sm:text-5xl lg:text-6xl",children:"The Signal Tech offers innovative software and website solutions. We are dedicated to improving business efficiency with cutting-edge technology."})]}),e.jsxs("div",{className:"mt-14 grid gap-10 lg:grid-cols-[0.95fr_1.25fr] lg:items-center",children:[e.jsxs("div",{className:"relative min-h-[390px]",children:[e.jsx("figure",{className:"about-visual-card float-soft h-full min-h-[390px] overflow-hidden rounded-lg border border-cyan-100 bg-white shadow-2xl shadow-cyan-950/10",children:e.jsx("img",{src:B,alt:"Animated developers collaborating at a desk",className:"h-full w-full object-contain p-6",loading:"lazy"})}),e.jsx("div",{className:"liquid-stat-badge absolute -right-4 top-8 hidden h-32 w-32 place-items-center rounded-full text-center sm:grid lg:-right-10",children:e.jsxs("span",{children:[e.jsx("strong",{children:"6+"}),"years of working experience"]})})]}),e.jsxs("div",{className:"grid gap-8 xl:grid-cols-[1fr_0.78fr] xl:items-center",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-lg leading-8 text-slate-600",children:"At The Signal Tech, we specialize in delivering cutting-edge software and website solutions tailored for your business. Our mission is to enhance your operations with innovative technology, seamless design, and dependable support."}),e.jsx("div",{className:"mt-7 divide-y divide-slate-200",children:a.map(([r,s,t])=>e.jsxs("div",{className:"flex gap-4 py-5",children:[e.jsx("span",{className:"grid h-12 w-12 shrink-0 place-items-center rounded-full border border-cyan-100 bg-cyan-50 text-cyan-700",children:e.jsx(t,{size:24,"aria-hidden":"true"})}),e.jsxs("span",{children:[e.jsx("strong",{className:"block text-xl font-black text-slate-950",children:r}),e.jsx("span",{className:"mt-1 block text-base leading-7 text-slate-600",children:s})]})]},r))}),e.jsxs(p,{to:"/about",className:"mt-8 inline-flex min-h-14 items-center justify-center gap-3 rounded-xl bg-blue-700 px-7 text-base font-extrabold text-white shadow-xl shadow-blue-700/20 transition hover:-translate-y-1 hover:bg-blue-600",children:["Learn More",e.jsx(g,{size:19,"aria-hidden":"true"})]})]}),e.jsxs("div",{className:"store-call-showcase relative min-h-[340px]",children:[e.jsx("figure",{className:"store-call-frame overflow-hidden rounded-lg border border-cyan-100 bg-white p-3 shadow-2xl shadow-slate-300/60",children:e.jsx("img",{src:Y,alt:"AI assisted support specialist taking a customer call",className:"h-80 w-full rounded-md object-cover",loading:"lazy"})}),e.jsxs("a",{href:"tel:+17026639222",className:"store-call-cta absolute -bottom-6 left-4 inline-flex min-h-36 w-56 flex-col justify-end rounded-lg p-5 text-white shadow-2xl backdrop-blur transition hover:-translate-y-1 sm:left-8",children:[e.jsx(K,{className:"mb-auto text-amber-300",size:32,"aria-hidden":"true"}),e.jsx("span",{className:"text-sm font-bold text-amber-200",children:"Give Us A Call"}),e.jsx("strong",{className:"mt-2 text-2xl leading-tight",children:"+1(702) 663-9222"})]})]})]})]}),e.jsx("div",{className:"mt-16 grid gap-4 md:[01;31m[Kgrid-cols-3[m[K",children:[["Custom solutions","Software and websites shaped around the exact workflow your business runs.",S],["Quality delivery","Clean interface, secure foundations, and dependable product handover.",z],["Long-term care","Implementation, maintenance, and support after the first launch.",w]].map(([r,s,t])=>e.jsxs("article",{className:"project-card rounded-lg border border-slate-200 bg-white/90 p-6 shadow-sm",style:{"--project-delay":"0.05s"},children:[e.jsx("span",{className:"grid h-12 w-12 place-items-center rounded-full bg-slate-950 text-cyan-100",children:e.jsx(t,{size:22,"aria-hidden":"true"})}),e.jsx("h3",{className:"mt-5 text-xl font-black text-slate-950",children:r}),e.jsx("p",{className:"mt-3 text-sm leading-6 text-slate-600",children:s})]},r))})]})})}function ie({products:a,loading:r,error:s,onHireExpert:t}){return e.jsx("section",{id:"products",className:"bg-[#f5efe6] px-4 py-20 sm:px-6 lg:px-8",children:e.jsxs("div",{className:"mx-auto max-w-7xl",children:[e.jsx("div",{className:"flex flex-col gap-5 md:flex-row md:items-end md:justify-between",children:e.jsxs("div",{children:[e.jsxs("span",{className:"inline-flex items-center gap-2 text-sm font-extrabold uppercase tracking-[0.2em] text-cyan-800",children:[e.jsx(E,{size:17,"aria-hidden":"true"}),"Software Catalogue"]}),e.jsx("h2",{className:"mt-4 max-w-3xl text-4xl font-black leading-tight text-slate-950 sm:text-5xl",children:"Products Ready to Demo, Review, and Sell"})]})}),r&&e.jsx("div",{className:"mt-10 grid min-h-64 place-items-center rounded-lg border border-slate-200 bg-white",children:e.jsx(U,{className:"animate-spin text-cyan-700","aria-hidden":"true"})}),s&&e.jsx("div",{className:"mt-10 rounded-lg border border-red-200 bg-red-50 p-4 text-sm font-semibold text-red-700",children:s}),!r&&!s&&a.length===0&&e.jsx("div",{className:"mt-10 rounded-lg border border-slate-200 bg-white p-6 text-sm font-semibold text-slate-600",children:"No products are available yet."}),!r&&!s&&a.length>0&&e.jsx("div",{className:"mt-10 grid gap-6 md:grid-cols-2 xl:grid-cols-4",children:a.map((l,n)=>{var i;return e.jsxs("article",{className:"project-card group flex h-full flex-col overflow-hidden rounded-lg border border-slate-200 bg-white shadow-xl shadow-slate-200/60 transition hover:-translate-y-1 hover:shadow-2xl",style:{"--project-delay":`${n*.1}s`},children:[e.jsxs(p,{to:`/products/${l.id}`,className:"relative block aspect-[16/10] overflow-hidden bg-slate-100",children:[e.jsx("img",{src:((i=l.screenshots)==null?void 0:i[0])||j[n%j.length],alt:"",className:"h-full w-full object-contain p-2 transition duration-700 group-hover:scale-105",loading:"lazy"}),e.jsxs("span",{className:"absolute left-4 top-4 inline-flex items-center gap-2 rounded-full bg-white/90 px-3 py-1 text-xs font-black text-slate-950 shadow-sm",children:[e.jsx(V,{className:"fill-amber-400 text-amber-400",size:14,"aria-hidden":"true"}),"Live demo"]})]}),e.jsxs("div",{className:"flex flex-1 flex-col p-5",children:[e.jsxs("div",{className:"grid gap-3",children:[e.jsx(p,{to:`/products/${l.id}`,className:"text-xl font-black leading-tight text-slate-950 transition hover:text-cyan-800",children:l.title}),e.jsxs("div",{className:"grid gap-2 sm:grid-cols-[1fr_auto] sm:items-center",children:[e.jsxs("span",{className:"inline-flex w-fit items-center gap-1 rounded-md bg-cyan-50 px-2 py-1 text-sm font-black text-cyan-800",children:[e.jsx(G,{size:15,"aria-hidden":"true"}),se(l.price)]}),e.jsxs("button",{type:"button",onClick:()=>t(l.id),className:"inline-flex min-h-10 items-center justify-center gap-2 rounded-md bg-amber-400 px-3 text-xs font-black text-slate-950 transition hover:bg-amber-300",children:[e.jsx(F,{size:15,"aria-hidden":"true"}),"Hire an expert"]})]})]}),e.jsx("p",{className:"mt-4 line-clamp-3 text-sm leading-6 text-slate-600",children:l.description}),e.jsxs(p,{to:`/products/${l.id}`,className:"mt-auto inline-flex items-center gap-2 pt-5 text-sm font-extrabold text-cyan-700 transition hover:text-cyan-900",children:["View Product",e.jsx(g,{size:16,"aria-hidden":"true"})]})]})]},l.id)})})]})})}function ne(){const a=m.useRef(null),r=m.useRef(null);return m.useLayoutEffect(()=>{const s=a.current,t=r.current;if(!s||!t)return;if(window.matchMedia("(prefers-reduced-motion: reduce)").matches){t.style.transform="none";return}let l=!0,n=()=>{};return $().then(({gsap:i})=>{if(!l)return;const o=i.matchMedia();o.add("(min-width: 901px)",()=>{i.set(t,{y:0,scale:.72,transformOrigin:"left center",xPercent:58}),i.to(t,{scale:1,xPercent:0,ease:"none",scrollTrigger:{trigger:s,start:"top 82%",end:"top 18%",scrub:.65,invalidateOnRefresh:!0}})}),o.add("(max-width: 900px)",()=>{i.set(t,{xPercent:0,y:54,scale:.9,transformOrigin:"center bottom"}),i.to(t,{y:0,scale:1,ease:"none",scrollTrigger:{trigger:s,start:"top 82%",end:"center 48%",scrub:.55,invalidateOnRefresh:!0}})}),n=()=>o.revert()}),()=>{l=!1,n()}},[]),e.jsxs("section",{ref:a,className:"story-showcase-section relative overflow-hidden px-4 py-20 text-white sm:px-6 lg:px-8",children:[e.jsx("div",{className:"story-showcase-bg","aria-hidden":"true"}),e.jsx("div",{className:"story-scan-grid","aria-hidden":"true"}),e.jsxs("div",{className:"relative z-10 mx-auto grid max-w-7xl gap-10 lg:grid-cols-[0.84fr_1.16fr] lg:items-center",children:[e.jsxs("div",{className:"max-w-xl",children:[e.jsxs("span",{className:"inline-flex items-center gap-2 text-sm font-extrabold uppercase tracking-[0.22em] text-cyan-100",children:[e.jsx(S,{size:17,"aria-hidden":"true"}),"Behind The Story Of"]}),e.jsx("h2",{className:"mt-6 text-balance text-4xl font-black leading-tight text-white sm:text-5xl lg:text-6xl",children:"The Signal Tech"}),e.jsx("p",{className:"mt-6 text-base font-medium leading-8 text-white/80 sm:text-lg",children:"We turn business ideas into reliable software, clean product pages, and private demo workflows that clients can review before launch."}),e.jsxs(p,{to:"/contact",className:"mt-8 inline-flex min-h-14 items-center justify-center gap-3 rounded-xl bg-blue-700 px-7 text-base font-extrabold text-white shadow-xl shadow-blue-950/30 transition hover:-translate-y-1 hover:bg-blue-600",children:["Contact Us",e.jsx(g,{size:19,"aria-hidden":"true"})]})]}),e.jsx("div",{ref:r,className:"story-stats-shell",children:e.jsx("div",{className:"story-stats-grid",children:te.map(([s,t,l])=>e.jsxs("div",{className:"story-stat-item",children:[e.jsx(l,{size:44,"aria-hidden":"true"}),e.jsx("strong",{children:s}),e.jsx("span",{children:t})]},t))})})]})]})}function oe(){return e.jsx("section",{className:"bg-white px-4 py-20 sm:px-6 lg:px-8",children:e.jsxs("div",{className:"mx-auto grid max-w-7xl gap-8 lg:grid-cols-[0.75fr_1fr] lg:items-center",children:[e.jsxs("div",{children:[e.jsxs("span",{className:"inline-flex items-center gap-2 text-sm font-extrabold uppercase tracking-[0.2em] text-amber-700",children:[e.jsx(w,{size:17,"aria-hidden":"true"}),"Store Experience"]}),e.jsx("h2",{className:"mt-4 text-4xl font-black leading-tight text-slate-950",children:"Public Product Pages with Private Demo Access"}),e.jsx("p",{className:"mt-5 text-base leading-8 text-slate-600",children:"The storefront shows the software catalogue publicly, while the protected demo keeps admin URLs and credentials available only inside logged-in product previews."}),e.jsxs("div",{className:"mt-7 flex flex-wrap gap-3 text-sm font-bold text-slate-700",children:[e.jsxs("span",{className:"inline-flex items-center gap-2 rounded-full bg-slate-100 px-4 py-2",children:[e.jsx(Q,{size:16,"aria-hidden":"true"}),"Delivery-ready copy"]}),e.jsxs("span",{className:"inline-flex items-center gap-2 rounded-full bg-slate-100 px-4 py-2",children:[e.jsx(Z,{size:16,"aria-hidden":"true"}),"Product-first pages"]})]})]}),e.jsx("div",{className:"grid gap-4 md:[01;31m[Kgrid-cols-3[m[K",children:ee.map(([a,r,s])=>e.jsxs("article",{className:"rounded-lg border border-slate-200 bg-[#fbfaf8] p-5 shadow-sm",children:[e.jsx("span",{className:"grid h-12 w-12 place-items-center rounded-full bg-cyan-700 text-white",children:e.jsx(s,{size:22,"aria-hidden":"true"})}),e.jsx("h3",{className:"mt-5 text-lg font-black text-slate-950",children:a}),e.jsx("p",{className:"mt-3 text-sm leading-6 text-slate-600",children:r})]},a))})]})})}function Ne(){const a=I(),r=q(),{user:s}=C(),[t,l]=m.useState([]),[n,i]=m.useState([]),[o,h]=m.useState(!0),[f,A]=m.useState("");m.useEffect(()=>{let d=!0;return v("/api/site/homepage").then(c=>{var u;d&&i(((u=c.homepage)==null?void 0:u.images)||[])}).catch(()=>{d&&i([])}),v("/api/products").then(c=>{d&&l(c.products)}).catch(c=>{d&&A(c.message)}).finally(()=>{d&&h(!1)}),()=>{d=!1}},[]),m.useEffect(()=>{if(o)return;let d=!0;const c=()=>{$().then(({ScrollTrigger:M})=>{d&&M.refresh()})},u=window.requestAnimationFrame(c),_=window.setTimeout(c,450);return()=>{d=!1,window.cancelAnimationFrame(u),window.clearTimeout(_)}},[n.length,o,t.length]);function T(d){const c=`/products/${d}?intent=hire`;if(!s){a(`/auth?mode=login&returnTo=${encodeURIComponent(c)}`);return}a(c,{state:{from:r.pathname}})}return e.jsxs("div",{className:"min-h-screen bg-slate-950",children:[e.jsx(R,{}),e.jsx(L,{}),e.jsx(re,{products:t,homepageImages:n}),e.jsx(le,{}),e.jsx(ie,{products:t,loading:o,error:f,onHireExpert:T}),e.jsx(ne,{}),e.jsx(oe,{}),e.jsx(O,{})]})}export{Ne as StorePage}; [root@server1 signaltechs.io]# pm2 restart signalhgtech --update-env [32m[PM2] [39mApplying action restartProcessId on app [signalhgtech](ids: [ 3 ]) [32m[PM2] [39m[signalhgtech](3) ✓ [90m┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐[39m [90m│[39m[1m[36m id [39m[22m[90m│[39m[1m[36m name [39m[22m[90m│[39m[1m[36m mode [39m[22m[90m│[39m[1m[36m ↺ [39m[22m[90m│[39m[1m[36m status [39m[22m[90m│[39m[1m[36m cpu [39m[22m[90m│[39m[1m[36m memory [39m[22m[90m│[39m [90m├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤[39m [90m│[39m[1m[36m [1m[36m1[39m[36m[22m[1m [39m[22m[90m│[39m findoutologist [90m│[39m [7m[1mfork[22m[27m [90m│[39m 4 [90m│[39m [31m[1mstopped[22m[39m [90m│[39m 0% [90m│[39m 0b [90m│[39m [90m│[39m[1m[36m [1m[36m0[39m[36m[22m[1m [39m[22m[90m│[39m signal-backend [90m│[39m [7m[1mfork[22m[27m [90m│[39m 1 [90m│[39m [32m[1monline[22m[39m [90m│[39m 0% [90m│[39m 53.3mb [90m│[39m [90m│[39m[1m[36m [1m[36m3[39m[36m[22m[1m [39m[22m[90m│[39m signalhgtech [90m│[39m [7m[1mfork[22m[27m [90m│[39m 14 [90m│[39m [32m[1monline[22m[39m [90m│[39m 0% [90m│[39m 18.8mb [90m│[39m [90m│[39m[1m[36m [1m[36m4[39m[36m[22m[1m [39m[22m[90m│[39m signaltechs-api [90m│[39m [7m[1mfork[22m[27m [90m│[39m 15 [90m│[39m [31m[1merrored[22m[39m [90m│[39m 0% [90m│[39m 0b [90m│[39m [90m└────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘[39m [1m[36mhost metrics[39m[22m | [1mcpu[22m: [32m32%[39m | [1mram usage[22m: [32m58.2%[39m | [1mlo[22m: ⇓ [32m0.79mb/s[39m ⇑ [32m0.79mb/s[39m | [1meth0[22m: ⇓ [32m0.009mb/s[39m ⇑ [32m0.162mb/s[39m | [root@server1 signaltechs.io]# pm2 save [32m[PM2] [39mSaving current process list... [32m[PM2] [39mSuccessfully saved in /root/.pm2/dump.pm2 [root@server1 signaltechs.io]# /home/signgwph/signaltechs.io bash: /home/signgwph/signaltechs.io: Is a directory [root@server1 signaltechs.io]# server/src/index.js bash: server/src/index.js: Permission denied [root@server1 signaltechs.io]# /home/signgwph/signaltechs.io bash: /home/signgwph/signaltechs.io: Is a directory [root@server1 signaltechs.io]# [root@server1 signaltechs.io]# ^C [root@server1 signaltechs.io]# cd /home/signgwph/signaltechs.io [root@server1 signaltechs.io]# grep -n "activeCategory" client/src/pages/StorePag ge.jsx [32m[K275[m[K[36m[K:[m[Kfunction ProductShelf({ products, loading, error, [01;31m[KactiveCategory[m[K, productCounts, onCategoryChange, onHireExpert }) { [32m[K291[m[K[36m[K:[m[K const active = [01;31m[KactiveCategory[m[K === value; [32m[K558[m[K[36m[K:[m[K const [[01;31m[KactiveCategory[m[K, setActiveCategory] = useState('ALL'); [32m[K618[m[K[36m[K:[m[K [01;31m[KactiveCategory[m[K === 'ALL' [32m[K620[m[K[36m[K:[m[K : products.filter((product) => normalizeProductCategory(product.category) === [01;31m[KactiveCategory[m[K), [32m[K621[m[K[36m[K:[m[K [[01;31m[KactiveCategory[m[K, products] [32m[K668[m[K[36m[K:[m[K [01;31m[KactiveCategory[m[K={[01;31m[KactiveCategory[m[K} [root@server1 signaltechs.io]# grep -n "No products are available for this filter r yet" client/src/pages/StorePage.jsx [32m[K327[m[K[36m[K:[m[K [01;31m[KNo products are available for this filter yet[m[K. [root@server1 signaltechs.io]# grep -n "productCategoryFilters" client/src/pages/ /StorePage.jsx [32m[K67[m[K[36m[K:[m[Kconst [01;31m[KproductCategoryFilters[m[K = [ [32m[K290[m[K[36m[K:[m[K {[01;31m[KproductCategoryFilters[m[K.map(([value, label]) => { [root@server1 signaltechs.io]# grep -R "grid-cols-3" client/dist/assets/StorePage e-*.js */const K=x("PhoneCall",[["path",{d:"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z",key:"foiqr5"}],["path",{d:"M14.05 2a9 9 0 0 1 8 7.94",key:"vmijpz"}],["path",{d:"M14.05 6A5 5 0 0 1 18 10",key:"13nbpp"}]]),Y="/store-support-call-ai.svg";let b;function $(){return b||(b=Promise.all([y(()=>N(()=>import("./index-Bvu9zNsI-DX1QA0ik.js"),[]),[]),y(()=>N(()=>import("./ScrollTrigger-7Zy99s9Q-BPq82YlF.js"),[]),[])]).then(([a,r])=>{const s=a.gsap||a.default,t=r.ScrollTrigger;return s.registerPlugin(t),{gsap:s,ScrollTrigger:t}})),b}const j=["https://images.unsplash.com/photo-1622560480605-d83c853bc5c3?auto=format&fit=crop&w=900&q=80","https://images.unsplash.com/photo-1523275335684-37898b6baf30?auto=format&fit=crop&w=900&q=80","https://images.unsplash.com/photo-1505740420928-5e560c06d30e?auto=format&fit=crop&w=900&q=80","https://images.unsplash.com/photo-1507473885765-e6ed057f782c?auto=format&fit=crop&w=900&q=80","https://images.unsplash.com/photo-1553062407-98eeb64c6a62?auto=format&fit=crop&w=900&q=80","https://images.unsplash.com/photo-1546435770-a3e426bf472b?auto=format&fit=crop&w=900&q=80"],ee=[["Ready catalog","Product pages, gallery images, price cards, and stock-ready shopping layouts.",P],["Private preview","Open a protected product demo for every item after account login.",W],["Fast buying flow","Clean product details and purchase prompts built for quick customer decisions.",X]],te=[["5.5K","Projects done",P],["1200+","Happy clients",w],["56","Team members",k],["7","Awards won",z]];function se(a){return new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:0}).format(a)}function ae({products:a,homepageImages:r}){const s=a.flatMap(n=>n.screenshots||[]),t=r!=null&&r.length?r:s.length?s:j,l=Array.from({length:6},(n,i)=>{const o=Array.from({length:9},(h,f)=>t[(i*3+f)%t.length]);return[...o,...o]});return e.jsxs("div",{className:"absolute inset-0 overflow-hidden",children:[e.jsx("div",{className:"hero-mosaic",children:l.map((n,i)=>e.jsx("div",{className:`hero-lane ${i%2===0?"hero-lane-up":"hero-lane-down"}`,style:{"--lane-delay":`${i*-4.5}s`,"--lane-duration":`${58+i*5}s`},children:n.map((o,h)=>e.jsx("figure",{className:"hero-tile",children:e.jsx("img",{src:o,alt:"",loading:i<2&&h<4?"eager":"lazy"})},`${o}-${i}-${h}`))},`lane-${i}`))}),e.jsx("div",{className:"absolute inset-0 bg-slate-950/74"}),e.jsx("div",{className:"absolute inset-0 bg-gradient-to-br from-cyan-950/35 via-transparent to-amber-950/25"})]})}function re({products:a,homepageImages:r}){const s=a.length||16;return e.jsxs("section",{className:"relative min-h-[680px] overflow-hidden bg-slate-950 px-4 pb-10 pt-24 text-white sm:min-h-[760px] sm:px-6 sm:pb-12 sm:pt-32 lg:px-8 lg:pb-16",children:[e.jsx(ae,{products:a,homepageImages:r}),e.jsxs("div",{className:"relative z-10 mx-auto flex min-h-[600px] max-w-7xl flex-col justify-center sm:min-h-[660px]",children:[e.jsxs("div",{className:"max-w-5xl",children:[e.jsx("h1",{className:"max-w-6xl text-balance text-4xl font-black leading-tight tracking-normal sm:text-7xl sm:leading-[0.95] lg:text-8xl",children:"Browse Ready Software and Website Products"}),e.jsx("p",{className:"mt-8 max-w-3xl text-lg font-medium leading-8 text-zinc-100 sm:text-xl",children:"Explore live software packages, review their screenshots, and open protected demos with admin credentials after login."}),e.jsxs("div",{className:"mt-10 grid gap-3 sm:flex sm:flex-wrap sm:items-center",children:[e.jsxs("a",{href:"#products",className:"inline-flex min-h-14 w-full items-center justify-center gap-3 rounded-xl bg-amber-400 px-7 text-base font-extrabold text-slate-950 shadow-xl shadow-amber-400/25 transition hover:-translate-y-1 hover:bg-amber-300 sm:w-auto",children:["Browse Products",e.jsx(g,{size:20,"aria-hidden":"true"})]}),D.map(({label:t,href:l,Icon:n,tone:i})=>e.jsxs("a",{href:l,target:"_blank",rel:"noreferrer",className:`inline-flex min-h-14 w-full items-center justify-center gap-3 rounded-xl border border-white/20 bg-gradient-to-br ${i} px-5 text-base font-extrabold text-white shadow-xl shadow-slate-950/25 backdrop-blur transition hover:-translate-y-1 sm:w-auto`,children:[e.jsx(n,{size:19,"aria-hidden":"true"}),e.jsx("span",{children:t}),e.jsx(H,{size:16,"aria-hidden":"true"})]},t))]})]}),e.jsx("div",{className:"mt-14 grid gap-4 sm:[01;31m[Kgrid-cols-3[m[K",children:[["48h","Protected product demo"],[`${s}`,"Our Products"],["Live","Admin preview links"]].map(([t,l])=>e.jsxs("div",{className:"rounded-lg border border-white/15 bg-white/10 p-5 backdrop-blur",children:[e.jsx("strong",{className:"block text-3xl font-black text-amber-300",children:t}),e.jsx("span",{className:"mt-1 block text-sm font-extrabold uppercase text-cyan-100",children:l})]},l))})]})]})}function le(){const a=[["Best Support","Clear guidance and reliable support for every product handoff.",J],["Best Team","Developers, designers, and support specialists working as one delivery team.",k]];return e.jsx("section",{id:"about-preview",className:"about-ripple-bg relative overflow-hidden bg-white px-4 py-20 sm:px-6 lg:px-8",children:e.jsxs("div",{className:"mx-auto max-w-7xl",children:[e.jsxs("div",{className:"mx-auto max-w-5xl text-center",children:[e.jsxs("span",{className:"section-eyebrow",children:[e.jsx("span",{"aria-hidden":"true"}),"About Us",e.jsx("span",{"aria-hidden":"true"})]}),e.jsx("h2",{className:"mt-6 text-balance text-4xl font-black leading-tight text-slate-950 sm:text-5xl lg:text-6xl",children:"The Signal Tech offers innovative software and website solutions. We are dedicated to improving business efficiency with cutting-edge technology."})]}),e.jsxs("div",{className:"mt-14 grid gap-10 lg:grid-cols-[0.95fr_1.25fr] lg:items-center",children:[e.jsxs("div",{className:"relative min-h-[390px]",children:[e.jsx("figure",{className:"about-visual-card float-soft h-full min-h-[390px] overflow-hidden rounded-lg border border-cyan-100 bg-white shadow-2xl shadow-cyan-950/10",children:e.jsx("img",{src:B,alt:"Animated developers collaborating at a desk",className:"h-full w-full object-contain p-6",loading:"lazy"})}),e.jsx("div",{className:"liquid-stat-badge absolute -right-4 top-8 hidden h-32 w-32 place-items-center rounded-full text-center sm:grid lg:-right-10",children:e.jsxs("span",{children:[e.jsx("strong",{children:"6+"}),"years of working experience"]})})]}),e.jsxs("div",{className:"grid gap-8 xl:grid-cols-[1fr_0.78fr] xl:items-center",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-lg leading-8 text-slate-600",children:"At The Signal Tech, we specialize in delivering cutting-edge software and website solutions tailored for your business. Our mission is to enhance your operations with innovative technology, seamless design, and dependable support."}),e.jsx("div",{className:"mt-7 divide-y divide-slate-200",children:a.map(([r,s,t])=>e.jsxs("div",{className:"flex gap-4 py-5",children:[e.jsx("span",{className:"grid h-12 w-12 shrink-0 place-items-center rounded-full border border-cyan-100 bg-cyan-50 text-cyan-700",children:e.jsx(t,{size:24,"aria-hidden":"true"})}),e.jsxs("span",{children:[e.jsx("strong",{className:"block text-xl font-black text-slate-950",children:r}),e.jsx("span",{className:"mt-1 block text-base leading-7 text-slate-600",children:s})]})]},r))}),e.jsxs(p,{to:"/about",className:"mt-8 inline-flex min-h-14 items-center justify-center gap-3 rounded-xl bg-blue-700 px-7 text-base font-extrabold text-white shadow-xl shadow-blue-700/20 transition hover:-translate-y-1 hover:bg-blue-600",children:["Learn More",e.jsx(g,{size:19,"aria-hidden":"true"})]})]}),e.jsxs("div",{className:"store-call-showcase relative min-h-[340px]",children:[e.jsx("figure",{className:"store-call-frame overflow-hidden rounded-lg border border-cyan-100 bg-white p-3 shadow-2xl shadow-slate-300/60",children:e.jsx("img",{src:Y,alt:"AI assisted support specialist taking a customer call",className:"h-80 w-full rounded-md object-cover",loading:"lazy"})}),e.jsxs("a",{href:"tel:+17026639222",className:"store-call-cta absolute -bottom-6 left-4 inline-flex min-h-36 w-56 flex-col justify-end rounded-lg p-5 text-white shadow-2xl backdrop-blur transition hover:-translate-y-1 sm:left-8",children:[e.jsx(K,{className:"mb-auto text-amber-300",size:32,"aria-hidden":"true"}),e.jsx("span",{className:"text-sm font-bold text-amber-200",children:"Give Us A Call"}),e.jsx("strong",{className:"mt-2 text-2xl leading-tight",children:"+1(702) 663-9222"})]})]})]})]}),e.jsx("div",{className:"mt-16 grid gap-4 md:[01;31m[Kgrid-cols-3[m[K",children:[["Custom solutions","Software and websites shaped around the exact workflow your business runs.",S],["Quality delivery","Clean interface, secure foundations, and dependable product handover.",z],["Long-term care","Implementation, maintenance, and support after the first launch.",w]].map(([r,s,t])=>e.jsxs("article",{className:"project-card rounded-lg border border-slate-200 bg-white/90 p-6 shadow-sm",style:{"--project-delay":"0.05s"},children:[e.jsx("span",{className:"grid h-12 w-12 place-items-center rounded-full bg-slate-950 text-cyan-100",children:e.jsx(t,{size:22,"aria-hidden":"true"})}),e.jsx("h3",{className:"mt-5 text-xl font-black text-slate-950",children:r}),e.jsx("p",{className:"mt-3 text-sm leading-6 text-slate-600",children:s})]},r))})]})})}function ie({products:a,loading:r,error:s,onHireExpert:t}){return e.jsx("section",{id:"products",className:"bg-[#f5efe6] px-4 py-20 sm:px-6 lg:px-8",children:e.jsxs("div",{className:"mx-auto max-w-7xl",children:[e.jsx("div",{className:"flex flex-col gap-5 md:flex-row md:items-end md:justify-between",children:e.jsxs("div",{children:[e.jsxs("span",{className:"inline-flex items-center gap-2 text-sm font-extrabold uppercase tracking-[0.2em] text-cyan-800",children:[e.jsx(E,{size:17,"aria-hidden":"true"}),"Software Catalogue"]}),e.jsx("h2",{className:"mt-4 max-w-3xl text-4xl font-black leading-tight text-slate-950 sm:text-5xl",children:"Products Ready to Demo, Review, and Sell"})]})}),r&&e.jsx("div",{className:"mt-10 grid min-h-64 place-items-center rounded-lg border border-slate-200 bg-white",children:e.jsx(U,{className:"animate-spin text-cyan-700","aria-hidden":"true"})}),s&&e.jsx("div",{className:"mt-10 rounded-lg border border-red-200 bg-red-50 p-4 text-sm font-semibold text-red-700",children:s}),!r&&!s&&a.length===0&&e.jsx("div",{className:"mt-10 rounded-lg border border-slate-200 bg-white p-6 text-sm font-semibold text-slate-600",children:"No products are available yet."}),!r&&!s&&a.length>0&&e.jsx("div",{className:"mt-10 grid gap-6 md:grid-cols-2 xl:grid-cols-4",children:a.map((l,n)=>{var i;return e.jsxs("article",{className:"project-card group flex h-full flex-col overflow-hidden rounded-lg border border-slate-200 bg-white shadow-xl shadow-slate-200/60 transition hover:-translate-y-1 hover:shadow-2xl",style:{"--project-delay":`${n*.1}s`},children:[e.jsxs(p,{to:`/products/${l.id}`,className:"relative block aspect-[16/10] overflow-hidden bg-slate-100",children:[e.jsx("img",{src:((i=l.screenshots)==null?void 0:i[0])||j[n%j.length],alt:"",className:"h-full w-full object-contain p-2 transition duration-700 group-hover:scale-105",loading:"lazy"}),e.jsxs("span",{className:"absolute left-4 top-4 inline-flex items-center gap-2 rounded-full bg-white/90 px-3 py-1 text-xs font-black text-slate-950 shadow-sm",children:[e.jsx(V,{className:"fill-amber-400 text-amber-400",size:14,"aria-hidden":"true"}),"Live demo"]})]}),e.jsxs("div",{className:"flex flex-1 flex-col p-5",children:[e.jsxs("div",{className:"grid gap-3",children:[e.jsx(p,{to:`/products/${l.id}`,className:"text-xl font-black leading-tight text-slate-950 transition hover:text-cyan-800",children:l.title}),e.jsxs("div",{className:"grid gap-2 sm:grid-cols-[1fr_auto] sm:items-center",children:[e.jsxs("span",{className:"inline-flex w-fit items-center gap-1 rounded-md bg-cyan-50 px-2 py-1 text-sm font-black text-cyan-800",children:[e.jsx(G,{size:15,"aria-hidden":"true"}),se(l.price)]}),e.jsxs("button",{type:"button",onClick:()=>t(l.id),className:"inline-flex min-h-10 items-center justify-center gap-2 rounded-md bg-amber-400 px-3 text-xs font-black text-slate-950 transition hover:bg-amber-300",children:[e.jsx(F,{size:15,"aria-hidden":"true"}),"Hire an expert"]})]})]}),e.jsx("p",{className:"mt-4 line-clamp-3 text-sm leading-6 text-slate-600",children:l.description}),e.jsxs(p,{to:`/products/${l.id}`,className:"mt-auto inline-flex items-center gap-2 pt-5 text-sm font-extrabold text-cyan-700 transition hover:text-cyan-900",children:["View Product",e.jsx(g,{size:16,"aria-hidden":"true"})]})]})]},l.id)})})]})})}function ne(){const a=m.useRef(null),r=m.useRef(null);return m.useLayoutEffect(()=>{const s=a.current,t=r.current;if(!s||!t)return;if(window.matchMedia("(prefers-reduced-motion: reduce)").matches){t.style.transform="none";return}let l=!0,n=()=>{};return $().then(({gsap:i})=>{if(!l)return;const o=i.matchMedia();o.add("(min-width: 901px)",()=>{i.set(t,{y:0,scale:.72,transformOrigin:"left center",xPercent:58}),i.to(t,{scale:1,xPercent:0,ease:"none",scrollTrigger:{trigger:s,start:"top 82%",end:"top 18%",scrub:.65,invalidateOnRefresh:!0}})}),o.add("(max-width: 900px)",()=>{i.set(t,{xPercent:0,y:54,scale:.9,transformOrigin:"center bottom"}),i.to(t,{y:0,scale:1,ease:"none",scrollTrigger:{trigger:s,start:"top 82%",end:"center 48%",scrub:.55,invalidateOnRefresh:!0}})}),n=()=>o.revert()}),()=>{l=!1,n()}},[]),e.jsxs("section",{ref:a,className:"story-showcase-section relative overflow-hidden px-4 py-20 text-white sm:px-6 lg:px-8",children:[e.jsx("div",{className:"story-showcase-bg","aria-hidden":"true"}),e.jsx("div",{className:"story-scan-grid","aria-hidden":"true"}),e.jsxs("div",{className:"relative z-10 mx-auto grid max-w-7xl gap-10 lg:grid-cols-[0.84fr_1.16fr] lg:items-center",children:[e.jsxs("div",{className:"max-w-xl",children:[e.jsxs("span",{className:"inline-flex items-center gap-2 text-sm font-extrabold uppercase tracking-[0.22em] text-cyan-100",children:[e.jsx(S,{size:17,"aria-hidden":"true"}),"Behind The Story Of"]}),e.jsx("h2",{className:"mt-6 text-balance text-4xl font-black leading-tight text-white sm:text-5xl lg:text-6xl",children:"The Signal Tech"}),e.jsx("p",{className:"mt-6 text-base font-medium leading-8 text-white/80 sm:text-lg",children:"We turn business ideas into reliable software, clean product pages, and private demo workflows that clients can review before launch."}),e.jsxs(p,{to:"/contact",className:"mt-8 inline-flex min-h-14 items-center justify-center gap-3 rounded-xl bg-blue-700 px-7 text-base font-extrabold text-white shadow-xl shadow-blue-950/30 transition hover:-translate-y-1 hover:bg-blue-600",children:["Contact Us",e.jsx(g,{size:19,"aria-hidden":"true"})]})]}),e.jsx("div",{ref:r,className:"story-stats-shell",children:e.jsx("div",{className:"story-stats-grid",children:te.map(([s,t,l])=>e.jsxs("div",{className:"story-stat-item",children:[e.jsx(l,{size:44,"aria-hidden":"true"}),e.jsx("strong",{children:s}),e.jsx("span",{children:t})]},t))})})]})]})}function oe(){return e.jsx("section",{className:"bg-white px-4 py-20 sm:px-6 lg:px-8",children:e.jsxs("div",{className:"mx-auto grid max-w-7xl gap-8 lg:grid-cols-[0.75fr_1fr] lg:items-center",children:[e.jsxs("div",{children:[e.jsxs("span",{className:"inline-flex items-center gap-2 text-sm font-extrabold uppercase tracking-[0.2em] text-amber-700",children:[e.jsx(w,{size:17,"aria-hidden":"true"}),"Store Experience"]}),e.jsx("h2",{className:"mt-4 text-4xl font-black leading-tight text-slate-950",children:"Public Product Pages with Private Demo Access"}),e.jsx("p",{className:"mt-5 text-base leading-8 text-slate-600",children:"The storefront shows the software catalogue publicly, while the protected demo keeps admin URLs and credentials available only inside logged-in product previews."}),e.jsxs("div",{className:"mt-7 flex flex-wrap gap-3 text-sm font-bold text-slate-700",children:[e.jsxs("span",{className:"inline-flex items-center gap-2 rounded-full bg-slate-100 px-4 py-2",children:[e.jsx(Q,{size:16,"aria-hidden":"true"}),"Delivery-ready copy"]}),e.jsxs("span",{className:"inline-flex items-center gap-2 rounded-full bg-slate-100 px-4 py-2",children:[e.jsx(Z,{size:16,"aria-hidden":"true"}),"Product-first pages"]})]})]}),e.jsx("div",{className:"grid gap-4 md:[01;31m[Kgrid-cols-3[m[K",children:ee.map(([a,r,s])=>e.jsxs("article",{className:"rounded-lg border border-slate-200 bg-[#fbfaf8] p-5 shadow-sm",children:[e.jsx("span",{className:"grid h-12 w-12 place-items-center rounded-full bg-cyan-700 text-white",children:e.jsx(s,{size:22,"aria-hidden":"true"})}),e.jsx("h3",{className:"mt-5 text-lg font-black text-slate-950",children:a}),e.jsx("p",{className:"mt-3 text-sm leading-6 text-slate-600",children:r})]},a))})]})})}function Ne(){const a=I(),r=q(),{user:s}=C(),[t,l]=m.useState([]),[n,i]=m.useState([]),[o,h]=m.useState(!0),[f,A]=m.useState("");m.useEffect(()=>{let d=!0;return v("/api/site/homepage").then(c=>{var u;d&&i(((u=c.homepage)==null?void 0:u.images)||[])}).catch(()=>{d&&i([])}),v("/api/products").then(c=>{d&&l(c.products)}).catch(c=>{d&&A(c.message)}).finally(()=>{d&&h(!1)}),()=>{d=!1}},[]),m.useEffect(()=>{if(o)return;let d=!0;const c=()=>{$().then(({ScrollTrigger:M})=>{d&&M.refresh()})},u=window.requestAnimationFrame(c),_=window.setTimeout(c,450);return()=>{d=!1,window.cancelAnimationFrame(u),window.clearTimeout(_)}},[n.length,o,t.length]);function T(d){const c=`/products/${d}?intent=hire`;if(!s){a(`/auth?mode=login&returnTo=${encodeURIComponent(c)}`);return}a(c,{state:{from:r.pathname}})}return e.jsxs("div",{className:"min-h-screen bg-slate-950",children:[e.jsx(R,{}),e.jsx(L,{}),e.jsx(re,{products:t,homepageImages:n}),e.jsx(le,{}),e.jsx(ie,{products:t,loading:o,error:f,onHireExpert:T}),e.jsx(ne,{}),e.jsx(oe,{}),e.jsx(O,{})]})}export{Ne as StorePage}; [root@server1 signaltechs.io]# grep -R "No products are available for this filter r yet" client/dist/assets/StorePage-*.js [root@server1 signaltechs.io]# grep -R "activeCategory" client/dist/assets/StoreP Page-*.js [root@server1 signaltechs.io]# cd /home/signgwph/signaltechs.io [root@server1 signaltechs.io]# rm -rf client/dist node_modules/.vite [root@server1 signaltechs.io]# npm run build > script-demo-marketplace@1.0.0 build > vite build [1G[0K[36mvite v6.4.3 [32mbuilding for production...[36m[39m [2K[1Gtransforming (1) [2massets/index-njXbIfN4.js[22m[2K[1Gtransforming (3) [2m vite/modulepreload-polyfill.js[22m[2K[1Gtransforming (14) [2massets/index-Q9OQYEC6.css[22m[2K[1G[32m✓[39m 38 modules transformed. [2K[1Grendering chunks (1)...[2K[1Grendering chunks (2)...[2K[1Grendering chunks (3)...[2K[1Grendering chunks (4)...[2K[1Grendering chunks (5)...[2K[1Grendering chunks (6)...[2K[1Grendering chunks (7)...[2K[1Grendering chunks (8)...[2K[1Grendering chunks (9)...[2K[1Grendering chunks (10)...[2K[1Grendering chunks (11)...[2K[1Grendering chunks (12)...[2K[1Grendering chunks (13)...[2K[1Grendering chunks (14)...[2K[1Grendering chunks (15)...[2K[1Grendering chunks (16)...[2K[1Grendering chunks (17)...[2K[1Grendering chunks (18)...[2K[1Grendering chunks (19)...[2K[1Grendering chunks (20)...[2K[1Grendering chunks (21)...[2K[1Grendering chunks (22)...[2K[1Grendering chunks (23)...[2K[1Grendering chunks (24)...[2K[1Grendering chunks (25)...[2K[1Grendering chunks (26)...[2K[1Grendering chunks (27)...[2K[1Grendering chunks (28)...[2K[1Grendering chunks (29)...[2K[1Grendering chunks (30)...[2K[1Grendering chunks (31)...[2K[1Grendering chunks (32)...[2K[1Grendering chunks (33)...[2K[1Grendering chunks (34)...[2K[1G[2K[1Gcomputing gzip size (0)...[2K[1Gcomputing gzip size (1)...[2K[1Gcomputing gzip size (2)...[2K[1Gcomputing gzip size (3)...[2K[1Gcomputing gzip size (4)...[2K[1Gcomputing gzip size (5)...[2K[1Gcomputing gzip size (6)...[2K[1Gcomputing gzip size (7)...[2K[1Gcomputing gzip size (8)...[2K[1Gcomputing gzip size (9)...[2K[1Gcomputing gzip size (10)...[2K[1Gcomputing gzip size (11)...[2K[1Gcomputing gzip size (12)...[2K[1Gcomputing gzip size (13)...[2K[1Gcomputing gzip size (14)...[2K[1Gcomputing gzip size (15)...[2K[1Gcomputing gzip size (16)...[2K[1Gcomputing gzip size (17)...[2K[1Gcomputing gzip size (18)...[2K[1Gcomputing gzip size (19)...[2K[1Gcomputing gzip size (20)...[2K[1Gcomputing gzip size (21)...[2K[1Gcomputing gzip size (22)...[2K[1Gcomputing gzip size (23)...[2K[1Gcomputing gzip size (24)...[2K[1Gcomputing gzip size (25)...[2K[1Gcomputing gzip size (26)...[2K[1Gcomputing gzip size (27)...[2K[1Gcomputing gzip size (28)...[2K[1Gcomputing gzip size (29)...[2K[1Gcomputing gzip size (30)...[2K[1Gcomputing gzip size (31)...[2K[1Gcomputing gzip size (32)...[2K[1Gcomputing gzip size (33)...[2K[1Gcomputing gzip size (34)...[2K[1Gcomputing gzip size (35)...[2K[1Gcomputing gzip size (36)...[2K[1G[2mclient/dist/[22m[32mindex.html [39m[1m[2m 0.47 kB[22m[1m[22m[2m │ gzip: 0.30 kB[22m [2mclient/dist/[22m[2massets/[22m[35mindex-Q9OQYEC6.css [39m[1m[2m 58.45 kB[22m[1m[22m[2m │ gzip: 12.09 kB[22m [2mclient/dist/[22m[2massets/[22m[36mloader-circle-V2cWFHrH-2Dq_dimb.js [39m[1m[2m 0.33 kB[22m[1m[22m[2m │ gzip: 0.27 kB[22m [2mclient/dist/[22m[2massets/[22m[36mx-CeOEg0E5-D3lkXQn_.js [39m[1m[2m 0.34 kB[22m[1m[22m[2m │ gzip: 0.27 kB[22m [2mclient/dist/[22m[2massets/[22m[36marrow-right-2Vo8kd7g-C8vr-FzG.js [39m[1m[2m 0.35 kB[22m[1m[22m[2m │ gzip: 0.28 kB[22m [2mclient/dist/[22m[2massets/[22m[36mcircle-check-DZlAO7lp-rWEcqJPJ.js [39m[1m[2m 0.37 kB[22m[1m[22m[2m │ gzip: 0.28 kB[22m [2mclient/dist/[22m[2massets/[22m[36mclock-3-CbEP_OCc-DWHRVkz-.js [39m[1m[2m 0.37 kB[22m[1m[22m[2m │ gzip: 0.29 kB[22m [2mclient/dist/[22m[2massets/[22m[36mcredit-card-D6c6loQU-DbjEQ6ul.js [39m[1m[2m 0.40 kB[22m[1m[22m[2m │ gzip: 0.30 kB[22m [2mclient/dist/[22m[2massets/[22m[36mmail-C3WpJBrq-vuiKKfqw.js [39m[1m[2m 0.40 kB[22m[1m[22m[2m │ gzip: 0.31 kB[22m [2mclient/dist/[22m[2massets/[22m[36meye-r2JXjIBF-BbKfBuk3.js [39m[1m[2m 0.45 kB[22m[1m[22m[2m │ gzip: 0.32 kB[22m [2mclient/dist/[22m[2massets/[22m[36moutput-onlinegiftools-1-1-gWZ8qF_4-DKueShN3.js [39m[1m[2m 0.49 kB[22m[1m[22m[2m │ gzip: 0.37 kB[22m [2mclient/dist/[22m[2massets/[22m[36mrefresh-cw-CWcft5M0-BBjlU0UW.js [39m[1m[2m 0.51 kB[22m[1m[22m[2m │ gzip: 0.34 kB[22m [2mclient/dist/[22m[2massets/[22m[36moutput-onlinegiftools-2-B2A0orka-UAagslDH.js [39m[1m[2m 0.75 kB[22m[1m[22m[2m │ gzip: 0.45 kB[22m [2mclient/dist/[22m[2massets/[22m[36mshopping-bag-C3mJufLf-Dm39IXWA.js [39m[1m[2m 0.80 kB[22m[1m[22m[2m │ gzip: 0.44 kB[22m [2mclient/dist/[22m[2massets/[22m[36muser-plus-B0mhYIhf-z7pr7xHN.js [39m[1m[2m 0.87 kB[22m[1m[22m[2m │ gzip: 0.45 kB[22m [2mclient/dist/[22m[2massets/[22m[36mButton-lYjdZ0bp-DdbqOKfE.js [39m[1m[2m 0.90 kB[22m[1m[22m[2m │ gzip: 0.58 kB[22m [2mclient/dist/[22m[2massets/[22m[36msettings-Co6v-lIO-UY0xo6FC.js [39m[1m[2m 0.91 kB[22m[1m[22m[2m │ gzip: 0.45 kB[22m [2mclient/dist/[22m[2massets/[22m[36mphone-YvJSXXOC-DUziMLZy.js [39m[1m[2m 0.94 kB[22m[1m[22m[2m │ gzip: 0.47 kB[22m [2mclient/dist/[22m[2massets/[22m[36mcreateLucideIcon-cPeKv0HK-Mfg5QKUr.js [39m[1m[2m 1.56 kB[22m[1m[22m[2m │ gzip: 0.67 kB[22m [2mclient/dist/[22m[2massets/[22m[36muser-round-Cwul5GYs-D2FjcOfY.js [39m[1m[2m 1.58 kB[22m[1m[22m[2m │ gzip: 0.65 kB[22m [2mclient/dist/[22m[2massets/[22m[36mtruck-Crg402gw-DXCTOX1S.js [39m[1m[2m 1.62 kB[22m[1m[22m[2m │ gzip: 0.69 kB[22m [2mclient/dist/[22m[2massets/[22m[36mAccountDock-DtyLyVPz-BKuNNBBV.js [39m[1m[2m 5.24 kB[22m[1m[22m[2m │ gzip: 1.92 kB[22m [2mclient/dist/[22m[2massets/[22m[36mSiteChrome-Dwiehxzb-B_Nyqb9r.js [39m[1m[2m 6.38 kB[22m[1m[22m[2m │ gzip: 2.26 kB[22m [2mclient/dist/[22m[2massets/[22m[36mAuthPage-C0g-omJy-Ur5XhLrQ.js [39m[1m[2m 8.18 kB[22m[1m[22m[2m │ gzip: 2.70 kB[22m [2mclient/dist/[22m[2massets/[22m[36mContactPage-BwAMQQj5-DkTbLLWB.js [39m[1m[2m 9.86 kB[22m[1m[22m[2m │ gzip: 3.17 kB[22m [2mclient/dist/[22m[2massets/[22m[36mAboutPage-CMcc5vuq-BQlsZcBj.js [39m[1m[2m 11.35 kB[22m[1m[22m[2m │ gzip: 3.77 kB[22m [2mclient/dist/[22m[2massets/[22m[36mProductDetailsPage-lgpxRc-L-B3k1Pvvz.js [39m[1m[2m 12.90 kB[22m[1m[22m[2m │ gzip: 3.71 kB[22m [2mclient/dist/[22m[2massets/[22m[36mDemoShellPage-DHdDON0W-DWpFT7fM.js [39m[1m[2m 13.72 kB[22m[1m[22m[2m │ gzip: 4.49 kB[22m [2mclient/dist/[22m[2massets/[22m[36musePortalSocket-Js-NGimq-B8InCS45.js [39m[1m[2m 16.37 kB[22m[1m[22m[2m │ gzip: 5.51 kB[22m [2mclient/dist/[22m[2massets/[22m[36mStorePage-C2S0kPhx-HeWvp2B0.js [39m[1m[2m 21.51 kB[22m[1m[22m[2m │ gzip: 6.81 kB[22m [2mclient/dist/[22m[2massets/[22m[36mClientDashboardPage-BdoMNvto-BQDwfxbn.js [39m[1m[2m 21.63 kB[22m[1m[22m[2m │ gzip: 6.72 kB[22m [2mclient/dist/[22m[2massets/[22m[36mScrollTrigger-7Zy99s9Q-BPq82YlF.js [39m[1m[2m 43.96 kB[22m[1m[22m[2m │ gzip: 18.15 kB[22m [2mclient/dist/[22m[2massets/[22m[36mAdminPanelPage-kJ-lq4hU-DRi1X2CP.js [39m[1m[2m 66.54 kB[22m[1m[22m[2m │ gzip: 14.84 kB[22m [2mclient/dist/[22m[2massets/[22m[36mindex-Bvu9zNsI-DX1QA0ik.js [39m[1m[2m 70.84 kB[22m[1m[22m[2m │ gzip: 27.89 kB[22m [2mclient/dist/[22m[2massets/[22m[36mfirebase-DEg1zKlq-B7QEUBhI.js [39m[1m[2m165.96 kB[22m[1m[22m[2m │ gzip: 34.17 kB[22m [2mclient/dist/[22m[2massets/[22m[36mindex-nhjxkvhU.js [39m[1m[2m178.70 kB[22m[1m[22m[2m │ gzip: 58.45 kB[22m [32m✓ built in 2.26s[39m [1G[0K⠙[1G[0K[root@server1 signaltechs.io]# pm2 restart signalhgtech --update-env [32m[PM2] [39mApplying action restartProcessId on app [signalhgtech](ids: [ 3 ]) [32m[PM2] [39m[signalhgtech](3) ✓ [90m┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐[39m [90m│[39m[1m[36m id [39m[22m[90m│[39m[1m[36m name [39m[22m[90m│[39m[1m[36m mode [39m[22m[90m│[39m[1m[36m ↺ [39m[22m[90m│[39m[1m[36m status [39m[22m[90m│[39m[1m[36m cpu [39m[22m[90m│[39m[1m[36m memory [39m[22m[90m│[39m [90m├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤[39m [90m│[39m[1m[36m [1m[36m1[39m[36m[22m[1m [39m[22m[90m│[39m findoutologist [90m│[39m [7m[1mfork[22m[27m [90m│[39m 4 [90m│[39m [31m[1mstopped[22m[39m [90m│[39m 0% [90m│[39m 0b [90m│[39m [90m│[39m[1m[36m [1m[36m0[39m[36m[22m[1m [39m[22m[90m│[39m signal-backend [90m│[39m [7m[1mfork[22m[27m [90m│[39m 1 [90m│[39m [32m[1monline[22m[39m [90m│[39m 0% [90m│[39m 53.3mb [90m│[39m [90m│[39m[1m[36m [1m[36m3[39m[36m[22m[1m [39m[22m[90m│[39m signalhgtech [90m│[39m [7m[1mfork[22m[27m [90m│[39m 15 [90m│[39m [32m[1monline[22m[39m [90m│[39m 0% [90m│[39m 19.1mb [90m│[39m [90m│[39m[1m[36m [1m[36m4[39m[36m[22m[1m [39m[22m[90m│[39m signaltechs-api [90m│[39m [7m[1mfork[22m[27m [90m│[39m 15 [90m│[39m [31m[1merrored[22m[39m [90m│[39m 0% [90m│[39m 0b [90m│[39m [90m└────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘[39m [1m[36mhost metrics[39m[22m | [1mcpu[22m: [32m16.2%[39m | [1mram usage[22m: [32m58.4%[39m | [1mlo[22m: ⇓ [32m0.672mb/s[39m ⇑ [32m0.672mb/s[39m | [1meth0[22m: ⇓ [32m0.012mb/s[39m ⇑ [32m0.053mb/s[39m | [root@server1 signaltechs.io]# pm2 save [32m[PM2] [39mSaving current process list... [32m[PM2] [39mSuccessfully saved in /root/.pm2/dump.pm2 [root@server1 signaltechs.io]# /home/signgwph/signaltechs.io bash: /home/signgwph/signaltechs.io: Is a directory [root@server1 signaltechs.io]# ^C [root@server1 signaltechs.io]# cd /home/signgwph/signaltechs.io [root@server1 signaltechs.io]# grep -R "No products are available for this filter r yet" client/dist/assets/StorePage-*.js [root@server1 signaltechs.io]# grep -R "activeCategory" client/dist/assets/StoreP Page-*.js [root@server1 signaltechs.io]# cd /home/signgwph/signaltechs.io [root@server1 signaltechs.io]# grep -n "from './pages/StorePage.jsx'" client/src/ /main.jsx [root@server1 signaltechs.io]# find . -name "StorePage.jsx" -print ./client/src/pages/StorePage.jsx [root@server1 signaltechs.io]# /home/signgwph/signaltechs.io bash: /home/signgwph/signaltechs.io: Is a directory [root@server1 signaltechs.io]# cd /home/signgwph/signaltechs.io [root@server1 signaltechs.io]# ^C [root@server1 signaltechs.io]# cd /home/signgwph/signaltechs.io [root@server1 signaltechs.io]# grep -n "StorePage" client/src/main.jsx [32m[K7[m[K[36m[K:[m[Kconst [01;31m[KStorePage[m[K = lazy(() => import('./pages/[01;31m[KStorePage[m[K.jsx').then((module) => ({ default: module.[01;31m[KStorePage[m[K }))); [32m[K30[m[K[36m[K:[m[K <Route path="/" element={<[01;31m[KStorePage[m[K />} /> [root@server1 signaltechs.io]# sed -n '1,80p' client/src/main.jsx import React, { lazy, Suspense } from 'react'; import ReactDOM from 'react-dom/client'; import { BrowserRouter, Navigate, Route, Routes } from 'react-router-dom'; import { AuthProvider } from './context/AuthContext.jsx'; import './styles.css'; const StorePage = lazy(() => import('./pages/StorePage.jsx').then((module) => ({ default: module.StorePage }))); const ProductDetailsPage = lazy(() => import('./pages/ProductDetailsPage.jsx').then((module) => ({ default: module.ProductDetailsPage }))); const AboutPage = lazy(() => import('./pages/AboutPage.jsx').then((module) => ({ default: module.AboutPage }))); const ContactPage = lazy(() => import('./pages/ContactPage.jsx').then((module) => ({ default: module.ContactPage }))); const AuthPage = lazy(() => import('./pages/AuthPage.jsx').then((module) => ({ default: module.AuthPage }))); const ClientDashboardPage = lazy(() => import('./pages/ClientDashboardPage.jsx').then((module) => ({ default: module.ClientDashboardPage }))); const DemoShellPage = lazy(() => import('./pages/DemoShellPage.jsx').then((module) => ({ default: module.DemoShellPage }))); const AdminPanelPage = lazy(() => import('./pages/AdminPanelPage.jsx').then((module) => ({ default: module.AdminPanelPage }))); function RouteFallback() { return ( <main className="grid min-h-screen place-items-center bg-slate-950 text-white"> <div className="h-9 w-9 animate-spin rounded-full border-4 border-white/20 border-t-cyan-300" aria-label="Loading page" /> </main> ); } ReactDOM.createRoot(document.getElementById('root')).render( <React.StrictMode> <BrowserRouter> <AuthProvider> <Suspense fallback={<RouteFallback />}> <Routes> <Route path="/" element={<StorePage />} /> <Route path="/about" element={<AboutPage />} /> <Route path="/contact" element={<ContactPage />} /> <Route path="/products/:productId" element={<ProductDetailsPage />} /> <Route path="/auth" element={<AuthPage />} /> <Route path="/dashboard" element={<ClientDashboardPage />} /> <Route path="/admin" element={<AdminPanelPage />} /> <Route path="/demo/:sessionId" element={<DemoShellPage />} /> <Route path="*" element={<Navigate to="/" replace />} /> </Routes> </Suspense> </AuthProvider> </BrowserRouter> </React.StrictMode> ); [root@server1 signaltechs.io]# cat vite.config.js import { defineConfig } from 'vite'; import react from '@vitejs/plugin-react'; export default defineConfig({ plugins: [react()], publicDir: 'client/public', server: { port: 5173, host: '0.0.0.0' }, build: { outDir: 'client/dist', emptyOutDir: true } }); [root@server1 signaltechs.io]# ^C [root@server1 signaltechs.io]# cd /home/signgwph/signaltechs.io [root@server1 signaltechs.io]# grep -n "function ProductShelf" client/src/pages/S StorePage.jsx [32m[K275[m[K[36m[K:[m[K[01;31m[Kfunction ProductShelf[m[K({ products, loading, error, activeCategory, productCounts, onCategoryChange, onHireExpert }) { [root@server1 signaltechs.io]# grep -n "activeCategory={activeCategory}" client/s src/pages/StorePage.jsx [32m[K668[m[K[36m[K:[m[K [01;31m[KactiveCategory={activeCategory}[m[K [root@server1 signaltechs.io]# cd /home/signgwph/signaltechs.io [root@server1 signaltechs.io]# rm -rf client/dist node_modules/.vite .vite [root@server1 signaltechs.io]# npx vite build --force [1G[0K⠙[1G[0Kfile:///home/signgwph/signaltechs.io/node_modules/vite/dist/node/cli.js:448 throw new CACError(`Unknown option \`${name.length > 1 ? `--${name}` : `-${name}`}\``); ^ CACError: Unknown option `--force` at Command.checkUnknownOptions [90m(file:///home/signgwph/signaltechs.io/[39mnode_modules/[4mvite[24m/dist/node/cli.js:448:17[90m)[39m at CAC.runMatchedCommand [90m(file:///home/signgwph/signaltechs.io/[39mnode_modules/[4mvite[24m/dist/node/cli.js:646:13[90m)[39m at CAC.parse [90m(file:///home/signgwph/signaltechs.io/[39mnode_modules/[4mvite[24m/dist/node/cli.js:585:12[90m)[39m at [90mfile:///home/signgwph/signaltechs.io/[39mnode_modules/[4mvite[24m/dist/node/cli.js:947:5 [90m at ModuleJob.run (node:internal/modules/esm/module_job:195:25)[39m [90m at async ModuleLoader.import (node:internal/modules/esm/loader:337:24)[39m Node.js v18.20.8 [1G[0K⠙[1G[0K[root@server1 signaltechs.io]# grep -R "activeCategory" client/dist/assets/StoreP Page-*.js grep: client/dist/assets/StorePage-*.js: No such file or directory [root@server1 signaltechs.io]# grep -R "No products are available for this filter r yet" client/dist/assets/StorePage-*.js grep: client/dist/assets/StorePage-*.js: No such file or directory [root@server1 signaltechs.io]# pm2 restart signalhgtech --update-env [32m[PM2] [39mApplying action restartProcessId on app [signalhgtech](ids: [ 3 ]) [32m[PM2] [39m[signalhgtech](3) ✓ [90m┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐[39m [90m│[39m[1m[36m id [39m[22m[90m│[39m[1m[36m name [39m[22m[90m│[39m[1m[36m mode [39m[22m[90m│[39m[1m[36m ↺ [39m[22m[90m│[39m[1m[36m status [39m[22m[90m│[39m[1m[36m cpu [39m[22m[90m│[39m[1m[36m memory [39m[22m[90m│[39m [90m├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤[39m [90m│[39m[1m[36m [1m[36m1[39m[36m[22m[1m [39m[22m[90m│[39m findoutologist [90m│[39m [7m[1mfork[22m[27m [90m│[39m 4 [90m│[39m [31m[1mstopped[22m[39m [90m│[39m 0% [90m│[39m 0b [90m│[39m [90m│[39m[1m[36m [1m[36m0[39m[36m[22m[1m [39m[22m[90m│[39m signal-backend [90m│[39m [7m[1mfork[22m[27m [90m│[39m 1 [90m│[39m [32m[1monline[22m[39m [90m│[39m 0% [90m│[39m 53.6mb [90m│[39m [90m│[39m[1m[36m [1m[36m3[39m[36m[22m[1m [39m[22m[90m│[39m signalhgtech [90m│[39m [7m[1mfork[22m[27m [90m│[39m 16 [90m│[39m [32m[1monline[22m[39m [90m│[39m 0% [90m│[39m 21.2mb [90m│[39m [90m│[39m[1m[36m [1m[36m4[39m[36m[22m[1m [39m[22m[90m│[39m signaltechs-api [90m│[39m [7m[1mfork[22m[27m [90m│[39m 15 [90m│[39m [31m[1merrored[22m[39m [90m│[39m 0% [90m│[39m 0b [90m│[39m [90m└────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘[39m [1m[36mhost metrics[39m[22m | [1mcpu[22m: [32m13%[39m | [1mram usage[22m: [32m59.8%[39m | [1mlo[22m: ⇓ [32m0.274mb/s[39m ⇑ [32m0.274mb/s[39m | [1meth0[22m: ⇓ [32m0.006mb/s[39m ⇑ [32m0.02mb/s[39m | [root@server1 signaltechs.io]# pm2 save [32m[PM2] [39mSaving current process list... [32m[PM2] [39mSuccessfully saved in /root/.pm2/dump.pm2 [root@server1 signaltechs.io]# cd /home/signgwph/signaltechs.io [root@server1 signaltechs.io]# rm -rf client/dist node_modules/.vite .vite [root@server1 signaltechs.io]# npx vite build --force [1G[0K⠙[1G[0Kfile:///home/signgwph/signaltechs.io/node_modules/vite/dist/node/cli.js:448 throw new CACError(`Unknown option \`${name.length > 1 ? `--${name}` : `-${name}`}\``); ^ CACError: Unknown option `--force` at Command.checkUnknownOptions [90m(file:///home/signgwph/signaltechs.io/[39mnode_modules/[4mvite[24m/dist/node/cli.js:448:17[90m)[39m at CAC.runMatchedCommand [90m(file:///home/signgwph/signaltechs.io/[39mnode_modules/[4mvite[24m/dist/node/cli.js:646:13[90m)[39m at CAC.parse [90m(file:///home/signgwph/signaltechs.io/[39mnode_modules/[4mvite[24m/dist/node/cli.js:585:12[90m)[39m at [90mfile:///home/signgwph/signaltechs.io/[39mnode_modules/[4mvite[24m/dist/node/cli.js:947:5 [90m at ModuleJob.run (node:internal/modules/esm/module_job:195:25)[39m [90m at async ModuleLoader.import (node:internal/modules/esm/loader:337:24)[39m Node.js v18.20.8 [1G[0K⠙[1G[0K[root@server1 signaltechs.io]# grep -R "No products are available for this filter r yet" client/dist/assets/StorePage-*.js grep: client/dist/assets/StorePage-*.js: No such file or directory [root@server1 signaltechs.io]# grep -R "bg-white/75 p-1.5" client/dist/assets/Sto orePage-*.js grep: client/dist/assets/StorePage-*.js: No such file or directory [root@server1 signaltechs.io]# pm2 restart signalhgtech --update-env [32m[PM2] [39mApplying action restartProcessId on app [signalhgtech](ids: [ 3 ]) [32m[PM2] [39m[signalhgtech](3) ✓ [90m┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐[39m [90m│[39m[1m[36m id [39m[22m[90m│[39m[1m[36m name [39m[22m[90m│[39m[1m[36m mode [39m[22m[90m│[39m[1m[36m ↺ [39m[22m[90m│[39m[1m[36m status [39m[22m[90m│[39m[1m[36m cpu [39m[22m[90m│[39m[1m[36m memory [39m[22m[90m│[39m [90m├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤[39m [90m│[39m[1m[36m [1m[36m1[39m[36m[22m[1m [39m[22m[90m│[39m findoutologist [90m│[39m [7m[1mfork[22m[27m [90m│[39m 4 [90m│[39m [31m[1mstopped[22m[39m [90m│[39m 0% [90m│[39m 0b [90m│[39m [90m│[39m[1m[36m [1m[36m0[39m[36m[22m[1m [39m[22m[90m│[39m signal-backend [90m│[39m [7m[1mfork[22m[27m [90m│[39m 1 [90m│[39m [32m[1monline[22m[39m [90m│[39m 0% [90m│[39m 53.3mb [90m│[39m [90m│[39m[1m[36m [1m[36m3[39m[36m[22m[1m [39m[22m[90m│[39m signalhgtech [90m│[39m [7m[1mfork[22m[27m [90m│[39m 17 [90m│[39m [32m[1monline[22m[39m [90m│[39m 0% [90m│[39m 15.6mb [90m│[39m [90m│[39m[1m[36m [1m[36m4[39m[36m[22m[1m [39m[22m[90m│[39m signaltechs-api [90m│[39m [7m[1mfork[22m[27m [90m│[39m 15 [90m│[39m [31m[1merrored[22m[39m [90m│[39m 0% [90m│[39m 0b [90m│[39m [90m└────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘[39m [1m[36mhost metrics[39m[22m | [1mcpu[22m: [32m11.3%[39m | [1mram usage[22m: [32m57.7%[39m | [1mlo[22m: ⇓ [32m0.317mb/s[39m ⇑ [32m0.317mb/s[39m | [1meth0[22m: ⇓ [32m0.008mb/s[39m ⇑ [32m0.053mb/s[39m | [root@server1 signaltechs.io]# pm2 save [32m[PM2] [39mSaving current process list... [32m[PM2] [39mSuccessfully saved in /root/.pm2/dump.pm2 [root@server1 signaltechs.io]# ^C [root@server1 signaltechs.io]# grep -R "No products are available for this filter r yet" client/dist/assets/StorePage-*.js grep: client/dist/assets/StorePage-*.js: No such file or directory [root@server1 signaltechs.io]# grep -R "bg-white/75 p-1.5" client/dist/assets/Sto orePage-*.js grep: client/dist/assets/StorePage-*.js: No such file or directory [root@server1 signaltechs.io]# cd /home/signgwph/signaltechs.io [root@server1 signaltechs.io]# npm run build > script-demo-marketplace@1.0.0 build > vite build [1G[0K[36mvite v6.4.3 [32mbuilding for production...[36m[39m [2K[1Gtransforming (1) [2massets/index-njXbIfN4.js[22m[2K[1Gtransforming (3) [2m vite/modulepreload-polyfill.js[22m[2K[1Gtransforming (14) [2massets/index-Q9OQYEC6.css[22m[2K[1G[32m✓[39m 38 modules transformed. [2K[1Grendering chunks (1)...[2K[1Grendering chunks (2)...[2K[1Grendering chunks (3)...[2K[1Grendering chunks (4)...[2K[1Grendering chunks (5)...[2K[1Grendering chunks (6)...[2K[1Grendering chunks (7)...[2K[1Grendering chunks (8)...[2K[1Grendering chunks (9)...[2K[1Grendering chunks (10)...[2K[1Grendering chunks (11)...[2K[1Grendering chunks (12)...[2K[1Grendering chunks (13)...[2K[1Grendering chunks (14)...[2K[1Grendering chunks (15)...[2K[1Grendering chunks (16)...[2K[1Grendering chunks (17)...[2K[1Grendering chunks (18)...[2K[1Grendering chunks (19)...[2K[1Grendering chunks (20)...[2K[1Grendering chunks (21)...[2K[1Grendering chunks (22)...[2K[1Grendering chunks (23)...[2K[1Grendering chunks (24)...[2K[1Grendering chunks (25)...[2K[1Grendering chunks (26)...[2K[1Grendering chunks (27)...[2K[1Grendering chunks (28)...[2K[1Grendering chunks (29)...[2K[1Grendering chunks (30)...[2K[1Grendering chunks (31)...[2K[1Grendering chunks (32)...[2K[1Grendering chunks (33)...[2K[1Grendering chunks (34)...[2K[1G[2K[1Gcomputing gzip size (0)...[2K[1Gcomputing gzip size (1)...[2K[1Gcomputing gzip size (2)...[2K[1Gcomputing gzip size (3)...[2K[1Gcomputing gzip size (4)...[2K[1Gcomputing gzip size (5)...[2K[1Gcomputing gzip size (6)...[2K[1Gcomputing gzip size (7)...[2K[1Gcomputing gzip size (8)...[2K[1Gcomputing gzip size (9)...[2K[1Gcomputing gzip size (10)...[2K[1Gcomputing gzip size (11)...[2K[1Gcomputing gzip size (12)...[2K[1Gcomputing gzip size (13)...[2K[1Gcomputing gzip size (14)...[2K[1Gcomputing gzip size (15)...[2K[1Gcomputing gzip size (16)...[2K[1Gcomputing gzip size (17)...[2K[1Gcomputing gzip size (18)...[2K[1Gcomputing gzip size (19)...[2K[1Gcomputing gzip size (20)...[2K[1Gcomputing gzip size (21)...[2K[1Gcomputing gzip size (22)...[2K[1Gcomputing gzip size (23)...[2K[1Gcomputing gzip size (24)...[2K[1Gcomputing gzip size (25)...[2K[1Gcomputing gzip size (26)...[2K[1Gcomputing gzip size (27)...[2K[1Gcomputing gzip size (28)...[2K[1Gcomputing gzip size (29)...[2K[1Gcomputing gzip size (30)...[2K[1Gcomputing gzip size (31)...[2K[1Gcomputing gzip size (32)...[2K[1Gcomputing gzip size (33)...[2K[1Gcomputing gzip size (34)...[2K[1Gcomputing gzip size (35)...[2K[1Gcomputing gzip size (36)...[2K[1G[2mclient/dist/[22m[32mindex.html [39m[1m[2m 0.47 kB[22m[1m[22m[2m │ gzip: 0.30 kB[22m [2mclient/dist/[22m[2massets/[22m[35mindex-Q9OQYEC6.css [39m[1m[2m 58.45 kB[22m[1m[22m[2m │ gzip: 12.09 kB[22m [2mclient/dist/[22m[2massets/[22m[36mloader-circle-V2cWFHrH-2Dq_dimb.js [39m[1m[2m 0.33 kB[22m[1m[22m[2m │ gzip: 0.27 kB[22m [2mclient/dist/[22m[2massets/[22m[36mx-CeOEg0E5-D3lkXQn_.js [39m[1m[2m 0.34 kB[22m[1m[22m[2m │ gzip: 0.27 kB[22m [2mclient/dist/[22m[2massets/[22m[36marrow-right-2Vo8kd7g-C8vr-FzG.js [39m[1m[2m 0.35 kB[22m[1m[22m[2m │ gzip: 0.28 kB[22m [2mclient/dist/[22m[2massets/[22m[36mcircle-check-DZlAO7lp-rWEcqJPJ.js [39m[1m[2m 0.37 kB[22m[1m[22m[2m │ gzip: 0.28 kB[22m [2mclient/dist/[22m[2massets/[22m[36mclock-3-CbEP_OCc-DWHRVkz-.js [39m[1m[2m 0.37 kB[22m[1m[22m[2m │ gzip: 0.29 kB[22m [2mclient/dist/[22m[2massets/[22m[36mcredit-card-D6c6loQU-DbjEQ6ul.js [39m[1m[2m 0.40 kB[22m[1m[22m[2m │ gzip: 0.30 kB[22m [2mclient/dist/[22m[2massets/[22m[36mmail-C3WpJBrq-vuiKKfqw.js [39m[1m[2m 0.40 kB[22m[1m[22m[2m │ gzip: 0.31 kB[22m [2mclient/dist/[22m[2massets/[22m[36meye-r2JXjIBF-BbKfBuk3.js [39m[1m[2m 0.45 kB[22m[1m[22m[2m │ gzip: 0.32 kB[22m [2mclient/dist/[22m[2massets/[22m[36moutput-onlinegiftools-1-1-gWZ8qF_4-DKueShN3.js [39m[1m[2m 0.49 kB[22m[1m[22m[2m │ gzip: 0.37 kB[22m [2mclient/dist/[22m[2massets/[22m[36mrefresh-cw-CWcft5M0-BBjlU0UW.js [39m[1m[2m 0.51 kB[22m[1m[22m[2m │ gzip: 0.34 kB[22m [2mclient/dist/[22m[2massets/[22m[36moutput-onlinegiftools-2-B2A0orka-UAagslDH.js [39m[1m[2m 0.75 kB[22m[1m[22m[2m │ gzip: 0.45 kB[22m [2mclient/dist/[22m[2massets/[22m[36mshopping-bag-C3mJufLf-Dm39IXWA.js [39m[1m[2m 0.80 kB[22m[1m[22m[2m │ gzip: 0.44 kB[22m [2mclient/dist/[22m[2massets/[22m[36muser-plus-B0mhYIhf-z7pr7xHN.js [39m[1m[2m 0.87 kB[22m[1m[22m[2m │ gzip: 0.45 kB[22m [2mclient/dist/[22m[2massets/[22m[36mButton-lYjdZ0bp-DdbqOKfE.js [39m[1m[2m 0.90 kB[22m[1m[22m[2m │ gzip: 0.58 kB[22m [2mclient/dist/[22m[2massets/[22m[36msettings-Co6v-lIO-UY0xo6FC.js [39m[1m[2m 0.91 kB[22m[1m[22m[2m │ gzip: 0.45 kB[22m [2mclient/dist/[22m[2massets/[22m[36mphone-YvJSXXOC-DUziMLZy.js [39m[1m[2m 0.94 kB[22m[1m[22m[2m │ gzip: 0.47 kB[22m [2mclient/dist/[22m[2massets/[22m[36mcreateLucideIcon-cPeKv0HK-Mfg5QKUr.js [39m[1m[2m 1.56 kB[22m[1m[22m[2m │ gzip: 0.67 kB[22m [2mclient/dist/[22m[2massets/[22m[36muser-round-Cwul5GYs-D2FjcOfY.js [39m[1m[2m 1.58 kB[22m[1m[22m[2m │ gzip: 0.65 kB[22m [2mclient/dist/[22m[2massets/[22m[36mtruck-Crg402gw-DXCTOX1S.js [39m[1m[2m 1.62 kB[22m[1m[22m[2m │ gzip: 0.69 kB[22m [2mclient/dist/[22m[2massets/[22m[36mAccountDock-DtyLyVPz-BKuNNBBV.js [39m[1m[2m 5.24 kB[22m[1m[22m[2m │ gzip: 1.92 kB[22m [2mclient/dist/[22m[2massets/[22m[36mSiteChrome-Dwiehxzb-B_Nyqb9r.js [39m[1m[2m 6.38 kB[22m[1m[22m[2m │ gzip: 2.26 kB[22m [2mclient/dist/[22m[2massets/[22m[36mAuthPage-C0g-omJy-Ur5XhLrQ.js [39m[1m[2m 8.18 kB[22m[1m[22m[2m │ gzip: 2.70 kB[22m [2mclient/dist/[22m[2massets/[22m[36mContactPage-BwAMQQj5-DkTbLLWB.js [39m[1m[2m 9.86 kB[22m[1m[22m[2m │ gzip: 3.17 kB[22m [2mclient/dist/[22m[2massets/[22m[36mAboutPage-CMcc5vuq-BQlsZcBj.js [39m[1m[2m 11.35 kB[22m[1m[22m[2m │ gzip: 3.77 kB[22m [2mclient/dist/[22m[2massets/[22m[36mProductDetailsPage-lgpxRc-L-B3k1Pvvz.js [39m[1m[2m 12.90 kB[22m[1m[22m[2m │ gzip: 3.71 kB[22m [2mclient/dist/[22m[2massets/[22m[36mDemoShellPage-DHdDON0W-DWpFT7fM.js [39m[1m[2m 13.72 kB[22m[1m[22m[2m │ gzip: 4.49 kB[22m [2mclient/dist/[22m[2massets/[22m[36musePortalSocket-Js-NGimq-B8InCS45.js [39m[1m[2m 16.37 kB[22m[1m[22m[2m │ gzip: 5.51 kB[22m [2mclient/dist/[22m[2massets/[22m[36mStorePage-C2S0kPhx-HeWvp2B0.js [39m[1m[2m 21.51 kB[22m[1m[22m[2m │ gzip: 6.81 kB[22m [2mclient/dist/[22m[2massets/[22m[36mClientDashboardPage-BdoMNvto-BQDwfxbn.js [39m[1m[2m 21.63 kB[22m[1m[22m[2m │ gzip: 6.72 kB[22m [2mclient/dist/[22m[2massets/[22m[36mScrollTrigger-7Zy99s9Q-BPq82YlF.js [39m[1m[2m 43.96 kB[22m[1m[22m[2m │ gzip: 18.15 kB[22m [2mclient/dist/[22m[2massets/[22m[36mAdminPanelPage-kJ-lq4hU-DRi1X2CP.js [39m[1m[2m 66.54 kB[22m[1m[22m[2m │ gzip: 14.84 kB[22m [2mclient/dist/[22m[2massets/[22m[36mindex-Bvu9zNsI-DX1QA0ik.js [39m[1m[2m 70.84 kB[22m[1m[22m[2m │ gzip: 27.89 kB[22m [2mclient/dist/[22m[2massets/[22m[36mfirebase-DEg1zKlq-B7QEUBhI.js [39m[1m[2m165.96 kB[22m[1m[22m[2m │ gzip: 34.17 kB[22m [2mclient/dist/[22m[2massets/[22m[36mindex-nhjxkvhU.js [39m[1m[2m178.70 kB[22m[1m[22m[2m │ gzip: 58.45 kB[22m [32m✓ built in 2.32s[39m [1G[0K⠙[1G[0K[root@server1 signaltechs.io]# grep -R "No products are available for this filter r yet" client/dist/assets/StorePage-*.js [root@server1 signaltechs.io]# grep -R "bg-white/75 p-1.5" client/dist/assets/Sto orePage-*.js [root@server1 signaltechs.io]# pm2 restart signalhgtech --update-env [32m[PM2] [39mApplying action restartProcessId on app [signalhgtech](ids: [ 3 ]) [32m[PM2] [39m[signalhgtech](3) ✓ [90m┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐[39m [90m│[39m[1m[36m id [39m[22m[90m│[39m[1m[36m name [39m[22m[90m│[39m[1m[36m mode [39m[22m[90m│[39m[1m[36m ↺ [39m[22m[90m│[39m[1m[36m status [39m[22m[90m│[39m[1m[36m cpu [39m[22m[90m│[39m[1m[36m memory [39m[22m[90m│[39m [90m├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤[39m [90m│[39m[1m[36m [1m[36m1[39m[36m[22m[1m [39m[22m[90m│[39m findoutologist [90m│[39m [7m[1mfork[22m[27m [90m│[39m 4 [90m│[39m [31m[1mstopped[22m[39m [90m│[39m 0% [90m│[39m 0b [90m│[39m [90m│[39m[1m[36m [1m[36m0[39m[36m[22m[1m [39m[22m[90m│[39m signal-backend [90m│[39m [7m[1mfork[22m[27m [90m│[39m 1 [90m│[39m [32m[1monline[22m[39m [90m│[39m 0% [90m│[39m 53.4mb [90m│[39m [90m│[39m[1m[36m [1m[36m3[39m[36m[22m[1m [39m[22m[90m│[39m signalhgtech [90m│[39m [7m[1mfork[22m[27m [90m│[39m 18 [90m│[39m [32m[1monline[22m[39m [90m│[39m 0% [90m│[39m 19.8mb [90m│[39m [90m│[39m[1m[36m [1m[36m4[39m[36m[22m[1m [39m[22m[90m│[39m signaltechs-api [90m│[39m [7m[1mfork[22m[27m [90m│[39m 15 [90m│[39m [31m[1merrored[22m[39m [90m│[39m 0% [90m│[39m 0b [90m│[39m [90m└────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘[39m [1m[36mhost metrics[39m[22m | [1mcpu[22m: [32m25.6%[39m | [1mram usage[22m: [32m58.4%[39m | [1mlo[22m: ⇓ [32m0.799mb/s[39m ⇑ [32m0.799mb/s[39m | [1meth0[22m: ⇓ [32m0.01mb/s[39m ⇑ [32m0.194mb/s[39m | [root@server1 signaltechs.io]# pm2 save [32m[PM2] [39mSaving current process list... [32m[PM2] [39mSuccessfully saved in /root/.pm2/dump.pm2 [root@server1 signaltechs.io]# ^C [root@server1 signaltechs.io]# ^C [root@server1 signaltechs.io]# cd /home/signgwph/signaltechs.io [root@server1 signaltechs.io]# grep -n "function ProductShelf" client/src/pages/S StorePage.jsx [32m[K275[m[K[36m[K:[m[K[01;31m[Kfunction ProductShelf[m[K({ products, loading, error, activeCategory, productCounts, onCategoryChange, onHireExpert }) { [root@server1 signaltechs.io]# grep -n "No products are available yet" client/src c/pages/StorePage.jsx [root@server1 signaltechs.io]# grep -n "No products are available for this filter r yet" client/src/pages/StorePage.jsx [32m[K327[m[K[36m[K:[m[K [01;31m[KNo products are available for this filter yet[m[K. [root@server1 signaltechs.io]# sed -n '260,340p' client/src/pages/StorePage.jsx ].map(([title, body, Icon]) => ( <article key={title} className="project-card rounded-lg border border-slate-200 bg-white/90 p-6 shadow-sm" style={{ '--project-delay': '0.05s' }}> <span className="grid h-12 w-12 place-items-center rounded-full bg-slate-950 text-cyan-100"> <Icon size={22} aria-hidden="true" /> </span> <h3 className="mt-5 text-xl font-black text-slate-950">{title}</h3> <p className="mt-3 text-sm leading-6 text-slate-600">{body}</p> </article> ))} </div> </div> </section> ); } function ProductShelf({ products, loading, error, activeCategory, productCounts, onCategoryChange, onHireExpert }) { return ( <section id="products" className="bg-[#f5efe6] px-4 py-20 sm:px-6 lg:px-8"> <div className="mx-auto max-w-7xl"> <div className="flex flex-col gap-5 md:flex-row md:items-end md:justify-between"> <div> <span className="inline-flex items-center gap-2 text-sm font-extrabold uppercase tracking-[0.2em] text-cyan-800"> <PackageCheck size={17} aria-hidden="true" /> Software Catalogue </span> <h2 className="mt-4 max-w-3xl text-4xl font-black leading-tight text-slate-950 sm:text-5xl"> Products Ready to Demo, Review, and Sell </h2> </div> <div className="grid w-full grid-cols-3 gap-1.5 rounded-lg border border-slate-200 bg-white/75 p-1.5 shadow-sm sm:flex sm:w-auto sm:flex-wrap sm:gap-2 sm:p-1"> {productCategoryFilters.map(([value, label]) => { const active = activeCategory === value; return ( <button key={value} type="button" onClick={() => onCategoryChange(value)} className={`inline-flex min-h-11 min-w-0 items-center justify-center gap-1.5 rounded-md px-2 text-xs font-black transition sm:min-h-10 sm:gap-2 sm:px-4 sm:text-sm ${ active ? 'bg-cyan-700 text-white shadow-md shadow-cyan-900/15' : 'text-slate-700 hover:bg-cyan-50 hover:text-cyan-800' }`} > <span className="truncate">{label}</span> <span className={`shrink-0 rounded-full px-1.5 py-0.5 text-[11px] sm:px-2 sm:text-xs ${active ? 'bg-white/20 text-white' : 'bg-slate-100 text-slate-500'}`}> {productCounts[value] || 0} </span> </button> ); })} </div> </div> {loading && ( <div className="mt-10 grid min-h-64 place-items-center rounded-lg border border-slate-200 bg-white"> <Loader2 className="animate-spin text-cyan-700" aria-hidden="true" /> </div> )} {error && ( <div className="mt-10 rounded-lg border border-red-200 bg-red-50 p-4 text-sm font-semibold text-red-700"> {error} </div> )} {!loading && !error && products.length === 0 && ( <div className="mt-10 rounded-lg border border-slate-200 bg-white p-6 text-sm font-semibold text-slate-600"> No products are available for this filter yet. </div> )} {!loading && !error && products.length > 0 && ( <div className="mt-10 grid gap-6 md:grid-cols-2 xl:grid-cols-4"> {products.map((product, index) => ( <article key={product.id} className="project-card group flex h-full flex-col overflow-hidden rounded-lg border border-slate-200 bg-white shadow-xl shadow-slate-200/60 transition hover:-translate-y-1 hover:shadow-2xl" style={{ '--project-delay': `${index * 0.1}s` }} > <Link to={`/products/${product.id}`} className="relative block aspect-[16/10] overflow-hidden bg-slate-100"> <img [root@server1 signaltechs.io]# ^C [root@server1 signaltechs.io]# cd /home/signgwph/signaltechs.io [root@server1 signaltechs.io]# rm -rf client/dist [root@server1 signaltechs.io]# npm run build > script-demo-marketplace@1.0.0 build > vite build [1G[0K[36mvite v6.4.3 [32mbuilding for production...[36m[39m [2K[1Gtransforming (1) [2massets/index-njXbIfN4.js[22m[2K[1Gtransforming (3) [2m vite/modulepreload-polyfill.js[22m[2K[1Gtransforming (14) [2massets/index-Q9OQYEC6.css[22m[2K[1G[32m✓[39m 38 modules transformed. [2K[1Grendering chunks (1)...[2K[1Grendering chunks (2)...[2K[1Grendering chunks (3)...[2K[1Grendering chunks (4)...[2K[1Grendering chunks (5)...[2K[1Grendering chunks (6)...[2K[1Grendering chunks (7)...[2K[1Grendering chunks (8)...[2K[1Grendering chunks (9)...[2K[1Grendering chunks (10)...[2K[1Grendering chunks (11)...[2K[1Grendering chunks (12)...[2K[1Grendering chunks (13)...[2K[1Grendering chunks (14)...[2K[1Grendering chunks (15)...[2K[1Grendering chunks (16)...[2K[1Grendering chunks (17)...[2K[1Grendering chunks (18)...[2K[1Grendering chunks (19)...[2K[1Grendering chunks (20)...[2K[1Grendering chunks (21)...[2K[1Grendering chunks (22)...[2K[1Grendering chunks (23)...[2K[1Grendering chunks (24)...[2K[1Grendering chunks (25)...[2K[1Grendering chunks (26)...[2K[1Grendering chunks (27)...[2K[1Grendering chunks (28)...[2K[1Grendering chunks (29)...[2K[1Grendering chunks (30)...[2K[1Grendering chunks (31)...[2K[1Grendering chunks (32)...[2K[1Grendering chunks (33)...[2K[1Grendering chunks (34)...[2K[1G[2K[1Gcomputing gzip size (0)...[2K[1Gcomputing gzip size (1)...[2K[1Gcomputing gzip size (2)...[2K[1Gcomputing gzip size (3)...[2K[1Gcomputing gzip size (4)...[2K[1Gcomputing gzip size (5)...[2K[1Gcomputing gzip size (6)...[2K[1Gcomputing gzip size (7)...[2K[1Gcomputing gzip size (8)...[2K[1Gcomputing gzip size (9)...[2K[1Gcomputing gzip size (10)...[2K[1Gcomputing gzip size (11)...[2K[1Gcomputing gzip size (12)...[2K[1Gcomputing gzip size (13)...[2K[1Gcomputing gzip size (14)...[2K[1Gcomputing gzip size (15)...[2K[1Gcomputing gzip size (16)...[2K[1Gcomputing gzip size (17)...[2K[1Gcomputing gzip size (18)...[2K[1Gcomputing gzip size (19)...[2K[1Gcomputing gzip size (20)...[2K[1Gcomputing gzip size (21)...[2K[1Gcomputing gzip size (22)...[2K[1Gcomputing gzip size (23)...[2K[1Gcomputing gzip size (24)...[2K[1Gcomputing gzip size (25)...[2K[1Gcomputing gzip size (26)...[2K[1Gcomputing gzip size (27)...[2K[1Gcomputing gzip size (28)...[2K[1Gcomputing gzip size (29)...[2K[1Gcomputing gzip size (30)...[2K[1Gcomputing gzip size (31)...[2K[1Gcomputing gzip size (32)...[2K[1Gcomputing gzip size (33)...[2K[1Gcomputing gzip size (34)...[2K[1Gcomputing gzip size (35)...[2K[1Gcomputing gzip size (36)...[2K[1G[2mclient/dist/[22m[32mindex.html [39m[1m[2m 0.47 kB[22m[1m[22m[2m │ gzip: 0.30 kB[22m [2mclient/dist/[22m[2massets/[22m[35mindex-Q9OQYEC6.css [39m[1m[2m 58.45 kB[22m[1m[22m[2m │ gzip: 12.09 kB[22m [2mclient/dist/[22m[2massets/[22m[36mloader-circle-V2cWFHrH-2Dq_dimb.js [39m[1m[2m 0.33 kB[22m[1m[22m[2m │ gzip: 0.27 kB[22m [2mclient/dist/[22m[2massets/[22m[36mx-CeOEg0E5-D3lkXQn_.js [39m[1m[2m 0.34 kB[22m[1m[22m[2m │ gzip: 0.27 kB[22m [2mclient/dist/[22m[2massets/[22m[36marrow-right-2Vo8kd7g-C8vr-FzG.js [39m[1m[2m 0.35 kB[22m[1m[22m[2m │ gzip: 0.28 kB[22m [2mclient/dist/[22m[2massets/[22m[36mcircle-check-DZlAO7lp-rWEcqJPJ.js [39m[1m[2m 0.37 kB[22m[1m[22m[2m │ gzip: 0.28 kB[22m [2mclient/dist/[22m[2massets/[22m[36mclock-3-CbEP_OCc-DWHRVkz-.js [39m[1m[2m 0.37 kB[22m[1m[22m[2m │ gzip: 0.29 kB[22m [2mclient/dist/[22m[2massets/[22m[36mcredit-card-D6c6loQU-DbjEQ6ul.js [39m[1m[2m 0.40 kB[22m[1m[22m[2m │ gzip: 0.30 kB[22m [2mclient/dist/[22m[2massets/[22m[36mmail-C3WpJBrq-vuiKKfqw.js [39m[1m[2m 0.40 kB[22m[1m[22m[2m │ gzip: 0.31 kB[22m [2mclient/dist/[22m[2massets/[22m[36meye-r2JXjIBF-BbKfBuk3.js [39m[1m[2m 0.45 kB[22m[1m[22m[2m │ gzip: 0.32 kB[22m [2mclient/dist/[22m[2massets/[22m[36moutput-onlinegiftools-1-1-gWZ8qF_4-DKueShN3.js [39m[1m[2m 0.49 kB[22m[1m[22m[2m │ gzip: 0.37 kB[22m [2mclient/dist/[22m[2massets/[22m[36mrefresh-cw-CWcft5M0-BBjlU0UW.js [39m[1m[2m 0.51 kB[22m[1m[22m[2m │ gzip: 0.34 kB[22m [2mclient/dist/[22m[2massets/[22m[36moutput-onlinegiftools-2-B2A0orka-UAagslDH.js [39m[1m[2m 0.75 kB[22m[1m[22m[2m │ gzip: 0.45 kB[22m [2mclient/dist/[22m[2massets/[22m[36mshopping-bag-C3mJufLf-Dm39IXWA.js [39m[1m[2m 0.80 kB[22m[1m[22m[2m │ gzip: 0.44 kB[22m [2mclient/dist/[22m[2massets/[22m[36muser-plus-B0mhYIhf-z7pr7xHN.js [39m[1m[2m 0.87 kB[22m[1m[22m[2m │ gzip: 0.45 kB[22m [2mclient/dist/[22m[2massets/[22m[36mButton-lYjdZ0bp-DdbqOKfE.js [39m[1m[2m 0.90 kB[22m[1m[22m[2m │ gzip: 0.58 kB[22m [2mclient/dist/[22m[2massets/[22m[36msettings-Co6v-lIO-UY0xo6FC.js [39m[1m[2m 0.91 kB[22m[1m[22m[2m │ gzip: 0.45 kB[22m [2mclient/dist/[22m[2massets/[22m[36mphone-YvJSXXOC-DUziMLZy.js [39m[1m[2m 0.94 kB[22m[1m[22m[2m │ gzip: 0.47 kB[22m [2mclient/dist/[22m[2massets/[22m[36mcreateLucideIcon-cPeKv0HK-Mfg5QKUr.js [39m[1m[2m 1.56 kB[22m[1m[22m[2m │ gzip: 0.67 kB[22m [2mclient/dist/[22m[2massets/[22m[36muser-round-Cwul5GYs-D2FjcOfY.js [39m[1m[2m 1.58 kB[22m[1m[22m[2m │ gzip: 0.65 kB[22m [2mclient/dist/[22m[2massets/[22m[36mtruck-Crg402gw-DXCTOX1S.js [39m[1m[2m 1.62 kB[22m[1m[22m[2m │ gzip: 0.69 kB[22m [2mclient/dist/[22m[2massets/[22m[36mAccountDock-DtyLyVPz-BKuNNBBV.js [39m[1m[2m 5.24 kB[22m[1m[22m[2m │ gzip: 1.92 kB[22m [2mclient/dist/[22m[2massets/[22m[36mSiteChrome-Dwiehxzb-B_Nyqb9r.js [39m[1m[2m 6.38 kB[22m[1m[22m[2m │ gzip: 2.26 kB[22m [2mclient/dist/[22m[2massets/[22m[36mAuthPage-C0g-omJy-Ur5XhLrQ.js [39m[1m[2m 8.18 kB[22m[1m[22m[2m │ gzip: 2.70 kB[22m [2mclient/dist/[22m[2massets/[22m[36mContactPage-BwAMQQj5-DkTbLLWB.js [39m[1m[2m 9.86 kB[22m[1m[22m[2m │ gzip: 3.17 kB[22m [2mclient/dist/[22m[2massets/[22m[36mAboutPage-CMcc5vuq-BQlsZcBj.js [39m[1m[2m 11.35 kB[22m[1m[22m[2m │ gzip: 3.77 kB[22m [2mclient/dist/[22m[2massets/[22m[36mProductDetailsPage-lgpxRc-L-B3k1Pvvz.js [39m[1m[2m 12.90 kB[22m[1m[22m[2m │ gzip: 3.71 kB[22m [2mclient/dist/[22m[2massets/[22m[36mDemoShellPage-DHdDON0W-DWpFT7fM.js [39m[1m[2m 13.72 kB[22m[1m[22m[2m │ gzip: 4.49 kB[22m [2mclient/dist/[22m[2massets/[22m[36musePortalSocket-Js-NGimq-B8InCS45.js [39m[1m[2m 16.37 kB[22m[1m[22m[2m │ gzip: 5.51 kB[22m [2mclient/dist/[22m[2massets/[22m[36mStorePage-C2S0kPhx-HeWvp2B0.js [39m[1m[2m 21.51 kB[22m[1m[22m[2m │ gzip: 6.81 kB[22m [2mclient/dist/[22m[2massets/[22m[36mClientDashboardPage-BdoMNvto-BQDwfxbn.js [39m[1m[2m 21.63 kB[22m[1m[22m[2m │ gzip: 6.72 kB[22m [2mclient/dist/[22m[2massets/[22m[36mScrollTrigger-7Zy99s9Q-BPq82YlF.js [39m[1m[2m 43.96 kB[22m[1m[22m[2m │ gzip: 18.15 kB[22m [2mclient/dist/[22m[2massets/[22m[36mAdminPanelPage-kJ-lq4hU-DRi1X2CP.js [39m[1m[2m 66.54 kB[22m[1m[22m[2m │ gzip: 14.84 kB[22m [2mclient/dist/[22m[2massets/[22m[36mindex-Bvu9zNsI-DX1QA0ik.js [39m[1m[2m 70.84 kB[22m[1m[22m[2m │ gzip: 27.89 kB[22m [2mclient/dist/[22m[2massets/[22m[36mfirebase-DEg1zKlq-B7QEUBhI.js [39m[1m[2m165.96 kB[22m[1m[22m[2m │ gzip: 34.17 kB[22m [2mclient/dist/[22m[2massets/[22m[36mindex-nhjxkvhU.js [39m[1m[2m178.70 kB[22m[1m[22m[2m │ gzip: 58.45 kB[22m [32m✓ built in 2.40s[39m [1G[0K⠙[1G[0K[root@server1 signaltechs.io]# grep -R "No products are available for this filter r yet" client/dist/assets/StorePage-*.js [root@server1 signaltechs.io]# pm2 restart signalhgtech --update-env [32m[PM2] [39mApplying action restartProcessId on app [signalhgtech](ids: [ 3 ]) [32m[PM2] [39m[signalhgtech](3) ✓ [90m┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐[39m [90m│[39m[1m[36m id [39m[22m[90m│[39m[1m[36m name [39m[22m[90m│[39m[1m[36m mode [39m[22m[90m│[39m[1m[36m ↺ [39m[22m[90m│[39m[1m[36m status [39m[22m[90m│[39m[1m[36m cpu [39m[22m[90m│[39m[1m[36m memory [39m[22m[90m│[39m [90m├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤[39m [90m│[39m[1m[36m [1m[36m1[39m[36m[22m[1m [39m[22m[90m│[39m findoutologist [90m│[39m [7m[1mfork[22m[27m [90m│[39m 4 [90m│[39m [31m[1mstopped[22m[39m [90m│[39m 0% [90m│[39m 0b [90m│[39m [90m│[39m[1m[36m [1m[36m0[39m[36m[22m[1m [39m[22m[90m│[39m signal-backend [90m│[39m [7m[1mfork[22m[27m [90m│[39m 1 [90m│[39m [32m[1monline[22m[39m [90m│[39m 7.7% [90m│[39m 53.1mb [90m│[39m [90m│[39m[1m[36m [1m[36m3[39m[36m[22m[1m [39m[22m[90m│[39m signalhgtech [90m│[39m [7m[1mfork[22m[27m [90m│[39m 19 [90m│[39m [32m[1monline[22m[39m [90m│[39m 0% [90m│[39m 24.3mb [90m│[39m [90m│[39m[1m[36m [1m[36m4[39m[36m[22m[1m [39m[22m[90m│[39m signaltechs-api [90m│[39m
Close