@yoch/frozenminisearch 1.2.4 → 1.3.0

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.
@@ -0,0 +1 @@
1
+ const t=2048,n={minLength:t,ratioShift:2};function e(t,e,r=n){return!(e<r.minLength)&&t<=e>>>r.ratioShift}const r={maxAbsolute:5e3,maxFraction:.1};function o(t,n=r){return Math.min(n.maxAbsolute,Math.max(100,Math.floor(t*n.maxFraction)))}function i(t,i,s=r,u,c=n){return 0===t||(t<=o(i,s)||!!(null!=u&&u>0&&e(t,u,c)))}function s(t,n){return t[n]}function u(t,n,e,r){let o=0,i=e-1;for(;o<=i;){const e=o+i>>>1,u=s(t,n+e);if(u<r)o=e+1;else{if(!(u>r))return n+e;i=e-1}}return-1}function c(t,n){return e(t,n)}function f(t){return t>65535?65535:t}class l{constructor(t,n,e,r){this.docIds=t,this.freqs=n,this.t=e,this.o=r}get offset(){return this.t}get length(){return this.o}rebind(t,n){return this.t=t,this.o=n,this}get size(){return this.o}forEachDoc(t){const{docIds:n,freqs:e,offset:r,length:o}=this;for(let i=0;i<o;i++)t(s(n,r+i),e[r+i])}}const a=Symbol("*");function d(t){return t===a}function h(t,n){if("none"===t.kind)return;if("multi"===t.kind)return t.rows[n];const e=t.values[n];return void 0===e?{}:{[t.field]:e}}function w(t,n){if(0===n.length){return t.some(t=>null!=t&&Object.keys(t).length>0)?{kind:"multi",rows:t}:{kind:"none"}}if(1===n.length){const e=n[0],r=t.map(t=>null==t?void 0:t[e]);return{kind:"single",field:e,values:r}}return{kind:"multi",rows:t}}const m="or",y="and",p="and_not";function g(t,n){const{k:e,b:r,d:o}=t;return{k:e,d:o,k1:e+1,oneMinusB:1-r,bOverAvg:r/n}}function v(t,n){return Math.log(1+(n-t+.5)/(t+.5))}function x(t,n,e,r){const{k:o,d:i,k1:s,oneMinusB:u,bOverAvg:c}=e;return r*(i+t*s/(t+o*(u+c*n)))}const b=(t,n)=>Object.prototype.hasOwnProperty.call(t,n)?t[n]:void 0;function I(t,n){const e=t.fields||n,r={};for(const n of e)r[n]=b(t.boost,n)||1;return{names:Object.keys(r),boosts:r}}const A=(t,n)=>{for(const e of n)t.includes(e)||t.push(e)},S=({score:t},{score:n})=>n-t;function F(t,n){return"string"==typeof t?t:(void 0===n.value&&(n.value=t.resolve()),n.value)}function M(t,n,e,r,o,i,s,u,c,f,l,a,d,h,w,m){const y=F(n,w),p=a?a(l.getExternalId(o),y,l.getStoredFields(o)):1;if(!p)return;const g=l.getFieldLength(o,r),I=void 0!==m?x(i,g,d,m):function(t,n,e,r,o){return x(t,r,o,v(n,e))}(i,f,l.documentCount,g,d),A=s*u*c*p*I,S=h.get(o);if(S){S.score+=A,M=S.terms,z=t,M.includes(z)||M.push(z);const n=b(S.match,y);n?n.push(e):S.match[y]=[e]}else h.set(o,{score:A,terms:[t],match:{[y]:[e]}});var M,z}function z(t,n,e,r,o,i,f,l,a,d,h,w,m){var y,p;let x=l.length;const b=g(h,a.avgFieldLength[i]),I=null==a.isDocActive?v(x,a.documentCount):void 0,{docIds:A,freqs:S,offset:z,length:C}=l,L={};if(null!=m&&c(m.size,C)){for(const s of m){if(null!=a.isDocActive&&!a.isDocActive(s)){null===(y=a.onInactiveDoc)||void 0===y||y.call(a,s,i,F(n,L)),x-=1;continue}const c=u(A,z,C,s);c<0||M(t,n,o,i,s,S[c],e,r,f,x,a,d,b,w,L,I)}return x}for(let u=0;u<C;u++){const c=s(A,z+u),l=S[z+u];null==a.isDocActive||a.isDocActive(c)?(null==m||m.has(c))&&M(t,n,o,i,c,l,e,r,f,x,a,d,b,w,L,I):(null===(p=a.onInactiveDoc)||void 0===p||p.call(a,c,i,F(n,L)),x-=1)}return x}const C={[m]:(t,n)=>{for(const e of n.keys()){const r=t.get(e);if(null==r)t.set(e,n.get(e));else{const{score:t,terms:o,match:i}=n.get(e);r.score=r.score+t,r.match=Object.assign(r.match,i),A(r.terms,o)}}return t},[y]:(t,n)=>{for(const e of t.keys()){const r=n.get(e);if(null==r){t.delete(e);continue}const o=t.get(e),{score:i,terms:s,match:u}=r;o.score+=i,A(o.terms,s),Object.assign(o.match,u)}return t},[p]:(t,n)=>{for(const e of n.keys())t.delete(e);return t}};function L(t,n=m){if(0===t.length)return new Map;const e=n.toLowerCase(),r=C[e];if(!r)throw new Error(`Invalid combination operator: ${n}`);return t.reduce(r)}function U(t,n,e,r){if(null==e){if(null!=r){const e=r(t);null!=e&&Object.assign(n,e)}}else!function(t,n,e){if("none"===t.kind)return;if("single"===t.kind){const r=t.values[n];return void(void 0!==r&&(e[t.field]=r))}const r=t.rows[n];null!=r&&Object.assign(e,r)}(e,t,n)}function E(t,n,e,r,o,i,s){const u={...r,...e},c=d(n)&&null==u.boostDocument;return k({rawResults:t,getExternalId:o,getStoredFields:i,storedFieldsLayout:s,filter:u.filter,skipSort:c})}function k(t){const{rawResults:n,getExternalId:e,getStoredFields:r,storedFieldsLayout:o,filter:i,skipSort:s}=t;let u,c=!0;if(null==i){const t=new Array(n.size);let i=0;for(const[s,{score:f,terms:l,match:a}]of n){const n=f*(l.length||1);null==u?u=n:c&&n!==u&&(c=!1);const d={id:e(s),score:n,terms:Object.keys(a),queryTerms:l,match:a};U(s,d,o,r),t[i++]=d}return!s&&!c&&t.length>1&&t.sort(S),t}const f=[];for(const[t,{score:s,terms:l,match:a}]of n){const n=s*(l.length||1),d={id:e(t),score:n,terms:Object.keys(a),queryTerms:l,match:a};U(t,d,o,r),i(d)&&(null==u?u=n:c&&n!==u&&(c=!1),f.push(d))}return!s&&!c&&f.length>1&&f.sort(S),f}function O(t){const n=new Map;for(const{score:e,terms:r}of t)T(n,e,r);return B(n)}function T(t,n,e){const r=e.join(" "),o=t.get(r);null!=o?(o.score+=n,o.count+=1):t.set(r,{score:n,terms:e,count:1})}function B(t){const n=[];for(const[e,{score:r,terms:o,count:i}]of t)n.push({suggestion:e,terms:o,score:r/i});return n.sort(S),n}function $(t,n){return t*(n.length||1)}function D(t){return O(t)}function j(t){let n,e=!0;for(const{score:r,terms:o}of t.values()){const t=$(r,o);if(null==n)n=t;else if(t!==n){e=!1;break}}if(e){const n=new Map;for(const{score:e,terms:r,match:o}of t.values())T(n,$(e,r),Object.keys(o));return B(n)}const r=new Array(t.size);let o=0;for(const{score:n,terms:e,match:i}of t.values())r[o++]={score:$(n,e),terms:Object.keys(i)};return r.length>1&&r.sort(S),O(r)}function q(t){return new Uint8Array(t)}function N(t){return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}function W(t){return(new TextEncoder).encode(t)}function R(t){let n=0;for(const e of t)n+=e.length;const e=new Uint8Array(n);let r=0;for(const n of t)e.set(n,r),r+=n.length;return e}function P(t,n){return t[n]}function V(t,n){return t[n]|t[n+1]<<8}function J(t,n){return(t[n]|t[n+1]<<8|t[n+2]<<16|t[n+3]<<24)>>>0}function G(t,n){return new DataView(t.buffer,t.byteOffset,t.byteLength).getFloat64(n,!0)}function _(t,n,e){t[n]=255&e}function H(t,n,e){t[n]=255&e,t[n+1]=e>>>8&255}function K(t,n,e){t[n]=255&e,t[n+1]=e>>>8&255,t[n+2]=e>>>16&255,t[n+3]=e>>>24&255}function Z(t,n,e){return(new TextDecoder).decode(t.subarray(n,e))}const Q=new Uint32Array(256);for(let t=0;t<256;t++){let n=t;for(let t=0;t<8;t++)n=1&n?3988292384^n>>>1:n>>>1;Q[t]=n}function Y(t,n=0,e=t.length){return function(t,n,e=0,r=n.length){let o=(4294967295^t)>>>0;for(let t=e;t<r;t++)o=o>>>8^Q[255&(o^n[t])];return(4294967295^o)>>>0}(0,t,n,e)}const X=272;function tt(t){return new ReadableStream({start(n){n.enqueue(t),n.close()}})}async function nt(t){return new Uint8Array(await new Response(t).arrayBuffer())}async function et(t){const n=function(){if("function"!=typeof CompressionStream)throw new Error('CompressionStream is unavailable in this browser environment. Browser binary compression with "zlib" or "auto" requires a modern runtime.');return CompressionStream}();return await nt(tt(t).pipeThrough(new n("deflate")))}async function rt(t){const n=function(){if("function"!=typeof DecompressionStream)throw new Error("DecompressionStream is unavailable in this browser environment. Browser loading of zlib-compressed snapshots requires a modern runtime.");return DecompressionStream}();return await nt(tt(t).pipeThrough(new n("deflate")))}const ot=1073741824;function it(t){const n=V(t,10);if(1!==n)throw new Error(`MSv5 unsupported format revision ${n}`)}function st(t){return{payload:t,codec:0,zstdLevel:0}}async function ut(t){return t.length<64?st(t):function(t,n,e){return n.length<t.length?{payload:n,codec:e,zstdLevel:0}:st(t)}(t,await et(t),1)}async function ct(t,n="auto"){if("zstd"===n)throw new Error('MSv5 snapshot requested zstd compression, which is not supported in the browser build. Use compression: "auto", "raw", or "zlib".');switch(n){case"raw":return st(t);case"zlib":return await async function(t){return{payload:await et(t),codec:1,zstdLevel:0}}(t);case"auto":return await ut(t);default:return n}}function ft(t){if(12!==t.length)throw new Error(`MSv5 expects 12 sections, got ${t.length}`);const{uncompressed:n,entries:e}=function(t){const n=[];let e=0;for(const r of t)e=e+3&-4,n.push({fileOffset:e,uncompressedLength:r.length,sectionCrc32:Y(r)}),e+=r.length;const r=q(e);for(let e=0;e<t.length;e++)r.set(t[e],n[e].fileOffset);return{uncompressed:r,entries:n}}(t);if(n.length>ot)throw new Error("MSv5 payload exceeds 1 GiB limit");return{uncompressed:n,entries:e,payloadCrc32:Y(n)}}async function lt(t,n,e="auto"){const{uncompressed:r,entries:o,payloadCrc32:i}=ft(n),{payload:s,codec:u,zstdLevel:c}=await ct(r,e);return function(t,n,e,r,o,i,s){const u=q(X+o.length);!function(t,n,e){for(let r=0;r<e.length;r++)t[n+r]=255&e.charCodeAt(r)}(u,0,"MSv5"),H(u,4,5),H(u,6,65535&t),_(u,8,i),_(u,9,s),H(u,10,1),K(u,12,12),K(u,16,X),K(u,20,o.length),K(u,24,e),K(u,28,r);let c=32;for(const t of n)K(u,c,t.fileOffset),K(u,c+4,t.uncompressedLength),K(u,c+8,t.sectionCrc32),c+=20;return u.set(o,X),{buffer:u,globalFlags:t,compression:{formatRev:1,payloadCodec:i,zstdLevel:s,uncompressedLength:e,compressedLength:o.length,payloadCrc32:r,sections:n.map((t,n)=>({sectionId:n,uncompressedOffset:t.fileOffset,uncompressedLength:t.uncompressedLength,sectionCrc32:t.sectionCrc32}))}}}(t,o,r.length,i,s,u,c)}function at(t){if(t.length<X)throw new Error("MSv5 buffer too short for header");const n=J(t,12);if(12!==n)throw new Error(`MSv5 section count mismatch: ${n}`);it(t);const e=[];let r=32;for(let o=0;o<n;o++)e.push({fileOffset:J(t,r),uncompressedLength:J(t,r+4),sectionCrc32:J(t,r+8)}),r+=20;return e}function dt(t,n,e){if(Y(t)!==e)throw new Error("MSv5 payload CRC mismatch");return n.map(n=>{const e=t.subarray(n.fileOffset,n.fileOffset+n.uncompressedLength);if(function(t,n){if(Y(t)!==n)throw new Error("MSv5 section CRC mismatch")}(e,n.sectionCrc32),(t.byteOffset+n.fileOffset)%4==0)return e;const r=q(n.uncompressedLength);return r.set(e),r})}function ht(t,n){it(t);const e=J(t,16),r=J(t,20),o=J(t,24),i=J(t,28),s=P(t,8);if(o>ot)throw new Error("MSv5 payload exceeds 1 GiB limit");if(function(t,n){let e=0;for(const r of t){if(3&r.fileOffset)throw new Error("MSv5 section offset not aligned");if(r.fileOffset<e)throw new Error("MSv5 section offsets not monotonic");if(r.fileOffset+r.uncompressedLength>n)throw new Error("MSv5 section out of uncompressed bounds");e=r.fileOffset+r.uncompressedLength}if(e!==n)throw new Error("MSv5 uncompressed payload length mismatch")}(n,o),e!==X||e+r>t.length)throw new Error("MSv5 payload out of bounds");if(0===s&&r!==o)throw new Error("MSv5 raw payload length mismatch");return{payloadCodec:s,slice:t.subarray(e,e+r),uncompressedLength:o,payloadCrc32:i}}async function wt(t,n,e){if(3===t)throw new Error('MSv5 snapshot is zstd-compressed, which is not supported in the browser build. Re-save with compression: "raw" or "zlib".');if(1===t){const t=await rt(n);if(t.length!==e)throw new Error("MSv5 decompressed payload length mismatch");return t}throw new Error(`MSv5 unknown payload codec ${t}`)}function mt(t){return t.length>=4&&"MSv5"===function(t,n,e){let r="";for(let o=0;o<e;o++)r+=String.fromCharCode(t[n+o]);return r}(t,0,4)}function yt(t){return V(t,6)}const pt="KEYS",gt="VALUES",vt="";class xt{constructor(t,n){const e=t.i,r=Array.from(e.keys());this.set=t,this.u=n,this.l=r.length>0?[{node:e,keys:r}]:[]}next(){const t=this.dive();return this.backtrack(),t}dive(){if(0===this.l.length)return{done:!0,value:void 0};const{node:t,keys:n}=bt(this.l);if(bt(n)===vt)return{done:!1,value:this.result()};const e=t.get(bt(n));return this.l.push({node:e,keys:Array.from(e.keys())}),this.dive()}backtrack(){if(0===this.l.length)return;const t=bt(this.l).keys;t.pop(),t.length>0||(this.l.pop(),this.backtrack())}key(){return this.set.h+this.l.map(({keys:t})=>bt(t)).filter(t=>t!==vt).join("")}value(){return bt(this.l).node.get(vt)}result(){switch(this.u){case gt:return this.value();case pt:return this.key();default:return[this.key(),this.value()]}}[Symbol.iterator](){return this}}const bt=t=>t[t.length-1],It=4294967295;function At(t,n){return f(t)}function St(t,n){return t[n]}function Ft(t){return t>255?16:8}function Mt(t,n,e,r,o,i){const s=function(t,n,e){return n*t*8<=4*(n+1)+e*(8+(16===Ft(t)?2:1))?"dense":"sparse"}(t,n,i.nonEmptySlots),u=e<=65535?16:32,c=16===u?new Uint16Array(r):new Uint32Array(r),f=(l=r,o<=255?new Uint8Array(l):new Uint16Array(l));var l;const a={allDocIds:c,allFreqs:f,docIdWidth:u};if("dense"===s){const r=n*t,o=new Uint32Array(r),l=new Uint32Array(r);let d=0;for(let e=0;e<n;e++){const n=e*t;for(let r=0;r<t;r++){const t=n+r,s=i.slotLength(e,r);o[t]=d,l[t]=s,s>0&&(d=i.writeSlot(e,r,d,a))}}return{fieldCount:t,termCount:n,nextId:e,layout:s,docIdWidth:u,sparseFieldIdWidth:null,allDocIds:c,allFreqs:f,denseOffsets:o,denseLengths:l,sparseTermStarts:null,sparseFieldIds:null,sparseOffsets:null,sparseLengths:null}}const d=Ft(t),h=[],w=[],m=[],y=new Array(n+1).fill(0);let p=0;for(let e=0;e<n;e++){y[e]=h.length;for(let n=0;n<t;n++){const t=i.slotLength(e,n);0!==t&&(h.push(n),w.push(p),m.push(t),p=i.writeSlot(e,n,p,a))}y[e+1]=h.length}const g=16===d?new Uint16Array(h):new Uint8Array(h);return{fieldCount:t,termCount:n,nextId:e,layout:s,docIdWidth:u,sparseFieldIdWidth:d,allDocIds:c,allFreqs:f,denseOffsets:null,denseLengths:null,sparseTermStarts:new Uint32Array(y),sparseFieldIds:g,sparseOffsets:new Uint32Array(w),sparseLengths:new Uint32Array(m)}}function zt(t,n,e,r=t=>{throw new Error(t)}){if(t.fieldCount<=0&&r("fieldCount must be positive"),t.nextId!==e&&r("nextId mismatch"),t.termCount<0&&r("termCount out of range"),t.allDocIds.length!==t.allFreqs.length&&r("allDocIds and allFreqs length mismatch"),"dense"===t.layout){null!=t.sparseFieldIdWidth&&r("dense layout must not have sparseFieldIdWidth");const n=t.termCount*t.fieldCount;t.denseOffsets.length===n&&t.denseLengths.length===n||r("dense postings slot count mismatch");for(let o=0;o<n;o++){const n=t.denseOffsets[o],i=t.denseLengths[o];n+i>t.allDocIds.length&&r(`posting slot ${o} exceeds allDocIds bounds`);for(let o=0;o<i;o++){const i=s(t.allDocIds,n+o);i>=e&&r(`posting docId ${i} >= nextId ${e}`)}}}else{const n=Ft(t.fieldCount);t.sparseFieldIdWidth!==n&&r("sparseFieldIdWidth mismatch with fieldCount");t.sparseTermStarts.length!==t.termCount+1&&r("sparseTermStarts length mismatch");const o=t.sparseFieldIds.length;t.sparseOffsets.length===o&&t.sparseLengths.length===o||r("sparse slot count mismatch");for(let n=0;n<o;n++){const o=St(t.sparseFieldIds,n);o>=t.fieldCount&&r(`sparse fieldId ${o} >= fieldCount ${t.fieldCount}`);const i=t.sparseOffsets[n],u=t.sparseLengths[n];i+u>t.allDocIds.length&&r(`sparse slot ${n} exceeds allDocIds bounds`);for(let n=0;n<u;n++){const o=s(t.allDocIds,i+n);o>=e&&r(`posting docId ${o} >= nextId ${e}`)}}}(n<0||n>e)&&r("documentCount inconsistent with nextId")}const Ct={offset:0,length:0};function Lt(t,n,e,r){if("dense"===t.layout){const o=n*t.fieldCount+e,i=t.denseLengths[o];return 0!==i&&(r.offset=t.denseOffsets[o],r.length=i,!0)}const o=t.sparseTermStarts[n],i=t.sparseTermStarts[n+1],s=function(t,n,e,r){for(let o=n;o<e;o++){const n=St(t,o);if(n===r)return o;if(n>r)break}return-1}(t.sparseFieldIds,o,i,e);if(s<0)return!1;const u=t.sparseLengths[s];return 0!==u&&(r.offset=t.sparseOffsets[s],r.length=u,!0)}function Ut(t,n,e,r,o,i){if(null!=i&&c(i.size,e))for(const s of i)(null==r.isDocActive||r.isDocActive(s))&&u(t,n,e,s)>=0&&o.add(s);else for(let u=0;u<e;u++){const e=s(t,n+u);(null==r.isDocActive||r.isDocActive(e))&&((null==i||i.has(e))&&o.add(e))}}const Et=4294967295;function kt(t,n){return n<=255?new Uint8Array(t):n<=65535?new Uint16Array(t):new Uint32Array(t)}function Ot(t){return t-1}function Tt(t,n){return t+(n?1:0)}function Bt(t,n){return t===n?-1:t-(n>=0&&n<t?1:0)}function $t(t,n){if(t.nodeEdgeOffset.length!==t.nodeCount+1||t.nodeValue.length!==t.nodeCount||t.nodeLeafOrder.length!==t.nodeCount||t.edgeLabelStart.length!==t.edgeCount||t.edgeLabelLength.length!==t.edgeCount||t.edgeChild.length!==t.edgeCount)throw new Error("FrozenTermIndex: array length mismatch");if(0===t.nodeCount)throw new Error("FrozenTermIndex: missing root node");if(0!==t.nodeEdgeOffset[0]||t.nodeEdgeOffset[t.nodeCount]!==t.edgeCount)throw new Error("FrozenTermIndex: edge offsets not bounded by [0, edgeCount]");const e=new Uint8Array(n);let r=0;for(let o=0;o<t.nodeCount;o++){const i=t.nodeEdgeOffset[o],s=t.nodeEdgeOffset[o+1]-i;if(s<0)throw new Error(`FrozenTermIndex: node ${o} edge offsets not monotonic`);const u=Ot(t.nodeLeafOrder[o]);if(u<0){if(0!==t.nodeValue[o])throw new Error(`FrozenTermIndex: node ${o} has value without leaf`);continue}if(u>=s+1)throw new Error(`FrozenTermIndex: node ${o} leaf order out of bounds`);r++;const c=t.nodeValue[o];if(!Number.isInteger(c)||c<0||c>=n)throw new Error(`FrozenTermIndex: leaf index out of range: ${c}`);if(0!==e[c])throw new Error(`FrozenTermIndex: duplicate leaf index: ${c}`);e[c]=1}for(let n=0;n<t.edgeCount;n++){const e=t.edgeLabelStart[n],r=t.edgeLabelLength[n];if(0===r||r>65535||e+r>t.labelHeap.length)throw new Error(`FrozenTermIndex: edge ${n} label range out of bounds`);if(t.edgeChild[n]>=t.nodeCount)throw new Error(`FrozenTermIndex: edge ${n} child out of bounds`)}if(r!==n)throw new Error(`FrozenTermIndex: leaf count ${r} !== termCount ${n}`);if(t.size!==n)throw new Error(`FrozenTermIndex: size ${t.size} !== termCount ${n}`)}function Dt(t){return new Error(`Invalid frozen index: ${t}`)}function jt(t,n){if(n+4>t.length)throw Dt("length-prefixed string header truncated");const e=n+4,r=e+J(t,n);if(r>t.length)throw Dt("length-prefixed string body out of bounds");return{value:Z(t,e,r),next:r}}function qt(t,n){const e=W(n),r=q(4);K(r,0,e.length),t.push(r,e)}function Nt(t,n){if(void 0!==n){if("number"==typeof n&&Number.isFinite(n)){const e=q(9);return e[0]=1,new DataView(e.buffer,e.byteOffset,e.byteLength).setFloat64(1,n,!0),void t.push(e)}if("string"==typeof n)return t.push(new Uint8Array([2])),void qt(t,n);t.push(new Uint8Array([3])),qt(t,JSON.stringify(n))}else t.push(new Uint8Array([0]))}function Wt(t,n){if(n>=t.length)throw Dt("external id tag truncated");const e=P(t,n);if(0===e)return{value:void 0,next:n+1};if(1===e){if(n+9>t.length)throw Dt("external id number truncated");return{value:G(t,n+1),next:n+9}}if(2===e){const{value:e,next:r}=jt(t,n+1);return{value:e,next:r}}if(3===e){const{value:e,next:r}=jt(t,n+1);return{value:JSON.parse(e),next:r}}throw Dt(`unknown external id tag ${e}`)}function Rt(t,n,e){if(0===e)return new Uint32Array(0);if(e%4!=0)throw Dt("uint32 section length not aligned");if(n+e>t.length)throw Dt("uint32 section read past buffer end");if(n%4==0)return new Uint32Array(t.buffer,t.byteOffset+n,e/4);const r=new Uint32Array(e/4);for(let e=0;e<r.length;e++)r[e]=J(t,n+4*e);return r}function Pt(t,n,e){if(0===e)return new Uint16Array(0);if(e%2!=0)throw Dt("uint16 section length not aligned");if(n+e>t.length)throw Dt("uint16 section read past buffer end");return new Uint16Array(t.buffer,t.byteOffset+n,e/2)}function Vt(t,n,e,r){return 8===r?function(t,n,e){if(0===e)return new Uint8Array(0);if(n+e>t.length)throw Dt("uint8 section read past buffer end");return t.subarray(n,n+e)}(t,n,e):Pt(t,n,e)}function Jt(t,n,e,r){const o=q(16);return K(o,0,t),K(o,4,n),K(o,8,e),K(o,12,r),o}function Gt(t){const n=[];for(const e of t)qt(n,e);return R(n)}function _t(t,n){const e=[];for(let r=0;r<n;r++)Nt(e,t[r]);return R(e)}function Ht(t,n){const e=q(4*n),r=[];let o=0;for(let i=0;i<n;i++){const n=t[i];if(null==n){K(e,4*i,0);continue}K(e,4*i,o+1);const s=W(JSON.stringify(n)),u=q(4+s.length);K(u,0,s.length),u.set(s,4),r.push(u),o+=u.length}return 0===r.length?e:R([e,...r])}function Kt(t,n){if(!Array.isArray(t))throw Dt("treeShape node must be an array");for(const e of t){if(!Array.isArray(e)||2!==e.length)throw Dt("treeShape entry must be a [key, value] pair");const[t,r]=e;if(t===vt){const t=r;if(!Number.isInteger(t)||t<0||t>=n)throw Dt(`treeShape leaf term index out of range: ${t}`)}else Kt(r,n)}}function Zt(t){return t.postings.termCount}function Qt(t){if(t.fieldCount<=0)throw Dt("fieldCount must be positive");if(t.nextId<0||t.nextId>=4294967295)throw Dt("nextId out of range");if(t.documentCount<0||t.documentCount>t.nextId)throw Dt("documentCount inconsistent with nextId");if(t.fieldLengthMatrix.length!==t.nextId*t.fieldCount)throw Dt("fieldLengthMatrix size mismatch");if(t.avgFieldLength.length!==t.fieldCount)throw Dt("avgFieldLength size mismatch");zt(t.postings,t.documentCount,t.nextId,t=>{throw Dt(t)});const n=Object.keys(t.fieldIds);if(n.length!==t.fieldCount)throw Dt("fieldIds count mismatch");for(let e=0;e<t.fieldCount;e++){if(!n.some(n=>t.fieldIds[n]===e))throw Dt(`missing field id ${e}`)}}function Yt(t){Qt(t);const n=Zt(t);null!=t.packedTermIndex?$t(t.packedTermIndex,n):null!=t.termTree?tn(t.termTree,n):Kt(t.treeShape,n)}function Xt(t){const n=Object.keys(t);return n.sort((n,e)=>t[n]-t[e]),n}function tn(t,n){for(const[e,r]of t)if(e===vt){const t=r;if(!Number.isInteger(t)||t<0||t>=n)throw Dt(`term tree leaf index out of range: ${t}`)}else tn(r,n)}function nn(t){const n=new Map;for(const[e,r]of t)e===vt?n.set(vt,r):n.set(e,nn(r));return n}function en(t){return N(t)}function rn(t,n,e,r,o){K(t,4*r,e.value+1);const i=q(4+o.length);K(i,0,o.length),i.set(o,4),n.push(i),e.value+=i.length}function on(t,n,e){const r=t+4*n;if(r>e)throw Dt("stored fields table out of bounds");return r}function sn(t,n,e,r){const o=n+r-1;if(o+4>e)throw Dt("stored fields entry offset out of bounds");const i=o+4,s=i+J(t,o);if(s>e)throw Dt("stored fields JSON out of bounds");return JSON.parse(Z(t,i,s))}function un(t,n,e,r,o){const i=on(n,e,r);if(1===o.length){const s=o[0],u=new Array(e);for(let o=0;o<e;o++){const e=J(t,n+4*o);if(0===e)continue;const c=sn(t,i,r,e);u[o]=c[s]}return{kind:"single",field:s,values:u}}if(0===o.length){let r=!1;for(let o=0;o<e;o++)if(0!==J(t,n+4*o)){r=!0;break}if(!r)return{kind:"none"}}const s=function(t,n,e,r){const o=on(n,e,r),i=new Array(e);for(let s=0;s<e;s++){const e=J(t,n+4*s);0!==e?i[s]=sn(t,o,r,e):i[s]=void 0}return i}(t,n,e,r);return w(s,o)}function cn(t){let n=0;return"sparse"===t.layout&&(n|=2),16===t.docIdWidth&&(n|=1),16===t.sparseFieldIdWidth&&(n|=4),n}function fn(t,n,e,r,o,i,s,u,c){const f=!!(2&t),l=!!(1&t),a=!!(4&t),d=0===u.length?l?new Uint16Array(0):new Uint32Array(0):l?Pt(u,0,u.length):Rt(u,0,u.length),h=function(t,n,e){if(32&n){if(t.length!==2*e)throw Dt("allFreqs u16 size mismatch");return 0===e?new Uint16Array(0):new Uint16Array(t.buffer,t.byteOffset,e)}if(t.length!==e)throw Dt("allFreqs u8 size mismatch");return 0===e?new Uint8Array(0):new Uint8Array(t.buffer,t.byteOffset,e)}(c,t,d.length);if(f){const t=a?16:8,u=J(s,0);if(4+u>s.length)throw Dt("sparse optional section truncated");const c=Rt(s,4,u),f=Rt(s,4+u,s.length-4-u),w=Rt(o,0,o.length),m=Vt(i,0,i.length,t);return{fieldCount:n,termCount:e,nextId:r,layout:"sparse",docIdWidth:l?16:32,sparseFieldIdWidth:t,allDocIds:d,allFreqs:h,denseOffsets:null,denseLengths:null,sparseTermStarts:w,sparseFieldIds:m,sparseOffsets:c,sparseLengths:f}}const w=Rt(o,0,o.length),m=Rt(i,0,i.length);return{fieldCount:n,termCount:e,nextId:r,layout:"dense",docIdWidth:l?16:32,sparseFieldIdWidth:null,allDocIds:d,allFreqs:h,denseOffsets:w,denseLengths:m,sparseTermStarts:null,sparseFieldIds:null,sparseOffsets:null,sparseLengths:null}}function ln(t,n,e){return t.slice(n,n+e)}function an(t,n,e,r){return function(t,n,e){return t>n+e}(t+n,e,r)}function dn(t,n,e){return function*(t,n,e){if(e<0)return;const r=n.length+1,o=r+e,i=new Uint8Array(o*r).fill(e+1);for(let t=0;t<r;++t)i[t]=t;for(let t=1;t<o;++t)i[t*r]=t;const s=n.length,u=new Uint16Array(r);for(let t=0;t<s;t++)u[t]=n.charCodeAt(t);yield*hn(t,s,u,e,i,1,0,0)}(t,n,e)}function*hn(t,n,e,r,o,i,s,u){const c=t.labelHeap,f=n+1,l=i*f,a=t.nodeEdgeOffset[s],d=t.nodeEdgeOffset[s+1]-a,h=Ot(t.nodeLeafOrder[s]),w=Tt(d,h>=0);t:for(let d=0;d<w;d++){const w=Bt(d,h);if(w<0){const n=o[l-1];if(n<=r){const e=t.nodeValue[s];yield{termIndex:e,distance:n,length:u}}continue}const m=a+w,y=t.edgeLabelStart[m],p=t.edgeLabelLength[m];if(an(i-1,p,n,r))continue t;let g=i,v=i*f;for(let t=0;t<p;++t,++g,v+=f){const i=c.charCodeAt(y+t),s=v-f;let u=o[v];const l=Math.max(0,g-r-1),a=Math.min(n,g+r);for(let t=l;t<a;++t){const n=i===e[t]?0:1,r=o[s+t]+n,c=o[s+t+1]+1,f=o[v+t]+1;let l=r;c<l&&(l=c),f<l&&(l=f),o[v+t+1]=l,l<u&&(u=l)}if(u>r)continue t}yield*hn(t,n,e,r,o,g,t.edgeChild[m],u+p)}}function wn(t,n){if(n<0||n>=t.size)throw new RangeError(`PackedRadixTree: term index out of range: ${n}`)}function mn(t,n,e,r,o){for(let i=0;i<e;i++)if(t.charCodeAt(n+i)!==r.charCodeAt(o+i))return!1;return!0}function yn(t,n,e,r){const o=n.nodeEdgeOffset[e],i=n.nodeEdgeOffset[e+1]-o,s=Ot(n.nodeLeafOrder[e]),u=Tt(i,s>=0);t.push({node:e,slot:u-1,first:o,leafSlot:s,prefix:r})}function pn(t,n,e,r){const o=n.nodeEdgeOffset[e],i=n.nodeEdgeOffset[e+1]-o,s=Ot(n.nodeLeafOrder[e]),u=Tt(i,s>=0);t.push({node:e,slot:u-1,first:o,leafSlot:s,length:r})}class gn{constructor(t){this.size=t.size,this.nodeCount=t.nodeCount,this.edgeCount=t.edgeCount,this.labelHeap=t.labelHeap,this.nodeEdgeOffset=t.nodeEdgeOffset,this.nodeValue=t.nodeValue,this.nodeLeafOrder=t.nodeLeafOrder,this.edgeLabelStart=t.edgeLabelStart,this.edgeLabelLength=t.edgeLabelLength,this.edgeChild=t.edgeChild}static fromData(t){return new gn(t)}findEdge(t,n){const e=this.nodeEdgeOffset[t+1],r=this.labelHeap;for(let o=this.nodeEdgeOffset[t];o<e;o++)if(r.charCodeAt(this.edgeLabelStart[o])===n)return o;return-1}get(t){const n=this.walkKey(t,!1);if(null!=n&&n.keyFullyConsumed&&0!==this.nodeLeafOrder[n.node])return this.nodeValue[n.node]}*entries(){yield*this.emitSubtree(0,"")}*prefixEntries(t){const n=this.resolvePrefixWalk(t);null!=n&&(yield*this.emitSubtree(n.node,n.prefix))}*prefixRefs(t){const n=this.resolvePrefixWalkRef(t);null!=n&&(yield*this.emitSubtreeRefs(n.node,n.prefixLength))}resolvePrefixWalk(t){if(0===t.length)return{node:0,prefix:""};const n=this.walkKey(t,!0);return null==n?null:{node:n.node,prefix:n.prefix}}resolvePrefixWalkRef(t){if(0===t.length)return{node:0,prefixLength:0};const n=this.walkKey(t,!1);return null==n?null:{node:n.node,prefixLength:n.prefixLength}}walkKey(t,n){let e=0,r="",o=0,i=0;const s=this.labelHeap,u=t.length;for(;i<u;){const c=this.findEdge(e,t.charCodeAt(i));if(c<0)return null;const f=this.edgeLabelStart[c],l=this.edgeLabelLength[c],a=u-i;if(a<l)return mn(s,f,a,t,i)?(n&&(r+=ln(s,f,l)),o+=l,{node:this.edgeChild[c],prefix:r,prefixLength:o,keyFullyConsumed:!1}):null;if(!mn(s,f,l,t,i))return null;n&&(r+=ln(s,f,l)),o+=l,i+=l,e=this.edgeChild[c]}return{node:e,prefix:r,prefixLength:o,keyFullyConsumed:!0}}*emitSubtree(t,n){const e=this.labelHeap,r=[];for(yn(r,this,t,n);r.length;){const t=r[r.length-1];if(t.slot<0){r.pop();continue}const n=Bt(t.slot--,t.leafSlot);if(n<0){yield[t.prefix,this.nodeValue[t.node]];continue}const o=t.first+n,i=this.edgeLabelStart[o],s=this.edgeLabelLength[o],u=t.prefix+ln(e,i,s);yn(r,this,this.edgeChild[o],u)}}*emitSubtreeRefs(t,n){const e=[];for(pn(e,this,t,n);e.length;){const t=e[e.length-1];if(t.slot<0){e.pop();continue}const n=Bt(t.slot--,t.leafSlot);if(n<0){yield{termIndex:this.nodeValue[t.node],length:t.length};continue}const r=t.first+n,o=this.edgeLabelLength[r];pn(e,this,this.edgeChild[r],t.length+o)}}fuzzyEntries(t,n){return function(t,n,e){const r=[];for(const{termIndex:o,distance:i}of dn(t,n,e))r.push([t.termByIndex(o),o,i]);return r}(this,t,n)}fuzzyRefs(t,n){return dn(this,t,n)}lazyTermMetadata(){return null==this.m&&(this.m=function(t){const n=t.size,e=t.nodeCount,r=t.edgeCount;if(0===n||0===e)return{leafNodeByTermIndex:new Uint8Array(0),parentNode:new Uint8Array(0),parentEdge:new Uint8Array(0)};const o=kt(n,e-1),i=kt(e,e-1),s=kt(e,Math.max(r-1,0));let u=0;for(let n=0;n<e;n++){Ot(t.nodeLeafOrder[n])>=0&&(o[t.nodeValue[n]]=n,u++);const e=t.nodeEdgeOffset[n+1];for(let r=t.nodeEdgeOffset[n];r<e;r++){const e=t.edgeChild[r];i[e]=n,s[e]=r}}if(u!==n)throw new Error(`PackedRadixTree: lazy metadata leaf count ${u} !== term count ${n}`);return{leafNodeByTermIndex:o,parentNode:i,parentEdge:s}}(this)),this.m}termLengthByIndex(t){return function(t,n,e){wn(t,e);let r=0,o=n.leafNodeByTermIndex[e];for(;0!==o;)r+=t.edgeLabelLength[n.parentEdge[o]],o=n.parentNode[o];return r}(this,this.lazyTermMetadata(),t)}termByIndex(t){return function(t,n,e){wn(t,e);const r=t.labelHeap,{edgeLabelStart:o,edgeLabelLength:i}=t;let s="",u=n.leafNodeByTermIndex[e];for(;0!==u;){const t=n.parentEdge[u];s=ln(r,o[t],i[t])+s,u=n.parentNode[u]}return s}(this,this.lazyTermMetadata(),t)}packedByteLength(){return this.nodeEdgeOffset.byteLength+this.nodeValue.byteLength+this.nodeLeafOrder.byteLength+this.edgeLabelStart.byteLength+this.edgeLabelLength.byteLength+this.edgeChild.byteLength+2*this.labelHeap.length}packedNodeCount(){return this.nodeCount}packedEdgeCount(){return this.edgeCount}}function vn(t,n){if(null!=n&&"object"==typeof n){const{termCount:e,mapLeaf:r,inferTermCountFromLeaves:o=!1}=n;return xn(t,e,r,o)}const e=n;return null==e?xn(t,0,t=>t,!0):xn(t,e,t=>t,!1)}function xn(t,n,e,r){const o=[];let i=0;!function t(n){const r=o.length,s={value:Et,leafOrder:Et,edges:[]};o.push(s);let u=0;for(const[r,o]of n)r===vt?(s.value=e(o),s.leafOrder=u,i++):s.edges.push({label:r,child:t(o)}),u++;return r}(t);const s=r?i:n,u=o.length;let c=0,f=0,l=0,a=0,d=0;for(const t of o){c+=t.edges.length;for(const n of t.edges)f+=n.label.length,n.label.length>l&&(l=n.label.length);t.value!==Et&&(t.value>a&&(a=t.value),t.leafOrder+1>d&&(d=t.leafOrder+1))}const h=kt(u+1,c),w=kt(u,a),m=kt(u,d),y=kt(c,f),p=kt(c,l),g=kt(c,Math.max(u-1,0)),v=[];let x=0,b=0;for(let t=0;t<u;t++){const n=o[t];n.value!==Et&&(w[t]=n.value,m[t]=n.leafOrder+1),h[t]=b;for(const t of n.edges){if(t.label.length>65535)throw new Error("PackedRadixTree: edge label too long");const n=x;v.push(t.label),x+=t.label.length,y[b]=n,p[b]=t.label.length,g[b]=t.child,b++}}h[u]=b;const I=v.join("");return gn.fromData({size:s,nodeCount:u,edgeCount:c,labelHeap:I,nodeEdgeOffset:h,nodeValue:w,nodeLeafOrder:m,edgeLabelStart:y,edgeLabelLength:p,edgeChild:g})}function bn(t){return t instanceof Uint8Array?0:t instanceof Uint16Array?1:2}function In(t){return t+3&-4}function An(t,n){const e=N(n);t.push(e);const r=In(e.length)-e.length;r>0&&t.push(q(r))}function Sn(t){const n=q(16);K(n,0,t.size),K(n,4,t.nodeCount),K(n,8,t.edgeCount),K(n,12,function(t){const n=[t.nodeEdgeOffset,t.nodeValue,t.nodeLeafOrder,t.edgeLabelStart,t.edgeLabelLength,t.edgeChild];if(6!==n.length)throw new Error("MSv5 tree column count mismatch");let e=0;for(let t=0;t<n.length;t++)e|=bn(n[t])<<2*t;return e}(t));const e=[n];return An(e,t.nodeEdgeOffset),An(e,t.nodeValue),An(e,t.nodeLeafOrder),An(e,t.edgeLabelStart),An(e,t.edgeLabelLength),An(e,t.edgeChild),e.push(W(t.labelHeap)),R(e)}function Fn(t,n){const e=t>>2*n&3;if(0===e)return 1;if(1===e)return 2;if(2===e)return 4;throw Dt(`invalid tree column width code ${e}`)}function Mn(t,n,e,r){const o=In(e*r);if(n+o>t.length)throw Dt("term tree column truncated");let i;if(1===r)i=0===e?new Uint8Array(0):new Uint8Array(t.buffer,t.byteOffset+n,e);else if(2===r){if(n%2!=0)throw Dt("term tree Uint16 column misaligned");i=0===e?new Uint16Array(0):new Uint16Array(t.buffer,t.byteOffset+n,e)}else{if(n%4!=0)throw Dt("term tree Uint32 column misaligned");i=0===e?new Uint32Array(0):new Uint32Array(t.buffer,t.byteOffset+n,e)}return{arr:i,next:n+o}}function zn(t,n,e){const r=n[0];if(16!==r.length)throw Dt("core section size mismatch");const o=J(r,0),i=J(r,4),s=J(r,8),u=J(r,12),c=function(t,n,e,r){const o=[];let i=n;for(let n=0;n<e;n++){const{value:n,next:e}=jt(t,i);o.push(n),i=e}if(i!==r)throw Dt("field names section size mismatch");return o}(n[1],0,s,n[1].length),f={};for(let t=0;t<c.length;t++)f[c[t]]=t;const l=function(t,n,e,r){const o=new Array(e);let i=n;for(let n=0;n<e;n++){const{value:e,next:r}=Wt(t,i);o[n]=e,i=r}if(i!==r)throw Dt("external ids section size mismatch");return o}(n[2],0,i,n[2].length),a=null!=e?un(n[3],0,i,n[3].length,e.storeFields):void 0,d=null!=a?new Array(i):function(t,n,e,r){const o=new Array(e),i=n+4*e;if(i>r)throw Dt("stored fields table out of bounds");for(let s=0;s<e;s++){const e=J(t,n+4*s);if(0===e){o[s]=void 0;continue}const u=i+e-1;if(u+4>r)throw Dt("stored fields entry offset out of bounds");const c=u+4,f=c+J(t,u);if(f>r)throw Dt("stored fields JSON out of bounds");o[s]=JSON.parse(Z(t,c,f))}return o}(n[3],0,i,n[3].length),h=function(t,n){if(t.length<16)throw Dt("term tree section too short");const e=J(t,0),r=J(t,4),o=J(t,8),i=J(t,12);if(e!==n)throw Dt("term tree termCount mismatch");let s=16;const u=Mn(t,s,r+1,Fn(i,0));s=u.next;const c=Mn(t,s,r,Fn(i,1));s=c.next;const f=Mn(t,s,r,Fn(i,2));s=f.next;const l=Mn(t,s,o,Fn(i,3));s=l.next;const a=Mn(t,s,o,Fn(i,4));s=a.next;const d=Mn(t,s,o,Fn(i,5));if(s=d.next,s>t.length)throw Dt("term tree label heap out of bounds");const h={size:e,nodeCount:r,edgeCount:o,labelHeap:s===t.length?"":Z(t,s,t.length),nodeEdgeOffset:u.arr,nodeValue:c.arr,nodeLeafOrder:f.arr,edgeLabelStart:l.arr,edgeLabelLength:a.arr,edgeChild:d.arr},w=gn.fromData(h);return $t(w,n),w}(n[4],u),w=n[5],m=function(t,n,e){if(0===e)return new Float32Array(0);if(e%4!=0)throw Dt("float32 section length not aligned");if(n+e>t.length)throw Dt("float32 section read past buffer end");return new Float32Array(t.buffer,t.byteOffset+n,e/4)}(w,0,w.length),y=function(t,n,e){if(8&n){if(t.length!==e)throw Dt("fieldLengthMatrix u8 size mismatch");return 0===t.length?new Uint8Array(0):new Uint8Array(t.buffer,t.byteOffset,e)}if(16&n){if(t.length!==2*e)throw Dt("fieldLengthMatrix u16 size mismatch");return 0===e?new Uint16Array(0):new Uint16Array(t.buffer,t.byteOffset,e)}if(t.length!==4*e)throw Dt("fieldLengthMatrix u32 size mismatch");return 0===e?new Uint32Array(0):new Uint32Array(t.buffer,t.byteOffset,e)}(n[6],t,i*s),p=fn(t,s,u,i,n[7],n[8],n[9],n[10],n[11]);if(p.termCount!==u)throw Dt("core termCount mismatch with postings");const g={documentCount:o,nextId:i,fieldIds:f,fieldCount:s,fieldNames:c,avgFieldLength:m,externalIds:l,storedFields:d,storedFieldsLayout:a,fieldLengthMatrix:y,treeShape:[],packedTermIndex:h,postings:p};return Yt(g),g}async function Cn(t,n){const{globalFlags:e,directory:r}=function(t,n){if(!n.isMsv5Buffer(t))throw Dt("not a frozen binary snapshot");const e=V(t,4);if(5!==e)throw Dt(`unsupported frozen snapshot version=${e}`);const r=n.readMsv5GlobalFlags(t),o=n.readMsv5SectionDirectory(t),i=J(t,16),s=J(t,20);if(i!==X||i+s>t.length)throw Dt("frozen snapshot payload out of bounds");return{globalFlags:r,directory:o}}(t,{isMsv5Buffer:mt,readMsv5GlobalFlags:yt,readMsv5SectionDirectory:at});return zn(e,await async function(t,n){const{payloadCodec:e,slice:r,uncompressedLength:o,payloadCrc32:i}=ht(t,n);return dt(0===e?r:await wt(e,r,o),n,i)}(t,r),n)}function Ln(t,n,e){const r=Zt(t),o=null!=e?e:t.packedTermIndex;if(null!=o)return $t(o,r),o;const i=nn(t.treeShape);return tn(i,r),vn(i,r)}function Un(t,n,e){var r;Qt(t);const o=null!==(r=t.fieldNames)&&void 0!==r?r:Xt(t.fieldIds);if(o.length!==t.fieldCount)throw Dt("fieldNames length mismatch");const i=Ln(t,0,e),s=function(t){if("dense"===t.layout){if(null==t.denseOffsets||null==t.denseLengths)throw Dt("dense postings missing offset tables");return{flags:cn(t),meta:N(t.denseOffsets),fields:N(t.denseLengths),optional:q(0),docIds:N(t.allDocIds),freqs:N(t.allFreqs)}}if(null==t.sparseTermStarts||null==t.sparseFieldIds||null==t.sparseOffsets||null==t.sparseLengths)throw Dt("sparse postings missing tables");const n=N(t.sparseOffsets),e=N(t.sparseLengths),r=q(4+n.length+e.length);return K(r,0,n.length),r.set(n,4),r.set(e,4+n.length),{flags:cn(t),meta:N(t.sparseTermStarts),fields:N(t.sparseFieldIds),optional:r,docIds:N(t.allDocIds),freqs:N(t.allFreqs)}}(t.postings),u=(c=t.fieldLengthMatrix)instanceof Uint8Array?8:c instanceof Uint16Array?16:0;var c;const f=t.postings.allFreqs instanceof Uint16Array?32:0;const l=s.flags|u|f,a=null!=t.storedFieldsLayout?function(t,n){if("multi"===t.kind)return Ht(t.rows.length>=n?t.rows:t.rows.concat(new Array(n-t.rows.length)),n);const e=q(4*n);if("none"===t.kind)return e;const r=[],o={value:0},{field:i,values:s}=t;for(let t=0;t<n;t++){const n=s[t];void 0!==n&&rn(e,r,o,t,W(JSON.stringify({[i]:n})))}return 0===r.length?e:R([e,...r])}(t.storedFieldsLayout,t.nextId):Ht(t.storedFields,t.nextId);return{globalFlags:l,rawSections:[Jt(t.documentCount,t.nextId,t.fieldCount,Zt(t)),Gt(o),_t(t.externalIds,t.nextId),a,Sn(i),N(t.avgFieldLength),en(t.fieldLengthMatrix),s.meta,s.fields,s.optional,s.docIds,s.freqs]}}function En(t,n){if(function(t,n){if(0===n)return!0;for(let e=0;e<n;e++)if(t[e]!==e)return!1;return!0}(t,n))return{mode:"identity",mapEntryCount:0,has:t=>"number"==typeof t&&Number.isInteger(t)&&t>=0&&t<n,get(t){if("number"==typeof t&&Number.isInteger(t)&&t>=0&&t<n)return t}};let e;const r=()=>(null==e&&(e=function(t,n){const e=new Map;for(let r=0;r<n;r++){const n=t[r];void 0!==n&&e.set(n,r)}return e}(t,n)),e);return{mode:"lazy-map",get mapEntryCount(){var t;return null!==(t=null==e?void 0:e.size)&&void 0!==t?t:0},has:t=>r().has(t),get:t=>r().get(t)}}function kn(t,n){var e;const r=null!=n?n:t.length,o=kt(r,function(t,n){var e;const r=null!=n?n:t.length;let o=0;for(let n=0;n<r;n++){const r=null!==(e=t[n])&&void 0!==e?e:0;r>o&&(o=r)}return o}(t,r));for(let n=0;n<r;n++)o[n]=null!==(e=t[n])&&void 0!==e?e:0;return o}function On(t){if(t instanceof Uint32Array)return t;const n=new Uint32Array(t.length);for(let e=0;e<t.length;e++)n[e]=t[e];return n}const Tn=/[\n\r\p{Z}\p{P}]+/u,Bn={combineWith:m,prefix:!1,fuzzy:!1,maxFuzzy:6,boost:{},weights:{fuzzy:.45,prefix:.375},bm25:{k:1.2,b:.7,d:.5}},$n={combineWith:y,prefix:(t,n,e)=>n===e.length-1},Dn={idField:"id",extractField:(t,n)=>t[n],stringifyField:t=>t.toString(),tokenize:t=>t.split(Tn),processTerm:t=>t.toLowerCase(),storeFields:[],logger:()=>{},autoVacuum:!1};function jn(t,n){var e,r,o;const i=null!==(e=t.fieldNames)&&void 0!==e?e:Xt(t.fieldIds);null!=n.fields&&function(t,n){const e=Object.keys(n).sort(),r=[...t].sort();if(e.length!==r.length||e.some((t,n)=>t!==r[n]))throw new Error(`FrozenMiniSearch: option "fields" must match the indexed fields exactly (expected: ${e.join(", ")})`)}(n.fields,t.fieldIds);const s={...Dn,...n,fields:null!==(r=n.fields)&&void 0!==r?r:i,searchOptions:{...Bn,...n.searchOptions||{}},autoSuggestOptions:{...$n,...n.autoSuggestOptions||{}}},u=t.packedTermIndex;if(null==u)throw new Error("FrozenMiniSearch: binary snapshot missing packed term index");return{options:s,documentCount:t.documentCount,nextId:t.nextId,fieldIds:t.fieldIds,fieldCount:t.fieldCount,externalIds:t.externalIds,idLookup:En(t.externalIds,t.nextId),storedFields:null!==(o=t.storedFieldsLayout)&&void 0!==o?o:w(t.storedFields,s.storeFields),fieldLengthMatrix:t.fieldLengthMatrix,avgFieldLength:t.avgFieldLength,index:u,termCount:t.postings.termCount,postings:t.postings}}const qn=(t,n,e,r,o,i,s,u)=>{const c=i*s;t:for(const f of t.keys())if(f===vt){const n=o[c-1];n<=e&&r.set(u,[t.get(f),n])}else{if(an(i-1,f.length,n.length,e))continue t;let c=i;for(let t=0;t<f.length;++t,++c){const r=f[t],i=s*c,u=i-s;let l=o[i];const a=Math.max(0,c-e-1),d=Math.min(s-1,c+e);for(let t=a;t<d;++t){const e=r!==n[t],s=o[u+t]+ +e,c=o[u+t+1]+1,f=o[i+t]+1,a=o[i+t+1]=Math.min(s,c,f);a<l&&(l=a)}if(l>e)continue t}qn(t.get(f),n,e,r,o,c,s,u+f)}};class Nn{constructor(t=new Map,n=""){this.p=void 0,this.i=t,this.h=n}get radixTree(){return this.i}atPrefix(t){if(!t.startsWith(this.h))throw new Error("Mismatched prefix");const[n,e]=Wn(this.i,t.slice(this.h.length));if(void 0===n){const[n,r]=_n(e);for(const e of n.keys())if(e!==vt&&e.startsWith(r)){const o=new Map;return o.set(e.slice(r.length),n.get(e)),new Nn(o,t)}}return new Nn(n,t)}clear(){this.p=void 0,this.i.clear()}delete(t){return this.p=void 0,Vn(this.i,t)}entries(){return new xt(this,"ENTRIES")}forEach(t){for(const[n,e]of this)t(n,e,this)}fuzzyGet(t,n){return((t,n,e)=>{const r=new Map;if(void 0===n)return r;const o=n.length+1,i=o+e,s=new Uint8Array(i*o).fill(e+1);for(let t=0;t<o;++t)s[t]=t;for(let t=1;t<i;++t)s[t*o]=t;return qn(t,n,e,r,s,1,o,""),r})(this.i,t,n)}get(t){const n=Rn(this.i,t);return void 0!==n?n.get(vt):void 0}has(t){const n=Rn(this.i,t);return void 0!==n&&n.has(vt)}keys(){return new xt(this,pt)}set(t,n){if("string"!=typeof t)throw new Error("key must be a string");this.p=void 0;return Pn(this.i,t).set(vt,n),this}get size(){if(void 0!==this.p)return this.p;this.p=0;const t=this.entries();for(;!t.next().done;)this.p+=1;return this.p}update(t,n){if("string"!=typeof t)throw new Error("key must be a string");this.p=void 0;const e=Pn(this.i,t);return e.set(vt,n(e.get(vt))),this}fetch(t,n){if("string"!=typeof t)throw new Error("key must be a string");this.p=void 0;const e=Pn(this.i,t);let r=e.get(vt);return void 0===r&&e.set(vt,r=n()),r}values(){return new xt(this,gt)}[Symbol.iterator](){return this.entries()}static from(t){const n=new Nn;for(const[e,r]of t)n.set(e,r);return n}static fromObject(t){return Nn.from(Object.entries(t))}}const Wn=(t,n,e=[])=>{if(0===n.length||null==t)return[t,e];for(const r of t.keys())if(r!==vt&&n.startsWith(r))return e.push([t,r]),Wn(t.get(r),n.slice(r.length),e);return e.push([t,n]),Wn(void 0,"",e)},Rn=(t,n)=>{if(0===n.length||null==t)return t;for(const e of t.keys())if(e!==vt&&n.startsWith(e))return Rn(t.get(e),n.slice(e.length))},Pn=(t,n)=>{const e=n.length;t:for(let r=0;t&&r<e;){for(const o of t.keys())if(o!==vt&&n[r]===o[0]){const i=Math.min(e-r,o.length);let s=1;for(;s<i&&n[r+s]===o[s];)++s;const u=t.get(o);if(s===o.length)t=u;else{const e=new Map;e.set(o.slice(s),u),t.set(n.slice(r,r+s),e),t.delete(o),t=e}r+=s;continue t}const o=new Map;return t.set(n.slice(r),o),o}return t},Vn=(t,n)=>{const[e,r]=Wn(t,n);if(void 0!==e)if(e.delete(vt),0===e.size)Jn(r);else if(1===e.size){const[t,n]=e.entries().next().value;Gn(r,t,n)}},Jn=t=>{if(0===t.length)return;const[n,e]=_n(t);if(n.delete(e),0===n.size)Jn(t.slice(0,-1));else if(1===n.size){const[e,r]=n.entries().next().value;e!==vt&&Gn(t.slice(0,-1),e,r)}},Gn=(t,n,e)=>{if(0===t.length)return;const[r,o]=_n(t);r.set(o+n,e),r.delete(o)},_n=t=>t[t.length-1];function Hn(t){if(null==(null==t?void 0:t.fields))throw new Error('MiniSearch: option "fields" must be provided');return{...Dn,...t,searchOptions:{...Bn,...t.searchOptions||{}},autoSuggestOptions:{...$n,...t.autoSuggestOptions||{}}}}function Kn(t,n){if(Array.isArray(n))for(const e of n)t.set(e,(t.get(e)||0)+1);else n&&t.set(n,(t.get(n)||0)+1)}const Zn=/[\n\r\p{Z}\p{P}]+/gu;function Qn(t){return t===Dn.tokenize}function Yn(t,n){if(0===t.length)return void n("");let e=0;const r=Zn;let o;for(r.lastIndex=0;null!==(o=r.exec(t));)o.index>e?n(t.slice(e,o.index)):o.index===e&&n(""),e=o.index+o[0].length;e<t.length?n(t.slice(e)):0===e?n(t):e===t.length&&n("")}function Xn(t,n,e,r){if(Qn(n))return void function(t,n){t.length=0,Yn(n,n=>t.push(n))}(t,e);const o=n(e,r);t.length=0,t.push(...o)}function te(t,n,e,r,o,i,s){return Qn(r)?function(t,n,e,r,o){return t.clear(),n.clear(),Yn(e,e=>{n.add(e),Kn(t,o(e,r))}),{fieldLength:n.size,indexedTermCount:t.size}}(t,n,o,i,s):(Xn(e,r,o,i),function(t,n,e,r,o){t.clear(),n.clear();for(const i of e)n.add(i),Kn(t,o(i,r));return{fieldLength:n.size,indexedTermCount:t.size}}(t,n,e,i,s))}function ne(t,n,e,r){const o=(t[n]||0)*e+r;t[n]=o/(e+1)}const ee=new Set([1,2]);function re(t,n){return 1===n&&null!=t&&"object"==typeof t&&"ds"in t?t.ds:t}function oe(t,n,e,r){const o=[],i=vn(t.radixTree,{termCount:0,mapLeaf:t=>{const n=o.length;return o[n]=t,n},inferTermCountFromLeaves:!0}),s=i.size,u=function(t){const{fieldCount:n,termCount:e,nextId:r}=t,{forEachPosting:o,remapDocId:i}=t,s=new Uint32Array(e*n);let u=0,c=0,f=0;for(let t=0;t<e;t++){const e=t*n;for(let r=0;r<n;r++){let n=0;o(t,r,(t,e)=>{if((null!=i?i(t):t)===It)return;n++;const r=At(e);r>c&&(c=r)}),0!==n&&(s[e+r]=n,u+=n,f++)}}return Mt(n,e,r,u,c,{nonEmptySlots:f,slotLength:(t,e)=>s[t*n+e],writeSlot(t,n,e,r){const{allDocIds:s,allFreqs:u,docIdWidth:c}=r;return o(t,n,(t,n)=>{const r=null!=i?i(t):t;r!==It&&(s[e]=r,u[e]=At(n),e++)}),e}})}({fieldCount:n,termCount:s,nextId:e,remapDocId:null!=r?t=>r[t]:void 0,forEachPosting(t,n,e){var r;const i=null===(r=o[t])||void 0===r?void 0:r.get(n);if(null!=i)for(const[t,n]of i)e(t,n)}});return{termCount:s,index:i,postings:u}}function ie(t,n){var e,r,o;if(!ee.has(t.serializationVersion))throw new Error(`FrozenMiniSearch: unsupported MiniSearch serializationVersion ${t.serializationVersion}`);const i=Object.keys(t.fieldIds),s=(null===(e=n.fields)||void 0===e?void 0:e.length)?n.fields:i;(null===(r=n.fields)||void 0===r?void 0:r.length)&&function(t,n){const e=Object.keys(n).sort(),r=[...t].sort();if(e.length!==r.length||e.some((t,n)=>t!==r[n]))throw new Error(`FrozenMiniSearch: option "fields" must match the indexed fields exactly (expected: ${e.join(", ")})`)}(s,t.fieldIds);const u=Hn({...n,fields:s}),c=u.fields.length,{documentCount:f,nextId:l}=t,a=f<l;let d=null;const h=a?f:l,m=new Array(h),y=new Array(m.length);if(a){d=new Uint32Array(l),d.fill(It);let n=0;const e=Object.keys(t.documentIds).map(t=>parseInt(t,10)).sort((t,n)=>t-n);for(const r of e){const e=String(r);d[r]=n,m[n]=t.documentIds[e],y[n]=t.storedFields[e],n++}}else for(const[n,e]of Object.entries(t.documentIds)){const r=parseInt(n,10);m[r]=e,y[r]=t.storedFields[n]}const p=En(m,h),g=new Array((a?f:l)*c).fill(0);for(const[n,e]of Object.entries(t.fieldLength)){const t=parseInt(n,10),r=null!=d?d[t]:t;if(r!==It)for(let t=0;t<c;t++)g[r*c+t]=null!==(o=e[t])&&void 0!==o?o:0}const v=kn(g),x=new Float32Array(t.averageFieldLength.length);for(let n=0;n<t.averageFieldLength.length;n++)x[n]=t.averageFieldLength[n];const b=function(t){const n=new Nn,{index:e,serializationVersion:r}=t;for(const[t,o]of e){const e=new Map;for(const t of Object.keys(o)){const n=re(o[t],r),i=new Map;for(const[t,e]of Object.entries(n))i.set(parseInt(t,10),e);e.set(parseInt(t,10),i)}n.set(t,e)}return n}(t),I=oe(b,c,h,d),A=w(y,u.storeFields);return{options:u,documentCount:f,nextId:h,fieldIds:t.fieldIds,fieldCount:c,externalIds:m,idLookup:p,storedFields:A,fieldLengthMatrix:v,avgFieldLength:x,index:I.index,termCount:I.termCount,postings:I.postings}}class se{constructor(t=16){this.v=0,this.I=new Uint32Array(Math.max(1,t))}get length(){return this.v}push(t){if(this.v>=this.I.length){const t=new Uint32Array(Math.max(1,2*this.I.length));t.set(this.I),this.I=t}this.I[this.v++]=t}copyRangeInto(t,n,e,r,o){if(16===o){const o=e;for(let e=0;e<n;e++)o[r+e]=this.I[t+e]}else{const o=e;for(let e=0;e<n;e++)o[r+e]=this.I[t+e]}}truncate(t){this.v=t,t>0&&t<this.I.length&&(this.I=this.I.slice(0,t))}}class ue{constructor(t=16){this.v=0,this.I=new Uint16Array(Math.max(1,t))}get length(){return this.v}push(t){if(this.v>=this.I.length){const t=new Uint16Array(Math.max(1,2*this.I.length));t.set(this.I),this.I=t}this.I[this.v++]=f(t)}copyRangeInto(t,n,e,r){for(let o=0;o<n;o++)e[r+o]=this.I[t+o]}truncate(t){this.v=t,t>0&&t<this.I.length&&(this.I=this.I.slice(0,t))}}class ce{constructor(t,n){var e;this.A=new Map,this.S=0,this.F=0,this.M=t;const r=Math.max(16,null!==(e=null==n?void 0:n.estimatedTotalPostings)&&void 0!==e?e:0);this.C=new se(r),this.L=new ue(r)}get totalPostings(){return this.S}get maxFreq(){return this.F}append(t,n,e,r){const o=t*this.M+n,i=this.C.length;this.C.push(e);const s=f(r);this.L.push(s),s>this.F&&(this.F=s),this.S++;let u=this.A.get(o);if(null==u)return u={starts:[i],lengths:[1]},void this.A.set(o,u);const c=u.starts.length-1;u.starts[c]+u.lengths[c]===i?u.lengths[c]++:(u.starts.push(i),u.lengths.push(1))}clear(){this.A.clear(),this.C.truncate(0),this.L.truncate(0)}copySlot(t,n,e,r,o){for(let i=0;i<t.starts.length;i++){const s=t.starts[i],u=t.lengths[i];this.C.copyRangeInto(s,u,n,r,o),this.L.copyRangeInto(s,u,e,r),r+=u}return r}slotLength(t){let n=0;for(let e=0;e<t.lengths.length;e++)n+=t.lengths[e];return n}finalize(t,n){const e=this.M,r=this.S,o=this.F,i=this.A,s=Mt(e,t,n,r,o,{nonEmptySlots:i.size,slotLength:(t,n)=>{const r=i.get(t*e+n);return null==r?0:this.slotLength(r)},writeSlot:(t,n,r,o)=>{const s=t*e+n,u=i.get(s),c=this.copySlot(u,o.allDocIds,o.allFreqs,r,o.docIdWidth);return i.delete(s),c}});return i.clear(),this.clear(),s}}function fe(t,n,e){const r=n.get(e);if(null!=r)return r;const o=t.value;return t.value++,n.set(e,o),o}class le{constructor(t,n){var e,r;this.U={value:0},this.O=new Map,this.T=new Set,this.B=[],this.$=Hn(t),this.D=function(t){const n={};for(let e=0;e<t.length;e++)n[t[e]]=e;return n}(this.$.fields),this.M=this.$.fields.length,this.j=new Nn;const o=null!==(e=null==n?void 0:n.estimatedDocumentCount)&&void 0!==e?e:0,i=null!==(r=null==n?void 0:n.estimatedPostingsPerSlot)&&void 0!==r?r:4;this.q=new ce(this.M,{estimatedTotalPostings:o>0?o*i:void 0}),this.N=[],this.W=new Set,this.R=0,this.P=!1;const s=null==n?void 0:n.estimatedDocumentCount;this.V=function(t,n=0){return 0===t.length?{kind:"none"}:1===t.length?{kind:"single",field:t[0],values:new Array(n)}:{kind:"multi",rows:new Array(n)}}(this.$.storeFields,null!=s?s:0),null!=s&&s>0?(this.J=new Array(s),this.G=new Array(s*this.M).fill(0)):(this.J=[],this.G=[])}get documentCount(){return this.R}add(t){if(this.P)throw new Error("FrozenIndexBuilder: cannot add after freezeParams()");const{extractField:n,stringifyField:e,tokenize:r,processTerm:o,fields:i,idField:s,storeFields:u}=this.$,c=n(t,s);if(null==c)throw new Error(`MiniSearch: document does not have ID field "${s}"`);if(this.W.has(c))throw new Error(`MiniSearch: duplicate ID ${c}`);this.W.add(c);const f=this.R++;this.J[f]=c,function(t,n,e,r,o){if("none"===t.kind)return;if("single"===t.kind)return void(t.values[n]=r(o,t.field));const i={};for(const t of e){const n=r(o,t);void 0!==n&&(i[t]=n)}t.rows[n]=i}(this.V,f,u,n,t);const l=f+1;for(const s of i){const i=n(t,s);if(null==i)continue;const u="string"==typeof i&&e===Dn.stringifyField?i:e(i,s),c=this.D[s],{fieldLength:a}=te(this.O,this.T,this.B,r,u,s,o);this.G[f*this.M+c]=a,ne(this.N,c,l-1,a),this.O.forEach((t,n)=>{const e=fe(this.U,this.j,n);this.q.append(e,c,f,t)})}}addAll(t){for(const n of t)this.add(n)}addAllAsync(t,n={}){const{chunkSize:e=10}=n;if(!Number.isInteger(e)||e<1)throw new Error("MiniSearch: chunkSize must be a positive integer");const r={chunk:[],promise:Promise.resolve()},{chunk:o,promise:i}=t.reduce(({chunk:t,promise:n},r,o)=>(t.push(r),(o+1)%e===0?{chunk:[],promise:n.then(()=>new Promise(t=>setTimeout(t,0))).then(()=>this.addAll(t))}:{chunk:t,promise:n}),r);return i.then(()=>this.addAll(o))}freezeParams(){var t;if(this.P)throw new Error("FrozenIndexBuilder: freezeParams() already called");this.P=!0;const n=this.R,e=this.U.value,r=this.q.finalize(e,n),o=this.j.radixTree;this.j=null;const i=vn(o,e),s=new Float32Array(this.M);for(let n=0;n<this.M;n++)s[n]=null!==(t=this.N[n])&&void 0!==t?t:0;this.G.length=n*this.M;const u=this.J.length>n?this.J.slice(0,n):this.J,c=(f=this.V,l=n,"none"===f.kind?f:"single"===f.kind?f.values.length<=l?f:{kind:"single",field:f.field,values:f.values.slice(0,l)}:f.rows.length<=l?f:{kind:"multi",rows:f.rows.slice(0,l)});var f,l;const a=En(u,n);return{options:this.$,documentCount:n,nextId:n,fieldIds:this.D,fieldCount:this.M,externalIds:u,idLookup:a,storedFields:c,fieldLengthMatrix:kn(this.G,n*this.M),avgFieldLength:s,index:i,termCount:e,postings:r}}}function ae(t,n){return new le(t,n)}function de(t,n){const e=ae(n,{estimatedDocumentCount:t.length});return e.addAll(t),e.freezeParams()}function he(t,n,e,r){return function(t,n,e){return!e&&(!(t<=1)&&function(t){const n=t.toLowerCase();return"and"===n||"and_not"===n}(n))}(n,e,r)}function we(t){return{get size(){return t.size},has:n=>t.has(n),[Symbol.iterator]:()=>t.keys()}}function me(t){return"object"==typeof t&&null!=t&&"queries"in t&&Array.isArray(t.queries)}function ye(t){return t.queries.some(t=>d(t)||"object"==typeof t&&null!=t&&"queries"in t&&ye(t))}function pe(t,n,e){const r={tokenize:e.tokenize,processTerm:e.processTerm,...e.globalSearchOptions,...n},o=r.tokenize(t),i=[];for(const t of o){const n=r.processTerm(t);if(Array.isArray(n))for(const t of n)t&&i.push(t);else n&&i.push(n)}const s=(t=>(n,e,r)=>({term:n,fuzzy:"function"==typeof t.fuzzy?t.fuzzy(n,e,r):t.fuzzy||!1,prefix:"function"==typeof t.prefix?t.prefix(n,e,r):!0===t.prefix,termBoost:"function"==typeof t.boostTerm?t.boostTerm(n,e,r):1}))(r),u=new Array(i.length);for(let t=0;t<i.length;t++)u[t]=s(i[t],t,i);const{fuzzy:c,prefix:f}={...Bn.weights,...r.weights};return{options:r,specs:u,operator:r.combineWith,fieldBoosts:I(r,e.fields),fuzzyWeight:c,prefixWeight:f}}function ge(t,n){return{kind:"lazy",resolve:()=>t.resolveTermByIndex(n)}}function ve(t,n,e,r){const{indexView:o}=e,{options:i}=n,s=function(t,n){if(!t.fuzzy)return 0;const e=!0===t.fuzzy?.2:t.fuzzy;return e<1?Math.min(n,Math.round(t.term.length*e)):e}(t,i.maxFuzzy);r({kind:"exact",termIndex:o.resolveTermIndex(t.term)});const u=t.prefix&&s?new Set:void 0;if(t.prefix)for(const{termIndex:n,length:e}of o.getPrefixMatchesByIndex(t.term)){const o=e-t.term.length;o&&(null==u||u.add(n),r({kind:"prefix",termIndex:n,length:e,distance:o}))}if(s)for(const{termIndex:n,length:e,distance:i}of o.getFuzzyMatchesByIndex(t.term,s))i&&!(null==u?void 0:u.has(n))&&r({kind:"fuzzy",termIndex:n,length:e,distance:i})}function xe(t,n,e,r){const{fieldBoosts:o,options:i}=n,s=null==r?void 0:{allowedDocs:r},u=new Map;return function(t,n,e,r){const{indexView:o}=e,{fuzzyWeight:i,prefixWeight:s}=n;ve(t,n,e,n=>{"exact"!==n.kind?"prefix"!==n.kind?r(o.fieldTermData(n.termIndex),ge(o,n.termIndex),i*n.length/(n.length+n.distance)):r(o.fieldTermData(n.termIndex),ge(o,n.termIndex),s*n.length/(n.length+.3*n.distance)):r(null==n.termIndex?void 0:o.fieldTermData(n.termIndex),t.term,1)})}(t,n,e,(n,r,c)=>{!function(t,n,e,r,o,i,s,u,c,f=new Map,a){if(null==o)return f;const{allowedDocs:d}=null!=a?a:{};for(const a of i.names){const h=i.boosts[a],w=s.fieldIds[a],m=o.get(w);if(null==m)continue;if(m instanceof l){z(t,n,e,r,a,w,h,m,s,u,c,f,d);continue}let y=m.size;const p=g(c,s.avgFieldLength[w]),x=null==s.isDocActive?v(y,s.documentCount):void 0,b={};m.forEachDoc((o,i)=>{var c;if(null!=s.isDocActive&&!s.isDocActive(o))return null===(c=s.onInactiveDoc)||void 0===c||c.call(s,o,w,F(n,b)),void(y-=1);(null==d||d.has(o))&&M(t,n,a,w,o,i,e,r,h,y,s,u,p,f,b,x)})}}(t.term,r,c,t.termBoost,n,o,e.aggregateContext,i.boostDocument,i.bm25,u,s)}),u}function be(t,n,e){const{indexView:r,aggregateContext:o}=e,{fieldBoosts:i}=n,{fieldIds:s}=o;let u=0;const c=t=>{u=Math.max(u,function(t,n,e){if(null==t)return 0;let r=0;for(const o of n.names){const n=e[o],i=t.get(n);if(null==i)continue;const s=i instanceof l?i.length:i.size;s>r&&(r=s)}return r}(t,i,s))};return ve(t,n,e,t=>{("exact"!==t.kind||null!=t.termIndex)&&c(r.fieldTermData(t.termIndex))}),u}function Ie(t,n,e){if(d(t))return e.aggregateContext.documentCount;if(me(t)){const r={...n,...t,queries:void 0};let o=0;for(const n of t.queries)o=Math.max(o,Ie(n,r,e));return o}if("string"!=typeof t)return 0;const r=pe(t,n,e);let o=0;for(const t of r.specs)o=Math.max(o,be(t,r,e));return o}function Ae(t,n,e,r){const{fieldBoosts:o}=n,i=new Set,{indexView:s,aggregateContext:u}=e;return ve(t,n,e,t=>{("exact"!==t.kind||null!=t.termIndex)&&s.collectDocIds(t.termIndex,o,u,i,r)}),i}function Se(t,n){for(const e of t)n.has(e)||t.delete(e)}function Fe(t,n){for(const e of n)t.delete(e)}function Me(t,n){for(const e of n)t.delete(e)}function ze(t,n){if(null==n)return;const e=new Array(t.length);for(let r=0;r<t.length;r++){const o=n(t[r]);if(null==o)return;e[r]=o}return e}function Ce(t,n,e,r){if(0===t.length)return new Set;const o=n.toLowerCase();if("or"===o){const n=new Set;for(const o of t)for(const t of e(o,r))n.add(t);return n}const i=e(t[0],r);if("and"===o){for(let n=1;n<t.length;n++)Se(i,e(t[n],i));return i}if("and_not"===o){for(let n=1;n<t.length;n++)Fe(i,e(t[n],i));return i}throw new Error(`Invalid combination operator: ${n}`)}function Le(e,r,s,u,c,f,l,a,d){if(0===e.length)return new Map;const h=r.toLowerCase();if("or"===h)return L(e.map(t=>u(t,f)),r);if("and"===h){const r=ze(e,d);if(null!=r&&function(n,e){if(n.length<=1)return!1;const r=n[0],o=null==e?r:Math.min(r,e.size);if(o<t)return!1;const i=o>>>2;for(let t=1;t<n.length;t++){const e=n[t];if(e>0&&e<=i)return!0}return!1}(r,f)){const t=function(t,n,e,r){const o=t.map((t,n)=>n);o.sort((t,e)=>n[t]-n[e]||t-e);const i=e(t[o[0]],r);for(let n=1;n<o.length;n++){if(0===i.size)return i;Se(i,e(t[o[n]],i))}return i}(e,r,c,f);return function(t,n,e){if(0===n.size)return new Map;let r=e(t[0],n);for(let o=1;o<t.length;o++){if(0===r.size)return r;r=L([r,e(t[o],n)],y)}return r}(e,t,u)}let l=u(e[0],f),h=we(l);const w=void 0,m=s.aggregateContext.documentCount,p=n,g=o(m,w);for(let t=1;t<e.length;t++){if(0===h.size)return l;const n=h.size<=g||null==a?void 0:a(e[t]),r=i(h.size,m,w,n,p)?h:f;l=L([l,u(e[t],r)],y),h=we(l)}return l}if("and_not"===h){const n=ze(e,d);if(null!=n&&function(n,e,r){if(n.length<=1)return!1;const o=n[0],i=null==e?o:Math.min(o,e.size),s=Math.max(t,Math.floor(.5*r));if(i<s)return!1;for(let t=1;t<n.length;t++)if(n[t]>=s)return!0;return!1}(n,f,s.aggregateContext.documentCount)){const t=Ce(e,r,c,f);return 0===t.size?new Map:u(e[0],t)}const o=u(e[0],f);let i=we(o);for(let t=1;t<e.length;t++)Me(o,c(e[t],i)),i=we(o);return o}throw new Error(`Invalid combination operator: ${r}`)}function Ue(t,n,e,r){return{resolveTermIndex(n){const e=t.get(n);return null==e?void 0:e},fieldTermData:t=>e.bind(t),collectDocIds(t,e,r,o,i){!function(t,n,e,r,o,i){const{fieldIds:s}=r;for(const u of e.names)Lt(t,n,s[u],Ct)&&Ut(t.allDocIds,Ct.offset,Ct.length,r,o,i)}(n,t,e,r,o,i)},getTermData(n){const r=t.get(n);return null==r?void 0:e.bind(r)},*getPrefixMatchesByIndex(n){yield*t.prefixRefs(n)},*getFuzzyMatchesByIndex(n,e){yield*t.fuzzyRefs(n,e)},resolveTermByIndex:n=>t.termByIndex(n),forEachActiveDoc:r}}function Ee(t,n,e,r){var o,i;if(d(t)){const t=new Set;return e.indexView.forEachActiveDoc(n=>{(null==r||r.has(n))&&t.add(n)}),t}if(me(t)){const s={...n,...t,queries:void 0},u=null!==(i=null!==(o=t.combineWith)&&void 0!==o?o:s.combineWith)&&void 0!==i?i:e.globalSearchOptions.combineWith;return Ce(t.queries,u,(t,n)=>Ee(t,s,e,n),r)}if("string"!=typeof t)throw new Error("FrozenMiniSearch: invalid query");const s=pe(t,n,e),{specs:u,operator:c}=s,f=null!=c?c:e.globalSearchOptions.combineWith;return u.length<=1?1===u.length?Ae(u[0],s,e,r):new Set:Ce(u,f,(t,n)=>Ae(t,s,e,n),r)}function ke(t,n,e,r,o){var i,s;if(d(t))return function(t,n){const e=new Map,r={...n.globalSearchOptions,...t},{boostDocument:o}=r;return n.indexView.forEachActiveDoc((t,n,r)=>{const i=o?o(n,"",r):1;e.set(t,{score:i,terms:[],match:{}})}),e}(n,e);if(me(t)){const u={...n,...t,queries:void 0},c=null!==(s=null!==(i=t.combineWith)&&void 0!==i?i:u.combineWith)&&void 0!==s?s:e.globalSearchOptions.combineWith;if(he(0,t.queries.length,c,ye(t)))return Le(t.queries,c,e,(t,n)=>ke(t,u,e,n,o),(t,n)=>Ee(t,u,e,n),r,0,t=>Ie(t,u,e));return L(t.queries.map(t=>ke(t,u,e,r,o)),c)}if("string"!=typeof t)throw new Error("FrozenMiniSearch: invalid query");const u=pe(t,n,e),{specs:c,operator:f}=u,l=null!=f?f:e.globalSearchOptions.combineWith;if(he(0,c.length,l,!1))return Le(c,l,e,(t,n)=>xe(t,u,e,n),(t,n)=>Ae(t,u,e,n),r,0,t=>be(t,u,e),t=>function(t,n,e){return function(t){return!t.prefix&&!t.fuzzy}(t)?be(t,n,e):void 0}(t,u,e));return L(c.map(t=>xe(t,u,e,r)),l)}function Oe(t,n,e){for(let r=0;r<t;r++){const t=n[r];void 0!==t&&e(r,t)}}function Te(t){return t instanceof Uint8Array?new Uint8Array(t):t instanceof Uint16Array?new Uint16Array(t):new Uint32Array(t)}function Be(t){const n=16===t.docIdWidth?new Uint16Array(t.allDocIds):new Uint32Array(t.allDocIds),e=t.allFreqs instanceof Uint8Array?new Uint8Array(t.allFreqs):new Uint16Array(t.allFreqs);if("dense"===t.layout)return{...t,allDocIds:n,allFreqs:e,denseOffsets:new Uint32Array(t.denseOffsets),denseLengths:new Uint32Array(t.denseLengths)};const r=16===t.sparseFieldIdWidth?new Uint16Array(t.sparseFieldIds):new Uint8Array(t.sparseFieldIds);return{...t,allDocIds:n,allFreqs:e,sparseTermStarts:new Uint32Array(t.sparseTermStarts),sparseFieldIds:r,sparseOffsets:new Uint32Array(t.sparseOffsets),sparseLengths:new Uint32Array(t.sparseLengths)}}function $e(t){return{fieldIds:{...t.fieldIds},options:(e=t.options,{...e,fields:[...e.fields],searchOptions:{...e.searchOptions},autoSuggestOptions:{...e.autoSuggestOptions}}),storedFields:(n=t.storedFields,"none"===n.kind?n:"single"===n.kind?{kind:"single",field:n.field,values:n.values.slice()}:{kind:"multi",rows:n.rows.slice()})};var n,e}function De(t){return t.memoryBreakdown()}const je=()=>{};function qe(t,n,e,r){const o=function(t,n){return"trusted-build"===n?t:"minisearch-json"===n?{...t,...$e(t)}:{...t,index:(r=t.index,gn.fromData({size:r.size,nodeCount:r.nodeCount,edgeCount:r.edgeCount,labelHeap:r.labelHeap,nodeEdgeOffset:Te(r.nodeEdgeOffset),nodeValue:Te(r.nodeValue),nodeLeafOrder:Te(r.nodeLeafOrder),edgeLabelStart:Te(r.edgeLabelStart),edgeLabelLength:Te(r.edgeLabelLength),edgeChild:Te(r.edgeChild)})),postings:Be(t.postings),fieldLengthMatrix:(e=t.fieldLengthMatrix,Te(e)),avgFieldLength:new Float32Array(t.avgFieldLength)};var e,r}(t,e),i=o.termCount;if(o.fieldLengthMatrix.length!==o.nextId*o.fieldCount)throw new Error("FrozenMiniSearch: fieldLengthMatrix size mismatch");if(o.avgFieldLength.length!==o.fieldCount)throw new Error("FrozenMiniSearch: avgFieldLength size mismatch");return n||(zt(o.postings,o.documentCount,o.nextId),$t(o.index,i)),null==r?new We(o):new r(o)}function Ne(t,n,e,r){return qe(t,n,e,r)}class We{constructor(t){this.$=t.options,this._=t.documentCount,this.R=t.nextId,this.J=t.externalIds,this.H=t.idLookup,this.D=t.fieldIds,this.M=t.fieldCount,this.K=t.fieldLengthMatrix,this.N=t.avgFieldLength,this.V=t.storedFields,this.j=t.index,this.U=t.termCount,this.q=t.postings,this.Z=function(t){let n=-1;const{allDocIds:e,allFreqs:r}=t,o=new l(e,r,0,0),i={bind:t=>(n=t,i),get(e){if(Lt(t,n,e,Ct))return o.rebind(Ct.offset,Ct.length)}};return i}(this.q),this.Y="none"!==this.V.kind,this.X={documentCount:this._,avgFieldLength:this.N,fieldIds:this.D,getFieldLength:(t,n)=>this.getFieldLength(t,n),getExternalId:t=>this.J[t],getStoredFields:this.Y?t=>h(this.V,t):je},this.tt={fields:this.$.fields,globalSearchOptions:this.$.searchOptions,tokenize:this.$.tokenize,processTerm:this.$.processTerm,indexView:Ue(this.j,this.q,this.Z,this.Y?t=>{Oe(this.R,this.J,(n,e)=>{t(n,e,h(this.V,n))})}:t=>{Oe(this.R,this.J,t)}),aggregateContext:this.X}}get documentCount(){return this._}get termCount(){return this.U}memoryBreakdown(){const t=this.termCount,n=function(t){const n=t.allDocIds.byteLength,e=t.allFreqs.byteLength;if("dense"===t.layout){const r=t.denseOffsets.byteLength,o=t.denseLengths.byteLength;return{allDocIdsBytes:n,allFreqsBytes:e,offsetsBytes:r,lengthsBytes:o,totalTypedBytes:n+e+r+o,slotCount:t.termCount*t.fieldCount}}const r=t.sparseOffsets.byteLength+t.sparseTermStarts.byteLength,o=t.sparseLengths.byteLength+t.sparseFieldIds.byteLength;return{allDocIdsBytes:n,allFreqsBytes:e,offsetsBytes:r,lengthsBytes:o,totalTypedBytes:n+e+r+o,slotCount:t.sparseFieldIds.length}}(this.q),e=function(t){if("none"===t.kind)return 0;if("multi"===t.kind){let n=0;for(const e of t.rows)null!=e&&(n+=JSON.stringify(e).length);return n}let n=0;const{field:e,values:r}=t;for(let t=0;t<r.length;t++){const o=r[t];void 0!==o&&(n+=JSON.stringify({[e]:o}).length)}return n}(this.V),r=this.j.packedByteLength(),o="lazy-map"===this.H.mode?32*this.H.mapEntryCount:0,i=n.totalTypedBytes+this.K.byteLength+this.N.byteLength+r+e+o;return{termCount:t,documentCount:this._,nextId:this.R,postings:{slotCount:n.slotCount,layout:this.q.layout,docIdWidth:this.q.docIdWidth,allDocIdsBytes:n.allDocIdsBytes,allFreqsBytes:n.allFreqsBytes,offsetsBytes:n.offsetsBytes,lengthsBytes:n.lengthsBytes,totalTypedBytes:n.totalTypedBytes},radixTree:{nodeCount:this.j.packedNodeCount(),edgeCount:this.j.packedEdgeCount(),estimatedBytes:r},documents:{externalIdsSlots:this.J.length,storedFieldsSlots:(s=this.V,"none"===s.kind?0:"single"===s.kind?s.values.length:s.rows.length),idLookupMode:this.H.mode,idToShortIdEntries:this.H.mapEntryCount,fieldLengthMatrixBytes:this.K.byteLength,avgFieldLengthBytes:this.N.byteLength,storedFieldsJsonBytes:e},estimatedStructuredBytes:i};var s}has(t){return this.H.has(t)}getStoredFields(t){const n=this.H.get(t);return null==n?void 0:h(this.V,n)}search(t,n={}){return E(this.executeQuery(t,n),t,n,this.$.searchOptions,t=>this.J[t],void 0,this.V)}autoSuggest(t,n={}){const e={...this.$.autoSuggestOptions,...n};return null==e.filter?j(this.executeQuery(t,e)):D(this.search(t,e))}static fromDocuments(t,n){return qe(de(t,n),!0,"trusted-build",this)}toJSON(){return function(t){const{documentCount:n,nextId:e,fieldIds:r,fieldCount:o,externalIds:i,fieldLengthMatrix:s,avgFieldLength:u,storedFields:c,index:f,fieldTermFlyweight:l}=t,a={},d={},w={},m="none"!==c.kind;Oe(e,i,(t,n)=>{var e;const r=String(t);a[r]=n;const i=new Array(o),u=t*o;for(let t=0;t<o;t++)i[t]=null!==(e=s[u+t])&&void 0!==e?e:0;d[r]=i,m&&(w[r]=h(c,t))});const y=[];for(const[t,n]of f.entries()){l.bind(n);const e={};for(let t=0;t<o;t++){const n=l.get(t);if(null==n||0===n.size)continue;const r={};n.forEachDoc((t,n)=>{r[String(t)]=n}),e[String(t)]=r}Object.keys(e).length>0&&y.push([t,e])}return{documentCount:n,nextId:e,documentIds:a,fieldIds:r,fieldLength:d,averageFieldLength:Array.from(u),storedFields:w,dirtCount:0,index:y,serializationVersion:2}}({documentCount:this._,nextId:this.R,fieldIds:this.D,fieldCount:this.M,externalIds:this.J,fieldLengthMatrix:this.K,avgFieldLength:this.N,storedFields:this.V,index:this.j,fieldTermFlyweight:this.Z})}static fromJson(t,n={}){return qe(ie(JSON.parse(t),n),!0,"minisearch-json",this)}static fromMiniSearchSnapshot(t,n={}){return qe(ie(t,n),!0,"minisearch-json",this)}static fromMiniSearch(t,n={}){return qe(ie(t.toJSON(),n),!0,"minisearch-json",this)}static async fromAsyncIterable(t,n,e){const r=ae(n,e);for await(const n of t)r.add(n);return qe(r.freezeParams(),!0,"trusted-build",this)}getFieldLength(t,n){var e;return null!==(e=this.K[t*this.M+n])&&void 0!==e?e:0}executeQuery(t,n={}){return function(t,n,e){return ke(t,n,e)}(t,n,this.tt)}}function Re(t){return Ne(t,!1,"binary-load",Pe)}We.wildcard=a;class Pe extends We{async saveBinaryAsync(t={}){return async function(t,n,e,r){const{globalFlags:o,rawSections:i}=Un(t,0,e);return(await lt(o,i,r)).buffer}(this.binarySnapshotInput(),0,this.j,t.compression)}binarySnapshotInput(){return{documentCount:(t={documentCount:this._,nextId:this.R,fieldIds:this.D,fieldCount:this.M,avgFieldLength:this.N,externalIds:this.J,storedFieldsLayout:this.V,fieldLengthMatrix:this.K,postings:this.q}).documentCount,nextId:t.nextId,fieldIds:t.fieldIds,fieldCount:t.fieldCount,fieldNames:Xt(t.fieldIds),avgFieldLength:t.avgFieldLength,externalIds:t.externalIds,storedFields:new Array(t.nextId),storedFieldsLayout:t.storedFieldsLayout,fieldLengthMatrix:On(t.fieldLengthMatrix),treeShape:[],postings:t.postings};var t}static async loadBinaryAsync(t,n={}){var e;const r=null!==(e=n.storeFields)&&void 0!==e?e:Dn.storeFields,o=await Cn(t,{storeFields:r});return Pe.fromBinarySnapshot(o,n)}static fromBinarySnapshot(t,n){return Re(jn(t,n))}}function Ve(t,n){return Ne(de(t,n),!0,"trusted-build",Pe)}function Je(t){return Ne(t.freezeParams(),!0,"trusted-build",Pe)}export{y as AND,p as AND_NOT,le as FrozenIndexBuilder,Pe as FrozenMiniSearch,m as OR,Re as assembleFrozen,Ve as buildFrozenFromDocuments,ae as createFrozenIndexBuilder,Pe as default,E as finalizeRawSearchResults,k as finalizeSearchResults,Je as freezeFrozenIndexBuilder,De as frozenMemoryBreakdown,j as suggestFromRawResults,D as suggestFromSearchResults};