@sinequa/atomic 0.0.122 → 0.0.123

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.
package/dist/atomic.js CHANGED
@@ -135,20 +135,20 @@ function ot(e) {
135
135
  }
136
136
  function U(e, t, r) {
137
137
  if (e < L.level) return;
138
- const n = (/* @__PURE__ */ new Date()).toISOString(), o = `${`[${E[e]}][${n}]`} ${t}`;
138
+ const a = `${`[${E[e]}]`} ${t}`;
139
139
  if (L.enableConsoleOutput)
140
140
  switch (e) {
141
141
  case 0:
142
- console.debug(o, r || "");
142
+ console.debug(a, r || "");
143
143
  break;
144
144
  case 1:
145
- console.info(o, r || "");
145
+ console.info(a, r || "");
146
146
  break;
147
147
  case 2:
148
- console.warn(o, r || "");
148
+ console.warn(a, r || "");
149
149
  break;
150
150
  case 3:
151
- console.error(o, r || "");
151
+ console.error(a, r || "");
152
152
  break;
153
153
  }
154
154
  }
@@ -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 rr=Object.defineProperty;var nr=(o,h,f)=>h in o?rr(o,h,{enumerable:!0,configurable:!0,writable:!0,value:f}):o[h]=f;var ye=(o,h,f)=>nr(o,typeof h!="symbol"?h+"":h,f);function h(e){const t=new CustomEvent("authenticated",{bubbles:!0,cancelable:!1,detail:{authenticated:e}});dispatchEvent(t)}const f={loginPath:"/login",createRoutes:!1};function w(e){Object.assign(f,e)}function pe(e,t,r){var s,l,c,i;if(!e||!t)return;if(r){const u=Object.keys(t.queries).find(J=>J===(r==null?void 0:r.toLowerCase()));let g;u&&(g=t.queries[u]);const H=(l=((s=g==null?void 0:g.columnsInfo)==null?void 0:s.columns)||[])==null?void 0:l.find(J=>{var Le,Oe;return(Oe=(Le=J.aliases)==null?void 0:Le.split(","))==null?void 0:Oe.includes(e)});if(H)return H.name}const n=(i=(c=t.indexes)==null?void 0:c._)==null?void 0:i.columns,a=Object.entries(n).find(u=>{var g;return(g=u[1].aliases)==null?void 0:g.includes(e)});if(a)return a[0]}function Ue(e,t){const r=e[t];return r===void 0?[]:Array.isArray(r)?r.map(n=>{if(typeof n=="string")return n;if(typeof n=="object"&&n!==null&&"display"in n)return n.display}).filter(n=>n!==void 0):[String(r)]}function y(e){return e!==null&&typeof e=="object"}function W(e){return y(e)&&Object.prototype.toString.call(e)==="[object ArrayBuffer]"}function M(e){return y(e)&&Object.prototype.toString.call(e)==="[object Blob]"}function X(e){return typeof e=="string"}function $e(e){return(y(e)||Array.isArray(e))&&!W(e)&&!M(e)&&!X(e)}function Y(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 Ie(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 Ae(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(B(e)))}catch{return Promise.resolve(B(e))}return Promise.resolve(B(e))}function B(e){let n=2166136261;for(let g=0;g<e.length;g++)n^=e.charCodeAt(g),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)}var k=(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))(k||{}),K=(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))(K||{}),Z=(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))(Z||{});const De="1.0";var E=(e=>(e[e.Original=0]="Original",e[e.Corrected=1]="Corrected",e))(E||{}),T=(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))(T||{});class b extends Error{constructor(r,n){super(r);ye(this,"status");this.name="ApiError",this.status=n}}class Q extends b{constructor(t="Unauthorized access"){super(t,401),this.name="UnauthorizedError"}}class ee extends b{constructor(t="Server error"){super(t,500),this.name="ServerError"}}class te extends b{constructor(t="Request timed out"){super(t,408),this.name="TimeoutError"}}function Fe(e){const t=new AbortController,{signal:r}=t;return e&&setTimeout(()=>{r.aborted||t.abort(new te(`Request timed out after ${e}ms`))},e),{controller:t,signal:r}}var q=(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))(q||{});let $={level:1,enableConsoleOutput:!0};function Ne(e){$={...$,...e}}function I(e,t,r){if(e<$.level)return;const n=new Date().toISOString(),s=`${`[${q[e]}][${n}]`} ${t}`;if($.enableConsoleOutput)switch(e){case 0:console.debug(s,r||"");break;case 1:console.info(s,r||"");break;case 2:console.warn(s,r||"");break;case 3:console.error(s,r||"");break}}function v(e,t){I(0,e,t)}function m(e,t){I(1,e,t)}function P(e,t){I(2,e,t)}function _(e,t){I(3,e,t)}async function Be(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 b&&s.status>=400&&s.status<500&&s.status!==429||s instanceof DOMException&&s.name==="AbortError")throw s;a<t&&(P(`Retrying request (${a+1}/${t})`,{error:s}),await new Promise(l=>setTimeout(l,r)))}throw n}function L(e){const t=N(),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}=f;return s&&r.append("Authorization",`Bearer ${s}`),n&&a&&(r.append("sinequa-override-user",n.username),r.append("sinequa-override-domain",n.domain)),r}async function C(e,t="json"){const r=e.headers.get("sinequa-jwt-refresh");if(r!==null&&U(r),e.status===200)switch(t){case"arraybuffer":return await e.arrayBuffer();case"blob":return await e.blob();case"text":return await e.text();case"json":default:return await e.json()}if(e.status===401){if(f.userOverrideActive)throw f.userOverrideActive=!1,P("Unauthorized access attempt with user override",{endpoint:e.url}),new Q("Unauthorized... User override failed.");await re(e,401)}throw e.status===500&&(_("Server error occurred",{endpoint:e.url}),await re(e,500)),P(`Unexpected response status: ${e.status}`,{endpoint:e.url}),new b(`Request failed with status ${e.status}`,e.status)}async function re(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 new b(`Request failed with status ${t}`,t);const s=JSON.parse(new TextDecoder().decode(a));throw s.status=t,s}catch(n){throw n instanceof b?n:t===401?new Q:t===500?new ee:new b(`Request failed with status ${t}`,t)}}const ne=/.*\:\(?([><=\d\-\.AND ]+)\)?/;function Qe(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=ae(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 ae(e,t){const r=t,n=e.value.match(ne);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 qe(e,t,r){return e.valuesAreExpressions?t.display===r.display:t.value===r.value}function oe(e){return e.items&&(e.items=e.items.map(t=>oe(t))),e.items&&e.items.some(t=>t.$selected||t.$opened)&&(e.$opened=!0),e}function Ve(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);se(r,n,"/",c.display,+(c.frequency||0),1,((u==null?void 0:u.index)||0)+t.length)}})}return r}function se(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 g=i.replace(/^\/|\/$/g,"");u={value:n.substring(r.length,c),count:a,items:[],hasChildren:!1,$level:s,$opened:l>=i.length,$path:g},t.set(i,u),e.push(u)}i.length<n.length&&(u.hasChildren=!0,se(u.items,t,i,n,a,s+1,l))}function je(e,t){return e.reduce((r,n)=>(t(n)?r.true.push(n):r.false.push(n),r),{true:[],false:[]})}const xe=/(([\+\-])?\(([^\)]+)\))|(([\+\-])?\[([^\]]+)\])|(([\+\-])?\"([^\"]+)\")|(([\+\-])?\/([^\/]+)\/)|(([\+\-])?(\S+))/g,Ge=2,ce=3,ze=5,ie=6,He=8,le=9,Je=11,ue=12,We=14,fe=15;function p(e){if(!e)return[];const t=[],r=e.matchAll(xe);for(let n of r)n[ce]?t.push({type:"group",value:n[ce],op:n[Ge]}):n[ie]?t.push({type:"adjacent",value:n[ie],op:n[ze]}):n[le]?t.push({type:"exact",value:n[le],op:n[He]}):n[ue]?t.push({type:"regex",value:n[ue],op:n[Je]}):n[fe]&&t.push({type:"token",value:n[fe],op:n[We]});return t}function A(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 Me(e,t,r){let n=p(e);for(let a of t)n.push({type:"adjacent",value:a,op:r});return A(n)}function Xe(e,t){const r=p(t),n=r.findIndex(a=>a.value===e);return n!==-1?(r.splice(n,1),t=A(r)):t}function Ye(e){const t=p(e).filter(r=>r.type!=="adjacent");return A(t)}function Ke(e){return p(e).filter(t=>t.type==="adjacent").map(t=>t.value)}function Ze(e,t,r){const n=new Intl.RelativeTimeFormat(e,{numeric:"auto"}),{offset:a,unit:s,isFuture:l}=de(t,r);return n.format(a*(l?1:-1),s)}function de(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 Ee(e){const t=e.target;return t&&t.nodeName!=="INPUT"&&t.nodeName!=="TEXTAREA"}function Te(e){if(e===void 0)return;const{q:t,f:r,p:n,s:a,t:s,n:l,b:c}=R(e),[i]=e.split("?");return{path:i,text:t,filters:r?V(r):void 0,page:n?parseInt(n,10):void 0,sort:a,tab:s,name:l,basket:c}}function et(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 tt(e){if(e===void 0)return[];const{f:t}=R(e);return V(t)}function V(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 rt(e){const{q:t=""}=R(e);return t}function nt(e){const{id:t}=R(e);return decodeURIComponent(t)}function at(e){const{p:t="0"}=R(e);return parseInt(t,10)}function ot(e){const{t}=R(e);return t}function st(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=j(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 g=j(e,i.end+4,!0);return e.substring(g.start,g.end)}else i=j(e,i.end+4,!1);const u=e.substring(s.start,s.end);return u||e}function j(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 ct(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 D(e){const t=new CustomEvent("notification",{bubbles:!0,cancelable:!1,detail:e});dispatchEvent(t)}const it={success:(e,t)=>{D({type:"success",message:e,options:t})},info:(e,t)=>{D({type:"info",message:e,options:t})},warning:(e,t)=>{D({type:"warning",message:e,options:t})},error:(e,t)=>{D({type:"error",message:e,options:t})}};async function d(e,t,r){const n=L(r==null?void 0:r.headers),{app:a,backendUrl:s}=f,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}`;v(`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 C(i,r==null?void 0:r.responseType)}catch(i){throw _("Error making POST request:",i),i}}async function S(e,t,r){const n=L(r==null?void 0:r.headers),{backendUrl:a}=f,s=t?`?${new URLSearchParams(t)}`:"";e.startsWith("plugin")&&(e=`api/v1/${e}`);const l=a?`${a}/${e}${s}`:`${e}${s}`;v(`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 C(c,r==null?void 0:r.responseType)}catch(c){throw _("Error making GET request:",c),c}}async function lt(e,t,r){const n=L(r==null?void 0:r.headers),{app:a,backendUrl:s}=f,l={app:a,...t,locale:t.locale||navigator.language,noUserOverride:!0,noAutoAuthentication:!0},c=`${s}/${e}`;v(`Making PUT request to: ${c}`);try{const i=await fetch(c,{method:"PUT",headers:n,credentials:"include",body:JSON.stringify(l)});return C(i,r==null?void 0:r.responseType)}catch(i){throw _("Error making PUT request:",i),i}}async function ut(e,t,r){const n=L(r==null?void 0:r.headers),{backendUrl:a}=f,s=t?`?${new URLSearchParams(t)}`:"",l=a?`${a}/${e}${s}`:`${e}${s}`;v(`Making DELETE request to: ${l}`);try{const c=await fetch(l,{method:"DELETE",credentials:"include",headers:n});return C(c,r==null?void 0:r.responseType)}catch(c){throw _("Error making DELETE request:",c),c}}async function ft(e,t,r){const n=L(r==null?void 0:r.headers),{app:a,backendUrl:s}=f,l={app:a,...t,locale:t.locale||navigator.language,noUserOverride:!0,noAutoAuthentication:!0},c=s?`${s}/${e}`:`${e}`;v(`Making PATCH request to: ${c}`);try{const i=await fetch(c,{method:"PATCH",headers:n,credentials:"include",body:JSON.stringify(l)});return C(i,r==null?void 0:r.responseType)}catch(i){throw _("Error making PATCH request:",i),i}}let x,he;function O(e,t=!0){let r=dt(e.$auditRecord);r&&(_e(r),t&&ge(r)),e.$auditRecord=r}function dt(e){if(!e)return;let t;if(Array.isArray(e))t=e;else if(y(e)){const r=e;if(r.auditEvents||r.mlAuditEvents)return r;t=[e]}return{auditEvents:t}}function _e(e){var r;const t=ht();return(r=e.auditEvents)==null||r.forEach(n=>{n.detail||(n.detail={}),n.detail.sessionid=t}),e}function ge(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 ht(){return(!x||_t())&&(x=Y()),he=new Date,x}function _t(){return new Date().getTime()-he.getTime()>10*60*1e3}async function gt(e,t=!0){const r={event:k.None,$auditRecord:e};return O(r,t),d("api/v1/audit.notify",r)}const mt={notify:gt};async function St(e,t,r){var g;const n=((g=e.items)==null?void 0:g.length)||0,a=10,s={query:{...t,action:"aggregate",aggregations:{[e.name]:{skip:n,count:a}}},$auditRecord:{auditEvents:[r]}};O(s);const l=await d("api/v1/query",s),c=await C(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 wt(){const{app:e}=f,t=new URLSearchParams({app:e||""});return S("api/v1/app",t)}async function me(){const{app:e}=f,t=new URLSearchParams({app:e||"",preLogin:"true"});return S("api/v1/app",t)}function kt(){let{backendUrl:e,app:t}=f;if(typeof window<"u"){if(e||(e=window.location.origin),!t){const r=window.location.pathname.match(/\/app(?:-debug)?\/([^/#]+)/);r&&(t=r[1])}w({...f,backendUrl:e,app:t})}return me().then(r=>{const{autoOAuthProvider:n,autoSAMLProvider:a}=f,s=!n&&!r.autoOAuthProvider&&!a&&!r.autoSAMLProvider;return w({...f,autoOAuthProvider:n||r.autoOAuthProvider,autoSAMLProvider:a||r.autoSAMLProvider,useCredentials:s,useSSO:s}),r}).catch(r=>{throw _("atomic:fetchAppPreLogin error",r),r})}async function bt(e,t,r={}){const n=`api/v1/search.dataset/${e}/${t}`,a=await d(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 Ct(e,t){const r=`api/v1/search.dataset/${e}`,{parameters:n={},datasets:a=[]}=t;return(await d(r,{parameters:n,datasets:a})).datasets}async function vt(e){return await S(`api/v1/search.dataset/${e}`)}async function Rt(e,t=!0,r){try{return(await d("api/v1/labels",{action:"list",q:e,public:t,locale:r,localize:!1})).labels}catch(n){throw _("Error in fetchLabels",n),n}}async function Pt(){try{const{app:e=""}=f,t=new URLSearchParams({app:e,action:"getUserRights"});return S("api/v1/labels",t)}catch(e){throw _("Error in getUserRights",e),e}}async function Lt(e,t,r=!0){try{const n={action:"add",labels:e,ids:t,public:r,$auditRecord:{auditEvents:[{type:k.Label_AddDoc,detail:{public:r,label:e?e.toString():null,doccount:t?t.length:0}}],mlAuditEvents:[{actionType:"addToLabel",documentIds:t}]}};return d("api/v1/labels",n)}catch(n){throw _("Error in add",n),n}}async function Ot(e,t,r=!0){try{const n={action:"remove",labels:e,ids:t,public:r,$auditRecord:{auditEvents:[{type:k.Label_RemoveDoc,detail:{public:r,label:e?e.toString():null,doccount:t?t.length:0}}],mlAuditEvents:[{actionType:"removeFromLabel",documentIds:t}]}};return d("api/v1/labels",n)}catch(n){throw _("Error in remove",n),n}}async function yt(e,t,r=!0){try{const n={action:"rename",labels:e,newLabel:t,public:r,auditEvents:{type:k.Label_Rename,detail:{public:r,oldlabel:e?e.toString():null,label:t}}};return d("api/v1/labels",n)}catch(n){throw _("Error in rename",n),n}}async function pt(e,t=!0){try{const r={action:"delete",labels:e,public:t,auditEvents:{type:k.Label_Delete,detail:{public:t,label:e?e.toString():null}}};return d("api/v1/labels",r)}catch(r){throw _("Error in deleteLabels",r),r}}async function Ut(e,t,r=!0){try{const n={action:"bulkAdd",labels:e,query:t,public:r,auditEvents:{type:k.Label_Add,detail:{public:r,label:e?e.toString():null,query:t!==null?t.name:null}}};return d("api/v1/labels",n)}catch(n){throw _("Error in bulkAdd",n),n}}async function $t(e,t,r=!0){try{const n={action:"bulkRemove",labels:e,query:t,public:r,auditEvents:{type:k.Label_Delete,detail:{public:r,label:e?e.toString():null,query:t!==null?t.name:null}}};return d("api/v1/labels",n)}catch(n){throw _("Error in bulkRemove",n),n}}const It={getUserRights:Pt,add:Lt,remove:Ot,rename:yt,delete:pt,bulkAdd:Ut,bulkRemove:$t};async function At(e,t){if(typeof window>"u")return d("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 d("api/v1/preview",{action:"get",id:e,query:n,browserUrl:r})}async function Dt(e){const t=new Headers;t.append("content-type","text");const r=await fetch(e,{method:"GET",headers:t});C(r)}async function Se(){const e=new URLSearchParams({action:"get",noAutoAuthentication:"true"});return S("api/v1/principal",e)}const we=11;async function Ft(e,t,r){var l;const a=await d("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===we),c.isTree&&c.items&&F(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 Nt(e,t,r){const{app:n=""}=f,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 d("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===we),i.isTree&&F(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 F(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(F(a,s,l)):a.hasChildren=!1}),n}async function Bt(e){const r=await d("api/v1/queryintent",{query:e});return r==null?void 0:r.intents}async function Qt({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 O(u),await d("api/v1/search.queryexport",u,{responseType:"blob"})}async function qt(e,t,r){return(await d("api/v1/similardocuments",{sourceDocumentId:e,query:{name:t}},{signal:r})).data}async function Vt(e,t){var a;const n=await d("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 jt(e,t,r,n,a){const{app:s}=f,l={app:s||"",suggestQuery:e,text:t,filter:r,kinds:n,showSource:a};try{return(await d("api/v1/search.suggest",l)).suggests}catch(c){throw console.error("Error fetching suggestions:",c),c}}async function xt(e,t,r,n){const{app:a}=f;return(await d("api/v1/suggestquery",{app:a||"",suggestQuery:e,text:t,query:r,kinds:n})).suggests}async function Gt(e,t){if(!t)return Promise.resolve([]);const{app:r}=f;return(await d("api/v1/suggestfield",{app:r||"",text:e,action:"suggests",fields:t})).suggests}async function zt(e,t,r,n,a,s){return d("api/v1/doc.textchunks",{id:e,textChunks:t,highlights:r,query:n,leftSentencesCount:a,rightSentencesCount:s})}async function Ht(){const{app:e}=f,t=new URLSearchParams({app:e||"",action:"load"});return S("api/v1/usersettings",t)}async function ke(e,t){const r={action:"save",userSettings:e,$auditRecord:{auditEvents:[t]}};return O(r),d("api/v1/usersettings",r)}async function Jt(e,t){const n={action:"patch",userSettings:e,$auditRecord:t?{auditEvents:[t]}:void 0};return O(n),d("api/v1/usersettings",n)}async function Wt(){return ke({},{type:"UserSettings_Reset"})}async function Mt(){return await S("api/v2/version")}const be=async()=>{const{autoOAuthProvider:e}=f;if(typeof window>"u")return d("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 d("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}},Ce=async()=>{const{autoSAMLProvider:e}=f;if(typeof window>"u")return d("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 d("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}},G={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={}}},z=G;function Xt(e){return typeof window>"u"||!window.localStorage?G.getItem(e):window.localStorage.getItem(e)}function Yt(e){typeof window>"u"||!window.localStorage?G.removeItem(e):window.localStorage.removeItem(e)}function Kt(e){return typeof window>"u"||!window.sessionStorage?z.getItem(e):window.sessionStorage.getItem(e)}function Zt(e,t){typeof window>"u"||!window.sessionStorage?z.setItem(e,t):window.sessionStorage.setItem(e,t)}function Et(e){typeof window>"u"||!window.sessionStorage?z.removeItem(e):window.sessionStorage.removeItem(e)}const U=e=>Zt("sinequa-credentials",JSON.stringify({data:{csrfToken:e}})),ve=async()=>{try{const e=await S("api/v1/challenge?action=getCsrfToken&suppressErrors=true");return e!=null&&e.csrfToken?(U(e.csrfToken),e.csrfToken):null}catch(e){throw _("Failed to get CSRF token",e),e}};async function Re(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 d("api/v1/security.webtoken",n);return a!=null&&a.csrfToken?(U(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}=f;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 d("api/v1/security.webtoken",t,{headers:n});return a.csrfToken?(U(a.csrfToken),a.csrfToken):null}catch(a){throw console.error("Failed to get JWT without credentials",a),a}}}const N=()=>{var r;const e=Kt("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=Xt("csrfToken");return t!==null?t:null},Tt=async e=>{if(e)m("Attempting authentication using credentials"),w({useCredentials:!0,useSSO:!1});else{let c=null;try{m("Attempting to retrieve CSRF token from the backend"),c=await ve(),v("CSRF token retrieval result",c?"success":"failed")}catch(i){_("Failed to retrieve CSRF token",i)}try{if(c===null){const{autoOAuthProvider:i,autoSAMLProvider:u,useSAML:g}=f;if(i&&!g)return m("Initiating OAuth authentication flow"),await be(),P("OAuth authentication flow did not redirect as expected"),h(!1),!1;if(u)return m("Initiating SAML authentication flow"),await Ce(),P("SAML authentication flow did not redirect as expected"),h(!1),!1;m("No direct authentication method available, will try SSO then credentials"),w({useCredentials:!0,useSSO:!0})}else return m("User authenticated via existing token"),h(!0),!0}catch(i){throw _("Unexpected error during authentication",i),h(!1),i}}if(f.useCredentials&&f.useSSO)try{if(m("Checking if user is authenticated via SSO"),await Se())return m("User authenticated using SSO"),w({useCredentials:!1,useSSO:!0}),h(!0),!0}catch(c){if((c==null?void 0:c.status)===401)return m("SSO authentication failed with 401, falling back to credentials"),w({useCredentials:!0,useSSO:!1}),!1;throw _("SSO authentication failed with unexpected error",c),h(!1),_}const{useSSO:r}=f,n=N();if(n&&n!==null||r)return m("user already authenticated",n),w({isRedirectUrl:!1}),h(!0),!0;const{useCredentials:a}=f,{username:s,password:l}=e||{};if(a&&!s&&!l)return _("Credentials are required for authentication"),h(!1),!1;if(s&&l)try{return m("authentication using credentials..."),w({useCredentials:!0,useSSO:!1}),await Re({username:s,password:l}),h(!0),!0}catch(c){throw h(!1),c}return h(!1),_("No authentication method available. Please provide credentials or configure OAuth/SAML."),!1},Pe=async()=>{const e=new URLSearchParams({action:"deleteWebTokenCookie",noUserOverride:"true",noAutoAuthentication:"true"});return S("api/v1/challenge",e)},er=async()=>{const{useCredentials:e,userOverrideActive:t}=f;Yt("csrfToken"),Et("sinequa-credentials"),e&&!t?(await Pe()).methodresult==="ok"?h(!1):console.error("logout failed"):h(!1)},tr=()=>!!N();o.ApiError=b,o.Audit=mt,o.AuditEventType=k,o.DidYouMeanKind=E,o.EngineType=K,o.EngineTypeModifier=Z,o.LogLevel=q,o.MINIMUM_COMPATIBLE_SERVER_API_VERSION=De,o.RFMDisplay=T,o.ServerError=ee,o.TimeoutError=te,o.UnauthorizedError=Q,o.addAuditAdditionalInfo=O,o.addConcepts=Me,o.addSessionId=_e,o.addUrl=ge,o.aggItemRegex=ne,o.aggregationItemStrictCompare=qe,o.appInitializerFn=kt,o.bisect=je,o.buildPathsAndLevels=F,o.configureLogger=Ne,o.createHeaders=L,o.createTimeoutController=Fe,o.debug=v,o.del=ut,o.deleteUserSettings=Wt,o.deleteWebTokenCookie=Pe,o.emitAuthenticatedEvent=h,o.error=_,o.escapeExpr=Ie,o.fetchAggregation=St,o.fetchApp=wt,o.fetchAppPreLogin=me,o.fetchBulkQuery=Nt,o.fetchDataset=bt,o.fetchDatasetList=vt,o.fetchDatasets=Ct,o.fetchLabels=Rt,o.fetchPreview=At,o.fetchPreviewUrl=Dt,o.fetchPrincipal=Se,o.fetchQuery=Ft,o.fetchQueryExport=Qt,o.fetchQueryIntent=Bt,o.fetchSimilarDocuments=qt,o.fetchSponsoredLinks=Vt,o.fetchSuggest=jt,o.fetchSuggestField=Gt,o.fetchSuggestQuery=xt,o.fetchTextChunks=zt,o.fetchUserSettings=Ht,o.fetchVersion=Mt,o.get=S,o.getConcepts=Ke,o.getCsrfToken=ve,o.getFiltersFromURI=V,o.getFiltersFromUrl=tt,o.getHelpIndexUrl=ct,o.getIdFromUrl=nt,o.getJWToken=Re,o.getMetadata=Ue,o.getOffsetFromDates=de,o.getQueryPageFromUrl=at,o.getQueryParamsFromUrl=Te,o.getQueryTabFromUrl=ot,o.getQueryTextFromUrl=rt,o.getRelativeDate=Ze,o.getToken=N,o.getUrlParamsFromQueryParams=et,o.globalConfig=f,o.guid=Y,o.handleResponse=C,o.info=m,o.isArrayBuffer=W,o.isAuthenticated=tr,o.isBlob=M,o.isJsonable=$e,o.isNotInputEvent=Ee,o.isObject=y,o.isString=X,o.labels=It,o.login=Tt,o.logout=er,o.notify=it,o.openParentNodes=oe,o.parseText=p,o.parseValueAndOperatorFromItem=ae,o.patch=ft,o.patchUserSettings=Jt,o.post=d,o.put=lt,o.queryParamsFromUrl=R,o.removeConcept=Xe,o.removeConcepts=Ye,o.resolveToColumnName=pe,o.rewriteText=A,o.saveUserSettings=ke,o.setGlobalConfig=w,o.setToken=U,o.sha512=Ae,o.suggestionsToTreeAggregationNodes=Ve,o.sysLang=st,o.translateAggregationToDateOptions=Qe,o.tryOAuthAuthentication=be,o.trySAMLAuthentication=Ce,o.warn=P,o.withRetry=Be,Object.defineProperty(o,Symbol.toStringTag,{value:"Module"})});
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 rr=Object.defineProperty;var nr=(o,h,f)=>h in o?rr(o,h,{enumerable:!0,configurable:!0,writable:!0,value:f}):o[h]=f;var ye=(o,h,f)=>nr(o,typeof h!="symbol"?h+"":h,f);function h(e){const t=new CustomEvent("authenticated",{bubbles:!0,cancelable:!1,detail:{authenticated:e}});dispatchEvent(t)}const f={loginPath:"/login",createRoutes:!1};function w(e){Object.assign(f,e)}function pe(e,t,r){var s,l,c,i;if(!e||!t)return;if(r){const u=Object.keys(t.queries).find(J=>J===(r==null?void 0:r.toLowerCase()));let g;u&&(g=t.queries[u]);const H=(l=((s=g==null?void 0:g.columnsInfo)==null?void 0:s.columns)||[])==null?void 0:l.find(J=>{var Le,Oe;return(Oe=(Le=J.aliases)==null?void 0:Le.split(","))==null?void 0:Oe.includes(e)});if(H)return H.name}const n=(i=(c=t.indexes)==null?void 0:c._)==null?void 0:i.columns,a=Object.entries(n).find(u=>{var g;return(g=u[1].aliases)==null?void 0:g.includes(e)});if(a)return a[0]}function Ue(e,t){const r=e[t];return r===void 0?[]:Array.isArray(r)?r.map(n=>{if(typeof n=="string")return n;if(typeof n=="object"&&n!==null&&"display"in n)return n.display}).filter(n=>n!==void 0):[String(r)]}function y(e){return e!==null&&typeof e=="object"}function W(e){return y(e)&&Object.prototype.toString.call(e)==="[object ArrayBuffer]"}function M(e){return y(e)&&Object.prototype.toString.call(e)==="[object Blob]"}function X(e){return typeof e=="string"}function $e(e){return(y(e)||Array.isArray(e))&&!W(e)&&!M(e)&&!X(e)}function Y(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 Ie(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 Ae(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(B(e)))}catch{return Promise.resolve(B(e))}return Promise.resolve(B(e))}function B(e){let n=2166136261;for(let g=0;g<e.length;g++)n^=e.charCodeAt(g),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)}var k=(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))(k||{}),K=(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))(K||{}),Z=(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))(Z||{});const De="1.0";var E=(e=>(e[e.Original=0]="Original",e[e.Corrected=1]="Corrected",e))(E||{}),T=(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))(T||{});class b extends Error{constructor(r,n){super(r);ye(this,"status");this.name="ApiError",this.status=n}}class Q extends b{constructor(t="Unauthorized access"){super(t,401),this.name="UnauthorizedError"}}class ee extends b{constructor(t="Server error"){super(t,500),this.name="ServerError"}}class te extends b{constructor(t="Request timed out"){super(t,408),this.name="TimeoutError"}}function Fe(e){const t=new AbortController,{signal:r}=t;return e&&setTimeout(()=>{r.aborted||t.abort(new te(`Request timed out after ${e}ms`))},e),{controller:t,signal:r}}var q=(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))(q||{});let $={level:1,enableConsoleOutput:!0};function Ne(e){$={...$,...e}}function I(e,t,r){if(e<$.level)return;const a=`${`[${q[e]}]`} ${t}`;if($.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 v(e,t){I(0,e,t)}function m(e,t){I(1,e,t)}function P(e,t){I(2,e,t)}function _(e,t){I(3,e,t)}async function Be(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 b&&s.status>=400&&s.status<500&&s.status!==429||s instanceof DOMException&&s.name==="AbortError")throw s;a<t&&(P(`Retrying request (${a+1}/${t})`,{error:s}),await new Promise(l=>setTimeout(l,r)))}throw n}function L(e){const t=N(),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}=f;return s&&r.append("Authorization",`Bearer ${s}`),n&&a&&(r.append("sinequa-override-user",n.username),r.append("sinequa-override-domain",n.domain)),r}async function C(e,t="json"){const r=e.headers.get("sinequa-jwt-refresh");if(r!==null&&U(r),e.status===200)switch(t){case"arraybuffer":return await e.arrayBuffer();case"blob":return await e.blob();case"text":return await e.text();case"json":default:return await e.json()}if(e.status===401){if(f.userOverrideActive)throw f.userOverrideActive=!1,P("Unauthorized access attempt with user override",{endpoint:e.url}),new Q("Unauthorized... User override failed.");await re(e,401)}throw e.status===500&&(_("Server error occurred",{endpoint:e.url}),await re(e,500)),P(`Unexpected response status: ${e.status}`,{endpoint:e.url}),new b(`Request failed with status ${e.status}`,e.status)}async function re(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 new b(`Request failed with status ${t}`,t);const s=JSON.parse(new TextDecoder().decode(a));throw s.status=t,s}catch(n){throw n instanceof b?n:t===401?new Q:t===500?new ee:new b(`Request failed with status ${t}`,t)}}const ne=/.*\:\(?([><=\d\-\.AND ]+)\)?/;function Qe(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=ae(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 ae(e,t){const r=t,n=e.value.match(ne);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 qe(e,t,r){return e.valuesAreExpressions?t.display===r.display:t.value===r.value}function oe(e){return e.items&&(e.items=e.items.map(t=>oe(t))),e.items&&e.items.some(t=>t.$selected||t.$opened)&&(e.$opened=!0),e}function Ve(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);se(r,n,"/",c.display,+(c.frequency||0),1,((u==null?void 0:u.index)||0)+t.length)}})}return r}function se(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 g=i.replace(/^\/|\/$/g,"");u={value:n.substring(r.length,c),count:a,items:[],hasChildren:!1,$level:s,$opened:l>=i.length,$path:g},t.set(i,u),e.push(u)}i.length<n.length&&(u.hasChildren=!0,se(u.items,t,i,n,a,s+1,l))}function je(e,t){return e.reduce((r,n)=>(t(n)?r.true.push(n):r.false.push(n),r),{true:[],false:[]})}const xe=/(([\+\-])?\(([^\)]+)\))|(([\+\-])?\[([^\]]+)\])|(([\+\-])?\"([^\"]+)\")|(([\+\-])?\/([^\/]+)\/)|(([\+\-])?(\S+))/g,Ge=2,ce=3,ze=5,ie=6,He=8,le=9,Je=11,ue=12,We=14,fe=15;function p(e){if(!e)return[];const t=[],r=e.matchAll(xe);for(let n of r)n[ce]?t.push({type:"group",value:n[ce],op:n[Ge]}):n[ie]?t.push({type:"adjacent",value:n[ie],op:n[ze]}):n[le]?t.push({type:"exact",value:n[le],op:n[He]}):n[ue]?t.push({type:"regex",value:n[ue],op:n[Je]}):n[fe]&&t.push({type:"token",value:n[fe],op:n[We]});return t}function A(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 Me(e,t,r){let n=p(e);for(let a of t)n.push({type:"adjacent",value:a,op:r});return A(n)}function Xe(e,t){const r=p(t),n=r.findIndex(a=>a.value===e);return n!==-1?(r.splice(n,1),t=A(r)):t}function Ye(e){const t=p(e).filter(r=>r.type!=="adjacent");return A(t)}function Ke(e){return p(e).filter(t=>t.type==="adjacent").map(t=>t.value)}function Ze(e,t,r){const n=new Intl.RelativeTimeFormat(e,{numeric:"auto"}),{offset:a,unit:s,isFuture:l}=de(t,r);return n.format(a*(l?1:-1),s)}function de(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 Ee(e){const t=e.target;return t&&t.nodeName!=="INPUT"&&t.nodeName!=="TEXTAREA"}function Te(e){if(e===void 0)return;const{q:t,f:r,p:n,s:a,t:s,n:l,b:c}=R(e),[i]=e.split("?");return{path:i,text:t,filters:r?V(r):void 0,page:n?parseInt(n,10):void 0,sort:a,tab:s,name:l,basket:c}}function et(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 tt(e){if(e===void 0)return[];const{f:t}=R(e);return V(t)}function V(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 rt(e){const{q:t=""}=R(e);return t}function nt(e){const{id:t}=R(e);return decodeURIComponent(t)}function at(e){const{p:t="0"}=R(e);return parseInt(t,10)}function ot(e){const{t}=R(e);return t}function st(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=j(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 g=j(e,i.end+4,!0);return e.substring(g.start,g.end)}else i=j(e,i.end+4,!1);const u=e.substring(s.start,s.end);return u||e}function j(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 ct(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 D(e){const t=new CustomEvent("notification",{bubbles:!0,cancelable:!1,detail:e});dispatchEvent(t)}const it={success:(e,t)=>{D({type:"success",message:e,options:t})},info:(e,t)=>{D({type:"info",message:e,options:t})},warning:(e,t)=>{D({type:"warning",message:e,options:t})},error:(e,t)=>{D({type:"error",message:e,options:t})}};async function d(e,t,r){const n=L(r==null?void 0:r.headers),{app:a,backendUrl:s}=f,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}`;v(`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 C(i,r==null?void 0:r.responseType)}catch(i){throw _("Error making POST request:",i),i}}async function S(e,t,r){const n=L(r==null?void 0:r.headers),{backendUrl:a}=f,s=t?`?${new URLSearchParams(t)}`:"";e.startsWith("plugin")&&(e=`api/v1/${e}`);const l=a?`${a}/${e}${s}`:`${e}${s}`;v(`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 C(c,r==null?void 0:r.responseType)}catch(c){throw _("Error making GET request:",c),c}}async function lt(e,t,r){const n=L(r==null?void 0:r.headers),{app:a,backendUrl:s}=f,l={app:a,...t,locale:t.locale||navigator.language,noUserOverride:!0,noAutoAuthentication:!0},c=`${s}/${e}`;v(`Making PUT request to: ${c}`);try{const i=await fetch(c,{method:"PUT",headers:n,credentials:"include",body:JSON.stringify(l)});return C(i,r==null?void 0:r.responseType)}catch(i){throw _("Error making PUT request:",i),i}}async function ut(e,t,r){const n=L(r==null?void 0:r.headers),{backendUrl:a}=f,s=t?`?${new URLSearchParams(t)}`:"",l=a?`${a}/${e}${s}`:`${e}${s}`;v(`Making DELETE request to: ${l}`);try{const c=await fetch(l,{method:"DELETE",credentials:"include",headers:n});return C(c,r==null?void 0:r.responseType)}catch(c){throw _("Error making DELETE request:",c),c}}async function ft(e,t,r){const n=L(r==null?void 0:r.headers),{app:a,backendUrl:s}=f,l={app:a,...t,locale:t.locale||navigator.language,noUserOverride:!0,noAutoAuthentication:!0},c=s?`${s}/${e}`:`${e}`;v(`Making PATCH request to: ${c}`);try{const i=await fetch(c,{method:"PATCH",headers:n,credentials:"include",body:JSON.stringify(l)});return C(i,r==null?void 0:r.responseType)}catch(i){throw _("Error making PATCH request:",i),i}}let x,he;function O(e,t=!0){let r=dt(e.$auditRecord);r&&(_e(r),t&&ge(r)),e.$auditRecord=r}function dt(e){if(!e)return;let t;if(Array.isArray(e))t=e;else if(y(e)){const r=e;if(r.auditEvents||r.mlAuditEvents)return r;t=[e]}return{auditEvents:t}}function _e(e){var r;const t=ht();return(r=e.auditEvents)==null||r.forEach(n=>{n.detail||(n.detail={}),n.detail.sessionid=t}),e}function ge(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 ht(){return(!x||_t())&&(x=Y()),he=new Date,x}function _t(){return new Date().getTime()-he.getTime()>10*60*1e3}async function gt(e,t=!0){const r={event:k.None,$auditRecord:e};return O(r,t),d("api/v1/audit.notify",r)}const mt={notify:gt};async function St(e,t,r){var g;const n=((g=e.items)==null?void 0:g.length)||0,a=10,s={query:{...t,action:"aggregate",aggregations:{[e.name]:{skip:n,count:a}}},$auditRecord:{auditEvents:[r]}};O(s);const l=await d("api/v1/query",s),c=await C(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 wt(){const{app:e}=f,t=new URLSearchParams({app:e||""});return S("api/v1/app",t)}async function me(){const{app:e}=f,t=new URLSearchParams({app:e||"",preLogin:"true"});return S("api/v1/app",t)}function kt(){let{backendUrl:e,app:t}=f;if(typeof window<"u"){if(e||(e=window.location.origin),!t){const r=window.location.pathname.match(/\/app(?:-debug)?\/([^/#]+)/);r&&(t=r[1])}w({...f,backendUrl:e,app:t})}return me().then(r=>{const{autoOAuthProvider:n,autoSAMLProvider:a}=f,s=!n&&!r.autoOAuthProvider&&!a&&!r.autoSAMLProvider;return w({...f,autoOAuthProvider:n||r.autoOAuthProvider,autoSAMLProvider:a||r.autoSAMLProvider,useCredentials:s,useSSO:s}),r}).catch(r=>{throw _("atomic:fetchAppPreLogin error",r),r})}async function bt(e,t,r={}){const n=`api/v1/search.dataset/${e}/${t}`,a=await d(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 Ct(e,t){const r=`api/v1/search.dataset/${e}`,{parameters:n={},datasets:a=[]}=t;return(await d(r,{parameters:n,datasets:a})).datasets}async function vt(e){return await S(`api/v1/search.dataset/${e}`)}async function Rt(e,t=!0,r){try{return(await d("api/v1/labels",{action:"list",q:e,public:t,locale:r,localize:!1})).labels}catch(n){throw _("Error in fetchLabels",n),n}}async function Pt(){try{const{app:e=""}=f,t=new URLSearchParams({app:e,action:"getUserRights"});return S("api/v1/labels",t)}catch(e){throw _("Error in getUserRights",e),e}}async function Lt(e,t,r=!0){try{const n={action:"add",labels:e,ids:t,public:r,$auditRecord:{auditEvents:[{type:k.Label_AddDoc,detail:{public:r,label:e?e.toString():null,doccount:t?t.length:0}}],mlAuditEvents:[{actionType:"addToLabel",documentIds:t}]}};return d("api/v1/labels",n)}catch(n){throw _("Error in add",n),n}}async function Ot(e,t,r=!0){try{const n={action:"remove",labels:e,ids:t,public:r,$auditRecord:{auditEvents:[{type:k.Label_RemoveDoc,detail:{public:r,label:e?e.toString():null,doccount:t?t.length:0}}],mlAuditEvents:[{actionType:"removeFromLabel",documentIds:t}]}};return d("api/v1/labels",n)}catch(n){throw _("Error in remove",n),n}}async function yt(e,t,r=!0){try{const n={action:"rename",labels:e,newLabel:t,public:r,auditEvents:{type:k.Label_Rename,detail:{public:r,oldlabel:e?e.toString():null,label:t}}};return d("api/v1/labels",n)}catch(n){throw _("Error in rename",n),n}}async function pt(e,t=!0){try{const r={action:"delete",labels:e,public:t,auditEvents:{type:k.Label_Delete,detail:{public:t,label:e?e.toString():null}}};return d("api/v1/labels",r)}catch(r){throw _("Error in deleteLabels",r),r}}async function Ut(e,t,r=!0){try{const n={action:"bulkAdd",labels:e,query:t,public:r,auditEvents:{type:k.Label_Add,detail:{public:r,label:e?e.toString():null,query:t!==null?t.name:null}}};return d("api/v1/labels",n)}catch(n){throw _("Error in bulkAdd",n),n}}async function $t(e,t,r=!0){try{const n={action:"bulkRemove",labels:e,query:t,public:r,auditEvents:{type:k.Label_Delete,detail:{public:r,label:e?e.toString():null,query:t!==null?t.name:null}}};return d("api/v1/labels",n)}catch(n){throw _("Error in bulkRemove",n),n}}const It={getUserRights:Pt,add:Lt,remove:Ot,rename:yt,delete:pt,bulkAdd:Ut,bulkRemove:$t};async function At(e,t){if(typeof window>"u")return d("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 d("api/v1/preview",{action:"get",id:e,query:n,browserUrl:r})}async function Dt(e){const t=new Headers;t.append("content-type","text");const r=await fetch(e,{method:"GET",headers:t});C(r)}async function Se(){const e=new URLSearchParams({action:"get",noAutoAuthentication:"true"});return S("api/v1/principal",e)}const we=11;async function Ft(e,t,r){var l;const a=await d("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===we),c.isTree&&c.items&&F(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 Nt(e,t,r){const{app:n=""}=f,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 d("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===we),i.isTree&&F(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 F(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(F(a,s,l)):a.hasChildren=!1}),n}async function Bt(e){const r=await d("api/v1/queryintent",{query:e});return r==null?void 0:r.intents}async function Qt({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 O(u),await d("api/v1/search.queryexport",u,{responseType:"blob"})}async function qt(e,t,r){return(await d("api/v1/similardocuments",{sourceDocumentId:e,query:{name:t}},{signal:r})).data}async function Vt(e,t){var a;const n=await d("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 jt(e,t,r,n,a){const{app:s}=f,l={app:s||"",suggestQuery:e,text:t,filter:r,kinds:n,showSource:a};try{return(await d("api/v1/search.suggest",l)).suggests}catch(c){throw console.error("Error fetching suggestions:",c),c}}async function xt(e,t,r,n){const{app:a}=f;return(await d("api/v1/suggestquery",{app:a||"",suggestQuery:e,text:t,query:r,kinds:n})).suggests}async function Gt(e,t){if(!t)return Promise.resolve([]);const{app:r}=f;return(await d("api/v1/suggestfield",{app:r||"",text:e,action:"suggests",fields:t})).suggests}async function zt(e,t,r,n,a,s){return d("api/v1/doc.textchunks",{id:e,textChunks:t,highlights:r,query:n,leftSentencesCount:a,rightSentencesCount:s})}async function Ht(){const{app:e}=f,t=new URLSearchParams({app:e||"",action:"load"});return S("api/v1/usersettings",t)}async function ke(e,t){const r={action:"save",userSettings:e,$auditRecord:{auditEvents:[t]}};return O(r),d("api/v1/usersettings",r)}async function Jt(e,t){const n={action:"patch",userSettings:e,$auditRecord:t?{auditEvents:[t]}:void 0};return O(n),d("api/v1/usersettings",n)}async function Wt(){return ke({},{type:"UserSettings_Reset"})}async function Mt(){return await S("api/v2/version")}const be=async()=>{const{autoOAuthProvider:e}=f;if(typeof window>"u")return d("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 d("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}},Ce=async()=>{const{autoSAMLProvider:e}=f;if(typeof window>"u")return d("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 d("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}},G={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={}}},z=G;function Xt(e){return typeof window>"u"||!window.localStorage?G.getItem(e):window.localStorage.getItem(e)}function Yt(e){typeof window>"u"||!window.localStorage?G.removeItem(e):window.localStorage.removeItem(e)}function Kt(e){return typeof window>"u"||!window.sessionStorage?z.getItem(e):window.sessionStorage.getItem(e)}function Zt(e,t){typeof window>"u"||!window.sessionStorage?z.setItem(e,t):window.sessionStorage.setItem(e,t)}function Et(e){typeof window>"u"||!window.sessionStorage?z.removeItem(e):window.sessionStorage.removeItem(e)}const U=e=>Zt("sinequa-credentials",JSON.stringify({data:{csrfToken:e}})),ve=async()=>{try{const e=await S("api/v1/challenge?action=getCsrfToken&suppressErrors=true");return e!=null&&e.csrfToken?(U(e.csrfToken),e.csrfToken):null}catch(e){throw _("Failed to get CSRF token",e),e}};async function Re(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 d("api/v1/security.webtoken",n);return a!=null&&a.csrfToken?(U(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}=f;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 d("api/v1/security.webtoken",t,{headers:n});return a.csrfToken?(U(a.csrfToken),a.csrfToken):null}catch(a){throw console.error("Failed to get JWT without credentials",a),a}}}const N=()=>{var r;const e=Kt("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=Xt("csrfToken");return t!==null?t:null},Tt=async e=>{if(e)m("Attempting authentication using credentials"),w({useCredentials:!0,useSSO:!1});else{let c=null;try{m("Attempting to retrieve CSRF token from the backend"),c=await ve(),v("CSRF token retrieval result",c?"success":"failed")}catch(i){_("Failed to retrieve CSRF token",i)}try{if(c===null){const{autoOAuthProvider:i,autoSAMLProvider:u,useSAML:g}=f;if(i&&!g)return m("Initiating OAuth authentication flow"),await be(),P("OAuth authentication flow did not redirect as expected"),h(!1),!1;if(u)return m("Initiating SAML authentication flow"),await Ce(),P("SAML authentication flow did not redirect as expected"),h(!1),!1;m("No direct authentication method available, will try SSO then credentials"),w({useCredentials:!0,useSSO:!0})}else return m("User authenticated via existing token"),h(!0),!0}catch(i){throw _("Unexpected error during authentication",i),h(!1),i}}if(f.useCredentials&&f.useSSO)try{if(m("Checking if user is authenticated via SSO"),await Se())return m("User authenticated using SSO"),w({useCredentials:!1,useSSO:!0}),h(!0),!0}catch(c){if((c==null?void 0:c.status)===401)return m("SSO authentication failed with 401, falling back to credentials"),w({useCredentials:!0,useSSO:!1}),!1;throw _("SSO authentication failed with unexpected error",c),h(!1),_}const{useSSO:r}=f,n=N();if(n&&n!==null||r)return m("user already authenticated",n),w({isRedirectUrl:!1}),h(!0),!0;const{useCredentials:a}=f,{username:s,password:l}=e||{};if(a&&!s&&!l)return _("Credentials are required for authentication"),h(!1),!1;if(s&&l)try{return m("authentication using credentials..."),w({useCredentials:!0,useSSO:!1}),await Re({username:s,password:l}),h(!0),!0}catch(c){throw h(!1),c}return h(!1),_("No authentication method available. Please provide credentials or configure OAuth/SAML."),!1},Pe=async()=>{const e=new URLSearchParams({action:"deleteWebTokenCookie",noUserOverride:"true",noAutoAuthentication:"true"});return S("api/v1/challenge",e)},er=async()=>{const{useCredentials:e,userOverrideActive:t}=f;Yt("csrfToken"),Et("sinequa-credentials"),e&&!t?(await Pe()).methodresult==="ok"?h(!1):console.error("logout failed"):h(!1)},tr=()=>!!N();o.ApiError=b,o.Audit=mt,o.AuditEventType=k,o.DidYouMeanKind=E,o.EngineType=K,o.EngineTypeModifier=Z,o.LogLevel=q,o.MINIMUM_COMPATIBLE_SERVER_API_VERSION=De,o.RFMDisplay=T,o.ServerError=ee,o.TimeoutError=te,o.UnauthorizedError=Q,o.addAuditAdditionalInfo=O,o.addConcepts=Me,o.addSessionId=_e,o.addUrl=ge,o.aggItemRegex=ne,o.aggregationItemStrictCompare=qe,o.appInitializerFn=kt,o.bisect=je,o.buildPathsAndLevels=F,o.configureLogger=Ne,o.createHeaders=L,o.createTimeoutController=Fe,o.debug=v,o.del=ut,o.deleteUserSettings=Wt,o.deleteWebTokenCookie=Pe,o.emitAuthenticatedEvent=h,o.error=_,o.escapeExpr=Ie,o.fetchAggregation=St,o.fetchApp=wt,o.fetchAppPreLogin=me,o.fetchBulkQuery=Nt,o.fetchDataset=bt,o.fetchDatasetList=vt,o.fetchDatasets=Ct,o.fetchLabels=Rt,o.fetchPreview=At,o.fetchPreviewUrl=Dt,o.fetchPrincipal=Se,o.fetchQuery=Ft,o.fetchQueryExport=Qt,o.fetchQueryIntent=Bt,o.fetchSimilarDocuments=qt,o.fetchSponsoredLinks=Vt,o.fetchSuggest=jt,o.fetchSuggestField=Gt,o.fetchSuggestQuery=xt,o.fetchTextChunks=zt,o.fetchUserSettings=Ht,o.fetchVersion=Mt,o.get=S,o.getConcepts=Ke,o.getCsrfToken=ve,o.getFiltersFromURI=V,o.getFiltersFromUrl=tt,o.getHelpIndexUrl=ct,o.getIdFromUrl=nt,o.getJWToken=Re,o.getMetadata=Ue,o.getOffsetFromDates=de,o.getQueryPageFromUrl=at,o.getQueryParamsFromUrl=Te,o.getQueryTabFromUrl=ot,o.getQueryTextFromUrl=rt,o.getRelativeDate=Ze,o.getToken=N,o.getUrlParamsFromQueryParams=et,o.globalConfig=f,o.guid=Y,o.handleResponse=C,o.info=m,o.isArrayBuffer=W,o.isAuthenticated=tr,o.isBlob=M,o.isJsonable=$e,o.isNotInputEvent=Ee,o.isObject=y,o.isString=X,o.labels=It,o.login=Tt,o.logout=er,o.notify=it,o.openParentNodes=oe,o.parseText=p,o.parseValueAndOperatorFromItem=ae,o.patch=ft,o.patchUserSettings=Jt,o.post=d,o.put=lt,o.queryParamsFromUrl=R,o.removeConcept=Xe,o.removeConcepts=Ye,o.resolveToColumnName=pe,o.rewriteText=A,o.saveUserSettings=ke,o.setGlobalConfig=w,o.setToken=U,o.sha512=Ae,o.suggestionsToTreeAggregationNodes=Ve,o.sysLang=st,o.translateAggregationToDateOptions=Qe,o.tryOAuthAuthentication=be,o.trySAMLAuthentication=Ce,o.warn=P,o.withRetry=Be,Object.defineProperty(o,Symbol.toStringTag,{value:"Module"})});
@@ -23,18 +23,18 @@ export declare function configureLogger(config: Partial<LoggerConfig>): void;
23
23
  /**
24
24
  * Log a debug message
25
25
  */
26
- export declare function debug(message: string, data?: any): void;
26
+ export declare function debug(message: string, data?: unknown): void;
27
27
  /**
28
28
  * Log an info message
29
29
  */
30
- export declare function info(message: string, data?: any): void;
30
+ export declare function info(message: string, data?: unknown): void;
31
31
  /**
32
32
  * Log a warning message
33
33
  */
34
- export declare function warn(message: string, data?: any): void;
34
+ export declare function warn(message: string, data?: unknown): void;
35
35
  /**
36
36
  * Log an error message
37
37
  */
38
- export declare function error(message: string, error?: any): void;
38
+ export declare function error(message: string, error?: unknown): void;
39
39
  export {};
40
40
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,oBAAY,QAAQ;IAClB,KAAK,IAAI;IACT,IAAI,IAAI;IACR,IAAI,IAAI;IACR,KAAK,IAAI;IACT,IAAI,IAAI;CACT;AAED,UAAU,YAAY;IACpB,KAAK,EAAE,QAAQ,CAAC;IAChB,mBAAmB,EAAE,OAAO,CAAC;CAE9B;AAQD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAEnE;AAgCD;;GAEG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI,CAEvD;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI,CAEtD;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI,CAEtD;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,IAAI,CAExD"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,oBAAY,QAAQ;IAClB,KAAK,IAAI;IACT,IAAI,IAAI;IACR,IAAI,IAAI;IACR,KAAK,IAAI;IACT,IAAI,IAAI;CACT;AAED,UAAU,YAAY;IACpB,KAAK,EAAE,QAAQ,CAAC;IAChB,mBAAmB,EAAE,OAAO,CAAC;CAE9B;AAQD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAEnE;AA+BD;;GAEG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAE3D;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAE1D;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAE1D;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAE5D"}
@@ -1,4 +1,4 @@
1
- import { CCApp, CCAppPreLogin } from "../../types";
1
+ import type { CCApp, CCAppPreLogin } from "../../types";
2
2
  /**
3
3
  * Fetches the CCApp object.
4
4
  * @returns A promise that resolves to the CCApp object.
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-app.d.ts","sourceRoot":"","sources":["../../../src/web-api/v1/fetch-app.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAInD;;;GAGG;AACH,wBAAsB,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,CAK/C;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC,CAQ/D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC,CA2DzD"}
1
+ {"version":3,"file":"fetch-app.d.ts","sourceRoot":"","sources":["../../../src/web-api/v1/fetch-app.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIxD;;;GAGG;AACH,wBAAsB,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,CAK/C;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC,CAQ/D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC,CA2DzD"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sinequa/atomic",
3
3
  "private": false,
4
- "version": "0.0.122",
4
+ "version": "0.0.123",
5
5
  "type": "module",
6
6
  "main": "./dist/atomic.umd.cjs",
7
7
  "module": "./dist/atomic.js",