ultisuite-client/out/_next/static/chunks/563-f13ab691e5395b61.js
R3D347HR4Y d6d18f911b
Some checks failed
E2E / Playwright e2e (push) Has been cancelled
Lots of stuff and mobile app
2026-06-17 00:13:28 +02:00

1 line
10 KiB
JavaScript

"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[563],{1442:(e,t,n)=>{n.d(t,{K:()=>i,q:()=>a});var r=n(68516).Buffer;function i(e){let t=e.split(".");if(3!==t.length||!t[1])return null;try{let e,n;return JSON.parse((n=(e=t[1].replace(/-/g,"+").replace(/_/g,"/")).padEnd(e.length+(4-e.length%4)%4,"="),r.from(n,"base64").toString("utf8")))}catch{return null}}function a(e){let t=i(e);if(!t)return null;let n="string"==typeof t.sub?t.sub:null,r="string"==typeof t.email&&t.email||"string"==typeof t.preferred_username&&t.preferred_username||null;if(!n||!r)return null;let a="string"==typeof t.name&&t.name||"string"==typeof t.given_name&&t.given_name||r.split("@")[0]||r,o="string"==typeof t.given_name&&t.given_name||a.split(/\s+/)[0]||a;return{sub:n,email:r,name:a,firstName:o}}},24717:(e,t,n)=>{n.d(t,{K:()=>l,l:()=>s});var r=n(81887);let i=null,a=null;async function o(){if(!(0,r.oX)())return null;if(i)return i;try{return i=(await n.e(6083).then(n.bind(n,56083))).invoke}catch{return null}}async function c(){if(!(0,r.oX)())return null;if(a)return a;try{return a=(await n.e(9233).then(n.bind(n,71614))).listen}catch{return null}}async function s(e,t){let n=await o();if(!n)return null;try{return await Promise.race([n(e,t),new Promise((e,t)=>{setTimeout(()=>t(Error("invoke_timeout")),5e3)})])}catch{return null}}async function l(e,t){let n=await c();return n?n(e,e=>t(e.payload)):()=>{}}},29994:(e,t,n)=>{n.d(t,{Ij:()=>w,PC:()=>u,PW:()=>p,bo:()=>d,hY:()=>f,mR:()=>h,zB:()=>m});var r=n(81887),i=n(82108);let a="ulti-runtime-config",o=null,c=new Set;function s(e){return e.endsWith("/")?e:`${e}/`}function l(e){try{let t=new URL(e),n="https:"===t.protocol?"wss:":"ws:";return`${n}//${t.host}/ws`}catch{return`${e.replace(/^http/,"ws")}/ws`}}function u(){return o||(0,r.B8)()&&(o=function(){try{let e=localStorage.getItem(a);if(!e)return null;return JSON.parse(e)}catch{return null}}()),o}function d(e){o=e;try{e?localStorage.setItem(a,JSON.stringify(e)):localStorage.removeItem(a)}catch{}for(let t of c)t(e)}function f(){if((0,r.B8)()){let e=u();if(e)return e.apiBaseUrl}return"/api/v1"}function h(){if((0,r.B8)()){let e=u();if(e)return e.wsUrl}return"ws://localhost/ws"}function p(){if((0,r.B8)()){let e=u();if(e?.aiOrigin)return e.aiOrigin}return"http://localhost"}class g extends Error{}async function w(e,t){let n,a;try{n=new URL(e.includes("://")?e:`https://${e}`).origin.replace(/\/+$/,"")}catch{throw new g(`URL d'instance invalide : ${e}`)}let o=s(`${n}${i.env.NEXT_PUBLIC_OIDC_ISSUER_PATH??"/auth/application/o/ulti/"}`),c=`${o}.well-known/openid-configuration`;try{let e=await fetch(c,{headers:{Accept:"application/json"}});if(!e.ok)throw new g(`D\xe9couverte OIDC \xe9chou\xe9e (${e.status}) sur ${n}`);a=await e.json()}catch(e){if(e instanceof g)throw e;throw new g(`Impossible de joindre ${n}. V\xe9rifie l'URL et ta connexion.`)}let u={issuer:a.issuer?s(a.issuer):o,clientId:"ulti-backend",redirectUri:`${(0,r.hF)()}://oauth/callback`,authorizationEndpoint:a.authorization_endpoint,tokenEndpoint:a.token_endpoint,endSessionEndpoint:a.end_session_endpoint??`${o}end-session/`,enrollmentUrl:`${n}/auth/if/flow/ulti-enrollment/`};return{label:t?.label??n.replace(/^https?:\/\//,""),instanceOrigin:n,apiBaseUrl:`${n}/api/v1`,wsUrl:l(n),oidc:u,aiOrigin:n,aiPublicPath:"/ai",onlyOfficeUrl:`${n}/office`,hocuspocusUrl:`${l(n).replace(/\/ws$/,"")}/collab`}}function m(){return i.env.NEXT_PUBLIC_ULTISPACE_ORIGIN??"https://space.ulti.app"}r.ju,r.fk},58113:(e,t,n)=>{n.d(t,{B:()=>o,L:()=>s,cn:()=>c});var r=n(28900),i=n(93898);let a=new Intl.NumberFormat("en-US");function o(e){return a.format(e)}function c(...e){return(0,i.QP)((0,r.$)(e))}function s(e,t=0){let n=new Date;return n.setHours(e,t,0,0),n.getTime()<=Date.now()&&n.setDate(n.getDate()+1),n}},60112:(e,t,n)=>{function r(e){let t=new Uint8Array(e),n="";for(let e of t)n+=String.fromCharCode(e);return btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function i(e=32){let t=new Uint8Array(e);return crypto.getRandomValues(t),r(t.buffer)}async function a(e){let t=new TextEncoder().encode(e);return r(await crypto.subtle.digest("SHA-256",t))}async function o(){let e=i(32),t=await a(e);return{verifier:e,challenge:t}}n.d(t,{my:()=>_,dW:()=>m,PA:()=>w});var c=n(1442),s=n(29994),l=n(81887),u=n(24717),d=n(62805);let f="ulti-native-oauth-pending";async function h(e){if((0,l.oX)())try{let t=await n.e(2828).then(n.bind(n,92828));await t.openUrl(e);return}catch{}window.open(e,"_blank","noopener")}function p(e){let t=e.id_token??e.access_token;if(!t)throw Error("no_id_token");let n=Date.now()+(e.expires_in??3600)*1e3;return{accessToken:t,refreshToken:e.refresh_token??null,expiresAt:n,user:(0,c.q)(t)}}async function g(e,t){let n=(0,s.PC)();if(!n)throw Error("no_runtime_config");let r=new URLSearchParams({grant_type:"authorization_code",client_id:n.oidc.clientId,code:e,redirect_uri:n.oidc.redirectUri,code_verifier:t}),i=await fetch(n.oidc.tokenEndpoint,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:r});if(!i.ok)throw Error(`token_exchange_failed:${i.status}`);let a=p(await i.json());return await (0,d.Ko)(a),a}async function w(e){var t;let n=(0,s.PC)();if(!n)throw Error("no_runtime_config");let{verifier:r,challenge:a}=await o(),c=i(16);t={verifier:r,state:c,returnTo:e?.returnTo??"/mail/inbox"},sessionStorage.setItem(f,JSON.stringify(t));let l=new URLSearchParams({client_id:n.oidc.clientId,redirect_uri:n.oidc.redirectUri,response_type:"code",scope:"openid profile email offline_access",state:c,code_challenge:a,code_challenge_method:"S256",prompt:e?.prompt??"select_account"}),d=`${n.oidc.authorizationEndpoint}?${l.toString()}`;return new Promise((e,t)=>{let n=!1,r=null,i=()=>{n=!0,r&&r(),clearTimeout(a)},a=setTimeout(()=>{n||(i(),t(Error("login_timeout")))},3e5),o=async r=>{if(!n)for(let n of Array.isArray(r)?r:[r]){if("string"!=typeof n||!n.includes("oauth/callback"))continue;let{code:r,state:a,error:o}=function(e){try{let t=new URL(e);return{code:t.searchParams.get("code")??void 0,state:t.searchParams.get("state")??void 0,error:t.searchParams.get("error")??void 0}}catch{return{}}}(n),c=function(){let e=sessionStorage.getItem(f);if(!e)return null;sessionStorage.removeItem(f);try{return JSON.parse(e)}catch{return null}}();if(o){i(),t(Error(o));return}if(!r||!c||a!==c.state){i(),t(Error("invalid_state"));return}try{let t=await g(r,c.verifier);i(),e(t)}catch(e){i(),t(e instanceof Error?e:Error("exchange_failed"))}return}};(async()=>{r=await (0,u.K)("ulti://deep-link",e=>{o(e)}),await h(d)})().catch(e=>{n||(i(),t(e instanceof Error?e:Error("open_failed")))})})}async function m(){let e=(0,s.PC)(),t=await (0,d.lx)();if(!e||!t?.refreshToken)return null;let n=new URLSearchParams({grant_type:"refresh_token",client_id:e.oidc.clientId,refresh_token:t.refreshToken});try{let r=await fetch(e.oidc.tokenEndpoint,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:n});if(!r.ok)return null;let i=await r.json(),a=p({...i,refresh_token:i.refresh_token??t.refreshToken});return await (0,d.Ko)(a),a}catch{return null}}async function _(){let e=(0,s.PC)();if(await (0,d.q7)(),e?.oidc.endSessionEndpoint)try{await h(e.oidc.endSessionEndpoint)}catch{}}},61554:(e,t,n)=>{n.d(t,{$:()=>s,r:()=>c});var r=n(4208);n(91356);var i=n(49402),a=n(57542),o=n(58113);let c=(0,a.F)("inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9","icon-sm":"size-8","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}});function s({className:e,variant:t,size:n,asChild:a=!1,type:l,...u}){let d=a?i.DX:"button";return(0,r.jsx)(d,{"data-slot":"button",type:a?void 0:l??"button",className:(0,o.cn)(c({variant:t,size:n}),e),...u})}},62805:(e,t,n)=>{n.d(t,{Ko:()=>h,Lj:()=>w,XP:()=>_,gm:()=>m,kT:()=>g,lx:()=>f,q7:()=>p});var r=n(24717),i=n(81887);let a="session",o="runtime_config",c="push_token";function s(){return window.localStorage}async function l(e,t){(0,i.oX)()?await (0,r.l)("plugin:ulti-core|store_set",{key:e,value:t}):s()?.setItem(`ulti-secure:${e}`,t)}async function u(e){return(0,i.oX)()?await (0,r.l)("plugin:ulti-core|store_get",{key:e})??null:s()?.getItem(`ulti-secure:${e}`)??null}async function d(e){(0,i.oX)()?await (0,r.l)("plugin:ulti-core|store_delete",{key:e}):s()?.removeItem(`ulti-secure:${e}`)}async function f(){let e=await u(a);if(!e)return null;try{return JSON.parse(e)}catch{return null}}async function h(e){await l(a,JSON.stringify(e))}async function p(){(0,i.oX)()?await (0,r.l)("plugin:ulti-core|store_clear"):await d(a)}async function g(){return u(o)}async function w(e){await l(o,e)}async function m(){return u(c)}async function _(e){await l(c,e)}},81887:(e,t,n)=>{n.d(t,{B8:()=>l,O5:()=>c,fk:()=>i,hF:()=>a,ju:()=>r,oX:()=>s,zf:()=>o});let r=!0,i="mail";function a(e=i){return`ulti${e}`}function o(e=i){switch(e){case"mail":default:return"/mail";case"drive":return"/drive";case"agenda":return"/agenda";case"meet":return"/meet";case"chat":return"/chat";case"contacts":return"/contacts"}}function c(e){let t=e.split("?")[0];return t.startsWith("/mail")?"mail":t.startsWith("/drive")?"drive":t.startsWith("/agenda")||t.startsWith("/meet")?"agenda":t.startsWith("/chat")?"chat":t.startsWith("/contacts")?"contacts":null}function s(){return"__TAURI_INTERNALS__"in window||"__TAURI__"in window||!0===window.isTauri}function l(){return r||s()}}}]);