@sapphire/shapeshift
Version:
Blazing fast input validation and transformation ⚡
1,443 lines (1,429 loc) • 124 kB
JavaScript
var SapphireShapeshift = (function (exports) {
'use strict';
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
var __commonJS = (cb, mod) => function __require() {
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
// node_modules/fast-deep-equal/es6/index.js
var require_es6 = __commonJS({
"node_modules/fast-deep-equal/es6/index.js"(exports, module) {
module.exports = /* @__PURE__ */ __name(function equal2(a3, b2) {
if (a3 === b2)
return true;
if (a3 && b2 && typeof a3 == "object" && typeof b2 == "object") {
if (a3.constructor !== b2.constructor)
return false;
var length, i3, keys;
if (Array.isArray(a3)) {
length = a3.length;
if (length != b2.length)
return false;
for (i3 = length; i3-- !== 0; )
if (!equal2(a3[i3], b2[i3]))
return false;
return true;
}
if (a3 instanceof Map && b2 instanceof Map) {
if (a3.size !== b2.size)
return false;
for (i3 of a3.entries())
if (!b2.has(i3[0]))
return false;
for (i3 of a3.entries())
if (!equal2(i3[1], b2.get(i3[0])))
return false;
return true;
}
if (a3 instanceof Set && b2 instanceof Set) {
if (a3.size !== b2.size)
return false;
for (i3 of a3.entries())
if (!b2.has(i3[0]))
return false;
return true;
}
if (ArrayBuffer.isView(a3) && ArrayBuffer.isView(b2)) {
length = a3.length;
if (length != b2.length)
return false;
for (i3 = length; i3-- !== 0; )
if (a3[i3] !== b2[i3])
return false;
return true;
}
if (a3.constructor === RegExp)
return a3.source === b2.source && a3.flags === b2.flags;
if (a3.valueOf !== Object.prototype.valueOf)
return a3.valueOf() === b2.valueOf();
if (a3.toString !== Object.prototype.toString)
return a3.toString() === b2.toString();
keys = Object.keys(a3);
length = keys.length;
if (length !== Object.keys(b2).length)
return false;
for (i3 = length; i3-- !== 0; )
if (!Object.prototype.hasOwnProperty.call(b2, keys[i3]))
return false;
for (i3 = length; i3-- !== 0; ) {
var key = keys[i3];
if (!equal2(a3[key], b2[key]))
return false;
}
return true;
}
return a3 !== a3 && b2 !== b2;
}, "equal");
}
});
// node_modules/lodash.uniqwith/index.js
var require_lodash = __commonJS({
"node_modules/lodash.uniqwith/index.js"(exports, module) {
var LARGE_ARRAY_SIZE = 200;
var HASH_UNDEFINED = "__lodash_hash_undefined__";
var INFINITY = 1 / 0;
var funcTag = "[object Function]";
var genTag = "[object GeneratorFunction]";
var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
var reIsHostCtor = /^\[object .+?Constructor\]$/;
var freeGlobal = typeof globalThis == "object" && globalThis && globalThis.Object === Object && globalThis;
var freeSelf = typeof self == "object" && self && self.Object === Object && self;
var root = freeGlobal || freeSelf || Function("return this")();
function arrayIncludes(array, value) {
var length = array ? array.length : 0;
return !!length && baseIndexOf(array, value, 0) > -1;
}
__name(arrayIncludes, "arrayIncludes");
function arrayIncludesWith(array, value, comparator) {
var index = -1, length = array ? array.length : 0;
while (++index < length) {
if (comparator(value, array[index])) {
return true;
}
}
return false;
}
__name(arrayIncludesWith, "arrayIncludesWith");
function baseFindIndex(array, predicate, fromIndex, fromRight) {
var length = array.length, index = fromIndex + (fromRight ? 1 : -1);
while (fromRight ? index-- : ++index < length) {
if (predicate(array[index], index, array)) {
return index;
}
}
return -1;
}
__name(baseFindIndex, "baseFindIndex");
function baseIndexOf(array, value, fromIndex) {
if (value !== value) {
return baseFindIndex(array, baseIsNaN, fromIndex);
}
var index = fromIndex - 1, length = array.length;
while (++index < length) {
if (array[index] === value) {
return index;
}
}
return -1;
}
__name(baseIndexOf, "baseIndexOf");
function baseIsNaN(value) {
return value !== value;
}
__name(baseIsNaN, "baseIsNaN");
function cacheHas(cache, key) {
return cache.has(key);
}
__name(cacheHas, "cacheHas");
function getValue2(object, key) {
return object == null ? void 0 : object[key];
}
__name(getValue2, "getValue");
function isHostObject(value) {
var result = false;
if (value != null && typeof value.toString != "function") {
try {
result = !!(value + "");
} catch (e3) {
}
}
return result;
}
__name(isHostObject, "isHostObject");
function setToArray(set) {
var index = -1, result = Array(set.size);
set.forEach(function(value) {
result[++index] = value;
});
return result;
}
__name(setToArray, "setToArray");
var arrayProto = Array.prototype;
var funcProto = Function.prototype;
var objectProto = Object.prototype;
var coreJsData = root["__core-js_shared__"];
var maskSrcKey = function() {
var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || "");
return uid ? "Symbol(src)_1." + uid : "";
}();
var funcToString = funcProto.toString;
var hasOwnProperty = objectProto.hasOwnProperty;
var objectToString = objectProto.toString;
var reIsNative = RegExp(
"^" + funcToString.call(hasOwnProperty).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
);
var splice = arrayProto.splice;
var Map2 = getNative(root, "Map");
var Set2 = getNative(root, "Set");
var nativeCreate = getNative(Object, "create");
function Hash(entries) {
var index = -1, length = entries ? entries.length : 0;
this.clear();
while (++index < length) {
var entry = entries[index];
this.set(entry[0], entry[1]);
}
}
__name(Hash, "Hash");
function hashClear() {
this.__data__ = nativeCreate ? nativeCreate(null) : {};
}
__name(hashClear, "hashClear");
function hashDelete(key) {
return this.has(key) && delete this.__data__[key];
}
__name(hashDelete, "hashDelete");
function hashGet(key) {
var data = this.__data__;
if (nativeCreate) {
var result = data[key];
return result === HASH_UNDEFINED ? void 0 : result;
}
return hasOwnProperty.call(data, key) ? data[key] : void 0;
}
__name(hashGet, "hashGet");
function hashHas(key) {
var data = this.__data__;
return nativeCreate ? data[key] !== void 0 : hasOwnProperty.call(data, key);
}
__name(hashHas, "hashHas");
function hashSet(key, value) {
var data = this.__data__;
data[key] = nativeCreate && value === void 0 ? HASH_UNDEFINED : value;
return this;
}
__name(hashSet, "hashSet");
Hash.prototype.clear = hashClear;
Hash.prototype["delete"] = hashDelete;
Hash.prototype.get = hashGet;
Hash.prototype.has = hashHas;
Hash.prototype.set = hashSet;
function ListCache(entries) {
var index = -1, length = entries ? entries.length : 0;
this.clear();
while (++index < length) {
var entry = entries[index];
this.set(entry[0], entry[1]);
}
}
__name(ListCache, "ListCache");
function listCacheClear() {
this.__data__ = [];
}
__name(listCacheClear, "listCacheClear");
function listCacheDelete(key) {
var data = this.__data__, index = assocIndexOf(data, key);
if (index < 0) {
return false;
}
var lastIndex = data.length - 1;
if (index == lastIndex) {
data.pop();
} else {
splice.call(data, index, 1);
}
return true;
}
__name(listCacheDelete, "listCacheDelete");
function listCacheGet(key) {
var data = this.__data__, index = assocIndexOf(data, key);
return index < 0 ? void 0 : data[index][1];
}
__name(listCacheGet, "listCacheGet");
function listCacheHas(key) {
return assocIndexOf(this.__data__, key) > -1;
}
__name(listCacheHas, "listCacheHas");
function listCacheSet(key, value) {
var data = this.__data__, index = assocIndexOf(data, key);
if (index < 0) {
data.push([key, value]);
} else {
data[index][1] = value;
}
return this;
}
__name(listCacheSet, "listCacheSet");
ListCache.prototype.clear = listCacheClear;
ListCache.prototype["delete"] = listCacheDelete;
ListCache.prototype.get = listCacheGet;
ListCache.prototype.has = listCacheHas;
ListCache.prototype.set = listCacheSet;
function MapCache(entries) {
var index = -1, length = entries ? entries.length : 0;
this.clear();
while (++index < length) {
var entry = entries[index];
this.set(entry[0], entry[1]);
}
}
__name(MapCache, "MapCache");
function mapCacheClear() {
this.__data__ = {
"hash": new Hash(),
"map": new (Map2 || ListCache)(),
"string": new Hash()
};
}
__name(mapCacheClear, "mapCacheClear");
function mapCacheDelete(key) {
return getMapData(this, key)["delete"](key);
}
__name(mapCacheDelete, "mapCacheDelete");
function mapCacheGet(key) {
return getMapData(this, key).get(key);
}
__name(mapCacheGet, "mapCacheGet");
function mapCacheHas(key) {
return getMapData(this, key).has(key);
}
__name(mapCacheHas, "mapCacheHas");
function mapCacheSet(key, value) {
getMapData(this, key).set(key, value);
return this;
}
__name(mapCacheSet, "mapCacheSet");
MapCache.prototype.clear = mapCacheClear;
MapCache.prototype["delete"] = mapCacheDelete;
MapCache.prototype.get = mapCacheGet;
MapCache.prototype.has = mapCacheHas;
MapCache.prototype.set = mapCacheSet;
function SetCache(values) {
var index = -1, length = values ? values.length : 0;
this.__data__ = new MapCache();
while (++index < length) {
this.add(values[index]);
}
}
__name(SetCache, "SetCache");
function setCacheAdd(value) {
this.__data__.set(value, HASH_UNDEFINED);
return this;
}
__name(setCacheAdd, "setCacheAdd");
function setCacheHas(value) {
return this.__data__.has(value);
}
__name(setCacheHas, "setCacheHas");
SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
SetCache.prototype.has = setCacheHas;
function assocIndexOf(array, key) {
var length = array.length;
while (length--) {
if (eq(array[length][0], key)) {
return length;
}
}
return -1;
}
__name(assocIndexOf, "assocIndexOf");
function baseIsNative(value) {
if (!isObject3(value) || isMasked(value)) {
return false;
}
var pattern = isFunction3(value) || isHostObject(value) ? reIsNative : reIsHostCtor;
return pattern.test(toSource(value));
}
__name(baseIsNative, "baseIsNative");
function baseUniq(array, iteratee, comparator) {
var index = -1, includes = arrayIncludes, length = array.length, isCommon = true, result = [], seen = result;
if (comparator) {
isCommon = false;
includes = arrayIncludesWith;
} else if (length >= LARGE_ARRAY_SIZE) {
var set = iteratee ? null : createSet(array);
if (set) {
return setToArray(set);
}
isCommon = false;
includes = cacheHas;
seen = new SetCache();
} else {
seen = iteratee ? [] : result;
}
outer:
while (++index < length) {
var value = array[index], computed = iteratee ? iteratee(value) : value;
value = comparator || value !== 0 ? value : 0;
if (isCommon && computed === computed) {
var seenIndex = seen.length;
while (seenIndex--) {
if (seen[seenIndex] === computed) {
continue outer;
}
}
if (iteratee) {
seen.push(computed);
}
result.push(value);
} else if (!includes(seen, computed, comparator)) {
if (seen !== result) {
seen.push(computed);
}
result.push(value);
}
}
return result;
}
__name(baseUniq, "baseUniq");
var createSet = !(Set2 && 1 / setToArray(new Set2([, -0]))[1] == INFINITY) ? noop : function(values) {
return new Set2(values);
};
function getMapData(map, key) {
var data = map.__data__;
return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map;
}
__name(getMapData, "getMapData");
function getNative(object, key) {
var value = getValue2(object, key);
return baseIsNative(value) ? value : void 0;
}
__name(getNative, "getNative");
function isKeyable(value) {
var type = typeof value;
return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null;
}
__name(isKeyable, "isKeyable");
function isMasked(func) {
return !!maskSrcKey && maskSrcKey in func;
}
__name(isMasked, "isMasked");
function toSource(func) {
if (func != null) {
try {
return funcToString.call(func);
} catch (e3) {
}
try {
return func + "";
} catch (e3) {
}
}
return "";
}
__name(toSource, "toSource");
function uniqWith2(array, comparator) {
return array && array.length ? baseUniq(array, void 0, comparator) : [];
}
__name(uniqWith2, "uniqWith");
function eq(value, other) {
return value === other || value !== value && other !== other;
}
__name(eq, "eq");
function isFunction3(value) {
var tag = isObject3(value) ? objectToString.call(value) : "";
return tag == funcTag || tag == genTag;
}
__name(isFunction3, "isFunction");
function isObject3(value) {
var type = typeof value;
return !!value && (type == "object" || type == "function");
}
__name(isObject3, "isObject");
function noop() {
}
__name(noop, "noop");
module.exports = uniqWith2;
}
});
// src/lib/configs.ts
var validationEnabled = true;
function setGlobalValidationEnabled(enabled) {
validationEnabled = enabled;
}
__name(setGlobalValidationEnabled, "setGlobalValidationEnabled");
function getGlobalValidationEnabled() {
return validationEnabled;
}
__name(getGlobalValidationEnabled, "getGlobalValidationEnabled");
// src/lib/Result.ts
var Result = class {
constructor(success, value, error) {
this.success = success;
if (success) {
this.value = value;
} else {
this.error = error;
}
}
isOk() {
return this.success;
}
isErr() {
return !this.success;
}
unwrap() {
if (this.isOk())
return this.value;
throw this.error;
}
static ok(value) {
return new Result(true, value);
}
static err(error) {
return new Result(false, void 0, error);
}
};
__name(Result, "Result");
// src/validators/util/getValue.ts
function getValue(valueOrFn) {
return typeof valueOrFn === "function" ? valueOrFn() : valueOrFn;
}
__name(getValue, "getValue");
// src/validators/BaseValidator.ts
var BaseValidator = class {
constructor(constraints = []) {
this.constraints = [];
this.isValidationEnabled = null;
this.constraints = constraints;
}
get optional() {
return new UnionValidator([new LiteralValidator(void 0), this.clone()]);
}
get nullable() {
return new UnionValidator([new LiteralValidator(null), this.clone()]);
}
get nullish() {
return new UnionValidator([new NullishValidator(), this.clone()]);
}
get array() {
return new ArrayValidator(this.clone());
}
get set() {
return new SetValidator(this.clone());
}
or(...predicates) {
return new UnionValidator([this.clone(), ...predicates]);
}
transform(cb) {
return this.addConstraint({ run: (input) => Result.ok(cb(input)) });
}
reshape(cb) {
return this.addConstraint({ run: cb });
}
default(value) {
return new DefaultValidator(this.clone(), value);
}
run(value) {
let result = this.handle(value);
if (result.isErr())
return result;
for (const constraint of this.constraints) {
result = constraint.run(result.value);
if (result.isErr())
break;
}
return result;
}
parse(value) {
if (!this.shouldRunConstraints) {
return this.handle(value).unwrap();
}
return this.constraints.reduce((v2, constraint) => constraint.run(v2).unwrap(), this.handle(value).unwrap());
}
is(value) {
return this.run(value).isOk();
}
setValidationEnabled(isValidationEnabled) {
const clone = this.clone();
clone.isValidationEnabled = isValidationEnabled;
return clone;
}
getValidationEnabled() {
return getValue(this.isValidationEnabled);
}
get shouldRunConstraints() {
return getValue(this.isValidationEnabled) ?? getGlobalValidationEnabled();
}
clone() {
const clone = Reflect.construct(this.constructor, [this.constraints]);
clone.isValidationEnabled = this.isValidationEnabled;
return clone;
}
addConstraint(constraint) {
const clone = this.clone();
clone.constraints = clone.constraints.concat(constraint);
return clone;
}
};
__name(BaseValidator, "BaseValidator");
// node-modules-polyfills:node:util
var e;
var t;
var n;
var r = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis;
var o = e = {};
function i() {
throw new Error("setTimeout has not been defined");
}
__name(i, "i");
function u() {
throw new Error("clearTimeout has not been defined");
}
__name(u, "u");
function c(e3) {
if (t === setTimeout)
return setTimeout(e3, 0);
if ((t === i || !t) && setTimeout)
return t = setTimeout, setTimeout(e3, 0);
try {
return t(e3, 0);
} catch (n3) {
try {
return t.call(null, e3, 0);
} catch (n4) {
return t.call(this || r, e3, 0);
}
}
}
__name(c, "c");
!function() {
try {
t = "function" == typeof setTimeout ? setTimeout : i;
} catch (e3) {
t = i;
}
try {
n = "function" == typeof clearTimeout ? clearTimeout : u;
} catch (e3) {
n = u;
}
}();
var l;
var s = [];
var f = false;
var a = -1;
function h() {
f && l && (f = false, l.length ? s = l.concat(s) : a = -1, s.length && d());
}
__name(h, "h");
function d() {
if (!f) {
var e3 = c(h);
f = true;
for (var t3 = s.length; t3; ) {
for (l = s, s = []; ++a < t3; )
l && l[a].run();
a = -1, t3 = s.length;
}
l = null, f = false, function(e4) {
if (n === clearTimeout)
return clearTimeout(e4);
if ((n === u || !n) && clearTimeout)
return n = clearTimeout, clearTimeout(e4);
try {
n(e4);
} catch (t4) {
try {
return n.call(null, e4);
} catch (t5) {
return n.call(this || r, e4);
}
}
}(e3);
}
}
__name(d, "d");
function m(e3, t3) {
(this || r).fun = e3, (this || r).array = t3;
}
__name(m, "m");
function p() {
}
__name(p, "p");
o.nextTick = function(e3) {
var t3 = new Array(arguments.length - 1);
if (arguments.length > 1)
for (var n3 = 1; n3 < arguments.length; n3++)
t3[n3 - 1] = arguments[n3];
s.push(new m(e3, t3)), 1 !== s.length || f || c(d);
}, m.prototype.run = function() {
(this || r).fun.apply(null, (this || r).array);
}, o.title = "browser", o.browser = true, o.env = {}, o.argv = [], o.version = "", o.versions = {}, o.on = p, o.addListener = p, o.once = p, o.off = p, o.removeListener = p, o.removeAllListeners = p, o.emit = p, o.prependListener = p, o.prependOnceListener = p, o.listeners = function(e3) {
return [];
}, o.binding = function(e3) {
throw new Error("process.binding is not supported");
}, o.cwd = function() {
return "/";
}, o.chdir = function(e3) {
throw new Error("process.chdir is not supported");
}, o.umask = function() {
return 0;
};
var T = e;
T.addListener;
T.argv;
T.binding;
T.browser;
T.chdir;
T.cwd;
T.emit;
T.env;
T.listeners;
T.nextTick;
T.off;
T.on;
T.once;
T.prependListener;
T.prependOnceListener;
T.removeAllListeners;
T.removeListener;
T.title;
T.umask;
T.version;
T.versions;
var t2 = "function" == typeof Symbol && "symbol" == typeof Symbol.toStringTag;
var e2 = Object.prototype.toString;
var o2 = /* @__PURE__ */ __name(function(o3) {
return !(t2 && o3 && "object" == typeof o3 && Symbol.toStringTag in o3) && "[object Arguments]" === e2.call(o3);
}, "o2");
var n2 = /* @__PURE__ */ __name(function(t3) {
return !!o2(t3) || null !== t3 && "object" == typeof t3 && "number" == typeof t3.length && t3.length >= 0 && "[object Array]" !== e2.call(t3) && "[object Function]" === e2.call(t3.callee);
}, "n2");
var r2 = function() {
return o2(arguments);
}();
o2.isLegacyArguments = n2;
var l2 = r2 ? o2 : n2;
var t$1 = Object.prototype.toString;
var o$1 = Function.prototype.toString;
var n$1 = /^\s*(?:function)?\*/;
var e$1 = "function" == typeof Symbol && "symbol" == typeof Symbol.toStringTag;
var r$1 = Object.getPrototypeOf;
var c2 = function() {
if (!e$1)
return false;
try {
return Function("return function*() {}")();
} catch (t3) {
}
}();
var u2 = c2 ? r$1(c2) : {};
var i2 = /* @__PURE__ */ __name(function(c3) {
return "function" == typeof c3 && (!!n$1.test(o$1.call(c3)) || (e$1 ? r$1(c3) === u2 : "[object GeneratorFunction]" === t$1.call(c3)));
}, "i2");
var t$2 = "function" == typeof Object.create ? function(t3, e3) {
e3 && (t3.super_ = e3, t3.prototype = Object.create(e3.prototype, { constructor: { value: t3, enumerable: false, writable: true, configurable: true } }));
} : function(t3, e3) {
if (e3) {
t3.super_ = e3;
var o3 = /* @__PURE__ */ __name(function() {
}, "o3");
o3.prototype = e3.prototype, t3.prototype = new o3(), t3.prototype.constructor = t3;
}
};
var i$1 = /* @__PURE__ */ __name(function(e3) {
return e3 && "object" == typeof e3 && "function" == typeof e3.copy && "function" == typeof e3.fill && "function" == typeof e3.readUInt8;
}, "i$1");
var o$2 = {};
var u$1 = i$1;
var f2 = l2;
var a2 = i2;
function c$1(e3) {
return e3.call.bind(e3);
}
__name(c$1, "c$1");
var s2 = "undefined" != typeof BigInt;
var p2 = "undefined" != typeof Symbol;
var y = p2 && void 0 !== Symbol.toStringTag;
var l$1 = "undefined" != typeof Uint8Array;
var d2 = "undefined" != typeof ArrayBuffer;
if (l$1 && y)
var g = Object.getPrototypeOf(Uint8Array.prototype), b = c$1(Object.getOwnPropertyDescriptor(g, Symbol.toStringTag).get);
var m2 = c$1(Object.prototype.toString);
var h2 = c$1(Number.prototype.valueOf);
var j = c$1(String.prototype.valueOf);
var A = c$1(Boolean.prototype.valueOf);
if (s2)
var w = c$1(BigInt.prototype.valueOf);
if (p2)
var v = c$1(Symbol.prototype.valueOf);
function O(e3, t3) {
if ("object" != typeof e3)
return false;
try {
return t3(e3), true;
} catch (e4) {
return false;
}
}
__name(O, "O");
function S(e3) {
return l$1 && y ? void 0 !== b(e3) : B(e3) || k(e3) || E(e3) || D(e3) || U(e3) || P(e3) || x(e3) || I(e3) || M(e3) || z(e3) || F(e3);
}
__name(S, "S");
function B(e3) {
return l$1 && y ? "Uint8Array" === b(e3) : "[object Uint8Array]" === m2(e3) || u$1(e3) && void 0 !== e3.buffer;
}
__name(B, "B");
function k(e3) {
return l$1 && y ? "Uint8ClampedArray" === b(e3) : "[object Uint8ClampedArray]" === m2(e3);
}
__name(k, "k");
function E(e3) {
return l$1 && y ? "Uint16Array" === b(e3) : "[object Uint16Array]" === m2(e3);
}
__name(E, "E");
function D(e3) {
return l$1 && y ? "Uint32Array" === b(e3) : "[object Uint32Array]" === m2(e3);
}
__name(D, "D");
function U(e3) {
return l$1 && y ? "Int8Array" === b(e3) : "[object Int8Array]" === m2(e3);
}
__name(U, "U");
function P(e3) {
return l$1 && y ? "Int16Array" === b(e3) : "[object Int16Array]" === m2(e3);
}
__name(P, "P");
function x(e3) {
return l$1 && y ? "Int32Array" === b(e3) : "[object Int32Array]" === m2(e3);
}
__name(x, "x");
function I(e3) {
return l$1 && y ? "Float32Array" === b(e3) : "[object Float32Array]" === m2(e3);
}
__name(I, "I");
function M(e3) {
return l$1 && y ? "Float64Array" === b(e3) : "[object Float64Array]" === m2(e3);
}
__name(M, "M");
function z(e3) {
return l$1 && y ? "BigInt64Array" === b(e3) : "[object BigInt64Array]" === m2(e3);
}
__name(z, "z");
function F(e3) {
return l$1 && y ? "BigUint64Array" === b(e3) : "[object BigUint64Array]" === m2(e3);
}
__name(F, "F");
function T2(e3) {
return "[object Map]" === m2(e3);
}
__name(T2, "T2");
function N(e3) {
return "[object Set]" === m2(e3);
}
__name(N, "N");
function W(e3) {
return "[object WeakMap]" === m2(e3);
}
__name(W, "W");
function $(e3) {
return "[object WeakSet]" === m2(e3);
}
__name($, "$");
function C(e3) {
return "[object ArrayBuffer]" === m2(e3);
}
__name(C, "C");
function V(e3) {
return "undefined" != typeof ArrayBuffer && (C.working ? C(e3) : e3 instanceof ArrayBuffer);
}
__name(V, "V");
function G(e3) {
return "[object DataView]" === m2(e3);
}
__name(G, "G");
function R(e3) {
return "undefined" != typeof DataView && (G.working ? G(e3) : e3 instanceof DataView);
}
__name(R, "R");
function J(e3) {
return "[object SharedArrayBuffer]" === m2(e3);
}
__name(J, "J");
function _(e3) {
return "undefined" != typeof SharedArrayBuffer && (J.working ? J(e3) : e3 instanceof SharedArrayBuffer);
}
__name(_, "_");
function H(e3) {
return O(e3, h2);
}
__name(H, "H");
function Z(e3) {
return O(e3, j);
}
__name(Z, "Z");
function q(e3) {
return O(e3, A);
}
__name(q, "q");
function K(e3) {
return s2 && O(e3, w);
}
__name(K, "K");
function L(e3) {
return p2 && O(e3, v);
}
__name(L, "L");
o$2.isArgumentsObject = f2, o$2.isGeneratorFunction = a2, o$2.isPromise = function(e3) {
return "undefined" != typeof Promise && e3 instanceof Promise || null !== e3 && "object" == typeof e3 && "function" == typeof e3.then && "function" == typeof e3.catch;
}, o$2.isArrayBufferView = function(e3) {
return d2 && ArrayBuffer.isView ? ArrayBuffer.isView(e3) : S(e3) || R(e3);
}, o$2.isTypedArray = S, o$2.isUint8Array = B, o$2.isUint8ClampedArray = k, o$2.isUint16Array = E, o$2.isUint32Array = D, o$2.isInt8Array = U, o$2.isInt16Array = P, o$2.isInt32Array = x, o$2.isFloat32Array = I, o$2.isFloat64Array = M, o$2.isBigInt64Array = z, o$2.isBigUint64Array = F, T2.working = "undefined" != typeof Map && T2(/* @__PURE__ */ new Map()), o$2.isMap = function(e3) {
return "undefined" != typeof Map && (T2.working ? T2(e3) : e3 instanceof Map);
}, N.working = "undefined" != typeof Set && N(/* @__PURE__ */ new Set()), o$2.isSet = function(e3) {
return "undefined" != typeof Set && (N.working ? N(e3) : e3 instanceof Set);
}, W.working = "undefined" != typeof WeakMap && W(/* @__PURE__ */ new WeakMap()), o$2.isWeakMap = function(e3) {
return "undefined" != typeof WeakMap && (W.working ? W(e3) : e3 instanceof WeakMap);
}, $.working = "undefined" != typeof WeakSet && $(/* @__PURE__ */ new WeakSet()), o$2.isWeakSet = function(e3) {
return $(e3);
}, C.working = "undefined" != typeof ArrayBuffer && C(new ArrayBuffer()), o$2.isArrayBuffer = V, G.working = "undefined" != typeof ArrayBuffer && "undefined" != typeof DataView && G(new DataView(new ArrayBuffer(1), 0, 1)), o$2.isDataView = R, J.working = "undefined" != typeof SharedArrayBuffer && J(new SharedArrayBuffer()), o$2.isSharedArrayBuffer = _, o$2.isAsyncFunction = function(e3) {
return "[object AsyncFunction]" === m2(e3);
}, o$2.isMapIterator = function(e3) {
return "[object Map Iterator]" === m2(e3);
}, o$2.isSetIterator = function(e3) {
return "[object Set Iterator]" === m2(e3);
}, o$2.isGeneratorObject = function(e3) {
return "[object Generator]" === m2(e3);
}, o$2.isWebAssemblyCompiledModule = function(e3) {
return "[object WebAssembly.Module]" === m2(e3);
}, o$2.isNumberObject = H, o$2.isStringObject = Z, o$2.isBooleanObject = q, o$2.isBigIntObject = K, o$2.isSymbolObject = L, o$2.isBoxedPrimitive = function(e3) {
return H(e3) || Z(e3) || q(e3) || K(e3) || L(e3);
}, o$2.isAnyArrayBuffer = function(e3) {
return l$1 && (V(e3) || _(e3));
}, ["isProxy", "isExternal", "isModuleNamespaceObject"].forEach(function(e3) {
Object.defineProperty(o$2, e3, { enumerable: false, value: function() {
throw new Error(e3 + " is not supported in userland");
} });
});
var Q = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : globalThis;
var X = {};
var Y = T;
var ee = Object.getOwnPropertyDescriptors || function(e3) {
for (var t3 = Object.keys(e3), r3 = {}, n3 = 0; n3 < t3.length; n3++)
r3[t3[n3]] = Object.getOwnPropertyDescriptor(e3, t3[n3]);
return r3;
};
var te = /%[sdj%]/g;
X.format = function(e3) {
if (!ge(e3)) {
for (var t3 = [], r3 = 0; r3 < arguments.length; r3++)
t3.push(oe(arguments[r3]));
return t3.join(" ");
}
r3 = 1;
for (var n3 = arguments, i3 = n3.length, o3 = String(e3).replace(te, function(e4) {
if ("%%" === e4)
return "%";
if (r3 >= i3)
return e4;
switch (e4) {
case "%s":
return String(n3[r3++]);
case "%d":
return Number(n3[r3++]);
case "%j":
try {
return JSON.stringify(n3[r3++]);
} catch (e5) {
return "[Circular]";
}
default:
return e4;
}
}), u3 = n3[r3]; r3 < i3; u3 = n3[++r3])
le(u3) || !he(u3) ? o3 += " " + u3 : o3 += " " + oe(u3);
return o3;
}, X.deprecate = function(e3, t3) {
if (void 0 !== Y && true === Y.noDeprecation)
return e3;
if (void 0 === Y)
return function() {
return X.deprecate(e3, t3).apply(this || Q, arguments);
};
var r3 = false;
return function() {
if (!r3) {
if (Y.throwDeprecation)
throw new Error(t3);
Y.traceDeprecation ? console.trace(t3) : console.error(t3), r3 = true;
}
return e3.apply(this || Q, arguments);
};
};
var re = {};
var ne = /^$/;
if (Y.env.NODE_DEBUG) {
ie = Y.env.NODE_DEBUG;
ie = ie.replace(/[|\\{}()[\]^$+?.]/g, "\\$&").replace(/\*/g, ".*").replace(/,/g, "$|^").toUpperCase(), ne = new RegExp("^" + ie + "$", "i");
}
var ie;
function oe(e3, t3) {
var r3 = { seen: [], stylize: fe };
return arguments.length >= 3 && (r3.depth = arguments[2]), arguments.length >= 4 && (r3.colors = arguments[3]), ye(t3) ? r3.showHidden = t3 : t3 && X._extend(r3, t3), be(r3.showHidden) && (r3.showHidden = false), be(r3.depth) && (r3.depth = 2), be(r3.colors) && (r3.colors = false), be(r3.customInspect) && (r3.customInspect = true), r3.colors && (r3.stylize = ue), ae(r3, e3, r3.depth);
}
__name(oe, "oe");
function ue(e3, t3) {
var r3 = oe.styles[t3];
return r3 ? "\x1B[" + oe.colors[r3][0] + "m" + e3 + "\x1B[" + oe.colors[r3][1] + "m" : e3;
}
__name(ue, "ue");
function fe(e3, t3) {
return e3;
}
__name(fe, "fe");
function ae(e3, t3, r3) {
if (e3.customInspect && t3 && we(t3.inspect) && t3.inspect !== X.inspect && (!t3.constructor || t3.constructor.prototype !== t3)) {
var n3 = t3.inspect(r3, e3);
return ge(n3) || (n3 = ae(e3, n3, r3)), n3;
}
var i3 = function(e4, t4) {
if (be(t4))
return e4.stylize("undefined", "undefined");
if (ge(t4)) {
var r4 = "'" + JSON.stringify(t4).replace(/^"|"$/g, "").replace(/'/g, "\\'").replace(/\\"/g, '"') + "'";
return e4.stylize(r4, "string");
}
if (de(t4))
return e4.stylize("" + t4, "number");
if (ye(t4))
return e4.stylize("" + t4, "boolean");
if (le(t4))
return e4.stylize("null", "null");
}(e3, t3);
if (i3)
return i3;
var o3 = Object.keys(t3), u3 = function(e4) {
var t4 = {};
return e4.forEach(function(e5, r4) {
t4[e5] = true;
}), t4;
}(o3);
if (e3.showHidden && (o3 = Object.getOwnPropertyNames(t3)), Ae(t3) && (o3.indexOf("message") >= 0 || o3.indexOf("description") >= 0))
return ce(t3);
if (0 === o3.length) {
if (we(t3)) {
var f3 = t3.name ? ": " + t3.name : "";
return e3.stylize("[Function" + f3 + "]", "special");
}
if (me(t3))
return e3.stylize(RegExp.prototype.toString.call(t3), "regexp");
if (je(t3))
return e3.stylize(Date.prototype.toString.call(t3), "date");
if (Ae(t3))
return ce(t3);
}
var a3, c3 = "", s32 = false, p3 = ["{", "}"];
(pe(t3) && (s32 = true, p3 = ["[", "]"]), we(t3)) && (c3 = " [Function" + (t3.name ? ": " + t3.name : "") + "]");
return me(t3) && (c3 = " " + RegExp.prototype.toString.call(t3)), je(t3) && (c3 = " " + Date.prototype.toUTCString.call(t3)), Ae(t3) && (c3 = " " + ce(t3)), 0 !== o3.length || s32 && 0 != t3.length ? r3 < 0 ? me(t3) ? e3.stylize(RegExp.prototype.toString.call(t3), "regexp") : e3.stylize("[Object]", "special") : (e3.seen.push(t3), a3 = s32 ? function(e4, t4, r4, n4, i4) {
for (var o4 = [], u4 = 0, f4 = t4.length; u4 < f4; ++u4)
ke(t4, String(u4)) ? o4.push(se(e4, t4, r4, n4, String(u4), true)) : o4.push("");
return i4.forEach(function(i5) {
i5.match(/^\d+$/) || o4.push(se(e4, t4, r4, n4, i5, true));
}), o4;
}(e3, t3, r3, u3, o3) : o3.map(function(n4) {
return se(e3, t3, r3, u3, n4, s32);
}), e3.seen.pop(), function(e4, t4, r4) {
var n4 = 0;
if (e4.reduce(function(e5, t5) {
return n4++, t5.indexOf("\n") >= 0 && n4++, e5 + t5.replace(/\u001b\[\d\d?m/g, "").length + 1;
}, 0) > 60)
return r4[0] + ("" === t4 ? "" : t4 + "\n ") + " " + e4.join(",\n ") + " " + r4[1];
return r4[0] + t4 + " " + e4.join(", ") + " " + r4[1];
}(a3, c3, p3)) : p3[0] + c3 + p3[1];
}
__name(ae, "ae");
function ce(e3) {
return "[" + Error.prototype.toString.call(e3) + "]";
}
__name(ce, "ce");
function se(e3, t3, r3, n3, i3, o3) {
var u3, f3, a3;
if ((a3 = Object.getOwnPropertyDescriptor(t3, i3) || { value: t3[i3] }).get ? f3 = a3.set ? e3.stylize("[Getter/Setter]", "special") : e3.stylize("[Getter]", "special") : a3.set && (f3 = e3.stylize("[Setter]", "special")), ke(n3, i3) || (u3 = "[" + i3 + "]"), f3 || (e3.seen.indexOf(a3.value) < 0 ? (f3 = le(r3) ? ae(e3, a3.value, null) : ae(e3, a3.value, r3 - 1)).indexOf("\n") > -1 && (f3 = o3 ? f3.split("\n").map(function(e4) {
return " " + e4;
}).join("\n").substr(2) : "\n" + f3.split("\n").map(function(e4) {
return " " + e4;
}).join("\n")) : f3 = e3.stylize("[Circular]", "special")), be(u3)) {
if (o3 && i3.match(/^\d+$/))
return f3;
(u3 = JSON.stringify("" + i3)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/) ? (u3 = u3.substr(1, u3.length - 2), u3 = e3.stylize(u3, "name")) : (u3 = u3.replace(/'/g, "\\'").replace(/\\"/g, '"').replace(/(^"|"$)/g, "'"), u3 = e3.stylize(u3, "string"));
}
return u3 + ": " + f3;
}
__name(se, "se");
function pe(e3) {
return Array.isArray(e3);
}
__name(pe, "pe");
function ye(e3) {
return "boolean" == typeof e3;
}
__name(ye, "ye");
function le(e3) {
return null === e3;
}
__name(le, "le");
function de(e3) {
return "number" == typeof e3;
}
__name(de, "de");
function ge(e3) {
return "string" == typeof e3;
}
__name(ge, "ge");
function be(e3) {
return void 0 === e3;
}
__name(be, "be");
function me(e3) {
return he(e3) && "[object RegExp]" === ve(e3);
}
__name(me, "me");
function he(e3) {
return "object" == typeof e3 && null !== e3;
}
__name(he, "he");
function je(e3) {
return he(e3) && "[object Date]" === ve(e3);
}
__name(je, "je");
function Ae(e3) {
return he(e3) && ("[object Error]" === ve(e3) || e3 instanceof Error);
}
__name(Ae, "Ae");
function we(e3) {
return "function" == typeof e3;
}
__name(we, "we");
function ve(e3) {
return Object.prototype.toString.call(e3);
}
__name(ve, "ve");
function Oe(e3) {
return e3 < 10 ? "0" + e3.toString(10) : e3.toString(10);
}
__name(Oe, "Oe");
X.debuglog = function(e3) {
if (e3 = e3.toUpperCase(), !re[e3])
if (ne.test(e3)) {
var t3 = Y.pid;
re[e3] = function() {
var r3 = X.format.apply(X, arguments);
console.error("%s %d: %s", e3, t3, r3);
};
} else
re[e3] = function() {
};
return re[e3];
}, X.inspect = oe, oe.colors = { bold: [1, 22], italic: [3, 23], underline: [4, 24], inverse: [7, 27], white: [37, 39], grey: [90, 39], black: [30, 39], blue: [34, 39], cyan: [36, 39], green: [32, 39], magenta: [35, 39], red: [31, 39], yellow: [33, 39] }, oe.styles = { special: "cyan", number: "yellow", boolean: "yellow", undefined: "grey", null: "bold", string: "green", date: "magenta", regexp: "red" }, X.types = o$2, X.isArray = pe, X.isBoolean = ye, X.isNull = le, X.isNullOrUndefined = function(e3) {
return null == e3;
}, X.isNumber = de, X.isString = ge, X.isSymbol = function(e3) {
return "symbol" == typeof e3;
}, X.isUndefined = be, X.isRegExp = me, X.types.isRegExp = me, X.isObject = he, X.isDate = je, X.types.isDate = je, X.isError = Ae, X.types.isNativeError = Ae, X.isFunction = we, X.isPrimitive = function(e3) {
return null === e3 || "boolean" == typeof e3 || "number" == typeof e3 || "string" == typeof e3 || "symbol" == typeof e3 || void 0 === e3;
}, X.isBuffer = i$1;
var Se = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
function Be() {
var e3 = new Date(), t3 = [Oe(e3.getHours()), Oe(e3.getMinutes()), Oe(e3.getSeconds())].join(":");
return [e3.getDate(), Se[e3.getMonth()], t3].join(" ");
}
__name(Be, "Be");
function ke(e3, t3) {
return Object.prototype.hasOwnProperty.call(e3, t3);
}
__name(ke, "ke");
X.log = function() {
console.log("%s - %s", Be(), X.format.apply(X, arguments));
}, X.inherits = t$2, X._extend = function(e3, t3) {
if (!t3 || !he(t3))
return e3;
for (var r3 = Object.keys(t3), n3 = r3.length; n3--; )
e3[r3[n3]] = t3[r3[n3]];
return e3;
};
var Ee = "undefined" != typeof Symbol ? Symbol("util.promisify.custom") : void 0;
function De(e3, t3) {
if (!e3) {
var r3 = new Error("Promise was rejected with a falsy value");
r3.reason = e3, e3 = r3;
}
return t3(e3);
}
__name(De, "De");
X.promisify = function(e3) {
if ("function" != typeof e3)
throw new TypeError('The "original" argument must be of type Function');
if (Ee && e3[Ee]) {
var t3;
if ("function" != typeof (t3 = e3[Ee]))
throw new TypeError('The "util.promisify.custom" argument must be of type Function');
return Object.defineProperty(t3, Ee, { value: t3, enumerable: false, writable: false, configurable: true }), t3;
}
function t3() {
for (var t4, r3, n3 = new Promise(function(e4, n4) {
t4 = e4, r3 = n4;
}), i3 = [], o3 = 0; o3 < arguments.length; o3++)
i3.push(arguments[o3]);
i3.push(function(e4, n4) {
e4 ? r3(e4) : t4(n4);
});
try {
e3.apply(this || Q, i3);
} catch (e4) {
r3(e4);
}
return n3;
}
__name(t3, "t3");
return Object.setPrototypeOf(t3, Object.getPrototypeOf(e3)), Ee && Object.defineProperty(t3, Ee, { value: t3, enumerable: false, writable: false, configurable: true }), Object.defineProperties(t3, ee(e3));
}, X.promisify.custom = Ee, X.callbackify = function(e3) {
if ("function" != typeof e3)
throw new TypeError('The "original" argument must be of type Function');
function t3() {
for (var t4 = [], r3 = 0; r3 < arguments.length; r3++)
t4.push(arguments[r3]);
var n3 = t4.pop();
if ("function" != typeof n3)
throw new TypeError("The last argument must be of type Function");
var i3 = this || Q, o3 = /* @__PURE__ */ __name(function() {
return n3.apply(i3, arguments);
}, "o3");
e3.apply(this || Q, t4).then(function(e4) {
Y.nextTick(o3.bind(null, null, e4));
}, function(e4) {
Y.nextTick(De.bind(null, e4, o3));
});
}
__name(t3, "t3");
return Object.setPrototypeOf(t3, Object.getPrototypeOf(e3)), Object.defineProperties(t3, ee(e3)), t3;
};
X._extend;
X.callbackify;
X.debuglog;
X.deprecate;
X.format;
X.inherits;
X.inspect;
X.isArray;
X.isBoolean;
X.isBuffer;
X.isDate;
X.isError;
X.isFunction;
X.isNull;
X.isNullOrUndefined;
X.isNumber;
X.isObject;
X.isPrimitive;
X.isRegExp;
X.isString;
X.isSymbol;
X.isUndefined;
X.log;
X.promisify;
X._extend;
X.callbackify;
X.debuglog;
X.deprecate;
X.format;
X.inherits;
X.inspect;
X.isArray;
X.isBoolean;
X.isBuffer;
X.isDate;
X.isError;
X.isFunction;
X.isNull;
X.isNullOrUndefined;
X.isNumber;
X.isObject;
X.isPrimitive;
X.isRegExp;
X.isString;
X.isSymbol;
X.isUndefined;
X.log;
X.promisify;
X.types;
X._extend;
X.callbackify;
X.debuglog;
X.deprecate;
X.format;
X.inherits;
var inspect2 = X.inspect;
X.isArray;
X.isBoolean;
X.isBuffer;
X.isDate;
X.isError;
X.isFunction;
X.isNull;
X.isNullOrUndefined;
X.isNumber;
X.isObject;
X.isPrimitive;
X.isRegExp;
X.isString;
X.isSymbol;
X.isUndefined;
X.log;
X.promisify;
X.types;
X.TextEncoder = globalThis.TextEncoder;
X.TextDecoder = globalThis.TextDecoder;
// src/lib/errors/BaseError.ts
var customInspectSymbol = Symbol.for("nodejs.util.inspect.custom");
var customInspectSymbolStackLess = Symbol.for("nodejs.util.inspect.custom.stack-less");
var BaseError = class extends Error {
[customInspectSymbol](depth, options) {
return `${this[customInspectSymbolStackLess](depth, options)}
${this.stack.slice(this.stack.indexOf("\n"))}`;
}
};
__name(BaseError, "BaseError");
// src/lib/errors/BaseConstraintError.ts
var BaseConstraintError = class extends BaseError {
constructor(constraint, message, given) {
super(message);
this.constraint = constraint;
this.given = given;
}
};
__name(BaseConstraintError, "BaseConstraintError");
// src/lib/errors/ExpectedConstraintError.ts
var ExpectedConstraintError = class extends BaseConstraintError {
constructor(constraint, message, given, expected) {
super(constraint, message, given);
this.expected = expected;
}
toJSON() {
return {
name: this.name,
constraint: this.constraint,
given: this.given,
expected: this.expected
};
}
[customInspectSymbolStackLess](depth, options) {
const constraint = options.stylize(this.constraint, "string");
if (depth < 0) {
return options.stylize(`[ExpectedConstraintError: ${constraint}]`, "special");
}
const newOptions = { ...options, depth: options.depth === null ? null : options.depth - 1 };
const padding = `
${options.stylize("|", "undefined")} `;
const given = inspect2(this.given, newOptions).replace(/\n/g, padding);
const header = `${options.stylize("ExpectedConstraintError", "special")} > ${constraint}`;
const message = options.stylize(this.message, "regexp");
const expectedBlock = `
${options.stylize("Expected: ", "string")}${options.stylize(this.expected, "boolean")}`;
const givenBlock = `
${options.stylize("Received:", "regexp")}${padding}${given}`;
return `${header}
${message}
${expectedBlock}
${givenBlock}`;
}
};
__name(ExpectedConstraintError, "ExpectedConstraintError");
// src/constraints/util/isUnique.ts
var import_es6 = __toESM(require_es6());
var import_lodash = __toESM(require_lodash());
function isUnique(input) {
if (input.length < 2)
return true;
const uniqueArray2 = (0, import_lodash.default)(input, import_es6.default);
return uniqueArray2.length === input.length;
}
__name(isUnique, "isUnique");
// src/constraints/util/operators.ts
function lessThan(a3, b2) {
return a3 < b2;
}
__name(lessThan, "lessThan");
function lessThanOrEqual(a3, b2) {
return a3 <= b2;
}
__name(lessThanOrEqual, "lessThanOrEqual");
function greaterThan(a3, b2) {
return a3 > b2;
}
__name(greaterThan, "greaterThan");
function greaterThanOrEqual(a3, b2) {
return a3 >= b2;
}
__name(greaterThanOrEqual, "greaterThanOrEqual");
function equal(a3, b2) {
return a3 === b2;
}
__name(equal, "equal");
function notEqual(a3, b2) {
return a3 !== b2;
}
__name(notEqual, "notEqual");
// src/constraints/ArrayConstraints.ts
function arrayLengthComparator(comparator, name, expected, length) {
return {
run(input) {
return comparator(input.length, length) ? Result.ok(input) : Result.err(new ExpectedConstraintError(name, "Invalid Array length", input, expected));
}
};
}
__name(arrayLengthComparator, "arrayLengthComparator");
function arrayLengthLessThan(value) {
const expected = `expected.length < ${value}`;
return arrayLengthComparator(lessThan, "s.array(T).lengthLessThan", expected, value);
}
__name(arrayLengthLessThan, "arrayLengthLessThan");
function arrayLengthLessThanOrEqual(value) {
const expected = `expected.length <= ${value}`;
return arrayLengthComparator(lessThanOrEqual, "s.array(T).lengthLessThanOrEqual", expected, value);
}
__name(arrayLengthLessThanOrEqual, "arrayLengthLessThanOrEqual");
function arrayLengthGreaterThan(value) {
const expected = `expected.length > ${value}`;
return arrayLengthComparator(greaterThan, "s.array(T).lengthGreaterThan", expected, value);
}
__name(arrayLengthGreaterThan, "arrayLengthGreaterThan");
function arrayLengthGreaterThanOrEqual(value) {
const expected = `expected.length >= ${value}`;
return arrayLengthComparator(greaterThanOrEqual, "s.array(T).lengthGreaterThanOrEqual", expected, value);
}
__name(arrayLengthGreaterThanOrEqual, "arrayLengthGreaterThanOrEqual");
function arrayLengthEqual(value) {
const expected = `expected.length === ${value}`;
return arrayLengthComparator(equal, "s.array(T).lengthEqual", expected, value);
}
__name(arrayLengthEqual, "arrayLengthEqual");
function arrayLengthNotEqual(value) {
const expected = `expected.length !== ${valu