@wemake.cx/sequential-thinking 0.2.12 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +46 -119
- package/dist/index.js +386 -341
- package/dist/types/index.d.ts +81 -1
- package/package.json +10 -12
- package/dist/index.js.map +0 -70
package/dist/index.js.map
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../node_modules/.bun/uri-js@4.4.1/node_modules/uri-js/dist/es5/uri.all.js", "../../../node_modules/.bun/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js", "../../../node_modules/.bun/ajv@6.12.6/node_modules/ajv/lib/compile/ucs2length.js", "../../../node_modules/.bun/ajv@6.12.6/node_modules/ajv/lib/compile/util.js", "../../../node_modules/.bun/ajv@6.12.6/node_modules/ajv/lib/compile/schema_obj.js", "../../../node_modules/.bun/json-schema-traverse@0.4.1/node_modules/json-schema-traverse/index.js", "../../../node_modules/.bun/ajv@6.12.6/node_modules/ajv/lib/compile/resolve.js", "../../../node_modules/.bun/ajv@6.12.6/node_modules/ajv/lib/compile/error_classes.js", "../../../node_modules/.bun/fast-json-stable-stringify@2.1.0/node_modules/fast-json-stable-stringify/index.js", "../../../node_modules/.bun/ajv@6.12.6/node_modules/ajv/lib/dotjs/validate.js", "../../../node_modules/.bun/ajv@6.12.6/node_modules/ajv/lib/compile/index.js", "../../../node_modules/.bun/ajv@6.12.6/node_modules/ajv/lib/cache.js", "../../../node_modules/.bun/ajv@6.12.6/node_modules/ajv/lib/compile/formats.js", "../../../node_modules/.bun/ajv@6.12.6/node_modules/ajv/lib/dotjs/ref.js", "../../../node_modules/.bun/ajv@6.12.6/node_modules/ajv/lib/dotjs/allOf.js", "../../../node_modules/.bun/ajv@6.12.6/node_modules/ajv/lib/dotjs/anyOf.js", "../../../node_modules/.bun/ajv@6.12.6/node_modules/ajv/lib/dotjs/comment.js", "../../../node_modules/.bun/ajv@6.12.6/node_modules/ajv/lib/dotjs/const.js", "../../../node_modules/.bun/ajv@6.12.6/node_modules/ajv/lib/dotjs/contains.js", "../../../node_modules/.bun/ajv@6.12.6/node_modules/ajv/lib/dotjs/dependencies.js", "../../../node_modules/.bun/ajv@6.12.6/node_modules/ajv/lib/dotjs/enum.js", "../../../node_modules/.bun/ajv@6.12.6/node_modules/ajv/lib/dotjs/format.js", "../../../node_modules/.bun/ajv@6.12.6/node_modules/ajv/lib/dotjs/if.js", "../../../node_modules/.bun/ajv@6.12.6/node_modules/ajv/lib/dotjs/items.js", "../../../node_modules/.bun/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limit.js", "../../../node_modules/.bun/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limitItems.js", "../../../node_modules/.bun/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limitLength.js", "../../../node_modules/.bun/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limitProperties.js", "../../../node_modules/.bun/ajv@6.12.6/node_modules/ajv/lib/dotjs/multipleOf.js", "../../../node_modules/.bun/ajv@6.12.6/node_modules/ajv/lib/dotjs/not.js", "../../../node_modules/.bun/ajv@6.12.6/node_modules/ajv/lib/dotjs/oneOf.js", "../../../node_modules/.bun/ajv@6.12.6/node_modules/ajv/lib/dotjs/pattern.js", "../../../node_modules/.bun/ajv@6.12.6/node_modules/ajv/lib/dotjs/properties.js", "../../../node_modules/.bun/ajv@6.12.6/node_modules/ajv/lib/dotjs/propertyNames.js", "../../../node_modules/.bun/ajv@6.12.6/node_modules/ajv/lib/dotjs/required.js", "../../../node_modules/.bun/ajv@6.12.6/node_modules/ajv/lib/dotjs/uniqueItems.js", "../../../node_modules/.bun/ajv@6.12.6/node_modules/ajv/lib/dotjs/index.js", "../../../node_modules/.bun/ajv@6.12.6/node_modules/ajv/lib/compile/rules.js", "../../../node_modules/.bun/ajv@6.12.6/node_modules/ajv/lib/data.js", "../../../node_modules/.bun/ajv@6.12.6/node_modules/ajv/lib/compile/async.js", "../../../node_modules/.bun/ajv@6.12.6/node_modules/ajv/lib/dotjs/custom.js", "../../../node_modules/.bun/ajv@6.12.6/node_modules/ajv/lib/definition_schema.js", "../../../node_modules/.bun/ajv@6.12.6/node_modules/ajv/lib/keyword.js", "../../../node_modules/.bun/ajv@6.12.6/node_modules/ajv/lib/ajv.js", "../../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/helpers/util.js", "../../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/ZodError.js", "../../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/locales/en.js", "../../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/errors.js", "../../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/helpers/parseUtil.js", "../../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/helpers/errorUtil.js", "../../../node_modules/.bun/zod@3.25.76/node_modules/zod/v3/types.js", "../../../node_modules/.bun/@modelcontextprotocol+sdk@1.20.0/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js", "../../../node_modules/.bun/@modelcontextprotocol+sdk@1.20.0/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js", "../../../node_modules/.bun/@modelcontextprotocol+sdk@1.20.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js", "../../../node_modules/.bun/@modelcontextprotocol+sdk@1.20.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js", "../../../node_modules/.bun/@modelcontextprotocol+sdk@1.20.0/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js", "../../../node_modules/.bun/chalk@5.6.2/node_modules/chalk/source/vendor/ansi-styles/index.js", "../../../node_modules/.bun/chalk@5.6.2/node_modules/chalk/source/vendor/supports-color/index.js", "../../../node_modules/.bun/chalk@5.6.2/node_modules/chalk/source/utilities.js", "../../../node_modules/.bun/chalk@5.6.2/node_modules/chalk/source/index.js", "../src/index.ts"],
|
|
4
|
-
"sourcesContent": [
|
|
5
|
-
"/** @license URI.js v4.4.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t(factory((global.URI = global.URI || {})));\n}(this, (function (exports) { 'use strict';\n\nfunction merge() {\n for (var _len = arguments.length, sets = Array(_len), _key = 0; _key < _len; _key++) {\n sets[_key] = arguments[_key];\n }\n\n if (sets.length > 1) {\n sets[0] = sets[0].slice(0, -1);\n var xl = sets.length - 1;\n for (var x = 1; x < xl; ++x) {\n sets[x] = sets[x].slice(1, -1);\n }\n sets[xl] = sets[xl].slice(1);\n return sets.join('');\n } else {\n return sets[0];\n }\n}\nfunction subexp(str) {\n return \"(?:\" + str + \")\";\n}\nfunction typeOf(o) {\n return o === undefined ? \"undefined\" : o === null ? \"null\" : Object.prototype.toString.call(o).split(\" \").pop().split(\"]\").shift().toLowerCase();\n}\nfunction toUpperCase(str) {\n return str.toUpperCase();\n}\nfunction toArray(obj) {\n return obj !== undefined && obj !== null ? obj instanceof Array ? obj : typeof obj.length !== \"number\" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj) : [];\n}\nfunction assign(target, source) {\n var obj = target;\n if (source) {\n for (var key in source) {\n obj[key] = source[key];\n }\n }\n return obj;\n}\n\nfunction buildExps(isIRI) {\n var ALPHA$$ = \"[A-Za-z]\",\n CR$ = \"[\\\\x0D]\",\n DIGIT$$ = \"[0-9]\",\n DQUOTE$$ = \"[\\\\x22]\",\n HEXDIG$$ = merge(DIGIT$$, \"[A-Fa-f]\"),\n //case-insensitive\n LF$$ = \"[\\\\x0A]\",\n SP$$ = \"[\\\\x20]\",\n PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)),\n //expanded\n GEN_DELIMS$$ = \"[\\\\:\\\\/\\\\?\\\\#\\\\[\\\\]\\\\@]\",\n SUB_DELIMS$$ = \"[\\\\!\\\\$\\\\&\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\=]\",\n RESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$),\n UCSCHAR$$ = isIRI ? \"[\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF]\" : \"[]\",\n //subset, excludes bidi control characters\n IPRIVATE$$ = isIRI ? \"[\\\\uE000-\\\\uF8FF]\" : \"[]\",\n //subset\n UNRESERVED$$ = merge(ALPHA$$, DIGIT$$, \"[\\\\-\\\\.\\\\_\\\\~]\", UCSCHAR$$),\n SCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\") + \"*\"),\n USERINFO$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\")) + \"*\"),\n DEC_OCTET$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"[1-9]\" + DIGIT$$) + \"|\" + DIGIT$$),\n DEC_OCTET_RELAXED$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"0?[1-9]\" + DIGIT$$) + \"|0?0?\" + DIGIT$$),\n //relaxed parsing rules\n IPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$),\n H16$ = subexp(HEXDIG$$ + \"{1,4}\"),\n LS32$ = subexp(subexp(H16$ + \"\\\\:\" + H16$) + \"|\" + IPV4ADDRESS$),\n IPV6ADDRESS1$ = subexp(subexp(H16$ + \"\\\\:\") + \"{6}\" + LS32$),\n // 6( h16 \":\" ) ls32\n IPV6ADDRESS2$ = subexp(\"\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{5}\" + LS32$),\n // \"::\" 5( h16 \":\" ) ls32\n IPV6ADDRESS3$ = subexp(subexp(H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{4}\" + LS32$),\n //[ h16 ] \"::\" 4( h16 \":\" ) ls32\n IPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,1}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{3}\" + LS32$),\n //[ *1( h16 \":\" ) h16 ] \"::\" 3( h16 \":\" ) ls32\n IPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,2}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{2}\" + LS32$),\n //[ *2( h16 \":\" ) h16 ] \"::\" 2( h16 \":\" ) ls32\n IPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,3}\" + H16$) + \"?\\\\:\\\\:\" + H16$ + \"\\\\:\" + LS32$),\n //[ *3( h16 \":\" ) h16 ] \"::\" h16 \":\" ls32\n IPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,4}\" + H16$) + \"?\\\\:\\\\:\" + LS32$),\n //[ *4( h16 \":\" ) h16 ] \"::\" ls32\n IPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,5}\" + H16$) + \"?\\\\:\\\\:\" + H16$),\n //[ *5( h16 \":\" ) h16 ] \"::\" h16\n IPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,6}\" + H16$) + \"?\\\\:\\\\:\"),\n //[ *6( h16 \":\" ) h16 ] \"::\"\n IPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join(\"|\")),\n ZONEID$ = subexp(subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$) + \"+\"),\n //RFC 6874\n IPV6ADDRZ$ = subexp(IPV6ADDRESS$ + \"\\\\%25\" + ZONEID$),\n //RFC 6874\n IPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + ZONEID$),\n //RFC 6874, with relaxed parsing rules\n IPVFUTURE$ = subexp(\"[vV]\" + HEXDIG$$ + \"+\\\\.\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\") + \"+\"),\n IP_LITERAL$ = subexp(\"\\\\[\" + subexp(IPV6ADDRZ_RELAXED$ + \"|\" + IPV6ADDRESS$ + \"|\" + IPVFUTURE$) + \"\\\\]\"),\n //RFC 6874\n REG_NAME$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$)) + \"*\"),\n HOST$ = subexp(IP_LITERAL$ + \"|\" + IPV4ADDRESS$ + \"(?!\" + REG_NAME$ + \")\" + \"|\" + REG_NAME$),\n PORT$ = subexp(DIGIT$$ + \"*\"),\n AUTHORITY$ = subexp(subexp(USERINFO$ + \"@\") + \"?\" + HOST$ + subexp(\"\\\\:\" + PORT$) + \"?\"),\n PCHAR$ = subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@]\")),\n SEGMENT$ = subexp(PCHAR$ + \"*\"),\n SEGMENT_NZ$ = subexp(PCHAR$ + \"+\"),\n SEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\@]\")) + \"+\"),\n PATH_ABEMPTY$ = subexp(subexp(\"\\\\/\" + SEGMENT$) + \"*\"),\n PATH_ABSOLUTE$ = subexp(\"\\\\/\" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + \"?\"),\n //simplified\n PATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$),\n //simplified\n PATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$),\n //simplified\n PATH_EMPTY$ = \"(?!\" + PCHAR$ + \")\",\n PATH$ = subexp(PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n QUERY$ = subexp(subexp(PCHAR$ + \"|\" + merge(\"[\\\\/\\\\?]\", IPRIVATE$$)) + \"*\"),\n FRAGMENT$ = subexp(subexp(PCHAR$ + \"|[\\\\/\\\\?]\") + \"*\"),\n HIER_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n RELATIVE_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$),\n RELATIVE$ = subexp(RELATIVE_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n URI_REFERENCE$ = subexp(URI$ + \"|\" + RELATIVE$),\n ABSOLUTE_URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\"),\n GENERIC_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n RELATIVE_REF$ = \"^(){0}\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n ABSOLUTE_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?$\",\n SAMEDOC_REF$ = \"^\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n AUTHORITY_REF$ = \"^\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?$\";\n return {\n NOT_SCHEME: new RegExp(merge(\"[^]\", ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\"), \"g\"),\n NOT_USERINFO: new RegExp(merge(\"[^\\\\%\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n NOT_HOST: new RegExp(merge(\"[^\\\\%\\\\[\\\\]\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n NOT_PATH: new RegExp(merge(\"[^\\\\%\\\\/\\\\:\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n NOT_PATH_NOSCHEME: new RegExp(merge(\"[^\\\\%\\\\/\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n NOT_QUERY: new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\", IPRIVATE$$), \"g\"),\n NOT_FRAGMENT: new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\"), \"g\"),\n ESCAPE: new RegExp(merge(\"[^]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n UNRESERVED: new RegExp(UNRESERVED$$, \"g\"),\n OTHER_CHARS: new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, RESERVED$$), \"g\"),\n PCT_ENCODED: new RegExp(PCT_ENCODED$, \"g\"),\n IPV4ADDRESS: new RegExp(\"^(\" + IPV4ADDRESS$ + \")$\"),\n IPV6ADDRESS: new RegExp(\"^\\\\[?(\" + IPV6ADDRESS$ + \")\" + subexp(subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + \"(\" + ZONEID$ + \")\") + \"?\\\\]?$\") //RFC 6874, with relaxed parsing rules\n };\n}\nvar URI_PROTOCOL = buildExps(false);\n\nvar IRI_PROTOCOL = buildExps(true);\n\nvar slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar toConsumableArray = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n};\n\n/** Highest positive signed 32-bit float value */\n\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nvar regexPunycode = /^xn--/;\nvar regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nvar regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nvar errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nvar baseMinusTMin = base - tMin;\nvar floor = Math.floor;\nvar stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error$1(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n\tvar result = [];\n\tvar length = array.length;\n\twhile (length--) {\n\t\tresult[length] = fn(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n\tvar parts = string.split('@');\n\tvar result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tstring = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tstring = string.replace(regexSeparators, '\\x2E');\n\tvar labels = string.split('.');\n\tvar encoded = map(labels, fn).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tvar output = [];\n\tvar counter = 0;\n\tvar length = string.length;\n\twhile (counter < length) {\n\t\tvar value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tvar extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) {\n\t\t\t\t// Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nvar ucs2encode = function ucs2encode(array) {\n\treturn String.fromCodePoint.apply(String, toConsumableArray(array));\n};\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nvar basicToDigit = function basicToDigit(codePoint) {\n\tif (codePoint - 0x30 < 0x0A) {\n\t\treturn codePoint - 0x16;\n\t}\n\tif (codePoint - 0x41 < 0x1A) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint - 0x61 < 0x1A) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nvar digitToBasic = function digitToBasic(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nvar adapt = function adapt(delta, numPoints, firstTime) {\n\tvar k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (; /* no initialization */delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nvar decode = function decode(input) {\n\t// Don't use UCS-2.\n\tvar output = [];\n\tvar inputLength = input.length;\n\tvar i = 0;\n\tvar n = initialN;\n\tvar bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tvar basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (var j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror$1('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (var index = basic > 0 ? basic + 1 : 0; index < inputLength;) /* no final expression */{\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tvar oldi = i;\n\t\tfor (var w = 1, k = base;; /* no condition */k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror$1('invalid-input');\n\t\t\t}\n\n\t\t\tvar digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\terror$1('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tvar t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tvar baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror$1('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\t\t}\n\n\t\tvar out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror$1('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\t}\n\n\treturn String.fromCodePoint.apply(String, output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nvar encode = function encode(input) {\n\tvar output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tvar inputLength = input.length;\n\n\t// Initialize the state.\n\tvar n = initialN;\n\tvar delta = 0;\n\tvar bias = initialBias;\n\n\t// Handle the basic code points.\n\tvar _iteratorNormalCompletion = true;\n\tvar _didIteratorError = false;\n\tvar _iteratorError = undefined;\n\n\ttry {\n\t\tfor (var _iterator = input[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n\t\t\tvar _currentValue2 = _step.value;\n\n\t\t\tif (_currentValue2 < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(_currentValue2));\n\t\t\t}\n\t\t}\n\t} catch (err) {\n\t\t_didIteratorError = true;\n\t\t_iteratorError = err;\n\t} finally {\n\t\ttry {\n\t\t\tif (!_iteratorNormalCompletion && _iterator.return) {\n\t\t\t\t_iterator.return();\n\t\t\t}\n\t\t} finally {\n\t\t\tif (_didIteratorError) {\n\t\t\t\tthrow _iteratorError;\n\t\t\t}\n\t\t}\n\t}\n\n\tvar basicLength = output.length;\n\tvar handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tvar m = maxInt;\n\t\tvar _iteratorNormalCompletion2 = true;\n\t\tvar _didIteratorError2 = false;\n\t\tvar _iteratorError2 = undefined;\n\n\t\ttry {\n\t\t\tfor (var _iterator2 = input[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n\t\t\t\tvar currentValue = _step2.value;\n\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t\t// but guard against overflow.\n\t\t} catch (err) {\n\t\t\t_didIteratorError2 = true;\n\t\t\t_iteratorError2 = err;\n\t\t} finally {\n\t\t\ttry {\n\t\t\t\tif (!_iteratorNormalCompletion2 && _iterator2.return) {\n\t\t\t\t\t_iterator2.return();\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tif (_didIteratorError2) {\n\t\t\t\t\tthrow _iteratorError2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tvar handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror$1('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tvar _iteratorNormalCompletion3 = true;\n\t\tvar _didIteratorError3 = false;\n\t\tvar _iteratorError3 = undefined;\n\n\t\ttry {\n\t\t\tfor (var _iterator3 = input[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n\t\t\t\tvar _currentValue = _step3.value;\n\n\t\t\t\tif (_currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror$1('overflow');\n\t\t\t\t}\n\t\t\t\tif (_currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\t\tvar q = delta;\n\t\t\t\t\tfor (var k = base;; /* no condition */k += base) {\n\t\t\t\t\t\tvar t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar qMinusT = q - t;\n\t\t\t\t\t\tvar baseMinusT = base - t;\n\t\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)));\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (err) {\n\t\t\t_didIteratorError3 = true;\n\t\t\t_iteratorError3 = err;\n\t\t} finally {\n\t\t\ttry {\n\t\t\t\tif (!_iteratorNormalCompletion3 && _iterator3.return) {\n\t\t\t\t\t_iterator3.return();\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tif (_didIteratorError3) {\n\t\t\t\t\tthrow _iteratorError3;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nvar toUnicode = function toUnicode(input) {\n\treturn mapDomain(input, function (string) {\n\t\treturn regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nvar toASCII = function toASCII(input) {\n\treturn mapDomain(input, function (string) {\n\t\treturn regexNonASCII.test(string) ? 'xn--' + encode(string) : string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nvar punycode = {\n\t/**\n * A string representing the current Punycode.js version number.\n * @memberOf punycode\n * @type String\n */\n\t'version': '2.1.0',\n\t/**\n * An object of methods to convert from JavaScript's internal character\n * representation (UCS-2) to Unicode code points, and back.\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode\n * @type Object\n */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\n/**\n * URI.js\n *\n * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript.\n * @author <a href=\"mailto:gary.court@gmail.com\">Gary Court</a>\n * @see http://github.com/garycourt/uri-js\n */\n/**\n * Copyright 2011 Gary Court. All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification, are\n * permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this list of\n * conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice, this list\n * of conditions and the following disclaimer in the documentation and/or other materials\n * provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED\n * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR\n * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * The views and conclusions contained in the software and documentation are those of the\n * authors and should not be interpreted as representing official policies, either expressed\n * or implied, of Gary Court.\n */\nvar SCHEMES = {};\nfunction pctEncChar(chr) {\n var c = chr.charCodeAt(0);\n var e = void 0;\n if (c < 16) e = \"%0\" + c.toString(16).toUpperCase();else if (c < 128) e = \"%\" + c.toString(16).toUpperCase();else if (c < 2048) e = \"%\" + (c >> 6 | 192).toString(16).toUpperCase() + \"%\" + (c & 63 | 128).toString(16).toUpperCase();else e = \"%\" + (c >> 12 | 224).toString(16).toUpperCase() + \"%\" + (c >> 6 & 63 | 128).toString(16).toUpperCase() + \"%\" + (c & 63 | 128).toString(16).toUpperCase();\n return e;\n}\nfunction pctDecChars(str) {\n var newStr = \"\";\n var i = 0;\n var il = str.length;\n while (i < il) {\n var c = parseInt(str.substr(i + 1, 2), 16);\n if (c < 128) {\n newStr += String.fromCharCode(c);\n i += 3;\n } else if (c >= 194 && c < 224) {\n if (il - i >= 6) {\n var c2 = parseInt(str.substr(i + 4, 2), 16);\n newStr += String.fromCharCode((c & 31) << 6 | c2 & 63);\n } else {\n newStr += str.substr(i, 6);\n }\n i += 6;\n } else if (c >= 224) {\n if (il - i >= 9) {\n var _c = parseInt(str.substr(i + 4, 2), 16);\n var c3 = parseInt(str.substr(i + 7, 2), 16);\n newStr += String.fromCharCode((c & 15) << 12 | (_c & 63) << 6 | c3 & 63);\n } else {\n newStr += str.substr(i, 9);\n }\n i += 9;\n } else {\n newStr += str.substr(i, 3);\n i += 3;\n }\n }\n return newStr;\n}\nfunction _normalizeComponentEncoding(components, protocol) {\n function decodeUnreserved(str) {\n var decStr = pctDecChars(str);\n return !decStr.match(protocol.UNRESERVED) ? str : decStr;\n }\n if (components.scheme) components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, \"\");\n if (components.userinfo !== undefined) components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n if (components.host !== undefined) components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n if (components.path !== undefined) components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n if (components.query !== undefined) components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n if (components.fragment !== undefined) components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n return components;\n}\n\nfunction _stripLeadingZeros(str) {\n return str.replace(/^0*(.*)/, \"$1\") || \"0\";\n}\nfunction _normalizeIPv4(host, protocol) {\n var matches = host.match(protocol.IPV4ADDRESS) || [];\n\n var _matches = slicedToArray(matches, 2),\n address = _matches[1];\n\n if (address) {\n return address.split(\".\").map(_stripLeadingZeros).join(\".\");\n } else {\n return host;\n }\n}\nfunction _normalizeIPv6(host, protocol) {\n var matches = host.match(protocol.IPV6ADDRESS) || [];\n\n var _matches2 = slicedToArray(matches, 3),\n address = _matches2[1],\n zone = _matches2[2];\n\n if (address) {\n var _address$toLowerCase$ = address.toLowerCase().split('::').reverse(),\n _address$toLowerCase$2 = slicedToArray(_address$toLowerCase$, 2),\n last = _address$toLowerCase$2[0],\n first = _address$toLowerCase$2[1];\n\n var firstFields = first ? first.split(\":\").map(_stripLeadingZeros) : [];\n var lastFields = last.split(\":\").map(_stripLeadingZeros);\n var isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]);\n var fieldCount = isLastFieldIPv4Address ? 7 : 8;\n var lastFieldsStart = lastFields.length - fieldCount;\n var fields = Array(fieldCount);\n for (var x = 0; x < fieldCount; ++x) {\n fields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || '';\n }\n if (isLastFieldIPv4Address) {\n fields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol);\n }\n var allZeroFields = fields.reduce(function (acc, field, index) {\n if (!field || field === \"0\") {\n var lastLongest = acc[acc.length - 1];\n if (lastLongest && lastLongest.index + lastLongest.length === index) {\n lastLongest.length++;\n } else {\n acc.push({ index: index, length: 1 });\n }\n }\n return acc;\n }, []);\n var longestZeroFields = allZeroFields.sort(function (a, b) {\n return b.length - a.length;\n })[0];\n var newHost = void 0;\n if (longestZeroFields && longestZeroFields.length > 1) {\n var newFirst = fields.slice(0, longestZeroFields.index);\n var newLast = fields.slice(longestZeroFields.index + longestZeroFields.length);\n newHost = newFirst.join(\":\") + \"::\" + newLast.join(\":\");\n } else {\n newHost = fields.join(\":\");\n }\n if (zone) {\n newHost += \"%\" + zone;\n }\n return newHost;\n } else {\n return host;\n }\n}\nvar URI_PARSE = /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:([^\\/?#@]*)@)?(\\[[^\\/?#\\]]+\\]|[^\\/?#:]*)(?:\\:(\\d*))?))?([^?#]*)(?:\\?([^#]*))?(?:#((?:.|\\n|\\r)*))?/i;\nvar NO_MATCH_IS_UNDEFINED = \"\".match(/(){0}/)[1] === undefined;\nfunction parse(uriString) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var components = {};\n var protocol = options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL;\n if (options.reference === \"suffix\") uriString = (options.scheme ? options.scheme + \":\" : \"\") + \"//\" + uriString;\n var matches = uriString.match(URI_PARSE);\n if (matches) {\n if (NO_MATCH_IS_UNDEFINED) {\n //store each component\n components.scheme = matches[1];\n components.userinfo = matches[3];\n components.host = matches[4];\n components.port = parseInt(matches[5], 10);\n components.path = matches[6] || \"\";\n components.query = matches[7];\n components.fragment = matches[8];\n //fix port number\n if (isNaN(components.port)) {\n components.port = matches[5];\n }\n } else {\n //IE FIX for improper RegExp matching\n //store each component\n components.scheme = matches[1] || undefined;\n components.userinfo = uriString.indexOf(\"@\") !== -1 ? matches[3] : undefined;\n components.host = uriString.indexOf(\"//\") !== -1 ? matches[4] : undefined;\n components.port = parseInt(matches[5], 10);\n components.path = matches[6] || \"\";\n components.query = uriString.indexOf(\"?\") !== -1 ? matches[7] : undefined;\n components.fragment = uriString.indexOf(\"#\") !== -1 ? matches[8] : undefined;\n //fix port number\n if (isNaN(components.port)) {\n components.port = uriString.match(/\\/\\/(?:.|\\n)*\\:(?:\\/|\\?|\\#|$)/) ? matches[4] : undefined;\n }\n }\n if (components.host) {\n //normalize IP hosts\n components.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol);\n }\n //determine reference type\n if (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) {\n components.reference = \"same-document\";\n } else if (components.scheme === undefined) {\n components.reference = \"relative\";\n } else if (components.fragment === undefined) {\n components.reference = \"absolute\";\n } else {\n components.reference = \"uri\";\n }\n //check for reference errors\n if (options.reference && options.reference !== \"suffix\" && options.reference !== components.reference) {\n components.error = components.error || \"URI is not a \" + options.reference + \" reference.\";\n }\n //find scheme handler\n var schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n //check if scheme can't handle IRIs\n if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n //if host component is a domain name\n if (components.host && (options.domainHost || schemeHandler && schemeHandler.domainHost)) {\n //convert Unicode IDN -> ASCII IDN\n try {\n components.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase());\n } catch (e) {\n components.error = components.error || \"Host's domain name can not be converted to ASCII via punycode: \" + e;\n }\n }\n //convert IRI -> URI\n _normalizeComponentEncoding(components, URI_PROTOCOL);\n } else {\n //normalize encodings\n _normalizeComponentEncoding(components, protocol);\n }\n //perform scheme specific parsing\n if (schemeHandler && schemeHandler.parse) {\n schemeHandler.parse(components, options);\n }\n } else {\n components.error = components.error || \"URI can not be parsed.\";\n }\n return components;\n}\n\nfunction _recomposeAuthority(components, options) {\n var protocol = options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL;\n var uriTokens = [];\n if (components.userinfo !== undefined) {\n uriTokens.push(components.userinfo);\n uriTokens.push(\"@\");\n }\n if (components.host !== undefined) {\n //normalize IP hosts, add brackets and escape zone separator for IPv6\n uriTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, function (_, $1, $2) {\n return \"[\" + $1 + ($2 ? \"%25\" + $2 : \"\") + \"]\";\n }));\n }\n if (typeof components.port === \"number\" || typeof components.port === \"string\") {\n uriTokens.push(\":\");\n uriTokens.push(String(components.port));\n }\n return uriTokens.length ? uriTokens.join(\"\") : undefined;\n}\n\nvar RDS1 = /^\\.\\.?\\//;\nvar RDS2 = /^\\/\\.(\\/|$)/;\nvar RDS3 = /^\\/\\.\\.(\\/|$)/;\nvar RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/;\nfunction removeDotSegments(input) {\n var output = [];\n while (input.length) {\n if (input.match(RDS1)) {\n input = input.replace(RDS1, \"\");\n } else if (input.match(RDS2)) {\n input = input.replace(RDS2, \"/\");\n } else if (input.match(RDS3)) {\n input = input.replace(RDS3, \"/\");\n output.pop();\n } else if (input === \".\" || input === \"..\") {\n input = \"\";\n } else {\n var im = input.match(RDS5);\n if (im) {\n var s = im[0];\n input = input.slice(s.length);\n output.push(s);\n } else {\n throw new Error(\"Unexpected dot segment condition\");\n }\n }\n }\n return output.join(\"\");\n}\n\nfunction serialize(components) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var protocol = options.iri ? IRI_PROTOCOL : URI_PROTOCOL;\n var uriTokens = [];\n //find scheme handler\n var schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n //perform scheme specific serialization\n if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options);\n if (components.host) {\n //if host component is an IPv6 address\n if (protocol.IPV6ADDRESS.test(components.host)) {}\n //TODO: normalize IPv6 address as per RFC 5952\n\n //if host component is a domain name\n else if (options.domainHost || schemeHandler && schemeHandler.domainHost) {\n //convert IDN via punycode\n try {\n components.host = !options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host);\n } catch (e) {\n components.error = components.error || \"Host's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n }\n }\n }\n //normalize encoding\n _normalizeComponentEncoding(components, protocol);\n if (options.reference !== \"suffix\" && components.scheme) {\n uriTokens.push(components.scheme);\n uriTokens.push(\":\");\n }\n var authority = _recomposeAuthority(components, options);\n if (authority !== undefined) {\n if (options.reference !== \"suffix\") {\n uriTokens.push(\"//\");\n }\n uriTokens.push(authority);\n if (components.path && components.path.charAt(0) !== \"/\") {\n uriTokens.push(\"/\");\n }\n }\n if (components.path !== undefined) {\n var s = components.path;\n if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n s = removeDotSegments(s);\n }\n if (authority === undefined) {\n s = s.replace(/^\\/\\//, \"/%2F\"); //don't allow the path to start with \"//\"\n }\n uriTokens.push(s);\n }\n if (components.query !== undefined) {\n uriTokens.push(\"?\");\n uriTokens.push(components.query);\n }\n if (components.fragment !== undefined) {\n uriTokens.push(\"#\");\n uriTokens.push(components.fragment);\n }\n return uriTokens.join(\"\"); //merge tokens into a string\n}\n\nfunction resolveComponents(base, relative) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var skipNormalization = arguments[3];\n\n var target = {};\n if (!skipNormalization) {\n base = parse(serialize(base, options), options); //normalize base components\n relative = parse(serialize(relative, options), options); //normalize relative components\n }\n options = options || {};\n if (!options.tolerant && relative.scheme) {\n target.scheme = relative.scheme;\n //target.authority = relative.authority;\n target.userinfo = relative.userinfo;\n target.host = relative.host;\n target.port = relative.port;\n target.path = removeDotSegments(relative.path || \"\");\n target.query = relative.query;\n } else {\n if (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n //target.authority = relative.authority;\n target.userinfo = relative.userinfo;\n target.host = relative.host;\n target.port = relative.port;\n target.path = removeDotSegments(relative.path || \"\");\n target.query = relative.query;\n } else {\n if (!relative.path) {\n target.path = base.path;\n if (relative.query !== undefined) {\n target.query = relative.query;\n } else {\n target.query = base.query;\n }\n } else {\n if (relative.path.charAt(0) === \"/\") {\n target.path = removeDotSegments(relative.path);\n } else {\n if ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n target.path = \"/\" + relative.path;\n } else if (!base.path) {\n target.path = relative.path;\n } else {\n target.path = base.path.slice(0, base.path.lastIndexOf(\"/\") + 1) + relative.path;\n }\n target.path = removeDotSegments(target.path);\n }\n target.query = relative.query;\n }\n //target.authority = base.authority;\n target.userinfo = base.userinfo;\n target.host = base.host;\n target.port = base.port;\n }\n target.scheme = base.scheme;\n }\n target.fragment = relative.fragment;\n return target;\n}\n\nfunction resolve(baseURI, relativeURI, options) {\n var schemelessOptions = assign({ scheme: 'null' }, options);\n return serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions);\n}\n\nfunction normalize(uri, options) {\n if (typeof uri === \"string\") {\n uri = serialize(parse(uri, options), options);\n } else if (typeOf(uri) === \"object\") {\n uri = parse(serialize(uri, options), options);\n }\n return uri;\n}\n\nfunction equal(uriA, uriB, options) {\n if (typeof uriA === \"string\") {\n uriA = serialize(parse(uriA, options), options);\n } else if (typeOf(uriA) === \"object\") {\n uriA = serialize(uriA, options);\n }\n if (typeof uriB === \"string\") {\n uriB = serialize(parse(uriB, options), options);\n } else if (typeOf(uriB) === \"object\") {\n uriB = serialize(uriB, options);\n }\n return uriA === uriB;\n}\n\nfunction escapeComponent(str, options) {\n return str && str.toString().replace(!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE, pctEncChar);\n}\n\nfunction unescapeComponent(str, options) {\n return str && str.toString().replace(!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED, pctDecChars);\n}\n\nvar handler = {\n scheme: \"http\",\n domainHost: true,\n parse: function parse(components, options) {\n //report missing host\n if (!components.host) {\n components.error = components.error || \"HTTP URIs must have a host.\";\n }\n return components;\n },\n serialize: function serialize(components, options) {\n var secure = String(components.scheme).toLowerCase() === \"https\";\n //normalize the default port\n if (components.port === (secure ? 443 : 80) || components.port === \"\") {\n components.port = undefined;\n }\n //normalize the empty path\n if (!components.path) {\n components.path = \"/\";\n }\n //NOTE: We do not parse query strings for HTTP URIs\n //as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n //and not the HTTP spec.\n return components;\n }\n};\n\nvar handler$1 = {\n scheme: \"https\",\n domainHost: handler.domainHost,\n parse: handler.parse,\n serialize: handler.serialize\n};\n\nfunction isSecure(wsComponents) {\n return typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === \"wss\";\n}\n//RFC 6455\nvar handler$2 = {\n scheme: \"ws\",\n domainHost: true,\n parse: function parse(components, options) {\n var wsComponents = components;\n //indicate if the secure flag is set\n wsComponents.secure = isSecure(wsComponents);\n //construct resouce name\n wsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '');\n wsComponents.path = undefined;\n wsComponents.query = undefined;\n return wsComponents;\n },\n serialize: function serialize(wsComponents, options) {\n //normalize the default port\n if (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === \"\") {\n wsComponents.port = undefined;\n }\n //ensure scheme matches secure flag\n if (typeof wsComponents.secure === 'boolean') {\n wsComponents.scheme = wsComponents.secure ? 'wss' : 'ws';\n wsComponents.secure = undefined;\n }\n //reconstruct path from resource name\n if (wsComponents.resourceName) {\n var _wsComponents$resourc = wsComponents.resourceName.split('?'),\n _wsComponents$resourc2 = slicedToArray(_wsComponents$resourc, 2),\n path = _wsComponents$resourc2[0],\n query = _wsComponents$resourc2[1];\n\n wsComponents.path = path && path !== '/' ? path : undefined;\n wsComponents.query = query;\n wsComponents.resourceName = undefined;\n }\n //forbid fragment component\n wsComponents.fragment = undefined;\n return wsComponents;\n }\n};\n\nvar handler$3 = {\n scheme: \"wss\",\n domainHost: handler$2.domainHost,\n parse: handler$2.parse,\n serialize: handler$2.serialize\n};\n\nvar O = {};\nvar isIRI = true;\n//RFC 3986\nvar UNRESERVED$$ = \"[A-Za-z0-9\\\\-\\\\.\\\\_\\\\~\" + (isIRI ? \"\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF\" : \"\") + \"]\";\nvar HEXDIG$$ = \"[0-9A-Fa-f]\"; //case-insensitive\nvar PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)); //expanded\n//RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; =\n//const ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\#\\\\$\\\\%\\\\&\\\\'\\\\*\\\\+\\\\-\\\\/\\\\=\\\\?\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QTEXT$$ = \"[\\\\x01-\\\\x08\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x7F]\"; //(%d1-8 / %d11-12 / %d14-31 / %d127)\n//const QTEXT$$ = merge(\"[\\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7E]\", OBS_QTEXT$$); //%d33 / %d35-91 / %d93-126 / obs-qtext\n//const VCHAR$$ = \"[\\\\x21-\\\\x7E]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QP$ = subexp(\"\\\\\\\\\" + merge(\"[\\\\x00\\\\x0D\\\\x0A]\", OBS_QTEXT$$)); //%d0 / CR / LF / obs-qtext\n//const FWS$ = subexp(subexp(WSP$$ + \"*\" + \"\\\\x0D\\\\x0A\") + \"?\" + WSP$$ + \"+\");\n//const QUOTED_PAIR$ = subexp(subexp(\"\\\\\\\\\" + subexp(VCHAR$$ + \"|\" + WSP$$)) + \"|\" + OBS_QP$);\n//const QUOTED_STRING$ = subexp('\\\\\"' + subexp(FWS$ + \"?\" + QCONTENT$) + \"*\" + FWS$ + \"?\" + '\\\\\"');\nvar ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\$\\\\%\\\\'\\\\*\\\\+\\\\-\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\nvar QTEXT$$ = \"[\\\\!\\\\$\\\\%\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\-\\\\.0-9\\\\<\\\\>A-Z\\\\x5E-\\\\x7E]\";\nvar VCHAR$$ = merge(QTEXT$$, \"[\\\\\\\"\\\\\\\\]\");\nvar SOME_DELIMS$$ = \"[\\\\!\\\\$\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\:\\\\@]\";\nvar UNRESERVED = new RegExp(UNRESERVED$$, \"g\");\nvar PCT_ENCODED = new RegExp(PCT_ENCODED$, \"g\");\nvar NOT_LOCAL_PART = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", '[\\\\\"]', VCHAR$$), \"g\");\nvar NOT_HFNAME = new RegExp(merge(\"[^]\", UNRESERVED$$, SOME_DELIMS$$), \"g\");\nvar NOT_HFVALUE = NOT_HFNAME;\nfunction decodeUnreserved(str) {\n var decStr = pctDecChars(str);\n return !decStr.match(UNRESERVED) ? str : decStr;\n}\nvar handler$4 = {\n scheme: \"mailto\",\n parse: function parse$$1(components, options) {\n var mailtoComponents = components;\n var to = mailtoComponents.to = mailtoComponents.path ? mailtoComponents.path.split(\",\") : [];\n mailtoComponents.path = undefined;\n if (mailtoComponents.query) {\n var unknownHeaders = false;\n var headers = {};\n var hfields = mailtoComponents.query.split(\"&\");\n for (var x = 0, xl = hfields.length; x < xl; ++x) {\n var hfield = hfields[x].split(\"=\");\n switch (hfield[0]) {\n case \"to\":\n var toAddrs = hfield[1].split(\",\");\n for (var _x = 0, _xl = toAddrs.length; _x < _xl; ++_x) {\n to.push(toAddrs[_x]);\n }\n break;\n case \"subject\":\n mailtoComponents.subject = unescapeComponent(hfield[1], options);\n break;\n case \"body\":\n mailtoComponents.body = unescapeComponent(hfield[1], options);\n break;\n default:\n unknownHeaders = true;\n headers[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options);\n break;\n }\n }\n if (unknownHeaders) mailtoComponents.headers = headers;\n }\n mailtoComponents.query = undefined;\n for (var _x2 = 0, _xl2 = to.length; _x2 < _xl2; ++_x2) {\n var addr = to[_x2].split(\"@\");\n addr[0] = unescapeComponent(addr[0]);\n if (!options.unicodeSupport) {\n //convert Unicode IDN -> ASCII IDN\n try {\n addr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase());\n } catch (e) {\n mailtoComponents.error = mailtoComponents.error || \"Email address's domain name can not be converted to ASCII via punycode: \" + e;\n }\n } else {\n addr[1] = unescapeComponent(addr[1], options).toLowerCase();\n }\n to[_x2] = addr.join(\"@\");\n }\n return mailtoComponents;\n },\n serialize: function serialize$$1(mailtoComponents, options) {\n var components = mailtoComponents;\n var to = toArray(mailtoComponents.to);\n if (to) {\n for (var x = 0, xl = to.length; x < xl; ++x) {\n var toAddr = String(to[x]);\n var atIdx = toAddr.lastIndexOf(\"@\");\n var localPart = toAddr.slice(0, atIdx).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar);\n var domain = toAddr.slice(atIdx + 1);\n //convert IDN via punycode\n try {\n domain = !options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain);\n } catch (e) {\n components.error = components.error || \"Email address's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n }\n to[x] = localPart + \"@\" + domain;\n }\n components.path = to.join(\",\");\n }\n var headers = mailtoComponents.headers = mailtoComponents.headers || {};\n if (mailtoComponents.subject) headers[\"subject\"] = mailtoComponents.subject;\n if (mailtoComponents.body) headers[\"body\"] = mailtoComponents.body;\n var fields = [];\n for (var name in headers) {\n if (headers[name] !== O[name]) {\n fields.push(name.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) + \"=\" + headers[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar));\n }\n }\n if (fields.length) {\n components.query = fields.join(\"&\");\n }\n return components;\n }\n};\n\nvar URN_PARSE = /^([^\\:]+)\\:(.*)/;\n//RFC 2141\nvar handler$5 = {\n scheme: \"urn\",\n parse: function parse$$1(components, options) {\n var matches = components.path && components.path.match(URN_PARSE);\n var urnComponents = components;\n if (matches) {\n var scheme = options.scheme || urnComponents.scheme || \"urn\";\n var nid = matches[1].toLowerCase();\n var nss = matches[2];\n var urnScheme = scheme + \":\" + (options.nid || nid);\n var schemeHandler = SCHEMES[urnScheme];\n urnComponents.nid = nid;\n urnComponents.nss = nss;\n urnComponents.path = undefined;\n if (schemeHandler) {\n urnComponents = schemeHandler.parse(urnComponents, options);\n }\n } else {\n urnComponents.error = urnComponents.error || \"URN can not be parsed.\";\n }\n return urnComponents;\n },\n serialize: function serialize$$1(urnComponents, options) {\n var scheme = options.scheme || urnComponents.scheme || \"urn\";\n var nid = urnComponents.nid;\n var urnScheme = scheme + \":\" + (options.nid || nid);\n var schemeHandler = SCHEMES[urnScheme];\n if (schemeHandler) {\n urnComponents = schemeHandler.serialize(urnComponents, options);\n }\n var uriComponents = urnComponents;\n var nss = urnComponents.nss;\n uriComponents.path = (nid || options.nid) + \":\" + nss;\n return uriComponents;\n }\n};\n\nvar UUID = /^[0-9A-Fa-f]{8}(?:\\-[0-9A-Fa-f]{4}){3}\\-[0-9A-Fa-f]{12}$/;\n//RFC 4122\nvar handler$6 = {\n scheme: \"urn:uuid\",\n parse: function parse(urnComponents, options) {\n var uuidComponents = urnComponents;\n uuidComponents.uuid = uuidComponents.nss;\n uuidComponents.nss = undefined;\n if (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {\n uuidComponents.error = uuidComponents.error || \"UUID is not valid.\";\n }\n return uuidComponents;\n },\n serialize: function serialize(uuidComponents, options) {\n var urnComponents = uuidComponents;\n //normalize UUID\n urnComponents.nss = (uuidComponents.uuid || \"\").toLowerCase();\n return urnComponents;\n }\n};\n\nSCHEMES[handler.scheme] = handler;\nSCHEMES[handler$1.scheme] = handler$1;\nSCHEMES[handler$2.scheme] = handler$2;\nSCHEMES[handler$3.scheme] = handler$3;\nSCHEMES[handler$4.scheme] = handler$4;\nSCHEMES[handler$5.scheme] = handler$5;\nSCHEMES[handler$6.scheme] = handler$6;\n\nexports.SCHEMES = SCHEMES;\nexports.pctEncChar = pctEncChar;\nexports.pctDecChars = pctDecChars;\nexports.parse = parse;\nexports.removeDotSegments = removeDotSegments;\nexports.serialize = serialize;\nexports.resolveComponents = resolveComponents;\nexports.resolve = resolve;\nexports.normalize = normalize;\nexports.equal = equal;\nexports.escapeComponent = escapeComponent;\nexports.unescapeComponent = unescapeComponent;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=uri.all.js.map\n",
|
|
6
|
-
"'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n",
|
|
7
|
-
"'use strict';\n\n// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nmodule.exports = function ucs2length(str) {\n var length = 0\n , len = str.length\n , pos = 0\n , value;\n while (pos < len) {\n length++;\n value = str.charCodeAt(pos++);\n if (value >= 0xD800 && value <= 0xDBFF && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos);\n if ((value & 0xFC00) == 0xDC00) pos++; // low surrogate\n }\n }\n return length;\n};\n",
|
|
8
|
-
"'use strict';\n\n\nmodule.exports = {\n copy: copy,\n checkDataType: checkDataType,\n checkDataTypes: checkDataTypes,\n coerceToTypes: coerceToTypes,\n toHash: toHash,\n getProperty: getProperty,\n escapeQuotes: escapeQuotes,\n equal: require('fast-deep-equal'),\n ucs2length: require('./ucs2length'),\n varOccurences: varOccurences,\n varReplace: varReplace,\n schemaHasRules: schemaHasRules,\n schemaHasRulesExcept: schemaHasRulesExcept,\n schemaUnknownRules: schemaUnknownRules,\n toQuotedString: toQuotedString,\n getPathExpr: getPathExpr,\n getPath: getPath,\n getData: getData,\n unescapeFragment: unescapeFragment,\n unescapeJsonPointer: unescapeJsonPointer,\n escapeFragment: escapeFragment,\n escapeJsonPointer: escapeJsonPointer\n};\n\n\nfunction copy(o, to) {\n to = to || {};\n for (var key in o) to[key] = o[key];\n return to;\n}\n\n\nfunction checkDataType(dataType, data, strictNumbers, negate) {\n var EQUAL = negate ? ' !== ' : ' === '\n , AND = negate ? ' || ' : ' && '\n , OK = negate ? '!' : ''\n , NOT = negate ? '' : '!';\n switch (dataType) {\n case 'null': return data + EQUAL + 'null';\n case 'array': return OK + 'Array.isArray(' + data + ')';\n case 'object': return '(' + OK + data + AND +\n 'typeof ' + data + EQUAL + '\"object\"' + AND +\n NOT + 'Array.isArray(' + data + '))';\n case 'integer': return '(typeof ' + data + EQUAL + '\"number\"' + AND +\n NOT + '(' + data + ' % 1)' +\n AND + data + EQUAL + data +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n case 'number': return '(typeof ' + data + EQUAL + '\"' + dataType + '\"' +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n default: return 'typeof ' + data + EQUAL + '\"' + dataType + '\"';\n }\n}\n\n\nfunction checkDataTypes(dataTypes, data, strictNumbers) {\n switch (dataTypes.length) {\n case 1: return checkDataType(dataTypes[0], data, strictNumbers, true);\n default:\n var code = '';\n var types = toHash(dataTypes);\n if (types.array && types.object) {\n code = types.null ? '(': '(!' + data + ' || ';\n code += 'typeof ' + data + ' !== \"object\")';\n delete types.null;\n delete types.array;\n delete types.object;\n }\n if (types.number) delete types.integer;\n for (var t in types)\n code += (code ? ' && ' : '' ) + checkDataType(t, data, strictNumbers, true);\n\n return code;\n }\n}\n\n\nvar COERCE_TO_TYPES = toHash([ 'string', 'number', 'integer', 'boolean', 'null' ]);\nfunction coerceToTypes(optionCoerceTypes, dataTypes) {\n if (Array.isArray(dataTypes)) {\n var types = [];\n for (var i=0; i<dataTypes.length; i++) {\n var t = dataTypes[i];\n if (COERCE_TO_TYPES[t]) types[types.length] = t;\n else if (optionCoerceTypes === 'array' && t === 'array') types[types.length] = t;\n }\n if (types.length) return types;\n } else if (COERCE_TO_TYPES[dataTypes]) {\n return [dataTypes];\n } else if (optionCoerceTypes === 'array' && dataTypes === 'array') {\n return ['array'];\n }\n}\n\n\nfunction toHash(arr) {\n var hash = {};\n for (var i=0; i<arr.length; i++) hash[arr[i]] = true;\n return hash;\n}\n\n\nvar IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;\nvar SINGLE_QUOTE = /'|\\\\/g;\nfunction getProperty(key) {\n return typeof key == 'number'\n ? '[' + key + ']'\n : IDENTIFIER.test(key)\n ? '.' + key\n : \"['\" + escapeQuotes(key) + \"']\";\n}\n\n\nfunction escapeQuotes(str) {\n return str.replace(SINGLE_QUOTE, '\\\\$&')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\r/g, '\\\\r')\n .replace(/\\f/g, '\\\\f')\n .replace(/\\t/g, '\\\\t');\n}\n\n\nfunction varOccurences(str, dataVar) {\n dataVar += '[^0-9]';\n var matches = str.match(new RegExp(dataVar, 'g'));\n return matches ? matches.length : 0;\n}\n\n\nfunction varReplace(str, dataVar, expr) {\n dataVar += '([^0-9])';\n expr = expr.replace(/\\$/g, '$$$$');\n return str.replace(new RegExp(dataVar, 'g'), expr + '$1');\n}\n\n\nfunction schemaHasRules(schema, rules) {\n if (typeof schema == 'boolean') return !schema;\n for (var key in schema) if (rules[key]) return true;\n}\n\n\nfunction schemaHasRulesExcept(schema, rules, exceptKeyword) {\n if (typeof schema == 'boolean') return !schema && exceptKeyword != 'not';\n for (var key in schema) if (key != exceptKeyword && rules[key]) return true;\n}\n\n\nfunction schemaUnknownRules(schema, rules) {\n if (typeof schema == 'boolean') return;\n for (var key in schema) if (!rules[key]) return key;\n}\n\n\nfunction toQuotedString(str) {\n return '\\'' + escapeQuotes(str) + '\\'';\n}\n\n\nfunction getPathExpr(currentPath, expr, jsonPointers, isNumber) {\n var path = jsonPointers // false by default\n ? '\\'/\\' + ' + expr + (isNumber ? '' : '.replace(/~/g, \\'~0\\').replace(/\\\\//g, \\'~1\\')')\n : (isNumber ? '\\'[\\' + ' + expr + ' + \\']\\'' : '\\'[\\\\\\'\\' + ' + expr + ' + \\'\\\\\\']\\'');\n return joinPaths(currentPath, path);\n}\n\n\nfunction getPath(currentPath, prop, jsonPointers) {\n var path = jsonPointers // false by default\n ? toQuotedString('/' + escapeJsonPointer(prop))\n : toQuotedString(getProperty(prop));\n return joinPaths(currentPath, path);\n}\n\n\nvar JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/;\nvar RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/;\nfunction getData($data, lvl, paths) {\n var up, jsonPointer, data, matches;\n if ($data === '') return 'rootData';\n if ($data[0] == '/') {\n if (!JSON_POINTER.test($data)) throw new Error('Invalid JSON-pointer: ' + $data);\n jsonPointer = $data;\n data = 'rootData';\n } else {\n matches = $data.match(RELATIVE_JSON_POINTER);\n if (!matches) throw new Error('Invalid JSON-pointer: ' + $data);\n up = +matches[1];\n jsonPointer = matches[2];\n if (jsonPointer == '#') {\n if (up >= lvl) throw new Error('Cannot access property/index ' + up + ' levels up, current level is ' + lvl);\n return paths[lvl - up];\n }\n\n if (up > lvl) throw new Error('Cannot access data ' + up + ' levels up, current level is ' + lvl);\n data = 'data' + ((lvl - up) || '');\n if (!jsonPointer) return data;\n }\n\n var expr = data;\n var segments = jsonPointer.split('/');\n for (var i=0; i<segments.length; i++) {\n var segment = segments[i];\n if (segment) {\n data += getProperty(unescapeJsonPointer(segment));\n expr += ' && ' + data;\n }\n }\n return expr;\n}\n\n\nfunction joinPaths (a, b) {\n if (a == '\"\"') return b;\n return (a + ' + ' + b).replace(/([^\\\\])' \\+ '/g, '$1');\n}\n\n\nfunction unescapeFragment(str) {\n return unescapeJsonPointer(decodeURIComponent(str));\n}\n\n\nfunction escapeFragment(str) {\n return encodeURIComponent(escapeJsonPointer(str));\n}\n\n\nfunction escapeJsonPointer(str) {\n return str.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n\n\nfunction unescapeJsonPointer(str) {\n return str.replace(/~1/g, '/').replace(/~0/g, '~');\n}\n",
|
|
9
|
-
"'use strict';\n\nvar util = require('./util');\n\nmodule.exports = SchemaObject;\n\nfunction SchemaObject(obj) {\n util.copy(obj, this);\n}\n",
|
|
10
|
-
"'use strict';\n\nvar traverse = module.exports = function (schema, opts, cb) {\n // Legacy support for v0.3.1 and earlier.\n if (typeof opts == 'function') {\n cb = opts;\n opts = {};\n }\n\n cb = opts.cb || cb;\n var pre = (typeof cb == 'function') ? cb : cb.pre || function() {};\n var post = cb.post || function() {};\n\n _traverse(opts, pre, post, schema, '', schema);\n};\n\n\ntraverse.keywords = {\n additionalItems: true,\n items: true,\n contains: true,\n additionalProperties: true,\n propertyNames: true,\n not: true\n};\n\ntraverse.arrayKeywords = {\n items: true,\n allOf: true,\n anyOf: true,\n oneOf: true\n};\n\ntraverse.propsKeywords = {\n definitions: true,\n properties: true,\n patternProperties: true,\n dependencies: true\n};\n\ntraverse.skipKeywords = {\n default: true,\n enum: true,\n const: true,\n required: true,\n maximum: true,\n minimum: true,\n exclusiveMaximum: true,\n exclusiveMinimum: true,\n multipleOf: true,\n maxLength: true,\n minLength: true,\n pattern: true,\n format: true,\n maxItems: true,\n minItems: true,\n uniqueItems: true,\n maxProperties: true,\n minProperties: true\n};\n\n\nfunction _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (schema && typeof schema == 'object' && !Array.isArray(schema)) {\n pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n for (var key in schema) {\n var sch = schema[key];\n if (Array.isArray(sch)) {\n if (key in traverse.arrayKeywords) {\n for (var i=0; i<sch.length; i++)\n _traverse(opts, pre, post, sch[i], jsonPtr + '/' + key + '/' + i, rootSchema, jsonPtr, key, schema, i);\n }\n } else if (key in traverse.propsKeywords) {\n if (sch && typeof sch == 'object') {\n for (var prop in sch)\n _traverse(opts, pre, post, sch[prop], jsonPtr + '/' + key + '/' + escapeJsonPtr(prop), rootSchema, jsonPtr, key, schema, prop);\n }\n } else if (key in traverse.keywords || (opts.allKeys && !(key in traverse.skipKeywords))) {\n _traverse(opts, pre, post, sch, jsonPtr + '/' + key, rootSchema, jsonPtr, key, schema);\n }\n }\n post(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n }\n}\n\n\nfunction escapeJsonPtr(str) {\n return str.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n",
|
|
11
|
-
"'use strict';\n\nvar URI = require('uri-js')\n , equal = require('fast-deep-equal')\n , util = require('./util')\n , SchemaObject = require('./schema_obj')\n , traverse = require('json-schema-traverse');\n\nmodule.exports = resolve;\n\nresolve.normalizeId = normalizeId;\nresolve.fullPath = getFullPath;\nresolve.url = resolveUrl;\nresolve.ids = resolveIds;\nresolve.inlineRef = inlineRef;\nresolve.schema = resolveSchema;\n\n/**\n * [resolve and compile the references ($ref)]\n * @this Ajv\n * @param {Function} compile reference to schema compilation funciton (localCompile)\n * @param {Object} root object with information about the root schema for the current schema\n * @param {String} ref reference to resolve\n * @return {Object|Function} schema object (if the schema can be inlined) or validation function\n */\nfunction resolve(compile, root, ref) {\n /* jshint validthis: true */\n var refVal = this._refs[ref];\n if (typeof refVal == 'string') {\n if (this._refs[refVal]) refVal = this._refs[refVal];\n else return resolve.call(this, compile, root, refVal);\n }\n\n refVal = refVal || this._schemas[ref];\n if (refVal instanceof SchemaObject) {\n return inlineRef(refVal.schema, this._opts.inlineRefs)\n ? refVal.schema\n : refVal.validate || this._compile(refVal);\n }\n\n var res = resolveSchema.call(this, root, ref);\n var schema, v, baseId;\n if (res) {\n schema = res.schema;\n root = res.root;\n baseId = res.baseId;\n }\n\n if (schema instanceof SchemaObject) {\n v = schema.validate || compile.call(this, schema.schema, root, undefined, baseId);\n } else if (schema !== undefined) {\n v = inlineRef(schema, this._opts.inlineRefs)\n ? schema\n : compile.call(this, schema, root, undefined, baseId);\n }\n\n return v;\n}\n\n\n/**\n * Resolve schema, its root and baseId\n * @this Ajv\n * @param {Object} root root object with properties schema, refVal, refs\n * @param {String} ref reference to resolve\n * @return {Object} object with properties schema, root, baseId\n */\nfunction resolveSchema(root, ref) {\n /* jshint validthis: true */\n var p = URI.parse(ref)\n , refPath = _getFullPath(p)\n , baseId = getFullPath(this._getId(root.schema));\n if (Object.keys(root.schema).length === 0 || refPath !== baseId) {\n var id = normalizeId(refPath);\n var refVal = this._refs[id];\n if (typeof refVal == 'string') {\n return resolveRecursive.call(this, root, refVal, p);\n } else if (refVal instanceof SchemaObject) {\n if (!refVal.validate) this._compile(refVal);\n root = refVal;\n } else {\n refVal = this._schemas[id];\n if (refVal instanceof SchemaObject) {\n if (!refVal.validate) this._compile(refVal);\n if (id == normalizeId(ref))\n return { schema: refVal, root: root, baseId: baseId };\n root = refVal;\n } else {\n return;\n }\n }\n if (!root.schema) return;\n baseId = getFullPath(this._getId(root.schema));\n }\n return getJsonPointer.call(this, p, baseId, root.schema, root);\n}\n\n\n/* @this Ajv */\nfunction resolveRecursive(root, ref, parsedRef) {\n /* jshint validthis: true */\n var res = resolveSchema.call(this, root, ref);\n if (res) {\n var schema = res.schema;\n var baseId = res.baseId;\n root = res.root;\n var id = this._getId(schema);\n if (id) baseId = resolveUrl(baseId, id);\n return getJsonPointer.call(this, parsedRef, baseId, schema, root);\n }\n}\n\n\nvar PREVENT_SCOPE_CHANGE = util.toHash(['properties', 'patternProperties', 'enum', 'dependencies', 'definitions']);\n/* @this Ajv */\nfunction getJsonPointer(parsedRef, baseId, schema, root) {\n /* jshint validthis: true */\n parsedRef.fragment = parsedRef.fragment || '';\n if (parsedRef.fragment.slice(0,1) != '/') return;\n var parts = parsedRef.fragment.split('/');\n\n for (var i = 1; i < parts.length; i++) {\n var part = parts[i];\n if (part) {\n part = util.unescapeFragment(part);\n schema = schema[part];\n if (schema === undefined) break;\n var id;\n if (!PREVENT_SCOPE_CHANGE[part]) {\n id = this._getId(schema);\n if (id) baseId = resolveUrl(baseId, id);\n if (schema.$ref) {\n var $ref = resolveUrl(baseId, schema.$ref);\n var res = resolveSchema.call(this, root, $ref);\n if (res) {\n schema = res.schema;\n root = res.root;\n baseId = res.baseId;\n }\n }\n }\n }\n }\n if (schema !== undefined && schema !== root.schema)\n return { schema: schema, root: root, baseId: baseId };\n}\n\n\nvar SIMPLE_INLINED = util.toHash([\n 'type', 'format', 'pattern',\n 'maxLength', 'minLength',\n 'maxProperties', 'minProperties',\n 'maxItems', 'minItems',\n 'maximum', 'minimum',\n 'uniqueItems', 'multipleOf',\n 'required', 'enum'\n]);\nfunction inlineRef(schema, limit) {\n if (limit === false) return false;\n if (limit === undefined || limit === true) return checkNoRef(schema);\n else if (limit) return countKeys(schema) <= limit;\n}\n\n\nfunction checkNoRef(schema) {\n var item;\n if (Array.isArray(schema)) {\n for (var i=0; i<schema.length; i++) {\n item = schema[i];\n if (typeof item == 'object' && !checkNoRef(item)) return false;\n }\n } else {\n for (var key in schema) {\n if (key == '$ref') return false;\n item = schema[key];\n if (typeof item == 'object' && !checkNoRef(item)) return false;\n }\n }\n return true;\n}\n\n\nfunction countKeys(schema) {\n var count = 0, item;\n if (Array.isArray(schema)) {\n for (var i=0; i<schema.length; i++) {\n item = schema[i];\n if (typeof item == 'object') count += countKeys(item);\n if (count == Infinity) return Infinity;\n }\n } else {\n for (var key in schema) {\n if (key == '$ref') return Infinity;\n if (SIMPLE_INLINED[key]) {\n count++;\n } else {\n item = schema[key];\n if (typeof item == 'object') count += countKeys(item) + 1;\n if (count == Infinity) return Infinity;\n }\n }\n }\n return count;\n}\n\n\nfunction getFullPath(id, normalize) {\n if (normalize !== false) id = normalizeId(id);\n var p = URI.parse(id);\n return _getFullPath(p);\n}\n\n\nfunction _getFullPath(p) {\n return URI.serialize(p).split('#')[0] + '#';\n}\n\n\nvar TRAILING_SLASH_HASH = /#\\/?$/;\nfunction normalizeId(id) {\n return id ? id.replace(TRAILING_SLASH_HASH, '') : '';\n}\n\n\nfunction resolveUrl(baseId, id) {\n id = normalizeId(id);\n return URI.resolve(baseId, id);\n}\n\n\n/* @this Ajv */\nfunction resolveIds(schema) {\n var schemaId = normalizeId(this._getId(schema));\n var baseIds = {'': schemaId};\n var fullPaths = {'': getFullPath(schemaId, false)};\n var localRefs = {};\n var self = this;\n\n traverse(schema, {allKeys: true}, function(sch, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (jsonPtr === '') return;\n var id = self._getId(sch);\n var baseId = baseIds[parentJsonPtr];\n var fullPath = fullPaths[parentJsonPtr] + '/' + parentKeyword;\n if (keyIndex !== undefined)\n fullPath += '/' + (typeof keyIndex == 'number' ? keyIndex : util.escapeFragment(keyIndex));\n\n if (typeof id == 'string') {\n id = baseId = normalizeId(baseId ? URI.resolve(baseId, id) : id);\n\n var refVal = self._refs[id];\n if (typeof refVal == 'string') refVal = self._refs[refVal];\n if (refVal && refVal.schema) {\n if (!equal(sch, refVal.schema))\n throw new Error('id \"' + id + '\" resolves to more than one schema');\n } else if (id != normalizeId(fullPath)) {\n if (id[0] == '#') {\n if (localRefs[id] && !equal(sch, localRefs[id]))\n throw new Error('id \"' + id + '\" resolves to more than one schema');\n localRefs[id] = sch;\n } else {\n self._refs[id] = fullPath;\n }\n }\n }\n baseIds[jsonPtr] = baseId;\n fullPaths[jsonPtr] = fullPath;\n });\n\n return localRefs;\n}\n",
|
|
12
|
-
"'use strict';\n\nvar resolve = require('./resolve');\n\nmodule.exports = {\n Validation: errorSubclass(ValidationError),\n MissingRef: errorSubclass(MissingRefError)\n};\n\n\nfunction ValidationError(errors) {\n this.message = 'validation failed';\n this.errors = errors;\n this.ajv = this.validation = true;\n}\n\n\nMissingRefError.message = function (baseId, ref) {\n return 'can\\'t resolve reference ' + ref + ' from id ' + baseId;\n};\n\n\nfunction MissingRefError(baseId, ref, message) {\n this.message = message || MissingRefError.message(baseId, ref);\n this.missingRef = resolve.url(baseId, ref);\n this.missingSchema = resolve.normalizeId(resolve.fullPath(this.missingRef));\n}\n\n\nfunction errorSubclass(Subclass) {\n Subclass.prototype = Object.create(Error.prototype);\n Subclass.prototype.constructor = Subclass;\n return Subclass;\n}\n",
|
|
13
|
-
"'use strict';\n\nmodule.exports = function (data, opts) {\n if (!opts) opts = {};\n if (typeof opts === 'function') opts = { cmp: opts };\n var cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false;\n\n var cmp = opts.cmp && (function (f) {\n return function (node) {\n return function (a, b) {\n var aobj = { key: a, value: node[a] };\n var bobj = { key: b, value: node[b] };\n return f(aobj, bobj);\n };\n };\n })(opts.cmp);\n\n var seen = [];\n return (function stringify (node) {\n if (node && node.toJSON && typeof node.toJSON === 'function') {\n node = node.toJSON();\n }\n\n if (node === undefined) return;\n if (typeof node == 'number') return isFinite(node) ? '' + node : 'null';\n if (typeof node !== 'object') return JSON.stringify(node);\n\n var i, out;\n if (Array.isArray(node)) {\n out = '[';\n for (i = 0; i < node.length; i++) {\n if (i) out += ',';\n out += stringify(node[i]) || 'null';\n }\n return out + ']';\n }\n\n if (node === null) return 'null';\n\n if (seen.indexOf(node) !== -1) {\n if (cycles) return JSON.stringify('__cycle__');\n throw new TypeError('Converting circular structure to JSON');\n }\n\n var seenIndex = seen.push(node) - 1;\n var keys = Object.keys(node).sort(cmp && cmp(node));\n out = '';\n for (i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = stringify(node[key]);\n\n if (!value) continue;\n if (out) out += ',';\n out += JSON.stringify(key) + ':' + value;\n }\n seen.splice(seenIndex, 1);\n return '{' + out + '}';\n })(data);\n};\n",
|
|
14
|
-
"'use strict';\nmodule.exports = function generate_validate(it, $keyword, $ruleType) {\n var out = '';\n var $async = it.schema.$async === true,\n $refKeywords = it.util.schemaHasRulesExcept(it.schema, it.RULES.all, '$ref'),\n $id = it.self._getId(it.schema);\n if (it.opts.strictKeywords) {\n var $unknownKwd = it.util.schemaUnknownRules(it.schema, it.RULES.keywords);\n if ($unknownKwd) {\n var $keywordsMsg = 'unknown keyword: ' + $unknownKwd;\n if (it.opts.strictKeywords === 'log') it.logger.warn($keywordsMsg);\n else throw new Error($keywordsMsg);\n }\n }\n if (it.isTop) {\n out += ' var validate = ';\n if ($async) {\n it.async = true;\n out += 'async ';\n }\n out += 'function(data, dataPath, parentData, parentDataProperty, rootData) { \\'use strict\\'; ';\n if ($id && (it.opts.sourceCode || it.opts.processCode)) {\n out += ' ' + ('/\\*# sourceURL=' + $id + ' */') + ' ';\n }\n }\n if (typeof it.schema == 'boolean' || !($refKeywords || it.schema.$ref)) {\n var $keyword = 'false schema';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n if (it.schema === false) {\n if (it.isTop) {\n $breakOnError = true;\n } else {\n out += ' var ' + ($valid) + ' = false; ';\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'false schema') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'boolean schema is false\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n } else {\n if (it.isTop) {\n if ($async) {\n out += ' return data; ';\n } else {\n out += ' validate.errors = null; return true; ';\n }\n } else {\n out += ' var ' + ($valid) + ' = true; ';\n }\n }\n if (it.isTop) {\n out += ' }; return validate; ';\n }\n return out;\n }\n if (it.isTop) {\n var $top = it.isTop,\n $lvl = it.level = 0,\n $dataLvl = it.dataLevel = 0,\n $data = 'data';\n it.rootId = it.resolve.fullPath(it.self._getId(it.root.schema));\n it.baseId = it.baseId || it.rootId;\n delete it.isTop;\n it.dataPathArr = [\"\"];\n if (it.schema.default !== undefined && it.opts.useDefaults && it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored in the schema root';\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n out += ' var vErrors = null; ';\n out += ' var errors = 0; ';\n out += ' if (rootData === undefined) rootData = data; ';\n } else {\n var $lvl = it.level,\n $dataLvl = it.dataLevel,\n $data = 'data' + ($dataLvl || '');\n if ($id) it.baseId = it.resolve.url(it.baseId, $id);\n if ($async && !it.async) throw new Error('async schema in sync schema');\n out += ' var errs_' + ($lvl) + ' = errors;';\n }\n var $valid = 'valid' + $lvl,\n $breakOnError = !it.opts.allErrors,\n $closingBraces1 = '',\n $closingBraces2 = '';\n var $errorKeyword;\n var $typeSchema = it.schema.type,\n $typeIsArray = Array.isArray($typeSchema);\n if ($typeSchema && it.opts.nullable && it.schema.nullable === true) {\n if ($typeIsArray) {\n if ($typeSchema.indexOf('null') == -1) $typeSchema = $typeSchema.concat('null');\n } else if ($typeSchema != 'null') {\n $typeSchema = [$typeSchema, 'null'];\n $typeIsArray = true;\n }\n }\n if ($typeIsArray && $typeSchema.length == 1) {\n $typeSchema = $typeSchema[0];\n $typeIsArray = false;\n }\n if (it.schema.$ref && $refKeywords) {\n if (it.opts.extendRefs == 'fail') {\n throw new Error('$ref: validation keywords used in schema at path \"' + it.errSchemaPath + '\" (see option extendRefs)');\n } else if (it.opts.extendRefs !== true) {\n $refKeywords = false;\n it.logger.warn('$ref: keywords ignored in schema at path \"' + it.errSchemaPath + '\"');\n }\n }\n if (it.schema.$comment && it.opts.$comment) {\n out += ' ' + (it.RULES.all.$comment.code(it, '$comment'));\n }\n if ($typeSchema) {\n if (it.opts.coerceTypes) {\n var $coerceToTypes = it.util.coerceToTypes(it.opts.coerceTypes, $typeSchema);\n }\n var $rulesGroup = it.RULES.types[$typeSchema];\n if ($coerceToTypes || $typeIsArray || $rulesGroup === true || ($rulesGroup && !$shouldUseGroup($rulesGroup))) {\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type';\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type',\n $method = $typeIsArray ? 'checkDataTypes' : 'checkDataType';\n out += ' if (' + (it.util[$method]($typeSchema, $data, it.opts.strictNumbers, true)) + ') { ';\n if ($coerceToTypes) {\n var $dataType = 'dataType' + $lvl,\n $coerced = 'coerced' + $lvl;\n out += ' var ' + ($dataType) + ' = typeof ' + ($data) + '; var ' + ($coerced) + ' = undefined; ';\n if (it.opts.coerceTypes == 'array') {\n out += ' if (' + ($dataType) + ' == \\'object\\' && Array.isArray(' + ($data) + ') && ' + ($data) + '.length == 1) { ' + ($data) + ' = ' + ($data) + '[0]; ' + ($dataType) + ' = typeof ' + ($data) + '; if (' + (it.util.checkDataType(it.schema.type, $data, it.opts.strictNumbers)) + ') ' + ($coerced) + ' = ' + ($data) + '; } ';\n }\n out += ' if (' + ($coerced) + ' !== undefined) ; ';\n var arr1 = $coerceToTypes;\n if (arr1) {\n var $type, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $type = arr1[$i += 1];\n if ($type == 'string') {\n out += ' else if (' + ($dataType) + ' == \\'number\\' || ' + ($dataType) + ' == \\'boolean\\') ' + ($coerced) + ' = \\'\\' + ' + ($data) + '; else if (' + ($data) + ' === null) ' + ($coerced) + ' = \\'\\'; ';\n } else if ($type == 'number' || $type == 'integer') {\n out += ' else if (' + ($dataType) + ' == \\'boolean\\' || ' + ($data) + ' === null || (' + ($dataType) + ' == \\'string\\' && ' + ($data) + ' && ' + ($data) + ' == +' + ($data) + ' ';\n if ($type == 'integer') {\n out += ' && !(' + ($data) + ' % 1)';\n }\n out += ')) ' + ($coerced) + ' = +' + ($data) + '; ';\n } else if ($type == 'boolean') {\n out += ' else if (' + ($data) + ' === \\'false\\' || ' + ($data) + ' === 0 || ' + ($data) + ' === null) ' + ($coerced) + ' = false; else if (' + ($data) + ' === \\'true\\' || ' + ($data) + ' === 1) ' + ($coerced) + ' = true; ';\n } else if ($type == 'null') {\n out += ' else if (' + ($data) + ' === \\'\\' || ' + ($data) + ' === 0 || ' + ($data) + ' === false) ' + ($coerced) + ' = null; ';\n } else if (it.opts.coerceTypes == 'array' && $type == 'array') {\n out += ' else if (' + ($dataType) + ' == \\'string\\' || ' + ($dataType) + ' == \\'number\\' || ' + ($dataType) + ' == \\'boolean\\' || ' + ($data) + ' == null) ' + ($coerced) + ' = [' + ($data) + ']; ';\n }\n }\n }\n out += ' else { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } if (' + ($coerced) + ' !== undefined) { ';\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' ' + ($data) + ' = ' + ($coerced) + '; ';\n if (!$dataLvl) {\n out += 'if (' + ($parentData) + ' !== undefined)';\n }\n out += ' ' + ($parentData) + '[' + ($parentDataProperty) + '] = ' + ($coerced) + '; } ';\n } else {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n }\n out += ' } ';\n }\n }\n if (it.schema.$ref && !$refKeywords) {\n out += ' ' + (it.RULES.all.$ref.code(it, '$ref')) + ' ';\n if ($breakOnError) {\n out += ' } if (errors === ';\n if ($top) {\n out += '0';\n } else {\n out += 'errs_' + ($lvl);\n }\n out += ') { ';\n $closingBraces2 += '}';\n }\n } else {\n var arr2 = it.RULES;\n if (arr2) {\n var $rulesGroup, i2 = -1,\n l2 = arr2.length - 1;\n while (i2 < l2) {\n $rulesGroup = arr2[i2 += 1];\n if ($shouldUseGroup($rulesGroup)) {\n if ($rulesGroup.type) {\n out += ' if (' + (it.util.checkDataType($rulesGroup.type, $data, it.opts.strictNumbers)) + ') { ';\n }\n if (it.opts.useDefaults) {\n if ($rulesGroup.type == 'object' && it.schema.properties) {\n var $schema = it.schema.properties,\n $schemaKeys = Object.keys($schema);\n var arr3 = $schemaKeys;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $sch = $schema[$propertyKey];\n if ($sch.default !== undefined) {\n var $passData = $data + it.util.getProperty($propertyKey);\n if (it.compositeRule) {\n if (it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored for: ' + $passData;\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n } else {\n out += ' if (' + ($passData) + ' === undefined ';\n if (it.opts.useDefaults == 'empty') {\n out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \\'\\' ';\n }\n out += ' ) ' + ($passData) + ' = ';\n if (it.opts.useDefaults == 'shared') {\n out += ' ' + (it.useDefault($sch.default)) + ' ';\n } else {\n out += ' ' + (JSON.stringify($sch.default)) + ' ';\n }\n out += '; ';\n }\n }\n }\n }\n } else if ($rulesGroup.type == 'array' && Array.isArray(it.schema.items)) {\n var arr4 = it.schema.items;\n if (arr4) {\n var $sch, $i = -1,\n l4 = arr4.length - 1;\n while ($i < l4) {\n $sch = arr4[$i += 1];\n if ($sch.default !== undefined) {\n var $passData = $data + '[' + $i + ']';\n if (it.compositeRule) {\n if (it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored for: ' + $passData;\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n } else {\n out += ' if (' + ($passData) + ' === undefined ';\n if (it.opts.useDefaults == 'empty') {\n out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \\'\\' ';\n }\n out += ' ) ' + ($passData) + ' = ';\n if (it.opts.useDefaults == 'shared') {\n out += ' ' + (it.useDefault($sch.default)) + ' ';\n } else {\n out += ' ' + (JSON.stringify($sch.default)) + ' ';\n }\n out += '; ';\n }\n }\n }\n }\n }\n }\n var arr5 = $rulesGroup.rules;\n if (arr5) {\n var $rule, i5 = -1,\n l5 = arr5.length - 1;\n while (i5 < l5) {\n $rule = arr5[i5 += 1];\n if ($shouldUseRule($rule)) {\n var $code = $rule.code(it, $rule.keyword, $rulesGroup.type);\n if ($code) {\n out += ' ' + ($code) + ' ';\n if ($breakOnError) {\n $closingBraces1 += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces1) + ' ';\n $closingBraces1 = '';\n }\n if ($rulesGroup.type) {\n out += ' } ';\n if ($typeSchema && $typeSchema === $rulesGroup.type && !$coerceToTypes) {\n out += ' else { ';\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n }\n }\n if ($breakOnError) {\n out += ' if (errors === ';\n if ($top) {\n out += '0';\n } else {\n out += 'errs_' + ($lvl);\n }\n out += ') { ';\n $closingBraces2 += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces2) + ' ';\n }\n if ($top) {\n if ($async) {\n out += ' if (errors === 0) return data; ';\n out += ' else throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; ';\n out += ' return errors === 0; ';\n }\n out += ' }; return validate;';\n } else {\n out += ' var ' + ($valid) + ' = errors === errs_' + ($lvl) + ';';\n }\n\n function $shouldUseGroup($rulesGroup) {\n var rules = $rulesGroup.rules;\n for (var i = 0; i < rules.length; i++)\n if ($shouldUseRule(rules[i])) return true;\n }\n\n function $shouldUseRule($rule) {\n return it.schema[$rule.keyword] !== undefined || ($rule.implements && $ruleImplementsSomeKeyword($rule));\n }\n\n function $ruleImplementsSomeKeyword($rule) {\n var impl = $rule.implements;\n for (var i = 0; i < impl.length; i++)\n if (it.schema[impl[i]] !== undefined) return true;\n }\n return out;\n}\n",
|
|
15
|
-
"'use strict';\n\nvar resolve = require('./resolve')\n , util = require('./util')\n , errorClasses = require('./error_classes')\n , stableStringify = require('fast-json-stable-stringify');\n\nvar validateGenerator = require('../dotjs/validate');\n\n/**\n * Functions below are used inside compiled validations function\n */\n\nvar ucs2length = util.ucs2length;\nvar equal = require('fast-deep-equal');\n\n// this error is thrown by async schemas to return validation errors via exception\nvar ValidationError = errorClasses.Validation;\n\nmodule.exports = compile;\n\n\n/**\n * Compiles schema to validation function\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Object} root object with information about the root schema for this schema\n * @param {Object} localRefs the hash of local references inside the schema (created by resolve.id), used for inline resolution\n * @param {String} baseId base ID for IDs in the schema\n * @return {Function} validation function\n */\nfunction compile(schema, root, localRefs, baseId) {\n /* jshint validthis: true, evil: true */\n /* eslint no-shadow: 0 */\n var self = this\n , opts = this._opts\n , refVal = [ undefined ]\n , refs = {}\n , patterns = []\n , patternsHash = {}\n , defaults = []\n , defaultsHash = {}\n , customRules = [];\n\n root = root || { schema: schema, refVal: refVal, refs: refs };\n\n var c = checkCompiling.call(this, schema, root, baseId);\n var compilation = this._compilations[c.index];\n if (c.compiling) return (compilation.callValidate = callValidate);\n\n var formats = this._formats;\n var RULES = this.RULES;\n\n try {\n var v = localCompile(schema, root, localRefs, baseId);\n compilation.validate = v;\n var cv = compilation.callValidate;\n if (cv) {\n cv.schema = v.schema;\n cv.errors = null;\n cv.refs = v.refs;\n cv.refVal = v.refVal;\n cv.root = v.root;\n cv.$async = v.$async;\n if (opts.sourceCode) cv.source = v.source;\n }\n return v;\n } finally {\n endCompiling.call(this, schema, root, baseId);\n }\n\n /* @this {*} - custom context, see passContext option */\n function callValidate() {\n /* jshint validthis: true */\n var validate = compilation.validate;\n var result = validate.apply(this, arguments);\n callValidate.errors = validate.errors;\n return result;\n }\n\n function localCompile(_schema, _root, localRefs, baseId) {\n var isRoot = !_root || (_root && _root.schema == _schema);\n if (_root.schema != root.schema)\n return compile.call(self, _schema, _root, localRefs, baseId);\n\n var $async = _schema.$async === true;\n\n var sourceCode = validateGenerator({\n isTop: true,\n schema: _schema,\n isRoot: isRoot,\n baseId: baseId,\n root: _root,\n schemaPath: '',\n errSchemaPath: '#',\n errorPath: '\"\"',\n MissingRefError: errorClasses.MissingRef,\n RULES: RULES,\n validate: validateGenerator,\n util: util,\n resolve: resolve,\n resolveRef: resolveRef,\n usePattern: usePattern,\n useDefault: useDefault,\n useCustomRule: useCustomRule,\n opts: opts,\n formats: formats,\n logger: self.logger,\n self: self\n });\n\n sourceCode = vars(refVal, refValCode) + vars(patterns, patternCode)\n + vars(defaults, defaultCode) + vars(customRules, customRuleCode)\n + sourceCode;\n\n if (opts.processCode) sourceCode = opts.processCode(sourceCode, _schema);\n // console.log('\\n\\n\\n *** \\n', JSON.stringify(sourceCode));\n var validate;\n try {\n var makeValidate = new Function(\n 'self',\n 'RULES',\n 'formats',\n 'root',\n 'refVal',\n 'defaults',\n 'customRules',\n 'equal',\n 'ucs2length',\n 'ValidationError',\n sourceCode\n );\n\n validate = makeValidate(\n self,\n RULES,\n formats,\n root,\n refVal,\n defaults,\n customRules,\n equal,\n ucs2length,\n ValidationError\n );\n\n refVal[0] = validate;\n } catch(e) {\n self.logger.error('Error compiling schema, function code:', sourceCode);\n throw e;\n }\n\n validate.schema = _schema;\n validate.errors = null;\n validate.refs = refs;\n validate.refVal = refVal;\n validate.root = isRoot ? validate : _root;\n if ($async) validate.$async = true;\n if (opts.sourceCode === true) {\n validate.source = {\n code: sourceCode,\n patterns: patterns,\n defaults: defaults\n };\n }\n\n return validate;\n }\n\n function resolveRef(baseId, ref, isRoot) {\n ref = resolve.url(baseId, ref);\n var refIndex = refs[ref];\n var _refVal, refCode;\n if (refIndex !== undefined) {\n _refVal = refVal[refIndex];\n refCode = 'refVal[' + refIndex + ']';\n return resolvedRef(_refVal, refCode);\n }\n if (!isRoot && root.refs) {\n var rootRefId = root.refs[ref];\n if (rootRefId !== undefined) {\n _refVal = root.refVal[rootRefId];\n refCode = addLocalRef(ref, _refVal);\n return resolvedRef(_refVal, refCode);\n }\n }\n\n refCode = addLocalRef(ref);\n var v = resolve.call(self, localCompile, root, ref);\n if (v === undefined) {\n var localSchema = localRefs && localRefs[ref];\n if (localSchema) {\n v = resolve.inlineRef(localSchema, opts.inlineRefs)\n ? localSchema\n : compile.call(self, localSchema, root, localRefs, baseId);\n }\n }\n\n if (v === undefined) {\n removeLocalRef(ref);\n } else {\n replaceLocalRef(ref, v);\n return resolvedRef(v, refCode);\n }\n }\n\n function addLocalRef(ref, v) {\n var refId = refVal.length;\n refVal[refId] = v;\n refs[ref] = refId;\n return 'refVal' + refId;\n }\n\n function removeLocalRef(ref) {\n delete refs[ref];\n }\n\n function replaceLocalRef(ref, v) {\n var refId = refs[ref];\n refVal[refId] = v;\n }\n\n function resolvedRef(refVal, code) {\n return typeof refVal == 'object' || typeof refVal == 'boolean'\n ? { code: code, schema: refVal, inline: true }\n : { code: code, $async: refVal && !!refVal.$async };\n }\n\n function usePattern(regexStr) {\n var index = patternsHash[regexStr];\n if (index === undefined) {\n index = patternsHash[regexStr] = patterns.length;\n patterns[index] = regexStr;\n }\n return 'pattern' + index;\n }\n\n function useDefault(value) {\n switch (typeof value) {\n case 'boolean':\n case 'number':\n return '' + value;\n case 'string':\n return util.toQuotedString(value);\n case 'object':\n if (value === null) return 'null';\n var valueStr = stableStringify(value);\n var index = defaultsHash[valueStr];\n if (index === undefined) {\n index = defaultsHash[valueStr] = defaults.length;\n defaults[index] = value;\n }\n return 'default' + index;\n }\n }\n\n function useCustomRule(rule, schema, parentSchema, it) {\n if (self._opts.validateSchema !== false) {\n var deps = rule.definition.dependencies;\n if (deps && !deps.every(function(keyword) {\n return Object.prototype.hasOwnProperty.call(parentSchema, keyword);\n }))\n throw new Error('parent schema must have all required keywords: ' + deps.join(','));\n\n var validateSchema = rule.definition.validateSchema;\n if (validateSchema) {\n var valid = validateSchema(schema);\n if (!valid) {\n var message = 'keyword schema is invalid: ' + self.errorsText(validateSchema.errors);\n if (self._opts.validateSchema == 'log') self.logger.error(message);\n else throw new Error(message);\n }\n }\n }\n\n var compile = rule.definition.compile\n , inline = rule.definition.inline\n , macro = rule.definition.macro;\n\n var validate;\n if (compile) {\n validate = compile.call(self, schema, parentSchema, it);\n } else if (macro) {\n validate = macro.call(self, schema, parentSchema, it);\n if (opts.validateSchema !== false) self.validateSchema(validate, true);\n } else if (inline) {\n validate = inline.call(self, it, rule.keyword, schema, parentSchema);\n } else {\n validate = rule.definition.validate;\n if (!validate) return;\n }\n\n if (validate === undefined)\n throw new Error('custom keyword \"' + rule.keyword + '\"failed to compile');\n\n var index = customRules.length;\n customRules[index] = validate;\n\n return {\n code: 'customRule' + index,\n validate: validate\n };\n }\n}\n\n\n/**\n * Checks if the schema is currently compiled\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n * @return {Object} object with properties \"index\" (compilation index) and \"compiling\" (boolean)\n */\nfunction checkCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var index = compIndex.call(this, schema, root, baseId);\n if (index >= 0) return { index: index, compiling: true };\n index = this._compilations.length;\n this._compilations[index] = {\n schema: schema,\n root: root,\n baseId: baseId\n };\n return { index: index, compiling: false };\n}\n\n\n/**\n * Removes the schema from the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n */\nfunction endCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var i = compIndex.call(this, schema, root, baseId);\n if (i >= 0) this._compilations.splice(i, 1);\n}\n\n\n/**\n * Index of schema compilation in the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n * @return {Integer} compilation index\n */\nfunction compIndex(schema, root, baseId) {\n /* jshint validthis: true */\n for (var i=0; i<this._compilations.length; i++) {\n var c = this._compilations[i];\n if (c.schema == schema && c.root == root && c.baseId == baseId) return i;\n }\n return -1;\n}\n\n\nfunction patternCode(i, patterns) {\n return 'var pattern' + i + ' = new RegExp(' + util.toQuotedString(patterns[i]) + ');';\n}\n\n\nfunction defaultCode(i) {\n return 'var default' + i + ' = defaults[' + i + '];';\n}\n\n\nfunction refValCode(i, refVal) {\n return refVal[i] === undefined ? '' : 'var refVal' + i + ' = refVal[' + i + '];';\n}\n\n\nfunction customRuleCode(i) {\n return 'var customRule' + i + ' = customRules[' + i + '];';\n}\n\n\nfunction vars(arr, statement) {\n if (!arr.length) return '';\n var code = '';\n for (var i=0; i<arr.length; i++)\n code += statement(i, arr);\n return code;\n}\n",
|
|
16
|
-
"'use strict';\n\n\nvar Cache = module.exports = function Cache() {\n this._cache = {};\n};\n\n\nCache.prototype.put = function Cache_put(key, value) {\n this._cache[key] = value;\n};\n\n\nCache.prototype.get = function Cache_get(key) {\n return this._cache[key];\n};\n\n\nCache.prototype.del = function Cache_del(key) {\n delete this._cache[key];\n};\n\n\nCache.prototype.clear = function Cache_clear() {\n this._cache = {};\n};\n",
|
|
17
|
-
"'use strict';\n\nvar util = require('./util');\n\nvar DATE = /^(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)$/;\nvar DAYS = [0,31,28,31,30,31,30,31,31,30,31,30,31];\nvar TIME = /^(\\d\\d):(\\d\\d):(\\d\\d)(\\.\\d+)?(z|[+-]\\d\\d(?::?\\d\\d)?)?$/i;\nvar HOSTNAME = /^(?=.{1,253}\\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\\.?$/i;\nvar URI = /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\\?(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\nvar URIREF = /^(?:[a-z][a-z0-9+\\-.]*:)?(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'\"()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\\?(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\n// uri-template: https://tools.ietf.org/html/rfc6570\nvar URITEMPLATE = /^(?:(?:[^\\x00-\\x20\"'<>%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i;\n// For the source: https://gist.github.com/dperini/729294\n// For test cases: https://mathiasbynens.be/demo/url-regex\n// @todo Delete current URL in favour of the commented out URL rule when this issue is fixed https://github.com/eslint/eslint/issues/7983.\n// var URL = /^(?:(?:https?|ftp):\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!10(?:\\.\\d{1,3}){3})(?!127(?:\\.\\d{1,3}){3})(?!169\\.254(?:\\.\\d{1,3}){2})(?!192\\.168(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-)*[a-z\\u{00a1}-\\u{ffff}0-9]+)(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-)*[a-z\\u{00a1}-\\u{ffff}0-9]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu;\nvar URL = /^(?:(?:http[s\\u017F]?|ftp):\\/\\/)(?:(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+(?::(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?@)?(?:(?!10(?:\\.[0-9]{1,3}){3})(?!127(?:\\.[0-9]{1,3}){3})(?!169\\.254(?:\\.[0-9]{1,3}){2})(?!192\\.168(?:\\.[0-9]{1,3}){2})(?!172\\.(?:1[6-9]|2[0-9]|3[01])(?:\\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-)*(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)(?:\\.(?:(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-)*(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)*(?:\\.(?:(?:[a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\\/(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?$/i;\nvar UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;\nvar JSON_POINTER = /^(?:\\/(?:[^~/]|~0|~1)*)*$/;\nvar JSON_POINTER_URI_FRAGMENT = /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;\nvar RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/;\n\n\nmodule.exports = formats;\n\nfunction formats(mode) {\n mode = mode == 'full' ? 'full' : 'fast';\n return util.copy(formats[mode]);\n}\n\n\nformats.fast = {\n // date: http://tools.ietf.org/html/rfc3339#section-5.6\n date: /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/,\n // date-time: http://tools.ietf.org/html/rfc3339#section-5.6\n time: /^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i,\n 'date-time': /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i,\n // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\n uri: /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/)?[^\\s]*$/i,\n 'uri-reference': /^(?:(?:[a-z][a-z0-9+\\-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i,\n 'uri-template': URITEMPLATE,\n url: URL,\n // email (sources from jsen validator):\n // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363\n // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation')\n email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,\n hostname: HOSTNAME,\n // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n // optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n // uuid: http://tools.ietf.org/html/rfc4122\n uuid: UUID,\n // JSON-pointer: https://tools.ietf.org/html/rfc6901\n // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nformats.full = {\n date: date,\n time: time,\n 'date-time': date_time,\n uri: uri,\n 'uri-reference': URIREF,\n 'uri-template': URITEMPLATE,\n url: URL,\n email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,\n hostname: HOSTNAME,\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n uuid: UUID,\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nfunction isLeapYear(year) {\n // https://tools.ietf.org/html/rfc3339#appendix-C\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\n\nfunction date(str) {\n // full-date from http://tools.ietf.org/html/rfc3339#section-5.6\n var matches = str.match(DATE);\n if (!matches) return false;\n\n var year = +matches[1];\n var month = +matches[2];\n var day = +matches[3];\n\n return month >= 1 && month <= 12 && day >= 1 &&\n day <= (month == 2 && isLeapYear(year) ? 29 : DAYS[month]);\n}\n\n\nfunction time(str, full) {\n var matches = str.match(TIME);\n if (!matches) return false;\n\n var hour = matches[1];\n var minute = matches[2];\n var second = matches[3];\n var timeZone = matches[5];\n return ((hour <= 23 && minute <= 59 && second <= 59) ||\n (hour == 23 && minute == 59 && second == 60)) &&\n (!full || timeZone);\n}\n\n\nvar DATE_TIME_SEPARATOR = /t|\\s/i;\nfunction date_time(str) {\n // http://tools.ietf.org/html/rfc3339#section-5.6\n var dateTime = str.split(DATE_TIME_SEPARATOR);\n return dateTime.length == 2 && date(dateTime[0]) && time(dateTime[1], true);\n}\n\n\nvar NOT_URI_FRAGMENT = /\\/|:/;\nfunction uri(str) {\n // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n return NOT_URI_FRAGMENT.test(str) && URI.test(str);\n}\n\n\nvar Z_ANCHOR = /[^\\\\]\\\\Z/;\nfunction regex(str) {\n if (Z_ANCHOR.test(str)) return false;\n try {\n new RegExp(str);\n return true;\n } catch(e) {\n return false;\n }\n}\n",
|
|
18
|
-
"'use strict';\nmodule.exports = function generate_ref(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $async, $refCode;\n if ($schema == '#' || $schema == '#/') {\n if (it.isRoot) {\n $async = it.async;\n $refCode = 'validate';\n } else {\n $async = it.root.schema.$async === true;\n $refCode = 'root.refVal[0]';\n }\n } else {\n var $refVal = it.resolveRef(it.baseId, $schema, it.isRoot);\n if ($refVal === undefined) {\n var $message = it.MissingRefError.message(it.baseId, $schema);\n if (it.opts.missingRefs == 'fail') {\n it.logger.error($message);\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('$ref') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { ref: \\'' + (it.util.escapeQuotes($schema)) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'can\\\\\\'t resolve reference ' + (it.util.escapeQuotes($schema)) + '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ' + (it.util.toQuotedString($schema)) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n if ($breakOnError) {\n out += ' if (false) { ';\n }\n } else if (it.opts.missingRefs == 'ignore') {\n it.logger.warn($message);\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n } else {\n throw new it.MissingRefError(it.baseId, $schema, $message);\n }\n } else if ($refVal.inline) {\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n $it.schema = $refVal.schema;\n $it.schemaPath = '';\n $it.errSchemaPath = $schema;\n var $code = it.validate($it).replace(/validate\\.schema/g, $refVal.code);\n out += ' ' + ($code) + ' ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n }\n } else {\n $async = $refVal.$async === true || (it.async && $refVal.$async !== false);\n $refCode = $refVal.code;\n }\n }\n if ($refCode) {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n if (it.opts.passContext) {\n out += ' ' + ($refCode) + '.call(this, ';\n } else {\n out += ' ' + ($refCode) + '( ';\n }\n out += ' ' + ($data) + ', (dataPath || \\'\\')';\n if (it.errorPath != '\"\"') {\n out += ' + ' + (it.errorPath);\n }\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ', rootData) ';\n var __callValidate = out;\n out = $$outStack.pop();\n if ($async) {\n if (!it.async) throw new Error('async schema referenced by sync schema');\n if ($breakOnError) {\n out += ' var ' + ($valid) + '; ';\n }\n out += ' try { await ' + (__callValidate) + '; ';\n if ($breakOnError) {\n out += ' ' + ($valid) + ' = true; ';\n }\n out += ' } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ';\n if ($breakOnError) {\n out += ' ' + ($valid) + ' = false; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($valid) + ') { ';\n }\n } else {\n out += ' if (!' + (__callValidate) + ') { if (vErrors === null) vErrors = ' + ($refCode) + '.errors; else vErrors = vErrors.concat(' + ($refCode) + '.errors); errors = vErrors.length; } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n }\n }\n return out;\n}\n",
|
|
19
|
-
"'use strict';\nmodule.exports = function generate_allOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $allSchemasEmpty = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n $allSchemasEmpty = false;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($breakOnError) {\n if ($allSchemasEmpty) {\n out += ' if (true) { ';\n } else {\n out += ' ' + ($closingBraces.slice(0, -1)) + ' ';\n }\n }\n return out;\n}\n",
|
|
20
|
-
"'use strict';\nmodule.exports = function generate_anyOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $noEmptySchema = $schema.every(function($sch) {\n return (it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all));\n });\n if ($noEmptySchema) {\n var $currentBaseId = $it.baseId;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = false; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($valid) + ' || ' + ($nextValid) + '; if (!' + ($valid) + ') { ';\n $closingBraces += '}';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('anyOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match some schema in anyOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n",
|
|
21
|
-
"'use strict';\nmodule.exports = function generate_comment(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $comment = it.util.toQuotedString($schema);\n if (it.opts.$comment === true) {\n out += ' console.log(' + ($comment) + ');';\n } else if (typeof it.opts.$comment == 'function') {\n out += ' self._opts.$comment(' + ($comment) + ', ' + (it.util.toQuotedString($errSchemaPath)) + ', validate.root.schema);';\n }\n return out;\n}\n",
|
|
22
|
-
"'use strict';\nmodule.exports = function generate_const(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!$isData) {\n out += ' var schema' + ($lvl) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ' = equal(' + ($data) + ', schema' + ($lvl) + '); if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('const') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValue: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to constant\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n",
|
|
23
|
-
"'use strict';\nmodule.exports = function generate_contains(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId,\n $nonEmptySchema = (it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all));\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if ($nonEmptySchema) {\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($nextValid) + ' = false; for (var ' + ($idx) + ' = 0; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (' + ($nextValid) + ') break; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($nextValid) + ') {';\n } else {\n out += ' if (' + ($data) + '.length == 0) {';\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('contains') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should contain a valid item\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n if ($nonEmptySchema) {\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n }\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n}\n",
|
|
24
|
-
"'use strict';\nmodule.exports = function generate_dependencies(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $schemaDeps = {},\n $propertyDeps = {},\n $ownProperties = it.opts.ownProperties;\n for ($property in $schema) {\n if ($property == '__proto__') continue;\n var $sch = $schema[$property];\n var $deps = Array.isArray($sch) ? $propertyDeps : $schemaDeps;\n $deps[$property] = $sch;\n }\n out += 'var ' + ($errs) + ' = errors;';\n var $currentErrorPath = it.errorPath;\n out += 'var missing' + ($lvl) + ';';\n for (var $property in $propertyDeps) {\n $deps = $propertyDeps[$property];\n if ($deps.length) {\n out += ' if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n }\n if ($breakOnError) {\n out += ' && ( ';\n var arr1 = $deps;\n if (arr1) {\n var $propertyKey, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $propertyKey = arr1[$i += 1];\n if ($i) {\n out += ' || ';\n }\n var $prop = it.util.getProperty($propertyKey),\n $useData = $data + $prop;\n out += ' ( ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n }\n }\n out += ')) { ';\n var $propertyPath = 'missing' + $lvl,\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('dependencies') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \\'' + (it.util.escapeQuotes($property)) + '\\', missingProperty: \\'' + ($missingProperty) + '\\', depsCount: ' + ($deps.length) + ', deps: \\'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \"))) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should have ';\n if ($deps.length == 1) {\n out += 'property ' + (it.util.escapeQuotes($deps[0]));\n } else {\n out += 'properties ' + (it.util.escapeQuotes($deps.join(\", \")));\n }\n out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n } else {\n out += ' ) { ';\n var arr2 = $deps;\n if (arr2) {\n var $propertyKey, i2 = -1,\n l2 = arr2.length - 1;\n while (i2 < l2) {\n $propertyKey = arr2[i2 += 1];\n var $prop = it.util.getProperty($propertyKey),\n $missingProperty = it.util.escapeQuotes($propertyKey),\n $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('dependencies') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \\'' + (it.util.escapeQuotes($property)) + '\\', missingProperty: \\'' + ($missingProperty) + '\\', depsCount: ' + ($deps.length) + ', deps: \\'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \"))) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should have ';\n if ($deps.length == 1) {\n out += 'property ' + (it.util.escapeQuotes($deps[0]));\n } else {\n out += 'properties ' + (it.util.escapeQuotes($deps.join(\", \")));\n }\n out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n }\n }\n }\n out += ' } ';\n if ($breakOnError) {\n $closingBraces += '}';\n out += ' else { ';\n }\n }\n }\n it.errorPath = $currentErrorPath;\n var $currentBaseId = $it.baseId;\n for (var $property in $schemaDeps) {\n var $sch = $schemaDeps[$property];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n out += ' ' + ($nextValid) + ' = true; if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n }\n out += ') { ';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + it.util.getProperty($property);\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($property);\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n",
|
|
25
|
-
"'use strict';\nmodule.exports = function generate_enum(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $i = 'i' + $lvl,\n $vSchema = 'schema' + $lvl;\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ';';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += '' + ($valid) + ' = false;for (var ' + ($i) + '=0; ' + ($i) + '<' + ($vSchema) + '.length; ' + ($i) + '++) if (equal(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + '])) { ' + ($valid) + ' = true; break; }';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('enum') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValues: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to one of the allowed values\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n",
|
|
26
|
-
"'use strict';\nmodule.exports = function generate_format(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n if (it.opts.format === false) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $unknownFormats = it.opts.unknownFormats,\n $allowUnknown = Array.isArray($unknownFormats);\n if ($isData) {\n var $format = 'format' + $lvl,\n $isObject = 'isObject' + $lvl,\n $formatType = 'formatType' + $lvl;\n out += ' var ' + ($format) + ' = formats[' + ($schemaValue) + ']; var ' + ($isObject) + ' = typeof ' + ($format) + ' == \\'object\\' && !(' + ($format) + ' instanceof RegExp) && ' + ($format) + '.validate; var ' + ($formatType) + ' = ' + ($isObject) + ' && ' + ($format) + '.type || \\'string\\'; if (' + ($isObject) + ') { ';\n if (it.async) {\n out += ' var async' + ($lvl) + ' = ' + ($format) + '.async; ';\n }\n out += ' ' + ($format) + ' = ' + ($format) + '.validate; } if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' (';\n if ($unknownFormats != 'ignore') {\n out += ' (' + ($schemaValue) + ' && !' + ($format) + ' ';\n if ($allowUnknown) {\n out += ' && self._opts.unknownFormats.indexOf(' + ($schemaValue) + ') == -1 ';\n }\n out += ') || ';\n }\n out += ' (' + ($format) + ' && ' + ($formatType) + ' == \\'' + ($ruleType) + '\\' && !(typeof ' + ($format) + ' == \\'function\\' ? ';\n if (it.async) {\n out += ' (async' + ($lvl) + ' ? await ' + ($format) + '(' + ($data) + ') : ' + ($format) + '(' + ($data) + ')) ';\n } else {\n out += ' ' + ($format) + '(' + ($data) + ') ';\n }\n out += ' : ' + ($format) + '.test(' + ($data) + '))))) {';\n } else {\n var $format = it.formats[$schema];\n if (!$format) {\n if ($unknownFormats == 'ignore') {\n it.logger.warn('unknown format \"' + $schema + '\" ignored in schema at path \"' + it.errSchemaPath + '\"');\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else if ($allowUnknown && $unknownFormats.indexOf($schema) >= 0) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else {\n throw new Error('unknown format \"' + $schema + '\" is used in schema at path \"' + it.errSchemaPath + '\"');\n }\n }\n var $isObject = typeof $format == 'object' && !($format instanceof RegExp) && $format.validate;\n var $formatType = $isObject && $format.type || 'string';\n if ($isObject) {\n var $async = $format.async === true;\n $format = $format.validate;\n }\n if ($formatType != $ruleType) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n if ($async) {\n if (!it.async) throw new Error('async format in sync schema');\n var $formatRef = 'formats' + it.util.getProperty($schema) + '.validate';\n out += ' if (!(await ' + ($formatRef) + '(' + ($data) + '))) { ';\n } else {\n out += ' if (! ';\n var $formatRef = 'formats' + it.util.getProperty($schema);\n if ($isObject) $formatRef += '.validate';\n if (typeof $format == 'function') {\n out += ' ' + ($formatRef) + '(' + ($data) + ') ';\n } else {\n out += ' ' + ($formatRef) + '.test(' + ($data) + ') ';\n }\n out += ') { ';\n }\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('format') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { format: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match format \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n",
|
|
27
|
-
"'use strict';\nmodule.exports = function generate_if(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $thenSch = it.schema['then'],\n $elseSch = it.schema['else'],\n $thenPresent = $thenSch !== undefined && (it.opts.strictKeywords ? (typeof $thenSch == 'object' && Object.keys($thenSch).length > 0) || $thenSch === false : it.util.schemaHasRules($thenSch, it.RULES.all)),\n $elsePresent = $elseSch !== undefined && (it.opts.strictKeywords ? (typeof $elseSch == 'object' && Object.keys($elseSch).length > 0) || $elseSch === false : it.util.schemaHasRules($elseSch, it.RULES.all)),\n $currentBaseId = $it.baseId;\n if ($thenPresent || $elsePresent) {\n var $ifClause;\n $it.createErrors = false;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = true; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n $it.createErrors = true;\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n if ($thenPresent) {\n out += ' if (' + ($nextValid) + ') { ';\n $it.schema = it.schema['then'];\n $it.schemaPath = it.schemaPath + '.then';\n $it.errSchemaPath = it.errSchemaPath + '/then';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'then\\'; ';\n } else {\n $ifClause = '\\'then\\'';\n }\n out += ' } ';\n if ($elsePresent) {\n out += ' else { ';\n }\n } else {\n out += ' if (!' + ($nextValid) + ') { ';\n }\n if ($elsePresent) {\n $it.schema = it.schema['else'];\n $it.schemaPath = it.schemaPath + '.else';\n $it.errSchemaPath = it.errSchemaPath + '/else';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'else\\'; ';\n } else {\n $ifClause = '\\'else\\'';\n }\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('if') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { failingKeyword: ' + ($ifClause) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match \"\\' + ' + ($ifClause) + ' + \\'\" schema\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n",
|
|
28
|
-
"'use strict';\nmodule.exports = function generate_items(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId;\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if (Array.isArray($schema)) {\n var $additionalItems = it.schema.additionalItems;\n if ($additionalItems === false) {\n out += ' ' + ($valid) + ' = ' + ($data) + '.length <= ' + ($schema.length) + '; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schema.length) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have more than ' + ($schema.length) + ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n $closingBraces += '}';\n out += ' else { ';\n }\n }\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($i) + ') { ';\n var $passData = $data + '[' + $i + ']';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n $it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, true);\n $it.dataPathArr[$dataNxt] = $i;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if (typeof $additionalItems == 'object' && (it.opts.strictKeywords ? (typeof $additionalItems == 'object' && Object.keys($additionalItems).length > 0) || $additionalItems === false : it.util.schemaHasRules($additionalItems, it.RULES.all))) {\n $it.schema = $additionalItems;\n $it.schemaPath = it.schemaPath + '.additionalItems';\n $it.errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($schema.length) + ') { for (var ' + ($idx) + ' = ' + ($schema.length) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n } else if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' for (var ' + ($idx) + ' = ' + (0) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' }';\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n",
|
|
29
|
-
"'use strict';\nmodule.exports = function generate__limit(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $isMax = $keyword == 'maximum',\n $exclusiveKeyword = $isMax ? 'exclusiveMaximum' : 'exclusiveMinimum',\n $schemaExcl = it.schema[$exclusiveKeyword],\n $isDataExcl = it.opts.$data && $schemaExcl && $schemaExcl.$data,\n $op = $isMax ? '<' : '>',\n $notOp = $isMax ? '>' : '<',\n $errorKeyword = undefined;\n if (!($isData || typeof $schema == 'number' || $schema === undefined)) {\n throw new Error($keyword + ' must be number');\n }\n if (!($isDataExcl || $schemaExcl === undefined || typeof $schemaExcl == 'number' || typeof $schemaExcl == 'boolean')) {\n throw new Error($exclusiveKeyword + ' must be number or boolean');\n }\n if ($isDataExcl) {\n var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr),\n $exclusive = 'exclusive' + $lvl,\n $exclType = 'exclType' + $lvl,\n $exclIsNumber = 'exclIsNumber' + $lvl,\n $opExpr = 'op' + $lvl,\n $opStr = '\\' + ' + $opExpr + ' + \\'';\n out += ' var schemaExcl' + ($lvl) + ' = ' + ($schemaValueExcl) + '; ';\n $schemaValueExcl = 'schemaExcl' + $lvl;\n out += ' var ' + ($exclusive) + '; var ' + ($exclType) + ' = typeof ' + ($schemaValueExcl) + '; if (' + ($exclType) + ' != \\'boolean\\' && ' + ($exclType) + ' != \\'undefined\\' && ' + ($exclType) + ' != \\'number\\') { ';\n var $errorKeyword = $exclusiveKeyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_exclusiveLimit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'' + ($exclusiveKeyword) + ' should be boolean\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($exclType) + ' == \\'number\\' ? ( (' + ($exclusive) + ' = ' + ($schemaValue) + ' === undefined || ' + ($schemaValueExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ') ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValueExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) : ( (' + ($exclusive) + ' = ' + ($schemaValueExcl) + ' === true) ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValue) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { var op' + ($lvl) + ' = ' + ($exclusive) + ' ? \\'' + ($op) + '\\' : \\'' + ($op) + '=\\'; ';\n if ($schema === undefined) {\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaValueExcl;\n $isData = $isDataExcl;\n }\n } else {\n var $exclIsNumber = typeof $schemaExcl == 'number',\n $opStr = $op;\n if ($exclIsNumber && $isData) {\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ( ' + ($schemaValue) + ' === undefined || ' + ($schemaExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ' ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { ';\n } else {\n if ($exclIsNumber && $schema === undefined) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaExcl;\n $notOp += '=';\n } else {\n if ($exclIsNumber) $schemaValue = Math[$isMax ? 'min' : 'max']($schemaExcl, $schema);\n if ($schemaExcl === ($exclIsNumber ? $schemaValue : true)) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $notOp += '=';\n } else {\n $exclusive = false;\n $opStr += '=';\n }\n }\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' || ' + ($data) + ' !== ' + ($data) + ') { ';\n }\n }\n $errorKeyword = $errorKeyword || $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { comparison: ' + ($opExpr) + ', limit: ' + ($schemaValue) + ', exclusive: ' + ($exclusive) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ' + ($opStr) + ' ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n",
|
|
30
|
-
"'use strict';\nmodule.exports = function generate__limitItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxItems' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + '.length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxItems') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n",
|
|
31
|
-
"'use strict';\nmodule.exports = function generate__limitLength(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxLength' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n if (it.opts.unicode === false) {\n out += ' ' + ($data) + '.length ';\n } else {\n out += ' ucs2length(' + ($data) + ') ';\n }\n out += ' ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitLength') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be ';\n if ($keyword == 'maxLength') {\n out += 'longer';\n } else {\n out += 'shorter';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' characters\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n",
|
|
32
|
-
"'use strict';\nmodule.exports = function generate__limitProperties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxProperties' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' Object.keys(' + ($data) + ').length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxProperties') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' properties\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n",
|
|
33
|
-
"'use strict';\nmodule.exports = function generate_multipleOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n out += 'var division' + ($lvl) + ';if (';\n if ($isData) {\n out += ' ' + ($schemaValue) + ' !== undefined && ( typeof ' + ($schemaValue) + ' != \\'number\\' || ';\n }\n out += ' (division' + ($lvl) + ' = ' + ($data) + ' / ' + ($schemaValue) + ', ';\n if (it.opts.multipleOfPrecision) {\n out += ' Math.abs(Math.round(division' + ($lvl) + ') - division' + ($lvl) + ') > 1e-' + (it.opts.multipleOfPrecision) + ' ';\n } else {\n out += ' division' + ($lvl) + ' !== parseInt(division' + ($lvl) + ') ';\n }\n out += ' ) ';\n if ($isData) {\n out += ' ) ';\n }\n out += ' ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('multipleOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { multipleOf: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be multiple of ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n",
|
|
34
|
-
"'use strict';\nmodule.exports = function generate_not(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.createErrors = false;\n var $allErrorsOption;\n if ($it.opts.allErrors) {\n $allErrorsOption = $it.opts.allErrors;\n $it.opts.allErrors = false;\n }\n out += ' ' + (it.validate($it)) + ' ';\n $it.createErrors = true;\n if ($allErrorsOption) $it.opts.allErrors = $allErrorsOption;\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (' + ($nextValid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n out += ' var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if ($breakOnError) {\n out += ' if (false) { ';\n }\n }\n return out;\n}\n",
|
|
35
|
-
"'use strict';\nmodule.exports = function generate_oneOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $prevValid = 'prevValid' + $lvl,\n $passingSchemas = 'passingSchemas' + $lvl;\n out += 'var ' + ($errs) + ' = errors , ' + ($prevValid) + ' = false , ' + ($valid) + ' = false , ' + ($passingSchemas) + ' = null; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n } else {\n out += ' var ' + ($nextValid) + ' = true; ';\n }\n if ($i) {\n out += ' if (' + ($nextValid) + ' && ' + ($prevValid) + ') { ' + ($valid) + ' = false; ' + ($passingSchemas) + ' = [' + ($passingSchemas) + ', ' + ($i) + ']; } else { ';\n $closingBraces += '}';\n }\n out += ' if (' + ($nextValid) + ') { ' + ($valid) + ' = ' + ($prevValid) + ' = true; ' + ($passingSchemas) + ' = ' + ($i) + '; }';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += '' + ($closingBraces) + 'if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('oneOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { passingSchemas: ' + ($passingSchemas) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match exactly one schema in oneOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += '} else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; }';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n}\n",
|
|
36
|
-
"'use strict';\nmodule.exports = function generate_pattern(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $regexp = $isData ? '(new RegExp(' + $schemaValue + '))' : it.usePattern($schema);\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' !' + ($regexp) + '.test(' + ($data) + ') ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('pattern') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { pattern: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match pattern \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n",
|
|
37
|
-
"'use strict';\nmodule.exports = function generate_properties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl;\n var $schemaKeys = Object.keys($schema || {}).filter(notProto),\n $pProperties = it.schema.patternProperties || {},\n $pPropertyKeys = Object.keys($pProperties).filter(notProto),\n $aProperties = it.schema.additionalProperties,\n $someProperties = $schemaKeys.length || $pPropertyKeys.length,\n $noAdditional = $aProperties === false,\n $additionalIsSchema = typeof $aProperties == 'object' && Object.keys($aProperties).length,\n $removeAdditional = it.opts.removeAdditional,\n $checkAdditional = $noAdditional || $additionalIsSchema || $removeAdditional,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n var $required = it.schema.required;\n if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired) {\n var $requiredHash = it.util.toHash($required);\n }\n\n function notProto(p) {\n return p !== '__proto__';\n }\n out += 'var ' + ($errs) + ' = errors;var ' + ($nextValid) + ' = true;';\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined;';\n }\n if ($checkAdditional) {\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n if ($someProperties) {\n out += ' var isAdditional' + ($lvl) + ' = !(false ';\n if ($schemaKeys.length) {\n if ($schemaKeys.length > 8) {\n out += ' || validate.schema' + ($schemaPath) + '.hasOwnProperty(' + ($key) + ') ';\n } else {\n var arr1 = $schemaKeys;\n if (arr1) {\n var $propertyKey, i1 = -1,\n l1 = arr1.length - 1;\n while (i1 < l1) {\n $propertyKey = arr1[i1 += 1];\n out += ' || ' + ($key) + ' == ' + (it.util.toQuotedString($propertyKey)) + ' ';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr2 = $pPropertyKeys;\n if (arr2) {\n var $pProperty, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $pProperty = arr2[$i += 1];\n out += ' || ' + (it.usePattern($pProperty)) + '.test(' + ($key) + ') ';\n }\n }\n }\n out += ' ); if (isAdditional' + ($lvl) + ') { ';\n }\n if ($removeAdditional == 'all') {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n var $currentErrorPath = it.errorPath;\n var $additionalProperty = '\\' + ' + $key + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n }\n if ($noAdditional) {\n if ($removeAdditional) {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n out += ' ' + ($nextValid) + ' = false; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalProperties';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { additionalProperty: \\'' + ($additionalProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is an invalid additional property';\n } else {\n out += 'should NOT have additional properties';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n out += ' break; ';\n }\n }\n } else if ($additionalIsSchema) {\n if ($removeAdditional == 'failing') {\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (!' + ($nextValid) + ') { errors = ' + ($errs) + '; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete ' + ($data) + '[' + ($key) + ']; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n } else {\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n }\n }\n it.errorPath = $currentErrorPath;\n }\n if ($someProperties) {\n out += ' } ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n var $useDefaults = it.opts.useDefaults && !it.compositeRule;\n if ($schemaKeys.length) {\n var arr3 = $schemaKeys;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $sch = $schema[$propertyKey];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n var $prop = it.util.getProperty($propertyKey),\n $passData = $data + $prop,\n $hasDefault = $useDefaults && $sch.default !== undefined;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + $prop;\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($propertyKey);\n $it.errorPath = it.util.getPath(it.errorPath, $propertyKey, it.opts.jsonPointers);\n $it.dataPathArr[$dataNxt] = it.util.toQuotedString($propertyKey);\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n $code = it.util.varReplace($code, $nextData, $passData);\n var $useData = $passData;\n } else {\n var $useData = $nextData;\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ';\n }\n if ($hasDefault) {\n out += ' ' + ($code) + ' ';\n } else {\n if ($requiredHash && $requiredHash[$propertyKey]) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = false; ';\n var $currentErrorPath = it.errorPath,\n $currErrSchemaPath = $errSchemaPath,\n $missingProperty = it.util.escapeQuotes($propertyKey);\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n $errSchemaPath = it.errSchemaPath + '/required';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n it.errorPath = $currentErrorPath;\n out += ' } else { ';\n } else {\n if ($breakOnError) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = true; } else { ';\n } else {\n out += ' if (' + ($useData) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ' ) { ';\n }\n }\n out += ' ' + ($code) + ' } ';\n }\n }\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr4 = $pPropertyKeys;\n if (arr4) {\n var $pProperty, i4 = -1,\n l4 = arr4.length - 1;\n while (i4 < l4) {\n $pProperty = arr4[i4 += 1];\n var $sch = $pProperties[$pProperty];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n $it.schema = $sch;\n $it.schemaPath = it.schemaPath + '.patternProperties' + it.util.getProperty($pProperty);\n $it.errSchemaPath = it.errSchemaPath + '/patternProperties/' + it.util.escapeFragment($pProperty);\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' if (' + (it.usePattern($pProperty)) + '.test(' + ($key) + ')) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else ' + ($nextValid) + ' = true; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n",
|
|
38
|
-
"'use strict';\nmodule.exports = function generate_propertyNames(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n out += 'var ' + ($errs) + ' = errors;';\n if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $i = 'i' + $lvl,\n $invalidName = '\\' + ' + $key + ' + \\'',\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined; ';\n }\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' var startErrs' + ($lvl) + ' = errors; ';\n var $passData = $key;\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (!' + ($nextValid) + ') { for (var ' + ($i) + '=startErrs' + ($lvl) + '; ' + ($i) + '<errors; ' + ($i) + '++) { vErrors[' + ($i) + '].propertyName = ' + ($key) + '; } var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('propertyNames') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { propertyName: \\'' + ($invalidName) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'property name \\\\\\'' + ($invalidName) + '\\\\\\' is invalid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n if ($breakOnError) {\n out += ' break; ';\n }\n out += ' } }';\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n",
|
|
39
|
-
"'use strict';\nmodule.exports = function generate_required(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $vSchema = 'schema' + $lvl;\n if (!$isData) {\n if ($schema.length < it.opts.loopRequired && it.schema.properties && Object.keys(it.schema.properties).length) {\n var $required = [];\n var arr1 = $schema;\n if (arr1) {\n var $property, i1 = -1,\n l1 = arr1.length - 1;\n while (i1 < l1) {\n $property = arr1[i1 += 1];\n var $propertySch = it.schema.properties[$property];\n if (!($propertySch && (it.opts.strictKeywords ? (typeof $propertySch == 'object' && Object.keys($propertySch).length > 0) || $propertySch === false : it.util.schemaHasRules($propertySch, it.RULES.all)))) {\n $required[$required.length] = $property;\n }\n }\n }\n } else {\n var $required = $schema;\n }\n }\n if ($isData || $required.length) {\n var $currentErrorPath = it.errorPath,\n $loopRequired = $isData || $required.length >= it.opts.loopRequired,\n $ownProperties = it.opts.ownProperties;\n if ($breakOnError) {\n out += ' var missing' + ($lvl) + '; ';\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n out += ' var ' + ($valid) + ' = true; ';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { ' + ($valid) + ' = ' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += '; if (!' + ($valid) + ') break; } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n } else {\n out += ' if ( ';\n var arr2 = $required;\n if (arr2) {\n var $propertyKey, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $propertyKey = arr2[$i += 1];\n if ($i) {\n out += ' || ';\n }\n var $prop = it.util.getProperty($propertyKey),\n $useData = $data + $prop;\n out += ' ( ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n }\n }\n out += ') { ';\n var $propertyPath = 'missing' + $lvl,\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n }\n } else {\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n if ($isData) {\n out += ' if (' + ($vSchema) + ' && !Array.isArray(' + ($vSchema) + ')) { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (' + ($vSchema) + ' !== undefined) { ';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { if (' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ';\n if ($isData) {\n out += ' } ';\n }\n } else {\n var arr3 = $required;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $prop = it.util.getProperty($propertyKey),\n $missingProperty = it.util.escapeQuotes($propertyKey),\n $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n }\n }\n }\n }\n it.errorPath = $currentErrorPath;\n } else if ($breakOnError) {\n out += ' if (true) {';\n }\n return out;\n}\n",
|
|
40
|
-
"'use strict';\nmodule.exports = function generate_uniqueItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (($schema || $isData) && it.opts.uniqueItems !== false) {\n if ($isData) {\n out += ' var ' + ($valid) + '; if (' + ($schemaValue) + ' === false || ' + ($schemaValue) + ' === undefined) ' + ($valid) + ' = true; else if (typeof ' + ($schemaValue) + ' != \\'boolean\\') ' + ($valid) + ' = false; else { ';\n }\n out += ' var i = ' + ($data) + '.length , ' + ($valid) + ' = true , j; if (i > 1) { ';\n var $itemType = it.schema.items && it.schema.items.type,\n $typeIsArray = Array.isArray($itemType);\n if (!$itemType || $itemType == 'object' || $itemType == 'array' || ($typeIsArray && ($itemType.indexOf('object') >= 0 || $itemType.indexOf('array') >= 0))) {\n out += ' outer: for (;i--;) { for (j = i; j--;) { if (equal(' + ($data) + '[i], ' + ($data) + '[j])) { ' + ($valid) + ' = false; break outer; } } } ';\n } else {\n out += ' var itemIndices = {}, item; for (;i--;) { var item = ' + ($data) + '[i]; ';\n var $method = 'checkDataType' + ($typeIsArray ? 's' : '');\n out += ' if (' + (it.util[$method]($itemType, 'item', it.opts.strictNumbers, true)) + ') continue; ';\n if ($typeIsArray) {\n out += ' if (typeof item == \\'string\\') item = \\'\"\\' + item; ';\n }\n out += ' if (typeof itemIndices[item] == \\'number\\') { ' + ($valid) + ' = false; j = itemIndices[item]; break; } itemIndices[item] = i; } ';\n }\n out += ' } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('uniqueItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { i: i, j: j } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have duplicate items (items ## \\' + j + \\' and \\' + i + \\' are identical)\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n",
|
|
41
|
-
"'use strict';\n\n//all requires must be explicit because browserify won't work with dynamic requires\nmodule.exports = {\n '$ref': require('./ref'),\n allOf: require('./allOf'),\n anyOf: require('./anyOf'),\n '$comment': require('./comment'),\n const: require('./const'),\n contains: require('./contains'),\n dependencies: require('./dependencies'),\n 'enum': require('./enum'),\n format: require('./format'),\n 'if': require('./if'),\n items: require('./items'),\n maximum: require('./_limit'),\n minimum: require('./_limit'),\n maxItems: require('./_limitItems'),\n minItems: require('./_limitItems'),\n maxLength: require('./_limitLength'),\n minLength: require('./_limitLength'),\n maxProperties: require('./_limitProperties'),\n minProperties: require('./_limitProperties'),\n multipleOf: require('./multipleOf'),\n not: require('./not'),\n oneOf: require('./oneOf'),\n pattern: require('./pattern'),\n properties: require('./properties'),\n propertyNames: require('./propertyNames'),\n required: require('./required'),\n uniqueItems: require('./uniqueItems'),\n validate: require('./validate')\n};\n",
|
|
42
|
-
"'use strict';\n\nvar ruleModules = require('../dotjs')\n , toHash = require('./util').toHash;\n\nmodule.exports = function rules() {\n var RULES = [\n { type: 'number',\n rules: [ { 'maximum': ['exclusiveMaximum'] },\n { 'minimum': ['exclusiveMinimum'] }, 'multipleOf', 'format'] },\n { type: 'string',\n rules: [ 'maxLength', 'minLength', 'pattern', 'format' ] },\n { type: 'array',\n rules: [ 'maxItems', 'minItems', 'items', 'contains', 'uniqueItems' ] },\n { type: 'object',\n rules: [ 'maxProperties', 'minProperties', 'required', 'dependencies', 'propertyNames',\n { 'properties': ['additionalProperties', 'patternProperties'] } ] },\n { rules: [ '$ref', 'const', 'enum', 'not', 'anyOf', 'oneOf', 'allOf', 'if' ] }\n ];\n\n var ALL = [ 'type', '$comment' ];\n var KEYWORDS = [\n '$schema', '$id', 'id', '$data', '$async', 'title',\n 'description', 'default', 'definitions',\n 'examples', 'readOnly', 'writeOnly',\n 'contentMediaType', 'contentEncoding',\n 'additionalItems', 'then', 'else'\n ];\n var TYPES = [ 'number', 'integer', 'string', 'array', 'object', 'boolean', 'null' ];\n RULES.all = toHash(ALL);\n RULES.types = toHash(TYPES);\n\n RULES.forEach(function (group) {\n group.rules = group.rules.map(function (keyword) {\n var implKeywords;\n if (typeof keyword == 'object') {\n var key = Object.keys(keyword)[0];\n implKeywords = keyword[key];\n keyword = key;\n implKeywords.forEach(function (k) {\n ALL.push(k);\n RULES.all[k] = true;\n });\n }\n ALL.push(keyword);\n var rule = RULES.all[keyword] = {\n keyword: keyword,\n code: ruleModules[keyword],\n implements: implKeywords\n };\n return rule;\n });\n\n RULES.all.$comment = {\n keyword: '$comment',\n code: ruleModules.$comment\n };\n\n if (group.type) RULES.types[group.type] = group;\n });\n\n RULES.keywords = toHash(ALL.concat(KEYWORDS));\n RULES.custom = {};\n\n return RULES;\n};\n",
|
|
43
|
-
"'use strict';\n\nvar KEYWORDS = [\n 'multipleOf',\n 'maximum',\n 'exclusiveMaximum',\n 'minimum',\n 'exclusiveMinimum',\n 'maxLength',\n 'minLength',\n 'pattern',\n 'additionalItems',\n 'maxItems',\n 'minItems',\n 'uniqueItems',\n 'maxProperties',\n 'minProperties',\n 'required',\n 'additionalProperties',\n 'enum',\n 'format',\n 'const'\n];\n\nmodule.exports = function (metaSchema, keywordsJsonPointers) {\n for (var i=0; i<keywordsJsonPointers.length; i++) {\n metaSchema = JSON.parse(JSON.stringify(metaSchema));\n var segments = keywordsJsonPointers[i].split('/');\n var keywords = metaSchema;\n var j;\n for (j=1; j<segments.length; j++)\n keywords = keywords[segments[j]];\n\n for (j=0; j<KEYWORDS.length; j++) {\n var key = KEYWORDS[j];\n var schema = keywords[key];\n if (schema) {\n keywords[key] = {\n anyOf: [\n schema,\n { $ref: 'https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#' }\n ]\n };\n }\n }\n }\n\n return metaSchema;\n};\n",
|
|
44
|
-
"'use strict';\n\nvar MissingRefError = require('./error_classes').MissingRef;\n\nmodule.exports = compileAsync;\n\n\n/**\n * Creates validating function for passed schema with asynchronous loading of missing schemas.\n * `loadSchema` option should be a function that accepts schema uri and returns promise that resolves with the schema.\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Boolean} meta optional true to compile meta-schema; this parameter can be skipped\n * @param {Function} callback an optional node-style callback, it is called with 2 parameters: error (or null) and validating function.\n * @return {Promise} promise that resolves with a validating function.\n */\nfunction compileAsync(schema, meta, callback) {\n /* eslint no-shadow: 0 */\n /* global Promise */\n /* jshint validthis: true */\n var self = this;\n if (typeof this._opts.loadSchema != 'function')\n throw new Error('options.loadSchema should be a function');\n\n if (typeof meta == 'function') {\n callback = meta;\n meta = undefined;\n }\n\n var p = loadMetaSchemaOf(schema).then(function () {\n var schemaObj = self._addSchema(schema, undefined, meta);\n return schemaObj.validate || _compileAsync(schemaObj);\n });\n\n if (callback) {\n p.then(\n function(v) { callback(null, v); },\n callback\n );\n }\n\n return p;\n\n\n function loadMetaSchemaOf(sch) {\n var $schema = sch.$schema;\n return $schema && !self.getSchema($schema)\n ? compileAsync.call(self, { $ref: $schema }, true)\n : Promise.resolve();\n }\n\n\n function _compileAsync(schemaObj) {\n try { return self._compile(schemaObj); }\n catch(e) {\n if (e instanceof MissingRefError) return loadMissingSchema(e);\n throw e;\n }\n\n\n function loadMissingSchema(e) {\n var ref = e.missingSchema;\n if (added(ref)) throw new Error('Schema ' + ref + ' is loaded but ' + e.missingRef + ' cannot be resolved');\n\n var schemaPromise = self._loadingSchemas[ref];\n if (!schemaPromise) {\n schemaPromise = self._loadingSchemas[ref] = self._opts.loadSchema(ref);\n schemaPromise.then(removePromise, removePromise);\n }\n\n return schemaPromise.then(function (sch) {\n if (!added(ref)) {\n return loadMetaSchemaOf(sch).then(function () {\n if (!added(ref)) self.addSchema(sch, ref, undefined, meta);\n });\n }\n }).then(function() {\n return _compileAsync(schemaObj);\n });\n\n function removePromise() {\n delete self._loadingSchemas[ref];\n }\n\n function added(ref) {\n return self._refs[ref] || self._schemas[ref];\n }\n }\n }\n}\n",
|
|
45
|
-
"'use strict';\nmodule.exports = function generate_custom(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $rule = this,\n $definition = 'definition' + $lvl,\n $rDef = $rule.definition,\n $closingBraces = '';\n var $compile, $inline, $macro, $ruleValidate, $validateCode;\n if ($isData && $rDef.$data) {\n $validateCode = 'keywordValidate' + $lvl;\n var $validateSchema = $rDef.validateSchema;\n out += ' var ' + ($definition) + ' = RULES.custom[\\'' + ($keyword) + '\\'].definition; var ' + ($validateCode) + ' = ' + ($definition) + '.validate;';\n } else {\n $ruleValidate = it.useCustomRule($rule, $schema, it.schema, it);\n if (!$ruleValidate) return;\n $schemaValue = 'validate.schema' + $schemaPath;\n $validateCode = $ruleValidate.code;\n $compile = $rDef.compile;\n $inline = $rDef.inline;\n $macro = $rDef.macro;\n }\n var $ruleErrs = $validateCode + '.errors',\n $i = 'i' + $lvl,\n $ruleErr = 'ruleErr' + $lvl,\n $asyncKeyword = $rDef.async;\n if ($asyncKeyword && !it.async) throw new Error('async keyword in sync schema');\n if (!($inline || $macro)) {\n out += '' + ($ruleErrs) + ' = null;';\n }\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if ($isData && $rDef.$data) {\n $closingBraces += '}';\n out += ' if (' + ($schemaValue) + ' === undefined) { ' + ($valid) + ' = true; } else { ';\n if ($validateSchema) {\n $closingBraces += '}';\n out += ' ' + ($valid) + ' = ' + ($definition) + '.validateSchema(' + ($schemaValue) + '); if (' + ($valid) + ') { ';\n }\n }\n if ($inline) {\n if ($rDef.statements) {\n out += ' ' + ($ruleValidate.validate) + ' ';\n } else {\n out += ' ' + ($valid) + ' = ' + ($ruleValidate.validate) + '; ';\n }\n } else if ($macro) {\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n $it.schema = $ruleValidate.validate;\n $it.schemaPath = '';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var $code = it.validate($it).replace(/validate\\.schema/g, $validateCode);\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($code);\n } else {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n out += ' ' + ($validateCode) + '.call( ';\n if (it.opts.passContext) {\n out += 'this';\n } else {\n out += 'self';\n }\n if ($compile || $rDef.schema === false) {\n out += ' , ' + ($data) + ' ';\n } else {\n out += ' , ' + ($schemaValue) + ' , ' + ($data) + ' , validate.schema' + (it.schemaPath) + ' ';\n }\n out += ' , (dataPath || \\'\\')';\n if (it.errorPath != '\"\"') {\n out += ' + ' + (it.errorPath);\n }\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ' , rootData ) ';\n var def_callRuleValidate = out;\n out = $$outStack.pop();\n if ($rDef.errors === false) {\n out += ' ' + ($valid) + ' = ';\n if ($asyncKeyword) {\n out += 'await ';\n }\n out += '' + (def_callRuleValidate) + '; ';\n } else {\n if ($asyncKeyword) {\n $ruleErrs = 'customErrors' + $lvl;\n out += ' var ' + ($ruleErrs) + ' = null; try { ' + ($valid) + ' = await ' + (def_callRuleValidate) + '; } catch (e) { ' + ($valid) + ' = false; if (e instanceof ValidationError) ' + ($ruleErrs) + ' = e.errors; else throw e; } ';\n } else {\n out += ' ' + ($ruleErrs) + ' = null; ' + ($valid) + ' = ' + (def_callRuleValidate) + '; ';\n }\n }\n }\n if ($rDef.modifying) {\n out += ' if (' + ($parentData) + ') ' + ($data) + ' = ' + ($parentData) + '[' + ($parentDataProperty) + '];';\n }\n out += '' + ($closingBraces);\n if ($rDef.valid) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n } else {\n out += ' if ( ';\n if ($rDef.valid === undefined) {\n out += ' !';\n if ($macro) {\n out += '' + ($nextValid);\n } else {\n out += '' + ($valid);\n }\n } else {\n out += ' ' + (!$rDef.valid) + ' ';\n }\n out += ') { ';\n $errorKeyword = $rule.keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'custom') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \\'' + ($rule.keyword) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should pass \"' + ($rule.keyword) + '\" keyword validation\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n var def_customError = out;\n out = $$outStack.pop();\n if ($inline) {\n if ($rDef.errors) {\n if ($rDef.errors != 'full') {\n out += ' for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \\'\\') + ' + (it.errorPath) + '; if (' + ($ruleErr) + '.schemaPath === undefined) { ' + ($ruleErr) + '.schemaPath = \"' + ($errSchemaPath) + '\"; } ';\n if (it.opts.verbose) {\n out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';\n }\n out += ' } ';\n }\n } else {\n if ($rDef.errors === false) {\n out += ' ' + (def_customError) + ' ';\n } else {\n out += ' if (' + ($errs) + ' == errors) { ' + (def_customError) + ' } else { for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \\'\\') + ' + (it.errorPath) + '; if (' + ($ruleErr) + '.schemaPath === undefined) { ' + ($ruleErr) + '.schemaPath = \"' + ($errSchemaPath) + '\"; } ';\n if (it.opts.verbose) {\n out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';\n }\n out += ' } } ';\n }\n }\n } else if ($macro) {\n out += ' var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'custom') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \\'' + ($rule.keyword) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should pass \"' + ($rule.keyword) + '\" keyword validation\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n } else {\n if ($rDef.errors === false) {\n out += ' ' + (def_customError) + ' ';\n } else {\n out += ' if (Array.isArray(' + ($ruleErrs) + ')) { if (vErrors === null) vErrors = ' + ($ruleErrs) + '; else vErrors = vErrors.concat(' + ($ruleErrs) + '); errors = vErrors.length; for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \\'\\') + ' + (it.errorPath) + '; ' + ($ruleErr) + '.schemaPath = \"' + ($errSchemaPath) + '\"; ';\n if (it.opts.verbose) {\n out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';\n }\n out += ' } } else { ' + (def_customError) + ' } ';\n }\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n }\n return out;\n}\n",
|
|
46
|
-
"'use strict';\n\nvar metaSchema = require('./refs/json-schema-draft-07.json');\n\nmodule.exports = {\n $id: 'https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js',\n definitions: {\n simpleTypes: metaSchema.definitions.simpleTypes\n },\n type: 'object',\n dependencies: {\n schema: ['validate'],\n $data: ['validate'],\n statements: ['inline'],\n valid: {not: {required: ['macro']}}\n },\n properties: {\n type: metaSchema.properties.type,\n schema: {type: 'boolean'},\n statements: {type: 'boolean'},\n dependencies: {\n type: 'array',\n items: {type: 'string'}\n },\n metaSchema: {type: 'object'},\n modifying: {type: 'boolean'},\n valid: {type: 'boolean'},\n $data: {type: 'boolean'},\n async: {type: 'boolean'},\n errors: {\n anyOf: [\n {type: 'boolean'},\n {const: 'full'}\n ]\n }\n }\n};\n",
|
|
47
|
-
"'use strict';\n\nvar IDENTIFIER = /^[a-z_$][a-z0-9_$-]*$/i;\nvar customRuleCode = require('./dotjs/custom');\nvar definitionSchema = require('./definition_schema');\n\nmodule.exports = {\n add: addKeyword,\n get: getKeyword,\n remove: removeKeyword,\n validate: validateKeyword\n};\n\n\n/**\n * Define custom keyword\n * @this Ajv\n * @param {String} keyword custom keyword, should be unique (including different from all standard, custom and macro keywords).\n * @param {Object} definition keyword definition object with properties `type` (type(s) which the keyword applies to), `validate` or `compile`.\n * @return {Ajv} this for method chaining\n */\nfunction addKeyword(keyword, definition) {\n /* jshint validthis: true */\n /* eslint no-shadow: 0 */\n var RULES = this.RULES;\n if (RULES.keywords[keyword])\n throw new Error('Keyword ' + keyword + ' is already defined');\n\n if (!IDENTIFIER.test(keyword))\n throw new Error('Keyword ' + keyword + ' is not a valid identifier');\n\n if (definition) {\n this.validateKeyword(definition, true);\n\n var dataType = definition.type;\n if (Array.isArray(dataType)) {\n for (var i=0; i<dataType.length; i++)\n _addRule(keyword, dataType[i], definition);\n } else {\n _addRule(keyword, dataType, definition);\n }\n\n var metaSchema = definition.metaSchema;\n if (metaSchema) {\n if (definition.$data && this._opts.$data) {\n metaSchema = {\n anyOf: [\n metaSchema,\n { '$ref': 'https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#' }\n ]\n };\n }\n definition.validateSchema = this.compile(metaSchema, true);\n }\n }\n\n RULES.keywords[keyword] = RULES.all[keyword] = true;\n\n\n function _addRule(keyword, dataType, definition) {\n var ruleGroup;\n for (var i=0; i<RULES.length; i++) {\n var rg = RULES[i];\n if (rg.type == dataType) {\n ruleGroup = rg;\n break;\n }\n }\n\n if (!ruleGroup) {\n ruleGroup = { type: dataType, rules: [] };\n RULES.push(ruleGroup);\n }\n\n var rule = {\n keyword: keyword,\n definition: definition,\n custom: true,\n code: customRuleCode,\n implements: definition.implements\n };\n ruleGroup.rules.push(rule);\n RULES.custom[keyword] = rule;\n }\n\n return this;\n}\n\n\n/**\n * Get keyword\n * @this Ajv\n * @param {String} keyword pre-defined or custom keyword.\n * @return {Object|Boolean} custom keyword definition, `true` if it is a predefined keyword, `false` otherwise.\n */\nfunction getKeyword(keyword) {\n /* jshint validthis: true */\n var rule = this.RULES.custom[keyword];\n return rule ? rule.definition : this.RULES.keywords[keyword] || false;\n}\n\n\n/**\n * Remove keyword\n * @this Ajv\n * @param {String} keyword pre-defined or custom keyword.\n * @return {Ajv} this for method chaining\n */\nfunction removeKeyword(keyword) {\n /* jshint validthis: true */\n var RULES = this.RULES;\n delete RULES.keywords[keyword];\n delete RULES.all[keyword];\n delete RULES.custom[keyword];\n for (var i=0; i<RULES.length; i++) {\n var rules = RULES[i].rules;\n for (var j=0; j<rules.length; j++) {\n if (rules[j].keyword == keyword) {\n rules.splice(j, 1);\n break;\n }\n }\n }\n return this;\n}\n\n\n/**\n * Validate keyword definition\n * @this Ajv\n * @param {Object} definition keyword definition object.\n * @param {Boolean} throwError true to throw exception if definition is invalid\n * @return {boolean} validation result\n */\nfunction validateKeyword(definition, throwError) {\n validateKeyword.errors = null;\n var v = this._validateKeyword = this._validateKeyword\n || this.compile(definitionSchema, true);\n\n if (v(definition)) return true;\n validateKeyword.errors = v.errors;\n if (throwError)\n throw new Error('custom keyword definition is invalid: ' + this.errorsText(v.errors));\n else\n return false;\n}\n",
|
|
48
|
-
"'use strict';\n\nvar compileSchema = require('./compile')\n , resolve = require('./compile/resolve')\n , Cache = require('./cache')\n , SchemaObject = require('./compile/schema_obj')\n , stableStringify = require('fast-json-stable-stringify')\n , formats = require('./compile/formats')\n , rules = require('./compile/rules')\n , $dataMetaSchema = require('./data')\n , util = require('./compile/util');\n\nmodule.exports = Ajv;\n\nAjv.prototype.validate = validate;\nAjv.prototype.compile = compile;\nAjv.prototype.addSchema = addSchema;\nAjv.prototype.addMetaSchema = addMetaSchema;\nAjv.prototype.validateSchema = validateSchema;\nAjv.prototype.getSchema = getSchema;\nAjv.prototype.removeSchema = removeSchema;\nAjv.prototype.addFormat = addFormat;\nAjv.prototype.errorsText = errorsText;\n\nAjv.prototype._addSchema = _addSchema;\nAjv.prototype._compile = _compile;\n\nAjv.prototype.compileAsync = require('./compile/async');\nvar customKeyword = require('./keyword');\nAjv.prototype.addKeyword = customKeyword.add;\nAjv.prototype.getKeyword = customKeyword.get;\nAjv.prototype.removeKeyword = customKeyword.remove;\nAjv.prototype.validateKeyword = customKeyword.validate;\n\nvar errorClasses = require('./compile/error_classes');\nAjv.ValidationError = errorClasses.Validation;\nAjv.MissingRefError = errorClasses.MissingRef;\nAjv.$dataMetaSchema = $dataMetaSchema;\n\nvar META_SCHEMA_ID = 'http://json-schema.org/draft-07/schema';\n\nvar META_IGNORE_OPTIONS = [ 'removeAdditional', 'useDefaults', 'coerceTypes', 'strictDefaults' ];\nvar META_SUPPORT_DATA = ['/properties'];\n\n/**\n * Creates validator instance.\n * Usage: `Ajv(opts)`\n * @param {Object} opts optional options\n * @return {Object} ajv instance\n */\nfunction Ajv(opts) {\n if (!(this instanceof Ajv)) return new Ajv(opts);\n opts = this._opts = util.copy(opts) || {};\n setLogger(this);\n this._schemas = {};\n this._refs = {};\n this._fragments = {};\n this._formats = formats(opts.format);\n\n this._cache = opts.cache || new Cache;\n this._loadingSchemas = {};\n this._compilations = [];\n this.RULES = rules();\n this._getId = chooseGetId(opts);\n\n opts.loopRequired = opts.loopRequired || Infinity;\n if (opts.errorDataPath == 'property') opts._errorDataPathProperty = true;\n if (opts.serialize === undefined) opts.serialize = stableStringify;\n this._metaOpts = getMetaSchemaOptions(this);\n\n if (opts.formats) addInitialFormats(this);\n if (opts.keywords) addInitialKeywords(this);\n addDefaultMetaSchema(this);\n if (typeof opts.meta == 'object') this.addMetaSchema(opts.meta);\n if (opts.nullable) this.addKeyword('nullable', {metaSchema: {type: 'boolean'}});\n addInitialSchemas(this);\n}\n\n\n\n/**\n * Validate data using schema\n * Schema will be compiled and cached (using serialized JSON as key. [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) is used to serialize.\n * @this Ajv\n * @param {String|Object} schemaKeyRef key, ref or schema object\n * @param {Any} data to be validated\n * @return {Boolean} validation result. Errors from the last validation will be available in `ajv.errors` (and also in compiled schema: `schema.errors`).\n */\nfunction validate(schemaKeyRef, data) {\n var v;\n if (typeof schemaKeyRef == 'string') {\n v = this.getSchema(schemaKeyRef);\n if (!v) throw new Error('no schema with key or ref \"' + schemaKeyRef + '\"');\n } else {\n var schemaObj = this._addSchema(schemaKeyRef);\n v = schemaObj.validate || this._compile(schemaObj);\n }\n\n var valid = v(data);\n if (v.$async !== true) this.errors = v.errors;\n return valid;\n}\n\n\n/**\n * Create validating function for passed schema.\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Boolean} _meta true if schema is a meta-schema. Used internally to compile meta schemas of custom keywords.\n * @return {Function} validating function\n */\nfunction compile(schema, _meta) {\n var schemaObj = this._addSchema(schema, undefined, _meta);\n return schemaObj.validate || this._compile(schemaObj);\n}\n\n\n/**\n * Adds schema to the instance.\n * @this Ajv\n * @param {Object|Array} schema schema or array of schemas. If array is passed, `key` and other parameters will be ignored.\n * @param {String} key Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.\n * @param {Boolean} _skipValidation true to skip schema validation. Used internally, option validateSchema should be used instead.\n * @param {Boolean} _meta true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.\n * @return {Ajv} this for method chaining\n */\nfunction addSchema(schema, key, _skipValidation, _meta) {\n if (Array.isArray(schema)){\n for (var i=0; i<schema.length; i++) this.addSchema(schema[i], undefined, _skipValidation, _meta);\n return this;\n }\n var id = this._getId(schema);\n if (id !== undefined && typeof id != 'string')\n throw new Error('schema id must be string');\n key = resolve.normalizeId(key || id);\n checkUnique(this, key);\n this._schemas[key] = this._addSchema(schema, _skipValidation, _meta, true);\n return this;\n}\n\n\n/**\n * Add schema that will be used to validate other schemas\n * options in META_IGNORE_OPTIONS are alway set to false\n * @this Ajv\n * @param {Object} schema schema object\n * @param {String} key optional schema key\n * @param {Boolean} skipValidation true to skip schema validation, can be used to override validateSchema option for meta-schema\n * @return {Ajv} this for method chaining\n */\nfunction addMetaSchema(schema, key, skipValidation) {\n this.addSchema(schema, key, skipValidation, true);\n return this;\n}\n\n\n/**\n * Validate schema\n * @this Ajv\n * @param {Object} schema schema to validate\n * @param {Boolean} throwOrLogError pass true to throw (or log) an error if invalid\n * @return {Boolean} true if schema is valid\n */\nfunction validateSchema(schema, throwOrLogError) {\n var $schema = schema.$schema;\n if ($schema !== undefined && typeof $schema != 'string')\n throw new Error('$schema must be a string');\n $schema = $schema || this._opts.defaultMeta || defaultMeta(this);\n if (!$schema) {\n this.logger.warn('meta-schema not available');\n this.errors = null;\n return true;\n }\n var valid = this.validate($schema, schema);\n if (!valid && throwOrLogError) {\n var message = 'schema is invalid: ' + this.errorsText();\n if (this._opts.validateSchema == 'log') this.logger.error(message);\n else throw new Error(message);\n }\n return valid;\n}\n\n\nfunction defaultMeta(self) {\n var meta = self._opts.meta;\n self._opts.defaultMeta = typeof meta == 'object'\n ? self._getId(meta) || meta\n : self.getSchema(META_SCHEMA_ID)\n ? META_SCHEMA_ID\n : undefined;\n return self._opts.defaultMeta;\n}\n\n\n/**\n * Get compiled schema from the instance by `key` or `ref`.\n * @this Ajv\n * @param {String} keyRef `key` that was passed to `addSchema` or full schema reference (`schema.id` or resolved id).\n * @return {Function} schema validating function (with property `schema`).\n */\nfunction getSchema(keyRef) {\n var schemaObj = _getSchemaObj(this, keyRef);\n switch (typeof schemaObj) {\n case 'object': return schemaObj.validate || this._compile(schemaObj);\n case 'string': return this.getSchema(schemaObj);\n case 'undefined': return _getSchemaFragment(this, keyRef);\n }\n}\n\n\nfunction _getSchemaFragment(self, ref) {\n var res = resolve.schema.call(self, { schema: {} }, ref);\n if (res) {\n var schema = res.schema\n , root = res.root\n , baseId = res.baseId;\n var v = compileSchema.call(self, schema, root, undefined, baseId);\n self._fragments[ref] = new SchemaObject({\n ref: ref,\n fragment: true,\n schema: schema,\n root: root,\n baseId: baseId,\n validate: v\n });\n return v;\n }\n}\n\n\nfunction _getSchemaObj(self, keyRef) {\n keyRef = resolve.normalizeId(keyRef);\n return self._schemas[keyRef] || self._refs[keyRef] || self._fragments[keyRef];\n}\n\n\n/**\n * Remove cached schema(s).\n * If no parameter is passed all schemas but meta-schemas are removed.\n * If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.\n * Even if schema is referenced by other schemas it still can be removed as other schemas have local references.\n * @this Ajv\n * @param {String|Object|RegExp} schemaKeyRef key, ref, pattern to match key/ref or schema object\n * @return {Ajv} this for method chaining\n */\nfunction removeSchema(schemaKeyRef) {\n if (schemaKeyRef instanceof RegExp) {\n _removeAllSchemas(this, this._schemas, schemaKeyRef);\n _removeAllSchemas(this, this._refs, schemaKeyRef);\n return this;\n }\n switch (typeof schemaKeyRef) {\n case 'undefined':\n _removeAllSchemas(this, this._schemas);\n _removeAllSchemas(this, this._refs);\n this._cache.clear();\n return this;\n case 'string':\n var schemaObj = _getSchemaObj(this, schemaKeyRef);\n if (schemaObj) this._cache.del(schemaObj.cacheKey);\n delete this._schemas[schemaKeyRef];\n delete this._refs[schemaKeyRef];\n return this;\n case 'object':\n var serialize = this._opts.serialize;\n var cacheKey = serialize ? serialize(schemaKeyRef) : schemaKeyRef;\n this._cache.del(cacheKey);\n var id = this._getId(schemaKeyRef);\n if (id) {\n id = resolve.normalizeId(id);\n delete this._schemas[id];\n delete this._refs[id];\n }\n }\n return this;\n}\n\n\nfunction _removeAllSchemas(self, schemas, regex) {\n for (var keyRef in schemas) {\n var schemaObj = schemas[keyRef];\n if (!schemaObj.meta && (!regex || regex.test(keyRef))) {\n self._cache.del(schemaObj.cacheKey);\n delete schemas[keyRef];\n }\n }\n}\n\n\n/* @this Ajv */\nfunction _addSchema(schema, skipValidation, meta, shouldAddSchema) {\n if (typeof schema != 'object' && typeof schema != 'boolean')\n throw new Error('schema should be object or boolean');\n var serialize = this._opts.serialize;\n var cacheKey = serialize ? serialize(schema) : schema;\n var cached = this._cache.get(cacheKey);\n if (cached) return cached;\n\n shouldAddSchema = shouldAddSchema || this._opts.addUsedSchema !== false;\n\n var id = resolve.normalizeId(this._getId(schema));\n if (id && shouldAddSchema) checkUnique(this, id);\n\n var willValidate = this._opts.validateSchema !== false && !skipValidation;\n var recursiveMeta;\n if (willValidate && !(recursiveMeta = id && id == resolve.normalizeId(schema.$schema)))\n this.validateSchema(schema, true);\n\n var localRefs = resolve.ids.call(this, schema);\n\n var schemaObj = new SchemaObject({\n id: id,\n schema: schema,\n localRefs: localRefs,\n cacheKey: cacheKey,\n meta: meta\n });\n\n if (id[0] != '#' && shouldAddSchema) this._refs[id] = schemaObj;\n this._cache.put(cacheKey, schemaObj);\n\n if (willValidate && recursiveMeta) this.validateSchema(schema, true);\n\n return schemaObj;\n}\n\n\n/* @this Ajv */\nfunction _compile(schemaObj, root) {\n if (schemaObj.compiling) {\n schemaObj.validate = callValidate;\n callValidate.schema = schemaObj.schema;\n callValidate.errors = null;\n callValidate.root = root ? root : callValidate;\n if (schemaObj.schema.$async === true)\n callValidate.$async = true;\n return callValidate;\n }\n schemaObj.compiling = true;\n\n var currentOpts;\n if (schemaObj.meta) {\n currentOpts = this._opts;\n this._opts = this._metaOpts;\n }\n\n var v;\n try { v = compileSchema.call(this, schemaObj.schema, root, schemaObj.localRefs); }\n catch(e) {\n delete schemaObj.validate;\n throw e;\n }\n finally {\n schemaObj.compiling = false;\n if (schemaObj.meta) this._opts = currentOpts;\n }\n\n schemaObj.validate = v;\n schemaObj.refs = v.refs;\n schemaObj.refVal = v.refVal;\n schemaObj.root = v.root;\n return v;\n\n\n /* @this {*} - custom context, see passContext option */\n function callValidate() {\n /* jshint validthis: true */\n var _validate = schemaObj.validate;\n var result = _validate.apply(this, arguments);\n callValidate.errors = _validate.errors;\n return result;\n }\n}\n\n\nfunction chooseGetId(opts) {\n switch (opts.schemaId) {\n case 'auto': return _get$IdOrId;\n case 'id': return _getId;\n default: return _get$Id;\n }\n}\n\n/* @this Ajv */\nfunction _getId(schema) {\n if (schema.$id) this.logger.warn('schema $id ignored', schema.$id);\n return schema.id;\n}\n\n/* @this Ajv */\nfunction _get$Id(schema) {\n if (schema.id) this.logger.warn('schema id ignored', schema.id);\n return schema.$id;\n}\n\n\nfunction _get$IdOrId(schema) {\n if (schema.$id && schema.id && schema.$id != schema.id)\n throw new Error('schema $id is different from id');\n return schema.$id || schema.id;\n}\n\n\n/**\n * Convert array of error message objects to string\n * @this Ajv\n * @param {Array<Object>} errors optional array of validation errors, if not passed errors from the instance are used.\n * @param {Object} options optional options with properties `separator` and `dataVar`.\n * @return {String} human readable string with all errors descriptions\n */\nfunction errorsText(errors, options) {\n errors = errors || this.errors;\n if (!errors) return 'No errors';\n options = options || {};\n var separator = options.separator === undefined ? ', ' : options.separator;\n var dataVar = options.dataVar === undefined ? 'data' : options.dataVar;\n\n var text = '';\n for (var i=0; i<errors.length; i++) {\n var e = errors[i];\n if (e) text += dataVar + e.dataPath + ' ' + e.message + separator;\n }\n return text.slice(0, -separator.length);\n}\n\n\n/**\n * Add custom format\n * @this Ajv\n * @param {String} name format name\n * @param {String|RegExp|Function} format string is converted to RegExp; function should return boolean (true when valid)\n * @return {Ajv} this for method chaining\n */\nfunction addFormat(name, format) {\n if (typeof format == 'string') format = new RegExp(format);\n this._formats[name] = format;\n return this;\n}\n\n\nfunction addDefaultMetaSchema(self) {\n var $dataSchema;\n if (self._opts.$data) {\n $dataSchema = require('./refs/data.json');\n self.addMetaSchema($dataSchema, $dataSchema.$id, true);\n }\n if (self._opts.meta === false) return;\n var metaSchema = require('./refs/json-schema-draft-07.json');\n if (self._opts.$data) metaSchema = $dataMetaSchema(metaSchema, META_SUPPORT_DATA);\n self.addMetaSchema(metaSchema, META_SCHEMA_ID, true);\n self._refs['http://json-schema.org/schema'] = META_SCHEMA_ID;\n}\n\n\nfunction addInitialSchemas(self) {\n var optsSchemas = self._opts.schemas;\n if (!optsSchemas) return;\n if (Array.isArray(optsSchemas)) self.addSchema(optsSchemas);\n else for (var key in optsSchemas) self.addSchema(optsSchemas[key], key);\n}\n\n\nfunction addInitialFormats(self) {\n for (var name in self._opts.formats) {\n var format = self._opts.formats[name];\n self.addFormat(name, format);\n }\n}\n\n\nfunction addInitialKeywords(self) {\n for (var name in self._opts.keywords) {\n var keyword = self._opts.keywords[name];\n self.addKeyword(name, keyword);\n }\n}\n\n\nfunction checkUnique(self, id) {\n if (self._schemas[id] || self._refs[id])\n throw new Error('schema with key or id \"' + id + '\" already exists');\n}\n\n\nfunction getMetaSchemaOptions(self) {\n var metaOpts = util.copy(self._opts);\n for (var i=0; i<META_IGNORE_OPTIONS.length; i++)\n delete metaOpts[META_IGNORE_OPTIONS[i]];\n return metaOpts;\n}\n\n\nfunction setLogger(self) {\n var logger = self._opts.logger;\n if (logger === false) {\n self.logger = {log: noop, warn: noop, error: noop};\n } else {\n if (logger === undefined) logger = console;\n if (!(typeof logger == 'object' && logger.log && logger.warn && logger.error))\n throw new Error('logger must implement log, warn and error methods');\n self.logger = logger;\n }\n}\n\n\nfunction noop() {}\n",
|
|
49
|
-
"export var util;\n(function (util) {\n util.assertEqual = (_) => { };\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && Number.isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array.map((val) => (typeof val === \"string\" ? `'${val}'` : val)).join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nexport var objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nexport const ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nexport const getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return Number.isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n",
|
|
50
|
-
"import { util } from \"./helpers/util.js\";\nexport const ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\",\n]);\nexport const quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nexport class ZodError extends Error {\n get errors() {\n return this.issues;\n }\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n format(_mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n static assert(value) {\n if (!(value instanceof ZodError)) {\n throw new Error(`Not a ZodError: ${value}`);\n }\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n const firstEl = sub.path[0];\n fieldErrors[firstEl] = fieldErrors[firstEl] || [];\n fieldErrors[firstEl].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n",
|
|
51
|
-
"import { ZodIssueCode } from \"../ZodError.js\";\nimport { util, ZodParsedType } from \"../helpers/util.js\";\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"includes\" in issue.validation) {\n message = `Invalid input: must include \"${issue.validation.includes}\"`;\n if (typeof issue.validation.position === \"number\") {\n message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;\n }\n }\n else if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n }\n else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n }\n else {\n util.assertNever(issue.validation);\n }\n }\n else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n }\n else {\n message = \"Invalid\";\n }\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"bigint\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue.minimum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"bigint\")\n message = `BigInt must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue.maximum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\nexport default errorMap;\n",
|
|
52
|
-
"import defaultErrorMap from \"./locales/en.js\";\nlet overrideErrorMap = defaultErrorMap;\nexport { defaultErrorMap };\nexport function setErrorMap(map) {\n overrideErrorMap = map;\n}\nexport function getErrorMap() {\n return overrideErrorMap;\n}\n",
|
|
53
|
-
"import { getErrorMap } from \"../errors.js\";\nimport defaultErrorMap from \"../locales/en.js\";\nexport const makeIssue = (params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...(issueData.path || [])];\n const fullIssue = {\n ...issueData,\n path: fullPath,\n };\n if (issueData.message !== undefined) {\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message,\n };\n }\n let errorMessage = \"\";\n const maps = errorMaps\n .filter((m) => !!m)\n .slice()\n .reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: errorMessage,\n };\n};\nexport const EMPTY_PATH = [];\nexport function addIssueToContext(ctx, issueData) {\n const overrideMap = getErrorMap();\n const issue = makeIssue({\n issueData: issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap, // contextual error map is first priority\n ctx.schemaErrorMap, // then schema-bound map if available\n overrideMap, // then global override map\n overrideMap === defaultErrorMap ? undefined : defaultErrorMap, // then global default map\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nexport class ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return INVALID;\n if (value.status === \"aborted\")\n return INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (key.value !== \"__proto__\" && (typeof value.value !== \"undefined\" || pair.alwaysSet)) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nexport const INVALID = Object.freeze({\n status: \"aborted\",\n});\nexport const DIRTY = (value) => ({ status: \"dirty\", value });\nexport const OK = (value) => ({ status: \"valid\", value });\nexport const isAborted = (x) => x.status === \"aborted\";\nexport const isDirty = (x) => x.status === \"dirty\";\nexport const isValid = (x) => x.status === \"valid\";\nexport const isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\n",
|
|
54
|
-
"export var errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n // biome-ignore lint:\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message?.message;\n})(errorUtil || (errorUtil = {}));\n",
|
|
55
|
-
"import { ZodError, ZodIssueCode, } from \"./ZodError.js\";\nimport { defaultErrorMap, getErrorMap } from \"./errors.js\";\nimport { errorUtil } from \"./helpers/errorUtil.js\";\nimport { DIRTY, INVALID, OK, ParseStatus, addIssueToContext, isAborted, isAsync, isDirty, isValid, makeIssue, } from \"./helpers/parseUtil.js\";\nimport { util, ZodParsedType, getParsedType } from \"./helpers/util.js\";\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this._cachedPath = [];\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n if (!this._cachedPath.length) {\n if (Array.isArray(this._key)) {\n this._cachedPath.push(...this._path, ...this._key);\n }\n else {\n this._cachedPath.push(...this._path, this._key);\n }\n }\n return this._cachedPath;\n }\n}\nconst handleResult = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n }\n else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n return {\n success: false,\n get error() {\n if (this._error)\n return this._error;\n const error = new ZodError(ctx.common.issues);\n this._error = error;\n return this._error;\n },\n };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap, invalid_type_error, required_error, description } = params;\n if (errorMap && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap)\n return { errorMap: errorMap, description };\n const customMap = (iss, ctx) => {\n const { message } = params;\n if (iss.code === \"invalid_enum_value\") {\n return { message: message ?? ctx.defaultError };\n }\n if (typeof ctx.data === \"undefined\") {\n return { message: message ?? required_error ?? ctx.defaultError };\n }\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n return { message: message ?? invalid_type_error ?? ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nexport class ZodType {\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n });\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n },\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n const ctx = {\n common: {\n issues: [],\n async: params?.async ?? false,\n contextualErrorMap: params?.errorMap,\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n \"~validate\"(data) {\n const ctx = {\n common: {\n issues: [],\n async: !!this[\"~standard\"].async,\n },\n path: [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n if (!this[\"~standard\"].async) {\n try {\n const result = this._parseSync({ data, path: [], parent: ctx });\n return isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n };\n }\n catch (err) {\n if (err?.message?.toLowerCase()?.includes(\"encountered\")) {\n this[\"~standard\"].async = true;\n }\n ctx.common = {\n issues: [],\n async: true,\n };\n }\n }\n return this._parseAsync({ data, path: [], parent: ctx }).then((result) => isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n });\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params?.errorMap,\n async: true,\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n }\n else if (typeof message === \"function\") {\n return message(val);\n }\n else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val),\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\" ? refinementData(val, ctx) : refinementData);\n return false;\n }\n else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement },\n });\n }\n superRefine(refinement) {\n return this._refinement(refinement);\n }\n constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.readonly = this.readonly.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n this[\"~standard\"] = {\n version: 1,\n vendor: \"zod\",\n validate: (data) => this[\"~validate\"](data),\n };\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def),\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n pipe(target) {\n return ZodPipeline.create(this, target);\n }\n readonly() {\n return ZodReadonly.create(this);\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst cuid2Regex = /^[0-9a-z]+$/;\nconst ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i;\n// const uuidRegex =\n// /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\nconst uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\nconst nanoidRegex = /^[a-z0-9_-]{21}$/i;\nconst jwtRegex = /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/;\nconst durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n//old email regex\n// const emailRegex = /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@((?!-)([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{1,})[^-<>()[\\].,;:\\s@\"]$/i;\n// eslint-disable-next-line\n// const emailRegex =\n// /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\])|(\\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\\.[A-Za-z]{2,})+))$/;\n// const emailRegex =\n// /^[a-zA-Z0-9\\.\\!\\#\\$\\%\\&\\'\\*\\+\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~\\-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// const emailRegex =\n// /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i;\nconst emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\n// const emailRegex =\n// /^[a-z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\\.[a-z0-9\\-]+)*$/i;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nlet emojiRegex;\n// faster, simpler, safer\nconst ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nconst ipv4CidrRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/;\n// const ipv6Regex =\n// /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;\nconst ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;\nconst ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nconst base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;\n// https://base64.guru/standards/base64url\nconst base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/;\n// simple\n// const dateRegexSource = `\\\\d{4}-\\\\d{2}-\\\\d{2}`;\n// no leap year validation\n// const dateRegexSource = `\\\\d{4}-((0[13578]|10|12)-31|(0[13-9]|1[0-2])-30|(0[1-9]|1[0-2])-(0[1-9]|1\\\\d|2\\\\d))`;\n// with leap year validation\nconst dateRegexSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateRegex = new RegExp(`^${dateRegexSource}$`);\nfunction timeRegexSource(args) {\n let secondsRegexSource = `[0-5]\\\\d`;\n if (args.precision) {\n secondsRegexSource = `${secondsRegexSource}\\\\.\\\\d{${args.precision}}`;\n }\n else if (args.precision == null) {\n secondsRegexSource = `${secondsRegexSource}(\\\\.\\\\d+)?`;\n }\n const secondsQuantifier = args.precision ? \"+\" : \"?\"; // require seconds if precision is nonzero\n return `([01]\\\\d|2[0-3]):[0-5]\\\\d(:${secondsRegexSource})${secondsQuantifier}`;\n}\nfunction timeRegex(args) {\n return new RegExp(`^${timeRegexSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function datetimeRegex(args) {\n let regex = `${dateRegexSource}T${timeRegexSource(args)}`;\n const opts = [];\n opts.push(args.local ? `Z?` : `Z`);\n if (args.offset)\n opts.push(`([+-]\\\\d{2}:?\\\\d{2})`);\n regex = `${regex}(${opts.join(\"|\")})`;\n return new RegExp(`^${regex}$`);\n}\nfunction isValidIP(ip, version) {\n if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n return true;\n }\n return false;\n}\nfunction isValidJWT(jwt, alg) {\n if (!jwtRegex.test(jwt))\n return false;\n try {\n const [header] = jwt.split(\".\");\n if (!header)\n return false;\n // Convert base64url to base64\n const base64 = header\n .replace(/-/g, \"+\")\n .replace(/_/g, \"/\")\n .padEnd(header.length + ((4 - (header.length % 4)) % 4), \"=\");\n const decoded = JSON.parse(atob(base64));\n if (typeof decoded !== \"object\" || decoded === null)\n return false;\n if (\"typ\" in decoded && decoded?.typ !== \"JWT\")\n return false;\n if (!decoded.alg)\n return false;\n if (alg && decoded.alg !== alg)\n return false;\n return true;\n }\n catch {\n return false;\n }\n}\nfunction isValidCidr(ip, version) {\n if ((version === \"v4\" || !version) && ipv4CidrRegex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6CidrRegex.test(ip)) {\n return true;\n }\n return false;\n}\nexport class ZodString extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = String(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"length\") {\n const tooBig = input.data.length > check.value;\n const tooSmall = input.data.length < check.value;\n if (tooBig || tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n if (tooBig) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n else if (tooSmall) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n status.dirty();\n }\n }\n else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"emoji\") {\n if (!emojiRegex) {\n emojiRegex = new RegExp(_emojiRegex, \"u\");\n }\n if (!emojiRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"emoji\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"nanoid\") {\n if (!nanoidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"nanoid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid2\") {\n if (!cuid2Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid2\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ulid\") {\n if (!ulidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ulid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n }\n catch {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n }\n else if (check.kind === \"includes\") {\n if (!input.data.includes(check.value, check.position)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { includes: check.value, position: check.position },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"toLowerCase\") {\n input.data = input.data.toLowerCase();\n }\n else if (check.kind === \"toUpperCase\") {\n input.data = input.data.toUpperCase();\n }\n else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"datetime\") {\n const regex = datetimeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"datetime\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"date\") {\n const regex = dateRegex;\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"date\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"time\") {\n const regex = timeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"time\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"duration\") {\n if (!durationRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"duration\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ip\") {\n if (!isValidIP(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ip\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"jwt\") {\n if (!isValidJWT(input.data, check.alg)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"jwt\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cidr\") {\n if (!isValidCidr(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cidr\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64\") {\n if (!base64Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64url\") {\n if (!base64urlRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _regex(regex, validation, message) {\n return this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message),\n });\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n nanoid(message) {\n return this._addCheck({ kind: \"nanoid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n }\n base64(message) {\n return this._addCheck({ kind: \"base64\", ...errorUtil.errToObj(message) });\n }\n base64url(message) {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return this._addCheck({\n kind: \"base64url\",\n ...errorUtil.errToObj(message),\n });\n }\n jwt(options) {\n return this._addCheck({ kind: \"jwt\", ...errorUtil.errToObj(options) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options) });\n }\n cidr(options) {\n return this._addCheck({ kind: \"cidr\", ...errorUtil.errToObj(options) });\n }\n datetime(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: false,\n local: false,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"datetime\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n offset: options?.offset ?? false,\n local: options?.local ?? false,\n ...errorUtil.errToObj(options?.message),\n });\n }\n date(message) {\n return this._addCheck({ kind: \"date\", message });\n }\n time(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"time\",\n precision: null,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"time\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n ...errorUtil.errToObj(options?.message),\n });\n }\n duration(message) {\n return this._addCheck({ kind: \"duration\", ...errorUtil.errToObj(message) });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil.errToObj(message),\n });\n }\n includes(value, options) {\n return this._addCheck({\n kind: \"includes\",\n value: value,\n position: options?.position,\n ...errorUtil.errToObj(options?.message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil.errToObj(message),\n });\n }\n /**\n * Equivalent to `.min(1)`\n */\n nonempty(message) {\n return this.min(1, errorUtil.errToObj(message));\n }\n trim() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }],\n });\n }\n toLowerCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }],\n });\n }\n toUpperCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }],\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isDate() {\n return !!this._def.checks.find((ch) => ch.kind === \"date\");\n }\n get isTime() {\n return !!this._def.checks.find((ch) => ch.kind === \"time\");\n }\n get isDuration() {\n return !!this._def.checks.find((ch) => ch.kind === \"duration\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isNANOID() {\n return !!this._def.checks.find((ch) => ch.kind === \"nanoid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n }\n get isCIDR() {\n return !!this._def.checks.find((ch) => ch.kind === \"cidr\");\n }\n get isBase64() {\n return !!this._def.checks.find((ch) => ch.kind === \"base64\");\n }\n get isBase64url() {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return !!this._def.checks.find((ch) => ch.kind === \"base64url\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodString.create = (params) => {\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / 10 ** decCount;\n}\nexport class ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = Number(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"finite\") {\n if (!Number.isFinite(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_finite,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil.toString(message),\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil.toString(message),\n });\n }\n safe(message) {\n return this._addCheck({\n kind: \"min\",\n inclusive: true,\n value: Number.MIN_SAFE_INTEGER,\n message: errorUtil.toString(message),\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\" || (ch.kind === \"multipleOf\" && util.isInteger(ch.value)));\n }\n get isFinite() {\n let max = null;\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" || ch.kind === \"int\" || ch.kind === \"multipleOf\") {\n return true;\n }\n else if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n else if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return Number.isFinite(min) && Number.isFinite(max);\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class ZodBigInt extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n }\n _parse(input) {\n if (this._def.coerce) {\n try {\n input.data = BigInt(input.data);\n }\n catch {\n return this._getInvalidInput(input);\n }\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n return this._getInvalidInput(input);\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n type: \"bigint\",\n minimum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n type: \"bigint\",\n maximum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (input.data % check.value !== BigInt(0)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _getInvalidInput(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodBigInt({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodBigInt({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodBigInt.create = (params) => {\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\nexport class ZodBoolean extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = Boolean(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class ZodDate extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = new Date(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (Number.isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n exact: false,\n minimum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n exact: false,\n maximum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime()),\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: params?.coerce || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nexport class ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.symbol,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params),\n });\n};\nexport class ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nexport class ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nexport class ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nexport class ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nexport class ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nexport class ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nexport class ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (def.exactLength !== null) {\n const tooBig = ctx.data.length > def.exactLength.value;\n const tooSmall = ctx.data.length < def.exactLength.value;\n if (tooBig || tooSmall) {\n addIssueToContext(ctx, {\n code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,\n minimum: (tooSmall ? def.exactLength.value : undefined),\n maximum: (tooBig ? def.exactLength.value : undefined),\n type: \"array\",\n inclusive: true,\n exact: true,\n message: def.exactLength.message,\n });\n status.dirty();\n }\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.minLength.message,\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.maxLength.message,\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all([...ctx.data].map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result) => {\n return ParseStatus.mergeArray(status, result);\n });\n }\n const result = [...ctx.data].map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil.toString(message) },\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params),\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape,\n });\n }\n else if (schema instanceof ZodArray) {\n return new ZodArray({\n ...schema._def,\n type: deepPartialify(schema.element),\n });\n }\n else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n }\n else {\n return schema;\n }\n}\nexport class ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n /**\n * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n * If you want to pass through unknown properties, use `.passthrough()` instead.\n */\n this.nonstrict = this.passthrough;\n // extend<\n // Augmentation extends ZodRawShape,\n // NewOutput extends util.flatten<{\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // }>,\n // NewInput extends util.flatten<{\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }>\n // >(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<T, Augmentation>,\n // UnknownKeys,\n // Catchall,\n // NewOutput,\n // NewInput\n // > {\n // return new ZodObject({\n // ...this._def,\n // shape: () => ({\n // ...this._def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // }\n /**\n * @deprecated Use `.extend` instead\n * */\n this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n this._cached = { shape, keys };\n return this._cached;\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever && this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] },\n });\n }\n }\n else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") {\n }\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...(message !== undefined\n ? {\n errorMap: (issue, ctx) => {\n const defaultError = this._def.errorMap?.(issue, ctx).message ?? ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: errorUtil.errToObj(message).message ?? defaultError,\n };\n return {\n message: defaultError,\n };\n },\n }\n : {}),\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\",\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\",\n });\n }\n // const AugmentFactory =\n // <Def extends ZodObjectDef>(def: Def) =>\n // <Augmentation extends ZodRawShape>(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<ReturnType<Def[\"shape\"]>, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(augmentation) {\n return new ZodObject({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...augmentation,\n }),\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...merging._def.shape(),\n }),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n });\n return merged;\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n // merge<Incoming extends AnyZodObject>(\n // merging: Incoming\n // ): //ZodObject<T & Incoming[\"_shape\"], UnknownKeys, Catchall> = (merging) => {\n // ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index,\n });\n }\n pick(mask) {\n const shape = {};\n for (const key of util.objectKeys(mask)) {\n if (mask[key] && this.shape[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n omit(mask) {\n const shape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (!mask[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n const fieldSchema = this.shape[key];\n if (mask && !mask[key]) {\n newShape[key] = fieldSchema;\n }\n else {\n newShape[key] = fieldSchema.optional();\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n required(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (mask && !mask[key]) {\n newShape[key] = this.shape[key];\n }\n else {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nexport class ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n // return first issue-free validation if it exists\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n // add issues from dirty option\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n // return invalid\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n }),\n ctx: childCtx,\n };\n })).then(handleResults);\n }\n else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n });\n if (result.status === \"valid\") {\n return result;\n }\n else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues) => new ZodError(issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\n////////// //////////\n////////// ZodDiscriminatedUnion //////////\n////////// //////////\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\nconst getDiscriminator = (type) => {\n if (type instanceof ZodLazy) {\n return getDiscriminator(type.schema);\n }\n else if (type instanceof ZodEffects) {\n return getDiscriminator(type.innerType());\n }\n else if (type instanceof ZodLiteral) {\n return [type.value];\n }\n else if (type instanceof ZodEnum) {\n return type.options;\n }\n else if (type instanceof ZodNativeEnum) {\n // eslint-disable-next-line ban/ban\n return util.objectValues(type.enum);\n }\n else if (type instanceof ZodDefault) {\n return getDiscriminator(type._def.innerType);\n }\n else if (type instanceof ZodUndefined) {\n return [undefined];\n }\n else if (type instanceof ZodNull) {\n return [null];\n }\n else if (type instanceof ZodOptional) {\n return [undefined, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodNullable) {\n return [null, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodBranded) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodReadonly) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodCatch) {\n return getDiscriminator(type._def.innerType);\n }\n else {\n return [];\n }\n};\nexport class ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator],\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, options, params) {\n // Get all the valid discriminator values\n const optionsMap = new Map();\n // try {\n for (const type of options) {\n const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n if (!discriminatorValues.length) {\n throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n }\n for (const value of discriminatorValues) {\n if (optionsMap.has(value)) {\n throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n }\n optionsMap.set(value, type);\n }\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n optionsMap,\n ...processCreateParams(params),\n });\n }\n}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util.objectKeys(a).filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n else if (aType === ZodParsedType.date && bType === ZodParsedType.date && +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nexport class ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types,\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n ]).then(([left, right]) => handleParsed(left, right));\n }\n else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }));\n }\n }\n}\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left: left,\n right: right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params),\n });\n};\n// type ZodTupleItems = [ZodTypeAny, ...ZodTypeAny[]];\nexport class ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n status.dirty();\n }\n const items = [...ctx.data]\n .map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n })\n .filter((x) => !!x); // filter nulls\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest,\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params),\n });\n};\nexport class ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third),\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second),\n });\n }\n}\nexport class ZodMap extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n }\n else {\n const finalMap = new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nexport class ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.minSize.message,\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.maxSize.message,\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements) {\n const parsedSet = new Set();\n for (const element of elements) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements) => finalizeSet(elements));\n }\n else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) },\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params),\n });\n};\nexport class ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error,\n },\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(async function (...args) {\n const error = new ZodError([]);\n const parsedArgs = await me._def.args.parseAsync(args, params).catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await Reflect.apply(fn, this, parsedArgs);\n const parsedReturns = await me._def.returns._def.type\n .parseAsync(result, params)\n .catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n }\n else {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(function (...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = Reflect.apply(fn, this, parsedArgs.data);\n const parsedReturns = me._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create()),\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType,\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: (args ? args : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n }\n}\nexport class ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nexport class ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value: value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params),\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params),\n });\n}\nexport class ZodEnum extends ZodType {\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(this._def.values);\n }\n if (!this._cache.has(input.data)) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n extract(values, newDef = this._def) {\n return ZodEnum.create(values, {\n ...this._def,\n ...newDef,\n });\n }\n exclude(values, newDef = this._def) {\n return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), {\n ...this._def,\n ...newDef,\n });\n }\n}\nZodEnum.create = createZodEnum;\nexport class ZodNativeEnum extends ZodType {\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(util.getValidEnumValues(this._def.values));\n }\n if (!this._cache.has(input.data)) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nexport class ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nexport class ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects\n ? this._def.schema.sourceType()\n : this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n }\n else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n },\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(processed).then(async (processed) => {\n if (status.value === \"aborted\")\n return INVALID;\n const result = await this._def.schema._parseAsync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n });\n }\n else {\n if (status.value === \"aborted\")\n return INVALID;\n const result = this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n }\n }\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n // return value is ignored\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n }\n else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (!isValid(base))\n return INVALID;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n }\n else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => {\n if (!isValid(base))\n return INVALID;\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({\n status: status.value,\n value: result,\n }));\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params),\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params),\n });\n};\nexport { ZodEffects as ZodTransformer };\nexport class ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nexport class ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nexport class ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodDefault({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n defaultValue: typeof params.default === \"function\" ? params.default : () => params.default,\n ...processCreateParams(params),\n });\n};\nexport class ZodCatch extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n // newCtx is used to not collect issues from inner types in ctx\n const newCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n };\n const result = this._def.innerType._parse({\n data: newCtx.data,\n path: newCtx.path,\n parent: {\n ...newCtx,\n },\n });\n if (isAsync(result)) {\n return result.then((result) => {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n });\n }\n else {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nZodCatch.create = (type, params) => {\n return new ZodCatch({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n ...processCreateParams(params),\n });\n};\nexport class ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nexport const BRAND = Symbol(\"zod_brand\");\nexport class ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nexport class ZodPipeline extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.common.async) {\n const handleAsync = async () => {\n const inResult = await this._def.in._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return DIRTY(inResult.value);\n }\n else {\n return this._def.out._parseAsync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n };\n return handleAsync();\n }\n else {\n const inResult = this._def.in._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return {\n status: \"dirty\",\n value: inResult.value,\n };\n }\n else {\n return this._def.out._parseSync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n }\n static create(a, b) {\n return new ZodPipeline({\n in: a,\n out: b,\n typeName: ZodFirstPartyTypeKind.ZodPipeline,\n });\n }\n}\nexport class ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n const freeze = (data) => {\n if (isValid(data)) {\n data.value = Object.freeze(data.value);\n }\n return data;\n };\n return isAsync(result) ? result.then((data) => freeze(data)) : freeze(result);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodReadonly.create = (type, params) => {\n return new ZodReadonly({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodReadonly,\n ...processCreateParams(params),\n });\n};\n////////////////////////////////////////\n////////////////////////////////////////\n////////// //////////\n////////// z.custom //////////\n////////// //////////\n////////////////////////////////////////\n////////////////////////////////////////\nfunction cleanParams(params, data) {\n const p = typeof params === \"function\" ? params(data) : typeof params === \"string\" ? { message: params } : params;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n return p2;\n}\nexport function custom(check, _params = {}, \n/**\n * @deprecated\n *\n * Pass `fatal` into the params object instead:\n *\n * ```ts\n * z.string().custom((val) => val.length > 5, { fatal: false })\n * ```\n *\n */\nfatal) {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n const r = check(data);\n if (r instanceof Promise) {\n return r.then((r) => {\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n });\n }\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n return;\n });\n return ZodAny.create();\n}\nexport { ZodType as Schema, ZodType as ZodSchema };\nexport const late = {\n object: ZodObject.lazycreate,\n};\nexport var ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind[\"ZodSymbol\"] = \"ZodSymbol\";\n ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind[\"ZodCatch\"] = \"ZodCatch\";\n ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n ZodFirstPartyTypeKind[\"ZodPipeline\"] = \"ZodPipeline\";\n ZodFirstPartyTypeKind[\"ZodReadonly\"] = \"ZodReadonly\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\n// requires TS 4.4+\nclass Class {\n constructor(..._) { }\n}\nconst instanceOfType = (\n// const instanceOfType = <T extends new (...args: any[]) => any>(\ncls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst symbolType = ZodSymbol.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst pipelineType = ZodPipeline.create;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nexport const coerce = {\n string: ((arg) => ZodString.create({ ...arg, coerce: true })),\n number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),\n boolean: ((arg) => ZodBoolean.create({\n ...arg,\n coerce: true,\n })),\n bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),\n date: ((arg) => ZodDate.create({ ...arg, coerce: true })),\n};\nexport { anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, dateType as date, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, instanceOfType as instanceof, intersectionType as intersection, lazyType as lazy, literalType as literal, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, oboolean, onumber, optionalType as optional, ostring, pipelineType as pipeline, preprocessType as preprocess, promiseType as promise, recordType as record, setType as set, strictObjectType as strictObject, stringType as string, symbolType as symbol, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, voidType as void, };\nexport const NEVER = INVALID;\n",
|
|
56
|
-
"import { z } from 'zod';\nexport const LATEST_PROTOCOL_VERSION = '2025-06-18';\nexport const DEFAULT_NEGOTIATED_PROTOCOL_VERSION = '2025-03-26';\nexport const SUPPORTED_PROTOCOL_VERSIONS = [LATEST_PROTOCOL_VERSION, '2025-03-26', '2024-11-05', '2024-10-07'];\n/* JSON-RPC types */\nexport const JSONRPC_VERSION = '2.0';\n/**\n * A progress token, used to associate progress notifications with the original request.\n */\nexport const ProgressTokenSchema = z.union([z.string(), z.number().int()]);\n/**\n * An opaque token used to represent a cursor for pagination.\n */\nexport const CursorSchema = z.string();\nconst RequestMetaSchema = z\n .object({\n /**\n * If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.\n */\n progressToken: z.optional(ProgressTokenSchema)\n})\n .passthrough();\nconst BaseRequestParamsSchema = z\n .object({\n _meta: z.optional(RequestMetaSchema)\n})\n .passthrough();\nexport const RequestSchema = z.object({\n method: z.string(),\n params: z.optional(BaseRequestParamsSchema)\n});\nconst BaseNotificationParamsSchema = z\n .object({\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: z.optional(z.object({}).passthrough())\n})\n .passthrough();\nexport const NotificationSchema = z.object({\n method: z.string(),\n params: z.optional(BaseNotificationParamsSchema)\n});\nexport const ResultSchema = z\n .object({\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: z.optional(z.object({}).passthrough())\n})\n .passthrough();\n/**\n * A uniquely identifying ID for a request in JSON-RPC.\n */\nexport const RequestIdSchema = z.union([z.string(), z.number().int()]);\n/**\n * A request that expects a response.\n */\nexport const JSONRPCRequestSchema = z\n .object({\n jsonrpc: z.literal(JSONRPC_VERSION),\n id: RequestIdSchema\n})\n .merge(RequestSchema)\n .strict();\nexport const isJSONRPCRequest = (value) => JSONRPCRequestSchema.safeParse(value).success;\n/**\n * A notification which does not expect a response.\n */\nexport const JSONRPCNotificationSchema = z\n .object({\n jsonrpc: z.literal(JSONRPC_VERSION)\n})\n .merge(NotificationSchema)\n .strict();\nexport const isJSONRPCNotification = (value) => JSONRPCNotificationSchema.safeParse(value).success;\n/**\n * A successful (non-error) response to a request.\n */\nexport const JSONRPCResponseSchema = z\n .object({\n jsonrpc: z.literal(JSONRPC_VERSION),\n id: RequestIdSchema,\n result: ResultSchema\n})\n .strict();\nexport const isJSONRPCResponse = (value) => JSONRPCResponseSchema.safeParse(value).success;\n/**\n * Error codes defined by the JSON-RPC specification.\n */\nexport var ErrorCode;\n(function (ErrorCode) {\n // SDK error codes\n ErrorCode[ErrorCode[\"ConnectionClosed\"] = -32000] = \"ConnectionClosed\";\n ErrorCode[ErrorCode[\"RequestTimeout\"] = -32001] = \"RequestTimeout\";\n // Standard JSON-RPC error codes\n ErrorCode[ErrorCode[\"ParseError\"] = -32700] = \"ParseError\";\n ErrorCode[ErrorCode[\"InvalidRequest\"] = -32600] = \"InvalidRequest\";\n ErrorCode[ErrorCode[\"MethodNotFound\"] = -32601] = \"MethodNotFound\";\n ErrorCode[ErrorCode[\"InvalidParams\"] = -32602] = \"InvalidParams\";\n ErrorCode[ErrorCode[\"InternalError\"] = -32603] = \"InternalError\";\n})(ErrorCode || (ErrorCode = {}));\n/**\n * A response to a request that indicates an error occurred.\n */\nexport const JSONRPCErrorSchema = z\n .object({\n jsonrpc: z.literal(JSONRPC_VERSION),\n id: RequestIdSchema,\n error: z.object({\n /**\n * The error type that occurred.\n */\n code: z.number().int(),\n /**\n * A short description of the error. The message SHOULD be limited to a concise single sentence.\n */\n message: z.string(),\n /**\n * Additional information about the error. The value of this member is defined by the sender (e.g. detailed error information, nested errors etc.).\n */\n data: z.optional(z.unknown())\n })\n})\n .strict();\nexport const isJSONRPCError = (value) => JSONRPCErrorSchema.safeParse(value).success;\nexport const JSONRPCMessageSchema = z.union([JSONRPCRequestSchema, JSONRPCNotificationSchema, JSONRPCResponseSchema, JSONRPCErrorSchema]);\n/* Empty result */\n/**\n * A response that indicates success but carries no data.\n */\nexport const EmptyResultSchema = ResultSchema.strict();\n/* Cancellation */\n/**\n * This notification can be sent by either side to indicate that it is cancelling a previously-issued request.\n *\n * The request SHOULD still be in-flight, but due to communication latency, it is always possible that this notification MAY arrive after the request has already finished.\n *\n * This notification indicates that the result will be unused, so any associated processing SHOULD cease.\n *\n * A client MUST NOT attempt to cancel its `initialize` request.\n */\nexport const CancelledNotificationSchema = NotificationSchema.extend({\n method: z.literal('notifications/cancelled'),\n params: BaseNotificationParamsSchema.extend({\n /**\n * The ID of the request to cancel.\n *\n * This MUST correspond to the ID of a request previously issued in the same direction.\n */\n requestId: RequestIdSchema,\n /**\n * An optional string describing the reason for the cancellation. This MAY be logged or presented to the user.\n */\n reason: z.string().optional()\n })\n});\n/* Base Metadata */\n/**\n * Icon schema for use in tools, prompts, resources, and implementations.\n */\nexport const IconSchema = z\n .object({\n /**\n * URL or data URI for the icon.\n */\n src: z.string(),\n /**\n * Optional MIME type for the icon.\n */\n mimeType: z.optional(z.string()),\n /**\n * Optional array of strings that specify sizes at which the icon can be used.\n * Each string should be in WxH format (e.g., `\"48x48\"`, `\"96x96\"`) or `\"any\"` for scalable formats like SVG.\n *\n * If not provided, the client should assume that the icon can be used at any size.\n */\n sizes: z.optional(z.array(z.string()))\n})\n .passthrough();\n/**\n * Base schema to add `icons` property.\n *\n */\nexport const IconsSchema = z\n .object({\n /**\n * Optional set of sized icons that the client can display in a user interface.\n *\n * Clients that support rendering icons MUST support at least the following MIME types:\n * - `image/png` - PNG images (safe, universal compatibility)\n * - `image/jpeg` (and `image/jpg`) - JPEG images (safe, universal compatibility)\n *\n * Clients that support rendering icons SHOULD also support:\n * - `image/svg+xml` - SVG images (scalable but requires security precautions)\n * - `image/webp` - WebP images (modern, efficient format)\n */\n icons: z.array(IconSchema).optional()\n})\n .passthrough();\n/**\n * Base metadata interface for common properties across resources, tools, prompts, and implementations.\n */\nexport const BaseMetadataSchema = z\n .object({\n /** Intended for programmatic or logical use, but used as a display name in past specs or fallback */\n name: z.string(),\n /**\n * Intended for UI and end-user contexts — optimized to be human-readable and easily understood,\n * even by those unfamiliar with domain-specific terminology.\n *\n * If not provided, the name should be used for display (except for Tool,\n * where `annotations.title` should be given precedence over using `name`,\n * if present).\n */\n title: z.optional(z.string())\n})\n .passthrough();\n/* Initialization */\n/**\n * Describes the name and version of an MCP implementation.\n */\nexport const ImplementationSchema = BaseMetadataSchema.extend({\n version: z.string(),\n /**\n * An optional URL of the website for this implementation.\n */\n websiteUrl: z.optional(z.string())\n}).merge(IconsSchema);\n/**\n * Capabilities a client may support. Known capabilities are defined here, in this schema, but this is not a closed set: any client can define its own, additional capabilities.\n */\nexport const ClientCapabilitiesSchema = z\n .object({\n /**\n * Experimental, non-standard capabilities that the client supports.\n */\n experimental: z.optional(z.object({}).passthrough()),\n /**\n * Present if the client supports sampling from an LLM.\n */\n sampling: z.optional(z.object({}).passthrough()),\n /**\n * Present if the client supports eliciting user input.\n */\n elicitation: z.optional(z.object({}).passthrough()),\n /**\n * Present if the client supports listing roots.\n */\n roots: z.optional(z\n .object({\n /**\n * Whether the client supports issuing notifications for changes to the roots list.\n */\n listChanged: z.optional(z.boolean())\n })\n .passthrough())\n})\n .passthrough();\n/**\n * This request is sent from the client to the server when it first connects, asking it to begin initialization.\n */\nexport const InitializeRequestSchema = RequestSchema.extend({\n method: z.literal('initialize'),\n params: BaseRequestParamsSchema.extend({\n /**\n * The latest version of the Model Context Protocol that the client supports. The client MAY decide to support older versions as well.\n */\n protocolVersion: z.string(),\n capabilities: ClientCapabilitiesSchema,\n clientInfo: ImplementationSchema\n })\n});\nexport const isInitializeRequest = (value) => InitializeRequestSchema.safeParse(value).success;\n/**\n * Capabilities that a server may support. Known capabilities are defined here, in this schema, but this is not a closed set: any server can define its own, additional capabilities.\n */\nexport const ServerCapabilitiesSchema = z\n .object({\n /**\n * Experimental, non-standard capabilities that the server supports.\n */\n experimental: z.optional(z.object({}).passthrough()),\n /**\n * Present if the server supports sending log messages to the client.\n */\n logging: z.optional(z.object({}).passthrough()),\n /**\n * Present if the server supports sending completions to the client.\n */\n completions: z.optional(z.object({}).passthrough()),\n /**\n * Present if the server offers any prompt templates.\n */\n prompts: z.optional(z\n .object({\n /**\n * Whether this server supports issuing notifications for changes to the prompt list.\n */\n listChanged: z.optional(z.boolean())\n })\n .passthrough()),\n /**\n * Present if the server offers any resources to read.\n */\n resources: z.optional(z\n .object({\n /**\n * Whether this server supports clients subscribing to resource updates.\n */\n subscribe: z.optional(z.boolean()),\n /**\n * Whether this server supports issuing notifications for changes to the resource list.\n */\n listChanged: z.optional(z.boolean())\n })\n .passthrough()),\n /**\n * Present if the server offers any tools to call.\n */\n tools: z.optional(z\n .object({\n /**\n * Whether this server supports issuing notifications for changes to the tool list.\n */\n listChanged: z.optional(z.boolean())\n })\n .passthrough())\n})\n .passthrough();\n/**\n * After receiving an initialize request from the client, the server sends this response.\n */\nexport const InitializeResultSchema = ResultSchema.extend({\n /**\n * The version of the Model Context Protocol that the server wants to use. This may not match the version that the client requested. If the client cannot support this version, it MUST disconnect.\n */\n protocolVersion: z.string(),\n capabilities: ServerCapabilitiesSchema,\n serverInfo: ImplementationSchema,\n /**\n * Instructions describing how to use the server and its features.\n *\n * This can be used by clients to improve the LLM's understanding of available tools, resources, etc. It can be thought of like a \"hint\" to the model. For example, this information MAY be added to the system prompt.\n */\n instructions: z.optional(z.string())\n});\n/**\n * This notification is sent from the client to the server after initialization has finished.\n */\nexport const InitializedNotificationSchema = NotificationSchema.extend({\n method: z.literal('notifications/initialized')\n});\nexport const isInitializedNotification = (value) => InitializedNotificationSchema.safeParse(value).success;\n/* Ping */\n/**\n * A ping, issued by either the server or the client, to check that the other party is still alive. The receiver must promptly respond, or else may be disconnected.\n */\nexport const PingRequestSchema = RequestSchema.extend({\n method: z.literal('ping')\n});\n/* Progress notifications */\nexport const ProgressSchema = z\n .object({\n /**\n * The progress thus far. This should increase every time progress is made, even if the total is unknown.\n */\n progress: z.number(),\n /**\n * Total number of items to process (or total progress required), if known.\n */\n total: z.optional(z.number()),\n /**\n * An optional message describing the current progress.\n */\n message: z.optional(z.string())\n})\n .passthrough();\n/**\n * An out-of-band notification used to inform the receiver of a progress update for a long-running request.\n */\nexport const ProgressNotificationSchema = NotificationSchema.extend({\n method: z.literal('notifications/progress'),\n params: BaseNotificationParamsSchema.merge(ProgressSchema).extend({\n /**\n * The progress token which was given in the initial request, used to associate this notification with the request that is proceeding.\n */\n progressToken: ProgressTokenSchema\n })\n});\n/* Pagination */\nexport const PaginatedRequestSchema = RequestSchema.extend({\n params: BaseRequestParamsSchema.extend({\n /**\n * An opaque token representing the current pagination position.\n * If provided, the server should return results starting after this cursor.\n */\n cursor: z.optional(CursorSchema)\n }).optional()\n});\nexport const PaginatedResultSchema = ResultSchema.extend({\n /**\n * An opaque token representing the pagination position after the last returned result.\n * If present, there may be more results available.\n */\n nextCursor: z.optional(CursorSchema)\n});\n/* Resources */\n/**\n * The contents of a specific resource or sub-resource.\n */\nexport const ResourceContentsSchema = z\n .object({\n /**\n * The URI of this resource.\n */\n uri: z.string(),\n /**\n * The MIME type of this resource, if known.\n */\n mimeType: z.optional(z.string()),\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: z.optional(z.object({}).passthrough())\n})\n .passthrough();\nexport const TextResourceContentsSchema = ResourceContentsSchema.extend({\n /**\n * The text of the item. This must only be set if the item can actually be represented as text (not binary data).\n */\n text: z.string()\n});\n/**\n * A Zod schema for validating Base64 strings that is more performant and\n * robust for very large inputs than the default regex-based check. It avoids\n * stack overflows by using the native `atob` function for validation.\n */\nconst Base64Schema = z.string().refine(val => {\n try {\n // atob throws a DOMException if the string contains characters\n // that are not part of the Base64 character set.\n atob(val);\n return true;\n }\n catch (_a) {\n return false;\n }\n}, { message: 'Invalid Base64 string' });\nexport const BlobResourceContentsSchema = ResourceContentsSchema.extend({\n /**\n * A base64-encoded string representing the binary data of the item.\n */\n blob: Base64Schema\n});\n/**\n * A known resource that the server is capable of reading.\n */\nexport const ResourceSchema = BaseMetadataSchema.extend({\n /**\n * The URI of this resource.\n */\n uri: z.string(),\n /**\n * A description of what this resource represents.\n *\n * This can be used by clients to improve the LLM's understanding of available resources. It can be thought of like a \"hint\" to the model.\n */\n description: z.optional(z.string()),\n /**\n * The MIME type of this resource, if known.\n */\n mimeType: z.optional(z.string()),\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: z.optional(z.object({}).passthrough())\n}).merge(IconsSchema);\n/**\n * A template description for resources available on the server.\n */\nexport const ResourceTemplateSchema = BaseMetadataSchema.extend({\n /**\n * A URI template (according to RFC 6570) that can be used to construct resource URIs.\n */\n uriTemplate: z.string(),\n /**\n * A description of what this template is for.\n *\n * This can be used by clients to improve the LLM's understanding of available resources. It can be thought of like a \"hint\" to the model.\n */\n description: z.optional(z.string()),\n /**\n * The MIME type for all resources that match this template. This should only be included if all resources matching this template have the same type.\n */\n mimeType: z.optional(z.string()),\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: z.optional(z.object({}).passthrough())\n}).merge(IconsSchema);\n/**\n * Sent from the client to request a list of resources the server has.\n */\nexport const ListResourcesRequestSchema = PaginatedRequestSchema.extend({\n method: z.literal('resources/list')\n});\n/**\n * The server's response to a resources/list request from the client.\n */\nexport const ListResourcesResultSchema = PaginatedResultSchema.extend({\n resources: z.array(ResourceSchema)\n});\n/**\n * Sent from the client to request a list of resource templates the server has.\n */\nexport const ListResourceTemplatesRequestSchema = PaginatedRequestSchema.extend({\n method: z.literal('resources/templates/list')\n});\n/**\n * The server's response to a resources/templates/list request from the client.\n */\nexport const ListResourceTemplatesResultSchema = PaginatedResultSchema.extend({\n resourceTemplates: z.array(ResourceTemplateSchema)\n});\n/**\n * Sent from the client to the server, to read a specific resource URI.\n */\nexport const ReadResourceRequestSchema = RequestSchema.extend({\n method: z.literal('resources/read'),\n params: BaseRequestParamsSchema.extend({\n /**\n * The URI of the resource to read. The URI can use any protocol; it is up to the server how to interpret it.\n */\n uri: z.string()\n })\n});\n/**\n * The server's response to a resources/read request from the client.\n */\nexport const ReadResourceResultSchema = ResultSchema.extend({\n contents: z.array(z.union([TextResourceContentsSchema, BlobResourceContentsSchema]))\n});\n/**\n * An optional notification from the server to the client, informing it that the list of resources it can read from has changed. This may be issued by servers without any previous subscription from the client.\n */\nexport const ResourceListChangedNotificationSchema = NotificationSchema.extend({\n method: z.literal('notifications/resources/list_changed')\n});\n/**\n * Sent from the client to request resources/updated notifications from the server whenever a particular resource changes.\n */\nexport const SubscribeRequestSchema = RequestSchema.extend({\n method: z.literal('resources/subscribe'),\n params: BaseRequestParamsSchema.extend({\n /**\n * The URI of the resource to subscribe to. The URI can use any protocol; it is up to the server how to interpret it.\n */\n uri: z.string()\n })\n});\n/**\n * Sent from the client to request cancellation of resources/updated notifications from the server. This should follow a previous resources/subscribe request.\n */\nexport const UnsubscribeRequestSchema = RequestSchema.extend({\n method: z.literal('resources/unsubscribe'),\n params: BaseRequestParamsSchema.extend({\n /**\n * The URI of the resource to unsubscribe from.\n */\n uri: z.string()\n })\n});\n/**\n * A notification from the server to the client, informing it that a resource has changed and may need to be read again. This should only be sent if the client previously sent a resources/subscribe request.\n */\nexport const ResourceUpdatedNotificationSchema = NotificationSchema.extend({\n method: z.literal('notifications/resources/updated'),\n params: BaseNotificationParamsSchema.extend({\n /**\n * The URI of the resource that has been updated. This might be a sub-resource of the one that the client actually subscribed to.\n */\n uri: z.string()\n })\n});\n/* Prompts */\n/**\n * Describes an argument that a prompt can accept.\n */\nexport const PromptArgumentSchema = z\n .object({\n /**\n * The name of the argument.\n */\n name: z.string(),\n /**\n * A human-readable description of the argument.\n */\n description: z.optional(z.string()),\n /**\n * Whether this argument must be provided.\n */\n required: z.optional(z.boolean())\n})\n .passthrough();\n/**\n * A prompt or prompt template that the server offers.\n */\nexport const PromptSchema = BaseMetadataSchema.extend({\n /**\n * An optional description of what this prompt provides\n */\n description: z.optional(z.string()),\n /**\n * A list of arguments to use for templating the prompt.\n */\n arguments: z.optional(z.array(PromptArgumentSchema)),\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: z.optional(z.object({}).passthrough())\n}).merge(IconsSchema);\n/**\n * Sent from the client to request a list of prompts and prompt templates the server has.\n */\nexport const ListPromptsRequestSchema = PaginatedRequestSchema.extend({\n method: z.literal('prompts/list')\n});\n/**\n * The server's response to a prompts/list request from the client.\n */\nexport const ListPromptsResultSchema = PaginatedResultSchema.extend({\n prompts: z.array(PromptSchema)\n});\n/**\n * Used by the client to get a prompt provided by the server.\n */\nexport const GetPromptRequestSchema = RequestSchema.extend({\n method: z.literal('prompts/get'),\n params: BaseRequestParamsSchema.extend({\n /**\n * The name of the prompt or prompt template.\n */\n name: z.string(),\n /**\n * Arguments to use for templating the prompt.\n */\n arguments: z.optional(z.record(z.string()))\n })\n});\n/**\n * Text provided to or from an LLM.\n */\nexport const TextContentSchema = z\n .object({\n type: z.literal('text'),\n /**\n * The text content of the message.\n */\n text: z.string(),\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: z.optional(z.object({}).passthrough())\n})\n .passthrough();\n/**\n * An image provided to or from an LLM.\n */\nexport const ImageContentSchema = z\n .object({\n type: z.literal('image'),\n /**\n * The base64-encoded image data.\n */\n data: Base64Schema,\n /**\n * The MIME type of the image. Different providers may support different image types.\n */\n mimeType: z.string(),\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: z.optional(z.object({}).passthrough())\n})\n .passthrough();\n/**\n * An Audio provided to or from an LLM.\n */\nexport const AudioContentSchema = z\n .object({\n type: z.literal('audio'),\n /**\n * The base64-encoded audio data.\n */\n data: Base64Schema,\n /**\n * The MIME type of the audio. Different providers may support different audio types.\n */\n mimeType: z.string(),\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: z.optional(z.object({}).passthrough())\n})\n .passthrough();\n/**\n * The contents of a resource, embedded into a prompt or tool call result.\n */\nexport const EmbeddedResourceSchema = z\n .object({\n type: z.literal('resource'),\n resource: z.union([TextResourceContentsSchema, BlobResourceContentsSchema]),\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: z.optional(z.object({}).passthrough())\n})\n .passthrough();\n/**\n * A resource that the server is capable of reading, included in a prompt or tool call result.\n *\n * Note: resource links returned by tools are not guaranteed to appear in the results of `resources/list` requests.\n */\nexport const ResourceLinkSchema = ResourceSchema.extend({\n type: z.literal('resource_link')\n});\n/**\n * A content block that can be used in prompts and tool results.\n */\nexport const ContentBlockSchema = z.union([\n TextContentSchema,\n ImageContentSchema,\n AudioContentSchema,\n ResourceLinkSchema,\n EmbeddedResourceSchema\n]);\n/**\n * Describes a message returned as part of a prompt.\n */\nexport const PromptMessageSchema = z\n .object({\n role: z.enum(['user', 'assistant']),\n content: ContentBlockSchema\n})\n .passthrough();\n/**\n * The server's response to a prompts/get request from the client.\n */\nexport const GetPromptResultSchema = ResultSchema.extend({\n /**\n * An optional description for the prompt.\n */\n description: z.optional(z.string()),\n messages: z.array(PromptMessageSchema)\n});\n/**\n * An optional notification from the server to the client, informing it that the list of prompts it offers has changed. This may be issued by servers without any previous subscription from the client.\n */\nexport const PromptListChangedNotificationSchema = NotificationSchema.extend({\n method: z.literal('notifications/prompts/list_changed')\n});\n/* Tools */\n/**\n * Additional properties describing a Tool to clients.\n *\n * NOTE: all properties in ToolAnnotations are **hints**.\n * They are not guaranteed to provide a faithful description of\n * tool behavior (including descriptive properties like `title`).\n *\n * Clients should never make tool use decisions based on ToolAnnotations\n * received from untrusted servers.\n */\nexport const ToolAnnotationsSchema = z\n .object({\n /**\n * A human-readable title for the tool.\n */\n title: z.optional(z.string()),\n /**\n * If true, the tool does not modify its environment.\n *\n * Default: false\n */\n readOnlyHint: z.optional(z.boolean()),\n /**\n * If true, the tool may perform destructive updates to its environment.\n * If false, the tool performs only additive updates.\n *\n * (This property is meaningful only when `readOnlyHint == false`)\n *\n * Default: true\n */\n destructiveHint: z.optional(z.boolean()),\n /**\n * If true, calling the tool repeatedly with the same arguments\n * will have no additional effect on the its environment.\n *\n * (This property is meaningful only when `readOnlyHint == false`)\n *\n * Default: false\n */\n idempotentHint: z.optional(z.boolean()),\n /**\n * If true, this tool may interact with an \"open world\" of external\n * entities. If false, the tool's domain of interaction is closed.\n * For example, the world of a web search tool is open, whereas that\n * of a memory tool is not.\n *\n * Default: true\n */\n openWorldHint: z.optional(z.boolean())\n})\n .passthrough();\n/**\n * Definition for a tool the client can call.\n */\nexport const ToolSchema = BaseMetadataSchema.extend({\n /**\n * A human-readable description of the tool.\n */\n description: z.optional(z.string()),\n /**\n * A JSON Schema object defining the expected parameters for the tool.\n */\n inputSchema: z\n .object({\n type: z.literal('object'),\n properties: z.optional(z.object({}).passthrough()),\n required: z.optional(z.array(z.string()))\n })\n .passthrough(),\n /**\n * An optional JSON Schema object defining the structure of the tool's output returned in\n * the structuredContent field of a CallToolResult.\n */\n outputSchema: z.optional(z\n .object({\n type: z.literal('object'),\n properties: z.optional(z.object({}).passthrough()),\n required: z.optional(z.array(z.string()))\n })\n .passthrough()),\n /**\n * Optional additional tool information.\n */\n annotations: z.optional(ToolAnnotationsSchema),\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: z.optional(z.object({}).passthrough())\n}).merge(IconsSchema);\n/**\n * Sent from the client to request a list of tools the server has.\n */\nexport const ListToolsRequestSchema = PaginatedRequestSchema.extend({\n method: z.literal('tools/list')\n});\n/**\n * The server's response to a tools/list request from the client.\n */\nexport const ListToolsResultSchema = PaginatedResultSchema.extend({\n tools: z.array(ToolSchema)\n});\n/**\n * The server's response to a tool call.\n */\nexport const CallToolResultSchema = ResultSchema.extend({\n /**\n * A list of content objects that represent the result of the tool call.\n *\n * If the Tool does not define an outputSchema, this field MUST be present in the result.\n * For backwards compatibility, this field is always present, but it may be empty.\n */\n content: z.array(ContentBlockSchema).default([]),\n /**\n * An object containing structured tool output.\n *\n * If the Tool defines an outputSchema, this field MUST be present in the result, and contain a JSON object that matches the schema.\n */\n structuredContent: z.object({}).passthrough().optional(),\n /**\n * Whether the tool call ended in an error.\n *\n * If not set, this is assumed to be false (the call was successful).\n *\n * Any errors that originate from the tool SHOULD be reported inside the result\n * object, with `isError` set to true, _not_ as an MCP protocol-level error\n * response. Otherwise, the LLM would not be able to see that an error occurred\n * and self-correct.\n *\n * However, any errors in _finding_ the tool, an error indicating that the\n * server does not support tool calls, or any other exceptional conditions,\n * should be reported as an MCP error response.\n */\n isError: z.optional(z.boolean())\n});\n/**\n * CallToolResultSchema extended with backwards compatibility to protocol version 2024-10-07.\n */\nexport const CompatibilityCallToolResultSchema = CallToolResultSchema.or(ResultSchema.extend({\n toolResult: z.unknown()\n}));\n/**\n * Used by the client to invoke a tool provided by the server.\n */\nexport const CallToolRequestSchema = RequestSchema.extend({\n method: z.literal('tools/call'),\n params: BaseRequestParamsSchema.extend({\n name: z.string(),\n arguments: z.optional(z.record(z.unknown()))\n })\n});\n/**\n * An optional notification from the server to the client, informing it that the list of tools it offers has changed. This may be issued by servers without any previous subscription from the client.\n */\nexport const ToolListChangedNotificationSchema = NotificationSchema.extend({\n method: z.literal('notifications/tools/list_changed')\n});\n/* Logging */\n/**\n * The severity of a log message.\n */\nexport const LoggingLevelSchema = z.enum(['debug', 'info', 'notice', 'warning', 'error', 'critical', 'alert', 'emergency']);\n/**\n * A request from the client to the server, to enable or adjust logging.\n */\nexport const SetLevelRequestSchema = RequestSchema.extend({\n method: z.literal('logging/setLevel'),\n params: BaseRequestParamsSchema.extend({\n /**\n * The level of logging that the client wants to receive from the server. The server should send all logs at this level and higher (i.e., more severe) to the client as notifications/logging/message.\n */\n level: LoggingLevelSchema\n })\n});\n/**\n * Notification of a log message passed from server to client. If no logging/setLevel request has been sent from the client, the server MAY decide which messages to send automatically.\n */\nexport const LoggingMessageNotificationSchema = NotificationSchema.extend({\n method: z.literal('notifications/message'),\n params: BaseNotificationParamsSchema.extend({\n /**\n * The severity of this log message.\n */\n level: LoggingLevelSchema,\n /**\n * An optional name of the logger issuing this message.\n */\n logger: z.optional(z.string()),\n /**\n * The data to be logged, such as a string message or an object. Any JSON serializable type is allowed here.\n */\n data: z.unknown()\n })\n});\n/* Sampling */\n/**\n * Hints to use for model selection.\n */\nexport const ModelHintSchema = z\n .object({\n /**\n * A hint for a model name.\n */\n name: z.string().optional()\n})\n .passthrough();\n/**\n * The server's preferences for model selection, requested of the client during sampling.\n */\nexport const ModelPreferencesSchema = z\n .object({\n /**\n * Optional hints to use for model selection.\n */\n hints: z.optional(z.array(ModelHintSchema)),\n /**\n * How much to prioritize cost when selecting a model.\n */\n costPriority: z.optional(z.number().min(0).max(1)),\n /**\n * How much to prioritize sampling speed (latency) when selecting a model.\n */\n speedPriority: z.optional(z.number().min(0).max(1)),\n /**\n * How much to prioritize intelligence and capabilities when selecting a model.\n */\n intelligencePriority: z.optional(z.number().min(0).max(1))\n})\n .passthrough();\n/**\n * Describes a message issued to or received from an LLM API.\n */\nexport const SamplingMessageSchema = z\n .object({\n role: z.enum(['user', 'assistant']),\n content: z.union([TextContentSchema, ImageContentSchema, AudioContentSchema])\n})\n .passthrough();\n/**\n * A request from the server to sample an LLM via the client. The client has full discretion over which model to select. The client should also inform the user before beginning sampling, to allow them to inspect the request (human in the loop) and decide whether to approve it.\n */\nexport const CreateMessageRequestSchema = RequestSchema.extend({\n method: z.literal('sampling/createMessage'),\n params: BaseRequestParamsSchema.extend({\n messages: z.array(SamplingMessageSchema),\n /**\n * An optional system prompt the server wants to use for sampling. The client MAY modify or omit this prompt.\n */\n systemPrompt: z.optional(z.string()),\n /**\n * A request to include context from one or more MCP servers (including the caller), to be attached to the prompt. The client MAY ignore this request.\n */\n includeContext: z.optional(z.enum(['none', 'thisServer', 'allServers'])),\n temperature: z.optional(z.number()),\n /**\n * The maximum number of tokens to sample, as requested by the server. The client MAY choose to sample fewer tokens than requested.\n */\n maxTokens: z.number().int(),\n stopSequences: z.optional(z.array(z.string())),\n /**\n * Optional metadata to pass through to the LLM provider. The format of this metadata is provider-specific.\n */\n metadata: z.optional(z.object({}).passthrough()),\n /**\n * The server's preferences for which model to select.\n */\n modelPreferences: z.optional(ModelPreferencesSchema)\n })\n});\n/**\n * The client's response to a sampling/create_message request from the server. The client should inform the user before returning the sampled message, to allow them to inspect the response (human in the loop) and decide whether to allow the server to see it.\n */\nexport const CreateMessageResultSchema = ResultSchema.extend({\n /**\n * The name of the model that generated the message.\n */\n model: z.string(),\n /**\n * The reason why sampling stopped.\n */\n stopReason: z.optional(z.enum(['endTurn', 'stopSequence', 'maxTokens']).or(z.string())),\n role: z.enum(['user', 'assistant']),\n content: z.discriminatedUnion('type', [TextContentSchema, ImageContentSchema, AudioContentSchema])\n});\n/* Elicitation */\n/**\n * Primitive schema definition for boolean fields.\n */\nexport const BooleanSchemaSchema = z\n .object({\n type: z.literal('boolean'),\n title: z.optional(z.string()),\n description: z.optional(z.string()),\n default: z.optional(z.boolean())\n})\n .passthrough();\n/**\n * Primitive schema definition for string fields.\n */\nexport const StringSchemaSchema = z\n .object({\n type: z.literal('string'),\n title: z.optional(z.string()),\n description: z.optional(z.string()),\n minLength: z.optional(z.number()),\n maxLength: z.optional(z.number()),\n format: z.optional(z.enum(['email', 'uri', 'date', 'date-time']))\n})\n .passthrough();\n/**\n * Primitive schema definition for number fields.\n */\nexport const NumberSchemaSchema = z\n .object({\n type: z.enum(['number', 'integer']),\n title: z.optional(z.string()),\n description: z.optional(z.string()),\n minimum: z.optional(z.number()),\n maximum: z.optional(z.number())\n})\n .passthrough();\n/**\n * Primitive schema definition for enum fields.\n */\nexport const EnumSchemaSchema = z\n .object({\n type: z.literal('string'),\n title: z.optional(z.string()),\n description: z.optional(z.string()),\n enum: z.array(z.string()),\n enumNames: z.optional(z.array(z.string()))\n})\n .passthrough();\n/**\n * Union of all primitive schema definitions.\n */\nexport const PrimitiveSchemaDefinitionSchema = z.union([BooleanSchemaSchema, StringSchemaSchema, NumberSchemaSchema, EnumSchemaSchema]);\n/**\n * A request from the server to elicit user input via the client.\n * The client should present the message and form fields to the user.\n */\nexport const ElicitRequestSchema = RequestSchema.extend({\n method: z.literal('elicitation/create'),\n params: BaseRequestParamsSchema.extend({\n /**\n * The message to present to the user.\n */\n message: z.string(),\n /**\n * The schema for the requested user input.\n */\n requestedSchema: z\n .object({\n type: z.literal('object'),\n properties: z.record(z.string(), PrimitiveSchemaDefinitionSchema),\n required: z.optional(z.array(z.string()))\n })\n .passthrough()\n })\n});\n/**\n * The client's response to an elicitation/create request from the server.\n */\nexport const ElicitResultSchema = ResultSchema.extend({\n /**\n * The user's response action.\n */\n action: z.enum(['accept', 'decline', 'cancel']),\n /**\n * The collected user input content (only present if action is \"accept\").\n */\n content: z.optional(z.record(z.string(), z.unknown()))\n});\n/* Autocomplete */\n/**\n * A reference to a resource or resource template definition.\n */\nexport const ResourceTemplateReferenceSchema = z\n .object({\n type: z.literal('ref/resource'),\n /**\n * The URI or URI template of the resource.\n */\n uri: z.string()\n})\n .passthrough();\n/**\n * @deprecated Use ResourceTemplateReferenceSchema instead\n */\nexport const ResourceReferenceSchema = ResourceTemplateReferenceSchema;\n/**\n * Identifies a prompt.\n */\nexport const PromptReferenceSchema = z\n .object({\n type: z.literal('ref/prompt'),\n /**\n * The name of the prompt or prompt template\n */\n name: z.string()\n})\n .passthrough();\n/**\n * A request from the client to the server, to ask for completion options.\n */\nexport const CompleteRequestSchema = RequestSchema.extend({\n method: z.literal('completion/complete'),\n params: BaseRequestParamsSchema.extend({\n ref: z.union([PromptReferenceSchema, ResourceTemplateReferenceSchema]),\n /**\n * The argument's information\n */\n argument: z\n .object({\n /**\n * The name of the argument\n */\n name: z.string(),\n /**\n * The value of the argument to use for completion matching.\n */\n value: z.string()\n })\n .passthrough(),\n context: z.optional(z.object({\n /**\n * Previously-resolved variables in a URI template or prompt.\n */\n arguments: z.optional(z.record(z.string(), z.string()))\n }))\n })\n});\n/**\n * The server's response to a completion/complete request\n */\nexport const CompleteResultSchema = ResultSchema.extend({\n completion: z\n .object({\n /**\n * An array of completion values. Must not exceed 100 items.\n */\n values: z.array(z.string()).max(100),\n /**\n * The total number of completion options available. This can exceed the number of values actually sent in the response.\n */\n total: z.optional(z.number().int()),\n /**\n * Indicates whether there are additional completion options beyond those provided in the current response, even if the exact total is unknown.\n */\n hasMore: z.optional(z.boolean())\n })\n .passthrough()\n});\n/* Roots */\n/**\n * Represents a root directory or file that the server can operate on.\n */\nexport const RootSchema = z\n .object({\n /**\n * The URI identifying the root. This *must* start with file:// for now.\n */\n uri: z.string().startsWith('file://'),\n /**\n * An optional name for the root.\n */\n name: z.optional(z.string()),\n /**\n * See [MCP specification](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/47339c03c143bb4ec01a26e721a1b8fe66634ebe/docs/specification/draft/basic/index.mdx#general-fields)\n * for notes on _meta usage.\n */\n _meta: z.optional(z.object({}).passthrough())\n})\n .passthrough();\n/**\n * Sent from the server to request a list of root URIs from the client.\n */\nexport const ListRootsRequestSchema = RequestSchema.extend({\n method: z.literal('roots/list')\n});\n/**\n * The client's response to a roots/list request from the server.\n */\nexport const ListRootsResultSchema = ResultSchema.extend({\n roots: z.array(RootSchema)\n});\n/**\n * A notification from the client to the server, informing it that the list of roots has changed.\n */\nexport const RootsListChangedNotificationSchema = NotificationSchema.extend({\n method: z.literal('notifications/roots/list_changed')\n});\n/* Client messages */\nexport const ClientRequestSchema = z.union([\n PingRequestSchema,\n InitializeRequestSchema,\n CompleteRequestSchema,\n SetLevelRequestSchema,\n GetPromptRequestSchema,\n ListPromptsRequestSchema,\n ListResourcesRequestSchema,\n ListResourceTemplatesRequestSchema,\n ReadResourceRequestSchema,\n SubscribeRequestSchema,\n UnsubscribeRequestSchema,\n CallToolRequestSchema,\n ListToolsRequestSchema\n]);\nexport const ClientNotificationSchema = z.union([\n CancelledNotificationSchema,\n ProgressNotificationSchema,\n InitializedNotificationSchema,\n RootsListChangedNotificationSchema\n]);\nexport const ClientResultSchema = z.union([EmptyResultSchema, CreateMessageResultSchema, ElicitResultSchema, ListRootsResultSchema]);\n/* Server messages */\nexport const ServerRequestSchema = z.union([PingRequestSchema, CreateMessageRequestSchema, ElicitRequestSchema, ListRootsRequestSchema]);\nexport const ServerNotificationSchema = z.union([\n CancelledNotificationSchema,\n ProgressNotificationSchema,\n LoggingMessageNotificationSchema,\n ResourceUpdatedNotificationSchema,\n ResourceListChangedNotificationSchema,\n ToolListChangedNotificationSchema,\n PromptListChangedNotificationSchema\n]);\nexport const ServerResultSchema = z.union([\n EmptyResultSchema,\n InitializeResultSchema,\n CompleteResultSchema,\n GetPromptResultSchema,\n ListPromptsResultSchema,\n ListResourcesResultSchema,\n ListResourceTemplatesResultSchema,\n ReadResourceResultSchema,\n CallToolResultSchema,\n ListToolsResultSchema\n]);\nexport class McpError extends Error {\n constructor(code, message, data) {\n super(`MCP error ${code}: ${message}`);\n this.code = code;\n this.data = data;\n this.name = 'McpError';\n }\n}\n//# sourceMappingURL=types.js.map",
|
|
57
|
-
"import { CancelledNotificationSchema, ErrorCode, isJSONRPCError, isJSONRPCRequest, isJSONRPCResponse, isJSONRPCNotification, McpError, PingRequestSchema, ProgressNotificationSchema } from '../types.js';\n/**\n * The default request timeout, in miliseconds.\n */\nexport const DEFAULT_REQUEST_TIMEOUT_MSEC = 60000;\n/**\n * Implements MCP protocol framing on top of a pluggable transport, including\n * features like request/response linking, notifications, and progress.\n */\nexport class Protocol {\n constructor(_options) {\n this._options = _options;\n this._requestMessageId = 0;\n this._requestHandlers = new Map();\n this._requestHandlerAbortControllers = new Map();\n this._notificationHandlers = new Map();\n this._responseHandlers = new Map();\n this._progressHandlers = new Map();\n this._timeoutInfo = new Map();\n this._pendingDebouncedNotifications = new Set();\n this.setNotificationHandler(CancelledNotificationSchema, notification => {\n const controller = this._requestHandlerAbortControllers.get(notification.params.requestId);\n controller === null || controller === void 0 ? void 0 : controller.abort(notification.params.reason);\n });\n this.setNotificationHandler(ProgressNotificationSchema, notification => {\n this._onprogress(notification);\n });\n this.setRequestHandler(PingRequestSchema, \n // Automatic pong by default.\n _request => ({}));\n }\n _setupTimeout(messageId, timeout, maxTotalTimeout, onTimeout, resetTimeoutOnProgress = false) {\n this._timeoutInfo.set(messageId, {\n timeoutId: setTimeout(onTimeout, timeout),\n startTime: Date.now(),\n timeout,\n maxTotalTimeout,\n resetTimeoutOnProgress,\n onTimeout\n });\n }\n _resetTimeout(messageId) {\n const info = this._timeoutInfo.get(messageId);\n if (!info)\n return false;\n const totalElapsed = Date.now() - info.startTime;\n if (info.maxTotalTimeout && totalElapsed >= info.maxTotalTimeout) {\n this._timeoutInfo.delete(messageId);\n throw new McpError(ErrorCode.RequestTimeout, 'Maximum total timeout exceeded', {\n maxTotalTimeout: info.maxTotalTimeout,\n totalElapsed\n });\n }\n clearTimeout(info.timeoutId);\n info.timeoutId = setTimeout(info.onTimeout, info.timeout);\n return true;\n }\n _cleanupTimeout(messageId) {\n const info = this._timeoutInfo.get(messageId);\n if (info) {\n clearTimeout(info.timeoutId);\n this._timeoutInfo.delete(messageId);\n }\n }\n /**\n * Attaches to the given transport, starts it, and starts listening for messages.\n *\n * The Protocol object assumes ownership of the Transport, replacing any callbacks that have already been set, and expects that it is the only user of the Transport instance going forward.\n */\n async connect(transport) {\n var _a, _b, _c;\n this._transport = transport;\n const _onclose = (_a = this.transport) === null || _a === void 0 ? void 0 : _a.onclose;\n this._transport.onclose = () => {\n _onclose === null || _onclose === void 0 ? void 0 : _onclose();\n this._onclose();\n };\n const _onerror = (_b = this.transport) === null || _b === void 0 ? void 0 : _b.onerror;\n this._transport.onerror = (error) => {\n _onerror === null || _onerror === void 0 ? void 0 : _onerror(error);\n this._onerror(error);\n };\n const _onmessage = (_c = this._transport) === null || _c === void 0 ? void 0 : _c.onmessage;\n this._transport.onmessage = (message, extra) => {\n _onmessage === null || _onmessage === void 0 ? void 0 : _onmessage(message, extra);\n if (isJSONRPCResponse(message) || isJSONRPCError(message)) {\n this._onresponse(message);\n }\n else if (isJSONRPCRequest(message)) {\n this._onrequest(message, extra);\n }\n else if (isJSONRPCNotification(message)) {\n this._onnotification(message);\n }\n else {\n this._onerror(new Error(`Unknown message type: ${JSON.stringify(message)}`));\n }\n };\n await this._transport.start();\n }\n _onclose() {\n var _a;\n const responseHandlers = this._responseHandlers;\n this._responseHandlers = new Map();\n this._progressHandlers.clear();\n this._pendingDebouncedNotifications.clear();\n this._transport = undefined;\n (_a = this.onclose) === null || _a === void 0 ? void 0 : _a.call(this);\n const error = new McpError(ErrorCode.ConnectionClosed, 'Connection closed');\n for (const handler of responseHandlers.values()) {\n handler(error);\n }\n }\n _onerror(error) {\n var _a;\n (_a = this.onerror) === null || _a === void 0 ? void 0 : _a.call(this, error);\n }\n _onnotification(notification) {\n var _a;\n const handler = (_a = this._notificationHandlers.get(notification.method)) !== null && _a !== void 0 ? _a : this.fallbackNotificationHandler;\n // Ignore notifications not being subscribed to.\n if (handler === undefined) {\n return;\n }\n // Starting with Promise.resolve() puts any synchronous errors into the monad as well.\n Promise.resolve()\n .then(() => handler(notification))\n .catch(error => this._onerror(new Error(`Uncaught error in notification handler: ${error}`)));\n }\n _onrequest(request, extra) {\n var _a, _b;\n const handler = (_a = this._requestHandlers.get(request.method)) !== null && _a !== void 0 ? _a : this.fallbackRequestHandler;\n // Capture the current transport at request time to ensure responses go to the correct client\n const capturedTransport = this._transport;\n if (handler === undefined) {\n capturedTransport === null || capturedTransport === void 0 ? void 0 : capturedTransport.send({\n jsonrpc: '2.0',\n id: request.id,\n error: {\n code: ErrorCode.MethodNotFound,\n message: 'Method not found'\n }\n }).catch(error => this._onerror(new Error(`Failed to send an error response: ${error}`)));\n return;\n }\n const abortController = new AbortController();\n this._requestHandlerAbortControllers.set(request.id, abortController);\n const fullExtra = {\n signal: abortController.signal,\n sessionId: capturedTransport === null || capturedTransport === void 0 ? void 0 : capturedTransport.sessionId,\n _meta: (_b = request.params) === null || _b === void 0 ? void 0 : _b._meta,\n sendNotification: notification => this.notification(notification, { relatedRequestId: request.id }),\n sendRequest: (r, resultSchema, options) => this.request(r, resultSchema, { ...options, relatedRequestId: request.id }),\n authInfo: extra === null || extra === void 0 ? void 0 : extra.authInfo,\n requestId: request.id,\n requestInfo: extra === null || extra === void 0 ? void 0 : extra.requestInfo\n };\n // Starting with Promise.resolve() puts any synchronous errors into the monad as well.\n Promise.resolve()\n .then(() => handler(request, fullExtra))\n .then(result => {\n if (abortController.signal.aborted) {\n return;\n }\n return capturedTransport === null || capturedTransport === void 0 ? void 0 : capturedTransport.send({\n result,\n jsonrpc: '2.0',\n id: request.id\n });\n }, error => {\n var _a;\n if (abortController.signal.aborted) {\n return;\n }\n return capturedTransport === null || capturedTransport === void 0 ? void 0 : capturedTransport.send({\n jsonrpc: '2.0',\n id: request.id,\n error: {\n code: Number.isSafeInteger(error['code']) ? error['code'] : ErrorCode.InternalError,\n message: (_a = error.message) !== null && _a !== void 0 ? _a : 'Internal error'\n }\n });\n })\n .catch(error => this._onerror(new Error(`Failed to send response: ${error}`)))\n .finally(() => {\n this._requestHandlerAbortControllers.delete(request.id);\n });\n }\n _onprogress(notification) {\n const { progressToken, ...params } = notification.params;\n const messageId = Number(progressToken);\n const handler = this._progressHandlers.get(messageId);\n if (!handler) {\n this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(notification)}`));\n return;\n }\n const responseHandler = this._responseHandlers.get(messageId);\n const timeoutInfo = this._timeoutInfo.get(messageId);\n if (timeoutInfo && responseHandler && timeoutInfo.resetTimeoutOnProgress) {\n try {\n this._resetTimeout(messageId);\n }\n catch (error) {\n responseHandler(error);\n return;\n }\n }\n handler(params);\n }\n _onresponse(response) {\n const messageId = Number(response.id);\n const handler = this._responseHandlers.get(messageId);\n if (handler === undefined) {\n this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(response)}`));\n return;\n }\n this._responseHandlers.delete(messageId);\n this._progressHandlers.delete(messageId);\n this._cleanupTimeout(messageId);\n if (isJSONRPCResponse(response)) {\n handler(response);\n }\n else {\n const error = new McpError(response.error.code, response.error.message, response.error.data);\n handler(error);\n }\n }\n get transport() {\n return this._transport;\n }\n /**\n * Closes the connection.\n */\n async close() {\n var _a;\n await ((_a = this._transport) === null || _a === void 0 ? void 0 : _a.close());\n }\n /**\n * Sends a request and wait for a response.\n *\n * Do not use this method to emit notifications! Use notification() instead.\n */\n request(request, resultSchema, options) {\n const { relatedRequestId, resumptionToken, onresumptiontoken } = options !== null && options !== void 0 ? options : {};\n return new Promise((resolve, reject) => {\n var _a, _b, _c, _d, _e, _f;\n if (!this._transport) {\n reject(new Error('Not connected'));\n return;\n }\n if (((_a = this._options) === null || _a === void 0 ? void 0 : _a.enforceStrictCapabilities) === true) {\n this.assertCapabilityForMethod(request.method);\n }\n (_b = options === null || options === void 0 ? void 0 : options.signal) === null || _b === void 0 ? void 0 : _b.throwIfAborted();\n const messageId = this._requestMessageId++;\n const jsonrpcRequest = {\n ...request,\n jsonrpc: '2.0',\n id: messageId\n };\n if (options === null || options === void 0 ? void 0 : options.onprogress) {\n this._progressHandlers.set(messageId, options.onprogress);\n jsonrpcRequest.params = {\n ...request.params,\n _meta: {\n ...(((_c = request.params) === null || _c === void 0 ? void 0 : _c._meta) || {}),\n progressToken: messageId\n }\n };\n }\n const cancel = (reason) => {\n var _a;\n this._responseHandlers.delete(messageId);\n this._progressHandlers.delete(messageId);\n this._cleanupTimeout(messageId);\n (_a = this._transport) === null || _a === void 0 ? void 0 : _a.send({\n jsonrpc: '2.0',\n method: 'notifications/cancelled',\n params: {\n requestId: messageId,\n reason: String(reason)\n }\n }, { relatedRequestId, resumptionToken, onresumptiontoken }).catch(error => this._onerror(new Error(`Failed to send cancellation: ${error}`)));\n reject(reason);\n };\n this._responseHandlers.set(messageId, response => {\n var _a;\n if ((_a = options === null || options === void 0 ? void 0 : options.signal) === null || _a === void 0 ? void 0 : _a.aborted) {\n return;\n }\n if (response instanceof Error) {\n return reject(response);\n }\n try {\n const result = resultSchema.parse(response.result);\n resolve(result);\n }\n catch (error) {\n reject(error);\n }\n });\n (_d = options === null || options === void 0 ? void 0 : options.signal) === null || _d === void 0 ? void 0 : _d.addEventListener('abort', () => {\n var _a;\n cancel((_a = options === null || options === void 0 ? void 0 : options.signal) === null || _a === void 0 ? void 0 : _a.reason);\n });\n const timeout = (_e = options === null || options === void 0 ? void 0 : options.timeout) !== null && _e !== void 0 ? _e : DEFAULT_REQUEST_TIMEOUT_MSEC;\n const timeoutHandler = () => cancel(new McpError(ErrorCode.RequestTimeout, 'Request timed out', { timeout }));\n this._setupTimeout(messageId, timeout, options === null || options === void 0 ? void 0 : options.maxTotalTimeout, timeoutHandler, (_f = options === null || options === void 0 ? void 0 : options.resetTimeoutOnProgress) !== null && _f !== void 0 ? _f : false);\n this._transport.send(jsonrpcRequest, { relatedRequestId, resumptionToken, onresumptiontoken }).catch(error => {\n this._cleanupTimeout(messageId);\n reject(error);\n });\n });\n }\n /**\n * Emits a notification, which is a one-way message that does not expect a response.\n */\n async notification(notification, options) {\n var _a, _b;\n if (!this._transport) {\n throw new Error('Not connected');\n }\n this.assertNotificationCapability(notification.method);\n const debouncedMethods = (_b = (_a = this._options) === null || _a === void 0 ? void 0 : _a.debouncedNotificationMethods) !== null && _b !== void 0 ? _b : [];\n // A notification can only be debounced if it's in the list AND it's \"simple\"\n // (i.e., has no parameters and no related request ID that could be lost).\n const canDebounce = debouncedMethods.includes(notification.method) && !notification.params && !(options === null || options === void 0 ? void 0 : options.relatedRequestId);\n if (canDebounce) {\n // If a notification of this type is already scheduled, do nothing.\n if (this._pendingDebouncedNotifications.has(notification.method)) {\n return;\n }\n // Mark this notification type as pending.\n this._pendingDebouncedNotifications.add(notification.method);\n // Schedule the actual send to happen in the next microtask.\n // This allows all synchronous calls in the current event loop tick to be coalesced.\n Promise.resolve().then(() => {\n var _a;\n // Un-mark the notification so the next one can be scheduled.\n this._pendingDebouncedNotifications.delete(notification.method);\n // SAFETY CHECK: If the connection was closed while this was pending, abort.\n if (!this._transport) {\n return;\n }\n const jsonrpcNotification = {\n ...notification,\n jsonrpc: '2.0'\n };\n // Send the notification, but don't await it here to avoid blocking.\n // Handle potential errors with a .catch().\n (_a = this._transport) === null || _a === void 0 ? void 0 : _a.send(jsonrpcNotification, options).catch(error => this._onerror(error));\n });\n // Return immediately.\n return;\n }\n const jsonrpcNotification = {\n ...notification,\n jsonrpc: '2.0'\n };\n await this._transport.send(jsonrpcNotification, options);\n }\n /**\n * Registers a handler to invoke when this protocol object receives a request with the given method.\n *\n * Note that this will replace any previous request handler for the same method.\n */\n setRequestHandler(requestSchema, handler) {\n const method = requestSchema.shape.method.value;\n this.assertRequestHandlerCapability(method);\n this._requestHandlers.set(method, (request, extra) => {\n return Promise.resolve(handler(requestSchema.parse(request), extra));\n });\n }\n /**\n * Removes the request handler for the given method.\n */\n removeRequestHandler(method) {\n this._requestHandlers.delete(method);\n }\n /**\n * Asserts that a request handler has not already been set for the given method, in preparation for a new one being automatically installed.\n */\n assertCanSetRequestHandler(method) {\n if (this._requestHandlers.has(method)) {\n throw new Error(`A request handler for ${method} already exists, which would be overridden`);\n }\n }\n /**\n * Registers a handler to invoke when this protocol object receives a notification with the given method.\n *\n * Note that this will replace any previous notification handler for the same method.\n */\n setNotificationHandler(notificationSchema, handler) {\n this._notificationHandlers.set(notificationSchema.shape.method.value, notification => Promise.resolve(handler(notificationSchema.parse(notification))));\n }\n /**\n * Removes the notification handler for the given method.\n */\n removeNotificationHandler(method) {\n this._notificationHandlers.delete(method);\n }\n}\nexport function mergeCapabilities(base, additional) {\n return Object.entries(additional).reduce((acc, [key, value]) => {\n if (value && typeof value === 'object') {\n acc[key] = acc[key] ? { ...acc[key], ...value } : value;\n }\n else {\n acc[key] = value;\n }\n return acc;\n }, { ...base });\n}\n//# sourceMappingURL=protocol.js.map",
|
|
58
|
-
"import { mergeCapabilities, Protocol } from '../shared/protocol.js';\nimport { CreateMessageResultSchema, ElicitResultSchema, EmptyResultSchema, InitializedNotificationSchema, InitializeRequestSchema, LATEST_PROTOCOL_VERSION, ListRootsResultSchema, McpError, ErrorCode, SUPPORTED_PROTOCOL_VERSIONS, SetLevelRequestSchema, LoggingLevelSchema } from '../types.js';\nimport Ajv from 'ajv';\n/**\n * An MCP server on top of a pluggable transport.\n *\n * This server will automatically respond to the initialization flow as initiated from the client.\n *\n * To use with custom types, extend the base Request/Notification/Result types and pass them as type parameters:\n *\n * ```typescript\n * // Custom schemas\n * const CustomRequestSchema = RequestSchema.extend({...})\n * const CustomNotificationSchema = NotificationSchema.extend({...})\n * const CustomResultSchema = ResultSchema.extend({...})\n *\n * // Type aliases\n * type CustomRequest = z.infer<typeof CustomRequestSchema>\n * type CustomNotification = z.infer<typeof CustomNotificationSchema>\n * type CustomResult = z.infer<typeof CustomResultSchema>\n *\n * // Create typed server\n * const server = new Server<CustomRequest, CustomNotification, CustomResult>({\n * name: \"CustomServer\",\n * version: \"1.0.0\"\n * })\n * ```\n */\nexport class Server extends Protocol {\n /**\n * Initializes this server with the given name and version information.\n */\n constructor(_serverInfo, options) {\n var _a;\n super(options);\n this._serverInfo = _serverInfo;\n // Map log levels by session id\n this._loggingLevels = new Map();\n // Map LogLevelSchema to severity index\n this.LOG_LEVEL_SEVERITY = new Map(LoggingLevelSchema.options.map((level, index) => [level, index]));\n // Is a message with the given level ignored in the log level set for the given session id?\n this.isMessageIgnored = (level, sessionId) => {\n const currentLevel = this._loggingLevels.get(sessionId);\n return currentLevel ? this.LOG_LEVEL_SEVERITY.get(level) < this.LOG_LEVEL_SEVERITY.get(currentLevel) : false;\n };\n this._capabilities = (_a = options === null || options === void 0 ? void 0 : options.capabilities) !== null && _a !== void 0 ? _a : {};\n this._instructions = options === null || options === void 0 ? void 0 : options.instructions;\n this.setRequestHandler(InitializeRequestSchema, request => this._oninitialize(request));\n this.setNotificationHandler(InitializedNotificationSchema, () => { var _a; return (_a = this.oninitialized) === null || _a === void 0 ? void 0 : _a.call(this); });\n if (this._capabilities.logging) {\n this.setRequestHandler(SetLevelRequestSchema, async (request, extra) => {\n var _a;\n const transportSessionId = extra.sessionId || ((_a = extra.requestInfo) === null || _a === void 0 ? void 0 : _a.headers['mcp-session-id']) || undefined;\n const { level } = request.params;\n const parseResult = LoggingLevelSchema.safeParse(level);\n if (parseResult.success) {\n this._loggingLevels.set(transportSessionId, parseResult.data);\n }\n return {};\n });\n }\n }\n /**\n * Registers new capabilities. This can only be called before connecting to a transport.\n *\n * The new capabilities will be merged with any existing capabilities previously given (e.g., at initialization).\n */\n registerCapabilities(capabilities) {\n if (this.transport) {\n throw new Error('Cannot register capabilities after connecting to transport');\n }\n this._capabilities = mergeCapabilities(this._capabilities, capabilities);\n }\n assertCapabilityForMethod(method) {\n var _a, _b, _c;\n switch (method) {\n case 'sampling/createMessage':\n if (!((_a = this._clientCapabilities) === null || _a === void 0 ? void 0 : _a.sampling)) {\n throw new Error(`Client does not support sampling (required for ${method})`);\n }\n break;\n case 'elicitation/create':\n if (!((_b = this._clientCapabilities) === null || _b === void 0 ? void 0 : _b.elicitation)) {\n throw new Error(`Client does not support elicitation (required for ${method})`);\n }\n break;\n case 'roots/list':\n if (!((_c = this._clientCapabilities) === null || _c === void 0 ? void 0 : _c.roots)) {\n throw new Error(`Client does not support listing roots (required for ${method})`);\n }\n break;\n case 'ping':\n // No specific capability required for ping\n break;\n }\n }\n assertNotificationCapability(method) {\n switch (method) {\n case 'notifications/message':\n if (!this._capabilities.logging) {\n throw new Error(`Server does not support logging (required for ${method})`);\n }\n break;\n case 'notifications/resources/updated':\n case 'notifications/resources/list_changed':\n if (!this._capabilities.resources) {\n throw new Error(`Server does not support notifying about resources (required for ${method})`);\n }\n break;\n case 'notifications/tools/list_changed':\n if (!this._capabilities.tools) {\n throw new Error(`Server does not support notifying of tool list changes (required for ${method})`);\n }\n break;\n case 'notifications/prompts/list_changed':\n if (!this._capabilities.prompts) {\n throw new Error(`Server does not support notifying of prompt list changes (required for ${method})`);\n }\n break;\n case 'notifications/cancelled':\n // Cancellation notifications are always allowed\n break;\n case 'notifications/progress':\n // Progress notifications are always allowed\n break;\n }\n }\n assertRequestHandlerCapability(method) {\n switch (method) {\n case 'sampling/createMessage':\n if (!this._capabilities.sampling) {\n throw new Error(`Server does not support sampling (required for ${method})`);\n }\n break;\n case 'logging/setLevel':\n if (!this._capabilities.logging) {\n throw new Error(`Server does not support logging (required for ${method})`);\n }\n break;\n case 'prompts/get':\n case 'prompts/list':\n if (!this._capabilities.prompts) {\n throw new Error(`Server does not support prompts (required for ${method})`);\n }\n break;\n case 'resources/list':\n case 'resources/templates/list':\n case 'resources/read':\n if (!this._capabilities.resources) {\n throw new Error(`Server does not support resources (required for ${method})`);\n }\n break;\n case 'tools/call':\n case 'tools/list':\n if (!this._capabilities.tools) {\n throw new Error(`Server does not support tools (required for ${method})`);\n }\n break;\n case 'ping':\n case 'initialize':\n // No specific capability required for these methods\n break;\n }\n }\n async _oninitialize(request) {\n const requestedVersion = request.params.protocolVersion;\n this._clientCapabilities = request.params.capabilities;\n this._clientVersion = request.params.clientInfo;\n const protocolVersion = SUPPORTED_PROTOCOL_VERSIONS.includes(requestedVersion) ? requestedVersion : LATEST_PROTOCOL_VERSION;\n return {\n protocolVersion,\n capabilities: this.getCapabilities(),\n serverInfo: this._serverInfo,\n ...(this._instructions && { instructions: this._instructions })\n };\n }\n /**\n * After initialization has completed, this will be populated with the client's reported capabilities.\n */\n getClientCapabilities() {\n return this._clientCapabilities;\n }\n /**\n * After initialization has completed, this will be populated with information about the client's name and version.\n */\n getClientVersion() {\n return this._clientVersion;\n }\n getCapabilities() {\n return this._capabilities;\n }\n async ping() {\n return this.request({ method: 'ping' }, EmptyResultSchema);\n }\n async createMessage(params, options) {\n return this.request({ method: 'sampling/createMessage', params }, CreateMessageResultSchema, options);\n }\n async elicitInput(params, options) {\n const result = await this.request({ method: 'elicitation/create', params }, ElicitResultSchema, options);\n // Validate the response content against the requested schema if action is \"accept\"\n if (result.action === 'accept' && result.content) {\n try {\n const ajv = new Ajv();\n const validate = ajv.compile(params.requestedSchema);\n const isValid = validate(result.content);\n if (!isValid) {\n throw new McpError(ErrorCode.InvalidParams, `Elicitation response content does not match requested schema: ${ajv.errorsText(validate.errors)}`);\n }\n }\n catch (error) {\n if (error instanceof McpError) {\n throw error;\n }\n throw new McpError(ErrorCode.InternalError, `Error validating elicitation response: ${error}`);\n }\n }\n return result;\n }\n async listRoots(params, options) {\n return this.request({ method: 'roots/list', params }, ListRootsResultSchema, options);\n }\n /**\n * Sends a logging message to the client, if connected.\n * Note: You only need to send the parameters object, not the entire JSON RPC message\n * @see LoggingMessageNotification\n * @param params\n * @param sessionId optional for stateless and backward compatibility\n */\n async sendLoggingMessage(params, sessionId) {\n if (this._capabilities.logging) {\n if (!this.isMessageIgnored(params.level, sessionId)) {\n return this.notification({ method: 'notifications/message', params });\n }\n }\n }\n async sendResourceUpdated(params) {\n return this.notification({\n method: 'notifications/resources/updated',\n params\n });\n }\n async sendResourceListChanged() {\n return this.notification({\n method: 'notifications/resources/list_changed'\n });\n }\n async sendToolListChanged() {\n return this.notification({ method: 'notifications/tools/list_changed' });\n }\n async sendPromptListChanged() {\n return this.notification({ method: 'notifications/prompts/list_changed' });\n }\n}\n//# sourceMappingURL=index.js.map",
|
|
59
|
-
"import process from 'node:process';\nimport { ReadBuffer, serializeMessage } from '../shared/stdio.js';\n/**\n * Server transport for stdio: this communicates with a MCP client by reading from the current process' stdin and writing to stdout.\n *\n * This transport is only available in Node.js environments.\n */\nexport class StdioServerTransport {\n constructor(_stdin = process.stdin, _stdout = process.stdout) {\n this._stdin = _stdin;\n this._stdout = _stdout;\n this._readBuffer = new ReadBuffer();\n this._started = false;\n // Arrow functions to bind `this` properly, while maintaining function identity.\n this._ondata = (chunk) => {\n this._readBuffer.append(chunk);\n this.processReadBuffer();\n };\n this._onerror = (error) => {\n var _a;\n (_a = this.onerror) === null || _a === void 0 ? void 0 : _a.call(this, error);\n };\n }\n /**\n * Starts listening for messages on stdin.\n */\n async start() {\n if (this._started) {\n throw new Error('StdioServerTransport already started! If using Server class, note that connect() calls start() automatically.');\n }\n this._started = true;\n this._stdin.on('data', this._ondata);\n this._stdin.on('error', this._onerror);\n }\n processReadBuffer() {\n var _a, _b;\n while (true) {\n try {\n const message = this._readBuffer.readMessage();\n if (message === null) {\n break;\n }\n (_a = this.onmessage) === null || _a === void 0 ? void 0 : _a.call(this, message);\n }\n catch (error) {\n (_b = this.onerror) === null || _b === void 0 ? void 0 : _b.call(this, error);\n }\n }\n }\n async close() {\n var _a;\n // Remove our event listeners first\n this._stdin.off('data', this._ondata);\n this._stdin.off('error', this._onerror);\n // Check if we were the only data listener\n const remainingDataListeners = this._stdin.listenerCount('data');\n if (remainingDataListeners === 0) {\n // Only pause stdin if we were the only listener\n // This prevents interfering with other parts of the application that might be using stdin\n this._stdin.pause();\n }\n // Clear the buffer and notify closure\n this._readBuffer.clear();\n (_a = this.onclose) === null || _a === void 0 ? void 0 : _a.call(this);\n }\n send(message) {\n return new Promise(resolve => {\n const json = serializeMessage(message);\n if (this._stdout.write(json)) {\n resolve();\n }\n else {\n this._stdout.once('drain', resolve);\n }\n });\n }\n}\n//# sourceMappingURL=stdio.js.map",
|
|
60
|
-
"import { JSONRPCMessageSchema } from '../types.js';\n/**\n * Buffers a continuous stdio stream into discrete JSON-RPC messages.\n */\nexport class ReadBuffer {\n append(chunk) {\n this._buffer = this._buffer ? Buffer.concat([this._buffer, chunk]) : chunk;\n }\n readMessage() {\n if (!this._buffer) {\n return null;\n }\n const index = this._buffer.indexOf('\\n');\n if (index === -1) {\n return null;\n }\n const line = this._buffer.toString('utf8', 0, index).replace(/\\r$/, '');\n this._buffer = this._buffer.subarray(index + 1);\n return deserializeMessage(line);\n }\n clear() {\n this._buffer = undefined;\n }\n}\nexport function deserializeMessage(line) {\n return JSONRPCMessageSchema.parse(JSON.parse(line));\n}\nexport function serializeMessage(message) {\n return JSON.stringify(message) + '\\n';\n}\n//# sourceMappingURL=stdio.js.map",
|
|
61
|
-
"const ANSI_BACKGROUND_OFFSET = 10;\n\nconst wrapAnsi16 = (offset = 0) => code => `\\u001B[${code + offset}m`;\n\nconst wrapAnsi256 = (offset = 0) => code => `\\u001B[${38 + offset};5;${code}m`;\n\nconst wrapAnsi16m = (offset = 0) => (red, green, blue) => `\\u001B[${38 + offset};2;${red};${green};${blue}m`;\n\nconst styles = {\n\tmodifier: {\n\t\treset: [0, 0],\n\t\t// 21 isn't widely supported and 22 does the same thing\n\t\tbold: [1, 22],\n\t\tdim: [2, 22],\n\t\titalic: [3, 23],\n\t\tunderline: [4, 24],\n\t\toverline: [53, 55],\n\t\tinverse: [7, 27],\n\t\thidden: [8, 28],\n\t\tstrikethrough: [9, 29],\n\t},\n\tcolor: {\n\t\tblack: [30, 39],\n\t\tred: [31, 39],\n\t\tgreen: [32, 39],\n\t\tyellow: [33, 39],\n\t\tblue: [34, 39],\n\t\tmagenta: [35, 39],\n\t\tcyan: [36, 39],\n\t\twhite: [37, 39],\n\n\t\t// Bright color\n\t\tblackBright: [90, 39],\n\t\tgray: [90, 39], // Alias of `blackBright`\n\t\tgrey: [90, 39], // Alias of `blackBright`\n\t\tredBright: [91, 39],\n\t\tgreenBright: [92, 39],\n\t\tyellowBright: [93, 39],\n\t\tblueBright: [94, 39],\n\t\tmagentaBright: [95, 39],\n\t\tcyanBright: [96, 39],\n\t\twhiteBright: [97, 39],\n\t},\n\tbgColor: {\n\t\tbgBlack: [40, 49],\n\t\tbgRed: [41, 49],\n\t\tbgGreen: [42, 49],\n\t\tbgYellow: [43, 49],\n\t\tbgBlue: [44, 49],\n\t\tbgMagenta: [45, 49],\n\t\tbgCyan: [46, 49],\n\t\tbgWhite: [47, 49],\n\n\t\t// Bright color\n\t\tbgBlackBright: [100, 49],\n\t\tbgGray: [100, 49], // Alias of `bgBlackBright`\n\t\tbgGrey: [100, 49], // Alias of `bgBlackBright`\n\t\tbgRedBright: [101, 49],\n\t\tbgGreenBright: [102, 49],\n\t\tbgYellowBright: [103, 49],\n\t\tbgBlueBright: [104, 49],\n\t\tbgMagentaBright: [105, 49],\n\t\tbgCyanBright: [106, 49],\n\t\tbgWhiteBright: [107, 49],\n\t},\n};\n\nexport const modifierNames = Object.keys(styles.modifier);\nexport const foregroundColorNames = Object.keys(styles.color);\nexport const backgroundColorNames = Object.keys(styles.bgColor);\nexport const colorNames = [...foregroundColorNames, ...backgroundColorNames];\n\nfunction assembleStyles() {\n\tconst codes = new Map();\n\n\tfor (const [groupName, group] of Object.entries(styles)) {\n\t\tfor (const [styleName, style] of Object.entries(group)) {\n\t\t\tstyles[styleName] = {\n\t\t\t\topen: `\\u001B[${style[0]}m`,\n\t\t\t\tclose: `\\u001B[${style[1]}m`,\n\t\t\t};\n\n\t\t\tgroup[styleName] = styles[styleName];\n\n\t\t\tcodes.set(style[0], style[1]);\n\t\t}\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false,\n\t\t});\n\t}\n\n\tObject.defineProperty(styles, 'codes', {\n\t\tvalue: codes,\n\t\tenumerable: false,\n\t});\n\n\tstyles.color.close = '\\u001B[39m';\n\tstyles.bgColor.close = '\\u001B[49m';\n\n\tstyles.color.ansi = wrapAnsi16();\n\tstyles.color.ansi256 = wrapAnsi256();\n\tstyles.color.ansi16m = wrapAnsi16m();\n\tstyles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);\n\n\t// From https://github.com/Qix-/color-convert/blob/3f0e0d4e92e235796ccb17f6e85c72094a651f49/conversions.js\n\tObject.defineProperties(styles, {\n\t\trgbToAnsi256: {\n\t\t\tvalue(red, green, blue) {\n\t\t\t\t// We use the extended greyscale palette here, with the exception of\n\t\t\t\t// black and white. normal palette only has 4 greyscale shades.\n\t\t\t\tif (red === green && green === blue) {\n\t\t\t\t\tif (red < 8) {\n\t\t\t\t\t\treturn 16;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (red > 248) {\n\t\t\t\t\t\treturn 231;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Math.round(((red - 8) / 247) * 24) + 232;\n\t\t\t\t}\n\n\t\t\t\treturn 16\n\t\t\t\t\t+ (36 * Math.round(red / 255 * 5))\n\t\t\t\t\t+ (6 * Math.round(green / 255 * 5))\n\t\t\t\t\t+ Math.round(blue / 255 * 5);\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToRgb: {\n\t\t\tvalue(hex) {\n\t\t\t\tconst matches = /[a-f\\d]{6}|[a-f\\d]{3}/i.exec(hex.toString(16));\n\t\t\t\tif (!matches) {\n\t\t\t\t\treturn [0, 0, 0];\n\t\t\t\t}\n\n\t\t\t\tlet [colorString] = matches;\n\n\t\t\t\tif (colorString.length === 3) {\n\t\t\t\t\tcolorString = [...colorString].map(character => character + character).join('');\n\t\t\t\t}\n\n\t\t\t\tconst integer = Number.parseInt(colorString, 16);\n\n\t\t\t\treturn [\n\t\t\t\t\t/* eslint-disable no-bitwise */\n\t\t\t\t\t(integer >> 16) & 0xFF,\n\t\t\t\t\t(integer >> 8) & 0xFF,\n\t\t\t\t\tinteger & 0xFF,\n\t\t\t\t\t/* eslint-enable no-bitwise */\n\t\t\t\t];\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi256: {\n\t\t\tvalue: hex => styles.rgbToAnsi256(...styles.hexToRgb(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t\tansi256ToAnsi: {\n\t\t\tvalue(code) {\n\t\t\t\tif (code < 8) {\n\t\t\t\t\treturn 30 + code;\n\t\t\t\t}\n\n\t\t\t\tif (code < 16) {\n\t\t\t\t\treturn 90 + (code - 8);\n\t\t\t\t}\n\n\t\t\t\tlet red;\n\t\t\t\tlet green;\n\t\t\t\tlet blue;\n\n\t\t\t\tif (code >= 232) {\n\t\t\t\t\tred = (((code - 232) * 10) + 8) / 255;\n\t\t\t\t\tgreen = red;\n\t\t\t\t\tblue = red;\n\t\t\t\t} else {\n\t\t\t\t\tcode -= 16;\n\n\t\t\t\t\tconst remainder = code % 36;\n\n\t\t\t\t\tred = Math.floor(code / 36) / 5;\n\t\t\t\t\tgreen = Math.floor(remainder / 6) / 5;\n\t\t\t\t\tblue = (remainder % 6) / 5;\n\t\t\t\t}\n\n\t\t\t\tconst value = Math.max(red, green, blue) * 2;\n\n\t\t\t\tif (value === 0) {\n\t\t\t\t\treturn 30;\n\t\t\t\t}\n\n\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\tlet result = 30 + ((Math.round(blue) << 2) | (Math.round(green) << 1) | Math.round(red));\n\n\t\t\t\tif (value === 2) {\n\t\t\t\t\tresult += 60;\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\trgbToAnsi: {\n\t\t\tvalue: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi: {\n\t\t\tvalue: hex => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t});\n\n\treturn styles;\n}\n\nconst ansiStyles = assembleStyles();\n\nexport default ansiStyles;\n",
|
|
62
|
-
"import process from 'node:process';\nimport os from 'node:os';\nimport tty from 'node:tty';\n\n// From: https://github.com/sindresorhus/has-flag/blob/main/index.js\n/// function hasFlag(flag, argv = globalThis.Deno?.args ?? process.argv) {\nfunction hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : process.argv) {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n}\n\nconst {env} = process;\n\nlet flagForceColor;\nif (\n\thasFlag('no-color')\n\t|| hasFlag('no-colors')\n\t|| hasFlag('color=false')\n\t|| hasFlag('color=never')\n) {\n\tflagForceColor = 0;\n} else if (\n\thasFlag('color')\n\t|| hasFlag('colors')\n\t|| hasFlag('color=true')\n\t|| hasFlag('color=always')\n) {\n\tflagForceColor = 1;\n}\n\nfunction envForceColor() {\n\tif ('FORCE_COLOR' in env) {\n\t\tif (env.FORCE_COLOR === 'true') {\n\t\t\treturn 1;\n\t\t}\n\n\t\tif (env.FORCE_COLOR === 'false') {\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3,\n\t};\n}\n\nfunction _supportsColor(haveStream, {streamIsTTY, sniffFlags = true} = {}) {\n\tconst noFlagForceColor = envForceColor();\n\tif (noFlagForceColor !== undefined) {\n\t\tflagForceColor = noFlagForceColor;\n\t}\n\n\tconst forceColor = sniffFlags ? flagForceColor : noFlagForceColor;\n\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (sniffFlags) {\n\t\tif (hasFlag('color=16m')\n\t\t\t|| hasFlag('color=full')\n\t\t\t|| hasFlag('color=truecolor')) {\n\t\t\treturn 3;\n\t\t}\n\n\t\tif (hasFlag('color=256')) {\n\t\t\treturn 2;\n\t\t}\n\t}\n\n\t// Check for Azure DevOps pipelines.\n\t// Has to be above the `!streamIsTTY` check.\n\tif ('TF_BUILD' in env && 'AGENT_NAME' in env) {\n\t\treturn 1;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10\n\t\t\t&& Number(osRelease[2]) >= 10_586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14_931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['GITHUB_ACTIONS', 'GITEA_ACTIONS', 'CIRCLECI'].some(key => key in env)) {\n\t\t\treturn 3;\n\t\t}\n\n\t\tif (['TRAVIS', 'APPVEYOR', 'GITLAB_CI', 'BUILDKITE', 'DRONE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif (env.TERM === 'xterm-kitty') {\n\t\treturn 3;\n\t}\n\n\tif (env.TERM === 'xterm-ghostty') {\n\t\treturn 3;\n\t}\n\n\tif (env.TERM === 'wezterm') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = Number.parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app': {\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\t}\n\n\t\t\tcase 'Apple_Terminal': {\n\t\t\t\treturn 2;\n\t\t\t}\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nexport function createSupportsColor(stream, options = {}) {\n\tconst level = _supportsColor(stream, {\n\t\tstreamIsTTY: stream && stream.isTTY,\n\t\t...options,\n\t});\n\n\treturn translateLevel(level);\n}\n\nconst supportsColor = {\n\tstdout: createSupportsColor({isTTY: tty.isatty(1)}),\n\tstderr: createSupportsColor({isTTY: tty.isatty(2)}),\n};\n\nexport default supportsColor;\n",
|
|
63
|
-
"// TODO: When targeting Node.js 16, use `String.prototype.replaceAll`.\nexport function stringReplaceAll(string, substring, replacer) {\n\tlet index = string.indexOf(substring);\n\tif (index === -1) {\n\t\treturn string;\n\t}\n\n\tconst substringLength = substring.length;\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\treturnValue += string.slice(endIndex, index) + substring + replacer;\n\t\tendIndex = index + substringLength;\n\t\tindex = string.indexOf(substring, endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.slice(endIndex);\n\treturn returnValue;\n}\n\nexport function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) {\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\tconst gotCR = string[index - 1] === '\\r';\n\t\treturnValue += string.slice(endIndex, (gotCR ? index - 1 : index)) + prefix + (gotCR ? '\\r\\n' : '\\n') + postfix;\n\t\tendIndex = index + 1;\n\t\tindex = string.indexOf('\\n', endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.slice(endIndex);\n\treturn returnValue;\n}\n",
|
|
64
|
-
"import ansiStyles from '#ansi-styles';\nimport supportsColor from '#supports-color';\nimport { // eslint-disable-line import/order\n\tstringReplaceAll,\n\tstringEncaseCRLFWithFirstIndex,\n} from './utilities.js';\n\nconst {stdout: stdoutColor, stderr: stderrColor} = supportsColor;\n\nconst GENERATOR = Symbol('GENERATOR');\nconst STYLER = Symbol('STYLER');\nconst IS_EMPTY = Symbol('IS_EMPTY');\n\n// `supportsColor.level` → `ansiStyles.color[name]` mapping\nconst levelMapping = [\n\t'ansi',\n\t'ansi',\n\t'ansi256',\n\t'ansi16m',\n];\n\nconst styles = Object.create(null);\n\nconst applyOptions = (object, options = {}) => {\n\tif (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {\n\t\tthrow new Error('The `level` option should be an integer from 0 to 3');\n\t}\n\n\t// Detect level if not set manually\n\tconst colorLevel = stdoutColor ? stdoutColor.level : 0;\n\tobject.level = options.level === undefined ? colorLevel : options.level;\n};\n\nexport class Chalk {\n\tconstructor(options) {\n\t\t// eslint-disable-next-line no-constructor-return\n\t\treturn chalkFactory(options);\n\t}\n}\n\nconst chalkFactory = options => {\n\tconst chalk = (...strings) => strings.join(' ');\n\tapplyOptions(chalk, options);\n\n\tObject.setPrototypeOf(chalk, createChalk.prototype);\n\n\treturn chalk;\n};\n\nfunction createChalk(options) {\n\treturn chalkFactory(options);\n}\n\nObject.setPrototypeOf(createChalk.prototype, Function.prototype);\n\nfor (const [styleName, style] of Object.entries(ansiStyles)) {\n\tstyles[styleName] = {\n\t\tget() {\n\t\t\tconst builder = createBuilder(this, createStyler(style.open, style.close, this[STYLER]), this[IS_EMPTY]);\n\t\t\tObject.defineProperty(this, styleName, {value: builder});\n\t\t\treturn builder;\n\t\t},\n\t};\n}\n\nstyles.visible = {\n\tget() {\n\t\tconst builder = createBuilder(this, this[STYLER], true);\n\t\tObject.defineProperty(this, 'visible', {value: builder});\n\t\treturn builder;\n\t},\n};\n\nconst getModelAnsi = (model, level, type, ...arguments_) => {\n\tif (model === 'rgb') {\n\t\tif (level === 'ansi16m') {\n\t\t\treturn ansiStyles[type].ansi16m(...arguments_);\n\t\t}\n\n\t\tif (level === 'ansi256') {\n\t\t\treturn ansiStyles[type].ansi256(ansiStyles.rgbToAnsi256(...arguments_));\n\t\t}\n\n\t\treturn ansiStyles[type].ansi(ansiStyles.rgbToAnsi(...arguments_));\n\t}\n\n\tif (model === 'hex') {\n\t\treturn getModelAnsi('rgb', level, type, ...ansiStyles.hexToRgb(...arguments_));\n\t}\n\n\treturn ansiStyles[type][model](...arguments_);\n};\n\nconst usedModels = ['rgb', 'hex', 'ansi256'];\n\nfor (const model of usedModels) {\n\tstyles[model] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(getModelAnsi(model, levelMapping[level], 'color', ...arguments_), ansiStyles.color.close, this[STYLER]);\n\t\t\t\treturn createBuilder(this, styler, this[IS_EMPTY]);\n\t\t\t};\n\t\t},\n\t};\n\n\tconst bgModel = 'bg' + model[0].toUpperCase() + model.slice(1);\n\tstyles[bgModel] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(getModelAnsi(model, levelMapping[level], 'bgColor', ...arguments_), ansiStyles.bgColor.close, this[STYLER]);\n\t\t\t\treturn createBuilder(this, styler, this[IS_EMPTY]);\n\t\t\t};\n\t\t},\n\t};\n}\n\nconst proto = Object.defineProperties(() => {}, {\n\t...styles,\n\tlevel: {\n\t\tenumerable: true,\n\t\tget() {\n\t\t\treturn this[GENERATOR].level;\n\t\t},\n\t\tset(level) {\n\t\t\tthis[GENERATOR].level = level;\n\t\t},\n\t},\n});\n\nconst createStyler = (open, close, parent) => {\n\tlet openAll;\n\tlet closeAll;\n\tif (parent === undefined) {\n\t\topenAll = open;\n\t\tcloseAll = close;\n\t} else {\n\t\topenAll = parent.openAll + open;\n\t\tcloseAll = close + parent.closeAll;\n\t}\n\n\treturn {\n\t\topen,\n\t\tclose,\n\t\topenAll,\n\t\tcloseAll,\n\t\tparent,\n\t};\n};\n\nconst createBuilder = (self, _styler, _isEmpty) => {\n\t// Single argument is hot path, implicit coercion is faster than anything\n\t// eslint-disable-next-line no-implicit-coercion\n\tconst builder = (...arguments_) => applyStyle(builder, (arguments_.length === 1) ? ('' + arguments_[0]) : arguments_.join(' '));\n\n\t// We alter the prototype because we must return a function, but there is\n\t// no way to create a function with a different prototype\n\tObject.setPrototypeOf(builder, proto);\n\n\tbuilder[GENERATOR] = self;\n\tbuilder[STYLER] = _styler;\n\tbuilder[IS_EMPTY] = _isEmpty;\n\n\treturn builder;\n};\n\nconst applyStyle = (self, string) => {\n\tif (self.level <= 0 || !string) {\n\t\treturn self[IS_EMPTY] ? '' : string;\n\t}\n\n\tlet styler = self[STYLER];\n\n\tif (styler === undefined) {\n\t\treturn string;\n\t}\n\n\tconst {openAll, closeAll} = styler;\n\tif (string.includes('\\u001B')) {\n\t\twhile (styler !== undefined) {\n\t\t\t// Replace any instances already present with a re-opening code\n\t\t\t// otherwise only the part of the string until said closing code\n\t\t\t// will be colored, and the rest will simply be 'plain'.\n\t\t\tstring = stringReplaceAll(string, styler.close, styler.open);\n\n\t\t\tstyler = styler.parent;\n\t\t}\n\t}\n\n\t// We can move both next actions out of loop, because remaining actions in loop won't have\n\t// any/visible effect on parts we add here. Close the styling before a linebreak and reopen\n\t// after next line to fix a bleed issue on macOS: https://github.com/chalk/chalk/pull/92\n\tconst lfIndex = string.indexOf('\\n');\n\tif (lfIndex !== -1) {\n\t\tstring = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);\n\t}\n\n\treturn openAll + string + closeAll;\n};\n\nObject.defineProperties(createChalk.prototype, styles);\n\nconst chalk = createChalk();\nexport const chalkStderr = createChalk({level: stderrColor ? stderrColor.level : 0});\n\nexport {\n\tmodifierNames,\n\tforegroundColorNames,\n\tbackgroundColorNames,\n\tcolorNames,\n\n\t// TODO: Remove these aliases in the next major version\n\tmodifierNames as modifiers,\n\tforegroundColorNames as foregroundColors,\n\tbackgroundColorNames as backgroundColors,\n\tcolorNames as colors,\n} from './vendor/ansi-styles/index.js';\n\nexport {\n\tstdoutColor as supportsColor,\n\tstderrColor as supportsColorStderr,\n};\n\nexport default chalk;\n",
|
|
65
|
-
"#!/usr/bin/env bun\n\nimport { Server } from \"@modelcontextprotocol/sdk/server/index.js\";\nimport { StdioServerTransport } from \"@modelcontextprotocol/sdk/server/stdio.js\";\nimport { CallToolRequestSchema, ListToolsRequestSchema, Tool } from \"@modelcontextprotocol/sdk/types.js\";\n// Fixed chalk import for ESM\nimport chalk from \"chalk\";\n\ninterface ThoughtData {\n thought: string;\n thoughtNumber: number;\n totalThoughts: number;\n isRevision?: boolean | undefined;\n revisesThought?: number | undefined;\n branchFromThought?: number | undefined;\n branchId?: string | undefined;\n needsMoreThoughts?: boolean | undefined;\n nextThoughtNeeded: boolean;\n}\n\nclass SequentialThinkingServer {\n private thoughtHistory: ThoughtData[] = [];\n private branches: Record<string, ThoughtData[]> = {};\n private disableThoughtLogging: boolean;\n\n constructor() {\n this.disableThoughtLogging = (process.env.DISABLE_THOUGHT_LOGGING || \"\").toLowerCase() === \"true\";\n }\n\n private validateThoughtData(input: unknown): ThoughtData {\n const data = input as Record<string, unknown>;\n\n if (!data.thought || typeof data.thought !== \"string\") {\n throw new Error(\"Invalid thought: must be a string\");\n }\n if (!data.thoughtNumber || typeof data.thoughtNumber !== \"number\") {\n throw new Error(\"Invalid thoughtNumber: must be a number\");\n }\n if (!data.totalThoughts || typeof data.totalThoughts !== \"number\") {\n throw new Error(\"Invalid totalThoughts: must be a number\");\n }\n if (typeof data.nextThoughtNeeded !== \"boolean\") {\n throw new Error(\"Invalid nextThoughtNeeded: must be a boolean\");\n }\n\n return {\n thought: data.thought,\n thoughtNumber: data.thoughtNumber,\n totalThoughts: data.totalThoughts,\n nextThoughtNeeded: data.nextThoughtNeeded,\n isRevision: typeof data.isRevision === \"boolean\" ? data.isRevision : undefined,\n revisesThought: typeof data.revisesThought === \"number\" ? data.revisesThought : undefined,\n branchFromThought: typeof data.branchFromThought === \"number\" ? data.branchFromThought : undefined,\n branchId: typeof data.branchId === \"string\" ? data.branchId : undefined,\n needsMoreThoughts: typeof data.needsMoreThoughts === \"boolean\" ? data.needsMoreThoughts : undefined\n };\n }\n\n private formatThought(thoughtData: ThoughtData): string {\n const { thoughtNumber, totalThoughts, thought, isRevision, revisesThought, branchFromThought, branchId } =\n thoughtData;\n\n let prefix = \"\";\n let context = \"\";\n\n if (isRevision) {\n prefix = chalk.yellow(\"🔄 Revision\");\n context = ` (revising thought ${revisesThought})`;\n } else if (branchFromThought) {\n prefix = chalk.green(\"🌿 Branch\");\n context = ` (from thought ${branchFromThought}, ID: ${branchId})`;\n } else {\n prefix = chalk.blue(\"💭 Thought\");\n context = \"\";\n }\n\n const header = `${prefix} ${thoughtNumber}/${totalThoughts}${context}`;\n const border = \"─\".repeat(Math.max(header.length, thought.length) + 4);\n\n return `\n┌${border}┐\n│ ${header} │\n├${border}┤\n│ ${thought.padEnd(border.length - 2)} │\n└${border}┘`;\n }\n\n public processThought(input: unknown): { content: Array<{ type: string; text: string }>; isError?: boolean } {\n try {\n const validatedInput = this.validateThoughtData(input);\n\n if (validatedInput.thoughtNumber > validatedInput.totalThoughts) {\n validatedInput.totalThoughts = validatedInput.thoughtNumber;\n }\n\n this.thoughtHistory.push(validatedInput);\n\n if (validatedInput.branchFromThought && validatedInput.branchId) {\n if (!this.branches[validatedInput.branchId]) {\n this.branches[validatedInput.branchId] = [];\n }\n this.branches[validatedInput.branchId].push(validatedInput);\n }\n\n if (!this.disableThoughtLogging) {\n const formattedThought = this.formatThought(validatedInput);\n console.error(formattedThought);\n }\n\n return {\n content: [\n {\n type: \"text\",\n text: JSON.stringify(\n {\n thoughtNumber: validatedInput.thoughtNumber,\n totalThoughts: validatedInput.totalThoughts,\n nextThoughtNeeded: validatedInput.nextThoughtNeeded,\n branches: Object.keys(this.branches),\n thoughtHistoryLength: this.thoughtHistory.length\n },\n null,\n 2\n )\n }\n ]\n };\n } catch (error) {\n return {\n content: [\n {\n type: \"text\",\n text: JSON.stringify(\n {\n error: error instanceof Error ? error.message : String(error),\n status: \"failed\"\n },\n null,\n 2\n )\n }\n ],\n isError: true\n };\n }\n }\n}\n\nconst SEQUENTIAL_THINKING_TOOL: Tool = {\n name: \"sequentialthinking\",\n description: `A detailed tool for dynamic and reflective problem-solving through thoughts.\nThis tool helps analyze problems through a flexible thinking process that can adapt and evolve.\nEach thought can build on, question, or revise previous insights as understanding deepens.\n\nWhen to use this tool:\n- Breaking down complex problems into steps\n- Planning and design with room for revision\n- Analysis that might need course correction\n- Problems where the full scope might not be clear initially\n- Problems that require a multi-step solution\n- Tasks that need to maintain context over multiple steps\n- Situations where irrelevant information needs to be filtered out\n\nKey features:\n- You can adjust total_thoughts up or down as you progress\n- You can question or revise previous thoughts\n- You can add more thoughts even after reaching what seemed like the end\n- You can express uncertainty and explore alternative approaches\n- Not every thought needs to build linearly - you can branch or backtrack\n- Generates a solution hypothesis\n- Verifies the hypothesis based on the Chain of Thought steps\n- Repeats the process until satisfied\n- Provides a correct answer\n\nParameters explained:\n- thought: Your current thinking step, which can include:\n* Regular analytical steps\n* Revisions of previous thoughts\n* Questions about previous decisions\n* Realizations about needing more analysis\n* Changes in approach\n* Hypothesis generation\n* Hypothesis verification\n- next_thought_needed: True if you need more thinking, even if at what seemed like the end\n- thought_number: Current number in sequence (can go beyond initial total if needed)\n- total_thoughts: Current estimate of thoughts needed (can be adjusted up/down)\n- is_revision: A boolean indicating if this thought revises previous thinking\n- revises_thought: If is_revision is true, which thought number is being reconsidered\n- branch_from_thought: If branching, which thought number is the branching point\n- branch_id: Identifier for the current branch (if any)\n- needs_more_thoughts: If reaching end but realizing more thoughts needed\n\nYou should:\n1. Start with an initial estimate of needed thoughts, but be ready to adjust\n2. Feel free to question or revise previous thoughts\n3. Don't hesitate to add more thoughts if needed, even at the \"end\"\n4. Express uncertainty when present\n5. Mark thoughts that revise previous thinking or branch into new paths\n6. Ignore information that is irrelevant to the current step\n7. Generate a solution hypothesis when appropriate\n8. Verify the hypothesis based on the Chain of Thought steps\n9. Repeat the process until satisfied with the solution\n10. Provide a single, ideally correct answer as the final output\n11. Only set next_thought_needed to false when truly done and a satisfactory answer is reached`,\n inputSchema: {\n type: \"object\",\n properties: {\n thought: {\n type: \"string\",\n description: \"Your current thinking step\"\n },\n nextThoughtNeeded: {\n type: \"boolean\",\n description: \"Whether another thought step is needed\"\n },\n thoughtNumber: {\n type: \"integer\",\n description: \"Current thought number (numeric value, e.g., 1, 2, 3)\",\n minimum: 1\n },\n totalThoughts: {\n type: \"integer\",\n description: \"Estimated total thoughts needed (numeric value, e.g., 5, 10)\",\n minimum: 1\n },\n isRevision: {\n type: \"boolean\",\n description: \"Whether this revises previous thinking\"\n },\n revisesThought: {\n type: \"integer\",\n description: \"Which thought is being reconsidered\",\n minimum: 1\n },\n branchFromThought: {\n type: \"integer\",\n description: \"Branching point thought number\",\n minimum: 1\n },\n branchId: {\n type: \"string\",\n description: \"Branch identifier\"\n },\n needsMoreThoughts: {\n type: \"boolean\",\n description: \"If more thoughts are needed\"\n }\n },\n required: [\"thought\", \"nextThoughtNeeded\", \"thoughtNumber\", \"totalThoughts\"]\n }\n};\n\nconst server = new Server(\n {\n name: \"sequential-thinking-server\",\n version: \"0.2.12\"\n },\n {\n capabilities: {\n tools: {}\n }\n }\n);\n\nconst thinkingServer = new SequentialThinkingServer();\n\nserver.setRequestHandler(ListToolsRequestSchema, async () => ({\n tools: [SEQUENTIAL_THINKING_TOOL]\n}));\n\nserver.setRequestHandler(CallToolRequestSchema, async (request) => {\n if (request.params.name === \"sequentialthinking\") {\n return thinkingServer.processThought(request.params.arguments);\n }\n\n return {\n content: [\n {\n type: \"text\",\n text: `Unknown tool: ${request.params.name}`\n }\n ],\n isError: true\n };\n});\n\nasync function runServer() {\n const transport = new StdioServerTransport();\n await server.connect(transport);\n console.error(\"Sequential Thinking MCP Server running on stdio\");\n}\n\nrunServer().catch((error) => {\n console.error(\"Fatal error running server:\", error);\n process.exit(1);\n});\n"
|
|
66
|
-
],
|
|
67
|
-
"mappings": "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",
|
|
68
|
-
"debugId": "02EF6D47C22C6CDF64756E2164756E21",
|
|
69
|
-
"names": []
|
|
70
|
-
}
|