🚀. Socket Launch Week Day 2:Introducing Manifest Alerts.Learn more
Sign In

@edge.app/drupe

Package Overview
Dependencies
Maintainers
4
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@edge.app/drupe - npm Package Compare versions

Comparing version
0.0.7
to
0.0.8
+1568
dist/cjs/index.js
var __create = Object.create;
var __getProtoOf = Object.getPrototypeOf;
var __defProp = Object.defineProperty;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __toESM = (mod, isNodeMode, target) => {
target = mod != null ? __create(__getProtoOf(mod)) : {};
const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
for (let key of __getOwnPropNames(mod))
if (!__hasOwnProp.call(to, key))
__defProp(to, key, {
get: () => mod[key],
enumerable: true
});
return to;
};
var __moduleCache = /* @__PURE__ */ new WeakMap;
var __toCommonJS = (from) => {
var entry = __moduleCache.get(from), desc;
if (entry)
return entry;
entry = __defProp({}, "__esModule", { value: true });
if (from && typeof from === "object" || typeof from === "function")
__getOwnPropNames(from).map((key) => !__hasOwnProp.call(entry, key) && __defProp(entry, key, {
get: () => from[key],
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
}));
__moduleCache.set(from, entry);
return entry;
};
var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, {
get: all[name],
enumerable: true,
configurable: true,
set: (newValue) => all[name] = () => newValue
});
};
// node_modules/spark-md5/spark-md5.js
var require_spark_md5 = __commonJS((exports2, module2) => {
(function(factory) {
if (typeof exports2 === "object") {
module2.exports = factory();
} else if (typeof define === "function" && define.amd) {
define(factory);
} else {
var glob;
try {
glob = window;
} catch (e) {
glob = self;
}
glob.SparkMD5 = factory();
}
})(function(undefined2) {
var add32 = function(a, b) {
return a + b & 4294967295;
}, hex_chr = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"];
function cmn(q, a, b, x, s, t) {
a = add32(add32(a, q), add32(x, t));
return add32(a << s | a >>> 32 - s, b);
}
function md5cycle(x, k) {
var a = x[0], b = x[1], c = x[2], d = x[3];
a += (b & c | ~b & d) + k[0] - 680876936 | 0;
a = (a << 7 | a >>> 25) + b | 0;
d += (a & b | ~a & c) + k[1] - 389564586 | 0;
d = (d << 12 | d >>> 20) + a | 0;
c += (d & a | ~d & b) + k[2] + 606105819 | 0;
c = (c << 17 | c >>> 15) + d | 0;
b += (c & d | ~c & a) + k[3] - 1044525330 | 0;
b = (b << 22 | b >>> 10) + c | 0;
a += (b & c | ~b & d) + k[4] - 176418897 | 0;
a = (a << 7 | a >>> 25) + b | 0;
d += (a & b | ~a & c) + k[5] + 1200080426 | 0;
d = (d << 12 | d >>> 20) + a | 0;
c += (d & a | ~d & b) + k[6] - 1473231341 | 0;
c = (c << 17 | c >>> 15) + d | 0;
b += (c & d | ~c & a) + k[7] - 45705983 | 0;
b = (b << 22 | b >>> 10) + c | 0;
a += (b & c | ~b & d) + k[8] + 1770035416 | 0;
a = (a << 7 | a >>> 25) + b | 0;
d += (a & b | ~a & c) + k[9] - 1958414417 | 0;
d = (d << 12 | d >>> 20) + a | 0;
c += (d & a | ~d & b) + k[10] - 42063 | 0;
c = (c << 17 | c >>> 15) + d | 0;
b += (c & d | ~c & a) + k[11] - 1990404162 | 0;
b = (b << 22 | b >>> 10) + c | 0;
a += (b & c | ~b & d) + k[12] + 1804603682 | 0;
a = (a << 7 | a >>> 25) + b | 0;
d += (a & b | ~a & c) + k[13] - 40341101 | 0;
d = (d << 12 | d >>> 20) + a | 0;
c += (d & a | ~d & b) + k[14] - 1502002290 | 0;
c = (c << 17 | c >>> 15) + d | 0;
b += (c & d | ~c & a) + k[15] + 1236535329 | 0;
b = (b << 22 | b >>> 10) + c | 0;
a += (b & d | c & ~d) + k[1] - 165796510 | 0;
a = (a << 5 | a >>> 27) + b | 0;
d += (a & c | b & ~c) + k[6] - 1069501632 | 0;
d = (d << 9 | d >>> 23) + a | 0;
c += (d & b | a & ~b) + k[11] + 643717713 | 0;
c = (c << 14 | c >>> 18) + d | 0;
b += (c & a | d & ~a) + k[0] - 373897302 | 0;
b = (b << 20 | b >>> 12) + c | 0;
a += (b & d | c & ~d) + k[5] - 701558691 | 0;
a = (a << 5 | a >>> 27) + b | 0;
d += (a & c | b & ~c) + k[10] + 38016083 | 0;
d = (d << 9 | d >>> 23) + a | 0;
c += (d & b | a & ~b) + k[15] - 660478335 | 0;
c = (c << 14 | c >>> 18) + d | 0;
b += (c & a | d & ~a) + k[4] - 405537848 | 0;
b = (b << 20 | b >>> 12) + c | 0;
a += (b & d | c & ~d) + k[9] + 568446438 | 0;
a = (a << 5 | a >>> 27) + b | 0;
d += (a & c | b & ~c) + k[14] - 1019803690 | 0;
d = (d << 9 | d >>> 23) + a | 0;
c += (d & b | a & ~b) + k[3] - 187363961 | 0;
c = (c << 14 | c >>> 18) + d | 0;
b += (c & a | d & ~a) + k[8] + 1163531501 | 0;
b = (b << 20 | b >>> 12) + c | 0;
a += (b & d | c & ~d) + k[13] - 1444681467 | 0;
a = (a << 5 | a >>> 27) + b | 0;
d += (a & c | b & ~c) + k[2] - 51403784 | 0;
d = (d << 9 | d >>> 23) + a | 0;
c += (d & b | a & ~b) + k[7] + 1735328473 | 0;
c = (c << 14 | c >>> 18) + d | 0;
b += (c & a | d & ~a) + k[12] - 1926607734 | 0;
b = (b << 20 | b >>> 12) + c | 0;
a += (b ^ c ^ d) + k[5] - 378558 | 0;
a = (a << 4 | a >>> 28) + b | 0;
d += (a ^ b ^ c) + k[8] - 2022574463 | 0;
d = (d << 11 | d >>> 21) + a | 0;
c += (d ^ a ^ b) + k[11] + 1839030562 | 0;
c = (c << 16 | c >>> 16) + d | 0;
b += (c ^ d ^ a) + k[14] - 35309556 | 0;
b = (b << 23 | b >>> 9) + c | 0;
a += (b ^ c ^ d) + k[1] - 1530992060 | 0;
a = (a << 4 | a >>> 28) + b | 0;
d += (a ^ b ^ c) + k[4] + 1272893353 | 0;
d = (d << 11 | d >>> 21) + a | 0;
c += (d ^ a ^ b) + k[7] - 155497632 | 0;
c = (c << 16 | c >>> 16) + d | 0;
b += (c ^ d ^ a) + k[10] - 1094730640 | 0;
b = (b << 23 | b >>> 9) + c | 0;
a += (b ^ c ^ d) + k[13] + 681279174 | 0;
a = (a << 4 | a >>> 28) + b | 0;
d += (a ^ b ^ c) + k[0] - 358537222 | 0;
d = (d << 11 | d >>> 21) + a | 0;
c += (d ^ a ^ b) + k[3] - 722521979 | 0;
c = (c << 16 | c >>> 16) + d | 0;
b += (c ^ d ^ a) + k[6] + 76029189 | 0;
b = (b << 23 | b >>> 9) + c | 0;
a += (b ^ c ^ d) + k[9] - 640364487 | 0;
a = (a << 4 | a >>> 28) + b | 0;
d += (a ^ b ^ c) + k[12] - 421815835 | 0;
d = (d << 11 | d >>> 21) + a | 0;
c += (d ^ a ^ b) + k[15] + 530742520 | 0;
c = (c << 16 | c >>> 16) + d | 0;
b += (c ^ d ^ a) + k[2] - 995338651 | 0;
b = (b << 23 | b >>> 9) + c | 0;
a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;
a = (a << 6 | a >>> 26) + b | 0;
d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;
d = (d << 10 | d >>> 22) + a | 0;
c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;
c = (c << 15 | c >>> 17) + d | 0;
b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;
b = (b << 21 | b >>> 11) + c | 0;
a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;
a = (a << 6 | a >>> 26) + b | 0;
d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;
d = (d << 10 | d >>> 22) + a | 0;
c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;
c = (c << 15 | c >>> 17) + d | 0;
b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;
b = (b << 21 | b >>> 11) + c | 0;
a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;
a = (a << 6 | a >>> 26) + b | 0;
d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;
d = (d << 10 | d >>> 22) + a | 0;
c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;
c = (c << 15 | c >>> 17) + d | 0;
b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;
b = (b << 21 | b >>> 11) + c | 0;
a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;
a = (a << 6 | a >>> 26) + b | 0;
d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;
d = (d << 10 | d >>> 22) + a | 0;
c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;
c = (c << 15 | c >>> 17) + d | 0;
b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;
b = (b << 21 | b >>> 11) + c | 0;
x[0] = a + x[0] | 0;
x[1] = b + x[1] | 0;
x[2] = c + x[2] | 0;
x[3] = d + x[3] | 0;
}
function md5blk(s) {
var md5blks = [], i;
for (i = 0;i < 64; i += 4) {
md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);
}
return md5blks;
}
function md5blk_array(a) {
var md5blks = [], i;
for (i = 0;i < 64; i += 4) {
md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);
}
return md5blks;
}
function md51(s) {
var n = s.length, state = [1732584193, -271733879, -1732584194, 271733878], i, length, tail, tmp, lo, hi;
for (i = 64;i <= n; i += 64) {
md5cycle(state, md5blk(s.substring(i - 64, i)));
}
s = s.substring(i - 64);
length = s.length;
tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
for (i = 0;i < length; i += 1) {
tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);
}
tail[i >> 2] |= 128 << (i % 4 << 3);
if (i > 55) {
md5cycle(state, tail);
for (i = 0;i < 16; i += 1) {
tail[i] = 0;
}
}
tmp = n * 8;
tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);
lo = parseInt(tmp[2], 16);
hi = parseInt(tmp[1], 16) || 0;
tail[14] = lo;
tail[15] = hi;
md5cycle(state, tail);
return state;
}
function md51_array(a) {
var n = a.length, state = [1732584193, -271733879, -1732584194, 271733878], i, length, tail, tmp, lo, hi;
for (i = 64;i <= n; i += 64) {
md5cycle(state, md5blk_array(a.subarray(i - 64, i)));
}
a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);
length = a.length;
tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
for (i = 0;i < length; i += 1) {
tail[i >> 2] |= a[i] << (i % 4 << 3);
}
tail[i >> 2] |= 128 << (i % 4 << 3);
if (i > 55) {
md5cycle(state, tail);
for (i = 0;i < 16; i += 1) {
tail[i] = 0;
}
}
tmp = n * 8;
tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);
lo = parseInt(tmp[2], 16);
hi = parseInt(tmp[1], 16) || 0;
tail[14] = lo;
tail[15] = hi;
md5cycle(state, tail);
return state;
}
function rhex(n) {
var s = "", j;
for (j = 0;j < 4; j += 1) {
s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];
}
return s;
}
function hex(x) {
var i;
for (i = 0;i < x.length; i += 1) {
x[i] = rhex(x[i]);
}
return x.join("");
}
if (hex(md51("hello")) !== "5d41402abc4b2a76b9719d911017c592") {
add32 = function(x, y) {
var lsw = (x & 65535) + (y & 65535), msw = (x >> 16) + (y >> 16) + (lsw >> 16);
return msw << 16 | lsw & 65535;
};
}
if (typeof ArrayBuffer !== "undefined" && !ArrayBuffer.prototype.slice) {
(function() {
function clamp(val, length) {
val = val | 0 || 0;
if (val < 0) {
return Math.max(val + length, 0);
}
return Math.min(val, length);
}
ArrayBuffer.prototype.slice = function(from, to) {
var length = this.byteLength, begin = clamp(from, length), end = length, num, target, targetArray, sourceArray;
if (to !== undefined2) {
end = clamp(to, length);
}
if (begin > end) {
return new ArrayBuffer(0);
}
num = end - begin;
target = new ArrayBuffer(num);
targetArray = new Uint8Array(target);
sourceArray = new Uint8Array(this, begin, num);
targetArray.set(sourceArray);
return target;
};
})();
}
function toUtf8(str) {
if (/[\u0080-\uFFFF]/.test(str)) {
str = unescape(encodeURIComponent(str));
}
return str;
}
function utf8Str2ArrayBuffer(str, returnUInt8Array) {
var length = str.length, buff = new ArrayBuffer(length), arr = new Uint8Array(buff), i;
for (i = 0;i < length; i += 1) {
arr[i] = str.charCodeAt(i);
}
return returnUInt8Array ? arr : buff;
}
function arrayBuffer2Utf8Str(buff) {
return String.fromCharCode.apply(null, new Uint8Array(buff));
}
function concatenateArrayBuffers(first, second, returnUInt8Array) {
var result = new Uint8Array(first.byteLength + second.byteLength);
result.set(new Uint8Array(first));
result.set(new Uint8Array(second), first.byteLength);
return returnUInt8Array ? result : result.buffer;
}
function hexToBinaryString(hex2) {
var bytes = [], length = hex2.length, x;
for (x = 0;x < length - 1; x += 2) {
bytes.push(parseInt(hex2.substr(x, 2), 16));
}
return String.fromCharCode.apply(String, bytes);
}
function SparkMD5() {
this.reset();
}
SparkMD5.prototype.append = function(str) {
this.appendBinary(toUtf8(str));
return this;
};
SparkMD5.prototype.appendBinary = function(contents) {
this._buff += contents;
this._length += contents.length;
var length = this._buff.length, i;
for (i = 64;i <= length; i += 64) {
md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));
}
this._buff = this._buff.substring(i - 64);
return this;
};
SparkMD5.prototype.end = function(raw) {
var buff = this._buff, length = buff.length, i, tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], ret;
for (i = 0;i < length; i += 1) {
tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);
}
this._finish(tail, length);
ret = hex(this._hash);
if (raw) {
ret = hexToBinaryString(ret);
}
this.reset();
return ret;
};
SparkMD5.prototype.reset = function() {
this._buff = "";
this._length = 0;
this._hash = [1732584193, -271733879, -1732584194, 271733878];
return this;
};
SparkMD5.prototype.getState = function() {
return {
buff: this._buff,
length: this._length,
hash: this._hash.slice()
};
};
SparkMD5.prototype.setState = function(state) {
this._buff = state.buff;
this._length = state.length;
this._hash = state.hash;
return this;
};
SparkMD5.prototype.destroy = function() {
delete this._hash;
delete this._buff;
delete this._length;
};
SparkMD5.prototype._finish = function(tail, length) {
var i = length, tmp, lo, hi;
tail[i >> 2] |= 128 << (i % 4 << 3);
if (i > 55) {
md5cycle(this._hash, tail);
for (i = 0;i < 16; i += 1) {
tail[i] = 0;
}
}
tmp = this._length * 8;
tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);
lo = parseInt(tmp[2], 16);
hi = parseInt(tmp[1], 16) || 0;
tail[14] = lo;
tail[15] = hi;
md5cycle(this._hash, tail);
};
SparkMD5.hash = function(str, raw) {
return SparkMD5.hashBinary(toUtf8(str), raw);
};
SparkMD5.hashBinary = function(content, raw) {
var hash = md51(content), ret = hex(hash);
return raw ? hexToBinaryString(ret) : ret;
};
SparkMD5.ArrayBuffer = function() {
this.reset();
};
SparkMD5.ArrayBuffer.prototype.append = function(arr) {
var buff = concatenateArrayBuffers(this._buff.buffer, arr, true), length = buff.length, i;
this._length += arr.byteLength;
for (i = 64;i <= length; i += 64) {
md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));
}
this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);
return this;
};
SparkMD5.ArrayBuffer.prototype.end = function(raw) {
var buff = this._buff, length = buff.length, tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], i, ret;
for (i = 0;i < length; i += 1) {
tail[i >> 2] |= buff[i] << (i % 4 << 3);
}
this._finish(tail, length);
ret = hex(this._hash);
if (raw) {
ret = hexToBinaryString(ret);
}
this.reset();
return ret;
};
SparkMD5.ArrayBuffer.prototype.reset = function() {
this._buff = new Uint8Array(0);
this._length = 0;
this._hash = [1732584193, -271733879, -1732584194, 271733878];
return this;
};
SparkMD5.ArrayBuffer.prototype.getState = function() {
var state = SparkMD5.prototype.getState.call(this);
state.buff = arrayBuffer2Utf8Str(state.buff);
return state;
};
SparkMD5.ArrayBuffer.prototype.setState = function(state) {
state.buff = utf8Str2ArrayBuffer(state.buff, true);
return SparkMD5.prototype.setState.call(this, state);
};
SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;
SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;
SparkMD5.ArrayBuffer.hash = function(arr, raw) {
var hash = md51_array(new Uint8Array(arr)), ret = hex(hash);
return raw ? hexToBinaryString(ret) : ret;
};
return SparkMD5;
});
});
// src/index.ts
var exports_src = {};
__export(exports_src, {
drupe: () => drupe
});
module.exports = __toCommonJS(exports_src);
// node_modules/pouchdb-errors/lib/index.es.js
class PouchError extends Error {
constructor(status, error, reason) {
super();
this.status = status;
this.name = error;
this.message = reason;
this.error = true;
}
toString() {
return JSON.stringify({
status: this.status,
name: this.name,
message: this.message,
reason: this.reason
});
}
}
var UNAUTHORIZED = new PouchError(401, "unauthorized", "Name or password is incorrect.");
var MISSING_BULK_DOCS = new PouchError(400, "bad_request", "Missing JSON list of 'docs'");
var MISSING_DOC = new PouchError(404, "not_found", "missing");
var REV_CONFLICT = new PouchError(409, "conflict", "Document update conflict");
var INVALID_ID = new PouchError(400, "bad_request", "_id field must contain a string");
var MISSING_ID = new PouchError(412, "missing_id", "_id is required for puts");
var RESERVED_ID = new PouchError(400, "bad_request", "Only reserved document ids may start with underscore.");
var NOT_OPEN = new PouchError(412, "precondition_failed", "Database not open");
var UNKNOWN_ERROR = new PouchError(500, "unknown_error", "Database encountered an unknown error");
var BAD_ARG = new PouchError(500, "badarg", "Some query argument is invalid");
var INVALID_REQUEST = new PouchError(400, "invalid_request", "Request was invalid");
var QUERY_PARSE_ERROR = new PouchError(400, "query_parse_error", "Some query parameter is invalid");
var DOC_VALIDATION = new PouchError(500, "doc_validation", "Bad special document member");
var BAD_REQUEST = new PouchError(400, "bad_request", "Something wrong with the request");
var NOT_AN_OBJECT = new PouchError(400, "bad_request", "Document must be a JSON object");
var DB_MISSING = new PouchError(404, "not_found", "Database not found");
var IDB_ERROR = new PouchError(500, "indexed_db_went_bad", "unknown");
var WSQ_ERROR = new PouchError(500, "web_sql_went_bad", "unknown");
var LDB_ERROR = new PouchError(500, "levelDB_went_went_bad", "unknown");
var FORBIDDEN = new PouchError(403, "forbidden", "Forbidden by design doc validate_doc_update function");
var INVALID_REV = new PouchError(400, "bad_request", "Invalid rev format");
var FILE_EXISTS = new PouchError(412, "file_exists", "The database could not be created, the file already exists.");
var MISSING_STUB = new PouchError(412, "missing_stub", "A pre-existing attachment stub wasn't found");
var INVALID_URL = new PouchError(413, "invalid_url", "Provided URL is invalid");
// node:events
var SymbolFor = Symbol.for;
var kCapture = Symbol("kCapture");
var kErrorMonitor = SymbolFor("events.errorMonitor");
var kMaxEventTargetListeners = Symbol("events.maxEventTargetListeners");
var kMaxEventTargetListenersWarned = Symbol("events.maxEventTargetListenersWarned");
var kRejection = SymbolFor("nodejs.rejection");
var captureRejectionSymbol = SymbolFor("nodejs.rejection");
var ArrayPrototypeSlice = Array.prototype.slice;
var defaultMaxListeners = 10;
var EventEmitter = function EventEmitter2(opts) {
if (this._events === undefined || this._events === this.__proto__._events)
this._events = { __proto__: null }, this._eventsCount = 0;
if (this._maxListeners ??= undefined, this[kCapture] = opts?.captureRejections ? Boolean(opts?.captureRejections) : EventEmitterPrototype[kCapture])
this.emit = emitWithRejectionCapture;
};
var EventEmitterPrototype = EventEmitter.prototype = {};
EventEmitterPrototype._events = undefined;
EventEmitterPrototype._eventsCount = 0;
EventEmitterPrototype._maxListeners = undefined;
EventEmitterPrototype.setMaxListeners = function setMaxListeners(n) {
return validateNumber(n, "setMaxListeners", 0), this._maxListeners = n, this;
};
EventEmitterPrototype.constructor = EventEmitter;
EventEmitterPrototype.getMaxListeners = function getMaxListeners() {
return this?._maxListeners ?? defaultMaxListeners;
};
function emitError(emitter, args) {
var { _events: events } = emitter;
if (args[0] ??= new Error("Unhandled error."), !events)
throw args[0];
var errorMonitor = events[kErrorMonitor];
if (errorMonitor)
for (var handler of ArrayPrototypeSlice.call(errorMonitor))
handler.apply(emitter, args);
var handlers = events.error;
if (!handlers)
throw args[0];
for (var handler of ArrayPrototypeSlice.call(handlers))
handler.apply(emitter, args);
return true;
}
function addCatch(emitter, promise, type, args) {
promise.then(undefined, function(err) {
queueMicrotask(() => emitUnhandledRejectionOrErr(emitter, err, type, args));
});
}
function emitUnhandledRejectionOrErr(emitter, err, type, args) {
if (typeof emitter[kRejection] === "function")
emitter[kRejection](err, type, ...args);
else
try {
emitter[kCapture] = false, emitter.emit("error", err);
} finally {
emitter[kCapture] = true;
}
}
var emitWithoutRejectionCapture = function emit(type, ...args) {
if (type === "error")
return emitError(this, args);
var { _events: events } = this;
if (events === undefined)
return false;
var handlers = events[type];
if (handlers === undefined)
return false;
let maybeClonedHandlers = handlers.length > 1 ? handlers.slice() : handlers;
for (let i = 0, { length } = maybeClonedHandlers;i < length; i++) {
let handler = maybeClonedHandlers[i];
switch (args.length) {
case 0:
handler.call(this);
break;
case 1:
handler.call(this, args[0]);
break;
case 2:
handler.call(this, args[0], args[1]);
break;
case 3:
handler.call(this, args[0], args[1], args[2]);
break;
default:
handler.apply(this, args);
break;
}
}
return true;
};
var emitWithRejectionCapture = function emit2(type, ...args) {
if (type === "error")
return emitError(this, args);
var { _events: events } = this;
if (events === undefined)
return false;
var handlers = events[type];
if (handlers === undefined)
return false;
let maybeClonedHandlers = handlers.length > 1 ? handlers.slice() : handlers;
for (let i = 0, { length } = maybeClonedHandlers;i < length; i++) {
let handler = maybeClonedHandlers[i], result;
switch (args.length) {
case 0:
result = handler.call(this);
break;
case 1:
result = handler.call(this, args[0]);
break;
case 2:
result = handler.call(this, args[0], args[1]);
break;
case 3:
result = handler.call(this, args[0], args[1], args[2]);
break;
default:
result = handler.apply(this, args);
break;
}
if (result !== undefined && typeof result?.then === "function" && result.then === Promise.prototype.then)
addCatch(this, result, type, args);
}
return true;
};
EventEmitterPrototype.emit = emitWithoutRejectionCapture;
EventEmitterPrototype.addListener = function addListener(type, fn) {
checkListener(fn);
var events = this._events;
if (!events)
events = this._events = { __proto__: null }, this._eventsCount = 0;
else if (events.newListener)
this.emit("newListener", type, fn.listener ?? fn);
var handlers = events[type];
if (!handlers)
events[type] = [fn], this._eventsCount++;
else {
handlers.push(fn);
var m = this._maxListeners ?? defaultMaxListeners;
if (m > 0 && handlers.length > m && !handlers.warned)
overflowWarning(this, type, handlers);
}
return this;
};
EventEmitterPrototype.on = EventEmitterPrototype.addListener;
EventEmitterPrototype.prependListener = function prependListener(type, fn) {
checkListener(fn);
var events = this._events;
if (!events)
events = this._events = { __proto__: null }, this._eventsCount = 0;
else if (events.newListener)
this.emit("newListener", type, fn.listener ?? fn);
var handlers = events[type];
if (!handlers)
events[type] = [fn], this._eventsCount++;
else {
handlers.unshift(fn);
var m = this._maxListeners ?? defaultMaxListeners;
if (m > 0 && handlers.length > m && !handlers.warned)
overflowWarning(this, type, handlers);
}
return this;
};
function overflowWarning(emitter, type, handlers) {
handlers.warned = true;
let warn = new Error(`Possible EventEmitter memory leak detected. ${handlers.length} ${String(type)} listeners added to [${emitter.constructor.name}]. Use emitter.setMaxListeners() to increase limit`);
warn.name = "MaxListenersExceededWarning", warn.emitter = emitter, warn.type = type, warn.count = handlers.length, console.warn(warn);
}
function onceWrapper(type, listener, ...args) {
this.removeListener(type, listener), listener.apply(this, args);
}
EventEmitterPrototype.once = function once(type, fn) {
checkListener(fn);
let bound = onceWrapper.bind(this, type, fn);
return bound.listener = fn, this.addListener(type, bound), this;
};
EventEmitterPrototype.prependOnceListener = function prependOnceListener(type, fn) {
checkListener(fn);
let bound = onceWrapper.bind(this, type, fn);
return bound.listener = fn, this.prependListener(type, bound), this;
};
EventEmitterPrototype.removeListener = function removeListener(type, fn) {
checkListener(fn);
var { _events: events } = this;
if (!events)
return this;
var handlers = events[type];
if (!handlers)
return this;
var length = handlers.length;
let position = -1;
for (let i = length - 1;i >= 0; i--)
if (handlers[i] === fn || handlers[i].listener === fn) {
position = i;
break;
}
if (position < 0)
return this;
if (position === 0)
handlers.shift();
else
handlers.splice(position, 1);
if (handlers.length === 0)
delete events[type], this._eventsCount--;
return this;
};
EventEmitterPrototype.off = EventEmitterPrototype.removeListener;
EventEmitterPrototype.removeAllListeners = function removeAllListeners(type) {
var { _events: events } = this;
if (type && events) {
if (events[type])
delete events[type], this._eventsCount--;
} else
this._events = { __proto__: null };
return this;
};
EventEmitterPrototype.listeners = function listeners(type) {
var { _events: events } = this;
if (!events)
return [];
var handlers = events[type];
if (!handlers)
return [];
return handlers.map((x) => x.listener ?? x);
};
EventEmitterPrototype.rawListeners = function rawListeners(type) {
var { _events } = this;
if (!_events)
return [];
var handlers = _events[type];
if (!handlers)
return [];
return handlers.slice();
};
EventEmitterPrototype.listenerCount = function listenerCount(type) {
var { _events: events } = this;
if (!events)
return 0;
return events[type]?.length ?? 0;
};
EventEmitterPrototype.eventNames = function eventNames() {
return this._eventsCount > 0 ? Reflect.ownKeys(this._events) : [];
};
EventEmitterPrototype[kCapture] = false;
function once2(emitter, type, options) {
var signal = options?.signal;
if (validateAbortSignal(signal, "options.signal"), signal?.aborted)
throw new AbortError(undefined, { cause: signal?.reason });
let { resolve, reject, promise } = $newPromiseCapability(Promise), errorListener = (err) => {
if (emitter.removeListener(type, resolver), signal != null)
eventTargetAgnosticRemoveListener(signal, "abort", abortListener);
reject(err);
}, resolver = (...args) => {
if (typeof emitter.removeListener === "function")
emitter.removeListener("error", errorListener);
if (signal != null)
eventTargetAgnosticRemoveListener(signal, "abort", abortListener);
resolve(args);
};
if (eventTargetAgnosticAddListener(emitter, type, resolver, { once: true }), type !== "error" && typeof emitter.once === "function")
emitter.once("error", errorListener);
function abortListener() {
eventTargetAgnosticRemoveListener(emitter, type, resolver), eventTargetAgnosticRemoveListener(emitter, "error", errorListener), reject(new AbortError(undefined, { cause: signal?.reason }));
}
if (signal != null)
eventTargetAgnosticAddListener(signal, "abort", abortListener, { once: true });
return promise;
}
function getEventListeners(emitter, type) {
return emitter.listeners(type);
}
function setMaxListeners2(n, ...eventTargets) {
validateNumber(n, "setMaxListeners", 0);
var length;
if (eventTargets && (length = eventTargets.length))
for (let i = 0;i < length; i++)
eventTargets[i].setMaxListeners(n);
else
defaultMaxListeners = n;
}
function listenerCount2(emitter, type) {
return emitter.listenerCount(type);
}
function eventTargetAgnosticRemoveListener(emitter, name, listener, flags) {
if (typeof emitter.removeListener === "function")
emitter.removeListener(name, listener);
else
emitter.removeEventListener(name, listener, flags);
}
function eventTargetAgnosticAddListener(emitter, name, listener, flags) {
if (typeof emitter.on === "function")
if (flags.once)
emitter.once(name, listener);
else
emitter.on(name, listener);
else
emitter.addEventListener(name, listener, flags);
}
class AbortError extends Error {
constructor(message = "The operation was aborted", options = undefined) {
if (options !== undefined && typeof options !== "object")
throw ERR_INVALID_ARG_TYPE("options", "Object", options);
super(message, options);
this.code = "ABORT_ERR", this.name = "AbortError";
}
}
function ERR_INVALID_ARG_TYPE(name, type, value) {
let err = new TypeError(`The "${name}" argument must be of type ${type}. Received ${value}`);
return err.code = "ERR_INVALID_ARG_TYPE", err;
}
function ERR_OUT_OF_RANGE(name, range, value) {
let err = new RangeError(`The "${name}" argument is out of range. It must be ${range}. Received ${value}`);
return err.code = "ERR_OUT_OF_RANGE", err;
}
function validateAbortSignal(signal, name) {
if (signal !== undefined && (signal === null || typeof signal !== "object" || !("aborted" in signal)))
throw ERR_INVALID_ARG_TYPE(name, "AbortSignal", signal);
}
function validateNumber(value, name, min, max) {
if (typeof value !== "number")
throw ERR_INVALID_ARG_TYPE(name, "number", value);
if (min != null && value < min || max != null && value > max || (min != null || max != null) && Number.isNaN(value))
throw ERR_OUT_OF_RANGE(name, `${min != null ? `>= ${min}` : ""}${min != null && max != null ? " && " : ""}${max != null ? `<= ${max}` : ""}`, value);
}
function checkListener(listener) {
if (typeof listener !== "function")
throw new TypeError("The listener must be a function");
}
function validateBoolean(value, name) {
if (typeof value !== "boolean")
throw ERR_INVALID_ARG_TYPE(name, "boolean", value);
}
function getMaxListeners2(emitterOrTarget) {
return emitterOrTarget?._maxListeners ?? defaultMaxListeners;
}
function addAbortListener(signal, listener) {
if (signal === undefined)
throw ERR_INVALID_ARG_TYPE("signal", "AbortSignal", signal);
if (validateAbortSignal(signal, "signal"), typeof listener !== "function")
throw ERR_INVALID_ARG_TYPE("listener", "function", listener);
let removeEventListener;
if (signal.aborted)
queueMicrotask(() => listener());
else
signal.addEventListener("abort", listener, { __proto__: null, once: true }), removeEventListener = () => {
signal.removeEventListener("abort", listener);
};
return { __proto__: null, [Symbol.dispose]() {
removeEventListener?.();
} };
}
Object.defineProperties(EventEmitter, { captureRejections: { get() {
return EventEmitterPrototype[kCapture];
}, set(value) {
validateBoolean(value, "EventEmitter.captureRejections"), EventEmitterPrototype[kCapture] = value;
}, enumerable: true }, defaultMaxListeners: { enumerable: true, get: () => {
return defaultMaxListeners;
}, set: (arg) => {
validateNumber(arg, "defaultMaxListeners", 0), defaultMaxListeners = arg;
} }, kMaxEventTargetListeners: { value: kMaxEventTargetListeners, enumerable: false, configurable: false, writable: false }, kMaxEventTargetListenersWarned: { value: kMaxEventTargetListenersWarned, enumerable: false, configurable: false, writable: false } });
Object.assign(EventEmitter, { once: once2, getEventListeners, getMaxListeners: getMaxListeners2, setMaxListeners: setMaxListeners2, EventEmitter, usingDomains: false, captureRejectionSymbol, errorMonitor: kErrorMonitor, addAbortListener, init: EventEmitter, listenerCount: listenerCount2 });
// node_modules/pouchdb-md5/lib/index-browser.es.js
var import_spark_md5 = __toESM(require_spark_md5());
var setImmediateShim = self.setImmediate || self.setTimeout;
// node_modules/pouchdb-utils/lib/index-browser.es.js
function isBinaryObject(object) {
return typeof ArrayBuffer !== "undefined" && object instanceof ArrayBuffer || typeof Blob !== "undefined" && object instanceof Blob;
}
function cloneBinaryObject(object) {
return object instanceof ArrayBuffer ? object.slice(0) : object.slice(0, object.size, object.type);
}
var funcToString = Function.prototype.toString;
var objectCtorString = funcToString.call(Object);
function isPlainObject(value) {
var proto = Object.getPrototypeOf(value);
if (proto === null) {
return true;
}
var Ctor = proto.constructor;
return typeof Ctor == "function" && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString;
}
function clone(object) {
var newObject;
var i;
var len;
if (!object || typeof object !== "object") {
return object;
}
if (Array.isArray(object)) {
newObject = [];
for (i = 0, len = object.length;i < len; i++) {
newObject[i] = clone(object[i]);
}
return newObject;
}
if (object instanceof Date && isFinite(object)) {
return object.toISOString();
}
if (isBinaryObject(object)) {
return cloneBinaryObject(object);
}
if (!isPlainObject(object)) {
return object;
}
newObject = {};
for (i in object) {
if (Object.prototype.hasOwnProperty.call(object, i)) {
var value = clone(object[i]);
if (typeof value !== "undefined") {
newObject[i] = value;
}
}
}
return newObject;
}
var hasLocal;
try {
localStorage.setItem("_pouch_check_localstorage", 1);
hasLocal = !!localStorage.getItem("_pouch_check_localstorage");
} catch (e) {
hasLocal = false;
}
function f() {}
var hasName = f.name;
var res;
if (hasName) {
res = function(fun) {
return fun.name;
};
} else {
res = function(fun) {
var match = fun.toString().match(/^\s*function\s*(?:(\S+)\s*)?\(/);
if (match && match[1]) {
return match[1];
} else {
return "";
}
};
}
// node_modules/pouchdb-collate/lib/index.es.js
function collate(a, b) {
if (a === b) {
return 0;
}
a = normalizeKey(a);
b = normalizeKey(b);
var ai = collationIndex(a);
var bi = collationIndex(b);
if (ai - bi !== 0) {
return ai - bi;
}
switch (typeof a) {
case "number":
return a - b;
case "boolean":
return a < b ? -1 : 1;
case "string":
return stringCollate(a, b);
}
return Array.isArray(a) ? arrayCollate(a, b) : objectCollate(a, b);
}
function normalizeKey(key) {
switch (typeof key) {
case "undefined":
return null;
case "number":
if (key === Infinity || key === -Infinity || isNaN(key)) {
return null;
}
return key;
case "object":
var origKey = key;
if (Array.isArray(key)) {
var len = key.length;
key = new Array(len);
for (var i = 0;i < len; i++) {
key[i] = normalizeKey(origKey[i]);
}
} else if (key instanceof Date) {
return key.toJSON();
} else if (key !== null) {
key = {};
for (var k in origKey) {
if (Object.prototype.hasOwnProperty.call(origKey, k)) {
var val = origKey[k];
if (typeof val !== "undefined") {
key[k] = normalizeKey(val);
}
}
}
}
}
return key;
}
function arrayCollate(a, b) {
var len = Math.min(a.length, b.length);
for (var i = 0;i < len; i++) {
var sort = collate(a[i], b[i]);
if (sort !== 0) {
return sort;
}
}
return a.length === b.length ? 0 : a.length > b.length ? 1 : -1;
}
function stringCollate(a, b) {
return a === b ? 0 : a > b ? 1 : -1;
}
function objectCollate(a, b) {
var ak = Object.keys(a), bk = Object.keys(b);
var len = Math.min(ak.length, bk.length);
for (var i = 0;i < len; i++) {
var sort = collate(ak[i], bk[i]);
if (sort !== 0) {
return sort;
}
sort = collate(a[ak[i]], b[bk[i]]);
if (sort !== 0) {
return sort;
}
}
return ak.length === bk.length ? 0 : ak.length > bk.length ? 1 : -1;
}
function collationIndex(x) {
var id = ["boolean", "number", "string", "object"];
var idx = id.indexOf(typeof x);
if (~idx) {
if (x === null) {
return 1;
}
if (Array.isArray(x)) {
return 5;
}
return idx < 3 ? idx + 2 : idx + 3;
}
if (Array.isArray(x)) {
return 5;
}
}
// node_modules/pouchdb-selector-core/lib/index.es.js
function getFieldFromDoc(doc, parsedField) {
var value = doc;
for (var i = 0, len = parsedField.length;i < len; i++) {
var key = parsedField[i];
value = value[key];
if (!value) {
break;
}
}
return value;
}
function compare(left, right) {
return left < right ? -1 : left > right ? 1 : 0;
}
function parseField(fieldName) {
var fields = [];
var current = "";
for (var i = 0, len = fieldName.length;i < len; i++) {
var ch = fieldName[i];
if (i > 0 && fieldName[i - 1] === "\\" && (ch === "$" || ch === ".")) {
current = current.substring(0, current.length - 1) + ch;
} else if (ch === ".") {
fields.push(current);
current = "";
} else {
current += ch;
}
}
fields.push(current);
return fields;
}
var combinationFields = ["$or", "$nor", "$not"];
function isCombinationalField(field) {
return combinationFields.indexOf(field) > -1;
}
function getKey(obj) {
return Object.keys(obj)[0];
}
function getValue(obj) {
return obj[getKey(obj)];
}
function mergeAndedSelectors(selectors) {
var res2 = {};
var first = { $or: true, $nor: true };
selectors.forEach(function(selector) {
Object.keys(selector).forEach(function(field) {
var matcher = selector[field];
if (typeof matcher !== "object") {
matcher = { $eq: matcher };
}
if (isCombinationalField(field)) {
if (matcher instanceof Array) {
if (first[field]) {
first[field] = false;
res2[field] = matcher;
return;
}
var entries = [];
res2[field].forEach(function(existing) {
Object.keys(matcher).forEach(function(key) {
var m = matcher[key];
var longest = Math.max(Object.keys(existing).length, Object.keys(m).length);
var merged = mergeAndedSelectors([existing, m]);
if (Object.keys(merged).length <= longest) {
return;
}
entries.push(merged);
});
});
res2[field] = entries;
} else {
res2[field] = mergeAndedSelectors([matcher]);
}
} else {
var fieldMatchers = res2[field] = res2[field] || {};
Object.keys(matcher).forEach(function(operator) {
var value = matcher[operator];
if (operator === "$gt" || operator === "$gte") {
return mergeGtGte(operator, value, fieldMatchers);
} else if (operator === "$lt" || operator === "$lte") {
return mergeLtLte(operator, value, fieldMatchers);
} else if (operator === "$ne") {
return mergeNe(value, fieldMatchers);
} else if (operator === "$eq") {
return mergeEq(value, fieldMatchers);
} else if (operator === "$regex") {
return mergeRegex(value, fieldMatchers);
}
fieldMatchers[operator] = value;
});
}
});
});
return res2;
}
function mergeGtGte(operator, value, fieldMatchers) {
if (typeof fieldMatchers.$eq !== "undefined") {
return;
}
if (typeof fieldMatchers.$gte !== "undefined") {
if (operator === "$gte") {
if (value > fieldMatchers.$gte) {
fieldMatchers.$gte = value;
}
} else {
if (value >= fieldMatchers.$gte) {
delete fieldMatchers.$gte;
fieldMatchers.$gt = value;
}
}
} else if (typeof fieldMatchers.$gt !== "undefined") {
if (operator === "$gte") {
if (value > fieldMatchers.$gt) {
delete fieldMatchers.$gt;
fieldMatchers.$gte = value;
}
} else {
if (value > fieldMatchers.$gt) {
fieldMatchers.$gt = value;
}
}
} else {
fieldMatchers[operator] = value;
}
}
function mergeLtLte(operator, value, fieldMatchers) {
if (typeof fieldMatchers.$eq !== "undefined") {
return;
}
if (typeof fieldMatchers.$lte !== "undefined") {
if (operator === "$lte") {
if (value < fieldMatchers.$lte) {
fieldMatchers.$lte = value;
}
} else {
if (value <= fieldMatchers.$lte) {
delete fieldMatchers.$lte;
fieldMatchers.$lt = value;
}
}
} else if (typeof fieldMatchers.$lt !== "undefined") {
if (operator === "$lte") {
if (value < fieldMatchers.$lt) {
delete fieldMatchers.$lt;
fieldMatchers.$lte = value;
}
} else {
if (value < fieldMatchers.$lt) {
fieldMatchers.$lt = value;
}
}
} else {
fieldMatchers[operator] = value;
}
}
function mergeNe(value, fieldMatchers) {
if ("$ne" in fieldMatchers) {
fieldMatchers.$ne.push(value);
} else {
fieldMatchers.$ne = [value];
}
}
function mergeEq(value, fieldMatchers) {
delete fieldMatchers.$gt;
delete fieldMatchers.$gte;
delete fieldMatchers.$lt;
delete fieldMatchers.$lte;
delete fieldMatchers.$ne;
fieldMatchers.$eq = value;
}
function mergeRegex(value, fieldMatchers) {
if ("$regex" in fieldMatchers) {
fieldMatchers.$regex.push(value);
} else {
fieldMatchers.$regex = [value];
}
}
function mergeAndedSelectorsNested(obj) {
for (var prop in obj) {
if (Array.isArray(obj)) {
for (var i in obj) {
if (obj[i]["$and"]) {
obj[i] = mergeAndedSelectors(obj[i]["$and"]);
}
}
}
var value = obj[prop];
if (typeof value === "object") {
mergeAndedSelectorsNested(value);
}
}
return obj;
}
function isAndInSelector(obj, isAnd) {
for (var prop in obj) {
if (prop === "$and") {
isAnd = true;
}
var value = obj[prop];
if (typeof value === "object") {
isAnd = isAndInSelector(value, isAnd);
}
}
return isAnd;
}
function massageSelector(input) {
var result = clone(input);
if (isAndInSelector(result, false)) {
result = mergeAndedSelectorsNested(result);
if ("$and" in result) {
result = mergeAndedSelectors(result["$and"]);
}
}
["$or", "$nor"].forEach(function(orOrNor) {
if (orOrNor in result) {
result[orOrNor].forEach(function(subSelector) {
var fields2 = Object.keys(subSelector);
for (var i2 = 0;i2 < fields2.length; i2++) {
var field2 = fields2[i2];
var matcher2 = subSelector[field2];
if (typeof matcher2 !== "object" || matcher2 === null) {
subSelector[field2] = { $eq: matcher2 };
}
}
});
}
});
if ("$not" in result) {
result["$not"] = mergeAndedSelectors([result["$not"]]);
}
var fields = Object.keys(result);
for (var i = 0;i < fields.length; i++) {
var field = fields[i];
var matcher = result[field];
if (typeof matcher !== "object" || matcher === null) {
matcher = { $eq: matcher };
}
result[field] = matcher;
}
normalizeArrayOperators(result);
return result;
}
function normalizeArrayOperators(selector) {
Object.keys(selector).forEach(function(field) {
var matcher = selector[field];
if (Array.isArray(matcher)) {
matcher.forEach(function(matcherItem) {
if (matcherItem && typeof matcherItem === "object") {
normalizeArrayOperators(matcherItem);
}
});
} else if (field === "$ne") {
selector.$ne = [matcher];
} else if (field === "$regex") {
selector.$regex = [matcher];
} else if (matcher && typeof matcher === "object") {
normalizeArrayOperators(matcher);
}
});
}
function createFieldSorter(sort) {
function getFieldValuesAsArray(doc) {
return sort.map(function(sorting) {
var fieldName = getKey(sorting);
var parsedField = parseField(fieldName);
var docFieldValue = getFieldFromDoc(doc, parsedField);
return docFieldValue;
});
}
return function(aRow, bRow) {
var aFieldValues = getFieldValuesAsArray(aRow.doc);
var bFieldValues = getFieldValuesAsArray(bRow.doc);
var collation = collate(aFieldValues, bFieldValues);
if (collation !== 0) {
return collation;
}
return compare(aRow.doc._id, bRow.doc._id);
};
}
function filterInMemoryFields(rows, requestDef, inMemoryFields) {
rows = rows.filter(function(row) {
return rowFilter(row.doc, requestDef.selector, inMemoryFields);
});
if (requestDef.sort) {
var fieldSorter = createFieldSorter(requestDef.sort);
rows = rows.sort(fieldSorter);
if (typeof requestDef.sort[0] !== "string" && getValue(requestDef.sort[0]) === "desc") {
rows = rows.reverse();
}
}
if ("limit" in requestDef || "skip" in requestDef) {
var skip = requestDef.skip || 0;
var limit = ("limit" in requestDef ? requestDef.limit : rows.length) + skip;
rows = rows.slice(skip, limit);
}
return rows;
}
function rowFilter(doc, selector, inMemoryFields) {
return inMemoryFields.every(function(field) {
var matcher = selector[field];
var parsedField = parseField(field);
var docFieldValue = getFieldFromDoc(doc, parsedField);
if (isCombinationalField(field)) {
return matchCominationalSelector(field, matcher, doc);
}
return matchSelector(matcher, doc, parsedField, docFieldValue);
});
}
function matchSelector(matcher, doc, parsedField, docFieldValue) {
if (!matcher) {
return true;
}
if (typeof matcher === "object") {
return Object.keys(matcher).every(function(maybeUserOperator) {
var userValue = matcher[maybeUserOperator];
if (maybeUserOperator.indexOf("$") === 0) {
return match(maybeUserOperator, doc, userValue, parsedField, docFieldValue);
} else {
var subParsedField = parseField(maybeUserOperator);
if (docFieldValue === undefined && typeof userValue !== "object" && subParsedField.length > 0) {
return false;
}
var subDocFieldValue = getFieldFromDoc(docFieldValue, subParsedField);
if (typeof userValue === "object") {
return matchSelector(userValue, doc, parsedField, subDocFieldValue);
}
return match("$eq", doc, userValue, subParsedField, subDocFieldValue);
}
});
}
return matcher === docFieldValue;
}
function matchCominationalSelector(field, matcher, doc) {
if (field === "$or") {
return matcher.some(function(orMatchers) {
return rowFilter(doc, orMatchers, Object.keys(orMatchers));
});
}
if (field === "$not") {
return !rowFilter(doc, matcher, Object.keys(matcher));
}
return !matcher.find(function(orMatchers) {
return rowFilter(doc, orMatchers, Object.keys(orMatchers));
});
}
function match(userOperator, doc, userValue, parsedField, docFieldValue) {
if (!matchers[userOperator]) {
throw new Error('unknown operator "' + userOperator + '" - should be one of $eq, $lte, $lt, $gt, $gte, $exists, $ne, $in, ' + "$nin, $size, $mod, $regex, $elemMatch, $type, $allMatch or $all");
}
return matchers[userOperator](doc, userValue, parsedField, docFieldValue);
}
function fieldExists(docFieldValue) {
return typeof docFieldValue !== "undefined" && docFieldValue !== null;
}
function fieldIsNotUndefined(docFieldValue) {
return typeof docFieldValue !== "undefined";
}
function modField(docFieldValue, userValue) {
if (typeof docFieldValue !== "number" || parseInt(docFieldValue, 10) !== docFieldValue) {
return false;
}
var divisor = userValue[0];
var mod = userValue[1];
return docFieldValue % divisor === mod;
}
function arrayContainsValue(docFieldValue, userValue) {
return userValue.some(function(val) {
if (docFieldValue instanceof Array) {
return docFieldValue.some(function(docFieldValueItem) {
return collate(val, docFieldValueItem) === 0;
});
}
return collate(val, docFieldValue) === 0;
});
}
function arrayContainsAllValues(docFieldValue, userValue) {
return userValue.every(function(val) {
return docFieldValue.some(function(docFieldValueItem) {
return collate(val, docFieldValueItem) === 0;
});
});
}
function arraySize(docFieldValue, userValue) {
return docFieldValue.length === userValue;
}
function regexMatch(docFieldValue, userValue) {
var re = new RegExp(userValue);
return re.test(docFieldValue);
}
function typeMatch(docFieldValue, userValue) {
switch (userValue) {
case "null":
return docFieldValue === null;
case "boolean":
return typeof docFieldValue === "boolean";
case "number":
return typeof docFieldValue === "number";
case "string":
return typeof docFieldValue === "string";
case "array":
return docFieldValue instanceof Array;
case "object":
return {}.toString.call(docFieldValue) === "[object Object]";
}
}
var matchers = {
$elemMatch: function(doc, userValue, parsedField, docFieldValue) {
if (!Array.isArray(docFieldValue)) {
return false;
}
if (docFieldValue.length === 0) {
return false;
}
if (typeof docFieldValue[0] === "object" && docFieldValue[0] !== null) {
return docFieldValue.some(function(val) {
return rowFilter(val, userValue, Object.keys(userValue));
});
}
return docFieldValue.some(function(val) {
return matchSelector(userValue, doc, parsedField, val);
});
},
$allMatch: function(doc, userValue, parsedField, docFieldValue) {
if (!Array.isArray(docFieldValue)) {
return false;
}
if (docFieldValue.length === 0) {
return false;
}
if (typeof docFieldValue[0] === "object" && docFieldValue[0] !== null) {
return docFieldValue.every(function(val) {
return rowFilter(val, userValue, Object.keys(userValue));
});
}
return docFieldValue.every(function(val) {
return matchSelector(userValue, doc, parsedField, val);
});
},
$eq: function(doc, userValue, parsedField, docFieldValue) {
return fieldIsNotUndefined(docFieldValue) && collate(docFieldValue, userValue) === 0;
},
$gte: function(doc, userValue, parsedField, docFieldValue) {
return fieldIsNotUndefined(docFieldValue) && collate(docFieldValue, userValue) >= 0;
},
$gt: function(doc, userValue, parsedField, docFieldValue) {
return fieldIsNotUndefined(docFieldValue) && collate(docFieldValue, userValue) > 0;
},
$lte: function(doc, userValue, parsedField, docFieldValue) {
return fieldIsNotUndefined(docFieldValue) && collate(docFieldValue, userValue) <= 0;
},
$lt: function(doc, userValue, parsedField, docFieldValue) {
return fieldIsNotUndefined(docFieldValue) && collate(docFieldValue, userValue) < 0;
},
$exists: function(doc, userValue, parsedField, docFieldValue) {
if (userValue) {
return fieldIsNotUndefined(docFieldValue);
}
return !fieldIsNotUndefined(docFieldValue);
},
$mod: function(doc, userValue, parsedField, docFieldValue) {
return fieldExists(docFieldValue) && modField(docFieldValue, userValue);
},
$ne: function(doc, userValue, parsedField, docFieldValue) {
return userValue.every(function(neValue) {
return collate(docFieldValue, neValue) !== 0;
});
},
$in: function(doc, userValue, parsedField, docFieldValue) {
return fieldExists(docFieldValue) && arrayContainsValue(docFieldValue, userValue);
},
$nin: function(doc, userValue, parsedField, docFieldValue) {
return fieldExists(docFieldValue) && !arrayContainsValue(docFieldValue, userValue);
},
$size: function(doc, userValue, parsedField, docFieldValue) {
return fieldExists(docFieldValue) && Array.isArray(docFieldValue) && arraySize(docFieldValue, userValue);
},
$all: function(doc, userValue, parsedField, docFieldValue) {
return Array.isArray(docFieldValue) && arrayContainsAllValues(docFieldValue, userValue);
},
$regex: function(doc, userValue, parsedField, docFieldValue) {
return fieldExists(docFieldValue) && typeof docFieldValue == "string" && userValue.every(function(regexValue) {
return regexMatch(docFieldValue, regexValue);
});
},
$type: function(doc, userValue, parsedField, docFieldValue) {
return typeMatch(docFieldValue, userValue);
}
};
function matchesSelector(doc, selector) {
if (typeof selector !== "object") {
throw new Error("Selector error: expected a JSON object");
}
selector = massageSelector(selector);
var row = {
doc
};
var rowsMatched = filterInMemoryFields([row], { selector }, Object.keys(selector));
return rowsMatched && rowsMatched.length === 1;
}
// src/index.ts
var drupe = (selector) => (subject) => {
return matchesSelector(subject, selector);
};
{ "type": "commonjs" }
var __create = Object.create;
var __getProtoOf = Object.getPrototypeOf;
var __defProp = Object.defineProperty;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __toESM = (mod, isNodeMode, target) => {
target = mod != null ? __create(__getProtoOf(mod)) : {};
const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
for (let key of __getOwnPropNames(mod))
if (!__hasOwnProp.call(to, key))
__defProp(to, key, {
get: () => mod[key],
enumerable: true
});
return to;
};
var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
// node_modules/spark-md5/spark-md5.js
var require_spark_md5 = __commonJS((exports, module) => {
(function(factory) {
if (typeof exports === "object") {
module.exports = factory();
} else if (typeof define === "function" && define.amd) {
define(factory);
} else {
var glob;
try {
glob = window;
} catch (e) {
glob = self;
}
glob.SparkMD5 = factory();
}
})(function(undefined2) {
var add32 = function(a, b) {
return a + b & 4294967295;
}, hex_chr = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"];
function cmn(q, a, b, x, s, t) {
a = add32(add32(a, q), add32(x, t));
return add32(a << s | a >>> 32 - s, b);
}
function md5cycle(x, k) {
var a = x[0], b = x[1], c = x[2], d = x[3];
a += (b & c | ~b & d) + k[0] - 680876936 | 0;
a = (a << 7 | a >>> 25) + b | 0;
d += (a & b | ~a & c) + k[1] - 389564586 | 0;
d = (d << 12 | d >>> 20) + a | 0;
c += (d & a | ~d & b) + k[2] + 606105819 | 0;
c = (c << 17 | c >>> 15) + d | 0;
b += (c & d | ~c & a) + k[3] - 1044525330 | 0;
b = (b << 22 | b >>> 10) + c | 0;
a += (b & c | ~b & d) + k[4] - 176418897 | 0;
a = (a << 7 | a >>> 25) + b | 0;
d += (a & b | ~a & c) + k[5] + 1200080426 | 0;
d = (d << 12 | d >>> 20) + a | 0;
c += (d & a | ~d & b) + k[6] - 1473231341 | 0;
c = (c << 17 | c >>> 15) + d | 0;
b += (c & d | ~c & a) + k[7] - 45705983 | 0;
b = (b << 22 | b >>> 10) + c | 0;
a += (b & c | ~b & d) + k[8] + 1770035416 | 0;
a = (a << 7 | a >>> 25) + b | 0;
d += (a & b | ~a & c) + k[9] - 1958414417 | 0;
d = (d << 12 | d >>> 20) + a | 0;
c += (d & a | ~d & b) + k[10] - 42063 | 0;
c = (c << 17 | c >>> 15) + d | 0;
b += (c & d | ~c & a) + k[11] - 1990404162 | 0;
b = (b << 22 | b >>> 10) + c | 0;
a += (b & c | ~b & d) + k[12] + 1804603682 | 0;
a = (a << 7 | a >>> 25) + b | 0;
d += (a & b | ~a & c) + k[13] - 40341101 | 0;
d = (d << 12 | d >>> 20) + a | 0;
c += (d & a | ~d & b) + k[14] - 1502002290 | 0;
c = (c << 17 | c >>> 15) + d | 0;
b += (c & d | ~c & a) + k[15] + 1236535329 | 0;
b = (b << 22 | b >>> 10) + c | 0;
a += (b & d | c & ~d) + k[1] - 165796510 | 0;
a = (a << 5 | a >>> 27) + b | 0;
d += (a & c | b & ~c) + k[6] - 1069501632 | 0;
d = (d << 9 | d >>> 23) + a | 0;
c += (d & b | a & ~b) + k[11] + 643717713 | 0;
c = (c << 14 | c >>> 18) + d | 0;
b += (c & a | d & ~a) + k[0] - 373897302 | 0;
b = (b << 20 | b >>> 12) + c | 0;
a += (b & d | c & ~d) + k[5] - 701558691 | 0;
a = (a << 5 | a >>> 27) + b | 0;
d += (a & c | b & ~c) + k[10] + 38016083 | 0;
d = (d << 9 | d >>> 23) + a | 0;
c += (d & b | a & ~b) + k[15] - 660478335 | 0;
c = (c << 14 | c >>> 18) + d | 0;
b += (c & a | d & ~a) + k[4] - 405537848 | 0;
b = (b << 20 | b >>> 12) + c | 0;
a += (b & d | c & ~d) + k[9] + 568446438 | 0;
a = (a << 5 | a >>> 27) + b | 0;
d += (a & c | b & ~c) + k[14] - 1019803690 | 0;
d = (d << 9 | d >>> 23) + a | 0;
c += (d & b | a & ~b) + k[3] - 187363961 | 0;
c = (c << 14 | c >>> 18) + d | 0;
b += (c & a | d & ~a) + k[8] + 1163531501 | 0;
b = (b << 20 | b >>> 12) + c | 0;
a += (b & d | c & ~d) + k[13] - 1444681467 | 0;
a = (a << 5 | a >>> 27) + b | 0;
d += (a & c | b & ~c) + k[2] - 51403784 | 0;
d = (d << 9 | d >>> 23) + a | 0;
c += (d & b | a & ~b) + k[7] + 1735328473 | 0;
c = (c << 14 | c >>> 18) + d | 0;
b += (c & a | d & ~a) + k[12] - 1926607734 | 0;
b = (b << 20 | b >>> 12) + c | 0;
a += (b ^ c ^ d) + k[5] - 378558 | 0;
a = (a << 4 | a >>> 28) + b | 0;
d += (a ^ b ^ c) + k[8] - 2022574463 | 0;
d = (d << 11 | d >>> 21) + a | 0;
c += (d ^ a ^ b) + k[11] + 1839030562 | 0;
c = (c << 16 | c >>> 16) + d | 0;
b += (c ^ d ^ a) + k[14] - 35309556 | 0;
b = (b << 23 | b >>> 9) + c | 0;
a += (b ^ c ^ d) + k[1] - 1530992060 | 0;
a = (a << 4 | a >>> 28) + b | 0;
d += (a ^ b ^ c) + k[4] + 1272893353 | 0;
d = (d << 11 | d >>> 21) + a | 0;
c += (d ^ a ^ b) + k[7] - 155497632 | 0;
c = (c << 16 | c >>> 16) + d | 0;
b += (c ^ d ^ a) + k[10] - 1094730640 | 0;
b = (b << 23 | b >>> 9) + c | 0;
a += (b ^ c ^ d) + k[13] + 681279174 | 0;
a = (a << 4 | a >>> 28) + b | 0;
d += (a ^ b ^ c) + k[0] - 358537222 | 0;
d = (d << 11 | d >>> 21) + a | 0;
c += (d ^ a ^ b) + k[3] - 722521979 | 0;
c = (c << 16 | c >>> 16) + d | 0;
b += (c ^ d ^ a) + k[6] + 76029189 | 0;
b = (b << 23 | b >>> 9) + c | 0;
a += (b ^ c ^ d) + k[9] - 640364487 | 0;
a = (a << 4 | a >>> 28) + b | 0;
d += (a ^ b ^ c) + k[12] - 421815835 | 0;
d = (d << 11 | d >>> 21) + a | 0;
c += (d ^ a ^ b) + k[15] + 530742520 | 0;
c = (c << 16 | c >>> 16) + d | 0;
b += (c ^ d ^ a) + k[2] - 995338651 | 0;
b = (b << 23 | b >>> 9) + c | 0;
a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;
a = (a << 6 | a >>> 26) + b | 0;
d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;
d = (d << 10 | d >>> 22) + a | 0;
c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;
c = (c << 15 | c >>> 17) + d | 0;
b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;
b = (b << 21 | b >>> 11) + c | 0;
a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;
a = (a << 6 | a >>> 26) + b | 0;
d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;
d = (d << 10 | d >>> 22) + a | 0;
c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;
c = (c << 15 | c >>> 17) + d | 0;
b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;
b = (b << 21 | b >>> 11) + c | 0;
a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;
a = (a << 6 | a >>> 26) + b | 0;
d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;
d = (d << 10 | d >>> 22) + a | 0;
c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;
c = (c << 15 | c >>> 17) + d | 0;
b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;
b = (b << 21 | b >>> 11) + c | 0;
a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;
a = (a << 6 | a >>> 26) + b | 0;
d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;
d = (d << 10 | d >>> 22) + a | 0;
c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;
c = (c << 15 | c >>> 17) + d | 0;
b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;
b = (b << 21 | b >>> 11) + c | 0;
x[0] = a + x[0] | 0;
x[1] = b + x[1] | 0;
x[2] = c + x[2] | 0;
x[3] = d + x[3] | 0;
}
function md5blk(s) {
var md5blks = [], i;
for (i = 0;i < 64; i += 4) {
md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);
}
return md5blks;
}
function md5blk_array(a) {
var md5blks = [], i;
for (i = 0;i < 64; i += 4) {
md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);
}
return md5blks;
}
function md51(s) {
var n = s.length, state = [1732584193, -271733879, -1732584194, 271733878], i, length, tail, tmp, lo, hi;
for (i = 64;i <= n; i += 64) {
md5cycle(state, md5blk(s.substring(i - 64, i)));
}
s = s.substring(i - 64);
length = s.length;
tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
for (i = 0;i < length; i += 1) {
tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);
}
tail[i >> 2] |= 128 << (i % 4 << 3);
if (i > 55) {
md5cycle(state, tail);
for (i = 0;i < 16; i += 1) {
tail[i] = 0;
}
}
tmp = n * 8;
tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);
lo = parseInt(tmp[2], 16);
hi = parseInt(tmp[1], 16) || 0;
tail[14] = lo;
tail[15] = hi;
md5cycle(state, tail);
return state;
}
function md51_array(a) {
var n = a.length, state = [1732584193, -271733879, -1732584194, 271733878], i, length, tail, tmp, lo, hi;
for (i = 64;i <= n; i += 64) {
md5cycle(state, md5blk_array(a.subarray(i - 64, i)));
}
a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);
length = a.length;
tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
for (i = 0;i < length; i += 1) {
tail[i >> 2] |= a[i] << (i % 4 << 3);
}
tail[i >> 2] |= 128 << (i % 4 << 3);
if (i > 55) {
md5cycle(state, tail);
for (i = 0;i < 16; i += 1) {
tail[i] = 0;
}
}
tmp = n * 8;
tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);
lo = parseInt(tmp[2], 16);
hi = parseInt(tmp[1], 16) || 0;
tail[14] = lo;
tail[15] = hi;
md5cycle(state, tail);
return state;
}
function rhex(n) {
var s = "", j;
for (j = 0;j < 4; j += 1) {
s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];
}
return s;
}
function hex(x) {
var i;
for (i = 0;i < x.length; i += 1) {
x[i] = rhex(x[i]);
}
return x.join("");
}
if (hex(md51("hello")) !== "5d41402abc4b2a76b9719d911017c592") {
add32 = function(x, y) {
var lsw = (x & 65535) + (y & 65535), msw = (x >> 16) + (y >> 16) + (lsw >> 16);
return msw << 16 | lsw & 65535;
};
}
if (typeof ArrayBuffer !== "undefined" && !ArrayBuffer.prototype.slice) {
(function() {
function clamp(val, length) {
val = val | 0 || 0;
if (val < 0) {
return Math.max(val + length, 0);
}
return Math.min(val, length);
}
ArrayBuffer.prototype.slice = function(from, to) {
var length = this.byteLength, begin = clamp(from, length), end = length, num, target, targetArray, sourceArray;
if (to !== undefined2) {
end = clamp(to, length);
}
if (begin > end) {
return new ArrayBuffer(0);
}
num = end - begin;
target = new ArrayBuffer(num);
targetArray = new Uint8Array(target);
sourceArray = new Uint8Array(this, begin, num);
targetArray.set(sourceArray);
return target;
};
})();
}
function toUtf8(str) {
if (/[\u0080-\uFFFF]/.test(str)) {
str = unescape(encodeURIComponent(str));
}
return str;
}
function utf8Str2ArrayBuffer(str, returnUInt8Array) {
var length = str.length, buff = new ArrayBuffer(length), arr = new Uint8Array(buff), i;
for (i = 0;i < length; i += 1) {
arr[i] = str.charCodeAt(i);
}
return returnUInt8Array ? arr : buff;
}
function arrayBuffer2Utf8Str(buff) {
return String.fromCharCode.apply(null, new Uint8Array(buff));
}
function concatenateArrayBuffers(first, second, returnUInt8Array) {
var result = new Uint8Array(first.byteLength + second.byteLength);
result.set(new Uint8Array(first));
result.set(new Uint8Array(second), first.byteLength);
return returnUInt8Array ? result : result.buffer;
}
function hexToBinaryString(hex2) {
var bytes = [], length = hex2.length, x;
for (x = 0;x < length - 1; x += 2) {
bytes.push(parseInt(hex2.substr(x, 2), 16));
}
return String.fromCharCode.apply(String, bytes);
}
function SparkMD5() {
this.reset();
}
SparkMD5.prototype.append = function(str) {
this.appendBinary(toUtf8(str));
return this;
};
SparkMD5.prototype.appendBinary = function(contents) {
this._buff += contents;
this._length += contents.length;
var length = this._buff.length, i;
for (i = 64;i <= length; i += 64) {
md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));
}
this._buff = this._buff.substring(i - 64);
return this;
};
SparkMD5.prototype.end = function(raw) {
var buff = this._buff, length = buff.length, i, tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], ret;
for (i = 0;i < length; i += 1) {
tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);
}
this._finish(tail, length);
ret = hex(this._hash);
if (raw) {
ret = hexToBinaryString(ret);
}
this.reset();
return ret;
};
SparkMD5.prototype.reset = function() {
this._buff = "";
this._length = 0;
this._hash = [1732584193, -271733879, -1732584194, 271733878];
return this;
};
SparkMD5.prototype.getState = function() {
return {
buff: this._buff,
length: this._length,
hash: this._hash.slice()
};
};
SparkMD5.prototype.setState = function(state) {
this._buff = state.buff;
this._length = state.length;
this._hash = state.hash;
return this;
};
SparkMD5.prototype.destroy = function() {
delete this._hash;
delete this._buff;
delete this._length;
};
SparkMD5.prototype._finish = function(tail, length) {
var i = length, tmp, lo, hi;
tail[i >> 2] |= 128 << (i % 4 << 3);
if (i > 55) {
md5cycle(this._hash, tail);
for (i = 0;i < 16; i += 1) {
tail[i] = 0;
}
}
tmp = this._length * 8;
tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);
lo = parseInt(tmp[2], 16);
hi = parseInt(tmp[1], 16) || 0;
tail[14] = lo;
tail[15] = hi;
md5cycle(this._hash, tail);
};
SparkMD5.hash = function(str, raw) {
return SparkMD5.hashBinary(toUtf8(str), raw);
};
SparkMD5.hashBinary = function(content, raw) {
var hash = md51(content), ret = hex(hash);
return raw ? hexToBinaryString(ret) : ret;
};
SparkMD5.ArrayBuffer = function() {
this.reset();
};
SparkMD5.ArrayBuffer.prototype.append = function(arr) {
var buff = concatenateArrayBuffers(this._buff.buffer, arr, true), length = buff.length, i;
this._length += arr.byteLength;
for (i = 64;i <= length; i += 64) {
md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));
}
this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);
return this;
};
SparkMD5.ArrayBuffer.prototype.end = function(raw) {
var buff = this._buff, length = buff.length, tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], i, ret;
for (i = 0;i < length; i += 1) {
tail[i >> 2] |= buff[i] << (i % 4 << 3);
}
this._finish(tail, length);
ret = hex(this._hash);
if (raw) {
ret = hexToBinaryString(ret);
}
this.reset();
return ret;
};
SparkMD5.ArrayBuffer.prototype.reset = function() {
this._buff = new Uint8Array(0);
this._length = 0;
this._hash = [1732584193, -271733879, -1732584194, 271733878];
return this;
};
SparkMD5.ArrayBuffer.prototype.getState = function() {
var state = SparkMD5.prototype.getState.call(this);
state.buff = arrayBuffer2Utf8Str(state.buff);
return state;
};
SparkMD5.ArrayBuffer.prototype.setState = function(state) {
state.buff = utf8Str2ArrayBuffer(state.buff, true);
return SparkMD5.prototype.setState.call(this, state);
};
SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;
SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;
SparkMD5.ArrayBuffer.hash = function(arr, raw) {
var hash = md51_array(new Uint8Array(arr)), ret = hex(hash);
return raw ? hexToBinaryString(ret) : ret;
};
return SparkMD5;
});
});
// node_modules/pouchdb-errors/lib/index.es.js
class PouchError extends Error {
constructor(status, error, reason) {
super();
this.status = status;
this.name = error;
this.message = reason;
this.error = true;
}
toString() {
return JSON.stringify({
status: this.status,
name: this.name,
message: this.message,
reason: this.reason
});
}
}
var UNAUTHORIZED = new PouchError(401, "unauthorized", "Name or password is incorrect.");
var MISSING_BULK_DOCS = new PouchError(400, "bad_request", "Missing JSON list of 'docs'");
var MISSING_DOC = new PouchError(404, "not_found", "missing");
var REV_CONFLICT = new PouchError(409, "conflict", "Document update conflict");
var INVALID_ID = new PouchError(400, "bad_request", "_id field must contain a string");
var MISSING_ID = new PouchError(412, "missing_id", "_id is required for puts");
var RESERVED_ID = new PouchError(400, "bad_request", "Only reserved document ids may start with underscore.");
var NOT_OPEN = new PouchError(412, "precondition_failed", "Database not open");
var UNKNOWN_ERROR = new PouchError(500, "unknown_error", "Database encountered an unknown error");
var BAD_ARG = new PouchError(500, "badarg", "Some query argument is invalid");
var INVALID_REQUEST = new PouchError(400, "invalid_request", "Request was invalid");
var QUERY_PARSE_ERROR = new PouchError(400, "query_parse_error", "Some query parameter is invalid");
var DOC_VALIDATION = new PouchError(500, "doc_validation", "Bad special document member");
var BAD_REQUEST = new PouchError(400, "bad_request", "Something wrong with the request");
var NOT_AN_OBJECT = new PouchError(400, "bad_request", "Document must be a JSON object");
var DB_MISSING = new PouchError(404, "not_found", "Database not found");
var IDB_ERROR = new PouchError(500, "indexed_db_went_bad", "unknown");
var WSQ_ERROR = new PouchError(500, "web_sql_went_bad", "unknown");
var LDB_ERROR = new PouchError(500, "levelDB_went_went_bad", "unknown");
var FORBIDDEN = new PouchError(403, "forbidden", "Forbidden by design doc validate_doc_update function");
var INVALID_REV = new PouchError(400, "bad_request", "Invalid rev format");
var FILE_EXISTS = new PouchError(412, "file_exists", "The database could not be created, the file already exists.");
var MISSING_STUB = new PouchError(412, "missing_stub", "A pre-existing attachment stub wasn't found");
var INVALID_URL = new PouchError(413, "invalid_url", "Provided URL is invalid");
// node:events
var SymbolFor = Symbol.for;
var kCapture = Symbol("kCapture");
var kErrorMonitor = SymbolFor("events.errorMonitor");
var kMaxEventTargetListeners = Symbol("events.maxEventTargetListeners");
var kMaxEventTargetListenersWarned = Symbol("events.maxEventTargetListenersWarned");
var kRejection = SymbolFor("nodejs.rejection");
var captureRejectionSymbol = SymbolFor("nodejs.rejection");
var ArrayPrototypeSlice = Array.prototype.slice;
var defaultMaxListeners = 10;
var EventEmitter = function EventEmitter2(opts) {
if (this._events === undefined || this._events === this.__proto__._events)
this._events = { __proto__: null }, this._eventsCount = 0;
if (this._maxListeners ??= undefined, this[kCapture] = opts?.captureRejections ? Boolean(opts?.captureRejections) : EventEmitterPrototype[kCapture])
this.emit = emitWithRejectionCapture;
};
var EventEmitterPrototype = EventEmitter.prototype = {};
EventEmitterPrototype._events = undefined;
EventEmitterPrototype._eventsCount = 0;
EventEmitterPrototype._maxListeners = undefined;
EventEmitterPrototype.setMaxListeners = function setMaxListeners(n) {
return validateNumber(n, "setMaxListeners", 0), this._maxListeners = n, this;
};
EventEmitterPrototype.constructor = EventEmitter;
EventEmitterPrototype.getMaxListeners = function getMaxListeners() {
return this?._maxListeners ?? defaultMaxListeners;
};
function emitError(emitter, args) {
var { _events: events } = emitter;
if (args[0] ??= new Error("Unhandled error."), !events)
throw args[0];
var errorMonitor = events[kErrorMonitor];
if (errorMonitor)
for (var handler of ArrayPrototypeSlice.call(errorMonitor))
handler.apply(emitter, args);
var handlers = events.error;
if (!handlers)
throw args[0];
for (var handler of ArrayPrototypeSlice.call(handlers))
handler.apply(emitter, args);
return true;
}
function addCatch(emitter, promise, type, args) {
promise.then(undefined, function(err) {
queueMicrotask(() => emitUnhandledRejectionOrErr(emitter, err, type, args));
});
}
function emitUnhandledRejectionOrErr(emitter, err, type, args) {
if (typeof emitter[kRejection] === "function")
emitter[kRejection](err, type, ...args);
else
try {
emitter[kCapture] = false, emitter.emit("error", err);
} finally {
emitter[kCapture] = true;
}
}
var emitWithoutRejectionCapture = function emit(type, ...args) {
if (type === "error")
return emitError(this, args);
var { _events: events } = this;
if (events === undefined)
return false;
var handlers = events[type];
if (handlers === undefined)
return false;
let maybeClonedHandlers = handlers.length > 1 ? handlers.slice() : handlers;
for (let i = 0, { length } = maybeClonedHandlers;i < length; i++) {
let handler = maybeClonedHandlers[i];
switch (args.length) {
case 0:
handler.call(this);
break;
case 1:
handler.call(this, args[0]);
break;
case 2:
handler.call(this, args[0], args[1]);
break;
case 3:
handler.call(this, args[0], args[1], args[2]);
break;
default:
handler.apply(this, args);
break;
}
}
return true;
};
var emitWithRejectionCapture = function emit2(type, ...args) {
if (type === "error")
return emitError(this, args);
var { _events: events } = this;
if (events === undefined)
return false;
var handlers = events[type];
if (handlers === undefined)
return false;
let maybeClonedHandlers = handlers.length > 1 ? handlers.slice() : handlers;
for (let i = 0, { length } = maybeClonedHandlers;i < length; i++) {
let handler = maybeClonedHandlers[i], result;
switch (args.length) {
case 0:
result = handler.call(this);
break;
case 1:
result = handler.call(this, args[0]);
break;
case 2:
result = handler.call(this, args[0], args[1]);
break;
case 3:
result = handler.call(this, args[0], args[1], args[2]);
break;
default:
result = handler.apply(this, args);
break;
}
if (result !== undefined && typeof result?.then === "function" && result.then === Promise.prototype.then)
addCatch(this, result, type, args);
}
return true;
};
EventEmitterPrototype.emit = emitWithoutRejectionCapture;
EventEmitterPrototype.addListener = function addListener(type, fn) {
checkListener(fn);
var events = this._events;
if (!events)
events = this._events = { __proto__: null }, this._eventsCount = 0;
else if (events.newListener)
this.emit("newListener", type, fn.listener ?? fn);
var handlers = events[type];
if (!handlers)
events[type] = [fn], this._eventsCount++;
else {
handlers.push(fn);
var m = this._maxListeners ?? defaultMaxListeners;
if (m > 0 && handlers.length > m && !handlers.warned)
overflowWarning(this, type, handlers);
}
return this;
};
EventEmitterPrototype.on = EventEmitterPrototype.addListener;
EventEmitterPrototype.prependListener = function prependListener(type, fn) {
checkListener(fn);
var events = this._events;
if (!events)
events = this._events = { __proto__: null }, this._eventsCount = 0;
else if (events.newListener)
this.emit("newListener", type, fn.listener ?? fn);
var handlers = events[type];
if (!handlers)
events[type] = [fn], this._eventsCount++;
else {
handlers.unshift(fn);
var m = this._maxListeners ?? defaultMaxListeners;
if (m > 0 && handlers.length > m && !handlers.warned)
overflowWarning(this, type, handlers);
}
return this;
};
function overflowWarning(emitter, type, handlers) {
handlers.warned = true;
let warn = new Error(`Possible EventEmitter memory leak detected. ${handlers.length} ${String(type)} listeners added to [${emitter.constructor.name}]. Use emitter.setMaxListeners() to increase limit`);
warn.name = "MaxListenersExceededWarning", warn.emitter = emitter, warn.type = type, warn.count = handlers.length, console.warn(warn);
}
function onceWrapper(type, listener, ...args) {
this.removeListener(type, listener), listener.apply(this, args);
}
EventEmitterPrototype.once = function once(type, fn) {
checkListener(fn);
let bound = onceWrapper.bind(this, type, fn);
return bound.listener = fn, this.addListener(type, bound), this;
};
EventEmitterPrototype.prependOnceListener = function prependOnceListener(type, fn) {
checkListener(fn);
let bound = onceWrapper.bind(this, type, fn);
return bound.listener = fn, this.prependListener(type, bound), this;
};
EventEmitterPrototype.removeListener = function removeListener(type, fn) {
checkListener(fn);
var { _events: events } = this;
if (!events)
return this;
var handlers = events[type];
if (!handlers)
return this;
var length = handlers.length;
let position = -1;
for (let i = length - 1;i >= 0; i--)
if (handlers[i] === fn || handlers[i].listener === fn) {
position = i;
break;
}
if (position < 0)
return this;
if (position === 0)
handlers.shift();
else
handlers.splice(position, 1);
if (handlers.length === 0)
delete events[type], this._eventsCount--;
return this;
};
EventEmitterPrototype.off = EventEmitterPrototype.removeListener;
EventEmitterPrototype.removeAllListeners = function removeAllListeners(type) {
var { _events: events } = this;
if (type && events) {
if (events[type])
delete events[type], this._eventsCount--;
} else
this._events = { __proto__: null };
return this;
};
EventEmitterPrototype.listeners = function listeners(type) {
var { _events: events } = this;
if (!events)
return [];
var handlers = events[type];
if (!handlers)
return [];
return handlers.map((x) => x.listener ?? x);
};
EventEmitterPrototype.rawListeners = function rawListeners(type) {
var { _events } = this;
if (!_events)
return [];
var handlers = _events[type];
if (!handlers)
return [];
return handlers.slice();
};
EventEmitterPrototype.listenerCount = function listenerCount(type) {
var { _events: events } = this;
if (!events)
return 0;
return events[type]?.length ?? 0;
};
EventEmitterPrototype.eventNames = function eventNames() {
return this._eventsCount > 0 ? Reflect.ownKeys(this._events) : [];
};
EventEmitterPrototype[kCapture] = false;
function once2(emitter, type, options) {
var signal = options?.signal;
if (validateAbortSignal(signal, "options.signal"), signal?.aborted)
throw new AbortError(undefined, { cause: signal?.reason });
let { resolve, reject, promise } = $newPromiseCapability(Promise), errorListener = (err) => {
if (emitter.removeListener(type, resolver), signal != null)
eventTargetAgnosticRemoveListener(signal, "abort", abortListener);
reject(err);
}, resolver = (...args) => {
if (typeof emitter.removeListener === "function")
emitter.removeListener("error", errorListener);
if (signal != null)
eventTargetAgnosticRemoveListener(signal, "abort", abortListener);
resolve(args);
};
if (eventTargetAgnosticAddListener(emitter, type, resolver, { once: true }), type !== "error" && typeof emitter.once === "function")
emitter.once("error", errorListener);
function abortListener() {
eventTargetAgnosticRemoveListener(emitter, type, resolver), eventTargetAgnosticRemoveListener(emitter, "error", errorListener), reject(new AbortError(undefined, { cause: signal?.reason }));
}
if (signal != null)
eventTargetAgnosticAddListener(signal, "abort", abortListener, { once: true });
return promise;
}
function getEventListeners(emitter, type) {
return emitter.listeners(type);
}
function setMaxListeners2(n, ...eventTargets) {
validateNumber(n, "setMaxListeners", 0);
var length;
if (eventTargets && (length = eventTargets.length))
for (let i = 0;i < length; i++)
eventTargets[i].setMaxListeners(n);
else
defaultMaxListeners = n;
}
function listenerCount2(emitter, type) {
return emitter.listenerCount(type);
}
function eventTargetAgnosticRemoveListener(emitter, name, listener, flags) {
if (typeof emitter.removeListener === "function")
emitter.removeListener(name, listener);
else
emitter.removeEventListener(name, listener, flags);
}
function eventTargetAgnosticAddListener(emitter, name, listener, flags) {
if (typeof emitter.on === "function")
if (flags.once)
emitter.once(name, listener);
else
emitter.on(name, listener);
else
emitter.addEventListener(name, listener, flags);
}
class AbortError extends Error {
constructor(message = "The operation was aborted", options = undefined) {
if (options !== undefined && typeof options !== "object")
throw ERR_INVALID_ARG_TYPE("options", "Object", options);
super(message, options);
this.code = "ABORT_ERR", this.name = "AbortError";
}
}
function ERR_INVALID_ARG_TYPE(name, type, value) {
let err = new TypeError(`The "${name}" argument must be of type ${type}. Received ${value}`);
return err.code = "ERR_INVALID_ARG_TYPE", err;
}
function ERR_OUT_OF_RANGE(name, range, value) {
let err = new RangeError(`The "${name}" argument is out of range. It must be ${range}. Received ${value}`);
return err.code = "ERR_OUT_OF_RANGE", err;
}
function validateAbortSignal(signal, name) {
if (signal !== undefined && (signal === null || typeof signal !== "object" || !("aborted" in signal)))
throw ERR_INVALID_ARG_TYPE(name, "AbortSignal", signal);
}
function validateNumber(value, name, min, max) {
if (typeof value !== "number")
throw ERR_INVALID_ARG_TYPE(name, "number", value);
if (min != null && value < min || max != null && value > max || (min != null || max != null) && Number.isNaN(value))
throw ERR_OUT_OF_RANGE(name, `${min != null ? `>= ${min}` : ""}${min != null && max != null ? " && " : ""}${max != null ? `<= ${max}` : ""}`, value);
}
function checkListener(listener) {
if (typeof listener !== "function")
throw new TypeError("The listener must be a function");
}
function validateBoolean(value, name) {
if (typeof value !== "boolean")
throw ERR_INVALID_ARG_TYPE(name, "boolean", value);
}
function getMaxListeners2(emitterOrTarget) {
return emitterOrTarget?._maxListeners ?? defaultMaxListeners;
}
function addAbortListener(signal, listener) {
if (signal === undefined)
throw ERR_INVALID_ARG_TYPE("signal", "AbortSignal", signal);
if (validateAbortSignal(signal, "signal"), typeof listener !== "function")
throw ERR_INVALID_ARG_TYPE("listener", "function", listener);
let removeEventListener;
if (signal.aborted)
queueMicrotask(() => listener());
else
signal.addEventListener("abort", listener, { __proto__: null, once: true }), removeEventListener = () => {
signal.removeEventListener("abort", listener);
};
return { __proto__: null, [Symbol.dispose]() {
removeEventListener?.();
} };
}
Object.defineProperties(EventEmitter, { captureRejections: { get() {
return EventEmitterPrototype[kCapture];
}, set(value) {
validateBoolean(value, "EventEmitter.captureRejections"), EventEmitterPrototype[kCapture] = value;
}, enumerable: true }, defaultMaxListeners: { enumerable: true, get: () => {
return defaultMaxListeners;
}, set: (arg) => {
validateNumber(arg, "defaultMaxListeners", 0), defaultMaxListeners = arg;
} }, kMaxEventTargetListeners: { value: kMaxEventTargetListeners, enumerable: false, configurable: false, writable: false }, kMaxEventTargetListenersWarned: { value: kMaxEventTargetListenersWarned, enumerable: false, configurable: false, writable: false } });
Object.assign(EventEmitter, { once: once2, getEventListeners, getMaxListeners: getMaxListeners2, setMaxListeners: setMaxListeners2, EventEmitter, usingDomains: false, captureRejectionSymbol, errorMonitor: kErrorMonitor, addAbortListener, init: EventEmitter, listenerCount: listenerCount2 });
// node_modules/pouchdb-md5/lib/index-browser.es.js
var import_spark_md5 = __toESM(require_spark_md5(), 1);
var setImmediateShim = self.setImmediate || self.setTimeout;
// node_modules/pouchdb-utils/lib/index-browser.es.js
function isBinaryObject(object) {
return typeof ArrayBuffer !== "undefined" && object instanceof ArrayBuffer || typeof Blob !== "undefined" && object instanceof Blob;
}
function cloneBinaryObject(object) {
return object instanceof ArrayBuffer ? object.slice(0) : object.slice(0, object.size, object.type);
}
var funcToString = Function.prototype.toString;
var objectCtorString = funcToString.call(Object);
function isPlainObject(value) {
var proto = Object.getPrototypeOf(value);
if (proto === null) {
return true;
}
var Ctor = proto.constructor;
return typeof Ctor == "function" && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString;
}
function clone(object) {
var newObject;
var i;
var len;
if (!object || typeof object !== "object") {
return object;
}
if (Array.isArray(object)) {
newObject = [];
for (i = 0, len = object.length;i < len; i++) {
newObject[i] = clone(object[i]);
}
return newObject;
}
if (object instanceof Date && isFinite(object)) {
return object.toISOString();
}
if (isBinaryObject(object)) {
return cloneBinaryObject(object);
}
if (!isPlainObject(object)) {
return object;
}
newObject = {};
for (i in object) {
if (Object.prototype.hasOwnProperty.call(object, i)) {
var value = clone(object[i]);
if (typeof value !== "undefined") {
newObject[i] = value;
}
}
}
return newObject;
}
var hasLocal;
try {
localStorage.setItem("_pouch_check_localstorage", 1);
hasLocal = !!localStorage.getItem("_pouch_check_localstorage");
} catch (e) {
hasLocal = false;
}
function f() {}
var hasName = f.name;
var res;
if (hasName) {
res = function(fun) {
return fun.name;
};
} else {
res = function(fun) {
var match = fun.toString().match(/^\s*function\s*(?:(\S+)\s*)?\(/);
if (match && match[1]) {
return match[1];
} else {
return "";
}
};
}
// node_modules/pouchdb-collate/lib/index.es.js
function collate(a, b) {
if (a === b) {
return 0;
}
a = normalizeKey(a);
b = normalizeKey(b);
var ai = collationIndex(a);
var bi = collationIndex(b);
if (ai - bi !== 0) {
return ai - bi;
}
switch (typeof a) {
case "number":
return a - b;
case "boolean":
return a < b ? -1 : 1;
case "string":
return stringCollate(a, b);
}
return Array.isArray(a) ? arrayCollate(a, b) : objectCollate(a, b);
}
function normalizeKey(key) {
switch (typeof key) {
case "undefined":
return null;
case "number":
if (key === Infinity || key === -Infinity || isNaN(key)) {
return null;
}
return key;
case "object":
var origKey = key;
if (Array.isArray(key)) {
var len = key.length;
key = new Array(len);
for (var i = 0;i < len; i++) {
key[i] = normalizeKey(origKey[i]);
}
} else if (key instanceof Date) {
return key.toJSON();
} else if (key !== null) {
key = {};
for (var k in origKey) {
if (Object.prototype.hasOwnProperty.call(origKey, k)) {
var val = origKey[k];
if (typeof val !== "undefined") {
key[k] = normalizeKey(val);
}
}
}
}
}
return key;
}
function arrayCollate(a, b) {
var len = Math.min(a.length, b.length);
for (var i = 0;i < len; i++) {
var sort = collate(a[i], b[i]);
if (sort !== 0) {
return sort;
}
}
return a.length === b.length ? 0 : a.length > b.length ? 1 : -1;
}
function stringCollate(a, b) {
return a === b ? 0 : a > b ? 1 : -1;
}
function objectCollate(a, b) {
var ak = Object.keys(a), bk = Object.keys(b);
var len = Math.min(ak.length, bk.length);
for (var i = 0;i < len; i++) {
var sort = collate(ak[i], bk[i]);
if (sort !== 0) {
return sort;
}
sort = collate(a[ak[i]], b[bk[i]]);
if (sort !== 0) {
return sort;
}
}
return ak.length === bk.length ? 0 : ak.length > bk.length ? 1 : -1;
}
function collationIndex(x) {
var id = ["boolean", "number", "string", "object"];
var idx = id.indexOf(typeof x);
if (~idx) {
if (x === null) {
return 1;
}
if (Array.isArray(x)) {
return 5;
}
return idx < 3 ? idx + 2 : idx + 3;
}
if (Array.isArray(x)) {
return 5;
}
}
// node_modules/pouchdb-selector-core/lib/index.es.js
function getFieldFromDoc(doc, parsedField) {
var value = doc;
for (var i = 0, len = parsedField.length;i < len; i++) {
var key = parsedField[i];
value = value[key];
if (!value) {
break;
}
}
return value;
}
function compare(left, right) {
return left < right ? -1 : left > right ? 1 : 0;
}
function parseField(fieldName) {
var fields = [];
var current = "";
for (var i = 0, len = fieldName.length;i < len; i++) {
var ch = fieldName[i];
if (i > 0 && fieldName[i - 1] === "\\" && (ch === "$" || ch === ".")) {
current = current.substring(0, current.length - 1) + ch;
} else if (ch === ".") {
fields.push(current);
current = "";
} else {
current += ch;
}
}
fields.push(current);
return fields;
}
var combinationFields = ["$or", "$nor", "$not"];
function isCombinationalField(field) {
return combinationFields.indexOf(field) > -1;
}
function getKey(obj) {
return Object.keys(obj)[0];
}
function getValue(obj) {
return obj[getKey(obj)];
}
function mergeAndedSelectors(selectors) {
var res2 = {};
var first = { $or: true, $nor: true };
selectors.forEach(function(selector) {
Object.keys(selector).forEach(function(field) {
var matcher = selector[field];
if (typeof matcher !== "object") {
matcher = { $eq: matcher };
}
if (isCombinationalField(field)) {
if (matcher instanceof Array) {
if (first[field]) {
first[field] = false;
res2[field] = matcher;
return;
}
var entries = [];
res2[field].forEach(function(existing) {
Object.keys(matcher).forEach(function(key) {
var m = matcher[key];
var longest = Math.max(Object.keys(existing).length, Object.keys(m).length);
var merged = mergeAndedSelectors([existing, m]);
if (Object.keys(merged).length <= longest) {
return;
}
entries.push(merged);
});
});
res2[field] = entries;
} else {
res2[field] = mergeAndedSelectors([matcher]);
}
} else {
var fieldMatchers = res2[field] = res2[field] || {};
Object.keys(matcher).forEach(function(operator) {
var value = matcher[operator];
if (operator === "$gt" || operator === "$gte") {
return mergeGtGte(operator, value, fieldMatchers);
} else if (operator === "$lt" || operator === "$lte") {
return mergeLtLte(operator, value, fieldMatchers);
} else if (operator === "$ne") {
return mergeNe(value, fieldMatchers);
} else if (operator === "$eq") {
return mergeEq(value, fieldMatchers);
} else if (operator === "$regex") {
return mergeRegex(value, fieldMatchers);
}
fieldMatchers[operator] = value;
});
}
});
});
return res2;
}
function mergeGtGte(operator, value, fieldMatchers) {
if (typeof fieldMatchers.$eq !== "undefined") {
return;
}
if (typeof fieldMatchers.$gte !== "undefined") {
if (operator === "$gte") {
if (value > fieldMatchers.$gte) {
fieldMatchers.$gte = value;
}
} else {
if (value >= fieldMatchers.$gte) {
delete fieldMatchers.$gte;
fieldMatchers.$gt = value;
}
}
} else if (typeof fieldMatchers.$gt !== "undefined") {
if (operator === "$gte") {
if (value > fieldMatchers.$gt) {
delete fieldMatchers.$gt;
fieldMatchers.$gte = value;
}
} else {
if (value > fieldMatchers.$gt) {
fieldMatchers.$gt = value;
}
}
} else {
fieldMatchers[operator] = value;
}
}
function mergeLtLte(operator, value, fieldMatchers) {
if (typeof fieldMatchers.$eq !== "undefined") {
return;
}
if (typeof fieldMatchers.$lte !== "undefined") {
if (operator === "$lte") {
if (value < fieldMatchers.$lte) {
fieldMatchers.$lte = value;
}
} else {
if (value <= fieldMatchers.$lte) {
delete fieldMatchers.$lte;
fieldMatchers.$lt = value;
}
}
} else if (typeof fieldMatchers.$lt !== "undefined") {
if (operator === "$lte") {
if (value < fieldMatchers.$lt) {
delete fieldMatchers.$lt;
fieldMatchers.$lte = value;
}
} else {
if (value < fieldMatchers.$lt) {
fieldMatchers.$lt = value;
}
}
} else {
fieldMatchers[operator] = value;
}
}
function mergeNe(value, fieldMatchers) {
if ("$ne" in fieldMatchers) {
fieldMatchers.$ne.push(value);
} else {
fieldMatchers.$ne = [value];
}
}
function mergeEq(value, fieldMatchers) {
delete fieldMatchers.$gt;
delete fieldMatchers.$gte;
delete fieldMatchers.$lt;
delete fieldMatchers.$lte;
delete fieldMatchers.$ne;
fieldMatchers.$eq = value;
}
function mergeRegex(value, fieldMatchers) {
if ("$regex" in fieldMatchers) {
fieldMatchers.$regex.push(value);
} else {
fieldMatchers.$regex = [value];
}
}
function mergeAndedSelectorsNested(obj) {
for (var prop in obj) {
if (Array.isArray(obj)) {
for (var i in obj) {
if (obj[i]["$and"]) {
obj[i] = mergeAndedSelectors(obj[i]["$and"]);
}
}
}
var value = obj[prop];
if (typeof value === "object") {
mergeAndedSelectorsNested(value);
}
}
return obj;
}
function isAndInSelector(obj, isAnd) {
for (var prop in obj) {
if (prop === "$and") {
isAnd = true;
}
var value = obj[prop];
if (typeof value === "object") {
isAnd = isAndInSelector(value, isAnd);
}
}
return isAnd;
}
function massageSelector(input) {
var result = clone(input);
if (isAndInSelector(result, false)) {
result = mergeAndedSelectorsNested(result);
if ("$and" in result) {
result = mergeAndedSelectors(result["$and"]);
}
}
["$or", "$nor"].forEach(function(orOrNor) {
if (orOrNor in result) {
result[orOrNor].forEach(function(subSelector) {
var fields2 = Object.keys(subSelector);
for (var i2 = 0;i2 < fields2.length; i2++) {
var field2 = fields2[i2];
var matcher2 = subSelector[field2];
if (typeof matcher2 !== "object" || matcher2 === null) {
subSelector[field2] = { $eq: matcher2 };
}
}
});
}
});
if ("$not" in result) {
result["$not"] = mergeAndedSelectors([result["$not"]]);
}
var fields = Object.keys(result);
for (var i = 0;i < fields.length; i++) {
var field = fields[i];
var matcher = result[field];
if (typeof matcher !== "object" || matcher === null) {
matcher = { $eq: matcher };
}
result[field] = matcher;
}
normalizeArrayOperators(result);
return result;
}
function normalizeArrayOperators(selector) {
Object.keys(selector).forEach(function(field) {
var matcher = selector[field];
if (Array.isArray(matcher)) {
matcher.forEach(function(matcherItem) {
if (matcherItem && typeof matcherItem === "object") {
normalizeArrayOperators(matcherItem);
}
});
} else if (field === "$ne") {
selector.$ne = [matcher];
} else if (field === "$regex") {
selector.$regex = [matcher];
} else if (matcher && typeof matcher === "object") {
normalizeArrayOperators(matcher);
}
});
}
function createFieldSorter(sort) {
function getFieldValuesAsArray(doc) {
return sort.map(function(sorting) {
var fieldName = getKey(sorting);
var parsedField = parseField(fieldName);
var docFieldValue = getFieldFromDoc(doc, parsedField);
return docFieldValue;
});
}
return function(aRow, bRow) {
var aFieldValues = getFieldValuesAsArray(aRow.doc);
var bFieldValues = getFieldValuesAsArray(bRow.doc);
var collation = collate(aFieldValues, bFieldValues);
if (collation !== 0) {
return collation;
}
return compare(aRow.doc._id, bRow.doc._id);
};
}
function filterInMemoryFields(rows, requestDef, inMemoryFields) {
rows = rows.filter(function(row) {
return rowFilter(row.doc, requestDef.selector, inMemoryFields);
});
if (requestDef.sort) {
var fieldSorter = createFieldSorter(requestDef.sort);
rows = rows.sort(fieldSorter);
if (typeof requestDef.sort[0] !== "string" && getValue(requestDef.sort[0]) === "desc") {
rows = rows.reverse();
}
}
if ("limit" in requestDef || "skip" in requestDef) {
var skip = requestDef.skip || 0;
var limit = ("limit" in requestDef ? requestDef.limit : rows.length) + skip;
rows = rows.slice(skip, limit);
}
return rows;
}
function rowFilter(doc, selector, inMemoryFields) {
return inMemoryFields.every(function(field) {
var matcher = selector[field];
var parsedField = parseField(field);
var docFieldValue = getFieldFromDoc(doc, parsedField);
if (isCombinationalField(field)) {
return matchCominationalSelector(field, matcher, doc);
}
return matchSelector(matcher, doc, parsedField, docFieldValue);
});
}
function matchSelector(matcher, doc, parsedField, docFieldValue) {
if (!matcher) {
return true;
}
if (typeof matcher === "object") {
return Object.keys(matcher).every(function(maybeUserOperator) {
var userValue = matcher[maybeUserOperator];
if (maybeUserOperator.indexOf("$") === 0) {
return match(maybeUserOperator, doc, userValue, parsedField, docFieldValue);
} else {
var subParsedField = parseField(maybeUserOperator);
if (docFieldValue === undefined && typeof userValue !== "object" && subParsedField.length > 0) {
return false;
}
var subDocFieldValue = getFieldFromDoc(docFieldValue, subParsedField);
if (typeof userValue === "object") {
return matchSelector(userValue, doc, parsedField, subDocFieldValue);
}
return match("$eq", doc, userValue, subParsedField, subDocFieldValue);
}
});
}
return matcher === docFieldValue;
}
function matchCominationalSelector(field, matcher, doc) {
if (field === "$or") {
return matcher.some(function(orMatchers) {
return rowFilter(doc, orMatchers, Object.keys(orMatchers));
});
}
if (field === "$not") {
return !rowFilter(doc, matcher, Object.keys(matcher));
}
return !matcher.find(function(orMatchers) {
return rowFilter(doc, orMatchers, Object.keys(orMatchers));
});
}
function match(userOperator, doc, userValue, parsedField, docFieldValue) {
if (!matchers[userOperator]) {
throw new Error('unknown operator "' + userOperator + '" - should be one of $eq, $lte, $lt, $gt, $gte, $exists, $ne, $in, ' + "$nin, $size, $mod, $regex, $elemMatch, $type, $allMatch or $all");
}
return matchers[userOperator](doc, userValue, parsedField, docFieldValue);
}
function fieldExists(docFieldValue) {
return typeof docFieldValue !== "undefined" && docFieldValue !== null;
}
function fieldIsNotUndefined(docFieldValue) {
return typeof docFieldValue !== "undefined";
}
function modField(docFieldValue, userValue) {
if (typeof docFieldValue !== "number" || parseInt(docFieldValue, 10) !== docFieldValue) {
return false;
}
var divisor = userValue[0];
var mod = userValue[1];
return docFieldValue % divisor === mod;
}
function arrayContainsValue(docFieldValue, userValue) {
return userValue.some(function(val) {
if (docFieldValue instanceof Array) {
return docFieldValue.some(function(docFieldValueItem) {
return collate(val, docFieldValueItem) === 0;
});
}
return collate(val, docFieldValue) === 0;
});
}
function arrayContainsAllValues(docFieldValue, userValue) {
return userValue.every(function(val) {
return docFieldValue.some(function(docFieldValueItem) {
return collate(val, docFieldValueItem) === 0;
});
});
}
function arraySize(docFieldValue, userValue) {
return docFieldValue.length === userValue;
}
function regexMatch(docFieldValue, userValue) {
var re = new RegExp(userValue);
return re.test(docFieldValue);
}
function typeMatch(docFieldValue, userValue) {
switch (userValue) {
case "null":
return docFieldValue === null;
case "boolean":
return typeof docFieldValue === "boolean";
case "number":
return typeof docFieldValue === "number";
case "string":
return typeof docFieldValue === "string";
case "array":
return docFieldValue instanceof Array;
case "object":
return {}.toString.call(docFieldValue) === "[object Object]";
}
}
var matchers = {
$elemMatch: function(doc, userValue, parsedField, docFieldValue) {
if (!Array.isArray(docFieldValue)) {
return false;
}
if (docFieldValue.length === 0) {
return false;
}
if (typeof docFieldValue[0] === "object" && docFieldValue[0] !== null) {
return docFieldValue.some(function(val) {
return rowFilter(val, userValue, Object.keys(userValue));
});
}
return docFieldValue.some(function(val) {
return matchSelector(userValue, doc, parsedField, val);
});
},
$allMatch: function(doc, userValue, parsedField, docFieldValue) {
if (!Array.isArray(docFieldValue)) {
return false;
}
if (docFieldValue.length === 0) {
return false;
}
if (typeof docFieldValue[0] === "object" && docFieldValue[0] !== null) {
return docFieldValue.every(function(val) {
return rowFilter(val, userValue, Object.keys(userValue));
});
}
return docFieldValue.every(function(val) {
return matchSelector(userValue, doc, parsedField, val);
});
},
$eq: function(doc, userValue, parsedField, docFieldValue) {
return fieldIsNotUndefined(docFieldValue) && collate(docFieldValue, userValue) === 0;
},
$gte: function(doc, userValue, parsedField, docFieldValue) {
return fieldIsNotUndefined(docFieldValue) && collate(docFieldValue, userValue) >= 0;
},
$gt: function(doc, userValue, parsedField, docFieldValue) {
return fieldIsNotUndefined(docFieldValue) && collate(docFieldValue, userValue) > 0;
},
$lte: function(doc, userValue, parsedField, docFieldValue) {
return fieldIsNotUndefined(docFieldValue) && collate(docFieldValue, userValue) <= 0;
},
$lt: function(doc, userValue, parsedField, docFieldValue) {
return fieldIsNotUndefined(docFieldValue) && collate(docFieldValue, userValue) < 0;
},
$exists: function(doc, userValue, parsedField, docFieldValue) {
if (userValue) {
return fieldIsNotUndefined(docFieldValue);
}
return !fieldIsNotUndefined(docFieldValue);
},
$mod: function(doc, userValue, parsedField, docFieldValue) {
return fieldExists(docFieldValue) && modField(docFieldValue, userValue);
},
$ne: function(doc, userValue, parsedField, docFieldValue) {
return userValue.every(function(neValue) {
return collate(docFieldValue, neValue) !== 0;
});
},
$in: function(doc, userValue, parsedField, docFieldValue) {
return fieldExists(docFieldValue) && arrayContainsValue(docFieldValue, userValue);
},
$nin: function(doc, userValue, parsedField, docFieldValue) {
return fieldExists(docFieldValue) && !arrayContainsValue(docFieldValue, userValue);
},
$size: function(doc, userValue, parsedField, docFieldValue) {
return fieldExists(docFieldValue) && Array.isArray(docFieldValue) && arraySize(docFieldValue, userValue);
},
$all: function(doc, userValue, parsedField, docFieldValue) {
return Array.isArray(docFieldValue) && arrayContainsAllValues(docFieldValue, userValue);
},
$regex: function(doc, userValue, parsedField, docFieldValue) {
return fieldExists(docFieldValue) && typeof docFieldValue == "string" && userValue.every(function(regexValue) {
return regexMatch(docFieldValue, regexValue);
});
},
$type: function(doc, userValue, parsedField, docFieldValue) {
return typeMatch(docFieldValue, userValue);
}
};
function matchesSelector(doc, selector) {
if (typeof selector !== "object") {
throw new Error("Selector error: expected a JSON object");
}
selector = massageSelector(selector);
var row = {
doc
};
var rowsMatched = filterInMemoryFields([row], { selector }, Object.keys(selector));
return rowsMatched && rowsMatched.length === 1;
}
// src/index.ts
var drupe = (selector) => (subject) => {
return matchesSelector(subject, selector);
};
export {
drupe
};
+10
-7
{
"name": "@edge.app/drupe",
"version": "0.0.7",
"version": "0.0.8",
"repository": "https://github.com/EdgeApp/drupe",

@@ -12,9 +12,10 @@ "author": "Edge (Airbitz Inc.)",

"source": "./src/index.ts",
"main": "./dist/index.js",
"module": "./dist/index.js",
"main": "./dist/cjs/index.js",
"module": "./dist/esm/index.js",
"types": "./dist/index.d.ts",
"exports": {
".": {
"import": "./dist/index.js",
"default": "./dist/index.js"
"import": "./dist/esm/index.js",
"require": "./dist/cjs/index.js",
"types": "./dist/index.d.ts"
}

@@ -27,6 +28,7 @@ },

"clean": "node -e \"const fs=require('fs');fs.rmSync('dist',{recursive:true,force:true});\"",
"build:js": "bun build ./src/index.ts --outdir ./dist --format esm",
"build:esm": "bun build ./src/index.ts --outdir ./dist/esm --format esm",
"build:cjs": "bun build ./src/index.ts --outdir ./dist/cjs --format cjs && cp cjs-package.json ./dist/cjs/package.json",
"build:types": "bunx tsc --project tsconfig.build.json",
"build:copy-types": "node -e \"const fs=require('fs');fs.mkdirSync('dist',{recursive:true});fs.copyFileSync('src/pouchdb-selector-core.d.ts','dist/pouchdb-selector-core.d.ts');\"",
"build": "bun run clean && bun run build:js && bun run build:types && bun run build:copy-types",
"build": "bun run clean && bun run build:esm && bun run build:cjs && bun run build:types && bun run build:copy-types",
"prepare": "bun run build",

@@ -37,2 +39,3 @@ "release": "bun run prepare && bunx jsr publish && npm publish"

"@types/bun": "latest",
"bun-promptx": "0.2.0",
"typescript": "^5.6.3"

@@ -39,0 +42,0 @@ },

@@ -20,3 +20,3 @@ # drupe

# From NPM
yarn add @edge.app/drup
yarn add @edge.app/drupe

@@ -23,0 +23,0 @@ # From JSR

var __create = Object.create;
var __getProtoOf = Object.getPrototypeOf;
var __defProp = Object.defineProperty;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __toESM = (mod, isNodeMode, target) => {
target = mod != null ? __create(__getProtoOf(mod)) : {};
const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
for (let key of __getOwnPropNames(mod))
if (!__hasOwnProp.call(to, key))
__defProp(to, key, {
get: () => mod[key],
enumerable: true
});
return to;
};
var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
// node_modules/spark-md5/spark-md5.js
var require_spark_md5 = __commonJS((exports, module) => {
(function(factory) {
if (typeof exports === "object") {
module.exports = factory();
} else if (typeof define === "function" && define.amd) {
define(factory);
} else {
var glob;
try {
glob = window;
} catch (e) {
glob = self;
}
glob.SparkMD5 = factory();
}
})(function(undefined2) {
var add32 = function(a, b) {
return a + b & 4294967295;
}, hex_chr = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"];
function cmn(q, a, b, x, s, t) {
a = add32(add32(a, q), add32(x, t));
return add32(a << s | a >>> 32 - s, b);
}
function md5cycle(x, k) {
var a = x[0], b = x[1], c = x[2], d = x[3];
a += (b & c | ~b & d) + k[0] - 680876936 | 0;
a = (a << 7 | a >>> 25) + b | 0;
d += (a & b | ~a & c) + k[1] - 389564586 | 0;
d = (d << 12 | d >>> 20) + a | 0;
c += (d & a | ~d & b) + k[2] + 606105819 | 0;
c = (c << 17 | c >>> 15) + d | 0;
b += (c & d | ~c & a) + k[3] - 1044525330 | 0;
b = (b << 22 | b >>> 10) + c | 0;
a += (b & c | ~b & d) + k[4] - 176418897 | 0;
a = (a << 7 | a >>> 25) + b | 0;
d += (a & b | ~a & c) + k[5] + 1200080426 | 0;
d = (d << 12 | d >>> 20) + a | 0;
c += (d & a | ~d & b) + k[6] - 1473231341 | 0;
c = (c << 17 | c >>> 15) + d | 0;
b += (c & d | ~c & a) + k[7] - 45705983 | 0;
b = (b << 22 | b >>> 10) + c | 0;
a += (b & c | ~b & d) + k[8] + 1770035416 | 0;
a = (a << 7 | a >>> 25) + b | 0;
d += (a & b | ~a & c) + k[9] - 1958414417 | 0;
d = (d << 12 | d >>> 20) + a | 0;
c += (d & a | ~d & b) + k[10] - 42063 | 0;
c = (c << 17 | c >>> 15) + d | 0;
b += (c & d | ~c & a) + k[11] - 1990404162 | 0;
b = (b << 22 | b >>> 10) + c | 0;
a += (b & c | ~b & d) + k[12] + 1804603682 | 0;
a = (a << 7 | a >>> 25) + b | 0;
d += (a & b | ~a & c) + k[13] - 40341101 | 0;
d = (d << 12 | d >>> 20) + a | 0;
c += (d & a | ~d & b) + k[14] - 1502002290 | 0;
c = (c << 17 | c >>> 15) + d | 0;
b += (c & d | ~c & a) + k[15] + 1236535329 | 0;
b = (b << 22 | b >>> 10) + c | 0;
a += (b & d | c & ~d) + k[1] - 165796510 | 0;
a = (a << 5 | a >>> 27) + b | 0;
d += (a & c | b & ~c) + k[6] - 1069501632 | 0;
d = (d << 9 | d >>> 23) + a | 0;
c += (d & b | a & ~b) + k[11] + 643717713 | 0;
c = (c << 14 | c >>> 18) + d | 0;
b += (c & a | d & ~a) + k[0] - 373897302 | 0;
b = (b << 20 | b >>> 12) + c | 0;
a += (b & d | c & ~d) + k[5] - 701558691 | 0;
a = (a << 5 | a >>> 27) + b | 0;
d += (a & c | b & ~c) + k[10] + 38016083 | 0;
d = (d << 9 | d >>> 23) + a | 0;
c += (d & b | a & ~b) + k[15] - 660478335 | 0;
c = (c << 14 | c >>> 18) + d | 0;
b += (c & a | d & ~a) + k[4] - 405537848 | 0;
b = (b << 20 | b >>> 12) + c | 0;
a += (b & d | c & ~d) + k[9] + 568446438 | 0;
a = (a << 5 | a >>> 27) + b | 0;
d += (a & c | b & ~c) + k[14] - 1019803690 | 0;
d = (d << 9 | d >>> 23) + a | 0;
c += (d & b | a & ~b) + k[3] - 187363961 | 0;
c = (c << 14 | c >>> 18) + d | 0;
b += (c & a | d & ~a) + k[8] + 1163531501 | 0;
b = (b << 20 | b >>> 12) + c | 0;
a += (b & d | c & ~d) + k[13] - 1444681467 | 0;
a = (a << 5 | a >>> 27) + b | 0;
d += (a & c | b & ~c) + k[2] - 51403784 | 0;
d = (d << 9 | d >>> 23) + a | 0;
c += (d & b | a & ~b) + k[7] + 1735328473 | 0;
c = (c << 14 | c >>> 18) + d | 0;
b += (c & a | d & ~a) + k[12] - 1926607734 | 0;
b = (b << 20 | b >>> 12) + c | 0;
a += (b ^ c ^ d) + k[5] - 378558 | 0;
a = (a << 4 | a >>> 28) + b | 0;
d += (a ^ b ^ c) + k[8] - 2022574463 | 0;
d = (d << 11 | d >>> 21) + a | 0;
c += (d ^ a ^ b) + k[11] + 1839030562 | 0;
c = (c << 16 | c >>> 16) + d | 0;
b += (c ^ d ^ a) + k[14] - 35309556 | 0;
b = (b << 23 | b >>> 9) + c | 0;
a += (b ^ c ^ d) + k[1] - 1530992060 | 0;
a = (a << 4 | a >>> 28) + b | 0;
d += (a ^ b ^ c) + k[4] + 1272893353 | 0;
d = (d << 11 | d >>> 21) + a | 0;
c += (d ^ a ^ b) + k[7] - 155497632 | 0;
c = (c << 16 | c >>> 16) + d | 0;
b += (c ^ d ^ a) + k[10] - 1094730640 | 0;
b = (b << 23 | b >>> 9) + c | 0;
a += (b ^ c ^ d) + k[13] + 681279174 | 0;
a = (a << 4 | a >>> 28) + b | 0;
d += (a ^ b ^ c) + k[0] - 358537222 | 0;
d = (d << 11 | d >>> 21) + a | 0;
c += (d ^ a ^ b) + k[3] - 722521979 | 0;
c = (c << 16 | c >>> 16) + d | 0;
b += (c ^ d ^ a) + k[6] + 76029189 | 0;
b = (b << 23 | b >>> 9) + c | 0;
a += (b ^ c ^ d) + k[9] - 640364487 | 0;
a = (a << 4 | a >>> 28) + b | 0;
d += (a ^ b ^ c) + k[12] - 421815835 | 0;
d = (d << 11 | d >>> 21) + a | 0;
c += (d ^ a ^ b) + k[15] + 530742520 | 0;
c = (c << 16 | c >>> 16) + d | 0;
b += (c ^ d ^ a) + k[2] - 995338651 | 0;
b = (b << 23 | b >>> 9) + c | 0;
a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;
a = (a << 6 | a >>> 26) + b | 0;
d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;
d = (d << 10 | d >>> 22) + a | 0;
c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;
c = (c << 15 | c >>> 17) + d | 0;
b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;
b = (b << 21 | b >>> 11) + c | 0;
a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;
a = (a << 6 | a >>> 26) + b | 0;
d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;
d = (d << 10 | d >>> 22) + a | 0;
c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;
c = (c << 15 | c >>> 17) + d | 0;
b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;
b = (b << 21 | b >>> 11) + c | 0;
a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;
a = (a << 6 | a >>> 26) + b | 0;
d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;
d = (d << 10 | d >>> 22) + a | 0;
c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;
c = (c << 15 | c >>> 17) + d | 0;
b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;
b = (b << 21 | b >>> 11) + c | 0;
a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;
a = (a << 6 | a >>> 26) + b | 0;
d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;
d = (d << 10 | d >>> 22) + a | 0;
c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;
c = (c << 15 | c >>> 17) + d | 0;
b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;
b = (b << 21 | b >>> 11) + c | 0;
x[0] = a + x[0] | 0;
x[1] = b + x[1] | 0;
x[2] = c + x[2] | 0;
x[3] = d + x[3] | 0;
}
function md5blk(s) {
var md5blks = [], i;
for (i = 0;i < 64; i += 4) {
md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);
}
return md5blks;
}
function md5blk_array(a) {
var md5blks = [], i;
for (i = 0;i < 64; i += 4) {
md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);
}
return md5blks;
}
function md51(s) {
var n = s.length, state = [1732584193, -271733879, -1732584194, 271733878], i, length, tail, tmp, lo, hi;
for (i = 64;i <= n; i += 64) {
md5cycle(state, md5blk(s.substring(i - 64, i)));
}
s = s.substring(i - 64);
length = s.length;
tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
for (i = 0;i < length; i += 1) {
tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);
}
tail[i >> 2] |= 128 << (i % 4 << 3);
if (i > 55) {
md5cycle(state, tail);
for (i = 0;i < 16; i += 1) {
tail[i] = 0;
}
}
tmp = n * 8;
tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);
lo = parseInt(tmp[2], 16);
hi = parseInt(tmp[1], 16) || 0;
tail[14] = lo;
tail[15] = hi;
md5cycle(state, tail);
return state;
}
function md51_array(a) {
var n = a.length, state = [1732584193, -271733879, -1732584194, 271733878], i, length, tail, tmp, lo, hi;
for (i = 64;i <= n; i += 64) {
md5cycle(state, md5blk_array(a.subarray(i - 64, i)));
}
a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);
length = a.length;
tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
for (i = 0;i < length; i += 1) {
tail[i >> 2] |= a[i] << (i % 4 << 3);
}
tail[i >> 2] |= 128 << (i % 4 << 3);
if (i > 55) {
md5cycle(state, tail);
for (i = 0;i < 16; i += 1) {
tail[i] = 0;
}
}
tmp = n * 8;
tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);
lo = parseInt(tmp[2], 16);
hi = parseInt(tmp[1], 16) || 0;
tail[14] = lo;
tail[15] = hi;
md5cycle(state, tail);
return state;
}
function rhex(n) {
var s = "", j;
for (j = 0;j < 4; j += 1) {
s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];
}
return s;
}
function hex(x) {
var i;
for (i = 0;i < x.length; i += 1) {
x[i] = rhex(x[i]);
}
return x.join("");
}
if (hex(md51("hello")) !== "5d41402abc4b2a76b9719d911017c592") {
add32 = function(x, y) {
var lsw = (x & 65535) + (y & 65535), msw = (x >> 16) + (y >> 16) + (lsw >> 16);
return msw << 16 | lsw & 65535;
};
}
if (typeof ArrayBuffer !== "undefined" && !ArrayBuffer.prototype.slice) {
(function() {
function clamp(val, length) {
val = val | 0 || 0;
if (val < 0) {
return Math.max(val + length, 0);
}
return Math.min(val, length);
}
ArrayBuffer.prototype.slice = function(from, to) {
var length = this.byteLength, begin = clamp(from, length), end = length, num, target, targetArray, sourceArray;
if (to !== undefined2) {
end = clamp(to, length);
}
if (begin > end) {
return new ArrayBuffer(0);
}
num = end - begin;
target = new ArrayBuffer(num);
targetArray = new Uint8Array(target);
sourceArray = new Uint8Array(this, begin, num);
targetArray.set(sourceArray);
return target;
};
})();
}
function toUtf8(str) {
if (/[\u0080-\uFFFF]/.test(str)) {
str = unescape(encodeURIComponent(str));
}
return str;
}
function utf8Str2ArrayBuffer(str, returnUInt8Array) {
var length = str.length, buff = new ArrayBuffer(length), arr = new Uint8Array(buff), i;
for (i = 0;i < length; i += 1) {
arr[i] = str.charCodeAt(i);
}
return returnUInt8Array ? arr : buff;
}
function arrayBuffer2Utf8Str(buff) {
return String.fromCharCode.apply(null, new Uint8Array(buff));
}
function concatenateArrayBuffers(first, second, returnUInt8Array) {
var result = new Uint8Array(first.byteLength + second.byteLength);
result.set(new Uint8Array(first));
result.set(new Uint8Array(second), first.byteLength);
return returnUInt8Array ? result : result.buffer;
}
function hexToBinaryString(hex2) {
var bytes = [], length = hex2.length, x;
for (x = 0;x < length - 1; x += 2) {
bytes.push(parseInt(hex2.substr(x, 2), 16));
}
return String.fromCharCode.apply(String, bytes);
}
function SparkMD5() {
this.reset();
}
SparkMD5.prototype.append = function(str) {
this.appendBinary(toUtf8(str));
return this;
};
SparkMD5.prototype.appendBinary = function(contents) {
this._buff += contents;
this._length += contents.length;
var length = this._buff.length, i;
for (i = 64;i <= length; i += 64) {
md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));
}
this._buff = this._buff.substring(i - 64);
return this;
};
SparkMD5.prototype.end = function(raw) {
var buff = this._buff, length = buff.length, i, tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], ret;
for (i = 0;i < length; i += 1) {
tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);
}
this._finish(tail, length);
ret = hex(this._hash);
if (raw) {
ret = hexToBinaryString(ret);
}
this.reset();
return ret;
};
SparkMD5.prototype.reset = function() {
this._buff = "";
this._length = 0;
this._hash = [1732584193, -271733879, -1732584194, 271733878];
return this;
};
SparkMD5.prototype.getState = function() {
return {
buff: this._buff,
length: this._length,
hash: this._hash.slice()
};
};
SparkMD5.prototype.setState = function(state) {
this._buff = state.buff;
this._length = state.length;
this._hash = state.hash;
return this;
};
SparkMD5.prototype.destroy = function() {
delete this._hash;
delete this._buff;
delete this._length;
};
SparkMD5.prototype._finish = function(tail, length) {
var i = length, tmp, lo, hi;
tail[i >> 2] |= 128 << (i % 4 << 3);
if (i > 55) {
md5cycle(this._hash, tail);
for (i = 0;i < 16; i += 1) {
tail[i] = 0;
}
}
tmp = this._length * 8;
tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);
lo = parseInt(tmp[2], 16);
hi = parseInt(tmp[1], 16) || 0;
tail[14] = lo;
tail[15] = hi;
md5cycle(this._hash, tail);
};
SparkMD5.hash = function(str, raw) {
return SparkMD5.hashBinary(toUtf8(str), raw);
};
SparkMD5.hashBinary = function(content, raw) {
var hash = md51(content), ret = hex(hash);
return raw ? hexToBinaryString(ret) : ret;
};
SparkMD5.ArrayBuffer = function() {
this.reset();
};
SparkMD5.ArrayBuffer.prototype.append = function(arr) {
var buff = concatenateArrayBuffers(this._buff.buffer, arr, true), length = buff.length, i;
this._length += arr.byteLength;
for (i = 64;i <= length; i += 64) {
md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));
}
this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);
return this;
};
SparkMD5.ArrayBuffer.prototype.end = function(raw) {
var buff = this._buff, length = buff.length, tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], i, ret;
for (i = 0;i < length; i += 1) {
tail[i >> 2] |= buff[i] << (i % 4 << 3);
}
this._finish(tail, length);
ret = hex(this._hash);
if (raw) {
ret = hexToBinaryString(ret);
}
this.reset();
return ret;
};
SparkMD5.ArrayBuffer.prototype.reset = function() {
this._buff = new Uint8Array(0);
this._length = 0;
this._hash = [1732584193, -271733879, -1732584194, 271733878];
return this;
};
SparkMD5.ArrayBuffer.prototype.getState = function() {
var state = SparkMD5.prototype.getState.call(this);
state.buff = arrayBuffer2Utf8Str(state.buff);
return state;
};
SparkMD5.ArrayBuffer.prototype.setState = function(state) {
state.buff = utf8Str2ArrayBuffer(state.buff, true);
return SparkMD5.prototype.setState.call(this, state);
};
SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;
SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;
SparkMD5.ArrayBuffer.hash = function(arr, raw) {
var hash = md51_array(new Uint8Array(arr)), ret = hex(hash);
return raw ? hexToBinaryString(ret) : ret;
};
return SparkMD5;
});
});
// node_modules/pouchdb-errors/lib/index.es.js
class PouchError extends Error {
constructor(status, error, reason) {
super();
this.status = status;
this.name = error;
this.message = reason;
this.error = true;
}
toString() {
return JSON.stringify({
status: this.status,
name: this.name,
message: this.message,
reason: this.reason
});
}
}
var UNAUTHORIZED = new PouchError(401, "unauthorized", "Name or password is incorrect.");
var MISSING_BULK_DOCS = new PouchError(400, "bad_request", "Missing JSON list of 'docs'");
var MISSING_DOC = new PouchError(404, "not_found", "missing");
var REV_CONFLICT = new PouchError(409, "conflict", "Document update conflict");
var INVALID_ID = new PouchError(400, "bad_request", "_id field must contain a string");
var MISSING_ID = new PouchError(412, "missing_id", "_id is required for puts");
var RESERVED_ID = new PouchError(400, "bad_request", "Only reserved document ids may start with underscore.");
var NOT_OPEN = new PouchError(412, "precondition_failed", "Database not open");
var UNKNOWN_ERROR = new PouchError(500, "unknown_error", "Database encountered an unknown error");
var BAD_ARG = new PouchError(500, "badarg", "Some query argument is invalid");
var INVALID_REQUEST = new PouchError(400, "invalid_request", "Request was invalid");
var QUERY_PARSE_ERROR = new PouchError(400, "query_parse_error", "Some query parameter is invalid");
var DOC_VALIDATION = new PouchError(500, "doc_validation", "Bad special document member");
var BAD_REQUEST = new PouchError(400, "bad_request", "Something wrong with the request");
var NOT_AN_OBJECT = new PouchError(400, "bad_request", "Document must be a JSON object");
var DB_MISSING = new PouchError(404, "not_found", "Database not found");
var IDB_ERROR = new PouchError(500, "indexed_db_went_bad", "unknown");
var WSQ_ERROR = new PouchError(500, "web_sql_went_bad", "unknown");
var LDB_ERROR = new PouchError(500, "levelDB_went_went_bad", "unknown");
var FORBIDDEN = new PouchError(403, "forbidden", "Forbidden by design doc validate_doc_update function");
var INVALID_REV = new PouchError(400, "bad_request", "Invalid rev format");
var FILE_EXISTS = new PouchError(412, "file_exists", "The database could not be created, the file already exists.");
var MISSING_STUB = new PouchError(412, "missing_stub", "A pre-existing attachment stub wasn't found");
var INVALID_URL = new PouchError(413, "invalid_url", "Provided URL is invalid");
// node:events
var SymbolFor = Symbol.for;
var kCapture = Symbol("kCapture");
var kErrorMonitor = SymbolFor("events.errorMonitor");
var kMaxEventTargetListeners = Symbol("events.maxEventTargetListeners");
var kMaxEventTargetListenersWarned = Symbol("events.maxEventTargetListenersWarned");
var kRejection = SymbolFor("nodejs.rejection");
var captureRejectionSymbol = SymbolFor("nodejs.rejection");
var ArrayPrototypeSlice = Array.prototype.slice;
var defaultMaxListeners = 10;
var EventEmitter = function EventEmitter2(opts) {
if (this._events === undefined || this._events === this.__proto__._events)
this._events = { __proto__: null }, this._eventsCount = 0;
if (this._maxListeners ??= undefined, this[kCapture] = opts?.captureRejections ? Boolean(opts?.captureRejections) : EventEmitterPrototype[kCapture])
this.emit = emitWithRejectionCapture;
};
var EventEmitterPrototype = EventEmitter.prototype = {};
EventEmitterPrototype._events = undefined;
EventEmitterPrototype._eventsCount = 0;
EventEmitterPrototype._maxListeners = undefined;
EventEmitterPrototype.setMaxListeners = function setMaxListeners(n) {
return validateNumber(n, "setMaxListeners", 0), this._maxListeners = n, this;
};
EventEmitterPrototype.constructor = EventEmitter;
EventEmitterPrototype.getMaxListeners = function getMaxListeners() {
return this?._maxListeners ?? defaultMaxListeners;
};
function emitError(emitter, args) {
var { _events: events } = emitter;
if (args[0] ??= new Error("Unhandled error."), !events)
throw args[0];
var errorMonitor = events[kErrorMonitor];
if (errorMonitor)
for (var handler of ArrayPrototypeSlice.call(errorMonitor))
handler.apply(emitter, args);
var handlers = events.error;
if (!handlers)
throw args[0];
for (var handler of ArrayPrototypeSlice.call(handlers))
handler.apply(emitter, args);
return true;
}
function addCatch(emitter, promise, type, args) {
promise.then(undefined, function(err) {
queueMicrotask(() => emitUnhandledRejectionOrErr(emitter, err, type, args));
});
}
function emitUnhandledRejectionOrErr(emitter, err, type, args) {
if (typeof emitter[kRejection] === "function")
emitter[kRejection](err, type, ...args);
else
try {
emitter[kCapture] = false, emitter.emit("error", err);
} finally {
emitter[kCapture] = true;
}
}
var emitWithoutRejectionCapture = function emit(type, ...args) {
if (type === "error")
return emitError(this, args);
var { _events: events } = this;
if (events === undefined)
return false;
var handlers = events[type];
if (handlers === undefined)
return false;
let maybeClonedHandlers = handlers.length > 1 ? handlers.slice() : handlers;
for (let i = 0, { length } = maybeClonedHandlers;i < length; i++) {
let handler = maybeClonedHandlers[i];
switch (args.length) {
case 0:
handler.call(this);
break;
case 1:
handler.call(this, args[0]);
break;
case 2:
handler.call(this, args[0], args[1]);
break;
case 3:
handler.call(this, args[0], args[1], args[2]);
break;
default:
handler.apply(this, args);
break;
}
}
return true;
};
var emitWithRejectionCapture = function emit2(type, ...args) {
if (type === "error")
return emitError(this, args);
var { _events: events } = this;
if (events === undefined)
return false;
var handlers = events[type];
if (handlers === undefined)
return false;
let maybeClonedHandlers = handlers.length > 1 ? handlers.slice() : handlers;
for (let i = 0, { length } = maybeClonedHandlers;i < length; i++) {
let handler = maybeClonedHandlers[i], result;
switch (args.length) {
case 0:
result = handler.call(this);
break;
case 1:
result = handler.call(this, args[0]);
break;
case 2:
result = handler.call(this, args[0], args[1]);
break;
case 3:
result = handler.call(this, args[0], args[1], args[2]);
break;
default:
result = handler.apply(this, args);
break;
}
if (result !== undefined && typeof result?.then === "function" && result.then === Promise.prototype.then)
addCatch(this, result, type, args);
}
return true;
};
EventEmitterPrototype.emit = emitWithoutRejectionCapture;
EventEmitterPrototype.addListener = function addListener(type, fn) {
checkListener(fn);
var events = this._events;
if (!events)
events = this._events = { __proto__: null }, this._eventsCount = 0;
else if (events.newListener)
this.emit("newListener", type, fn.listener ?? fn);
var handlers = events[type];
if (!handlers)
events[type] = [fn], this._eventsCount++;
else {
handlers.push(fn);
var m = this._maxListeners ?? defaultMaxListeners;
if (m > 0 && handlers.length > m && !handlers.warned)
overflowWarning(this, type, handlers);
}
return this;
};
EventEmitterPrototype.on = EventEmitterPrototype.addListener;
EventEmitterPrototype.prependListener = function prependListener(type, fn) {
checkListener(fn);
var events = this._events;
if (!events)
events = this._events = { __proto__: null }, this._eventsCount = 0;
else if (events.newListener)
this.emit("newListener", type, fn.listener ?? fn);
var handlers = events[type];
if (!handlers)
events[type] = [fn], this._eventsCount++;
else {
handlers.unshift(fn);
var m = this._maxListeners ?? defaultMaxListeners;
if (m > 0 && handlers.length > m && !handlers.warned)
overflowWarning(this, type, handlers);
}
return this;
};
function overflowWarning(emitter, type, handlers) {
handlers.warned = true;
let warn = new Error(`Possible EventEmitter memory leak detected. ${handlers.length} ${String(type)} listeners added to [${emitter.constructor.name}]. Use emitter.setMaxListeners() to increase limit`);
warn.name = "MaxListenersExceededWarning", warn.emitter = emitter, warn.type = type, warn.count = handlers.length, console.warn(warn);
}
function onceWrapper(type, listener, ...args) {
this.removeListener(type, listener), listener.apply(this, args);
}
EventEmitterPrototype.once = function once(type, fn) {
checkListener(fn);
let bound = onceWrapper.bind(this, type, fn);
return bound.listener = fn, this.addListener(type, bound), this;
};
EventEmitterPrototype.prependOnceListener = function prependOnceListener(type, fn) {
checkListener(fn);
let bound = onceWrapper.bind(this, type, fn);
return bound.listener = fn, this.prependListener(type, bound), this;
};
EventEmitterPrototype.removeListener = function removeListener(type, fn) {
checkListener(fn);
var { _events: events } = this;
if (!events)
return this;
var handlers = events[type];
if (!handlers)
return this;
var length = handlers.length;
let position = -1;
for (let i = length - 1;i >= 0; i--)
if (handlers[i] === fn || handlers[i].listener === fn) {
position = i;
break;
}
if (position < 0)
return this;
if (position === 0)
handlers.shift();
else
handlers.splice(position, 1);
if (handlers.length === 0)
delete events[type], this._eventsCount--;
return this;
};
EventEmitterPrototype.off = EventEmitterPrototype.removeListener;
EventEmitterPrototype.removeAllListeners = function removeAllListeners(type) {
var { _events: events } = this;
if (type && events) {
if (events[type])
delete events[type], this._eventsCount--;
} else
this._events = { __proto__: null };
return this;
};
EventEmitterPrototype.listeners = function listeners(type) {
var { _events: events } = this;
if (!events)
return [];
var handlers = events[type];
if (!handlers)
return [];
return handlers.map((x) => x.listener ?? x);
};
EventEmitterPrototype.rawListeners = function rawListeners(type) {
var { _events } = this;
if (!_events)
return [];
var handlers = _events[type];
if (!handlers)
return [];
return handlers.slice();
};
EventEmitterPrototype.listenerCount = function listenerCount(type) {
var { _events: events } = this;
if (!events)
return 0;
return events[type]?.length ?? 0;
};
EventEmitterPrototype.eventNames = function eventNames() {
return this._eventsCount > 0 ? Reflect.ownKeys(this._events) : [];
};
EventEmitterPrototype[kCapture] = false;
function once2(emitter, type, options) {
var signal = options?.signal;
if (validateAbortSignal(signal, "options.signal"), signal?.aborted)
throw new AbortError(undefined, { cause: signal?.reason });
let { resolve, reject, promise } = $newPromiseCapability(Promise), errorListener = (err) => {
if (emitter.removeListener(type, resolver), signal != null)
eventTargetAgnosticRemoveListener(signal, "abort", abortListener);
reject(err);
}, resolver = (...args) => {
if (typeof emitter.removeListener === "function")
emitter.removeListener("error", errorListener);
if (signal != null)
eventTargetAgnosticRemoveListener(signal, "abort", abortListener);
resolve(args);
};
if (eventTargetAgnosticAddListener(emitter, type, resolver, { once: true }), type !== "error" && typeof emitter.once === "function")
emitter.once("error", errorListener);
function abortListener() {
eventTargetAgnosticRemoveListener(emitter, type, resolver), eventTargetAgnosticRemoveListener(emitter, "error", errorListener), reject(new AbortError(undefined, { cause: signal?.reason }));
}
if (signal != null)
eventTargetAgnosticAddListener(signal, "abort", abortListener, { once: true });
return promise;
}
function getEventListeners(emitter, type) {
return emitter.listeners(type);
}
function setMaxListeners2(n, ...eventTargets) {
validateNumber(n, "setMaxListeners", 0);
var length;
if (eventTargets && (length = eventTargets.length))
for (let i = 0;i < length; i++)
eventTargets[i].setMaxListeners(n);
else
defaultMaxListeners = n;
}
function listenerCount2(emitter, type) {
return emitter.listenerCount(type);
}
function eventTargetAgnosticRemoveListener(emitter, name, listener, flags) {
if (typeof emitter.removeListener === "function")
emitter.removeListener(name, listener);
else
emitter.removeEventListener(name, listener, flags);
}
function eventTargetAgnosticAddListener(emitter, name, listener, flags) {
if (typeof emitter.on === "function")
if (flags.once)
emitter.once(name, listener);
else
emitter.on(name, listener);
else
emitter.addEventListener(name, listener, flags);
}
class AbortError extends Error {
constructor(message = "The operation was aborted", options = undefined) {
if (options !== undefined && typeof options !== "object")
throw ERR_INVALID_ARG_TYPE("options", "Object", options);
super(message, options);
this.code = "ABORT_ERR", this.name = "AbortError";
}
}
function ERR_INVALID_ARG_TYPE(name, type, value) {
let err = new TypeError(`The "${name}" argument must be of type ${type}. Received ${value}`);
return err.code = "ERR_INVALID_ARG_TYPE", err;
}
function ERR_OUT_OF_RANGE(name, range, value) {
let err = new RangeError(`The "${name}" argument is out of range. It must be ${range}. Received ${value}`);
return err.code = "ERR_OUT_OF_RANGE", err;
}
function validateAbortSignal(signal, name) {
if (signal !== undefined && (signal === null || typeof signal !== "object" || !("aborted" in signal)))
throw ERR_INVALID_ARG_TYPE(name, "AbortSignal", signal);
}
function validateNumber(value, name, min, max) {
if (typeof value !== "number")
throw ERR_INVALID_ARG_TYPE(name, "number", value);
if (min != null && value < min || max != null && value > max || (min != null || max != null) && Number.isNaN(value))
throw ERR_OUT_OF_RANGE(name, `${min != null ? `>= ${min}` : ""}${min != null && max != null ? " && " : ""}${max != null ? `<= ${max}` : ""}`, value);
}
function checkListener(listener) {
if (typeof listener !== "function")
throw new TypeError("The listener must be a function");
}
function validateBoolean(value, name) {
if (typeof value !== "boolean")
throw ERR_INVALID_ARG_TYPE(name, "boolean", value);
}
function getMaxListeners2(emitterOrTarget) {
return emitterOrTarget?._maxListeners ?? defaultMaxListeners;
}
function addAbortListener(signal, listener) {
if (signal === undefined)
throw ERR_INVALID_ARG_TYPE("signal", "AbortSignal", signal);
if (validateAbortSignal(signal, "signal"), typeof listener !== "function")
throw ERR_INVALID_ARG_TYPE("listener", "function", listener);
let removeEventListener;
if (signal.aborted)
queueMicrotask(() => listener());
else
signal.addEventListener("abort", listener, { __proto__: null, once: true }), removeEventListener = () => {
signal.removeEventListener("abort", listener);
};
return { __proto__: null, [Symbol.dispose]() {
removeEventListener?.();
} };
}
Object.defineProperties(EventEmitter, { captureRejections: { get() {
return EventEmitterPrototype[kCapture];
}, set(value) {
validateBoolean(value, "EventEmitter.captureRejections"), EventEmitterPrototype[kCapture] = value;
}, enumerable: true }, defaultMaxListeners: { enumerable: true, get: () => {
return defaultMaxListeners;
}, set: (arg) => {
validateNumber(arg, "defaultMaxListeners", 0), defaultMaxListeners = arg;
} }, kMaxEventTargetListeners: { value: kMaxEventTargetListeners, enumerable: false, configurable: false, writable: false }, kMaxEventTargetListenersWarned: { value: kMaxEventTargetListenersWarned, enumerable: false, configurable: false, writable: false } });
Object.assign(EventEmitter, { once: once2, getEventListeners, getMaxListeners: getMaxListeners2, setMaxListeners: setMaxListeners2, EventEmitter, usingDomains: false, captureRejectionSymbol, errorMonitor: kErrorMonitor, addAbortListener, init: EventEmitter, listenerCount: listenerCount2 });
// node_modules/pouchdb-md5/lib/index-browser.es.js
var import_spark_md5 = __toESM(require_spark_md5(), 1);
var setImmediateShim = self.setImmediate || self.setTimeout;
// node_modules/pouchdb-utils/lib/index-browser.es.js
function isBinaryObject(object) {
return typeof ArrayBuffer !== "undefined" && object instanceof ArrayBuffer || typeof Blob !== "undefined" && object instanceof Blob;
}
function cloneBinaryObject(object) {
return object instanceof ArrayBuffer ? object.slice(0) : object.slice(0, object.size, object.type);
}
var funcToString = Function.prototype.toString;
var objectCtorString = funcToString.call(Object);
function isPlainObject(value) {
var proto = Object.getPrototypeOf(value);
if (proto === null) {
return true;
}
var Ctor = proto.constructor;
return typeof Ctor == "function" && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString;
}
function clone(object) {
var newObject;
var i;
var len;
if (!object || typeof object !== "object") {
return object;
}
if (Array.isArray(object)) {
newObject = [];
for (i = 0, len = object.length;i < len; i++) {
newObject[i] = clone(object[i]);
}
return newObject;
}
if (object instanceof Date && isFinite(object)) {
return object.toISOString();
}
if (isBinaryObject(object)) {
return cloneBinaryObject(object);
}
if (!isPlainObject(object)) {
return object;
}
newObject = {};
for (i in object) {
if (Object.prototype.hasOwnProperty.call(object, i)) {
var value = clone(object[i]);
if (typeof value !== "undefined") {
newObject[i] = value;
}
}
}
return newObject;
}
var hasLocal;
try {
localStorage.setItem("_pouch_check_localstorage", 1);
hasLocal = !!localStorage.getItem("_pouch_check_localstorage");
} catch (e) {
hasLocal = false;
}
function f() {}
var hasName = f.name;
var res;
if (hasName) {
res = function(fun) {
return fun.name;
};
} else {
res = function(fun) {
var match = fun.toString().match(/^\s*function\s*(?:(\S+)\s*)?\(/);
if (match && match[1]) {
return match[1];
} else {
return "";
}
};
}
// node_modules/pouchdb-collate/lib/index.es.js
function collate(a, b) {
if (a === b) {
return 0;
}
a = normalizeKey(a);
b = normalizeKey(b);
var ai = collationIndex(a);
var bi = collationIndex(b);
if (ai - bi !== 0) {
return ai - bi;
}
switch (typeof a) {
case "number":
return a - b;
case "boolean":
return a < b ? -1 : 1;
case "string":
return stringCollate(a, b);
}
return Array.isArray(a) ? arrayCollate(a, b) : objectCollate(a, b);
}
function normalizeKey(key) {
switch (typeof key) {
case "undefined":
return null;
case "number":
if (key === Infinity || key === -Infinity || isNaN(key)) {
return null;
}
return key;
case "object":
var origKey = key;
if (Array.isArray(key)) {
var len = key.length;
key = new Array(len);
for (var i = 0;i < len; i++) {
key[i] = normalizeKey(origKey[i]);
}
} else if (key instanceof Date) {
return key.toJSON();
} else if (key !== null) {
key = {};
for (var k in origKey) {
if (Object.prototype.hasOwnProperty.call(origKey, k)) {
var val = origKey[k];
if (typeof val !== "undefined") {
key[k] = normalizeKey(val);
}
}
}
}
}
return key;
}
function arrayCollate(a, b) {
var len = Math.min(a.length, b.length);
for (var i = 0;i < len; i++) {
var sort = collate(a[i], b[i]);
if (sort !== 0) {
return sort;
}
}
return a.length === b.length ? 0 : a.length > b.length ? 1 : -1;
}
function stringCollate(a, b) {
return a === b ? 0 : a > b ? 1 : -1;
}
function objectCollate(a, b) {
var ak = Object.keys(a), bk = Object.keys(b);
var len = Math.min(ak.length, bk.length);
for (var i = 0;i < len; i++) {
var sort = collate(ak[i], bk[i]);
if (sort !== 0) {
return sort;
}
sort = collate(a[ak[i]], b[bk[i]]);
if (sort !== 0) {
return sort;
}
}
return ak.length === bk.length ? 0 : ak.length > bk.length ? 1 : -1;
}
function collationIndex(x) {
var id = ["boolean", "number", "string", "object"];
var idx = id.indexOf(typeof x);
if (~idx) {
if (x === null) {
return 1;
}
if (Array.isArray(x)) {
return 5;
}
return idx < 3 ? idx + 2 : idx + 3;
}
if (Array.isArray(x)) {
return 5;
}
}
// node_modules/pouchdb-selector-core/lib/index.es.js
function getFieldFromDoc(doc, parsedField) {
var value = doc;
for (var i = 0, len = parsedField.length;i < len; i++) {
var key = parsedField[i];
value = value[key];
if (!value) {
break;
}
}
return value;
}
function compare(left, right) {
return left < right ? -1 : left > right ? 1 : 0;
}
function parseField(fieldName) {
var fields = [];
var current = "";
for (var i = 0, len = fieldName.length;i < len; i++) {
var ch = fieldName[i];
if (i > 0 && fieldName[i - 1] === "\\" && (ch === "$" || ch === ".")) {
current = current.substring(0, current.length - 1) + ch;
} else if (ch === ".") {
fields.push(current);
current = "";
} else {
current += ch;
}
}
fields.push(current);
return fields;
}
var combinationFields = ["$or", "$nor", "$not"];
function isCombinationalField(field) {
return combinationFields.indexOf(field) > -1;
}
function getKey(obj) {
return Object.keys(obj)[0];
}
function getValue(obj) {
return obj[getKey(obj)];
}
function mergeAndedSelectors(selectors) {
var res2 = {};
var first = { $or: true, $nor: true };
selectors.forEach(function(selector) {
Object.keys(selector).forEach(function(field) {
var matcher = selector[field];
if (typeof matcher !== "object") {
matcher = { $eq: matcher };
}
if (isCombinationalField(field)) {
if (matcher instanceof Array) {
if (first[field]) {
first[field] = false;
res2[field] = matcher;
return;
}
var entries = [];
res2[field].forEach(function(existing) {
Object.keys(matcher).forEach(function(key) {
var m = matcher[key];
var longest = Math.max(Object.keys(existing).length, Object.keys(m).length);
var merged = mergeAndedSelectors([existing, m]);
if (Object.keys(merged).length <= longest) {
return;
}
entries.push(merged);
});
});
res2[field] = entries;
} else {
res2[field] = mergeAndedSelectors([matcher]);
}
} else {
var fieldMatchers = res2[field] = res2[field] || {};
Object.keys(matcher).forEach(function(operator) {
var value = matcher[operator];
if (operator === "$gt" || operator === "$gte") {
return mergeGtGte(operator, value, fieldMatchers);
} else if (operator === "$lt" || operator === "$lte") {
return mergeLtLte(operator, value, fieldMatchers);
} else if (operator === "$ne") {
return mergeNe(value, fieldMatchers);
} else if (operator === "$eq") {
return mergeEq(value, fieldMatchers);
} else if (operator === "$regex") {
return mergeRegex(value, fieldMatchers);
}
fieldMatchers[operator] = value;
});
}
});
});
return res2;
}
function mergeGtGte(operator, value, fieldMatchers) {
if (typeof fieldMatchers.$eq !== "undefined") {
return;
}
if (typeof fieldMatchers.$gte !== "undefined") {
if (operator === "$gte") {
if (value > fieldMatchers.$gte) {
fieldMatchers.$gte = value;
}
} else {
if (value >= fieldMatchers.$gte) {
delete fieldMatchers.$gte;
fieldMatchers.$gt = value;
}
}
} else if (typeof fieldMatchers.$gt !== "undefined") {
if (operator === "$gte") {
if (value > fieldMatchers.$gt) {
delete fieldMatchers.$gt;
fieldMatchers.$gte = value;
}
} else {
if (value > fieldMatchers.$gt) {
fieldMatchers.$gt = value;
}
}
} else {
fieldMatchers[operator] = value;
}
}
function mergeLtLte(operator, value, fieldMatchers) {
if (typeof fieldMatchers.$eq !== "undefined") {
return;
}
if (typeof fieldMatchers.$lte !== "undefined") {
if (operator === "$lte") {
if (value < fieldMatchers.$lte) {
fieldMatchers.$lte = value;
}
} else {
if (value <= fieldMatchers.$lte) {
delete fieldMatchers.$lte;
fieldMatchers.$lt = value;
}
}
} else if (typeof fieldMatchers.$lt !== "undefined") {
if (operator === "$lte") {
if (value < fieldMatchers.$lt) {
delete fieldMatchers.$lt;
fieldMatchers.$lte = value;
}
} else {
if (value < fieldMatchers.$lt) {
fieldMatchers.$lt = value;
}
}
} else {
fieldMatchers[operator] = value;
}
}
function mergeNe(value, fieldMatchers) {
if ("$ne" in fieldMatchers) {
fieldMatchers.$ne.push(value);
} else {
fieldMatchers.$ne = [value];
}
}
function mergeEq(value, fieldMatchers) {
delete fieldMatchers.$gt;
delete fieldMatchers.$gte;
delete fieldMatchers.$lt;
delete fieldMatchers.$lte;
delete fieldMatchers.$ne;
fieldMatchers.$eq = value;
}
function mergeRegex(value, fieldMatchers) {
if ("$regex" in fieldMatchers) {
fieldMatchers.$regex.push(value);
} else {
fieldMatchers.$regex = [value];
}
}
function mergeAndedSelectorsNested(obj) {
for (var prop in obj) {
if (Array.isArray(obj)) {
for (var i in obj) {
if (obj[i]["$and"]) {
obj[i] = mergeAndedSelectors(obj[i]["$and"]);
}
}
}
var value = obj[prop];
if (typeof value === "object") {
mergeAndedSelectorsNested(value);
}
}
return obj;
}
function isAndInSelector(obj, isAnd) {
for (var prop in obj) {
if (prop === "$and") {
isAnd = true;
}
var value = obj[prop];
if (typeof value === "object") {
isAnd = isAndInSelector(value, isAnd);
}
}
return isAnd;
}
function massageSelector(input) {
var result = clone(input);
if (isAndInSelector(result, false)) {
result = mergeAndedSelectorsNested(result);
if ("$and" in result) {
result = mergeAndedSelectors(result["$and"]);
}
}
["$or", "$nor"].forEach(function(orOrNor) {
if (orOrNor in result) {
result[orOrNor].forEach(function(subSelector) {
var fields2 = Object.keys(subSelector);
for (var i2 = 0;i2 < fields2.length; i2++) {
var field2 = fields2[i2];
var matcher2 = subSelector[field2];
if (typeof matcher2 !== "object" || matcher2 === null) {
subSelector[field2] = { $eq: matcher2 };
}
}
});
}
});
if ("$not" in result) {
result["$not"] = mergeAndedSelectors([result["$not"]]);
}
var fields = Object.keys(result);
for (var i = 0;i < fields.length; i++) {
var field = fields[i];
var matcher = result[field];
if (typeof matcher !== "object" || matcher === null) {
matcher = { $eq: matcher };
}
result[field] = matcher;
}
normalizeArrayOperators(result);
return result;
}
function normalizeArrayOperators(selector) {
Object.keys(selector).forEach(function(field) {
var matcher = selector[field];
if (Array.isArray(matcher)) {
matcher.forEach(function(matcherItem) {
if (matcherItem && typeof matcherItem === "object") {
normalizeArrayOperators(matcherItem);
}
});
} else if (field === "$ne") {
selector.$ne = [matcher];
} else if (field === "$regex") {
selector.$regex = [matcher];
} else if (matcher && typeof matcher === "object") {
normalizeArrayOperators(matcher);
}
});
}
function createFieldSorter(sort) {
function getFieldValuesAsArray(doc) {
return sort.map(function(sorting) {
var fieldName = getKey(sorting);
var parsedField = parseField(fieldName);
var docFieldValue = getFieldFromDoc(doc, parsedField);
return docFieldValue;
});
}
return function(aRow, bRow) {
var aFieldValues = getFieldValuesAsArray(aRow.doc);
var bFieldValues = getFieldValuesAsArray(bRow.doc);
var collation = collate(aFieldValues, bFieldValues);
if (collation !== 0) {
return collation;
}
return compare(aRow.doc._id, bRow.doc._id);
};
}
function filterInMemoryFields(rows, requestDef, inMemoryFields) {
rows = rows.filter(function(row) {
return rowFilter(row.doc, requestDef.selector, inMemoryFields);
});
if (requestDef.sort) {
var fieldSorter = createFieldSorter(requestDef.sort);
rows = rows.sort(fieldSorter);
if (typeof requestDef.sort[0] !== "string" && getValue(requestDef.sort[0]) === "desc") {
rows = rows.reverse();
}
}
if ("limit" in requestDef || "skip" in requestDef) {
var skip = requestDef.skip || 0;
var limit = ("limit" in requestDef ? requestDef.limit : rows.length) + skip;
rows = rows.slice(skip, limit);
}
return rows;
}
function rowFilter(doc, selector, inMemoryFields) {
return inMemoryFields.every(function(field) {
var matcher = selector[field];
var parsedField = parseField(field);
var docFieldValue = getFieldFromDoc(doc, parsedField);
if (isCombinationalField(field)) {
return matchCominationalSelector(field, matcher, doc);
}
return matchSelector(matcher, doc, parsedField, docFieldValue);
});
}
function matchSelector(matcher, doc, parsedField, docFieldValue) {
if (!matcher) {
return true;
}
if (typeof matcher === "object") {
return Object.keys(matcher).every(function(maybeUserOperator) {
var userValue = matcher[maybeUserOperator];
if (maybeUserOperator.indexOf("$") === 0) {
return match(maybeUserOperator, doc, userValue, parsedField, docFieldValue);
} else {
var subParsedField = parseField(maybeUserOperator);
if (docFieldValue === undefined && typeof userValue !== "object" && subParsedField.length > 0) {
return false;
}
var subDocFieldValue = getFieldFromDoc(docFieldValue, subParsedField);
if (typeof userValue === "object") {
return matchSelector(userValue, doc, parsedField, subDocFieldValue);
}
return match("$eq", doc, userValue, subParsedField, subDocFieldValue);
}
});
}
return matcher === docFieldValue;
}
function matchCominationalSelector(field, matcher, doc) {
if (field === "$or") {
return matcher.some(function(orMatchers) {
return rowFilter(doc, orMatchers, Object.keys(orMatchers));
});
}
if (field === "$not") {
return !rowFilter(doc, matcher, Object.keys(matcher));
}
return !matcher.find(function(orMatchers) {
return rowFilter(doc, orMatchers, Object.keys(orMatchers));
});
}
function match(userOperator, doc, userValue, parsedField, docFieldValue) {
if (!matchers[userOperator]) {
throw new Error('unknown operator "' + userOperator + '" - should be one of $eq, $lte, $lt, $gt, $gte, $exists, $ne, $in, ' + "$nin, $size, $mod, $regex, $elemMatch, $type, $allMatch or $all");
}
return matchers[userOperator](doc, userValue, parsedField, docFieldValue);
}
function fieldExists(docFieldValue) {
return typeof docFieldValue !== "undefined" && docFieldValue !== null;
}
function fieldIsNotUndefined(docFieldValue) {
return typeof docFieldValue !== "undefined";
}
function modField(docFieldValue, userValue) {
if (typeof docFieldValue !== "number" || parseInt(docFieldValue, 10) !== docFieldValue) {
return false;
}
var divisor = userValue[0];
var mod = userValue[1];
return docFieldValue % divisor === mod;
}
function arrayContainsValue(docFieldValue, userValue) {
return userValue.some(function(val) {
if (docFieldValue instanceof Array) {
return docFieldValue.some(function(docFieldValueItem) {
return collate(val, docFieldValueItem) === 0;
});
}
return collate(val, docFieldValue) === 0;
});
}
function arrayContainsAllValues(docFieldValue, userValue) {
return userValue.every(function(val) {
return docFieldValue.some(function(docFieldValueItem) {
return collate(val, docFieldValueItem) === 0;
});
});
}
function arraySize(docFieldValue, userValue) {
return docFieldValue.length === userValue;
}
function regexMatch(docFieldValue, userValue) {
var re = new RegExp(userValue);
return re.test(docFieldValue);
}
function typeMatch(docFieldValue, userValue) {
switch (userValue) {
case "null":
return docFieldValue === null;
case "boolean":
return typeof docFieldValue === "boolean";
case "number":
return typeof docFieldValue === "number";
case "string":
return typeof docFieldValue === "string";
case "array":
return docFieldValue instanceof Array;
case "object":
return {}.toString.call(docFieldValue) === "[object Object]";
}
}
var matchers = {
$elemMatch: function(doc, userValue, parsedField, docFieldValue) {
if (!Array.isArray(docFieldValue)) {
return false;
}
if (docFieldValue.length === 0) {
return false;
}
if (typeof docFieldValue[0] === "object" && docFieldValue[0] !== null) {
return docFieldValue.some(function(val) {
return rowFilter(val, userValue, Object.keys(userValue));
});
}
return docFieldValue.some(function(val) {
return matchSelector(userValue, doc, parsedField, val);
});
},
$allMatch: function(doc, userValue, parsedField, docFieldValue) {
if (!Array.isArray(docFieldValue)) {
return false;
}
if (docFieldValue.length === 0) {
return false;
}
if (typeof docFieldValue[0] === "object" && docFieldValue[0] !== null) {
return docFieldValue.every(function(val) {
return rowFilter(val, userValue, Object.keys(userValue));
});
}
return docFieldValue.every(function(val) {
return matchSelector(userValue, doc, parsedField, val);
});
},
$eq: function(doc, userValue, parsedField, docFieldValue) {
return fieldIsNotUndefined(docFieldValue) && collate(docFieldValue, userValue) === 0;
},
$gte: function(doc, userValue, parsedField, docFieldValue) {
return fieldIsNotUndefined(docFieldValue) && collate(docFieldValue, userValue) >= 0;
},
$gt: function(doc, userValue, parsedField, docFieldValue) {
return fieldIsNotUndefined(docFieldValue) && collate(docFieldValue, userValue) > 0;
},
$lte: function(doc, userValue, parsedField, docFieldValue) {
return fieldIsNotUndefined(docFieldValue) && collate(docFieldValue, userValue) <= 0;
},
$lt: function(doc, userValue, parsedField, docFieldValue) {
return fieldIsNotUndefined(docFieldValue) && collate(docFieldValue, userValue) < 0;
},
$exists: function(doc, userValue, parsedField, docFieldValue) {
if (userValue) {
return fieldIsNotUndefined(docFieldValue);
}
return !fieldIsNotUndefined(docFieldValue);
},
$mod: function(doc, userValue, parsedField, docFieldValue) {
return fieldExists(docFieldValue) && modField(docFieldValue, userValue);
},
$ne: function(doc, userValue, parsedField, docFieldValue) {
return userValue.every(function(neValue) {
return collate(docFieldValue, neValue) !== 0;
});
},
$in: function(doc, userValue, parsedField, docFieldValue) {
return fieldExists(docFieldValue) && arrayContainsValue(docFieldValue, userValue);
},
$nin: function(doc, userValue, parsedField, docFieldValue) {
return fieldExists(docFieldValue) && !arrayContainsValue(docFieldValue, userValue);
},
$size: function(doc, userValue, parsedField, docFieldValue) {
return fieldExists(docFieldValue) && Array.isArray(docFieldValue) && arraySize(docFieldValue, userValue);
},
$all: function(doc, userValue, parsedField, docFieldValue) {
return Array.isArray(docFieldValue) && arrayContainsAllValues(docFieldValue, userValue);
},
$regex: function(doc, userValue, parsedField, docFieldValue) {
return fieldExists(docFieldValue) && typeof docFieldValue == "string" && userValue.every(function(regexValue) {
return regexMatch(docFieldValue, regexValue);
});
},
$type: function(doc, userValue, parsedField, docFieldValue) {
return typeMatch(docFieldValue, userValue);
}
};
function matchesSelector(doc, selector) {
if (typeof selector !== "object") {
throw new Error("Selector error: expected a JSON object");
}
selector = massageSelector(selector);
var row = {
doc
};
var rowsMatched = filterInMemoryFields([row], { selector }, Object.keys(selector));
return rowsMatched && rowsMatched.length === 1;
}
// src/index.ts
var drupe = (selector) => (subject) => {
return matchesSelector(subject, selector);
};
export {
drupe
};