{"version":3,"sources":["jsdelivr-header.js","/npm/@valkyriestudios/validator@10.13.0/cjs/index.js"],"names":[],"mappings":"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","file":"/npm/@valkyriestudios/validator@10.13.0/cjs/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@valkyriestudios/validator@10.13.0/cjs/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n    o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n    var ownKeys = function(o) {\n        ownKeys = Object.getOwnPropertyNames || function (o) {\n            var ar = [];\n            for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n            return ar;\n        };\n        return ownKeys(o);\n    };\n    return function (mod) {\n        if (mod && mod.__esModule) return mod;\n        var result = {};\n        if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n        __setModuleDefault(result, mod);\n        return result;\n    };\n})();\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar _Validator_plan, _Validator_schema;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = exports.Validator = void 0;\nconst array_1 = require(\"@valkyriestudios/utils/array\");\nconst boolean_1 = require(\"@valkyriestudios/utils/boolean\");\nconst date_1 = require(\"@valkyriestudios/utils/date\");\nconst deep_1 = require(\"@valkyriestudios/utils/deep\");\nconst formdata_1 = require(\"@valkyriestudios/utils/formdata\");\nconst function_1 = require(\"@valkyriestudios/utils/function\");\nconst number_1 = require(\"@valkyriestudios/utils/number\");\nconst object_1 = require(\"@valkyriestudios/utils/object\");\nconst string_1 = require(\"@valkyriestudios/utils/string\");\nconst LRU_1 = __importDefault(require(\"@valkyriestudios/utils/caching/LRU\"));\nconst equal_1 = require(\"@valkyriestudios/utils/equal\");\nconst VR = __importStar(require(\"./functions/index\"));\nconst fnv1A_1 = __importDefault(require(\"@valkyriestudios/utils/hash/fnv1A\"));\nconst RULE_STORE = {\n    alpha_num_spaces: VR.vAlphaNumSpaces,\n    alpha_num_spaces_multiline: VR.vAlphaNumSpacesMultiline,\n    array: array_1.isArray,\n    array_ne: array_1.isNeArray,\n    base64: VR.vBase64,\n    between: VR.vBetween,\n    between_inc: VR.vBetweenInclusive,\n    blob: VR.vBlob,\n    boolean: boolean_1.isBoolean,\n    color_hex: VR.vColorHex,\n    continent: VR.vContinent,\n    country: VR.vCountry,\n    country_alpha3: VR.vCountryAlpha3,\n    cron: VR.vCron,\n    cuid: VR.vCuid,\n    cuid_2: VR.vCuid2,\n    date: date_1.isDate,\n    date_day: VR.vDateDay,\n    date_iso: VR.vDateISO,\n    date_string: VR.vDateString,\n    ean: VR.vEAN,\n    ean_8: VR.vEAN8,\n    ean_13: VR.vEAN13,\n    email: VR.vEmail,\n    equal_to: equal_1.equal,\n    false: VR.vFalse,\n    file: VR.vFile,\n    formdata: formdata_1.isFormData,\n    function: function_1.isFn,\n    async_function: function_1.isAsyncFn,\n    geo_latitude: VR.vGeoLatitude,\n    geo_longitude: VR.vGeoLongitude,\n    greater_than: VR.vGreaterThan,\n    greater_than_or_equal: VR.vGreaterThanOrEqual,\n    guid: VR.vGuid,\n    in: VR.vIn,\n    integer: number_1.isInt,\n    isbn: VR.vISBN,\n    isbn_10: VR.vISBN10,\n    isbn_13: VR.vISBN13,\n    jwt: VR.vJWT,\n    less_than: VR.vLessThan,\n    less_than_or_equal: VR.vLessThanOrEqual,\n    literal: VR.vLiteral,\n    max: VR.vLessThanOrEqual,\n    min: VR.vGreaterThanOrEqual,\n    null: VR.vNull,\n    number: number_1.isNum,\n    object: object_1.isObject,\n    object_ne: object_1.isNeObject,\n    phone: VR.vPhone,\n    size: VR.vSize,\n    ssn: VR.vSSN,\n    string: string_1.isString,\n    string_ne: string_1.isNeString,\n    sys_mac: VR.vSysMac,\n    sys_ipv4: VR.vSysIPv4,\n    sys_ipv6: VR.vSysIPv6,\n    sys_ipv4_or_v6: VR.vSysIPv4_or_v6,\n    sys_port: VR.vSysPort,\n    time_zone: VR.vTimeZone,\n    true: VR.vTrue,\n    ulid: VR.vUlid,\n    url: VR.vUrl,\n    url_noquery: VR.vUrlNoQuery,\n    url_img: VR.vUrlImage,\n    url_vid: VR.vUrlVideo,\n    url_aud: VR.vUrlAudio,\n    url_med: VR.vUrlMedia,\n    uuid: VR.vUuid,\n    uuid_v1: VR.vUuidV1,\n    uuid_v2: VR.vUuidV2,\n    uuid_v3: VR.vUuidV3,\n    uuid_v4: VR.vUuidV4,\n    uuid_v5: VR.vUuidV5,\n    uuid_v6: VR.vUuidV6,\n    uuid_v7: VR.vUuidV7,\n    uuid_v8: VR.vUuidV8,\n    gt: VR.vGreaterThan,\n    gte: VR.vGreaterThanOrEqual,\n    lt: VR.vLessThan,\n    lte: VR.vLessThanOrEqual,\n    eq: equal_1.equal,\n    '?': VR.vUndefined,\n};\nconst PARSE_CACHE = new LRU_1.default({ max_size: 500 });\nconst iterableDictHandler = (val) => {\n    if (!(0, object_1.isObject)(val))\n        return null;\n    const values = Object.values(val);\n    return { len: values.length, values };\n};\nconst iterableArrayHandler = (val) => {\n    if (!Array.isArray(val))\n        return null;\n    return { len: val.length, values: val };\n};\nfunction fastGet(data, path) {\n    switch (path.length) {\n        case 0:\n            return data;\n        case 1:\n            return data?.[path[0]];\n        case 2:\n            return data?.[path[0]]?.[path[1]];\n        case 3:\n            return data?.[path[0]]?.[path[1]]?.[path[2]];\n        default: {\n            let cursor = data;\n            for (let i = 0, len = path.length; i < len; i++) {\n                if (cursor === null || cursor === undefined)\n                    return undefined;\n                cursor = cursor[path[i]];\n            }\n            return cursor;\n        }\n    }\n}\nfunction getIterableConfig(val, dict) {\n    const max_ix = val.indexOf('max:');\n    const min_ix = val.indexOf('min:');\n    const len = val.length;\n    const rslt = {\n        unique: val.indexOf('unique') !== -1,\n        max: Number.MAX_SAFE_INTEGER,\n        min: -1,\n        handler: dict ? iterableDictHandler : iterableArrayHandler,\n    };\n    if (max_ix !== -1) {\n        const end_ix = val.indexOf('|', max_ix);\n        rslt.max = parseInt(val.slice(max_ix + 4, end_ix !== -1 ? end_ix : len), 10);\n    }\n    if (min_ix !== -1) {\n        const end_ix = val.indexOf('|', min_ix);\n        rslt.min = parseInt(val.slice(min_ix + 4, end_ix !== -1 ? end_ix : len), 10);\n    }\n    return rslt;\n}\nfunction parseRule(raw) {\n    const cached = PARSE_CACHE.get(raw);\n    if (cached)\n        return cached;\n    let iterable = false;\n    let pos = 0;\n    const len = raw.length;\n    if (len > 0 && (raw[0] === '[' || raw[0] === '{')) {\n        const closingChar = raw[0] === '[' ? ']' : '}';\n        let endPos = -1;\n        for (let i = 1; i < len; i++) {\n            if (raw[i] === closingChar) {\n                endPos = i;\n                break;\n            }\n        }\n        if (endPos === -1)\n            throw new TypeError(`Iterable misconfiguration, verify rule config for ${raw}`);\n        iterable = getIterableConfig(raw.slice(0, endPos), raw[0] !== '[');\n        pos = endPos + 1;\n    }\n    const list = [];\n    while (pos < len) {\n        const partStart = pos;\n        while (pos < len && raw[pos] !== '|')\n            pos++;\n        const part = raw.slice(partStart, pos);\n        let colonPos = -1;\n        for (let i = 0; i < part.length; i++) {\n            if (part[i] !== ':')\n                continue;\n            colonPos = i;\n            break;\n        }\n        let ruleType;\n        let not = false;\n        let params = [];\n        let is_dynamic = false;\n        if (colonPos === -1) {\n            ruleType = part;\n        }\n        else {\n            ruleType = part.slice(0, colonPos);\n        }\n        if (ruleType[0] === '!') {\n            not = true;\n            ruleType = ruleType.slice(1);\n        }\n        if (colonPos !== -1) {\n            const paramsPart = part.slice(colonPos + 1);\n            let pPos = 0;\n            const pLen = paramsPart.length;\n            while (pPos < pLen) {\n                const start = pPos;\n                while (pPos < pLen && paramsPart[pPos] !== ',')\n                    pPos++;\n                let token = paramsPart.slice(start, pPos);\n                let extract = false;\n                if (token.length > 1 && token[0] === '<' && token[token.length - 1] === '>') {\n                    token = token.slice(1, -1);\n                    if (!(0, string_1.isNeString)(token))\n                        throw new TypeError('Parameterization misconfiguration');\n                    extract = true;\n                    is_dynamic = true;\n                }\n                params.push([extract ? token.split('.') : token, extract]);\n                pPos++;\n            }\n            if (ruleType === 'in' && params.length > 1) {\n                params = [[paramsPart.split(','), false]];\n                is_dynamic = false;\n            }\n        }\n        const static_params = is_dynamic ? [] : params.map(p => p[0]);\n        const fn = RULE_STORE[ruleType] || null;\n        list.push({\n            type: ruleType,\n            fn,\n            not,\n            msg: (not ? 'not_' : '') + ruleType,\n            params,\n            static_params,\n            is_dynamic,\n            params_length: params.length,\n        });\n        pos++;\n    }\n    const rslt = {\n        nested: false,\n        iterable,\n        list,\n        list_length: list.length,\n    };\n    PARSE_CACHE.set(raw, rslt);\n    return rslt;\n}\nfunction constructParams(rule_el, data) {\n    const { params_length, params } = rule_el;\n    const acc = new Array(params_length);\n    for (let i = 0; i < params_length; i++) {\n        const p = params[i];\n        acc[i] = !p[1] ? p[0] : fastGet(data, p[0]);\n    }\n    return acc;\n}\nfunction validateField(cursor, rule, data, idx) {\n    const errors = [];\n    for (let i = 0; i < rule.list_length; i++) {\n        const rule_el = rule.list[i];\n        if (!rule_el.fn) {\n            errors.push({ msg: 'rule_not_found', params: [rule_el.type] });\n            continue;\n        }\n        const params = rule_el.is_dynamic ? constructParams(rule_el, data) : rule_el.static_params;\n        const is_valid = rule_el.fn(cursor, ...params) !== rule_el.not;\n        if (!is_valid) {\n            errors.push({ msg: rule_el.msg, params: params, ...idx !== undefined && { idx } });\n        }\n    }\n    return { errors, is_valid: errors.length === 0 };\n}\nfunction validatePlan(data, plan) {\n    const errors = {};\n    let count = 0;\n    mainLoop: for (let i = 0; i < plan.length; i++) {\n        const group = plan[i];\n        const { key, path, rules, sometimes } = group;\n        const cursor = fastGet(data, path);\n        if (cursor === undefined) {\n            if (!sometimes) {\n                count++;\n                errors[key] = [{ msg: 'not_found', params: [] }];\n            }\n            continue;\n        }\n        const group_errors = [];\n        for (let x = 0; x < rules.length; x++) {\n            const rule = rules[x];\n            let evaluation;\n            if (rule.nested) {\n                if (!(0, object_1.isObject)(cursor)) {\n                    evaluation = [{ msg: 'not_object', params: [] }];\n                }\n                else {\n                    const result = validatePlan(data, rule.plan);\n                    if (result.is_valid)\n                        continue mainLoop;\n                    evaluation = result.errors;\n                }\n            }\n            else if (!rule.iterable) {\n                const result = validateField(cursor, rule, data);\n                if (result.is_valid)\n                    continue mainLoop;\n                evaluation = result.errors;\n            }\n            else {\n                const iterable_data = rule.iterable.handler(cursor);\n                if (!iterable_data) {\n                    evaluation = [{ msg: 'iterable', params: [] }];\n                }\n                else {\n                    const { len, values } = iterable_data;\n                    const error_cursor = [];\n                    if (len < rule.iterable.min) {\n                        error_cursor.push({ msg: 'iterable_min', params: [rule.iterable.min] });\n                    }\n                    else if (len > rule.iterable.max) {\n                        error_cursor.push({ msg: 'iterable_max', params: [rule.iterable.max] });\n                    }\n                    else {\n                        let unique_set = rule.iterable.unique ? new Set() : false;\n                        for (let idx = 0; idx < len; idx++) {\n                            const cursor_value = values[idx];\n                            const eval_field = validateField(cursor_value, rule, data, idx);\n                            if (!eval_field.is_valid)\n                                error_cursor.push(...eval_field.errors);\n                            if (unique_set) {\n                                const hash = (0, fnv1A_1.default)(cursor_value);\n                                if (unique_set.has(hash)) {\n                                    unique_set = false;\n                                    error_cursor.unshift({ msg: 'iterable_unique', params: [] });\n                                }\n                                else {\n                                    unique_set.add(hash);\n                                }\n                            }\n                        }\n                    }\n                    if (error_cursor.length === 0)\n                        continue mainLoop;\n                    evaluation = error_cursor;\n                }\n            }\n            if (evaluation)\n                group_errors.push(evaluation);\n        }\n        const error = group_errors[0];\n        if ((0, array_1.isArray)(error)) {\n            if (group.rules.length > 1) {\n                const normalized = [];\n                for (let x = 0; x < group_errors.length; x++) {\n                    normalized.push(group_errors[x]);\n                }\n                errors[key] = normalized;\n            }\n            else {\n                errors[key] = error;\n            }\n            count++;\n        }\n        else {\n            Object.assign(errors, error);\n            count += Object.keys(error).length;\n        }\n    }\n    return { is_valid: count === 0, count, errors };\n}\nfunction checkRule(cursor, rule, data) {\n    const { iterable, list_length, list } = rule;\n    if (!iterable) {\n        for (let i = 0; i < list_length; i++) {\n            const rule_el = list[i];\n            const params = rule_el.is_dynamic ? constructParams(rule_el, data) : rule_el.static_params;\n            if (!rule_el.fn || rule_el.fn(cursor, ...params) === rule_el.not)\n                return false;\n        }\n        return true;\n    }\n    const iterable_data = iterable.handler(cursor);\n    if (!iterable_data)\n        return false;\n    const { len, values } = iterable_data;\n    if (len < iterable.min || len > iterable.max)\n        return false;\n    const unique_set = new Set();\n    const precomputed_params = new Array(list_length);\n    for (let i = 0; i < list_length; i++) {\n        const rule_el = list[i];\n        precomputed_params[i] = rule_el.is_dynamic ? constructParams(rule_el, data) : rule_el.static_params;\n    }\n    for (let idx = 0; idx < len; idx++) {\n        const cursor_value = values[idx];\n        for (let i = 0; i < list_length; i++) {\n            const rule_el = list[i];\n            if (!rule_el.fn || rule_el.fn(cursor_value, ...precomputed_params[i]) === rule_el.not)\n                return false;\n        }\n        if (iterable.unique) {\n            unique_set.add((0, fnv1A_1.default)(cursor_value));\n            if (unique_set.size !== (idx + 1))\n                return false;\n        }\n    }\n    return true;\n}\nfunction checkPlan(data, plan) {\n    mainloop: for (let i = 0; i < plan.length; i++) {\n        const { path, sometimes, rules } = plan[i];\n        const cursor = fastGet(data, path);\n        if (cursor === undefined) {\n            if (!sometimes)\n                return false;\n            continue;\n        }\n        for (let x = 0; x < rules.length; x++) {\n            const rule = rules[x];\n            if (!rule.nested) {\n                if (checkRule(cursor, rule, data))\n                    continue mainloop;\n            }\n            else if ((0, object_1.isObject)(cursor) && checkPlan(data, rule.plan)) {\n                continue mainloop;\n            }\n        }\n        return false;\n    }\n    return true;\n}\nfunction recursor(plan, val, key) {\n    if (!val)\n        throw new TypeError('Invalid rule value');\n    if ((0, string_1.isString)(val)) {\n        const sometimes = val[0] === '?';\n        plan.push({\n            key,\n            path: key ? key.split('.') : [],\n            sometimes,\n            rules: [parseRule(sometimes ? val.slice(1) : val)],\n        });\n    }\n    else if ((0, array_1.isArray)(val)) {\n        let sometimes = false;\n        const rules = [];\n        for (let i = 0, len = val.length; i < len; i++) {\n            const branch = val[i];\n            if (branch === '?') {\n                sometimes = true;\n            }\n            else if (branch) {\n                if ((0, string_1.isString)(branch)) {\n                    rules.push(parseRule(branch));\n                }\n                else if ((0, object_1.isObject)(branch)) {\n                    const nested_plan = [];\n                    recursor(nested_plan, branch, key);\n                    rules.push({ nested: true, plan: nested_plan });\n                }\n            }\n            else {\n                throw new TypeError('Invalid Conditional group alternative');\n            }\n        }\n        if (rules.length) {\n            plan.push({\n                key,\n                path: key ? key.split('.') : [],\n                sometimes,\n                rules,\n            });\n        }\n        else {\n            throw new TypeError('Invalid rule value');\n        }\n    }\n    else if ((0, object_1.isObject)(val)) {\n        for (const val_key in val) {\n            recursor(plan, val[val_key], key ? key + '.' + val_key : val_key);\n        }\n    }\n    else {\n        throw new TypeError('Invalid rule value');\n    }\n}\nfunction freezeStore(dict) {\n    const store = {};\n    for (const key in dict)\n        store[key] = dict[key];\n    return Object.freeze(store);\n}\nlet FROZEN_RULE_STORE = freezeStore(RULE_STORE);\nclass Validator {\n    constructor(schema) {\n        _Validator_plan.set(this, void 0);\n        _Validator_schema.set(this, void 0);\n        const raw = ((0, object_1.isObject)(schema)\n            ? [schema]\n            : (0, array_1.isArray)(schema)\n                ? schema\n                : []);\n        if (!raw.length)\n            throw new TypeError('Validator@ctor: Schema needs to be an object or array of objects');\n        const plans = [];\n        for (let i = 0; i < raw.length; i++) {\n            const plan = [];\n            recursor(plan, raw[i], '');\n            plans.push(plan);\n        }\n        if (plans.length > 1) {\n            __classPrivateFieldSet(this, _Validator_plan, { type: 'multi', plans: plans }, \"f\");\n            __classPrivateFieldSet(this, _Validator_schema, (0, deep_1.deepFreeze)(raw), \"f\");\n        }\n        else {\n            __classPrivateFieldSet(this, _Validator_plan, { type: 'single', plan: plans[0] }, \"f\");\n            __classPrivateFieldSet(this, _Validator_schema, (0, deep_1.deepFreeze)(raw[0]), \"f\");\n        }\n    }\n    get schema() {\n        return structuredClone(__classPrivateFieldGet(this, _Validator_schema, \"f\"));\n    }\n    check(raw) {\n        const data = raw instanceof FormData\n            ? (0, formdata_1.toObject)(raw)\n            : raw;\n        if (!(0, object_1.isObject)(data))\n            return false;\n        if (__classPrivateFieldGet(this, _Validator_plan, \"f\").type === 'multi') {\n            for (let i = 0; i < __classPrivateFieldGet(this, _Validator_plan, \"f\").plans.length; i++) {\n                const plan = __classPrivateFieldGet(this, _Validator_plan, \"f\").plans[i];\n                if (checkPlan(data, plan))\n                    return true;\n            }\n            return false;\n        }\n        else {\n            return checkPlan(data, __classPrivateFieldGet(this, _Validator_plan, \"f\").plan);\n        }\n    }\n    checkForm(raw) {\n        if (!(raw instanceof FormData))\n            return false;\n        const data = (0, formdata_1.toObject)(raw);\n        return this.check(data) ? data : false;\n    }\n    validate(raw) {\n        const data = raw instanceof FormData\n            ? (0, formdata_1.toObject)(raw)\n            : raw;\n        if (!(0, object_1.isObject)(data))\n            return { is_valid: false, errors: 'NO_DATA', count: 1 };\n        if (__classPrivateFieldGet(this, _Validator_plan, \"f\").type === 'multi') {\n            const results = [];\n            for (let i = 0; i < __classPrivateFieldGet(this, _Validator_plan, \"f\").plans.length; i++) {\n                const result = validatePlan(data, __classPrivateFieldGet(this, _Validator_plan, \"f\").plans[i]);\n                if (result.is_valid)\n                    return result;\n                results.push(result);\n            }\n            return results[0];\n        }\n        else {\n            return validatePlan(data, __classPrivateFieldGet(this, _Validator_plan, \"f\").plan);\n        }\n    }\n    static get rules() {\n        return FROZEN_RULE_STORE;\n    }\n    static extend(obj) {\n        PARSE_CACHE.clear();\n        if (!(0, object_1.isObject)(obj))\n            throw new Error('Invalid extension');\n        const schemas_map = {};\n        for (const [key, val] of Object.entries(obj)) {\n            if (typeof key !== 'string' || !/^[A-Za-z_0-9-]+$/.test(key))\n                throw new Error('Invalid extension');\n            if (val instanceof RegExp ||\n                ((0, array_1.isNeArray)(val) && val.filter(el => (0, string_1.isNeString)(el) || (0, number_1.isNum)(el)).length === val.length) ||\n                ((0, function_1.isFn)(val) && !(0, function_1.isAsyncFn)(val)))\n                continue;\n            if ((0, object_1.isNeObject)(val)) {\n                try {\n                    schemas_map[key] = new Validator(val);\n                    continue;\n                }\n                catch {\n                    throw new Error('Invalid extension');\n                }\n            }\n            throw new Error('Invalid extension');\n        }\n        for (const [key, value] of Object.entries(obj)) {\n            let builtValue;\n            if (value instanceof RegExp) {\n                builtValue = function (val) {\n                    return typeof val === 'string' && this.rgx.test(val);\n                };\n                builtValue.rgx = new RegExp(value);\n                builtValue = builtValue.bind(builtValue);\n            }\n            else if (Array.isArray(value)) {\n                builtValue = function (val) {\n                    return this.set.has(val);\n                };\n                builtValue.set = new Set([...value]);\n                builtValue = builtValue.bind(builtValue);\n            }\n            else if ((0, object_1.isObject)(value)) {\n                builtValue = function (val) {\n                    return this.v.check(val);\n                };\n                builtValue.v = schemas_map[key];\n                builtValue = builtValue.bind(builtValue);\n            }\n            else {\n                builtValue = value;\n            }\n            RULE_STORE[key] = builtValue;\n        }\n        FROZEN_RULE_STORE = freezeStore(RULE_STORE);\n        return this;\n    }\n    static create(schema) {\n        if ((0, array_1.isNeArray)(schema) && schema[0] instanceof Validator) {\n            const normalized = [];\n            for (let i = 0; i < schema.length; i++)\n                normalized.push(schema[i].schema);\n            return new Validator(normalized);\n        }\n        else {\n            return new Validator(schema);\n        }\n    }\n}\nexports.Validator = Validator;\nexports.default = Validator;\n_Validator_plan = new WeakMap(), _Validator_schema = new WeakMap();\n"]}