PageSourceSearch

https://wan3.ai/_next/static/chunks/46872-4f2cf355e09dbfd1.js?dpl=dpl_A2GUzrWxwmjuHp1orA2A3Pnt1YXC

js wan3.ai collected 2026-10-05 13:56:33 UTC 16,772 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[46872],{46:(e,t,n)=>{n.d(t,{GI:()=>c,HG:()=>l,d_:()=>a,l8:()=>u,xT:()=>s});var r=n(6401);let i="wan3_marketing_consent_v1",a="wan3:marketing-consent";function o(e){return"granted"===e?"granted":"denied"}function s(e){let t="accept"===e?"granted":"denied";return{adStorage:t,analyticsStorage:t,adUserData:t,adPersonalization:t,policyVersion:r.YW}}function c(e=window.localStorage){try{let t=e.getItem(i);if(!t)return null;let n=JSON.parse(t);if(1!==n.schemaVersion||"string"!=typeof n.receiptKey)return null;let a=new Date(String(n.clientOccurredAt));if(!Number.isFinite(a.getTime()))return null;return{receiptKey:n.receiptKey,clientOccurredAt:a.toISOString(),consent:(0,r.Kv)(n.consent),schemaVersion:1}}catch{return null}}function u(e,t=window.localStorage){t.setItem(i,JSON.stringify(e))}function l(e){"function"==typeof window.gtag&&window.gtag("consent","update",{ad_storage:o(e.adStorage),analytics_storage:o(e.analyticsStorage),ad_user_data:o(e.adUserData),ad_personalization:o(e.adPersonalization)})}},1063:(e,t,n)=>{n.r(t),n.d(t,{SignupTracker:()=>p});var r=n(3767),i=n(19127),a=n(46),o=n(70834),s=n(6401);let c="wan3_signup_fact_pending_v1",u="wan3_signup_fact_reported_v1:";function l(e){if(!e||"object"!=typeof e||Array.isArray(e)||Object.keys(e).some(e=>"userId"!==e&&"method"!==e)||!["email","google","github","google_one_tap"].includes(String(e.method)))return null;try{return{userId:(0,s.KJ)(e.userId),method:e.method}}catch{return null}}function d(e){e.removeItem(c)}async function f(){let e=await fetch("/api/analytics/signup-fact",{method:"POST",credentials:"same-origin",headers:{"content-type":"application/json"}});return 204!==e.status&&e.ok?e.json():null}function p(){let{user:e}=(0,i.U)(),t=(0,r.useRef)(!1);return(0,r.useEffect)(()=>{let n=async()=>{if(!t.current&&e?.id&&(0,a.GI)()?.consent.analyticsStorage==="granted"&&!function(e,t){try{return"1"===t.getItem(`${u}${(0,s.KJ)(e)}`)}catch{return!1}}(e.id,window.localStorage)){t.current=!0;try{var n,r;let t=function(e){try{let t=e.getItem(c);return t?l(JSON.parse(t)):null}catch{return null}}(window.sessionStorage);if(!t&&(t=l(await f()))&&(n=t,window.sessionStorage.setItem(c,JSON.stringify(n))),!t||t.userId!==e.id){t&&d(window.sessionStorage);return}(0,o.CP)(t.method)&&(r=e.id,window.localStorage.setItem(`${u}${(0,s.KJ)(r)}`,"1"),d(window.sessionStorage))}finally{t.current=!1}}};n();let r=()=>void n();return window.addEventListener(a.d_,r),()=>window.removeEventListener(a.d_,r)},[e?.id]),null}},19432:(e,t,n)=>{n.r(t),n.d(t,{MarketingAttributionLink:()=>s});var r=n(27551),i=n(9965),a=n(88106),o=n(6401);function s({href:e,...t}){let n=(0,i.useSearchParams)(),c="string"==typeof e?(0,o.ic)(e,new URLSearchParams(n?.toString()??"")):e;return(0,r.jsx)(a.Link,{href:c,...t})}},19829:(e,t,n)=>{n.r(t),n.d(t,{MarketingConsent:()=>w});var r=n(27551),i=n(3767),a=n(23e3),o=n.n(a),s=n(15006),c=n(11858),u=n(76359),l=n(46),d=n(6401);function f(e){"u">typeof document&&(document.cookie=`${e}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`)}let p=["utm_source","utm_medium","utm_campaign","utm_content","utm_term"];function g(){for(let e of p)f(e);f("gclid");try{window.localStorage.removeItem("gclid")}catch{}}async function m(e,t){try{let n=await fetch(e,{method:"POST",credentials:"same-origin",headers:{"content-type":"application/json"},body:JSON.stringify(t)});if(!n.ok)return null;return await n.json()}catch{return null}}async function y(e){let t;"granted"!==e.consent.adStorage&&g();let n=await m("/api/attribution/consent",(0,d.oG)({receiptKey:e.receiptKey,consent:e.consent,clientOccurredAt:e.clientOccurredAt}));if(!n)return!1;if(!n.persisted||((0,l.HG)(e.consent),("granted"===e.consent.adStorage||"granted"===e.consent.analyticsStorage)&&window.__wan3LoadGoogleTag?.(),"granted"===e.consent.analyticsStorage&&window.__wan3LoadPlausible?.(),"granted"!==e.consent.adStorage))return!0;try{t=(0,d.Kk)({captureKey:crypto.randomUUID(),consentReceiptId:n.receiptId,consent:e.consent,location:window.location,referrer:document.referrer})}catch{return!0}return t&&await m("/api/attribution/touch",t),!0}function w({enabled:e}){let[t,n]=(0,i.useState)(null),[a,d]=(0,i.useState)(null),[f,p]=(0,i.useState)(!1),[m,h]=(0,i.useState)(!1);(0,i.useEffect)(()=>
1{if(!e)return void n(null);let t=(0,l.GI)();if(t){p(!0),y(t).then(e=>{if(p(!1),!e){d(t),h(!0),n(!0);return}n(!1),window.dispatchEvent(new CustomEvent(l.d_,{detail:t.consent}))});return}n(!0)},[e]);let _=(0,i.useCallback)(async e=>{p(!0),h(!1);let t=await y(e);if(p(!1),!t){d(e),h(!0),n(!0);return}d(null),n(!1),window.dispatchEvent(new CustomEvent(l.d_,{detail:e.consent}))},[]),I=(0,i.useCallback)(e=>{let t={receiptKey:crypto.randomUUID(),clientOccurredAt:new Date().toISOString(),consent:(0,l.xT)(e),schemaVersion:1};"reject"===e&&g();try{(0,l.l8)(t)}catch{}d(t),_(t)},[_]);return e&&!0===t?(0,r.jsx)("aside",{"aria-label":"Cookie preferences",className:"fixed inset-x-4 bottom-4 z-[100] mx-auto max-w-3xl rounded-2xl border border-white/15 bg-zinc-950/95 p-5 text-white shadow-2xl backdrop-blur-xl",children:(0,r.jsxs)("div",{className:"flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",children:[(0,r.jsxs)("div",{className:"max-w-xl text-sm leading-6 text-zinc-300",children:[(0,r.jsx)("p",{className:"font-medium text-white",children:(0,r.jsx)(s.x6,{id:"gLvz8M"})}),(0,r.jsxs)("p",{children:[(0,r.jsx)(s.x6,{id:"jnHRoW"})," ",(0,r.jsx)(o(),{href:c.CQ.legal.privacyUrl,className:"text-white underline underline-offset-4",children:(0,r.jsx)(s.x6,{id:"ScJ9fj"})})]}),m?(0,r.jsx)("span",{className:"mt-2 block text-amber-300",children:(0,r.jsx)(s.x6,{id:"WdWl50"})}):null]}),(0,r.jsxs)("div",{className:"flex shrink-0 gap-2",children:[(0,r.jsx)(u.$,{type:"button",variant:"outline",className:"border-white/20 bg-transparent text-white hover:bg-white/10 hover:text-white",disabled:f,onClick:()=>I("reject"),children:(0,r.jsx)(s.x6,{id:"1pc2BB"})}),(0,r.jsx)(u.$,{type:"button",disabled:f,onClick:()=>a?void _(a):I("accept"),children:f?(0,r.jsx)(s.x6,{id:"K/F6pa"}):m?(0,r.jsx)(s.x6,{id:"6gRgw8"}):(0,r.jsx)(s.x6,{id:"g3UF2V"})})]})]})}):null}},65161:(e,t,n)=>{n.r(t),n.d(t,{PaymentTracking:()=>O,hasReportedPlausiblePurchase:()=>N,parseVerifiedPurchaseAnalyticsReport:()=>I,parseVerifiedPurchaseReport:()=>h,readVerifiedBrowserAttemptId:()=>_,requestVerifiedPurchaseAnalytics:()=>b,requestVerifiedPurchaseAuthorization:()=>v,waitForGoogleTagUntil:()=>S});var r=n(3767),i=n(46),a=n(6401),o=n(70834);let s=/^AW-[A-Z0-9-]{4,32}\/[A-Za-z0-9_-]{1,128}$/,c=/^[A-Z]{3}$/,u=/^(?:0|[1-9]\d{0,9})(?:\.\d{1,3})?$/,l=["payment_success","order_no","amount","currency","email"],d=[0,300,750],f=[0,150,400],p="wan3_plausible_purchase_pending_v1",g="wan3_google_ads_purchase_pending_v1",m="wan3_plausible_purchase_reported_v1:",y=e=>new Promise(t=>{setTimeout(t,e)});async function w(e,t,n,r){let i=new AbortController,a=setTimeout(()=>i.abort(),r);try{return await e(t,{...n,signal:i.signal})}finally{clearTimeout(a)}}function h(e,t=new Date){let n,r;if(!e||"object"!=typeof e||Array.isArray(e)||"string"!=typeof e.transactionId||e.transactionId.length>64||"string"!=typeof e.value||!u.test(e.value)||0>=Number(e.value)||"string"!=typeof e.currency||!c.test(e.currency)||"string"!=typeof e.sendTo||!s.test(e.sendTo)||"string"!=typeof e.configVersion||0===e.configVersion.length||e.configVersion.length>128||"string"!=typeof e.authorizationExpiresAt||"string"!=typeof e.paidAt)return null;try{n=(0,a.KJ)(e.browserAttemptId)}catch{return null}let i=new Date(e.authorizationExpiresAt),o=new Date(e.paidAt);if(!Number.isFinite(i.getTime())||!Number.isFinite(o.getTime())||i.getTime()<=t.getTime()||i.getTime()-t.getTime()>6e4)return null;if(void 0!==e.items){if(!Array.isArray(e.items)||e.items.length>50)return null;for(let t of(r=[],e.items)){let e=t&&"object"==typeof t&&!Array.isArray(t)?t:null;if(!e||"string"!=typeof e.itemId||""===e.itemId||e.itemId.length>128||!Number.isInteger(e.quantity)||0>=Number(e.quantity))return null;r.push({itemId:e.itemId,quantity:Number(e.quantity)})}}return{browserAttemptId:n,transactionId:e.transactionId,value:e.value,currency:e.currency,sendTo:e.sendTo,configVersion:e.configVersion,authorizationExpiresAt:i.toISOString(),paidAt:o.toISOString(),...r?{items:r}:{}}}function _(e){if(!e||"object"!=typeof e||Array.isArray(e))return null;try{return(0,a.KJ)(e.browserAttemptId)}catch{return null}}function I(e){if(!e||"object"!=typeof e||Array.isArray(e)||Object.keys(e).some(e=>"transactionId"!==e&&"value"!==e&&"currency"!==e&&"paidAt"!==e&&"itemId"!==e)||"string"!=typeof e.value||!u.test(e.value)||0>=Number(e.value)||"string"!=typeof e.currency||!c.test(e.currency)||"string"!=typeof e.paidAt||!Number.isFinite(Date.parse(e.paidAt))||void 0!==e.itemId&&("string"!=typeof e.itemId||0===e.itemId.length||e.itemId.length>128))return null;try{return{transactionId:(0,a.KJ)(e.transactionId),value:e.value,currency:e.currency,paidAt:new Date(e.paidAt).toISOString(),...e.itemId?{itemId:e.itemId}:{}}}catch{return null}}async function b(e){let t=e.fetcher??fetch;
1try{let n=await w(t,"/api/payment/authorize-purchase-analytics",{method:"POST",credentials:"same-origin",headers:{"content-type":"application/json"},body:JSON.stringify({ref:(0,a.KJ)(e.reference)})},5e3);if(204===n.status||401===n.status||404===n.status)return{kind:"terminal"};if(!n.ok)return{kind:"retryable"};let r=I(await n.json());return r?{kind:"verified",report:r}:{kind:"retryable"}}catch{return{kind:"retryable"}}}async function v(e){let t=e.fetcher??fetch,n=e.sleep??y,r=e.now??(()=>new Date),i=e.timeoutMs??5e3;for(let a=0;a<d.length;a+=1){let o,s=d[a];s>0&&await n(s);try{o=await w(t,"/api/payment/authorize-purchase-report",{method:"POST",credentials:"same-origin",headers:{"content-type":"application/json"},body:JSON.stringify({ref:e.reference,clientAttemptId:e.clientAttemptId})},i)}catch{if(a+1<d.length)continue;break}if(204===o.status)return{kind:"terminal"};if(409===o.status){let e;try{e=(await o.json()).error}catch{e=null}if("attempt_retryable"===e)return{kind:"rotate_client_attempt"};if("attempt_in_progress"===e&&a+1<d.length)continue;break}if(!o.ok){if((429===o.status||503===o.status||o.status>=500)&&a+1<d.length)continue;return{kind:"terminal"}}let c=null;try{c=await o.json()}catch{if(a+1<d.length)continue;break}let u=h(c,r());if(u)return{kind:"authorized",report:u};let l=_(c);if(!l){if(a+1<d.length)continue;break}let f=function(e,t){if(!e||"object"!=typeof e||Array.isArray(e))return!1;let n=e.authorizationExpiresAt;if("string"!=typeof n)return!1;let r=Date.parse(n);return Number.isFinite(r)&&r<=t.getTime()}(c,r());return{kind:"terminalize_and_rotate",browserAttemptId:l,status:f?"expired":"suppressed_runtime",reason:f?"authorization_expired":"invalid_verified_dto"}}return{kind:"retry_exhausted"}}async function S(e){let t=Date.parse(e.authorizationExpiresAt),n=e.now??Date.now,r=e.sleep??y;if(!Number.isFinite(t))return!1;for(let i=0;i<600&&!e.isCancelled?.();i+=1){if(e.isReady())return n()<t;let i=t-n();if(i<=0)break;await r(Math.min(100,i))}return!1}async function x(e,t,n,r){let i=r?.fetcher??fetch,a=r?.sleep??y;for(let o=0;o<f.length;o+=1){let s=f[o];s>0&&await a(s);try{let a=await w(i,"/api/payment/ack-purchase-report",{method:"POST",credentials:"same-origin",keepalive:!0,headers:{"content-type":"application/json"},body:JSON.stringify({browserAttemptId:e,status:t,...n?{reason:n}:{}})},r?.timeoutMs??5e3);if(a.ok)return!0;if(429!==a.status&&503!==a.status&&a.status<500)break}catch{}}return!1}function A(e){let t=new URLSearchParams(e.searchParams);for(let e of(t.delete("purchase_ref"),l))t.delete(e);let n=t.toString(),r=`${e.pathname}${n?`?${n}`:""}${e.hash}`;window.history.replaceState({},"",r)}function k(e){try{let t=window.sessionStorage.getItem(e);return t?(0,a.KJ)(t):null}catch{return null}}function j(e,t){try{window.sessionStorage.setItem(e,(0,a.KJ)(t))}catch{}}function T(e){try{window.sessionStorage.removeItem(e)}catch{}}function N(e,t){try{return"1"===t.getItem(`${m}${(0,a.KJ)(e)}`)}catch{return!1}}function z(e){let t=`wan3_purchase_report:${e}`,n=crypto.randomUUID();try{window.sessionStorage.setItem(t,n)}catch{}return n}function O(){let e=(0,r.useRef)(!1);return(0,r.useEffect)(()=>{if(e.current)return;e.current=!0;let t=!1,n=new URL(window.location.href),r=n.searchParams.get("purchase_ref"),s=null;if(r){try{s=(0,a.KJ)(r),j(p,s),j(g,s)}catch{T(p),T(g),A(n);return}A(n)}else l.some(e=>n.searchParams.has(e))&&A(n);let c=s??k(p),u=s??k(g);if(!c&&!u)return;let d=!1,f=async()=>{if(!t&&!d&&c&&(0,i.GI)()?.consent.analyticsStorage==="granted"){d=!0;try{let n=await b({reference:c});if(t||"retryable"===n.kind)return;if("terminal"===n.kind)return void T(p);let r=n.report;if(N(r.transactionId,window.localStorage))return void T(p);if((0,o.TW)({transactionId:r.transactionId,value:Number(r.value),currency:r.currency,...r.itemId?{itemId:r.itemId}:{}})){var e=r.transactionId;try{window.localStorage.setItem(`${m}${(0,a.KJ)(e)}`,"1")}catch{}T(p)}}finally{d=!1}}},y=()=>{T(g)},w=async()=>{if(!u)return;let e=function(e){let t=`wan3_purchase_report:${e}`;try{let e=window.sessionStorage.getItem(t);if(e)return(0,a.KJ)(e);let n=crypto.randomUUID();return window.sessionStorage.setItem(t,n),n}catch{return crypto.randomUUID()}}(u);for(let n=0;n<=2;n+=1){if(t)return;let n=(0,i.GI)();if(!n||"granted"!==n.consent.adStorage)return void y();let r=await v({reference:u,clientAttemptId:e});if(t)return;if("terminal"===r.kind)return void y();if("retry_exhausted"===r.kind)return;if("rotate_client_attempt"===r.kind){e=z(u);continue}if("terminalize_and_rotate"===r.kind){if(!await x(r.browserAttemptId,r.status,r.reason)&&"expired"!==r.status)return;e=z(u);continue}let a=r.report,o=await S({authorizationExpiresAt:a.authorizationExpiresAt,isReady:()=>"function"==typeof window.__wan3LoadGoogleTag&&"function"==typeof window.gtag,isCancelled:()=>t});if(t)return;if(!o){await x(a.browserAttemptId,"expired","authorization_expired"),e=z(u);continue}let s=(0,i.GI)();if(!s){await x(a.browserAttemptId,"suppressed_consent","local_consent_missing"),y();return}if("granted"!==s.consent.adStorage){await x(a.browserAttemptId,"suppressed_consent","local_ad_storage_denied"),y();return}if(Date.parse(a.authorizationExpiresAt)<=Date.now()){await x(a.browserAttemptId,"expired","authorization_expired"),e=z(u);continue}(0,i.HG)(s.consent);
1try{window.__wan3LoadGoogleTag();let e=Number(a.value);window.gtag("event","conversion",{send_to:a.sendTo,transaction_id:a.transactionId,value:e,currency:a.currency})}catch{if(await x(a.browserAttemptId,"suppressed_runtime","gtag_unavailable")){e=z(u);continue}return}await x(a.browserAttemptId,"invoked")&&y();return}};f(),w();let h=()=>void f();return window.addEventListener(i.d_,h),()=>{t=!0,e.current=!1,window.removeEventListener(i.d_,h)}},[]),null}},70834:(e,t,n)=>{n.d(t,{CP:()=>d,TW:()=>p,X3:()=>f,bV:()=>s});var r=n(46);let i=/^G-[A-Z0-9]{4,32}$/,a=/^[A-Z]{3}$/;function o(e){return"number"==typeof e&&Number.isFinite(e)&&e>0}function s(e){if(!e||"object"!=typeof e||Array.isArray(e)||"string"!=typeof e.currency||!a.test(e.currency)||!o(e.value)||!Array.isArray(e.items)||1!==e.items.length)return null;let t=e.items[0];return!t||"object"!=typeof t||Array.isArray(t)||"string"!=typeof t.item_id||0===t.item_id.length||t.item_id.length>128||"string"!=typeof t.item_name||0===t.item_name.length||t.item_name.length>128||!o(t.price)||1!==t.quantity?null:{currency:e.currency,value:e.value,items:[{item_id:t.item_id,item_name:t.item_name,price:t.price,quantity:1}]}}function c(e,t,n=window){let a=n?(0,r.GI)(n.localStorage):null,o=n?.__wan3GoogleAnalyticsId;return a?.consent.analyticsStorage==="granted"&&!!n?.__wan3GoogleTagActivated&&"function"==typeof n.gtag&&"string"==typeof o&&!!i.test(o)&&(n.gtag("event",e,{...t,send_to:o}),!0)}function u(e){return!!e&&(0,r.GI)(e.localStorage)?.consent.analyticsStorage==="granted"}function l(e,t,n=window){if(!u(n)||"function"!=typeof n?.plausible)return!1;try{return n.plausible(e,t),!0}catch{return!1}}function d(e,t=window){let n=l("Sign Up",{props:{method:e}},t);return n&&c("sign_up",{method:e},t),n}function f(e,t=window){let n=l("Begin Checkout",{props:{product_id:e.items[0].item_id,currency:e.currency}},t);return n&&c("begin_checkout",e,t),n}function p(e,t=window){if(!l("Purchase",{props:{transaction_id:e.transactionId,...e.itemId?{product_id:e.itemId}:{}},revenue:{currency:e.currency,amount:e.value}},t))return!1;let n=t?.__wan3GoogleAnalyticsId;return t?.__wan3GoogleTagActivated&&"function"==typeof t.gtag&&"string"==typeof n&&i.test(n)&&u(t)&&t.gtag("event","purchase",{transaction_id:e.transactionId,value:e.value,currency:e.currency,...e.itemId?{items:[{item_id:e.itemId,quantity:1}]}:{},send_to:n}),!0}}}]);

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.