1try{let e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="f986be8c-2f1e-4423-81e2-99e87b066c24",e._sentryDebugIdIdentifier="sentry-dbid-f986be8c-2f1e-4423-81e2-99e87b066c24")}catch(e){}"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[435],{22980:(e,t,n)=>{n.d(t,{J:()=>o,v:()=>u});var a=n(95155),r=n(12115),s=n(83225);let l=(0,r.createContext)(null),o=()=>(0,r.useContext)(l);function u(e){let{children:t}=e,[n,o]=(0,r.useState)(null),[u,i]=(0,r.useState)(!0),[c,d]=(0,r.useState)(null),m=(0,r.useCallback)(async()=>{try{var e,t;let n=await (0,s.ug)();if((null==n?void 0:n.success)&&(null==n?void 0:n.data)){let t=n.data,a=null!=(e=null==t?void 0:t.data)?e:t,r={...a,tenantType:null==a?void 0:a.tenantType,licenses:Array.isArray(null==a?void 0:a.licensesObject)?a.licensesObject.map(e=>null==e?void 0:e.name).filter(Boolean):Array.isArray(null==t?void 0:t.licensesObject)?t.licensesObject.map(e=>null==e?void 0:e.name).filter(Boolean):[]};return o(r),d(null),r}return o(null),d(null!=(t=null==n?void 0:n.statusCode)?t:null),null}catch(e){return console.error("getUserInfo failed:",e),o(null),d(null),null}finally{i(!1)}},[]);return(0,r.useEffect)(()=>{let e=!0;return(async()=>{if(await m(),!e)return})(),()=>{e=!1}},[m]),(0,a.jsx)(l.Provider,{value:{user:n,isLoading:u,errorStatus:c,refreshUser:m},"data-sentry-element":"UserContext.Provider","data-sentry-component":"UserProvider","data-sentry-source-file":"UserContext.tsx",children:t})}},30367:(e,t,n)=>{n.d(t,{Dg:()=>s,JE:()=>l,QB:()=>o,Qq:()=>i,VB:()=>u});var a=n(65161),r=n(34686);let s=async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};try{let{user:t,fieldSearch:n,requestedTenant:s,licenseId:l,includeInactive:o,applyTenantFilter:u,...i}=e,c=(t?(0,r.jN)(t,{ignoreSelection:!u}):Array.isArray(s)?s:[s||""]).filter(e=>"string"==typeof e&&""!==e.trim()),d=Object.fromEntries(Object.entries(i).filter(e=>{let[,t]=e;return void 0!==t&&("string"!=typeof t||""!==t.trim())}));o&&(d.includeInactive=!0);let m={};return c.length>0&&(m.requestedTenant=c),n&&(m.fieldSearch=n),l&&(m.licenseId=l),(await a.A.post("/administration/tenant/list",m,{params:d})).data}catch(e){var t,n;return{success:!1,message:(null==e||null==(n=e.response)||null==(t=n.data)?void 0:t.message)||"Failed to fetch tenants"}}},l=async e=>{try{let t=await a.A.post("/administration/tenant/create",e);return console.log("response",t),t.data}catch(e){var t;if(null==(t=e.response)?void 0:t.data)throw e.response.data;throw{success:!1,message:(null==e?void 0:e.message)||"Failed to create tenant"}}},o=async e=>{try{return(await a.A.patch("/administration/tenant/update",e)).data}catch(e){var t,n;return{success:!1,message:(null==e||null==(n=e.response)||null==(t=n.data)?void 0:t.message)||"Failed to update tenant"}}},u=async e=>{try{return(await a.A.patch("/administration/tenant/disable",e)).data}catch(e){var t,n;return{success:!1,message:(null==e||null==(n=e.response)||null==(t=n.data)?void 0:t.message)||"Failed to disable tenant"}}},i=async e=>{try{return(await a.A.patch("/administration/tenant/enable",e)).data}catch(e){var t,n;return{success:!1,message:(null==e||null==(n=e.response)||null==(t=n.data)?void 0:t.message)||"Failed to activate tenant"}}}},31376:(e,t,n)=>{n.d(t,{Toaster:()=>u,toast:()=>o});var a=n(95155),r=n(70460),s=n(66609);function l(e){if(!e||"string"!=typeof e)return e;let t=e.trim();return t.charAt(0).toUpperCase()+t.slice(1)}let o={success:(e,t)=>s.oR.success(l(e),t),error:(e,t)=>s.oR.error(l(e),t),info:(e,t)=>s.oR.info(l(e),t),warning:(e,t)=>s.oR.warning(l(e),t),message:(e,t)=>s.oR.message(l(e),t),default:(e,t)=>(0,s.oR)(l(e),t)},u=e=>{let{...t}=e,{theme:n="system"}=(0,r.D)();return(0,a.jsx)(s.l$,{theme:n,toastOptions:{classNames:{toast:"!inline-flex !w-auto !min-w-0 !max-w-none !px-2 !py-1",success:"!inline-flex !w-auto !min-w-0 !max-w-none !px-2 !py-1",error:"!inline-flex !w-auto !min-w-0 !max-w-none !px-2 !py-1",content:"flex items-center gap-2"}},style:{"--normal-bg":"var(--popover)","--normal-text":"var(--popover-foreground)","--normal-border":"var(--border)","--success-bg":"#121c2a","--success-text":"var(--primary)","--success-border":"#121c2a","--error-bg":"hsl(0, 84%, 60%)","--error-text":"white","--error-border":"hsl(0, 84%, 50%)","--success-bg-
1dark":"hsl(142, 70%, 30%)","--error-bg-dark":"hsl(0, 84%, 45%)","--width":"auto","--max-width":"80vw"},...t,"data-sentry-element":"Sonner","data-sentry-component":"Toaster","data-sentry-source-file":"sonner.tsx"})}},34686:(e,t,n)=>{n.d(t,{hA:()=>r,j$:()=>s,jN:()=>u,nN:()=>l,vH:()=>i});var a=n(48270);function r(e){return Array.isArray(e)?e.flatMap(e=>null==e?[]:"string"==typeof e?e:"object"==typeof e&&"tenantId"in e?e.tenantId?[e.tenantId]:[]:String(e)):[]}function s(e){let t=new Set;return e.tenantId&&t.add(String(e.tenantId).trim()),r(e.allocatedTenants).forEach(e=>{e&&t.add(String(e).trim())}),Array.from(t)}let l=e=>e?[String(e)]:[],o=e=>{let t=(0,a.r)();return t&&(e.includes("all")||e.includes(t))?[t]:e},u=(e,t)=>{let n=(e=>{let t=[];switch(null==e?void 0:e.tenantType){case"platform":(null==e?void 0:e.hasAllocatedTenants)?t=r(null==e?void 0:e.allocatedTenants):(console.log("Platform with no allocated tenants. Fetching all tenants."),t=["all"]);break;case"mssp":(null==e?void 0:e.hasAllocatedTenants)?(console.log("MSSP with allocated tenants. Fetching allocated tenants."),t=r(null==e?void 0:e.allocatedTenants)):(console.log("MSSP with no allocated tenants. Fetching all tenants."),t=["all"]);break;case"customer":console.log("Customer: Fetching tenant based on tenantId."),t=(null==e?void 0:e.tenantId)?[String(e.tenantId)]:[];break;default:t=(null==e?void 0:e.tenantId)?[String(e.tenantId)]:["all"]}return t||[]})(e);return(null==t?void 0:t.ignoreSelection)?n:o(n)},i=(e,t)=>{let n=u(e,t);return n.length>0?n:o(["all"])}},48270:(e,t,n)=>{let a;n.d(t,{Od:()=>l,Tw:()=>i,oi:()=>u,r:()=>o,yZ:()=>c,zW:()=>s});let r={selectedTenantId:"sb:selectedTenantId",tenantList:"sb:tenantList"};function s(){try{let e=localStorage.getItem(r.selectedTenantId);return(null==e?void 0:e.trim())?e:null}catch(e){return null}}function l(e){a=(null==e?void 0:e.trim())?e:null;try{(null==e?void 0:e.trim())?localStorage.setItem(r.selectedTenantId,e):localStorage.removeItem(r.selectedTenantId)}catch(e){}}function o(){return void 0===a&&(a=s()),a}function u(){try{let e=localStorage.getItem(r.tenantList);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t:[]}catch(e){return[]}}function i(e){try{e.length>0?localStorage.setItem(r.tenantList,JSON.stringify(e)):localStorage.removeItem(r.tenantList)}catch(e){}}function c(){a=null;try{Object.values(r).forEach(e=>{localStorage.removeItem(e)})}catch(e){}}},55229:(e,t,n)=>{n.d(t,{Nu:()=>o,Y4:()=>a,gs:()=>r,lF:()=>u});let a=e=>{var t;return"platform"===String(null!=(t=null==e?void 0:e.tenantType)?t:"").toLowerCase()},r=e=>{var t;return"mssp"===String(null!=(t=null==e?void 0:e.tenantType)?t:"").toLowerCase()},s=e=>{var t;return"customer"===String(null!=(t=null==e?void 0:e.tenantType)?t:"").toLowerCase()},l=(e,t)=>{var n,a;return String(null!=(n=null==e?void 0:e.name)?n:"").localeCompare(String(null!=(a=null==t?void 0:t.name)?a:""))};function o(e,t){if(!t)return e;let n=e;if(t.tenantType){let e=t.tenantType.toLowerCase();n=n.filter(n=>{var r;return String(null!=(r=n.tenantType)?r:"").toLowerCase()===e||!0===t.includePlatform&&a(n)})}if(void 0!==t.requestedTenant&&null!==t.requestedTenant){let e=(Array.isArray(t.requestedTenant)?t.requestedTenant:[t.requestedTenant]).map(e=>String(e).trim()).filter(Boolean);if(e.length>0){let t=new Set(e);n=n.filter(e=>t.has(e.id)||null!=e.parent&&t.has(String(e.parent)))}}return n}function u(e){let t=e.filter(a).slice().sort(l),n=e.filter(r).slice().sort(l),o=new Set(t.map(e=>e.id)),u=new Set(n.map(e=>e.id)),i={},c=[];for(let e of n)e.parent&&o.has(e.parent)?(i[e.parent]||(i[e.parent]=[]),i[e.parent].push(e)):c.push(e);let d={};for(let t of e)t&&s(t)&&t.parent&&(d[t.parent]||(d[t.parent]=[]),d[t.parent].push(t));for(let e of Object.keys(d))d[e].sort(l);for(let e of Object.keys(d))u.has(e)||c.push(function(e,t){var n,a;return{id:e,name:(null==(a=t.find(e=>e.parentName))||null==(n=a.parentName)?void 0:n.trim())||"Unknown MSSP",tenantType:"mssp",parent:null,isDummy:!0}}(e,d[e]));return c.sort(l),{platforms:t,msspsByPlatform:i,orphanMssps:c,customersByMssp:d}}},65161:(e,t,n)=>{n.d(t,{A:()=>i});var a=n(83225),r=n(48270),s=n(21338),l=n(31376);let o=s.A.create({baseURL:"https://platform.socbyte.ai/api/administration"});console.log("ENV","https://platform.socbyte.ai/api/administration"),o.interceptors.request.use(e=>{["/user-management/user/login","/user-management/user/forget-password","/user-management/user/verify-forget-password-authenticator","/user-management/user/forget-password-authenticator","/user-management/user/activation/verify","/user-management/user/activation/set-password"].includes(e.url)||(e.withCredentials=!0);try{{let t=localStorage.getItem("sb:lastActivityAtMs"),n=t?Number(t):NaN;Number.isFinite(n)&&Date.now()-n<15e3&&(e.headers=e.headers||{},e.headers["X-SB-User-Active"]="1")}}catch(e){}return e});let u=async function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];try{e||await (0,a.ri)()}catch(e){console.error("Logout API failed",e)}try{document.cookie="sb_auth=; Path=/; Max-Age=0; SameSite=Lax"}catch(e){}try{localStorage.setItem("sb:logoutAtMs",String(Date.now()))}catch(e){}(0,a.F8)(),(0,r.yZ)(),window.location.href="/login"};o.interceptors.response.use(e=>e,e=>{var t,n,a,r,s,o;if((null==(t=e.response)?void 0:t.status)===403){let t=(null==e||null==(a=e.config)?void 0:a.url)||"";return["/license-management/allocated-license/list"].some(e=>t.includes(e))||l.toast.error((null==(s=e.response)||null==(r=s.data)?void 0:r.message)||"You don't have permission"),Promise.reject(e)}if((null==(n=e.response)?void 0:n.status)===401){let t=window.location.pathname,n=(null==e||null==(o=e.config)?void 0:o.url)||"",a=!!window.__sbLoggingOut,r=["/login","/activate-account"].some(e=>
1t.startsWith(e)),s=n.includes("/user-management/user/logout"),i=n.includes("/user-management/user/userInfo");if(["/user-management/user/login","/user-management/user/verify-login-otp","/user-management/user/verify-login-authenticator","/user-management/user/authenticator/setup-login","/user-management/user/authenticator/verify-setup-login","/user-management/user/forget-password","/user-management/user/verify-forget-password-authenticator","/user-management/user/forget-password-authenticator"].some(e=>n.includes(e))||r)return Promise.reject(e);if(a||s||i)return"/login"!==t&&u(!0),Promise.reject(e);"/login"!==t&&l.toast.error("You are not authorized. Logging out...")}return Promise.reject(e)});let i=o},83225:(e,t,n)=>{n.d(t,{Ed:()=>h,F8:()=>s,eR:()=>c,ec:()=>w,fB:()=>v,g9:()=>i,iD:()=>l,jU:()=>y,lD:()=>p,nY:()=>d,o2:()=>u,ri:()=>o,uI:()=>f,uW:()=>m,ug:()=>g});var a=n(65161),r=n(48270);let s=()=>{try{["sb:idleExpiresAtMs","sb:keepaliveAtMs","sb:lastActivityAtMs","sb:tokenExpiresAtMs"].forEach(e=>{try{localStorage.removeItem(e)}catch(e){}})}catch(e){}},l=async e=>{try{let t=await a.A.post("/user-management/user/login",e);return console.log(t),t.data}catch(e){var t,n;return{success:!1,message:null==(n=e.response)||null==(t=n.data)?void 0:t.message}}},o=async()=>{try{try{window.__sbLoggingOut=!0}catch(e){}return(await a.A.post("/user-management/user/logout")).data}catch(n){var e,t;return{success:!1,message:null==(t=n.response)||null==(e=t.data)?void 0:e.message}}finally{s(),(0,r.yZ)();try{setTimeout(()=>{window.__sbLoggingOut=!1},3e3)}catch(e){}}},u=async(e,t)=>{try{return(await a.A.post("/user-management/user/verify-login-otp",{email:e,otp:t})).data}catch(e){var n,r,s;return console.error("AuthService: OTP verification failed:",(null==(n=e.response)?void 0:n.data)||e.message),{success:!1,message:null==(s=e.response)||null==(r=s.data)?void 0:r.message}}},i=async(e,t)=>{try{return(await a.A.post("/user-management/user/verify-login-authenticator",{twoFactorToken:e,token:t})).data}catch(e){var n,r,s;return console.error("AuthService: authenticator verification failed:",(null==(n=e.response)?void 0:n.data)||e.message),{success:!1,message:null==(s=e.response)||null==(r=s.data)?void 0:r.message}}},c=async e=>{try{return(await a.A.post("/user-management/user/authenticator/setup-login",{twoFactorToken:e})).data}catch(e){var t,n;return{success:!1,message:null==(n=e.response)||null==(t=n.data)?void 0:t.message}}},d=async(e,t)=>{try{return(await a.A.post("/user-management/user/authenticator/verify-setup-login",{twoFactorToken:e,token:t})).data}catch(e){var n,r;return{success:!1,message:null==(r=e.response)||null==(n=r.data)?void 0:n.message}}},m=async e=>{try{return(await a.A.post("/user-management/user/get-otp",{email:e})).data}catch(e){var t,n,r,s;return console.error("otp sending failed:",null==(n=e.response)||null==(t=n.data)?void 0:t.message),{success:!1,message:null==(s=e.response)||null==(r=s.data)?void 0:r.message}}},g=async()=>{try{let e=await a.A.get("/user-management/user/userInfo");return{...e.data,statusCode:e.status}}catch(l){var e,t,n,r,s;let a=null==l||null==(e=l.response)?void 0:e.status;return console.error("getUserInfo failed:",null==(n=l.response)||null==(t=n.data)?void 0:t.message),{success:!1,message:null==(s=l.response)||null==(r=s.data)?void 0:r.message,statusCode:a}}},p=async()=>{try{let e=await a.A.get("/user-management/user/session/status");return{...e.data,statusCode:e.status}}catch(r){var e,t,n;let a=null==r||null==(e=r.response)?void 0:e.status;return{success:!1,message:null==(n=r.response)||null==(t=n.data)?void 0:t.message,statusCode:a}}},f=async()=>{try{let e=await a.A.post("/user-management/user/session/refresh");return{...e.data,statusCode:e.status}}catch(r){var e,t,n;let a=null==r||null==(e=r.response)?void 0:e.status;return{success:!1,message:null==(n=r.response)||null==(t=n.data)?void 0:t.message,statusCode:a}}},v=async(e,t,n)=>{try{return(await a.A.post("/user-management/user/forget-password",{email:e,password:t,otp:n})).data}catch(e){var r,s,l,o;return console.error("forgetPassword failed:",(null==(s=e.response)||null==(r=s.data)?void 0:r.message)||e.message),{success:!1,message:null==(o=e.response)||null==(l=o.data)?void 0:l.message}}},y=async(e,t)=>{try{return(await a.A.post("/user-management/user/verify-forget-password-authenticator",{email:e,token:t})).data}catch(e){var n,r;return{success:!1,message:null==(r=e.response)||null==(n=r.data)?void 0:n.message}}},h=async(e,t,n)=>{try{return(await a.A.post("/user-management/user/forget-password-authenticator",{email:e,password:t,resetPasswordToken:n})).data}catch(e){var r,s;return{success:!1,message:null==(s=e.response)||null==(r=s.data)?void 0:r.message}}},w=async(e,t,n,r)=>{var s,l,o,u;try{let o=await a.A.post("/user-management/user/change-password",{oldPassword:e,newPassword:t,confirmPassword:n,requestedTenant:r});if((null==o||null==(s=o.data)?void 0:s.success)===!1)throw Error((null==o||null==(l=o.data)?void 0:l.message)||"Failed to change password");return o.data}catch(t){let e=(null==t||null==(u=t.response)||null==(o=u.data)?void 0:o.message)||(null==t?void 0:t.message)||"Failed to change password";throw console.error("changePassword failed:",e),Error(e)}}},90435:(e,t,n)=>{n.d(t,{Ku:()=>d,WE:()=>m});var a=n(95155),r=n(12115),s=n(22980),l=n(30367),o=n(55229),u=n(48270);let i={platforms:[],msspsByPlatform:{},orphanMssps:[],customersByMssp:{}},c=(0,r.createContext)(null);function d(){let e=(0,r.useContext)(c);if(!e)throw Error("useTenant must be used within a TenantProvider");return e}function m(e){let{children:t}=e,{user:n,isLoading:d}=(0,s.J)(),[m,g]=(0,r.useState)(null),[p,f]=(0,r.useState)([]),[v,y]=(0,r.useState)(!1),[h,w]=(0,r.useState)(!1),b=(0,r.useCallback)(e=>{g(e),(0,u.Od)(e)},[]),S=(0,r.useCallback)(()=>{(0,u.yZ)(),g(null),f([])},[]),A=(0,r.useCallback)(async()=>
1{if(n&&"customer"!==n.tenantType){y(!0);try{var e,t;let a=await (0,l.Dg)({user:n}),r=(null!=(t=null==a||null==(e=a.data)?void 0:e.results)?t:[]).map(e=>{var t,n,a;return{id:String(e.id),name:String(null!=(t=null==e?void 0:e.name)?t:""),tenantType:null==e?void 0:e.tenantType,parent:null!=(n=null==e?void 0:e.parent)?n:null,parentName:null!=(a=null==e?void 0:e.parentName)?a:null}});f(r),(0,u.Tw)(r),g(e=>!e||r.some(t=>t.id===e)?e:((0,u.Od)(null),null))}finally{y(!1)}}},[n]);(0,r.useEffect)(()=>{g((0,u.zW)()),f((0,u.oi)()),w(!0)},[]),(0,r.useEffect)(()=>{if(h&&!d){if(!n)return void S();A()}},[n,d,h,A,S]),(0,r.useEffect)(()=>{n&&"customer"===n.tenantType&&n.tenantId&&b(String(n.tenantId))},[n,b]);let T=(0,r.useMemo)(()=>p.length>0?(0,o.lF)(p):i,[p]),I=(0,r.useMemo)(()=>({tenantId:m,tenantList:p,tenantTree:T,isLoading:v,hasHydrated:h,setTenantId:b,refreshTenants:A,clearTenant:S}),[m,p,T,v,h,b,A,S]);return(0,a.jsx)(c.Provider,{value:I,"data-sentry-element":"TenantContext.Provider","data-sentry-component":"TenantProvider","data-sentry-source-file":"TenantContext.tsx",children:t})}}}]);
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.