@verdaccio/search
Version:
verdaccio search utitlity tools
1,681 lines (1,663 loc) • 117 kB
JavaScript
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} [0m`;
args[0] = prefix + args[0].split("\n").join("\n" + prefix);
args.push(colorCode + "m+" + module2.exports.humanize(this.diff) + "[0m");
} 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