{"version":3,"sources":["../../node_modules/io-ts/es6/index.js","../../node_modules/io-ts/lib/PathReporter.js","../../node_modules/io-ts-types/lib/optionFromNullable.js","../../node_modules/io-ts-types/lib/NumberFromString.js","../../node_modules/intl-messageformat/lib/src/formatters.js","../../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../../node_modules/io-ts-types/lib/fromNullable.js","../../node_modules/io-ts-types/es6/option.js","../../node_modules/io-ts-types/lib/UUID.js","../../node_modules/io-ts-types/lib/withValidate.js","../../node_modules/io-ts-types/lib/withFallback.js","../../node_modules/io-ts-types/lib/mapOutput.js","../../node_modules/io-ts-types/es6/withFallback.js","../../node_modules/io-ts-types/es6/withValidate.js","../../node_modules/io-ts-types/lib/nonEmptyArray.js","../../node_modules/io-ts-types/es6/clone.js","../../node_modules/intl-messageformat/lib/src/core.js","../../node_modules/io-ts/lib/index.js","../../node_modules/io-ts-types/lib/clone.js","../../node_modules/io-ts-types/lib/setFromArray.js","../../node_modules/io-ts-types/lib/DateFromISOString.js","../../node_modules/intl-messageformat/lib/src/error.js","../../node_modules/io-ts-types/lib/option.js","../../node_modules/io-ts-types/es6/NonEmptyString.js","../../node_modules/io-ts-types/es6/optionFromNullable.js","../../node_modules/io-ts-types/es6/UUID.js","../../node_modules/io-ts-types/lib/NonEmptyString.js","../../node_modules/io-ts-types/es6/nonEmptyArray.js"],"names":["extendStatics","__extends","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__","this","constructor","create","__assign","assign","t","s","i","n","arguments","length","apply","__spreadArrays","il","r","k","a","j","jl","Type","name","is","validate","encode","decode","bind","pipe","ab","_this","c","e","isLeft","right","identity","asDecoder","asEncoder","key","type","actual","getFunctionName","f","displayName","getContextEntry","decoder","appendContext","len","failures","left","failure","value","context","message","success","pushAll","xs","ys","l","push","NullType","_super","u","_tag","nullType","UndefinedType","undefinedType","VoidType","voidType","UnknownType","_","unknown","StringType","string","NumberType","number","BigIntType","bigint","BooleanType","boolean","AnyArrayType","isArray","UnknownArray","AnyDictionaryType","toString","UnknownRecord","FunctionType","Function","RefinementType","predicate","brand","codec","refinement","Int","Number","isInteger","LiteralType","literal","JSON","stringify","KeyofType","keys","keyof","map","join","RecursiveType","runDefinition","defineProperty","get","enumerable","configurable","recursion","definition","cache","Self","ArrayType","array","item","every","us","as","errors","ui","result","String","ai","slice","InterfaceType","props","getNameFromProps","useIdentity","codecs","getInterfaceTypeName","types","uk","undefined","o","ak","type_1","vak","PartialType","getPartialTypeName","inner","partial","type_2","DictionaryType","domain","codomain","getDomainKeys","_a","isLiteralC","literal_1","isUnionC","some","record","changed","ok","codomainResult","vok","enumerableRecord","isAnyC","domainResult","vk","nonEnumerableRecord","UnionType","getUnionName","union","index","getIndex","tag_1","groups_1","len_1","find_1","indexOf","TaggedUnionType","Error","_i","codecs_1","IntersectionType","mergeAll","base","equal","primitive","baseIsNotADictionary","us_1","us_2","intersection","TupleType","tuple","type_3","va","ReadonlyType","readonly","ReadonlyArrayType","readonlyArray","strict","exact","tag","taggedUnion","U","console","warn","ExactType","getProps","reduce","stripKeys","getOwnPropertyNames","shouldStrip","isTypeC","isPartialC","getExactTypeName","ce","getValidationError","getDefaultContext","NeverType","never","AnyType","any","Dictionary","ObjectType","object","Integer","dictionary","StrictType","clean","alias","emptyTags","intersect","a_1","v","lazyCodecs","getTags","isStrictC","prop","isExactC","isRefinementC","isIntersectionC","tags","intersection_1","mergeTags","concat","intersectTags","isRecursiveC","pop","_loop_1","all","values","keys_1","state_1","exports","PathReporter","_1","require","Either_1","getMessage","isFinite","isNaN","es","report","fold","__createBinding","m","k2","__setModuleDefault","__importStar","mod","__esModule","optionFromNullable","Option_1","option_1","option","none","either","toNullable","NumberFromString","chain","trim","PART_TYPE","isFormatXMLElementFn","el","formatToParts","els","locales","formatters","formats","currentPluralValue","originalMessage","isLiteralElement","els_1","isPoundElement","getNumberFormat","format","varName","MissingValueError","isArgumentElement","isDateElement","style","date","isDateTimeSkeleton","parsedOptions","getDateTimeFormat","isTimeElement","time","isNumberElement","isNumberSkeleton","scale","isTagElement","children","value_1","formatFn","InvalidValueTypeError","chunks","isSelectElement","opt","options","other","InvalidValueError","isPluralElement","Intl","PluralRules","FormatError","ErrorCode","MISSING_INTL_API","rule","getPluralRules","pluralType","select","offset","parts","part","lastPart","mergeLiteral","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","render","Memo","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","module","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","descriptor","fromNullable","withValidate_1","withValidate","None","someLiteral","UUID","regex","test","clone_1","clone","withFallback","orElse","mapOutput","nonEmptyArray","NonEmptyArray_1","Array_1","arr","isNonEmpty","onea","fromArray","isNone","nea","mergeConfigs","defaultConfig","configs","c1","c2","createFastMemoizeCache","store","set","IntlMessageFormat","overrideFormats","opts","defaultLocale","formatterCache","dateTime","pluralRules","ast","resolvedOptions","locale","NumberFormat","supportedLocalesOf","getAst","__parse","TypeError","ignoreTag","memoize","args","__spreadArray","strategy","strategies","variadic","DateTimeFormat","memoizedDefaultLocale","parse","integer","maximumFractionDigits","currency","percent","short","month","day","year","medium","long","full","weekday","hour","minute","second","timeZoneName","void","interface","null","setFromArray","Set_1","O","toArrayO","toArray","fromArrayO","Set","size","DateFromISOString","Date","getTime","toISOString","msg","code","variableId","INVALID_VALUE","MISSING_VALUE","NonEmptyString"],"mappings":"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","file":"static/js/index~e50ee5dc.8215a9e9.chunk.js","sourcesContent":["var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\n/**\n * @since 1.0.0\n */\nimport { isLeft, left, right } from 'fp-ts/es6/Either';\n/**\n * @category Model\n * @since 1.0.0\n */\nvar Type = /** @class */ (function () {\n function Type(\n /** a unique name for this codec */\n name, \n /** a custom type guard */\n is, \n /** succeeds if a value of type I can be decoded to a value of type A */\n validate, \n /** converts a value of type A to a value of type O */\n encode) {\n this.name = name;\n this.is = is;\n this.validate = validate;\n this.encode = encode;\n this.decode = this.decode.bind(this);\n }\n /**\n * @since 1.0.0\n */\n Type.prototype.pipe = function (ab, name) {\n var _this = this;\n if (name === void 0) { name = \"pipe(\" + this.name + \", \" + ab.name + \")\"; }\n return new Type(name, ab.is, function (i, c) {\n var e = _this.validate(i, c);\n if (isLeft(e)) {\n return e;\n }\n return ab.validate(e.right, c);\n }, this.encode === identity && ab.encode === identity ? identity : function (b) { return _this.encode(ab.encode(b)); });\n };\n /**\n * @since 1.0.0\n */\n Type.prototype.asDecoder = function () {\n return this;\n };\n /**\n * @since 1.0.0\n */\n Type.prototype.asEncoder = function () {\n return this;\n };\n /**\n * a version of `validate` with a default context\n * @since 1.0.0\n */\n Type.prototype.decode = function (i) {\n return this.validate(i, [{ key: '', type: this, actual: i }]);\n };\n return Type;\n}());\nexport { Type };\n/**\n * @since 1.0.0\n */\nexport var identity = function (a) { return a; };\n/**\n * @since 1.0.0\n */\nexport var getFunctionName = function (f) {\n return f.displayName || f.name || \"\";\n};\n/**\n * @since 1.0.0\n */\nexport var getContextEntry = function (key, decoder) { return ({ key: key, type: decoder }); };\n/**\n * @since 1.0.0\n */\nexport var appendContext = function (c, key, decoder, actual) {\n var len = c.length;\n var r = Array(len + 1);\n for (var i = 0; i < len; i++) {\n r[i] = c[i];\n }\n r[len] = { key: key, type: decoder, actual: actual };\n return r;\n};\n/**\n * @since 1.0.0\n */\nexport var failures = left;\n/**\n * @since 1.0.0\n */\nexport var failure = function (value, context, message) {\n return failures([{ value: value, context: context, message: message }]);\n};\n/**\n * @since 1.0.0\n */\nexport var success = right;\nvar pushAll = function (xs, ys) {\n var l = ys.length;\n for (var i = 0; i < l; i++) {\n xs.push(ys[i]);\n }\n};\n// -------------------------------------------------------------------------------------\n// primitives\n// -------------------------------------------------------------------------------------\n/**\n * @since 1.0.0\n */\nvar NullType = /** @class */ (function (_super) {\n __extends(NullType, _super);\n function NullType() {\n var _this = _super.call(this, 'null', function (u) { return u === null; }, function (u, c) { return (_this.is(u) ? success(u) : failure(u, c)); }, identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'NullType';\n return _this;\n }\n return NullType;\n}(Type));\nexport { NullType };\n/**\n * @category Primitives\n * @since 1.0.0\n */\nexport var nullType = new NullType();\n/**\n * @since 1.0.0\n */\nvar UndefinedType = /** @class */ (function (_super) {\n __extends(UndefinedType, _super);\n function UndefinedType() {\n var _this = _super.call(this, 'undefined', function (u) { return u === void 0; }, function (u, c) { return (_this.is(u) ? success(u) : failure(u, c)); }, identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'UndefinedType';\n return _this;\n }\n return UndefinedType;\n}(Type));\nexport { UndefinedType };\nvar undefinedType = new UndefinedType();\n/**\n * @since 1.2.0\n */\nvar VoidType = /** @class */ (function (_super) {\n __extends(VoidType, _super);\n function VoidType() {\n var _this = _super.call(this, 'void', undefinedType.is, undefinedType.validate, identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'VoidType';\n return _this;\n }\n return VoidType;\n}(Type));\nexport { VoidType };\n/**\n * @category Primitives\n * @since 1.2.0\n */\nexport var voidType = new VoidType();\n/**\n * @since 1.5.0\n */\nvar UnknownType = /** @class */ (function (_super) {\n __extends(UnknownType, _super);\n function UnknownType() {\n var _this = _super.call(this, 'unknown', function (_) { return true; }, success, identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'UnknownType';\n return _this;\n }\n return UnknownType;\n}(Type));\nexport { UnknownType };\n/**\n * @category Primitives\n * @since 1.5.0\n */\nexport var unknown = new UnknownType();\n/**\n * @since 1.0.0\n */\nvar StringType = /** @class */ (function (_super) {\n __extends(StringType, _super);\n function StringType() {\n var _this = _super.call(this, 'string', function (u) { return typeof u === 'string'; }, function (u, c) { return (_this.is(u) ? success(u) : failure(u, c)); }, identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'StringType';\n return _this;\n }\n return StringType;\n}(Type));\nexport { StringType };\n/**\n * @category Primitives\n * @since 1.0.0\n */\nexport var string = new StringType();\n/**\n * @since 1.0.0\n */\nvar NumberType = /** @class */ (function (_super) {\n __extends(NumberType, _super);\n function NumberType() {\n var _this = _super.call(this, 'number', function (u) { return typeof u === 'number'; }, function (u, c) { return (_this.is(u) ? success(u) : failure(u, c)); }, identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'NumberType';\n return _this;\n }\n return NumberType;\n}(Type));\nexport { NumberType };\n/**\n * @category Primitives\n * @since 1.0.0\n */\nexport var number = new NumberType();\n/**\n * @since 2.1.0\n */\nvar BigIntType = /** @class */ (function (_super) {\n __extends(BigIntType, _super);\n function BigIntType() {\n var _this = _super.call(this, 'bigint', \n // tslint:disable-next-line: valid-typeof\n function (u) { return typeof u === 'bigint'; }, function (u, c) { return (_this.is(u) ? success(u) : failure(u, c)); }, identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'BigIntType';\n return _this;\n }\n return BigIntType;\n}(Type));\nexport { BigIntType };\n/**\n * @category Primitives\n * @since 2.1.0\n */\nexport var bigint = new BigIntType();\n/**\n * @since 1.0.0\n */\nvar BooleanType = /** @class */ (function (_super) {\n __extends(BooleanType, _super);\n function BooleanType() {\n var _this = _super.call(this, 'boolean', function (u) { return typeof u === 'boolean'; }, function (u, c) { return (_this.is(u) ? success(u) : failure(u, c)); }, identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'BooleanType';\n return _this;\n }\n return BooleanType;\n}(Type));\nexport { BooleanType };\n/**\n * @category Primitives\n * @since 1.0.0\n */\nexport var boolean = new BooleanType();\n/**\n * @since 1.0.0\n */\nvar AnyArrayType = /** @class */ (function (_super) {\n __extends(AnyArrayType, _super);\n function AnyArrayType() {\n var _this = _super.call(this, 'UnknownArray', Array.isArray, function (u, c) { return (_this.is(u) ? success(u) : failure(u, c)); }, identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'AnyArrayType';\n return _this;\n }\n return AnyArrayType;\n}(Type));\nexport { AnyArrayType };\n/**\n * @category Primitives\n * @since 1.7.1\n */\nexport var UnknownArray = new AnyArrayType();\n/**\n * @since 1.0.0\n */\nvar AnyDictionaryType = /** @class */ (function (_super) {\n __extends(AnyDictionaryType, _super);\n function AnyDictionaryType() {\n var _this = _super.call(this, 'UnknownRecord', function (u) {\n var s = Object.prototype.toString.call(u);\n return s === '[object Object]' || s === '[object Window]';\n }, function (u, c) { return (_this.is(u) ? success(u) : failure(u, c)); }, identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'AnyDictionaryType';\n return _this;\n }\n return AnyDictionaryType;\n}(Type));\nexport { AnyDictionaryType };\n/**\n * @category Primitives\n * @since 1.7.1\n */\nexport var UnknownRecord = new AnyDictionaryType();\n/**\n * @category deprecated\n * @since 1.0.0\n * @deprecated\n */\nvar FunctionType = /** @class */ (function (_super) {\n __extends(FunctionType, _super);\n function FunctionType() {\n var _this = _super.call(this, 'Function', \n // tslint:disable-next-line:strict-type-predicates\n function (u) { return typeof u === 'function'; }, function (u, c) { return (_this.is(u) ? success(u) : failure(u, c)); }, identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'FunctionType';\n return _this;\n }\n return FunctionType;\n}(Type));\nexport { FunctionType };\n/**\n * @category deprecated\n * @since 1.0.0\n * @deprecated\n */\n// tslint:disable-next-line: deprecation\nexport var Function = new FunctionType();\n/**\n * @since 1.0.0\n */\nvar RefinementType = /** @class */ (function (_super) {\n __extends(RefinementType, _super);\n function RefinementType(name, is, validate, encode, type, predicate) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.type = type;\n _this.predicate = predicate;\n /**\n * @since 1.0.0\n */\n _this._tag = 'RefinementType';\n return _this;\n }\n return RefinementType;\n}(Type));\nexport { RefinementType };\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * @category Combinators\n * @since 1.8.1\n */\nexport var brand = function (codec, predicate, name) {\n // tslint:disable-next-line: deprecation\n return refinement(codec, predicate, name);\n};\n/**\n * A branded codec representing an integer\n *\n * @category Primitives\n * @since 1.8.1\n */\nexport var Int = brand(number, function (n) { return Number.isInteger(n); }, 'Int');\n/**\n * @since 1.0.0\n */\nvar LiteralType = /** @class */ (function (_super) {\n __extends(LiteralType, _super);\n function LiteralType(name, is, validate, encode, value) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.value = value;\n /**\n * @since 1.0.0\n */\n _this._tag = 'LiteralType';\n return _this;\n }\n return LiteralType;\n}(Type));\nexport { LiteralType };\n/**\n * @category Combinators\n * @since 1.0.0\n */\nexport var literal = function (value, name) {\n if (name === void 0) { name = JSON.stringify(value); }\n var is = function (u) { return u === value; };\n return new LiteralType(name, is, function (u, c) { return (is(u) ? success(value) : failure(u, c)); }, identity, value);\n};\n/**\n * @since 1.0.0\n */\nvar KeyofType = /** @class */ (function (_super) {\n __extends(KeyofType, _super);\n function KeyofType(name, is, validate, encode, keys) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.keys = keys;\n /**\n * @since 1.0.0\n */\n _this._tag = 'KeyofType';\n return _this;\n }\n return KeyofType;\n}(Type));\nexport { KeyofType };\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n/**\n * @category Combinators\n * @since 1.0.0\n */\nexport var keyof = function (keys, name) {\n if (name === void 0) { name = Object.keys(keys)\n .map(function (k) { return JSON.stringify(k); })\n .join(' | '); }\n var is = function (u) { return string.is(u) && hasOwnProperty.call(keys, u); };\n return new KeyofType(name, is, function (u, c) { return (is(u) ? success(u) : failure(u, c)); }, identity, keys);\n};\n/**\n * @since 1.0.0\n */\nvar RecursiveType = /** @class */ (function (_super) {\n __extends(RecursiveType, _super);\n function RecursiveType(name, is, validate, encode, runDefinition) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.runDefinition = runDefinition;\n /**\n * @since 1.0.0\n */\n _this._tag = 'RecursiveType';\n return _this;\n }\n return RecursiveType;\n}(Type));\nexport { RecursiveType };\nObject.defineProperty(RecursiveType.prototype, 'type', {\n get: function () {\n return this.runDefinition();\n },\n enumerable: true,\n configurable: true\n});\n/**\n * @category Combinators\n * @since 1.0.0\n */\nexport var recursion = function (name, definition) {\n var cache;\n var runDefinition = function () {\n if (!cache) {\n cache = definition(Self);\n cache.name = name;\n }\n return cache;\n };\n var Self = new RecursiveType(name, function (u) { return runDefinition().is(u); }, function (u, c) { return runDefinition().validate(u, c); }, function (a) { return runDefinition().encode(a); }, runDefinition);\n return Self;\n};\n/**\n * @since 1.0.0\n */\nvar ArrayType = /** @class */ (function (_super) {\n __extends(ArrayType, _super);\n function ArrayType(name, is, validate, encode, type) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.type = type;\n /**\n * @since 1.0.0\n */\n _this._tag = 'ArrayType';\n return _this;\n }\n return ArrayType;\n}(Type));\nexport { ArrayType };\n/**\n * @category Combinators\n * @since 1.0.0\n */\nexport var array = function (item, name) {\n if (name === void 0) { name = \"Array<\" + item.name + \">\"; }\n return new ArrayType(name, function (u) { return UnknownArray.is(u) && u.every(item.is); }, function (u, c) {\n var e = UnknownArray.validate(u, c);\n if (isLeft(e)) {\n return e;\n }\n var us = e.right;\n var len = us.length;\n var as = us;\n var errors = [];\n for (var i = 0; i < len; i++) {\n var ui = us[i];\n var result = item.validate(ui, appendContext(c, String(i), item, ui));\n if (isLeft(result)) {\n pushAll(errors, result.left);\n }\n else {\n var ai = result.right;\n if (ai !== ui) {\n if (as === us) {\n as = us.slice();\n }\n as[i] = ai;\n }\n }\n }\n return errors.length > 0 ? failures(errors) : success(as);\n }, item.encode === identity ? identity : function (a) { return a.map(item.encode); }, item);\n};\n/**\n * @since 1.0.0\n */\nvar InterfaceType = /** @class */ (function (_super) {\n __extends(InterfaceType, _super);\n function InterfaceType(name, is, validate, encode, props) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.props = props;\n /**\n * @since 1.0.0\n */\n _this._tag = 'InterfaceType';\n return _this;\n }\n return InterfaceType;\n}(Type));\nexport { InterfaceType };\nvar getNameFromProps = function (props) {\n return Object.keys(props)\n .map(function (k) { return k + \": \" + props[k].name; })\n .join(', ');\n};\nvar useIdentity = function (codecs) {\n for (var i = 0; i < codecs.length; i++) {\n if (codecs[i].encode !== identity) {\n return false;\n }\n }\n return true;\n};\nvar getInterfaceTypeName = function (props) {\n return \"{ \" + getNameFromProps(props) + \" }\";\n};\n/**\n * @category Combinators\n * @since 1.0.0\n */\nexport var type = function (props, name) {\n if (name === void 0) { name = getInterfaceTypeName(props); }\n var keys = Object.keys(props);\n var types = keys.map(function (key) { return props[key]; });\n var len = keys.length;\n return new InterfaceType(name, function (u) {\n if (UnknownRecord.is(u)) {\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var uk = u[k];\n if ((uk === undefined && !hasOwnProperty.call(u, k)) || !types[i].is(uk)) {\n return false;\n }\n }\n return true;\n }\n return false;\n }, function (u, c) {\n var e = UnknownRecord.validate(u, c);\n if (isLeft(e)) {\n return e;\n }\n var o = e.right;\n var a = o;\n var errors = [];\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var ak = a[k];\n var type_1 = types[i];\n var result = type_1.validate(ak, appendContext(c, k, type_1, ak));\n if (isLeft(result)) {\n pushAll(errors, result.left);\n }\n else {\n var vak = result.right;\n if (vak !== ak || (vak === undefined && !hasOwnProperty.call(a, k))) {\n /* istanbul ignore next */\n if (a === o) {\n a = __assign({}, o);\n }\n a[k] = vak;\n }\n }\n }\n return errors.length > 0 ? failures(errors) : success(a);\n }, useIdentity(types)\n ? identity\n : function (a) {\n var s = __assign({}, a);\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var encode = types[i].encode;\n if (encode !== identity) {\n s[k] = encode(a[k]);\n }\n }\n return s;\n }, props);\n};\n/**\n * @since 1.0.0\n */\nvar PartialType = /** @class */ (function (_super) {\n __extends(PartialType, _super);\n function PartialType(name, is, validate, encode, props) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.props = props;\n /**\n * @since 1.0.0\n */\n _this._tag = 'PartialType';\n return _this;\n }\n return PartialType;\n}(Type));\nexport { PartialType };\nvar getPartialTypeName = function (inner) {\n return \"Partial<\" + inner + \">\";\n};\n/**\n * @category Combinators\n * @since 1.0.0\n */\nexport var partial = function (props, name) {\n if (name === void 0) { name = getPartialTypeName(getInterfaceTypeName(props)); }\n var keys = Object.keys(props);\n var types = keys.map(function (key) { return props[key]; });\n var len = keys.length;\n return new PartialType(name, function (u) {\n if (UnknownRecord.is(u)) {\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var uk = u[k];\n if (uk !== undefined && !props[k].is(uk)) {\n return false;\n }\n }\n return true;\n }\n return false;\n }, function (u, c) {\n var e = UnknownRecord.validate(u, c);\n if (isLeft(e)) {\n return e;\n }\n var o = e.right;\n var a = o;\n var errors = [];\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var ak = a[k];\n var type_2 = props[k];\n var result = type_2.validate(ak, appendContext(c, k, type_2, ak));\n if (isLeft(result)) {\n if (ak !== undefined) {\n pushAll(errors, result.left);\n }\n }\n else {\n var vak = result.right;\n if (vak !== ak) {\n /* istanbul ignore next */\n if (a === o) {\n a = __assign({}, o);\n }\n a[k] = vak;\n }\n }\n }\n return errors.length > 0 ? failures(errors) : success(a);\n }, useIdentity(types)\n ? identity\n : function (a) {\n var s = __assign({}, a);\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var ak = a[k];\n if (ak !== undefined) {\n s[k] = types[i].encode(ak);\n }\n }\n return s;\n }, props);\n};\n/**\n * @since 1.0.0\n */\nvar DictionaryType = /** @class */ (function (_super) {\n __extends(DictionaryType, _super);\n function DictionaryType(name, is, validate, encode, domain, codomain) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.domain = domain;\n _this.codomain = codomain;\n /**\n * @since 1.0.0\n */\n _this._tag = 'DictionaryType';\n return _this;\n }\n return DictionaryType;\n}(Type));\nexport { DictionaryType };\nfunction enumerableRecord(keys, domain, codomain, name) {\n if (name === void 0) { name = \"{ [K in \" + domain.name + \"]: \" + codomain.name + \" }\"; }\n var len = keys.length;\n return new DictionaryType(name, function (u) { return UnknownRecord.is(u) && keys.every(function (k) { return codomain.is(u[k]); }); }, function (u, c) {\n var e = UnknownRecord.validate(u, c);\n if (isLeft(e)) {\n return e;\n }\n var o = e.right;\n var a = {};\n var errors = [];\n var changed = false;\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var ok = o[k];\n var codomainResult = codomain.validate(ok, appendContext(c, k, codomain, ok));\n if (isLeft(codomainResult)) {\n pushAll(errors, codomainResult.left);\n }\n else {\n var vok = codomainResult.right;\n changed = changed || vok !== ok;\n a[k] = vok;\n }\n }\n return errors.length > 0 ? failures(errors) : success((changed || Object.keys(o).length !== len ? a : o));\n }, codomain.encode === identity\n ? identity\n : function (a) {\n var s = {};\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n s[k] = codomain.encode(a[k]);\n }\n return s;\n }, domain, codomain);\n}\n/**\n * @internal\n */\nexport function getDomainKeys(domain) {\n var _a;\n if (isLiteralC(domain)) {\n var literal_1 = domain.value;\n if (string.is(literal_1)) {\n return _a = {}, _a[literal_1] = null, _a;\n }\n }\n else if (isKeyofC(domain)) {\n return domain.keys;\n }\n else if (isUnionC(domain)) {\n var keys = domain.types.map(function (type) { return getDomainKeys(type); });\n return keys.some(undefinedType.is) ? undefined : Object.assign.apply(Object, __spreadArrays([{}], keys));\n }\n return undefined;\n}\nfunction nonEnumerableRecord(domain, codomain, name) {\n if (name === void 0) { name = \"{ [K in \" + domain.name + \"]: \" + codomain.name + \" }\"; }\n return new DictionaryType(name, function (u) {\n if (UnknownRecord.is(u)) {\n return Object.keys(u).every(function (k) { return domain.is(k) && codomain.is(u[k]); });\n }\n return isAnyC(codomain) && Array.isArray(u);\n }, function (u, c) {\n if (UnknownRecord.is(u)) {\n var a = {};\n var errors = [];\n var keys = Object.keys(u);\n var len = keys.length;\n var changed = false;\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var ok = u[k];\n var domainResult = domain.validate(k, appendContext(c, k, domain, k));\n if (isLeft(domainResult)) {\n pushAll(errors, domainResult.left);\n }\n else {\n var vk = domainResult.right;\n changed = changed || vk !== k;\n k = vk;\n var codomainResult = codomain.validate(ok, appendContext(c, k, codomain, ok));\n if (isLeft(codomainResult)) {\n pushAll(errors, codomainResult.left);\n }\n else {\n var vok = codomainResult.right;\n changed = changed || vok !== ok;\n a[k] = vok;\n }\n }\n }\n return errors.length > 0 ? failures(errors) : success((changed ? a : u));\n }\n if (isAnyC(codomain) && Array.isArray(u)) {\n return success(u);\n }\n return failure(u, c);\n }, domain.encode === identity && codomain.encode === identity\n ? identity\n : function (a) {\n var s = {};\n var keys = Object.keys(a);\n var len = keys.length;\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n s[String(domain.encode(k))] = codomain.encode(a[k]);\n }\n return s;\n }, domain, codomain);\n}\n/**\n * @category Combinators\n * @since 1.7.1\n */\nexport function record(domain, codomain, name) {\n var keys = getDomainKeys(domain);\n return keys\n ? enumerableRecord(Object.keys(keys), domain, codomain, name)\n : nonEnumerableRecord(domain, codomain, name);\n}\n/**\n * @since 1.0.0\n */\nvar UnionType = /** @class */ (function (_super) {\n __extends(UnionType, _super);\n function UnionType(name, is, validate, encode, types) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.types = types;\n /**\n * @since 1.0.0\n */\n _this._tag = 'UnionType';\n return _this;\n }\n return UnionType;\n}(Type));\nexport { UnionType };\nvar getUnionName = function (codecs) {\n return '(' + codecs.map(function (type) { return type.name; }).join(' | ') + ')';\n};\n/**\n * @category Combinators\n * @since 1.0.0\n */\nexport var union = function (codecs, name) {\n if (name === void 0) { name = getUnionName(codecs); }\n var index = getIndex(codecs);\n if (index !== undefined && codecs.length > 0) {\n var tag_1 = index[0], groups_1 = index[1];\n var len_1 = groups_1.length;\n var find_1 = function (value) {\n for (var i = 0; i < len_1; i++) {\n if (groups_1[i].indexOf(value) !== -1) {\n return i;\n }\n }\n return undefined;\n };\n // tslint:disable-next-line: deprecation\n return new TaggedUnionType(name, function (u) {\n if (UnknownRecord.is(u)) {\n var i = find_1(u[tag_1]);\n return i !== undefined ? codecs[i].is(u) : false;\n }\n return false;\n }, function (u, c) {\n var e = UnknownRecord.validate(u, c);\n if (isLeft(e)) {\n return e;\n }\n var r = e.right;\n var i = find_1(r[tag_1]);\n if (i === undefined) {\n return failure(u, c);\n }\n var codec = codecs[i];\n return codec.validate(r, appendContext(c, String(i), codec, r));\n }, useIdentity(codecs)\n ? identity\n : function (a) {\n var i = find_1(a[tag_1]);\n if (i === undefined) {\n // https://github.com/gcanti/io-ts/pull/305\n throw new Error(\"no codec found to encode value in union codec \" + name);\n }\n else {\n return codecs[i].encode(a);\n }\n }, codecs, tag_1);\n }\n else {\n return new UnionType(name, function (u) { return codecs.some(function (type) { return type.is(u); }); }, function (u, c) {\n var errors = [];\n for (var i = 0; i < codecs.length; i++) {\n var codec = codecs[i];\n var result = codec.validate(u, appendContext(c, String(i), codec, u));\n if (isLeft(result)) {\n pushAll(errors, result.left);\n }\n else {\n return success(result.right);\n }\n }\n return failures(errors);\n }, useIdentity(codecs)\n ? identity\n : function (a) {\n for (var _i = 0, codecs_1 = codecs; _i < codecs_1.length; _i++) {\n var codec = codecs_1[_i];\n if (codec.is(a)) {\n return codec.encode(a);\n }\n }\n // https://github.com/gcanti/io-ts/pull/305\n throw new Error(\"no codec found to encode value in union type \" + name);\n }, codecs);\n }\n};\n/**\n * @since 1.0.0\n */\nvar IntersectionType = /** @class */ (function (_super) {\n __extends(IntersectionType, _super);\n function IntersectionType(name, is, validate, encode, types) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.types = types;\n /**\n * @since 1.0.0\n */\n _this._tag = 'IntersectionType';\n return _this;\n }\n return IntersectionType;\n}(Type));\nexport { IntersectionType };\n/**\n * @internal\n */\nexport var mergeAll = function (base, us) {\n var equal = true;\n var primitive = true;\n var baseIsNotADictionary = !UnknownRecord.is(base);\n for (var _i = 0, us_1 = us; _i < us_1.length; _i++) {\n var u = us_1[_i];\n if (u !== base) {\n equal = false;\n }\n if (UnknownRecord.is(u)) {\n primitive = false;\n }\n }\n if (equal) {\n return base;\n }\n else if (primitive) {\n return us[us.length - 1];\n }\n var r = {};\n for (var _a = 0, us_2 = us; _a < us_2.length; _a++) {\n var u = us_2[_a];\n for (var k in u) {\n if (!r.hasOwnProperty(k) || baseIsNotADictionary || u[k] !== base[k]) {\n r[k] = u[k];\n }\n }\n }\n return r;\n};\nexport function intersection(codecs, name) {\n if (name === void 0) { name = \"(\" + codecs.map(function (type) { return type.name; }).join(' & ') + \")\"; }\n var len = codecs.length;\n return new IntersectionType(name, function (u) { return codecs.every(function (type) { return type.is(u); }); }, codecs.length === 0\n ? success\n : function (u, c) {\n var us = [];\n var errors = [];\n for (var i = 0; i < len; i++) {\n var codec = codecs[i];\n var result = codec.validate(u, appendContext(c, String(i), codec, u));\n if (isLeft(result)) {\n pushAll(errors, result.left);\n }\n else {\n us.push(result.right);\n }\n }\n return errors.length > 0 ? failures(errors) : success(mergeAll(u, us));\n }, codecs.length === 0\n ? identity\n : function (a) {\n return mergeAll(a, codecs.map(function (codec) { return codec.encode(a); }));\n }, codecs);\n}\n/**\n * @since 1.0.0\n */\nvar TupleType = /** @class */ (function (_super) {\n __extends(TupleType, _super);\n function TupleType(name, is, validate, encode, types) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.types = types;\n /**\n * @since 1.0.0\n */\n _this._tag = 'TupleType';\n return _this;\n }\n return TupleType;\n}(Type));\nexport { TupleType };\nexport function tuple(codecs, name) {\n if (name === void 0) { name = \"[\" + codecs.map(function (type) { return type.name; }).join(', ') + \"]\"; }\n var len = codecs.length;\n return new TupleType(name, function (u) { return UnknownArray.is(u) && u.length === len && codecs.every(function (type, i) { return type.is(u[i]); }); }, function (u, c) {\n var e = UnknownArray.validate(u, c);\n if (isLeft(e)) {\n return e;\n }\n var us = e.right;\n var as = us.length > len ? us.slice(0, len) : us; // strip additional components\n var errors = [];\n for (var i = 0; i < len; i++) {\n var a = us[i];\n var type_3 = codecs[i];\n var result = type_3.validate(a, appendContext(c, String(i), type_3, a));\n if (isLeft(result)) {\n pushAll(errors, result.left);\n }\n else {\n var va = result.right;\n if (va !== a) {\n /* istanbul ignore next */\n if (as === us) {\n as = us.slice();\n }\n as[i] = va;\n }\n }\n }\n return errors.length > 0 ? failures(errors) : success(as);\n }, useIdentity(codecs) ? identity : function (a) { return codecs.map(function (type, i) { return type.encode(a[i]); }); }, codecs);\n}\n/**\n * @since 1.0.0\n */\nvar ReadonlyType = /** @class */ (function (_super) {\n __extends(ReadonlyType, _super);\n function ReadonlyType(name, is, validate, encode, type) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.type = type;\n /**\n * @since 1.0.0\n */\n _this._tag = 'ReadonlyType';\n return _this;\n }\n return ReadonlyType;\n}(Type));\nexport { ReadonlyType };\n/**\n * @category Combinators\n * @since 1.0.0\n */\nexport var readonly = function (codec, name) {\n if (name === void 0) { name = \"Readonly<\" + codec.name + \">\"; }\n return new ReadonlyType(name, codec.is, codec.validate, codec.encode, codec);\n};\n/**\n * @since 1.0.0\n */\nvar ReadonlyArrayType = /** @class */ (function (_super) {\n __extends(ReadonlyArrayType, _super);\n function ReadonlyArrayType(name, is, validate, encode, type) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.type = type;\n /**\n * @since 1.0.0\n */\n _this._tag = 'ReadonlyArrayType';\n return _this;\n }\n return ReadonlyArrayType;\n}(Type));\nexport { ReadonlyArrayType };\n/**\n * @category Combinators\n * @since 1.0.0\n */\nexport var readonlyArray = function (item, name) {\n if (name === void 0) { name = \"ReadonlyArray<\" + item.name + \">\"; }\n var codec = array(item);\n return new ReadonlyArrayType(name, codec.is, codec.validate, codec.encode, item);\n};\n/**\n * Strips additional properties\n *\n * @category Combinators\n * @since 1.0.0\n */\nexport var strict = function (props, name) {\n return exact(type(props), name);\n};\n/**\n * @category deprecated\n * @since 1.3.0\n * @deprecated\n */\nvar TaggedUnionType = /** @class */ (function (_super) {\n __extends(TaggedUnionType, _super);\n function TaggedUnionType(name, \n // tslint:disable-next-line: deprecation\n is, \n // tslint:disable-next-line: deprecation\n validate, \n // tslint:disable-next-line: deprecation\n encode, codecs, tag) {\n var _this = _super.call(this, name, is, validate, encode, codecs) /* istanbul ignore next */ // <= workaround for https://github.com/Microsoft/TypeScript/issues/13455\n || this;\n _this.tag = tag;\n return _this;\n }\n return TaggedUnionType;\n}(UnionType));\nexport { TaggedUnionType };\n/**\n * Use `union` instead\n *\n * @category deprecated\n * @since 1.3.0\n * @deprecated\n */\nexport var taggedUnion = function (tag, codecs, name\n// tslint:disable-next-line: deprecation\n) {\n if (name === void 0) { name = getUnionName(codecs); }\n var U = union(codecs, name);\n // tslint:disable-next-line: deprecation\n if (U instanceof TaggedUnionType) {\n return U;\n }\n else {\n console.warn(\"[io-ts] Cannot build a tagged union for \" + name + \", returning a de-optimized union\");\n // tslint:disable-next-line: deprecation\n return new TaggedUnionType(name, U.is, U.validate, U.encode, codecs, tag);\n }\n};\n/**\n * @since 1.1.0\n */\nvar ExactType = /** @class */ (function (_super) {\n __extends(ExactType, _super);\n function ExactType(name, is, validate, encode, type) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.type = type;\n /**\n * @since 1.0.0\n */\n _this._tag = 'ExactType';\n return _this;\n }\n return ExactType;\n}(Type));\nexport { ExactType };\nvar getProps = function (codec) {\n switch (codec._tag) {\n case 'RefinementType':\n case 'ReadonlyType':\n return getProps(codec.type);\n case 'InterfaceType':\n case 'StrictType':\n case 'PartialType':\n return codec.props;\n case 'IntersectionType':\n return codec.types.reduce(function (props, type) { return Object.assign(props, getProps(type)); }, {});\n }\n};\nvar stripKeys = function (o, props) {\n var keys = Object.getOwnPropertyNames(o);\n var shouldStrip = false;\n var r = {};\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwnProperty.call(props, key)) {\n shouldStrip = true;\n }\n else {\n r[key] = o[key];\n }\n }\n return shouldStrip ? r : o;\n};\nvar getExactTypeName = function (codec) {\n if (isTypeC(codec)) {\n return \"{| \" + getNameFromProps(codec.props) + \" |}\";\n }\n else if (isPartialC(codec)) {\n return getPartialTypeName(\"{| \" + getNameFromProps(codec.props) + \" |}\");\n }\n return \"Exact<\" + codec.name + \">\";\n};\n/**\n * Strips additional properties\n * @since 1.1.0\n */\nexport var exact = function (codec, name) {\n if (name === void 0) { name = getExactTypeName(codec); }\n var props = getProps(codec);\n return new ExactType(name, codec.is, function (u, c) {\n var e = UnknownRecord.validate(u, c);\n if (isLeft(e)) {\n return e;\n }\n var ce = codec.validate(u, c);\n if (isLeft(ce)) {\n return ce;\n }\n return right(stripKeys(ce.right, props));\n }, function (a) { return codec.encode(stripKeys(a, props)); }, codec);\n};\nexport { \n/**\n * @since 1.0.0\n */\nnullType as null };\nexport { \n/**\n * @since 1.0.0\n */\nundefinedType as undefined };\nexport { \n/**\n * Use `UnknownArray` instead\n *\n * @category deprecated\n * @deprecated\n * @since 1.0.0\n */\nUnknownArray as Array };\nexport { \n/**\n * Use `type` instead\n *\n * @category deprecated\n * @deprecated\n * @since 1.0.0\n */\ntype as interface };\nexport { \n/**\n * @since 1.0.0\n */\nvoidType as void };\n/**\n * @category deprecated\n * @since 1.0.0\n * @deprecated\n */\nexport var getValidationError /* istanbul ignore next */ = function (value, context) { return ({\n value: value,\n context: context\n}); };\n/**\n * @category deprecated\n * @since 1.0.0\n * @deprecated\n */\nexport var getDefaultContext /* istanbul ignore next */ = function (decoder) { return [\n { key: '', type: decoder }\n]; };\n/**\n * @category deprecated\n * @since 1.0.0\n * @deprecated\n */\nvar NeverType = /** @class */ (function (_super) {\n __extends(NeverType, _super);\n function NeverType() {\n var _this = _super.call(this, 'never', function (_) { return false; }, function (u, c) { return failure(u, c); }, \n /* istanbul ignore next */\n function () {\n throw new Error('cannot encode never');\n }) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'NeverType';\n return _this;\n }\n return NeverType;\n}(Type));\nexport { NeverType };\n/**\n * @category deprecated\n * @since 1.0.0\n * @deprecated\n */\n// tslint:disable-next-line: deprecation\nexport var never = new NeverType();\n/**\n * @category deprecated\n * @since 1.0.0\n * @deprecated\n */\nvar AnyType = /** @class */ (function (_super) {\n __extends(AnyType, _super);\n function AnyType() {\n var _this = _super.call(this, 'any', function (_) { return true; }, success, identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'AnyType';\n return _this;\n }\n return AnyType;\n}(Type));\nexport { AnyType };\n/**\n * Use `unknown` instead\n *\n * @category deprecated\n * @since 1.0.0\n * @deprecated\n */\n// tslint:disable-next-line: deprecation\nexport var any = new AnyType();\n/**\n * Use `UnknownRecord` instead\n *\n * @category deprecated\n * @since 1.0.0\n * @deprecated\n */\nexport var Dictionary = UnknownRecord;\n/**\n * @category deprecated\n * @since 1.0.0\n * @deprecated\n */\nvar ObjectType = /** @class */ (function (_super) {\n __extends(ObjectType, _super);\n function ObjectType() {\n var _this = _super.call(this, 'object', function (u) { return u !== null && typeof u === 'object'; }, function (u, c) { return (_this.is(u) ? success(u) : failure(u, c)); }, identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'ObjectType';\n return _this;\n }\n return ObjectType;\n}(Type));\nexport { ObjectType };\n/**\n * Use `UnknownRecord` instead\n *\n * @category deprecated\n * @since 1.0.0\n * @deprecated\n */\n// tslint:disable-next-line: deprecation\nexport var object = new ObjectType();\n/**\n * Use `brand` instead\n *\n * @category deprecated\n * @since 1.0.0\n * @deprecated\n */\nexport function refinement(codec, predicate, name) {\n if (name === void 0) { name = \"(\" + codec.name + \" | \" + getFunctionName(predicate) + \")\"; }\n return new RefinementType(name, function (u) { return codec.is(u) && predicate(u); }, function (i, c) {\n var e = codec.validate(i, c);\n if (isLeft(e)) {\n return e;\n }\n var a = e.right;\n return predicate(a) ? success(a) : failure(a, c);\n }, codec.encode, codec, predicate);\n}\n/**\n * Use `Int` instead\n *\n * @category deprecated\n * @since 1.0.0\n * @deprecated\n */\n// tslint:disable-next-line: deprecation\nexport var Integer = refinement(number, Number.isInteger, 'Integer');\n/**\n * Use `record` instead\n *\n * @category deprecated\n * @since 1.0.0\n * @deprecated\n */\nexport var dictionary = record;\n/**\n * @category deprecated\n * @since 1.0.0\n * @deprecated\n */\nvar StrictType = /** @class */ (function (_super) {\n __extends(StrictType, _super);\n function StrictType(name, \n // tslint:disable-next-line: deprecation\n is, \n // tslint:disable-next-line: deprecation\n validate, \n // tslint:disable-next-line: deprecation\n encode, props) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.props = props;\n /**\n * @since 1.0.0\n */\n _this._tag = 'StrictType';\n return _this;\n }\n return StrictType;\n}(Type));\nexport { StrictType };\n/**\n * Drops the codec \"kind\"\n *\n * @category deprecated\n * @since 1.1.0\n * @deprecated\n */\nexport function clean(codec) {\n return codec;\n}\nexport function alias(codec) {\n return function () { return codec; };\n}\nvar isNonEmpty = function (as) { return as.length > 0; };\n/**\n * @internal\n */\nexport var emptyTags = {};\nfunction intersect(a, b) {\n var r = [];\n for (var _i = 0, a_1 = a; _i < a_1.length; _i++) {\n var v = a_1[_i];\n if (b.indexOf(v) !== -1) {\n r.push(v);\n }\n }\n return r;\n}\nfunction mergeTags(a, b) {\n if (a === emptyTags) {\n return b;\n }\n if (b === emptyTags) {\n return a;\n }\n var r = Object.assign({}, a);\n for (var k in b) {\n if (a.hasOwnProperty(k)) {\n var intersection_1 = intersect(a[k], b[k]);\n if (isNonEmpty(intersection_1)) {\n r[k] = intersection_1;\n }\n else {\n r = emptyTags;\n break;\n }\n }\n else {\n r[k] = b[k];\n }\n }\n return r;\n}\nfunction intersectTags(a, b) {\n if (a === emptyTags || b === emptyTags) {\n return emptyTags;\n }\n var r = emptyTags;\n for (var k in a) {\n if (b.hasOwnProperty(k)) {\n var intersection_2 = intersect(a[k], b[k]);\n if (intersection_2.length === 0) {\n if (r === emptyTags) {\n r = {};\n }\n r[k] = a[k].concat(b[k]);\n }\n }\n }\n return r;\n}\n// tslint:disable-next-line: deprecation\nfunction isAnyC(codec) {\n return codec._tag === 'AnyType';\n}\nfunction isLiteralC(codec) {\n return codec._tag === 'LiteralType';\n}\nfunction isKeyofC(codec) {\n return codec._tag === 'KeyofType';\n}\nfunction isTypeC(codec) {\n return codec._tag === 'InterfaceType';\n}\nfunction isPartialC(codec) {\n return codec._tag === 'PartialType';\n}\n// tslint:disable-next-line: deprecation\nfunction isStrictC(codec) {\n return codec._tag === 'StrictType';\n}\nfunction isExactC(codec) {\n return codec._tag === 'ExactType';\n}\n// tslint:disable-next-line: deprecation\nfunction isRefinementC(codec) {\n return codec._tag === 'RefinementType';\n}\nfunction isIntersectionC(codec) {\n return codec._tag === 'IntersectionType';\n}\nfunction isUnionC(codec) {\n return codec._tag === 'UnionType';\n}\nfunction isRecursiveC(codec) {\n return codec._tag === 'RecursiveType';\n}\nvar lazyCodecs = [];\n/**\n * @internal\n */\nexport function getTags(codec) {\n if (lazyCodecs.indexOf(codec) !== -1) {\n return emptyTags;\n }\n if (isTypeC(codec) || isStrictC(codec)) {\n var index = emptyTags;\n // tslint:disable-next-line: forin\n for (var k in codec.props) {\n var prop = codec.props[k];\n if (isLiteralC(prop)) {\n if (index === emptyTags) {\n index = {};\n }\n index[k] = [prop.value];\n }\n }\n return index;\n }\n else if (isExactC(codec) || isRefinementC(codec)) {\n return getTags(codec.type);\n }\n else if (isIntersectionC(codec)) {\n return codec.types.reduce(function (tags, codec) { return mergeTags(tags, getTags(codec)); }, emptyTags);\n }\n else if (isUnionC(codec)) {\n return codec.types.slice(1).reduce(function (tags, codec) { return intersectTags(tags, getTags(codec)); }, getTags(codec.types[0]));\n }\n else if (isRecursiveC(codec)) {\n lazyCodecs.push(codec);\n var tags = getTags(codec.type);\n lazyCodecs.pop();\n return tags;\n }\n return emptyTags;\n}\n/**\n * @internal\n */\nexport function getIndex(codecs) {\n var tags = getTags(codecs[0]);\n var keys = Object.keys(tags);\n var len = codecs.length;\n var _loop_1 = function (k) {\n var all = tags[k].slice();\n var index = [tags[k]];\n for (var i = 1; i < len; i++) {\n var codec = codecs[i];\n var ctags = getTags(codec);\n var values = ctags[k];\n // tslint:disable-next-line: strict-type-predicates\n if (values === undefined) {\n return \"continue-keys\";\n }\n else {\n if (values.some(function (v) { return all.indexOf(v) !== -1; })) {\n return \"continue-keys\";\n }\n else {\n all.push.apply(all, values);\n index.push(values);\n }\n }\n }\n return { value: [k, index] };\n };\n keys: for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var k = keys_1[_i];\n var state_1 = _loop_1(k);\n if (typeof state_1 === \"object\")\n return state_1.value;\n switch (state_1) {\n case \"continue-keys\": continue keys;\n }\n }\n return undefined;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PathReporter = exports.success = exports.failure = void 0;\nvar _1 = require(\".\");\nvar Either_1 = require(\"fp-ts/lib/Either\");\nfunction stringify(v) {\n if (typeof v === 'function') {\n return _1.getFunctionName(v);\n }\n if (typeof v === 'number' && !isFinite(v)) {\n if (isNaN(v)) {\n return 'NaN';\n }\n return v > 0 ? 'Infinity' : '-Infinity';\n }\n return JSON.stringify(v);\n}\nfunction getContextPath(context) {\n return context.map(function (_a) {\n var key = _a.key, type = _a.type;\n return key + \": \" + type.name;\n }).join('/');\n}\nfunction getMessage(e) {\n return e.message !== undefined\n ? e.message\n : \"Invalid value \" + stringify(e.value) + \" supplied to \" + getContextPath(e.context);\n}\n/**\n * @since 1.0.0\n */\nfunction failure(es) {\n return es.map(getMessage);\n}\nexports.failure = failure;\n/**\n * @since 1.0.0\n */\nfunction success() {\n return ['No errors!'];\n}\nexports.success = success;\n/**\n * @since 1.0.0\n */\nexports.PathReporter = {\n report: Either_1.fold(failure, success)\n};\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.optionFromNullable = void 0;\n/**\n * @since 0.5.0\n */\nvar Either_1 = require(\"fp-ts/lib/Either\");\nvar Option_1 = require(\"fp-ts/lib/Option\");\nvar t = __importStar(require(\"io-ts\"));\nvar option_1 = require(\"./option\");\n/**\n * @since 0.5.0\n */\nfunction optionFromNullable(codec, name) {\n if (name === void 0) { name = \"Option<\" + codec.name + \">\"; }\n return new t.Type(name, option_1.option(codec).is, function (u, c) { return (u == null ? t.success(Option_1.none) : Either_1.either.map(codec.validate(u, c), Option_1.some)); }, function (a) { return Option_1.toNullable(Option_1.option.map(a, codec.encode)); });\n}\nexports.optionFromNullable = optionFromNullable;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NumberFromString = void 0;\n/**\n * @since 0.5.0\n */\nvar t = __importStar(require(\"io-ts\"));\nvar Either_1 = require(\"fp-ts/lib/Either\");\n/**\n * @example\n * import { NumberFromString } from 'io-ts-types/lib/NumberFromString'\n *\n * NumberFromString.decode('1') // right(1)\n * NumberFromString.decode('1.1') // right(1.1)\n *\n * @since 0.5.0\n */\nexports.NumberFromString = new t.Type('NumberFromString', t.number.is, function (u, c) {\n return Either_1.either.chain(t.string.validate(u, c), function (s) {\n var n = +s;\n return isNaN(n) || s.trim() === '' ? t.failure(u, c) : t.success(n);\n });\n}, String);\n","import { isArgumentElement, isDateElement, isDateTimeSkeleton, isLiteralElement, isNumberElement, isNumberSkeleton, isPluralElement, isPoundElement, isSelectElement, isTimeElement, isTagElement, } from '@formatjs/icu-messageformat-parser';\nimport { MissingValueError, InvalidValueError, ErrorCode, FormatError, InvalidValueTypeError, } from './error';\nexport var PART_TYPE;\n(function (PART_TYPE) {\n PART_TYPE[PART_TYPE[\"literal\"] = 0] = \"literal\";\n PART_TYPE[PART_TYPE[\"object\"] = 1] = \"object\";\n})(PART_TYPE || (PART_TYPE = {}));\nfunction mergeLiteral(parts) {\n if (parts.length < 2) {\n return parts;\n }\n return parts.reduce(function (all, part) {\n var lastPart = all[all.length - 1];\n if (!lastPart ||\n lastPart.type !== PART_TYPE.literal ||\n part.type !== PART_TYPE.literal) {\n all.push(part);\n }\n else {\n lastPart.value += part.value;\n }\n return all;\n }, []);\n}\nexport function isFormatXMLElementFn(el) {\n return typeof el === 'function';\n}\n// TODO(skeleton): add skeleton support\nexport function formatToParts(els, locales, formatters, formats, values, currentPluralValue, \n// For debugging\noriginalMessage) {\n // Hot path for straight simple msg translations\n if (els.length === 1 && isLiteralElement(els[0])) {\n return [\n {\n type: PART_TYPE.literal,\n value: els[0].value,\n },\n ];\n }\n var result = [];\n for (var _i = 0, els_1 = els; _i < els_1.length; _i++) {\n var el = els_1[_i];\n // Exit early for string parts.\n if (isLiteralElement(el)) {\n result.push({\n type: PART_TYPE.literal,\n value: el.value,\n });\n continue;\n }\n // TODO: should this part be literal type?\n // Replace `#` in plural rules with the actual numeric value.\n if (isPoundElement(el)) {\n if (typeof currentPluralValue === 'number') {\n result.push({\n type: PART_TYPE.literal,\n value: formatters.getNumberFormat(locales).format(currentPluralValue),\n });\n }\n continue;\n }\n var varName = el.value;\n // Enforce that all required values are provided by the caller.\n if (!(values && varName in values)) {\n throw new MissingValueError(varName, originalMessage);\n }\n var value = values[varName];\n if (isArgumentElement(el)) {\n if (!value || typeof value === 'string' || typeof value === 'number') {\n value =\n typeof value === 'string' || typeof value === 'number'\n ? String(value)\n : '';\n }\n result.push({\n type: typeof value === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: value,\n });\n continue;\n }\n // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n if (isDateElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.date[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTimeElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.time[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isNumberElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.number[el.style]\n : isNumberSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n if (style && style.scale) {\n value =\n value *\n (style.scale || 1);\n }\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getNumberFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTagElement(el)) {\n var children = el.children, value_1 = el.value;\n var formatFn = values[value_1];\n if (!isFormatXMLElementFn(formatFn)) {\n throw new InvalidValueTypeError(value_1, 'function', originalMessage);\n }\n var parts = formatToParts(children, locales, formatters, formats, values, currentPluralValue);\n var chunks = formatFn(parts.map(function (p) { return p.value; }));\n if (!Array.isArray(chunks)) {\n chunks = [chunks];\n }\n result.push.apply(result, chunks.map(function (c) {\n return {\n type: typeof c === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: c,\n };\n }));\n }\n if (isSelectElement(el)) {\n var opt = el.options[value] || el.options.other;\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values));\n continue;\n }\n if (isPluralElement(el)) {\n var opt = el.options[\"=\".concat(value)];\n if (!opt) {\n if (!Intl.PluralRules) {\n throw new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", ErrorCode.MISSING_INTL_API, originalMessage);\n }\n var rule = formatters\n .getPluralRules(locales, { type: el.pluralType })\n .select(value - (el.offset || 0));\n opt = el.options[rule] || el.options.other;\n }\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values, value - (el.offset || 0)));\n continue;\n }\n }\n return mergeLiteral(result);\n}\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromNullable = void 0;\n/**\n * @since 0.5.0\n */\nvar t = __importStar(require(\"io-ts\"));\nvar withValidate_1 = require(\"./withValidate\");\n/**\n * Returns a clone of the given codec that replace a nullable input with the given value `a`\n *\n * @example\n * import { fromNullable } from 'io-ts-types/lib/fromNullable'\n * import * as t from 'io-ts'\n * import { right } from 'fp-ts/lib/Either'\n * import { PathReporter } from 'io-ts/lib/PathReporter'\n *\n * const T = fromNullable(t.number, -1)\n *\n * assert.deepStrictEqual(T.decode(1), right(1))\n * assert.deepStrictEqual(T.decode(null), right(-1))\n * assert.deepStrictEqual(T.decode(undefined), right(-1))\n * assert.deepStrictEqual(PathReporter.report(T.decode('a')), ['Invalid value \"a\" supplied to : fromNullable(number)'])\n *\n * @since 0.5.0\n */\nfunction fromNullable(codec, a, name) {\n if (name === void 0) { name = \"fromNullable(\" + codec.name + \")\"; }\n return withValidate_1.withValidate(codec, function (u, c) { return (u == null ? t.success(a) : codec.validate(u, c)); }, name);\n}\nexports.fromNullable = fromNullable;\n","/**\n * @since 0.5.0\n */\nimport * as t from 'io-ts';\nvar None = t.strict({\n _tag: t.literal('None')\n});\nvar someLiteral = t.literal('Some');\n/**\n * @since 0.5.0\n */\nexport function option(codec, name) {\n if (name === void 0) { name = \"Option<\" + codec.name + \">\"; }\n return t.union([\n None,\n t.strict({\n _tag: someLiteral,\n value: codec\n }, \"Some<\" + codec.name + \">\")\n ], name);\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UUID = void 0;\n/**\n * @since 0.4.6\n */\nvar t = __importStar(require(\"io-ts\"));\nvar regex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;\n/**\n * @example\n * import { UUID } from 'io-ts-types/lib/UUID'\n * import { right } from 'fp-ts/lib/Either'\n * import { PathReporter } from 'io-ts/lib/PathReporter'\n *\n * assert.deepStrictEqual(UUID.decode('00000000-0000-0000-0000-000000000000'), right('00000000-0000-0000-0000-000000000000'))\n * assert.deepStrictEqual(PathReporter.report(UUID.decode('not a uuid')), ['Invalid value \"not a uuid\" supplied to : UUID'])\n *\n * @since 0.4.6\n */\nexports.UUID = t.brand(t.string, function (s) { return regex.test(s); }, 'UUID');\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.withValidate = void 0;\n/**\n * @since 0.4.3\n */\nvar t = __importStar(require(\"io-ts\"));\nvar clone_1 = require(\"./clone\");\n/**\n * Returns a clone of the given codec which uses the given `validate` function\n *\n * @example\n * import { withValidate } from 'io-ts-types/lib/withValidate'\n * import * as t from 'io-ts'\n * import { PathReporter } from 'io-ts/lib/PathReporter'\n * import { either, right } from 'fp-ts/lib/Either'\n *\n * const T = withValidate(t.number, (u, c) => either.map(t.number.validate(u, c), n => n * 2))\n *\n * assert.deepStrictEqual(T.decode(1), right(2))\n * assert.deepStrictEqual(PathReporter.report(T.decode(null)), ['Invalid value null supplied to : number'])\n *\n * @since 0.4.3\n */\nfunction withValidate(codec, validate, name) {\n if (name === void 0) { name = codec.name; }\n var r = clone_1.clone(codec);\n r.validate = validate;\n // tslint:disable-next-line: deprecation\n r.decode = function (i) { return validate(i, t.getDefaultContext(r)); };\n r.name = name;\n return r;\n}\nexports.withValidate = withValidate;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.withFallback = void 0;\n/**\n * @since 0.5.0\n */\nvar t = __importStar(require(\"io-ts\"));\nvar withValidate_1 = require(\"./withValidate\");\nvar Either_1 = require(\"fp-ts/lib/Either\");\n/**\n * Returns a clone of the given codec that always succeed using the given value `a` if the original codec fails\n *\n * @example\n * import { withFallback } from 'io-ts-types/lib/withFallback'\n * import * as t from 'io-ts'\n * import { right } from 'fp-ts/lib/Either'\n *\n * const T = withFallback(t.number, -1)\n *\n * assert.deepStrictEqual(T.decode(1), right(1))\n * assert.deepStrictEqual(T.decode('a'), right(-1))\n *\n * @since 0.5.0\n */\nfunction withFallback(codec, a, name) {\n if (name === void 0) { name = \"withFallback(\" + codec.name + \")\"; }\n return withValidate_1.withValidate(codec, function (u, c) { return Either_1.orElse(function () { return t.success(a); })(codec.validate(u, c)); }, name);\n}\nexports.withFallback = withFallback;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mapOutput = void 0;\n/**\n * @since 0.3.2\n */\nvar t = __importStar(require(\"io-ts\"));\n/**\n * Changes the output type of the given runtime type\n *\n * @example\n * import * as t from 'io-ts'\n * import { mapOutput } from 'io-ts-types/lib/mapOutput'\n * import { optionFromNullable } from 'io-ts-types/lib/optionFromNullable'\n * import { none, some } from 'fp-ts/lib/Option'\n *\n * // Input: t.Type, number | null, t.mixed>\n * const Input = optionFromNullable(t.number)\n *\n * const toUndefined = (x: A | null): A | undefined => (x === null ? undefined : x)\n *\n * // Output: t.Type, number | undefined, t.mixed>\n * const Output = mapOutput(Input, toUndefined)\n *\n * assert.strictEqual(Output.encode(none), undefined)\n * assert.strictEqual(Output.encode(some(1)), 1)\n *\n * @since 0.3.2\n */\nfunction mapOutput(codec, f, name) {\n if (name === void 0) { name = codec.name; }\n return new t.Type(name, codec.is, codec.validate, function (a) { return f(codec.encode(a)); });\n}\nexports.mapOutput = mapOutput;\n","/**\n * @since 0.5.0\n */\nimport * as t from 'io-ts';\nimport { withValidate } from './withValidate';\nimport { orElse } from 'fp-ts/es6/Either';\n/**\n * Returns a clone of the given codec that always succeed using the given value `a` if the original codec fails\n *\n * @example\n * import { withFallback } from 'io-ts-types/es6/withFallback'\n * import * as t from 'io-ts'\n * import { right } from 'fp-ts/es6/Either'\n *\n * const T = withFallback(t.number, -1)\n *\n * assert.deepStrictEqual(T.decode(1), right(1))\n * assert.deepStrictEqual(T.decode('a'), right(-1))\n *\n * @since 0.5.0\n */\nexport function withFallback(codec, a, name) {\n if (name === void 0) { name = \"withFallback(\" + codec.name + \")\"; }\n return withValidate(codec, function (u, c) { return orElse(function () { return t.success(a); })(codec.validate(u, c)); }, name);\n}\n","/**\n * @since 0.4.3\n */\nimport * as t from 'io-ts';\nimport { clone } from './clone';\n/**\n * Returns a clone of the given codec which uses the given `validate` function\n *\n * @example\n * import { withValidate } from 'io-ts-types/es6/withValidate'\n * import * as t from 'io-ts'\n * import { PathReporter } from 'io-ts/es6/PathReporter'\n * import { either, right } from 'fp-ts/es6/Either'\n *\n * const T = withValidate(t.number, (u, c) => either.map(t.number.validate(u, c), n => n * 2))\n *\n * assert.deepStrictEqual(T.decode(1), right(2))\n * assert.deepStrictEqual(PathReporter.report(T.decode(null)), ['Invalid value null supplied to : number'])\n *\n * @since 0.4.3\n */\nexport function withValidate(codec, validate, name) {\n if (name === void 0) { name = codec.name; }\n var r = clone(codec);\n r.validate = validate;\n // tslint:disable-next-line: deprecation\n r.decode = function (i) { return validate(i, t.getDefaultContext(r)); };\n r.name = name;\n return r;\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.nonEmptyArray = void 0;\n/**\n * @since 0.5.0\n */\nvar t = __importStar(require(\"io-ts\"));\nvar NonEmptyArray_1 = require(\"fp-ts/lib/NonEmptyArray\");\nvar Array_1 = require(\"fp-ts/lib/Array\");\nvar Either_1 = require(\"fp-ts/lib/Either\");\nvar Option_1 = require(\"fp-ts/lib/Option\");\n/**\n * @since 0.5.0\n */\nfunction nonEmptyArray(codec, name) {\n if (name === void 0) { name = \"NonEmptyArray<\" + codec.name + \">\"; }\n var arr = t.array(codec);\n return new t.Type(name, function (u) { return arr.is(u) && Array_1.isNonEmpty(u); }, function (u, c) {\n return Either_1.either.chain(arr.validate(u, c), function (as) {\n var onea = NonEmptyArray_1.fromArray(as);\n return Option_1.isNone(onea) ? t.failure(u, c) : t.success(onea.value);\n });\n }, function (nea) { return arr.encode(nea); });\n}\nexports.nonEmptyArray = nonEmptyArray;\n","/**\n * Returns a clone of the given codec\n *\n * @example\n * import { clone } from 'io-ts-types/es6/clone'\n * import * as t from 'io-ts'\n *\n * assert.deepStrictEqual(clone(t.string), t.string)\n *\n * @since 0.4.3\n */\nexport function clone(t) {\n var r = Object.create(Object.getPrototypeOf(t));\n Object.assign(r, t);\n return r;\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nimport { __assign, __spreadArray } from \"tslib\";\nimport { parse } from '@formatjs/icu-messageformat-parser';\nimport memoize, { strategies } from '@formatjs/fast-memoize';\nimport { formatToParts, PART_TYPE, } from './formatters';\n// -- MessageFormat --------------------------------------------------------\nfunction mergeConfig(c1, c2) {\n if (!c2) {\n return c1;\n }\n return __assign(__assign(__assign({}, (c1 || {})), (c2 || {})), Object.keys(c1).reduce(function (all, k) {\n all[k] = __assign(__assign({}, c1[k]), (c2[k] || {}));\n return all;\n }, {}));\n}\nfunction mergeConfigs(defaultConfig, configs) {\n if (!configs) {\n return defaultConfig;\n }\n return Object.keys(defaultConfig).reduce(function (all, k) {\n all[k] = mergeConfig(defaultConfig[k], configs[k]);\n return all;\n }, __assign({}, defaultConfig));\n}\nfunction createFastMemoizeCache(store) {\n return {\n create: function () {\n return {\n get: function (key) {\n return store[key];\n },\n set: function (key, value) {\n store[key] = value;\n },\n };\n },\n };\n}\nfunction createDefaultFormatters(cache) {\n if (cache === void 0) { cache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n }; }\n return {\n getNumberFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.number),\n strategy: strategies.variadic,\n }),\n getDateTimeFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.dateTime),\n strategy: strategies.variadic,\n }),\n getPluralRules: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.pluralRules),\n strategy: strategies.variadic,\n }),\n };\n}\nvar IntlMessageFormat = /** @class */ (function () {\n function IntlMessageFormat(message, locales, overrideFormats, opts) {\n var _this = this;\n if (locales === void 0) { locales = IntlMessageFormat.defaultLocale; }\n this.formatterCache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n };\n this.format = function (values) {\n var parts = _this.formatToParts(values);\n // Hot path for straight simple msg translations\n if (parts.length === 1) {\n return parts[0].value;\n }\n var result = parts.reduce(function (all, part) {\n if (!all.length ||\n part.type !== PART_TYPE.literal ||\n typeof all[all.length - 1] !== 'string') {\n all.push(part.value);\n }\n else {\n all[all.length - 1] += part.value;\n }\n return all;\n }, []);\n if (result.length <= 1) {\n return result[0] || '';\n }\n return result;\n };\n this.formatToParts = function (values) {\n return formatToParts(_this.ast, _this.locales, _this.formatters, _this.formats, values, undefined, _this.message);\n };\n this.resolvedOptions = function () { return ({\n locale: Intl.NumberFormat.supportedLocalesOf(_this.locales)[0],\n }); };\n this.getAst = function () { return _this.ast; };\n if (typeof message === 'string') {\n this.message = message;\n if (!IntlMessageFormat.__parse) {\n throw new TypeError('IntlMessageFormat.__parse must be set to process `message` of type `string`');\n }\n // Parse string messages into an AST.\n this.ast = IntlMessageFormat.__parse(message, {\n ignoreTag: opts === null || opts === void 0 ? void 0 : opts.ignoreTag,\n });\n }\n else {\n this.ast = message;\n }\n if (!Array.isArray(this.ast)) {\n throw new TypeError('A message must be provided as a String or AST.');\n }\n // Creates a new object with the specified `formats` merged with the default\n // formats.\n this.formats = mergeConfigs(IntlMessageFormat.formats, overrideFormats);\n // Defined first because it's used to build the format pattern.\n this.locales = locales;\n this.formatters =\n (opts && opts.formatters) || createDefaultFormatters(this.formatterCache);\n }\n Object.defineProperty(IntlMessageFormat, \"defaultLocale\", {\n get: function () {\n if (!IntlMessageFormat.memoizedDefaultLocale) {\n IntlMessageFormat.memoizedDefaultLocale =\n new Intl.NumberFormat().resolvedOptions().locale;\n }\n return IntlMessageFormat.memoizedDefaultLocale;\n },\n enumerable: false,\n configurable: true\n });\n IntlMessageFormat.memoizedDefaultLocale = null;\n IntlMessageFormat.__parse = parse;\n // Default format options used as the prototype of the `formats` provided to the\n // constructor. These are used when constructing the internal Intl.NumberFormat\n // and Intl.DateTimeFormat instances.\n IntlMessageFormat.formats = {\n number: {\n integer: {\n maximumFractionDigits: 0,\n },\n currency: {\n style: 'currency',\n },\n percent: {\n style: 'percent',\n },\n },\n date: {\n short: {\n month: 'numeric',\n day: 'numeric',\n year: '2-digit',\n },\n medium: {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n },\n long: {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n full: {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n },\n time: {\n short: {\n hour: 'numeric',\n minute: 'numeric',\n },\n medium: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n },\n long: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n full: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n },\n };\n return IntlMessageFormat;\n}());\nexport { IntlMessageFormat };\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getIndex = exports.getTags = exports.emptyTags = exports.alias = exports.clean = exports.StrictType = exports.dictionary = exports.Integer = exports.refinement = exports.object = exports.ObjectType = exports.Dictionary = exports.any = exports.AnyType = exports.never = exports.NeverType = exports.getDefaultContext = exports.getValidationError = exports.void = exports.interface = exports.Array = exports.undefined = exports.null = exports.exact = exports.ExactType = exports.taggedUnion = exports.TaggedUnionType = exports.strict = exports.readonlyArray = exports.ReadonlyArrayType = exports.readonly = exports.ReadonlyType = exports.tuple = exports.TupleType = exports.intersection = exports.mergeAll = exports.IntersectionType = exports.union = exports.UnionType = exports.record = exports.getDomainKeys = exports.DictionaryType = exports.partial = exports.PartialType = exports.type = exports.InterfaceType = exports.array = exports.ArrayType = exports.recursion = exports.RecursiveType = exports.keyof = exports.KeyofType = exports.literal = exports.LiteralType = exports.Int = exports.brand = exports.RefinementType = exports.Function = exports.FunctionType = exports.UnknownRecord = exports.AnyDictionaryType = exports.UnknownArray = exports.AnyArrayType = exports.boolean = exports.BooleanType = exports.bigint = exports.BigIntType = exports.number = exports.NumberType = exports.string = exports.StringType = exports.unknown = exports.UnknownType = exports.voidType = exports.VoidType = exports.UndefinedType = exports.nullType = exports.NullType = exports.success = exports.failure = exports.failures = exports.appendContext = exports.getContextEntry = exports.getFunctionName = exports.identity = exports.Type = void 0;\n/**\n * @since 1.0.0\n */\nvar Either_1 = require(\"fp-ts/lib/Either\");\n/**\n * @category Model\n * @since 1.0.0\n */\nvar Type = /** @class */ (function () {\n function Type(\n /** a unique name for this codec */\n name, \n /** a custom type guard */\n is, \n /** succeeds if a value of type I can be decoded to a value of type A */\n validate, \n /** converts a value of type A to a value of type O */\n encode) {\n this.name = name;\n this.is = is;\n this.validate = validate;\n this.encode = encode;\n this.decode = this.decode.bind(this);\n }\n /**\n * @since 1.0.0\n */\n Type.prototype.pipe = function (ab, name) {\n var _this = this;\n if (name === void 0) { name = \"pipe(\" + this.name + \", \" + ab.name + \")\"; }\n return new Type(name, ab.is, function (i, c) {\n var e = _this.validate(i, c);\n if (Either_1.isLeft(e)) {\n return e;\n }\n return ab.validate(e.right, c);\n }, this.encode === exports.identity && ab.encode === exports.identity ? exports.identity : function (b) { return _this.encode(ab.encode(b)); });\n };\n /**\n * @since 1.0.0\n */\n Type.prototype.asDecoder = function () {\n return this;\n };\n /**\n * @since 1.0.0\n */\n Type.prototype.asEncoder = function () {\n return this;\n };\n /**\n * a version of `validate` with a default context\n * @since 1.0.0\n */\n Type.prototype.decode = function (i) {\n return this.validate(i, [{ key: '', type: this, actual: i }]);\n };\n return Type;\n}());\nexports.Type = Type;\n/**\n * @since 1.0.0\n */\nexports.identity = function (a) { return a; };\n/**\n * @since 1.0.0\n */\nexports.getFunctionName = function (f) {\n return f.displayName || f.name || \"\";\n};\n/**\n * @since 1.0.0\n */\nexports.getContextEntry = function (key, decoder) { return ({ key: key, type: decoder }); };\n/**\n * @since 1.0.0\n */\nexports.appendContext = function (c, key, decoder, actual) {\n var len = c.length;\n var r = Array(len + 1);\n for (var i = 0; i < len; i++) {\n r[i] = c[i];\n }\n r[len] = { key: key, type: decoder, actual: actual };\n return r;\n};\n/**\n * @since 1.0.0\n */\nexports.failures = Either_1.left;\n/**\n * @since 1.0.0\n */\nexports.failure = function (value, context, message) {\n return exports.failures([{ value: value, context: context, message: message }]);\n};\n/**\n * @since 1.0.0\n */\nexports.success = Either_1.right;\nvar pushAll = function (xs, ys) {\n var l = ys.length;\n for (var i = 0; i < l; i++) {\n xs.push(ys[i]);\n }\n};\n// -------------------------------------------------------------------------------------\n// primitives\n// -------------------------------------------------------------------------------------\n/**\n * @since 1.0.0\n */\nvar NullType = /** @class */ (function (_super) {\n __extends(NullType, _super);\n function NullType() {\n var _this = _super.call(this, 'null', function (u) { return u === null; }, function (u, c) { return (_this.is(u) ? exports.success(u) : exports.failure(u, c)); }, exports.identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'NullType';\n return _this;\n }\n return NullType;\n}(Type));\nexports.NullType = NullType;\n/**\n * @category Primitives\n * @since 1.0.0\n */\nexports.nullType = new NullType();\nexports.null = exports.nullType;\n/**\n * @since 1.0.0\n */\nvar UndefinedType = /** @class */ (function (_super) {\n __extends(UndefinedType, _super);\n function UndefinedType() {\n var _this = _super.call(this, 'undefined', function (u) { return u === void 0; }, function (u, c) { return (_this.is(u) ? exports.success(u) : exports.failure(u, c)); }, exports.identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'UndefinedType';\n return _this;\n }\n return UndefinedType;\n}(Type));\nexports.UndefinedType = UndefinedType;\nvar undefinedType = new UndefinedType();\nexports.undefined = undefinedType;\n/**\n * @since 1.2.0\n */\nvar VoidType = /** @class */ (function (_super) {\n __extends(VoidType, _super);\n function VoidType() {\n var _this = _super.call(this, 'void', undefinedType.is, undefinedType.validate, exports.identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'VoidType';\n return _this;\n }\n return VoidType;\n}(Type));\nexports.VoidType = VoidType;\n/**\n * @category Primitives\n * @since 1.2.0\n */\nexports.voidType = new VoidType();\nexports.void = exports.voidType;\n/**\n * @since 1.5.0\n */\nvar UnknownType = /** @class */ (function (_super) {\n __extends(UnknownType, _super);\n function UnknownType() {\n var _this = _super.call(this, 'unknown', function (_) { return true; }, exports.success, exports.identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'UnknownType';\n return _this;\n }\n return UnknownType;\n}(Type));\nexports.UnknownType = UnknownType;\n/**\n * @category Primitives\n * @since 1.5.0\n */\nexports.unknown = new UnknownType();\n/**\n * @since 1.0.0\n */\nvar StringType = /** @class */ (function (_super) {\n __extends(StringType, _super);\n function StringType() {\n var _this = _super.call(this, 'string', function (u) { return typeof u === 'string'; }, function (u, c) { return (_this.is(u) ? exports.success(u) : exports.failure(u, c)); }, exports.identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'StringType';\n return _this;\n }\n return StringType;\n}(Type));\nexports.StringType = StringType;\n/**\n * @category Primitives\n * @since 1.0.0\n */\nexports.string = new StringType();\n/**\n * @since 1.0.0\n */\nvar NumberType = /** @class */ (function (_super) {\n __extends(NumberType, _super);\n function NumberType() {\n var _this = _super.call(this, 'number', function (u) { return typeof u === 'number'; }, function (u, c) { return (_this.is(u) ? exports.success(u) : exports.failure(u, c)); }, exports.identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'NumberType';\n return _this;\n }\n return NumberType;\n}(Type));\nexports.NumberType = NumberType;\n/**\n * @category Primitives\n * @since 1.0.0\n */\nexports.number = new NumberType();\n/**\n * @since 2.1.0\n */\nvar BigIntType = /** @class */ (function (_super) {\n __extends(BigIntType, _super);\n function BigIntType() {\n var _this = _super.call(this, 'bigint', \n // tslint:disable-next-line: valid-typeof\n function (u) { return typeof u === 'bigint'; }, function (u, c) { return (_this.is(u) ? exports.success(u) : exports.failure(u, c)); }, exports.identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'BigIntType';\n return _this;\n }\n return BigIntType;\n}(Type));\nexports.BigIntType = BigIntType;\n/**\n * @category Primitives\n * @since 2.1.0\n */\nexports.bigint = new BigIntType();\n/**\n * @since 1.0.0\n */\nvar BooleanType = /** @class */ (function (_super) {\n __extends(BooleanType, _super);\n function BooleanType() {\n var _this = _super.call(this, 'boolean', function (u) { return typeof u === 'boolean'; }, function (u, c) { return (_this.is(u) ? exports.success(u) : exports.failure(u, c)); }, exports.identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'BooleanType';\n return _this;\n }\n return BooleanType;\n}(Type));\nexports.BooleanType = BooleanType;\n/**\n * @category Primitives\n * @since 1.0.0\n */\nexports.boolean = new BooleanType();\n/**\n * @since 1.0.0\n */\nvar AnyArrayType = /** @class */ (function (_super) {\n __extends(AnyArrayType, _super);\n function AnyArrayType() {\n var _this = _super.call(this, 'UnknownArray', Array.isArray, function (u, c) { return (_this.is(u) ? exports.success(u) : exports.failure(u, c)); }, exports.identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'AnyArrayType';\n return _this;\n }\n return AnyArrayType;\n}(Type));\nexports.AnyArrayType = AnyArrayType;\n/**\n * @category Primitives\n * @since 1.7.1\n */\nexports.UnknownArray = new AnyArrayType();\nexports.Array = exports.UnknownArray;\n/**\n * @since 1.0.0\n */\nvar AnyDictionaryType = /** @class */ (function (_super) {\n __extends(AnyDictionaryType, _super);\n function AnyDictionaryType() {\n var _this = _super.call(this, 'UnknownRecord', function (u) {\n var s = Object.prototype.toString.call(u);\n return s === '[object Object]' || s === '[object Window]';\n }, function (u, c) { return (_this.is(u) ? exports.success(u) : exports.failure(u, c)); }, exports.identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'AnyDictionaryType';\n return _this;\n }\n return AnyDictionaryType;\n}(Type));\nexports.AnyDictionaryType = AnyDictionaryType;\n/**\n * @category Primitives\n * @since 1.7.1\n */\nexports.UnknownRecord = new AnyDictionaryType();\n/**\n * @category deprecated\n * @since 1.0.0\n * @deprecated\n */\nvar FunctionType = /** @class */ (function (_super) {\n __extends(FunctionType, _super);\n function FunctionType() {\n var _this = _super.call(this, 'Function', \n // tslint:disable-next-line:strict-type-predicates\n function (u) { return typeof u === 'function'; }, function (u, c) { return (_this.is(u) ? exports.success(u) : exports.failure(u, c)); }, exports.identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'FunctionType';\n return _this;\n }\n return FunctionType;\n}(Type));\nexports.FunctionType = FunctionType;\n/**\n * @category deprecated\n * @since 1.0.0\n * @deprecated\n */\n// tslint:disable-next-line: deprecation\nexports.Function = new FunctionType();\n/**\n * @since 1.0.0\n */\nvar RefinementType = /** @class */ (function (_super) {\n __extends(RefinementType, _super);\n function RefinementType(name, is, validate, encode, type, predicate) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.type = type;\n _this.predicate = predicate;\n /**\n * @since 1.0.0\n */\n _this._tag = 'RefinementType';\n return _this;\n }\n return RefinementType;\n}(Type));\nexports.RefinementType = RefinementType;\n// -------------------------------------------------------------------------------------\n// combinators\n// -------------------------------------------------------------------------------------\n/**\n * @category Combinators\n * @since 1.8.1\n */\nexports.brand = function (codec, predicate, name) {\n // tslint:disable-next-line: deprecation\n return refinement(codec, predicate, name);\n};\n/**\n * A branded codec representing an integer\n *\n * @category Primitives\n * @since 1.8.1\n */\nexports.Int = exports.brand(exports.number, function (n) { return Number.isInteger(n); }, 'Int');\n/**\n * @since 1.0.0\n */\nvar LiteralType = /** @class */ (function (_super) {\n __extends(LiteralType, _super);\n function LiteralType(name, is, validate, encode, value) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.value = value;\n /**\n * @since 1.0.0\n */\n _this._tag = 'LiteralType';\n return _this;\n }\n return LiteralType;\n}(Type));\nexports.LiteralType = LiteralType;\n/**\n * @category Combinators\n * @since 1.0.0\n */\nexports.literal = function (value, name) {\n if (name === void 0) { name = JSON.stringify(value); }\n var is = function (u) { return u === value; };\n return new LiteralType(name, is, function (u, c) { return (is(u) ? exports.success(value) : exports.failure(u, c)); }, exports.identity, value);\n};\n/**\n * @since 1.0.0\n */\nvar KeyofType = /** @class */ (function (_super) {\n __extends(KeyofType, _super);\n function KeyofType(name, is, validate, encode, keys) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.keys = keys;\n /**\n * @since 1.0.0\n */\n _this._tag = 'KeyofType';\n return _this;\n }\n return KeyofType;\n}(Type));\nexports.KeyofType = KeyofType;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n/**\n * @category Combinators\n * @since 1.0.0\n */\nexports.keyof = function (keys, name) {\n if (name === void 0) { name = Object.keys(keys)\n .map(function (k) { return JSON.stringify(k); })\n .join(' | '); }\n var is = function (u) { return exports.string.is(u) && hasOwnProperty.call(keys, u); };\n return new KeyofType(name, is, function (u, c) { return (is(u) ? exports.success(u) : exports.failure(u, c)); }, exports.identity, keys);\n};\n/**\n * @since 1.0.0\n */\nvar RecursiveType = /** @class */ (function (_super) {\n __extends(RecursiveType, _super);\n function RecursiveType(name, is, validate, encode, runDefinition) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.runDefinition = runDefinition;\n /**\n * @since 1.0.0\n */\n _this._tag = 'RecursiveType';\n return _this;\n }\n return RecursiveType;\n}(Type));\nexports.RecursiveType = RecursiveType;\nObject.defineProperty(RecursiveType.prototype, 'type', {\n get: function () {\n return this.runDefinition();\n },\n enumerable: true,\n configurable: true\n});\n/**\n * @category Combinators\n * @since 1.0.0\n */\nexports.recursion = function (name, definition) {\n var cache;\n var runDefinition = function () {\n if (!cache) {\n cache = definition(Self);\n cache.name = name;\n }\n return cache;\n };\n var Self = new RecursiveType(name, function (u) { return runDefinition().is(u); }, function (u, c) { return runDefinition().validate(u, c); }, function (a) { return runDefinition().encode(a); }, runDefinition);\n return Self;\n};\n/**\n * @since 1.0.0\n */\nvar ArrayType = /** @class */ (function (_super) {\n __extends(ArrayType, _super);\n function ArrayType(name, is, validate, encode, type) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.type = type;\n /**\n * @since 1.0.0\n */\n _this._tag = 'ArrayType';\n return _this;\n }\n return ArrayType;\n}(Type));\nexports.ArrayType = ArrayType;\n/**\n * @category Combinators\n * @since 1.0.0\n */\nexports.array = function (item, name) {\n if (name === void 0) { name = \"Array<\" + item.name + \">\"; }\n return new ArrayType(name, function (u) { return exports.UnknownArray.is(u) && u.every(item.is); }, function (u, c) {\n var e = exports.UnknownArray.validate(u, c);\n if (Either_1.isLeft(e)) {\n return e;\n }\n var us = e.right;\n var len = us.length;\n var as = us;\n var errors = [];\n for (var i = 0; i < len; i++) {\n var ui = us[i];\n var result = item.validate(ui, exports.appendContext(c, String(i), item, ui));\n if (Either_1.isLeft(result)) {\n pushAll(errors, result.left);\n }\n else {\n var ai = result.right;\n if (ai !== ui) {\n if (as === us) {\n as = us.slice();\n }\n as[i] = ai;\n }\n }\n }\n return errors.length > 0 ? exports.failures(errors) : exports.success(as);\n }, item.encode === exports.identity ? exports.identity : function (a) { return a.map(item.encode); }, item);\n};\n/**\n * @since 1.0.0\n */\nvar InterfaceType = /** @class */ (function (_super) {\n __extends(InterfaceType, _super);\n function InterfaceType(name, is, validate, encode, props) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.props = props;\n /**\n * @since 1.0.0\n */\n _this._tag = 'InterfaceType';\n return _this;\n }\n return InterfaceType;\n}(Type));\nexports.InterfaceType = InterfaceType;\nvar getNameFromProps = function (props) {\n return Object.keys(props)\n .map(function (k) { return k + \": \" + props[k].name; })\n .join(', ');\n};\nvar useIdentity = function (codecs) {\n for (var i = 0; i < codecs.length; i++) {\n if (codecs[i].encode !== exports.identity) {\n return false;\n }\n }\n return true;\n};\nvar getInterfaceTypeName = function (props) {\n return \"{ \" + getNameFromProps(props) + \" }\";\n};\n/**\n * @category Combinators\n * @since 1.0.0\n */\nexports.type = function (props, name) {\n if (name === void 0) { name = getInterfaceTypeName(props); }\n var keys = Object.keys(props);\n var types = keys.map(function (key) { return props[key]; });\n var len = keys.length;\n return new InterfaceType(name, function (u) {\n if (exports.UnknownRecord.is(u)) {\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var uk = u[k];\n if ((uk === undefined && !hasOwnProperty.call(u, k)) || !types[i].is(uk)) {\n return false;\n }\n }\n return true;\n }\n return false;\n }, function (u, c) {\n var e = exports.UnknownRecord.validate(u, c);\n if (Either_1.isLeft(e)) {\n return e;\n }\n var o = e.right;\n var a = o;\n var errors = [];\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var ak = a[k];\n var type_1 = types[i];\n var result = type_1.validate(ak, exports.appendContext(c, k, type_1, ak));\n if (Either_1.isLeft(result)) {\n pushAll(errors, result.left);\n }\n else {\n var vak = result.right;\n if (vak !== ak || (vak === undefined && !hasOwnProperty.call(a, k))) {\n /* istanbul ignore next */\n if (a === o) {\n a = __assign({}, o);\n }\n a[k] = vak;\n }\n }\n }\n return errors.length > 0 ? exports.failures(errors) : exports.success(a);\n }, useIdentity(types)\n ? exports.identity\n : function (a) {\n var s = __assign({}, a);\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var encode = types[i].encode;\n if (encode !== exports.identity) {\n s[k] = encode(a[k]);\n }\n }\n return s;\n }, props);\n};\nexports.interface = exports.type;\n/**\n * @since 1.0.0\n */\nvar PartialType = /** @class */ (function (_super) {\n __extends(PartialType, _super);\n function PartialType(name, is, validate, encode, props) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.props = props;\n /**\n * @since 1.0.0\n */\n _this._tag = 'PartialType';\n return _this;\n }\n return PartialType;\n}(Type));\nexports.PartialType = PartialType;\nvar getPartialTypeName = function (inner) {\n return \"Partial<\" + inner + \">\";\n};\n/**\n * @category Combinators\n * @since 1.0.0\n */\nexports.partial = function (props, name) {\n if (name === void 0) { name = getPartialTypeName(getInterfaceTypeName(props)); }\n var keys = Object.keys(props);\n var types = keys.map(function (key) { return props[key]; });\n var len = keys.length;\n return new PartialType(name, function (u) {\n if (exports.UnknownRecord.is(u)) {\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var uk = u[k];\n if (uk !== undefined && !props[k].is(uk)) {\n return false;\n }\n }\n return true;\n }\n return false;\n }, function (u, c) {\n var e = exports.UnknownRecord.validate(u, c);\n if (Either_1.isLeft(e)) {\n return e;\n }\n var o = e.right;\n var a = o;\n var errors = [];\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var ak = a[k];\n var type_2 = props[k];\n var result = type_2.validate(ak, exports.appendContext(c, k, type_2, ak));\n if (Either_1.isLeft(result)) {\n if (ak !== undefined) {\n pushAll(errors, result.left);\n }\n }\n else {\n var vak = result.right;\n if (vak !== ak) {\n /* istanbul ignore next */\n if (a === o) {\n a = __assign({}, o);\n }\n a[k] = vak;\n }\n }\n }\n return errors.length > 0 ? exports.failures(errors) : exports.success(a);\n }, useIdentity(types)\n ? exports.identity\n : function (a) {\n var s = __assign({}, a);\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var ak = a[k];\n if (ak !== undefined) {\n s[k] = types[i].encode(ak);\n }\n }\n return s;\n }, props);\n};\n/**\n * @since 1.0.0\n */\nvar DictionaryType = /** @class */ (function (_super) {\n __extends(DictionaryType, _super);\n function DictionaryType(name, is, validate, encode, domain, codomain) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.domain = domain;\n _this.codomain = codomain;\n /**\n * @since 1.0.0\n */\n _this._tag = 'DictionaryType';\n return _this;\n }\n return DictionaryType;\n}(Type));\nexports.DictionaryType = DictionaryType;\nfunction enumerableRecord(keys, domain, codomain, name) {\n if (name === void 0) { name = \"{ [K in \" + domain.name + \"]: \" + codomain.name + \" }\"; }\n var len = keys.length;\n return new DictionaryType(name, function (u) { return exports.UnknownRecord.is(u) && keys.every(function (k) { return codomain.is(u[k]); }); }, function (u, c) {\n var e = exports.UnknownRecord.validate(u, c);\n if (Either_1.isLeft(e)) {\n return e;\n }\n var o = e.right;\n var a = {};\n var errors = [];\n var changed = false;\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var ok = o[k];\n var codomainResult = codomain.validate(ok, exports.appendContext(c, k, codomain, ok));\n if (Either_1.isLeft(codomainResult)) {\n pushAll(errors, codomainResult.left);\n }\n else {\n var vok = codomainResult.right;\n changed = changed || vok !== ok;\n a[k] = vok;\n }\n }\n return errors.length > 0 ? exports.failures(errors) : exports.success((changed || Object.keys(o).length !== len ? a : o));\n }, codomain.encode === exports.identity\n ? exports.identity\n : function (a) {\n var s = {};\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n s[k] = codomain.encode(a[k]);\n }\n return s;\n }, domain, codomain);\n}\n/**\n * @internal\n */\nfunction getDomainKeys(domain) {\n var _a;\n if (isLiteralC(domain)) {\n var literal_1 = domain.value;\n if (exports.string.is(literal_1)) {\n return _a = {}, _a[literal_1] = null, _a;\n }\n }\n else if (isKeyofC(domain)) {\n return domain.keys;\n }\n else if (isUnionC(domain)) {\n var keys = domain.types.map(function (type) { return getDomainKeys(type); });\n return keys.some(undefinedType.is) ? undefined : Object.assign.apply(Object, __spreadArrays([{}], keys));\n }\n return undefined;\n}\nexports.getDomainKeys = getDomainKeys;\nfunction nonEnumerableRecord(domain, codomain, name) {\n if (name === void 0) { name = \"{ [K in \" + domain.name + \"]: \" + codomain.name + \" }\"; }\n return new DictionaryType(name, function (u) {\n if (exports.UnknownRecord.is(u)) {\n return Object.keys(u).every(function (k) { return domain.is(k) && codomain.is(u[k]); });\n }\n return isAnyC(codomain) && Array.isArray(u);\n }, function (u, c) {\n if (exports.UnknownRecord.is(u)) {\n var a = {};\n var errors = [];\n var keys = Object.keys(u);\n var len = keys.length;\n var changed = false;\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n var ok = u[k];\n var domainResult = domain.validate(k, exports.appendContext(c, k, domain, k));\n if (Either_1.isLeft(domainResult)) {\n pushAll(errors, domainResult.left);\n }\n else {\n var vk = domainResult.right;\n changed = changed || vk !== k;\n k = vk;\n var codomainResult = codomain.validate(ok, exports.appendContext(c, k, codomain, ok));\n if (Either_1.isLeft(codomainResult)) {\n pushAll(errors, codomainResult.left);\n }\n else {\n var vok = codomainResult.right;\n changed = changed || vok !== ok;\n a[k] = vok;\n }\n }\n }\n return errors.length > 0 ? exports.failures(errors) : exports.success((changed ? a : u));\n }\n if (isAnyC(codomain) && Array.isArray(u)) {\n return exports.success(u);\n }\n return exports.failure(u, c);\n }, domain.encode === exports.identity && codomain.encode === exports.identity\n ? exports.identity\n : function (a) {\n var s = {};\n var keys = Object.keys(a);\n var len = keys.length;\n for (var i = 0; i < len; i++) {\n var k = keys[i];\n s[String(domain.encode(k))] = codomain.encode(a[k]);\n }\n return s;\n }, domain, codomain);\n}\n/**\n * @category Combinators\n * @since 1.7.1\n */\nfunction record(domain, codomain, name) {\n var keys = getDomainKeys(domain);\n return keys\n ? enumerableRecord(Object.keys(keys), domain, codomain, name)\n : nonEnumerableRecord(domain, codomain, name);\n}\nexports.record = record;\n/**\n * @since 1.0.0\n */\nvar UnionType = /** @class */ (function (_super) {\n __extends(UnionType, _super);\n function UnionType(name, is, validate, encode, types) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.types = types;\n /**\n * @since 1.0.0\n */\n _this._tag = 'UnionType';\n return _this;\n }\n return UnionType;\n}(Type));\nexports.UnionType = UnionType;\nvar getUnionName = function (codecs) {\n return '(' + codecs.map(function (type) { return type.name; }).join(' | ') + ')';\n};\n/**\n * @category Combinators\n * @since 1.0.0\n */\nexports.union = function (codecs, name) {\n if (name === void 0) { name = getUnionName(codecs); }\n var index = getIndex(codecs);\n if (index !== undefined && codecs.length > 0) {\n var tag_1 = index[0], groups_1 = index[1];\n var len_1 = groups_1.length;\n var find_1 = function (value) {\n for (var i = 0; i < len_1; i++) {\n if (groups_1[i].indexOf(value) !== -1) {\n return i;\n }\n }\n return undefined;\n };\n // tslint:disable-next-line: deprecation\n return new TaggedUnionType(name, function (u) {\n if (exports.UnknownRecord.is(u)) {\n var i = find_1(u[tag_1]);\n return i !== undefined ? codecs[i].is(u) : false;\n }\n return false;\n }, function (u, c) {\n var e = exports.UnknownRecord.validate(u, c);\n if (Either_1.isLeft(e)) {\n return e;\n }\n var r = e.right;\n var i = find_1(r[tag_1]);\n if (i === undefined) {\n return exports.failure(u, c);\n }\n var codec = codecs[i];\n return codec.validate(r, exports.appendContext(c, String(i), codec, r));\n }, useIdentity(codecs)\n ? exports.identity\n : function (a) {\n var i = find_1(a[tag_1]);\n if (i === undefined) {\n // https://github.com/gcanti/io-ts/pull/305\n throw new Error(\"no codec found to encode value in union codec \" + name);\n }\n else {\n return codecs[i].encode(a);\n }\n }, codecs, tag_1);\n }\n else {\n return new UnionType(name, function (u) { return codecs.some(function (type) { return type.is(u); }); }, function (u, c) {\n var errors = [];\n for (var i = 0; i < codecs.length; i++) {\n var codec = codecs[i];\n var result = codec.validate(u, exports.appendContext(c, String(i), codec, u));\n if (Either_1.isLeft(result)) {\n pushAll(errors, result.left);\n }\n else {\n return exports.success(result.right);\n }\n }\n return exports.failures(errors);\n }, useIdentity(codecs)\n ? exports.identity\n : function (a) {\n for (var _i = 0, codecs_1 = codecs; _i < codecs_1.length; _i++) {\n var codec = codecs_1[_i];\n if (codec.is(a)) {\n return codec.encode(a);\n }\n }\n // https://github.com/gcanti/io-ts/pull/305\n throw new Error(\"no codec found to encode value in union type \" + name);\n }, codecs);\n }\n};\n/**\n * @since 1.0.0\n */\nvar IntersectionType = /** @class */ (function (_super) {\n __extends(IntersectionType, _super);\n function IntersectionType(name, is, validate, encode, types) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.types = types;\n /**\n * @since 1.0.0\n */\n _this._tag = 'IntersectionType';\n return _this;\n }\n return IntersectionType;\n}(Type));\nexports.IntersectionType = IntersectionType;\n/**\n * @internal\n */\nexports.mergeAll = function (base, us) {\n var equal = true;\n var primitive = true;\n var baseIsNotADictionary = !exports.UnknownRecord.is(base);\n for (var _i = 0, us_1 = us; _i < us_1.length; _i++) {\n var u = us_1[_i];\n if (u !== base) {\n equal = false;\n }\n if (exports.UnknownRecord.is(u)) {\n primitive = false;\n }\n }\n if (equal) {\n return base;\n }\n else if (primitive) {\n return us[us.length - 1];\n }\n var r = {};\n for (var _a = 0, us_2 = us; _a < us_2.length; _a++) {\n var u = us_2[_a];\n for (var k in u) {\n if (!r.hasOwnProperty(k) || baseIsNotADictionary || u[k] !== base[k]) {\n r[k] = u[k];\n }\n }\n }\n return r;\n};\nfunction intersection(codecs, name) {\n if (name === void 0) { name = \"(\" + codecs.map(function (type) { return type.name; }).join(' & ') + \")\"; }\n var len = codecs.length;\n return new IntersectionType(name, function (u) { return codecs.every(function (type) { return type.is(u); }); }, codecs.length === 0\n ? exports.success\n : function (u, c) {\n var us = [];\n var errors = [];\n for (var i = 0; i < len; i++) {\n var codec = codecs[i];\n var result = codec.validate(u, exports.appendContext(c, String(i), codec, u));\n if (Either_1.isLeft(result)) {\n pushAll(errors, result.left);\n }\n else {\n us.push(result.right);\n }\n }\n return errors.length > 0 ? exports.failures(errors) : exports.success(exports.mergeAll(u, us));\n }, codecs.length === 0\n ? exports.identity\n : function (a) {\n return exports.mergeAll(a, codecs.map(function (codec) { return codec.encode(a); }));\n }, codecs);\n}\nexports.intersection = intersection;\n/**\n * @since 1.0.0\n */\nvar TupleType = /** @class */ (function (_super) {\n __extends(TupleType, _super);\n function TupleType(name, is, validate, encode, types) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.types = types;\n /**\n * @since 1.0.0\n */\n _this._tag = 'TupleType';\n return _this;\n }\n return TupleType;\n}(Type));\nexports.TupleType = TupleType;\nfunction tuple(codecs, name) {\n if (name === void 0) { name = \"[\" + codecs.map(function (type) { return type.name; }).join(', ') + \"]\"; }\n var len = codecs.length;\n return new TupleType(name, function (u) { return exports.UnknownArray.is(u) && u.length === len && codecs.every(function (type, i) { return type.is(u[i]); }); }, function (u, c) {\n var e = exports.UnknownArray.validate(u, c);\n if (Either_1.isLeft(e)) {\n return e;\n }\n var us = e.right;\n var as = us.length > len ? us.slice(0, len) : us; // strip additional components\n var errors = [];\n for (var i = 0; i < len; i++) {\n var a = us[i];\n var type_3 = codecs[i];\n var result = type_3.validate(a, exports.appendContext(c, String(i), type_3, a));\n if (Either_1.isLeft(result)) {\n pushAll(errors, result.left);\n }\n else {\n var va = result.right;\n if (va !== a) {\n /* istanbul ignore next */\n if (as === us) {\n as = us.slice();\n }\n as[i] = va;\n }\n }\n }\n return errors.length > 0 ? exports.failures(errors) : exports.success(as);\n }, useIdentity(codecs) ? exports.identity : function (a) { return codecs.map(function (type, i) { return type.encode(a[i]); }); }, codecs);\n}\nexports.tuple = tuple;\n/**\n * @since 1.0.0\n */\nvar ReadonlyType = /** @class */ (function (_super) {\n __extends(ReadonlyType, _super);\n function ReadonlyType(name, is, validate, encode, type) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.type = type;\n /**\n * @since 1.0.0\n */\n _this._tag = 'ReadonlyType';\n return _this;\n }\n return ReadonlyType;\n}(Type));\nexports.ReadonlyType = ReadonlyType;\n/**\n * @category Combinators\n * @since 1.0.0\n */\nexports.readonly = function (codec, name) {\n if (name === void 0) { name = \"Readonly<\" + codec.name + \">\"; }\n return new ReadonlyType(name, codec.is, codec.validate, codec.encode, codec);\n};\n/**\n * @since 1.0.0\n */\nvar ReadonlyArrayType = /** @class */ (function (_super) {\n __extends(ReadonlyArrayType, _super);\n function ReadonlyArrayType(name, is, validate, encode, type) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.type = type;\n /**\n * @since 1.0.0\n */\n _this._tag = 'ReadonlyArrayType';\n return _this;\n }\n return ReadonlyArrayType;\n}(Type));\nexports.ReadonlyArrayType = ReadonlyArrayType;\n/**\n * @category Combinators\n * @since 1.0.0\n */\nexports.readonlyArray = function (item, name) {\n if (name === void 0) { name = \"ReadonlyArray<\" + item.name + \">\"; }\n var codec = exports.array(item);\n return new ReadonlyArrayType(name, codec.is, codec.validate, codec.encode, item);\n};\n/**\n * Strips additional properties\n *\n * @category Combinators\n * @since 1.0.0\n */\nexports.strict = function (props, name) {\n return exports.exact(exports.type(props), name);\n};\n/**\n * @category deprecated\n * @since 1.3.0\n * @deprecated\n */\nvar TaggedUnionType = /** @class */ (function (_super) {\n __extends(TaggedUnionType, _super);\n function TaggedUnionType(name, \n // tslint:disable-next-line: deprecation\n is, \n // tslint:disable-next-line: deprecation\n validate, \n // tslint:disable-next-line: deprecation\n encode, codecs, tag) {\n var _this = _super.call(this, name, is, validate, encode, codecs) /* istanbul ignore next */ // <= workaround for https://github.com/Microsoft/TypeScript/issues/13455\n || this;\n _this.tag = tag;\n return _this;\n }\n return TaggedUnionType;\n}(UnionType));\nexports.TaggedUnionType = TaggedUnionType;\n/**\n * Use `union` instead\n *\n * @category deprecated\n * @since 1.3.0\n * @deprecated\n */\nexports.taggedUnion = function (tag, codecs, name\n// tslint:disable-next-line: deprecation\n) {\n if (name === void 0) { name = getUnionName(codecs); }\n var U = exports.union(codecs, name);\n // tslint:disable-next-line: deprecation\n if (U instanceof TaggedUnionType) {\n return U;\n }\n else {\n console.warn(\"[io-ts] Cannot build a tagged union for \" + name + \", returning a de-optimized union\");\n // tslint:disable-next-line: deprecation\n return new TaggedUnionType(name, U.is, U.validate, U.encode, codecs, tag);\n }\n};\n/**\n * @since 1.1.0\n */\nvar ExactType = /** @class */ (function (_super) {\n __extends(ExactType, _super);\n function ExactType(name, is, validate, encode, type) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.type = type;\n /**\n * @since 1.0.0\n */\n _this._tag = 'ExactType';\n return _this;\n }\n return ExactType;\n}(Type));\nexports.ExactType = ExactType;\nvar getProps = function (codec) {\n switch (codec._tag) {\n case 'RefinementType':\n case 'ReadonlyType':\n return getProps(codec.type);\n case 'InterfaceType':\n case 'StrictType':\n case 'PartialType':\n return codec.props;\n case 'IntersectionType':\n return codec.types.reduce(function (props, type) { return Object.assign(props, getProps(type)); }, {});\n }\n};\nvar stripKeys = function (o, props) {\n var keys = Object.getOwnPropertyNames(o);\n var shouldStrip = false;\n var r = {};\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwnProperty.call(props, key)) {\n shouldStrip = true;\n }\n else {\n r[key] = o[key];\n }\n }\n return shouldStrip ? r : o;\n};\nvar getExactTypeName = function (codec) {\n if (isTypeC(codec)) {\n return \"{| \" + getNameFromProps(codec.props) + \" |}\";\n }\n else if (isPartialC(codec)) {\n return getPartialTypeName(\"{| \" + getNameFromProps(codec.props) + \" |}\");\n }\n return \"Exact<\" + codec.name + \">\";\n};\n/**\n * Strips additional properties\n * @since 1.1.0\n */\nexports.exact = function (codec, name) {\n if (name === void 0) { name = getExactTypeName(codec); }\n var props = getProps(codec);\n return new ExactType(name, codec.is, function (u, c) {\n var e = exports.UnknownRecord.validate(u, c);\n if (Either_1.isLeft(e)) {\n return e;\n }\n var ce = codec.validate(u, c);\n if (Either_1.isLeft(ce)) {\n return ce;\n }\n return Either_1.right(stripKeys(ce.right, props));\n }, function (a) { return codec.encode(stripKeys(a, props)); }, codec);\n};\n/**\n * @category deprecated\n * @since 1.0.0\n * @deprecated\n */\nexports.getValidationError /* istanbul ignore next */ = function (value, context) { return ({\n value: value,\n context: context\n}); };\n/**\n * @category deprecated\n * @since 1.0.0\n * @deprecated\n */\nexports.getDefaultContext /* istanbul ignore next */ = function (decoder) { return [\n { key: '', type: decoder }\n]; };\n/**\n * @category deprecated\n * @since 1.0.0\n * @deprecated\n */\nvar NeverType = /** @class */ (function (_super) {\n __extends(NeverType, _super);\n function NeverType() {\n var _this = _super.call(this, 'never', function (_) { return false; }, function (u, c) { return exports.failure(u, c); }, \n /* istanbul ignore next */\n function () {\n throw new Error('cannot encode never');\n }) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'NeverType';\n return _this;\n }\n return NeverType;\n}(Type));\nexports.NeverType = NeverType;\n/**\n * @category deprecated\n * @since 1.0.0\n * @deprecated\n */\n// tslint:disable-next-line: deprecation\nexports.never = new NeverType();\n/**\n * @category deprecated\n * @since 1.0.0\n * @deprecated\n */\nvar AnyType = /** @class */ (function (_super) {\n __extends(AnyType, _super);\n function AnyType() {\n var _this = _super.call(this, 'any', function (_) { return true; }, exports.success, exports.identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'AnyType';\n return _this;\n }\n return AnyType;\n}(Type));\nexports.AnyType = AnyType;\n/**\n * Use `unknown` instead\n *\n * @category deprecated\n * @since 1.0.0\n * @deprecated\n */\n// tslint:disable-next-line: deprecation\nexports.any = new AnyType();\n/**\n * Use `UnknownRecord` instead\n *\n * @category deprecated\n * @since 1.0.0\n * @deprecated\n */\nexports.Dictionary = exports.UnknownRecord;\n/**\n * @category deprecated\n * @since 1.0.0\n * @deprecated\n */\nvar ObjectType = /** @class */ (function (_super) {\n __extends(ObjectType, _super);\n function ObjectType() {\n var _this = _super.call(this, 'object', function (u) { return u !== null && typeof u === 'object'; }, function (u, c) { return (_this.is(u) ? exports.success(u) : exports.failure(u, c)); }, exports.identity) || this;\n /**\n * @since 1.0.0\n */\n _this._tag = 'ObjectType';\n return _this;\n }\n return ObjectType;\n}(Type));\nexports.ObjectType = ObjectType;\n/**\n * Use `UnknownRecord` instead\n *\n * @category deprecated\n * @since 1.0.0\n * @deprecated\n */\n// tslint:disable-next-line: deprecation\nexports.object = new ObjectType();\n/**\n * Use `brand` instead\n *\n * @category deprecated\n * @since 1.0.0\n * @deprecated\n */\nfunction refinement(codec, predicate, name) {\n if (name === void 0) { name = \"(\" + codec.name + \" | \" + exports.getFunctionName(predicate) + \")\"; }\n return new RefinementType(name, function (u) { return codec.is(u) && predicate(u); }, function (i, c) {\n var e = codec.validate(i, c);\n if (Either_1.isLeft(e)) {\n return e;\n }\n var a = e.right;\n return predicate(a) ? exports.success(a) : exports.failure(a, c);\n }, codec.encode, codec, predicate);\n}\nexports.refinement = refinement;\n/**\n * Use `Int` instead\n *\n * @category deprecated\n * @since 1.0.0\n * @deprecated\n */\n// tslint:disable-next-line: deprecation\nexports.Integer = refinement(exports.number, Number.isInteger, 'Integer');\n/**\n * Use `record` instead\n *\n * @category deprecated\n * @since 1.0.0\n * @deprecated\n */\nexports.dictionary = record;\n/**\n * @category deprecated\n * @since 1.0.0\n * @deprecated\n */\nvar StrictType = /** @class */ (function (_super) {\n __extends(StrictType, _super);\n function StrictType(name, \n // tslint:disable-next-line: deprecation\n is, \n // tslint:disable-next-line: deprecation\n validate, \n // tslint:disable-next-line: deprecation\n encode, props) {\n var _this = _super.call(this, name, is, validate, encode) || this;\n _this.props = props;\n /**\n * @since 1.0.0\n */\n _this._tag = 'StrictType';\n return _this;\n }\n return StrictType;\n}(Type));\nexports.StrictType = StrictType;\n/**\n * Drops the codec \"kind\"\n *\n * @category deprecated\n * @since 1.1.0\n * @deprecated\n */\nfunction clean(codec) {\n return codec;\n}\nexports.clean = clean;\nfunction alias(codec) {\n return function () { return codec; };\n}\nexports.alias = alias;\nvar isNonEmpty = function (as) { return as.length > 0; };\n/**\n * @internal\n */\nexports.emptyTags = {};\nfunction intersect(a, b) {\n var r = [];\n for (var _i = 0, a_1 = a; _i < a_1.length; _i++) {\n var v = a_1[_i];\n if (b.indexOf(v) !== -1) {\n r.push(v);\n }\n }\n return r;\n}\nfunction mergeTags(a, b) {\n if (a === exports.emptyTags) {\n return b;\n }\n if (b === exports.emptyTags) {\n return a;\n }\n var r = Object.assign({}, a);\n for (var k in b) {\n if (a.hasOwnProperty(k)) {\n var intersection_1 = intersect(a[k], b[k]);\n if (isNonEmpty(intersection_1)) {\n r[k] = intersection_1;\n }\n else {\n r = exports.emptyTags;\n break;\n }\n }\n else {\n r[k] = b[k];\n }\n }\n return r;\n}\nfunction intersectTags(a, b) {\n if (a === exports.emptyTags || b === exports.emptyTags) {\n return exports.emptyTags;\n }\n var r = exports.emptyTags;\n for (var k in a) {\n if (b.hasOwnProperty(k)) {\n var intersection_2 = intersect(a[k], b[k]);\n if (intersection_2.length === 0) {\n if (r === exports.emptyTags) {\n r = {};\n }\n r[k] = a[k].concat(b[k]);\n }\n }\n }\n return r;\n}\n// tslint:disable-next-line: deprecation\nfunction isAnyC(codec) {\n return codec._tag === 'AnyType';\n}\nfunction isLiteralC(codec) {\n return codec._tag === 'LiteralType';\n}\nfunction isKeyofC(codec) {\n return codec._tag === 'KeyofType';\n}\nfunction isTypeC(codec) {\n return codec._tag === 'InterfaceType';\n}\nfunction isPartialC(codec) {\n return codec._tag === 'PartialType';\n}\n// tslint:disable-next-line: deprecation\nfunction isStrictC(codec) {\n return codec._tag === 'StrictType';\n}\nfunction isExactC(codec) {\n return codec._tag === 'ExactType';\n}\n// tslint:disable-next-line: deprecation\nfunction isRefinementC(codec) {\n return codec._tag === 'RefinementType';\n}\nfunction isIntersectionC(codec) {\n return codec._tag === 'IntersectionType';\n}\nfunction isUnionC(codec) {\n return codec._tag === 'UnionType';\n}\nfunction isRecursiveC(codec) {\n return codec._tag === 'RecursiveType';\n}\nvar lazyCodecs = [];\n/**\n * @internal\n */\nfunction getTags(codec) {\n if (lazyCodecs.indexOf(codec) !== -1) {\n return exports.emptyTags;\n }\n if (isTypeC(codec) || isStrictC(codec)) {\n var index = exports.emptyTags;\n // tslint:disable-next-line: forin\n for (var k in codec.props) {\n var prop = codec.props[k];\n if (isLiteralC(prop)) {\n if (index === exports.emptyTags) {\n index = {};\n }\n index[k] = [prop.value];\n }\n }\n return index;\n }\n else if (isExactC(codec) || isRefinementC(codec)) {\n return getTags(codec.type);\n }\n else if (isIntersectionC(codec)) {\n return codec.types.reduce(function (tags, codec) { return mergeTags(tags, getTags(codec)); }, exports.emptyTags);\n }\n else if (isUnionC(codec)) {\n return codec.types.slice(1).reduce(function (tags, codec) { return intersectTags(tags, getTags(codec)); }, getTags(codec.types[0]));\n }\n else if (isRecursiveC(codec)) {\n lazyCodecs.push(codec);\n var tags = getTags(codec.type);\n lazyCodecs.pop();\n return tags;\n }\n return exports.emptyTags;\n}\nexports.getTags = getTags;\n/**\n * @internal\n */\nfunction getIndex(codecs) {\n var tags = getTags(codecs[0]);\n var keys = Object.keys(tags);\n var len = codecs.length;\n var _loop_1 = function (k) {\n var all = tags[k].slice();\n var index = [tags[k]];\n for (var i = 1; i < len; i++) {\n var codec = codecs[i];\n var ctags = getTags(codec);\n var values = ctags[k];\n // tslint:disable-next-line: strict-type-predicates\n if (values === undefined) {\n return \"continue-keys\";\n }\n else {\n if (values.some(function (v) { return all.indexOf(v) !== -1; })) {\n return \"continue-keys\";\n }\n else {\n all.push.apply(all, values);\n index.push(values);\n }\n }\n }\n return { value: [k, index] };\n };\n keys: for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var k = keys_1[_i];\n var state_1 = _loop_1(k);\n if (typeof state_1 === \"object\")\n return state_1.value;\n switch (state_1) {\n case \"continue-keys\": continue keys;\n }\n }\n return undefined;\n}\nexports.getIndex = getIndex;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.clone = void 0;\n/**\n * Returns a clone of the given codec\n *\n * @example\n * import { clone } from 'io-ts-types/lib/clone'\n * import * as t from 'io-ts'\n *\n * assert.deepStrictEqual(clone(t.string), t.string)\n *\n * @since 0.4.3\n */\nfunction clone(t) {\n var r = Object.create(Object.getPrototypeOf(t));\n Object.assign(r, t);\n return r;\n}\nexports.clone = clone;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setFromArray = void 0;\nvar Set_1 = require(\"fp-ts/lib/Set\");\nvar t = __importStar(require(\"io-ts\"));\nvar Either_1 = require(\"fp-ts/lib/Either\");\n/**\n * @since 0.5.0\n */\nfunction setFromArray(codec, O, name) {\n if (name === void 0) { name = \"Set<\" + codec.name + \">\"; }\n var arr = t.array(codec);\n var toArrayO = Set_1.toArray(O);\n var fromArrayO = Set_1.fromArray(O);\n return new t.Type(name, function (u) { return u instanceof Set && Set_1.every(codec.is)(u); }, function (u, c) {\n return Either_1.either.chain(arr.validate(u, c), function (as) {\n var set = fromArrayO(as);\n return set.size !== as.length ? t.failure(u, c) : t.success(set);\n });\n }, function (set) { return arr.encode(toArrayO(set)); });\n}\nexports.setFromArray = setFromArray;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DateFromISOString = void 0;\n/**\n * @since 0.5.0\n */\nvar t = __importStar(require(\"io-ts\"));\nvar Either_1 = require(\"fp-ts/lib/Either\");\n/**\n * @example\n * import { DateFromISOString } from 'io-ts-types/lib/DateFromISOString'\n * import { right } from 'fp-ts/lib/Either'\n *\n * const date = new Date(1973, 10, 30)\n * const input = date.toISOString()\n * assert.deepStrictEqual(DateFromISOString.decode(input), right(date))\n *\n * @since 0.5.0\n */\nexports.DateFromISOString = new t.Type('DateFromISOString', function (u) { return u instanceof Date; }, function (u, c) {\n return Either_1.either.chain(t.string.validate(u, c), function (s) {\n var d = new Date(s);\n return isNaN(d.getTime()) ? t.failure(u, c) : t.success(d);\n });\n}, function (a) { return a.toISOString(); });\n","import { __extends } from \"tslib\";\nexport var ErrorCode;\n(function (ErrorCode) {\n // When we have a placeholder but no value to format\n ErrorCode[\"MISSING_VALUE\"] = \"MISSING_VALUE\";\n // When value supplied is invalid\n ErrorCode[\"INVALID_VALUE\"] = \"INVALID_VALUE\";\n // When we need specific Intl API but it's not available\n ErrorCode[\"MISSING_INTL_API\"] = \"MISSING_INTL_API\";\n})(ErrorCode || (ErrorCode = {}));\nvar FormatError = /** @class */ (function (_super) {\n __extends(FormatError, _super);\n function FormatError(msg, code, originalMessage) {\n var _this = _super.call(this, msg) || this;\n _this.code = code;\n _this.originalMessage = originalMessage;\n return _this;\n }\n FormatError.prototype.toString = function () {\n return \"[formatjs Error: \".concat(this.code, \"] \").concat(this.message);\n };\n return FormatError;\n}(Error));\nexport { FormatError };\nvar InvalidValueError = /** @class */ (function (_super) {\n __extends(InvalidValueError, _super);\n function InvalidValueError(variableId, value, options, originalMessage) {\n return _super.call(this, \"Invalid values for \\\"\".concat(variableId, \"\\\": \\\"\").concat(value, \"\\\". Options are \\\"\").concat(Object.keys(options).join('\", \"'), \"\\\"\"), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueError;\n}(FormatError));\nexport { InvalidValueError };\nvar InvalidValueTypeError = /** @class */ (function (_super) {\n __extends(InvalidValueTypeError, _super);\n function InvalidValueTypeError(value, type, originalMessage) {\n return _super.call(this, \"Value for \\\"\".concat(value, \"\\\" must be of type \").concat(type), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueTypeError;\n}(FormatError));\nexport { InvalidValueTypeError };\nvar MissingValueError = /** @class */ (function (_super) {\n __extends(MissingValueError, _super);\n function MissingValueError(variableId, originalMessage) {\n return _super.call(this, \"The intl string context variable \\\"\".concat(variableId, \"\\\" was not provided to the string \\\"\").concat(originalMessage, \"\\\"\"), ErrorCode.MISSING_VALUE, originalMessage) || this;\n }\n return MissingValueError;\n}(FormatError));\nexport { MissingValueError };\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.option = void 0;\n/**\n * @since 0.5.0\n */\nvar t = __importStar(require(\"io-ts\"));\nvar None = t.strict({\n _tag: t.literal('None')\n});\nvar someLiteral = t.literal('Some');\n/**\n * @since 0.5.0\n */\nfunction option(codec, name) {\n if (name === void 0) { name = \"Option<\" + codec.name + \">\"; }\n return t.union([\n None,\n t.strict({\n _tag: someLiteral,\n value: codec\n }, \"Some<\" + codec.name + \">\")\n ], name);\n}\nexports.option = option;\n","/**\n * @since 0.4.5\n */\nimport * as t from 'io-ts';\n/**\n * A codec that succeeds if a string is not empty\n *\n * @example\n * import { NonEmptyString } from 'io-ts-types/es6/NonEmptyString'\n * import { right } from 'fp-ts/es6/Either'\n * import { PathReporter } from 'io-ts/es6/PathReporter'\n *\n * assert.deepStrictEqual(NonEmptyString.decode('a'), right('a'))\n * assert.deepStrictEqual(PathReporter.report(NonEmptyString.decode('')), ['Invalid value \"\" supplied to : NonEmptyString'])\n *\n * @since 0.4.5\n */\nexport var NonEmptyString = t.brand(t.string, function (s) { return s.length > 0; }, 'NonEmptyString');\n","/**\n * @since 0.5.0\n */\nimport { either } from 'fp-ts/es6/Either';\nimport { none, option, some, toNullable } from 'fp-ts/es6/Option';\nimport * as t from 'io-ts';\nimport { option as o } from './option';\n/**\n * @since 0.5.0\n */\nexport function optionFromNullable(codec, name) {\n if (name === void 0) { name = \"Option<\" + codec.name + \">\"; }\n return new t.Type(name, o(codec).is, function (u, c) { return (u == null ? t.success(none) : either.map(codec.validate(u, c), some)); }, function (a) { return toNullable(option.map(a, codec.encode)); });\n}\n","/**\n * @since 0.4.6\n */\nimport * as t from 'io-ts';\nvar regex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;\n/**\n * @example\n * import { UUID } from 'io-ts-types/es6/UUID'\n * import { right } from 'fp-ts/es6/Either'\n * import { PathReporter } from 'io-ts/es6/PathReporter'\n *\n * assert.deepStrictEqual(UUID.decode('00000000-0000-0000-0000-000000000000'), right('00000000-0000-0000-0000-000000000000'))\n * assert.deepStrictEqual(PathReporter.report(UUID.decode('not a uuid')), ['Invalid value \"not a uuid\" supplied to : UUID'])\n *\n * @since 0.4.6\n */\nexport var UUID = t.brand(t.string, function (s) { return regex.test(s); }, 'UUID');\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NonEmptyString = void 0;\n/**\n * @since 0.4.5\n */\nvar t = __importStar(require(\"io-ts\"));\n/**\n * A codec that succeeds if a string is not empty\n *\n * @example\n * import { NonEmptyString } from 'io-ts-types/lib/NonEmptyString'\n * import { right } from 'fp-ts/lib/Either'\n * import { PathReporter } from 'io-ts/lib/PathReporter'\n *\n * assert.deepStrictEqual(NonEmptyString.decode('a'), right('a'))\n * assert.deepStrictEqual(PathReporter.report(NonEmptyString.decode('')), ['Invalid value \"\" supplied to : NonEmptyString'])\n *\n * @since 0.4.5\n */\nexports.NonEmptyString = t.brand(t.string, function (s) { return s.length > 0; }, 'NonEmptyString');\n","/**\n * @since 0.5.0\n */\nimport * as t from 'io-ts';\nimport { fromArray } from 'fp-ts/es6/NonEmptyArray';\nimport { isNonEmpty } from 'fp-ts/es6/Array';\nimport { either } from 'fp-ts/es6/Either';\nimport { isNone } from 'fp-ts/es6/Option';\n/**\n * @since 0.5.0\n */\nexport function nonEmptyArray(codec, name) {\n if (name === void 0) { name = \"NonEmptyArray<\" + codec.name + \">\"; }\n var arr = t.array(codec);\n return new t.Type(name, function (u) { return arr.is(u) && isNonEmpty(u); }, function (u, c) {\n return either.chain(arr.validate(u, c), function (as) {\n var onea = fromArray(as);\n return isNone(onea) ? t.failure(u, c) : t.success(onea.value);\n });\n }, function (nea) { return arr.encode(nea); });\n}\n"],"sourceRoot":""}