UNPKG

@verdaccio/search

Version:

verdaccio search utitlity tools

1,681 lines (1,663 loc) 117 kB
var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getOwnPropSymbols = Object.getOwnPropertySymbols; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __propIsEnum = Object.prototype.propertyIsEnumerable; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __spreadValues = (a, b) => { for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]); if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) { if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]); } return a; }; var __markAsModule = (target) => __defProp(target, "__esModule", { value: true }); var __commonJS = (cb, mod) => function __require() { return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __reExport = (target, module2, copyDefault, desc) => { if (module2 && typeof module2 === "object" || typeof module2 === "function") { for (let key of __getOwnPropNames(module2)) if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default")) __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable }); } return target; }; var __toESM = (module2, isNodeMode) => { return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2); }; var __toCommonJS = /* @__PURE__ */ ((cache) => { return (module2, temp) => { return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp); }; })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0); // ../../node_modules/.pnpm/ms@2.1.2/node_modules/ms/index.js var require_ms = __commonJS({ "../../node_modules/.pnpm/ms@2.1.2/node_modules/ms/index.js"(exports, module2) { var s = 1e3; var m = s * 60; var h = m * 60; var d = h * 24; var w = d * 7; var y = d * 365.25; module2.exports = function(val, options) { options = options || {}; var type = typeof val; if (type === "string" && val.length > 0) { return parse(val); } else if (type === "number" && isFinite(val)) { return options.long ? fmtLong(val) : fmtShort(val); } throw new Error("val is not a non-empty string or a valid number. val=" + JSON.stringify(val)); }; function parse(str) { str = String(str); if (str.length > 100) { return; } var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(str); if (!match) { return; } var n = parseFloat(match[1]); var type = (match[2] || "ms").toLowerCase(); switch (type) { case "years": case "year": case "yrs": case "yr": case "y": return n * y; case "weeks": case "week": case "w": return n * w; case "days": case "day": case "d": return n * d; case "hours": case "hour": case "hrs": case "hr": case "h": return n * h; case "minutes": case "minute": case "mins": case "min": case "m": return n * m; case "seconds": case "second": case "secs": case "sec": case "s": return n * s; case "milliseconds": case "millisecond": case "msecs": case "msec": case "ms": return n; default: return void 0; } } function fmtShort(ms) { var msAbs = Math.abs(ms); if (msAbs >= d) { return Math.round(ms / d) + "d"; } if (msAbs >= h) { return Math.round(ms / h) + "h"; } if (msAbs >= m) { return Math.round(ms / m) + "m"; } if (msAbs >= s) { return Math.round(ms / s) + "s"; } return ms + "ms"; } function fmtLong(ms) { var msAbs = Math.abs(ms); if (msAbs >= d) { return plural(ms, msAbs, d, "day"); } if (msAbs >= h) { return plural(ms, msAbs, h, "hour"); } if (msAbs >= m) { return plural(ms, msAbs, m, "minute"); } if (msAbs >= s) { return plural(ms, msAbs, s, "second"); } return ms + " ms"; } function plural(ms, msAbs, n, name) { var isPlural = msAbs >= n * 1.5; return Math.round(ms / n) + " " + name + (isPlural ? "s" : ""); } } }); // ../../node_modules/.pnpm/debug@4.3.4_supports-color@6.1.0/node_modules/debug/src/common.js var require_common = __commonJS({ "../../node_modules/.pnpm/debug@4.3.4_supports-color@6.1.0/node_modules/debug/src/common.js"(exports, module2) { function setup(env) { createDebug.debug = createDebug; createDebug.default = createDebug; createDebug.coerce = coerce; createDebug.disable = disable; createDebug.enable = enable; createDebug.enabled = enabled; createDebug.humanize = require_ms(); createDebug.destroy = destroy; Object.keys(env).forEach((key) => { createDebug[key] = env[key]; }); createDebug.names = []; createDebug.skips = []; createDebug.formatters = {}; function selectColor(namespace) { let hash = 0; for (let i = 0; i < namespace.length; i++) { hash = (hash << 5) - hash + namespace.charCodeAt(i); hash |= 0; } return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; } createDebug.selectColor = selectColor; function createDebug(namespace) { let prevTime; let enableOverride = null; let namespacesCache; let enabledCache; function debug2(...args) { if (!debug2.enabled) { return; } const self = debug2; const curr = Number(new Date()); const ms = curr - (prevTime || curr); self.diff = ms; self.prev = prevTime; self.curr = curr; prevTime = curr; args[0] = createDebug.coerce(args[0]); if (typeof args[0] !== "string") { args.unshift("%O"); } let index = 0; args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { if (match === "%%") { return "%"; } index++; const formatter = createDebug.formatters[format]; if (typeof formatter === "function") { const val = args[index]; match = formatter.call(self, val); args.splice(index, 1); index--; } return match; }); createDebug.formatArgs.call(self, args); const logFn = self.log || createDebug.log; logFn.apply(self, args); } debug2.namespace = namespace; debug2.useColors = createDebug.useColors(); debug2.color = createDebug.selectColor(namespace); debug2.extend = extend; debug2.destroy = createDebug.destroy; Object.defineProperty(debug2, "enabled", { enumerable: true, configurable: false, get: () => { if (enableOverride !== null) { return enableOverride; } if (namespacesCache !== createDebug.namespaces) { namespacesCache = createDebug.namespaces; enabledCache = createDebug.enabled(namespace); } return enabledCache; }, set: (v2) => { enableOverride = v2; } }); if (typeof createDebug.init === "function") { createDebug.init(debug2); } return debug2; } function extend(namespace, delimiter) { const newDebug = createDebug(this.namespace + (typeof delimiter === "undefined" ? ":" : delimiter) + namespace); newDebug.log = this.log; return newDebug; } function enable(namespaces) { createDebug.save(namespaces); createDebug.namespaces = namespaces; createDebug.names = []; createDebug.skips = []; let i; const split = (typeof namespaces === "string" ? namespaces : "").split(/[\s,]+/); const len = split.length; for (i = 0; i < len; i++) { if (!split[i]) { continue; } namespaces = split[i].replace(/\*/g, ".*?"); if (namespaces[0] === "-") { createDebug.skips.push(new RegExp("^" + namespaces.slice(1) + "$")); } else { createDebug.names.push(new RegExp("^" + namespaces + "$")); } } } function disable() { const namespaces = [ ...createDebug.names.map(toNamespace), ...createDebug.skips.map(toNamespace).map((namespace) => "-" + namespace) ].join(","); createDebug.enable(""); return namespaces; } function enabled(name) { if (name[name.length - 1] === "*") { return true; } let i; let len; for (i = 0, len = createDebug.skips.length; i < len; i++) { if (createDebug.skips[i].test(name)) { return false; } } for (i = 0, len = createDebug.names.length; i < len; i++) { if (createDebug.names[i].test(name)) { return true; } } return false; } function toNamespace(regexp) { return regexp.toString().substring(2, regexp.toString().length - 2).replace(/\.\*\?$/, "*"); } function coerce(val) { if (val instanceof Error) { return val.stack || val.message; } return val; } function destroy() { console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); } createDebug.enable(createDebug.load()); return createDebug; } module2.exports = setup; } }); // ../../node_modules/.pnpm/debug@4.3.4_supports-color@6.1.0/node_modules/debug/src/browser.js var require_browser = __commonJS({ "../../node_modules/.pnpm/debug@4.3.4_supports-color@6.1.0/node_modules/debug/src/browser.js"(exports, module2) { exports.formatArgs = formatArgs; exports.save = save3; exports.load = load3; exports.useColors = useColors; exports.storage = localstorage(); exports.destroy = (() => { let warned = false; return () => { if (!warned) { warned = true; console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); } }; })(); exports.colors = [ "#0000CC", "#0000FF", "#0033CC", "#0033FF", "#0066CC", "#0066FF", "#0099CC", "#0099FF", "#00CC00", "#00CC33", "#00CC66", "#00CC99", "#00CCCC", "#00CCFF", "#3300CC", "#3300FF", "#3333CC", "#3333FF", "#3366CC", "#3366FF", "#3399CC", "#3399FF", "#33CC00", "#33CC33", "#33CC66", "#33CC99", "#33CCCC", "#33CCFF", "#6600CC", "#6600FF", "#6633CC", "#6633FF", "#66CC00", "#66CC33", "#9900CC", "#9900FF", "#9933CC", "#9933FF", "#99CC00", "#99CC33", "#CC0000", "#CC0033", "#CC0066", "#CC0099", "#CC00CC", "#CC00FF", "#CC3300", "#CC3333", "#CC3366", "#CC3399", "#CC33CC", "#CC33FF", "#CC6600", "#CC6633", "#CC9900", "#CC9933", "#CCCC00", "#CCCC33", "#FF0000", "#FF0033", "#FF0066", "#FF0099", "#FF00CC", "#FF00FF", "#FF3300", "#FF3333", "#FF3366", "#FF3399", "#FF33CC", "#FF33FF", "#FF6600", "#FF6633", "#FF9900", "#FF9933", "#FFCC00", "#FFCC33" ]; function useColors() { if (typeof window !== "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs)) { return true; } if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { return false; } return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/); } function formatArgs(args) { args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + module2.exports.humanize(this.diff); if (!this.useColors) { return; } const c2 = "color: " + this.color; args.splice(1, 0, c2, "color: inherit"); let index = 0; let lastC = 0; args[0].replace(/%[a-zA-Z%]/g, (match) => { if (match === "%%") { return; } index++; if (match === "%c") { lastC = index; } }); args.splice(lastC, 0, c2); } exports.log = console.debug || console.log || (() => { }); function save3(namespaces) { try { if (namespaces) { exports.storage.setItem("debug", namespaces); } else { exports.storage.removeItem("debug"); } } catch (error) { } } function load3() { let r; try { r = exports.storage.getItem("debug"); } catch (error) { } if (!r && typeof process !== "undefined" && "env" in process) { r = process.env.DEBUG; } return r; } function localstorage() { try { return localStorage; } catch (error) { } } module2.exports = require_common()(exports); var { formatters } = module2.exports; formatters.j = function(v2) { try { return JSON.stringify(v2); } catch (error) { return "[UnexpectedJSONParseError]: " + error.message; } }; } }); // ../../node_modules/.pnpm/has-flag@3.0.0/node_modules/has-flag/index.js var require_has_flag = __commonJS({ "../../node_modules/.pnpm/has-flag@3.0.0/node_modules/has-flag/index.js"(exports, module2) { "use strict"; module2.exports = (flag, argv) => { argv = argv || process.argv; const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--"; const pos = argv.indexOf(prefix + flag); const terminatorPos = argv.indexOf("--"); return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos); }; } }); // ../../node_modules/.pnpm/supports-color@6.1.0/node_modules/supports-color/index.js var require_supports_color = __commonJS({ "../../node_modules/.pnpm/supports-color@6.1.0/node_modules/supports-color/index.js"(exports, module2) { "use strict"; var os = require("os"); var hasFlag = require_has_flag(); var { env } = process; var forceColor; if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) { forceColor = 0; } else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) { forceColor = 1; } if ("FORCE_COLOR" in env) { if (env.FORCE_COLOR === true || env.FORCE_COLOR === "true") { forceColor = 1; } else if (env.FORCE_COLOR === false || env.FORCE_COLOR === "false") { forceColor = 0; } else { forceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3); } } function translateLevel(level) { if (level === 0) { return false; } return { level, hasBasic: true, has256: level >= 2, has16m: level >= 3 }; } function supportsColor(stream) { if (forceColor === 0) { return 0; } if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) { return 3; } if (hasFlag("color=256")) { return 2; } if (stream && !stream.isTTY && forceColor === void 0) { return 0; } const min = forceColor || 0; if (env.TERM === "dumb") { return min; } if (process.platform === "win32") { const osRelease = os.release().split("."); if (Number(process.versions.node.split(".")[0]) >= 8 && Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) { return Number(osRelease[2]) >= 14931 ? 3 : 2; } return 1; } if ("CI" in env) { if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI"].some((sign) => sign in env) || env.CI_NAME === "codeship") { return 1; } return min; } if ("TEAMCITY_VERSION" in env) { return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; } if (env.COLORTERM === "truecolor") { return 3; } if ("TERM_PROGRAM" in env) { const version = parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10); switch (env.TERM_PROGRAM) { case "iTerm.app": return version >= 3 ? 3 : 2; case "Apple_Terminal": return 2; } } if (/-256(color)?$/i.test(env.TERM)) { return 2; } if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { return 1; } if ("COLORTERM" in env) { return 1; } return min; } function getSupportLevel(stream) { const level = supportsColor(stream); return translateLevel(level); } module2.exports = { supportsColor: getSupportLevel, stdout: getSupportLevel(process.stdout), stderr: getSupportLevel(process.stderr) }; } }); // ../../node_modules/.pnpm/debug@4.3.4_supports-color@6.1.0/node_modules/debug/src/node.js var require_node = __commonJS({ "../../node_modules/.pnpm/debug@4.3.4_supports-color@6.1.0/node_modules/debug/src/node.js"(exports, module2) { var tty = require("tty"); var util = require("util"); exports.init = init; exports.log = log; exports.formatArgs = formatArgs; exports.save = save3; exports.load = load3; exports.useColors = useColors; exports.destroy = util.deprecate(() => { }, "Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); exports.colors = [6, 2, 3, 4, 5, 1]; try { const supportsColor = require_supports_color(); if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) { exports.colors = [ 20, 21, 26, 27, 32, 33, 38, 39, 40, 41, 42, 43, 44, 45, 56, 57, 62, 63, 68, 69, 74, 75, 76, 77, 78, 79, 80, 81, 92, 93, 98, 99, 112, 113, 128, 129, 134, 135, 148, 149, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 178, 179, 184, 185, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 214, 215, 220, 221 ]; } } catch (error) { } exports.inspectOpts = Object.keys(process.env).filter((key) => { return /^debug_/i.test(key); }).reduce((obj, key) => { const prop = key.substring(6).toLowerCase().replace(/_([a-z])/g, (_, k) => { return k.toUpperCase(); }); let val = process.env[key]; if (/^(yes|on|true|enabled)$/i.test(val)) { val = true; } else if (/^(no|off|false|disabled)$/i.test(val)) { val = false; } else if (val === "null") { val = null; } else { val = Number(val); } obj[prop] = val; return obj; }, {}); function useColors() { return "colors" in exports.inspectOpts ? Boolean(exports.inspectOpts.colors) : tty.isatty(process.stderr.fd); } function formatArgs(args) { const { namespace: name, useColors: useColors2 } = this; if (useColors2) { const c2 = this.color; const colorCode = "[3" + (c2 < 8 ? c2 : "8;5;" + c2); const prefix = ` ${colorCode};1m${name} `; args[0] = prefix + args[0].split("\n").join("\n" + prefix); args.push(colorCode + "m+" + module2.exports.humanize(this.diff) + ""); } else { args[0] = getDate() + name + " " + args[0]; } } function getDate() { if (exports.inspectOpts.hideDate) { return ""; } return new Date().toISOString() + " "; } function log(...args) { return process.stderr.write(util.format(...args) + "\n"); } function save3(namespaces) { if (namespaces) { process.env.DEBUG = namespaces; } else { delete process.env.DEBUG; } } function load3() { return process.env.DEBUG; } function init(debug2) { debug2.inspectOpts = {}; const keys = Object.keys(exports.inspectOpts); for (let i = 0; i < keys.length; i++) { debug2.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; } } module2.exports = require_common()(exports); var { formatters } = module2.exports; formatters.o = function(v2) { this.inspectOpts.colors = this.useColors; return util.inspect(v2, this.inspectOpts).split("\n").map((str) => str.trim()).join(" "); }; formatters.O = function(v2) { this.inspectOpts.colors = this.useColors; return util.inspect(v2, this.inspectOpts); }; } }); // ../../node_modules/.pnpm/debug@4.3.4_supports-color@6.1.0/node_modules/debug/src/index.js var require_src = __commonJS({ "../../node_modules/.pnpm/debug@4.3.4_supports-color@6.1.0/node_modules/debug/src/index.js"(exports, module2) { if (typeof process === "undefined" || process.type === "renderer" || process.browser === true || process.__nwjs) { module2.exports = require_browser(); } else { module2.exports = require_node(); } } }); // src/index.ts var src_exports = {}; __export(src_exports, { SearchMemoryIndexer: () => indexer_default }); // ../../node_modules/.pnpm/@orama+orama@1.0.0-beta.16/node_modules/@orama/orama/dist/components/tokenizer/languages.js var STEMMERS = { arabic: "ar", armenian: "am", bulgarian: "bg", 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", turkish: "tr", ukrainian: "uk" }; var SPLITTERS = { 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 }; var SUPPORTED_LANGUAGES = Object.keys(STEMMERS); // ../../node_modules/.pnpm/@orama+orama@1.0.0-beta.16/node_modules/@orama/orama/dist/utils.js var baseId = Date.now().toString().slice(5); var lastId = 0; var nano = BigInt(1e3); var milli = BigInt(1e6); var second = BigInt(1e9); function sprintf(template, ...args) { return template.replace(/%(?:(?<position>\d+)\$)?(?<width>-?\d*\.?\d*)(?<type>[dfs])/g, function(...replaceArgs) { const groups = replaceArgs[replaceArgs.length - 1]; const { width: rawWidth, type, position } = groups; const replacement = position ? args[Number.parseInt(position) - 1] : args.shift(); const width = rawWidth === "" ? 0 : Number.parseInt(rawWidth); switch (type) { case "d": return replacement.toString().padStart(width, "0"); case "f": { let value = replacement; const [padding, precision] = rawWidth.split(".").map((w) => Number.parseFloat(w)); if (typeof precision === "number" && precision >= 0) { value = value.toFixed(precision); } return typeof padding === "number" && padding >= 0 ? value.toString().padStart(width, "0") : value.toString(); } case "s": return width < 0 ? replacement.toString().padEnd(-width, " ") : replacement.toString().padStart(width, " "); default: return replacement; } }); } async function formatNanoseconds(value) { if (typeof value === "number") { value = BigInt(value); } if (value < nano) { return `${value}ns`; } else if (value < milli) { return `${value / nano}\u03BCs`; } else if (value < second) { return `${value / milli}ms`; } return `${value / second}s`; } async function getNanosecondsTime() { if (typeof process !== "undefined" && process.hrtime !== void 0) { return process.hrtime.bigint(); } if (typeof performance !== "undefined") { return BigInt(Math.floor(performance.now() * 1e6)); } return BigInt(0); } async function uniqueId() { return `${baseId}-${lastId++}`; } function syncUniqueId() { return `${baseId}-${lastId++}`; } function getOwnProperty(object, property) { if (Object.hasOwn === void 0) { return Object.prototype.hasOwnProperty.call(object, property) ? object[property] : void 0; } return Object.hasOwn(object, property) ? object[property] : void 0; } function sortTokenScorePredicate(a, b) { if (b[1] === a[1]) { return a[0].localeCompare(b[0]); } return b[1] - a[1]; } function intersect(arrays) { if (arrays.length === 0) { return []; } else if (arrays.length === 1) { return arrays[0]; } for (let i = 1; i < arrays.length; i++) { if (arrays[i].length < arrays[0].length) { const tmp = arrays[0]; arrays[0] = arrays[i]; arrays[i] = tmp; } } const set = /* @__PURE__ */ new Map(); for (const elem of arrays[0]) { set.set(elem, 1); } for (let i = 1; i < arrays.length; i++) { let found = 0; for (const elem of arrays[i]) { const count2 = set.get(elem); if (count2 === i) { set.set(elem, count2 + 1); found++; } } if (found === 0) return []; } return arrays[0].filter((e) => { const count2 = set.get(e); if (count2 !== void 0) set.set(e, 0); return count2 === arrays.length; }); } async function getDocumentProperties(doc, paths) { const properties = {}; const pathsLength = paths.length; for (let i = 0; i < pathsLength; i++) { const path = paths[i]; const pathTokens = path.split("."); let current = doc; const pathTokensLength = pathTokens.length; for (let j = 0; j < pathTokensLength; j++) { current = current[pathTokens[j]]; if (typeof current === "object" && current !== null && j === pathTokensLength - 1) { current = void 0; break; } else if ((current === null || typeof current !== "object") && j < pathTokensLength - 1) { current = void 0; break; } } if (typeof current !== "undefined") { properties[path] = current; } } return properties; } async function getNested(obj, path) { const props = await getDocumentProperties(obj, [ path ]); return props[path]; } // ../../node_modules/.pnpm/@orama+orama@1.0.0-beta.16/node_modules/@orama/orama/dist/errors.js var allLanguages = SUPPORTED_LANGUAGES.join("\n - "); var errors = { 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: - ${allLanguages}`, 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.oramasearch.com/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". Expected "string", "boolean" or "number".`, 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.` }; function createError(code, ...args) { var _a2; const error = new Error(sprintf((_a2 = errors[code]) != null ? _a2 : `Unsupported Orama Error code: ${code}`, ...args)); error.code = code; if ("captureStackTrace" in Error.prototype) { Error.captureStackTrace(error); } return error; } // ../../node_modules/.pnpm/@orama+orama@1.0.0-beta.16/node_modules/@orama/orama/dist/components/defaults.js async function formatElapsedTime(n) { return { raw: Number(n), formatted: await formatNanoseconds(n) }; } async function getDocumentIndexId(doc) { if (doc.id) { if (typeof doc.id !== "string") { throw createError("DOCUMENT_ID_MUST_BE_STRING", typeof doc.id); } return doc.id; } return await uniqueId(); } async function validateSchema(doc, schema) { for (const [prop, type] of Object.entries(schema)) { if (typeof type === "object") { if (!doc[prop] || typeof doc[prop] !== "object" && Array.isArray(doc[prop])) { return false; } if (!validateSchema(doc[prop], type)) { return false; } } if (typeof doc[prop] !== type) { return false; } } return true; } // ../../node_modules/.pnpm/@orama+orama@1.0.0-beta.16/node_modules/@orama/orama/dist/components/documents-store.js async function create() { return { docs: {}, count: 0 }; } async function get(store2, id) { return store2.docs[id]; } async function getMultiple(store2, ids) { const found = Array.from({ length: ids.length }); for (let i = 0; i < ids.length; i++) { found[i] = store2.docs[ids[i]]; } return found; } async function getAll(store2) { return store2.docs; } async function store(store2, id, doc) { if (typeof store2.docs[id] !== "undefined") { return false; } store2.docs[id] = doc; store2.count++; return true; } async function remove(store2, id) { if (typeof store2.docs[id] === "undefined") { return false; } store2.docs[id] = void 0; store2.count--; return true; } async function count(store2) { return store2.count; } async function load(raw) { const rawDocument = raw; return { docs: rawDocument.docs, count: rawDocument.count }; } async function save(docs) { return { docs: docs.docs, count: docs.count }; } async function createDocumentsStore() { return { create, get, getMultiple, getAll, store, remove, count, load, save }; } // ../../node_modules/.pnpm/@orama+orama@1.0.0-beta.16/node_modules/@orama/orama/dist/components/hooks.js var OBJECT_COMPONENTS = [ "tokenizer", "index", "documentsStore" ]; var FUNCTION_COMPONENTS = [ "validateSchema", "getDocumentIndexId", "getDocumentProperties", "formatElapsedTime" ]; var SINGLE_OR_ARRAY_COMPONENTS = [ "beforeInsert", "afterInsert", "beforeRemove", "afterRemove", "beforeUpdate", "afterUpdate", "beforeMultipleInsert", "afterMultipleInsert", "beforeMultipleRemove", "afterMultipleRemove", "beforeMultipleUpdate", "afterMultipleUpdate" ]; async function runSingleHook(hooks, orama, id, doc) { for (let i = 0; i < hooks.length; i++) { await hooks[i](orama, id, doc); } } // ../../node_modules/.pnpm/@orama+orama@1.0.0-beta.16/node_modules/@orama/orama/dist/trees/avl.js var BALANCE_STATE = { UNBALANCED_RIGHT: 1, SLIGHTLY_UNBALANCED_RIGHT: 2, BALANCED: 3, SLIGHTLY_UNBALANCED_LEFT: 4, UNBALANCED_LEFT: 5 }; function getBalanceFactor(node) { const heightDifference = getHeight(node.left) - getHeight(node.right); switch (heightDifference) { case -2: return BALANCE_STATE.UNBALANCED_RIGHT; case -1: return BALANCE_STATE.SLIGHTLY_UNBALANCED_RIGHT; case 1: return BALANCE_STATE.SLIGHTLY_UNBALANCED_LEFT; case 2: return BALANCE_STATE.UNBALANCED_LEFT; default: return BALANCE_STATE.BALANCED; } } function getHeight(node) { return node ? node.height : -1; } function rotateLeft(node) { const right = node.right; node.right = right.left; right.left = node; node.height = Math.max(getHeight(node.left), getHeight(node.right)) + 1; right.height = Math.max(getHeight(right.left), getHeight(right.right)) + 1; return right; } function rotateRight(node) { const left = node.left; node.left = left.right; left.right = node; node.height = Math.max(getHeight(node.left), getHeight(node.right)) + 1; left.height = Math.max(getHeight(left.left), getHeight(left.right)) + 1; return left; } function findMin(node) { return node.left ? findMin(node.left) : node; } function rangeSearch(node, min, max) { if (!node) { return []; } const result = []; function traverse(node2) { if (!node2) { return; } if (node2.key > min) { traverse(node2.left); } if (node2.key >= min && node2.key <= max) { result.push(...node2.value); } if (node2.key < max) { traverse(node2.right); } } traverse(node); return result; } function greaterThan(node, key, inclusive = false) { if (!node) { return []; } const result = []; function traverse(node2) { if (!node2) { return; } if (inclusive && node2.key >= key) { result.push(...node2.value); } if (!inclusive && node2.key > key) { result.push(...node2.value); } traverse(node2.left); traverse(node2.right); } traverse(node); return result; } function lessThan(node, key, inclusive = false) { if (!node) { return []; } const result = []; function traverse(node2) { if (!node2) { return; } if (inclusive && node2.key <= key) { result.push(...node2.value); } if (!inclusive && node2.key < key) { result.push(...node2.value); } traverse(node2.left); traverse(node2.right); } traverse(node); return result; } function getNodeByKey(node, key) { if (!node) { return null; } if (node.key === key) { return node; } if (key < node.key) { return node.left ? getNodeByKey(node.left, key) : null; } return node.right ? getNodeByKey(node.right, key) : null; } function create2(key, value) { return { key, value, left: null, right: null, height: 0 }; } function insert(node, key, value) { if (!node) { return create2(key, value); } if (key < node.key) { node.left = insert(node.left, key, value); } else if (key > node.key) { node.right = insert(node.right, key, value); } else { node.value = node.value.concat(value); return node; } const balanceFactor = getBalanceFactor(node); if (balanceFactor === BALANCE_STATE.UNBALANCED_LEFT) { if (key < node.left.key) { node = rotateRight(node); } else { node.left = rotateLeft(node.left); node = rotateRight(node); } } if (balanceFactor === BALANCE_STATE.UNBALANCED_RIGHT) { if (key > node.right.key) { node = rotateLeft(node); } else { node.right = rotateRight(node.right); node = rotateLeft(node); } } return node; } function find(node, key) { if (!node) { return null; } if (node.key === key) { return node.value; } if (key < node.key) { return node.left ? find(node.left, key) : null; } return node.right ? find(node.right, key) : null; } function remove2(node, key) { if (!node) { return null; } if (key < node.key) { node.left = remove2(node.left, key); } else if (key > node.key) { node.right = remove2(node.right, key); } else { if (!node.left && !node.right) { return null; } if (!node.left) { return node.right; } if (!node.right) { return node.left; } const temp = findMin(node.right); node.key = temp.key; node.right = remove2(node.right, temp.key); } const balanceFactor = getBalanceFactor(node); const leftNode = node.left; const rightNode = node.right; if (balanceFactor === BALANCE_STATE.UNBALANCED_LEFT) { if (getBalanceFactor(leftNode) === BALANCE_STATE.BALANCED || getBalanceFactor(leftNode) === BALANCE_STATE.SLIGHTLY_UNBALANCED_LEFT) { return rotateRight(node); } if (getBalanceFactor(leftNode) === BALANCE_STATE.SLIGHTLY_UNBALANCED_RIGHT) { node.left = rotateLeft(leftNode); return rotateRight(node); } } if (balanceFactor === BALANCE_STATE.UNBALANCED_RIGHT) { if (getBalanceFactor(rightNode) === BALANCE_STATE.BALANCED || getBalanceFactor(rightNode) === BALANCE_STATE.SLIGHTLY_UNBALANCED_RIGHT) { return rotateLeft(node); } if (getBalanceFactor(rightNode) === BALANCE_STATE.SLIGHTLY_UNBALANCED_LEFT) { node.right = rotateRight(rightNode); return rotateLeft(node); } } return node; } function removeDocument(root, id, key) { const node = getNodeByKey(root, key); if (node.value.length === 1) { remove2(root, key); return; } node.value.splice(node.value.indexOf(id), 1); } // ../../node_modules/.pnpm/@orama+orama@1.0.0-beta.16/node_modules/@orama/orama/dist/components/levenshtein.js function _boundedLevenshtein(a, b, tolerance) { if (a === b) { return 0; } const swap = a; if (a.length > b.length) { a = b; b = swap; } let lenA = a.length; let lenB = b.length; while (lenA > 0 && a.charCodeAt(~-lenA) === b.charCodeAt(~-lenB)) { lenA--; lenB--; } if (!lenA) { return lenB > tolerance ? -1 : lenB; } let startIdx = 0; while (startIdx < lenA && a.charCodeAt(startIdx) === b.charCodeAt(startIdx)) { startIdx++; } lenA -= startIdx; lenB -= startIdx; if (lenA === 0) { return lenB > tolerance ? -1 : lenB; } const delta = lenB - lenA; if (tolerance > lenB) { tolerance = lenB; } else if (delta > tolerance) { return -1; } let i = 0; const row = []; const characterCodeCache = []; while (i < tolerance) { characterCodeCache[i] = b.charCodeAt(startIdx + i); row[i] = ++i; } while (i < lenB) { characterCodeCache[i] = b.charCodeAt(startIdx + i); row[i++] = tolerance + 1; } const offset = tolerance - delta; const haveMax = tolerance < lenB; let jStart = 0; let jEnd = tolerance; let current = 0; let left = 0; let above = 0; let charA = 0; let j = 0; for (i = 0; i < lenA; i++) { left = i; current = i + 1; charA = a.charCodeAt(startIdx + i); jStart += i > offset ? 1 : 0; jEnd += jEnd < lenB ? 1 : 0; for (j = jStart; j < jEnd; j++) { above = current; current = left; left = row[j]; if (charA !== characterCodeCache[j]) { if (left < current) { current = left; } if (above < current) { current = above; } current++; } row[j] = current; } if (haveMax && row[i + delta] > tolerance) { return -1; } } return current <= tolerance ? current : -1; } function syncBoundedLevenshtein(a, b, tolerance) { const distance = _boundedLevenshtein(a, b, tolerance); return { distance, isBounded: distance >= 0 }; } // ../../node_modules/.pnpm/@orama+orama@1.0.0-beta.16/node_modules/@orama/orama/dist/trees/radix.js function serialize() { const { word, subWord, children, docs, end } = this; return { word, subWord, children, docs, end }; } function updateParent(node, parent) { node.parent = parent.id; node.word = parent.word + node.subWord; } function addDocument(node, docID) { node.docs.push(docID); } function removeDocument2(node, docID) { const index = node.docs.indexOf(docID); if (index === -1) { return false; } node.docs.splice(index, 1); return true; } function findAllWords(node, output, term, exact, tolerance) { if (node.end) { const { word, docs: docIDs } = node; if (exact && word !== term) { return {}; } if (!getOwnProperty(output, word)) { if (tolerance) { const difference = Math.abs(term.length - word.length); if (difference <= tolerance && syncBoundedLevenshtein(term, word, tolerance).isBounded) { output[word] = []; } } else { output[word] = []; } } if (getOwnProperty(output, word) && docIDs.length) { const docs = new Set(output[word]); const docIDsLength = docIDs.length; for (let i = 0; i < docIDsLength; i++) { docs.add(docIDs[i]); } output[word] = Array.from(docs); } } for (const character of Object.keys(node.children)) { findAllWords(node.children[character], output, term, exact, tolerance); } return output; } function getCommonPrefix(a, b) { let commonPrefix = ""; const len = Math.min(a.length, b.length); for (let i = 0; i < len; i++) { if (a[i] !== b[i]) { return commonPrefix; } commonPrefix += a[i]; } return commonPrefix; } function create3(end = false, subWord = "", key = "") { const node = { id: syncUniqueId(), key, subWord, parent: null, children: {}, docs: [], end, word: "" }; Object.defineProperty(node, "toJSON", { value: serialize }); return node; } function insert2(root, word, docId) { for (let i = 0; i < word.length; i++) { const currentCharacter = word[i]; const wordAtIndex = word.substring(i); const rootChildCurrentChar = root.children[currentCharacter]; if (rootChildCurrentChar) { const edgeLabel = rootChildCurrentChar.subWord; const edgeLabelLength = edgeLabel.length; const commonPrefix = getCommonPrefix(edgeLabel, wordAtIndex); const commonPrefixLength = commonPrefix.length; const edgeLabelAtCommonPrefix = edgeLabel[commonPrefixLength]; if (edgeLabel === wordAtIndex) { addDocument(rootChildCurrentChar, docId); rootChildCurrentChar.end = true; return; } if (commonPrefixLength < edgeLabelLength && commonPrefixLength === wordAtIndex.length) { const newNode = create3(true, wordAtIndex, currentCharacter); newNode.children[edgeLabelAtCommonPrefix] = rootChildCurrentChar; const newNodeChild = newNode.children[edgeLabelAtCommonPrefix]; newNodeChild.subWord = edgeLabel.substring(commonPrefixLength); newNodeChild.key = edgeLabelAtCommonPrefix; root.children[currentCharacter] = newNode; updateParent(newNode, root); updateParent(newNodeChild, newNode); addDocument(newNode, docId); return; } if (commonPrefixLength < edgeLabelLength && commonPrefixLength < wordAtIndex.length) { const inbetweenNode = create3(false, commonPrefix, currentCharacter); inbetweenNode.children[edgeLabelAtCommonPrefix] = rootChildCurrentChar; root.children[currentCharacter] = inbetweenNode; const inbetweenNodeChild = inbetweenNode.children[edgeLabelAtCommonPrefix]; inbetweenNodeChild.subWord = edgeLabel.substring(commonPrefixLength); inbetweenNodeChild.key = edgeLabelAtCommonPrefix; const wordAtCommonPrefix = wordAtIndex[commonPrefixLength]; const newNode = create3(true, word.substring(i + commonPrefixLength), wordAtCommonPrefix); addDocument(newNode, docId); inbetweenNode.children[wordAtCommonPrefix] = newNode; updateParent(inbetweenNode, root); updateParent(newNode, inbetweenNode); updateParent(inbetweenNodeChild, inbetweenNode); return; } i += edgeLabelLength - 1; root = rootChildCurrentChar; } else { const newNode = create3(true, wordAtIndex, currentCharacter); addDocument(newNode, docId); root.children[currentCharacter] = newNode; updateParent(newNode, root); return; } } } function find2(root, { term, exact, tolerance }) { for (let i = 0; i < term.length; i++) { const character = term[i]; if (character in root.children) { const rootChildCurrentChar = root.children[character]; const edgeLabel = rootChildCurrentChar.subWord; const termSubstring = term.substring(i); const commonPrefix = getCommonPrefix(edgeLabel, termSubstring); const commonPrefixLength = commonPrefix.length; if (commonPrefixLength !== edgeLabel.length && commonPrefixLength !== termSubstring.length) { if (tolerance) break; return {}; } i += rootChildCurrentChar.subWord.length - 1; root = rootChildCurrentChar; } else { return {}; } } const output = {}; findAllWords(root, output, term, exact, tolerance); return output; } function removeDocumentByWord(root, term, docID, exact = true) { if (!term) { return true; } for (let i = 0; i < term.length; i++) { const character = term[i]; if (character in root.children) { const rootChildCurrentChar = root.children[character]; i += rootChildCurrentChar.subWord.length - 1; root = rootChildCurrentChar; if (exact && root.word !== term) { } else { removeDocument2(root, docID); } } else { return false; } } return true; } // ../../node_modules/.pnpm/@orama+orama@1.0.0-beta.16/node_modules/@orama/orama/dist/components/algorithms.js function prioritizeTokenScores(arrays, boost, threshold = 1) { if (boost === 0) { throw createError("INVALID_BOOST_VALUE"); } const tokenMap = {}; const mapsLength = arrays.length; for (let i = 0; i < mapsLength; i++) { const arr = arrays[i]; const entriesLength = arr.length; for (let j = 0; j < entriesLength; j++) { const [token, score] = arr[j]; const boostScore = score * boost; if (token in tokenMap) { tokenMap[token] *= 1.5 + boostScore; } else { tokenMap[token] = boostScore; } } } const results = Object.entries(tokenMap).sort((a, b) => b[1] - a[1]); if (threshold === 1) { return results; } if (threshold === 0) { const shortestArrayLength = Math.min(...arrays.map((arr) => arr.length)); return results.slice(0, shortestArrayLength); } const thresholdLength = Math.ceil(threshold * 100 * results.length / 100); return results.slic