PageSourceSearch

https://cdn.selectel.ru/site_v3/_nuxt_v3/1pqIgUh3.js

js selectel.ru collected 2026-09-24 15:19:32 UTC 6,049 bytes, 1 lines download raw bytes

1import{d as T,e as P,f as $,g as R,V as k,a1 as x,T as N,c as I,h as O,j as u,o as j,G as q,b as V}from"./BVuyBFAy.js";import{_ as B,A as E}from"./COfgP330.js";import{u as F}from"./CxDXTNrM.js";const H={key:0,class:"form-captcha"},L="https://api.selectel.ru/captcha/v1/",U=T({__name:"FormCaptcha",props:{lang:{default:"ru"}},emits:["solve","error","reset"],setup(w,{emit:g}){const s=`${L}assets/widget.js`,f=`${L}assets/cap_wasm.js`,d=g,C=w,o=P(null),_=P(!1),p=$(()=>C.lang==="ru"?{verifying:"Проверяем...",initial:"Я человек",solved:"Проверка пройдена",error:"Ошибка"}:{verifying:"Verifying...",initial:"I'm a human",solved:"I'm a human",error:"Error"}),t=()=>{const e=window;return e.__selectelCaptchaWidgetPromise||(e.CAP_CUSTOM_WASM_URL=f,e.__selectelCaptchaWidgetPromise=new Promise((a,r)=>{const b=document.querySelector(`script[src="${s}"]`);if(b){if(customElements.get("cap-widget")){a();return}b.addEventListener("load",()=>a(),{once:!0}),b.addEventListener("error",()=>r(new Error("Captcha widget loading failed")),{once:!0});return}
1const m=document.createElement("script");m.src=s,m.async=!0,m.defer=!0,m.addEventListener("load",()=>a(),{once:!0}),m.addEventListener("error",()=>r(new Error("Captcha widget loading failed")),{once:!0}),document.head.appendChild(m)})),e.__selectelCaptchaWidgetPromise},n=e=>{var r;const a=(r=e.detail)==null?void 0:r.token;a&&d("solve",a)},i=e=>{var r;const a=(r=e.detail)==null?void 0:r.message;d("error",a||"Captcha error")},c=()=>{d("reset")},h=()=>{var e,a,r;(e=o.value)==null||e.addEventListener("solve",n),(a=o.value)==null||a.addEventListener("error",i),(r=o.value)==null||r.addEventListener("reset",c)},l=()=>{var e,a,r;(e=o.value)==null||e.removeEventListener("solve",n),(a=o.value)==null||a.removeEventListener("error",i),(r=o.value)==null||r.removeEventListener("reset",c)};return R(async()=>{try{await t(),_.value=!0,await k(),h()}catch(e){const a=window;a.__selectelCaptchaWidgetPromise=void 0,d("error",e instanceof Error?e.message:"Captcha widget loading failed")}}),x(()=>{const e=window;l(),e.__selectelCaptchaWidgetPromise=void 0}),(e,a)=>{const r=N("cap-widget");return u(_)?(j(),I("div",H,[q(r,{ref_key:"widget",ref:o,"data-cap-api-endpoint":"https://api.selectel.ru/captcha/v1/","data-cap-i18n-verifying-label":u(p).verifying,"data-cap-i18n-initial-state":u(p).initial,"data-cap-i18n-solved-label":u(p).solved,"data-cap-i18n-error-label":u(p).error,"data-cap-hidden-field-name":"captcha_response"},null,8,["data-cap-i18n-verifying-label","data-cap-i18n-initial-state","data-cap-i18n-solved-label","data-cap-i18n-error-label"])])):O("",!0)}}}),z=B(U,[["__scopeId","data-v-e013b9a3"]]),v=12,M=/[а-яА-ЯЁё]/g,S=/^(?=.*[A-Z])(?=.*[a-z]).*$/,W=/[|!"#$%&'()*+,\-./:;<=>?@[\\\]^_{|}~)]/,y=/.*\d.*/,A=["№"," "],Z=(w="en")=>{const g={email:"",password:"",agreeNewsletter:!1},s=V(g),f={email:[{required:!0,transform:t=>t.trim(),message:"Email must be filled in"},{type:"email",message:"Enter a valid email"}],password:[{required:!0,message:"Password must be filled in"},{validator:()=>!M.test(s.password),message:"Password must not contain cyrillic"},{validator:()=>!A.some(t=>s.password.includes(t)),message:"Password can not contain № or a space"},{max:255,message:"Password must not be longer than 255 characters long"},{validator:()=>y.test(s.password),message:"Password must contain numbers"},{validator:()=>y.test(s.password),message:"Password must contain numbers"},{validator:()=>S.test(s.password),message:"Password must contain letters in both cases"},{validator:()=>W.test(s.password),message:`Password must contain special symbols: <span class='break-all'>!"#$%&'()*+,-./:;<=>?@[\\]^_{|}~</span>`},{min:v,message:`Password must be at least ${v} characters long`}]},d={email:[{required:!0,transform:t=>t.trim(),message:"Введите email"},{type:"email",message:"Введите корректный email"}],password:[{required:!0,message:"Введите пароль"},{validator:()=>!M.test(s.password),message:"Кириллические символы в пароле не допускаются"},{validator:()=>!A.some(t=>s.password.includes(t)),message:"Пароль не может содержать символ № или пробел"},{max:255,message:"Пароль должен содержать менее 255 символов"},{validator:()=>y.test(s.password),message:"Пароль должен содержать цифры"},{validator:()=>S.test(s.password),message:"Пароль должен содержать буквы обоих регистров"},{validator:()=>W.test(s.password),message:`Пароль должен содержать спецсимволы: <span class='break-all'>!"#$%&'()*+,-./:;<=>?@[\\]^_{|}~</span>`},{min:v,message:`Пароль должен содержать более ${v} символов`}]},o=F(s,w==="ru"?d:f,{manual:!0});return{form:s,submitRegister:async(t={})=>{if(!o.pass.value)return new Error("Форма невалидна");const n={email:s.email,password:s.password};t.captchaResponse&&(n.captcha_response=t.captchaResponse);const i=await $fetch(`${E}/v2/register`,{method:"POST",body:JSON.stringify(n),headers:{"Content-Type":"application/json"},credentials:"include"});if(s.agreeNewsletter)try{await $fetch(`${E}/proxy/public/marketing/subscription`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:s.email,topics_list:["sales","blog","new_feature","digest","events","hr"]})})}catch(c){console.error(c)}return i},clearForm:()=>Object.assign(s,g),validation:o,generatePassword:()=>{const t="abcdefghijklmnopqrstuvwxyz",n="ABCDEFGHIJKLMNOPQRSTUVWXYZ",i="0123456789",c="!@#$%^&*()_+-=[]{}|;:,.<>?",h=t+n+i+c;let l="";l+=t[Math.floor(Math.random()*t.length)],l+=n[Math.floor(Math.random()*n.length)],l+=i[Math.floor(Math.random()*i.length)],l+=c[Math.floor(Math.random()*c.length)];for(let e=4;e<12;e++)l+=h[Math.floor(Math.random()*h.length)];return l.split("").sort(()=>Math.random()-.5).join("")}}};export{z as _,Z as u};

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.