1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[98450],{2102:(e,t,r)=>{"use strict";r.d(t,{CI:()=>m,Hh:()=>d,Jv:()=>u,ep:()=>f,wV:()=>l,yK:()=>s});var n=r(35473),i=r(34979);function o({minIntervalMs:e}){let t=new Map,r=0;return async(n,i)=>{let o,a;if(!e||!function(e,t){if("GET"!==((t?.method??(e instanceof Request?e.method:"GET"))?.toUpperCase?.()??"GET"))return!1;let r="string"==typeof e?e:e instanceof URL?e.toString():e.url;return new URL(r,window.location.origin).pathname.endsWith("/get-session")}(n,i))return fetch(n,i);let c=(o="string"==typeof n?n:n instanceof URL?n.toString():n.url,a=new URL(o,window.location.origin),`GET ${a.origin}${a.pathname}`),s=t.get(c);if(s)return s;let l=Date.now(),u=Math.max(0,r+e-l),d=(async()=>(u>0&&await new Promise(e=>setTimeout(e,u)),r=Date.now(),fetch(n,i)))().finally(()=>{t.delete(c)});return t.set(c,d),d}}r(95081);let a=Number(r(55036).env.NEXT_PUBLIC_AUTH_GET_SESSION_MIN_INTERVAL_MS)||2e3,c=window.location.origin,s=(0,i.MB)({baseURL:c,fetchOptions:{retry:0,customFetchImpl:o({minIntervalMs:a})}}),{useSession:l,signIn:u,signUp:d,signOut:m}=s;function f(e){var t;let r;return(0,i.MB)({baseURL:c,plugins:(r=[],(t=e).google_client_id&&"true"===t.google_one_tap_enabled&&r.push((0,n.ll)({clientId:t.google_client_id,autoSelect:!1,cancelOnTapOutside:!1,context:"signin",additionalOptions:{},promptOptions:{baseDelay:1e3,maxAttempts:1}})),r),fetchOptions:{retry:0,customFetchImpl:o({minIntervalMs:a})}})}},7138:(e,t,r)=>{"use strict";r.d(t,{AppContextProvider:()=>d,U:()=>u});var n=r(62219),i=r(30363),o=r(2102),a=r(28981),c=r(37425),s=r(95081);let l=(0,i.createContext)({}),u=()=>(0,i.useContext)(l),d=({children:e})=>{let[t,r]=(0,i.useState)({}),[u,d]=(0,i.useState)(null),m=(0,i.useRef)(null),[f,p]=(0,i.useState)(!!s.b.auth_secret),[h,g]=(0,i.useState)(!1),[_,w]=(0,i.useState)(""),[b,v]=(0,i.useState)(!1),y=(0,i.useCallback)(async()=>{try{let e=globalThis.__cfgMemo,t=e&&Date.now()-e.at<6e4?e.p:null,n=t??fetch("/api/config/get-configs",{method:"POST"});t||(globalThis.__cfgMemo={at:Date.now(),p:n});let i=(await n).clone();if(!i.ok)throw Error(`fetch failed with status: ${i.status}`);let{code:o,message:a,data:c}=await i.json();if(0!==o)throw Error(a);r(c)}catch(e){}},[]),k=(0,i.useCallback)(async()=>{try{if(!m.current)return;let e=await fetch("/api/user/get-user-credits",{method:"POST"});if(!e.ok)throw Error(`fetch failed with status: ${e.status}`);let{code:t,message:r,data:n}=await e.json();if(0!==t)throw Error(r);d(e=>e?{...e,credits:n}:e)}catch(e){}},[]),E=(0,i.useCallback)(async()=>{try{let e=globalThis.__userInfoInflight,t=e??fetch("/api/user/get-user-info",{method:"POST"});e||(globalThis.__userInfoInflight=t,t.finally(()=>{globalThis.__userInfoInflight===t&&(globalThis.__userInfoInflight=void 0)}));let r=(await t).clone();if(!r.ok)throw Error(`fetch failed with status: ${r.status}`);let{code:n,message:i,data:o}=await r.json();if(0!==n)throw Error(i);d(o)}catch(e){}},[]),T=(0,i.useCallback)(async e=>{try{await new Promise(e=>{let t=()=>setTimeout(e,2500);"function"==typeof window.requestIdleCallback?window.requestIdleCallback(t,{timeout:4e3}):t()});let t=(0,o.ep)(e),r=window.location.pathname+window.location.search,n=/^\/(?:[a-z]{2}(?:-[A-Za-z]{2})?)?\/?$/.test(window.location.pathname)?c.J:(0,c.E)(r,c.J);await t.oneTap({callbackURL:n,onPromptNotification:e=>{}})}catch(e){}},[]);(0,i.useEffect)(()=>{m.current=u},[u]),(0,i.useEffect)(()=>{let e=0,t=()=>{if(!m.current||"visible"!==document.visibilityState)return;let t=Date.now();t-e<1e4||(e=t,(0,a.OX)())},r=(0,a.k0)(()=>{k()});return window.addEventListener("focus",t),document.addEventListener("visibilitychange",t),()=>{r(),window.removeEventListener("focus",t),document.removeEventListener("visibilitychange",t)}},[k]);let S=(0,i.useMemo)(()=>({user:u,setUser:d,isCheckSign:f,setIsCheckSign:p,isShowSignModal:h,setIsShowSignModal:g,signInCallbackUrl:_,setSignInCallbackUrl:w,isShowPaymentModal:b,setIsShowPaymentModal:v,configs:t,fetchConfigs:y,fetchUserCredits:k,fetchUserInfo:E,showOneTap:T}),[u,f,h,_,b,t,y,k,E,T]);return(0,n.jsx)(l.Provider,{value:S,children:e})}},17816:(e,t,r)=>{"use strict";r.d(t,{SignupTracker:()=>c});var n=r(30363),i=r(2102),o=r(72798);let a="st_signup_reported";function c(){let{data:e}=(0,i.wV)(),t=(0,n.useRef)(!1);return(0,n.useEffect)(()=>
1{if(t.current)return;let r=e?.user;if(!r?.id||!r?.createdAt)return;let n=new Date(r.createdAt).getTime();if(Number.isFinite(n)){if(Date.now()-n>18e5){t.current=!0;return}try{let e=window.localStorage.getItem(a),n=e?JSON.parse(e):[];if(n.includes(r.id)){t.current=!0;return}(0,o.Rc)((0,o.n2)()),t.current=!0,n.push(r.id),window.localStorage.setItem(a,JSON.stringify(n.slice(-20)))}catch{(0,o.Rc)((0,o.n2)()),t.current=!0}}},[e]),null}},18297:()=>{},28981:(e,t,r)=>{"use strict";r.d(t,{OX:()=>i,k0:()=>o});let n="credits-updated";function i(){window.dispatchEvent(new Event(n))}function o(e){return window.addEventListener(n,e),()=>window.removeEventListener(n,e)}},37425:(e,t,r)=>{"use strict";r.d(t,{E:()=>i,J:()=>n});let n="/dashboard/create";function i(e,t="/"){if(!e)return t;let r=String(e).trim();if(!/^\/(?![\/\\])/.test(r)||/[\x00-\x1f\x7f]/.test(r))return t;try{let e=new URL(r,"http://internal.invalid");if("http://internal.invalid"!==e.origin)return t;let n=e.pathname+e.search+e.hash;if(/^\/[\/\\]/.test(n))return t;return n}catch{return t}}},38873:(e,t,r)=>{"use strict";r.d(t,{q:()=>f,Vd:()=>l,jZ:()=>c,GB:()=>h,sq:()=>d,L$:()=>i,b:()=>p,IB:()=>o,ze:()=>m});var n=r(95081);let i={en:"English",ja:"æ¥æ¬èª",ru:"Ð ÑÑÑкий",es:"Espa\xf1ol",pt:"Portugu\xeas",th:"ภาษาà¹à¸à¸¢",it:"Italiano",tr:"T\xfcrk\xe7e",de:"Deutsch",nl:"Nederlands",fr:"Fran\xe7ais",pl:"Polski",ko:"íêµì´",ar:"Ø§ÙØ¹Ø±Ø¨ÙØ©",nb:"Norsk bokm\xe5l",da:"Dansk",id:"Bahasa Indonesia","zh-TW":"ç¹é«ä¸æ",zh:"ç®ä½ä¸æ"},o=Object.keys(i),a=new Set(["en","pt","it","de","fr","zh-TW"]);function c(e){return a.has(e)}let s=["/dashboard","/admin","/settings","/activity","/sign-in","/sign-up","/sign-out","/verify-email","/no-permission","/auth-callback","/auth-popup","/chat","/coloring/library"];function l(e){let t=e||"/";return s.some(e=>t===e||t.startsWith(`${e}/`))}let u=["ar"],d=e=>u.includes(e)?"rtl":"ltr";function m(e){if(!e)return"";let t=e.toLowerCase().replace("_","-");if(/^zh-(tw|hk|mo|hant)/.test(t)||"zh-hant"===t)return"zh-TW";if(/^zh(-(cn|sg|my|hans))?$/.test(t))return"zh";if(/^n[bno]/.test(t))return"nb";let r=t.split("-")[0];return o.includes(t)?t:o.includes(r)?r:""}let f=n.b.locale,p="as-needed",h=!1},51057:(e,t,r)=>{"use strict";r.d(t,{ThemeProvider:()=>l});var n=r(62219),i=r(78253),o=r(30363),a=r(90214),c=r(69096),s=r(95081);function l(e){let t,r,l,u=(0,i.c)(5),{children:d}=e,m=(0,a.Ym)();return u[0]!==m?(t=()=>{"undefined"!=typeof document&&m&&(document.documentElement.lang=m)},r=[m],u[0]=m,u[1]=t,u[2]=r):(t=u[1],r=u[2]),(0,o.useEffect)(t,r),u[3]!==d?(l=(0,n.jsx)(c.N,{attribute:"class",defaultTheme:s.b.appearance,enableSystem:!0,disableTransitionOnChange:!0,children:d}),u[3]=d,u[4]=l):l=u[4],l}},55754:(e,t,r)=>{"use strict";function n(e){if("undefined"==typeof document)return"";let t=`; ${document.cookie}`.split(`; ${e}=`);return 2===t.length&&t.pop()?.split(";").shift()||""}function i(e,t,r){if("undefined"==typeof document)return;let n="";if(r){let e=new Date;e.setTime(e.getTime()+24*r*36e5),n=`; expires=${e.toUTCString()}`}document.cookie=`${e}=${t}${n}; path=/`}r.d(t,{Ri:()=>n,TV:()=>i}),r(38873)},61789:(e,t,r)=>{"use strict";r.d(t,{PurchaseTracker:()=>a});var n=r(30363),i=r(28981),o=r(72798);function a(){return(0,n.useEffect)(()=>{try{let e=new URLSearchParams(window.location.search),t=e.get("purchase");if(!t)return;(0,i.OX)();let r=parseFloat(e.get("pv")||"0")||0,n=(e.get("pc")||"USD").toUpperCase(),a=e.get("pn")||void 0,c=(0,o.$K)(e.get("bc")),s=window;s.dataLayer=s.dataLayer||[],s.dataLayer.push({ecommerce:null}),s.dataLayer.push({event:"purchase",billing_cycle:c,ecommerce:{transaction_id:t,value:r,currency:n,items:a?[{item_name:a,price:r,quantity:1}]:[]}});let l=new URL(window.location.href);["purchase","pv","pc","pn","bc"].forEach(e=>l.searchParams.delete(e)),window.history.replaceState({},"",l.pathname+l.search+l.hash)}catch{}},[]),null}},65714:(e,t,r)=>{"use strict";r.d(t,{UtmCapture:()=>w});var n=r(30363);function i(e,t){return t.endsWith(".")?e.startsWith(t)||e.includes("."+t):e===t||e.endsWith("."+t)}let o=[["chatgpt.com","chatgpt"],["chat.openai.com","chatgpt"],["perplexity.","perplexity"],["claude.ai","claude"],["gemini.google.","gemini"],["bard.google.","gemini"],["copilot.microsoft.","copilot"],["copilot.com","copilot"],["meta.ai","meta-ai"],["grok.com","grok"],["deepseek.","deepseek"],["kimi.","kimi"],["poe.com","poe"]],a=[["gclid","google","cpc"],["wbraid","google","cpc"],["gbraid","google","cpc"],["msclkid","bing","cpc"],["fbclid","facebook","paid-social"],["ttclid","tiktok","paid-social"],["twclid","twitter","paid-social"],["li_fat_id","linkedin","paid-social"]],c={"chatgpt.com":"chatgpt","chat.openai.com":"chatgpt",openai:"chatgpt","openai.com":"chatgpt","perplexity.ai":"perplexity","claude.ai":"claude","gemini.google.com":"gemini","copilot.microsoft.com":"copilot","copilot.com":"copilot","google.com":"google","bing.com":"bing","facebook.com":"facebook","deepseek.com":"deepseek"},s=new Set(["chatgpt","perplexity","claude","gemini","copilot","meta-ai","grok","deepseek","kimi","poe"]);function l(e){for(let[t,r,n]of a)if(e.get(t))return{source:r,medium:n};return null}let u=[["google.","google"],["bing.","bing"],["yahoo.","yahoo"],["duckduckgo.","duckduckgo"],["baidu.","baidu"],["yandex.","yandex"],["ecosia.","ecosia"],["naver.","naver"],["ask.com","ask"],["brave.com","brave"]],d=[["facebook.","facebook"],["fb.com","facebook"],["lm.facebook","facebook"],["
1instagram.","instagram"],["t.co","twitter"],["twitter.","twitter"],["x.com","x"],["reddit.","reddit"],["pinterest.","pinterest"],["linkedin.","linkedin"],["lnkd.in","linkedin"],["youtube.","youtube"],["youtu.be","youtube"],["tiktok.","tiktok"],["t.me","telegram"],["wa.me","whatsapp"],["weibo.","weibo"],["quora.","quora"],["medium.com","medium"]];function m(e){if(!e)return"";let t=e;try{t=decodeURIComponent(t)}catch{}return t.trim().toLowerCase().replace(/[^\w\-.:@/ ]/g,"").slice(0,100)}function f(e){if(!e)return"";try{return new URL(e).hostname.toLowerCase().replace(/^www\./,"")}catch{return""}}function p(e,t){let r=f(e);if(!r)return{source:"(direct)",medium:"(none)",referrer:"",isSelf:!1};let n=(t||"").toLowerCase().replace(/^www\./,"");if(n&&(r===n||r.endsWith("."+n)||n.endsWith("."+r)))return{source:"(direct)",medium:"(none)",referrer:r,isSelf:!0};for(let[e,t]of o)if(i(r,e))return{source:t,medium:"ai-assistant",referrer:r,isSelf:!1};for(let[e,t]of u)if(i(r,e))return{source:t,medium:"organic",referrer:r,isSelf:!1};for(let[e,t]of d)if(i(r,e))return{source:t,medium:"social",referrer:r,isSelf:!1};return{source:r,medium:"referral",referrer:r,isSelf:!1}}u.map(([,e])=>e),d.map(([,e])=>e);var h=r(55754);let g="acq_first",_="utm_source";function w(){return(0,n.useEffect)(()=>{try{let e=window.location.search,t=window.location.host,r=document.referrer,n=new URLSearchParams(e),i=!!n.get("utm_source")||!!l(n),o=p(r,t);if(!i&&o.isSelf)return;let a=function(e,t,r){let n=new URLSearchParams(e||""),i=l(n),o=n.get("utm_source");if(o){var a;let e=c[a=m(o)]||a,r=m(n.get("utm_medium"));return r||(r=i?i.medium:s.has(e)?"ai-assistant":"(none)"),{source:e,medium:r,campaign:m(n.get("utm_campaign")),referrer:f(t)}}if(i)return{source:i.source,medium:i.medium,campaign:"",referrer:f(t)};let u=p(t,r);return{source:u.source,medium:u.medium,campaign:"",referrer:u.referrer}}(e,r,t),u={...a,path:String(window.location.pathname||"").slice(0,120)},d=encodeURIComponent(JSON.stringify(u));(0,h.TV)("acq_last",d,30),(0,h.Ri)(g)||(0,h.TV)(g,d,180),!(0,h.Ri)(_)&&a.source&&"(direct)"!==a.source&&(0,h.TV)(_,encodeURIComponent(a.source),180)}catch{}},[]),null}},72798:(e,t,r)=>{"use strict";function n(e){let t=window;t.dataLayer=t.dataLayer||[],t.dataLayer.push(e)}function i(e){switch((e||"").toLowerCase()){case"year":case"yearly":return"yearly";case"month":case"monthly":return"monthly";case"week":case"weekly":return"weekly";case"day":case"daily":return"daily";case"one-time":case"onetime":return"one_time";default:return}}r.d(t,{$K:()=>i,J_:()=>a,Rc:()=>s,n2:()=>c,u4:()=>u,uP:()=>l});let o="st_signup_method";function a(e){try{window.localStorage.setItem(o,e)}catch{}}function c(){try{let e=window.localStorage.getItem(o)||void 0;return e&&window.localStorage.removeItem(o),e}catch{return}}function s(e){n({event:"sign_up",method:e||void 0})}function l(e){let t=(e.amountCents||0)/100,r=(e.currency||"USD").toUpperCase();n({ecommerce:null}),n({event:"begin_checkout",billing_cycle:i(e.interval),ecommerce:{currency:r,value:t,items:[{item_id:e.productId,item_name:e.productName||e.productId,price:t,quantity:1}]}})}function u(e,t,r){n({event:"locale_suggest",ls_action:e,from_locale:t,to_locale:r})}},82181:(e,t,r)=>{"use strict";r.d(t,{Toaster:()=>s});var n=r(62219),i=r(78253),o=r(69096),a=r(83391),c=r(30363);let s=e=>{let t,r,s,l,u,d=(0,i.c)(8);d[0]!==e?({...t}=e,d[0]=e,d[1]=t):t=d[1];let{theme:m}=(0,o.D)(),[f,p]=(0,c.useState)(!1);if(d[2]===Symbol.for("react.memo_cache_sentinel")?(r=()=>{p(!0)},s=[],d[2]=r,d[3]=s):(r=d[2],s=d[3]),(0,c.useEffect)(r,s),!f)return null;let h=void 0===m?"system":m;return d[4]===Symbol.for("react.memo_cache_sentinel")?(l={"--normal-bg":"var(--popover)","--normal-text":"var(--popover-foreground)","--normal-border":"var(--border)"},d[4]=l):l=d[4],d[5]!==t||d[6]!==h?(u=(0,n.jsx)(a.l$,{theme:h,className:"toaster group",style:l,...t}),d[5]=t,d[6]=h,d[7]=u):u=d[7],u}},83935:(e,t,r)=>{Promise.resolve().then(r.bind(r,87129)),Promise.resolve().then(r.bind(r,84780)),Promise.resolve().then(r.t.bind(r,39632,23)),Promise.resolve().then(r.t.bind(r,7425,23)),Promise.resolve().then(r.t.bind(r,33362,23)),Promise.resolve().then(r.t.bind(r,18297,23)),Promise.resolve().then(r.t.bind(r,52882,23)),Promise.resolve().then(r.t.bind(r,68368,23)),Promise.resolve().then(r.t.bind(r,5
15968,23)),Promise.resolve().then(r.t.bind(r,42725,23)),Promise.resolve().then(r.t.bind(r,89830,23)),Promise.resolve().then(r.t.bind(r,91706,23)),Promise.resolve().then(r.bind(r,51057)),Promise.resolve().then(r.bind(r,61789)),Promise.resolve().then(r.bind(r,17816)),Promise.resolve().then(r.bind(r,65714)),Promise.resolve().then(r.bind(r,82181)),Promise.resolve().then(r.bind(r,7138))},95081:(e,t,r)=>{"use strict";r.d(t,{b:()=>i});var n=r(55036);let i={app_url:"https://colorart.ai",app_name:"OpenColor",app_description:n.env.NEXT_PUBLIC_APP_DESCRIPTION??"",app_logo:"https://pub-2b2f81c2c6af46bcbd8f8ab1e96a6c81.r2.dev/brand/logo.png",app_favicon:n.env.NEXT_PUBLIC_APP_FAVICON??"/favicon.ico",app_preview_image:n.env.NEXT_PUBLIC_APP_PREVIEW_IMAGE??"/preview.png",site_id:n.env.SITE_ID??"colorart",theme:n.env.NEXT_PUBLIC_THEME??"default",appearance:n.env.NEXT_PUBLIC_APPEARANCE??"system",locale:n.env.NEXT_PUBLIC_DEFAULT_LOCALE??"en",database_url:n.env.DATABASE_URL??"",database_auth_token:n.env.DATABASE_AUTH_TOKEN??"",database_provider:n.env.DATABASE_PROVIDER??"postgresql",db_schema_file:n.env.DB_SCHEMA_FILE??"./src/config/db/schema.ts",db_schema:n.env.DB_SCHEMA??"public",db_migrations_table:n.env.DB_MIGRATIONS_TABLE??"__drizzle_migrations",db_migrations_schema:n.env.DB_MIGRATIONS_SCHEMA??"drizzle",db_migrations_out:n.env.DB_MIGRATIONS_OUT??"./src/config/db/migrations",db_singleton_enabled:n.env.DB_SINGLETON_ENABLED||"false",db_max_connections:n.env.DB_MAX_CONNECTIONS||"1",auth_url:n.env.AUTH_URL||"https://colorart.ai",auth_secret:n.env.AUTH_SECRET??"",version:"1.8.3"}}},e=>{e.O(0,[43602,40244,94832,34247,90214,83391,39537,78148,97384,44193,95050,77358],()=>e(e.s=83935)),_N_E=e.O()}]);
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.