Files
zen-blog/_next/static/chunks/ca4e85da0fc85bab.js
zeekay ebff614c2e Replace Hugo blog with Fumadocs landing page
Deploy proper Zen LM landing page to zenlm.org:
- 🪷 Zen LM branding (lotus emoji, dark theme)
- Geist font via Fumadocs/Tailwind
- All model cards with full landing page
- Individual model detail pages (/docs/models/*)
- No blog cross-links
- No upstream model references
- API docs, pricing, training documentation
2026-03-01 05:09:29 -08:00

10 lines
60 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,67964,e=>{"use strict";var t=e.i(70276),r=e.i(62952);let n={arabic:"ar",armenian:"am",bulgarian:"bg",czech:"cz",danish:"dk",dutch:"nl",english:"en",finnish:"fi",french:"fr",german:"de",greek:"gr",hungarian:"hu",indian:"in",indonesian:"id",irish:"ie",italian:"it",lithuanian:"lt",nepali:"np",norwegian:"no",portuguese:"pt",romanian:"ro",russian:"ru",serbian:"rs",slovenian:"ru",spanish:"es",swedish:"se",tamil:"ta",turkish:"tr",ukrainian:"uk",sanskrit:"sk"},o={dutch:/[^A-Za-zàèéìòóù0-9_'-]+/gim,english:/[^A-Za-zàèéìòóù0-9_'-]+/gim,french:/[^a-z0-9äâàéèëêïîöôùüûœç-]+/gim,italian:/[^A-Za-zàèéìòóù0-9_'-]+/gim,norwegian:/[^a-z0-9_æøåÆØÅäÄöÖüÜ]+/gim,portuguese:/[^a-z0-9à-úÀ-Ú]/gim,russian:/[^a-z0-9а-яА-ЯёЁ]+/gim,spanish:/[^a-z0-9A-Zá-úÁ-ÚñÑüÜ]+/gim,swedish:/[^a-z0-9_åÅäÄöÖüÜ-]+/gim,german:/[^a-z0-9A-ZäöüÄÖÜß]+/gim,finnish:/[^a-z0-9äöÄÖ]+/gim,danish:/[^a-z0-9æøåÆØÅ]+/gim,hungarian:/[^a-z0-9áéíóöőúüűÁÉÍÓÖŐÚÜŰ]+/gim,romanian:/[^a-z0-9ăâîșțĂÂÎȘȚ]+/gim,serbian:/[^a-z0-9čćžšđČĆŽŠĐ]+/gim,turkish:/[^a-z0-9çÇğĞıİöÖşŞüÜ]+/gim,lithuanian:/[^a-z0-9ąčęėįšųūžĄČĘĖĮŠŲŪŽ]+/gim,arabic:/[^a-z0-9أ-ي]+/gim,nepali:/[^a-z0-9अ-ह]+/gim,irish:/[^a-z0-9áéíóúÁÉÍÓÚ]+/gim,indian:/[^a-z0-9अ-ह]+/gim,armenian:/[^a-z0-9ա-ֆ]+/gim,greek:/[^a-z0-9α-ωά-ώ]+/gim,indonesian:/[^a-z0-9]+/gim,ukrainian:/[^a-z0-9а-яА-ЯіїєІЇЄ]+/gim,slovenian:/[^a-z0-9螚ȎŠ]+/gim,bulgarian:/[^a-z0-9а-яА-Я]+/gim,tamil:/[^a-z0-9அ-ஹ]+/gim,sanskrit:/[^a-z0-9A-Zāīūṛḷṃṁḥśṣṭḍṇṅñḻḹṝ]+/gim,czech:/[^A-Z0-9a-zěščřžýáíéúůóťďĚŠČŘŽÝÁÍÉÓÚŮŤĎ-]+/gim},i=Object.keys(n);var s=e.i(58630);let l=Date.now().toString().slice(5),a=0,u=BigInt(1e3),c=BigInt(1e6),f=BigInt(1e9);function d(e,t){if(t.length<65535)Array.prototype.push.apply(e,t);else{let r=t.length;for(let n=0;n<r;n+=65535)Array.prototype.push.apply(e,t.slice(n,n+65535))}}function h(){return BigInt(Math.floor(1e6*performance.now()))}function p(e){return("number"==typeof e&&(e=BigInt(e)),e<u)?`${e}ns`:e<c?`${e/u}μs`:e<f?`${e/c}ms`:`${e/f}s`}function g(){return"u">typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?h():void 0!==s.default&&s.default.release&&"node"===s.default.release.name||void 0!==s.default&&"function"==typeof s.default?.hrtime?.bigint?s.default.hrtime.bigint():"u">typeof performance?h():BigInt(0)}function m(){return`${l}-${a++}`}function y(e,t){return void 0===Object.hasOwn?Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0:Object.hasOwn(e,t)?e[t]:void 0}function b(e,t){return t[1]===e[1]?e[0]-t[0]:t[1]-e[1]}function S(e,t){let r={},n=t.length;for(let o=0;o<n;o++){let n=t[o],i=n.split("."),s=e,l=i.length;for(let e=0;e<l;e++)if("object"==typeof(s=s[i[e]])){if(null!==s&&"lat"in s&&"lon"in s&&"number"==typeof s.lat&&"number"==typeof s.lon){s=r[n]=s;break}else if(!Array.isArray(s)&&null!==s&&e===l-1){s=void 0;break}}else if((null===s||"object"!=typeof s)&&e<l-1){s=void 0;break}void 0!==s&&(r[n]=s)}return r}function I(e,t){return S(e,[t])[t]}let w={cm:.01,m:1,km:1e3,ft:.3048,yd:.9144,mi:1609.344};function O(e,t){let r=w[t];if(void 0===r)throw Error(k("INVALID_DISTANCE_SUFFIX",e).message);return e*r}function N(e,t){e.hits=e.hits.map(e=>({...e,document:{...e.document,...t.reduce((e,t)=>{let r=t.split("."),n=r.pop(),o=e;for(let e of r)o[e]=o[e]??{},o=o[e];return o[n]=null,e},e.document)}}))}function T(e){return Array.isArray(e)?e.some(e=>T(e)):e?.constructor?.name==="AsyncFunction"}let v="intersection"in new Set;function _(...e){if(0===e.length)return new Set;if(1===e.length)return e[0];if(2===e.length){let t=e[0],r=e[1];if(v)return t.intersection(r);let n=new Set,o=t.size<r.size?t:r,i=o===t?r:t;for(let e of o)i.has(e)&&n.add(e);return n}let t={index:0,size:e[0].size};for(let r=1;r<e.length;r++)e[r].size<t.size&&(t.index=r,t.size=e[r].size);if(v){let r=e[t.index];for(let n=0;n<e.length;n++)n!==t.index&&(r=r.intersection(e[n]));return r}let r=e[t.index];for(let n=0;n<e.length;n++){if(n===t.index)continue;let o=e[n];for(let e of r)o.has(e)||r.delete(e)}return r}let D="union"in new Set;function A(e,t){return D?e?e.union(t):t:new Set(e?[...e,...t]:t)}let E=i.join("\n - "),P={NO_LANGUAGE_WITH_CUSTOM_TOKENIZER:"Do not pass the language option to create when using a custom tokenizer.",LANGUAGE_NOT_SUPPORTED:`Language "%s" is not supported.
Supported languages are:
- ${E}`,INVALID_STEMMER_FUNCTION_TYPE:"config.stemmer property must be a function.",MISSING_STEMMER:'As of version 1.0.0 @orama/orama does not ship non English stemmers by default. To solve this, please explicitly import and specify the "%s" stemmer from the package @orama/stemmers. See https://docs.orama.com/docs/orama-js/text-analysis/stemming for more information.',CUSTOM_STOP_WORDS_MUST_BE_FUNCTION_OR_ARRAY:"Custom stop words array must only contain strings.",UNSUPPORTED_COMPONENT:'Unsupported component "%s".',COMPONENT_MUST_BE_FUNCTION:'The component "%s" must be a function.',COMPONENT_MUST_BE_FUNCTION_OR_ARRAY_FUNCTIONS:'The component "%s" must be a function or an array of functions.',INVALID_SCHEMA_TYPE:'Unsupported schema type "%s" at "%s". Expected "string", "boolean" or "number" or array of them.',DOCUMENT_ID_MUST_BE_STRING:'Document id must be of type "string". Got "%s" instead.',DOCUMENT_ALREADY_EXISTS:'A document with id "%s" already exists.',DOCUMENT_DOES_NOT_EXIST:'A document with id "%s" does not exists.',MISSING_DOCUMENT_PROPERTY:'Missing searchable property "%s".',INVALID_DOCUMENT_PROPERTY:'Invalid document property "%s": expected "%s", got "%s"',UNKNOWN_INDEX:'Invalid property name "%s". Expected a wildcard string ("*") or array containing one of the following properties: %s',INVALID_BOOST_VALUE:"Boost value must be a number greater than, or less than 0.",INVALID_FILTER_OPERATION:"You can only use one operation per filter, you requested %d.",SCHEMA_VALIDATION_FAILURE:'Cannot insert document due schema validation failure on "%s" property.',INVALID_SORT_SCHEMA_TYPE:'Unsupported sort schema type "%s" at "%s". Expected "string" or "number".',CANNOT_SORT_BY_ARRAY:'Cannot configure sort for "%s" because it is an array (%s).',UNABLE_TO_SORT_ON_UNKNOWN_FIELD:'Unable to sort on unknown field "%s". Allowed fields: %s',SORT_DISABLED:"Sort is disabled. Please read the documentation at https://docs.orama.com/docs/orama-js for more information.",UNKNOWN_GROUP_BY_PROPERTY:'Unknown groupBy property "%s".',INVALID_GROUP_BY_PROPERTY:'Invalid groupBy property "%s". Allowed types: "%s", but given "%s".',UNKNOWN_FILTER_PROPERTY:'Unknown filter property "%s".',UNKNOWN_VECTOR_PROPERTY:'Unknown vector property "%s". Make sure the property exists in the schema and is configured as a vector.',INVALID_VECTOR_SIZE:'Vector size must be a number greater than 0. Got "%s" instead.',INVALID_VECTOR_VALUE:'Vector value must be a number greater than 0. Got "%s" instead.',INVALID_INPUT_VECTOR:`Property "%s" was declared as a %s-dimensional vector, but got a %s-dimensional vector instead.
Input vectors must be of the size declared in the schema, as calculating similarity between vectors of different sizes can lead to unexpected results.`,WRONG_SEARCH_PROPERTY_TYPE:'Property "%s" is not searchable. Only "string" properties are searchable.',FACET_NOT_SUPPORTED:'Facet doens\'t support the type "%s".',INVALID_DISTANCE_SUFFIX:'Invalid distance suffix "%s". Valid suffixes are: cm, m, km, mi, yd, ft.',INVALID_SEARCH_MODE:'Invalid search mode "%s". Valid modes are: "fulltext", "vector", "hybrid".',MISSING_VECTOR_AND_SECURE_PROXY:"No vector was provided and no secure proxy was configured. Please provide a vector or configure an Orama Secure Proxy to perform hybrid search.",MISSING_TERM:'"term" is a required parameter when performing hybrid search. Please provide a search term.',INVALID_VECTOR_INPUT:'Invalid "vector" property. Expected an object with "value" and "property" properties, but got "%s" instead.',PLUGIN_CRASHED:"A plugin crashed during initialization. Please check the error message for more information:",PLUGIN_SECURE_PROXY_NOT_FOUND:`Could not find '@orama/secure-proxy-plugin' installed in your Orama instance.
Please install it before proceeding with creating an answer session.
Read more at https://docs.orama.com/docs/orama-js/plugins/plugin-secure-proxy#plugin-secure-proxy
`,PLUGIN_SECURE_PROXY_MISSING_CHAT_MODEL:`Could not find a chat model defined in the secure proxy plugin configuration.
Please provide a chat model before proceeding with creating an answer session.
Read more at https://docs.orama.com/docs/orama-js/plugins/plugin-secure-proxy#plugin-secure-proxy
`,ANSWER_SESSION_LAST_MESSAGE_IS_NOT_ASSISTANT:"The last message in the session is not an assistant message. Cannot regenerate non-assistant messages.",PLUGIN_COMPONENT_CONFLICT:'The component "%s" is already defined. The plugin "%s" is trying to redefine it.'};function k(e,...t){let r=Error(function(e,...t){return e.replace(/%(?:(?<position>\d+)\$)?(?<width>-?\d*\.?\d*)(?<type>[dfs])/g,function(...e){let{width:r,type:n,position:o}=e[e.length-1],i=o?t[Number.parseInt(o)-1]:t.shift(),s=""===r?0:Number.parseInt(r);switch(n){case"d":return i.toString().padStart(s,"0");case"f":{let e=i,[t,n]=r.split(".").map(e=>Number.parseFloat(e));return"number"==typeof n&&n>=0&&(e=e.toFixed(n)),"number"==typeof t&&t>=0?e.toString().padStart(s,"0"):e.toString()}case"s":return s<0?i.toString().padEnd(-s," "):i.toString().padStart(s," ");default:return i}})}(P[e]??`Unsupported Orama Error code: ${e}`,...t));return r.code=e,"captureStackTrace"in Error.prototype&&Error.captureStackTrace(r),r}function R(e){return{raw:Number(e),formatted:p(e)}}function M(e){if(e.id){if("string"!=typeof e.id)throw k("DOCUMENT_ID_MUST_BE_STRING",typeof e.id);return e.id}return m()}let x={string:!1,number:!1,boolean:!1,enum:!1,geopoint:!1,"string[]":!0,"number[]":!0,"boolean[]":!0,"enum[]":!0},C={"string[]":"string","number[]":"number","boolean[]":"boolean","enum[]":"enum"};function U(e){return"string"==typeof e&&/^vector\[\d+\]$/.test(e)}function z(e){return"string"==typeof e&&x[e]}function L(e){let t=Number(e.slice(7,-1));switch(!0){case isNaN(t):throw k("INVALID_VECTOR_VALUE",e);case t<=0:throw k("INVALID_VECTOR_SIZE",e);default:return t}}function B(e){return{internalIdToId:e.internalIdToId}}function V(e,t){let{internalIdToId:r}=t;e.internalDocumentIDStore.idToInternalId.clear(),e.internalDocumentIDStore.internalIdToId=[];let n=r.length;for(let t=0;t<n;t++){let n=r[t];e.internalDocumentIDStore.idToInternalId.set(n,t+1),e.internalDocumentIDStore.internalIdToId.push(n)}}function j(e,t){if("string"==typeof t){let r=e.idToInternalId.get(t);if(r)return r;let n=e.idToInternalId.size+1;return e.idToInternalId.set(t,n),e.internalIdToId.push(t),n}return t>e.internalIdToId.length?j(e,t.toString()):t}function W(e,t){if(e.internalIdToId.length<t)throw Error(`Invalid internalId ${t}`);return e.internalIdToId[t-1]}function F(e,t){return{sharedInternalDocumentStore:t,docs:{},count:0}}function $(e,t){let r=j(e.sharedInternalDocumentStore,t);return e.docs[r]}function G(e,t){let r=t.length,n=Array.from({length:r});for(let o=0;o<r;o++){let r=j(e.sharedInternalDocumentStore,t[o]);n[o]=e.docs[r]}return n}function J(e){return e.docs}function Y(e,t,r,n){return void 0===e.docs[r]&&(e.docs[r]=n,e.count++,!0)}function K(e,t){let r=j(e.sharedInternalDocumentStore,t);return void 0!==e.docs[r]&&(delete e.docs[r],e.count--,!0)}function H(e){return e.count}function q(e,t){return{docs:t.docs,count:t.count,sharedInternalDocumentStore:e}}function X(e){return{docs:e.docs,count:e.count}}let Z=["beforeInsert","afterInsert","beforeRemove","afterRemove","beforeUpdate","afterUpdate","beforeUpsert","afterUpsert","beforeSearch","afterSearch","beforeInsertMultiple","afterInsertMultiple","beforeRemoveMultiple","afterRemoveMultiple","beforeUpdateMultiple","afterUpdateMultiple","beforeUpsertMultiple","afterUpsertMultiple","beforeLoad","afterLoad","afterCreate"],Q=["tokenizer","index","documentsStore","sorter","pinning"],ee=["validateSchema","getDocumentIndexId","getDocumentProperties","formatElapsedTime"];function et(e,t,r,n,o){if(e.some(T))return(async()=>{for(let i of e)await i(t,r,n,o)})();for(let i of e)i(t,r,n,o)}function er(e,t,r,n){if(e.some(T))return(async()=>{for(let o of e)await o(t,r,n)})();for(let o of e)o(t,r,n)}class en{k;v;l=null;r=null;h=1;constructor(e,t){this.k=e,this.v=new Set(t)}updateHeight(){this.h=Math.max(en.getHeight(this.l),en.getHeight(this.r))+1}static getHeight(e){return e?e.h:0}getBalanceFactor(){return en.getHeight(this.l)-en.getHeight(this.r)}rotateLeft(){let e=this.r;return this.r=e.l,e.l=this,this.updateHeight(),e.updateHeight(),e}rotateRight(){let e=this.l;return this.l=e.r,e.r=this,this.updateHeight(),e.updateHeight(),e}toJSON(){return{k:this.k,v:Array.from(this.v),l:this.l?this.l.toJSON():null,r:this.r?this.r.toJSON():null,h:this.h}}static fromJSON(e){let t=new en(e.k,e.v);return t.l=e.l?en.fromJSON(e.l):null,t.r=e.r?en.fromJSON(e.r):null,t.h=e.h,t}}class eo{root=null;insertCount=0;constructor(e,t){void 0!==e&&void 0!==t&&(this.root=new en(e,t))}insert(e,t,r=1e3){this.root=this.insertNode(this.root,e,t,r)}insertMultiple(e,t,r=1e3){for(let n of t)this.insert(e,n,r)}rebalance(){this.root&&(this.root=this.rebalanceNode(this.root))}toJSON(){return{root:this.root?this.root.toJSON():null,insertCount:this.insertCount}}static fromJSON(e){let t=new eo;return t.root=e.root?en.fromJSON(e.root):null,t.insertCount=e.insertCount||0,t}insertNode(e,t,r,n){if(null===e)return new en(t,[r]);let o=[],i=e,s=null;for(;null!==i;)if(o.push({parent:s,node:i}),t<i.k)if(null===i.l){i.l=new en(t,[r]),o.push({parent:i,node:i.l});break}else s=i,i=i.l;else if(!(t>i.k))return i.v.add(r),e;else if(null===i.r){i.r=new en(t,[r]),o.push({parent:i,node:i.r});break}else s=i,i=i.r;let l=!1;this.insertCount++%n==0&&(l=!0);for(let t=o.length-1;t>=0;t--){let{parent:r,node:n}=o[t];if(n.updateHeight(),l){let t=this.rebalanceNode(n);r?r.l===n?r.l=t:r.r===n&&(r.r=t):e=t}}return e}rebalanceNode(e){let t=e.getBalanceFactor();if(t>1){if(e.l&&e.l.getBalanceFactor()>=0)return e.rotateRight();else if(e.l)return e.l=e.l.rotateLeft(),e.rotateRight()}if(t<-1){if(e.r&&0>=e.r.getBalanceFactor())return e.rotateLeft();else if(e.r)return e.r=e.r.rotateRight(),e.rotateLeft()}return e}find(e){let t=this.findNodeByKey(e);return t?t.v:null}contains(e){return null!==this.find(e)}getSize(){let e=0,t=[],r=this.root;for(;r||t.length>0;){for(;r;)t.push(r),r=r.l;r=t.pop(),e++,r=r.r}return e}isBalanced(){if(!this.root)return!0;let e=[this.root];for(;e.length>0;){let t=e.pop();if(Math.abs(t.getBalanceFactor())>1)return!1;t.l&&e.push(t.l),t.r&&e.push(t.r)}return!0}remove(e){this.root=this.removeNode(this.root,e)}removeDocument(e,t){let r=this.findNodeByKey(e);r&&(1===r.v.size?this.root=this.removeNode(this.root,e):r.v=new Set([...r.v.values()].filter(e=>e!==t)))}findNodeByKey(e){let t=this.root;for(;t;)if(e<t.k)t=t.l;else{if(!(e>t.k))return t;t=t.r}return null}removeNode(e,t){if(null===e)return null;let r=[],n=e;for(;null!==n&&n.k!==t;)r.push(n),n=t<n.k?n.l:n.r;if(null===n)return e;if(null===n.l||null===n.r){let t=n.l?n.l:n.r;if(0===r.length)e=t;else{let e=r[r.length-1];e.l===n?e.l=t:e.r=t}}else{let e=n,t=n.r;for(;null!==t.l;)e=t,t=t.l;n.k=t.k,n.v=t.v,e.l===t?e.l=t.r:e.r=t.r,n=e}r.push(n);for(let t=r.length-1;t>=0;t--){let n=r[t];n.updateHeight();let o=this.rebalanceNode(n);if(t>0){let e=r[t-1];e.l===n?e.l=o:e.r===n&&(e.r=o)}else e=o}return e}rangeSearch(e,t){let r=new Set,n=[],o=this.root;for(;o||n.length>0;){for(;o;)n.push(o),o=o.l;if((o=n.pop()).k>=e&&o.k<=t)for(let e of o.v)r.add(e);if(o.k>t)break;o=o.r}return r}greaterThan(e,t=!1){let r=new Set,n=[],o=this.root;for(;o||n.length>0;){for(;o;)n.push(o),o=o.r;if(o=n.pop(),t&&o.k>=e||!t&&o.k>e)for(let e of o.v)r.add(e);else if(o.k<=e)break;o=o.l}return r}lessThan(e,t=!1){let r=new Set,n=[],o=this.root;for(;o||n.length>0;){for(;o;)n.push(o),o=o.l;if(o=n.pop(),t&&o.k<=e||!t&&o.k<e)for(let e of o.v)r.add(e);else if(o.k>e)break;o=o.r}return r}}class ei{numberToDocumentId;constructor(){this.numberToDocumentId=new Map}insert(e,t){this.numberToDocumentId.has(e)?this.numberToDocumentId.get(e).add(t):this.numberToDocumentId.set(e,new Set([t]))}find(e){let t=this.numberToDocumentId.get(e);return t?Array.from(t):null}remove(e){this.numberToDocumentId.delete(e)}removeDocument(e,t){let r=this.numberToDocumentId.get(t);r&&(r.delete(e),0===r.size&&this.numberToDocumentId.delete(t))}contains(e){return this.numberToDocumentId.has(e)}getSize(){let e=0;for(let t of this.numberToDocumentId.values())e+=t.size;return e}filter(e){let t=Object.keys(e);if(1!==t.length)throw Error("Invalid operation");let r=t[0];switch(r){case"eq":{let t=e[r],n=this.numberToDocumentId.get(t);return n?Array.from(n):[]}case"in":{let t=e[r],n=new Set;for(let e of t){let t=this.numberToDocumentId.get(e);if(t)for(let e of t)n.add(e)}return Array.from(n)}case"nin":{let t=new Set(e[r]),n=new Set;for(let[e,r]of this.numberToDocumentId.entries())if(!t.has(e))for(let e of r)n.add(e);return Array.from(n)}default:throw Error("Invalid operation")}}filterArr(e){let t=Object.keys(e);if(1!==t.length)throw Error("Invalid operation");let r=t[0];switch(r){case"containsAll":{let t=e[r].map(e=>this.numberToDocumentId.get(e)??new Set);if(0===t.length)return[];return Array.from(t.reduce((e,t)=>new Set([...e].filter(e=>t.has(e)))))}case"containsAny":{let t=e[r].map(e=>this.numberToDocumentId.get(e)??new Set);if(0===t.length)return[];return Array.from(t.reduce((e,t)=>new Set([...e,...t])))}default:throw Error("Invalid operation")}}static fromJSON(e){if(!e.numberToDocumentId)throw Error("Invalid Flat Tree JSON");let t=new ei;for(let[r,n]of e.numberToDocumentId)t.numberToDocumentId.set(r,new Set(n));return t}toJSON(){return{numberToDocumentId:Array.from(this.numberToDocumentId.entries()).map(([e,t])=>[e,Array.from(t)])}}}function es(e,t,r){let n=function(e,t,r){if(r<0)return -1;if(e===t)return 0;let n=e.length,o=t.length;if(0===n)return o<=r?o:-1;if(0===o)return n<=r?n:-1;let i=Math.abs(n-o);if(e.startsWith(t))return i<=r?i:-1;if(t.startsWith(e))return 0;if(i>r)return -1;let s=[];for(let e=0;e<=n;e++){s[e]=[e];for(let t=1;t<=o;t++)s[e][t]=0===e?t:0}for(let i=1;i<=n;i++){let n=1/0;for(let r=1;r<=o;r++)e[i-1]===t[r-1]?s[i][r]=s[i-1][r-1]:s[i][r]=Math.min(s[i-1][r]+1,s[i][r-1]+1,s[i-1][r-1]+1),n=Math.min(n,s[i][r]);if(n>r)return -1}return s[n][o]<=r?s[n][o]:-1}(e,t,r);return{distance:n,isBounded:n>=0}}class el{k;s;c=new Map;d=new Set;e;w="";constructor(e,t,r){this.k=e,this.s=t,this.e=r}updateParent(e){this.w=e.w+this.s}addDocument(e){this.d.add(e)}removeDocument(e){return this.d.delete(e)}findAllWords(e,t,r,n){let o=[this];for(;o.length>0;){let i=o.pop();if(i.e){let{w:o,d:s}=i;if(r&&o!==t)continue;if(null!==y(e,o))if(n){if(!(Math.abs(t.length-o.length)<=n)||!es(t,o,n).isBounded)continue;e[o]=[]}else e[o]=[];if(null!=y(e,o)&&s.size>0){let t=e[o];for(let e of s)t.includes(e)||t.push(e)}}i.c.size>0&&o.push(...i.c.values())}return e}insert(e,t){let r=this,n=0,o=e.length;for(;n<o;){let i=e[n],s=r.c.get(i);if(s){let i=s.s,l=i.length,a=0;for(;a<l&&n+a<o&&i[a]===e[n+a];)a++;if(a===l){if(r=s,(n+=a)===o){s.e||(s.e=!0),s.addDocument(t);return}continue}let u=i.slice(0,a),c=i.slice(a),f=e.slice(n+a),d=new el(u[0],u,!1);if(r.c.set(u[0],d),d.updateParent(r),s.s=c,s.k=c[0],d.c.set(c[0],s),s.updateParent(d),f){let e=new el(f[0],f,!0);e.addDocument(t),d.c.set(f[0],e),e.updateParent(d)}else d.e=!0,d.addDocument(t);return}{let o=new el(i,e.slice(n),!0);o.addDocument(t),r.c.set(i,o),o.updateParent(r);return}}r.e||(r.e=!0),r.addDocument(t)}_findLevenshtein(e,t,r,n,o){let i=[{node:this,index:t,tolerance:r}];for(;i.length>0;){let{node:t,index:r,tolerance:s}=i.pop();if(t.w.startsWith(e)){t.findAllWords(o,e,!1,0);continue}if(s<0)continue;if(t.e){let{w:r,d:i}=t;if(r&&(es(e,r,n).isBounded&&(o[r]=[]),void 0!==y(o,r)&&i.size>0)){let e=new Set(o[r]);for(let t of i)e.add(t);o[r]=Array.from(e)}}if(r>=e.length)continue;let l=e[r];if(t.c.has(l)){let e=t.c.get(l);i.push({node:e,index:r+1,tolerance:s})}for(let[e,n]of(i.push({node:t,index:r+1,tolerance:s-1}),t.c))i.push({node:n,index:r,tolerance:s-1}),e!==l&&i.push({node:n,index:r+1,tolerance:s-1})}}find(e){let{term:t,exact:r,tolerance:n}=e;if(n&&!r){let e={};return this._findLevenshtein(t,0,n,n,e),e}{let e=this,o=0,i=t.length;for(;o<i;){let s=t[o],l=e.c.get(s);if(!l)return{};{let s=l.s,a=s.length,u=0;for(;u<a&&o+u<i&&s[u]===t[o+u];)u++;if(u===a)e=l,o+=u;else{if(o+u!==i||u!==i-o||r)return{};let e={};return l.findAllWords(e,t,r,n),e}}}let s={};return e.findAllWords(s,t,r,n),s}}contains(e){let t=this,r=0,n=e.length;for(;r<n;){let o=e[r],i=t.c.get(o);if(!i)return!1;{let o=i.s,s=o.length,l=0;for(;l<s&&r+l<n&&o[l]===e[r+l];)l++;if(l<s)return!1;r+=s,t=i}}return!0}removeWord(e){if(!e)return!1;let t=this,r=e.length,n=[];for(let o=0;o<r;o++){let r=e[o];if(!t.c.has(r))return!1;{let e=t.c.get(r);n.push({parent:t,character:r}),o+=e.s.length-1,t=e}}for(t.d.clear(),t.e=!1;n.length>0&&0===t.c.size&&!t.e&&0===t.d.size;){let{parent:e,character:r}=n.pop();e.c.delete(r),t=e}return!0}removeDocumentByWord(e,t,r=!0){if(!e)return!0;let n=this,o=e.length;for(let i=0;i<o;i++){let o=e[i];if(!n.c.has(o))return!1;{let s=n.c.get(o);i+=s.s.length-1,n=s,r&&n.w!==e||n.removeDocument(t)}}return!0}static getCommonPrefix(e,t){let r=Math.min(e.length,t.length),n=0;for(;n<r&&e.charCodeAt(n)===t.charCodeAt(n);)n++;return e.slice(0,n)}toJSON(){return{w:this.w,s:this.s,e:this.e,k:this.k,d:Array.from(this.d),c:Array.from(this.c?.entries())?.map(([e,t])=>[e,t.toJSON()])}}static fromJSON(e){let t=new el(e.k,e.s,e.e);return t.w=e.w,t.d=new Set(e.d),t.c=new Map(e?.c?.map(([e,t])=>[e,el.fromJSON(t)])||[]),t}}class ea extends el{constructor(){super("","",!1)}static fromJSON(e){let t=new ea;return t.w=e.w,t.s=e.s,t.e=e.e,t.k=e.k,t.d=new Set(e.d),t.c=new Map(e?.c?.map(([e,t])=>[e,el.fromJSON(t)])||[]),t}toJSON(){return super.toJSON()}}class eu{point;docIDs;left;right;parent;constructor(e,t){this.point=e,this.docIDs=new Set(t),this.left=null,this.right=null,this.parent=null}toJSON(){return{point:this.point,docIDs:Array.from(this.docIDs),left:this.left?this.left.toJSON():null,right:this.right?this.right.toJSON():null}}static fromJSON(e,t=null){let r=new eu(e.point,e.docIDs);return r.parent=t,e.left&&(r.left=eu.fromJSON(e.left,r)),e.right&&(r.right=eu.fromJSON(e.right,r)),r}}class ec{root;nodeMap;constructor(){this.root=null,this.nodeMap=new Map}getPointKey(e){return`${e.lon},${e.lat}`}insert(e,t){let r=this.getPointKey(e),n=this.nodeMap.get(r);if(n)return void t.forEach(e=>n.docIDs.add(e));let o=new eu(e,t);if(this.nodeMap.set(r,o),null==this.root){this.root=o;return}let i=this.root,s=0;for(;;){if(0==s%2)if(e.lon<i.point.lon){if(null==i.left){i.left=o,o.parent=i;return}i=i.left}else{if(null==i.right){i.right=o,o.parent=i;return}i=i.right}else if(e.lat<i.point.lat){if(null==i.left){i.left=o,o.parent=i;return}i=i.left}else{if(null==i.right){i.right=o,o.parent=i;return}i=i.right}s++}}contains(e){let t=this.getPointKey(e);return this.nodeMap.has(t)}getDocIDsByCoordinates(e){let t=this.getPointKey(e),r=this.nodeMap.get(t);return r?Array.from(r.docIDs):null}removeDocByID(e,t){let r=this.getPointKey(e),n=this.nodeMap.get(r);n&&(n.docIDs.delete(t),0===n.docIDs.size&&(this.nodeMap.delete(r),this.deleteNode(n)))}deleteNode(e){let t=e.parent,r=e.left?e.left:e.right;r&&(r.parent=t),t?t.left===e?t.left=r:t.right===e&&(t.right=r):(this.root=r,this.root&&(this.root.parent=null))}searchByRadius(e,t,r=!0,n="asc",o=!1){let i=o?ec.vincentyDistance:ec.haversineDistance,s=[{node:this.root,depth:0}],l=[];for(;s.length>0;){let{node:n,depth:o}=s.pop();if(null==n)continue;let a=i(e,n.point);(r?a<=t:a>t)&&l.push({point:n.point,docIDs:Array.from(n.docIDs)}),null!=n.left&&s.push({node:n.left,depth:o+1}),null!=n.right&&s.push({node:n.right,depth:o+1})}return n&&l.sort((t,r)=>{let o=i(e,t.point),s=i(e,r.point);return"asc"===n.toLowerCase()?o-s:s-o}),l}searchByPolygon(e,t=!0,r=null,n=!1){let o=[{node:this.root,depth:0}],i=[];for(;o.length>0;){let{node:r,depth:n}=o.pop();if(null==r)continue;null!=r.left&&o.push({node:r.left,depth:n+1}),null!=r.right&&o.push({node:r.right,depth:n+1});let s=ec.isPointInPolygon(e,r.point);(s&&t||!s&&!t)&&i.push({point:r.point,docIDs:Array.from(r.docIDs)})}let s=ec.calculatePolygonCentroid(e);if(r){let e=n?ec.vincentyDistance:ec.haversineDistance;i.sort((t,n)=>{let o=e(s,t.point),i=e(s,n.point);return"asc"===r.toLowerCase()?o-i:i-o})}return i}toJSON(){return{root:this.root?this.root.toJSON():null}}static fromJSON(e){let t=new ec;return e.root&&(t.root=eu.fromJSON(e.root),t.buildNodeMap(t.root)),t}buildNodeMap(e){if(null==e)return;let t=this.getPointKey(e.point);this.nodeMap.set(t,e),e.left&&this.buildNodeMap(e.left),e.right&&this.buildNodeMap(e.right)}static calculatePolygonCentroid(e){let t=0,r=0,n=0,o=e.length;for(let i=0,s=o-1;i<o;s=i++){let o=e[i].lon,l=e[i].lat,a=e[s].lon,u=e[s].lat,c=o*u-a*l;t+=c,r+=(o+a)*c,n+=(l+u)*c}let i=6*(t/=2);return{lon:r/=i,lat:n/=i}}static isPointInPolygon(e,t){let r=!1,n=t.lon,o=t.lat,i=e.length;for(let t=0,s=i-1;t<i;s=t++){let i=e[t].lon,l=e[t].lat,a=e[s].lon,u=e[s].lat;l>o!=u>o&&n<(a-i)*(o-l)/(u-l)+i&&(r=!r)}return r}static haversineDistance(e,t){let r=Math.PI/180,n=e.lat*r,o=t.lat*r,i=(t.lat-e.lat)*r,s=(t.lon-e.lon)*r,l=Math.sin(i/2)*Math.sin(i/2)+Math.cos(n)*Math.cos(o)*Math.sin(s/2)*Math.sin(s/2);return 2*Math.atan2(Math.sqrt(l),Math.sqrt(1-l))*6371e3}static vincentyDistance(e,t){let r,n,o,i,s,l,a,u=1/298.257223563,c=(1-1/298.257223563)*6378137,f=Math.PI/180,d=e.lat*f,h=t.lat*f,p=(t.lon-e.lon)*f,g=Math.atan((1-u)*Math.tan(d)),m=Math.atan((1-u)*Math.tan(h)),y=Math.sin(g),b=Math.cos(g),S=Math.sin(m),I=Math.cos(m),w=p,O=1e3;do{let e=Math.sin(w),t=Math.cos(w);if(0===(n=Math.sqrt(I*e*(I*e)+(b*S-y*I*t)*(b*S-y*I*t))))return 0;i=Math.atan2(n,o=y*S+b*I*t),isNaN(a=o-2*y*S/(l=1-(s=b*I*e/n)*s))&&(a=0);let c=u/16*l*(4+u*(4-3*l));r=w,w=p+(1-c)*u*s*(i+c*n*(a+c*o*(-1+2*a*a)))}while(Math.abs(w-r)>1e-12&&--O>0)if(0===O)return NaN;let N=l*(0x24ffb2985f71-c*c)/(c*c),T=1+N/16384*(4096+N*(-768+N*(320-175*N))),v=N/1024*(256+N*(-128+N*(74-47*N)));return c*T*(i-v*n*(a+v/4*(o*(-1+2*a*a)-v/6*a*(-3+4*n*n)*(-3+4*a*a))))}}class ef{true;false;constructor(){this.true=new Set,this.false=new Set}insert(e,t){t?this.true.add(e):this.false.add(e)}delete(e,t){t?this.true.delete(e):this.false.delete(e)}getSize(){return this.true.size+this.false.size}toJSON(){return{true:Array.from(this.true),false:Array.from(this.false)}}static fromJSON(e){let t=new ef;return t.true=new Set(e.true),t.false=new Set(e.false),t}}class ed{size;vectors=new Map;constructor(e){this.size=e}add(e,t){t instanceof Float32Array||(t=new Float32Array(t));let r=eh(t,this.size);this.vectors.set(e,[r,t])}remove(e){this.vectors.delete(e)}find(e,t,r){return e instanceof Float32Array||(e=new Float32Array(e)),function(e,t,r,n,o){let i=eh(e,n),s=[];for(let l of t||r.keys()){let t=r.get(l);if(!t)continue;let a=t[0],u=t[1],c=0;for(let t=0;t<n;t++)c+=e[t]*u[t];let f=c/(i*a);f>=o&&s.push([l,f])}return s}(e,r,this.vectors,this.size,t)}toJSON(){let e=[];for(let[t,[r,n]]of this.vectors)e.push([t,[r,Array.from(n)]]);return{size:this.size,vectors:e}}static fromJSON(e){let t=new ed(e.size);for(let[r,[n,o]]of e.vectors)t.vectors.set(r,[n,new Float32Array(o)]);return t}}function eh(e,t){let r=0;for(let n=0;n<t;n++)r+=e[n]*e[n];return Math.sqrt(r)}function ep(e,t,r,n,o){let i=j(e.sharedInternalDocumentStore,r);e.avgFieldLength[t]=((e.avgFieldLength[t]??0)*(o-1)+n.length)/o,e.fieldLengths[t][i]=n.length,e.frequencies[t][i]={}}function eg(e,t,r,n,o){let i=0;for(let e of n)e===o&&i++;let s=j(e.sharedInternalDocumentStore,r),l=i/n.length;e.frequencies[t][s][o]=l,o in e.tokenOccurrences[t]||(e.tokenOccurrences[t][o]=0),e.tokenOccurrences[t][o]=(e.tokenOccurrences[t][o]??0)+1}function em(e,t,r,n){let o=j(e.sharedInternalDocumentStore,r);n>1?e.avgFieldLength[t]=(e.avgFieldLength[t]*n-e.fieldLengths[t][o])/(n-1):e.avgFieldLength[t]=void 0,e.fieldLengths[t][o]=void 0,e.frequencies[t][o]=void 0}function ey(e,t,r){e.tokenOccurrences[t][r]--}function eb(e,t,r,n,o,i,s,l,a,u,c){if(U(s)){var f,d,h,p;return f=t,d=r,h=i,p=o,void f.vectorIndexes[d].node.add(p,h)}let g=n=>{let{type:i,node:s}=t.indexes[r];switch(i){case"Bool":s[n?"true":"false"].add(o);break;case"AVL":{let e=c?.avlRebalanceThreshold??1;s.insert(n,o,e);break}case"Radix":{let i=a.tokenize(n,l,r,!1);for(let n of(e.insertDocumentScoreParameters(t,r,o,i,u),i))e.insertTokenScoreParameters(t,r,o,i,n),s.insert(n,o);break}case"Flat":s.insert(n,o);break;case"BKD":s.insert(n,[o])}};if(!z(s))return g(i);let m=i.length;for(let e=0;e<m;e++)g(i[e])}function eS(e,t,r,n,o,i,s,l,a,u){if(U(s))return t.vectorIndexes[r].node.remove(o),!0;let{type:c,node:f}=t.indexes[r];switch(c){case"AVL":return f.removeDocument(i,o),!0;case"Bool":return f[i?"true":"false"].delete(o),!0;case"Radix":{let s=a.tokenize(i,l,r);for(let i of(e.removeDocumentScoreParameters(t,r,n,u),s))e.removeTokenScoreParameters(t,r,i),f.removeDocumentByWord(i,o);return!0}case"Flat":return f.removeDocument(o,i),!0;case"BKD":return f.removeDocByID(i,o),!1}}function eI(e,t,r,n,o,i,s,l,a,u){if(!z(s))return eS(e,t,r,n,o,i,s,l,a,u);let c=C[s],f=i.length;for(let s=0;s<f;s++)eS(e,t,r,n,o,i[s],c,l,a,u);return!0}function ew(e,t,r,n,o,i,s,l,a,u){let c=Array.from(n),f=e.avgFieldLength[t],d=e.fieldLengths[t],h=e.tokenOccurrences[t],p=e.frequencies[t],g="number"==typeof h[r]?h[r]??0:0,m=c.length;for(let e=0;e<m;e++){let n=c[e];if(a&&!a.has(n))continue;u.has(n)||u.set(n,new Map);let h=u.get(n);h.set(t,(h.get(t)||0)+1);let m=function(e,t,r,n,o,{k:i,b:s,d:l}){return Math.log(1+(r-t+.5)/(t+.5))*(l+e*(i+1))/(e+i*(1-s+s*n/o))}(p?.[n]?.[r]??0,g,o,d[n],f,i);s.has(n)?s.set(n,s.get(n)+m*l):s.set(n,m*l)}}function eO(e,t,r,n,o,i,s,l,a,u,c,f=0){let d=r.tokenize(t,n),h=d.length||1,p=new Map,g=new Map,m=new Map;for(let r of o){if(!(r in e.indexes))continue;let n=e.indexes[r],{type:o}=n;if("Radix"!==o)throw k("WRONG_SEARCH_PROPERTY_TYPE",r);let f=l[r]??1;if(f<=0)throw k("INVALID_BOOST_VALUE",f);0!==d.length||t||d.push("");let h=d.length;for(let t=0;t<h;t++){let o=d[t],l=n.node.find({term:o,exact:i,tolerance:s}),h=Object.keys(l);h.length>0&&g.set(o,!0);let y=h.length;for(let t=0;t<y;t++){let n=h[t],o=l[n];ew(e,r,n,o,u,a,m,f,c,p)}}}let y=Array.from(m.entries()).map(([e,t])=>[e,t]).sort((e,t)=>t[1]-e[1]);if(0===y.length)return[];if(1===f)return y;if(0===f){if(1===h)return y;for(let e of d)if(!g.get(e))return[];return y.filter(([e])=>{let t=p.get(e);return!!t&&Array.from(t.values()).some(e=>e===h)})}let b=y.filter(([e])=>{let t=p.get(e);return!!t&&Array.from(t.values()).some(e=>e===h)});if(b.length>0){let e=y.filter(([e])=>!b.some(([t])=>t===e)),t=Math.ceil(e.length*f);return[...b,...e.slice(0,t)]}return y}function eN(e){return e.searchableProperties}function eT(e){return e.searchablePropertiesWithTypes}function ev(e,t){let{indexes:r,vectorIndexes:n,searchableProperties:o,searchablePropertiesWithTypes:i,frequencies:s,tokenOccurrences:l,avgFieldLength:a,fieldLengths:u}=t,c={},f={};for(let e of Object.keys(r)){let{node:t,type:n,isArray:o}=r[e];switch(n){case"Radix":c[e]={type:"Radix",node:ea.fromJSON(t),isArray:o};break;case"Flat":c[e]={type:"Flat",node:ei.fromJSON(t),isArray:o};break;case"AVL":c[e]={type:"AVL",node:eo.fromJSON(t),isArray:o};break;case"BKD":c[e]={type:"BKD",node:ec.fromJSON(t),isArray:o};break;case"Bool":c[e]={type:"Bool",node:ef.fromJSON(t),isArray:o};break;default:c[e]=r[e]}}for(let e of Object.keys(n))f[e]={type:"Vector",isArray:!1,node:ed.fromJSON(n[e])};return{sharedInternalDocumentStore:e,indexes:c,vectorIndexes:f,searchableProperties:o,searchablePropertiesWithTypes:i,frequencies:s,tokenOccurrences:l,avgFieldLength:a,fieldLengths:u}}function e_(e){let{indexes:t,vectorIndexes:r,searchableProperties:n,searchablePropertiesWithTypes:o,frequencies:i,tokenOccurrences:s,avgFieldLength:l,fieldLengths:a}=e,u={};for(let e of Object.keys(r))u[e]=r[e].node.toJSON();let c={};for(let e of Object.keys(t)){let{type:r,node:n,isArray:o}=t[e];"Flat"===r||"Radix"===r||"AVL"===r||"BKD"===r||"Bool"===r?c[e]={type:r,node:n.toJSON(),isArray:o}:(c[e]=t[e],c[e].node=c[e].node.toJSON())}return{indexes:c,vectorIndexes:u,searchableProperties:n,searchablePropertiesWithTypes:o,frequencies:i,tokenOccurrences:s,avgFieldLength:l,fieldLengths:a}}function eD(e,t){e||(e=new Set);let r=t.length;for(let n=0;n<r;n++){let r=t[n].docIDs,o=r.length;for(let t=0;t<o;t++)e.add(r[t])}return e}function eA(e,t,r=!1){let n=r?ec.vincentyDistance:ec.haversineDistance,o=[],i=[];for(let{point:r}of e)i.push(n(t,r));let s=Math.max(...i),l=0;for(let{docIDs:t}of e){let e=s-i[l]+1;for(let r of t)o.push([r,e]);l++}return o.sort((e,t)=>t[1]-e[1]),o}function eE(e,t,r,n){return n?.enabled===!1?{disabled:!0}:function e(t,r,n,o,i){let s={language:t.tokenizer.language,sharedInternalDocumentStore:r,enabled:!0,isSorted:!0,sortableProperties:[],sortablePropertiesWithTypes:{},sorts:{}};for(let[l,a]of Object.entries(n)){let n=`${i}${i?".":""}${l}`;if(!o.includes(n)){if("object"==typeof a&&!Array.isArray(a)){let i=e(t,r,a,o,n);d(s.sortableProperties,i.sortableProperties),s.sorts={...s.sorts,...i.sorts},s.sortablePropertiesWithTypes={...s.sortablePropertiesWithTypes,...i.sortablePropertiesWithTypes};continue}if(!U(a))switch(a){case"boolean":case"number":case"string":s.sortableProperties.push(n),s.sortablePropertiesWithTypes[n]=a,s.sorts[n]={docs:new Map,orderedDocsToRemove:new Map,orderedDocs:[],type:a};break;case"geopoint":case"enum":case"enum[]":case"boolean[]":case"number[]":case"string[]":continue;default:throw k("INVALID_SORT_SCHEMA_TYPE",Array.isArray(a)?"array":a,n)}}}return s}(e,t,r,(n||{}).unsortableProperties||[],"")}function eP(e,t,r,n){if(!e.enabled)return;e.isSorted=!1;let o=j(e.sharedInternalDocumentStore,r),i=e.sorts[t];i.orderedDocsToRemove.has(o)&&eC(e,t),i.docs.set(o,i.orderedDocs.length),i.orderedDocs.push([o,n])}function ek(e){if(!e.isSorted&&e.enabled){for(let t of Object.keys(e.sorts))!function(e,t){let r,n=e.sorts[t];switch(n.type){case"string":r=eR.bind(null,e.language);break;case"number":r=eM.bind(null);break;case"boolean":r=ex.bind(null)}n.orderedDocs.sort(r);let o=n.orderedDocs.length;for(let e=0;e<o;e++){let t=n.orderedDocs[e][0];n.docs.set(t,e)}}(e,t);e.isSorted=!0}}function eR(e,t,r){return t[1].localeCompare(r[1],void 0!==e&&i.includes(e)?n[e]:void 0)}function eM(e,t){return e[1]-t[1]}function ex(e,t){return t[1]?-1:1}function eC(e,t){let r=e.sorts[t];r.orderedDocsToRemove.size&&(r.orderedDocs=r.orderedDocs.filter(e=>!r.orderedDocsToRemove.has(e[0])),r.orderedDocsToRemove.clear())}function eU(e,t,r){if(!e.enabled)return;let n=e.sorts[t],o=j(e.sharedInternalDocumentStore,r);n.docs.get(o)&&(n.docs.delete(o),n.orderedDocsToRemove.set(o,!0))}function ez(e,t,r){if(!e.enabled)throw k("SORT_DISABLED");let n=r.property,o="DESC"===r.order,i=e.sorts[n];if(!i)throw k("UNABLE_TO_SORT_ON_UNKNOWN_FIELD",n,e.sortableProperties.join(", "));return eC(e,n),ek(e),t.sort((t,r)=>{let n=i.docs.get(j(e.sharedInternalDocumentStore,t[0])),s=i.docs.get(j(e.sharedInternalDocumentStore,r[0])),l=void 0!==n,a=void 0!==s;return l||a?l?a?o?s-n:n-s:-1:1:0}),t}function eL(e){return e.enabled?e.sortableProperties:[]}function eB(e){return e.enabled?e.sortablePropertiesWithTypes:{}}function eV(e,t){if(!t.enabled)return{enabled:!1};let r=Object.keys(t.sorts).reduce((e,r)=>{let{docs:n,orderedDocs:o,type:i}=t.sorts[r];return e[r]={docs:new Map(Object.entries(n).map(([e,t])=>[+e,t])),orderedDocsToRemove:new Map,orderedDocs:o,type:i},e},{});return{sharedInternalDocumentStore:e,language:t.language,sortableProperties:t.sortableProperties,sortablePropertiesWithTypes:t.sortablePropertiesWithTypes,sorts:r,enabled:!0,isSorted:t.isSorted}}function ej(e){if(!e.enabled)return{enabled:!1};for(let t of Object.keys(e.sorts))eC(e,t);ek(e);let t=Object.keys(e.sorts).reduce((t,r)=>{let{docs:n,orderedDocs:o,type:i}=e.sorts[r];return t[r]={docs:Object.fromEntries(n.entries()),orderedDocs:o,type:i},t},{});return{language:e.language,sortableProperties:e.sortableProperties,sortablePropertiesWithTypes:e.sortablePropertiesWithTypes,sorts:t,enabled:e.enabled,isSorted:e.isSorted}}let eW=[65,65,65,65,65,65,65,67,69,69,69,69,73,73,73,73,69,78,79,79,79,79,79,null,79,85,85,85,85,89,80,115,97,97,97,97,97,97,97,99,101,101,101,101,105,105,105,105,101,110,111,111,111,111,111,null,111,117,117,117,117,121,112,121,65,97,65,97,65,97,67,99,67,99,67,99,67,99,68,100,68,100,69,101,69,101,69,101,69,101,69,101,71,103,71,103,71,103,71,103,72,104,72,104,73,105,73,105,73,105,73,105,73,105,73,105,74,106,75,107,107,76,108,76,108,76,108,76,108,76,108,78,110,78,110,78,110,110,78,110,79,111,79,111,79,111,79,111,82,114,82,114,82,114,83,115,83,115,83,115,83,115,84,116,84,116,84,116,85,117,85,117,85,117,85,117,85,117,85,117,87,119,89,121,89,90,122,90,122,90,122,115],eF={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},e$={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},eG="[aeiouy]",eJ="[^aeiou][^aeiouy]*",eY=eG+"[aeiou]*",eK="^("+eJ+")?"+eY+eJ,eH="^("+eJ+")?"+eY+eJ+"("+eY+")?$",eq="^("+eJ+")?"+eY+eJ+eY+eJ,eX="^("+eJ+")?"+eG;function eZ(e){let t,r,n,o,i,s;if(e.length<3)return e;let l=e.substring(0,1);if("y"==l&&(e=l.toUpperCase()+e.substring(1)),o=/^(.+?)([^s])s$/,(n=/^(.+?)(ss|i)es$/).test(e)?e=e.replace(n,"$1$2"):o.test(e)&&(e=e.replace(o,"$1$2")),o=/^(.+?)(ed|ing)$/,(n=/^(.+?)eed$/).test(e)){let t=n.exec(e);(n=new RegExp(eK)).test(t[1])&&(n=/.$/,e=e.replace(n,""))}else o.test(e)&&(t=o.exec(e)[1],(o=new RegExp(eX)).test(t)&&(e=t,o=/(at|bl|iz)$/,i=RegExp("([^aeiouylsz])\\1$"),s=RegExp("^"+eJ+eG+"[^aeiouwxy]$"),o.test(e)?e+="e":i.test(e)?(n=/.$/,e=e.replace(n,"")):s.test(e)&&(e+="e")));if((n=/^(.+?)y$/).test(e)){let r=n.exec(e);t=r?.[1],n=new RegExp(eX),t&&n.test(t)&&(e=t+"i")}if((n=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/).test(e)){let o=n.exec(e);t=o?.[1],r=o?.[2],n=new RegExp(eK),t&&n.test(t)&&(e=t+eF[r])}if((n=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/).test(e)){let o=n.exec(e);t=o?.[1],r=o?.[2],n=new RegExp(eK),t&&n.test(t)&&(e=t+e$[r])}if(o=/^(.+?)(s|t)(ion)$/,(n=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/).test(e)){let r=n.exec(e);t=r?.[1],n=new RegExp(eq),t&&n.test(t)&&(e=t)}else if(o.test(e)){let r=o.exec(e);t=r?.[1]??""+r?.[2]??"",(o=new RegExp(eq)).test(t)&&(e=t)}if((n=/^(.+?)e$/).test(e)){let r=n.exec(e);t=r?.[1],n=new RegExp(eq),o=new RegExp(eH),i=RegExp("^"+eJ+eG+"[^aeiouwxy]$"),t&&(n.test(t)||o.test(t)&&!i.test(t))&&(e=t)}return n=/ll$/,o=new RegExp(eq),n.test(e)&&o.test(e)&&(n=/.$/,e=e.replace(n,"")),"y"==l&&(e=l.toLowerCase()+e.substring(1)),e}function eQ(e,t,r=!0){let n=`${this.language}:${e}:${t}`;return r&&this.normalizationCache.has(n)?this.normalizationCache.get(n):this.stopWords?.includes(t)?(r&&this.normalizationCache.set(n,""),""):(this.stemmer&&!this.stemmerSkipProperties.has(e)&&(t=this.stemmer(t)),t=function(e){let t=[];for(let n=0;n<e.length;n++){var r;t[n]=(r=e.charCodeAt(n))<192||r>383?r:eW[r-192]||r}return String.fromCharCode(...t)}(t),r&&this.normalizationCache.set(n,t),t)}function e0(e,t,r,n=!0){let i;if(t&&t!==this.language)throw k("LANGUAGE_NOT_SUPPORTED",t);if("string"!=typeof e)return[e];let s=this.normalizeToken.bind(this,r??"");if(r&&this.tokenizeSkipProperties.has(r))i=[s(e,n)];else{let t=o[this.language];i=e.toLowerCase().split(t).map(e=>s(e,n)).filter(Boolean)}let l=function(e){for(;""===e[e.length-1];)e.pop();for(;""===e[0];)e.shift();return e}(i);return this.allowDuplicates?l:Array.from(new Set(l))}function e1(e={}){let t,r;if(e.language){if(!i.includes(e.language))throw k("LANGUAGE_NOT_SUPPORTED",e.language)}else e.language="english";if(e.stemming||e.stemmer&&!("stemming"in e))if(e.stemmer){if("function"!=typeof e.stemmer)throw k("INVALID_STEMMER_FUNCTION_TYPE");t=e.stemmer}else if("english"===e.language)t=eZ;else throw k("MISSING_STEMMER",e.language);if(!1!==e.stopWords){if(r=[],Array.isArray(e.stopWords))r=e.stopWords;else if("function"==typeof e.stopWords)r=e.stopWords(r);else if(e.stopWords)throw k("CUSTOM_STOP_WORDS_MUST_BE_FUNCTION_OR_ARRAY");if(!Array.isArray(r))throw k("CUSTOM_STOP_WORDS_MUST_BE_FUNCTION_OR_ARRAY");for(let e of r)if("string"!=typeof e)throw k("CUSTOM_STOP_WORDS_MUST_BE_FUNCTION_OR_ARRAY")}let n={tokenize:e0,language:e.language,stemmer:t,stemmerSkipProperties:new Set(e.stemmerSkipProperties?[e.stemmerSkipProperties].flat():[]),tokenizeSkipProperties:new Set(e.tokenizeSkipProperties?[e.tokenizeSkipProperties].flat():[]),stopWords:r,allowDuplicates:!!e.allowDuplicates,normalizeToken:eQ,normalizationCache:new Map};return n.tokenize=e0.bind(n),n.normalizeToken=eQ,n}function e9(e){return{sharedInternalDocumentStore:e,rules:new Map}}function e7(e,t){if(e.rules.has(t.id))throw Error(`PINNING_RULE_ALREADY_EXISTS: A pinning rule with id "${t.id}" already exists. Use updateRule to modify it.`);e.rules.set(t.id,t)}function e5(e,t){if(!e.rules.has(t.id))throw Error(`PINNING_RULE_NOT_FOUND: Cannot update pinning rule with id "${t.id}" because it does not exist. Use addRule to create it.`);e.rules.set(t.id,t)}function e6(e,t){return e.rules.delete(t)}function e2(e,t){return e.rules.get(t)}function e8(e){return Array.from(e.rules.values())}function e3(e,t){if(!t)return[];let r=[];for(let n of e.rules.values())(function(e,t){return!!e&&t.conditions.every(t=>(function(e,t){let r=e.toLowerCase().trim(),n=t.pattern.toLowerCase().trim();switch(t.anchoring){case"is":return r===n;case"starts_with":return r.startsWith(n);case"contains":return r.includes(n);default:return!1}})(e,t))})(t,n)&&r.push(n);return r}function e4(e,t){return{sharedInternalDocumentStore:e,rules:new Map(t?.rules??[])}}function te(e){return{rules:Array.from(e.rules.entries())}}let tt="fulltext";function tr(e,t){return e[1]-t[1]}function tn(e,t){return t[1]-e[1]}function to(e,t,r){let n={},o=t.map(([e])=>e),i=e.documentsStore.getMultiple(e.data.docs,o),s=Object.keys(r),l=e.index.getSearchablePropertiesWithTypes(e.data.index);for(let e of s){let t;if("number"===l[e]){let{ranges:n}=r[e],o=n.length,i=Array.from({length:o});for(let e=0;e<o;e++){let t=n[e];i[e]=[`${t.from}-${t.to}`,0]}t=Object.fromEntries(i)}n[e]={count:0,values:t??{}}}let a=i.length;for(let e=0;e<a;e++){let t=i[e];for(let e of s){let o=e.includes(".")?I(t,e):t[e],i=l[e],s=n[e].values;switch(i){case"number":ti(r[e].ranges,s)(o);break;case"number[]":{let t=new Set,n=ti(r[e].ranges,s,t);for(let e of o)n(e);break}case"boolean":case"enum":case"string":ts(s,i)(o);break;case"boolean[]":case"enum[]":case"string[]":{let e=ts(s,"boolean[]"===i?"boolean":"string",new Set);for(let t of o)e(t);break}default:throw k("FACET_NOT_SUPPORTED",i)}}}for(let e of s){let t=n[e];if(t.count=Object.keys(t.values).length,"string"===l[e]){let n=r[e],o=function(e="desc"){return"asc"===e.toLowerCase()?tr:tn}(n.sort);t.values=Object.fromEntries(Object.entries(t.values).sort(o).slice(n.offset??0,n.limit??10))}}return n}function ti(e,t,r){return n=>{for(let o of e){let e=`${o.from}-${o.to}`;!r?.has(e)&&n>=o.from&&n<=o.to&&(void 0===t[e]?t[e]=1:(t[e]++,r?.add(e)))}}}function ts(e,t,r){let n="boolean"===t?"false":"";return t=>{let o=t?.toString()??n;r?.has(o)||(e[o]=(e[o]??0)+1,r?.add(o))}}let tl={reducer:(e,t,r,n)=>(t[n]=r,t),getInitialValue:e=>Array.from({length:e})},ta=["string","number","boolean"];function tu(e,t,r){let n=r.properties,o=n.length,i=e.index.getSearchablePropertiesWithTypes(e.data.index);for(let e=0;e<o;e++){let t=n[e];if(void 0===i[t])throw k("UNKNOWN_GROUP_BY_PROPERTY",t);if(!ta.includes(i[t]))throw k("INVALID_GROUP_BY_PROPERTY",t,ta.join(", "),i[t])}let s=t.map(([t])=>W(e.internalDocumentIDStore,t)),l=e.documentsStore.getMultiple(e.data.docs,s),a=l.length,u=r.maxResult||Number.MAX_SAFE_INTEGER,c=[],f={};for(let e=0;e<o;e++){let t=n[e],r={property:t,perValue:{}},o=new Set;for(let e=0;e<a;e++){let n=I(l[e],t);if(void 0===n)continue;let i="boolean"!=typeof n?n:""+n,s=r.perValue[i]??{indexes:[],count:0};s.count>=u||(s.indexes.push(e),s.count++,r.perValue[i]=s,o.add(n))}c.push(Array.from(o)),f[t]=r}let h=function e(t,r=0){if(r+1===t.length)return t[r].map(e=>[e]);let n=t[r],o=e(t,r+1),i=[];for(let e of n)for(let t of o){let r=[e];d(r,t),i.push(r)}return i}(c),p=h.length,g=[];for(let e=0;e<p;e++){let t=h[e],r=t.length,o={values:[],indexes:[]},i=[];for(let e=0;e<r;e++){let r=t[e],s=n[e];i.push(f[s].perValue["boolean"!=typeof r?r:""+r].indexes),o.values.push(r)}o.indexes=(function(e){if(0===e.length)return[];if(1===e.length)return e[0];for(let t=1;t<e.length;t++)if(e[t].length<e[0].length){let r=e[0];e[0]=e[t],e[t]=r}let t=new Map;for(let r of e[0])t.set(r,1);for(let r=1;r<e.length;r++){let n=0;for(let o of e[r]){let e=t.get(o);e===r&&(t.set(o,e+1),n++)}if(0===n)return[]}return e[0].filter(r=>{let n=t.get(r);return void 0!==n&&t.set(r,0),n===e.length})})(i).sort((e,t)=>e-t),0!==o.indexes.length&&g.push(o)}let m=g.length,y=Array.from({length:m});for(let e=0;e<m;e++){let n=g[e],o=r.reduce||tl,i=n.indexes.map(e=>({id:s[e],score:t[e][1],document:l[e]})),a=o.reducer.bind(null,n.values),u=o.getInitialValue(n.indexes.length),c=i.reduce(a,u);y[e]={values:n.values,result:c}}return y}function tc(e,t,r,n){let o=e3(t,n);if(0===o.length)return r;let i=o.flatMap(e=>e.consequence.promote);i.sort((e,t)=>e.position-t.position);let s=new Set,l=new Map,a=new Set;for(let t of i){let r=j(e.internalDocumentIDStore,t.doc_id);if(void 0!==r){if(l.has(r)){let e=l.get(r);t.position<e&&l.set(r,t.position);continue}a.has(t.position)||(s.add(r),l.set(r,t.position),a.add(t.position))}}if(0===l.size)return r;let u=r.filter(([e])=>!s.has(e)),c=[];for(let[t,n]of l.entries())r.find(([e])=>e===t)?c.push([t,1e6-n]):e.documentsStore.get(e.data.docs,t)&&c.push([t,0]);c.sort((e,t)=>(l.get(e[0])??1/0)-(l.get(t[0])??1/0));let f=[],d=new Map;for(let e of c){let t=l.get(e[0]);d.set(t,e)}let h=0,p=0;for(;p<u.length+c.length;)if(d.has(p))f.push(d.get(p)),p++;else if(h<u.length)f.push(u[h]),h++,p++;else break;for(let[e,t]of d.entries())e>=f.length&&f.push(t);return f}function tf(e,t,r){let n,o,{term:i,properties:s}=t,l=e.data.index,a=e.caches.propertiesToSearch;if(!a){let t=e.index.getSearchablePropertiesWithTypes(l);a=(a=e.index.getSearchableProperties(l)).filter(e=>t[e].startsWith("string")),e.caches.propertiesToSearch=a}if(s&&"*"!==s){for(let e of s)if(!a.includes(e))throw k("UNKNOWN_INDEX",e,a.join(", "));a=a.filter(e=>s.includes(e))}let u=Object.keys(t.where??{}).length>0;u&&(n=e.index.searchByWhereClause(l,e.tokenizer,t.where,r));let c=void 0!==t.threshold&&null!==t.threshold?t.threshold:1;if(i||s){let s,u=e.documentsStore.count(e.data.docs);if(o=e.index.search(l,i||"",e.tokenizer,r,a,t.exact||!1,t.tolerance||0,t.boost||{},((s=t.relevance??{}).k=s.k??td,s.b=s.b??th,s.d=s.d??tp,s),u,n,c),t.exact&&i){let t=i.trim().split(/\s+/);o=o.filter(([r])=>{let n=e.documentsStore.get(e.data.docs,r);if(!n)return!1;for(let e of a){let r=function(e,t){let r=t.split("."),n=e;for(let e of r)if(!n||"object"!=typeof n||!(e in n))return;else n=n[e];return n}(n,e);if("string"==typeof r&&t.every(e=>RegExp(`\\b${e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\b`).test(r)))return!0}return!1})}}else if(u){let e=function(e,t){let r,n=function(e,t){let r=Object.keys(e);if(1!==r.length)return{isGeoOnly:!1};let n=r[0],o=e[n];if(void 0===t.indexes[n])return{isGeoOnly:!1};let{type:i}=t.indexes[n];return"BKD"===i&&o&&("radius"in o||"polygon"in o)?{isGeoOnly:!0,geoProperty:n,geoOperation:o}:{isGeoOnly:!1}}(t,e);if(!n.isGeoOnly||!n.geoProperty||!n.geoOperation)return null;let{node:o}=e.indexes[n.geoProperty],i=n.geoOperation;if("radius"in i){let{value:e,coordinates:t,unit:n="m",inside:s=!0,highPrecision:l=!1}=i.radius,a=O(e,n);return eA(r=o.searchByRadius(t,a,s,"asc",l),t,l)}if("polygon"in i){let{coordinates:e,inside:t=!0,highPrecision:n=!1}=i.polygon;return eA(r=o.searchByPolygon(e,t,"asc",n),ec.calculatePolygonCentroid(e),n)}return null}(l,t.where);o=e||(n?Array.from(n):[]).map(e=>[+e,0])}else o=Object.keys(e.documentsStore.getAll(e.data.docs)).map(e=>[+e,0]);return o}let td=1.2,th=.75,tp=.5;function tg(e,t,r){let n,o=t.vector;if(o&&(!("value"in o)||!("property"in o)))throw k("INVALID_VECTOR_INPUT",Object.keys(o).join(", "));let i=e.data.index.vectorIndexes[o.property];if(!i)throw k("UNKNOWN_VECTOR_PROPERTY",o.property);let s=i.node.size;if(o?.value.length!==s){if(o?.property===void 0||o?.value.length===void 0)throw k("INVALID_INPUT_VECTOR","undefined",s,"undefined");throw k("INVALID_INPUT_VECTOR",o.property,s,o.value.length)}let l=e.data.index;return Object.keys(t.where??{}).length>0&&(n=e.index.searchByWhereClause(l,e.tokenizer,t.where,r)),i.node.find(o.value,t.similarity??.8,n)}function tm(e){return e[1]}function ty(e,t,r){let n=t.mode??tt;if(n===tt){let n=g();function o(){let o,i=Object.keys(e.data.index.vectorIndexes),s=t.facets&&Object.keys(t.facets).length>0,{limit:l=10,offset:a=0,distinctOn:u,includeVectors:c=!1}=t,f=!0===t.preflight,d=tf(e,t,r);if(t.sortBy)if("function"==typeof t.sortBy){let r=d.map(([e])=>e),n=e.documentsStore.getMultiple(e.data.docs,r).map((e,t)=>[d[t][0],d[t][1],e]);n.sort(t.sortBy),d=n.map(([e,t])=>[e,t])}else d=e.sorter.sortBy(e.data.sorting,d,t.sortBy).map(([t,r])=>[j(e.internalDocumentIDStore,t),r]);else d=d.sort(b);d=tc(e,e.data.pinning,d,t.term),f||(o=u?function(e,t,r,n,o){let i=e.data.docs,s=new Map,l=[],a=new Set,u=t.length,c=0;for(let f=0;f<u;f++){let u=t[f];if(void 0===u)continue;let[d,h]=u;if(a.has(d))continue;let p=e.documentsStore.get(i,d),g=I(p,o);if(!(void 0===g||s.has(g))&&(s.set(g,!0),!(++c<=r)&&(l.push({id:W(e.internalDocumentIDStore,d),score:h,document:p}),a.add(d),c>=r+n)))break}return l}(e,d,a,l,u):tb(e,d,a,l));let h={elapsed:{formatted:"",raw:0},hits:[],count:d.length};return void 0!==o&&(h.hits=o.filter(Boolean),c||N(h,i)),s&&(h.facets=to(e,d,t.facets)),t.groupBy&&(h.groups=tu(e,d,t.groupBy)),h.elapsed=e.formatElapsedTime(g()-n),h}async function i(){e.beforeSearch&&await er(e.beforeSearch,e,t,r);let n=o();return e.afterSearch&&await et(e.afterSearch,e,t,r,n),n}return e.beforeSearch?.length||e.afterSearch?.length?i():o()}if("vector"===n)return function(e,t,r="english"){let n=g();function o(){let o=tg(e,t,r).sort(b);o=tc(e,e.data.pinning,o,void 0);let i=[];t.facets&&Object.keys(t.facets).length>0&&(i=to(e,o,t.facets));let s=t.vector.property,l=t.includeVectors??!1,a=t.limit??10,u=t.offset??0,c=Array.from({length:a});for(let t=0;t<a;t++){let r=o[t+u];if(!r)break;let n=e.data.docs.docs[r[0]];if(n){l||(n[s]=null);let o={id:W(e.internalDocumentIDStore,r[0]),score:r[1],document:n};c[t]=o}}let f=[];t.groupBy&&(f=tu(e,o,t.groupBy));let d=g()-n;return{count:o.length,hits:c.filter(Boolean),elapsed:{raw:Number(d),formatted:p(d)},...i?{facets:i}:{},...f?{groups:f}:{}}}async function i(){e.beforeSearch&&await er(e.beforeSearch,e,t,r);let n=o();return e.afterSearch&&await et(e.afterSearch,e,t,r,n),n}return e.beforeSearch?.length||e.afterSearch?.length?i():o()}(e,t);if("hybrid"===n)return function(e,t,r){let n=g();function o(){var r,o;let i,s,l,a,u,c,f=(o=tf(e,t,r=void 0),i=Math.max.apply(Math,o.map(tm)),s=o.map(([e,t])=>[e,t/i]),l=tg(e,t,r),a=t.hybridWeights,function(e,t,r,n){let o=Math.max.apply(Math,e.map(tm)),i=Math.max.apply(Math,t.map(tm)),{text:s,vector:l}=n&&n.text&&n.vector?n:{text:.5,vector:.5},a=new Map,u=e.length,c=(e,t)=>e*s+t*l;for(let t=0;t<u;t++){let[r,n]=e[t],i=c(n/o,0);a.set(r,i)}let f=t.length;for(let e=0;e<f;e++){let[r,n]=t[e],o=n/i,s=a.get(r)??0;a.set(r,s+c(0,o))}return[...a].sort((e,t)=>t[1]-e[1])}(s,l,t.term??"",a));f=tc(e,e.data.pinning,f,t.term),t.facets&&Object.keys(t.facets).length>0&&(u=to(e,f,t.facets)),t.groupBy&&(c=tu(e,f,t.groupBy));let d=tb(e,f,t.offset??0,t.limit??10).filter(Boolean),h=g(),m={count:f.length,elapsed:{raw:Number(h-n),formatted:p(h-n)},hits:d,...u?{facets:u}:{},...c?{groups:c}:{}};return t.includeVectors||N(m,Object.keys(e.data.index.vectorIndexes)),m}async function i(){e.beforeSearch&&await er(e.beforeSearch,e,t,void 0);let r=o();return e.afterSearch&&await et(e.afterSearch,e,t,void 0,r),r}return e.beforeSearch?.length||e.afterSearch?.length?i():o()}(e,t);throw k("INVALID_SEARCH_MODE",n)}function tb(e,t,r,n){let o=e.data.docs,i=Array.from({length:n}),s=new Set;for(let l=r;l<n+r;l++){let r=t[l];if(void 0===r)break;let[n,a]=r;if(!s.has(n)){let t=e.documentsStore.get(o,n);i[l]={id:W(e.internalDocumentIDStore,n),score:a,document:t},s.add(n)}}return i}function tS(e,t){e.internalDocumentIDStore.load(e,t.internalDocumentIDStore),e.data.index=e.index.load(e.internalDocumentIDStore,t.index),e.data.docs=e.documentsStore.load(e.internalDocumentIDStore,t.docs),e.data.sorting=e.sorter.load(e.internalDocumentIDStore,t.sorting),e.data.pinning=e.pinning.load(e.internalDocumentIDStore,t.pinning),e.tokenizer.language=t.language}async function tI(e,r,n={}){let o=(0,t.createContentHighlighter)(r);return(await ty(e,{term:r,tolerance:1,...n,boost:{title:2,..."boost"in n?n.boost:void 0}})).hits.map(e=>({type:"page",content:o.highlightMarkdown(e.document.title),breadcrumbs:e.document.breadcrumbs,id:e.document.url,url:e.document.url}))}async function tw(e,n,o=[],{mode:i="fulltext",...s}={}){"string"==typeof o&&(o=[o]);let l={...s,mode:i,where:(0,r.t)({tags:o.length>0?{containsAll:o}:void 0,...s.where}),limit:10,groupBy:{properties:["page_id"],maxResult:8,...s.groupBy}};n.length>0&&Object.assign(l,{term:n,properties:"fulltext"===i?["content"]:["content","embeddings"]});let a=(0,t.createContentHighlighter)(n),u=await ty(e,l),c=[];for(let t of u.groups??[]){let r=t.values[0],n=e.documentsStore.get(e.data.docs,r);if(n)for(let e of(c.push({id:r,type:"page",content:a.highlightMarkdown(n.content),breadcrumbs:n.breadcrumbs,url:n.url}),t.result))"page"!==e.document.type&&c.push({id:e.document.id.toString(),content:a.highlightMarkdown(e.document.content),breadcrumbs:e.document.breadcrumbs,type:e.document.type,url:e.document.url})}return c.length>80?c.slice(0,80):c}Symbol("orama.insertions"),Symbol("orama.removals");let tO=new Map;async function tN({from:e="/api/search",initOrama:t=e=>(function({schema:e,sort:t,language:r,components:n,id:o,plugins:i}){for(let t of(n||(n={}),i??[])){if(!("getComponents"in t)||"function"!=typeof t.getComponents)continue;let r=t.getComponents(e);for(let e of Object.keys(r))if(n[e])throw k("PLUGIN_COMPONENT_CONFLICT",e,t.name);n={...n,...r}}o||(o=m());let s=n.tokenizer,l=n.index,a=n.documentsStore,u=n.sorter,c=n.pinning;if(s=s?s.tokenize?s:e1(s):e1({language:r??"english"}),n.tokenizer&&r)throw k("NO_LANGUAGE_WITH_CUSTOM_TOKENIZER");let f={idToInternalId:new Map,internalIdToId:[],save:B,load:V};l||={create:function e(t,r,n,o,i=""){for(let[s,l]of(o||(o={sharedInternalDocumentStore:r,indexes:{},vectorIndexes:{},searchableProperties:[],searchablePropertiesWithTypes:{},frequencies:{},tokenOccurrences:{},avgFieldLength:{},fieldLengths:{}}),Object.entries(n))){let n=`${i}${i?".":""}${s}`;if("object"==typeof l&&!Array.isArray(l)){e(t,r,l,o,n);continue}if(U(l))o.searchableProperties.push(n),o.searchablePropertiesWithTypes[n]=l,o.vectorIndexes[n]={type:"Vector",node:new ed(L(l)),isArray:!1};else{let e=/\[/.test(l);switch(l){case"boolean":case"boolean[]":o.indexes[n]={type:"Bool",node:new ef,isArray:e};break;case"number":case"number[]":o.indexes[n]={type:"AVL",node:new eo(0,[]),isArray:e};break;case"string":case"string[]":o.indexes[n]={type:"Radix",node:new ea,isArray:e},o.avgFieldLength[n]=0,o.frequencies[n]={},o.tokenOccurrences[n]={},o.fieldLengths[n]={};break;case"enum":case"enum[]":o.indexes[n]={type:"Flat",node:new ei,isArray:e};break;case"geopoint":o.indexes[n]={type:"BKD",node:new ec,isArray:e};break;default:throw k("INVALID_SCHEMA_TYPE",Array.isArray(l)?"array":l,n)}o.searchableProperties.push(n),o.searchablePropertiesWithTypes[n]=l}}return o},insert:eb,remove:eI,insertDocumentScoreParameters:ep,insertTokenScoreParameters:eg,removeDocumentScoreParameters:em,removeTokenScoreParameters:ey,calculateResultScores:ew,search:eO,searchByWhereClause:function e(t,r,n,o){if("and"in n&&n.and&&Array.isArray(n.and)){let i=n.and;return 0===i.length?new Set:_(...i.map(n=>e(t,r,n,o)))}if("or"in n&&n.or&&Array.isArray(n.or)){let i=n.or;return 0===i.length?new Set:i.map(n=>e(t,r,n,o)).reduce((e,t)=>A(e,t),new Set)}if("not"in n&&n.not){let i=n.not,s=new Set,l=t.sharedInternalDocumentStore;for(let e=1;e<=l.internalIdToId.length;e++)s.add(e);let a=e(t,r,i,o),u=new Set;for(let e of s)a.has(e)||u.add(e);return u}let i=Object.keys(n),s=i.reduce((e,t)=>({[t]:new Set,...e}),{});for(let e of i){let i=n[e];if(void 0===t.indexes[e])throw k("UNKNOWN_FILTER_PROPERTY",e);let{node:l,type:a,isArray:u}=t.indexes[e];if("Bool"===a){let t=i?l.true:l.false;s[e]=A(s[e],t);continue}if("BKD"===a){let t;if("radius"in i)t="radius";else if("polygon"in i)t="polygon";else throw Error(`Invalid operation ${i}`);if("radius"===t){let{value:r,coordinates:n,unit:o="m",inside:a=!0,highPrecision:u=!1}=i[t],c=O(r,o),f=l.searchByRadius(n,c,a,void 0,u);s[e]=eD(s[e],f)}else{let{coordinates:r,inside:n=!0,highPrecision:o=!1}=i[t],a=l.searchByPolygon(r,n,void 0,o);s[e]=eD(s[e],a)}continue}if("Radix"===a&&("string"==typeof i||Array.isArray(i))){for(let t of[i].flat())for(let n of r.tokenize(t,o,e)){let t=l.find({term:n,exact:!0});s[e]=function(e,t){e||(e=new Set);let r=Object.keys(t),n=r.length;for(let o=0;o<n;o++){let n=t[r[o]],i=n.length;for(let t=0;t<i;t++)e.add(n[t])}return e}(s[e],t)}continue}let c=Object.keys(i);if(c.length>1)throw k("INVALID_FILTER_OPERATION",c.length);if("Flat"===a){let t=new Set(u?l.filterArr(i):l.filter(i));s[e]=A(s[e],t);continue}if("AVL"===a){let t,r=c[0],n=i[r];switch(r){case"gt":t=l.greaterThan(n,!1);break;case"gte":t=l.greaterThan(n,!0);break;case"lt":t=l.lessThan(n,!1);break;case"lte":t=l.lessThan(n,!0);break;case"eq":t=l.find(n)??new Set;break;case"between":{let[e,r]=n;t=l.rangeSearch(e,r);break}default:throw k("INVALID_FILTER_OPERATION",r)}s[e]=A(s[e],t)}}return _(...Object.values(s))},getSearchableProperties:eN,getSearchablePropertiesWithTypes:eT,load:ev,save:e_},u||={create:eE,insert:eP,remove:eU,save:ej,load:eV,sortBy:ez,getSortableProperties:eL,getSortablePropertiesWithTypes:eB},a||={create:F,get:$,getMultiple:G,getAll:J,store:Y,remove:K,count:H,load:q,save:X},c||={create:e9,addRule:e7,updateRule:e5,removeRule:e6,getRule:e2,getAllRules:e8,getMatchingRules:e3,load:e4,save:te};var d=n;let h={formatElapsedTime:R,getDocumentIndexId:M,getDocumentProperties:S,validateSchema:function e(t,r){for(let[n,o]of Object.entries(r)){let r=t[n];if(void 0!==r&&("geopoint"!==o||"object"!=typeof r||"number"!=typeof r.lon||"number"!=typeof r.lat)&&("enum"!==o||"string"!=typeof r&&"number"!=typeof r)){if("enum[]"===o&&Array.isArray(r)){let e=r.length;for(let t=0;t<e;t++)if("string"!=typeof r[t]&&"number"!=typeof r[t])return n+"."+t;continue}if(U(o)){let e=L(o);if(!Array.isArray(r)||r.length!==e)throw k("INVALID_INPUT_VECTOR",n,e,r.length);continue}if(z(o)){if(!Array.isArray(r))return n;let e=C[o],t=r.length;for(let o=0;o<t;o++)if(typeof r[o]!==e)return n+"."+o;continue}if("object"==typeof o){if(!r||"object"!=typeof r)return n;let t=e(r,o);if(t)return n+"."+t;continue}if(typeof r!==o)return n}}}};for(let e of ee)if(d[e]){if("function"!=typeof d[e])throw k("COMPONENT_MUST_BE_FUNCTION",e)}else d[e]=h[e];for(let e of Object.keys(d))if(!Q.includes(e)&&!ee.includes(e))throw k("UNSUPPORTED_COMPONENT",e);let{getDocumentProperties:p,getDocumentIndexId:g,validateSchema:y,formatElapsedTime:b}=n,I={data:{},caches:{},schema:e,tokenizer:s,index:l,sorter:u,documentsStore:a,pinning:c,internalDocumentIDStore:f,getDocumentProperties:p,getDocumentIndexId:g,validateSchema:y,beforeInsert:[],afterInsert:[],beforeRemove:[],afterRemove:[],beforeUpdate:[],afterUpdate:[],beforeUpsert:[],afterUpsert:[],beforeSearch:[],afterSearch:[],beforeInsertMultiple:[],afterInsertMultiple:[],beforeRemoveMultiple:[],afterRemoveMultiple:[],beforeUpdateMultiple:[],afterUpdateMultiple:[],beforeUpsertMultiple:[],afterUpsertMultiple:[],afterCreate:[],formatElapsedTime:b,id:o,plugins:i,version:"{{VERSION}}"};for(let r of(I.data={index:I.index.create(I,f,e),docs:I.documentsStore.create(I,f),sorting:I.sorter.create(I,f,e,t),pinning:I.pinning.create(f)},Z))I[r]=(I[r]??[]).concat(function(e,t){let r=[],n=e.plugins?.length;if(!n)return r;for(let o=0;o<n;o++)try{let n=e.plugins[o];"function"==typeof n[t]&&r.push(n[t])}catch(e){throw console.error("Caught error in getAllPluginsByHook:",e),k("PLUGIN_CRASHED")}return r}(I,r));let w=I.afterCreate;return w&&function(e,t){if(e.some(T))return(async()=>{for(let r of e)await r(t)})();for(let r of e)r(t)}(w,I),I})({schema:{_:"string"},language:e})}){let r=tO.get(e);if(r)return r;let n=async function(){let r=await fetch(e);if(!r.ok)throw Error(`failed to fetch exported search indexes from ${e}, make sure the search database is exported and available for client.`);let n=await r.json(),o=new Map;if("i18n"===n.type)return await Promise.all(Object.entries(n.data).map(async([e,r])=>{let n=await t(e);tS(n,r),o.set(e,{type:r.type,db:n})})),o;let i=await t();return tS(i,n),o.set("",{type:n.type,db:i}),o}();return tO.set(e,n),n}async function tT(e,t){let{tag:r,locale:n}=t,o=(await tN(t)).get(n??"");return o?"simple"===o.type?tI(o,e):tw(o.db,e,r):[]}e.s(["search",()=>tT],67964)}]);