Spaces:
Runtime error
Runtime error
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( | |
// If the importer is in node compatibility mode or this is not an ESM | |
// file that has been converted to a CommonJS file using a Babel- | |
// compatible transform (i.e. "__esModule" has not been set), then set | |
// "default" to the CommonJS "module.exports" for node compatibility. | |
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, | |
mod | |
)); | |
// node_modules/lodash/isArray.js | |
var require_isArray = __commonJS({ | |
"node_modules/lodash/isArray.js"(exports, module) { | |
var isArray3 = Array.isArray; | |
module.exports = isArray3; | |
} | |
}); | |
// node_modules/lodash/_freeGlobal.js | |
var require_freeGlobal = __commonJS({ | |
"node_modules/lodash/_freeGlobal.js"(exports, module) { | |
var freeGlobal = typeof globalThis == "object" && globalThis && globalThis.Object === Object && globalThis; | |
module.exports = freeGlobal; | |
} | |
}); | |
// node_modules/lodash/_root.js | |
var require_root = __commonJS({ | |
"node_modules/lodash/_root.js"(exports, module) { | |
var freeGlobal = require_freeGlobal(); | |
var freeSelf = typeof self == "object" && self && self.Object === Object && self; | |
var root = freeGlobal || freeSelf || Function("return this")(); | |
module.exports = root; | |
} | |
}); | |
// node_modules/lodash/_Symbol.js | |
var require_Symbol = __commonJS({ | |
"node_modules/lodash/_Symbol.js"(exports, module) { | |
var root = require_root(); | |
var Symbol2 = root.Symbol; | |
module.exports = Symbol2; | |
} | |
}); | |
// node_modules/lodash/_getRawTag.js | |
var require_getRawTag = __commonJS({ | |
"node_modules/lodash/_getRawTag.js"(exports, module) { | |
var Symbol2 = require_Symbol(); | |
var objectProto = Object.prototype; | |
var hasOwnProperty = objectProto.hasOwnProperty; | |
var nativeObjectToString = objectProto.toString; | |
var symToStringTag = Symbol2 ? Symbol2.toStringTag : void 0; | |
function getRawTag(value) { | |
var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag]; | |
try { | |
value[symToStringTag] = void 0; | |
var unmasked = true; | |
} catch (e3) { | |
} | |
var result = nativeObjectToString.call(value); | |
if (unmasked) { | |
if (isOwn) { | |
value[symToStringTag] = tag; | |
} else { | |
delete value[symToStringTag]; | |
} | |
} | |
return result; | |
} | |
__name(getRawTag, "getRawTag"); | |
module.exports = getRawTag; | |
} | |
}); | |
// node_modules/lodash/_objectToString.js | |
var require_objectToString = __commonJS({ | |
"node_modules/lodash/_objectToString.js"(exports, module) { | |
var objectProto = Object.prototype; | |
var nativeObjectToString = objectProto.toString; | |
function objectToString(value) { | |
return nativeObjectToString.call(value); | |
} | |
__name(objectToString, "objectToString"); | |
module.exports = objectToString; | |
} | |
}); | |
// node_modules/lodash/_baseGetTag.js | |
var require_baseGetTag = __commonJS({ | |
"node_modules/lodash/_baseGetTag.js"(exports, module) { | |
var Symbol2 = require_Symbol(); | |
var getRawTag = require_getRawTag(); | |
var objectToString = require_objectToString(); | |
var nullTag = "[object Null]"; | |
var undefinedTag = "[object Undefined]"; | |
var symToStringTag = Symbol2 ? Symbol2.toStringTag : void 0; | |
function baseGetTag(value) { | |
if (value == null) { | |
return value === void 0 ? undefinedTag : nullTag; | |
} | |
return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value); | |
} | |
__name(baseGetTag, "baseGetTag"); | |
module.exports = baseGetTag; | |
} | |
}); | |
// node_modules/lodash/isObjectLike.js | |
var require_isObjectLike = __commonJS({ | |
"node_modules/lodash/isObjectLike.js"(exports, module) { | |
function isObjectLike(value) { | |
return value != null && typeof value == "object"; | |
} | |
__name(isObjectLike, "isObjectLike"); | |
module.exports = isObjectLike; | |
} | |
}); | |
// node_modules/lodash/isSymbol.js | |
var require_isSymbol = __commonJS({ | |
"node_modules/lodash/isSymbol.js"(exports, module) { | |
var baseGetTag = require_baseGetTag(); | |
var isObjectLike = require_isObjectLike(); | |
var symbolTag = "[object Symbol]"; | |
function isSymbol3(value) { | |
return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag; | |
} | |
__name(isSymbol3, "isSymbol"); | |
module.exports = isSymbol3; | |
} | |
}); | |
// node_modules/lodash/_isKey.js | |
var require_isKey = __commonJS({ | |
"node_modules/lodash/_isKey.js"(exports, module) { | |
var isArray3 = require_isArray(); | |
var isSymbol3 = require_isSymbol(); | |
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/; | |
var reIsPlainProp = /^\w*$/; | |
function isKey(value, object) { | |
if (isArray3(value)) { | |
return false; | |
} | |
var type = typeof value; | |
if (type == "number" || type == "symbol" || type == "boolean" || value == null || isSymbol3(value)) { | |
return true; | |
} | |
return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object(object); | |
} | |
__name(isKey, "isKey"); | |
module.exports = isKey; | |
} | |
}); | |
// node_modules/lodash/isObject.js | |
var require_isObject = __commonJS({ | |
"node_modules/lodash/isObject.js"(exports, module) { | |
function isObject3(value) { | |
var type = typeof value; | |
return value != null && (type == "object" || type == "function"); | |
} | |
__name(isObject3, "isObject"); | |
module.exports = isObject3; | |
} | |
}); | |
// node_modules/lodash/isFunction.js | |
var require_isFunction = __commonJS({ | |
"node_modules/lodash/isFunction.js"(exports, module) { | |
var baseGetTag = require_baseGetTag(); | |
var isObject3 = require_isObject(); | |
var asyncTag = "[object AsyncFunction]"; | |
var funcTag = "[object Function]"; | |
var genTag = "[object GeneratorFunction]"; | |
var proxyTag = "[object Proxy]"; | |
function isFunction3(value) { | |
if (!isObject3(value)) { | |
return false; | |
} | |
var tag = baseGetTag(value); | |
return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; | |
} | |
__name(isFunction3, "isFunction"); | |
module.exports = isFunction3; | |
} | |
}); | |
// node_modules/lodash/_coreJsData.js | |
var require_coreJsData = __commonJS({ | |
"node_modules/lodash/_coreJsData.js"(exports, module) { | |
var root = require_root(); | |
var coreJsData = root["__core-js_shared__"]; | |
module.exports = coreJsData; | |
} | |
}); | |
// node_modules/lodash/_isMasked.js | |
var require_isMasked = __commonJS({ | |
"node_modules/lodash/_isMasked.js"(exports, module) { | |
var coreJsData = require_coreJsData(); | |
var maskSrcKey = function() { | |
var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ""); | |
return uid ? "Symbol(src)_1." + uid : ""; | |
}(); | |
function isMasked(func) { | |
return !!maskSrcKey && maskSrcKey in func; | |
} | |
__name(isMasked, "isMasked"); | |
module.exports = isMasked; | |
} | |
}); | |
// node_modules/lodash/_toSource.js | |
var require_toSource = __commonJS({ | |
"node_modules/lodash/_toSource.js"(exports, module) { | |
var funcProto = Function.prototype; | |
var funcToString = funcProto.toString; | |
function toSource(func) { | |
if (func != null) { | |
try { | |
return funcToString.call(func); | |
} catch (e3) { | |
} | |
try { | |
return func + ""; | |
} catch (e3) { | |
} | |
} | |
return ""; | |
} | |
__name(toSource, "toSource"); | |
module.exports = toSource; | |
} | |
}); | |
// node_modules/lodash/_baseIsNative.js | |
var require_baseIsNative = __commonJS({ | |
"node_modules/lodash/_baseIsNative.js"(exports, module) { | |
var isFunction3 = require_isFunction(); | |
var isMasked = require_isMasked(); | |
var isObject3 = require_isObject(); | |
var toSource = require_toSource(); | |
var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; | |
var reIsHostCtor = /^\[object .+?Constructor\]$/; | |
var funcProto = Function.prototype; | |
var objectProto = Object.prototype; | |
var funcToString = funcProto.toString; | |
var hasOwnProperty = objectProto.hasOwnProperty; | |
var reIsNative = RegExp( | |
"^" + funcToString.call(hasOwnProperty).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$" | |
); | |
function baseIsNative(value) { | |
if (!isObject3(value) || isMasked(value)) { | |
return false; | |
} | |
var pattern = isFunction3(value) ? reIsNative : reIsHostCtor; | |
return pattern.test(toSource(value)); | |
} | |
__name(baseIsNative, "baseIsNative"); | |
module.exports = baseIsNative; | |
} | |
}); | |
// node_modules/lodash/_getValue.js | |
var require_getValue = __commonJS({ | |
"node_modules/lodash/_getValue.js"(exports, module) { | |
function getValue2(object, key) { | |
return object == null ? void 0 : object[key]; | |
} | |
__name(getValue2, "getValue"); | |
module.exports = getValue2; | |
} | |
}); | |
// node_modules/lodash/_getNative.js | |
var require_getNative = __commonJS({ | |
"node_modules/lodash/_getNative.js"(exports, module) { | |
var baseIsNative = require_baseIsNative(); | |
var getValue2 = require_getValue(); | |
function getNative(object, key) { | |
var value = getValue2(object, key); | |
return baseIsNative(value) ? value : void 0; | |
} | |
__name(getNative, "getNative"); | |
module.exports = getNative; | |
} | |
}); | |
// node_modules/lodash/_nativeCreate.js | |
var require_nativeCreate = __commonJS({ | |
"node_modules/lodash/_nativeCreate.js"(exports, module) { | |
var getNative = require_getNative(); | |
var nativeCreate = getNative(Object, "create"); | |
module.exports = nativeCreate; | |
} | |
}); | |
// node_modules/lodash/_hashClear.js | |
var require_hashClear = __commonJS({ | |
"node_modules/lodash/_hashClear.js"(exports, module) { | |
var nativeCreate = require_nativeCreate(); | |
function hashClear() { | |
this.__data__ = nativeCreate ? nativeCreate(null) : {}; | |
this.size = 0; | |
} | |
__name(hashClear, "hashClear"); | |
module.exports = hashClear; | |
} | |
}); | |
// node_modules/lodash/_hashDelete.js | |
var require_hashDelete = __commonJS({ | |
"node_modules/lodash/_hashDelete.js"(exports, module) { | |
function hashDelete(key) { | |
var result = this.has(key) && delete this.__data__[key]; | |
this.size -= result ? 1 : 0; | |
return result; | |
} | |
__name(hashDelete, "hashDelete"); | |
module.exports = hashDelete; | |
} | |
}); | |
// node_modules/lodash/_hashGet.js | |
var require_hashGet = __commonJS({ | |
"node_modules/lodash/_hashGet.js"(exports, module) { | |
var nativeCreate = require_nativeCreate(); | |
var HASH_UNDEFINED = "__lodash_hash_undefined__"; | |
var objectProto = Object.prototype; | |
var hasOwnProperty = objectProto.hasOwnProperty; | |
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"); | |
module.exports = hashGet; | |
} | |
}); | |
// node_modules/lodash/_hashHas.js | |
var require_hashHas = __commonJS({ | |
"node_modules/lodash/_hashHas.js"(exports, module) { | |
var nativeCreate = require_nativeCreate(); | |
var objectProto = Object.prototype; | |
var hasOwnProperty = objectProto.hasOwnProperty; | |
function hashHas(key) { | |
var data = this.__data__; | |
return nativeCreate ? data[key] !== void 0 : hasOwnProperty.call(data, key); | |
} | |
__name(hashHas, "hashHas"); | |
module.exports = hashHas; | |
} | |
}); | |
// node_modules/lodash/_hashSet.js | |
var require_hashSet = __commonJS({ | |
"node_modules/lodash/_hashSet.js"(exports, module) { | |
var nativeCreate = require_nativeCreate(); | |
var HASH_UNDEFINED = "__lodash_hash_undefined__"; | |
function hashSet(key, value) { | |
var data = this.__data__; | |
this.size += this.has(key) ? 0 : 1; | |
data[key] = nativeCreate && value === void 0 ? HASH_UNDEFINED : value; | |
return this; | |
} | |
__name(hashSet, "hashSet"); | |
module.exports = hashSet; | |
} | |
}); | |
// node_modules/lodash/_Hash.js | |
var require_Hash = __commonJS({ | |
"node_modules/lodash/_Hash.js"(exports, module) { | |
var hashClear = require_hashClear(); | |
var hashDelete = require_hashDelete(); | |
var hashGet = require_hashGet(); | |
var hashHas = require_hashHas(); | |
var hashSet = require_hashSet(); | |
function Hash(entries) { | |
var index = -1, length = entries == null ? 0 : entries.length; | |
this.clear(); | |
while (++index < length) { | |
var entry = entries[index]; | |
this.set(entry[0], entry[1]); | |
} | |
} | |
__name(Hash, "Hash"); | |
Hash.prototype.clear = hashClear; | |
Hash.prototype["delete"] = hashDelete; | |
Hash.prototype.get = hashGet; | |
Hash.prototype.has = hashHas; | |
Hash.prototype.set = hashSet; | |
module.exports = Hash; | |
} | |
}); | |
// node_modules/lodash/_listCacheClear.js | |
var require_listCacheClear = __commonJS({ | |
"node_modules/lodash/_listCacheClear.js"(exports, module) { | |
function listCacheClear() { | |
this.__data__ = []; | |
this.size = 0; | |
} | |
__name(listCacheClear, "listCacheClear"); | |
module.exports = listCacheClear; | |
} | |
}); | |
// node_modules/lodash/eq.js | |
var require_eq = __commonJS({ | |
"node_modules/lodash/eq.js"(exports, module) { | |
function eq(value, other) { | |
return value === other || value !== value && other !== other; | |
} | |
__name(eq, "eq"); | |
module.exports = eq; | |
} | |
}); | |
// node_modules/lodash/_assocIndexOf.js | |
var require_assocIndexOf = __commonJS({ | |
"node_modules/lodash/_assocIndexOf.js"(exports, module) { | |
var eq = require_eq(); | |
function assocIndexOf(array, key) { | |
var length = array.length; | |
while (length--) { | |
if (eq(array[length][0], key)) { | |
return length; | |
} | |
} | |
return -1; | |
} | |
__name(assocIndexOf, "assocIndexOf"); | |
module.exports = assocIndexOf; | |
} | |
}); | |
// node_modules/lodash/_listCacheDelete.js | |
var require_listCacheDelete = __commonJS({ | |
"node_modules/lodash/_listCacheDelete.js"(exports, module) { | |
var assocIndexOf = require_assocIndexOf(); | |
var arrayProto = Array.prototype; | |
var splice = arrayProto.splice; | |
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); | |
} | |
--this.size; | |
return true; | |
} | |
__name(listCacheDelete, "listCacheDelete"); | |
module.exports = listCacheDelete; | |
} | |
}); | |
// node_modules/lodash/_listCacheGet.js | |
var require_listCacheGet = __commonJS({ | |
"node_modules/lodash/_listCacheGet.js"(exports, module) { | |
var assocIndexOf = require_assocIndexOf(); | |
function listCacheGet(key) { | |
var data = this.__data__, index = assocIndexOf(data, key); | |
return index < 0 ? void 0 : data[index][1]; | |
} | |
__name(listCacheGet, "listCacheGet"); | |
module.exports = listCacheGet; | |
} | |
}); | |
// node_modules/lodash/_listCacheHas.js | |
var require_listCacheHas = __commonJS({ | |
"node_modules/lodash/_listCacheHas.js"(exports, module) { | |
var assocIndexOf = require_assocIndexOf(); | |
function listCacheHas(key) { | |
return assocIndexOf(this.__data__, key) > -1; | |
} | |
__name(listCacheHas, "listCacheHas"); | |
module.exports = listCacheHas; | |
} | |
}); | |
// node_modules/lodash/_listCacheSet.js | |
var require_listCacheSet = __commonJS({ | |
"node_modules/lodash/_listCacheSet.js"(exports, module) { | |
var assocIndexOf = require_assocIndexOf(); | |
function listCacheSet(key, value) { | |
var data = this.__data__, index = assocIndexOf(data, key); | |
if (index < 0) { | |
++this.size; | |
data.push([key, value]); | |
} else { | |
data[index][1] = value; | |
} | |
return this; | |
} | |
__name(listCacheSet, "listCacheSet"); | |
module.exports = listCacheSet; | |
} | |
}); | |
// node_modules/lodash/_ListCache.js | |
var require_ListCache = __commonJS({ | |
"node_modules/lodash/_ListCache.js"(exports, module) { | |
var listCacheClear = require_listCacheClear(); | |
var listCacheDelete = require_listCacheDelete(); | |
var listCacheGet = require_listCacheGet(); | |
var listCacheHas = require_listCacheHas(); | |
var listCacheSet = require_listCacheSet(); | |
function ListCache(entries) { | |
var index = -1, length = entries == null ? 0 : entries.length; | |
this.clear(); | |
while (++index < length) { | |
var entry = entries[index]; | |
this.set(entry[0], entry[1]); | |
} | |
} | |
__name(ListCache, "ListCache"); | |
ListCache.prototype.clear = listCacheClear; | |
ListCache.prototype["delete"] = listCacheDelete; | |
ListCache.prototype.get = listCacheGet; | |
ListCache.prototype.has = listCacheHas; | |
ListCache.prototype.set = listCacheSet; | |
module.exports = ListCache; | |
} | |
}); | |
// node_modules/lodash/_Map.js | |
var require_Map = __commonJS({ | |
"node_modules/lodash/_Map.js"(exports, module) { | |
var getNative = require_getNative(); | |
var root = require_root(); | |
var Map2 = getNative(root, "Map"); | |
module.exports = Map2; | |
} | |
}); | |
// node_modules/lodash/_mapCacheClear.js | |
var require_mapCacheClear = __commonJS({ | |
"node_modules/lodash/_mapCacheClear.js"(exports, module) { | |
var Hash = require_Hash(); | |
var ListCache = require_ListCache(); | |
var Map2 = require_Map(); | |
function mapCacheClear() { | |
this.size = 0; | |
this.__data__ = { | |
"hash": new Hash(), | |
"map": new (Map2 || ListCache)(), | |
"string": new Hash() | |
}; | |
} | |
__name(mapCacheClear, "mapCacheClear"); | |
module.exports = mapCacheClear; | |
} | |
}); | |
// node_modules/lodash/_isKeyable.js | |
var require_isKeyable = __commonJS({ | |
"node_modules/lodash/_isKeyable.js"(exports, module) { | |
function isKeyable(value) { | |
var type = typeof value; | |
return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null; | |
} | |
__name(isKeyable, "isKeyable"); | |
module.exports = isKeyable; | |
} | |
}); | |
// node_modules/lodash/_getMapData.js | |
var require_getMapData = __commonJS({ | |
"node_modules/lodash/_getMapData.js"(exports, module) { | |
var isKeyable = require_isKeyable(); | |
function getMapData(map, key) { | |
var data = map.__data__; | |
return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map; | |
} | |
__name(getMapData, "getMapData"); | |
module.exports = getMapData; | |
} | |
}); | |
// node_modules/lodash/_mapCacheDelete.js | |
var require_mapCacheDelete = __commonJS({ | |
"node_modules/lodash/_mapCacheDelete.js"(exports, module) { | |
var getMapData = require_getMapData(); | |
function mapCacheDelete(key) { | |
var result = getMapData(this, key)["delete"](key); | |
this.size -= result ? 1 : 0; | |
return result; | |
} | |
__name(mapCacheDelete, "mapCacheDelete"); | |
module.exports = mapCacheDelete; | |
} | |
}); | |
// node_modules/lodash/_mapCacheGet.js | |
var require_mapCacheGet = __commonJS({ | |
"node_modules/lodash/_mapCacheGet.js"(exports, module) { | |
var getMapData = require_getMapData(); | |
function mapCacheGet(key) { | |
return getMapData(this, key).get(key); | |
} | |
__name(mapCacheGet, "mapCacheGet"); | |
module.exports = mapCacheGet; | |
} | |
}); | |
// node_modules/lodash/_mapCacheHas.js | |
var require_mapCacheHas = __commonJS({ | |
"node_modules/lodash/_mapCacheHas.js"(exports, module) { | |
var getMapData = require_getMapData(); | |
function mapCacheHas(key) { | |
return getMapData(this, key).has(key); | |
} | |
__name(mapCacheHas, "mapCacheHas"); | |
module.exports = mapCacheHas; | |
} | |
}); | |
// node_modules/lodash/_mapCacheSet.js | |
var require_mapCacheSet = __commonJS({ | |
"node_modules/lodash/_mapCacheSet.js"(exports, module) { | |
var getMapData = require_getMapData(); | |
function mapCacheSet(key, value) { | |
var data = getMapData(this, key), size = data.size; | |
data.set(key, value); | |
this.size += data.size == size ? 0 : 1; | |
return this; | |
} | |
__name(mapCacheSet, "mapCacheSet"); | |
module.exports = mapCacheSet; | |
} | |
}); | |
// node_modules/lodash/_MapCache.js | |
var require_MapCache = __commonJS({ | |
"node_modules/lodash/_MapCache.js"(exports, module) { | |
var mapCacheClear = require_mapCacheClear(); | |
var mapCacheDelete = require_mapCacheDelete(); | |
var mapCacheGet = require_mapCacheGet(); | |
var mapCacheHas = require_mapCacheHas(); | |
var mapCacheSet = require_mapCacheSet(); | |
function MapCache(entries) { | |
var index = -1, length = entries == null ? 0 : entries.length; | |
this.clear(); | |
while (++index < length) { | |
var entry = entries[index]; | |
this.set(entry[0], entry[1]); | |
} | |
} | |
__name(MapCache, "MapCache"); | |
MapCache.prototype.clear = mapCacheClear; | |
MapCache.prototype["delete"] = mapCacheDelete; | |
MapCache.prototype.get = mapCacheGet; | |
MapCache.prototype.has = mapCacheHas; | |
MapCache.prototype.set = mapCacheSet; | |
module.exports = MapCache; | |
} | |
}); | |
// node_modules/lodash/memoize.js | |
var require_memoize = __commonJS({ | |
"node_modules/lodash/memoize.js"(exports, module) { | |
var MapCache = require_MapCache(); | |
var FUNC_ERROR_TEXT = "Expected a function"; | |
function memoize(func, resolver) { | |
if (typeof func != "function" || resolver != null && typeof resolver != "function") { | |
throw new TypeError(FUNC_ERROR_TEXT); | |
} | |
var memoized = /* @__PURE__ */ __name(function() { | |
var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache = memoized.cache; | |
if (cache.has(key)) { | |
return cache.get(key); | |
} | |
var result = func.apply(this, args); | |
memoized.cache = cache.set(key, result) || cache; | |
return result; | |
}, "memoized"); | |
memoized.cache = new (memoize.Cache || MapCache)(); | |
return memoized; | |
} | |
__name(memoize, "memoize"); | |
memoize.Cache = MapCache; | |
module.exports = memoize; | |
} | |
}); | |
// node_modules/lodash/_memoizeCapped.js | |
var require_memoizeCapped = __commonJS({ | |
"node_modules/lodash/_memoizeCapped.js"(exports, module) { | |
var memoize = require_memoize(); | |
var MAX_MEMOIZE_SIZE = 500; | |
function memoizeCapped(func) { | |
var result = memoize(func, function(key) { | |
if (cache.size === MAX_MEMOIZE_SIZE) { | |
cache.clear(); | |
} | |
return key; | |
}); | |
var cache = result.cache; | |
return result; | |
} | |
__name(memoizeCapped, "memoizeCapped"); | |
module.exports = memoizeCapped; | |
} | |
}); | |
// node_modules/lodash/_stringToPath.js | |
var require_stringToPath = __commonJS({ | |
"node_modules/lodash/_stringToPath.js"(exports, module) { | |
var memoizeCapped = require_memoizeCapped(); | |
var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; | |
var reEscapeChar = /\\(\\)?/g; | |
var stringToPath = memoizeCapped(function(string) { | |
var result = []; | |
if (string.charCodeAt(0) === 46) { | |
result.push(""); | |
} | |
string.replace(rePropName, function(match, number, quote, subString) { | |
result.push(quote ? subString.replace(reEscapeChar, "$1") : number || match); | |
}); | |
return result; | |
}); | |
module.exports = stringToPath; | |
} | |
}); | |
// node_modules/lodash/_arrayMap.js | |
var require_arrayMap = __commonJS({ | |
"node_modules/lodash/_arrayMap.js"(exports, module) { | |
function arrayMap(array, iteratee) { | |
var index = -1, length = array == null ? 0 : array.length, result = Array(length); | |
while (++index < length) { | |
result[index] = iteratee(array[index], index, array); | |
} | |
return result; | |
} | |
__name(arrayMap, "arrayMap"); | |
module.exports = arrayMap; | |
} | |
}); | |
// node_modules/lodash/_baseToString.js | |
var require_baseToString = __commonJS({ | |
"node_modules/lodash/_baseToString.js"(exports, module) { | |
var Symbol2 = require_Symbol(); | |
var arrayMap = require_arrayMap(); | |
var isArray3 = require_isArray(); | |
var isSymbol3 = require_isSymbol(); | |
var INFINITY = 1 / 0; | |
var symbolProto = Symbol2 ? Symbol2.prototype : void 0; | |
var symbolToString = symbolProto ? symbolProto.toString : void 0; | |
function baseToString(value) { | |
if (typeof value == "string") { | |
return value; | |
} | |
if (isArray3(value)) { | |
return arrayMap(value, baseToString) + ""; | |
} | |
if (isSymbol3(value)) { | |
return symbolToString ? symbolToString.call(value) : ""; | |
} | |
var result = value + ""; | |
return result == "0" && 1 / value == -INFINITY ? "-0" : result; | |
} | |
__name(baseToString, "baseToString"); | |
module.exports = baseToString; | |
} | |
}); | |
// node_modules/lodash/toString.js | |
var require_toString = __commonJS({ | |
"node_modules/lodash/toString.js"(exports, module) { | |
var baseToString = require_baseToString(); | |
function toString(value) { | |
return value == null ? "" : baseToString(value); | |
} | |
__name(toString, "toString"); | |
module.exports = toString; | |
} | |
}); | |
// node_modules/lodash/_castPath.js | |
var require_castPath = __commonJS({ | |
"node_modules/lodash/_castPath.js"(exports, module) { | |
var isArray3 = require_isArray(); | |
var isKey = require_isKey(); | |
var stringToPath = require_stringToPath(); | |
var toString = require_toString(); | |
function castPath(value, object) { | |
if (isArray3(value)) { | |
return value; | |
} | |
return isKey(value, object) ? [value] : stringToPath(toString(value)); | |
} | |
__name(castPath, "castPath"); | |
module.exports = castPath; | |
} | |
}); | |
// node_modules/lodash/_toKey.js | |
var require_toKey = __commonJS({ | |
"node_modules/lodash/_toKey.js"(exports, module) { | |
var isSymbol3 = require_isSymbol(); | |
var INFINITY = 1 / 0; | |
function toKey(value) { | |
if (typeof value == "string" || isSymbol3(value)) { | |
return value; | |
} | |
var result = value + ""; | |
return result == "0" && 1 / value == -INFINITY ? "-0" : result; | |
} | |
__name(toKey, "toKey"); | |
module.exports = toKey; | |
} | |
}); | |
// node_modules/lodash/_baseGet.js | |
var require_baseGet = __commonJS({ | |
"node_modules/lodash/_baseGet.js"(exports, module) { | |
var castPath = require_castPath(); | |
var toKey = require_toKey(); | |
function baseGet(object, path) { | |
path = castPath(path, object); | |
var index = 0, length = path.length; | |
while (object != null && index < length) { | |
object = object[toKey(path[index++])]; | |
} | |
return index && index == length ? object : void 0; | |
} | |
__name(baseGet, "baseGet"); | |
module.exports = baseGet; | |
} | |
}); | |
// node_modules/lodash/get.js | |
var require_get = __commonJS({ | |
"node_modules/lodash/get.js"(exports, module) { | |
var baseGet = require_baseGet(); | |
function get2(object, path, defaultValue) { | |
var result = object == null ? void 0 : baseGet(object, path); | |
return result === void 0 ? defaultValue : result; | |
} | |
__name(get2, "get"); | |
module.exports = get2; | |
} | |
}); | |
// 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/_setCacheAdd.js | |
var require_setCacheAdd = __commonJS({ | |
"node_modules/lodash/_setCacheAdd.js"(exports, module) { | |
var HASH_UNDEFINED = "__lodash_hash_undefined__"; | |
function setCacheAdd(value) { | |
this.__data__.set(value, HASH_UNDEFINED); | |
return this; | |
} | |
__name(setCacheAdd, "setCacheAdd"); | |
module.exports = setCacheAdd; | |
} | |
}); | |
// node_modules/lodash/_setCacheHas.js | |
var require_setCacheHas = __commonJS({ | |
"node_modules/lodash/_setCacheHas.js"(exports, module) { | |
function setCacheHas(value) { | |
return this.__data__.has(value); | |
} | |
__name(setCacheHas, "setCacheHas"); | |
module.exports = setCacheHas; | |
} | |
}); | |
// node_modules/lodash/_SetCache.js | |
var require_SetCache = __commonJS({ | |
"node_modules/lodash/_SetCache.js"(exports, module) { | |
var MapCache = require_MapCache(); | |
var setCacheAdd = require_setCacheAdd(); | |
var setCacheHas = require_setCacheHas(); | |
function SetCache(values) { | |
var index = -1, length = values == null ? 0 : values.length; | |
this.__data__ = new MapCache(); | |
while (++index < length) { | |
this.add(values[index]); | |
} | |
} | |
__name(SetCache, "SetCache"); | |
SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; | |
SetCache.prototype.has = setCacheHas; | |
module.exports = SetCache; | |
} | |
}); | |
// node_modules/lodash/_baseFindIndex.js | |
var require_baseFindIndex = __commonJS({ | |
"node_modules/lodash/_baseFindIndex.js"(exports, module) { | |
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"); | |
module.exports = baseFindIndex; | |
} | |
}); | |
// node_modules/lodash/_baseIsNaN.js | |
var require_baseIsNaN = __commonJS({ | |
"node_modules/lodash/_baseIsNaN.js"(exports, module) { | |
function baseIsNaN(value) { | |
return value !== value; | |
} | |
__name(baseIsNaN, "baseIsNaN"); | |
module.exports = baseIsNaN; | |
} | |
}); | |
// node_modules/lodash/_strictIndexOf.js | |
var require_strictIndexOf = __commonJS({ | |
"node_modules/lodash/_strictIndexOf.js"(exports, module) { | |
function strictIndexOf(array, value, fromIndex) { | |
var index = fromIndex - 1, length = array.length; | |
while (++index < length) { | |
if (array[index] === value) { | |
return index; | |
} | |
} | |
return -1; | |
} | |
__name(strictIndexOf, "strictIndexOf"); | |
module.exports = strictIndexOf; | |
} | |
}); | |
// node_modules/lodash/_baseIndexOf.js | |
var require_baseIndexOf = __commonJS({ | |
"node_modules/lodash/_baseIndexOf.js"(exports, module) { | |
var baseFindIndex = require_baseFindIndex(); | |
var baseIsNaN = require_baseIsNaN(); | |
var strictIndexOf = require_strictIndexOf(); | |
function baseIndexOf(array, value, fromIndex) { | |
return value === value ? strictIndexOf(array, value, fromIndex) : baseFindIndex(array, baseIsNaN, fromIndex); | |
} | |
__name(baseIndexOf, "baseIndexOf"); | |
module.exports = baseIndexOf; | |
} | |
}); | |
// node_modules/lodash/_arrayIncludes.js | |
var require_arrayIncludes = __commonJS({ | |
"node_modules/lodash/_arrayIncludes.js"(exports, module) { | |
var baseIndexOf = require_baseIndexOf(); | |
function arrayIncludes(array, value) { | |
var length = array == null ? 0 : array.length; | |
return !!length && baseIndexOf(array, value, 0) > -1; | |
} | |
__name(arrayIncludes, "arrayIncludes"); | |
module.exports = arrayIncludes; | |
} | |
}); | |
// node_modules/lodash/_arrayIncludesWith.js | |
var require_arrayIncludesWith = __commonJS({ | |
"node_modules/lodash/_arrayIncludesWith.js"(exports, module) { | |
function arrayIncludesWith(array, value, comparator) { | |
var index = -1, length = array == null ? 0 : array.length; | |
while (++index < length) { | |
if (comparator(value, array[index])) { | |
return true; | |
} | |
} | |
return false; | |
} | |
__name(arrayIncludesWith, "arrayIncludesWith"); | |
module.exports = arrayIncludesWith; | |
} | |
}); | |
// node_modules/lodash/_cacheHas.js | |
var require_cacheHas = __commonJS({ | |
"node_modules/lodash/_cacheHas.js"(exports, module) { | |
function cacheHas(cache, key) { | |
return cache.has(key); | |
} | |
__name(cacheHas, "cacheHas"); | |
module.exports = cacheHas; | |
} | |
}); | |
// node_modules/lodash/_Set.js | |
var require_Set = __commonJS({ | |
"node_modules/lodash/_Set.js"(exports, module) { | |
var getNative = require_getNative(); | |
var root = require_root(); | |
var Set2 = getNative(root, "Set"); | |
module.exports = Set2; | |
} | |
}); | |
// node_modules/lodash/noop.js | |
var require_noop = __commonJS({ | |
"node_modules/lodash/noop.js"(exports, module) { | |
function noop() { | |
} | |
__name(noop, "noop"); | |
module.exports = noop; | |
} | |
}); | |
// node_modules/lodash/_setToArray.js | |
var require_setToArray = __commonJS({ | |
"node_modules/lodash/_setToArray.js"(exports, module) { | |
function setToArray(set) { | |
var index = -1, result = Array(set.size); | |
set.forEach(function(value) { | |
result[++index] = value; | |
}); | |
return result; | |
} | |
__name(setToArray, "setToArray"); | |
module.exports = setToArray; | |
} | |
}); | |
// node_modules/lodash/_createSet.js | |
var require_createSet = __commonJS({ | |
"node_modules/lodash/_createSet.js"(exports, module) { | |
var Set2 = require_Set(); | |
var noop = require_noop(); | |
var setToArray = require_setToArray(); | |
var INFINITY = 1 / 0; | |
var createSet = !(Set2 && 1 / setToArray(new Set2([, -0]))[1] == INFINITY) ? noop : function(values) { | |
return new Set2(values); | |
}; | |
module.exports = createSet; | |
} | |
}); | |
// node_modules/lodash/_baseUniq.js | |
var require_baseUniq = __commonJS({ | |
"node_modules/lodash/_baseUniq.js"(exports, module) { | |
var SetCache = require_SetCache(); | |
var arrayIncludes = require_arrayIncludes(); | |
var arrayIncludesWith = require_arrayIncludesWith(); | |
var cacheHas = require_cacheHas(); | |
var createSet = require_createSet(); | |
var setToArray = require_setToArray(); | |
var LARGE_ARRAY_SIZE = 200; | |
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"); | |
module.exports = baseUniq; | |
} | |
}); | |
// node_modules/lodash/uniqWith.js | |
var require_uniqWith = __commonJS({ | |
"node_modules/lodash/uniqWith.js"(exports, module) { | |
var baseUniq = require_baseUniq(); | |
function uniqWith2(array, comparator) { | |
comparator = typeof comparator == "function" ? comparator : void 0; | |
return array && array.length ? baseUniq(array, void 0, comparator) : []; | |
} | |
__name(uniqWith2, "uniqWith"); | |
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 _Result { | |
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"); | |
var Result = _Result; | |
// src/validators/util/getValue.ts | |
function getValue(valueOrFn) { | |
return typeof valueOrFn === "function" ? valueOrFn() : valueOrFn; | |
} | |
__name(getValue, "getValue"); | |
// src/constraints/ObjectConstrains.ts | |
var import_get = __toESM(require_get()); | |
// node_modules/@jspm/core/nodelibs/browser/chunk-5decc758.js | |
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; | |
// node_modules/@jspm/core/nodelibs/browser/chunk-b4205b57.js | |
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); | |
}, "o"); | |
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); | |
}, "n"); | |
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))); | |
}, "i"); | |
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() { | |
}, "o"); | |
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, "T"); | |
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 = "", s4 = false, p3 = ["{", "}"]; | |
(pe(t3) && (s4 = 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 || s4 && 0 != t3.length ? r3 < 0 ? me(t3) ? e3.stylize(RegExp.prototype.toString.call(t3), "regexp") : e3.stylize("[Object]", "special") : (e3.seen.push(t3), a3 = s4 ? 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, s4); | |
}), 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 = /* @__PURE__ */ 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, "t"); | |
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); | |
}, "o"); | |
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, "t"); | |
return Object.setPrototypeOf(t3, Object.getPrototypeOf(e3)), Object.defineProperties(t3, ee(e3)), t3; | |
}; | |
// node_modules/@jspm/core/nodelibs/browser/chunk-ce0fbc82.js | |
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; | |
// node-modules-polyfills:util | |
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 _BaseError extends Error { | |
[customInspectSymbol](depth, options) { | |
return `${this[customInspectSymbolStackLess](depth, options)} | |
${this.stack.slice(this.stack.indexOf("\n"))}`; | |
} | |
}; | |
__name(_BaseError, "BaseError"); | |
var BaseError = _BaseError; | |
// src/lib/errors/BaseConstraintError.ts | |
var _BaseConstraintError = class _BaseConstraintError extends BaseError { | |
constructor(constraint, message, given) { | |
super(message); | |
this.constraint = constraint; | |
this.given = given; | |
} | |
}; | |
__name(_BaseConstraintError, "BaseConstraintError"); | |
var BaseConstraintError = _BaseConstraintError; | |
// src/lib/errors/ExpectedConstraintError.ts | |
var _ExpectedConstraintError = class _ExpectedConstraintError 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"); | |
var ExpectedConstraintError = _ExpectedConstraintError; | |
// src/constraints/ObjectConstrains.ts | |
function whenConstraint(key, options, validator) { | |
return { | |
run(input, parent) { | |
if (!parent) { | |
return Result.err(new ExpectedConstraintError("s.object(T.when)", "Validator has no parent", parent, "Validator to have a parent")); | |
} | |
const isKeyArray = Array.isArray(key); | |
const value = isKeyArray ? key.map((k2) => (0, import_get.default)(parent, k2)) : (0, import_get.default)(parent, key); | |
const predicate = resolveBooleanIs(options, value, isKeyArray) ? options.then : options.otherwise; | |
if (predicate) { | |
return predicate(validator).run(input); | |
} | |
return Result.ok(input); | |
} | |
}; | |
} | |
__name(whenConstraint, "whenConstraint"); | |
function resolveBooleanIs(options, value, isKeyArray) { | |
if (options.is === void 0) { | |
return isKeyArray ? !value.some((val) => !val) : Boolean(value); | |
} | |
if (typeof options.is === "function") { | |
return options.is(value); | |
} | |
return value === options.is; | |
} | |
__name(resolveBooleanIs, "resolveBooleanIs"); | |
// src/validators/BaseValidator.ts | |
var _BaseValidator = class _BaseValidator { | |
constructor(constraints = []) { | |
this.constraints = []; | |
this.isValidationEnabled = null; | |
this.constraints = constraints; | |
} | |
setParent(parent) { | |
this.parent = parent; | |
return this; | |
} | |
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); | |
} | |
when(key, options) { | |
return this.addConstraint(whenConstraint(key, options, this)); | |
} | |
describe(description) { | |
const clone = this.clone(); | |
clone.description = description; | |
return clone; | |
} | |
run(value) { | |
let result = this.handle(value); | |
if (result.isErr()) | |
return result; | |
for (const constraint of this.constraints) { | |
result = constraint.run(result.value, this.parent); | |
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(); | |
} | |
/** | |
* Sets if the validator should also run constraints or just do basic checks. | |
* @param isValidationEnabled Whether this validator should be enabled or disabled. You can pass boolean or a function returning boolean which will be called just before parsing. | |
* Set to `null` to go off of the global configuration. | |
*/ | |
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"); | |
var BaseValidator = _BaseValidator; | |
// src/constraints/util/isUnique.ts | |
var import_es6 = __toESM(require_es6()); | |
var import_uniqWith = __toESM(require_uniqWith()); | |
function isUnique(input) { | |
if (input.length < 2) | |
return true; | |
const uniqueArray2 = (0, import_uniqWith.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 !== ${value}`; | |
return arrayLengthComparator(notEqual, "s.array(T).lengthNotEqual", expected, value); | |
} | |
__name(arrayLengthNotEqual, "arrayLengthNotEqual"); | |
function arrayLengthRange(start, endBefore) { | |
const expected = `expected.length >= ${start} && expected.length < ${endBefore}`; | |
return { | |
run(input) { | |
return input.length >= start && input.length < endBefore ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.array(T).lengthRange", "Invalid Array length", input, expected)); | |
} | |
}; | |
} | |
__name(arrayLengthRange, "arrayLengthRange"); | |
function arrayLengthRangeInclusive(start, end) { | |
const expected = `expected.length >= ${start} && expected.length <= ${end}`; | |
return { | |
run(input) { | |
return input.length >= start && input.length <= end ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.array(T).lengthRangeInclusive", "Invalid Array length", input, expected)); | |
} | |
}; | |
} | |
__name(arrayLengthRangeInclusive, "arrayLengthRangeInclusive"); | |
function arrayLengthRangeExclusive(startAfter, endBefore) { | |
const expected = `expected.length > ${startAfter} && expected.length < ${endBefore}`; | |
return { | |
run(input) { | |
return input.length > startAfter && input.length < endBefore ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.array(T).lengthRangeExclusive", "Invalid Array length", input, expected)); | |
} | |
}; | |
} | |
__name(arrayLengthRangeExclusive, "arrayLengthRangeExclusive"); | |
var uniqueArray = { | |
run(input) { | |
return isUnique(input) ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.array(T).unique", "Array values are not unique", input, "Expected all values to be unique")); | |
} | |
}; | |
// src/lib/errors/CombinedPropertyError.ts | |
var _CombinedPropertyError = class _CombinedPropertyError extends BaseError { | |
constructor(errors) { | |
super("Received one or more errors"); | |
this.errors = errors; | |
} | |
[customInspectSymbolStackLess](depth, options) { | |
if (depth < 0) { | |
return options.stylize("[CombinedPropertyError]", "special"); | |
} | |
const newOptions = { ...options, depth: options.depth === null ? null : options.depth - 1, compact: true }; | |
const padding = ` | |
${options.stylize("|", "undefined")} `; | |
const header = `${options.stylize("CombinedPropertyError", "special")} (${options.stylize(this.errors.length.toString(), "number")})`; | |
const message = options.stylize(this.message, "regexp"); | |
const errors = this.errors.map(([key, error]) => { | |
const property = _CombinedPropertyError.formatProperty(key, options); | |
const body = error[customInspectSymbolStackLess](depth - 1, newOptions).replace(/\n/g, padding); | |
return ` input${property}${padding}${body}`; | |
}).join("\n\n"); | |
return `${header} | |
${message} | |
${errors}`; | |
} | |
static formatProperty(key, options) { | |
if (typeof key === "string") | |
return options.stylize(`.${key}`, "symbol"); | |
if (typeof key === "number") | |
return `[${options.stylize(key.toString(), "number")}]`; | |
return `[${options.stylize("Symbol", "symbol")}(${key.description})]`; | |
} | |
}; | |
__name(_CombinedPropertyError, "CombinedPropertyError"); | |
var CombinedPropertyError = _CombinedPropertyError; | |
// src/lib/errors/ValidationError.ts | |
var _ValidationError = class _ValidationError extends BaseError { | |
constructor(validator, message, given) { | |
super(message); | |
this.validator = validator; | |
this.given = given; | |
} | |
toJSON() { | |
return { | |
name: this.name, | |
validator: this.validator, | |
given: this.given | |
}; | |
} | |
[customInspectSymbolStackLess](depth, options) { | |
const validator = options.stylize(this.validator, "string"); | |
if (depth < 0) { | |
return options.stylize(`[ValidationError: ${validator}]`, "special"); | |
} | |
const newOptions = { ...options, depth: options.depth === null ? null : options.depth - 1, compact: true }; | |
const padding = ` | |
${options.stylize("|", "undefined")} `; | |
const given = inspect2(this.given, newOptions).replace(/\n/g, padding); | |
const header = `${options.stylize("ValidationError", "special")} > ${validator}`; | |
const message = options.stylize(this.message, "regexp"); | |
const givenBlock = ` | |
${options.stylize("Received:", "regexp")}${padding}${given}`; | |
return `${header} | |
${message} | |
${givenBlock}`; | |
} | |
}; | |
__name(_ValidationError, "ValidationError"); | |
var ValidationError = _ValidationError; | |
// src/validators/ArrayValidator.ts | |
var _ArrayValidator = class _ArrayValidator extends BaseValidator { | |
constructor(validator, constraints = []) { | |
super(constraints); | |
this.validator = validator; | |
} | |
lengthLessThan(length) { | |
return this.addConstraint(arrayLengthLessThan(length)); | |
} | |
lengthLessThanOrEqual(length) { | |
return this.addConstraint(arrayLengthLessThanOrEqual(length)); | |
} | |
lengthGreaterThan(length) { | |
return this.addConstraint(arrayLengthGreaterThan(length)); | |
} | |
lengthGreaterThanOrEqual(length) { | |
return this.addConstraint(arrayLengthGreaterThanOrEqual(length)); | |
} | |
lengthEqual(length) { | |
return this.addConstraint(arrayLengthEqual(length)); | |
} | |
lengthNotEqual(length) { | |
return this.addConstraint(arrayLengthNotEqual(length)); | |
} | |
lengthRange(start, endBefore) { | |
return this.addConstraint(arrayLengthRange(start, endBefore)); | |
} | |
lengthRangeInclusive(startAt, endAt) { | |
return this.addConstraint(arrayLengthRangeInclusive(startAt, endAt)); | |
} | |
lengthRangeExclusive(startAfter, endBefore) { | |
return this.addConstraint(arrayLengthRangeExclusive(startAfter, endBefore)); | |
} | |
get unique() { | |
return this.addConstraint(uniqueArray); | |
} | |
clone() { | |
return Reflect.construct(this.constructor, [this.validator, this.constraints]); | |
} | |
handle(values) { | |
if (!Array.isArray(values)) { | |
return Result.err(new ValidationError("s.array(T)", "Expected an array", values)); | |
} | |
if (!this.shouldRunConstraints) { | |
return Result.ok(values); | |
} | |
const errors = []; | |
const transformed = []; | |
for (let i3 = 0; i3 < values.length; i3++) { | |
const result = this.validator.run(values[i3]); | |
if (result.isOk()) | |
transformed.push(result.value); | |
else | |
errors.push([i3, result.error]); | |
} | |
return errors.length === 0 ? Result.ok(transformed) : Result.err(new CombinedPropertyError(errors)); | |
} | |
}; | |
__name(_ArrayValidator, "ArrayValidator"); | |
var ArrayValidator = _ArrayValidator; | |
// src/constraints/BigIntConstraints.ts | |
function bigintComparator(comparator, name, expected, number) { | |
return { | |
run(input) { | |
return comparator(input, number) ? Result.ok(input) : Result.err(new ExpectedConstraintError(name, "Invalid bigint value", input, expected)); | |
} | |
}; | |
} | |
__name(bigintComparator, "bigintComparator"); | |
function bigintLessThan(value) { | |
const expected = `expected < ${value}n`; | |
return bigintComparator(lessThan, "s.bigint.lessThan", expected, value); | |
} | |
__name(bigintLessThan, "bigintLessThan"); | |
function bigintLessThanOrEqual(value) { | |
const expected = `expected <= ${value}n`; | |
return bigintComparator(lessThanOrEqual, "s.bigint.lessThanOrEqual", expected, value); | |
} | |
__name(bigintLessThanOrEqual, "bigintLessThanOrEqual"); | |
function bigintGreaterThan(value) { | |
const expected = `expected > ${value}n`; | |
return bigintComparator(greaterThan, "s.bigint.greaterThan", expected, value); | |
} | |
__name(bigintGreaterThan, "bigintGreaterThan"); | |
function bigintGreaterThanOrEqual(value) { | |
const expected = `expected >= ${value}n`; | |
return bigintComparator(greaterThanOrEqual, "s.bigint.greaterThanOrEqual", expected, value); | |
} | |
__name(bigintGreaterThanOrEqual, "bigintGreaterThanOrEqual"); | |
function bigintEqual(value) { | |
const expected = `expected === ${value}n`; | |
return bigintComparator(equal, "s.bigint.equal", expected, value); | |
} | |
__name(bigintEqual, "bigintEqual"); | |
function bigintNotEqual(value) { | |
const expected = `expected !== ${value}n`; | |
return bigintComparator(notEqual, "s.bigint.notEqual", expected, value); | |
} | |
__name(bigintNotEqual, "bigintNotEqual"); | |
function bigintDivisibleBy(divider) { | |
const expected = `expected % ${divider}n === 0n`; | |
return { | |
run(input) { | |
return input % divider === 0n ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.bigint.divisibleBy", "BigInt is not divisible", input, expected)); | |
} | |
}; | |
} | |
__name(bigintDivisibleBy, "bigintDivisibleBy"); | |
// src/validators/BigIntValidator.ts | |
var _BigIntValidator = class _BigIntValidator extends BaseValidator { | |
lessThan(number) { | |
return this.addConstraint(bigintLessThan(number)); | |
} | |
lessThanOrEqual(number) { | |
return this.addConstraint(bigintLessThanOrEqual(number)); | |
} | |
greaterThan(number) { | |
return this.addConstraint(bigintGreaterThan(number)); | |
} | |
greaterThanOrEqual(number) { | |
return this.addConstraint(bigintGreaterThanOrEqual(number)); | |
} | |
equal(number) { | |
return this.addConstraint(bigintEqual(number)); | |
} | |
notEqual(number) { | |
return this.addConstraint(bigintNotEqual(number)); | |
} | |
get positive() { | |
return this.greaterThanOrEqual(0n); | |
} | |
get negative() { | |
return this.lessThan(0n); | |
} | |
divisibleBy(number) { | |
return this.addConstraint(bigintDivisibleBy(number)); | |
} | |
get abs() { | |
return this.transform((value) => value < 0 ? -value : value); | |
} | |
intN(bits) { | |
return this.transform((value) => BigInt.asIntN(bits, value)); | |
} | |
uintN(bits) { | |
return this.transform((value) => BigInt.asUintN(bits, value)); | |
} | |
handle(value) { | |
return typeof value === "bigint" ? Result.ok(value) : Result.err(new ValidationError("s.bigint", "Expected a bigint primitive", value)); | |
} | |
}; | |
__name(_BigIntValidator, "BigIntValidator"); | |
var BigIntValidator = _BigIntValidator; | |
// src/constraints/BooleanConstraints.ts | |
var booleanTrue = { | |
run(input) { | |
return input ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.boolean.true", "Invalid boolean value", input, "true")); | |
} | |
}; | |
var booleanFalse = { | |
run(input) { | |
return input ? Result.err(new ExpectedConstraintError("s.boolean.false", "Invalid boolean value", input, "false")) : Result.ok(input); | |
} | |
}; | |
// src/validators/BooleanValidator.ts | |
var _BooleanValidator = class _BooleanValidator extends BaseValidator { | |
get true() { | |
return this.addConstraint(booleanTrue); | |
} | |
get false() { | |
return this.addConstraint(booleanFalse); | |
} | |
equal(value) { | |
return value ? this.true : this.false; | |
} | |
notEqual(value) { | |
return value ? this.false : this.true; | |
} | |
handle(value) { | |
return typeof value === "boolean" ? Result.ok(value) : Result.err(new ValidationError("s.boolean", "Expected a boolean primitive", value)); | |
} | |
}; | |
__name(_BooleanValidator, "BooleanValidator"); | |
var BooleanValidator = _BooleanValidator; | |
// src/constraints/DateConstraints.ts | |
function dateComparator(comparator, name, expected, number) { | |
return { | |
run(input) { | |
return comparator(input.getTime(), number) ? Result.ok(input) : Result.err(new ExpectedConstraintError(name, "Invalid Date value", input, expected)); | |
} | |
}; | |
} | |
__name(dateComparator, "dateComparator"); | |
function dateLessThan(value) { | |
const expected = `expected < ${value.toISOString()}`; | |
return dateComparator(lessThan, "s.date.lessThan", expected, value.getTime()); | |
} | |
__name(dateLessThan, "dateLessThan"); | |
function dateLessThanOrEqual(value) { | |
const expected = `expected <= ${value.toISOString()}`; | |
return dateComparator(lessThanOrEqual, "s.date.lessThanOrEqual", expected, value.getTime()); | |
} | |
__name(dateLessThanOrEqual, "dateLessThanOrEqual"); | |
function dateGreaterThan(value) { | |
const expected = `expected > ${value.toISOString()}`; | |
return dateComparator(greaterThan, "s.date.greaterThan", expected, value.getTime()); | |
} | |
__name(dateGreaterThan, "dateGreaterThan"); | |
function dateGreaterThanOrEqual(value) { | |
const expected = `expected >= ${value.toISOString()}`; | |
return dateComparator(greaterThanOrEqual, "s.date.greaterThanOrEqual", expected, value.getTime()); | |
} | |
__name(dateGreaterThanOrEqual, "dateGreaterThanOrEqual"); | |
function dateEqual(value) { | |
const expected = `expected === ${value.toISOString()}`; | |
return dateComparator(equal, "s.date.equal", expected, value.getTime()); | |
} | |
__name(dateEqual, "dateEqual"); | |
function dateNotEqual(value) { | |
const expected = `expected !== ${value.toISOString()}`; | |
return dateComparator(notEqual, "s.date.notEqual", expected, value.getTime()); | |
} | |
__name(dateNotEqual, "dateNotEqual"); | |
var dateInvalid = { | |
run(input) { | |
return Number.isNaN(input.getTime()) ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.date.invalid", "Invalid Date value", input, "expected === NaN")); | |
} | |
}; | |
var dateValid = { | |
run(input) { | |
return Number.isNaN(input.getTime()) ? Result.err(new ExpectedConstraintError("s.date.valid", "Invalid Date value", input, "expected !== NaN")) : Result.ok(input); | |
} | |
}; | |
// src/validators/DateValidator.ts | |
var _DateValidator = class _DateValidator extends BaseValidator { | |
lessThan(date) { | |
return this.addConstraint(dateLessThan(new Date(date))); | |
} | |
lessThanOrEqual(date) { | |
return this.addConstraint(dateLessThanOrEqual(new Date(date))); | |
} | |
greaterThan(date) { | |
return this.addConstraint(dateGreaterThan(new Date(date))); | |
} | |
greaterThanOrEqual(date) { | |
return this.addConstraint(dateGreaterThanOrEqual(new Date(date))); | |
} | |
equal(date) { | |
const resolved = new Date(date); | |
return Number.isNaN(resolved.getTime()) ? this.invalid : this.addConstraint(dateEqual(resolved)); | |
} | |
notEqual(date) { | |
const resolved = new Date(date); | |
return Number.isNaN(resolved.getTime()) ? this.valid : this.addConstraint(dateNotEqual(resolved)); | |
} | |
get valid() { | |
return this.addConstraint(dateValid); | |
} | |
get invalid() { | |
return this.addConstraint(dateInvalid); | |
} | |
handle(value) { | |
return value instanceof Date ? Result.ok(value) : Result.err(new ValidationError("s.date", "Expected a Date", value)); | |
} | |
}; | |
__name(_DateValidator, "DateValidator"); | |
var DateValidator = _DateValidator; | |
// src/lib/errors/ExpectedValidationError.ts | |
var _ExpectedValidationError = class _ExpectedValidationError extends ValidationError { | |
constructor(validator, message, given, expected) { | |
super(validator, message, given); | |
this.expected = expected; | |
} | |
toJSON() { | |
return { | |
name: this.name, | |
validator: this.validator, | |
given: this.given, | |
expected: this.expected | |
}; | |
} | |
[customInspectSymbolStackLess](depth, options) { | |
const validator = options.stylize(this.validator, "string"); | |
if (depth < 0) { | |
return options.stylize(`[ExpectedValidationError: ${validator}]`, "special"); | |
} | |
const newOptions = { ...options, depth: options.depth === null ? null : options.depth - 1 }; | |
const padding = ` | |
${options.stylize("|", "undefined")} `; | |
const expected = inspect2(this.expected, newOptions).replace(/\n/g, padding); | |
const given = inspect2(this.given, newOptions).replace(/\n/g, padding); | |
const header = `${options.stylize("ExpectedValidationError", "special")} > ${validator}`; | |
const message = options.stylize(this.message, "regexp"); | |
const expectedBlock = ` | |
${options.stylize("Expected:", "string")}${padding}${expected}`; | |
const givenBlock = ` | |
${options.stylize("Received:", "regexp")}${padding}${given}`; | |
return `${header} | |
${message} | |
${expectedBlock} | |
${givenBlock}`; | |
} | |
}; | |
__name(_ExpectedValidationError, "ExpectedValidationError"); | |
var ExpectedValidationError = _ExpectedValidationError; | |
// src/validators/InstanceValidator.ts | |
var _InstanceValidator = class _InstanceValidator extends BaseValidator { | |
constructor(expected, constraints = []) { | |
super(constraints); | |
this.expected = expected; | |
} | |
handle(value) { | |
return value instanceof this.expected ? Result.ok(value) : Result.err(new ExpectedValidationError("s.instance(V)", "Expected", value, this.expected)); | |
} | |
clone() { | |
return Reflect.construct(this.constructor, [this.expected, this.constraints]); | |
} | |
}; | |
__name(_InstanceValidator, "InstanceValidator"); | |
var InstanceValidator = _InstanceValidator; | |
// src/validators/LiteralValidator.ts | |
var _LiteralValidator = class _LiteralValidator extends BaseValidator { | |
constructor(literal, constraints = []) { | |
super(constraints); | |
this.expected = literal; | |
} | |
handle(value) { | |
return Object.is(value, this.expected) ? Result.ok(value) : Result.err(new ExpectedValidationError("s.literal(V)", "Expected values to be equals", value, this.expected)); | |
} | |
clone() { | |
return Reflect.construct(this.constructor, [this.expected, this.constraints]); | |
} | |
}; | |
__name(_LiteralValidator, "LiteralValidator"); | |
var LiteralValidator = _LiteralValidator; | |
// src/validators/NeverValidator.ts | |
var _NeverValidator = class _NeverValidator extends BaseValidator { | |
handle(value) { | |
return Result.err(new ValidationError("s.never", "Expected a value to not be passed", value)); | |
} | |
}; | |
__name(_NeverValidator, "NeverValidator"); | |
var NeverValidator = _NeverValidator; | |
// src/validators/NullishValidator.ts | |
var _NullishValidator = class _NullishValidator extends BaseValidator { | |
handle(value) { | |
return value === void 0 || value === null ? Result.ok(value) : Result.err(new ValidationError("s.nullish", "Expected undefined or null", value)); | |
} | |
}; | |
__name(_NullishValidator, "NullishValidator"); | |
var NullishValidator = _NullishValidator; | |
// src/constraints/NumberConstraints.ts | |
function numberComparator(comparator, name, expected, number) { | |
return { | |
run(input) { | |
return comparator(input, number) ? Result.ok(input) : Result.err(new ExpectedConstraintError(name, "Invalid number value", input, expected)); | |
} | |
}; | |
} | |
__name(numberComparator, "numberComparator"); | |
function numberLessThan(value) { | |
const expected = `expected < ${value}`; | |
return numberComparator(lessThan, "s.number.lessThan", expected, value); | |
} | |
__name(numberLessThan, "numberLessThan"); | |
function numberLessThanOrEqual(value) { | |
const expected = `expected <= ${value}`; | |
return numberComparator(lessThanOrEqual, "s.number.lessThanOrEqual", expected, value); | |
} | |
__name(numberLessThanOrEqual, "numberLessThanOrEqual"); | |
function numberGreaterThan(value) { | |
const expected = `expected > ${value}`; | |
return numberComparator(greaterThan, "s.number.greaterThan", expected, value); | |
} | |
__name(numberGreaterThan, "numberGreaterThan"); | |
function numberGreaterThanOrEqual(value) { | |
const expected = `expected >= ${value}`; | |
return numberComparator(greaterThanOrEqual, "s.number.greaterThanOrEqual", expected, value); | |
} | |
__name(numberGreaterThanOrEqual, "numberGreaterThanOrEqual"); | |
function numberEqual(value) { | |
const expected = `expected === ${value}`; | |
return numberComparator(equal, "s.number.equal", expected, value); | |
} | |
__name(numberEqual, "numberEqual"); | |
function numberNotEqual(value) { | |
const expected = `expected !== ${value}`; | |
return numberComparator(notEqual, "s.number.notEqual", expected, value); | |
} | |
__name(numberNotEqual, "numberNotEqual"); | |
var numberInt = { | |
run(input) { | |
return Number.isInteger(input) ? Result.ok(input) : Result.err( | |
new ExpectedConstraintError("s.number.int", "Given value is not an integer", input, "Number.isInteger(expected) to be true") | |
); | |
} | |
}; | |
var numberSafeInt = { | |
run(input) { | |
return Number.isSafeInteger(input) ? Result.ok(input) : Result.err( | |
new ExpectedConstraintError( | |
"s.number.safeInt", | |
"Given value is not a safe integer", | |
input, | |
"Number.isSafeInteger(expected) to be true" | |
) | |
); | |
} | |
}; | |
var numberFinite = { | |
run(input) { | |
return Number.isFinite(input) ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.number.finite", "Given value is not finite", input, "Number.isFinite(expected) to be true")); | |
} | |
}; | |
var numberNaN = { | |
run(input) { | |
return Number.isNaN(input) ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.number.equal(NaN)", "Invalid number value", input, "expected === NaN")); | |
} | |
}; | |
var numberNotNaN = { | |
run(input) { | |
return Number.isNaN(input) ? Result.err(new ExpectedConstraintError("s.number.notEqual(NaN)", "Invalid number value", input, "expected !== NaN")) : Result.ok(input); | |
} | |
}; | |
function numberDivisibleBy(divider) { | |
const expected = `expected % ${divider} === 0`; | |
return { | |
run(input) { | |
return input % divider === 0 ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.number.divisibleBy", "Number is not divisible", input, expected)); | |
} | |
}; | |
} | |
__name(numberDivisibleBy, "numberDivisibleBy"); | |
// src/validators/NumberValidator.ts | |
var _NumberValidator = class _NumberValidator extends BaseValidator { | |
lessThan(number) { | |
return this.addConstraint(numberLessThan(number)); | |
} | |
lessThanOrEqual(number) { | |
return this.addConstraint(numberLessThanOrEqual(number)); | |
} | |
greaterThan(number) { | |
return this.addConstraint(numberGreaterThan(number)); | |
} | |
greaterThanOrEqual(number) { | |
return this.addConstraint(numberGreaterThanOrEqual(number)); | |
} | |
equal(number) { | |
return Number.isNaN(number) ? this.addConstraint(numberNaN) : this.addConstraint(numberEqual(number)); | |
} | |
notEqual(number) { | |
return Number.isNaN(number) ? this.addConstraint(numberNotNaN) : this.addConstraint(numberNotEqual(number)); | |
} | |
get int() { | |
return this.addConstraint(numberInt); | |
} | |
get safeInt() { | |
return this.addConstraint(numberSafeInt); | |
} | |
get finite() { | |
return this.addConstraint(numberFinite); | |
} | |
get positive() { | |
return this.greaterThanOrEqual(0); | |
} | |
get negative() { | |
return this.lessThan(0); | |
} | |
divisibleBy(divider) { | |
return this.addConstraint(numberDivisibleBy(divider)); | |
} | |
get abs() { | |
return this.transform(Math.abs); | |
} | |
get sign() { | |
return this.transform(Math.sign); | |
} | |
get trunc() { | |
return this.transform(Math.trunc); | |
} | |
get floor() { | |
return this.transform(Math.floor); | |
} | |
get fround() { | |
return this.transform(Math.fround); | |
} | |
get round() { | |
return this.transform(Math.round); | |
} | |
get ceil() { | |
return this.transform(Math.ceil); | |
} | |
handle(value) { | |
return typeof value === "number" ? Result.ok(value) : Result.err(new ValidationError("s.number", "Expected a number primitive", value)); | |
} | |
}; | |
__name(_NumberValidator, "NumberValidator"); | |
var NumberValidator = _NumberValidator; | |
// src/lib/errors/MissingPropertyError.ts | |
var _MissingPropertyError = class _MissingPropertyError extends BaseError { | |
constructor(property) { | |
super("A required property is missing"); | |
this.property = property; | |
} | |
toJSON() { | |
return { | |
name: this.name, | |
property: this.property | |
}; | |
} | |
[customInspectSymbolStackLess](depth, options) { | |
const property = options.stylize(this.property.toString(), "string"); | |
if (depth < 0) { | |
return options.stylize(`[MissingPropertyError: ${property}]`, "special"); | |
} | |
const header = `${options.stylize("MissingPropertyError", "special")} > ${property}`; | |
const message = options.stylize(this.message, "regexp"); | |
return `${header} | |
${message}`; | |
} | |
}; | |
__name(_MissingPropertyError, "MissingPropertyError"); | |
var MissingPropertyError = _MissingPropertyError; | |
// src/lib/errors/UnknownPropertyError.ts | |
var _UnknownPropertyError = class _UnknownPropertyError extends BaseError { | |
constructor(property, value) { | |
super("Received unexpected property"); | |
this.property = property; | |
this.value = value; | |
} | |
toJSON() { | |
return { | |
name: this.name, | |
property: this.property, | |
value: this.value | |
}; | |
} | |
[customInspectSymbolStackLess](depth, options) { | |
const property = options.stylize(this.property.toString(), "string"); | |
if (depth < 0) { | |
return options.stylize(`[UnknownPropertyError: ${property}]`, "special"); | |
} | |
const newOptions = { ...options, depth: options.depth === null ? null : options.depth - 1, compact: true }; | |
const padding = ` | |
${options.stylize("|", "undefined")} `; | |
const given = inspect2(this.value, newOptions).replace(/\n/g, padding); | |
const header = `${options.stylize("UnknownPropertyError", "special")} > ${property}`; | |
const message = options.stylize(this.message, "regexp"); | |
const givenBlock = ` | |
${options.stylize("Received:", "regexp")}${padding}${given}`; | |
return `${header} | |
${message} | |
${givenBlock}`; | |
} | |
}; | |
__name(_UnknownPropertyError, "UnknownPropertyError"); | |
var UnknownPropertyError = _UnknownPropertyError; | |
// src/validators/DefaultValidator.ts | |
var _DefaultValidator = class _DefaultValidator extends BaseValidator { | |
constructor(validator, value, constraints = []) { | |
super(constraints); | |
this.validator = validator; | |
this.defaultValue = value; | |
} | |
default(value) { | |
const clone = this.clone(); | |
clone.defaultValue = value; | |
return clone; | |
} | |
handle(value) { | |
return typeof value === "undefined" ? Result.ok(getValue(this.defaultValue)) : this.validator["handle"](value); | |
} | |
clone() { | |
return Reflect.construct(this.constructor, [this.validator, this.defaultValue, this.constraints]); | |
} | |
}; | |
__name(_DefaultValidator, "DefaultValidator"); | |
var DefaultValidator = _DefaultValidator; | |
// src/lib/errors/CombinedError.ts | |
var _CombinedError = class _CombinedError extends BaseError { | |
constructor(errors) { | |
super("Received one or more errors"); | |
this.errors = errors; | |
} | |
[customInspectSymbolStackLess](depth, options) { | |
if (depth < 0) { | |
return options.stylize("[CombinedError]", "special"); | |
} | |
const newOptions = { ...options, depth: options.depth === null ? null : options.depth - 1, compact: true }; | |
const padding = ` | |
${options.stylize("|", "undefined")} `; | |
const header = `${options.stylize("CombinedError", "special")} (${options.stylize(this.errors.length.toString(), "number")})`; | |
const message = options.stylize(this.message, "regexp"); | |
const errors = this.errors.map((error, i3) => { | |
const index = options.stylize((i3 + 1).toString(), "number"); | |
const body = error[customInspectSymbolStackLess](depth - 1, newOptions).replace(/\n/g, padding); | |
return ` ${index} ${body}`; | |
}).join("\n\n"); | |
return `${header} | |
${message} | |
${errors}`; | |
} | |
}; | |
__name(_CombinedError, "CombinedError"); | |
var CombinedError = _CombinedError; | |
// src/validators/UnionValidator.ts | |
var _UnionValidator = class _UnionValidator extends BaseValidator { | |
constructor(validators, constraints = []) { | |
super(constraints); | |
this.validators = validators; | |
} | |
get optional() { | |
if (this.validators.length === 0) | |
return new _UnionValidator([new LiteralValidator(void 0)], this.constraints); | |
const [validator] = this.validators; | |
if (validator instanceof LiteralValidator) { | |
if (validator.expected === void 0) | |
return this.clone(); | |
if (validator.expected === null) { | |
return new _UnionValidator( | |
[new NullishValidator(), ...this.validators.slice(1)], | |
this.constraints | |
); | |
} | |
} else if (validator instanceof NullishValidator) { | |
return this.clone(); | |
} | |
return new _UnionValidator([new LiteralValidator(void 0), ...this.validators]); | |
} | |
get required() { | |
if (this.validators.length === 0) | |
return this.clone(); | |
const [validator] = this.validators; | |
if (validator instanceof LiteralValidator) { | |
if (validator.expected === void 0) | |
return new _UnionValidator(this.validators.slice(1), this.constraints); | |
} else if (validator instanceof NullishValidator) { | |
return new _UnionValidator([new LiteralValidator(null), ...this.validators.slice(1)], this.constraints); | |
} | |
return this.clone(); | |
} | |
get nullable() { | |
if (this.validators.length === 0) | |
return new _UnionValidator([new LiteralValidator(null)], this.constraints); | |
const [validator] = this.validators; | |
if (validator instanceof LiteralValidator) { | |
if (validator.expected === null) | |
return this.clone(); | |
if (validator.expected === void 0) { | |
return new _UnionValidator( | |
[new NullishValidator(), ...this.validators.slice(1)], | |
this.constraints | |
); | |
} | |
} else if (validator instanceof NullishValidator) { | |
return this.clone(); | |
} | |
return new _UnionValidator([new LiteralValidator(null), ...this.validators]); | |
} | |
get nullish() { | |
if (this.validators.length === 0) | |
return new _UnionValidator([new NullishValidator()], this.constraints); | |
const [validator] = this.validators; | |
if (validator instanceof LiteralValidator) { | |
if (validator.expected === null || validator.expected === void 0) { | |
return new _UnionValidator([new NullishValidator(), ...this.validators.slice(1)], this.constraints); | |
} | |
} else if (validator instanceof NullishValidator) { | |
return this.clone(); | |
} | |
return new _UnionValidator([new NullishValidator(), ...this.validators]); | |
} | |
or(...predicates) { | |
return new _UnionValidator([...this.validators, ...predicates]); | |
} | |
clone() { | |
return Reflect.construct(this.constructor, [this.validators, this.constraints]); | |
} | |
handle(value) { | |
const errors = []; | |
for (const validator of this.validators) { | |
const result = validator.run(value); | |
if (result.isOk()) | |
return result; | |
errors.push(result.error); | |
} | |
return Result.err(new CombinedError(errors)); | |
} | |
}; | |
__name(_UnionValidator, "UnionValidator"); | |
var UnionValidator = _UnionValidator; | |
// src/validators/ObjectValidator.ts | |
var _ObjectValidator = class _ObjectValidator extends BaseValidator { | |
constructor(shape, strategy = 0 /* Ignore */, constraints = []) { | |
super(constraints); | |
this.keys = []; | |
this.requiredKeys = /* @__PURE__ */ new Map(); | |
this.possiblyUndefinedKeys = /* @__PURE__ */ new Map(); | |
this.possiblyUndefinedKeysWithDefaults = /* @__PURE__ */ new Map(); | |
this.shape = shape; | |
this.strategy = strategy; | |
switch (this.strategy) { | |
case 0 /* Ignore */: | |
this.handleStrategy = (value) => this.handleIgnoreStrategy(value); | |
break; | |
case 1 /* Strict */: { | |
this.handleStrategy = (value) => this.handleStrictStrategy(value); | |
break; | |
} | |
case 2 /* Passthrough */: | |
this.handleStrategy = (value) => this.handlePassthroughStrategy(value); | |
break; | |
} | |
const shapeEntries = Object.entries(shape); | |
this.keys = shapeEntries.map(([key]) => key); | |
for (const [key, validator] of shapeEntries) { | |
if (validator instanceof UnionValidator) { | |
const [possiblyLiteralOrNullishPredicate] = validator["validators"]; | |
if (possiblyLiteralOrNullishPredicate instanceof NullishValidator) { | |
this.possiblyUndefinedKeys.set(key, validator); | |
} else if (possiblyLiteralOrNullishPredicate instanceof LiteralValidator) { | |
if (possiblyLiteralOrNullishPredicate.expected === void 0) { | |
this.possiblyUndefinedKeys.set(key, validator); | |
} else { | |
this.requiredKeys.set(key, validator); | |
} | |
} else if (validator instanceof DefaultValidator) { | |
this.possiblyUndefinedKeysWithDefaults.set(key, validator); | |
} else { | |
this.requiredKeys.set(key, validator); | |
} | |
} else if (validator instanceof NullishValidator) { | |
this.possiblyUndefinedKeys.set(key, validator); | |
} else if (validator instanceof LiteralValidator) { | |
if (validator.expected === void 0) { | |
this.possiblyUndefinedKeys.set(key, validator); | |
} else { | |
this.requiredKeys.set(key, validator); | |
} | |
} else if (validator instanceof DefaultValidator) { | |
this.possiblyUndefinedKeysWithDefaults.set(key, validator); | |
} else { | |
this.requiredKeys.set(key, validator); | |
} | |
} | |
} | |
get strict() { | |
return Reflect.construct(this.constructor, [this.shape, 1 /* Strict */, this.constraints]); | |
} | |
get ignore() { | |
return Reflect.construct(this.constructor, [this.shape, 0 /* Ignore */, this.constraints]); | |
} | |
get passthrough() { | |
return Reflect.construct(this.constructor, [this.shape, 2 /* Passthrough */, this.constraints]); | |
} | |
get partial() { | |
const shape = Object.fromEntries(this.keys.map((key) => [key, this.shape[key].optional])); | |
return Reflect.construct(this.constructor, [shape, this.strategy, this.constraints]); | |
} | |
get required() { | |
const shape = Object.fromEntries( | |
this.keys.map((key) => { | |
let validator = this.shape[key]; | |
if (validator instanceof UnionValidator) | |
validator = validator.required; | |
return [key, validator]; | |
}) | |
); | |
return Reflect.construct(this.constructor, [shape, this.strategy, this.constraints]); | |
} | |
extend(schema) { | |
const shape = { ...this.shape, ...schema instanceof _ObjectValidator ? schema.shape : schema }; | |
return Reflect.construct(this.constructor, [shape, this.strategy, this.constraints]); | |
} | |
pick(keys) { | |
const shape = Object.fromEntries( | |
keys.filter((key) => this.keys.includes(key)).map((key) => [key, this.shape[key]]) | |
); | |
return Reflect.construct(this.constructor, [shape, this.strategy, this.constraints]); | |
} | |
omit(keys) { | |
const shape = Object.fromEntries( | |
this.keys.filter((key) => !keys.includes(key)).map((key) => [key, this.shape[key]]) | |
); | |
return Reflect.construct(this.constructor, [shape, this.strategy, this.constraints]); | |
} | |
handle(value) { | |
const typeOfValue = typeof value; | |
if (typeOfValue !== "object") { | |
return Result.err(new ValidationError("s.object(T)", `Expected the value to be an object, but received ${typeOfValue} instead`, value)); | |
} | |
if (value === null) { | |
return Result.err(new ValidationError("s.object(T)", "Expected the value to not be null", value)); | |
} | |
if (Array.isArray(value)) { | |
return Result.err(new ValidationError("s.object(T)", "Expected the value to not be an array", value)); | |
} | |
if (!this.shouldRunConstraints) { | |
return Result.ok(value); | |
} | |
for (const predicate of Object.values(this.shape)) { | |
predicate.setParent(this.parent ?? value); | |
} | |
return this.handleStrategy(value); | |
} | |
clone() { | |
return Reflect.construct(this.constructor, [this.shape, this.strategy, this.constraints]); | |
} | |
handleIgnoreStrategy(value) { | |
const errors = []; | |
const finalObject = {}; | |
const inputEntries = new Map(Object.entries(value)); | |
const runPredicate = /* @__PURE__ */ __name((key, predicate) => { | |
const result = predicate.run(value[key]); | |
if (result.isOk()) { | |
finalObject[key] = result.value; | |
} else { | |
const error = result.error; | |
errors.push([key, error]); | |
} | |
}, "runPredicate"); | |
for (const [key, predicate] of this.requiredKeys) { | |
if (inputEntries.delete(key)) { | |
runPredicate(key, predicate); | |
} else { | |
errors.push([key, new MissingPropertyError(key)]); | |
} | |
} | |
for (const [key, validator] of this.possiblyUndefinedKeysWithDefaults) { | |
inputEntries.delete(key); | |
runPredicate(key, validator); | |
} | |
if (inputEntries.size === 0) { | |
return errors.length === 0 ? Result.ok(finalObject) : Result.err(new CombinedPropertyError(errors)); | |
} | |
const checkInputEntriesInsteadOfSchemaKeys = this.possiblyUndefinedKeys.size > inputEntries.size; | |
if (checkInputEntriesInsteadOfSchemaKeys) { | |
for (const [key] of inputEntries) { | |
const predicate = this.possiblyUndefinedKeys.get(key); | |
if (predicate) { | |
runPredicate(key, predicate); | |
} | |
} | |
} else { | |
for (const [key, predicate] of this.possiblyUndefinedKeys) { | |
if (inputEntries.delete(key)) { | |
runPredicate(key, predicate); | |
} | |
} | |
} | |
return errors.length === 0 ? Result.ok(finalObject) : Result.err(new CombinedPropertyError(errors)); | |
} | |
handleStrictStrategy(value) { | |
const errors = []; | |
const finalResult = {}; | |
const inputEntries = new Map(Object.entries(value)); | |
const runPredicate = /* @__PURE__ */ __name((key, predicate) => { | |
const result = predicate.run(value[key]); | |
if (result.isOk()) { | |
finalResult[key] = result.value; | |
} else { | |
const error = result.error; | |
errors.push([key, error]); | |
} | |
}, "runPredicate"); | |
for (const [key, predicate] of this.requiredKeys) { | |
if (inputEntries.delete(key)) { | |
runPredicate(key, predicate); | |
} else { | |
errors.push([key, new MissingPropertyError(key)]); | |
} | |
} | |
for (const [key, validator] of this.possiblyUndefinedKeysWithDefaults) { | |
inputEntries.delete(key); | |
runPredicate(key, validator); | |
} | |
for (const [key, predicate] of this.possiblyUndefinedKeys) { | |
if (inputEntries.size === 0) { | |
break; | |
} | |
if (inputEntries.delete(key)) { | |
runPredicate(key, predicate); | |
} | |
} | |
if (inputEntries.size !== 0) { | |
for (const [key, value2] of inputEntries.entries()) { | |
errors.push([key, new UnknownPropertyError(key, value2)]); | |
} | |
} | |
return errors.length === 0 ? Result.ok(finalResult) : Result.err(new CombinedPropertyError(errors)); | |
} | |
handlePassthroughStrategy(value) { | |
const result = this.handleIgnoreStrategy(value); | |
return result.isErr() ? result : Result.ok({ ...value, ...result.value }); | |
} | |
}; | |
__name(_ObjectValidator, "ObjectValidator"); | |
var ObjectValidator = _ObjectValidator; | |
// src/validators/PassthroughValidator.ts | |
var _PassthroughValidator = class _PassthroughValidator extends BaseValidator { | |
handle(value) { | |
return Result.ok(value); | |
} | |
}; | |
__name(_PassthroughValidator, "PassthroughValidator"); | |
var PassthroughValidator = _PassthroughValidator; | |
// src/validators/RecordValidator.ts | |
var _RecordValidator = class _RecordValidator extends BaseValidator { | |
constructor(validator, constraints = []) { | |
super(constraints); | |
this.validator = validator; | |
} | |
clone() { | |
return Reflect.construct(this.constructor, [this.validator, this.constraints]); | |
} | |
handle(value) { | |
if (typeof value !== "object") { | |
return Result.err(new ValidationError("s.record(T)", "Expected an object", value)); | |
} | |
if (value === null) { | |
return Result.err(new ValidationError("s.record(T)", "Expected the value to not be null", value)); | |
} | |
if (Array.isArray(value)) { | |
return Result.err(new ValidationError("s.record(T)", "Expected the value to not be an array", value)); | |
} | |
if (!this.shouldRunConstraints) { | |
return Result.ok(value); | |
} | |
const errors = []; | |
const transformed = {}; | |
for (const [key, val] of Object.entries(value)) { | |
const result = this.validator.run(val); | |
if (result.isOk()) | |
transformed[key] = result.value; | |
else | |
errors.push([key, result.error]); | |
} | |
return errors.length === 0 ? Result.ok(transformed) : Result.err(new CombinedPropertyError(errors)); | |
} | |
}; | |
__name(_RecordValidator, "RecordValidator"); | |
var RecordValidator = _RecordValidator; | |
// src/validators/SetValidator.ts | |
var _SetValidator = class _SetValidator extends BaseValidator { | |
constructor(validator, constraints = []) { | |
super(constraints); | |
this.validator = validator; | |
} | |
clone() { | |
return Reflect.construct(this.constructor, [this.validator, this.constraints]); | |
} | |
handle(values) { | |
if (!(values instanceof Set)) { | |
return Result.err(new ValidationError("s.set(T)", "Expected a set", values)); | |
} | |
if (!this.shouldRunConstraints) { | |
return Result.ok(values); | |
} | |
const errors = []; | |
const transformed = /* @__PURE__ */ new Set(); | |
for (const value of values) { | |
const result = this.validator.run(value); | |
if (result.isOk()) | |
transformed.add(result.value); | |
else | |
errors.push(result.error); | |
} | |
return errors.length === 0 ? Result.ok(transformed) : Result.err(new CombinedError(errors)); | |
} | |
}; | |
__name(_SetValidator, "SetValidator"); | |
var SetValidator = _SetValidator; | |
// src/constraints/util/emailValidator.ts | |
var accountRegex = /^(?!\.)(?!.*\.\.)([A-Z0-9_+-\.]*)[A-Z0-9_+-]$/i; | |
function validateEmail(email) { | |
if (!email) | |
return false; | |
const atIndex = email.indexOf("@"); | |
if (atIndex === -1) | |
return false; | |
if (atIndex > 64) | |
return false; | |
const domainIndex = atIndex + 1; | |
if (email.includes("@", domainIndex)) | |
return false; | |
if (email.length - domainIndex > 255) | |
return false; | |
let dotIndex = email.indexOf(".", domainIndex); | |
if (dotIndex === -1) | |
return false; | |
let lastDotIndex = domainIndex; | |
do { | |
if (dotIndex - lastDotIndex > 63) | |
return false; | |
lastDotIndex = dotIndex + 1; | |
} while ((dotIndex = email.indexOf(".", lastDotIndex)) !== -1); | |
if (email.length - lastDotIndex > 63) | |
return false; | |
return accountRegex.test(email.slice(0, atIndex)) && validateEmailDomain(email.slice(domainIndex)); | |
} | |
__name(validateEmail, "validateEmail"); | |
function validateEmailDomain(domain) { | |
try { | |
return new URL(`http://${domain}`).hostname === domain; | |
} catch { | |
return false; | |
} | |
} | |
__name(validateEmailDomain, "validateEmailDomain"); | |
// src/constraints/util/net.ts | |
var v4Seg = "(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])"; | |
var v4Str = `(${v4Seg}[.]){3}${v4Seg}`; | |
var IPv4Reg = new RegExp(`^${v4Str}$`); | |
var v6Seg = "(?:[0-9a-fA-F]{1,4})"; | |
var IPv6Reg = new RegExp( | |
`^((?:${v6Seg}:){7}(?:${v6Seg}|:)|(?:${v6Seg}:){6}(?:${v4Str}|:${v6Seg}|:)|(?:${v6Seg}:){5}(?::${v4Str}|(:${v6Seg}){1,2}|:)|(?:${v6Seg}:){4}(?:(:${v6Seg}){0,1}:${v4Str}|(:${v6Seg}){1,3}|:)|(?:${v6Seg}:){3}(?:(:${v6Seg}){0,2}:${v4Str}|(:${v6Seg}){1,4}|:)|(?:${v6Seg}:){2}(?:(:${v6Seg}){0,3}:${v4Str}|(:${v6Seg}){1,5}|:)|(?:${v6Seg}:){1}(?:(:${v6Seg}){0,4}:${v4Str}|(:${v6Seg}){1,6}|:)|(?::((?::${v6Seg}){0,5}:${v4Str}|(?::${v6Seg}){1,7}|:)))(%[0-9a-zA-Z-.:]{1,})?$` | |
); | |
function isIPv4(s4) { | |
return IPv4Reg.test(s4); | |
} | |
__name(isIPv4, "isIPv4"); | |
function isIPv6(s4) { | |
return IPv6Reg.test(s4); | |
} | |
__name(isIPv6, "isIPv6"); | |
function isIP(s4) { | |
if (isIPv4(s4)) | |
return 4; | |
if (isIPv6(s4)) | |
return 6; | |
return 0; | |
} | |
__name(isIP, "isIP"); | |
// src/constraints/util/phoneValidator.ts | |
var phoneNumberRegex = /^((?:\+|0{0,2})\d{1,2}\s?)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$/; | |
function validatePhoneNumber(input) { | |
return phoneNumberRegex.test(input); | |
} | |
__name(validatePhoneNumber, "validatePhoneNumber"); | |
// src/lib/errors/MultiplePossibilitiesConstraintError.ts | |
var _MultiplePossibilitiesConstraintError = class _MultiplePossibilitiesConstraintError 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(`[MultiplePossibilitiesConstraintError: ${constraint}]`, "special"); | |
} | |
const newOptions = { ...options, depth: options.depth === null ? null : options.depth - 1 }; | |
const verticalLine = options.stylize("|", "undefined"); | |
const padding = ` | |
${verticalLine} `; | |
const given = inspect2(this.given, newOptions).replace(/\n/g, padding); | |
const header = `${options.stylize("MultiplePossibilitiesConstraintError", "special")} > ${constraint}`; | |
const message = options.stylize(this.message, "regexp"); | |
const expectedPadding = ` | |
${verticalLine} - `; | |
const expectedBlock = ` | |
${options.stylize("Expected any of the following:", "string")}${expectedPadding}${this.expected.map((possible) => options.stylize(possible, "boolean")).join(expectedPadding)}`; | |
const givenBlock = ` | |
${options.stylize("Received:", "regexp")}${padding}${given}`; | |
return `${header} | |
${message} | |
${expectedBlock} | |
${givenBlock}`; | |
} | |
}; | |
__name(_MultiplePossibilitiesConstraintError, "MultiplePossibilitiesConstraintError"); | |
var MultiplePossibilitiesConstraintError = _MultiplePossibilitiesConstraintError; | |
// src/constraints/util/common/combinedResultFn.ts | |
function combinedErrorFn(...fns) { | |
switch (fns.length) { | |
case 0: | |
return () => null; | |
case 1: | |
return fns[0]; | |
case 2: { | |
const [fn0, fn1] = fns; | |
return (...params) => fn0(...params) || fn1(...params); | |
} | |
default: { | |
return (...params) => { | |
for (const fn of fns) { | |
const result = fn(...params); | |
if (result) | |
return result; | |
} | |
return null; | |
}; | |
} | |
} | |
} | |
__name(combinedErrorFn, "combinedErrorFn"); | |
// src/constraints/util/urlValidators.ts | |
function createUrlValidators(options) { | |
const fns = []; | |
if (options?.allowedProtocols?.length) | |
fns.push(allowedProtocolsFn(options.allowedProtocols)); | |
if (options?.allowedDomains?.length) | |
fns.push(allowedDomainsFn(options.allowedDomains)); | |
return combinedErrorFn(...fns); | |
} | |
__name(createUrlValidators, "createUrlValidators"); | |
function allowedProtocolsFn(allowedProtocols) { | |
return (input, url) => allowedProtocols.includes(url.protocol) ? null : new MultiplePossibilitiesConstraintError("s.string.url", "Invalid URL protocol", input, allowedProtocols); | |
} | |
__name(allowedProtocolsFn, "allowedProtocolsFn"); | |
function allowedDomainsFn(allowedDomains) { | |
return (input, url) => allowedDomains.includes(url.hostname) ? null : new MultiplePossibilitiesConstraintError("s.string.url", "Invalid URL domain", input, allowedDomains); | |
} | |
__name(allowedDomainsFn, "allowedDomainsFn"); | |
// src/constraints/StringConstraints.ts | |
function stringLengthComparator(comparator, name, expected, length) { | |
return { | |
run(input) { | |
return comparator(input.length, length) ? Result.ok(input) : Result.err(new ExpectedConstraintError(name, "Invalid string length", input, expected)); | |
} | |
}; | |
} | |
__name(stringLengthComparator, "stringLengthComparator"); | |
function stringLengthLessThan(length) { | |
const expected = `expected.length < ${length}`; | |
return stringLengthComparator(lessThan, "s.string.lengthLessThan", expected, length); | |
} | |
__name(stringLengthLessThan, "stringLengthLessThan"); | |
function stringLengthLessThanOrEqual(length) { | |
const expected = `expected.length <= ${length}`; | |
return stringLengthComparator(lessThanOrEqual, "s.string.lengthLessThanOrEqual", expected, length); | |
} | |
__name(stringLengthLessThanOrEqual, "stringLengthLessThanOrEqual"); | |
function stringLengthGreaterThan(length) { | |
const expected = `expected.length > ${length}`; | |
return stringLengthComparator(greaterThan, "s.string.lengthGreaterThan", expected, length); | |
} | |
__name(stringLengthGreaterThan, "stringLengthGreaterThan"); | |
function stringLengthGreaterThanOrEqual(length) { | |
const expected = `expected.length >= ${length}`; | |
return stringLengthComparator(greaterThanOrEqual, "s.string.lengthGreaterThanOrEqual", expected, length); | |
} | |
__name(stringLengthGreaterThanOrEqual, "stringLengthGreaterThanOrEqual"); | |
function stringLengthEqual(length) { | |
const expected = `expected.length === ${length}`; | |
return stringLengthComparator(equal, "s.string.lengthEqual", expected, length); | |
} | |
__name(stringLengthEqual, "stringLengthEqual"); | |
function stringLengthNotEqual(length) { | |
const expected = `expected.length !== ${length}`; | |
return stringLengthComparator(notEqual, "s.string.lengthNotEqual", expected, length); | |
} | |
__name(stringLengthNotEqual, "stringLengthNotEqual"); | |
function stringEmail() { | |
return { | |
run(input) { | |
return validateEmail(input) ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.string.email", "Invalid email address", input, "expected to be an email address")); | |
} | |
}; | |
} | |
__name(stringEmail, "stringEmail"); | |
function stringRegexValidator(type, expected, regex) { | |
return { | |
run(input) { | |
return regex.test(input) ? Result.ok(input) : Result.err(new ExpectedConstraintError(type, "Invalid string format", input, expected)); | |
} | |
}; | |
} | |
__name(stringRegexValidator, "stringRegexValidator"); | |
function stringUrl(options) { | |
const validatorFn = createUrlValidators(options); | |
return { | |
run(input) { | |
let url; | |
try { | |
url = new URL(input); | |
} catch { | |
return Result.err(new ExpectedConstraintError("s.string.url", "Invalid URL", input, "expected to match a URL")); | |
} | |
const validatorFnResult = validatorFn(input, url); | |
if (validatorFnResult === null) | |
return Result.ok(input); | |
return Result.err(validatorFnResult); | |
} | |
}; | |
} | |
__name(stringUrl, "stringUrl"); | |
function stringIp(version) { | |
const ipVersion = version ? `v${version}` : ""; | |
const validatorFn = version === 4 ? isIPv4 : version === 6 ? isIPv6 : isIP; | |
const name = `s.string.ip${ipVersion}`; | |
const message = `Invalid IP${ipVersion} address`; | |
const expected = `expected to be an IP${ipVersion} address`; | |
return { | |
run(input) { | |
return validatorFn(input) ? Result.ok(input) : Result.err(new ExpectedConstraintError(name, message, input, expected)); | |
} | |
}; | |
} | |
__name(stringIp, "stringIp"); | |
function stringRegex(regex) { | |
return stringRegexValidator("s.string.regex", `expected ${regex}.test(expected) to be true`, regex); | |
} | |
__name(stringRegex, "stringRegex"); | |
function stringUuid({ version = 4, nullable = false } = {}) { | |
version ?? (version = "1-5"); | |
const regex = new RegExp( | |
`^(?:[0-9A-F]{8}-[0-9A-F]{4}-[${version}][0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}${nullable ? "|00000000-0000-0000-0000-000000000000" : ""})$`, | |
"i" | |
); | |
const expected = `expected to match UUID${typeof version === "number" ? `v${version}` : ` in range of ${version}`}`; | |
return stringRegexValidator("s.string.uuid", expected, regex); | |
} | |
__name(stringUuid, "stringUuid"); | |
function stringDate() { | |
return { | |
run(input) { | |
const time = Date.parse(input); | |
return Number.isNaN(time) ? Result.err( | |
new ExpectedConstraintError( | |
"s.string.date", | |
"Invalid date string", | |
input, | |
"expected to be a valid date string (in the ISO 8601 or ECMA-262 format)" | |
) | |
) : Result.ok(input); | |
} | |
}; | |
} | |
__name(stringDate, "stringDate"); | |
function stringPhone() { | |
return { | |
run(input) { | |
return validatePhoneNumber(input) ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.string.phone", "Invalid phone number", input, "expected to be a phone number")); | |
} | |
}; | |
} | |
__name(stringPhone, "stringPhone"); | |
// src/validators/StringValidator.ts | |
var _StringValidator = class _StringValidator extends BaseValidator { | |
lengthLessThan(length) { | |
return this.addConstraint(stringLengthLessThan(length)); | |
} | |
lengthLessThanOrEqual(length) { | |
return this.addConstraint(stringLengthLessThanOrEqual(length)); | |
} | |
lengthGreaterThan(length) { | |
return this.addConstraint(stringLengthGreaterThan(length)); | |
} | |
lengthGreaterThanOrEqual(length) { | |
return this.addConstraint(stringLengthGreaterThanOrEqual(length)); | |
} | |
lengthEqual(length) { | |
return this.addConstraint(stringLengthEqual(length)); | |
} | |
lengthNotEqual(length) { | |
return this.addConstraint(stringLengthNotEqual(length)); | |
} | |
get email() { | |
return this.addConstraint(stringEmail()); | |
} | |
url(options) { | |
return this.addConstraint(stringUrl(options)); | |
} | |
uuid(options) { | |
return this.addConstraint(stringUuid(options)); | |
} | |
regex(regex) { | |
return this.addConstraint(stringRegex(regex)); | |
} | |
get date() { | |
return this.addConstraint(stringDate()); | |
} | |
get ipv4() { | |
return this.ip(4); | |
} | |
get ipv6() { | |
return this.ip(6); | |
} | |
ip(version) { | |
return this.addConstraint(stringIp(version)); | |
} | |
phone() { | |
return this.addConstraint(stringPhone()); | |
} | |
handle(value) { | |
return typeof value === "string" ? Result.ok(value) : Result.err(new ValidationError("s.string", "Expected a string primitive", value)); | |
} | |
}; | |
__name(_StringValidator, "StringValidator"); | |
var StringValidator = _StringValidator; | |
// src/validators/TupleValidator.ts | |
var _TupleValidator = class _TupleValidator extends BaseValidator { | |
constructor(validators, constraints = []) { | |
super(constraints); | |
this.validators = []; | |
this.validators = validators; | |
} | |
clone() { | |
return Reflect.construct(this.constructor, [this.validators, this.constraints]); | |
} | |
handle(values) { | |
if (!Array.isArray(values)) { | |
return Result.err(new ValidationError("s.tuple(T)", "Expected an array", values)); | |
} | |
if (values.length !== this.validators.length) { | |
return Result.err(new ValidationError("s.tuple(T)", `Expected an array of length ${this.validators.length}`, values)); | |
} | |
if (!this.shouldRunConstraints) { | |
return Result.ok(values); | |
} | |
const errors = []; | |
const transformed = []; | |
for (let i3 = 0; i3 < values.length; i3++) { | |
const result = this.validators[i3].run(values[i3]); | |
if (result.isOk()) | |
transformed.push(result.value); | |
else | |
errors.push([i3, result.error]); | |
} | |
return errors.length === 0 ? Result.ok(transformed) : Result.err(new CombinedPropertyError(errors)); | |
} | |
}; | |
__name(_TupleValidator, "TupleValidator"); | |
var TupleValidator = _TupleValidator; | |
// src/validators/MapValidator.ts | |
var _MapValidator = class _MapValidator extends BaseValidator { | |
constructor(keyValidator, valueValidator, constraints = []) { | |
super(constraints); | |
this.keyValidator = keyValidator; | |
this.valueValidator = valueValidator; | |
} | |
clone() { | |
return Reflect.construct(this.constructor, [this.keyValidator, this.valueValidator, this.constraints]); | |
} | |
handle(value) { | |
if (!(value instanceof Map)) { | |
return Result.err(new ValidationError("s.map(K, V)", "Expected a map", value)); | |
} | |
if (!this.shouldRunConstraints) { | |
return Result.ok(value); | |
} | |
const errors = []; | |
const transformed = /* @__PURE__ */ new Map(); | |
for (const [key, val] of value.entries()) { | |
const keyResult = this.keyValidator.run(key); | |
const valueResult = this.valueValidator.run(val); | |
const { length } = errors; | |
if (keyResult.isErr()) | |
errors.push([key, keyResult.error]); | |
if (valueResult.isErr()) | |
errors.push([key, valueResult.error]); | |
if (errors.length === length) | |
transformed.set(keyResult.value, valueResult.value); | |
} | |
return errors.length === 0 ? Result.ok(transformed) : Result.err(new CombinedPropertyError(errors)); | |
} | |
}; | |
__name(_MapValidator, "MapValidator"); | |
var MapValidator = _MapValidator; | |
// src/validators/LazyValidator.ts | |
var _LazyValidator = class _LazyValidator extends BaseValidator { | |
constructor(validator, constraints = []) { | |
super(constraints); | |
this.validator = validator; | |
} | |
clone() { | |
return Reflect.construct(this.constructor, [this.validator, this.constraints]); | |
} | |
handle(values) { | |
return this.validator(values).run(values); | |
} | |
}; | |
__name(_LazyValidator, "LazyValidator"); | |
var LazyValidator = _LazyValidator; | |
// src/lib/errors/UnknownEnumValueError.ts | |
var _UnknownEnumValueError = class _UnknownEnumValueError extends BaseError { | |
constructor(value, keys, enumMappings) { | |
super("Expected the value to be one of the following enum values:"); | |
this.value = value; | |
this.enumKeys = keys; | |
this.enumMappings = enumMappings; | |
} | |
toJSON() { | |
return { | |
name: this.name, | |
value: this.value, | |
enumKeys: this.enumKeys, | |
enumMappings: [...this.enumMappings.entries()] | |
}; | |
} | |
[customInspectSymbolStackLess](depth, options) { | |
const value = options.stylize(this.value.toString(), "string"); | |
if (depth < 0) { | |
return options.stylize(`[UnknownEnumValueError: ${value}]`, "special"); | |
} | |
const padding = ` | |
${options.stylize("|", "undefined")} `; | |
const pairs = this.enumKeys.map((key) => { | |
const enumValue = this.enumMappings.get(key); | |
return `${options.stylize(key, "string")} or ${options.stylize( | |
enumValue.toString(), | |
typeof enumValue === "number" ? "number" : "string" | |
)}`; | |
}).join(padding); | |
const header = `${options.stylize("UnknownEnumValueError", "special")} > ${value}`; | |
const message = options.stylize(this.message, "regexp"); | |
const pairsBlock = `${padding}${pairs}`; | |
return `${header} | |
${message} | |
${pairsBlock}`; | |
} | |
}; | |
__name(_UnknownEnumValueError, "UnknownEnumValueError"); | |
var UnknownEnumValueError = _UnknownEnumValueError; | |
// src/validators/NativeEnumValidator.ts | |
var _NativeEnumValidator = class _NativeEnumValidator extends BaseValidator { | |
constructor(enumShape) { | |
super(); | |
this.hasNumericElements = false; | |
this.enumMapping = /* @__PURE__ */ new Map(); | |
this.enumShape = enumShape; | |
this.enumKeys = Object.keys(enumShape).filter((key) => { | |
return typeof enumShape[enumShape[key]] !== "number"; | |
}); | |
for (const key of this.enumKeys) { | |
const enumValue = enumShape[key]; | |
this.enumMapping.set(key, enumValue); | |
this.enumMapping.set(enumValue, enumValue); | |
if (typeof enumValue === "number") { | |
this.hasNumericElements = true; | |
this.enumMapping.set(`${enumValue}`, enumValue); | |
} | |
} | |
} | |
handle(value) { | |
const typeOfValue = typeof value; | |
if (typeOfValue === "number") { | |
if (!this.hasNumericElements) { | |
return Result.err(new ValidationError("s.nativeEnum(T)", "Expected the value to be a string", value)); | |
} | |
} else if (typeOfValue !== "string") { | |
return Result.err(new ValidationError("s.nativeEnum(T)", "Expected the value to be a string or number", value)); | |
} | |
const casted = value; | |
const possibleEnumValue = this.enumMapping.get(casted); | |
return typeof possibleEnumValue === "undefined" ? Result.err(new UnknownEnumValueError(casted, this.enumKeys, this.enumMapping)) : Result.ok(possibleEnumValue); | |
} | |
clone() { | |
return Reflect.construct(this.constructor, [this.enumShape]); | |
} | |
}; | |
__name(_NativeEnumValidator, "NativeEnumValidator"); | |
var NativeEnumValidator = _NativeEnumValidator; | |
// src/constraints/TypedArrayLengthConstraints.ts | |
function typedArrayByteLengthComparator(comparator, name, expected, length) { | |
return { | |
run(input) { | |
return comparator(input.byteLength, length) ? Result.ok(input) : Result.err(new ExpectedConstraintError(name, "Invalid Typed Array byte length", input, expected)); | |
} | |
}; | |
} | |
__name(typedArrayByteLengthComparator, "typedArrayByteLengthComparator"); | |
function typedArrayByteLengthLessThan(value) { | |
const expected = `expected.byteLength < ${value}`; | |
return typedArrayByteLengthComparator(lessThan, "s.typedArray(T).byteLengthLessThan", expected, value); | |
} | |
__name(typedArrayByteLengthLessThan, "typedArrayByteLengthLessThan"); | |
function typedArrayByteLengthLessThanOrEqual(value) { | |
const expected = `expected.byteLength <= ${value}`; | |
return typedArrayByteLengthComparator(lessThanOrEqual, "s.typedArray(T).byteLengthLessThanOrEqual", expected, value); | |
} | |
__name(typedArrayByteLengthLessThanOrEqual, "typedArrayByteLengthLessThanOrEqual"); | |
function typedArrayByteLengthGreaterThan(value) { | |
const expected = `expected.byteLength > ${value}`; | |
return typedArrayByteLengthComparator(greaterThan, "s.typedArray(T).byteLengthGreaterThan", expected, value); | |
} | |
__name(typedArrayByteLengthGreaterThan, "typedArrayByteLengthGreaterThan"); | |
function typedArrayByteLengthGreaterThanOrEqual(value) { | |
const expected = `expected.byteLength >= ${value}`; | |
return typedArrayByteLengthComparator(greaterThanOrEqual, "s.typedArray(T).byteLengthGreaterThanOrEqual", expected, value); | |
} | |
__name(typedArrayByteLengthGreaterThanOrEqual, "typedArrayByteLengthGreaterThanOrEqual"); | |
function typedArrayByteLengthEqual(value) { | |
const expected = `expected.byteLength === ${value}`; | |
return typedArrayByteLengthComparator(equal, "s.typedArray(T).byteLengthEqual", expected, value); | |
} | |
__name(typedArrayByteLengthEqual, "typedArrayByteLengthEqual"); | |
function typedArrayByteLengthNotEqual(value) { | |
const expected = `expected.byteLength !== ${value}`; | |
return typedArrayByteLengthComparator(notEqual, "s.typedArray(T).byteLengthNotEqual", expected, value); | |
} | |
__name(typedArrayByteLengthNotEqual, "typedArrayByteLengthNotEqual"); | |
function typedArrayByteLengthRange(start, endBefore) { | |
const expected = `expected.byteLength >= ${start} && expected.byteLength < ${endBefore}`; | |
return { | |
run(input) { | |
return input.byteLength >= start && input.byteLength < endBefore ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.typedArray(T).byteLengthRange", "Invalid Typed Array byte length", input, expected)); | |
} | |
}; | |
} | |
__name(typedArrayByteLengthRange, "typedArrayByteLengthRange"); | |
function typedArrayByteLengthRangeInclusive(start, end) { | |
const expected = `expected.byteLength >= ${start} && expected.byteLength <= ${end}`; | |
return { | |
run(input) { | |
return input.byteLength >= start && input.byteLength <= end ? Result.ok(input) : Result.err( | |
new ExpectedConstraintError("s.typedArray(T).byteLengthRangeInclusive", "Invalid Typed Array byte length", input, expected) | |
); | |
} | |
}; | |
} | |
__name(typedArrayByteLengthRangeInclusive, "typedArrayByteLengthRangeInclusive"); | |
function typedArrayByteLengthRangeExclusive(startAfter, endBefore) { | |
const expected = `expected.byteLength > ${startAfter} && expected.byteLength < ${endBefore}`; | |
return { | |
run(input) { | |
return input.byteLength > startAfter && input.byteLength < endBefore ? Result.ok(input) : Result.err( | |
new ExpectedConstraintError("s.typedArray(T).byteLengthRangeExclusive", "Invalid Typed Array byte length", input, expected) | |
); | |
} | |
}; | |
} | |
__name(typedArrayByteLengthRangeExclusive, "typedArrayByteLengthRangeExclusive"); | |
function typedArrayLengthComparator(comparator, name, expected, length) { | |
return { | |
run(input) { | |
return comparator(input.length, length) ? Result.ok(input) : Result.err(new ExpectedConstraintError(name, "Invalid Typed Array length", input, expected)); | |
} | |
}; | |
} | |
__name(typedArrayLengthComparator, "typedArrayLengthComparator"); | |
function typedArrayLengthLessThan(value) { | |
const expected = `expected.length < ${value}`; | |
return typedArrayLengthComparator(lessThan, "s.typedArray(T).lengthLessThan", expected, value); | |
} | |
__name(typedArrayLengthLessThan, "typedArrayLengthLessThan"); | |
function typedArrayLengthLessThanOrEqual(value) { | |
const expected = `expected.length <= ${value}`; | |
return typedArrayLengthComparator(lessThanOrEqual, "s.typedArray(T).lengthLessThanOrEqual", expected, value); | |
} | |
__name(typedArrayLengthLessThanOrEqual, "typedArrayLengthLessThanOrEqual"); | |
function typedArrayLengthGreaterThan(value) { | |
const expected = `expected.length > ${value}`; | |
return typedArrayLengthComparator(greaterThan, "s.typedArray(T).lengthGreaterThan", expected, value); | |
} | |
__name(typedArrayLengthGreaterThan, "typedArrayLengthGreaterThan"); | |
function typedArrayLengthGreaterThanOrEqual(value) { | |
const expected = `expected.length >= ${value}`; | |
return typedArrayLengthComparator(greaterThanOrEqual, "s.typedArray(T).lengthGreaterThanOrEqual", expected, value); | |
} | |
__name(typedArrayLengthGreaterThanOrEqual, "typedArrayLengthGreaterThanOrEqual"); | |
function typedArrayLengthEqual(value) { | |
const expected = `expected.length === ${value}`; | |
return typedArrayLengthComparator(equal, "s.typedArray(T).lengthEqual", expected, value); | |
} | |
__name(typedArrayLengthEqual, "typedArrayLengthEqual"); | |
function typedArrayLengthNotEqual(value) { | |
const expected = `expected.length !== ${value}`; | |
return typedArrayLengthComparator(notEqual, "s.typedArray(T).lengthNotEqual", expected, value); | |
} | |
__name(typedArrayLengthNotEqual, "typedArrayLengthNotEqual"); | |
function typedArrayLengthRange(start, endBefore) { | |
const expected = `expected.length >= ${start} && expected.length < ${endBefore}`; | |
return { | |
run(input) { | |
return input.length >= start && input.length < endBefore ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.typedArray(T).lengthRange", "Invalid Typed Array length", input, expected)); | |
} | |
}; | |
} | |
__name(typedArrayLengthRange, "typedArrayLengthRange"); | |
function typedArrayLengthRangeInclusive(start, end) { | |
const expected = `expected.length >= ${start} && expected.length <= ${end}`; | |
return { | |
run(input) { | |
return input.length >= start && input.length <= end ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.typedArray(T).lengthRangeInclusive", "Invalid Typed Array length", input, expected)); | |
} | |
}; | |
} | |
__name(typedArrayLengthRangeInclusive, "typedArrayLengthRangeInclusive"); | |
function typedArrayLengthRangeExclusive(startAfter, endBefore) { | |
const expected = `expected.length > ${startAfter} && expected.length < ${endBefore}`; | |
return { | |
run(input) { | |
return input.length > startAfter && input.length < endBefore ? Result.ok(input) : Result.err(new ExpectedConstraintError("s.typedArray(T).lengthRangeExclusive", "Invalid Typed Array length", input, expected)); | |
} | |
}; | |
} | |
__name(typedArrayLengthRangeExclusive, "typedArrayLengthRangeExclusive"); | |
// src/constraints/util/common/vowels.ts | |
var vowels = ["a", "e", "i", "o", "u"]; | |
var aOrAn = /* @__PURE__ */ __name((word) => { | |
return `${vowels.includes(word[0].toLowerCase()) ? "an" : "a"} ${word}`; | |
}, "aOrAn"); | |
// src/constraints/util/typedArray.ts | |
var TypedArrays = { | |
Int8Array: (x2) => x2 instanceof Int8Array, | |
Uint8Array: (x2) => x2 instanceof Uint8Array, | |
Uint8ClampedArray: (x2) => x2 instanceof Uint8ClampedArray, | |
Int16Array: (x2) => x2 instanceof Int16Array, | |
Uint16Array: (x2) => x2 instanceof Uint16Array, | |
Int32Array: (x2) => x2 instanceof Int32Array, | |
Uint32Array: (x2) => x2 instanceof Uint32Array, | |
Float32Array: (x2) => x2 instanceof Float32Array, | |
Float64Array: (x2) => x2 instanceof Float64Array, | |
BigInt64Array: (x2) => x2 instanceof BigInt64Array, | |
BigUint64Array: (x2) => x2 instanceof BigUint64Array, | |
TypedArray: (x2) => ArrayBuffer.isView(x2) && !(x2 instanceof DataView) | |
}; | |
// src/validators/TypedArrayValidator.ts | |
var _TypedArrayValidator = class _TypedArrayValidator extends BaseValidator { | |
constructor(type, constraints = []) { | |
super(constraints); | |
this.type = type; | |
} | |
byteLengthLessThan(length) { | |
return this.addConstraint(typedArrayByteLengthLessThan(length)); | |
} | |
byteLengthLessThanOrEqual(length) { | |
return this.addConstraint(typedArrayByteLengthLessThanOrEqual(length)); | |
} | |
byteLengthGreaterThan(length) { | |
return this.addConstraint(typedArrayByteLengthGreaterThan(length)); | |
} | |
byteLengthGreaterThanOrEqual(length) { | |
return this.addConstraint(typedArrayByteLengthGreaterThanOrEqual(length)); | |
} | |
byteLengthEqual(length) { | |
return this.addConstraint(typedArrayByteLengthEqual(length)); | |
} | |
byteLengthNotEqual(length) { | |
return this.addConstraint(typedArrayByteLengthNotEqual(length)); | |
} | |
byteLengthRange(start, endBefore) { | |
return this.addConstraint(typedArrayByteLengthRange(start, endBefore)); | |
} | |
byteLengthRangeInclusive(startAt, endAt) { | |
return this.addConstraint(typedArrayByteLengthRangeInclusive(startAt, endAt)); | |
} | |
byteLengthRangeExclusive(startAfter, endBefore) { | |
return this.addConstraint(typedArrayByteLengthRangeExclusive(startAfter, endBefore)); | |
} | |
lengthLessThan(length) { | |
return this.addConstraint(typedArrayLengthLessThan(length)); | |
} | |
lengthLessThanOrEqual(length) { | |
return this.addConstraint(typedArrayLengthLessThanOrEqual(length)); | |
} | |
lengthGreaterThan(length) { | |
return this.addConstraint(typedArrayLengthGreaterThan(length)); | |
} | |
lengthGreaterThanOrEqual(length) { | |
return this.addConstraint(typedArrayLengthGreaterThanOrEqual(length)); | |
} | |
lengthEqual(length) { | |
return this.addConstraint(typedArrayLengthEqual(length)); | |
} | |
lengthNotEqual(length) { | |
return this.addConstraint(typedArrayLengthNotEqual(length)); | |
} | |
lengthRange(start, endBefore) { | |
return this.addConstraint(typedArrayLengthRange(start, endBefore)); | |
} | |
lengthRangeInclusive(startAt, endAt) { | |
return this.addConstraint(typedArrayLengthRangeInclusive(startAt, endAt)); | |
} | |
lengthRangeExclusive(startAfter, endBefore) { | |
return this.addConstraint(typedArrayLengthRangeExclusive(startAfter, endBefore)); | |
} | |
clone() { | |
return Reflect.construct(this.constructor, [this.type, this.constraints]); | |
} | |
handle(value) { | |
return TypedArrays[this.type](value) ? Result.ok(value) : Result.err(new ValidationError("s.typedArray", `Expected ${aOrAn(this.type)}`, value)); | |
} | |
}; | |
__name(_TypedArrayValidator, "TypedArrayValidator"); | |
var TypedArrayValidator = _TypedArrayValidator; | |
// src/lib/Shapes.ts | |
var _Shapes = class _Shapes { | |
get string() { | |
return new StringValidator(); | |
} | |
get number() { | |
return new NumberValidator(); | |
} | |
get bigint() { | |
return new BigIntValidator(); | |
} | |
get boolean() { | |
return new BooleanValidator(); | |
} | |
get date() { | |
return new DateValidator(); | |
} | |
object(shape) { | |
return new ObjectValidator(shape); | |
} | |
get undefined() { | |
return this.literal(void 0); | |
} | |
get null() { | |
return this.literal(null); | |
} | |
get nullish() { | |
return new NullishValidator(); | |
} | |
get any() { | |
return new PassthroughValidator(); | |
} | |
get unknown() { | |
return new PassthroughValidator(); | |
} | |
get never() { | |
return new NeverValidator(); | |
} | |
enum(...values) { | |
return this.union(...values.map((value) => this.literal(value))); | |
} | |
nativeEnum(enumShape) { | |
return new NativeEnumValidator(enumShape); | |
} | |
literal(value) { | |
if (value instanceof Date) | |
return this.date.equal(value); | |
return new LiteralValidator(value); | |
} | |
instance(expected) { | |
return new InstanceValidator(expected); | |
} | |
union(...validators) { | |
return new UnionValidator(validators); | |
} | |
array(validator) { | |
return new ArrayValidator(validator); | |
} | |
typedArray(type = "TypedArray") { | |
return new TypedArrayValidator(type); | |
} | |
get int8Array() { | |
return this.typedArray("Int8Array"); | |
} | |
get uint8Array() { | |
return this.typedArray("Uint8Array"); | |
} | |
get uint8ClampedArray() { | |
return this.typedArray("Uint8ClampedArray"); | |
} | |
get int16Array() { | |
return this.typedArray("Int16Array"); | |
} | |
get uint16Array() { | |
return this.typedArray("Uint16Array"); | |
} | |
get int32Array() { | |
return this.typedArray("Int32Array"); | |
} | |
get uint32Array() { | |
return this.typedArray("Uint32Array"); | |
} | |
get float32Array() { | |
return this.typedArray("Float32Array"); | |
} | |
get float64Array() { | |
return this.typedArray("Float64Array"); | |
} | |
get bigInt64Array() { | |
return this.typedArray("BigInt64Array"); | |
} | |
get bigUint64Array() { | |
return this.typedArray("BigUint64Array"); | |
} | |
tuple(validators) { | |
return new TupleValidator(validators); | |
} | |
set(validator) { | |
return new SetValidator(validator); | |
} | |
record(validator) { | |
return new RecordValidator(validator); | |
} | |
map(keyValidator, valueValidator) { | |
return new MapValidator(keyValidator, valueValidator); | |
} | |
lazy(validator) { | |
return new LazyValidator(validator); | |
} | |
}; | |
__name(_Shapes, "Shapes"); | |
var Shapes = _Shapes; | |
// src/index.ts | |
var s3 = new Shapes(); | |
/** | |
* @license MIT | |
* @copyright 2020 Colin McDonnell | |
* @see https://github.com/colinhacks/zod/blob/master/LICENSE | |
*/ | |
exports.BaseError = BaseError; | |
exports.CombinedError = CombinedError; | |
exports.CombinedPropertyError = CombinedPropertyError; | |
exports.ExpectedConstraintError = ExpectedConstraintError; | |
exports.ExpectedValidationError = ExpectedValidationError; | |
exports.MissingPropertyError = MissingPropertyError; | |
exports.MultiplePossibilitiesConstraintError = MultiplePossibilitiesConstraintError; | |
exports.Result = Result; | |
exports.UnknownEnumValueError = UnknownEnumValueError; | |
exports.UnknownPropertyError = UnknownPropertyError; | |
exports.ValidationError = ValidationError; | |
exports.customInspectSymbol = customInspectSymbol; | |
exports.customInspectSymbolStackLess = customInspectSymbolStackLess; | |
exports.getGlobalValidationEnabled = getGlobalValidationEnabled; | |
exports.s = s3; | |
exports.setGlobalValidationEnabled = setGlobalValidationEnabled; | |
return exports; | |
})({}); | |
//# sourceMappingURL=out.js.map | |
//# sourceMappingURL=index.global.js.map |