PageSourceSearch

https://perfectum.ai/_next/static/chunks/4626-17f3f1c84e87ded3.js

js perfectum.ai collected 2026-10-05 15:19:17 UTC 22,500 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4626],{7081:(e,a,n)=>{n.d(a,{H3:()=>s,H_:()=>c,Ru:()=>l,VN:()=>m,_U:()=>i,hE:()=>d});var o=n(82849),t=n(41759),r=n(41463);let c="lms-user-theme-mode",i="public-theme-mode",l="public_theme_mode";function d(e){if(e.themeMode&&["light","dark","system"].includes(e.themeMode)&&(sessionStorage.setItem(c,e.themeMode),window.dispatchEvent(new CustomEvent("theme-mode-change",{detail:{mode:e.themeMode}}))),e.locale&&o.A.set(t.gB,e.locale,{expires:365,sameSite:"lax",path:"/"}),e.locale||e.currency||e.language||e.country){let a=function(){try{let e=sessionStorage.getItem(t.Ep);if(!e)return{};let a=JSON.parse(e);return a&&"object"==typeof a?a:{}}catch{return{}}}(),n={locale:e.locale??a.locale,currency:e.currency??a.currency,language:e.language??a.language,country:e.country??a.country};sessionStorage.setItem(t.Ep,JSON.stringify(n))}}function m(){sessionStorage.removeItem(c),sessionStorage.removeItem(t.Ep),o.A.remove(t.gB,{path:"/"})}function s(e){let a={expires:365,sameSite:"lax",path:"/"},n=function(){let e=(r.env.NEXT_PUBLIC_PUBLIC_THEME_COOKIE_DOMAIN||"").trim();if(e)return e.startsWith(".")?e:`.${e}`;let a=window.location.hostname;if("localhost"===a||a.endsWith(".localhost"))return".localhost";if(/^\d{1,3}(\.\d{1,3}){3}$/.test(a))return;let n=a.split(".").filter(Boolean);if(n.length>=2)return`.${n.slice(-2).join(".")}`}();if(n){o.A.remove(l,{path:"/"}),o.A.set(l,e,{...a,domain:n});return}o.A.set(l,e,a)}},34626:(e,a,n)=>{n.r(a),n.d(a,{ErrorCodes:()=>h,default:()=>g,setBackendUnavailableCallback:()=>u});var o=n(59185),t=n(99538),r=n(72977),c=n(41759);function i(e){let a;if(e?.includes("/ai/")&&("localhost"===(a=window.location.hostname)||"127.0.0.1"===a||a.endsWith(".localhost")))return"https://perfectum.ai/api".replace(/\/$/,"");let{protocol:n,host:o}=window.location;return`${n}//${o}/api`}let l=i(),d=o.A.create({baseURL:l,timeout:3e4,headers:{"Content-Type":"application/json"}}),m=!1,s=null;function u(e){s=e}let h={INVALID_TENANT:"TENANT_001",TENANT_NOT_FOUND:"TENANT_002",TENANT_INACTIVE:"TENANT_003",TENANT_SUSPENDED:"TENANT_004",TENANT_SETUP_INCOMPLETE:"TENANT_005",SERVICE_UNAVAILABLE:"SYS_001",DATABASE_ERROR:"SYS_002",INTERNAL_ERROR:"SYS_003",SESSION_EXPIRED:"AUTH_007"};d.interceptors.request.use(e=>{{e.baseURL=i(e.url),e.url&&e.url.includes("/ai/")&&(e.timeout=e.url.includes("/generate/all-modules")?18e4:12e4),e.url&&(e.url.includes("/platform-admin/tenants")||e.url.includes("/tenant/signup"))&&e.method?.toLowerCase()==="post"&&(e.timeout=12e4);let a=(0,t.R6)();e.headers["X-Tenant-Id"]=a;let n=(0,r.Pt)();n&&(e.headers.Authorization=`Bearer ${n}`);let o=(0,c.kk)();if(e.headers["X-Locale"]=o,e.headers["X-Currency"]=(0,c.Us)(o),e.headers["X-Country"]=(0,c.TN)(o),e.url&&e.url.startsWith("/api/")&&e.baseURL?.endsWith("/api")&&(e.url=e.url.replace(/^\/api/,"")),"u">typeof FormData&&e.data instanceof FormData){let a=e.headers;a&&"function"==typeof a.delete?a.delete("Content-Type"):a&&"object"==typeof a&&delete a["Content-Type"]}e.url&&(e.url.includes("/tenant/signup")||e.url.includes("/admin/users/")||e.url.includes("/users/"))&&console.log("[API Client] Request:",{method:e.method?.toUpperCase(),url:e.url,baseURL:e.baseURL,fullURL:(e.baseURL||"")+(e.url||""),headers:{"X-Tenant-Id":e.headers["X-Tenant-Id"],Authorization:e.headers.Authorization?"Bearer ***":"none"},data:e.data?e.url.includes("/signup")?{...e.data,password:"***",paymentMethodId:e.data.paymentMethodId?"***":void 0}:e.data:void 0})}return e},e=>(console.error("[API Client] Request interceptor error:",e),Promise.reject(e))),d.interceptors.response.use(e=>((0,r.iv)(),e.config.url?.includes("/tenant/signup")&&console.log("[API Client] Signup response:",{status:e.status,statusText:e.statusText,data:e.data,headers:e.headers}),e),async e=>{if(e.statusCode=e.response?.status,e.response?.data){let{data:a}=e.response;a.errorCode&&(e.errorCode=a.errorCode),a.errors&&"object"==typeof a.errors?(e.errors=a.errors,e.message=Object.values(a.errors).join(", ")||e.message):a.message?e.message=a.message:a.error&&(e.message=a.error)}let a=e.errorCode;if((a===h.SERVICE_UNAVAILABLE||a===h.DATABASE_ERROR||e.response?.status===503)&&s&&s(),e.response?.status===401){let n=e.config?.url||"",o=n.includes("/auth/login")||n.includes("/auth/register"),t=n.includes("/public/")||n.includes("/payments/setup-intent"),c=n.includes("/payments/verify-session");if(!o&&!t&&!c&&!m&&(a===h.SESSION_EXPIRED||e.message?.toLowerCase().includes("token")||e.message?.toLowerCase().includes("expired")||e.message?.toLowerCase().includes("unauthorized")||!e.response?.data?.message)){console.warn("Session expired, redirecting to login..."),m=!0,(0,r.m_)();let e=window.location.pathname+window.location.search;"/login"!==e&&"/"!==e&&sessionStorage.setItem("redirectAfterLogin",e),window.location.href="/login"}}return!e.response&&s&&s(),Promise.reject(e)});let g=d},41759:(e,a,n)=>{n.d(a,{$N:()=>E,C5:()=>m,Ed:()=>p,Ep:()=>N,JP:()=>f,KM:()=>U,M3:()=>A,Mk:()=>d,TN:()=>P,Us:()=>T,XG:()=>C,cd:()=>i,gB:()=>S,kk:()=>y,o0:()=>s,pV:()=>g,q:()=>r,sY:()=>M,wA:()=>w});var o=n(82849);let t=["en-US","en-CA","en-IN","es-MX","en-GB","en-AU","de-DE"],r="en-US",c=["US","CA","IN","MX","GB","AU","DE","FR","IT","ES","NL","BE","CH","AT","IE","NZ","SG","HK","JP","EU"],i=[{co
1de:"US",name:"United States"},{code:"CA",name:"Canada"},{code:"GB",name:"United Kingdom"},{code:"AU",name:"Australia"},{code:"NZ",name:"New Zealand"},{code:"IE",name:"Ireland"},{code:"DE",name:"Germany"},{code:"FR",name:"France"},{code:"IT",name:"Italy"},{code:"ES",name:"Spain"},{code:"NL",name:"Netherlands"},{code:"BE",name:"Belgium"},{code:"CH",name:"Switzerland"},{code:"AT",name:"Austria"},{code:"IN",name:"India"},{code:"SG",name:"Singapore"},{code:"HK",name:"Hong Kong"},{code:"JP",name:"Japan"},{code:"MX",name:"Mexico"}],l={US:[{code:"AL",name:"Alabama"},{code:"AK",name:"Alaska"},{code:"AZ",name:"Arizona"},{code:"AR",name:"Arkansas"},{code:"CA",name:"California"},{code:"CO",name:"Colorado"},{code:"CT",name:"Connecticut"},{code:"DE",name:"Delaware"},{code:"FL",name:"Florida"},{code:"GA",name:"Georgia"},{code:"HI",name:"Hawaii"},{code:"ID",name:"Idaho"},{code:"IL",name:"Illinois"},{code:"IN",name:"Indiana"},{code:"IA",name:"Iowa"},{code:"KS",name:"Kansas"},{code:"KY",name:"Kentucky"},{code:"LA",name:"Louisiana"},{code:"ME",name:"Maine"},{code:"MD",name:"Maryland"},{code:"MA",name:"Massachusetts"},{code:"MI",name:"Michigan"},{code:"MN",name:"Minnesota"},{code:"MS",name:"Mississippi"},{code:"MO",name:"Missouri"},{code:"MT",name:"Montana"},{code:"NE",name:"Nebraska"},{code:"NV",name:"Nevada"},{code:"NH",name:"New Hampshire"},{code:"NJ",name:"New Jersey"},{code:"NM",name:"New Mexico"},{code:"NY",name:"New York"},{code:"NC",name:"North Carolina"},{code:"ND",name:"North Dakota"},{code:"OH",name:"Ohio"},{code:"OK",name:"Oklahoma"},{code:"OR",name:"Oregon"},{code:"PA",name:"Pennsylvania"},{code:"RI",name:"Rhode Island"},{code:"SC",name:"South Carolina"},{code:"SD",name:"South Dakota"},{code:"TN",name:"Tennessee"},{code:"TX",name:"Texas"},{code:"UT",name:"Utah"},{code:"VT",name:"Vermont"},{code:"VA",name:"Virginia"},{code:"WA",name:"Washington"},{code:"WV",name:"West Virginia"},{code:"WI",name:"Wisconsin"},{code:"WY",name:"Wyoming"},{code:"DC",name:"District of Columbia"}],CA:[{code:"AB",name:"Alberta"},{code:"BC",name:"British Columbia"},{code:"MB",name:"Manitoba"},{code:"NB",name:"New Brunswick"},{code:"NL",name:"Newfoundland and Labrador"},{code:"NS",name:"Nova Scotia"},{code:"NT",name:"Northwest Territories"},{code:"NU",name:"Nunavut"},{code:"ON",name:"Ontario"},{code:"PE",name:"Prince Edward Island"},{code:"QC",name:"Quebec"},{code:"SK",name:"Saskatchewan"},{code:"YT",name:"Yukon"}],IN:[{code:"AN",name:"Andaman and Nicobar Islands"},{code:"AP",name:"Andhra Pradesh"},{code:"AR",name:"Arunachal Pradesh"},{code:"AS",name:"Assam"},{code:"BR",name:"Bihar"},{code:"CH",name:"Chandigarh"},{code:"CT",name:"Chhattisgarh"},{code:"DN",name:"Dadra and Nagar Haveli and Daman and Diu"},{code:"DL",name:"Delhi"},{code:"GA",name:"Goa"},{code:"GJ",name:"Gujarat"},{code:"HR",name:"Haryana"},{code:"HP",name:"Himachal Pradesh"},{code:"JK",name:"Jammu and Kashmir"},{code:"JH",name:"Jharkhand"},{code:"KA",name:"Karnataka"},{code:"KL",name:"Kerala"},{code:"LA",name:"Ladakh"},{code:"LD",name:"Lakshadweep"},{code:"MP",name:"Madhya Pradesh"},{code:"MH",name:"Maharashtra"},{code:"MN",name:"Manipur"},{code:"ML",name:"Meghalaya"},{code:"MZ",name:"Mizoram"},{code:"NL",name:"Nagaland"},{code:"OR",name:"Odisha"},{code:"PY",name:"Puducherry"},{code:"PB",name:"Punjab"},{code:"RJ",name:"Rajasthan"},{code:"SK",name:"Sikkim"},{code:"TN",name:"Tamil Nadu"},{code:"TG",name:"Telangana"},{code:"TR",name:"Tripura"},{code:"UP",name:"Uttar Pradesh"},{code:"UK",name:"Uttarakhand"},{code:"WB",name:"West Bengal"}],AU:[{code:"ACT",name:"Australian Capital Territory"},{code:"NSW",name:"New South Wales"},{code:"NT",name:"Northern Territory"},{code:"QLD",name:"Queensland"},{code:"SA",name:"South Australia"},{code:"TAS",name:"Tasmania"},{code:"VIC",name:"Victoria"},{code:"WA",name:"Western Australia"}],GB:[{code:"ENG",name:"England"},{code:"NIR",name:"Northern Ireland"},{code:"SCT",name:"Scotland"},{code:"WLS",name:"Wales"}],MX:[{code:"AGU",name:"Aguascalientes"},{code:"BCN",name:"Baja California"},{code:"BCS",name:"Baja California Sur"},{code:"CAM",name:"Campeche"},{code:"CHP",name:"Chiapas"},{code:"CHH",name:"Chihuahua"},{code:"CMX",name:"Ciudad de M\xe9xico"},{code:"COA",name:"Coahuila"},{code:"COL",name:"Colima"},{code:"DUR",name:"Durango"},{code:"GUA",name:"Guanajuato"},{code:"GRO",name:"Guerrero"},{code:"HID",name:"Hidalgo"},{code:"JAL",name:"Jalisco"}
1,{code:"MEX",name:"M\xe9xico"},{code:"MIC",name:"Michoac\xe1n"},{code:"MOR",name:"Morelos"},{code:"NAY",name:"Nayarit"},{code:"NLE",name:"Nuevo Le\xf3n"},{code:"OAX",name:"Oaxaca"},{code:"PUE",name:"Puebla"},{code:"QUE",name:"Quer\xe9taro"},{code:"ROO",name:"Quintana Roo"},{code:"SLP",name:"San Luis Potos\xed"},{code:"SIN",name:"Sinaloa"},{code:"SON",name:"Sonora"},{code:"TAB",name:"Tabasco"},{code:"TAM",name:"Tamaulipas"},{code:"TLA",name:"Tlaxcala"},{code:"VER",name:"Veracruz"},{code:"YUC",name:"Yucat\xe1n"},{code:"ZAC",name:"Zacatecas"}],DE:[{code:"BW",name:"Baden-W\xfcrttemberg"},{code:"BY",name:"Bavaria"},{code:"BE",name:"Berlin"},{code:"BB",name:"Brandenburg"},{code:"HB",name:"Bremen"},{code:"HH",name:"Hamburg"},{code:"HE",name:"Hesse"},{code:"NI",name:"Lower Saxony"},{code:"MV",name:"Mecklenburg-Vorpommern"},{code:"NW",name:"North Rhine-Westphalia"},{code:"RP",name:"Rhineland-Palatinate"},{code:"SL",name:"Saarland"},{code:"SN",name:"Saxony"},{code:"ST",name:"Saxony-Anhalt"},{code:"SH",name:"Schleswig-Holstein"},{code:"TH",name:"Thuringia"}],FR:[{code:"ARA",name:"Auvergne-Rh\xf4ne-Alpes"},{code:"BFC",name:"Bourgogne-Franche-Comt\xe9"},{code:"BRE",name:"Brittany"},{code:"CVL",name:"Centre-Val de Loire"},{code:"COR",name:"Corsica"},{code:"GES",name:"Grand Est"},{code:"HDF",name:"Hauts-de-France"},{code:"IDF",name:"\xcele-de-France"},{code:"NOR",name:"Normandy"},{code:"NAQ",name:"Nouvelle-Aquitaine"},{code:"OCC",name:"Occitania"},{code:"PDL",name:"Pays de la Loire"},{code:"PAC",name:"Provence-Alpes-C\xf4te d'Azur"}],JP:[{code:"JP-01",name:"Hokkaido"},{code:"JP-02",name:"Aomori"},{code:"JP-03",name:"Iwate"},{code:"JP-04",name:"Miyagi"},{code:"JP-05",name:"Akita"},{code:"JP-06",name:"Yamagata"},{code:"JP-07",name:"Fukushima"},{code:"JP-08",name:"Ibaraki"},{code:"JP-09",name:"Tochigi"},{code:"JP-10",name:"Gunma"},{code:"JP-11",name:"Saitama"},{code:"JP-12",name:"Chiba"},{code:"JP-13",name:"Tokyo"},{code:"JP-14",name:"Kanagawa"},{code:"JP-15",name:"Niigata"},{code:"JP-16",name:"Toyama"},{code:"JP-17",name:"Ishikawa"},{code:"JP-18",name:"Fukui"},{code:"JP-19",name:"Yamanashi"},{code:"JP-20",name:"Nagano"},{code:"JP-21",name:"Gifu"},{code:"JP-22",name:"Shizuoka"},{code:"JP-23",name:"Aichi"},{code:"JP-24",name:"Mie"},{code:"JP-25",name:"Shiga"},{code:"JP-26",name:"Kyoto"},{code:"JP-27",name:"Osaka"},{code:"JP-28",name:"Hyogo"},{code:"JP-29",name:"Nara"},{code:"JP-30",name:"Wakayama"},{code:"JP-31",name:"Tottori"},{code:"JP-32",name:"Shimane"},{code:"JP-33",name:"Okayama"},{code:"JP-34",name:"Hiroshima"},{code:"JP-35",name:"Yamaguchi"},{code:"JP-36",name:"Tokushima"},{code:"JP-37",name:"Kagawa"},{code:"JP-38",name:"Ehime"},{code:"JP-39",name:"Kochi"},{code:"JP-40",name:"Fukuoka"},{code:"JP-41",name:"Saga"},{code:"JP-42",name:"Nagasaki"},{code:"JP-43",name:"Kumamoto"},{code:"JP-44",name:"Oita"},{code:"JP-45",name:"Miyazaki"},{code:"JP-46",name:"Kagoshima"},{code:"JP-47",name:"Okinawa"}]};function d(e){return l[e]||[]}function m(e){return({US:"State",CA:"Province",IN:"State",AU:"State/Territory",GB:"Region",MX:"State",DE:"State",FR:"Region",JP:"Prefecture"})[e]||"State/Province"}let s={"en-US":{locale:"en-US",language:"en",country:"US",currency:"USD",currencySymbol:"$",currencyName:"US Dollar",displayName:"United States",nativeName:"English (US)",flag:"\uD83C\uDDFA\uD83C\uDDF8",dateFormat:"MM/DD/YYYY",timeFormat:"12h",timezone:"America/New_York",numberFormat:{style:"currency",currency:"USD"},taxName:"Sales Tax",taxIncluded:!1},"en-CA":{locale:"en-CA",language:"en",country:"CA",currency:"CAD",currencySymbol:"CA$",currencyName:"Canadian Dollar",displayName:"Canada",nativeName:"English (Canada)",flag:"\uD83C\uDDE8\uD83C\uDDE6",dateFormat:"YYYY-MM-DD",timeFormat:"24h",timezone:"America/Toronto",numberFormat:{style:"currency",currency:"CAD"}
1,taxName:"GST/HST",taxIncluded:!1},"en-IN":{locale:"en-IN",language:"en",country:"IN",currency:"INR",currencySymbol:"₹",currencyName:"Indian Rupee",displayName:"India",nativeName:"English (India)",flag:"\uD83C\uDDEE\uD83C\uDDF3",dateFormat:"DD/MM/YYYY",timeFormat:"12h",timezone:"Asia/Kolkata",numberFormat:{style:"currency",currency:"INR"},taxName:"GST",taxIncluded:!0},"es-MX":{locale:"es-MX",language:"es",country:"MX",currency:"MXN",currencySymbol:"MX$",currencyName:"Mexican Peso",displayName:"M\xe9xico",nativeName:"Espa\xf1ol (M\xe9xico)",flag:"\uD83C\uDDF2\uD83C\uDDFD",dateFormat:"DD/MM/YYYY",timeFormat:"24h",timezone:"America/Mexico_City",numberFormat:{style:"currency",currency:"MXN"},taxName:"IVA",taxIncluded:!0},"en-GB":{locale:"en-GB",language:"en",country:"GB",currency:"GBP",currencySymbol:"\xa3",currencyName:"British Pound",displayName:"United Kingdom",nativeName:"English (UK)",flag:"\uD83C\uDDEC\uD83C\uDDE7",dateFormat:"DD/MM/YYYY",timeFormat:"24h",timezone:"Europe/London",numberFormat:{style:"currency",currency:"GBP"},taxName:"VAT",taxIncluded:!0},"en-AU":{locale:"en-AU",language:"en",country:"AU",currency:"AUD",currencySymbol:"A$",currencyName:"Australian Dollar",displayName:"Australia",nativeName:"English (Australia)",flag:"\uD83C\uDDE6\uD83C\uDDFA",dateFormat:"DD/MM/YYYY",timeFormat:"12h",timezone:"Australia/Sydney",numberFormat:{style:"currency",currency:"AUD"}
1,taxName:"GST",taxIncluded:!0},"de-DE":{locale:"de-DE",language:"de",country:"EU",currency:"EUR",currencySymbol:"€",currencyName:"Euro",displayName:"Europe",nativeName:"Deutsch (Deutschland)",flag:"\uD83C\uDDEA\uD83C\uDDFA",dateFormat:"DD.MM.YYYY",timeFormat:"24h",timezone:"Europe/Berlin",numberFormat:{style:"currency",currency:"EUR"},taxName:"VAT",taxIncluded:!0}},u={US:"en-US",CA:"en-CA",IN:"en-IN",MX:"es-MX",GB:"en-GB",AU:"en-AU",DE:"de-DE",FR:"en-GB",IT:"en-GB",ES:"es-MX",NL:"en-GB",BE:"en-GB",CH:"de-DE",AT:"de-DE",IE:"en-GB",NZ:"en-AU",SG:"en-US",HK:"en-US",JP:"en-US",EU:"de-DE"},h={"en-US":"USD","en-CA":"CAD","en-IN":"INR","es-MX":"MXN","en-GB":"GBP","en-AU":"AUD","de-DE":"EUR"},g=Object.values(s).map(e=>({country:e.country,currency:e.currency,locale:e.locale,flag:e.flag,displayName:e.displayName,currencySymbol:e.currencySymbol})),S="LMS_LOCALE",N="checkout_market",p="PUBLIC_LOCALE",A="public_checkout_market";function f(e){return"string"==typeof e&&t.includes(e)}function y(){let e=!!localStorage.getItem("auth_token")||document.cookie.includes("lms_auth_token="),a=o.A.get(e?S:p);if(a&&f(a))return a;try{let a=sessionStorage.getItem(e?N:A);if(a){let{locale:e}=JSON.parse(a);if(e&&f(e))return e}}catch{}return r}function I(e){return"string"==typeof e&&c.includes(e.toUpperCase())}function C(e){return f(e)?s[e]:s[r]}function E(e){let a=e.toUpperCase();return I(a)?u[a]:r}function T(e){return f(e)?h[e]:"USD"}function P(e){return C(e).country}function w(e){if(!e)return null;if(f(e))return e;let a=e.replace("_","-");if(f(a))return a;let n=a.split("-");if(2===n.length){let e=`${n[0].toLowerCase()}-${n[1].toUpperCase()}`;if(f(e))return e}if(1===n.length){let e=n[0].toLowerCase();if("en"===e)return"en-US";if("es"===e)return"es-MX"}let o=e.toUpperCase();return I(o)?u[o]:null}function M(e){let a=e.split("/").filter(Boolean);if(a.length>0){let e=w(a[0]);if(e)return e}return null}function U(e){let a=e.split("/").filter(Boolean);return a.length>0&&f(a[0])?"/"+a.slice(1).join("/"):e}},72977:(e,a,n)=>{n.d(a,{B7:()=>E,Pt:()=>p,Qu:()=>N,SU:()=>f,Ti:()=>A,WU:()=>s,b5:()=>m,iv:()=>C,m_:()=>y,qR:()=>I});var o=n(7081);let t="auth_token",r="auth_user",c="auth_token_expiry",i="auth_remember_me",l="lms_auth_token",d="lms_tenant_id",m="tenant_entitlements";function s(){try{sessionStorage.removeItem(m)}catch{}}function u(){let e=window.location.hostname;if(e.endsWith(".localhost")||"localhost"===e)return e.endsWith(".localhost")?e:void 0;let a=e.split(".");if(a.length>=2)return"."+a.slice(-2).join(".")}function h(e,a,n=7){if("u"<typeof document)return;let o=new Date;o.setTime(o.getTime()+24*n*36e5);let t=u(),r="https:"===window.location.protocol,c=`${e}=${encodeURIComponent(a)}; expires=${o.toUTCString()}; path=/`;t&&(c+=`; domain=${t}`),r&&(c+="; secure"),c+="; SameSite=Lax",document.cookie=c,console.log("\uD83C\uDF6A Cookie set:",e,"domain:",t)}function g(e){if("u"<typeof document)return null;let a=e+"=",n=document.cookie.split(";");for(let e=0;e<n.length;e++){let o=n[e].trim();if(0===o.indexOf(a))return decodeURIComponent(o.substring(a.length))}return null}function S(e){if("u"<typeof document)return;let a=u();a&&(document.cookie=`${e}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/; domain=${a}`),document.cookie=`${e}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/`,console.log("\uD83C\uDF6A Cookie deleted:",e)}function N(e,a,n=!0){localStorage.setItem(t,e),localStorage.setItem(r,JSON.stringify(a)),localStorage.setItem(i,n?"true":"false");let o=Date.now()+864e5;localStorage.setItem(c,o.toString());let m=n?7:1;h(l,e,m);let s=localStorage.getItem("workspace_tenant_id")||localStorage.getItem("tenantId");s&&h(d,s,m),console.log("\uD83D\uDCBE Auth data saved (localStorage + cookies)")}function p(){let e=localStorage.getItem(t);if(!e&&(e=g(l))&&(localStorage.setItem(t,e),console.log("\uD83D\uDD04 Token synced from cookie to localStorage")),!e)return null;let a=localStorage.getItem(c);return a&&Date.now()>parseInt(a,10)?(y(),null):e}function A(){let e=localStorage.getItem(r);if(!e)return null;try{return JSON.parse(e)}catch{return null}}function f(e){localStorage.setItem(r,JSON.stringify(e))}function y(){localStorage.removeItem(t),localStorage.removeItem(r),localStorage.removeItem(c),localStorage.removeItem(i),localStorage.removeItem("activeRole"),localStorage.removeItem("user-theme-mode"),S(l),S(d),s(),(0,o.VN)(),console.log("\uD83D\uDDD1️ Auth data cleared (localStorage + cookies)")}function I(){return null!==p()}function C(){if(localStorage.getItem(t)){let e=Date.now()+864e5;localStorage.setItem(c,e.toString())}}function E(){let e=g(l),a=g(d);if(e&&!localStorage.getItem(t)&&(localStorage.setItem(t,e),console.log("\uD83D\uDD04 Auth token synced from cookie")),a){let e=localStorage.getItem("workspace_tenant_id");e&&"default"!==e||(localStorage.setItem("workspace_tenant_id",a),localStorage.setItem("tenantId",a),console.log("\uD83D\uDD04 Tenant ID synced from cookie
1:",a))}return{token:e,tenantId:a}}},99538:(e,a,n)=>{n.d(a,{GG:()=>l,Li:()=>h,R6:()=>m,Td:()=>u,si:()=>s});var o=n(41463);let t="default",r="workspace_tenant_id",c="tenantId",i="tenant_id_for_host:";async function l(){let e=window.location.hostname.toLowerCase();if(e.endsWith(".perfectum.ai")||e.endsWith(".localhost")||d(e)||"perfectum.ai"===e)return;let a=i+e;if(!sessionStorage.getItem(a))try{let e=`${window.location.protocol}//${window.location.host}`,n=await fetch(`${e}/api/public/tenant/resolve-host`,{credentials:"same-origin"}),o=await n.json(),t=o?.data;t?.found&&t.tenantId&&"string"==typeof t.tenantId&&(sessionStorage.setItem(a,t.tenantId),localStorage.setItem(r,t.tenantId))}catch{}}function d(e){return"localhost"===e||e.startsWith("127.")||e.startsWith("192.168.")||e.startsWith("10.")||e.startsWith("172.16.")||e.startsWith("172.17.")||e.startsWith("172.18.")||e.startsWith("172.19.")||e.startsWith("172.2")||e.startsWith("172.30.")||e.startsWith("172.31.")}function m(){let e=function(){let e=window.location.hostname.toLowerCase();if(e.endsWith(".perfectum.ai")&&"perfectum.ai"!==e&&"www.perfectum.ai"!==e){let a=e.slice(0,-13);return!a||a.includes(".")||["www","api","app","admin","mail","ftp"].includes(a)?null:a}if(e.endsWith(".localhost")){let a=e.replace(".localhost","");return a&&!["www","api","app","admin"].includes(a)?a:null}if(d(e)||"perfectum.ai"===e)return null;if(e.endsWith(".pragra.io")||e.endsWith(".pragra.co"))return sessionStorage.getItem(i+e)||null;let a=sessionStorage.getItem(i+e);return a||null}();if(e)return localStorage.setItem(r,e),e;let a=localStorage.getItem(r)||localStorage.getItem(c);return a&&"localhost"!==a&&"default"!==a?(console.log("\uD83D\uDD0D Using stored tenant:",a),a):t}function s(e){{let a="localhost"===e?t:e;localStorage.setItem(r,a),localStorage.setItem(c,a),console.log("\uD83D\uDCBE Tenant ID stored:",a)}}function u(e,a="perfectum.ai"){let n=e.trim().toLowerCase();if(!n){let e=window.location.port?`:${window.location.port}`:"";return`${window.location.protocol}//${window.location.hostname}${e}`}{let e=window.location.hostname,a=window.location.protocol,t=window.location.port?`:${window.location.port}`:"";if(e.endsWith(".localhost")||"localhost"===e||d(e))return`${a}//${n}.localhost${t}`;let r=function(e){let a=o.env.NEXT_PUBLIC_WORKSPACE_PARENT_HOST?.trim();if(a)return a.replace(/^\.+/,"").replace(/\.+$/,"");if(e.endsWith(".localhost")||"localhost"===e||d(e))return"localhost";let n=e.split(".");return n.length<=2?e:n.slice(-2).join(".")}(e);return`${a}//${n}.${r}${t}`}}function h(){localStorage.removeItem(r),localStorage.removeItem(c),console.log("\uD83D\uDDD1️ Tenant ID cleared")}}}]);

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.