PageSourceSearch

https://antonkrokhmal.com/agent-check/_next/static/chunks/0-kxzpvndshnl.js

js antonkrokhmal.com collected 2026-10-02 01:23:07 UTC 17,716 bytes, 1 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,6315,e=>{"use strict";let t={scan_form_placeholder:{en:"https://your-site.com",uk:"https://ваш-сайт.com"},scan_form_add_more:{en:"+ Add up to 2 more URLs (enables layout-stability check)",uk:"+ Додати ще до 2 URL (вмикає перевірку layout-stability)"},scan_form_additional:{en:"Additional URL",uk:"Додатковий URL"},scan_form_another:{en:"+ Another URL",uk:"+ Ще один URL"},scan_form_submit:{en:"Run scan",uk:"Запустити сканування"},scan_form_working:{en:"Working…",uk:"Працюю…"},scan_form_url_required:{en:"Please enter a URL.",uk:"Введіть URL."},scan_form_verify_required:{en:"Please complete the verification.",uk:"Пройдіть верифікацію."},scan_form_submission_failed:{en:"Submission failed",uk:"Не вдалося відправити"},scan_form_unknown_error:{en:"Unknown error",uk:"Невідома помилка"},scan_form_scan_failed:{en:"Scan failed.",uk:"Сканування не вдалося."},scan_form_timeout:{en:"Scan timed out. Try again.",uk:"Сканування перевищило ліміт часу. Спробуйте ще."},scan_form_phase_queued:{en:"Queued — waiting for a worker…",uk:"У черзі — чекаю на воркер…"},scan_form_phase_running:{en:"Scanning your page (Puppeteer + 6 checks)…",uk:"Сканую сторінку (Puppeteer + перевірки)…"},scan_form_phase_done:{en:"Done — redirecting…",uk:"Готово — перенаправляю…"},quick_fix_label:{en:"Quick fix:",uk:"Швидке виправлення:"},get_stack_fix:{en:"Get stack-specific fix instructions →",uk:"Отримати інструкції для вашого стеку →"},ps_heading:{en:"Want a detailed personalized report?",uk:"Потрібен детальний звіт?"},ps_intro_1:{en:"Get a comprehensive audit personalized to your detected tech stack. Pay what you want from $1 —",uk:"Повний аудит, персоналізований під ваш стек. Платіть скільки хочете від $1 —"},ps_intro_2:{en:"100% of net profit → Ukraine 🇺🇦",uk:"100% чистого прибутку → Україна 🇺🇦"},ps_intro_3:{en:" (acquiring, tax, and API costs not included).",uk:" (еквайринг, податок та API-витрати не входять)."},ps_not_sure:{en:"Not sure?",uk:"Сумніваєтесь?"},ps_see_example:{en:"See an example report →",uk:"Подивитись приклад звіту →"},ps_card_markdown_title:{en:"Markdown Audit Report",uk:"Markdown Audit-звіт"},ps_card_markdown_blurb:{en:"Polished audit document personalized to your detected stack. Share with team or client.",uk:"Готовий до публікації аудит-документ під ваш стек. Поділіться з командою або клієнтом."},ps_card_spec_title:{en:"Developer Specification",uk:"Developer Specification"},ps_card_spec_blurb:{en:"Spec ready for Cursor / Claude Code / Copilot. Per-task files, acceptance criteria, tests.",uk:"Спеч готова для Cursor / Claude Code / Copilot. Файли, критерії, тести по задачах."},ps_card_bundle_title:{en:"Bundle (both)",uk:"Bundle (обидва)"},ps_card_bundle_blurb:{en:"Get both products. Share the audit, hand the spec to your dev or AI agent.",uk:"Отримайте обидва. Аудит — команді, спеч — розробнику чи AI-агенту."},ps_card_from:{en:"From $",uk:"Від $"},ps_card_suggested:{en:"suggested $",uk:"рекомендовано $"},ps_modal_amount:{en:"You pay (USD)",uk:"Ви платите (USD)"},ps_modal_aria_amount:{en:"Amount in USD",uk:"Сума у USD"},ps_modal_split_headline:{en:"100% of net profit → Ukraine",uk:"100% чистого прибутку → Україна"},ps_modal_split_formula:{en:"We deduct acquiring fee, tax, and API costs first — what remains is net profit, and 100% of that goes to charity.",uk:"Спочатку вираховуємо еквайринг, податок та API-витрати — що залишається, це чистий прибуток, і 100% від нього йде на благодійність."}
1,ps_modal_charge_note:{en:"Charged in USD via Mono. Your bank converts to local currency at their rate.",uk:"Списується в USD через Mono. Ваш банк конвертує у місцеву валюту за своїм курсом."},ps_modal_email_label:{en:"Email (for receipt + report delivery)",uk:"Email (для квитанції + доставки звіту)"},ps_modal_email_invalid:{en:"Enter a valid email.",uk:"Введіть коректний email."},ps_modal_redirecting:{en:"Redirecting...",uk:"Перенаправляю..."},ps_modal_pay_button:{en:"Pay $",uk:"Платити $"},ps_modal_pay_button_suffix:{en:" via Mono",uk:" через Mono"},ps_modal_cancel:{en:"Cancel",uk:"Скасувати"},ps_modal_close:{en:"Close",uk:"Закрити"},ps_modal_network_error:{en:"Network error.",uk:"Помилка мережі."},ps_modal_non_json:{en:"Server returned non-JSON (HTTP ",uk:"Сервер повернув не-JSON (HTTP "},ps_modal_init_failed:{en:"Payment init failed (HTTP ",uk:"Не вдалося ініціювати платіж (HTTP "},status_checking:{en:"Checking payment status…",uk:"Перевіряю статус платежу…"},status_cannot_check:{en:"Cannot check payment status",uk:"Не вдається перевірити статус платежу"},status_awaiting:{en:"Awaiting payment confirmation",uk:"Очікую підтвердження платежу"},status_awaiting_body:{en:"We haven't received a confirmation from Mono yet. If you completed the payment, this may take a moment. If you cancelled, just ignore this — no charge made.",uk:"Підтвердження від Mono ще не отримано. Якщо ви завершили платіж — почекайте кілька секунд. Якщо скасували — ігноруйте, спишення не було."},status_payment_failed:{en:"Payment",uk:"Платіж"},status_no_charge:{en:"No charge was made. You can try again from the section above.",uk:"Кошти не списано. Можете спробувати ще раз вище."},status_refunded:{en:"Payment refunded",uk:"Платіж повернуто"},status_refunded_body:{en:"Something went wrong after the charge. We've refunded the amount automatically. Email us if you don't see it in your statement within a few business days.",uk:"Щось пішло не так після списання. Ми автоматично повернули кошти. Напишіть якщо не побачите повернення у виписці протягом кількох робочих днів."},status_generating:{en:"Payment received — generating your report",uk:"Платіж отримано — генерую ваш звіт"},status_generating_body:{en:"This usually takes 20-40 seconds. We'll also email you a copy when ready.",uk:"Зазвичай це 20-40 секунд. Копія прийде на email коли буде готово."},status_ready_one:{en:"Your report is ready",uk:"Ваш звіт готовий"},status_ready_many:{en:"Your reports are ready",uk:"Ваші звіти готові"},status_ready_body:{en:"We've emailed a copy. You can also view + download below.",uk:"Копія надіслана на email. Тут можна переглянути + завантажити."},status_chars_label:{en:"chars",uk:"симв"},status_download_md:{en:"download .md",uk:"завантажити .md"},share_label:{en:"Share this report",uk:"Поділитись звітом"},copy_url:{en:"Copy URL",uk:"Копіювати URL"},copied:{en:"Copied!",uk:"Скопійовано!"}};e.s(["t",0,function(e,n="en"){let r=t[e];return r?r[n]??r.en??e:e}])},95057,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={formatUrl:function(){return i},formatWithValidation:function(){return l},urlObjectKeys:function(){return s}};for(var a in r)Object.defineProperty(n,a,{enumerable:!0,get:r[a]});let o=e.r(90809)._(e.r(98183)),u=/https?|ftp|gopher|file/;function i(e){let{auth:t,hostname:n}=e,r=e.protocol||"",a=e.pathname||"",i=e.hash||"",s=e.query||"",l=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?l=t+e.host:n&&(l=t+(~n.indexOf(":")?`[${n}]`:n),e.port&&(l+=":"+e.port)),s&&"object"==typeof s&&(s=String(o.urlQueryToSearchParams(s)));let c=e.search||s&&`?${s}`||"";return r&&!r.endsWith(":")&&(r+=":"),e.slashes||(!r||u.test(r))&&!1!==l?(l="//"+(l||""),a&&"/"!==a[0]&&(a="/"+a)):l||(l=""),i&&"#"!==i[0]&&(i="#"+i),c&&"?"!==c[0]&&(c="?"+c),a=a.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${r}${l}${a}${c}${i}`}let s=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function l(e){return i(e)}},18581,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"useMergedRef",{enumerable:!0,get:function(){return a}});let r=e.r(71645);function a(e,t){let n=(0,r.useRef)(null),a=(0,r.useRef)(null);return(0,r.useCallback)(r=>{if(null===r){let e=n.current;e&&(n.current=null,e());let t=a.current;t&&(a.current=null,t())}else e&&(n.current=o(e,r)),t&&(a.current=o(t,r))},[e,t])}function o(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let n=e(t);return"function"==typeof n?n:()=>e(null)}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esMo
1dule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},73668,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"isLocalURL",{enumerable:!0,get:function(){return o}});let r=e.r(18967),a=e.r(52817);function o(e){if(!(0,r.isAbsoluteUrl)(e))return!0;try{let t=(0,r.getLocationOrigin)(),n=new URL(e,t);return n.origin===t&&(0,a.hasBasePath)(n.pathname)}catch(e){return!1}}},84508,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"errorOnce",{enumerable:!0,get:function(){return r}});let r=e=>{}},22016,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={default:function(){return y},useLinkStatus:function(){return g}};for(var a in r)Object.defineProperty(n,a,{enumerable:!0,get:r[a]});let o=e.r(90809),u=e.r(43476),i=o._(e.r(71645)),s=e.r(95057),l=e.r(8372),c=e.r(18581),d=e.r(18967),f=e.r(5550);e.r(33525);let _=e.r(88540),p=e.r(91949),m=e.r(73668),h=e.r(9396);function y(t){var n,r;let a,o,y,[g,b]=(0,i.useOptimistic)(p.IDLE_LINK_STATUS),v=(0,i.useRef)(null),{href:w,as:S,children:x,prefetch:P=null,passHref:j,replace:C,shallow:T,scroll:R,onClick:U,onMouseEnter:O,onTouchStart:L,legacyBehavior:A=!1,onNavigate:E,transitionTypes:M,ref:N,unstable_dynamicOnHover:$,...D}=t;a=x,A&&("string"==typeof a||"number"==typeof a)&&(a=(0,u.jsx)("a",{children:a}));let I=i.default.useContext(l.AppRouterContext),q=!1!==P,B=!1!==P?null===(r=P)||"auto"===r?h.FetchStrategy.PPR:h.FetchStrategy.Full:h.FetchStrategy.PPR,K="string"==typeof(n=S||w)?n:(0,s.formatUrl)(n);if(A){if(a?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});o=i.default.Children.only(a)}let W=A?o&&"object"==typeof o&&o.ref:N,F=i.default.useCallback(e=>(null!==I&&(v.current=(0,p.mountLinkInstance)(e,K,I,B,q,b)),()=>{v.current&&((0,p.unmountLinkForCurrentNavigation)(v.current),v.current=null),(0,p.unmountPrefetchableInstance)(e)}),[q,K,I,B,b]),Y={ref:(0,c.useMergedRef)(F,W),onClick(t){A||"function"!=typeof U||U(t),A&&o.props&&"function"==typeof o.props.onClick&&o.props.onClick(t),!I||t.defaultPrevented||function(t,n,r,a,o,u,s){if("u">typeof window){let l,{nodeName:c}=t.currentTarget;if("A"===c.toUpperCase()&&((l=t.currentTarget.getAttribute("target"))&&"_self"!==l||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,m.isLocalURL)(n)){a&&(t.preventDefault(),location.replace(n));return}if(t.preventDefault(),u){let e=!1;if(u({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:d}=e.r(99781);i.default.startTransition(()=>{d(n,a?"replace":"push",!1===o?_.ScrollBehavior.NoScroll:_.ScrollBehavior.Default,r.current,s)})}}(t,K,v,C,R,E,M)},onMouseEnter(e){A||"function"!=typeof O||O(e),A&&o.props&&"function"==typeof o.props.onMouseEnter&&o.props.onMouseEnter(e),I&&q&&(0,p.onNavigationIntent)(e.currentTarget,!0===$)},onTouchStart:function(e){A||"function"!=typeof L||L(e),A&&o.props&&"function"==typeof o.props.onTouchStart&&o.props.onTouchStart(e),I&&q&&(0,p.onNavigationIntent)(e.currentTarget,!0===$)}};return(0,d.isAbsoluteUrl)(K)?Y.href=K:A&&!j&&("a"!==o.type||"href"in o.props)||(Y.href=(0,f.addBasePath)(K)),y=A?i.default.cloneElement(o,Y):(0,u.jsx)("a",{...D,...Y,children:a}),(0,u.jsx)(k.Provider,{value:g,children:y})}e.r(84508);let k=(0,i.createContext)(p.IDLE_LINK_STATUS),g=()=>(0,i.useContext)(k);("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},18566,(e,t,n)=>{t.exports=e.r(76562)},66861,e=>{"use strict";var t=e.i(43476),n=e.i(71645),r=e.i(18566);function a({siteKey:e,onToken:r}){let o=(0,n.useRef)(null),u=(0,n.useRef)(null);return((0,n.useEffect)(()=>
1{if(!e)return;let t=!1,n=()=>{if(!t){if(window.turnstile&&o.current){u.current=window.turnstile.render(o.current,{sitekey:e,callback:e=>r(e),"error-callback":()=>r(""),"expired-callback":()=>r("")});return}setTimeout(n,200)}};if(document.getElementById("cf-turnstile-script"))n();else{let e=document.createElement("script");e.id="cf-turnstile-script",e.src="https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit",e.async=!0,e.defer=!0,e.onload=n,document.head.appendChild(e)}return()=>{if(t=!0,u.current&&window.turnstile)try{window.turnstile.remove(u.current)}catch{}}},[e,r]),e)?(0,t.jsx)("div",{ref:o}):(0,t.jsx)("div",{className:"text-xs text-muted italic",children:"Turnstile site key not configured — scans bypass verification in dev mode."})}var o=e.i(6315);e.s(["default",0,function({turnstileSiteKey:e,lang:u="en"}){let i=(0,r.useRouter)(),[s,l]=(0,n.useState)(""),[c,d]=(0,n.useState)([]),[f,_]=(0,n.useState)(!1),[p,m]=(0,n.useState)(""),[h,y]=(0,n.useState)(!1),[k,g]=(0,n.useState)(null),[b,v]=(0,n.useState)("idle"),w=(0,n.useCallback)(e=>m(e),[]),S="uk"===u?"/uk/r":"/r",x=async t=>{if(t.preventDefault(),g(null),!s.trim())return void g((0,o.t)("scan_form_url_required",u));if(e&&!p)return void g((0,o.t)("scan_form_verify_required",u));y(!0),v("queued");try{let e=[s.trim(),...c.map(e=>e.trim()).filter(Boolean)].slice(0,3),t=await fetch("/agent-check/api/scan",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({urls:e,turnstileToken:p})});if(!t.ok){let e=await t.json().catch(()=>({error:(0,o.t)("scan_form_submission_failed",u)}));throw Error(e.error??(0,o.t)("scan_form_submission_failed",u))}let{jobId:n}=await t.json();window.dataLayer?.push({event:"agent_check_scan_submitted",url_count:e.length}),await P(n)}catch(e){g(e instanceof Error?e.message:(0,o.t)("scan_form_unknown_error",u)),y(!1),v("failed")}},P=async e=>{let t=Date.now()+9e4;for(;Date.now()<t;){await new Promise(e=>setTimeout(e,2e3));let t=await fetch(`/agent-check/api/scan/${e}/status`);if(!t.ok)continue;let n=await t.json();if(v(n.status),"done"===n.status&&n.slug){window.dataLayer?.push({event:"agent_check_scan_completed",slug:n.slug}),i.push(`${S}/${n.slug}`);return}if("failed"===n.status){g(n.error??(0,o.t)("scan_form_scan_failed",u)),y(!1);return}}g((0,o.t)("scan_form_timeout",u)),y(!1),v("failed")},j={idle:"",queued:(0,o.t)("scan_form_phase_queued",u),running:(0,o.t)("scan_form_phase_running",u),done:(0,o.t)("scan_form_phase_done",u),failed:""}[b];return(0,t.jsxs)("form",{onSubmit:x,className:"space-y-4",children:[(0,t.jsx)("input",{type:"url",required:!0,placeholder:(0,o.t)("scan_form_placeholder",u),value:s,onChange:e=>l(e.target.value),disabled:h,className:"input-text"}),f?(0,t.jsxs)("div",{className:"space-y-2",children:[c.map((e,n)=>(0,t.jsx)("input",{type:"url",placeholder:`${(0,o.t)("scan_form_additional",u)} ${n+1}`,value:e,onChange:e=>{let t=[...c];t[n]=e.target.value,d(t)},disabled:h,className:"input-text"},n)),c.length<2&&(0,t.jsx)("button",{type:"button",onClick:()=>d([...c,""]),className:"text-xs text-accent hover:underline",disabled:h,children:(0,o.t)("scan_form_another",u)})]}):(0,t.jsx)("button",{type:"button",onClick:()=>{_(!0),d([""])},className:"text-sm text-accent hover:underline",disabled:h,children:(0,o.t)("scan_form_add_more",u)}),(0,t.jsx)(a,{siteKey:e,onToken:w}),(0,t.jsx)("button",{type:"submit",disabled:h,className:"btn-primary w-full",children:h?j||(0,o.t)("scan_form_working",u):(0,o.t)("scan_form_submit",u)}),k&&(0,t.jsx)("div",{className:"text-sm text-poor",children:k}),h&&j&&(0,t.jsx)("div",{className:"text-sm text-muted",children:j})]})}],66861)}]);

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.