@sinequa/atomic 0.0.129 → 0.0.134

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- (function(o,h){typeof exports=="object"&&typeof module<"u"?h(exports):typeof define=="function"&&define.amd?define(["exports"],h):(o=typeof globalThis<"u"?globalThis:o||self,h(o.atomic={}))})(this,function(o){"use strict";var hr=Object.defineProperty;var gr=(o,h,d)=>h in o?hr(o,h,{enumerable:!0,configurable:!0,writable:!0,value:d}):o[h]=d;var Ue=(o,h,d)=>gr(o,typeof h!="symbol"?h+"":h,d);function h(e){const t=new CustomEvent("authenticated",{bubbles:!0,cancelable:!1,detail:{authenticated:e}});dispatchEvent(t)}const d={loginPath:"/login",createRoutes:!1};function k(e){Object.assign(d,e)}function L(e){const t=x(),r=new Headers(e);r.append("Sinequa-Force-Camel-Case","true"),r.append("accept","application/json"),t&&r.append("Sinequa-csrf-token",t);const{userOverride:n,userOverrideActive:a,bearerToken:s}=d;return s&&r.append("Authorization",`Bearer ${s}`),n&&a&&(r.append("sinequa-override-user",n.username),r.append("sinequa-override-domain",n.domain)),r}class R extends Error{constructor(r,n){super(r);Ue(this,"status");this.name="ApiError",this.status=n}}class V extends R{constructor(t="Server error"){super(t,500),this.name="ServerError"}}class E extends R{constructor(t="Request timed out"){super(t,408),this.name="TimeoutError"}}class D extends R{constructor(t="Unauthorized access"){super(t,401),this.name="UnauthorizedError"}}const T=/.*\:\(?([><=\d\-\.AND ]+)\)?/;function $e(e,t){var a;return!(e!=null&&e.items)||((a=e==null?void 0:e.items)==null?void 0:a.length)===0?[]:e.items.reduce((s,l)=>{if(!l.value||l.value==="")return s;const c=ee(l,e.column);return s.push({operator:c.operator,value:c.value,display:l.display||c.display,filters:c.filters,disabled:l.count===0,hidden:l.count===0&&e.isDistribution?!t:!1}),s},[])}function ee(e,t){const r=t,n=e.value.match(T);if(n!=null&&n[1]){const s=(n==null?void 0:n[1].split(" AND ")).map(l=>{const c=l.indexOf(">=")!==-1?"gte":"lt";let i=l.substring(l.indexOf(" ")+1);return{field:r,operator:c,value:i,display:e.display||e.value}});if(s.length===2)return{field:r,operator:"and",filters:s,value:e.value,display:s[0].display||s[0].value};if(s.length===1)return{...s[0],field:r};throw new Error("Failed to parse distribution expression")}return{field:r,operator:"eq",value:e.value,display:e.display}}function Ie(e,t,r){return e.valuesAreExpressions?t.display===r.display:t.value===r.value}function te(e){return e.items&&(e.items=e.items.map(t=>te(t))),e.items&&e.items.some(t=>t.$selected||t.$opened)&&(e.$opened=!0),e}function Ae(e,t){const r=[];if(e.length>0){const n=new Map,s=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").normalize("NFD").replace(/[\u0300-\u036f]/g,""),l=new RegExp("\\b"+s,"i");e.forEach(c=>{if(c.display.length>1){const i=c.display.normalize("NFD").replace(/[\u0300-\u036f]/g,""),u=l.exec(i);re(r,n,"/",c.display,+(c.frequency||0),1,((u==null?void 0:u.index)||0)+t.length)}})}return r}function re(e,t,r,n,a,s,l){const c=n.indexOf("/",r.length),i=n.substring(0,c+1);let u=t.get(i);if(!u){const m=i.replace(/^\/|\/$/g,"");u={value:n.substring(r.length,c),count:a,items:[],hasChildren:!1,$level:s,$opened:l>=i.length,$path:m},t.set(i,u),e.push(u)}i.length<n.length&&(u.hasChildren=!0,re(u.items,t,i,n,a,s+1,l))}function De(e,t){return e.reduce((r,n)=>(t(n)?r.true.push(n):r.false.push(n),r),{true:[],false:[]})}const Fe=/(([\+\-])?\(([^\)]+)\))|(([\+\-])?\[([^\]]+)\])|(([\+\-])?\"([^\"]+)\")|(([\+\-])?\/([^\/]+)\/)|(([\+\-])?(\S+))/g,Ne=2,ne=3,Be=5,ae=6,Qe=8,oe=9,qe=11,se=12,xe=14,ce=15;function $(e){if(!e)return[];const t=[],r=e.matchAll(Fe);for(let n of r)n[ne]?t.push({type:"group",value:n[ne],op:n[Ne]}):n[ae]?t.push({type:"adjacent",value:n[ae],op:n[Be]}):n[oe]?t.push({type:"exact",value:n[oe],op:n[Qe]}):n[se]?t.push({type:"regex",value:n[se],op:n[qe]}):n[ce]&&t.push({type:"token",value:n[ce],op:n[xe]});return t}function F(e){return e.map(t=>{const r=t.op||"";switch(t.type){case"group":return`${r}(${t.value})`;case"adjacent":return`${r}[${t.value}]`;case"exact":return`${r}"${t.value}"`;case"regex":return`${r}/${t.value}/`;case"token":return`${r}${t.value}`}}).join(" ")}function Ve(e,t,r){let n=$(e);for(let a of t)n.push({type:"adjacent",value:a,op:r});return F(n)}function je(e,t){const r=$(t),n=r.findIndex(a=>a.value===e);return n!==-1?(r.splice(n,1),t=F(r)):t}function Ge(e){const t=$(e).filter(r=>r.type!=="adjacent");return F(t)}function ze(e){return $(e).filter(t=>t.type==="adjacent").map(t=>t.value)}function He(e,t,r){const n=new Intl.RelativeTimeFormat(e,{numeric:"auto"}),{offset:a,unit:s,isFuture:l}=ie(t,r);return n.format(a*(l?1:-1),s)}function ie(e,t){const r=new Date(e),n=t?new Date(t):new Date,a=Math.abs(n.getTime()-r.getTime());return{offset:Math.floor(a/(1e3*60*60*24)),unit:"day",isFuture:r>n}}function Je(e){const t=e.target;return t&&t.nodeName!=="INPUT"&&t.nodeName!=="TEXTAREA"}function Me(e){if(e===void 0)return;const{q:t,f:r,p:n,s:a,t:s,n:l,b:c}=P(e),[i]=e.split("?");return{path:i,text:t,filters:r?j(r):void 0,page:n?parseInt(n,10):void 0,sort:a,tab:s,name:l,basket:c}}function We(e){if(!e)return"";const{text:t,filters:r,page:n,sort:a,tab:s,name:l,basket:c}=e,i={};t&&(i.q=t),r&&(i.f=JSON.stringify(r)),n&&(i.p=n.toString()),a&&(i.s=a),s&&(i.t=s),l&&(i.n=l),c&&(i.b=c);const u=new URLSearchParams(i).toString();return u||""}function Xe(e){if(e===void 0)return[];const{f:t}=P(e);return j(t)}function j(e){const t=decodeURIComponent(e);try{return JSON.parse(t??"[]")}catch{return console.error(`Error parsing filters from URI: ${e}`),[]}}function P(e){const t=e.split("?")[1];if(t===void 0)return{};const r=new URLSearchParams(t);return Object.fromEntries(r)}function Ye(e){const{q:t=""}=P(e);return t}function Ke(e){const{id:t}=P(e);return decodeURIComponent(t)}function Ze(e){const{p:t="0"}=P(e);return parseInt(t,10)}function Ee(e){const{t}=P(e);return t}function Te(e,t){if(!e)return e;let r=0;const n=e.length;let a=0;if(e[a]==="["){for(;a<n&&/[0-9]/.test(e[a]);)a++;e[a]==="]"&&(r=a+1)}const s=G(e,r,!1);if(!s)return e;const l=t.charCodeAt(0),c=t.charCodeAt(1);let i=s;for(;i;)if(l===i.lang1&&c===i.lang2){const m=G(e,i.end+4,!0);return e.substring(m.start,m.end)}else i=G(e,i.end+4,!1);const u=e.substring(s.start,s.end);return u||e}function G(e,t,r){for(let n=t,a=e.length-3;n<a;n++)if(e[n]==="["&&e[n+3]==="]")return{start:t,end:n,lang1:e.charCodeAt(n+1),lang2:e.charCodeAt(n+2)};if(r)return{start:t,end:e.length,lang1:-1,lang2:-1}}function et(e,t){const{useLocale:r,useLocaleAsPrefix:n,indexFile:a,path:s,folder:l}=t,c=r?`${e}/`:null,i=n?`${e}.${a}`:a??"";return[s,l,`${c||""}${i}`].filter(u=>u!==void 0).join("/")}function N(e){const t=new CustomEvent("notification",{bubbles:!0,cancelable:!1,detail:e});dispatchEvent(t)}const tt={success:(e,t)=>{N({type:"success",message:e,options:t})},info:(e,t)=>{N({type:"info",message:e,options:t})},warning:(e,t)=>{N({type:"warning",message:e,options:t})},error:(e,t)=>{N({type:"error",message:e,options:t})}};var z=(e=>(e[e.DEBUG=0]="DEBUG",e[e.INFO=1]="INFO",e[e.WARN=2]="WARN",e[e.ERROR=3]="ERROR",e[e.NONE=4]="NONE",e))(z||{});let B={level:1,enableConsoleOutput:!0};function rt(e){B={...B,...e}}function Q(e,t,r){if(e<B.level)return;const a=`${`[${z[e]}]`} ${t}`;if(B.enableConsoleOutput)switch(e){case 0:console.debug(a,r||"");break;case 1:console.info(a,r||"");break;case 2:console.warn(a,r||"");break;case 3:console.error(a,r||"");break}}function y(e,t){Q(0,e,t)}function v(e,t){Q(1,e,t)}function O(e,t){Q(2,e,t)}function g(e,t){Q(3,e,t)}async function p(e,t="json"){const r=e.headers.get("sinequa-jwt-refresh");if(r!==null&&A(r),e.status===200)switch(t){case"arraybuffer":return await e.arrayBuffer();case"blob":return await e.blob();case"text":return await e.text();default:return await e.json()}if(e.status===401){if(d.userOverrideActive)throw O("Unauthorized access attempt with user override",{endpoint:e.url}),new D("Unauthorized... User override failed.");return await H(e,401)}return e.status===500?(g("Server error occurred",{endpoint:e.url}),await H(e,500)):(O(`Unexpected response status: ${e.status}`,{endpoint:e.url}),await H(e,e.status))}async function H(e,t){var r;try{const{done:n,value:a}=await((r=e.body)==null?void 0:r.getReader().read())||{done:!0,value:void 0};if(n||!a)throw t===401?new D:t===500?new V:new R(`Request failed with status ${t}`,t);const s=JSON.parse(new TextDecoder().decode(a));throw new Error(s.errorMessage||s.message||`Request failed with status ${t}`,{cause:{errorCode:s.errorCode,errorCodeTest:s.errorCodeTest}})}catch(n){throw n instanceof R?n:t===401?new D(n.message):t===500?new V(n.message):new R(n.message??`Request failed with status ${t}`,t)}}async function nt(e,t,r){const n=L(r==null?void 0:r.headers),{backendUrl:a}=d,s=t?`?${new URLSearchParams(t)}`:"",l=a?`${a}/${e}${s}`:`${e}${s}`;y(`Making DELETE request to: ${l}`);try{const c=await fetch(l,{method:"DELETE",credentials:"include",headers:n});return p(c,r==null?void 0:r.responseType)}catch(c){throw g("Error making DELETE request:",c),c}}async function b(e,t,r){const n=L(r==null?void 0:r.headers),{backendUrl:a}=d,s=t?`?${new URLSearchParams(t)}`:"";e.startsWith("plugin")&&(e=`api/v1/${e}`);const l=a?`${a}/${e}${s}`:`${e}${s}`;y(`Making GET request to: ${l}`);try{const c=await fetch(l,{method:"GET",credentials:"include",headers:n,signal:r==null?void 0:r.signal});return p(c,r==null?void 0:r.responseType)}catch(c){throw g("Error making GET request:",c),c}}async function at(e,t,r){const n=L(r==null?void 0:r.headers),{app:a,backendUrl:s}=d,l={app:a,...t,locale:t.locale||navigator.language,noUserOverride:!0,noAutoAuthentication:!0},c=s?`${s}/${e}`:`${e}`;y(`Making PATCH request to: ${c}`);try{const i=await fetch(c,{method:"PATCH",headers:n,credentials:"include",body:JSON.stringify(l)});return p(i,r==null?void 0:r.responseType)}catch(i){throw g("Error making PATCH request:",i),i}}async function f(e,t,r){const n=L(r==null?void 0:r.headers),{app:a,backendUrl:s}=d;n.has("Content-Type")||n.set("Content-Type","application/json");const l={app:a,...t,locale:t.locale||navigator.language,noUserOverride:!0,noAutoAuthentication:!0};e.startsWith("plugin")&&(e=`api/v1/${e}`);const c=s?`${s}/${e}`:`${e}`;y(`Making POST request to: ${c}`);try{const i=await fetch(c,{method:"POST",headers:n,credentials:"include",body:JSON.stringify(l),signal:r==null?void 0:r.signal});return p(i,r==null?void 0:r.responseType)}catch(i){throw g("Error making POST request:",i),i}}async function ot(e,t,r){const n=L(r==null?void 0:r.headers),{app:a,backendUrl:s}=d,l={app:a,...t,locale:t.locale||navigator.language,noUserOverride:!0,noAutoAuthentication:!0},c=`${s}/${e}`;y(`Making PUT request to: ${c}`);try{const i=await fetch(c,{method:"PUT",headers:n,credentials:"include",body:JSON.stringify(l)});return p(i,r==null?void 0:r.responseType)}catch(i){throw g("Error making PUT request:",i),i}}function st(e){const t=new AbortController,{signal:r}=t;return e&&setTimeout(()=>{r.aborted||t.abort(new E(`Request timed out after ${e}ms`))},e),{controller:t,signal:r}}function J(e){if(!e)return;const t=new Date(e);return Number.isNaN(t.getTime())?void 0:t}function ct(e){const t=J(e);return!!t&&t.getTime()<=Date.now()}function it(e,t=7){const r=J(e);if(!r)return!1;const n=Date.now(),a=n+t*24*60*60*1e3,s=r.getTime();return s>n&&s<=a}async function lt(e,t=0,r=1e3){let n;for(let a=0;a<=t;a++)try{return await e()}catch(s){if(n=s,s instanceof R&&s.status>=400&&s.status<500&&s.status!==429||s instanceof DOMException&&s.name==="AbortError")throw s;a<t&&(O(`Retrying request (${a+1}/${t})`,{error:s}),await new Promise(l=>setTimeout(l,r)))}throw n}function ut(e,t,r){var s,l,c,i;if(!e||!t)return;if(r){const u=Object.keys(t.queries).find(Z=>Z===(r==null?void 0:r.toLowerCase()));let m;u&&(m=t.queries[u]);const K=(l=((s=m==null?void 0:m.columnsInfo)==null?void 0:s.columns)||[])==null?void 0:l.find(Z=>{var Le,Oe;return(Oe=(Le=Z.aliases)==null?void 0:Le.split(","))==null?void 0:Oe.includes(e)});if(K)return K.name}const n=(i=(c=t.indexes)==null?void 0:c._)==null?void 0:i.columns,a=Object.entries(n).find(u=>{var m;return(m=u[1].aliases)==null?void 0:m.includes(e)});if(a)return a[0]}var C=(e=>(e.None="None",e.Search_FirstPage="Search_FirstPage",e.Search_Text="Search_Text",e.Search_Refine="Search_Refine",e.Search_Select_Item="Search_Select_Item",e.Search_Select_Custom="Search_Select_Custom",e.Search_Select_Concept="Search_Select_Concept",e.Search_Select_Correction="Search_Select_Correction",e.Search_GotoPage="Search_GotoPage",e.Search_GotoTab="Search_GotoTab",e.Search_DisplayResult="Search_DisplayResult",e.Search_RemoveResult="Search_RemoveResult",e.Search_RemoveAdvanced="Search_RemoveAdvanced",e.Search_SavedQuery="Search_SavedQuery",e.Search_WebService="Search_WebService",e.Search_DidYouMean_Original="Search_DidYouMean_Original",e.Search_DidYouMean_Correction="Search_DidYouMean_Correction",e.Search_ExportCSV="Search_ExportCSV",e.Search_SavedQuery_ExportCSV="Search_SavedQuery_ExportCSV",e.Search_Selection_ExportCSV="Search_Selection_ExportCSV",e.Search_AlertQuery="Search_AlertQuery",e.Search_Select_AnalyticsItem="Search_Select_AnalyticsItem",e.Search_Sort="Search_Sort",e.Search_Exit_Logout="Search_Exit_Logout",e.Search_Timeline_Usage="Search_Timeline_Usage",e.Search_AutoComplete="Search_Autocomplete",e.Search_Login_Success="Login_Success_Form",e.Search_QueryIntent_Detected="Search_QueryIntent_Detected",e.SavedQuery_Add="SavedQuery_Add",e.SavedQuery_Delete="SavedQuery_Delete",e.SavedQuery_DeleteAll="SavedQuery_DeleteAll",e.SavedQuery_Rename="SavedQuery_Rename",e.Alert_Edit="Alert_Edit",e.Alert_Delete="Alert_Delete",e.Alert_DeleteAll="Alert_DeleteAll",e.Link_Display="Link_Display",e.Link_Click="Link_Click",e.Basket_Add="Basket_Add",e.Basket_Delete="Basket_Delete",e.Basket_DeleteAll="Basket_DeleteAll",e.Basket_Rename="Basket_Rename",e.Basket_AddDoc="Basket_AddDoc",e.Basket_RemoveDoc="Basket_RemoveDoc",e.Basket_Open="Basket_Open",e.Basket_ExportCSV="Basket_ExportCSV",e.Label_Add="Label_Add",e.Label_Delete="Label_Delete",e.Label_Rename="Label_Rename",e.Label_Open="Label_Open",e.Label_AddDoc="Label_AddDoc",e.Label_RemoveDoc="Label_RemoveDoc",e.Label_ExportCSV="Label_ExportCSV",e.Label_Menu_ExportCSV="Label_Menu_ExportCSV",e.Rating_Set="Rating_Set",e.Rating_Delete="Rating_Delete",e.Doc_Preview="Doc_Preview",e.Doc_CacheHtml="Doc_CacheHtml",e.Doc_CachePdf="Doc_CachePdf",e.Doc_CacheOriginal="Doc_CacheOriginal",e.Doc_Url1="Doc_Url1",e.Doc_Url2="Doc_Url2",e.Preview_Close="Preview_Close",e.Click_ResultLink="Click_ResultLink",e.Click_ResultLink1="Click_ResultLink1",e.Click_ResultLink2="Click_ResultLink2",e.Click_ResultLink3="Click_ResultLink3",e.Click_ResultLink4="Click_ResultLink4",e.Click_ResultLink5="Click_ResultLink5",e.Click_ResultLink6="Click_ResultLink6",e.Click_ResultLink7="Click_ResultLink7",e.Click_ResultLink8="Click_ResultLink8",e.Click_ResultLink9="Click_ResultLink9",e.Click_ResultLink10="Click_ResultLink10",e.Click_PreviewLink1="Click_PreviewLink1",e.Click_PreviewLink2="Click_PreviewLink2",e.Click_PreviewLink3="Click_PreviewLink3",e.Click_PreviewLink4="Click_PreviewLink4",e.Click_PreviewLink5="Click_PreviewLink5",e.Click_PreviewLink6="Click_PreviewLink6",e.Click_PreviewLink7="Click_PreviewLink7",e.Click_PreviewLink8="Click_PreviewLink8",e.Click_PreviewLink9="Click_PreviewLink9",e.Click_PreviewLink10="Click_PreviewLink10",e.RFM_ClickSet="RFM_ClickSet",e.RFM_ClickReset="RFM_ClickReset",e.RFM_Like="RFM_Like",e.RFM_LikeReset="RFM_LikeReset",e.RFM_Dislike="RFM_Dislike",e.RFM_Important="RFM_Important",e.RFM_ImportantReset="RFM_ImportantReset",e.RFM_Ban="RFM_Ban",e.Navigation_Exit="Navigation_Exit",e.Navigation_Return="Navigation_Return",e.Navigation_Route="Navigation_Route",e.Answer_Display="Answer_Display",e.Answer_Click="Answer_Click",e.Answer_Result="Answer_Result",e.Answer_Liked="Answer_Liked",e.Answer_Disliked="Answer_Disliked",e.Answer_Liked_Cancelled="Answer_Liked_Cancelled",e.Answer_Disliked_Cancelled="Answer_Disliked_Cancelled",e.TopPassages_Display="TopPassages_Display",e.TopPassages_Click="TopPassages_Click",e.UserSettings_Reset="UserSettings_Reset",e))(C||{}),w=(e=>(e[e.none=0]="none",e[e.bool=1]="bool",e[e.date=2]="date",e[e.dateTime=3]="dateTime",e[e.time=4]="time",e[e.unsigned=5]="unsigned",e[e.integer=6]="integer",e[e.float=7]="float",e[e.double=8]="double",e[e.dates=9]="dates",e[e.dateTimes=10]="dateTimes",e[e.times=11]="times",e[e.varchar=12]="varchar",e[e.binary=13]="binary",e[e.string=14]="string",e[e.csv=15]="csv",e))(w||{}),S=(e=>(e[e.none=0]="none",e[e.a=2053]="a",e[e.c=4]="c",e[e.d=8]="d",e[e.e=2068]="e",e[e.i=256]="i",e[e.l=2052]="l",e[e.n=8192]="n",e[e.t=524292]="t",e[e.x=8388608]="x",e[e.z=33554432]="z",e[e.f_ordinal=8192]="f_ordinal",e[e.f_multidates=8192]="f_multidates",e[e.f_varchar=33554432]="f_varchar",e[e.f_binary=33562624]="f_binary",e[e.f_string=33562888]="f_string",e[e.f_csv=42477853]="f_csv",e[e.f_overridable=33554696]="f_overridable",e))(S||{});const dt="1.0";var le=(e=>(e[e.Original=0]="Original",e[e.Corrected=1]="Corrected",e))(le||{}),ue=(e=>(e[e.none=0]="none",e[e.positiveRate=1]="positiveRate",e[e.mainlyPosRate=2]="mainlyPosRate",e[e.unrate=4]="unrate",e[e.mainlyNegRate=8]="mainlyNegRate",e[e.negativeRate=16]="negativeRate",e[e.all=31]="all",e[e.positiveOnly=7]="positiveOnly",e[e.negativeOnly=28]="negativeOnly",e[e.personalAll=21]="personalAll",e[e.personalPosOnly=5]="personalPosOnly",e[e.personalNegOnly=20]="personalNegOnly",e))(ue||{});function ft(e){if(!e)return w.none;switch(e.toLocaleLowerCase()){case"bool":case"boolean":return w.bool;case"date":return w.date;case"datetime":return w.dateTime;case"time":return w.time;case"unsigned":return w.unsigned;case"integer":return w.integer;case"float":return w.float;case"double":return w.double;case"dates":return w.dates;case"datetimes":return w.dateTimes;case"times":return w.times;case"varchar":return w.varchar;case"binary":return w.binary;case"string":return w.string;case"csv":return w.csv;default:return w.none}}function ht(e){switch(e){case"a":return S.a;case"c":return S.c;case"d":return S.d;case"e":return S.e;case"i":return S.i;case"l":return S.l;case"n":return S.n;case"t":return S.t;case"x":return S.x;case"z":return S.z;default:return S.none}}function gt(e){let t=S.none;if(e)for(const r of e)t|=ht(r);return t}function _(e,t,r,n){const a=ft(t),s=gt(r||"");return{name:e,type:t,typeModifier:r,eType:a,eTypeModifier:s,aliases:n}}const mt={id:_("id","string"),text:_("text","varchar"),documentlanguages:_("documentlanguages","csv","ci",["language"]),databasealias:_("databasealias","varchar"),globalrelevance:_("globalrelevance","double"),matchingpartnames:_("matchingpartnames","csv"),matchlocations:_("matchlocations","csv"),matchlocationsperpartname:_("matchlocationsperpartname","varchar"),extracts:_("extracts","csv"),extractsperpartname:_("extractsperpartname","varchar"),extractslocations:_("extractslocations","csv"),documentweight:_("documentweight","varchar"),groupcount:_("groupcount","integer"),accesslists:_("accesslists","varchar",void 0,["accessLists"])};function wt(e,t){let r=e[t];return r===void 0?[]:(typeof r=="string"&&(r=String(r).split(",")),Array.isArray(r)?r.map(n=>{if(typeof n=="string")return n.trim();if(typeof n=="object"&&n!==null&&"display"in n)return n.display.trim()}).filter(n=>n!==void 0):[String(r).trim()])}function _t(e,t){let r=e[t];if(r===void 0)return[];if(typeof r=="string"&&(r=String(r).split(",")),Array.isArray(r))return r.map(a=>{if(typeof a=="string")return{display:a.trim(),value:a.trim()};if(typeof a=="object"&&a!==null&&"display"in a){const s=a.display.trim(),l="value"in a?String(a.value).trim():s;return{display:s,value:l}}}).filter(a=>a!==void 0);const n=String(r).trim();return[{display:n,value:n}]}function I(e){return e!==null&&typeof e=="object"}function de(e){return I(e)&&Object.prototype.toString.call(e)==="[object ArrayBuffer]"}function fe(e){return I(e)&&Object.prototype.toString.call(e)==="[object Blob]"}function he(e){return typeof e=="string"}function St(e){return(I(e)||Array.isArray(e))&&!de(e)&&!fe(e)&&!he(e)}function ge(e=!0){let t=Date.now();return(e?"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx":"xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx").replace(/[xy]/g,n=>{const a=(t+Math.random()*16)%16|0;return t=Math.floor(t/16),(n==="x"?a:a&3|8).toString(16)})}function kt(e){if(!e)return"``";if(e=String(e),e.search(/[\\`]/)===-1)return"`"+e+"`";const t=["`"];for(let r=0,n=e.length;r<n;r++){const a=e[r];(a==="\\"||a==="`")&&t.push("\\"),t.push(a)}return t.push("`"),t.join("")}function vt(e){if(typeof crypto<"u"&&crypto.subtle&&typeof crypto.subtle.digest=="function")try{return crypto.subtle.digest("SHA-512",new TextEncoder().encode(e)).then(t=>Array.prototype.map.call(new Uint8Array(t),r=>("00"+r.toString(16)).slice(-2)).join("")).catch(()=>Promise.resolve(M(e)))}catch{return Promise.resolve(M(e))}return Promise.resolve(M(e))}function M(e){let n=2166136261;for(let m=0;m<e.length;m++)n^=e.charCodeAt(m),n=n*16777619>>>0;const a=n.toString(16).padStart(8,"0"),s=((n^2863311530)>>>0).toString(16).padStart(8,"0"),l=((n^1431655765)>>>0).toString(16).padStart(8,"0"),c=((n^3435973836)>>>0).toString(16).padStart(8,"0"),i=a+s+l+c;return(i+i+i+i).substring(0,128)}let W,me;function U(e,t=!0){let r=bt(e.$auditRecord);r&&(we(r),t&&_e(r)),e.$auditRecord=r}function bt(e){if(!e)return;let t;if(Array.isArray(e))t=e;else if(I(e)){const r=e;if(r.auditEvents||r.mlAuditEvents)return r;t=[e]}return{auditEvents:t}}function we(e){var r;const t=Ct();return(r=e.auditEvents)==null||r.forEach(n=>{n.detail||(n.detail={}),n.detail.sessionid=t}),e}function _e(e){var r;const t=typeof window<"u"?decodeURIComponent(window.location.href):"http://localhost";return(r=e==null?void 0:e.auditEvents)==null||r.forEach(n=>{n.detail||(n.detail={}),n.detail.url=t}),e}function Ct(){return(!W||Rt())&&(W=ge()),me=new Date,W}function Rt(){return new Date().getTime()-me.getTime()>10*60*1e3}async function pt(e,t=!0){const r={event:C.None,$auditRecord:e};return U(r,t),f("api/v1/audit.notify",r)}const Pt={notify:pt};async function yt(e,t,r){var m;const n=((m=e.items)==null?void 0:m.length)||0,a=10,s={query:{...t,action:"aggregate",aggregations:{[e.name]:{skip:n,count:a}}},$auditRecord:{auditEvents:[r]}};U(s);const l=await f("api/v1/query",s),c=await p(l),{aggregations:i}=c,u=i[0];return u.$hasMore=u.items.length>a,u.items=[...e.items,...u.items],Promise.resolve(u)}async function Lt(){const{app:e}=d,t=new URLSearchParams({app:e||""});return b("api/v1/app",t)}async function Se(){const{app:e}=d,t=new URLSearchParams({app:e||"",preLogin:"true"});return b("api/v1/app",t)}function Ot(){let{backendUrl:e,app:t,useCredentials:r}=d;if(typeof window<"u"){if(e||(e=window.location.origin),!t){const n=window.location.pathname.match(/\/app(?:-debug)?\/([^/#]+)/);n&&(t=n[1])}k({...d,backendUrl:e,app:t})}return r?(k({...d,useCredentials:!0,useSSO:!1,autoOAuthProvider:void 0,autoSAMLProvider:void 0,bearerToken:void 0,useSAML:void 0}),Promise.resolve({})):Se().then(n=>{const{autoOAuthProvider:a,autoSAMLProvider:s}=d,l=!a&&!n.autoOAuthProvider&&!s&&!n.autoSAMLProvider;return k({...d,autoOAuthProvider:a||n.autoOAuthProvider,autoSAMLProvider:s||n.autoSAMLProvider,useCredentials:l,useSSO:l}),n}).catch(n=>{throw g("atomic:fetchAppPreLogin error",n),n})}async function Ut(e,t,r={}){const n=`api/v1/search.dataset/${e}/${t}`,a=await f(n,{parameters:r}),s=t[0].toLowerCase()+t.slice(1),l=a.datasets[s];if("errorCode"in l&&"errorMessage"in l)throw new Error(l.errorMessage);return l}async function $t(e,t){const r=`api/v1/search.dataset/${e}`,{parameters:n={},datasets:a=[]}=t;return(await f(r,{parameters:n,datasets:a})).datasets}async function It(e){return await b(`api/v1/search.dataset/${e}`)}async function At(e,t=!0,r){try{return(await f("api/v1/labels",{action:"list",q:e,public:t,locale:r,localize:!1})).labels}catch(n){throw g("Error in fetchLabels",n),n}}async function Dt(){try{const{app:e=""}=d,t=new URLSearchParams({app:e,action:"getUserRights"});return b("api/v1/labels",t)}catch(e){throw g("Error in getUserRights",e),e}}async function Ft(e,t,r=!0){try{const n={action:"add",labels:e,ids:t,public:r,$auditRecord:{auditEvents:[{type:C.Label_AddDoc,detail:{public:r,label:e?e.toString():null,doccount:t?t.length:0}}],mlAuditEvents:[{actionType:"addToLabel",documentIds:t}]}};return f("api/v1/labels",n)}catch(n){throw g("Error in add",n),n}}async function Nt(e,t,r=!0){try{const n={action:"remove",labels:e,ids:t,public:r,$auditRecord:{auditEvents:[{type:C.Label_RemoveDoc,detail:{public:r,label:e?e.toString():null,doccount:t?t.length:0}}],mlAuditEvents:[{actionType:"removeFromLabel",documentIds:t}]}};return f("api/v1/labels",n)}catch(n){throw g("Error in remove",n),n}}async function Bt(e,t,r=!0){try{const n={action:"rename",labels:e,newLabel:t,public:r,auditEvents:{type:C.Label_Rename,detail:{public:r,oldlabel:e?e.toString():null,label:t}}};return f("api/v1/labels",n)}catch(n){throw g("Error in rename",n),n}}async function Qt(e,t=!0){try{const r={action:"delete",labels:e,public:t,auditEvents:{type:C.Label_Delete,detail:{public:t,label:e?e.toString():null}}};return f("api/v1/labels",r)}catch(r){throw g("Error in deleteLabels",r),r}}async function qt(e,t,r=!0){try{const n={action:"bulkAdd",labels:e,query:t,public:r,auditEvents:{type:C.Label_Add,detail:{public:r,label:e?e.toString():null,query:t!==null?t.name:null}}};return f("api/v1/labels",n)}catch(n){throw g("Error in bulkAdd",n),n}}async function xt(e,t,r=!0){try{const n={action:"bulkRemove",labels:e,query:t,public:r,auditEvents:{type:C.Label_Delete,detail:{public:r,label:e?e.toString():null,query:t!==null?t.name:null}}};return f("api/v1/labels",n)}catch(n){throw g("Error in bulkRemove",n),n}}const Vt={getUserRights:Dt,add:Ft,remove:Nt,rename:Bt,delete:Qt,bulkAdd:qt,bulkRemove:xt};async function jt(e,t){if(typeof window>"u")return f("api/v1/preview",{action:"get",id:e,query:t});const r=`${window.location.origin}${window.location.pathname}`,n={name:t==null?void 0:t.name,text:t==null?void 0:t.text};return f("api/v1/preview",{action:"get",id:e,query:n,browserUrl:r})}async function Gt(e){const t=new Headers;t.append("content-type","text");const r=await fetch(e,{method:"GET",headers:t});p(r)}async function ke(){const e=new URLSearchParams({action:"get",noAutoAuthentication:"true"});return b("api/v1/principal",e)}const ve=11;async function zt(e,t,r){var l;const a=await f("api/v1/query",{query:e,$auditRecord:t,queryIntentData:r});a.aggregations.forEach(c=>{c.$hasMore=!1,!c.isDistribution&&!c.isTree&&c.items&&(c.$hasMore=c.items.length===ve),c.isTree&&c.items&&q(c)}),(l=a.records)==null||l.map(c=>Object.assign(c,{value:c.title,type:"default"}));const s={...a,nextPage:a.page<Math.ceil(a.rowCount/a.pageSize)?a.page+1:void 0,previousPage:a.page>1?a.page-1:void 0};return Promise.resolve(s)}async function Ht(e,t,r){const{app:n=""}=d,a={methods:[],mode:t,propagateErrors:!0,$auditRecord:{auditEvents:[r]}};for(const c of e)a.methods.push({method:"query",app:n,query:c});const s=await f("api/v1/multi",a);s.results.forEach(c=>{c.aggregations.forEach(i=>{i.$hasMore=!1,!i.isDistribution&&!i.isTree&&i.items&&(i.$hasMore=i.items.length===ve),i.isTree&&q(i)})}),s.results.forEach(c=>{var i;return(i=c.records)==null?void 0:i.map(u=>Object.assign(u,{value:u.title,type:"default"}))});const l=s.results.map(c=>({...c,nextPage:c.page<Math.ceil(c.rowCount/c.pageSize)?c.page+1:void 0,previousPage:c.page>1?c.page-1:void 0}));return Promise.resolve(l)}function q(e,t="",r=0){let n=[];return e.items&&e.items.forEach(a=>{let s=t?`${t}/${a.value}`:a.value,l=r+1;n.push({path:s,level:l}),a.$path=s,a.$level=l,a.hasChildren?n=n.concat(q(a,s,l)):a.hasChildren=!1}),n}async function Jt({model:e,appName:t,query:r,article:n}){const{webservice:a,format:s,maxcount:l,exportedColumns:c,export:i}=e,u={app:t,webservice:a,query:r,type:i,format:s,maxcount:l,exportedColumns:c,$auditRecord:{auditEvents:[{type:"Search_ExportCSV",detail:{resultid:n?n.id:void 0}}]}};return U(u),await f("api/v1/search.queryexport",u,{responseType:"blob"})}async function Mt(e){const r=await f("api/v1/queryintent",{query:e});return r==null?void 0:r.intents}async function Wt(e,t,r){return(await f("api/v1/similardocuments",{sourceDocumentId:e,query:{name:t}},{signal:r})).data}async function Xt(e,t){var a;const n=await f("api/v1/query.links",{webservice:e,query:t});return(a=n==null?void 0:n.links)==null?void 0:a.map(s=>({...s,query:t}))}async function Yt(e,t,r,n,a){const{app:s}=d,l={app:s||"",suggestQuery:e,text:t,filter:r,kinds:n,showSource:a};try{return(await f("api/v1/search.suggest",l)).suggests}catch(c){throw console.error("Error fetching suggestions:",c),c}}async function Kt(e,t,r,n){const{app:a}=d;return(await f("api/v1/suggestquery",{app:a||"",suggestQuery:e,text:t,query:r,kinds:n})).suggests}async function Zt(e,t){if(!t)return Promise.resolve([]);const{app:r}=d;return(await f("api/v1/suggestfield",{app:r||"",text:e,action:"suggests",fields:t})).suggests}async function Et(e,t,r,n,a,s){return f("api/v1/doc.textchunks",{id:e,textChunks:t,highlights:r,query:n,leftSentencesCount:a,rightSentencesCount:s})}async function Tt(){const{app:e}=d,t=new URLSearchParams({app:e||"",action:"load"});return b("api/v1/usersettings",t)}async function be(e,t){const r={action:"save",userSettings:e,$auditRecord:{auditEvents:[t]}};return U(r),f("api/v1/usersettings",r)}async function er(e,t){const n={action:"patch",userSettings:e,$auditRecord:t?{auditEvents:[t]}:void 0};return U(n),f("api/v1/usersettings",n)}async function tr(){return be({},{type:"UserSettings_Reset"})}async function rr(e,t){return f("api/v2/security/password/change",{newPassword:e,currentPassword:t})}async function nr(e){const t="api/v2/security/password/ask-reset-email",n={changePasswordRedirectUrl:`${window.location.origin}/login?mode=changepassword`,userName:e};return f(t,n)}async function ar(){return await b("api/v2/version")}const Ce=async()=>{const{autoOAuthProvider:e}=d;if(typeof window>"u")return f("security.oauth",{action:"getcode",provider:e,tokenInCookie:!0,originalUrl:"http://localhost"});const t={action:"getcode",provider:e,tokenInCookie:!0,originalUrl:window.location.href};try{const r=await f("api/v1/security.oauth",t);return r.redirectUrl&&(window.location.href=r.redirectUrl),r}catch(r){throw console.error("Failed to authenticate with OAuth",r),r}},Re=async()=>{const{autoSAMLProvider:e}=d;if(typeof window>"u")return f("security.saml",{action:"getresponse",provider:e,tokenInCookie:!0,originalUrl:"http://localhost"});const t={action:"getresponse",provider:e,tokenInCookie:!0,originalUrl:window.location.href};try{const r=await f("api/v1/security.saml",t);return r.redirectUrl&&(window.location.href=r.redirectUrl),r}catch(r){throw console.error("Failed to authenticate with SAML",r),r}},X={store:{},getItem(e){return this.store[e]??null},setItem(e,t){this.store[e]=t.toString()},removeItem(e){delete this.store[e]},clear(){this.store={}}},Y=X;function or(e){return typeof window>"u"||!window.localStorage?X.getItem(e):window.localStorage.getItem(e)}function sr(e){typeof window>"u"||!window.localStorage?X.removeItem(e):window.localStorage.removeItem(e)}function cr(e){return typeof window>"u"||!window.sessionStorage?Y.getItem(e):window.sessionStorage.getItem(e)}function ir(e,t){typeof window>"u"||!window.sessionStorage?Y.setItem(e,t):window.sessionStorage.setItem(e,t)}function lr(e){typeof window>"u"||!window.sessionStorage?Y.removeItem(e):window.sessionStorage.removeItem(e)}const A=e=>ir("sinequa-credentials",JSON.stringify({data:{csrfToken:e}})),pe=async()=>{try{const e=await b("api/v1/challenge?action=getCsrfToken&suppressErrors=true");return e!=null&&e.csrfToken?(A(e.csrfToken),e.csrfToken):null}catch(e){throw g("Failed to get CSRF token",e),e}};async function Pe(e){if(e){const{username:t,password:r}=e,n={action:"get",tokenInCookie:!0,user:t,password:r,noUserOverride:!0,noAutoAuthentication:!0};try{const a=await f("api/v1/security.webtoken",n);return a!=null&&a.csrfToken?(A(a.csrfToken),a.csrfToken):null}catch(a){throw console.error("Failed to get JWT",a),a}}else{const t={action:"get",tokenInCookie:!0,noUserOverride:!0,noAutoAuthentication:!1},{bearerToken:r}=d;if(!r)throw new Error("Bearer token is required in globalConfig for credentialless JWT retrieval.");const n=new Headers;n.append("Sinequa-Force-Camel-Case","true"),n.append("accept","application/json"),n.append("Content-Type","application/json"),n.append("Authorization",`Bearer ${r}`);try{const a=await f("api/v1/security.webtoken",t,{headers:n});return a.csrfToken?(A(a.csrfToken),a.csrfToken):null}catch(a){throw console.error("Failed to get JWT without credentials",a),a}}}const x=()=>{var r;const e=cr("sinequa-credentials");if(e)try{const a=(r=JSON.parse(e).data)==null?void 0:r.csrfToken;if(a!==void 0)return a}catch{}const t=or("csrfToken");return t!==null?t:null},ur=async e=>{if(e)v("Attempting authentication using credentials"),k({useCredentials:!0,useSSO:!1});else{let c=null;try{v("Attempting to retrieve CSRF token from the backend"),c=await pe(),y("CSRF token retrieval result",c?"success":"failed")}catch(i){g("Failed to retrieve CSRF token",i)}try{if(c===null){const{autoOAuthProvider:i,autoSAMLProvider:u,useSAML:m}=d;if(i&&!m)return v("Initiating OAuth authentication flow"),await Ce(),O("OAuth authentication flow did not redirect as expected"),h(!1),!1;if(u)return v("Initiating SAML authentication flow"),await Re(),O("SAML authentication flow did not redirect as expected"),h(!1),!1;v("No direct authentication method available, will try SSO then credentials"),k({useCredentials:!0,useSSO:!0})}else return v("User authenticated via existing token"),h(!0),!0}catch(i){throw g("Unexpected error during authentication",i),h(!1),i}}if(d.useCredentials&&d.useSSO)try{if(v("Checking if user is authenticated via SSO"),await ke())return v("User authenticated using SSO"),k({useCredentials:!1,useSSO:!0}),h(!0),!0}catch(c){if((c==null?void 0:c.status)===401)return v("SSO authentication failed with 401, falling back to credentials"),k({useCredentials:!0,useSSO:!1}),!1;throw g("SSO authentication failed with unexpected error",c),h(!1),g}const{useSSO:r}=d,n=x();if(n&&n!==null||r)return v("user already authenticated",n),k({isRedirectUrl:!1}),h(!0),!0;const{useCredentials:a}=d,{username:s,password:l}=e||{};if(a&&!s&&!l)return g("Credentials are required for authentication"),h(!1),!1;if(s&&l)try{v("authentication using credentials..."),k({useCredentials:!0,useSSO:!1});const{userOverrideActive:c,useroverride:i}=d;return k({userOverrideActive:!1,useroverride:void 0}),await Pe({username:s,password:l}),k({userOverrideActive:c,useroverride:i}),h(!0),!0}catch(c){throw h(!1),c}return h(!1),g("No authentication method available. Please provide credentials or configure OAuth/SAML."),!1},ye=async()=>{const e=new URLSearchParams({action:"deleteWebTokenCookie",noUserOverride:"true",noAutoAuthentication:"true"});return b("api/v1/challenge",e)},dr=async()=>{const{useCredentials:e,userOverrideActive:t}=d;sr("csrfToken"),lr("sinequa-credentials"),e&&!t?(await ye()).methodresult==="ok"?h(!1):console.error("logout failed"):h(!1)},fr=()=>!!x();o.ApiError=R,o.Audit=Pt,o.AuditEventType=C,o.DidYouMeanKind=le,o.EngineType=w,o.EngineTypeModifier=S,o.LogLevel=z,o.MINIMUM_COMPATIBLE_SERVER_API_VERSION=dt,o.RFMDisplay=ue,o.ServerError=V,o.TimeoutError=E,o.UnauthorizedError=D,o.addAuditAdditionalInfo=U,o.addConcepts=Ve,o.addSessionId=we,o.addUrl=_e,o.aggItemRegex=T,o.aggregationItemStrictCompare=Ie,o.appInitializerFn=Ot,o.bisect=De,o.buildPathsAndLevels=q,o.configureLogger=rt,o.createHeaders=L,o.createTimeoutController=st,o.debug=y,o.del=nt,o.deleteUserSettings=tr,o.deleteWebTokenCookie=ye,o.emitAuthenticatedEvent=h,o.error=g,o.escapeExpr=kt,o.expiresSoon=it,o.extraColumns=mt,o.fetchAggregation=yt,o.fetchApp=Lt,o.fetchAppPreLogin=Se,o.fetchBulkQuery=Ht,o.fetchChangePassword=rr,o.fetchDataset=Ut,o.fetchDatasetList=It,o.fetchDatasets=$t,o.fetchLabels=At,o.fetchPreview=jt,o.fetchPreviewUrl=Gt,o.fetchPrincipal=ke,o.fetchQuery=zt,o.fetchQueryExport=Jt,o.fetchQueryIntent=Mt,o.fetchSendPasswordResetEmail=nr,o.fetchSimilarDocuments=Wt,o.fetchSponsoredLinks=Xt,o.fetchSuggest=Yt,o.fetchSuggestField=Zt,o.fetchSuggestQuery=Kt,o.fetchTextChunks=Et,o.fetchUserSettings=Tt,o.fetchVersion=ar,o.get=b,o.getConcepts=ze,o.getCsrfToken=pe,o.getFiltersFromURI=j,o.getFiltersFromUrl=Xe,o.getHelpIndexUrl=et,o.getIdFromUrl=Ke,o.getJWToken=Pe,o.getMetadata=wt,o.getMetadataWithValues=_t,o.getOffsetFromDates=ie,o.getQueryPageFromUrl=Ze,o.getQueryParamsFromUrl=Me,o.getQueryTabFromUrl=Ee,o.getQueryTextFromUrl=Ye,o.getRelativeDate=He,o.getToken=x,o.getUrlParamsFromQueryParams=We,o.globalConfig=d,o.guid=ge,o.handleResponse=p,o.info=v,o.isArrayBuffer=de,o.isAuthenticated=fr,o.isBlob=fe,o.isExpired=ct,o.isJsonable=St,o.isNotInputEvent=Je,o.isObject=I,o.isString=he,o.labels=Vt,o.login=ur,o.logout=dr,o.makeColumn=_,o.notify=tt,o.openParentNodes=te,o.parseText=$,o.parseValueAndOperatorFromItem=ee,o.patch=at,o.patchUserSettings=er,o.post=f,o.put=ot,o.queryParamsFromUrl=P,o.removeConcept=je,o.removeConcepts=Ge,o.resolveToColumnName=ut,o.rewriteText=F,o.saveUserSettings=be,o.setGlobalConfig=k,o.setToken=A,o.sha512=vt,o.suggestionsToTreeAggregationNodes=Ae,o.sysLang=Te,o.toDate=J,o.translateAggregationToDateOptions=$e,o.tryOAuthAuthentication=Ce,o.trySAMLAuthentication=Re,o.warn=O,o.withRetry=lt,Object.defineProperty(o,Symbol.toStringTag,{value:"Module"})});
1
+ (function(s,h){typeof exports=="object"&&typeof module<"u"?h(exports):typeof define=="function"&&define.amd?define(["exports"],h):(s=typeof globalThis<"u"?globalThis:s||self,h(s.atomic={}))})(this,function(s){"use strict";var vr=Object.defineProperty;var br=(s,h,d)=>h in s?vr(s,h,{enumerable:!0,configurable:!0,writable:!0,value:d}):s[h]=d;var De=(s,h,d)=>br(s,typeof h!="symbol"?h+"":h,d);function h(e){const t=new CustomEvent("authenticated",{bubbles:!0,cancelable:!1,detail:{authenticated:e}});dispatchEvent(t)}const d={loginPath:"/login",createRoutes:!1};function v(e){Object.assign(d,e)}function L(e){const t=j(),r=new Headers(e);r.append("Sinequa-Force-Camel-Case","true"),r.append("accept","application/json"),t&&r.append("Sinequa-csrf-token",t);const{userOverride:n,userOverrideActive:a,bearerToken:o}=d;return o&&r.append("Authorization",`Bearer ${o}`),n&&a&&(r.append("sinequa-override-user",n.username),r.append("sinequa-override-domain",n.domain)),r}class p extends Error{constructor(r,n){super(r);De(this,"status");this.name="ApiError",this.status=n}}class V extends p{constructor(t="Server error"){super(t,500),this.name="ServerError"}}class T extends p{constructor(t="Request timed out"){super(t,408),this.name="TimeoutError"}}class D extends p{constructor(t="Unauthorized access"){super(t,401),this.name="UnauthorizedError"}}const ee=/.*\:\(?([><=\d\-\.AND ]+)\)?/;function Fe(e,t){var a;return!(e!=null&&e.items)||((a=e==null?void 0:e.items)==null?void 0:a.length)===0?[]:e.items.reduce((o,l)=>{if(!l.value||l.value==="")return o;const i=te(l,e.column);return o.push({operator:i.operator,value:i.value,display:l.display||i.display,filters:i.filters,disabled:l.count===0,hidden:l.count===0&&e.isDistribution?!t:!1}),o},[])}function te(e,t){const r=t,n=e.value.match(ee);if(n!=null&&n[1]){const o=(n==null?void 0:n[1].split(" AND ")).map(l=>{const i=l.indexOf(">=")!==-1?"gte":"lt";let c=l.substring(l.indexOf(" ")+1);return{field:r,operator:i,value:c,display:e.display||e.value}});if(o.length===2)return{field:r,operator:"and",filters:o,value:e.value,display:o[0].display||o[0].value};if(o.length===1)return{...o[0],field:r};throw new Error("Failed to parse distribution expression")}return{field:r,operator:"eq",value:e.value,display:e.display}}function Ne(e,t,r){return e.valuesAreExpressions?t.display===r.display:t.value===r.value}function re(e){return e.items&&(e.items=e.items.map(t=>re(t))),e.items&&e.items.some(t=>t.$selected||t.$opened)&&(e.$opened=!0),e}function Be(e,t){const r=[];if(e.length>0){const n=new Map,o=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").normalize("NFD").replace(/[\u0300-\u036f]/g,""),l=new RegExp("\\b"+o,"i");e.forEach(i=>{if(i.display.length>1){const c=i.display.normalize("NFD").replace(/[\u0300-\u036f]/g,""),u=l.exec(c);ne(r,n,"/",i.display,+(i.frequency||0),1,((u==null?void 0:u.index)||0)+t.length)}})}return r}function ne(e,t,r,n,a,o,l){const i=n.indexOf("/",r.length),c=n.substring(0,i+1);let u=t.get(c);if(!u){const m=c.replace(/^\/|\/$/g,"");u={value:n.substring(r.length,i),count:a,items:[],hasChildren:!1,$level:o,$opened:l>=c.length,$path:m},t.set(c,u),e.push(u)}c.length<n.length&&(u.hasChildren=!0,ne(u.items,t,c,n,a,o+1,l))}function Qe(e,t){return e.reduce((r,n)=>(t(n)?r.true.push(n):r.false.push(n),r),{true:[],false:[]})}const qe=/(([\+\-])?\(([^\)]+)\))|(([\+\-])?\[([^\]]+)\])|(([\+\-])?\"([^\"]+)\")|(([\+\-])?\/([^\/]+)\/)|(([\+\-])?(\S+))/g,je=2,ae=3,Ve=5,se=6,xe=8,oe=9,Ge=11,ie=12,ze=14,ce=15;function $(e){if(!e)return[];const t=[],r=e.matchAll(qe);for(let n of r)n[ae]?t.push({type:"group",value:n[ae],op:n[je]}):n[se]?t.push({type:"adjacent",value:n[se],op:n[Ve]}):n[oe]?t.push({type:"exact",value:n[oe],op:n[xe]}):n[ie]?t.push({type:"regex",value:n[ie],op:n[Ge]}):n[ce]&&t.push({type:"token",value:n[ce],op:n[ze]});return t}function F(e){return e.map(t=>{const r=t.op||"";switch(t.type){case"group":return`${r}(${t.value})`;case"adjacent":return`${r}[${t.value}]`;case"exact":return`${r}"${t.value}"`;case"regex":return`${r}/${t.value}/`;case"token":return`${r}${t.value}`}}).join(" ")}function He(e,t,r){let n=$(e);for(let a of t)n.push({type:"adjacent",value:a,op:r});return F(n)}function Je(e,t){const r=$(t),n=r.findIndex(a=>a.value===e);return n!==-1?(r.splice(n,1),t=F(r)):t}function Me(e){const t=$(e).filter(r=>r.type!=="adjacent");return F(t)}function We(e){return $(e).filter(t=>t.type==="adjacent").map(t=>t.value)}function Xe(e,t,r){const n=new Intl.RelativeTimeFormat(e,{numeric:"auto"}),{offset:a,unit:o,isFuture:l}=le(t,r);return n.format(a*(l?1:-1),o)}function le(e,t){const r=new Date(e),n=t?new Date(t):new Date,a=Math.abs(n.getTime()-r.getTime());return{offset:Math.floor(a/(1e3*60*60*24)),unit:"day",isFuture:r>n}}function Ye(e){const t=e.target;return t&&t.nodeName!=="INPUT"&&t.nodeName!=="TEXTAREA"}function Ke(e){if(e===void 0)return;const{q:t,f:r,p:n,s:a,t:o,n:l,b:i}=R(e),[c]=e.split("?");return{path:c,text:t,filters:r?x(r):void 0,page:n?parseInt(n,10):void 0,sort:a,tab:o,name:l,basket:i}}function Ze(e){if(!e)return"";const{text:t,filters:r,page:n,sort:a,tab:o,name:l,basket:i}=e,c={};t&&(c.q=t),r&&(c.f=JSON.stringify(r)),n&&(c.p=n.toString()),a&&(c.s=a),o&&(c.t=o),l&&(c.n=l),i&&(c.b=i);const u=new URLSearchParams(c).toString();return u||""}function Ee(e){if(e===void 0)return[];const{f:t}=R(e);return x(t)}function x(e){const t=decodeURIComponent(e);try{return JSON.parse(t??"[]")}catch{return console.error(`Error parsing filters from URI: ${e}`),[]}}function R(e){const t=e.split("?")[1];if(t===void 0)return{};const r=new URLSearchParams(t);return Object.fromEntries(r)}function Te(e){const{q:t=""}=R(e);return t}function et(e){const{id:t}=R(e);return decodeURIComponent(t)}function tt(e){const{p:t="0"}=R(e);return parseInt(t,10)}function rt(e){const{t}=R(e);return t}function nt(e,t){if(!e)return e;let r=0;const n=e.length;let a=0;if(e[a]==="["){for(;a<n&&/[0-9]/.test(e[a]);)a++;e[a]==="]"&&(r=a+1)}const o=G(e,r,!1);if(!o)return e;const l=t.charCodeAt(0),i=t.charCodeAt(1);let c=o;for(;c;)if(l===c.lang1&&i===c.lang2){const m=G(e,c.end+4,!0);return e.substring(m.start,m.end)}else c=G(e,c.end+4,!1);const u=e.substring(o.start,o.end);return u||e}function G(e,t,r){for(let n=t,a=e.length-3;n<a;n++)if(e[n]==="["&&e[n+3]==="]")return{start:t,end:n,lang1:e.charCodeAt(n+1),lang2:e.charCodeAt(n+2)};if(r)return{start:t,end:e.length,lang1:-1,lang2:-1}}function at(e,t){const{useLocale:r,useLocaleAsPrefix:n,indexFile:a,path:o,folder:l}=t,i=r?`${e}/`:null,c=n?`${e}.${a}`:a??"";return[o,l,`${i||""}${c}`].filter(u=>u!==void 0).join("/")}function N(e){const t=new CustomEvent("notification",{bubbles:!0,cancelable:!1,detail:e});dispatchEvent(t)}const st={success:(e,t)=>{N({type:"success",message:e,options:t})},info:(e,t)=>{N({type:"info",message:e,options:t})},warning:(e,t)=>{N({type:"warning",message:e,options:t})},error:(e,t)=>{N({type:"error",message:e,options:t})}};var z=(e=>(e[e.DEBUG=0]="DEBUG",e[e.INFO=1]="INFO",e[e.WARN=2]="WARN",e[e.ERROR=3]="ERROR",e[e.NONE=4]="NONE",e))(z||{});let B={level:1,enableConsoleOutput:!0};function ot(e){B={...B,...e}}function Q(e,t,r){if(e<B.level)return;const a=`${`[${z[e]}]`} ${t}`;if(B.enableConsoleOutput)switch(e){case 0:console.debug(a,r||"");break;case 1:console.info(a,r||"");break;case 2:console.warn(a,r||"");break;case 3:console.error(a,r||"");break}}function y(e,t){Q(0,e,t)}function b(e,t){Q(1,e,t)}function U(e,t){Q(2,e,t)}function g(e,t){Q(3,e,t)}async function P(e,t="json"){const r=e.headers.get("sinequa-jwt-refresh");if(r!==null&&I(r),e.status===200)switch(t){case"arraybuffer":return await e.arrayBuffer();case"blob":return await e.blob();case"text":return await e.text();default:return await e.json()}if(e.status===401){if(d.userOverrideActive)throw U("Unauthorized access attempt with user override",{endpoint:e.url}),new D("Unauthorized... User override failed.");return await H(e,401)}return e.status===500?(g("Server error occurred",{endpoint:e.url}),await H(e,500)):(U(`Unexpected response status: ${e.status}`,{endpoint:e.url}),await H(e,e.status))}async function H(e,t){var r;try{const{done:n,value:a}=await((r=e.body)==null?void 0:r.getReader().read())||{done:!0,value:void 0};if(n||!a)throw t===401?new D:t===500?new V:new p(`Request failed with status ${t}`,t);const o=JSON.parse(new TextDecoder().decode(a));throw new Error(o.errorMessage||o.message||`Request failed with status ${t}`,{cause:{errorCode:o.errorCode,errorCodeTest:o.errorCodeTest}})}catch(n){throw n instanceof p?n:t===401?new D(n.message):t===500?new V(n.message):new p(n.message??`Request failed with status ${t}`,t)}}async function it(e,t,r){const n=L(r==null?void 0:r.headers),{backendUrl:a}=d,o=t?`?${new URLSearchParams(t)}`:"",l=a?`${a}/${e}${o}`:`${e}${o}`;y(`Making DELETE request to: ${l}`);try{const i=await fetch(l,{method:"DELETE",credentials:"include",headers:n});return P(i,r==null?void 0:r.responseType)}catch(i){throw g("Error making DELETE request:",i),i}}async function _(e,t,r){const n=L(r==null?void 0:r.headers),{backendUrl:a}=d,o=t?`?${new URLSearchParams(t)}`:"";e.startsWith("plugin")&&(e=`api/v1/${e}`);const l=a?`${a}/${e}${o}`:`${e}${o}`;y(`Making GET request to: ${l}`);try{const i=await fetch(l,{method:"GET",credentials:"include",headers:n,signal:r==null?void 0:r.signal});return P(i,r==null?void 0:r.responseType)}catch(i){throw g("Error making GET request:",i),i}}async function ue(e,t,r){const n=L(r==null?void 0:r.headers);n.append("content-type","application/json");const{app:a,backendUrl:o}=d,l={app:a,...t,locale:t.locale||navigator.language,noUserOverride:!0,noAutoAuthentication:!0},i=o?`${o}/${e}`:`${e}`;y(`Making PATCH request to: ${i}`);try{const c=await fetch(i,{method:"PATCH",headers:n,credentials:"include",body:JSON.stringify(l)});return P(c,r==null?void 0:r.responseType)}catch(c){throw g("Error making PATCH request:",c),c}}async function f(e,t,r){const n=L(r==null?void 0:r.headers),{app:a,backendUrl:o}=d;n.has("Content-Type")||n.set("Content-Type","application/json");const l={app:a,...t,locale:t.locale||navigator.language,noUserOverride:!0,noAutoAuthentication:!0};e.startsWith("plugin")&&(e=`api/v1/${e}`);const i=o?`${o}/${e}`:`${e}`;y(`Making POST request to: ${i}`);try{const c=await fetch(i,{method:"POST",headers:n,credentials:"include",body:JSON.stringify(l),signal:r==null?void 0:r.signal});return P(c,r==null?void 0:r.responseType)}catch(c){throw g("Error making POST request:",c),c}}async function ct(e,t,r){const n=L(r==null?void 0:r.headers),{app:a,backendUrl:o}=d,l={app:a,...t,locale:t.locale||navigator.language,noUserOverride:!0,noAutoAuthentication:!0},i=`${o}/${e}`;y(`Making PUT request to: ${i}`);try{const c=await fetch(i,{method:"PUT",headers:n,credentials:"include",body:JSON.stringify(l)});return P(c,r==null?void 0:r.responseType)}catch(c){throw g("Error making PUT request:",c),c}}function lt(e){const t=new AbortController,{signal:r}=t;return e&&setTimeout(()=>{r.aborted||t.abort(new T(`Request timed out after ${e}ms`))},e),{controller:t,signal:r}}function J(e){if(!e)return;const t=new Date(e);return Number.isNaN(t.getTime())?void 0:t}function ut(e){const t=J(e);return!!t&&t.getTime()<=Date.now()}function dt(e,t=7){const r=J(e);if(!r)return!1;const n=Date.now(),a=n+t*24*60*60*1e3,o=r.getTime();return o>n&&o<=a}async function ft(e,t=0,r=1e3){let n;for(let a=0;a<=t;a++)try{return await e()}catch(o){if(n=o,o instanceof p&&o.status>=400&&o.status<500&&o.status!==429||o instanceof DOMException&&o.name==="AbortError")throw o;a<t&&(U(`Retrying request (${a+1}/${t})`,{error:o}),await new Promise(l=>setTimeout(l,r)))}throw n}function ht(e,t,r){var o,l,i,c;if(!e||!t)return;if(r){const u=Object.keys(t.queries).find(E=>E===(r==null?void 0:r.toLowerCase()));let m;u&&(m=t.queries[u]);const Z=(l=((o=m==null?void 0:m.columnsInfo)==null?void 0:o.columns)||[])==null?void 0:l.find(E=>{var Ae,Ie;return(Ie=(Ae=E.aliases)==null?void 0:Ae.split(","))==null?void 0:Ie.includes(e)});if(Z)return Z.name}const n=(c=(i=t.indexes)==null?void 0:i._)==null?void 0:c.columns,a=Object.entries(n).find(u=>{var m;return(m=u[1].aliases)==null?void 0:m.includes(e)});if(a)return a[0]}var C=(e=>(e.None="None",e.Search_FirstPage="Search_FirstPage",e.Search_Text="Search_Text",e.Search_Refine="Search_Refine",e.Search_Select_Item="Search_Select_Item",e.Search_Select_Custom="Search_Select_Custom",e.Search_Select_Concept="Search_Select_Concept",e.Search_Select_Correction="Search_Select_Correction",e.Search_GotoPage="Search_GotoPage",e.Search_GotoTab="Search_GotoTab",e.Search_DisplayResult="Search_DisplayResult",e.Search_RemoveResult="Search_RemoveResult",e.Search_RemoveAdvanced="Search_RemoveAdvanced",e.Search_SavedQuery="Search_SavedQuery",e.Search_WebService="Search_WebService",e.Search_DidYouMean_Original="Search_DidYouMean_Original",e.Search_DidYouMean_Correction="Search_DidYouMean_Correction",e.Search_ExportCSV="Search_ExportCSV",e.Search_SavedQuery_ExportCSV="Search_SavedQuery_ExportCSV",e.Search_Selection_ExportCSV="Search_Selection_ExportCSV",e.Search_AlertQuery="Search_AlertQuery",e.Search_Select_AnalyticsItem="Search_Select_AnalyticsItem",e.Search_Sort="Search_Sort",e.Search_Exit_Logout="Search_Exit_Logout",e.Search_Timeline_Usage="Search_Timeline_Usage",e.Search_AutoComplete="Search_Autocomplete",e.Search_Login_Success="Login_Success_Form",e.Search_QueryIntent_Detected="Search_QueryIntent_Detected",e.SavedQuery_Add="SavedQuery_Add",e.SavedQuery_Delete="SavedQuery_Delete",e.SavedQuery_DeleteAll="SavedQuery_DeleteAll",e.SavedQuery_Rename="SavedQuery_Rename",e.Alert_Edit="Alert_Edit",e.Alert_Delete="Alert_Delete",e.Alert_DeleteAll="Alert_DeleteAll",e.Link_Display="Link_Display",e.Link_Click="Link_Click",e.Basket_Add="Basket_Add",e.Basket_Delete="Basket_Delete",e.Basket_DeleteAll="Basket_DeleteAll",e.Basket_Rename="Basket_Rename",e.Basket_AddDoc="Basket_AddDoc",e.Basket_RemoveDoc="Basket_RemoveDoc",e.Basket_Open="Basket_Open",e.Basket_ExportCSV="Basket_ExportCSV",e.Label_Add="Label_Add",e.Label_Delete="Label_Delete",e.Label_Rename="Label_Rename",e.Label_Open="Label_Open",e.Label_AddDoc="Label_AddDoc",e.Label_RemoveDoc="Label_RemoveDoc",e.Label_ExportCSV="Label_ExportCSV",e.Label_Menu_ExportCSV="Label_Menu_ExportCSV",e.Rating_Set="Rating_Set",e.Rating_Delete="Rating_Delete",e.Doc_Preview="Doc_Preview",e.Doc_CacheHtml="Doc_CacheHtml",e.Doc_CachePdf="Doc_CachePdf",e.Doc_CacheOriginal="Doc_CacheOriginal",e.Doc_Url1="Doc_Url1",e.Doc_Url2="Doc_Url2",e.Preview_Close="Preview_Close",e.Click_ResultLink="Click_ResultLink",e.Click_ResultLink1="Click_ResultLink1",e.Click_ResultLink2="Click_ResultLink2",e.Click_ResultLink3="Click_ResultLink3",e.Click_ResultLink4="Click_ResultLink4",e.Click_ResultLink5="Click_ResultLink5",e.Click_ResultLink6="Click_ResultLink6",e.Click_ResultLink7="Click_ResultLink7",e.Click_ResultLink8="Click_ResultLink8",e.Click_ResultLink9="Click_ResultLink9",e.Click_ResultLink10="Click_ResultLink10",e.Click_PreviewLink1="Click_PreviewLink1",e.Click_PreviewLink2="Click_PreviewLink2",e.Click_PreviewLink3="Click_PreviewLink3",e.Click_PreviewLink4="Click_PreviewLink4",e.Click_PreviewLink5="Click_PreviewLink5",e.Click_PreviewLink6="Click_PreviewLink6",e.Click_PreviewLink7="Click_PreviewLink7",e.Click_PreviewLink8="Click_PreviewLink8",e.Click_PreviewLink9="Click_PreviewLink9",e.Click_PreviewLink10="Click_PreviewLink10",e.RFM_ClickSet="RFM_ClickSet",e.RFM_ClickReset="RFM_ClickReset",e.RFM_Like="RFM_Like",e.RFM_LikeReset="RFM_LikeReset",e.RFM_Dislike="RFM_Dislike",e.RFM_Important="RFM_Important",e.RFM_ImportantReset="RFM_ImportantReset",e.RFM_Ban="RFM_Ban",e.Navigation_Exit="Navigation_Exit",e.Navigation_Return="Navigation_Return",e.Navigation_Route="Navigation_Route",e.Answer_Display="Answer_Display",e.Answer_Click="Answer_Click",e.Answer_Result="Answer_Result",e.Answer_Liked="Answer_Liked",e.Answer_Disliked="Answer_Disliked",e.Answer_Liked_Cancelled="Answer_Liked_Cancelled",e.Answer_Disliked_Cancelled="Answer_Disliked_Cancelled",e.TopPassages_Display="TopPassages_Display",e.TopPassages_Click="TopPassages_Click",e.UserSettings_Reset="UserSettings_Reset",e))(C||{}),w=(e=>(e[e.none=0]="none",e[e.bool=1]="bool",e[e.date=2]="date",e[e.dateTime=3]="dateTime",e[e.time=4]="time",e[e.unsigned=5]="unsigned",e[e.integer=6]="integer",e[e.float=7]="float",e[e.double=8]="double",e[e.dates=9]="dates",e[e.dateTimes=10]="dateTimes",e[e.times=11]="times",e[e.varchar=12]="varchar",e[e.binary=13]="binary",e[e.string=14]="string",e[e.csv=15]="csv",e))(w||{}),k=(e=>(e[e.none=0]="none",e[e.a=2053]="a",e[e.c=4]="c",e[e.d=8]="d",e[e.e=2068]="e",e[e.i=256]="i",e[e.l=2052]="l",e[e.n=8192]="n",e[e.t=524292]="t",e[e.x=8388608]="x",e[e.z=33554432]="z",e[e.f_ordinal=8192]="f_ordinal",e[e.f_multidates=8192]="f_multidates",e[e.f_varchar=33554432]="f_varchar",e[e.f_binary=33562624]="f_binary",e[e.f_string=33562888]="f_string",e[e.f_csv=42477853]="f_csv",e[e.f_overridable=33554696]="f_overridable",e))(k||{});const gt="1.0";var de=(e=>(e[e.Original=0]="Original",e[e.Corrected=1]="Corrected",e))(de||{}),fe=(e=>(e[e.none=0]="none",e[e.positiveRate=1]="positiveRate",e[e.mainlyPosRate=2]="mainlyPosRate",e[e.unrate=4]="unrate",e[e.mainlyNegRate=8]="mainlyNegRate",e[e.negativeRate=16]="negativeRate",e[e.all=31]="all",e[e.positiveOnly=7]="positiveOnly",e[e.negativeOnly=28]="negativeOnly",e[e.personalAll=21]="personalAll",e[e.personalPosOnly=5]="personalPosOnly",e[e.personalNegOnly=20]="personalNegOnly",e))(fe||{});function mt(e){if(!e)return w.none;switch(e.toLocaleLowerCase()){case"bool":case"boolean":return w.bool;case"date":return w.date;case"datetime":return w.dateTime;case"time":return w.time;case"unsigned":return w.unsigned;case"integer":return w.integer;case"float":return w.float;case"double":return w.double;case"dates":return w.dates;case"datetimes":return w.dateTimes;case"times":return w.times;case"varchar":return w.varchar;case"binary":return w.binary;case"string":return w.string;case"csv":return w.csv;default:return w.none}}function wt(e){switch(e){case"a":return k.a;case"c":return k.c;case"d":return k.d;case"e":return k.e;case"i":return k.i;case"l":return k.l;case"n":return k.n;case"t":return k.t;case"x":return k.x;case"z":return k.z;default:return k.none}}function St(e){let t=k.none;if(e)for(const r of e)t|=wt(r);return t}function S(e,t,r,n){const a=mt(t),o=St(r||"");return{name:e,type:t,typeModifier:r,eType:a,eTypeModifier:o,aliases:n}}const _t={id:S("id","string"),text:S("text","varchar"),documentlanguages:S("documentlanguages","csv","ci",["language"]),databasealias:S("databasealias","varchar"),globalrelevance:S("globalrelevance","double"),matchingpartnames:S("matchingpartnames","csv"),matchlocations:S("matchlocations","csv"),matchlocationsperpartname:S("matchlocationsperpartname","varchar"),extracts:S("extracts","csv"),extractsperpartname:S("extractsperpartname","varchar"),extractslocations:S("extractslocations","csv"),documentweight:S("documentweight","varchar"),groupcount:S("groupcount","integer"),accesslists:S("accesslists","varchar",void 0,["accessLists"])};function kt(e,t){let r=e[t];return r===void 0?[]:(typeof r=="string"&&(r=String(r).split(",")),Array.isArray(r)?r.map(n=>{if(typeof n=="string")return n.trim();if(typeof n=="object"&&n!==null&&"display"in n)return n.display.trim()}).filter(n=>n!==void 0):[String(r).trim()])}function vt(e,t){let r=e[t];if(r===void 0)return[];if(typeof r=="string"&&(r=String(r).split(",")),Array.isArray(r))return r.map(a=>{if(typeof a=="string")return{display:a.trim(),value:a.trim()};if(typeof a=="object"&&a!==null&&"display"in a){const o=a.display.trim(),l="value"in a?String(a.value).trim():o;return{display:o,value:l}}}).filter(a=>a!==void 0);const n=String(r).trim();return[{display:n,value:n}]}function A(e){return e!==null&&typeof e=="object"}function he(e){return A(e)&&Object.prototype.toString.call(e)==="[object ArrayBuffer]"}function ge(e){return A(e)&&Object.prototype.toString.call(e)==="[object Blob]"}function me(e){return typeof e=="string"}function bt(e){return(A(e)||Array.isArray(e))&&!he(e)&&!ge(e)&&!me(e)}function we(e=!0){let t=Date.now();return(e?"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx":"xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx").replace(/[xy]/g,n=>{const a=(t+Math.random()*16)%16|0;return t=Math.floor(t/16),(n==="x"?a:a&3|8).toString(16)})}function Ct(e){if(!e)return"``";if(e=String(e),e.search(/[\\`]/)===-1)return"`"+e+"`";const t=["`"];for(let r=0,n=e.length;r<n;r++){const a=e[r];(a==="\\"||a==="`")&&t.push("\\"),t.push(a)}return t.push("`"),t.join("")}function pt(e){if(typeof crypto<"u"&&crypto.subtle&&typeof crypto.subtle.digest=="function")try{return crypto.subtle.digest("SHA-512",new TextEncoder().encode(e)).then(t=>Array.prototype.map.call(new Uint8Array(t),r=>("00"+r.toString(16)).slice(-2)).join("")).catch(()=>Promise.resolve(M(e)))}catch{return Promise.resolve(M(e))}return Promise.resolve(M(e))}function M(e){let n=2166136261;for(let m=0;m<e.length;m++)n^=e.charCodeAt(m),n=n*16777619>>>0;const a=n.toString(16).padStart(8,"0"),o=((n^2863311530)>>>0).toString(16).padStart(8,"0"),l=((n^1431655765)>>>0).toString(16).padStart(8,"0"),i=((n^3435973836)>>>0).toString(16).padStart(8,"0"),c=a+o+l+i;return(c+c+c+c).substring(0,128)}let W,Se;function O(e,t=!0){let r=Pt(e.$auditRecord);r&&(_e(r),t&&ke(r)),e.$auditRecord=r}function Pt(e){if(!e)return;let t;if(Array.isArray(e))t=e;else if(A(e)){const r=e;if(r.auditEvents||r.mlAuditEvents)return r;t=[e]}return{auditEvents:t}}function _e(e){var r;const t=Rt();return(r=e.auditEvents)==null||r.forEach(n=>{n.detail||(n.detail={}),n.detail.sessionid=t}),e}function ke(e){var r;const t=typeof window<"u"?decodeURIComponent(window.location.href):"http://localhost";return(r=e==null?void 0:e.auditEvents)==null||r.forEach(n=>{n.detail||(n.detail={}),n.detail.url=t}),e}function Rt(){return(!W||yt())&&(W=we()),Se=new Date,W}function yt(){return new Date().getTime()-Se.getTime()>10*60*1e3}async function Lt(e,t=!0){const r={event:C.None,$auditRecord:e};return O(r,t),f("api/v1/audit.notify",r)}const Ut={notify:Lt};async function Ot(e,t,r){var m;const n=((m=e.items)==null?void 0:m.length)||0,a=10,o={query:{...t,action:"aggregate",aggregations:{[e.name]:{skip:n,count:a}}},$auditRecord:{auditEvents:[r]}};O(o);const l=await f("api/v1/query",o),i=await P(l),{aggregations:c}=i,u=c[0];return u.$hasMore=u.items.length>a,u.items=[...e.items,...u.items],Promise.resolve(u)}async function $t(){const{app:e}=d,t=new URLSearchParams({app:e||""});return _("api/v1/app",t)}async function ve(){const{app:e}=d,t=new URLSearchParams({app:e||"",preLogin:"true"});return _("api/v1/app",t)}function At(){let{backendUrl:e,app:t,useCredentials:r}=d;if(typeof window<"u"){if(e||(e=window.location.origin),!t){const n=window.location.pathname.match(/\/app(?:-debug)?\/([^/#]+)/);n&&(t=n[1])}v({...d,backendUrl:e,app:t})}return r?(v({...d,useCredentials:!0,useSSO:!1,autoOAuthProvider:void 0,autoSAMLProvider:void 0,bearerToken:void 0,useSAML:void 0}),Promise.resolve({})):ve().then(n=>{const{autoOAuthProvider:a,autoSAMLProvider:o}=d,l=!a&&!n.autoOAuthProvider&&!o&&!n.autoSAMLProvider;return v({...d,autoOAuthProvider:a||n.autoOAuthProvider,autoSAMLProvider:o||n.autoSAMLProvider,useCredentials:l,useSSO:l}),n}).catch(n=>{throw g("atomic:fetchAppPreLogin error",n),n})}async function It(e,t,r={}){const n=`api/v1/search.dataset/${e}/${t}`,a=await f(n,{parameters:r}),o=t[0].toLowerCase()+t.slice(1),l=a.datasets[o];if("errorCode"in l&&"errorMessage"in l)throw new Error(l.errorMessage);return l}async function Dt(e,t){const r=`api/v1/search.dataset/${e}`,{parameters:n={},datasets:a=[]}=t;return(await f(r,{parameters:n,datasets:a})).datasets}async function Ft(e){return await _(`api/v1/search.dataset/${e}`)}async function Nt(e,t=!0,r){try{return(await f("api/v1/labels",{action:"list",q:e,public:t,locale:r,localize:!1})).labels}catch(n){throw g("Error in fetchLabels",n),n}}async function Bt(){try{const{app:e=""}=d,t=new URLSearchParams({app:e,action:"getUserRights"});return _("api/v1/labels",t)}catch(e){throw g("Error in getUserRights",e),e}}async function Qt(e,t,r=!0){try{const n={action:"add",labels:e,ids:t,public:r,$auditRecord:{auditEvents:[{type:C.Label_AddDoc,detail:{public:r,label:e?e.toString():null,doccount:t?t.length:0}}],mlAuditEvents:[{actionType:"addToLabel",documentIds:t}]}};return f("api/v1/labels",n)}catch(n){throw g("Error in add",n),n}}async function qt(e,t,r=!0){try{const n={action:"remove",labels:e,ids:t,public:r,$auditRecord:{auditEvents:[{type:C.Label_RemoveDoc,detail:{public:r,label:e?e.toString():null,doccount:t?t.length:0}}],mlAuditEvents:[{actionType:"removeFromLabel",documentIds:t}]}};return f("api/v1/labels",n)}catch(n){throw g("Error in remove",n),n}}async function jt(e,t,r=!0){try{const n={action:"rename",labels:e,newLabel:t,public:r,auditEvents:{type:C.Label_Rename,detail:{public:r,oldlabel:e?e.toString():null,label:t}}};return f("api/v1/labels",n)}catch(n){throw g("Error in rename",n),n}}async function Vt(e,t=!0){try{const r={action:"delete",labels:e,public:t,auditEvents:{type:C.Label_Delete,detail:{public:t,label:e?e.toString():null}}};return f("api/v1/labels",r)}catch(r){throw g("Error in deleteLabels",r),r}}async function xt(e,t,r=!0){try{const n={action:"bulkAdd",labels:e,query:t,public:r,auditEvents:{type:C.Label_Add,detail:{public:r,label:e?e.toString():null,query:t!==null?t.name:null}}};return f("api/v1/labels",n)}catch(n){throw g("Error in bulkAdd",n),n}}async function Gt(e,t,r=!0){try{const n={action:"bulkRemove",labels:e,query:t,public:r,auditEvents:{type:C.Label_Delete,detail:{public:r,label:e?e.toString():null,query:t!==null?t.name:null}}};return f("api/v1/labels",n)}catch(n){throw g("Error in bulkRemove",n),n}}const zt={getUserRights:Bt,add:Qt,remove:qt,rename:jt,delete:Vt,bulkAdd:xt,bulkRemove:Gt};async function Ht(e,t){if(typeof window>"u")return f("api/v1/preview",{action:"get",id:e,query:t});const r=`${window.location.origin}${window.location.pathname}`,n={name:t==null?void 0:t.name,text:t==null?void 0:t.text};return f("api/v1/preview",{action:"get",id:e,query:n,browserUrl:r})}async function Jt(e){const t=new Headers;t.append("content-type","text");const r=await fetch(e,{method:"GET",headers:t});P(r)}async function X(){const e=new URLSearchParams({action:"get",noAutoAuthentication:"true"});return _("api/v1/principal",e)}async function be(e){const t={noAutoAuthentication:"true",...e},r=new URLSearchParams;return Object.entries(t).forEach(([n,a])=>{a!==void 0&&r.append(n,String(a))}),_("api/v1/principal/list",r)}async function Ce(e){if(!e)return Promise.reject(new Error("userid is required"));const t=new URLSearchParams({action:"userid",noAutoAuthentication:"true",userid:e});return _("api/v1/principal",t)}async function pe(e){if(e.length===0)return Promise.reject(new Error("userids is required"));const t=new URLSearchParams({noAutoAuthentication:"true",userids:[...e].join(",")});return _("api/v1/principal/userids",t)}const Mt={principal:{get:X,list:be,userid:Ce,userids:pe}},Pe=11;async function Wt(e,t,r){var l;const a=await f("api/v1/query",{query:e,$auditRecord:t,queryIntentData:r});a.aggregations.forEach(i=>{i.$hasMore=!1,!i.isDistribution&&!i.isTree&&i.items&&(i.$hasMore=i.items.length===Pe),i.isTree&&i.items&&q(i)}),(l=a.records)==null||l.map(i=>Object.assign(i,{value:i.title,type:"default"}));const o={...a,nextPage:a.page<Math.ceil(a.rowCount/a.pageSize)?a.page+1:void 0,previousPage:a.page>1?a.page-1:void 0};return Promise.resolve(o)}async function Xt(e,t,r){const{app:n=""}=d,a={methods:[],mode:t,propagateErrors:!0,$auditRecord:{auditEvents:[r]}};for(const i of e)a.methods.push({method:"query",app:n,query:i});const o=await f("api/v1/multi",a);o.results.forEach(i=>{i.aggregations.forEach(c=>{c.$hasMore=!1,!c.isDistribution&&!c.isTree&&c.items&&(c.$hasMore=c.items.length===Pe),c.isTree&&q(c)})}),o.results.forEach(i=>{var c;return(c=i.records)==null?void 0:c.map(u=>Object.assign(u,{value:u.title,type:"default"}))});const l=o.results.map(i=>({...i,nextPage:i.page<Math.ceil(i.rowCount/i.pageSize)?i.page+1:void 0,previousPage:i.page>1?i.page-1:void 0}));return Promise.resolve(l)}function q(e,t="",r=0){let n=[];return e.items&&e.items.forEach(a=>{let o=t?`${t}/${a.value}`:a.value,l=r+1;n.push({path:o,level:l}),a.$path=o,a.$level=l,a.hasChildren?n=n.concat(q(a,o,l)):a.hasChildren=!1}),n}async function Yt({model:e,appName:t,query:r,article:n}){const{webservice:a,format:o,maxcount:l,exportedColumns:i,export:c}=e,u={app:t,webservice:a,query:r,type:c,format:o,maxcount:l,exportedColumns:i,$auditRecord:{auditEvents:[{type:"Search_ExportCSV",detail:{resultid:n?n.id:void 0}}]}};return O(u),await f("api/v1/search.queryexport",u,{responseType:"blob"})}async function Kt(e){const r=await f("api/v1/queryintent",{query:e});return r==null?void 0:r.intents}async function Zt(e,t,r){return(await f("api/v1/similardocuments",{sourceDocumentId:e,query:{name:t}},{signal:r})).data}async function Et(e,t){var a;const n=await f("api/v1/query.links",{webservice:e,query:t});return(a=n==null?void 0:n.links)==null?void 0:a.map(o=>({...o,query:t}))}async function Tt(e,t,r,n,a){const{app:o}=d,l={app:o||"",suggestQuery:e,text:t,filter:r,kinds:n,showSource:a};try{return(await f("api/v1/search.suggest",l)).suggests}catch(i){throw console.error("Error fetching suggestions:",i),i}}async function er(e,t,r,n){const{app:a}=d;return(await f("api/v1/suggestquery",{app:a||"",suggestQuery:e,text:t,query:r,kinds:n})).suggests}async function tr(e,t){if(!t)return Promise.resolve([]);const{app:r}=d;return(await f("api/v1/suggestfield",{app:r||"",text:e,action:"suggests",fields:t})).suggests}async function rr(e,t,r,n,a,o){return f("api/v1/doc.textchunks",{id:e,textChunks:t,highlights:r,query:n,leftSentencesCount:a,rightSentencesCount:o})}async function nr(){const{app:e}=d,t=new URLSearchParams({app:e||"",action:"load"});return _("api/v1/usersettings",t)}async function Re(e,t){const r={action:"save",userSettings:e,$auditRecord:{auditEvents:[t]}};return O(r),f("api/v1/usersettings",r)}async function ar(e,t){const n={action:"patch",userSettings:e,$auditRecord:t?{auditEvents:[t]}:void 0};return O(n),f("api/v1/usersettings",n)}async function sr(){return Re({},{type:"UserSettings_Reset"})}async function or(e,t){return f("api/v2/security/password/change",{newPassword:e,currentPassword:t})}async function ir(e){const t="api/v2/security/password/ask-reset-email",n={changePasswordRedirectUrl:`${window.location.origin}/login?mode=changepassword`,userName:e};return f(t,n)}async function cr(e){return await _(`api/v2/user-profile/${e}`)}async function lr(e){return await f("api/v2/user-profile",e)}async function ur(e,t,r){var a;return await ue(`api/v2/user-profile/${(a=e.data)==null?void 0:a.id}/${t}/${r}`,e)}async function dr(){return await _("api/v2/version")}const ye=async()=>{const{autoOAuthProvider:e}=d;if(typeof window>"u")return f("security.oauth",{action:"getcode",provider:e,tokenInCookie:!0,originalUrl:"http://localhost"});const t={action:"getcode",provider:e,tokenInCookie:!0,originalUrl:window.location.href};try{const r=await f("api/v1/security.oauth",t);return r.redirectUrl&&(window.location.href=r.redirectUrl),r}catch(r){throw console.error("Failed to authenticate with OAuth",r),r}},Le=async()=>{const{autoSAMLProvider:e}=d;if(typeof window>"u")return f("security.saml",{action:"getresponse",provider:e,tokenInCookie:!0,originalUrl:"http://localhost"});const t={action:"getresponse",provider:e,tokenInCookie:!0,originalUrl:window.location.href};try{const r=await f("api/v1/security.saml",t);return r.redirectUrl&&(window.location.href=r.redirectUrl),r}catch(r){throw console.error("Failed to authenticate with SAML",r),r}},Y={store:{},getItem(e){return this.store[e]??null},setItem(e,t){this.store[e]=t.toString()},removeItem(e){delete this.store[e]},clear(){this.store={}}},K=Y;function fr(e){return typeof window>"u"||!window.localStorage?Y.getItem(e):window.localStorage.getItem(e)}function hr(e){typeof window>"u"||!window.localStorage?Y.removeItem(e):window.localStorage.removeItem(e)}function gr(e){return typeof window>"u"||!window.sessionStorage?K.getItem(e):window.sessionStorage.getItem(e)}function mr(e,t){typeof window>"u"||!window.sessionStorage?K.setItem(e,t):window.sessionStorage.setItem(e,t)}function wr(e){typeof window>"u"||!window.sessionStorage?K.removeItem(e):window.sessionStorage.removeItem(e)}const I=e=>mr("sinequa-credentials",JSON.stringify({data:{csrfToken:e}})),Ue=async()=>{try{const e=await _("api/v1/challenge?action=getCsrfToken&suppressErrors=true");return e!=null&&e.csrfToken?(I(e.csrfToken),e.csrfToken):null}catch(e){throw g("Failed to get CSRF token",e),e}};async function Oe(e){if(e){const{username:t,password:r}=e,n={action:"get",tokenInCookie:!0,user:t,password:r,noUserOverride:!0,noAutoAuthentication:!0};try{const a=await f("api/v1/security.webtoken",n);return a!=null&&a.csrfToken?(I(a.csrfToken),a.csrfToken):null}catch(a){throw console.error("Failed to get JWT",a),a}}else{const t={action:"get",tokenInCookie:!0,noUserOverride:!0,noAutoAuthentication:!1},{bearerToken:r}=d;if(!r)throw new Error("Bearer token is required in globalConfig for credentialless JWT retrieval.");const n=new Headers;n.append("Sinequa-Force-Camel-Case","true"),n.append("accept","application/json"),n.append("Content-Type","application/json"),n.append("Authorization",`Bearer ${r}`);try{const a=await f("api/v1/security.webtoken",t,{headers:n});return a.csrfToken?(I(a.csrfToken),a.csrfToken):null}catch(a){throw console.error("Failed to get JWT without credentials",a),a}}}const j=()=>{var r;const e=gr("sinequa-credentials");if(e)try{const a=(r=JSON.parse(e).data)==null?void 0:r.csrfToken;if(a!==void 0)return a}catch{}const t=fr("csrfToken");return t!==null?t:null},Sr=async e=>{if(e)b("Attempting authentication using credentials"),v({useCredentials:!0,useSSO:!1});else{let i=null;try{b("Attempting to retrieve CSRF token from the backend"),i=await Ue(),y("CSRF token retrieval result",i?"success":"failed")}catch(c){g("Failed to retrieve CSRF token",c)}try{if(i===null){const{autoOAuthProvider:c,autoSAMLProvider:u,useSAML:m}=d;if(c&&!m)return b("Initiating OAuth authentication flow"),await ye(),U("OAuth authentication flow did not redirect as expected"),h(!1),!1;if(u)return b("Initiating SAML authentication flow"),await Le(),U("SAML authentication flow did not redirect as expected"),h(!1),!1;b("No direct authentication method available, will try SSO then credentials"),v({useCredentials:!0,useSSO:!0})}else return b("User authenticated via existing token"),h(!0),!0}catch(c){throw g("Unexpected error during authentication",c),h(!1),c}}if(d.useCredentials&&d.useSSO)try{if(b("Checking if user is authenticated via SSO"),await X())return b("User authenticated using SSO"),v({useCredentials:!1,useSSO:!0}),h(!0),!0}catch(i){if((i==null?void 0:i.status)===401)return b("SSO authentication failed with 401, falling back to credentials"),v({useCredentials:!0,useSSO:!1}),!1;throw g("SSO authentication failed with unexpected error",i),h(!1),g}const{useSSO:r}=d,n=j();if(n&&n!==null||r)return b("user already authenticated",n),v({isRedirectUrl:!1}),h(!0),!0;const{useCredentials:a}=d,{username:o,password:l}=e||{};if(a&&!o&&!l)return g("Credentials are required for authentication"),h(!1),!1;if(o&&l)try{b("authentication using credentials..."),v({useCredentials:!0,useSSO:!1});const{userOverrideActive:i,useroverride:c}=d;return v({userOverrideActive:!1,useroverride:void 0}),await Oe({username:o,password:l}),v({userOverrideActive:i,useroverride:c}),h(!0),!0}catch(i){throw h(!1),i}return h(!1),g("No authentication method available. Please provide credentials or configure OAuth/SAML."),!1},$e=async()=>{const e=new URLSearchParams({action:"deleteWebTokenCookie",noUserOverride:"true",noAutoAuthentication:"true"});return _("api/v1/challenge",e)},_r=async()=>{const{useCredentials:e,userOverrideActive:t}=d;hr("csrfToken"),wr("sinequa-credentials"),e&&!t?(await $e()).methodresult==="ok"?h(!1):console.error("logout failed"):h(!1)},kr=()=>!!j();s.API=Mt,s.ApiError=p,s.Audit=Ut,s.AuditEventType=C,s.DidYouMeanKind=de,s.EngineType=w,s.EngineTypeModifier=k,s.LogLevel=z,s.MINIMUM_COMPATIBLE_SERVER_API_VERSION=gt,s.RFMDisplay=fe,s.ServerError=V,s.TimeoutError=T,s.UnauthorizedError=D,s.addAuditAdditionalInfo=O,s.addConcepts=He,s.addSessionId=_e,s.addUrl=ke,s.aggItemRegex=ee,s.aggregationItemStrictCompare=Ne,s.appInitializerFn=At,s.bisect=Qe,s.buildPathsAndLevels=q,s.configureLogger=ot,s.createHeaders=L,s.createTimeoutController=lt,s.createUserProfile=lr,s.debug=y,s.del=it,s.deleteUserSettings=sr,s.deleteWebTokenCookie=$e,s.emitAuthenticatedEvent=h,s.error=g,s.escapeExpr=Ct,s.expiresSoon=dt,s.extraColumns=_t,s.fetchAggregation=Ot,s.fetchApp=$t,s.fetchAppPreLogin=ve,s.fetchBulkQuery=Xt,s.fetchChangePassword=or,s.fetchDataset=It,s.fetchDatasetList=Ft,s.fetchDatasets=Dt,s.fetchLabels=Nt,s.fetchPreview=Ht,s.fetchPreviewUrl=Jt,s.fetchPrincipal=X,s.fetchPrincipalList=be,s.fetchPrincipalUserid=Ce,s.fetchPrincipalUserids=pe,s.fetchQuery=Wt,s.fetchQueryExport=Yt,s.fetchQueryIntent=Kt,s.fetchSendPasswordResetEmail=ir,s.fetchSimilarDocuments=Zt,s.fetchSponsoredLinks=Et,s.fetchSuggest=Tt,s.fetchSuggestField=tr,s.fetchSuggestQuery=er,s.fetchTextChunks=rr,s.fetchUserProfile=cr,s.fetchUserSettings=nr,s.fetchVersion=dr,s.get=_,s.getConcepts=We,s.getCsrfToken=Ue,s.getFiltersFromURI=x,s.getFiltersFromUrl=Ee,s.getHelpIndexUrl=at,s.getIdFromUrl=et,s.getJWToken=Oe,s.getMetadata=kt,s.getMetadataWithValues=vt,s.getOffsetFromDates=le,s.getQueryPageFromUrl=tt,s.getQueryParamsFromUrl=Ke,s.getQueryTabFromUrl=rt,s.getQueryTextFromUrl=Te,s.getRelativeDate=Xe,s.getToken=j,s.getUrlParamsFromQueryParams=Ze,s.globalConfig=d,s.guid=we,s.handleResponse=P,s.info=b,s.isArrayBuffer=he,s.isAuthenticated=kr,s.isBlob=ge,s.isExpired=ut,s.isJsonable=bt,s.isNotInputEvent=Ye,s.isObject=A,s.isString=me,s.labels=zt,s.login=Sr,s.logout=_r,s.makeColumn=S,s.notify=st,s.openParentNodes=re,s.parseText=$,s.parseValueAndOperatorFromItem=te,s.patch=ue,s.patchUserProfile=ur,s.patchUserSettings=ar,s.post=f,s.put=ct,s.queryParamsFromUrl=R,s.removeConcept=Je,s.removeConcepts=Me,s.resolveToColumnName=ht,s.rewriteText=F,s.saveUserSettings=Re,s.setGlobalConfig=v,s.setToken=I,s.sha512=pt,s.suggestionsToTreeAggregationNodes=Be,s.sysLang=nt,s.toDate=J,s.translateAggregationToDateOptions=Fe,s.tryOAuthAuthentication=ye,s.trySAMLAuthentication=Le,s.warn=U,s.withRetry=ft,Object.defineProperty(s,Symbol.toStringTag,{value:"Module"})});
@@ -1,4 +1,4 @@
1
1
  type StringWithAutocomplete<T> = T | (string & Record<never, never>);
2
- export type API_ENDPOINTS = StringWithAutocomplete<"api/v1/app" | "api/v1/audit.notify" | "api/v1/challenge" | "api/v1/doc.textchunks" | "api/v1/labels" | "api/v1/multi" | "api/v1/OriginalDocMerge" | "api/v1/plugin" | "api/v1/preview" | "api/v1/principal" | "api/v1/principal/list" | "api/v1/principal/userId" | "api/v1/principal/userids" | "api/v1/query" | "api/v1/query.export" | "api/v1/query.links" | "api/v1/queryintent" | "api/v1/ratings" | "api/v1/recentqueries" | "api/v1/search.dataset" | "api/v1/search.rfm" | "api/v1/search.suggest" | "api/v1/search.queryexport" | "api/v1/similardocuments" | "api/v1/suggestfield" | "api/v1/suggestquery" | "api/v1/usersettings" | "api/v1/security.webtoken" | "api/v1/security.oauth" | "api/v1/security.saml">;
2
+ export type API_ENDPOINTS = StringWithAutocomplete<"api/v1/app" | "api/v1/audit.notify" | "api/v1/challenge" | "api/v1/doc.textchunks" | "api/v1/labels" | "api/v1/multi" | "api/v1/OriginalDocMerge" | "api/v1/plugin" | "api/v1/preview" | "api/v1/principal" | "api/v1/principal/list" | "api/v1/principal/userids" | "api/v1/query" | "api/v1/query.export" | "api/v1/query.links" | "api/v1/queryintent" | "api/v1/ratings" | "api/v1/recentqueries" | "api/v1/search.dataset" | "api/v1/search.rfm" | "api/v1/search.suggest" | "api/v1/search.queryexport" | "api/v1/similardocuments" | "api/v1/suggestfield" | "api/v1/suggestquery" | "api/v1/usersettings" | "api/v1/security.webtoken" | "api/v1/security.oauth" | "api/v1/security.saml">;
3
3
  export {};
4
4
  //# sourceMappingURL=api-endpoints.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-endpoints.d.ts","sourceRoot":"","sources":["../../src/types/api-endpoints.ts"],"names":[],"mappings":"AAAA,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AACrE,MAAM,MAAM,aAAa,GAAG,sBAAsB,CAChD,YAAY,GACZ,qBAAqB,GACrB,kBAAkB,GAClB,uBAAuB,GACvB,eAAe,GACf,cAAc,GACd,yBAAyB,GACzB,eAAe,GACf,gBAAgB,GAChB,kBAAkB,GAClB,uBAAuB,GACvB,yBAAyB,GACzB,0BAA0B,GAC1B,cAAc,GACd,qBAAqB,GACrB,oBAAoB,GACpB,oBAAoB,GACpB,gBAAgB,GAChB,sBAAsB,GACtB,uBAAuB,GACvB,mBAAmB,GACnB,uBAAuB,GACvB,2BAA2B,GAC3B,yBAAyB,GACzB,qBAAqB,GACrB,qBAAqB,GACrB,qBAAqB,GACrB,0BAA0B,GAC1B,uBAAuB,GACvB,sBAAsB,CACvB,CAAC"}
1
+ {"version":3,"file":"api-endpoints.d.ts","sourceRoot":"","sources":["../../src/types/api-endpoints.ts"],"names":[],"mappings":"AAAA,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AACrE,MAAM,MAAM,aAAa,GAAG,sBAAsB,CAC9C,YAAY,GACZ,qBAAqB,GACrB,kBAAkB,GAClB,uBAAuB,GACvB,eAAe,GACf,cAAc,GACd,yBAAyB,GACzB,eAAe,GACf,gBAAgB,GAChB,kBAAkB,GAClB,uBAAuB,GACvB,0BAA0B,GAC1B,cAAc,GACd,qBAAqB,GACrB,oBAAoB,GACpB,oBAAoB,GACpB,gBAAgB,GAChB,sBAAsB,GACtB,uBAAuB,GACvB,mBAAmB,GACnB,uBAAuB,GACvB,2BAA2B,GAC3B,yBAAyB,GACzB,qBAAqB,GACrB,qBAAqB,GACrB,qBAAqB,GACrB,0BAA0B,GAC1B,uBAAuB,GACvB,sBAAsB,CACzB,CAAC"}
@@ -1,17 +1,18 @@
1
1
  export * from "./aggregations";
2
+ export * from "./api-endpoints";
2
3
  export * from "./audit";
4
+ export * from "./chunks";
3
5
  export * from "./config";
6
+ export * from "./credentials";
7
+ export * from "./export/types";
4
8
  export * from "./filters";
5
9
  export * from "./interfaces";
10
+ export * from "./labels/label-rights";
6
11
  export * from "./link-results";
7
12
  export * from "./preview";
8
13
  export * from "./principal";
9
14
  export * from "./search";
10
15
  export * from "./suggest/suggestion";
16
+ export * from "./user-profile/user-profile";
11
17
  export * from "./user-settings/user-settings";
12
- export * from "./chunks";
13
- export * from "./labels/label-rights";
14
- export * from "./export/types";
15
- export * from "./api-endpoints";
16
- export * from "./credentials";
17
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,UAAU,CAAC;AACzB,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAE/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC"}
@@ -0,0 +1,31 @@
1
+ export type UserProfile = {
2
+ /** Main data with static fields */
3
+ data: UserProfileData;
4
+ /** Custom data which can contain any parameters */
5
+ customData?: Record<string, unknown>;
6
+ /** Profile creation date */
7
+ created?: string;
8
+ /** Profile last modification date */
9
+ modified?: string;
10
+ };
11
+ export type UserProfileData = {
12
+ /** User ID */
13
+ id: string;
14
+ /** E-mail address */
15
+ mail: string;
16
+ /** Full name */
17
+ fullName: string;
18
+ /** Job title (e.g. Product Owner) */
19
+ jobTitle?: string;
20
+ /** Company group (e.g. R&D) */
21
+ group?: string;
22
+ /** Organisation (e.g. Sinequa) */
23
+ organisation?: string;
24
+ /** Location */
25
+ location?: string;
26
+ /** Profile photo link (on the API side, the image is stored without any special processing) */
27
+ profilePhoto?: string;
28
+ /** List of skills */
29
+ skills?: string;
30
+ };
31
+ //# sourceMappingURL=user-profile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-profile.d.ts","sourceRoot":"","sources":["../../../src/types/user-profile/user-profile.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG;IACxB,mCAAmC;IACnC,IAAI,EAAE,eAAe,CAAC;IACtB,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,cAAc;IACd,EAAE,EAAE,MAAM,CAAC;IACX,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+FAA+F;IAC/F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qBAAqB;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../../../../src/web-api/helpers/methods/patch.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAKpD;;;;;;;;;GASG;AACH,wBAAsB,KAAK,CAAC,CAAC,EAC3B,QAAQ,EAAE,aAAa,EACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,CAAC,EAAE;IACR,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;CACzD,GACA,OAAO,CAAC,CAAC,CAAC,CA2BZ"}
1
+ {"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../../../../src/web-api/helpers/methods/patch.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAKpD;;;;;;;;;GASG;AACH,wBAAsB,KAAK,CAAC,CAAC,EAC3B,QAAQ,EAAE,aAAa,EACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,CAAC,EAAE;IACR,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;CACzD,GACA,OAAO,CAAC,CAAC,CAAC,CA4BZ"}
@@ -16,5 +16,6 @@ export * from "./v1/fetch-text-chunk";
16
16
  export * from "./v1/fetch-user-settings";
17
17
  export * from "./v2/fetch-change-password";
18
18
  export * from "./v2/fetch-forgot-password";
19
+ export * from "./v2/fetch-user-profile";
19
20
  export * from "./v2/fetch-version";
20
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/web-api/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/web-api/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC"}
@@ -10,4 +10,59 @@ import { Principal } from "../../types";
10
10
  * the current user's information.
11
11
  */
12
12
  export declare function fetchPrincipal(): Promise<Principal>;
13
+ type ListOptions = {
14
+ search?: string;
15
+ isuser?: boolean;
16
+ isgroup?: boolean;
17
+ };
18
+ /**
19
+ * Fetches a list of principals based on the provided options.
20
+ *
21
+ * @param options - An object containing optional filters for the principal list.
22
+ * @returns A promise that resolves to an array of Principal objects matching the criteria.
23
+ * @remarks
24
+ * This function performs an API call with automatic authentication disabled.
25
+ * The API endpoint used is "api/v1/principal" with the action set to "list".
26
+ * The options parameter can include search, isuser, and isgroup filters.
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * const principals = await fetchPrincipalList({ search: "john", isuser: true });
31
+ * ```
32
+ */
33
+ export declare function fetchPrincipalList(options: ListOptions): Promise<Principal[]>;
34
+ /**
35
+ * Fetches principal information for a given user ID.
36
+ *
37
+ * @param userid - Indicates a principal identifier (Domain|ID) for which you want to retrieve configuration information.
38
+ * @returns A Promise that resolves to a Principal object containing the user's principal information
39
+ * @throws {Error} When userid parameter is empty or undefined
40
+ *
41
+ * @remarks
42
+ * This function performs an API call with automatic authentication disabled.
43
+ * The API endpoint used is "api/v1/principal".
44
+ */
45
+ export declare function fetchPrincipalUserid(userid: string): Promise<Principal>;
46
+ /**
47
+ * Fetches principal information for the specified user IDs.
48
+ *
49
+ * @param userids - An array of user IDs to fetch principal information for. Must not be empty.
50
+ * @returns A promise that resolves to an array of Principal objects corresponding to the provided user IDs.
51
+ * @throws {Error} If the userids array is empty.
52
+ *
53
+ * @example
54
+ * ```typescript
55
+ * const principals = await fetchPrincipalUserids(['user1', 'user2']);
56
+ * ```
57
+ */
58
+ export declare function fetchPrincipalUserids(userids: string[]): Promise<Principal[]>;
59
+ export declare const API: {
60
+ principal: {
61
+ get: typeof fetchPrincipal;
62
+ list: typeof fetchPrincipalList;
63
+ userid: typeof fetchPrincipalUserid;
64
+ userids: typeof fetchPrincipalUserids;
65
+ };
66
+ };
67
+ export {};
13
68
  //# sourceMappingURL=fetch-principal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-principal.d.ts","sourceRoot":"","sources":["../../../src/web-api/v1/fetch-principal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC;;;;;;;;;GASG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,SAAS,CAAC,CAOzD"}
1
+ {"version":3,"file":"fetch-principal.d.ts","sourceRoot":"","sources":["../../../src/web-api/v1/fetch-principal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC;;;;;;;;;GASG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,SAAS,CAAC,CAOzD;AAED,KAAK,WAAW,GAAG;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,SAAS,EAAE,CAAC,CAatB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAU7E;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,SAAS,EAAE,CAAC,CAStB;AAED,eAAO,MAAM,GAAG;;;;;;;CAOf,CAAC"}
@@ -0,0 +1,50 @@
1
+ import { UserProfile } from "../../types";
2
+ /**
3
+ * Fetches the user profile for the specified user ID.
4
+ *
5
+ * @param userId - The unique identifier of the user whose profile is to be fetched
6
+ * @returns A promise that resolves to the user's profile data
7
+ * @throws May throw an error if the API request fails or the user is not found
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * const profile = await fetchUserProfile('user123');
12
+ * console.log(profile);
13
+ * ```
14
+ */
15
+ export declare function fetchUserProfile(userId: string): Promise<UserProfile>;
16
+ /**
17
+ * Creates a new user profile by sending a POST request to the API.
18
+ *
19
+ * @param userProfile - Partial user profile data to be created. Must include an id in the data property.
20
+ * @returns A promise that resolves to the complete UserProfile object returned by the API.
21
+ * @throws May throw an error if the API request fails or if the user profile data is invalid.
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * const newProfile = await createUserProfile({
26
+ * data: { id: '123', name: 'John Doe' }
27
+ * });
28
+ * ```
29
+ */
30
+ export declare function createUserProfile(userProfile: Partial<UserProfile>): Promise<UserProfile>;
31
+ /**
32
+ * Updates a specific property of a user profile.
33
+ *
34
+ * @param userProfile - Partial user profile object containing the data to update. Cannot include 'created' or 'modified' fields.
35
+ * @param category - The category of the property to update.
36
+ * @param propertyName - The name of the specific property to update within the category.
37
+ * @returns A promise that resolves to the updated UserProfile object.
38
+ * @throws May throw an error if the API request fails or if the user profile ID is not provided.
39
+ *
40
+ * @example
41
+ * ```typescript
42
+ * const updatedProfile = await patchUserProfile(
43
+ * { data: { id: '123', name: 'Jane Doe' } },
44
+ * 'personal-info',
45
+ * 'name'
46
+ * );
47
+ * ```
48
+ */
49
+ export declare function patchUserProfile(userProfile: Partial<Omit<UserProfile, "created" | "modified">>, category: string, propertyName: string): Promise<UserProfile>;
50
+ //# sourceMappingURL=fetch-user-profile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-user-profile.d.ts","sourceRoot":"","sources":["../../../src/web-api/v2/fetch-user-profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C;;;;;;;;;;;;GAYG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAG3E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,GAChC,OAAO,CAAC,WAAW,CAAC,CAGtB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,UAAU,CAAC,CAAC,EAC/D,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,WAAW,CAAC,CAMtB"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sinequa/atomic",
3
3
  "private": false,
4
- "version": "0.0.129",
4
+ "version": "0.0.134",
5
5
  "type": "module",
6
6
  "main": "./dist/atomic.umd.cjs",
7
7
  "module": "./dist/atomic.js",
@@ -39,7 +39,7 @@
39
39
  ]
40
40
  },
41
41
  "devDependencies": {
42
- "@biomejs/biome": "2.2.7",
42
+ "@biomejs/biome": "^2.3.11",
43
43
  "@types/node": "^20.11.0",
44
44
  "husky": "^9.1.7",
45
45
  "jsdom": "^26.0.0",