UNPKG

@meilisearch/instant-meilisearch

Version:
3 lines (2 loc) 15.8 kB
(function(d,b){typeof exports=="object"&&typeof module!="undefined"?b(exports,require("meilisearch")):typeof define=="function"&&define.amd?define(["exports","meilisearch"],b):(d=typeof globalThis!="undefined"?globalThis:d||self,b(d.instantMeilisearch={},d.meilisearch))})(this,(function(d,b){"use strict";var jt=Object.defineProperty,vt=Object.defineProperties;var Ht=Object.getOwnPropertyDescriptors;var I=Object.getOwnPropertySymbols;var K=Object.prototype.hasOwnProperty,z=Object.prototype.propertyIsEnumerable;var W=(d,b,T)=>b in d?jt(d,b,{enumerable:!0,configurable:!0,writable:!0,value:T}):d[b]=T,O=(d,b)=>{for(var T in b||(b={}))K.call(b,T)&&W(d,T,b[T]);if(I)for(var T of I(b))z.call(b,T)&&W(d,T,b[T]);return d},C=(d,b)=>vt(d,Ht(b));var X=(d,b)=>{var T={};for(var _ in d)K.call(d,_)&&b.indexOf(_)<0&&(T[_]=d[_]);if(d!=null&&I)for(var _ of I(d))b.indexOf(_)<0&&z.call(d,_)&&(T[_]=d[_]);return T};var $=(d,b,T)=>new Promise((_,j)=>{var q=M=>{try{v(T.next(M))}catch(H){j(H)}},E=M=>{try{v(T.throw(M))}catch(H){j(H)}},v=M=>M.done?_(M.value):Promise.resolve(M.value).then(q,E);v((T=T.apply(d,b)).next())});function T(t){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const n in t)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(e,n,r.get?r:{enumerable:!0,get:()=>t[n]})}}return e.default=t,Object.freeze(e)}const _=T(b);function j(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null}function q(t){return O(O({},{placeholderSearch:!0,keepZeroFacets:!1,clientAgents:[],finitePagination:!1}),t)}function E(t){if(typeof t=="function"){const e=t();if(typeof e!="string")throw new TypeError("Provided apiKey function (2nd parameter) did not return a string, expected string");return e}return t}function v(t,e,n){const{requestInit:r,httpClient:s}=n;if(typeof t!="string")throw new TypeError("Provided hostUrl value (1st parameter) is not a string, expected string");if(typeof e!="string"&&typeof e!="function")throw new TypeError("Provided apiKey value (2nd parameter) is not a string or a function, expected string or function");if(r!==void 0&&!j(r))throw new TypeError("Provided requestInit should be an object");if(s&&typeof s!="function")throw new TypeError("Provided custom httpClient should be a function")}function M(t,e){return{multiSearch:function(n,r){return $(this,null,function*(){const s=e.formatKey([n]),l=e.getEntry(s);if(l)return l;const x=(yield t.multiSearch({queries:n})).results.map((g,m)=>C(O({},g),{pagination:r[m]||{}}));return e.setEntry(s,x),x})}}}function H({insidePolygon:t,insideBoundingBox:e,aroundLatLng:n,aroundRadius:r,minimumAroundRadius:s}){let l,f,x;if(Array.isArray(t)&&t.length>=3){const g=[],m=t.map(p=>{if(!Array.isArray(p)||p.length<2)return g.push(p),null;const S=Number.parseFloat(String(p[0])),F=Number.parseFloat(String(p[1]));return Number.isNaN(S)||Number.isNaN(F)?(g.push(p),null):`[${S}, ${F}]`}).filter(p=>p!==null);if(g.length>0&&console.warn("instant-meilisearch: insidePolygon contains invalid coordinate pairs that were ignored:",g),m.length>=3)return x=`_geoPolygon(${m.join(", ")})`,x}if(n){const[g,m]=n.split(",").map(p=>Number.parseFloat(p).toFixed(5));l=[g,m]}if((r!=null||s!=null)&&(r==="all"?console.warn("instant-meilisearch is not compatible with the `all` value on the aroundRadius parameter"):r!=null?f=r:f=s),e&&typeof e=="string"){const[g,m,p,S]=e.split(",").map(F=>parseFloat(F));x=`_geoBoundingBox([${g}, ${m}], [${p}, ${S}])`}else if(l!=null&&f!=null){const[g,m]=l;x=`_geoRadius(${g}, ${m}, ${f})`}return x}const Y=/([\\"])/g;function D(t){return t.replace(Y,"\\$1")}function tt(t){const e=D(t),n=e.indexOf(":"),r=e.slice(0,n),s=e.slice(n+1);return`"${r}"="${s}"`}function et(t){const e=()=>{const f=t.match(/^([^<!>:=]*)([<!>:=]+)(.*)$/);if(f){const[x,g,m]=f.slice(1),p=g.match(/^([<!>]?=|<|>|:){1}(.*)/)||["",""],[S,F]=p.slice(1),w=F+m;return[x,S,w]}return[t,"",""]},[n,r,s]=e();return`"${D(n).trim()}"${r===":"?" ":r}${s.trim()}`}function V(t,e){return typeof e=="string"?t(e):e.map(n=>typeof n=="string"?t(n):n.map(r=>t(r)))}function Q(t){return typeof t=="string"?[t]:t}function nt(t,e,n){const r=Q(e),s=Q(n),l=[];return t!==void 0&&l.push(t),r!==void 0&&l.push(...r),s!==void 0&&l.push(...s),l}function it(t,e,n){const r=e!==void 0?V(et,e):e,s=n!==void 0?V(tt,n):n;return nt(t,r,s)}function rt(t,e,n){return!(!n&&!e&&(!t||t.length===0))}function st(t,e){const{page:n,hitsPerPage:r}=t;return e?{limit:r+1,offset:n*r}:{limit:0,offset:0}}function ot(t,e){const{page:n,hitsPerPage:r}=t;return e?{hitsPerPage:r,page:n+1}:{hitsPerPage:0,page:n+1}}function Z(t){const{query:e,indexUid:n,facets:r,attributesToSnippet:s,snippetEllipsisText:l,filters:f,numericFilters:x,facetFilters:g,attributesToRetrieve:m,attributesToHighlight:p,highlightPreTag:S,highlightPostTag:F,placeholderSearch:w,pagination:A,sort:R,restrictSearchableAttributes:N,meiliSearchParams:i}=t,h={indexUid:n},k=it(f,x,g);return{getParams(){return h},addQuery(){h.q=e},addFacets(){var o,a,u,y;const c=(y=(u=(a=(o=i==null?void 0:i.indexesOverrides)==null?void 0:o[n])==null?void 0:a.facets)!=null?u:i==null?void 0:i.facets)!=null?y:r;c!==void 0&&(h.facets=typeof c=="string"?[c]:c)},addAttributesToCrop(){var o,a,u,y;const c=(y=(u=(a=(o=i==null?void 0:i.indexesOverrides)==null?void 0:o[n])==null?void 0:a.attributesToCrop)!=null?u:i==null?void 0:i.attributesToCrop)!=null?y:s;c!==void 0&&(h.attributesToCrop=c)},addCropLength(){var o,a,u;const c=(u=(a=(o=i==null?void 0:i.indexesOverrides)==null?void 0:o[n])==null?void 0:a.cropLength)!=null?u:i==null?void 0:i.cropLength;c!==void 0&&(h.cropLength=c)},addCropMarker(){var o,a,u,y;const c=(y=(u=(a=(o=i==null?void 0:i.indexesOverrides)==null?void 0:o[n])==null?void 0:a.cropMarker)!=null?u:i==null?void 0:i.cropMarker)!=null?y:l;c!==void 0&&(h.cropMarker=c)},addFilters(){var o,a,u;const c=(u=(a=(o=i==null?void 0:i.indexesOverrides)==null?void 0:o[n])==null?void 0:a.filter)!=null?u:i==null?void 0:i.filter;c!==void 0?h.filter=c:k.length&&(h.filter=k)},addAttributesToRetrieve(){var o,a,u,y;const c=(y=(u=(a=(o=i==null?void 0:i.indexesOverrides)==null?void 0:o[n])==null?void 0:a.attributesToRetrieve)!=null?u:i==null?void 0:i.attributesToRetrieve)!=null?y:m;c!==void 0&&(h.attributesToRetrieve=c)},addAttributesToHighlight(){var c,o,a,u,y;h.attributesToHighlight=(y=(u=(a=(o=(c=i==null?void 0:i.indexesOverrides)==null?void 0:c[n])==null?void 0:o.attributesToHighlight)!=null?a:i==null?void 0:i.attributesToHighlight)!=null?u:p)!=null?y:["*"]},addPreTag(){var c,o,a,u,y;h.highlightPreTag=(y=(u=(a=(o=(c=i==null?void 0:i.indexesOverrides)==null?void 0:c[n])==null?void 0:o.highlightPreTag)!=null?a:i==null?void 0:i.highlightPreTag)!=null?u:S)!=null?y:"__ais-highlight__"},addPostTag(){var c,o,a,u,y;h.highlightPostTag=(y=(u=(a=(o=(c=i==null?void 0:i.indexesOverrides)==null?void 0:c[n])==null?void 0:o.highlightPostTag)!=null?a:i==null?void 0:i.highlightPostTag)!=null?u:F)!=null?y:"__/ais-highlight__"},addPagination(){const c=rt(k,e,w);if(A.finite){const{hitsPerPage:o,page:a}=ot(A,c);h.hitsPerPage=o,h.page=a}else{const{limit:o,offset:a}=st(A,c);h.limit=o,h.offset=a}},addSort(){var a,u,y;const c=(y=(u=(a=i==null?void 0:i.indexesOverrides)==null?void 0:a[n])==null?void 0:u.sort)!=null?y:i==null?void 0:i.sort,o=c!=null?c:R;o&&(!Array.isArray(o)||o.length)&&(h.sort=Array.isArray(o)?o:[o])},addGeoSearchFilter(){const{insidePolygon:c,insideBoundingBox:o,aroundLatLng:a,aroundRadius:u,minimumAroundRadius:y}=t,P=H({insidePolygon:c,insideBoundingBox:o,aroundLatLng:a,aroundRadius:u,minimumAroundRadius:y});P!==void 0&&(Array.isArray(h.filter)?h.filter.unshift(P):h.filter=[P])},addShowMatchesPosition(){var o,a,u;const c=(u=(a=(o=i==null?void 0:i.indexesOverrides)==null?void 0:o[n])==null?void 0:a.showMatchesPosition)!=null?u:i==null?void 0:i.showMatchesPosition;c!==void 0&&(h.showMatchesPosition=c)},addMatchingStrategy(){var o,a,u;const c=(u=(a=(o=i==null?void 0:i.indexesOverrides)==null?void 0:o[n])==null?void 0:a.matchingStrategy)!=null?u:i==null?void 0:i.matchingStrategy;c!==void 0&&(h.matchingStrategy=c)},addShowRankingScore(){var o,a,u;const c=(u=(a=(o=i==null?void 0:i.indexesOverrides)==null?void 0:o[n])==null?void 0:a.showRankingScore)!=null?u:i==null?void 0:i.showRankingScore;c!==void 0&&(h.showRankingScore=c)},addAttributesToSearchOn(){var o,a,u,y;const c=(y=(u=(a=(o=i==null?void 0:i.indexesOverrides)==null?void 0:o[n])==null?void 0:a.attributesToSearchOn)!=null?u:i==null?void 0:i.attributesToSearchOn)!=null?y:N;c!==void 0&&(h.attributesToSearchOn=c)},addHybridSearch(){var o,a,u;const c=(u=(a=(o=i==null?void 0:i.indexesOverrides)==null?void 0:o[n])==null?void 0:a.hybrid)!=null?u:i==null?void 0:i.hybrid;c!==void 0&&(h.hybrid=c)},addVector(){var o,a,u;const c=(u=(a=(o=i==null?void 0:i.indexesOverrides)==null?void 0:o[n])==null?void 0:a.vector)!=null?u:i==null?void 0:i.vector;c!==void 0&&(h.vector=c)},addDistinct(){var o,a,u;const c=(u=(a=(o=i==null?void 0:i.indexesOverrides)==null?void 0:o[n])==null?void 0:a.distinct)!=null?u:i==null?void 0:i.distinct;c!==void 0&&(h.distinct=c)},addRankingScoreThreshold(){var o,a,u;const c=(u=(a=(o=i==null?void 0:i.indexesOverrides)==null?void 0:o[n])==null?void 0:a.rankingScoreThreshold)!=null?u:i==null?void 0:i.rankingScoreThreshold;c!==void 0&&(h.rankingScoreThreshold=c)}}}function B(t){const e=Z(t);return e.addQuery(),e.addFacets(),e.addAttributesToCrop(),e.addCropLength(),e.addCropMarker(),e.addFilters(),e.addAttributesToRetrieve(),e.addAttributesToHighlight(),e.addPreTag(),e.addPostTag(),e.addPagination(),e.addSort(),e.addGeoSearchFilter(),e.addShowMatchesPosition(),e.addMatchingStrategy(),e.addShowRankingScore(),e.addAttributesToSearchOn(),e.addHybridSearch(),e.addVector(),e.addDistinct(),e.addRankingScoreThreshold(),e.getParams()}function ct(t){const e=[];return n=>e.includes(n[t])?!1:(e.push(n[t]),!0)}function at(t){return t.reduce((e,n)=>e+=JSON.stringify(n),"")}function ut(t){return typeof t=="string"?t:JSON.stringify(t===void 0?null:t)}function U(t){return Array.isArray(t)?t.map(e=>U(e)):j(t)?Object.keys(t).reduce((e,n)=>(e[n]=U(t[n]),e),{}):{value:ut(t)}}function lt(t){if(!t)return{};const e=U(t);return{_highlightResult:e,_snippetResult:e}}function dt(t){var e;for(let n=0;n<t.length;n++){const r=`${n+Math.random()*1e6}`;t[n]._geo&&(t[n]._geoloc=t[n]._geo,t[n].objectID||(t[n].objectID=r)),(e=t[n]._formatted)!=null&&e._geo&&(t[n]._formatted._geoloc=t[n]._formatted._geo,t[n]._formatted.objectID||(t[n]._formatted.objectID=r))}return t}function ft(t,e){const{hits:n}=t,{hitsPerPage:r,page:s}=t.pagination,{finitePagination:l,primaryKey:f}=e;!l&&n.length>r&&n.splice(n.length-1,1);let x=n.map((g,m)=>{var S;if(Object.keys(g).length>0){const p=g,{_formatted:F,_matchesPosition:w}=p,A=X(p,["_formatted","_matchesPosition"]),R=Object.assign(A,lt(F));return(S=e==null?void 0:e.meiliSearchParams)!=null&&S.showMatchesPosition&&(R._matchesPosition=w),f&&(R.objectID=g[f]),R.__position=s*r+m+1,R}return g});return x=dt(x),x}function ht(t){const{hitsPerPage:e=0,totalPages:n=0,estimatedTotalHits:r,totalHits:s}=t;return r!=null?r:s!=null?s:e*n}function gt(t,e){if(t.totalPages!=null)return t.totalPages;if(e===0)return 0;const{limit:n=20,offset:r=0,hits:s}=t,l=s.length>=n?1:0;return r/e+1+l}function pt(t,e){const{hitsPerPage:n,page:r}=e,s=gt(t,n);return{page:r,nbPages:s,hitsPerPage:n}}function yt(t){if(t){if(typeof t=="string")return[t]}else return[];return t}function St(t,e,n){const r=yt(t),s={};for(const l of r)for(const f in e[l])s[l]||(s[l]=n[l]||{}),s[l][f]?s[l][f]=n[l][f]:s[l][f]=0;return s}function bt(t,e,n,r){return t?(r=r||{},St(e,n,r)):r}function xt(t){return Object.keys(t).reduce((n,r)=>(n[r]=C(O({},t[r]),{avg:0,sum:0}),n),{})}function Tt(t,e,n){return{results:t.map(s=>mt(s,e[s.indexUid],n))}}function mt(t,e,n){const{processingTimeMs:r,query:s,indexUid:l,facetDistribution:f={},facetStats:x={},metadata:g}=t,m=Object.keys(f),{hitsPerPage:p,page:S,nbPages:F}=pt(t,t.pagination),w=ft(t,n),A=ht(t),R=bt(n.keepZeroFacets,m,e,f),N={index:l,hitsPerPage:p,page:S,facets:R,nbPages:F,nbHits:A,processingTimeMS:r,query:s,hits:w,params:"",exhaustiveNbHits:!1,facets_stats:xt(x)};return g&&(N._meilisearch={metadata:g}),N}function J(t){if(!t)return[];const e=/[^:]+:(?:asc|desc)/g,n=[];let r;for(;(r=e.exec(t))!==null;)n.push(r[0]);return n.map(s=>s.replace(/^,+|,+$/,""))}function L(t,e,n){return{hitsPerPage:e===void 0?20:e,page:n||0,finite:!!t}}function G(t){const e=t.indexOf(":");return e===-1?{indexUid:t,sortBy:""}:{indexUid:t.substring(0,e),sortBy:t.substring(e+1)}}function Ft(t,e){const{query:n,indexName:r,params:s}=t,{indexUid:l,sortBy:f}=G(r),x=L(e.finitePagination,s==null?void 0:s.hitsPerPage,s==null?void 0:s.page);return C(O(C(O({},e),{query:n}),s),{sort:J(f),indexUid:l,pagination:x,placeholderSearch:e.placeholderSearch!==!1,keepZeroFacets:!!e.keepZeroFacets})}function Ot(t,e){const{indexUid:n,sortBy:r}=G(t.indexName),{params:s}=t,l=L(e.finitePagination,s==null?void 0:s.hitsPerPage,s==null?void 0:s.page);return C(O(O({},e),s),{sort:J(r),indexUid:n,pagination:l,placeholderSearch:e.placeholderSearch!==!1,keepZeroFacets:!!e.keepZeroFacets})}function _t(t={}){let e=t;return{getEntry:function(n){if(e[n])try{return JSON.parse(e[n])}catch(r){return}},formatKey:function(n){return at(n)},setEntry:function(n,r){e[n]=JSON.stringify(r)},clearCache:function(){e={}}}}function wt(t){const e=C(O({},t),{placeholderSearch:!0,query:""}),n=Z(e);return n.addFacets(),n.addPagination(),n.getParams()}function At(t,e,n){return $(this,null,function*(){const r=ct("indexUid"),s=e.filter(r).filter(({indexUid:f})=>!Object.keys(n).includes(f));if(s.length===0)return n;const l=yield t.multiSearch(s,[]);for(const f of l)n[f.indexUid]=f.facetDistribution||{};return n})}function Rt(t,e){for(const n of e)t[n.indexUid]=O(O({},n.facetDistribution||{}),t[n.indexUid]||{});return t}const Ct="0.30.0",Mt=(t=[])=>{const e=`Meilisearch instant-meilisearch (v${Ct})`;return t.concat(e)};function Nt(t,e="",n={}){v(t,e,n),e=E(e);const r=Mt(n.clientAgents),s={host:t,apiKey:e,clientAgents:r};n.httpClient!==void 0&&(s.httpClient=n.httpClient),n.requestInit!==void 0&&(s.requestInit=n.requestInit);const l=new b.MeiliSearch(s),f=_t(),x=M(l,f);let g={};const m=q(n);return{meiliSearchInstance:l,setMeiliSearchParams:p=>{const{meiliSearchParams:S}=n;n.meiliSearchParams=S===void 0?p:C(O(O({},S),p),{indexesOverrides:O(O({},S.indexesOverrides||{}),p.indexesOverrides||{})})},searchClient:{clearCache:()=>f.clearCache(),search:function(p){return $(this,null,function*(){try{const S=[],F=[],w=[];for(const N of p){const i=Ft(N,n),h=B(i);S.push(h);const k=wt(i);w.push(k),F.push(i.pagination)}g=yield At(x,w,g);const A=yield x.multiSearch(S,F);return g=Rt(g,A),Tt(A,g,m)}catch(S){throw console.error(S),new Error(S)}})},searchForFacetValues:function(p){return $(this,null,function*(){const S=[];for(const F of p){const w=Ot(F,n),A=B(w),R=C(O({},A),{facetQuery:F.params.facetQuery,facetName:F.params.facetName});delete R.indexUid;const N=yield l.index(w.indexUid).searchForFacetValues(R),h={facetHits:N.facetHits.map(k=>C(O({},k),{highlighted:k.value})),exhaustiveFacetsCount:!1,processingTimeMS:N.processingTimeMs};S.push(h)}return S})}}}}function kt(t,e){var n;if(!(t!=null&&t._rawResults))return e?void 0:[];if(e!=null&&e.indexUid){const r=t._rawResults.find(s=>s.index===e.indexUid);return(n=r==null?void 0:r._meilisearch)==null?void 0:n.metadata}return t._rawResults.map(r=>{var s;return(s=r._meilisearch)==null?void 0:s.metadata}).filter(r=>!!r)}d.meilisearch=_,d.getAnalyticsMetadata=kt,d.instantMeiliSearch=Nt,Object.defineProperty(d,Symbol.toStringTag,{value:"Module"})}));(function(){if(typeof self!="undefined"){var d=Object.assign({},self.instantMeilisearch);delete d.default,Object.assign(self,d)}})(); //# sourceMappingURL=index.min.js.map