PageSourceSearch

https://cyberforget.com/static/js/612.e1a35a38.chunk.js

js cyberforget.com collected 2026-10-02 01:27:40 UTC 9,274 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkfrontend_v1=self.webpackChunkfrontend_v1||[]).push([[612],{612:(e,t,s)=>{s.r(t),s.d(t,{default:()=>g});var r=s(9950),a=s(8429),o=s(2875),n=s(8925),i=s(5357),c=s(8608),l=s(2642),p=s(105),d=s(4414);const m=(0,p.e9)(),g=()=>{const e=(0,a.Zp)(),{token:t}=(0,a.g)(),[s,p]=(0,r.useState)(!0),[g,h]=(0,r.useState)(""),[u,w]=(0,r.useState)(!1),[y,j]=(0,r.useState)({password:"",confirmPassword:""}),[x,f]=(0,r.useState)(!1),[b,C]=(0,r.useState)(!1),[S,v]=(0,r.useState)([]);(0,r.useEffect)(()=>{console.log("Setup token:",t),(async()=>{try{p(!0),h("");const e=await fetch(`${m}/api/users/validate-setup-token/${t}`,{method:"GET",headers:{"Content-Type":"application/json",Accept:"application/json",Origin:window.location.origin}}),s=await e.json();if(!e.ok)throw new Error(s.error||s.message||"Failed to validate setup token");p(!1)}catch(g){console.error("Token validation error:",g),h(g.message),p(!1)}})()},[t]);const N=e=>{const{name:t,value:s}=e.target;if(j(e=>({...e,[t]:s})),"password"===t){const e=(0,n.Oj)(s);v(e)}};return s?(0,d.jsxs)("div",{className:"setup-password-page",children:[(0,d.jsx)(l.nL,{title:"Set Up Password | CyberForget",noindex:!0}),(0,d.jsx)(c.A,{})]}):(0,d.jsx)("div",{className:"setup-password-page",children:(0,d.jsxs)("div",{className:"setup-password-container",children:[(0,d.jsx)("h1",{children:"Set Up Your Password"}),g&&(0,d.jsxs)("div",{className:"error-banner",children:[(0,d.jsx)(o.BS8,{}),g]}),u?(0,d.jsxs)("div",{className:"success-banner",children:[(0,d.jsx)(o.A7C,{}),"Password set successfully! Redirecting to login..."]}):(0,d.jsxs)("form",{onSubmit:async s=>{s.preventDefault();const r=(0,n.Oj)(y.password);if(r.length>0)h(r[0]);else if(y.password===y.confirmPassword)try{p(!0),h("");const s=await fetch(`${m}/api/users/setup-password`,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json",Origin:window.location.origin},body:JSON.stringify({setupToken:t,password:y.password,confirmPassword:y.confirmPassword})}),r=await s.json();if(!s.ok)throw new Error(r.error||r.message||"Failed to set up password");r.token&&localStorage.setItem("token",r.token),w(!0),setTimeout(()=>{e("/login",{state:{message:"Password set successfully. Please log in with your new password."}})},2e3)}catch(g){console.error("Password setup error:",g),h(g.message)}finally{p(!1)}else h("Passwords do not match")},className:"setup-password-form",children:[(0,d.jsxs)("div",{className:"form-field",children:[(0,d.jsxs)("label",{htmlFor:"password",children:[(0,d.jsx)(o.JhU,{className:"field-icon"}),"Password"]}),(0,d.jsxs)("div",{className:"password-input-container",children:[(0,d.jsx)("input",{type:x?"text":"password",id:"password",name:"password",value:y.password,onChange:N,placeholder:"Enter your password",autoComplete:"new-password"}),(0,d.jsx)("button",{type:"button",className:"toggle-password",onClick:()=>f(!x),"aria-label":x?"Hide password":"Show password",children:x?(0,d.jsx)(o.mx3,{}):(0,d.jsx)(o.Ny1,{})})]}),(0,d.jsx)(i.A,{password:y.password}),S.length>0&&(0,d.jsx)("div",{className:"password-requirements",children:S.map((e,t)=>(0,d.jsxs)("div",{className:"requirement",children:[(0,d.jsx)(o.BS8,{size:12}),e]},t))})]}),(0,d.jsxs)("div",{className:"form-field",children:[(0,d.jsxs)("label",{htmlFor:"confirmPassword",children:[(0,d.jsx)(o.JhU,{className:"field-icon"}),"Confirm Password"]}),(0,d.jsxs)("div",{className:"password-input-container",children:[(0,d.jsx)("input",{type:b?"text":"password",id:"confirmPassword",name:"confirmPassword",value:y.confirmPassword,onChange:N,placeholder:"Confirm your password",autoComplete:"new-password"}),(0,d.jsx)("button",{type:"button",className:"toggle-password",onClick:()=>C(!b),"aria-label":b?"Hide password":"Show password",children:b?(0,d.jsx)(o.mx3,{}):(0,d.jsx)(o.Ny1,{})})]})]}),(0,d.jsx)("button",{type:"submit",className:"submit-button",children:"Set Password"})]})]})})}},2642:(e,t,s)=>{s.d(t,{Wj:()=>c,l_:()=>i,mK:()=>n,nL:()=>o});s(9950);var r=s(6455),a=s(4414);const o=e=>{let{title:t,description:s,keywords:o,canonical:n,image:i="https://cyberforget.com/og-default.png",type:c="website",author:l="CyberForget Security Team",twitterHandle:p="@CyberForget",noindex:d=!1}=e;return(0,a.jsxs)(r.mg,{children:[(0,a.jsx)("title",{children:t}),(0,a.jsx)("meta",{name:"description",content:s}),o&&(0,a.jsx)("meta",{name:"keywords",content:o}),(0,a.jsx)("meta",{name:"author",content:l}),n&&(0,a.jsx)("link",{rel:"canonical",href:n}),(0,a.jsx)("meta",{name:"robots",content:d?"noindex, nofollow":"index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1"}),(0,a.jsx)("meta",{property:"og:type",content:c}),(0,a.jsx)("meta",{property:"og:site_name",content:"CyberForget"}),(0,a.jsx)("meta",{property:"og:title",content:t}),(0,a.jsx)("meta",{property:"og:description",content:s}),n&&(0,a.jsx)("meta",{property:"og:url",content:n}),(0,a.jsx)("meta",{property:"og:image",content:i}
1),(0,a.jsx)("meta",{property:"og:image:width",content:"1200"}),(0,a.jsx)("meta",{property:"og:image:height",content:"630"}),(0,a.jsx)("meta",{property:"og:locale",content:"en_US"}),(0,a.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,a.jsx)("meta",{name:"twitter:site",content:p}),(0,a.jsx)("meta",{name:"twitter:title",content:t}),(0,a.jsx)("meta",{name:"twitter:description",content:s}),(0,a.jsx)("meta",{name:"twitter:image",content:i})]})},n=e=>{let{title:t,description:s,keywords:n,canonical:i,image:c,toolName:l,toolDescription:p,rating:d="4.8",ratingCount:m="50000",price:g="0",faqItems:h=[]}=e;const u={"@context":"https://schema.org","@graph":[{"@type":"WebApplication",name:l,url:i,description:p,applicationCategory:"SecurityApplication",operatingSystem:"Web browser",offers:{"@type":"Offer",price:g,priceCurrency:"USD"},aggregateRating:{"@type":"AggregateRating",ratingValue:d,ratingCount:m},provider:{"@type":"Organization",name:"CyberForget",url:"https://cyberforget.com"}},{"@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://cyberforget.com"},{"@type":"ListItem",position:2,name:l,item:i}]}]};return h&&h.length>0&&u["@graph"].push({"@type":"FAQPage",mainEntity:h.map(e=>({"@type":"Question",name:e.question,acceptedAnswer:{"@type":"Answer",text:e.answer}}))}),(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(o,{title:t,description:s,keywords:n,canonical:i,image:c,type:"website"}),(0,a.jsx)(r.mg,{children:(0,a.jsx)("script",{type:"application/ld+json",children:JSON.stringify(u)})})]})},i=e=>{let{title:t,description:s,keywords:n,canonical:i,image:c,productName:l,price:p,currency:d="USD",availability:m="InStock",rating:g,ratingCount:h}=e;const u={"@context":"https://schema.org","@type":"Product",name:l,description:s,image:c,offers:{"@type":"Offer",price:p,priceCurrency:d,availability:`https://schema.org/${m}`,url:i,priceValidUntil:"2026-12-31"}};return g&&h&&(u.aggregateRating={"@type":"AggregateRating",ratingValue:g,ratingCount:h}),(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(o,{title:t,description:s,keywords:n,canonical:i,image:c,type:"product"}),(0,a.jsx)(r.mg,{children:(0,a.jsx)("script",{type:"application/ld+json",children:JSON.stringify(u)})})]})},c=e=>{let{title:t,description:s,keywords:n,canonical:i,image:c,author:l,datePublished:p,dateModified:d,articleBody:m}=e;const g={"@context":"https://schema.org","@type":"Article",headline:t,description:s,image:c,datePublished:p,dateModified:d||p,author:{"@type":"Person",name:l},publisher:{"@type":"Organization",name:"CyberForget",logo:{"@type":"ImageObject",url:"https://cyberforget.com/logo.png"}}};return m&&(g.articleBody=m),(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(o,{title:t,description:s,keywords:n,canonical:i,image:c,type:"article",author:l}),(0,a.jsx)(r.mg,{children:(0,a.jsx)("script",{type:"application/ld+json",children:JSON.stringify(g)})})]})}},5357:(e,t,s)=>{s.d(t,{A:()=>o});s(9950);var r=s(8925),a=s(4414);const o=e=>{let{password:t}=e;const s=(0,r.jw)(t),{label:o,color:n}=(0,r.bk)(s);return(0,a.jsxs)("div",{className:"password-strength-meter",children:[(0,a.jsx)("div",{className:"strength-bar",children:(0,a.jsx)("div",{className:"strength-fill",style:{width:`${s}%`,backgroundColor:n}})}),(0,a.jsx)("div",{className:"strength-label",style:{color:n},children:t&&`Password Strength: ${o}`})]})}},8925:(e,t,s)=>{s.d(t,{Oj:()=>a,bk:()=>n,jw:()=>o});const r={minLength:8,hasUpperCase:/[A-Z]/,hasLowerCase:/[a-z]/,hasNumber:/[0-9]/,hasSpecialChar:/[!@#$%^&*(),.?":{}|<>]/},a=e=>{const t=[],s=[];return e.length<r.minLength&&s.push("At least 8 characters"),r.hasUpperCase.test(e)||s.push("One uppercase letter"),r.hasLowerCase.test(e)||s.push("One lowercase letter"),r.hasNumber.test(e)||s.push("One number"),r.hasSpecialChar.test(e)||s.push('One special character (!@#$%^&*(),.?":{}|<>)'),s.length>0&&(t.push("Your password needs:"),t.push(...s)),t},o=e=>{if(!e)return 0;let t=0;return e.length>=8&&(t+=20),e.length>=12&&(t+=10),r.hasUpperCase.test(e)&&(t+=20),r.hasLowerCase.test(e)&&(t+=20),r.hasNumber.test(e)&&(t+=20),r.hasSpecialChar.test(e)&&(t+=20),Math.min(100,t)},n=e=>e>=100?{label:"Very Strong",color:"#00c853"}:e>=80?{label:"Strong",color:"#64dd17"}:e>=60?{label:"Good",color:"#ffd600"}:e>=40?{label:"Fair",color:"#ff9100"}:{label:"Weak",color:"#ff1744"}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.