{"version":3,"sources":["webpack:///./app/javascript/ats/src/components/shared/Button/index.js","webpack:///./node_modules/xstate/es/stateUtils.js","webpack:///./node_modules/react-google-recaptcha/node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/react-google-recaptcha/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/react-async-script/node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/react-async-script/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/query-string/index.js","webpack:///./app/javascript/ats/src/lib/utils/structure.js","webpack:///./app/javascript/shared/queryHooks/api.ts","webpack:///./node_modules/xstate/es/State.js","webpack:///./node_modules/xstate/es/_virtual/_tslib.js","webpack:///./node_modules/joi-browser/dist/joi-browser.js","webpack:///./node_modules/react-google-recaptcha/node_modules/prop-types/index.js","webpack:///./app/javascript/ats/src/components/shared/Icon/index.js","webpack:///./app/javascript/shared/queryHooks/jobBoard/useJobBoard.ts","webpack:///./app/javascript/job_board/src/components/QuestionResponse.tsx","webpack:///./app/javascript/job_board/src/views/ApplicationForm.tsx","webpack:///./app/javascript/job_board/src/views/ApplyApp.tsx","webpack:///./app/javascript/job_board/src/index.js","webpack:///./app/javascript/ats/src/lib/utils/fileUploads.ts","webpack:///./node_modules/xstate/es/constants.js","webpack:///./app/javascript/ats/styles/theme.ts","webpack:///./app/javascript/ats/src/components/forms/FormTextarea.tsx","webpack:///./app/javascript/shared/styles/colors.ts","webpack:///./app/javascript/shared/styles/theme.ts","webpack:///./app/javascript/ats/src/components/forms/FormUploader.tsx","webpack:///./node_modules/activestorage/app/assets/javascripts/activestorage.js","webpack:///./node_modules/xstate/es/actions.js","webpack:///./app/javascript/ats/src/components/forms/FormSelect/index.js","webpack:///./app/javascript/ats/src/components/forms/FormInput/index.js","webpack:///./app/javascript/shared/styles/lightTheme.ts","webpack:///./node_modules/xstate/es/StateNode.js","webpack:///./node_modules/xstate/es/Actor.js","webpack:///./node_modules/xstate/es/registry.js","webpack:///./app/javascript/ats/src/components/shared/LoadingIndicator/index.js","webpack:///./app/javascript/shared/logger.ts","webpack:///./node_modules/xstate/es/interpreter.js","webpack:///./node_modules/xstate/es/Machine.js","webpack:///./app/javascript/ats/src/lib/lookups.js","webpack:///./app/javascript/ats/src/components/forms/FormContainer/index.js","webpack:///./node_modules/lodash/isString.js","webpack:///./node_modules/strict-uri-encode/index.js","webpack:///./node_modules/decode-uri-component/index.js","webpack:///./node_modules/xstate/es/scheduler.js","webpack:///./app/javascript/ats/src/components/forms/FormLabel/index.js","webpack:///./node_modules/xstate/es/actionTypes.js","webpack:///./node_modules/xstate/es/types.js","webpack:///./app/javascript/shared/lib/formHelpers.ts","webpack:///./app/javascript/shared/lib/utils.js","webpack:///./node_modules/xstate/es/mapState.js","webpack:///./node_modules/xstate/es/match.js","webpack:///./node_modules/xstate/es/index.js","webpack:///./node_modules/xstate/es/utils.js","webpack:///./node_modules/@xstate/react/lib/index.js","webpack:///./node_modules/xstate/es/devTools.js","webpack:///./node_modules/react-async-script/node_modules/prop-types/index.js","webpack:///./node_modules/react-google-recaptcha/lib/esm/recaptcha.js","webpack:///./node_modules/react-async-script/lib/esm/async-script-loader.js","webpack:///./node_modules/react-google-recaptcha/lib/esm/recaptcha-wrapper.js","webpack:///./node_modules/react-google-recaptcha/lib/esm/index.js","webpack:///./node_modules/xstate/es/environment.js","webpack:///./node_modules/@xstate/react/lib/useActor.js","webpack:///./app/javascript/ats/src/components/shared/EmptyState.tsx"],"names":["Button","children","type","link","onClick","onMouseDown","disabled","loading","styleType","dangerous","isTracked","trackingPayload","props","eventName","handleClick","args","preventDefault","stopPropagation","target","innerText","error","console","handleOnMouseDown","event","getStyles","t","dark","typeStyles","getTypeStyles","css","text","medium","rounded","sm","buttonShape","h","base","px","mq","color","black","white","red","gray","to","theme","href","rel","Styled","Loader","data-testid","propTypes","PropTypes","any","isRequired","string","oneOfType","array","object","func","bool","form","defaultProps","size","loadingAnimation","keyframes","isLeafNode","stateNode","getChildren","states","map","key","getAllStateNodes","stateNodes","concat","getConfiguration","prevStateNodes","e_1","_a","e_2","_b","e_3","_c","e_4","_d","prevAdjList","getAdjList","Set","configuration","configuration_1","configuration_1_1","next","done","m","s","value","parent","has","add","e_1_1","call","adjList","configuration_2","configuration_2_1","get","length","_e","_f","child","forEach","sn","initialStateNodes","e_3_1","e_2_1","configuration_3","configuration_3_1","e_4_1","getValueFromAdj","baseNode","childStateNodes","childStateNode","stateValue","csn","e_5","Map","configuration_4","configuration_4_1","set","push","e_5_1","getValue","rootNode","iterable","item","Array","isArray","some","member","nextEvents","ownEvents","isInFinalState","every","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","module","exports","shim","propName","componentName","location","propFullName","secret","err","Error","name","getShim","ReactPropTypes","bigint","number","symbol","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","shape","exact","checkPropTypes","_slicedToArray","arr","i","_arrayWithHoles","Symbol","iterator","Object","_arr","_n","undefined","_s","_i","_iterableToArrayLimit","_unsupportedIterableToArray","TypeError","_nonIterableRest","_createForOfIteratorHelper","o","allowArrayLike","it","F","n","e","_e2","f","normalCompletion","didErr","step","_e3","minLen","_arrayLikeToArray","prototype","toString","slice","constructor","from","test","len","arr2","_typeof","obj","strictUriEncode","decodeComponent","encode","options","strict","encodeURIComponent","decode","keysSorter","input","sort","keys","a","b","Number","extract","queryStart","indexOf","parse","formatter","result","arrayFormat","accumulator","exec","replace","parserForArrayFormat","assign","ret","create","trim","_step","_iterator","split","_param$replace$split2","reduce","Boolean","stringify","index","join","encoderForArrayFormat","_step2","_iterator2","value2","filter","x","parseUrl","url","query","allKeysToCamel","modifyValues","simpleKeysToCamel","isPlainObject","newObject","camelCase","collection","newCollection","simpleCollectionToCamel","allKeysToSnake","simpleKeysToSnake","snakeCase","simpleCollectionToSnake","apiGet","async","path","requestPath","data","axios","headers","Accept","window","logger","apiPost","variables","skipKeysToSnake","apiMutate","method","apiPut","apiDelete","request","Rails","csrfToken","catch","errorObject","response","responseData","normalizedError","Promise","reject","stateValuesEqual","aKeys","bKeys","isState","state","bindActionToState","action","context","_event","State","config","this","actions","activities","meta","events","_sessionid","historyValue","history","matches","bind","toStrings","transitions","defineProperty","inert","delimiter","_this","valueKeys","apply","toJSON","parentStateValue","_assign","arguments","p","hasOwnProperty","__rest","getOwnPropertySymbols","propertyIsEnumerable","__values","__read","r","ar","__spread","factory","_typeof2","modules","installedModules","__webpack_require__","moduleId","l","c","d","getter","configurable","enumerable","__esModule","property","Buffer","process","Crypto","Path","Util","Escape","internals","clone","seen","lookup","newObj","cloneDeep","isBuffer","Date","getTime","RegExp","proto","getPrototypeOf","isImmutable","getOwnPropertyNames","descriptor","getOwnPropertyDescriptor","merge","source","isNullOverride","isMergeArrays","assert","applyToDefaults","defaults","copy","cloneWithShallow","storage","store","restore","reach","reachSet","ref","segment","applyToDefaultsWithShallow","deepEqual","part","found","j","_i2","_i3","unique","identifier","mapToObject","intersect","array1","array2","justFirst","common","hash","contain","values","valuePairs","compare","compareFlags","deep","hasOnly","hasPart","only","misses","pattern","_i4","escapeRegex","regex","$0","$1","_i5","matched","_i6","pos","_i7","once","flatten","chain","separator","functions","reachTemplate","template","formatStack","stack","trace","getFileName","getLineNumber","getColumnNumber","getFunctionName","isConstructor","formatTrace","display","row","callStack","v8","prepareStackTrace","_","capture","captureStackTrace","displayStack","abortThrow","abort","message","hideStack","env","NODE_ENV","log","exit","condition","_len","_key","msgs","arg","Bench","ts","reset","now","elapsed","hrtime","base64urlEncode","encoding","base64urlDecode","buf","escapeHeaderAttribute","attribute","escapeHtml","escapeJavaScript","escapeJson","_hoekOnce","wrapped","_len2","_key2","isInteger","isSafeInteger","ignore","inherits","format","transform","results","_i8","sourcePath","res","shift","uniqueFilename","extension","resolve","pid","randomBytes","_len3","_key3","JSON","shallow","wait","timeout","setTimeout","block","Hoek","settings","validationOptions","isContext","contextPrefix","depth","root","isJoi","isRef","_extends","_createClass","defineProperties","writable","Constructor","protoProps","staticProps","Ref","Errors","Alternatives","Cast","abortEarly","convert","allowUnknown","skipFunctions","stripUnknown","language","presence","strip","noDefaults","Any","_class","instance","_classCallCheck","_type","_settings","_valids","_invalids","_tests","_refs","_flags","_description","_unit","_notes","_tags","_examples","_meta","_inner","createError","flags","createOverrideError","checkOptions","validate","details","_currentJoi","concatSettings","_baseType","inners","schema","tmpObj","keysToRestore","isObject","_j","sourceKey","_test","_options","isStrict","raw","isRaw","allow","remove","valid","allowOnly","invalid","required","optional","forbidden","applyFunctionToChildren","fn","extraChildren","description","empty","when","then","otherwise","alternativeOptions","is","desc","notes","tags","example","_validate","errors","unit","_prepareEmptyValue","reference","originalValue","finish","finalValue","defaultValue","_try","change","reason","_coerce","coerced","insensitive","_base","valids","stripUndefined","Err","_validateWithOptions","callback","describe","_this2","flag","examples","v","invalids","rules","validator","hasRef","label","_getLabel","def","equal","disallow","not","exist","sKeys","global","base64","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","Uint8Array","__proto__","encodingOrOffset","allocUnsafe","ArrayBuffer","byteOffset","byteLength","fromArrayLike","fromArrayBuffer","isEncoding","actual","write","fromString","checked","buffer","val","fromObject","assertSize","isView","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","start","end","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","dir","isNaN","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","String","read","readUInt16BE","foundIndex","hexWrite","offset","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","str","byteArray","charCodeAt","asciiToBytes","latin1Write","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","fromByteArray","Math","min","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","foo","subarray","typedArraySupport","poolSize","_augment","species","fill","allocUnsafeSlow","_isBuffer","y","list","swap16","swap32","swap64","equals","inspect","max","match","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","out","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","floor","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","code","INVALID_BASE64_RE","Infinity","leadSurrogate","toByteArray","stringtrim","base64clean","src","dst","Joi","alternatives","date","id","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","run","marker","runClearTimeout","Item","noop","nextTick","title","browser","argv","version","versions","on","addListener","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","Language","annotations","wrapArrays","partial","localized","messages","childrenString","hasKey","skipKey","localizedKey","isSecure","normalized","override","processErrors","localErrors","itemMessage","_override","_object","annotate","safeStringify","spaces","serializer","cycleReplacer","thisPos","annotated","errorKeys","errorKey","missingKeys","missing","missingKey","stripColorCodes","redFgEscape","redBgEscape","endColor","seg","refAnnotations","cacheKey","replacers","$2","g","Function","eval","_defineProperty","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","setPrototypeOf","_defaults","Lazy","binary","applyDefaults","alt","_ref","last","count","compile","attempt","parts","lazy","joi","extend","extensions","extensionsSchema","_loop","extensionSchema","ctor","_ctor","_this3","coerce","baseRet","pre","_loop2","rule","ruleArgs","params","k","validateArgs","rArgs","setup","newSchema","arity","items","or","_set","refs","newSet","_Any","il","baseType","peek","schemas","cast","schemaCondition","isoString","invalidDate","isIsoDate","isoDate","toDate","timestamp","multiplier","parseFloat","iso","allowed","_isIsoDate","isNow","compareTo","Topo","renames","dependencies","patterns","safeParse","renamed","rename","isRegExp","targetKeys","matchedTargetKeys","allUndefined","ignoreUndefined","multiple","alias","unprocessed","stripProps","localState","unprocessedKeys","_localState","_item","_j2","_result","objects","unprocessedKey","dep","peers","topo","after","group","_child","castErr","nodes","unknown","_pattern","ignoreCase","_dependency","without","xor","_key4","_key5","and","_len4","_key6","nand","_len5","_key7","requiredKeys","_len6","_key8","optionalKeys","_len7","_key9","forbiddenKeys","_len8","_key10","renameDefaults","groupedChildren","groupChildren","_i9","_i10","typeData","parseErr","grouped","substring","keysToLabels","findLabel","matchingChild","find","peer","main","mainWithLabel","peerWithLabel","present","peersWithLabels","presentWithLabels","missingWithLabels","splice","rfc3986","ipv4Cidr","digitOnly","ipv6Cidr","unreserved","alpha","subDelims","pctEncoded","pchar","pcharOnly","decOctect","IPv4address","h16","hexDigitOnly","ls32","IPv6SixHex","IPv6FiveHex","IPv6FourHex","IPv6ThreeHex","IPv6TwoHex","IPv6OneHex","IPv6NoneHex","IPv6address","IPvFuture","scheme","alphaOnly","authority","segmentNz","pathAbEmpty","pathAbsolute","hierPart","relativeRef","fragment","generate","escaped","charCode","isSafe","escapeJavaScriptChar","escapeHtmlChar","padLeft","hexValue","namedEscape","namedHtml","safeCharCodes","safe","Punycode","hasOwn","defaultThreshold","maxIPv6Groups","categories","dnsWarn","rfc5321","cfws","deprecated","rfc5322","diagnoses","rfc5321TLD","rfc5321TLDNumeric","rfc5321QuotedString","rfc5321AddressLiteral","cfwsComment","cfwsFWS","deprecatedLocalPart","deprecatedFWS","deprecatedQTEXT","deprecatedQP","deprecatedComment","deprecatedCTEXT","deprecatedIPv6","deprecatedCFWSNearAt","rfc5322Domain","rfc5322TooLong","rfc5322LocalTooLong","rfc5322DomainTooLong","rfc5322LabelTooLong","rfc5322DomainLiteral","rfc5322DomainLiteralOBSDText","rfc5322IPv6GroupCount","rfc5322IPv62x2xColon","rfc5322IPv6BadCharacter","rfc5322IPv6MaxGroups","rfc5322IPv6ColonStart","rfc5322IPv6ColonEnd","errExpectingDTEXT","errNoLocalPart","errNoDomain","errConsecutiveDots","errATEXTAfterCFWS","errATEXTAfterQS","errATEXTAfterDomainLiteral","errExpectingQPair","errExpectingATEXT","errExpectingQTEXT","errExpectingCTEXT","errBackslashEnd","errDotStart","errDotEnd","errDomainHyphenStart","errDomainHyphenEnd","errUnclosedQuotedString","errUnclosedComment","errUnclosedDomainLiteral","errFWSCRLFx2","errFWSCRLFEnd","errCRNoLF","errUnknownTLD","errDomainTooShort","components","localpart","domain","literal","contextComment","contextFWS","contextQuotedString","contextQuotedPair","specials","codePointAt","c0Controls","c1Controls","ipV4","ipV6","nulNormalize","email","emailPieces","normalize","checkIpV6","validDomain","tldAtom","tldBlacklist","tldWhitelist","diagnose","threshold","errorLevel","minDomainAtoms","maxResult","updateResult","prev","prevToken","parseData","local","atomData","locals","domains","elementCount","elementLength","crlfCount","hyphenFlag","assertEnd","emailLength","token","fromCodePoint","punycodeLength","addressLiteral","matchesIP","maxGroups","groups","pop","escapeToken","_punycodeLength","finishResult","diag","includesSingle","includesOne","includesOneSingle","includesRequiredUnknowns","includesRequiredKnowns","includesRequiredBoth","excludes","excludesSingle","ordered","orderedLength","sparse","javascript","unix","minArity","maxArity","less","greater","integer","negative","positive","precision","alphanum","invert","uri","uriRelativeOnly","uriCustomScheme","guid","hex","hostname","lowercase","uppercase","creditCard","ip","ipVersion","arrays","ordereds","inclusions","exclusions","requireds","wasArray","single","_checkItems","previousErrors","errored","isValid","fastSplice","requiredChecks","jl","inclusion","previousCheck","_fillMissedErrors","_fillOrderedErrors","orderedItems","comparator","custom","records","entries","current","dupePos","dupeValue","_context","enabled","knownMisses","unknownMisses","requiredOrdereds","converted","Binary","_encoding","truthySet","falsySet","truthy","falsy","ObjectType","Func","_ObjectType$construct","precisionRx","NaN","isNumber","round","divisor","places","Net","Isemail","JoiDate","Uri","Ip","uriRegex","createUriRegex","ipRegex","createIpRegex","guidBrackets","guidVersions","uuidv1","uuidv2","uuidv3","uuidv4","uuidv5","cidrPresences","normalizationForms","toLocaleUpperCase","toLocaleLowerCase","replacements","replacement","truncate","sum","_char","charAt","patternOptions","patternObject","errorCode","isEmailOptions","checkDNS","ipOptions","cidr","uriOptions","customScheme","allowRelative","relativeOnly","toISOString","guidOptions","versionNumbers","versionNumber","guidRegex","base64Options","paddingRequired","isIPv6","uuid","RFC3986","cidrs","ipv4","ipv6","ipvfuture","optionalScheme","prefix","withScheme","_items","before","seq","_sort","others","other","mergeSort","graph","graphAfters","graphNodes","expandedGroups","graphNodeItems","_group","afterNodes","_group2","_node","ancestors","_node2","_j3","visited","sorted","_j4","shouldSeeCount","seenCount","_k","seqIndex","sortedNodes","sortedItem","b64","placeHoldersCount","tmp","placeHolders","Arr","L","revLookup","uint8","extraBytes","output","maxChunkLength","len2","encodeChunk","num","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","abs","LN2","normalizeArray","allowAboveRoot","up","unshift","splitPathRe","splitPath","filename","xs","resolvedPath","resolvedAbsolute","isAbsolute","trailingSlash","paths","relative","fromParts","toParts","samePartsLength","outputParts","sep","dirname","basename","extname","__WEBPACK_AMD_DEFINE_RESULT__","nodeType","freeGlobal","punycode","maxInt","regexPunycode","regexNonASCII","regexSeparators","stringFromCharCode","mapDomain","ucs2decode","extra","counter","ucs2encode","digitToBasic","digit","adapt","delta","numPoints","firstTime","baseMinusTMin","basic","oldi","w","baseMinusT","inputLength","bias","handledCPCount","basicLength","q","currentValue","handledCPCountPlusOne","qMinusT","superCtor","super_","TempCtor","formatRegExp","isString","isNull","deprecate","msg","isUndefined","noDeprecation","warned","throwDeprecation","traceDeprecation","debugEnviron","debugs","opts","ctx","stylize","stylizeNoColor","colors","isBoolean","showHidden","_extend","customInspect","stylizeWithColor","formatValue","style","styles","recurseTimes","isFunction","primitive","simple","formatPrimitive","visibleKeys","idx","arrayToHash","isError","formatError","isDate","braces","toUTCString","formatProperty","formatArray","cur","reduceToSingleString","line","re","objectToString","pad","debuglog","NODE_DEBUG","toUpperCase","isNullOrUndefined","isSymbol","isPrimitive","months","time","getHours","getMinutes","getSeconds","getDate","getMonth","prop","origin","webpackPolyfill","clearAndUpper","Icon","SelectedIcon","Feather","applyForJob","jobId","organizationSlug","application","candidate","questionResponses","createdVia","recaptchaToken","useJobBoardJob","useQuery","getJobBoardJob","refetchOnWindowFocus","QuestionResponse","question","questionResponse","customQuestionsErrors","questionText","placeholderText","requirementSetting","questionResponseBody","body","questionSelectedOptions","responseArray","fileToUpload","customFile","selectOptions","convertArrayToSelectOptions","maxFileSize","MEGABYTE_IN_BYTES","handleQuestionResponseChange","questionId","handleSelectChange","handleMultiSelectChange","selections","handleFileInputChange","clearFixedErrors","onInvalidFile","file","expectedFileType","invalidFileError","fileError","isAllowedFileType","isAllowedFileSize","APP_TRANSLATIONS","custom_question_file_size_error","custom_question_file_type_error","kind","FormInput","onChange","requiredLabel","placeholder","FormTextarea","rows","FormSelect","select_placeholder","isClearable","multi_select_description","isMulti","FormUploader","htmlFor","attach_file_placeholder","allowAutomaticUploading","fileIsAlreadyUploaded","onCompleteDirectUpload","ApplicationForm","questions","questionResponsesState","recaptchaRef","onInputChange","resumeFile","resume","resume_error","recaptchaElement","RecaptchaContainer","sitekey","GOOGLE_RECAPTCHA_SITE_KEY","className","fieldName","isEmpty","handleInputChange","removeKnownUrlPrefix","removeHttpPrefix","submitButton","onSubmit","submitLoading","submit_application","Title","apply_here","FormContainer","buttons","phone","linkedinUrl","githubUrl","twitterUrl","dribbbleUrl","websiteUrl","name_label","component","email_address_label","phone_number_label","location_label","location_placeholder","linkedin_label","pretext","twitter_label","github_label","dribbble_label","website_label","resume_label","resume_placeholder","inputs","inputType","customQuestionNodes","mb","mt","h2","bold","questionResponsesReducer","payload","newState","ApplyApp","submitted","setSubmitted","React","useState","uploadingFile","setUploadingFile","setErrors","questionResponsesDispatch","useReducer","queryString","search","useRef","setState","photo","coverLetter","success","inflowJobId","inflowOrganizationSlug","job","isLoading","mutate","isLoadingApplyForJob","queryClient","useQueryClient","useMutation","onSuccess","mutationVariables","invalidateQueries","useApplyForJob","LoadingIndicator","loading_form","handleSubmission","fileUploadQuestions","responses","handleCustomFileUploads","resumeSignedId","directUploadFile","createCandidate","onError","railsDirectUploadUrl","APP_ATS_ROOT_URL","upload","DirectUpload","blob","signed_id","responsesState","fileUploads","fileUploadsResponses","signedId","newResponse","updatedQuestionResponsesState","EmptyState","roomy","icon","application_success_title","application_success_body","Container","IS_TEST_ENV","executeAsync","joiObject","objectToValidate","questionsWithErrors","inputValue","questionIndex","invalidResponse","objectHasEmptyValues","Recaptcha","App","QueryClient","QueryClientProvider","client","poly","lightTheme","md","pb","document","addEventListener","getElementById","Component","ReactDOM","render","fileTypes","image","excel","csv","audio","customQuestionUploadFileTypes","KILOBYTE_IN_BYTES","actualFileType","isDocx","contentType","actualFileSize","STATE_DELIMITER","EMPTY_ACTIVITY_MAP","DEFAULT_GUARD_TYPE","TARGETLESS_KEY","50","100","200","300","400","500","600","700","800","900","orange","spacing","auto","spacingFromSize","sizeString","typeScale","lg","xl","xxl","xxxl","breakpoints","breakpoint","ml","mr","mx","my","pl","pr","pt","sizeKey","py","normal","semibold","forefront","primary","secondary","h1","h3","h4","h5","h6","maxCharacterCount","textAreaRef","errorText","errorTextViaYupOrRailsOrJoi","characterCount","setCharacterCount","useEffect","updateSelection","keyCode","blur","removeEventListener","textarea","onSelectionUpdate","selectionStart","selectionEnd","inputId","for","textareaDescription","TextArea","hasError","scope","currentTarget","newValue","sliced","onBlur","autoFocus","isDisabled","onMouseUp","onKeyUp","radii","shadow","displayType","tabIndex","fileName","onStartDirectUpload","uploadMachine","Machine","initial","noFile","ATTACH_FILE","AUTO_UPLOAD_FILE","HAS_EXISTING_FILE","existingFile","fileSuccessfullyUploaded","fileAttachedForUpload","INVALID_FILE","newFileIsUploading","UPLOAD_COMPLETE","replacementFileIsUploading","sendOnLoadingCallback","send","useMachine","setFileToUpload","fileExists","buttonText","UIContainer","Input","files","UploadButton","UploadButtonLabel","UploadStatus","file_attached_label","sparkMd5","createCommonjsModule","hex_chr","md5cycle","md5blk","md5blks","md5blk_array","md51","tail","md51_array","rhex","toUtf8","unescape","utf8Str2ArrayBuffer","returnUInt8Array","buff","arrayBuffer2Utf8Str","concatenateArrayBuffers","first","second","hexToBinaryString","SparkMD5","clamp","targetArray","sourceArray","begin","append","appendBinary","contents","_buff","_length","_hash","_finish","getState","destroy","hashBinary","content","classCallCheck","createClass","fileSlice","File","mozSlice","webkitSlice","FileChecksum","chunkSize","chunkCount","ceil","chunkIndex","md5Buffer","fileReader","FileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","readAsArrayBuffer","findElement","selector","querySelector","dispatchEvent","eventInit","bubbles","cancelable","detail","createEvent","initEvent","toArray$1","BlobRecord","checksum","attributes","content_type","byte_size","xhr","XMLHttpRequest","open","responseType","setRequestHeader","head","getAttribute","getMetaValue","requestDidLoad","requestDidError","status","direct_upload","directUploadData","_xhr","BlobUpload","_blob$directUploadDat","delegate","notify","methodName","DirectUploadController","directUpload","dispatch","hiddenInput","createElement","insertAdjacentElement","parentNode","removeChild","dispatchError","progress","loaded","total","defaultPrevented","alert","uploadRequestDidProgress","DirectUploadsController","querySelectorAll","controllers","createDirectUploadControllers","startNextController","controller","processingAttribute","submitButtonsByForm","WeakMap","started","didClick","didSubmitForm","didSubmitRemoteElement","tagName","handleFormSubmissionEvent","hasAttribute","setAttribute","disable","removeAttribute","enable","button","focus","click","appendChild","submitForm","ActiveStorage","getActionFunction","actionType","actionFunctionMap","toActionObject","actionObject","toActionObjects","subAction","toActivityDefinition","raise","Internal","resolveRaise","delay","resolveSend","delaysMap","resolvedDelay","resolvedEvent","configDelay","resolvedTarget","sendParent","Parent","sendUpdate","respond","__","defaultLogExpr","expr","resolveLog","cancel","sendId","activity","activityDef","Start","stop","Stop","assignment","delayRef","idSuffix","After","DoneState","eventObject","doneInvoke","DoneInvoke","ErrorPlatform","forwardTo","escalate","errorData","handleChange","selectedOption","actionObj","isCreatable","rest","findSelectOptionByValue","selectRef","setSelectRef","Creatable","classNamePrefix","Select","onKeyDown","inputRef","useHotkeys","UI","hasPretext","Pretext","canvas","border","borderHover","loudText","primaryText","secondaryText","subtleHover","loudHover","wellCanvas","calloutCanvas","dropdownCanvas","dropdownBorder","dropdownDivider","dropdownHover","dropdownTextHover","cardCanvas","cardBorder","cardDivider","chipBorder","WILDCARD","EMPTY_OBJECT","isStateId","StateNode","order","__xstatenode","__cache","relativeValue","initialStateValue","initialState","candidates","delayedTransitions","idMap","guards","services","delays","_parent","machine","parallel","stateConfig","dfs","_transient","onEntry","entry","onExit","invoke","invokeConfig","invokeSrc","transition","_init","withConfig","withContext","definition","eventType","getDelayedTransitions","formatTransitions","getCandidates","sameEventType","afterConfig","mutateEntryExit","configTransition","resolvedTransition","delayedTransition","formatTransition","getStateNodes","getStateNode","subStateKeys","subStateKey","allSubStateNodes","subStateNode","handles","resolveState","transitionLeafNode","transitionCompoundNode","_transition","transitionParallelNode","transitionMap","subStateValue","stateTransitions","enabledTransitions","st","entryNodes","entrySet","exitSet","selectedTransition","nextStateNodes","cond","stateIn","resolvedContext","isInState","getStateNodeById","guardPassed","evaluateGuard","allNextStateNodes","getRelativeStateNodes","isInternal","internal","nodesFromChild","escapes","guard","guardMeta","predicate","condFn","getActions","currentContext","prevState","prevConfig","resolvedConfig","resolvedConfig_1","resolvedConfig_1_1","prevConfig_1","prevConfig_1_1","doneEvents","grandparent","entryStates","exitStates","entryActions","exitActions","currentState","resolvedStateValue","getResolvedPath","stateTransition","resolveTransition","resolveRaisedTransition","originalEvent","currentActions","e_6","actions_1","actions_1_1","e_6_1","assignActions","otherActions","updatedContext","resolvedActions","sendAction","raisedEvents","nonRaisedActions","acc","resolvedConfiguration","isDone","nextState","changed","maybeNextState","raisedEvent","stateKey","stateId","resolvedStateId","getStateNodeByPath","statePath","arrayStatePath","currentStateNode","stateIdentifier","getInitialState","historyConfig","relativeStateId","resolveHistory","initialStateNodePaths","initialPath","getFromRelativePath","relativePath","childStatePath","relativeStateValue","historyTarget","relativeChildPath","subHistoryValue","subStatePath","childStateIds","stateIds","e_7","e_8","event_1","e_8_1","e_7_1","resolveTarget","_target","isInternalTarget","transitionConfig","normalizedTarget","e_9","onConfig","wildcardConfigs","strictOnConfigs_1","arrayified","hasNonLastUnguardedTarget","eventText","validateArrayifiedTransitions","doneConfig","onDone","invokeDef","settleTransitions","formattedTransitions","delayedTransitions_1","delayedTransitions_1_1","e_9_1","createInvocableActor","invokeDefinition","tempActor","subscribe","unsubscribe","isActor","sessionIdIndex","registry","bookId","register","actor","free","subtle","Subtle","Label","Bar","Indicator","subtleKeyframe","IS_DEVELOPMENT","CONSOLE_LOG_ENABLED","InterpreterStatus","DEFAULT_SPAWN_OPTIONS","sync","autoForward","withServiceScope","serviceStack","service","Interpreter","defaultOptions","scheduler","delayedEventsMap","contextListeners","stopListeners","doneListeners","eventListeners","sendListeners","initialized","_status","NotStarted","init","batch","Stopped","deferEvents","Running","schedule","forward","update","_state","sendTo","isParent","sessionId","resolvedOptions","clock","resolvedId","_initialState","execute","actionsConfig","devTools","listener","_g","_h","contextListener","finalChildStateNode","doneData","_l","_m","onTransition","nextListenerOrObserver","errorListener","completeListener","resolvedCompleteListener","complete","onEvent","onSend","onStop","resolvedState","attachDev","initialize","e_10","_o","_p","_q","e_10_1","clear","e_11","batchChanged","batchedActions","_loop_1","events_1","events_1_1","e_11_1","sender","nextEvent","e_12","e_12_1","defer","actionOrExec","Invoke","serviceCreator","spawnPromise","spawnCallback","spawnObservable","spawnMachine","spawnActivity","stopChild","childId","spawn","entity","spawnActor","childService","doneEvent","promise","canceled","errorEvent","handleError","unsubscribed","callbackStop","receivers","newListener","receiver","subscription","implementation","dispose","spawnEffect","__REDUX_DEVTOOLS_EXTENSION__","devToolsOptions","connect","autoPause","stateSanitizer","features","jump","skip","ms","interpret","nameOrOptions","resolveSpawnOptions","initialContext","resolvedInitialContext","createMachine","option","getOptionLabel","yesOrNoOptions","enabledOrDisabledOptions","questionKindOptions","questionKindNames","jobSettingOptions","note","questionVisibilityOptions","jobSettingNames","careerNavigationOptions","jobBoardLogoVisibilityOptions","socialShareImageTypeOptions","jobOverrideSocialShareImageTypeOptions","billboardMediaTypeOptions","userRoleOptions","roleAbilities","userRoleNames","jobKindOptions","organizationPlanOptions","adminOrganizationFlipperGroupOptions","adminBooleanOptions","countryOptions","countriesData","country","unitedStatesOptions","usStatesData","organizationRemotenessOptions","jobRemotenessOptions","remoteRestrictionOverlapHoursOptions","wwrCategoryOptions","wwrUpgradeCosts","good","price","better","best","webflowJobFieldMappingOptions","isApiV2","reviewRatingOptions","salaryUnitOptions","salaryCurrencyCodeOptions","currencyCodes","localeCodeOptions","handleErrorsArray","handleErrorsObject","keyRegex","upperFirst","lowerCase","prettyErrorsArray","formErrors","ErrorsContainer","ErrorsLabel","ErrorsList","Buttons","baseGetTag","isObjectLike","singleMatcher","multiMatcher","decodeComponents","decodeURIComponent","left","right","tokens","encodedURI","replaceMap","customDecodeURIComponent","Scheduler","processingEvent","flushEvents","task","nextCallback","FormLabel","RequiredLabel","Raise","Send","Cancel","nullEvent","NullEvent","Assign","Log","Init","errorPlatform","ErrorExecution","ErrorCustom","Update","pure","Pure","ActionTypes","SpecialTargets","fieldError","groupError","removeFromArray","findIndex","removeFromArrayAtIndex","moveFromIndexToIndex","fromIndex","toIndex","insertIntoArrayAtIndex","formatPhoneNumber","mapState","stateMap","foundStateId","mappedStateId","matchState","patterns_1","patterns_1_1","matchesState","parentStateId","childStateId","toStateValue","childStateValue","getEventType","toStatePath","pathToStateValue","mapValues","iteratee","collectionKeys","mapFilterValues","props_1","props_1_1","nestedPath","accessorProp","props_2","props_2_1","toStatePaths","subPath","toArrayStrict","toArray","mapContext","mapper","subMapper","isBuiltInEvent","isPromiseLike","partition","items_1","items_1_1","updateHistoryStates","hist","subHist","updateHistoryValue","updateContext","warn","assignAction","partialUpdate","propAssignment","toGuard","guardMap","isObservable","symbolObservable","observable","isMachine","uniqueId","currentId","toEventObject","toSCXMLEvent","scxmlEvent","$$type","toTransitionConfigArray","configLike","transitionLike","normalizeTarget","reportUnhandledExceptionOnInvocation","originalError","currentError","originalStackTrace","stackTrace","__assign","react_1","xstate_1","immediate","rehydratedState","interpreterOptions","machineConfig","machineRef","serviceRef","setCurrent","useService","useActor_1","useActor","registerService","__xstate__","getDevTools","_assertThisInitialized","_React$Component","ReCAPTCHA","handleExpired","handleErrored","handleRecaptchaRef","_proto","grecaptcha","_widgetId","getResponse","getWidgetId","_executeRequested","executionResolve","executionReject","onExpired","onErrored","explicitRender","wrapper","tabindex","stoken","hl","badge","captcha","componentDidMount","componentDidUpdate","componentWillUnmount","delayOfCaptchaIframeRemoving","temporaryNode","firstChild","elem","_this$props","childProps","excluded","sourceKeys","_objectWithoutPropertiesLoose","displayName","SCRIPT_MAP","idCount","callbackName","getScriptURL","recaptchaOptions","useRecaptchaNet","globalName","WrappedComponent","wrappedComponentName","AsyncScriptLoader","_Component","__scriptURL","asyncScriptLoaderGetScriptLoaderID","__scriptLoaderID","setupScriptURL","asyncScriptLoaderHandleLoad","asyncScriptOnLoad","asyncScriptLoaderTriggerOnScriptLoaded","mapEntry","obsKey","observers","scriptURL","scriptId","script","callObserverFuncAndRemoveObserver","observersMap","onload","observer","onerror","removeOnUnmount","allScripts","getElementsByTagName","forwardedRef","ForwardedComponent","IS_PRODUCTION","actorRef","sub_1","borderless","IconWrapper"],"mappings":"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","file":"js/job_board_form_application-14ede37686e36d499e27.chunk.js","sourcesContent":["/* eslint-disable jsx-a11y/no-static-element-interactions */\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Link } from \"react-router-dom\";\n\nimport { css, keyframes } from \"@emotion/react\";\nimport styled from \"@emotion/styled\";\n\n// import { useMixpanel } from \"@shared/MixpanelContext\";\n\nconst Button = ({\n children,\n type,\n link,\n onClick,\n onMouseDown,\n disabled,\n loading,\n styleType,\n dangerous,\n isTracked,\n trackingPayload,\n ...props\n}) => {\n const eventName =\n type === \"internalLink\"\n ? \"Click Internal Link\"\n : type === \"externalLink\"\n ? \"Click External Link\"\n : \"Click Button\";\n const mixpanelPayload = { eventName, ...trackingPayload };\n\n // const mixpanel = useMixpanel(isTracked);\n\n const handleClick = (...args) => {\n if (!disabled && onClick) {\n onClick(...args);\n } else if (disabled) {\n args[0].preventDefault();\n args[0].stopPropagation();\n }\n\n try {\n const ctaText = args[0].target ? args[0].target.innerText : \"Unknown\";\n const ctaLocation = undefined;\n\n // if (mixpanel) {\n // mixpanel.track(eventName, { ctaText, ctaLocation, ...mixpanelPayload });\n // }\n } catch (error) {\n console.error(error);\n }\n };\n\n const handleOnMouseDown = (event) => {\n if (onMouseDown) {\n onMouseDown(event);\n }\n };\n\n const getStyles = (t, dark, loading = false) => {\n const typeStyles = getTypeStyles(t, dark);\n return css`\n ${[typeStyles, t.text.medium, t.rounded.sm]}\n white-space: nowrap;\n border: none;\n appearance: none;\n position: relative;\n cursor: pointer;\n max-width: 100%;\n\n &:disabled {\n opacity: ${loading ? 1 : 0.5};\n cursor: default;\n }\n `;\n };\n\n const getTypeStyles = (t, dark) => {\n const buttonShape = css`\n ${[t.h(10), t.text.base, t.px(4)]}\n display: ${type === \"internalLink\" || type === \"externalLink\" ? \"inline-flex\" : \"flex\"};\n align-items: center;\n justify-content: center;\n outline: none;\n width: 100%;\n\n ${t.mq[\"md\"]} {\n ${[t.h(8), t.text.sm]}\n width: auto;\n }\n `;\n switch (styleType) {\n case \"primary\":\n return css`\n ${buttonShape};\n color: ${t.dark ? t.color.black : t.color.white};\n &:link,\n &:visited {\n color: ${t.dark ? t.color.black : t.color.white};\n }\n background: ${t.dark\n ? \"linear-gradient(120deg, #FBD7FF 10%, #FFDEC1 90%)\"\n : dangerous\n ? t.color.red[600]\n : t.color.black};\n transition: background 0.2s ease, box-shadow 0.2s ease;\n &:hover:not([disabled]) {\n background: ${t.dark\n ? \"linear-gradient(to right, #FBD7FF -30%, #FFDEC1 70%)\"\n : dangerous\n ? t.color.red[700]\n : t.color.gray[700]};\n }\n &:focus {\n ${t.dark\n ? `box-shadow: 0 0 0 2px ${t.color.gray[500]}`\n : `box-shadow: 0 0 0 2px ${dangerous ? t.color.gray[300] : t.color.gray[400]}`};\n }\n\n > span {\n overflow-x: hidden;\n line-height: 1.6;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n `;\n case \"secondary\":\n return css`\n ${buttonShape}\n background-color: ${t.dark ? t.color.gray[700] : t.color.gray[200]};\n transition: background-color 0.2s ease, box-shadow 0.2s ease;\n color: ${t.dark ? t.color.gray[200] : dangerous ? t.color.red[600] : t.color.black};\n &:link,\n &:visited {\n color: ${t.dark ? t.color.gray[200] : dangerous ? t.color.red[600] : t.color.black};\n }\n border: 1px solid ${t.color.gray[200]};\n &:hover:not([disabled]) {\n color: ${t.dark ? t.color.white : dangerous ? t.color.red[700] : t.color.black};\n background-color: ${t.dark ? t.color.gray[600] : t.color.gray[300]};\n }\n &:focus {\n box-shadow: 0 0 0 2px ${t.dark ? t.color.gray[500] : t.color.gray[300]};\n }\n &:hover:focus {\n box-shadow: 0 0 0 2px ${t.dark ? t.color.gray[500] : t.color.gray[300]};\n }\n\n > span {\n overflow-x: hidden;\n line-height: 1.6;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n `;\n case \"text\":\n return css`\n ${type === \"externalLink\" &&\n `\n svg {\n margin-left: 0.375rem;\n height: 1.125em;\n width: 1.125em;\n }\n `}\n\n display: inline-flex;\n background-color: transparent;\n color: ${t.dark ? t.color.gray[300] : dangerous ? t.color.red[600] : t.color.black};\n &:link,\n &:visited {\n color: ${t.dark ? t.color.gray[300] : dangerous ? t.color.red[600] : t.color.black};\n }\n outline: none;\n &:hover:not([disabled]) {\n text-decoration: underline;\n }\n &:focus {\n text-decoration: underline;\n }\n\n > span {\n display: flex;\n align-items: center;\n }\n `;\n }\n };\n\n /* KIND TRANSITION\n ======================================================= */\n switch (type) {\n case \"internalLink\":\n return (\n getStyles(theme)}>\n {children}\n \n );\n case \"externalLink\":\n return (\n getStyles(theme)}\n >\n {children}\n \n );\n default:\n return (\n getStyles(theme, loading)}\n {...props}\n onClick={handleClick}\n onMouseDown={handleOnMouseDown}\n disabled={disabled}\n >\n {children}\n {loading && (\n \n
\n
\n
\n \n )}\n \n );\n }\n};\n\nButton.propTypes = {\n children: PropTypes.any.isRequired, // eslint-disable-line react/forbid-prop-types\n type: PropTypes.string.isRequired,\n styleType: PropTypes.oneOfType([PropTypes.string, PropTypes.array]),\n link: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n onClick: PropTypes.func,\n disabled: PropTypes.bool,\n loading: PropTypes.bool,\n dangerous: PropTypes.bool,\n form: PropTypes.string,\n};\n\nButton.defaultProps = {\n type: \"button\",\n styleType: \"primary\",\n size: \"medium\",\n link: null,\n disabled: false,\n loading: false,\n dangerous: false,\n isTracked: true,\n};\n\nexport default Button;\n\n/* Styled Components\n======================================================= */\nconst Styled = {};\n\nStyled.Loader = styled.div((props) => {\n const t = props.theme;\n return css`\n label: Button_Loader;\n position: absolute;\n display: flex;\n justify-content: center;\n align-items: center;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n height: 100%;\n opacity: 100%;\n &:before {\n ${t.rounded.sm}\n background: ${props.styleType === \"primary\"\n ? t.dark\n ? \"linear-gradient(to right, #FBD7FF -40%, #FFDEC1 80%)\"\n : t.color.gray[700]\n : t.dark\n ? t.color.gray[600]\n : t.color.gray[300]};\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: block;\n content: \"\";\n }\n div {\n position: relative;\n width: 0.125rem;\n margin: 0.125rem;\n background-color: ${props.styleType === \"primary\"\n ? t.dark\n ? t.color.black\n : t.color.white\n : t.dark\n ? t.color.gray[200]\n : t.color.black};\n animation: ${loadingAnimation} 1.6s cubic-bezier(0, 0.5, 0.5, 1) infinite;\n }\n div:nth-of-type(1) {\n animation-delay: -0.24s;\n }\n div:nth-of-type(2) {\n animation-delay: -0.12s;\n }\n div:nth-of-type(3) {\n animation-delay: 0;\n }\n `;\n});\n\nconst loadingAnimation = keyframes`\n 0% {\n height: 0.75rem;\n }\n 30%,\n 100% {\n height: 0.125rem;\n }\n`;\n","import { __values, __spread } from './_virtual/_tslib.js';\nimport { keys, flatten } from './utils.js';\n\nvar isLeafNode = function isLeafNode(stateNode) {\n return stateNode.type === 'atomic' || stateNode.type === 'final';\n};\n\nfunction getChildren(stateNode) {\n return keys(stateNode.states).map(function (key) {\n return stateNode.states[key];\n });\n}\n\nfunction getAllStateNodes(stateNode) {\n var stateNodes = [stateNode];\n\n if (isLeafNode(stateNode)) {\n return stateNodes;\n }\n\n return stateNodes.concat(flatten(getChildren(stateNode).map(getAllStateNodes)));\n}\n\nfunction getConfiguration(prevStateNodes, stateNodes) {\n var e_1, _a, e_2, _b, e_3, _c, e_4, _d;\n\n var prevConfiguration = new Set(prevStateNodes);\n var prevAdjList = getAdjList(prevConfiguration);\n var configuration = new Set(stateNodes);\n\n try {\n // add all ancestors\n for (var configuration_1 = __values(configuration), configuration_1_1 = configuration_1.next(); !configuration_1_1.done; configuration_1_1 = configuration_1.next()) {\n var s = configuration_1_1.value;\n var m = s.parent;\n\n while (m && !configuration.has(m)) {\n configuration.add(m);\n m = m.parent;\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (configuration_1_1 && !configuration_1_1.done && (_a = configuration_1[\"return\"])) _a.call(configuration_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n var adjList = getAdjList(configuration);\n\n try {\n // add descendants\n for (var configuration_2 = __values(configuration), configuration_2_1 = configuration_2.next(); !configuration_2_1.done; configuration_2_1 = configuration_2.next()) {\n var s = configuration_2_1.value; // if previously active, add existing child nodes\n\n if (s.type === 'compound' && (!adjList.get(s) || !adjList.get(s).length)) {\n if (prevAdjList.get(s)) {\n prevAdjList.get(s).forEach(function (sn) {\n return configuration.add(sn);\n });\n } else {\n s.initialStateNodes.forEach(function (sn) {\n return configuration.add(sn);\n });\n }\n } else {\n if (s.type === 'parallel') {\n try {\n for (var _e = (e_3 = void 0, __values(getChildren(s))), _f = _e.next(); !_f.done; _f = _e.next()) {\n var child = _f.value;\n\n if (child.type === 'history') {\n continue;\n }\n\n if (!configuration.has(child)) {\n configuration.add(child);\n\n if (prevAdjList.get(child)) {\n prevAdjList.get(child).forEach(function (sn) {\n return configuration.add(sn);\n });\n } else {\n child.initialStateNodes.forEach(function (sn) {\n return configuration.add(sn);\n });\n }\n }\n }\n } catch (e_3_1) {\n e_3 = {\n error: e_3_1\n };\n } finally {\n try {\n if (_f && !_f.done && (_c = _e[\"return\"])) _c.call(_e);\n } finally {\n if (e_3) throw e_3.error;\n }\n }\n }\n }\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (configuration_2_1 && !configuration_2_1.done && (_b = configuration_2[\"return\"])) _b.call(configuration_2);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n\n try {\n // add all ancestors\n for (var configuration_3 = __values(configuration), configuration_3_1 = configuration_3.next(); !configuration_3_1.done; configuration_3_1 = configuration_3.next()) {\n var s = configuration_3_1.value;\n var m = s.parent;\n\n while (m && !configuration.has(m)) {\n configuration.add(m);\n m = m.parent;\n }\n }\n } catch (e_4_1) {\n e_4 = {\n error: e_4_1\n };\n } finally {\n try {\n if (configuration_3_1 && !configuration_3_1.done && (_d = configuration_3[\"return\"])) _d.call(configuration_3);\n } finally {\n if (e_4) throw e_4.error;\n }\n }\n\n return configuration;\n}\n\nfunction getValueFromAdj(baseNode, adjList) {\n var childStateNodes = adjList.get(baseNode);\n\n if (!childStateNodes) {\n return {}; // todo: fix?\n }\n\n if (baseNode.type === 'compound') {\n var childStateNode = childStateNodes[0];\n\n if (childStateNode) {\n if (isLeafNode(childStateNode)) {\n return childStateNode.key;\n }\n } else {\n return {};\n }\n }\n\n var stateValue = {};\n childStateNodes.forEach(function (csn) {\n stateValue[csn.key] = getValueFromAdj(csn, adjList);\n });\n return stateValue;\n}\n\nfunction getAdjList(configuration) {\n var e_5, _a;\n\n var adjList = new Map();\n\n try {\n for (var configuration_4 = __values(configuration), configuration_4_1 = configuration_4.next(); !configuration_4_1.done; configuration_4_1 = configuration_4.next()) {\n var s = configuration_4_1.value;\n\n if (!adjList.has(s)) {\n adjList.set(s, []);\n }\n\n if (s.parent) {\n if (!adjList.has(s.parent)) {\n adjList.set(s.parent, []);\n }\n\n adjList.get(s.parent).push(s);\n }\n }\n } catch (e_5_1) {\n e_5 = {\n error: e_5_1\n };\n } finally {\n try {\n if (configuration_4_1 && !configuration_4_1.done && (_a = configuration_4[\"return\"])) _a.call(configuration_4);\n } finally {\n if (e_5) throw e_5.error;\n }\n }\n\n return adjList;\n}\n\nfunction getValue(rootNode, configuration) {\n var config = getConfiguration([rootNode], configuration);\n return getValueFromAdj(rootNode, getAdjList(config));\n}\n\nfunction has(iterable, item) {\n if (Array.isArray(iterable)) {\n return iterable.some(function (member) {\n return member === item;\n });\n }\n\n if (iterable instanceof Set) {\n return iterable.has(item);\n }\n\n return false; // TODO: fix\n}\n\nfunction nextEvents(configuration) {\n return flatten(__spread(new Set(configuration.map(function (sn) {\n return sn.ownEvents;\n }))));\n}\n\nfunction isInFinalState(configuration, stateNode) {\n if (stateNode.type === 'compound') {\n return getChildren(stateNode).some(function (s) {\n return s.type === 'final' && has(configuration, s);\n });\n }\n\n if (stateNode.type === 'parallel') {\n return getChildren(stateNode).every(function (sn) {\n return isInFinalState(configuration, sn);\n });\n }\n\n return false;\n}\n\nexport { getAdjList, getAllStateNodes, getChildren, getConfiguration, getValue, has, isInFinalState, isLeafNode, nextEvents };","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\n\nfunction emptyFunctionWithReset() {}\n\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function () {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n ;\n shim.isRequired = shim;\n\n function getShim() {\n return shim;\n }\n\n ; // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\n};","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\nmodule.exports = ReactPropTypesSecret;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\n\nfunction emptyFunctionWithReset() {}\n\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function () {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n ;\n shim.isRequired = shim;\n\n function getShim() {\n return shim;\n }\n\n ; // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\n};","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\nmodule.exports = ReactPropTypesSecret;","'use strict';\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar strictUriEncode = require('strict-uri-encode');\n\nvar decodeComponent = require('decode-uri-component');\n\nfunction encoderForArrayFormat(options) {\n switch (options.arrayFormat) {\n case 'index':\n return function (key, value, index) {\n return value === null ? [encode(key, options), '[', index, ']'].join('') : [encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('');\n };\n\n case 'bracket':\n return function (key, value) {\n return value === null ? [encode(key, options), '[]'].join('') : [encode(key, options), '[]=', encode(value, options)].join('');\n };\n\n default:\n return function (key, value) {\n return value === null ? encode(key, options) : [encode(key, options), '=', encode(value, options)].join('');\n };\n }\n}\n\nfunction parserForArrayFormat(options) {\n var result;\n\n switch (options.arrayFormat) {\n case 'index':\n return function (key, value, accumulator) {\n result = /\\[(\\d*)\\]$/.exec(key);\n key = key.replace(/\\[\\d*\\]$/, '');\n\n if (!result) {\n accumulator[key] = value;\n return;\n }\n\n if (accumulator[key] === undefined) {\n accumulator[key] = {};\n }\n\n accumulator[key][result[1]] = value;\n };\n\n case 'bracket':\n return function (key, value, accumulator) {\n result = /(\\[\\])$/.exec(key);\n key = key.replace(/\\[\\]$/, '');\n\n if (!result) {\n accumulator[key] = value;\n return;\n }\n\n if (accumulator[key] === undefined) {\n accumulator[key] = [value];\n return;\n }\n\n accumulator[key] = [].concat(accumulator[key], value);\n };\n\n default:\n return function (key, value, accumulator) {\n if (accumulator[key] === undefined) {\n accumulator[key] = value;\n return;\n }\n\n accumulator[key] = [].concat(accumulator[key], value);\n };\n }\n}\n\nfunction encode(value, options) {\n if (options.encode) {\n return options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n }\n\n return value;\n}\n\nfunction decode(value, options) {\n if (options.decode) {\n return decodeComponent(value);\n }\n\n return value;\n}\n\nfunction keysSorter(input) {\n if (Array.isArray(input)) {\n return input.sort();\n }\n\n if (_typeof(input) === 'object') {\n return keysSorter(Object.keys(input)).sort(function (a, b) {\n return Number(a) - Number(b);\n }).map(function (key) {\n return input[key];\n });\n }\n\n return input;\n}\n\nfunction extract(input) {\n var queryStart = input.indexOf('?');\n\n if (queryStart === -1) {\n return '';\n }\n\n return input.slice(queryStart + 1);\n}\n\nfunction parse(input, options) {\n options = Object.assign({\n decode: true,\n arrayFormat: 'none'\n }, options);\n var formatter = parserForArrayFormat(options); // Create an object with no prototype\n\n var ret = Object.create(null);\n\n if (typeof input !== 'string') {\n return ret;\n }\n\n input = input.trim().replace(/^[?#&]/, '');\n\n if (!input) {\n return ret;\n }\n\n var _iterator = _createForOfIteratorHelper(input.split('&')),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var param = _step.value;\n\n var _param$replace$split = param.replace(/\\+/g, ' ').split('='),\n _param$replace$split2 = _slicedToArray(_param$replace$split, 2),\n key = _param$replace$split2[0],\n value = _param$replace$split2[1]; // Missing `=` should be `null`:\n // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\n\n value = value === undefined ? null : decode(value, options);\n formatter(decode(key, options), value, ret);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return Object.keys(ret).sort().reduce(function (result, key) {\n var value = ret[key];\n\n if (Boolean(value) && _typeof(value) === 'object' && !Array.isArray(value)) {\n // Sort object keys, not values\n result[key] = keysSorter(value);\n } else {\n result[key] = value;\n }\n\n return result;\n }, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = function (obj, options) {\n var defaults = {\n encode: true,\n strict: true,\n arrayFormat: 'none'\n };\n options = Object.assign(defaults, options);\n\n if (options.sort === false) {\n options.sort = function () {};\n }\n\n var formatter = encoderForArrayFormat(options);\n return obj ? Object.keys(obj).sort(options.sort).map(function (key) {\n var value = obj[key];\n\n if (value === undefined) {\n return '';\n }\n\n if (value === null) {\n return encode(key, options);\n }\n\n if (Array.isArray(value)) {\n var result = [];\n\n var _iterator2 = _createForOfIteratorHelper(value.slice()),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var value2 = _step2.value;\n\n if (value2 === undefined) {\n continue;\n }\n\n result.push(formatter(key, value2, result.length));\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return result.join('&');\n }\n\n return encode(key, options) + '=' + encode(value, options);\n }).filter(function (x) {\n return x.length > 0;\n }).join('&') : '';\n};\n\nexports.parseUrl = function (input, options) {\n return {\n url: input.split('?')[0] || '',\n query: parse(extract(input), options)\n };\n};","import camelCase from \"lodash/camelCase\";\nimport snakeCase from \"lodash/snakeCase\";\nimport forEach from \"lodash/forEach\";\nimport isPlainObject from \"lodash/isPlainObject\";\nimport isArray from \"lodash/isArray\";\nimport has from \"lodash/has\";\n\nexport const failureResultToErrorsArray = (object) => {\n // console.warn(\"[stucture] failureResultToErrorsArray object\", object.errors);\n let errors = {};\n if (has(object, \"errors\")) {\n errors = { ...errors, ...object.errors };\n }\n return errors;\n};\n\nexport const keysToCamel = (obj) => {\n if (!isPlainObject(obj)) {\n return obj;\n }\n const newObject = {};\n forEach(Object.keys(obj), (key) => {\n newObject[camelCase(key)] = obj[key];\n });\n return newObject;\n};\n\nexport const collectionToCamel = (collection) => {\n if (!isArray(collection)) {\n return collection;\n }\n const newCollection = [];\n forEach(collection, (obj) => {\n newCollection.push(keysToCamel(obj));\n });\n return newCollection;\n};\n\nexport const allKeysToCamel = (obj, modifyValues = {}) => {\n const simpleKeysToCamel = (object) => {\n if (!isPlainObject(object)) {\n return object;\n }\n const newObject = {};\n forEach(Object.keys(object), (key) => {\n if (has(modifyValues, key)) {\n newObject[camelCase(key)] = modifyValues[key](object[key]);\n } else {\n newObject[camelCase(key)] = allKeysToCamel(object[key], modifyValues);\n }\n });\n return newObject;\n };\n\n const simpleCollectionToCamel = (collection) => {\n const newCollection = [];\n forEach(collection, (object) => {\n newCollection.push(simpleKeysToCamel(object));\n });\n return newCollection;\n };\n\n if (isArray(obj)) {\n return simpleCollectionToCamel(obj);\n }\n if (isPlainObject(obj)) {\n return simpleKeysToCamel(obj);\n }\n return obj;\n};\n\nexport const keysToSnake = (obj) => {\n if (!isPlainObject(obj)) {\n return obj;\n }\n const newObject = {};\n forEach(Object.keys(obj), (key) => {\n newObject[snakeCase(key)] = obj[key];\n });\n return newObject;\n};\n\nexport const collectionToSnake = (collection) => {\n if (!isArray(collection)) {\n return collection;\n }\n const newCollection = [];\n forEach(collection, (obj) => {\n newCollection.push(keysToSnake(obj));\n });\n return newCollection;\n};\n\nexport const allKeysToSnake = (obj, modifyValues = {}) => {\n const simpleKeysToSnake = (object) => {\n if (!isPlainObject(object)) {\n return object;\n }\n const newObject = {};\n forEach(Object.keys(object), (key) => {\n if (has(modifyValues, key)) {\n newObject[snakeCase(key)] = modifyValues[key](object[key]);\n } else {\n newObject[snakeCase(key)] = allKeysToSnake(object[key], modifyValues);\n }\n });\n return newObject;\n };\n\n const simpleCollectionToSnake = (collection) => {\n const newCollection = [];\n forEach(collection, (object) => {\n newCollection.push(simpleKeysToSnake(object));\n });\n return newCollection;\n };\n\n if (isArray(obj)) {\n return simpleCollectionToSnake(obj);\n }\n if (isPlainObject(obj)) {\n return simpleKeysToSnake(obj);\n }\n return obj;\n};\n","import axios from \"axios\";\nimport { allKeysToSnake, allKeysToCamel } from \"@ats/src/lib/utils/structure\";\nimport Rails from \"@rails/ujs\";\n\nexport const apiGet = async ({ path }) => {\n const requestPath = `/api/v1${path}`;\n\n const { data } = await axios.get(requestPath, {\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n });\n\n window.logger(\"%c[queryHooks] apiGet\", \"color: #1976D2\", {\n data,\n requestPath,\n // zustandAuthToken,\n // contextAuthToken,\n });\n\n return allKeysToCamel(data);\n};\n\nexport const apiPost = async ({ path, variables, skipKeysToSnake = false }) => {\n window.logger(\"%c[queryHooks] apiPost\", \"color: #109902\", { path, variables });\n return await apiMutate({ method: \"post\", path, variables, skipKeysToSnake });\n};\n\nexport const apiPut = async ({ path, variables }) => {\n window.logger(\"%c[queryHooks] apiPut\", \"color: #99F002; background: black;\", { path, variables });\n return await apiMutate({ method: \"put\", path, variables });\n};\n\nexport const apiDelete = async ({ path, variables }) => {\n window.logger(\"%c[queryHooks] apiDelete\", \"color: #126d59\", { path, variables });\n return await apiMutate({ method: \"delete\", path, variables });\n};\n\nconst apiMutate = async ({ method, path, variables, skipKeysToSnake = false }) => {\n const requestPath = `/api/v1${path}`;\n\n const { data } = await axios\n .request({\n method,\n url: requestPath,\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n \"X-CSRF-Token\": Rails.csrfToken(),\n },\n data: skipKeysToSnake ? variables : allKeysToSnake(variables),\n })\n .catch((errorObject) => {\n const { response } = errorObject;\n const responseData = allKeysToCamel(response.data);\n const normalizedError = {\n ...response,\n data: responseData,\n };\n window.logger(\"%c[apiMutate] catch ERROR\", \"color: #FF0072\", normalizedError);\n return Promise.reject(normalizedError);\n });\n\n window.logger(\"%c[queryHooks] apiMutate\", \"color: #1976D2\", { data, variables, requestPath });\n\n return allKeysToCamel(data);\n};\n\n/* DELETE\n--===================================================-- */\n// export const apiDelete = async ({ path, variables }) => {\n// const requestPath = `/api/v1${path}`;\n\n// const { data } = await axios.request({\n// method: \"delete\",\n// url: requestPath,\n// headers: {\n// Accept: \"application/json\",\n// \"Content-Type\": \"application/json\",\n// },\n// data: allKeysToSnake(variables),\n// });\n\n// window.logger(\"%c[queryHooks] apiDelete\", \"color: #1976D2\", { data, variables, requestPath });\n\n// return allKeysToCamel(data);\n// };\n","import { __spread, __rest, __assign } from './_virtual/_tslib.js';\nimport { EMPTY_ACTIVITY_MAP } from './constants.js';\nimport { isString, matchesState, keys } from './utils.js';\nimport { nextEvents } from './stateUtils.js';\nimport { initEvent } from './actions.js';\n\nfunction stateValuesEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (a === undefined || b === undefined) {\n return false;\n }\n\n if (isString(a) || isString(b)) {\n return a === b;\n }\n\n var aKeys = keys(a);\n var bKeys = keys(b);\n return aKeys.length === bKeys.length && aKeys.every(function (key) {\n return stateValuesEqual(a[key], b[key]);\n });\n}\n\nfunction isState(state) {\n if (isString(state)) {\n return false;\n }\n\n return 'value' in state && 'history' in state;\n}\n\nfunction bindActionToState(action, state) {\n var exec = action.exec;\n\n var boundAction = __assign(__assign({}, action), {\n exec: exec !== undefined ? function () {\n return exec(state.context, state.event, {\n action: action,\n state: state,\n _event: state._event\n });\n } : undefined\n });\n\n return boundAction;\n}\n\nvar State =\n/*#__PURE__*/\n\n/** @class */\nfunction () {\n /**\r\n * Creates a new State instance.\r\n * @param value The state value\r\n * @param context The extended state\r\n * @param historyValue The tree representing historical values of the state nodes\r\n * @param history The previous state\r\n * @param actions An array of action objects to execute as side-effects\r\n * @param activities A mapping of activities and whether they are started (`true`) or stopped (`false`).\r\n * @param meta\r\n * @param events Internal event queue. Should be empty with run-to-completion semantics.\r\n * @param configuration\r\n */\n function State(config) {\n this.actions = [];\n this.activities = EMPTY_ACTIVITY_MAP;\n this.meta = {};\n this.events = [];\n this.value = config.value;\n this.context = config.context;\n this._event = config._event;\n this._sessionid = config._sessionid;\n this.event = this._event.data;\n this.historyValue = config.historyValue;\n this.history = config.history;\n this.actions = config.actions || [];\n this.activities = config.activities || EMPTY_ACTIVITY_MAP;\n this.meta = config.meta || {};\n this.events = config.events || [];\n this.matches = this.matches.bind(this);\n this.toStrings = this.toStrings.bind(this);\n this.configuration = config.configuration;\n this.transitions = config.transitions;\n this.children = config.children;\n this.done = !!config.done;\n Object.defineProperty(this, 'nextEvents', {\n get: function get() {\n return nextEvents(config.configuration);\n }\n });\n }\n /**\r\n * Creates a new State instance for the given `stateValue` and `context`.\r\n * @param stateValue\r\n * @param context\r\n */\n\n\n State.from = function (stateValue, context) {\n if (stateValue instanceof State) {\n if (stateValue.context !== context) {\n return new State({\n value: stateValue.value,\n context: context,\n _event: stateValue._event,\n _sessionid: null,\n historyValue: stateValue.historyValue,\n history: stateValue.history,\n actions: [],\n activities: stateValue.activities,\n meta: {},\n events: [],\n configuration: [],\n transitions: [],\n children: {}\n });\n }\n\n return stateValue;\n }\n\n var _event = initEvent;\n return new State({\n value: stateValue,\n context: context,\n _event: _event,\n _sessionid: null,\n historyValue: undefined,\n history: undefined,\n actions: [],\n activities: undefined,\n meta: undefined,\n events: [],\n configuration: [],\n transitions: [],\n children: {}\n });\n };\n /**\r\n * Creates a new State instance for the given `config`.\r\n * @param config The state config\r\n */\n\n\n State.create = function (config) {\n return new State(config);\n };\n /**\r\n * Creates a new `State` instance for the given `stateValue` and `context` with no actions (side-effects).\r\n * @param stateValue\r\n * @param context\r\n */\n\n\n State.inert = function (stateValue, context) {\n if (stateValue instanceof State) {\n if (!stateValue.actions.length) {\n return stateValue;\n }\n\n var _event = initEvent;\n return new State({\n value: stateValue.value,\n context: context,\n _event: _event,\n _sessionid: null,\n historyValue: stateValue.historyValue,\n history: stateValue.history,\n activities: stateValue.activities,\n configuration: stateValue.configuration,\n transitions: [],\n children: {}\n });\n }\n\n return State.from(stateValue, context);\n };\n /**\r\n * Returns an array of all the string leaf state node paths.\r\n * @param stateValue\r\n * @param delimiter The character(s) that separate each subpath in the string state node path.\r\n */\n\n\n State.prototype.toStrings = function (stateValue, delimiter) {\n var _this = this;\n\n if (stateValue === void 0) {\n stateValue = this.value;\n }\n\n if (delimiter === void 0) {\n delimiter = '.';\n }\n\n if (isString(stateValue)) {\n return [stateValue];\n }\n\n var valueKeys = keys(stateValue);\n return valueKeys.concat.apply(valueKeys, __spread(valueKeys.map(function (key) {\n return _this.toStrings(stateValue[key], delimiter).map(function (s) {\n return key + delimiter + s;\n });\n })));\n };\n\n State.prototype.toJSON = function () {\n var _a = this,\n configuration = _a.configuration,\n transitions = _a.transitions,\n jsonValues = __rest(_a, [\"configuration\", \"transitions\"]);\n\n return jsonValues;\n };\n /**\r\n * Whether the current state value is a subset of the given parent state value.\r\n * @param parentStateValue\r\n */\n\n\n State.prototype.matches = function (parentStateValue) {\n return matchesState(parentStateValue, this.value);\n };\n\n return State;\n}();\n\nexport { State, bindActionToState, isState, stateValuesEqual };","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nfunction __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nfunction __values(o) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator],\n i = 0;\n if (m) return m.call(o);\n return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n}\n\nfunction __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\n\nfunction __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\n\nexport { _assign as __assign, __read, __rest, __spread, __values };","function _typeof2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\n(function webpackUniversalModuleDefinition(root, factory) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof2(exports)) === 'object' && (typeof module === \"undefined\" ? \"undefined\" : _typeof2(module)) === 'object') module.exports = factory();else if (typeof define === 'function' && define.amd) define(\"Joi\", [], factory);else if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof2(exports)) === 'object') exports[\"Joi\"] = factory();else root[\"Joi\"] = factory();\n})(this, function () {\n return (\n /******/\n function (modules) {\n // webpackBootstrap\n\n /******/\n // The module cache\n\n /******/\n var installedModules = {};\n /******/\n\n /******/\n // The require function\n\n /******/\n\n function __webpack_require__(moduleId) {\n /******/\n\n /******/\n // Check if module is in cache\n\n /******/\n if (installedModules[moduleId]) {\n /******/\n return installedModules[moduleId].exports;\n /******/\n }\n /******/\n // Create a new module (and put it into the cache)\n\n /******/\n\n\n var module = installedModules[moduleId] = {\n /******/\n i: moduleId,\n\n /******/\n l: false,\n\n /******/\n exports: {}\n /******/\n\n };\n /******/\n\n /******/\n // Execute the module function\n\n /******/\n\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n\n /******/\n // Flag the module as loaded\n\n /******/\n\n module.l = true;\n /******/\n\n /******/\n // Return the exports of the module\n\n /******/\n\n return module.exports;\n /******/\n }\n /******/\n\n /******/\n\n /******/\n // expose the modules object (__webpack_modules__)\n\n /******/\n\n\n __webpack_require__.m = modules;\n /******/\n\n /******/\n // expose the module cache\n\n /******/\n\n __webpack_require__.c = installedModules;\n /******/\n\n /******/\n // identity function for calling harmony imports with the correct context\n\n /******/\n\n __webpack_require__.i = function (value) {\n return value;\n };\n /******/\n\n /******/\n // define getter function for harmony exports\n\n /******/\n\n\n __webpack_require__.d = function (exports, name, getter) {\n /******/\n if (!__webpack_require__.o(exports, name)) {\n /******/\n Object.defineProperty(exports, name, {\n /******/\n configurable: false,\n\n /******/\n enumerable: true,\n\n /******/\n get: getter\n /******/\n\n });\n /******/\n }\n /******/\n\n };\n /******/\n\n /******/\n // getDefaultExport function for compatibility with non-harmony modules\n\n /******/\n\n\n __webpack_require__.n = function (module) {\n /******/\n var getter = module && module.__esModule ?\n /******/\n function getDefault() {\n return module['default'];\n } :\n /******/\n function getModuleExports() {\n return module;\n };\n /******/\n\n __webpack_require__.d(getter, 'a', getter);\n /******/\n\n\n return getter;\n /******/\n };\n /******/\n\n /******/\n // Object.prototype.hasOwnProperty.call\n\n /******/\n\n\n __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n\n /******/\n // __webpack_public_path__\n\n /******/\n\n\n __webpack_require__.p = \"\";\n /******/\n\n /******/\n // Load entry module and return exports\n\n /******/\n\n return __webpack_require__(__webpack_require__.s = 29);\n /******/\n }(\n /************************************************************************/\n\n /******/\n [\n /* 0 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n /* WEBPACK VAR INJECTION */\n\n (function (Buffer, process) {\n // Load modules\n var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n\n var Crypto = __webpack_require__(14);\n\n var Path = __webpack_require__(34);\n\n var Util = __webpack_require__(38);\n\n var Escape = __webpack_require__(15); // Declare internals\n\n\n var internals = {}; // Clone object or array\n\n exports.clone = function (obj, seen) {\n if ((typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) !== 'object' || obj === null) {\n return obj;\n }\n\n seen = seen || new Map();\n var lookup = seen.get(obj);\n\n if (lookup) {\n return lookup;\n }\n\n var newObj = void 0;\n var cloneDeep = false;\n\n if (!Array.isArray(obj)) {\n if (Buffer.isBuffer(obj)) {\n newObj = new Buffer(obj);\n } else if (obj instanceof Date) {\n newObj = new Date(obj.getTime());\n } else if (obj instanceof RegExp) {\n newObj = new RegExp(obj);\n } else {\n var proto = Object.getPrototypeOf(obj);\n\n if (proto && proto.isImmutable) {\n newObj = obj;\n } else {\n newObj = Object.create(proto);\n cloneDeep = true;\n }\n }\n } else {\n newObj = [];\n cloneDeep = true;\n }\n\n seen.set(obj, newObj);\n\n if (cloneDeep) {\n var keys = Object.getOwnPropertyNames(obj);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var descriptor = Object.getOwnPropertyDescriptor(obj, key);\n\n if (descriptor && (descriptor.get || descriptor.set)) {\n Object.defineProperty(newObj, key, descriptor);\n } else {\n newObj[key] = exports.clone(obj[key], seen);\n }\n }\n }\n\n return newObj;\n }; // Merge all the properties of source into target, source wins in conflict, and by default null and undefined from source are applied\n\n /*eslint-disable */\n\n\n exports.merge = function (target, source, isNullOverride\n /* = true */\n , isMergeArrays\n /* = true */\n ) {\n /*eslint-enable */\n exports.assert(target && (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object', 'Invalid target value: must be an object');\n exports.assert(source === null || source === undefined || (typeof source === 'undefined' ? 'undefined' : _typeof(source)) === 'object', 'Invalid source value: must be null, undefined, or an object');\n\n if (!source) {\n return target;\n }\n\n if (Array.isArray(source)) {\n exports.assert(Array.isArray(target), 'Cannot merge array onto an object');\n\n if (isMergeArrays === false) {\n // isMergeArrays defaults to true\n target.length = 0; // Must not change target assignment\n }\n\n for (var i = 0; i < source.length; ++i) {\n target.push(exports.clone(source[i]));\n }\n\n return target;\n }\n\n var keys = Object.keys(source);\n\n for (var _i = 0; _i < keys.length; ++_i) {\n var key = keys[_i];\n var value = source[key];\n\n if (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object') {\n if (!target[key] || _typeof(target[key]) !== 'object' || Array.isArray(target[key]) !== Array.isArray(value) || value instanceof Date || Buffer.isBuffer(value) || value instanceof RegExp) {\n target[key] = exports.clone(value);\n } else {\n exports.merge(target[key], value, isNullOverride, isMergeArrays);\n }\n } else {\n if (value !== null && value !== undefined) {\n // Explicit to preserve empty strings\n target[key] = value;\n } else if (isNullOverride !== false) {\n // Defaults to true\n target[key] = value;\n }\n }\n }\n\n return target;\n }; // Apply options to a copy of the defaults\n\n\n exports.applyToDefaults = function (defaults, options, isNullOverride) {\n exports.assert(defaults && (typeof defaults === 'undefined' ? 'undefined' : _typeof(defaults)) === 'object', 'Invalid defaults value: must be an object');\n exports.assert(!options || options === true || (typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object', 'Invalid options value: must be true, falsy or an object');\n\n if (!options) {\n // If no options, return null\n return null;\n }\n\n var copy = exports.clone(defaults);\n\n if (options === true) {\n // If options is set to true, use defaults\n return copy;\n }\n\n return exports.merge(copy, options, isNullOverride === true, false);\n }; // Clone an object except for the listed keys which are shallow copied\n\n\n exports.cloneWithShallow = function (source, keys) {\n if (!source || (typeof source === 'undefined' ? 'undefined' : _typeof(source)) !== 'object') {\n return source;\n }\n\n var storage = internals.store(source, keys); // Move shallow copy items to storage\n\n var copy = exports.clone(source); // Deep copy the rest\n\n internals.restore(copy, source, storage); // Shallow copy the stored items and restore\n\n return copy;\n };\n\n internals.store = function (source, keys) {\n var storage = {};\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var value = exports.reach(source, key);\n\n if (value !== undefined) {\n storage[key] = value;\n internals.reachSet(source, key, undefined);\n }\n }\n\n return storage;\n };\n\n internals.restore = function (copy, source, storage) {\n var keys = Object.keys(storage);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n internals.reachSet(copy, key, storage[key]);\n internals.reachSet(source, key, storage[key]);\n }\n };\n\n internals.reachSet = function (obj, key, value) {\n var path = key.split('.');\n var ref = obj;\n\n for (var i = 0; i < path.length; ++i) {\n var segment = path[i];\n\n if (i + 1 === path.length) {\n ref[segment] = value;\n }\n\n ref = ref[segment];\n }\n }; // Apply options to defaults except for the listed keys which are shallow copied from option without merging\n\n\n exports.applyToDefaultsWithShallow = function (defaults, options, keys) {\n exports.assert(defaults && (typeof defaults === 'undefined' ? 'undefined' : _typeof(defaults)) === 'object', 'Invalid defaults value: must be an object');\n exports.assert(!options || options === true || (typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object', 'Invalid options value: must be true, falsy or an object');\n exports.assert(keys && Array.isArray(keys), 'Invalid keys');\n\n if (!options) {\n // If no options, return null\n return null;\n }\n\n var copy = exports.cloneWithShallow(defaults, keys);\n\n if (options === true) {\n // If options is set to true, use defaults\n return copy;\n }\n\n var storage = internals.store(options, keys); // Move shallow copy items to storage\n\n exports.merge(copy, options, false, false); // Deep copy the rest\n\n internals.restore(copy, options, storage); // Shallow copy the stored items and restore\n\n return copy;\n }; // Deep object or array comparison\n\n\n exports.deepEqual = function (obj, ref, options, seen) {\n options = options || {\n prototype: true\n };\n var type = typeof obj === 'undefined' ? 'undefined' : _typeof(obj);\n\n if (type !== (typeof ref === 'undefined' ? 'undefined' : _typeof(ref))) {\n return false;\n }\n\n if (type !== 'object' || obj === null || ref === null) {\n if (obj === ref) {\n // Copied from Deep-eql, copyright(c) 2013 Jake Luer, jake@alogicalparadox.com, MIT Licensed, https://github.com/chaijs/deep-eql\n return obj !== 0 || 1 / obj === 1 / ref; // -0 / +0\n }\n\n return obj !== obj && ref !== ref; // NaN\n }\n\n seen = seen || [];\n\n if (seen.indexOf(obj) !== -1) {\n return true; // If previous comparison failed, it would have stopped execution\n }\n\n seen.push(obj);\n\n if (Array.isArray(obj)) {\n if (!Array.isArray(ref)) {\n return false;\n }\n\n if (!options.part && obj.length !== ref.length) {\n return false;\n }\n\n for (var i = 0; i < obj.length; ++i) {\n if (options.part) {\n var found = false;\n\n for (var j = 0; j < ref.length; ++j) {\n if (exports.deepEqual(obj[i], ref[j], options)) {\n found = true;\n break;\n }\n }\n\n return found;\n }\n\n if (!exports.deepEqual(obj[i], ref[i], options)) {\n return false;\n }\n }\n\n return true;\n }\n\n if (Buffer.isBuffer(obj)) {\n if (!Buffer.isBuffer(ref)) {\n return false;\n }\n\n if (obj.length !== ref.length) {\n return false;\n }\n\n for (var _i2 = 0; _i2 < obj.length; ++_i2) {\n if (obj[_i2] !== ref[_i2]) {\n return false;\n }\n }\n\n return true;\n }\n\n if (obj instanceof Date) {\n return ref instanceof Date && obj.getTime() === ref.getTime();\n }\n\n if (obj instanceof RegExp) {\n return ref instanceof RegExp && obj.toString() === ref.toString();\n }\n\n if (options.prototype) {\n if (Object.getPrototypeOf(obj) !== Object.getPrototypeOf(ref)) {\n return false;\n }\n }\n\n var keys = Object.getOwnPropertyNames(obj);\n\n if (!options.part && keys.length !== Object.getOwnPropertyNames(ref).length) {\n return false;\n }\n\n for (var _i3 = 0; _i3 < keys.length; ++_i3) {\n var key = keys[_i3];\n var descriptor = Object.getOwnPropertyDescriptor(obj, key);\n\n if (descriptor.get) {\n if (!exports.deepEqual(descriptor, Object.getOwnPropertyDescriptor(ref, key), options, seen)) {\n return false;\n }\n } else if (!exports.deepEqual(obj[key], ref[key], options, seen)) {\n return false;\n }\n }\n\n return true;\n }; // Remove duplicate items from array\n\n\n exports.unique = function (array, key) {\n var result = void 0;\n\n if (key) {\n result = [];\n var index = new Set();\n array.forEach(function (item) {\n var identifier = item[key];\n\n if (!index.has(identifier)) {\n index.add(identifier);\n result.push(item);\n }\n });\n } else {\n result = Array.from(new Set(array));\n }\n\n return result;\n }; // Convert array into object\n\n\n exports.mapToObject = function (array, key) {\n if (!array) {\n return null;\n }\n\n var obj = {};\n\n for (var i = 0; i < array.length; ++i) {\n if (key) {\n if (array[i][key]) {\n obj[array[i][key]] = true;\n }\n } else {\n obj[array[i]] = true;\n }\n }\n\n return obj;\n }; // Find the common unique items in two arrays\n\n\n exports.intersect = function (array1, array2, justFirst) {\n if (!array1 || !array2) {\n return [];\n }\n\n var common = [];\n var hash = Array.isArray(array1) ? exports.mapToObject(array1) : array1;\n var found = {};\n\n for (var i = 0; i < array2.length; ++i) {\n if (hash[array2[i]] && !found[array2[i]]) {\n if (justFirst) {\n return array2[i];\n }\n\n common.push(array2[i]);\n found[array2[i]] = true;\n }\n }\n\n return justFirst ? null : common;\n }; // Test if the reference contains the values\n\n\n exports.contain = function (ref, values, options) {\n /*\n string -> string(s)\n array -> item(s)\n object -> key(s)\n object -> object (key:value)\n */\n var valuePairs = null;\n\n if ((typeof ref === 'undefined' ? 'undefined' : _typeof(ref)) === 'object' && (typeof values === 'undefined' ? 'undefined' : _typeof(values)) === 'object' && !Array.isArray(ref) && !Array.isArray(values)) {\n valuePairs = values;\n values = Object.keys(values);\n } else {\n values = [].concat(values);\n }\n\n options = options || {}; // deep, once, only, part\n\n exports.assert(typeof ref === 'string' || (typeof ref === 'undefined' ? 'undefined' : _typeof(ref)) === 'object', 'Reference must be string or an object');\n exports.assert(values.length, 'Values array cannot be empty');\n var compare = void 0;\n var compareFlags = void 0;\n\n if (options.deep) {\n compare = exports.deepEqual;\n var hasOnly = options.hasOwnProperty('only');\n var hasPart = options.hasOwnProperty('part');\n compareFlags = {\n prototype: hasOnly ? options.only : hasPart ? !options.part : false,\n part: hasOnly ? !options.only : hasPart ? options.part : true\n };\n } else {\n compare = function compare(a, b) {\n return a === b;\n };\n }\n\n var misses = false;\n var matches = new Array(values.length);\n\n for (var i = 0; i < matches.length; ++i) {\n matches[i] = 0;\n }\n\n if (typeof ref === 'string') {\n var pattern = '(';\n\n for (var _i4 = 0; _i4 < values.length; ++_i4) {\n var value = values[_i4];\n exports.assert(typeof value === 'string', 'Cannot compare string reference to non-string value');\n pattern += (_i4 ? '|' : '') + exports.escapeRegex(value);\n }\n\n var regex = new RegExp(pattern + ')', 'g');\n var leftovers = ref.replace(regex, function ($0, $1) {\n var index = values.indexOf($1);\n ++matches[index];\n return ''; // Remove from string\n });\n misses = !!leftovers;\n } else if (Array.isArray(ref)) {\n for (var _i5 = 0; _i5 < ref.length; ++_i5) {\n var matched = false;\n\n for (var j = 0; j < values.length && matched === false; ++j) {\n matched = compare(values[j], ref[_i5], compareFlags) && j;\n }\n\n if (matched !== false) {\n ++matches[matched];\n } else {\n misses = true;\n }\n }\n } else {\n var keys = Object.getOwnPropertyNames(ref);\n\n for (var _i6 = 0; _i6 < keys.length; ++_i6) {\n var key = keys[_i6];\n var pos = values.indexOf(key);\n\n if (pos !== -1) {\n if (valuePairs && !compare(valuePairs[key], ref[key], compareFlags)) {\n return false;\n }\n\n ++matches[pos];\n } else {\n misses = true;\n }\n }\n }\n\n var result = false;\n\n for (var _i7 = 0; _i7 < matches.length; ++_i7) {\n result = result || !!matches[_i7];\n\n if (options.once && matches[_i7] > 1 || !options.part && !matches[_i7]) {\n return false;\n }\n }\n\n if (options.only && misses) {\n return false;\n }\n\n return result;\n }; // Flatten array\n\n\n exports.flatten = function (array, target) {\n var result = target || [];\n\n for (var i = 0; i < array.length; ++i) {\n if (Array.isArray(array[i])) {\n exports.flatten(array[i], result);\n } else {\n result.push(array[i]);\n }\n }\n\n return result;\n }; // Convert an object key chain string ('a.b.c') to reference (object[a][b][c])\n\n\n exports.reach = function (obj, chain, options) {\n if (chain === false || chain === null || typeof chain === 'undefined') {\n return obj;\n }\n\n options = options || {};\n\n if (typeof options === 'string') {\n options = {\n separator: options\n };\n }\n\n var path = chain.split(options.separator || '.');\n var ref = obj;\n\n for (var i = 0; i < path.length; ++i) {\n var key = path[i];\n\n if (key[0] === '-' && Array.isArray(ref)) {\n key = key.slice(1, key.length);\n key = ref.length - key;\n }\n\n if (!ref || !(((typeof ref === 'undefined' ? 'undefined' : _typeof(ref)) === 'object' || typeof ref === 'function') && key in ref) || (typeof ref === 'undefined' ? 'undefined' : _typeof(ref)) !== 'object' && options.functions === false) {\n // Only object and function can have properties\n exports.assert(!options.strict || i + 1 === path.length, 'Missing segment', key, 'in reach path ', chain);\n exports.assert((typeof ref === 'undefined' ? 'undefined' : _typeof(ref)) === 'object' || options.functions === true || typeof ref !== 'function', 'Invalid segment', key, 'in reach path ', chain);\n ref = options[\"default\"];\n break;\n }\n\n ref = ref[key];\n }\n\n return ref;\n };\n\n exports.reachTemplate = function (obj, template, options) {\n return template.replace(/{([^}]+)}/g, function ($0, chain) {\n var value = exports.reach(obj, chain, options);\n return value === undefined || value === null ? '' : value;\n });\n };\n\n exports.formatStack = function (stack) {\n var trace = [];\n\n for (var i = 0; i < stack.length; ++i) {\n var item = stack[i];\n trace.push([item.getFileName(), item.getLineNumber(), item.getColumnNumber(), item.getFunctionName(), item.isConstructor()]);\n }\n\n return trace;\n };\n\n exports.formatTrace = function (trace) {\n var display = [];\n\n for (var i = 0; i < trace.length; ++i) {\n var row = trace[i];\n display.push((row[4] ? 'new ' : '') + row[3] + ' (' + row[0] + ':' + row[1] + ':' + row[2] + ')');\n }\n\n return display;\n };\n\n exports.callStack = function (slice) {\n // http://code.google.com/p/v8/wiki/JavaScriptStackTraceApi\n var v8 = Error.prepareStackTrace;\n\n Error.prepareStackTrace = function (_, stack) {\n return stack;\n };\n\n var capture = {};\n Error.captureStackTrace(capture, this);\n var stack = capture.stack;\n Error.prepareStackTrace = v8;\n var trace = exports.formatStack(stack);\n return trace.slice(1 + slice);\n };\n\n exports.displayStack = function (slice) {\n var trace = exports.callStack(slice === undefined ? 1 : slice + 1);\n return exports.formatTrace(trace);\n };\n\n exports.abortThrow = false;\n\n exports.abort = function (message, hideStack) {\n if (process.env.NODE_ENV === 'test' || exports.abortThrow === true) {\n throw new Error(message || 'Unknown error');\n }\n\n var stack = '';\n\n if (!hideStack) {\n stack = exports.displayStack(1).join('\\n\\t');\n }\n\n console.log('ABORT: ' + message + '\\n\\t' + stack);\n process.exit(1);\n };\n\n exports.assert = function (condition) {\n if (condition) {\n return;\n }\n\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (args.length === 1 && args[0] instanceof Error) {\n throw args[0];\n }\n\n var msgs = args.filter(function (arg) {\n return arg !== '';\n }).map(function (arg) {\n return typeof arg === 'string' ? arg : arg instanceof Error ? arg.message : exports.stringify(arg);\n });\n throw new Error(msgs.join(' ') || 'Unknown error');\n };\n\n exports.Bench = function () {\n this.ts = 0;\n this.reset();\n };\n\n exports.Bench.prototype.reset = function () {\n this.ts = exports.Bench.now();\n };\n\n exports.Bench.prototype.elapsed = function () {\n return exports.Bench.now() - this.ts;\n };\n\n exports.Bench.now = function () {\n var ts = process.hrtime();\n return ts[0] * 1e3 + ts[1] / 1e6;\n }; // Escape string for Regex construction\n\n\n exports.escapeRegex = function (string) {\n // Escape ^$.*+-?=!:|\\/()[]{},\n return string.replace(/[\\^\\$\\.\\*\\+\\-\\?\\=\\!\\:\\|\\\\\\/\\(\\)\\[\\]\\{\\}\\,]/g, '\\\\$&');\n }; // Base64url (RFC 4648) encode\n\n\n exports.base64urlEncode = function (value, encoding) {\n exports.assert(typeof value === 'string' || Buffer.isBuffer(value), 'value must be string or buffer');\n var buf = Buffer.isBuffer(value) ? value : new Buffer(value, encoding || 'binary');\n return buf.toString('base64').replace(/\\+/g, '-').replace(/\\//g, '_').replace(/\\=/g, '');\n }; // Base64url (RFC 4648) decode\n\n\n exports.base64urlDecode = function (value, encoding) {\n if (typeof value !== 'string') {\n throw new Error('Value not a string');\n }\n\n if (!/^[\\w\\-]*$/.test(value)) {\n throw new Error('Invalid character');\n }\n\n var buf = new Buffer(value, 'base64');\n return encoding === 'buffer' ? buf : buf.toString(encoding || 'binary');\n }; // Escape attribute value for use in HTTP header\n\n\n exports.escapeHeaderAttribute = function (attribute) {\n // Allowed value characters: !#$%&'()*+,-./:;<=>?@[]^_`{|}~ and space, a-z, A-Z, 0-9, \\, \"\n exports.assert(/^[ \\w\\!#\\$%&'\\(\\)\\*\\+,\\-\\.\\/\\:;<\\=>\\?@\\[\\]\\^`\\{\\|\\}~\\\"\\\\]*$/.test(attribute), 'Bad attribute value (' + attribute + ')');\n return attribute.replace(/\\\\/g, '\\\\\\\\').replace(/\\\"/g, '\\\\\"'); // Escape quotes and slash\n };\n\n exports.escapeHtml = function (string) {\n return Escape.escapeHtml(string);\n };\n\n exports.escapeJavaScript = function (string) {\n return Escape.escapeJavaScript(string);\n };\n\n exports.escapeJson = function (string) {\n return Escape.escapeJson(string);\n };\n\n exports.once = function (method) {\n if (method._hoekOnce) {\n return method;\n }\n\n var once = false;\n\n var wrapped = function wrapped() {\n if (!once) {\n once = true;\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n method.apply(null, args);\n }\n };\n\n wrapped._hoekOnce = true;\n return wrapped;\n };\n\n exports.isInteger = Number.isSafeInteger;\n\n exports.ignore = function () {};\n\n exports.inherits = Util.inherits;\n exports.format = Util.format;\n\n exports.transform = function (source, transform, options) {\n exports.assert(source === null || source === undefined || (typeof source === 'undefined' ? 'undefined' : _typeof(source)) === 'object' || Array.isArray(source), 'Invalid source object: must be null, undefined, an object, or an array');\n var separator = (typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object' && options !== null ? options.separator || '.' : '.';\n\n if (Array.isArray(source)) {\n var results = [];\n\n for (var i = 0; i < source.length; ++i) {\n results.push(exports.transform(source[i], transform, options));\n }\n\n return results;\n }\n\n var result = {};\n var keys = Object.keys(transform);\n\n for (var _i8 = 0; _i8 < keys.length; ++_i8) {\n var key = keys[_i8];\n var path = key.split(separator);\n var sourcePath = transform[key];\n exports.assert(typeof sourcePath === 'string', 'All mappings must be \".\" delineated strings');\n var segment = void 0;\n var res = result;\n\n while (path.length > 1) {\n segment = path.shift();\n\n if (!res[segment]) {\n res[segment] = {};\n }\n\n res = res[segment];\n }\n\n segment = path.shift();\n res[segment] = exports.reach(source, sourcePath, options);\n }\n\n return result;\n };\n\n exports.uniqueFilename = function (path, extension) {\n if (extension) {\n extension = extension[0] !== '.' ? '.' + extension : extension;\n } else {\n extension = '';\n }\n\n path = Path.resolve(path);\n var name = [Date.now(), process.pid, Crypto.randomBytes(8).toString('hex')].join('-') + extension;\n return Path.join(path, name);\n };\n\n exports.stringify = function () {\n try {\n for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return JSON.stringify.apply(null, args);\n } catch (err) {\n return '[Cannot display object: ' + err.message + ']';\n }\n };\n\n exports.shallow = function (source) {\n var target = {};\n var keys = Object.keys(source);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n target[key] = source[key];\n }\n\n return target;\n };\n\n exports.wait = function (timeout) {\n return new Promise(function (resolve) {\n return setTimeout(resolve, timeout);\n });\n };\n\n exports.block = function () {\n return new Promise(exports.ignore);\n };\n /* WEBPACK VAR INJECTION */\n\n }).call(exports, __webpack_require__(3).Buffer, __webpack_require__(5));\n /***/\n },\n /* 1 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n var Hoek = __webpack_require__(0); // Declare internals\n\n\n var internals = {};\n\n exports.create = function (key, options) {\n Hoek.assert(typeof key === 'string', 'Invalid reference key:', key);\n var settings = Hoek.clone(options); // options can be reused and modified\n\n var ref = function ref(value, validationOptions) {\n return Hoek.reach(ref.isContext ? validationOptions.context : value, ref.key, settings);\n };\n\n ref.isContext = key[0] === (settings && settings.contextPrefix || '$');\n ref.key = ref.isContext ? key.slice(1) : key;\n ref.path = ref.key.split(settings && settings.separator || '.');\n ref.depth = ref.path.length;\n ref.root = ref.path[0];\n ref.isJoi = true;\n\n ref.toString = function () {\n return (ref.isContext ? 'context:' : 'ref:') + ref.key;\n };\n\n return ref;\n };\n\n exports.isRef = function (ref) {\n return typeof ref === 'function' && ref.isJoi;\n };\n\n exports.push = function (array, ref) {\n if (exports.isRef(ref) && !ref.isContext) {\n array.push(ref.root);\n }\n };\n /***/\n\n },\n /* 2 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var Hoek = __webpack_require__(0);\n\n var Ref = __webpack_require__(1);\n\n var Errors = __webpack_require__(6);\n\n var Alternatives = null; // Delay-loaded to prevent circular dependencies\n\n var Cast = null; // Declare internals\n\n var internals = {\n Set: __webpack_require__(9)\n };\n internals.defaults = {\n abortEarly: true,\n convert: true,\n allowUnknown: false,\n skipFunctions: false,\n stripUnknown: false,\n language: {},\n presence: 'optional',\n strip: false,\n noDefaults: false,\n escapeHtml: false // context: null\n\n };\n\n module.exports = internals.Any = function () {\n function _class() {\n _classCallCheck(this, _class);\n\n Cast = Cast || __webpack_require__(4);\n this.isJoi = true;\n this._type = 'any';\n this._settings = null;\n this._valids = new internals.Set();\n this._invalids = new internals.Set();\n this._tests = [];\n this._refs = [];\n this._flags = {\n /*\n presence: 'optional', // optional, required, forbidden, ignore\n allowOnly: false,\n allowUnknown: undefined,\n default: undefined,\n forbidden: false,\n encoding: undefined,\n insensitive: false,\n trim: false,\n normalize: undefined, // NFC, NFD, NFKC, NFKD\n case: undefined, // upper, lower\n empty: undefined,\n func: false,\n raw: false\n */\n };\n this._description = null;\n this._unit = null;\n this._notes = [];\n this._tags = [];\n this._examples = [];\n this._meta = [];\n this._inner = {}; // Hash of arrays of immutable objects\n }\n\n _class.prototype.createError = function createError(type, context, state, options) {\n var flags = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this._flags;\n return Errors.create(type, context, state, options, flags);\n };\n\n _class.prototype.createOverrideError = function createOverrideError(type, context, state, options, message, template) {\n return Errors.create(type, context, state, options, this._flags, message, template);\n };\n\n _class.prototype.checkOptions = function checkOptions(options) {\n var Schemas = __webpack_require__(18);\n\n var result = Schemas.options.validate(options);\n\n if (result.error) {\n throw new Error(result.error.details[0].message);\n }\n };\n\n _class.prototype.clone = function clone() {\n var obj = Object.create(Object.getPrototypeOf(this));\n obj.isJoi = true;\n obj._currentJoi = this._currentJoi;\n obj._type = this._type;\n obj._settings = internals.concatSettings(this._settings);\n obj._baseType = this._baseType;\n obj._valids = Hoek.clone(this._valids);\n obj._invalids = Hoek.clone(this._invalids);\n obj._tests = this._tests.slice();\n obj._refs = this._refs.slice();\n obj._flags = Hoek.clone(this._flags);\n obj._description = this._description;\n obj._unit = this._unit;\n obj._notes = this._notes.slice();\n obj._tags = this._tags.slice();\n obj._examples = this._examples.slice();\n obj._meta = this._meta.slice();\n obj._inner = {};\n var inners = Object.keys(this._inner);\n\n for (var i = 0; i < inners.length; ++i) {\n var key = inners[i];\n obj._inner[key] = this._inner[key] ? this._inner[key].slice() : null;\n }\n\n return obj;\n };\n\n _class.prototype.concat = function concat(schema) {\n Hoek.assert(schema instanceof internals.Any, 'Invalid schema object');\n Hoek.assert(this._type === 'any' || schema._type === 'any' || schema._type === this._type, 'Cannot merge type', this._type, 'with another type:', schema._type);\n var obj = this.clone();\n\n if (this._type === 'any' && schema._type !== 'any') {\n // Reset values as if we were \"this\"\n var tmpObj = schema.clone();\n var keysToRestore = ['_settings', '_valids', '_invalids', '_tests', '_refs', '_flags', '_description', '_unit', '_notes', '_tags', '_examples', '_meta', '_inner'];\n\n for (var i = 0; i < keysToRestore.length; ++i) {\n tmpObj[keysToRestore[i]] = obj[keysToRestore[i]];\n }\n\n obj = tmpObj;\n }\n\n obj._settings = obj._settings ? internals.concatSettings(obj._settings, schema._settings) : schema._settings;\n\n obj._valids.merge(schema._valids, schema._invalids);\n\n obj._invalids.merge(schema._invalids, schema._valids);\n\n obj._tests = obj._tests.concat(schema._tests);\n obj._refs = obj._refs.concat(schema._refs);\n Hoek.merge(obj._flags, schema._flags);\n obj._description = schema._description || obj._description;\n obj._unit = schema._unit || obj._unit;\n obj._notes = obj._notes.concat(schema._notes);\n obj._tags = obj._tags.concat(schema._tags);\n obj._examples = obj._examples.concat(schema._examples);\n obj._meta = obj._meta.concat(schema._meta);\n var inners = Object.keys(schema._inner);\n var isObject = obj._type === 'object';\n\n for (var _i = 0; _i < inners.length; ++_i) {\n var key = inners[_i];\n var source = schema._inner[key];\n\n if (source) {\n var target = obj._inner[key];\n\n if (target) {\n if (isObject && key === 'children') {\n var keys = {};\n\n for (var j = 0; j < target.length; ++j) {\n keys[target[j].key] = j;\n }\n\n for (var _j = 0; _j < source.length; ++_j) {\n var sourceKey = source[_j].key;\n\n if (keys[sourceKey] >= 0) {\n target[keys[sourceKey]] = {\n key: sourceKey,\n schema: target[keys[sourceKey]].schema.concat(source[_j].schema)\n };\n } else {\n target.push(source[_j]);\n }\n }\n } else {\n obj._inner[key] = obj._inner[key].concat(source);\n }\n } else {\n obj._inner[key] = source.slice();\n }\n }\n }\n\n return obj;\n };\n\n _class.prototype._test = function _test(name, arg, func, options) {\n var obj = this.clone();\n\n obj._tests.push({\n func: func,\n name: name,\n arg: arg,\n options: options\n });\n\n return obj;\n };\n\n _class.prototype.options = function options(_options) {\n Hoek.assert(!_options.context, 'Cannot override context');\n this.checkOptions(_options);\n var obj = this.clone();\n obj._settings = internals.concatSettings(obj._settings, _options);\n return obj;\n };\n\n _class.prototype.strict = function strict(isStrict) {\n var obj = this.clone();\n obj._settings = obj._settings || {};\n obj._settings.convert = isStrict === undefined ? false : !isStrict;\n return obj;\n };\n\n _class.prototype.raw = function raw(isRaw) {\n var value = isRaw === undefined ? true : isRaw;\n\n if (this._flags.raw === value) {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.raw = value;\n return obj;\n };\n\n _class.prototype.error = function error(err) {\n Hoek.assert(err && (err instanceof Error || typeof err === 'function'), 'Must provide a valid Error object or a function');\n var obj = this.clone();\n obj._flags.error = err;\n return obj;\n };\n\n _class.prototype.allow = function allow() {\n for (var _len = arguments.length, values = Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n var obj = this.clone();\n values = Hoek.flatten(values);\n\n for (var i = 0; i < values.length; ++i) {\n var value = values[i];\n Hoek.assert(value !== undefined, 'Cannot call allow/valid/invalid with undefined');\n\n obj._invalids.remove(value);\n\n obj._valids.add(value, obj._refs);\n }\n\n return obj;\n };\n\n _class.prototype.valid = function valid() {\n var obj = this.allow.apply(this, arguments);\n obj._flags.allowOnly = true;\n return obj;\n };\n\n _class.prototype.invalid = function invalid() {\n for (var _len2 = arguments.length, values = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n values[_key2] = arguments[_key2];\n }\n\n var obj = this.clone();\n values = Hoek.flatten(values);\n\n for (var i = 0; i < values.length; ++i) {\n var value = values[i];\n Hoek.assert(value !== undefined, 'Cannot call allow/valid/invalid with undefined');\n\n obj._valids.remove(value);\n\n obj._invalids.add(value, obj._refs);\n }\n\n return obj;\n };\n\n _class.prototype.required = function required() {\n if (this._flags.presence === 'required') {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.presence = 'required';\n return obj;\n };\n\n _class.prototype.optional = function optional() {\n if (this._flags.presence === 'optional') {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.presence = 'optional';\n return obj;\n };\n\n _class.prototype.forbidden = function forbidden() {\n if (this._flags.presence === 'forbidden') {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.presence = 'forbidden';\n return obj;\n };\n\n _class.prototype.strip = function strip() {\n if (this._flags.strip) {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.strip = true;\n return obj;\n };\n\n _class.prototype.applyFunctionToChildren = function applyFunctionToChildren(children, fn, args, root) {\n children = [].concat(children);\n\n if (children.length !== 1 || children[0] !== '') {\n root = root ? root + '.' : '';\n var extraChildren = (children[0] === '' ? children.slice(1) : children).map(function (child) {\n return root + child;\n });\n throw new Error('unknown key(s) ' + extraChildren.join(', '));\n }\n\n return this[fn].apply(this, args);\n };\n\n _class.prototype[\"default\"] = function _default(value, description) {\n if (typeof value === 'function' && !Ref.isRef(value)) {\n if (!value.description && description) {\n value.description = description;\n }\n\n if (!this._flags.func) {\n Hoek.assert(typeof value.description === 'string' && value.description.length > 0, 'description must be provided when default value is a function');\n }\n }\n\n var obj = this.clone();\n obj._flags[\"default\"] = value;\n Ref.push(obj._refs, value);\n return obj;\n };\n\n _class.prototype.empty = function empty(schema) {\n var obj = this.clone();\n\n if (schema === undefined) {\n delete obj._flags.empty;\n } else {\n obj._flags.empty = Cast.schema(this._currentJoi, schema);\n }\n\n return obj;\n };\n\n _class.prototype.when = function when(condition, options) {\n Hoek.assert(options && (typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object', 'Invalid options');\n Hoek.assert(options.then !== undefined || options.otherwise !== undefined, 'options must have at least one of \"then\" or \"otherwise\"');\n var then = options.hasOwnProperty('then') ? this.concat(Cast.schema(this._currentJoi, options.then)) : undefined;\n var otherwise = options.hasOwnProperty('otherwise') ? this.concat(Cast.schema(this._currentJoi, options.otherwise)) : undefined;\n Alternatives = Alternatives || __webpack_require__(10);\n var alternativeOptions = {\n then: then,\n otherwise: otherwise\n };\n\n if (Object.prototype.hasOwnProperty.call(options, 'is')) {\n alternativeOptions.is = options.is;\n }\n\n var obj = Alternatives.when(condition, alternativeOptions);\n obj._flags.presence = 'ignore';\n obj._baseType = this;\n return obj;\n };\n\n _class.prototype.description = function description(desc) {\n Hoek.assert(desc && typeof desc === 'string', 'Description must be a non-empty string');\n var obj = this.clone();\n obj._description = desc;\n return obj;\n };\n\n _class.prototype.notes = function notes(_notes) {\n Hoek.assert(_notes && (typeof _notes === 'string' || Array.isArray(_notes)), 'Notes must be a non-empty string or array');\n var obj = this.clone();\n obj._notes = obj._notes.concat(_notes);\n return obj;\n };\n\n _class.prototype.tags = function tags(_tags) {\n Hoek.assert(_tags && (typeof _tags === 'string' || Array.isArray(_tags)), 'Tags must be a non-empty string or array');\n var obj = this.clone();\n obj._tags = obj._tags.concat(_tags);\n return obj;\n };\n\n _class.prototype.meta = function meta(_meta) {\n Hoek.assert(_meta !== undefined, 'Meta cannot be undefined');\n var obj = this.clone();\n obj._meta = obj._meta.concat(_meta);\n return obj;\n };\n\n _class.prototype.example = function example() {\n Hoek.assert(arguments.length === 1, 'Missing example');\n var value = arguments.length <= 0 ? undefined : arguments[0];\n\n var result = this._validate(value, null, internals.defaults);\n\n Hoek.assert(!result.errors, 'Bad example:', result.errors && Errors.process(result.errors, value));\n var obj = this.clone();\n\n obj._examples.push(value);\n\n return obj;\n };\n\n _class.prototype.unit = function unit(name) {\n Hoek.assert(name && typeof name === 'string', 'Unit name must be a non-empty string');\n var obj = this.clone();\n obj._unit = name;\n return obj;\n };\n\n _class.prototype._prepareEmptyValue = function _prepareEmptyValue(value) {\n if (typeof value === 'string' && this._flags.trim) {\n return value.trim();\n }\n\n return value;\n };\n\n _class.prototype._validate = function _validate(value, state, options, reference) {\n var _this = this;\n\n var originalValue = value; // Setup state and settings\n\n state = state || {\n key: '',\n path: [],\n parent: null,\n reference: reference\n };\n\n if (this._settings) {\n options = internals.concatSettings(options, this._settings);\n }\n\n var errors = [];\n\n var finish = function finish() {\n var finalValue = void 0;\n\n if (value !== undefined) {\n finalValue = _this._flags.raw ? originalValue : value;\n } else if (options.noDefaults) {\n finalValue = value;\n } else if (Ref.isRef(_this._flags[\"default\"])) {\n finalValue = _this._flags[\"default\"](state.parent, options);\n } else if (typeof _this._flags[\"default\"] === 'function' && !(_this._flags.func && !_this._flags[\"default\"].description)) {\n var args = void 0;\n\n if (state.parent !== null && _this._flags[\"default\"].length > 0) {\n args = [Hoek.clone(state.parent), options];\n }\n\n var defaultValue = internals._try(_this._flags[\"default\"], args);\n\n finalValue = defaultValue.value;\n\n if (defaultValue.error) {\n errors.push(_this.createError('any.default', {\n error: defaultValue.error\n }, state, options));\n }\n } else {\n finalValue = Hoek.clone(_this._flags[\"default\"]);\n }\n\n if (errors.length && typeof _this._flags.error === 'function') {\n var change = _this._flags.error.call(_this, errors);\n\n if (typeof change === 'string') {\n errors = [_this.createOverrideError('override', {\n reason: errors\n }, state, options, change)];\n } else {\n errors = [].concat(change).map(function (err) {\n return err instanceof Error ? err : _this.createOverrideError(err.type || 'override', err.context, state, options, err.message, err.template);\n });\n }\n }\n\n return {\n value: _this._flags.strip ? undefined : finalValue,\n finalValue: finalValue,\n errors: errors.length ? errors : null\n };\n };\n\n if (this._coerce) {\n var coerced = this._coerce.call(this, value, state, options);\n\n if (coerced.errors) {\n value = coerced.value;\n errors = errors.concat(coerced.errors);\n return finish(); // Coerced error always aborts early\n }\n\n value = coerced.value;\n }\n\n if (this._flags.empty && !this._flags.empty._validate(this._prepareEmptyValue(value), null, internals.defaults).errors) {\n value = undefined;\n } // Check presence requirements\n\n\n var presence = this._flags.presence || options.presence;\n\n if (presence === 'optional') {\n if (value === undefined) {\n var isDeepDefault = this._flags.hasOwnProperty('default') && this._flags[\"default\"] === undefined;\n\n if (isDeepDefault && this._type === 'object') {\n value = {};\n } else {\n return finish();\n }\n }\n } else if (presence === 'required' && value === undefined) {\n errors.push(this.createError('any.required', null, state, options));\n return finish();\n } else if (presence === 'forbidden') {\n if (value === undefined) {\n return finish();\n }\n\n errors.push(this.createError('any.unknown', null, state, options));\n return finish();\n } // Check allowed and denied values using the original value\n\n\n if (this._valids.has(value, state, options, this._flags.insensitive)) {\n return finish();\n }\n\n if (this._invalids.has(value, state, options, this._flags.insensitive)) {\n errors.push(this.createError(value === '' ? 'any.empty' : 'any.invalid', null, state, options));\n\n if (options.abortEarly || value === undefined) {\n // No reason to keep validating missing value\n return finish();\n }\n } // Convert value and validate type\n\n\n if (this._base) {\n var base = this._base.call(this, value, state, options);\n\n if (base.errors) {\n value = base.value;\n errors = errors.concat(base.errors);\n return finish(); // Base error always aborts early\n }\n\n if (base.value !== value) {\n value = base.value; // Check allowed and denied values using the converted value\n\n if (this._valids.has(value, state, options, this._flags.insensitive)) {\n return finish();\n }\n\n if (this._invalids.has(value, state, options, this._flags.insensitive)) {\n errors.push(this.createError(value === '' ? 'any.empty' : 'any.invalid', null, state, options));\n\n if (options.abortEarly) {\n return finish();\n }\n }\n }\n } // Required values did not match\n\n\n if (this._flags.allowOnly) {\n errors.push(this.createError('any.allowOnly', {\n valids: this._valids.values({\n stripUndefined: true\n })\n }, state, options));\n\n if (options.abortEarly) {\n return finish();\n }\n } // Helper.validate tests\n\n\n for (var i = 0; i < this._tests.length; ++i) {\n var test = this._tests[i];\n var ret = test.func.call(this, value, state, options);\n\n if (ret instanceof Errors.Err) {\n errors.push(ret);\n\n if (options.abortEarly) {\n return finish();\n }\n } else {\n value = ret;\n }\n }\n\n return finish();\n };\n\n _class.prototype._validateWithOptions = function _validateWithOptions(value, options, callback) {\n if (options) {\n this.checkOptions(options);\n }\n\n var settings = internals.concatSettings(internals.defaults, options);\n\n var result = this._validate(value, null, settings);\n\n var errors = Errors.process(result.errors, value);\n\n if (callback) {\n return callback(errors, result.value);\n }\n\n return {\n error: errors,\n value: result.value,\n then: function then(resolve, reject) {\n if (errors) {\n return Promise.reject(errors)[\"catch\"](reject);\n }\n\n return Promise.resolve(result.value).then(resolve);\n },\n \"catch\": function _catch(reject) {\n if (errors) {\n return Promise.reject(errors)[\"catch\"](reject);\n }\n\n return Promise.resolve(result.value);\n }\n };\n };\n\n _class.prototype.validate = function validate(value, options, callback) {\n if (typeof options === 'function') {\n return this._validateWithOptions(value, null, options);\n }\n\n return this._validateWithOptions(value, options, callback);\n };\n\n _class.prototype.describe = function describe() {\n var _this2 = this;\n\n var description = {\n type: this._type\n };\n var flags = Object.keys(this._flags);\n\n if (flags.length) {\n if (['empty', 'default', 'lazy', 'label'].some(function (flag) {\n return _this2._flags.hasOwnProperty(flag);\n })) {\n description.flags = {};\n\n for (var i = 0; i < flags.length; ++i) {\n var flag = flags[i];\n\n if (flag === 'empty') {\n description.flags[flag] = this._flags[flag].describe();\n } else if (flag === 'default') {\n if (Ref.isRef(this._flags[flag])) {\n description.flags[flag] = this._flags[flag].toString();\n } else if (typeof this._flags[flag] === 'function') {\n description.flags[flag] = {\n description: this._flags[flag].description,\n \"function\": this._flags[flag]\n };\n } else {\n description.flags[flag] = this._flags[flag];\n }\n } else if (flag === 'lazy' || flag === 'label') {// We don't want it in the description\n } else {\n description.flags[flag] = this._flags[flag];\n }\n }\n } else {\n description.flags = this._flags;\n }\n }\n\n if (this._settings) {\n description.options = Hoek.clone(this._settings);\n }\n\n if (this._baseType) {\n description.base = this._baseType.describe();\n }\n\n if (this._description) {\n description.description = this._description;\n }\n\n if (this._notes.length) {\n description.notes = this._notes;\n }\n\n if (this._tags.length) {\n description.tags = this._tags;\n }\n\n if (this._meta.length) {\n description.meta = this._meta;\n }\n\n if (this._examples.length) {\n description.examples = this._examples;\n }\n\n if (this._unit) {\n description.unit = this._unit;\n }\n\n var valids = this._valids.values();\n\n if (valids.length) {\n description.valids = valids.map(function (v) {\n return Ref.isRef(v) ? v.toString() : v;\n });\n }\n\n var invalids = this._invalids.values();\n\n if (invalids.length) {\n description.invalids = invalids.map(function (v) {\n return Ref.isRef(v) ? v.toString() : v;\n });\n }\n\n description.rules = [];\n\n for (var _i2 = 0; _i2 < this._tests.length; ++_i2) {\n var validator = this._tests[_i2];\n var item = {\n name: validator.name\n };\n\n if (validator.arg !== void 0) {\n item.arg = Ref.isRef(validator.arg) ? validator.arg.toString() : validator.arg;\n }\n\n var options = validator.options;\n\n if (options) {\n if (options.hasRef) {\n item.arg = {};\n var keys = Object.keys(validator.arg);\n\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var value = validator.arg[key];\n item.arg[key] = Ref.isRef(value) ? value.toString() : value;\n }\n }\n\n if (typeof options.description === 'string') {\n item.description = options.description;\n } else if (typeof options.description === 'function') {\n item.description = options.description(item.arg);\n }\n }\n\n description.rules.push(item);\n }\n\n if (!description.rules.length) {\n delete description.rules;\n }\n\n var label = this._getLabel();\n\n if (label) {\n description.label = label;\n }\n\n return description;\n };\n\n _class.prototype.label = function label(name) {\n Hoek.assert(name && typeof name === 'string', 'Label name must be a non-empty string');\n var obj = this.clone();\n obj._flags.label = name;\n return obj;\n };\n\n _class.prototype._getLabel = function _getLabel(def) {\n return this._flags.label || def;\n };\n\n _createClass(_class, [{\n key: 'schemaType',\n get: function get() {\n return this._type;\n }\n }]);\n\n return _class;\n }();\n\n internals.Any.prototype.isImmutable = true; // Prevents Hoek from deep cloning schema objects\n // Aliases\n\n internals.Any.prototype.only = internals.Any.prototype.equal = internals.Any.prototype.valid;\n internals.Any.prototype.disallow = internals.Any.prototype.not = internals.Any.prototype.invalid;\n internals.Any.prototype.exist = internals.Any.prototype.required;\n\n internals._try = function (fn, args) {\n var err = void 0;\n var result = void 0;\n\n try {\n result = fn.apply(null, args);\n } catch (e) {\n err = e;\n }\n\n return {\n value: result,\n error: err\n };\n };\n\n internals.concatSettings = function (target, source) {\n // Used to avoid cloning context\n if (!target && !source) {\n return null;\n }\n\n var obj = _extends({}, target);\n\n if (source) {\n var sKeys = Object.keys(source);\n\n for (var i = 0; i < sKeys.length; ++i) {\n var key = sKeys[i];\n\n if (key !== 'language' || !obj.hasOwnProperty(key)) {\n obj[key] = source[key];\n } else {\n obj[key] = Hoek.applyToDefaults(obj[key], source[key]);\n }\n }\n }\n\n return obj;\n };\n /***/\n\n },\n /* 3 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n /* WEBPACK VAR INJECTION */\n\n (function (global) {\n /*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n /* eslint-disable no-proto */\n var base64 = __webpack_require__(30);\n\n var ieee754 = __webpack_require__(31);\n\n var isArray = __webpack_require__(32);\n\n exports.Buffer = Buffer;\n exports.SlowBuffer = SlowBuffer;\n exports.INSPECT_MAX_BYTES = 50;\n /**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n \n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\n\n Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined ? global.TYPED_ARRAY_SUPPORT : typedArraySupport();\n /*\n * Export kMaxLength after typed array support is determined.\n */\n\n exports.kMaxLength = kMaxLength();\n\n function typedArraySupport() {\n try {\n var arr = new Uint8Array(1);\n arr.__proto__ = {\n __proto__: Uint8Array.prototype,\n foo: function foo() {\n return 42;\n }\n };\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0; // ie10 has broken `subarray`\n } catch (e) {\n return false;\n }\n }\n\n function kMaxLength() {\n return Buffer.TYPED_ARRAY_SUPPORT ? 0x7fffffff : 0x3fffffff;\n }\n\n function createBuffer(that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length');\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length);\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length);\n }\n\n that.length = length;\n }\n\n return that;\n }\n /**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\n\n function Buffer(arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length);\n } // Common case.\n\n\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error('If encoding is specified then the first argument must be a string');\n }\n\n return allocUnsafe(this, arg);\n }\n\n return from(this, arg, encodingOrOffset, length);\n }\n\n Buffer.poolSize = 8192; // not used by this implementation\n // TODO: Legacy, not needed anymore. Remove in next major version.\n\n Buffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype;\n return arr;\n };\n\n function from(that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number');\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length);\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset);\n }\n\n return fromObject(that, value);\n }\n /**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\n\n\n Buffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length);\n };\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype;\n Buffer.__proto__ = Uint8Array;\n\n if (typeof Symbol !== 'undefined' && Symbol.species && Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n });\n }\n }\n\n function assertSize(size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number');\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative');\n }\n }\n\n function alloc(that, size, fill, encoding) {\n assertSize(size);\n\n if (size <= 0) {\n return createBuffer(that, size);\n }\n\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string' ? createBuffer(that, size).fill(fill, encoding) : createBuffer(that, size).fill(fill);\n }\n\n return createBuffer(that, size);\n }\n /**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\n\n\n Buffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding);\n };\n\n function allocUnsafe(that, size) {\n assertSize(size);\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0);\n\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0;\n }\n }\n\n return that;\n }\n /**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\n\n\n Buffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size);\n };\n /**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\n\n\n Buffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size);\n };\n\n function fromString(that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8';\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding');\n }\n\n var length = byteLength(string, encoding) | 0;\n that = createBuffer(that, length);\n var actual = that.write(string, encoding);\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual);\n }\n\n return that;\n }\n\n function fromArrayLike(that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0;\n that = createBuffer(that, length);\n\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255;\n }\n\n return that;\n }\n\n function fromArrayBuffer(that, array, byteOffset, length) {\n array.byteLength; // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds');\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds');\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array);\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset);\n } else {\n array = new Uint8Array(array, byteOffset, length);\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array;\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array);\n }\n\n return that;\n }\n\n function fromObject(that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0;\n that = createBuffer(that, len);\n\n if (that.length === 0) {\n return that;\n }\n\n obj.copy(that, 0, 0, len);\n return that;\n }\n\n if (obj) {\n if (typeof ArrayBuffer !== 'undefined' && obj.buffer instanceof ArrayBuffer || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0);\n }\n\n return fromArrayLike(that, obj);\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data);\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.');\n }\n\n function checked(length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' + 'size: 0x' + kMaxLength().toString(16) + ' bytes');\n }\n\n return length | 0;\n }\n\n function SlowBuffer(length) {\n if (+length != length) {\n // eslint-disable-line eqeqeq\n length = 0;\n }\n\n return Buffer.alloc(+length);\n }\n\n Buffer.isBuffer = function isBuffer(b) {\n return !!(b != null && b._isBuffer);\n };\n\n Buffer.compare = function compare(a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers');\n }\n\n if (a === b) return 0;\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n };\n\n Buffer.isEncoding = function isEncoding(encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true;\n\n default:\n return false;\n }\n };\n\n Buffer.concat = function concat(list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0);\n }\n\n var i;\n\n if (length === undefined) {\n length = 0;\n\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n\n var buffer = Buffer.allocUnsafe(length);\n var pos = 0;\n\n for (i = 0; i < list.length; ++i) {\n var buf = list[i];\n\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n }\n\n buf.copy(buffer, pos);\n pos += buf.length;\n }\n\n return buffer;\n };\n\n function byteLength(string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length;\n }\n\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength;\n }\n\n if (typeof string !== 'string') {\n string = '' + string;\n }\n\n var len = string.length;\n if (len === 0) return 0; // Use a for loop to avoid recursion\n\n var loweredCase = false;\n\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len;\n\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length;\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2;\n\n case 'hex':\n return len >>> 1;\n\n case 'base64':\n return base64ToBytes(string).length;\n\n default:\n if (loweredCase) return utf8ToBytes(string).length; // assume utf8\n\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n }\n\n Buffer.byteLength = byteLength;\n\n function slowToString(encoding, start, end) {\n var loweredCase = false; // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\n if (start === undefined || start < 0) {\n start = 0;\n } // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n\n\n if (start > this.length) {\n return '';\n }\n\n if (end === undefined || end > this.length) {\n end = this.length;\n }\n\n if (end <= 0) {\n return '';\n } // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n\n\n end >>>= 0;\n start >>>= 0;\n\n if (end <= start) {\n return '';\n }\n\n if (!encoding) encoding = 'utf8';\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end);\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end);\n\n case 'ascii':\n return asciiSlice(this, start, end);\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end);\n\n case 'base64':\n return base64Slice(this, start, end);\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end);\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding);\n encoding = (encoding + '').toLowerCase();\n loweredCase = true;\n }\n }\n } // The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n // Buffer instances.\n\n\n Buffer.prototype._isBuffer = true;\n\n function swap(b, n, m) {\n var i = b[n];\n b[n] = b[m];\n b[m] = i;\n }\n\n Buffer.prototype.swap16 = function swap16() {\n var len = this.length;\n\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits');\n }\n\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n\n return this;\n };\n\n Buffer.prototype.swap32 = function swap32() {\n var len = this.length;\n\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits');\n }\n\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n\n return this;\n };\n\n Buffer.prototype.swap64 = function swap64() {\n var len = this.length;\n\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits');\n }\n\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n\n return this;\n };\n\n Buffer.prototype.toString = function toString() {\n var length = this.length | 0;\n if (length === 0) return '';\n if (arguments.length === 0) return utf8Slice(this, 0, length);\n return slowToString.apply(this, arguments);\n };\n\n Buffer.prototype.equals = function equals(b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer');\n if (this === b) return true;\n return Buffer.compare(this, b) === 0;\n };\n\n Buffer.prototype.inspect = function inspect() {\n var str = '';\n var max = exports.INSPECT_MAX_BYTES;\n\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ');\n if (this.length > max) str += ' ... ';\n }\n\n return '';\n };\n\n Buffer.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer');\n }\n\n if (start === undefined) {\n start = 0;\n }\n\n if (end === undefined) {\n end = target ? target.length : 0;\n }\n\n if (thisStart === undefined) {\n thisStart = 0;\n }\n\n if (thisEnd === undefined) {\n thisEnd = this.length;\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index');\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0;\n }\n\n if (thisStart >= thisEnd) {\n return -1;\n }\n\n if (start >= end) {\n return 1;\n }\n\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target) return 0;\n var x = thisEnd - thisStart;\n var y = end - start;\n var len = Math.min(x, y);\n var thisCopy = this.slice(thisStart, thisEnd);\n var targetCopy = target.slice(start, end);\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break;\n }\n }\n\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n }; // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n // OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n //\n // Arguments:\n // - buffer - a Buffer to search\n // - val - a string, Buffer, or number\n // - byteOffset - an index into `buffer`; will be clamped to an int32\n // - encoding - an optional encoding, relevant is val is a string\n // - dir - true for indexOf, false for lastIndexOf\n\n\n function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1; // Normalize byteOffset\n\n if (typeof byteOffset === 'string') {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff;\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000;\n }\n\n byteOffset = +byteOffset; // Coerce to Number.\n\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : buffer.length - 1;\n } // Normalize byteOffset: negative offsets start from the end of the buffer\n\n\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\n if (byteOffset >= buffer.length) {\n if (dir) return -1;else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;else return -1;\n } // Normalize val\n\n\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding);\n } // Finally, search either indexOf (if dir is true) or lastIndexOf\n\n\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1;\n }\n\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir);\n } else if (typeof val === 'number') {\n val = val & 0xFF; // Search for a byte value [0-255]\n\n if (Buffer.TYPED_ARRAY_SUPPORT && typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset);\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset);\n }\n }\n\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n }\n\n throw new TypeError('val must be string, number or Buffer');\n }\n\n function arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n var indexSize = 1;\n var arrLength = arr.length;\n var valLength = val.length;\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase();\n\n if (encoding === 'ucs2' || encoding === 'ucs-2' || encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\n\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n\n function read(buf, i) {\n if (indexSize === 1) {\n return buf[i];\n } else {\n return buf.readUInt16BE(i * indexSize);\n }\n }\n\n var i;\n\n if (dir) {\n var foundIndex = -1;\n\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i;\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize;\n } else {\n if (foundIndex !== -1) i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\n for (i = byteOffset; i >= 0; i--) {\n var found = true;\n\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false;\n break;\n }\n }\n\n if (found) return i;\n }\n }\n\n return -1;\n }\n\n Buffer.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n };\n\n Buffer.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n };\n\n Buffer.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n };\n\n function hexWrite(buf, string, offset, length) {\n offset = Number(offset) || 0;\n var remaining = buf.length - offset;\n\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n\n if (length > remaining) {\n length = remaining;\n }\n } // must be an even number of digits\n\n\n var strLen = string.length;\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string');\n\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16);\n if (isNaN(parsed)) return i;\n buf[offset + i] = parsed;\n }\n\n return i;\n }\n\n function utf8Write(buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length);\n }\n\n function asciiWrite(buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length);\n }\n\n function latin1Write(buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length);\n }\n\n function base64Write(buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length);\n }\n\n function ucs2Write(buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length);\n }\n\n Buffer.prototype.write = function write(string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8';\n length = this.length;\n offset = 0; // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset;\n length = this.length;\n offset = 0; // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0;\n\n if (isFinite(length)) {\n length = length | 0;\n if (encoding === undefined) encoding = 'utf8';\n } else {\n encoding = length;\n length = undefined;\n } // legacy write(string, encoding, offset, length) - remove in v0.13\n\n } else {\n throw new Error('Buffer.write(string, encoding, offset[, length]) is no longer supported');\n }\n\n var remaining = this.length - offset;\n if (length === undefined || length > remaining) length = remaining;\n\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds');\n }\n\n if (!encoding) encoding = 'utf8';\n var loweredCase = false;\n\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length);\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length);\n\n case 'ascii':\n return asciiWrite(this, string, offset, length);\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length);\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length);\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length);\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding);\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n };\n\n Buffer.prototype.toJSON = function toJSON() {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n };\n\n function base64Slice(buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf);\n } else {\n return base64.fromByteArray(buf.slice(start, end));\n }\n }\n\n function utf8Slice(buf, start, end) {\n end = Math.min(buf.length, end);\n var res = [];\n var i = start;\n\n while (i < end) {\n var firstByte = buf[i];\n var codePoint = null;\n var bytesPerSequence = firstByte > 0xEF ? 4 : firstByte > 0xDF ? 3 : firstByte > 0xBF ? 2 : 1;\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint;\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte;\n }\n\n break;\n\n case 2:\n secondByte = buf[i + 1];\n\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | secondByte & 0x3F;\n\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | thirdByte & 0x3F;\n\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | fourthByte & 0x3F;\n\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint;\n }\n }\n\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD;\n bytesPerSequence = 1;\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000;\n res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n codePoint = 0xDC00 | codePoint & 0x3FF;\n }\n\n res.push(codePoint);\n i += bytesPerSequence;\n }\n\n return decodeCodePointsArray(res);\n } // Based on http://stackoverflow.com/a/22747272/680742, the browser with\n // the lowest limit is Chrome, with 0x10000 args.\n // We go 1 magnitude less, for safety\n\n\n var MAX_ARGUMENTS_LENGTH = 0x1000;\n\n function decodeCodePointsArray(codePoints) {\n var len = codePoints.length;\n\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints); // avoid extra slice()\n } // Decode in chunks to avoid \"call stack size exceeded\".\n\n\n var res = '';\n var i = 0;\n\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n\n return res;\n }\n\n function asciiSlice(buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F);\n }\n\n return ret;\n }\n\n function latin1Slice(buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i]);\n }\n\n return ret;\n }\n\n function hexSlice(buf, start, end) {\n var len = buf.length;\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n var out = '';\n\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i]);\n }\n\n return out;\n }\n\n function utf16leSlice(buf, start, end) {\n var bytes = buf.slice(start, end);\n var res = '';\n\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n\n return res;\n }\n\n Buffer.prototype.slice = function slice(start, end) {\n var len = this.length;\n start = ~~start;\n end = end === undefined ? len : ~~end;\n\n if (start < 0) {\n start += len;\n if (start < 0) start = 0;\n } else if (start > len) {\n start = len;\n }\n\n if (end < 0) {\n end += len;\n if (end < 0) end = 0;\n } else if (end > len) {\n end = len;\n }\n\n if (end < start) end = start;\n var newBuf;\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end);\n newBuf.__proto__ = Buffer.prototype;\n } else {\n var sliceLen = end - start;\n newBuf = new Buffer(sliceLen, undefined);\n\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start];\n }\n }\n\n return newBuf;\n };\n /*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\n\n\n function checkOffset(offset, ext, length) {\n if (offset % 1 !== 0 || offset < 0) throw new RangeError('offset is not uint');\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length');\n }\n\n Buffer.prototype.readUIntLE = function readUIntLE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var val = this[offset];\n var mul = 1;\n var i = 0;\n\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n return val;\n };\n\n Buffer.prototype.readUIntBE = function readUIntBE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length);\n }\n\n var val = this[offset + --byteLength];\n var mul = 1;\n\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul;\n }\n\n return val;\n };\n\n Buffer.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset];\n };\n\n Buffer.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n };\n\n Buffer.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n };\n\n Buffer.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 0x1000000;\n };\n\n Buffer.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] * 0x1000000 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n };\n\n Buffer.prototype.readIntLE = function readIntLE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var val = this[offset];\n var mul = 1;\n var i = 0;\n\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n };\n\n Buffer.prototype.readIntBE = function readIntBE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var i = byteLength;\n var mul = 1;\n var val = this[offset + --i];\n\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul;\n }\n\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n };\n\n Buffer.prototype.readInt8 = function readInt8(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n if (!(this[offset] & 0x80)) return this[offset];\n return (0xff - this[offset] + 1) * -1;\n };\n\n Buffer.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset] | this[offset + 1] << 8;\n return val & 0x8000 ? val | 0xFFFF0000 : val;\n };\n\n Buffer.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset + 1] | this[offset] << 8;\n return val & 0x8000 ? val | 0xFFFF0000 : val;\n };\n\n Buffer.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n };\n\n Buffer.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n };\n\n Buffer.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, true, 23, 4);\n };\n\n Buffer.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, false, 23, 4);\n };\n\n Buffer.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, true, 52, 8);\n };\n\n Buffer.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, false, 52, 8);\n };\n\n function checkInt(buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance');\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds');\n if (offset + ext > buf.length) throw new RangeError('Index out of range');\n }\n\n Buffer.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var mul = 1;\n var i = 0;\n this[offset] = value & 0xFF;\n\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = value / mul & 0xFF;\n }\n\n return offset + byteLength;\n };\n\n Buffer.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n this[offset + i] = value & 0xFF;\n\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = value / mul & 0xFF;\n }\n\n return offset + byteLength;\n };\n\n Buffer.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n this[offset] = value & 0xff;\n return offset + 1;\n };\n\n function objectWriteUInt16(buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1;\n\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & 0xff << 8 * (littleEndian ? i : 1 - i)) >>> (littleEndian ? i : 1 - i) * 8;\n }\n }\n\n Buffer.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n\n return offset + 2;\n };\n\n Buffer.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 8;\n this[offset + 1] = value & 0xff;\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n\n return offset + 2;\n };\n\n function objectWriteUInt32(buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1;\n\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = value >>> (littleEndian ? i : 3 - i) * 8 & 0xff;\n }\n }\n\n Buffer.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = value >>> 24;\n this[offset + 2] = value >>> 16;\n this[offset + 1] = value >>> 8;\n this[offset] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n\n return offset + 4;\n };\n\n Buffer.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n\n return offset + 4;\n };\n\n Buffer.prototype.writeIntLE = function writeIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = 0;\n var mul = 1;\n var sub = 0;\n this[offset] = value & 0xFF;\n\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n\n this[offset + i] = (value / mul >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength;\n };\n\n Buffer.prototype.writeIntBE = function writeIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n var sub = 0;\n this[offset + i] = value & 0xFF;\n\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n\n this[offset + i] = (value / mul >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength;\n };\n\n Buffer.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n if (value < 0) value = 0xff + value + 1;\n this[offset] = value & 0xff;\n return offset + 1;\n };\n\n Buffer.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n\n return offset + 2;\n };\n\n Buffer.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 8;\n this[offset + 1] = value & 0xff;\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n\n return offset + 2;\n };\n\n Buffer.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n this[offset + 2] = value >>> 16;\n this[offset + 3] = value >>> 24;\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n\n return offset + 4;\n };\n\n Buffer.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (value < 0) value = 0xffffffff + value + 1;\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n\n return offset + 4;\n };\n\n function checkIEEE754(buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range');\n if (offset < 0) throw new RangeError('Index out of range');\n }\n\n function writeFloat(buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38);\n }\n\n ieee754.write(buf, value, offset, littleEndian, 23, 4);\n return offset + 4;\n }\n\n Buffer.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n };\n\n Buffer.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n };\n\n function writeDouble(buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308);\n }\n\n ieee754.write(buf, value, offset, littleEndian, 52, 8);\n return offset + 8;\n }\n\n Buffer.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n };\n\n Buffer.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n }; // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\n\n Buffer.prototype.copy = function copy(target, targetStart, start, end) {\n if (!start) start = 0;\n if (!end && end !== 0) end = this.length;\n if (targetStart >= target.length) targetStart = target.length;\n if (!targetStart) targetStart = 0;\n if (end > 0 && end < start) end = start; // Copy 0 bytes; we're done\n\n if (end === start) return 0;\n if (target.length === 0 || this.length === 0) return 0; // Fatal error conditions\n\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds');\n }\n\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds');\n if (end < 0) throw new RangeError('sourceEnd out of bounds'); // Are we oob?\n\n if (end > this.length) end = this.length;\n\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n\n var len = end - start;\n var i;\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start];\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start];\n }\n } else {\n Uint8Array.prototype.set.call(target, this.subarray(start, start + len), targetStart);\n }\n\n return len;\n }; // Usage:\n // buffer.fill(number[, offset[, end]])\n // buffer.fill(buffer[, offset[, end]])\n // buffer.fill(string[, offset[, end]][, encoding])\n\n\n Buffer.prototype.fill = function fill(val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === 'string') {\n encoding = end;\n end = this.length;\n }\n\n if (val.length === 1) {\n var code = val.charCodeAt(0);\n\n if (code < 256) {\n val = code;\n }\n }\n\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string');\n }\n\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding);\n }\n } else if (typeof val === 'number') {\n val = val & 255;\n } // Invalid ranges are not set to a default, so can range check early.\n\n\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index');\n }\n\n if (end <= start) {\n return this;\n }\n\n start = start >>> 0;\n end = end === undefined ? this.length : end >>> 0;\n if (!val) val = 0;\n var i;\n\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n var bytes = Buffer.isBuffer(val) ? val : utf8ToBytes(new Buffer(val, encoding).toString());\n var len = bytes.length;\n\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n\n return this;\n }; // HELPER FUNCTIONS\n // ================\n\n\n var INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g;\n\n function base64clean(str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, ''); // Node converts strings with length < 2 to ''\n\n if (str.length < 2) return ''; // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\n while (str.length % 4 !== 0) {\n str = str + '=';\n }\n\n return str;\n }\n\n function stringtrim(str) {\n if (str.trim) return str.trim();\n return str.replace(/^\\s+|\\s+$/g, '');\n }\n\n function toHex(n) {\n if (n < 16) return '0' + n.toString(16);\n return n.toString(16);\n }\n\n function utf8ToBytes(string, units) {\n units = units || Infinity;\n var codePoint;\n var length = string.length;\n var leadSurrogate = null;\n var bytes = [];\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i); // is surrogate component\n\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue;\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue;\n } // valid lead\n\n\n leadSurrogate = codePoint;\n continue;\n } // 2 leads in a row\n\n\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n leadSurrogate = codePoint;\n continue;\n } // valid surrogate pair\n\n\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n }\n\n leadSurrogate = null; // encode utf8\n\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break;\n bytes.push(codePoint);\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break;\n bytes.push(codePoint >> 0x6 | 0xC0, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break;\n bytes.push(codePoint >> 0xC | 0xE0, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break;\n bytes.push(codePoint >> 0x12 | 0xF0, codePoint >> 0xC & 0x3F | 0x80, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else {\n throw new Error('Invalid code point');\n }\n }\n\n return bytes;\n }\n\n function asciiToBytes(str) {\n var byteArray = [];\n\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF);\n }\n\n return byteArray;\n }\n\n function utf16leToBytes(str, units) {\n var c, hi, lo;\n var byteArray = [];\n\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break;\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n\n return byteArray;\n }\n\n function base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n }\n\n function blitBuffer(src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if (i + offset >= dst.length || i >= src.length) break;\n dst[i + offset] = src[i];\n }\n\n return i;\n }\n\n function isnan(val) {\n return val !== val; // eslint-disable-line no-self-compare\n }\n /* WEBPACK VAR INJECTION */\n\n }).call(exports, __webpack_require__(7));\n /***/\n },\n /* 4 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n\n var Hoek = __webpack_require__(0);\n\n var Ref = __webpack_require__(1); // Type modules are delay-loaded to prevent circular dependencies\n // Declare internals\n\n\n var internals = {};\n\n exports.schema = function (Joi, config) {\n if (config !== undefined && config !== null && (typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object') {\n if (config.isJoi) {\n return config;\n }\n\n if (Array.isArray(config)) {\n return Joi.alternatives()[\"try\"](config);\n }\n\n if (config instanceof RegExp) {\n return Joi.string().regex(config);\n }\n\n if (config instanceof Date) {\n return Joi.date().valid(config);\n }\n\n return Joi.object().keys(config);\n }\n\n if (typeof config === 'string') {\n return Joi.string().valid(config);\n }\n\n if (typeof config === 'number') {\n return Joi.number().valid(config);\n }\n\n if (typeof config === 'boolean') {\n return Joi[\"boolean\"]().valid(config);\n }\n\n if (Ref.isRef(config)) {\n return Joi.valid(config);\n }\n\n Hoek.assert(config === null, 'Invalid schema content:', config);\n return Joi.valid(null);\n };\n\n exports.ref = function (id) {\n return Ref.isRef(id) ? id : Ref.create(id);\n };\n /***/\n\n },\n /* 5 */\n\n /***/\n function (module, exports) {\n // shim for using process in browser\n var process = module.exports = {}; // cached from whatever global is present so that test runners that stub it\n // don't break things. But we need to wrap it in a try catch in case it is\n // wrapped in strict mode code which doesn't define any globals. It's inside a\n // function because try/catches deoptimize in certain engines.\n\n var cachedSetTimeout;\n var cachedClearTimeout;\n\n function defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n }\n\n function defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n }\n\n (function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n })();\n\n function runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n }\n\n function runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n }\n\n var queue = [];\n var draining = false;\n var currentQueue;\n var queueIndex = -1;\n\n function cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n }\n\n function drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n }\n\n process.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n }; // v8 likes predictible objects\n\n\n function Item(fun, array) {\n this.fun = fun;\n this.array = array;\n }\n\n Item.prototype.run = function () {\n this.fun.apply(null, this.array);\n };\n\n process.title = 'browser';\n process.browser = true;\n process.env = {};\n process.argv = [];\n process.version = ''; // empty string to avoid regexp issues\n\n process.versions = {};\n\n function noop() {}\n\n process.on = noop;\n process.addListener = noop;\n process.once = noop;\n process.off = noop;\n process.removeListener = noop;\n process.removeAllListeners = noop;\n process.emit = noop;\n process.prependListener = noop;\n process.prependOnceListener = noop;\n\n process.listeners = function (name) {\n return [];\n };\n\n process.binding = function (name) {\n throw new Error('process.binding is not supported');\n };\n\n process.cwd = function () {\n return '/';\n };\n\n process.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n };\n\n process.umask = function () {\n return 0;\n };\n /***/\n\n },\n /* 6 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var Hoek = __webpack_require__(0);\n\n var Language = __webpack_require__(17); // Declare internals\n\n\n var internals = {\n annotations: Symbol('joi-annotations')\n };\n\n internals.stringify = function (value, wrapArrays) {\n var type = typeof value === 'undefined' ? 'undefined' : _typeof(value);\n\n if (value === null) {\n return 'null';\n }\n\n if (type === 'string') {\n return value;\n }\n\n if (value instanceof exports.Err || type === 'function' || type === 'symbol') {\n return value.toString();\n }\n\n if (type === 'object') {\n if (Array.isArray(value)) {\n var partial = '';\n\n for (var i = 0; i < value.length; ++i) {\n partial = partial + (partial.length ? ', ' : '') + internals.stringify(value[i], wrapArrays);\n }\n\n return wrapArrays ? '[' + partial + ']' : partial;\n }\n\n return value.toString();\n }\n\n return JSON.stringify(value);\n };\n\n exports.Err = function () {\n function _class(type, context, state, options, flags, message, template) {\n _classCallCheck(this, _class);\n\n this.isJoi = true;\n this.type = type;\n this.context = context || {};\n this.context.key = state.path[state.path.length - 1];\n this.context.label = state.key;\n this.path = state.path;\n this.options = options;\n this.flags = flags;\n this.message = message;\n this.template = template;\n var localized = this.options.language;\n\n if (this.flags.label) {\n this.context.label = this.flags.label;\n } else if (localized && ( // language can be null for arrays exclusion check\n this.context.label === '' || this.context.label === null)) {\n this.context.label = localized.root || Language.errors.root;\n }\n }\n\n _class.prototype.toString = function toString() {\n var _this = this;\n\n if (this.message) {\n return this.message;\n }\n\n var format = void 0;\n\n if (this.template) {\n format = this.template;\n }\n\n var localized = this.options.language;\n format = format || Hoek.reach(localized, this.type) || Hoek.reach(Language.errors, this.type);\n\n if (format === undefined) {\n return 'Error code \"' + this.type + '\" is not defined, your custom type is missing the correct language definition';\n }\n\n var wrapArrays = Hoek.reach(localized, 'messages.wrapArrays');\n\n if (typeof wrapArrays !== 'boolean') {\n wrapArrays = Language.errors.messages.wrapArrays;\n }\n\n if (format === null) {\n var childrenString = internals.stringify(this.context.reason, wrapArrays);\n\n if (wrapArrays) {\n return childrenString.slice(1, -1);\n }\n\n return childrenString;\n }\n\n var hasKey = /\\{\\{\\!?label\\}\\}/.test(format);\n var skipKey = format.length > 2 && format[0] === '!' && format[1] === '!';\n\n if (skipKey) {\n format = format.slice(2);\n }\n\n if (!hasKey && !skipKey) {\n var localizedKey = Hoek.reach(localized, 'key');\n\n if (typeof localizedKey === 'string') {\n format = localizedKey + format;\n } else {\n format = Hoek.reach(Language.errors, 'key') + format;\n }\n }\n\n return format.replace(/\\{\\{(\\!?)([^}]+)\\}\\}/g, function ($0, isSecure, name) {\n var value = Hoek.reach(_this.context, name);\n var normalized = internals.stringify(value, wrapArrays);\n return isSecure && _this.options.escapeHtml ? Hoek.escapeHtml(normalized) : normalized;\n });\n };\n\n return _class;\n }();\n\n exports.create = function (type, context, state, options, flags, message, template) {\n return new exports.Err(type, context, state, options, flags, message, template);\n };\n\n exports.process = function (errors, object) {\n if (!errors || !errors.length) {\n return null;\n } // Construct error\n\n\n var message = '';\n var details = [];\n\n var processErrors = function processErrors(localErrors, parent) {\n for (var i = 0; i < localErrors.length; ++i) {\n var item = localErrors[i];\n\n if (item instanceof Error) {\n return item;\n }\n\n if (item.flags.error && typeof item.flags.error !== 'function') {\n return item.flags.error;\n }\n\n var itemMessage = void 0;\n\n if (parent === undefined) {\n itemMessage = item.toString();\n message = message + (message ? '. ' : '') + itemMessage;\n } // Do not push intermediate errors, we're only interested in leafs\n\n\n if (item.context.reason && item.context.reason.length) {\n var _override = processErrors(item.context.reason, item.path);\n\n if (_override) {\n return _override;\n }\n } else {\n details.push({\n message: itemMessage || item.toString(),\n path: item.path,\n type: item.type,\n context: item.context\n });\n }\n }\n };\n\n var override = processErrors(errors);\n\n if (override) {\n return override;\n }\n\n var error = new Error(message);\n error.isJoi = true;\n error.name = 'ValidationError';\n error.details = details;\n error._object = object;\n error.annotate = internals.annotate;\n return error;\n }; // Inspired by json-stringify-safe\n\n\n internals.safeStringify = function (obj, spaces) {\n return JSON.stringify(obj, internals.serializer(), spaces);\n };\n\n internals.serializer = function () {\n var keys = [];\n var stack = [];\n\n var cycleReplacer = function cycleReplacer(key, value) {\n if (stack[0] === value) {\n return '[Circular ~]';\n }\n\n return '[Circular ~.' + keys.slice(0, stack.indexOf(value)).join('.') + ']';\n };\n\n return function (key, value) {\n if (stack.length > 0) {\n var thisPos = stack.indexOf(this);\n\n if (~thisPos) {\n stack.length = thisPos + 1;\n keys.length = thisPos + 1;\n keys[thisPos] = key;\n } else {\n stack.push(this);\n keys.push(key);\n }\n\n if (~stack.indexOf(value)) {\n value = cycleReplacer.call(this, key, value);\n }\n } else {\n stack.push(value);\n }\n\n if (value) {\n var annotations = value[internals.annotations];\n\n if (annotations) {\n if (Array.isArray(value)) {\n var annotated = [];\n\n for (var i = 0; i < value.length; ++i) {\n if (annotations.errors[i]) {\n annotated.push('_$idx$_' + annotations.errors[i].sort().join(', ') + '_$end$_');\n }\n\n annotated.push(value[i]);\n }\n\n value = annotated;\n } else {\n var errorKeys = Object.keys(annotations.errors);\n\n for (var _i = 0; _i < errorKeys.length; ++_i) {\n var errorKey = errorKeys[_i];\n value[errorKey + '_$key$_' + annotations.errors[errorKey].sort().join(', ') + '_$end$_'] = value[errorKey];\n value[errorKey] = undefined;\n }\n\n var missingKeys = Object.keys(annotations.missing);\n\n for (var _i2 = 0; _i2 < missingKeys.length; ++_i2) {\n var missingKey = missingKeys[_i2];\n value['_$miss$_' + missingKey + '|' + annotations.missing[missingKey] + '_$end$_'] = '__missing__';\n }\n }\n\n return value;\n }\n }\n\n if (value === Infinity || value === -Infinity || Number.isNaN(value) || typeof value === 'function' || (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'symbol') {\n return '[' + value.toString() + ']';\n }\n\n return value;\n };\n };\n\n internals.annotate = function (stripColorCodes) {\n var redFgEscape = stripColorCodes ? '' : '\\x1B[31m';\n var redBgEscape = stripColorCodes ? '' : '\\x1B[41m';\n var endColor = stripColorCodes ? '' : '\\x1B[0m';\n\n if (_typeof(this._object) !== 'object') {\n return this.details[0].message;\n }\n\n var obj = Hoek.clone(this._object || {});\n\n for (var i = this.details.length - 1; i >= 0; --i) {\n // Reverse order to process deepest child first\n var pos = i + 1;\n var error = this.details[i];\n var path = error.path;\n var ref = obj;\n\n for (var j = 0;; ++j) {\n var seg = path[j];\n\n if (ref.isImmutable) {\n ref = ref.clone(); // joi schemas are not cloned by hoek, we have to take this extra step\n }\n\n if (j + 1 < path.length && ref[seg] && typeof ref[seg] !== 'string') {\n ref = ref[seg];\n } else {\n var refAnnotations = ref[internals.annotations] = ref[internals.annotations] || {\n errors: {},\n missing: {}\n };\n var value = ref[seg];\n var cacheKey = seg || error.context.label;\n\n if (value !== undefined) {\n refAnnotations.errors[cacheKey] = refAnnotations.errors[cacheKey] || [];\n refAnnotations.errors[cacheKey].push(pos);\n } else {\n refAnnotations.missing[cacheKey] = pos;\n }\n\n break;\n }\n }\n }\n\n var replacers = {\n key: /_\\$key\\$_([, \\d]+)_\\$end\\$_\\\"/g,\n missing: /\\\"_\\$miss\\$_([^\\|]+)\\|(\\d+)_\\$end\\$_\\\"\\: \\\"__missing__\\\"/g,\n arrayIndex: /\\s*\\\"_\\$idx\\$_([, \\d]+)_\\$end\\$_\\\",?\\n(.*)/g,\n specials: /\"\\[(NaN|Symbol.*|-?Infinity|function.*|\\(.*)\\]\"/g\n };\n var message = internals.safeStringify(obj, 2).replace(replacers.key, function ($0, $1) {\n return '\" ' + redFgEscape + '[' + $1 + ']' + endColor;\n }).replace(replacers.missing, function ($0, $1, $2) {\n return redBgEscape + '\"' + $1 + '\"' + endColor + redFgEscape + ' [' + $2 + ']: -- missing --' + endColor;\n }).replace(replacers.arrayIndex, function ($0, $1, $2) {\n return '\\n' + $2 + ' ' + redFgEscape + '[' + $1 + ']' + endColor;\n }).replace(replacers.specials, function ($0, $1) {\n return $1;\n });\n message = message + '\\n' + redFgEscape;\n\n for (var _i3 = 0; _i3 < this.details.length; ++_i3) {\n var _pos = _i3 + 1;\n\n message = message + '\\n[' + _pos + '] ' + this.details[_i3].message;\n }\n\n message = message + endColor;\n return message;\n };\n /***/\n\n },\n /* 7 */\n\n /***/\n function (module, exports) {\n var g; // This works in non-strict mode\n\n g = function () {\n return this;\n }();\n\n try {\n // This works if eval is allowed (see CSP)\n g = g || Function(\"return this\")() || (1, eval)(\"this\");\n } catch (e) {\n // This works if the window reference is available\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof2(window)) === \"object\") g = window;\n } // g can still be undefined, but nothing to do about it...\n // We return undefined, instead of nothing here, so it's\n // easier to handle this case. if(!global) { ...}\n\n\n module.exports = g;\n /***/\n },\n /* 8 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n function _defaults(obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n\n return obj;\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass);\n }\n\n var Hoek = __webpack_require__(0);\n\n var Any = __webpack_require__(2);\n\n var Cast = __webpack_require__(4);\n\n var Errors = __webpack_require__(6);\n\n var Lazy = __webpack_require__(23);\n\n var Ref = __webpack_require__(1); // Declare internals\n\n\n var internals = {\n alternatives: __webpack_require__(10),\n array: __webpack_require__(19),\n \"boolean\": __webpack_require__(21),\n binary: __webpack_require__(20),\n date: __webpack_require__(11),\n func: __webpack_require__(22),\n number: __webpack_require__(24),\n object: __webpack_require__(12),\n string: __webpack_require__(25)\n };\n\n internals.applyDefaults = function (schema) {\n Hoek.assert(this, 'Must be invoked on a Joi instance.');\n\n if (this._defaults) {\n schema = this._defaults(schema);\n }\n\n schema._currentJoi = this;\n return schema;\n };\n\n internals.root = function () {\n var any = new Any();\n var root = any.clone();\n Any.prototype._currentJoi = root;\n root._currentJoi = root;\n\n root.any = function () {\n Hoek.assert(arguments.length === 0, 'Joi.any() does not allow arguments.');\n return internals.applyDefaults.call(this, any);\n };\n\n root.alternatives = root.alt = function () {\n var alternatives = internals.applyDefaults.call(this, internals.alternatives);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return args.length ? alternatives[\"try\"].apply(alternatives, args) : alternatives;\n };\n\n root.array = function () {\n Hoek.assert(arguments.length === 0, 'Joi.array() does not allow arguments.');\n return internals.applyDefaults.call(this, internals.array);\n };\n\n root[\"boolean\"] = root.bool = function () {\n Hoek.assert(arguments.length === 0, 'Joi.boolean() does not allow arguments.');\n return internals.applyDefaults.call(this, internals[\"boolean\"]);\n };\n\n root.binary = function () {\n Hoek.assert(arguments.length === 0, 'Joi.binary() does not allow arguments.');\n return internals.applyDefaults.call(this, internals.binary);\n };\n\n root.date = function () {\n Hoek.assert(arguments.length === 0, 'Joi.date() does not allow arguments.');\n return internals.applyDefaults.call(this, internals.date);\n };\n\n root.func = function () {\n Hoek.assert(arguments.length === 0, 'Joi.func() does not allow arguments.');\n return internals.applyDefaults.call(this, internals.func);\n };\n\n root.number = function () {\n Hoek.assert(arguments.length === 0, 'Joi.number() does not allow arguments.');\n return internals.applyDefaults.call(this, internals.number);\n };\n\n root.object = function () {\n var object = internals.applyDefaults.call(this, internals.object);\n return arguments.length ? object.keys.apply(object, arguments) : object;\n };\n\n root.string = function () {\n Hoek.assert(arguments.length === 0, 'Joi.string() does not allow arguments.');\n return internals.applyDefaults.call(this, internals.string);\n };\n\n root.ref = function () {\n return Ref.create.apply(Ref, arguments);\n };\n\n root.isRef = function (ref) {\n return Ref.isRef(ref);\n };\n\n root.validate = function (value)\n /*, [schema], [options], callback */\n {\n var _ref;\n\n var last = (_ref = (arguments.length <= 1 ? 0 : arguments.length - 1) - 1 + 1, arguments.length <= _ref ? undefined : arguments[_ref]);\n var callback = typeof last === 'function' ? last : null;\n var count = (arguments.length <= 1 ? 0 : arguments.length - 1) - (callback ? 1 : 0);\n\n if (count === 0) {\n return any.validate(value, callback);\n }\n\n var options = count === 2 ? arguments.length <= 2 ? undefined : arguments[2] : {};\n var schema = root.compile(arguments.length <= 1 ? undefined : arguments[1]);\n return schema._validateWithOptions(value, options, callback);\n };\n\n root.describe = function () {\n var schema = arguments.length ? root.compile(arguments.length <= 0 ? undefined : arguments[0]) : any;\n return schema.describe();\n };\n\n root.compile = function (schema) {\n try {\n return Cast.schema(this, schema);\n } catch (err) {\n if (err.hasOwnProperty('path')) {\n err.message = err.message + '(' + err.path + ')';\n }\n\n throw err;\n }\n };\n\n root.assert = function (value, schema, message) {\n root.attempt(value, schema, message);\n };\n\n root.attempt = function (value, schema, message) {\n var result = root.validate(value, schema);\n var error = result.error;\n\n if (error) {\n if (!message) {\n if (typeof error.annotate === 'function') {\n error.message = error.annotate();\n }\n\n throw error;\n }\n\n if (!(message instanceof Error)) {\n if (typeof error.annotate === 'function') {\n error.message = message + ' ' + error.annotate();\n }\n\n throw error;\n }\n\n throw message;\n }\n\n return result.value;\n };\n\n root.reach = function (schema, path) {\n Hoek.assert(schema && schema instanceof Any, 'you must provide a joi schema');\n Hoek.assert(typeof path === 'string', 'path must be a string');\n\n if (path === '') {\n return schema;\n }\n\n var parts = path.split('.');\n var children = schema._inner.children;\n\n if (!children) {\n return;\n }\n\n var key = parts[0];\n\n for (var i = 0; i < children.length; ++i) {\n var child = children[i];\n\n if (child.key === key) {\n return this.reach(child.schema, path.substr(key.length + 1));\n }\n }\n };\n\n root.lazy = function (fn) {\n return Lazy.set(fn);\n };\n\n root.defaults = function (fn) {\n var _this = this;\n\n Hoek.assert(typeof fn === 'function', 'Defaults must be a function');\n var joi = Object.create(this.any());\n joi = fn(joi);\n Hoek.assert(joi && joi instanceof this.constructor, 'defaults() must return a schema');\n\n _extends(joi, this, joi.clone()); // Re-add the types from `this` but also keep the settings from joi's potential new defaults\n\n\n joi._defaults = function (schema) {\n if (_this._defaults) {\n schema = _this._defaults(schema);\n Hoek.assert(schema instanceof _this.constructor, 'defaults() must return a schema');\n }\n\n schema = fn(schema);\n Hoek.assert(schema instanceof _this.constructor, 'defaults() must return a schema');\n return schema;\n };\n\n return joi;\n };\n\n root.extend = function () {\n var _this2 = this;\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var extensions = Hoek.flatten(args);\n Hoek.assert(extensions.length > 0, 'You need to provide at least one extension');\n this.assert(extensions, root.extensionsSchema);\n var joi = Object.create(this.any());\n\n _extends(joi, this);\n\n var _loop = function _loop(i) {\n var extension = extensions[i];\n\n if (typeof extension === 'function') {\n extension = extension(joi);\n }\n\n _this2.assert(extension, root.extensionSchema);\n\n var base = (extension.base || _this2.any()).clone(); // Cloning because we're going to override language afterwards\n\n\n var ctor = base.constructor;\n\n var type = function (_ctor) {\n _inherits(type, _ctor); // eslint-disable-line no-loop-func\n\n\n function type() {\n _classCallCheck(this, type);\n\n var _this3 = _possibleConstructorReturn(this, _ctor.call(this));\n\n if (extension.base) {\n _extends(_this3, base);\n }\n\n _this3._type = extension.name;\n\n if (extension.language) {\n _this3._settings = _this3._settings || {\n language: {}\n };\n _this3._settings.language = Hoek.applyToDefaults(_this3._settings.language, _defineProperty({}, extension.name, extension.language));\n }\n\n return _this3;\n }\n\n return type;\n }(ctor);\n\n if (extension.coerce) {\n type.prototype._coerce = function (value, state, options) {\n if (ctor.prototype._coerce) {\n var baseRet = ctor.prototype._coerce.call(this, value, state, options);\n\n if (baseRet.errors) {\n return baseRet;\n }\n\n value = baseRet.value;\n }\n\n var ret = extension.coerce.call(this, value, state, options);\n\n if (ret instanceof Errors.Err) {\n return {\n value: value,\n errors: ret\n };\n }\n\n return {\n value: ret\n };\n };\n }\n\n if (extension.pre) {\n type.prototype._base = function (value, state, options) {\n if (ctor.prototype._base) {\n var baseRet = ctor.prototype._base.call(this, value, state, options);\n\n if (baseRet.errors) {\n return baseRet;\n }\n\n value = baseRet.value;\n }\n\n var ret = extension.pre.call(this, value, state, options);\n\n if (ret instanceof Errors.Err) {\n return {\n value: value,\n errors: ret\n };\n }\n\n return {\n value: ret\n };\n };\n }\n\n if (extension.rules) {\n var _loop2 = function _loop2(j) {\n var rule = extension.rules[j];\n var ruleArgs = rule.params ? rule.params instanceof Any ? rule.params._inner.children.map(function (k) {\n return k.key;\n }) : Object.keys(rule.params) : [];\n var validateArgs = rule.params ? Cast.schema(_this2, rule.params) : null;\n\n type.prototype[rule.name] = function () {\n for (var _len3 = arguments.length, rArgs = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n rArgs[_key3] = arguments[_key3];\n } // eslint-disable-line no-loop-func\n\n\n if (rArgs.length > ruleArgs.length) {\n throw new Error('Unexpected number of arguments');\n }\n\n var hasRef = false;\n var arg = {};\n\n for (var k = 0; k < ruleArgs.length; ++k) {\n arg[ruleArgs[k]] = rArgs[k];\n\n if (!hasRef && Ref.isRef(rArgs[k])) {\n hasRef = true;\n }\n }\n\n if (validateArgs) {\n arg = joi.attempt(arg, validateArgs);\n }\n\n var schema = void 0;\n\n if (rule.validate) {\n var validate = function validate(value, state, options) {\n return rule.validate.call(this, arg, value, state, options);\n };\n\n schema = this._test(rule.name, arg, validate, {\n description: rule.description,\n hasRef: hasRef\n });\n } else {\n schema = this.clone();\n }\n\n if (rule.setup) {\n var newSchema = rule.setup.call(schema, arg);\n\n if (newSchema !== undefined) {\n Hoek.assert(newSchema instanceof Any, 'Setup of extension Joi.' + this._type + '().' + rule.name + '() must return undefined or a Joi object');\n schema = newSchema;\n }\n }\n\n return schema;\n };\n };\n\n for (var j = 0; j < extension.rules.length; ++j) {\n _loop2(j);\n }\n }\n\n if (extension.describe) {\n type.prototype.describe = function () {\n var description = ctor.prototype.describe.call(this);\n return extension.describe.call(this, description);\n };\n }\n\n var instance = new type();\n\n joi[extension.name] = function () {\n return internals.applyDefaults.call(this, instance);\n };\n };\n\n for (var i = 0; i < extensions.length; ++i) {\n _loop(i);\n }\n\n return joi;\n };\n\n root.extensionSchema = internals.object.keys({\n base: internals.object.type(Any, 'Joi object'),\n name: internals.string.required(),\n coerce: internals.func.arity(3),\n pre: internals.func.arity(3),\n language: internals.object,\n describe: internals.func.arity(1),\n rules: internals.array.items(internals.object.keys({\n name: internals.string.required(),\n setup: internals.func.arity(1),\n validate: internals.func.arity(4),\n params: [internals.object.pattern(/.*/, internals.object.type(Any, 'Joi object')), internals.object.type(internals.object.constructor, 'Joi object')],\n description: [internals.string, internals.func.arity(1)]\n }).or('setup', 'validate'))\n }).strict();\n root.extensionsSchema = internals.array.items([internals.object, internals.func.arity(1)]).strict();\n root.version = __webpack_require__(33).version;\n return root;\n };\n\n module.exports = internals.root();\n /***/\n },\n /* 9 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n /* WEBPACK VAR INJECTION */\n\n (function (Buffer) {\n var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var Ref = __webpack_require__(1);\n\n module.exports = function () {\n function Set() {\n _classCallCheck(this, Set);\n\n this._set = [];\n }\n\n Set.prototype.add = function add(value, refs) {\n if (!Ref.isRef(value) && this.has(value, null, null, false)) {\n return;\n }\n\n if (refs !== undefined) {\n // If it's a merge, we don't have any refs\n Ref.push(refs, value);\n }\n\n this._set.push(value);\n\n return this;\n };\n\n Set.prototype.merge = function merge(add, remove) {\n for (var i = 0; i < add._set.length; ++i) {\n this.add(add._set[i]);\n }\n\n for (var _i = 0; _i < remove._set.length; ++_i) {\n this.remove(remove._set[_i]);\n }\n\n return this;\n };\n\n Set.prototype.remove = function remove(value) {\n this._set = this._set.filter(function (item) {\n return value !== item;\n });\n return this;\n };\n\n Set.prototype.has = function has(value, state, options, insensitive) {\n for (var i = 0; i < this._set.length; ++i) {\n var items = this._set[i];\n\n if (state && Ref.isRef(items)) {\n // Only resolve references if there is a state, otherwise it's a merge\n items = items(state.reference || state.parent, options);\n }\n\n if (!Array.isArray(items)) {\n items = [items];\n }\n\n for (var j = 0; j < items.length; ++j) {\n var item = items[j];\n\n if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== (typeof item === 'undefined' ? 'undefined' : _typeof(item))) {\n continue;\n }\n\n if (value === item || value instanceof Date && item instanceof Date && value.getTime() === item.getTime() || insensitive && typeof value === 'string' && value.toLowerCase() === item.toLowerCase() || Buffer.isBuffer(value) && Buffer.isBuffer(item) && value.length === item.length && value.toString('binary') === item.toString('binary')) {\n return true;\n }\n }\n }\n\n return false;\n };\n\n Set.prototype.values = function values(options) {\n if (options && options.stripUndefined) {\n var values = [];\n\n for (var i = 0; i < this._set.length; ++i) {\n var item = this._set[i];\n\n if (item !== undefined) {\n values.push(item);\n }\n }\n\n return values;\n }\n\n return this._set.slice();\n };\n\n Set.prototype.slice = function slice() {\n var newSet = new Set();\n newSet._set = this._set.slice();\n return newSet;\n };\n\n Set.prototype.concat = function concat(source) {\n var newSet = new Set();\n newSet._set = this._set.concat(source._set);\n return newSet;\n };\n\n return Set;\n }();\n /* WEBPACK VAR INJECTION */\n\n }).call(exports, __webpack_require__(3).Buffer);\n /***/\n },\n /* 10 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n\n function _defaults(obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass);\n }\n\n var Hoek = __webpack_require__(0);\n\n var Any = __webpack_require__(2);\n\n var Cast = __webpack_require__(4);\n\n var Ref = __webpack_require__(1); // Declare internals\n\n\n var internals = {};\n\n internals.Alternatives = function (_Any) {\n _inherits(_class, _Any);\n\n function _class() {\n _classCallCheck(this, _class);\n\n var _this = _possibleConstructorReturn(this, _Any.call(this));\n\n _this._type = 'alternatives';\n\n _this._invalids.remove(null);\n\n _this._inner.matches = [];\n return _this;\n }\n\n _class.prototype._base = function _base(value, state, options) {\n var errors = [];\n var il = this._inner.matches.length;\n var baseType = this._baseType;\n\n for (var i = 0; i < il; ++i) {\n var item = this._inner.matches[i];\n\n if (!item.schema) {\n var schema = item.peek || item.is;\n var input = item.is ? item.ref(state.reference || state.parent, options) : value;\n\n var failed = schema._validate(input, null, options, state.parent).errors;\n\n if (failed) {\n if (item.otherwise) {\n return item.otherwise._validate(value, state, options);\n }\n } else if (item.then) {\n return item.then._validate(value, state, options);\n }\n\n if (i === il - 1 && baseType) {\n return baseType._validate(value, state, options);\n }\n\n continue;\n }\n\n var result = item.schema._validate(value, state, options);\n\n if (!result.errors) {\n // Found a valid match\n return result;\n }\n\n errors = errors.concat(result.errors);\n }\n\n if (errors.length) {\n return {\n errors: this.createError('alternatives.child', {\n reason: errors\n }, state, options)\n };\n }\n\n return {\n errors: this.createError('alternatives.base', null, state, options)\n };\n };\n\n _class.prototype[\"try\"] = function _try() {\n for (var _len = arguments.length, schemas = Array(_len), _key = 0; _key < _len; _key++) {\n schemas[_key] = arguments[_key];\n }\n\n schemas = Hoek.flatten(schemas);\n Hoek.assert(schemas.length, 'Cannot add other alternatives without at least one schema');\n var obj = this.clone();\n\n for (var i = 0; i < schemas.length; ++i) {\n var cast = Cast.schema(this._currentJoi, schemas[i]);\n\n if (cast._refs.length) {\n obj._refs = obj._refs.concat(cast._refs);\n }\n\n obj._inner.matches.push({\n schema: cast\n });\n }\n\n return obj;\n };\n\n _class.prototype.when = function when(condition, options) {\n var schemaCondition = false;\n Hoek.assert(Ref.isRef(condition) || typeof condition === 'string' || (schemaCondition = condition instanceof Any), 'Invalid condition:', condition);\n Hoek.assert(options, 'Missing options');\n Hoek.assert((typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object', 'Invalid options');\n\n if (schemaCondition) {\n Hoek.assert(!options.hasOwnProperty('is'), '\"is\" can not be used with a schema condition');\n } else {\n Hoek.assert(options.hasOwnProperty('is'), 'Missing \"is\" directive');\n }\n\n Hoek.assert(options.then !== undefined || options.otherwise !== undefined, 'options must have at least one of \"then\" or \"otherwise\"');\n var obj = this.clone();\n var is = void 0;\n\n if (!schemaCondition) {\n is = Cast.schema(this._currentJoi, options.is);\n\n if (options.is === null || !(Ref.isRef(options.is) || options.is instanceof Any)) {\n // Only apply required if this wasn't already a schema or a ref, we'll suppose people know what they're doing\n is = is.required();\n }\n }\n\n var item = {\n ref: schemaCondition ? null : Cast.ref(condition),\n peek: schemaCondition ? condition : null,\n is: is,\n then: options.then !== undefined ? Cast.schema(this._currentJoi, options.then) : undefined,\n otherwise: options.otherwise !== undefined ? Cast.schema(this._currentJoi, options.otherwise) : undefined\n };\n\n if (obj._baseType) {\n item.then = item.then && obj._baseType.concat(item.then);\n item.otherwise = item.otherwise && obj._baseType.concat(item.otherwise);\n }\n\n if (!schemaCondition) {\n Ref.push(obj._refs, item.ref);\n obj._refs = obj._refs.concat(item.is._refs);\n }\n\n if (item.then && item.then._refs) {\n obj._refs = obj._refs.concat(item.then._refs);\n }\n\n if (item.otherwise && item.otherwise._refs) {\n obj._refs = obj._refs.concat(item.otherwise._refs);\n }\n\n obj._inner.matches.push(item);\n\n return obj;\n };\n\n _class.prototype.describe = function describe() {\n var description = Any.prototype.describe.call(this);\n var alternatives = [];\n\n for (var i = 0; i < this._inner.matches.length; ++i) {\n var item = this._inner.matches[i];\n\n if (item.schema) {\n // try()\n alternatives.push(item.schema.describe());\n } else {\n // when()\n var when = item.is ? {\n ref: item.ref.toString(),\n is: item.is.describe()\n } : {\n peek: item.peek.describe()\n };\n\n if (item.then) {\n when.then = item.then.describe();\n }\n\n if (item.otherwise) {\n when.otherwise = item.otherwise.describe();\n }\n\n alternatives.push(when);\n }\n }\n\n description.alternatives = alternatives;\n return description;\n };\n\n return _class;\n }(Any);\n\n module.exports = new internals.Alternatives();\n /***/\n },\n /* 11 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n function _defaults(obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass);\n }\n\n var Any = __webpack_require__(2);\n\n var Ref = __webpack_require__(1);\n\n var Hoek = __webpack_require__(0); // Declare internals\n\n\n var internals = {};\n internals.isoDate = /^(?:[-+]\\d{2})?(?:\\d{4}(?!\\d{2}\\b))(?:(-?)(?:(?:0[1-9]|1[0-2])(?:\\1(?:[12]\\d|0[1-9]|3[01]))?|W(?:[0-4]\\d|5[0-2])(?:-?[1-7])?|(?:00[1-9]|0[1-9]\\d|[12]\\d{2}|3(?:[0-5]\\d|6[1-6])))(?![T]$|[T][\\d]+Z$)(?:[T\\s](?:(?:(?:[01]\\d|2[0-3])(?:(:?)[0-5]\\d)?|24\\:?00)(?:[.,]\\d+(?!:))?)(?:\\2[0-5]\\d(?:[.,]\\d+)?)?(?:[Z]|(?:[+-])(?:[01]\\d|2[0-3])(?::?[0-5]\\d)?)?)?)?$/;\n internals.invalidDate = new Date('');\n\n internals.isIsoDate = function () {\n var isoString = internals.isoDate.toString();\n return function (date) {\n return date && date.toString() === isoString;\n };\n }();\n\n internals.Date = function (_Any) {\n _inherits(_class, _Any);\n\n function _class() {\n _classCallCheck(this, _class);\n\n var _this = _possibleConstructorReturn(this, _Any.call(this));\n\n _this._type = 'date';\n return _this;\n }\n\n _class.prototype._base = function _base(value, state, options) {\n var result = {\n value: options.convert && internals.Date.toDate(value, this._flags.format, this._flags.timestamp, this._flags.multiplier) || value\n };\n\n if (result.value instanceof Date && !isNaN(result.value.getTime())) {\n result.errors = null;\n } else if (!options.convert) {\n result.errors = this.createError('date.strict', null, state, options);\n } else {\n var type = void 0;\n\n if (internals.isIsoDate(this._flags.format)) {\n type = 'isoDate';\n } else if (this._flags.timestamp) {\n type = 'timestamp.' + this._flags.timestamp;\n } else {\n type = 'base';\n }\n\n result.errors = this.createError('date.' + type, null, state, options);\n }\n\n return result;\n };\n\n _class.toDate = function toDate(value, format, timestamp, multiplier) {\n if (value instanceof Date) {\n return value;\n }\n\n if (typeof value === 'string' || typeof value === 'number' && !isNaN(value) && isFinite(value)) {\n if (typeof value === 'string' && /^[+-]?\\d+(\\.\\d+)?$/.test(value)) {\n value = parseFloat(value);\n }\n\n var date = void 0;\n\n if (format && internals.isIsoDate(format)) {\n date = format.test(value) ? new Date(value) : internals.invalidDate;\n } else if (timestamp && multiplier) {\n date = /^\\s*$/.test(value) ? internals.invalidDate : new Date(value * multiplier);\n } else {\n date = new Date(value);\n }\n\n if (!isNaN(date.getTime())) {\n return date;\n }\n }\n\n return null;\n };\n\n _class.prototype.iso = function iso() {\n if (this._flags.format === internals.isoDate) {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.format = internals.isoDate;\n return obj;\n };\n\n _class.prototype.timestamp = function timestamp() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'javascript';\n var allowed = ['javascript', 'unix'];\n Hoek.assert(allowed.includes(type), '\"type\" must be one of \"' + allowed.join('\", \"') + '\"');\n\n if (this._flags.timestamp === type) {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.timestamp = type;\n obj._flags.multiplier = type === 'unix' ? 1000 : 1;\n return obj;\n };\n\n _class.prototype._isIsoDate = function _isIsoDate(value) {\n return internals.isoDate.test(value);\n };\n\n return _class;\n }(Any);\n\n internals.compare = function (type, compare) {\n return function (date) {\n var isNow = date === 'now';\n var isRef = Ref.isRef(date);\n\n if (!isNow && !isRef) {\n date = internals.Date.toDate(date);\n }\n\n Hoek.assert(date, 'Invalid date format');\n return this._test(type, date, function (value, state, options) {\n var compareTo = void 0;\n\n if (isNow) {\n compareTo = Date.now();\n } else if (isRef) {\n compareTo = internals.Date.toDate(date(state.reference || state.parent, options));\n\n if (!compareTo) {\n return this.createError('date.ref', {\n ref: date.key\n }, state, options);\n }\n\n compareTo = compareTo.getTime();\n } else {\n compareTo = date.getTime();\n }\n\n if (compare(value.getTime(), compareTo)) {\n return value;\n }\n\n return this.createError('date.' + type, {\n limit: new Date(compareTo)\n }, state, options);\n });\n };\n };\n\n internals.Date.prototype.min = internals.compare('min', function (value, date) {\n return value >= date;\n });\n internals.Date.prototype.max = internals.compare('max', function (value, date) {\n return value <= date;\n });\n module.exports = new internals.Date();\n /***/\n },\n /* 12 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n\n function _defaults(obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass);\n }\n\n var Hoek = __webpack_require__(0);\n\n var Topo = __webpack_require__(28);\n\n var Any = __webpack_require__(2);\n\n var Errors = __webpack_require__(6);\n\n var Cast = __webpack_require__(4); // Declare internals\n\n\n var internals = {};\n\n internals.Object = function (_Any) {\n _inherits(_class, _Any);\n\n function _class() {\n _classCallCheck(this, _class);\n\n var _this = _possibleConstructorReturn(this, _Any.call(this));\n\n _this._type = 'object';\n _this._inner.children = null;\n _this._inner.renames = [];\n _this._inner.dependencies = [];\n _this._inner.patterns = [];\n return _this;\n }\n\n _class.prototype._base = function _base(value, state, options) {\n var target = value;\n var errors = [];\n\n var finish = function finish() {\n return {\n value: target,\n errors: errors.length ? errors : null\n };\n };\n\n if (typeof value === 'string' && options.convert) {\n value = internals.safeParse(value);\n }\n\n var type = this._flags.func ? 'function' : 'object';\n\n if (!value || (typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== type || Array.isArray(value)) {\n errors.push(this.createError(type + '.base', null, state, options));\n return finish();\n } // Skip if there are no other rules to test\n\n\n if (!this._inner.renames.length && !this._inner.dependencies.length && !this._inner.children && // null allows any keys\n !this._inner.patterns.length) {\n target = value;\n return finish();\n } // Ensure target is a local copy (parsed) or shallow copy\n\n\n if (target === value) {\n if (type === 'object') {\n target = Object.create(Object.getPrototypeOf(value));\n } else {\n target = function target() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return value.apply(this, args);\n };\n\n target.prototype = Hoek.clone(value.prototype);\n }\n\n var valueKeys = Object.keys(value);\n\n for (var i = 0; i < valueKeys.length; ++i) {\n target[valueKeys[i]] = value[valueKeys[i]];\n }\n } else {\n target = value;\n } // Rename keys\n\n\n var renamed = {};\n\n for (var _i = 0; _i < this._inner.renames.length; ++_i) {\n var rename = this._inner.renames[_i];\n\n if (rename.isRegExp) {\n var targetKeys = Object.keys(target);\n var matchedTargetKeys = [];\n\n for (var j = 0; j < targetKeys.length; ++j) {\n if (rename.from.test(targetKeys[j])) {\n matchedTargetKeys.push(targetKeys[j]);\n }\n }\n\n var allUndefined = matchedTargetKeys.every(function (key) {\n return target[key] === undefined;\n });\n\n if (rename.options.ignoreUndefined && allUndefined) {\n continue;\n }\n\n if (!rename.options.multiple && renamed[rename.to]) {\n errors.push(this.createError('object.rename.regex.multiple', {\n from: matchedTargetKeys,\n to: rename.to\n }, state, options));\n\n if (options.abortEarly) {\n return finish();\n }\n }\n\n if (Object.prototype.hasOwnProperty.call(target, rename.to) && !rename.options.override && !renamed[rename.to]) {\n errors.push(this.createError('object.rename.regex.override', {\n from: matchedTargetKeys,\n to: rename.to\n }, state, options));\n\n if (options.abortEarly) {\n return finish();\n }\n }\n\n if (allUndefined) {\n delete target[rename.to];\n } else {\n target[rename.to] = target[matchedTargetKeys[matchedTargetKeys.length - 1]];\n }\n\n renamed[rename.to] = true;\n\n if (!rename.options.alias) {\n for (var _j = 0; _j < matchedTargetKeys.length; ++_j) {\n delete target[matchedTargetKeys[_j]];\n }\n }\n } else {\n if (rename.options.ignoreUndefined && target[rename.from] === undefined) {\n continue;\n }\n\n if (!rename.options.multiple && renamed[rename.to]) {\n errors.push(this.createError('object.rename.multiple', {\n from: rename.from,\n to: rename.to\n }, state, options));\n\n if (options.abortEarly) {\n return finish();\n }\n }\n\n if (Object.prototype.hasOwnProperty.call(target, rename.to) && !rename.options.override && !renamed[rename.to]) {\n errors.push(this.createError('object.rename.override', {\n from: rename.from,\n to: rename.to\n }, state, options));\n\n if (options.abortEarly) {\n return finish();\n }\n }\n\n if (target[rename.from] === undefined) {\n delete target[rename.to];\n } else {\n target[rename.to] = target[rename.from];\n }\n\n renamed[rename.to] = true;\n\n if (!rename.options.alias) {\n delete target[rename.from];\n }\n }\n } // Validate schema\n\n\n if (!this._inner.children && // null allows any keys\n !this._inner.patterns.length && !this._inner.dependencies.length) {\n return finish();\n }\n\n var unprocessed = Hoek.mapToObject(Object.keys(target));\n\n if (this._inner.children) {\n var stripProps = [];\n\n for (var _i2 = 0; _i2 < this._inner.children.length; ++_i2) {\n var child = this._inner.children[_i2];\n var key = child.key;\n var item = target[key];\n delete unprocessed[key];\n var localState = {\n key: key,\n path: state.path.concat(key),\n parent: target,\n reference: state.reference\n };\n\n var result = child.schema._validate(item, localState, options);\n\n if (result.errors) {\n errors.push(this.createError('object.child', {\n key: key,\n child: child.schema._getLabel(key),\n reason: result.errors\n }, localState, options));\n\n if (options.abortEarly) {\n return finish();\n }\n } else {\n if (child.schema._flags.strip || result.value === undefined && result.value !== item) {\n stripProps.push(key);\n target[key] = result.finalValue;\n } else if (result.value !== undefined) {\n target[key] = result.value;\n }\n }\n }\n\n for (var _i3 = 0; _i3 < stripProps.length; ++_i3) {\n delete target[stripProps[_i3]];\n }\n } // Unknown keys\n\n\n var unprocessedKeys = Object.keys(unprocessed);\n\n if (unprocessedKeys.length && this._inner.patterns.length) {\n for (var _i4 = 0; _i4 < unprocessedKeys.length; ++_i4) {\n var _key2 = unprocessedKeys[_i4];\n var _localState = {\n key: _key2,\n path: state.path.concat(_key2),\n parent: target,\n reference: state.reference\n };\n var _item = target[_key2];\n\n for (var _j2 = 0; _j2 < this._inner.patterns.length; ++_j2) {\n var pattern = this._inner.patterns[_j2];\n\n if (pattern.regex.test(_key2)) {\n delete unprocessed[_key2];\n\n var _result = pattern.rule._validate(_item, _localState, options);\n\n if (_result.errors) {\n errors.push(this.createError('object.child', {\n key: _key2,\n child: pattern.rule._getLabel(_key2),\n reason: _result.errors\n }, _localState, options));\n\n if (options.abortEarly) {\n return finish();\n }\n }\n\n if (_result.value !== undefined) {\n target[_key2] = _result.value;\n }\n }\n }\n }\n\n unprocessedKeys = Object.keys(unprocessed);\n }\n\n if ((this._inner.children || this._inner.patterns.length) && unprocessedKeys.length) {\n if (options.stripUnknown && this._flags.allowUnknown !== true || options.skipFunctions) {\n var stripUnknown = options.stripUnknown ? options.stripUnknown === true ? true : !!options.stripUnknown.objects : false;\n\n for (var _i5 = 0; _i5 < unprocessedKeys.length; ++_i5) {\n var _key3 = unprocessedKeys[_i5];\n\n if (stripUnknown) {\n delete target[_key3];\n delete unprocessed[_key3];\n } else if (typeof target[_key3] === 'function') {\n delete unprocessed[_key3];\n }\n }\n\n unprocessedKeys = Object.keys(unprocessed);\n }\n\n if (unprocessedKeys.length && (this._flags.allowUnknown !== undefined ? !this._flags.allowUnknown : !options.allowUnknown)) {\n for (var _i6 = 0; _i6 < unprocessedKeys.length; ++_i6) {\n var unprocessedKey = unprocessedKeys[_i6];\n errors.push(this.createError('object.allowUnknown', {\n child: unprocessedKey\n }, {\n key: unprocessedKey,\n path: state.path.concat(unprocessedKey)\n }, options, {}));\n }\n }\n } // Validate dependencies\n\n\n for (var _i7 = 0; _i7 < this._inner.dependencies.length; ++_i7) {\n var dep = this._inner.dependencies[_i7];\n var err = internals[dep.type].call(this, dep.key !== null && target[dep.key], dep.peers, target, {\n key: dep.key,\n path: dep.key === null ? state.path : state.path.concat(dep.key)\n }, options);\n\n if (err instanceof Errors.Err) {\n errors.push(err);\n\n if (options.abortEarly) {\n return finish();\n }\n }\n }\n\n return finish();\n };\n\n _class.prototype.keys = function keys(schema) {\n Hoek.assert(schema === null || schema === undefined || (typeof schema === 'undefined' ? 'undefined' : _typeof(schema)) === 'object', 'Object schema must be a valid object');\n Hoek.assert(!schema || !(schema instanceof Any), 'Object schema cannot be a joi schema');\n var obj = this.clone();\n\n if (!schema) {\n obj._inner.children = null;\n return obj;\n }\n\n var children = Object.keys(schema);\n\n if (!children.length) {\n obj._inner.children = [];\n return obj;\n }\n\n var topo = new Topo();\n\n if (obj._inner.children) {\n for (var i = 0; i < obj._inner.children.length; ++i) {\n var child = obj._inner.children[i]; // Only add the key if we are not going to replace it later\n\n if (!children.includes(child.key)) {\n topo.add(child, {\n after: child._refs,\n group: child.key\n });\n }\n }\n }\n\n for (var _i8 = 0; _i8 < children.length; ++_i8) {\n var key = children[_i8];\n var _child = schema[key];\n\n try {\n var cast = Cast.schema(this._currentJoi, _child);\n topo.add({\n key: key,\n schema: cast\n }, {\n after: cast._refs,\n group: key\n });\n } catch (castErr) {\n if (castErr.hasOwnProperty('path')) {\n castErr.path = key + '.' + castErr.path;\n } else {\n castErr.path = key;\n }\n\n throw castErr;\n }\n }\n\n obj._inner.children = topo.nodes;\n return obj;\n };\n\n _class.prototype.unknown = function unknown(allow) {\n var value = allow !== false;\n\n if (this._flags.allowUnknown === value) {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.allowUnknown = value;\n return obj;\n };\n\n _class.prototype.length = function length(limit) {\n Hoek.assert(Number.isSafeInteger(limit) && limit >= 0, 'limit must be a positive integer');\n return this._test('length', limit, function (value, state, options) {\n if (Object.keys(value).length === limit) {\n return value;\n }\n\n return this.createError('object.length', {\n limit: limit\n }, state, options);\n });\n };\n\n _class.prototype.min = function min(limit) {\n Hoek.assert(Number.isSafeInteger(limit) && limit >= 0, 'limit must be a positive integer');\n return this._test('min', limit, function (value, state, options) {\n if (Object.keys(value).length >= limit) {\n return value;\n }\n\n return this.createError('object.min', {\n limit: limit\n }, state, options);\n });\n };\n\n _class.prototype.max = function max(limit) {\n Hoek.assert(Number.isSafeInteger(limit) && limit >= 0, 'limit must be a positive integer');\n return this._test('max', limit, function (value, state, options) {\n if (Object.keys(value).length <= limit) {\n return value;\n }\n\n return this.createError('object.max', {\n limit: limit\n }, state, options);\n });\n };\n\n _class.prototype.pattern = function pattern(_pattern, schema) {\n Hoek.assert(_pattern instanceof RegExp, 'Invalid regular expression');\n Hoek.assert(schema !== undefined, 'Invalid rule');\n _pattern = new RegExp(_pattern.source, _pattern.ignoreCase ? 'i' : undefined); // Future version should break this and forbid unsupported regex flags\n\n try {\n schema = Cast.schema(this._currentJoi, schema);\n } catch (castErr) {\n if (castErr.hasOwnProperty('path')) {\n castErr.message = castErr.message + '(' + castErr.path + ')';\n }\n\n throw castErr;\n }\n\n var obj = this.clone();\n\n obj._inner.patterns.push({\n regex: _pattern,\n rule: schema\n });\n\n return obj;\n };\n\n _class.prototype.schema = function schema() {\n return this._test('schema', null, function (value, state, options) {\n if (value instanceof Any) {\n return value;\n }\n\n return this.createError('object.schema', null, state, options);\n });\n };\n\n _class.prototype[\"with\"] = function _with(key, peers) {\n return this._dependency('with', key, peers);\n };\n\n _class.prototype.without = function without(key, peers) {\n return this._dependency('without', key, peers);\n };\n\n _class.prototype.xor = function xor() {\n for (var _len2 = arguments.length, peers = Array(_len2), _key4 = 0; _key4 < _len2; _key4++) {\n peers[_key4] = arguments[_key4];\n }\n\n peers = Hoek.flatten(peers);\n return this._dependency('xor', null, peers);\n };\n\n _class.prototype.or = function or() {\n for (var _len3 = arguments.length, peers = Array(_len3), _key5 = 0; _key5 < _len3; _key5++) {\n peers[_key5] = arguments[_key5];\n }\n\n peers = Hoek.flatten(peers);\n return this._dependency('or', null, peers);\n };\n\n _class.prototype.and = function and() {\n for (var _len4 = arguments.length, peers = Array(_len4), _key6 = 0; _key6 < _len4; _key6++) {\n peers[_key6] = arguments[_key6];\n }\n\n peers = Hoek.flatten(peers);\n return this._dependency('and', null, peers);\n };\n\n _class.prototype.nand = function nand() {\n for (var _len5 = arguments.length, peers = Array(_len5), _key7 = 0; _key7 < _len5; _key7++) {\n peers[_key7] = arguments[_key7];\n }\n\n peers = Hoek.flatten(peers);\n return this._dependency('nand', null, peers);\n };\n\n _class.prototype.requiredKeys = function requiredKeys() {\n for (var _len6 = arguments.length, children = Array(_len6), _key8 = 0; _key8 < _len6; _key8++) {\n children[_key8] = arguments[_key8];\n }\n\n children = Hoek.flatten(children);\n return this.applyFunctionToChildren(children, 'required');\n };\n\n _class.prototype.optionalKeys = function optionalKeys() {\n for (var _len7 = arguments.length, children = Array(_len7), _key9 = 0; _key9 < _len7; _key9++) {\n children[_key9] = arguments[_key9];\n }\n\n children = Hoek.flatten(children);\n return this.applyFunctionToChildren(children, 'optional');\n };\n\n _class.prototype.forbiddenKeys = function forbiddenKeys() {\n for (var _len8 = arguments.length, children = Array(_len8), _key10 = 0; _key10 < _len8; _key10++) {\n children[_key10] = arguments[_key10];\n }\n\n children = Hoek.flatten(children);\n return this.applyFunctionToChildren(children, 'forbidden');\n };\n\n _class.prototype.rename = function rename(from, to, options) {\n Hoek.assert(typeof from === 'string' || from instanceof RegExp, 'Rename missing the from argument');\n Hoek.assert(typeof to === 'string', 'Rename missing the to argument');\n Hoek.assert(to !== from, 'Cannot rename key to same name:', from);\n\n for (var i = 0; i < this._inner.renames.length; ++i) {\n Hoek.assert(this._inner.renames[i].from !== from, 'Cannot rename the same key multiple times');\n }\n\n var obj = this.clone();\n\n obj._inner.renames.push({\n from: from,\n to: to,\n options: Hoek.applyToDefaults(internals.renameDefaults, options || {}),\n isRegExp: from instanceof RegExp\n });\n\n return obj;\n };\n\n _class.prototype.applyFunctionToChildren = function applyFunctionToChildren(children, fn, args, root) {\n children = [].concat(children);\n Hoek.assert(children.length > 0, 'expected at least one children');\n var groupedChildren = internals.groupChildren(children);\n var obj = void 0;\n\n if ('' in groupedChildren) {\n obj = this[fn].apply(this, args);\n delete groupedChildren[''];\n } else {\n obj = this.clone();\n }\n\n if (obj._inner.children) {\n root = root ? root + '.' : '';\n\n for (var i = 0; i < obj._inner.children.length; ++i) {\n var child = obj._inner.children[i];\n var group = groupedChildren[child.key];\n\n if (group) {\n obj._inner.children[i] = {\n key: child.key,\n _refs: child._refs,\n schema: child.schema.applyFunctionToChildren(group, fn, args, root + child.key)\n };\n delete groupedChildren[child.key];\n }\n }\n }\n\n var remaining = Object.keys(groupedChildren);\n Hoek.assert(remaining.length === 0, 'unknown key(s)', remaining.join(', '));\n return obj;\n };\n\n _class.prototype._dependency = function _dependency(type, key, peers) {\n peers = [].concat(peers);\n\n for (var i = 0; i < peers.length; ++i) {\n Hoek.assert(typeof peers[i] === 'string', type, 'peers must be a string or array of strings');\n }\n\n var obj = this.clone();\n\n obj._inner.dependencies.push({\n type: type,\n key: key,\n peers: peers\n });\n\n return obj;\n };\n\n _class.prototype.describe = function describe(shallow) {\n var description = Any.prototype.describe.call(this);\n\n if (description.rules) {\n for (var i = 0; i < description.rules.length; ++i) {\n var rule = description.rules[i]; // Coverage off for future-proof descriptions, only object().assert() is use right now\n\n if (\n /* $lab:coverage:off$ */\n rule.arg && _typeof(rule.arg) === 'object' && rule.arg.schema && rule.arg.ref\n /* $lab:coverage:on$ */\n ) {\n rule.arg = {\n schema: rule.arg.schema.describe(),\n ref: rule.arg.ref.toString()\n };\n }\n }\n }\n\n if (this._inner.children && !shallow) {\n description.children = {};\n\n for (var _i9 = 0; _i9 < this._inner.children.length; ++_i9) {\n var child = this._inner.children[_i9];\n description.children[child.key] = child.schema.describe();\n }\n }\n\n if (this._inner.dependencies.length) {\n description.dependencies = Hoek.clone(this._inner.dependencies);\n }\n\n if (this._inner.patterns.length) {\n description.patterns = [];\n\n for (var _i10 = 0; _i10 < this._inner.patterns.length; ++_i10) {\n var pattern = this._inner.patterns[_i10];\n description.patterns.push({\n regex: pattern.regex.toString(),\n rule: pattern.rule.describe()\n });\n }\n }\n\n if (this._inner.renames.length > 0) {\n description.renames = Hoek.clone(this._inner.renames);\n }\n\n return description;\n };\n\n _class.prototype.assert = function assert(ref, schema, message) {\n ref = Cast.ref(ref);\n Hoek.assert(ref.isContext || ref.depth > 1, 'Cannot use assertions for root level references - use direct key rules instead');\n message = message || 'pass the assertion test';\n\n try {\n schema = Cast.schema(this._currentJoi, schema);\n } catch (castErr) {\n if (castErr.hasOwnProperty('path')) {\n castErr.message = castErr.message + '(' + castErr.path + ')';\n }\n\n throw castErr;\n }\n\n var key = ref.path[ref.path.length - 1];\n var path = ref.path.join('.');\n return this._test('assert', {\n schema: schema,\n ref: ref\n }, function (value, state, options) {\n var result = schema._validate(ref(value), null, options, value);\n\n if (!result.errors) {\n return value;\n }\n\n var localState = Hoek.merge({}, state);\n localState.key = key;\n localState.path = ref.path;\n return this.createError('object.assert', {\n ref: path,\n message: message\n }, localState, options);\n });\n };\n\n _class.prototype.type = function type(constructor) {\n var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : constructor.name;\n Hoek.assert(typeof constructor === 'function', 'type must be a constructor function');\n var typeData = {\n name: name,\n ctor: constructor\n };\n return this._test('type', typeData, function (value, state, options) {\n if (value instanceof constructor) {\n return value;\n }\n\n return this.createError('object.type', {\n type: typeData.name\n }, state, options);\n });\n };\n\n return _class;\n }(Any);\n\n internals.safeParse = function (value) {\n try {\n return JSON.parse(value);\n } catch (parseErr) {}\n\n return value;\n };\n\n internals.renameDefaults = {\n alias: false,\n // Keep old value in place\n multiple: false,\n // Allow renaming multiple keys into the same target\n override: false // Overrides an existing key\n\n };\n\n internals.groupChildren = function (children) {\n children.sort();\n var grouped = {};\n\n for (var i = 0; i < children.length; ++i) {\n var child = children[i];\n Hoek.assert(typeof child === 'string', 'children must be strings');\n var group = child.split('.')[0];\n var childGroup = grouped[group] = grouped[group] || [];\n childGroup.push(child.substring(group.length + 1));\n }\n\n return grouped;\n };\n\n internals.keysToLabels = function (schema, keys) {\n var children = schema._inner.children;\n\n if (!children) {\n return keys;\n }\n\n var findLabel = function findLabel(key) {\n var matchingChild = children.find(function (child) {\n return child.key === key;\n });\n return matchingChild ? matchingChild.schema._getLabel(key) : key;\n };\n\n if (Array.isArray(keys)) {\n return keys.map(findLabel);\n }\n\n return findLabel(keys);\n };\n\n internals[\"with\"] = function (value, peers, parent, state, options) {\n if (value === undefined) {\n return value;\n }\n\n for (var i = 0; i < peers.length; ++i) {\n var peer = peers[i];\n\n if (!Object.prototype.hasOwnProperty.call(parent, peer) || parent[peer] === undefined) {\n return this.createError('object.with', {\n main: state.key,\n mainWithLabel: internals.keysToLabels(this, state.key),\n peer: peer,\n peerWithLabel: internals.keysToLabels(this, peer)\n }, state, options);\n }\n }\n\n return value;\n };\n\n internals.without = function (value, peers, parent, state, options) {\n if (value === undefined) {\n return value;\n }\n\n for (var i = 0; i < peers.length; ++i) {\n var peer = peers[i];\n\n if (Object.prototype.hasOwnProperty.call(parent, peer) && parent[peer] !== undefined) {\n return this.createError('object.without', {\n main: state.key,\n mainWithLabel: internals.keysToLabels(this, state.key),\n peer: peer,\n peerWithLabel: internals.keysToLabels(this, peer)\n }, state, options);\n }\n }\n\n return value;\n };\n\n internals.xor = function (value, peers, parent, state, options) {\n var present = [];\n\n for (var i = 0; i < peers.length; ++i) {\n var peer = peers[i];\n\n if (Object.prototype.hasOwnProperty.call(parent, peer) && parent[peer] !== undefined) {\n present.push(peer);\n }\n }\n\n if (present.length === 1) {\n return value;\n }\n\n var context = {\n peers: peers,\n peersWithLabels: internals.keysToLabels(this, peers)\n };\n\n if (present.length === 0) {\n return this.createError('object.missing', context, state, options);\n }\n\n return this.createError('object.xor', context, state, options);\n };\n\n internals.or = function (value, peers, parent, state, options) {\n for (var i = 0; i < peers.length; ++i) {\n var peer = peers[i];\n\n if (Object.prototype.hasOwnProperty.call(parent, peer) && parent[peer] !== undefined) {\n return value;\n }\n }\n\n return this.createError('object.missing', {\n peers: peers,\n peersWithLabels: internals.keysToLabels(this, peers)\n }, state, options);\n };\n\n internals.and = function (value, peers, parent, state, options) {\n var missing = [];\n var present = [];\n var count = peers.length;\n\n for (var i = 0; i < count; ++i) {\n var peer = peers[i];\n\n if (!Object.prototype.hasOwnProperty.call(parent, peer) || parent[peer] === undefined) {\n missing.push(peer);\n } else {\n present.push(peer);\n }\n }\n\n var aon = missing.length === count || present.length === count;\n\n if (!aon) {\n return this.createError('object.and', {\n present: present,\n presentWithLabels: internals.keysToLabels(this, present),\n missing: missing,\n missingWithLabels: internals.keysToLabels(this, missing)\n }, state, options);\n }\n };\n\n internals.nand = function (value, peers, parent, state, options) {\n var present = [];\n\n for (var i = 0; i < peers.length; ++i) {\n var peer = peers[i];\n\n if (Object.prototype.hasOwnProperty.call(parent, peer) && parent[peer] !== undefined) {\n present.push(peer);\n }\n }\n\n var values = Hoek.clone(peers);\n var main = values.splice(0, 1)[0];\n var allPresent = present.length === peers.length;\n return allPresent ? this.createError('object.nand', {\n main: main,\n mainWithLabel: internals.keysToLabels(this, main),\n peers: values,\n peersWithLabels: internals.keysToLabels(this, values)\n }, state, options) : null;\n };\n\n module.exports = new internals.Object();\n /***/\n },\n /* 13 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n // Delcare internals\n\n var internals = {\n rfc3986: {}\n };\n\n internals.generate = function () {\n /**\n * elements separated by forward slash (\"/\") are alternatives.\n */\n var or = '|';\n /**\n * Rule to support zero-padded addresses.\n */\n\n var zeroPad = '0?';\n /**\n * DIGIT = %x30-39 ; 0-9\n */\n\n var digit = '0-9';\n var digitOnly = '[' + digit + ']';\n /**\n * ALPHA = %x41-5A / %x61-7A ; A-Z / a-z\n */\n\n var alpha = 'a-zA-Z';\n var alphaOnly = '[' + alpha + ']';\n /**\n * IPv4\n * cidr = DIGIT ; 0-9\n * / %x31-32 DIGIT ; 10-29\n * / \"3\" %x30-32 ; 30-32\n */\n\n internals.rfc3986.ipv4Cidr = digitOnly + or + '[1-2]' + digitOnly + or + '3' + '[0-2]';\n /**\n * IPv6\n * cidr = DIGIT ; 0-9\n * / %x31-39 DIGIT ; 10-99\n * / \"1\" %x0-1 DIGIT ; 100-119\n * / \"12\" %x0-8 ; 120-128\n */\n\n internals.rfc3986.ipv6Cidr = '(?:' + zeroPad + zeroPad + digitOnly + or + zeroPad + '[1-9]' + digitOnly + or + '1' + '[01]' + digitOnly + or + '12[0-8])';\n /**\n * HEXDIG = DIGIT / \"A\" / \"B\" / \"C\" / \"D\" / \"E\" / \"F\"\n */\n\n var hexDigit = digit + 'A-Fa-f';\n var hexDigitOnly = '[' + hexDigit + ']';\n /**\n * unreserved = ALPHA / DIGIT / \"-\" / \".\" / \"_\" / \"~\"\n */\n\n var unreserved = alpha + digit + '-\\\\._~';\n /**\n * sub-delims = \"!\" / \"$\" / \"&\" / \"'\" / \"(\" / \")\" / \"*\" / \"+\" / \",\" / \";\" / \"=\"\n */\n\n var subDelims = '!\\\\$&\\'\\\\(\\\\)\\\\*\\\\+,;=';\n /**\n * pct-encoded = \"%\" HEXDIG HEXDIG\n */\n\n var pctEncoded = '%' + hexDigit;\n /**\n * pchar = unreserved / pct-encoded / sub-delims / \":\" / \"@\"\n */\n\n var pchar = unreserved + pctEncoded + subDelims + ':@';\n var pcharOnly = '[' + pchar + ']';\n /**\n * dec-octet = DIGIT ; 0-9\n * / %x31-39 DIGIT ; 10-99\n * / \"1\" 2DIGIT ; 100-199\n * / \"2\" %x30-34 DIGIT ; 200-249\n * / \"25\" %x30-35 ; 250-255\n */\n\n var decOctect = '(?:' + zeroPad + zeroPad + digitOnly + or + zeroPad + '[1-9]' + digitOnly + or + '1' + digitOnly + digitOnly + or + '2' + '[0-4]' + digitOnly + or + '25' + '[0-5])';\n /**\n * IPv4address = dec-octet \".\" dec-octet \".\" dec-octet \".\" dec-octet\n */\n\n internals.rfc3986.IPv4address = '(?:' + decOctect + '\\\\.){3}' + decOctect;\n /**\n * h16 = 1*4HEXDIG ; 16 bits of address represented in hexadecimal\n * ls32 = ( h16 \":\" h16 ) / IPv4address ; least-significant 32 bits of address\n * IPv6address = 6( h16 \":\" ) ls32\n * / \"::\" 5( h16 \":\" ) ls32\n * / [ h16 ] \"::\" 4( h16 \":\" ) ls32\n * / [ *1( h16 \":\" ) h16 ] \"::\" 3( h16 \":\" ) ls32\n * / [ *2( h16 \":\" ) h16 ] \"::\" 2( h16 \":\" ) ls32\n * / [ *3( h16 \":\" ) h16 ] \"::\" h16 \":\" ls32\n * / [ *4( h16 \":\" ) h16 ] \"::\" ls32\n * / [ *5( h16 \":\" ) h16 ] \"::\" h16\n * / [ *6( h16 \":\" ) h16 ] \"::\"\n */\n\n var h16 = hexDigitOnly + '{1,4}';\n var ls32 = '(?:' + h16 + ':' + h16 + '|' + internals.rfc3986.IPv4address + ')';\n var IPv6SixHex = '(?:' + h16 + ':){6}' + ls32;\n var IPv6FiveHex = '::(?:' + h16 + ':){5}' + ls32;\n var IPv6FourHex = '(?:' + h16 + ')?::(?:' + h16 + ':){4}' + ls32;\n var IPv6ThreeHex = '(?:(?:' + h16 + ':){0,1}' + h16 + ')?::(?:' + h16 + ':){3}' + ls32;\n var IPv6TwoHex = '(?:(?:' + h16 + ':){0,2}' + h16 + ')?::(?:' + h16 + ':){2}' + ls32;\n var IPv6OneHex = '(?:(?:' + h16 + ':){0,3}' + h16 + ')?::' + h16 + ':' + ls32;\n var IPv6NoneHex = '(?:(?:' + h16 + ':){0,4}' + h16 + ')?::' + ls32;\n var IPv6NoneHex2 = '(?:(?:' + h16 + ':){0,5}' + h16 + ')?::' + h16;\n var IPv6NoneHex3 = '(?:(?:' + h16 + ':){0,6}' + h16 + ')?::';\n internals.rfc3986.IPv6address = '(?:' + IPv6SixHex + or + IPv6FiveHex + or + IPv6FourHex + or + IPv6ThreeHex + or + IPv6TwoHex + or + IPv6OneHex + or + IPv6NoneHex + or + IPv6NoneHex2 + or + IPv6NoneHex3 + ')';\n /**\n * IPvFuture = \"v\" 1*HEXDIG \".\" 1*( unreserved / sub-delims / \":\" )\n */\n\n internals.rfc3986.IPvFuture = 'v' + hexDigitOnly + '+\\\\.[' + unreserved + subDelims + ':]+';\n /**\n * scheme = ALPHA *( ALPHA / DIGIT / \"+\" / \"-\" / \".\" )\n */\n\n internals.rfc3986.scheme = alphaOnly + '[' + alpha + digit + '+-\\\\.]*';\n /**\n * userinfo = *( unreserved / pct-encoded / sub-delims / \":\" )\n */\n\n var userinfo = '[' + unreserved + pctEncoded + subDelims + ':]*';\n /**\n * IP-literal = \"[\" ( IPv6address / IPvFuture ) \"]\"\n */\n\n var IPLiteral = '\\\\[(?:' + internals.rfc3986.IPv6address + or + internals.rfc3986.IPvFuture + ')\\\\]';\n /**\n * reg-name = *( unreserved / pct-encoded / sub-delims )\n */\n\n var regName = '[' + unreserved + pctEncoded + subDelims + ']{0,255}';\n /**\n * host = IP-literal / IPv4address / reg-name\n */\n\n var host = '(?:' + IPLiteral + or + internals.rfc3986.IPv4address + or + regName + ')';\n /**\n * port = *DIGIT\n */\n\n var port = digitOnly + '*';\n /**\n * authority = [ userinfo \"@\" ] host [ \":\" port ]\n */\n\n var authority = '(?:' + userinfo + '@)?' + host + '(?::' + port + ')?';\n /**\n * segment = *pchar\n * segment-nz = 1*pchar\n * path = path-abempty ; begins with \"/\" or is empty\n * / path-absolute ; begins with \"/\" but not \"//\"\n * / path-noscheme ; begins with a non-colon segment\n * / path-rootless ; begins with a segment\n * / path-empty ; zero characters\n * path-abempty = *( \"/\" segment )\n * path-absolute = \"/\" [ segment-nz *( \"/\" segment ) ]\n * path-rootless = segment-nz *( \"/\" segment )\n */\n\n var segment = pcharOnly + '*';\n var segmentNz = pcharOnly + '+';\n var segmentNzNc = '[' + unreserved + pctEncoded + subDelims + '@' + ']+';\n var pathEmpty = '';\n var pathAbEmpty = '(?:\\\\/' + segment + ')*';\n var pathAbsolute = '\\\\/(?:' + segmentNz + pathAbEmpty + ')?';\n var pathRootless = segmentNz + pathAbEmpty;\n var pathNoScheme = segmentNzNc + pathAbEmpty;\n /**\n * hier-part = \"//\" authority path\n */\n\n internals.rfc3986.hierPart = '(?:' + '(?:\\\\/\\\\/' + authority + pathAbEmpty + ')' + or + pathAbsolute + or + pathRootless + ')';\n /**\n * relative-part = \"//\" authority path-abempty\n * / path-absolute\n * / path-noscheme\n * / path-empty\n */\n\n internals.rfc3986.relativeRef = '(?:' + '(?:\\\\/\\\\/' + authority + pathAbEmpty + ')' + or + pathAbsolute + or + pathNoScheme + or + pathEmpty + ')';\n /**\n * query = *( pchar / \"/\" / \"?\" )\n */\n\n internals.rfc3986.query = '[' + pchar + '\\\\/\\\\?]*(?=#|$)'; //Finish matching either at the fragment part or end of the line.\n\n /**\n * fragment = *( pchar / \"/\" / \"?\" )\n */\n\n internals.rfc3986.fragment = '[' + pchar + '\\\\/\\\\?]*';\n };\n\n internals.generate();\n module.exports = internals.rfc3986;\n /***/\n },\n /* 14 */\n\n /***/\n function (module, exports) {\n /***/\n },\n /* 15 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n /* WEBPACK VAR INJECTION */\n\n (function (Buffer) {\n // Declare internals\n var internals = {};\n\n exports.escapeJavaScript = function (input) {\n if (!input) {\n return '';\n }\n\n var escaped = '';\n\n for (var i = 0; i < input.length; ++i) {\n var charCode = input.charCodeAt(i);\n\n if (internals.isSafe(charCode)) {\n escaped += input[i];\n } else {\n escaped += internals.escapeJavaScriptChar(charCode);\n }\n }\n\n return escaped;\n };\n\n exports.escapeHtml = function (input) {\n if (!input) {\n return '';\n }\n\n var escaped = '';\n\n for (var i = 0; i < input.length; ++i) {\n var charCode = input.charCodeAt(i);\n\n if (internals.isSafe(charCode)) {\n escaped += input[i];\n } else {\n escaped += internals.escapeHtmlChar(charCode);\n }\n }\n\n return escaped;\n };\n\n exports.escapeJson = function (input) {\n if (!input) {\n return '';\n }\n\n var lessThan = 0x3C;\n var greaterThan = 0x3E;\n var andSymbol = 0x26;\n var lineSeperator = 0x2028; // replace method\n\n var charCode = void 0;\n return input.replace(/[<>&\\u2028\\u2029]/g, function (match) {\n charCode = match.charCodeAt(0);\n\n if (charCode === lessThan) {\n return \"\\\\u003c\";\n } else if (charCode === greaterThan) {\n return \"\\\\u003e\";\n } else if (charCode === andSymbol) {\n return \"\\\\u0026\";\n } else if (charCode === lineSeperator) {\n return \"\\\\u2028\";\n }\n\n return \"\\\\u2029\";\n });\n };\n\n internals.escapeJavaScriptChar = function (charCode) {\n if (charCode >= 256) {\n return \"\\\\u\" + internals.padLeft('' + charCode, 4);\n }\n\n var hexValue = new Buffer(String.fromCharCode(charCode), 'ascii').toString('hex');\n return '\\\\x' + internals.padLeft(hexValue, 2);\n };\n\n internals.escapeHtmlChar = function (charCode) {\n var namedEscape = internals.namedHtml[charCode];\n\n if (typeof namedEscape !== 'undefined') {\n return namedEscape;\n }\n\n if (charCode >= 256) {\n return '&#' + charCode + ';';\n }\n\n var hexValue = new Buffer(String.fromCharCode(charCode), 'ascii').toString('hex');\n return '&#x' + internals.padLeft(hexValue, 2) + ';';\n };\n\n internals.padLeft = function (str, len) {\n while (str.length < len) {\n str = '0' + str;\n }\n\n return str;\n };\n\n internals.isSafe = function (charCode) {\n return typeof internals.safeCharCodes[charCode] !== 'undefined';\n };\n\n internals.namedHtml = {\n '38': '&',\n '60': '<',\n '62': '>',\n '34': '"',\n '160': ' ',\n '162': '¢',\n '163': '£',\n '164': '¤',\n '169': '©',\n '174': '®'\n };\n\n internals.safeCharCodes = function () {\n var safe = {};\n\n for (var i = 32; i < 123; ++i) {\n if (i >= 97 || // a-z\n i >= 65 && i <= 90 || // A-Z\n i >= 48 && i <= 57 || // 0-9\n i === 32 || // space\n i === 46 || // .\n i === 44 || // ,\n i === 45 || // -\n i === 58 || // :\n i === 95) {\n // _\n safe[i] = null;\n }\n }\n\n return safe;\n }();\n /* WEBPACK VAR INJECTION */\n\n }).call(exports, __webpack_require__(3).Buffer);\n /***/\n },\n /* 16 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n /* WEBPACK VAR INJECTION */\n\n (function (Buffer, process) {\n // Load modules\n var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n\n var Punycode = __webpack_require__(35); // Declare internals\n\n\n var internals = {\n hasOwn: Object.prototype.hasOwnProperty,\n indexOf: Array.prototype.indexOf,\n defaultThreshold: 16,\n maxIPv6Groups: 8,\n categories: {\n valid: 1,\n dnsWarn: 7,\n rfc5321: 15,\n cfws: 31,\n deprecated: 63,\n rfc5322: 127,\n error: 255\n },\n diagnoses: {\n // Address is valid\n valid: 0,\n // Address is valid for SMTP but has unusual elements\n rfc5321TLD: 9,\n rfc5321TLDNumeric: 10,\n rfc5321QuotedString: 11,\n rfc5321AddressLiteral: 12,\n // Address is valid for message, but must be modified for envelope\n cfwsComment: 17,\n cfwsFWS: 18,\n // Address contains deprecated elements, but may still be valid in some contexts\n deprecatedLocalPart: 33,\n deprecatedFWS: 34,\n deprecatedQTEXT: 35,\n deprecatedQP: 36,\n deprecatedComment: 37,\n deprecatedCTEXT: 38,\n deprecatedIPv6: 39,\n deprecatedCFWSNearAt: 49,\n // Address is only valid according to broad definition in RFC 5322, but is otherwise invalid\n rfc5322Domain: 65,\n rfc5322TooLong: 66,\n rfc5322LocalTooLong: 67,\n rfc5322DomainTooLong: 68,\n rfc5322LabelTooLong: 69,\n rfc5322DomainLiteral: 70,\n rfc5322DomainLiteralOBSDText: 71,\n rfc5322IPv6GroupCount: 72,\n rfc5322IPv62x2xColon: 73,\n rfc5322IPv6BadCharacter: 74,\n rfc5322IPv6MaxGroups: 75,\n rfc5322IPv6ColonStart: 76,\n rfc5322IPv6ColonEnd: 77,\n // Address is invalid for any purpose\n errExpectingDTEXT: 129,\n errNoLocalPart: 130,\n errNoDomain: 131,\n errConsecutiveDots: 132,\n errATEXTAfterCFWS: 133,\n errATEXTAfterQS: 134,\n errATEXTAfterDomainLiteral: 135,\n errExpectingQPair: 136,\n errExpectingATEXT: 137,\n errExpectingQTEXT: 138,\n errExpectingCTEXT: 139,\n errBackslashEnd: 140,\n errDotStart: 141,\n errDotEnd: 142,\n errDomainHyphenStart: 143,\n errDomainHyphenEnd: 144,\n errUnclosedQuotedString: 145,\n errUnclosedComment: 146,\n errUnclosedDomainLiteral: 147,\n errFWSCRLFx2: 148,\n errFWSCRLFEnd: 149,\n errCRNoLF: 150,\n errUnknownTLD: 160,\n errDomainTooShort: 161\n },\n components: {\n localpart: 0,\n domain: 1,\n literal: 2,\n contextComment: 3,\n contextFWS: 4,\n contextQuotedString: 5,\n contextQuotedPair: 6\n }\n };\n\n internals.specials = function () {\n var specials = '()<>[]:;@\\\\,.\"'; // US-ASCII visible characters not valid for atext (http://tools.ietf.org/html/rfc5322#section-3.2.3)\n\n var lookup = new Array(0x100);\n lookup.fill(false);\n\n for (var i = 0; i < specials.length; ++i) {\n lookup[specials.codePointAt(i)] = true;\n }\n\n return function (code) {\n return lookup[code];\n };\n }();\n\n internals.c0Controls = function () {\n var lookup = new Array(0x100);\n lookup.fill(false); // add C0 control characters\n\n for (var i = 0; i < 33; ++i) {\n lookup[i] = true;\n }\n\n return function (code) {\n return lookup[code];\n };\n }();\n\n internals.c1Controls = function () {\n var lookup = new Array(0x100);\n lookup.fill(false); // add C1 control characters\n\n for (var i = 127; i < 160; ++i) {\n lookup[i] = true;\n }\n\n return function (code) {\n return lookup[code];\n };\n }();\n\n internals.regex = {\n ipV4: /\\b(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n ipV6: /^[a-fA-F\\d]{0,4}$/\n }; // $lab:coverage:off$\n\n internals.nulNormalize = function (email) {\n var emailPieces = email.split('\\0');\n emailPieces = emailPieces.map(function (string) {\n return string.normalize('NFC');\n });\n return emailPieces.join('\\0');\n }; // $lab:coverage:on$\n\n\n internals.checkIpV6 = function (items) {\n return items.every(function (value) {\n return internals.regex.ipV6.test(value);\n });\n };\n\n internals.validDomain = function (tldAtom, options) {\n if (options.tldBlacklist) {\n if (Array.isArray(options.tldBlacklist)) {\n return internals.indexOf.call(options.tldBlacklist, tldAtom) === -1;\n }\n\n return !internals.hasOwn.call(options.tldBlacklist, tldAtom);\n }\n\n if (Array.isArray(options.tldWhitelist)) {\n return internals.indexOf.call(options.tldWhitelist, tldAtom) !== -1;\n }\n\n return internals.hasOwn.call(options.tldWhitelist, tldAtom);\n };\n /**\n * Check that an email address conforms to RFCs 5321, 5322, 6530 and others\n *\n * We distinguish clearly between a Mailbox as defined by RFC 5321 and an\n * addr-spec as defined by RFC 5322. Depending on the context, either can be\n * regarded as a valid email address. The RFC 5321 Mailbox specification is\n * more restrictive (comments, white space and obsolete forms are not allowed).\n *\n * @param {string} email The email address to check. See README for specifics.\n * @param {Object} options The (optional) options:\n * {*} errorLevel Determines the boundary between valid and invalid\n * addresses.\n * {*} tldBlacklist The set of domains to consider invalid.\n * {*} tldWhitelist The set of domains to consider valid.\n * {*} minDomainAtoms The minimum number of domain atoms which must be present\n * for the address to be valid.\n * @param {function(number|boolean)} callback The (optional) callback handler.\n * @return {*}\n */\n\n\n exports.validate = internals.validate = function (email, options, callback) {\n options = options || {};\n email = internals.normalize(email);\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n if (typeof callback !== 'function') {\n callback = null;\n }\n\n var diagnose = void 0;\n var threshold = void 0;\n\n if (typeof options.errorLevel === 'number') {\n diagnose = true;\n threshold = options.errorLevel;\n } else {\n diagnose = !!options.errorLevel;\n threshold = internals.diagnoses.valid;\n }\n\n if (options.tldWhitelist) {\n if (typeof options.tldWhitelist === 'string') {\n options.tldWhitelist = [options.tldWhitelist];\n } else if (_typeof(options.tldWhitelist) !== 'object') {\n throw new TypeError('expected array or object tldWhitelist');\n }\n }\n\n if (options.tldBlacklist) {\n if (typeof options.tldBlacklist === 'string') {\n options.tldBlacklist = [options.tldBlacklist];\n } else if (_typeof(options.tldBlacklist) !== 'object') {\n throw new TypeError('expected array or object tldBlacklist');\n }\n }\n\n if (options.minDomainAtoms && (options.minDomainAtoms !== (+options.minDomainAtoms | 0) || options.minDomainAtoms < 0)) {\n throw new TypeError('expected positive integer minDomainAtoms');\n }\n\n var maxResult = internals.diagnoses.valid;\n\n var updateResult = function updateResult(value) {\n if (value > maxResult) {\n maxResult = value;\n }\n };\n\n var context = {\n now: internals.components.localpart,\n prev: internals.components.localpart,\n stack: [internals.components.localpart]\n };\n var prevToken = '';\n var parseData = {\n local: '',\n domain: ''\n };\n var atomData = {\n locals: [''],\n domains: ['']\n };\n var elementCount = 0;\n var elementLength = 0;\n var crlfCount = 0;\n var charCode = void 0;\n var hyphenFlag = false;\n var assertEnd = false;\n var emailLength = email.length;\n var token = void 0; // Token is used outside the loop, must declare similarly\n\n for (var i = 0; i < emailLength; i += token.length) {\n // Utilize codepoints to account for Unicode surrogate pairs\n token = String.fromCodePoint(email.codePointAt(i));\n\n switch (context.now) {\n // Local-part\n case internals.components.localpart:\n // http://tools.ietf.org/html/rfc5322#section-3.4.1\n // local-part = dot-atom / quoted-string / obs-local-part\n //\n // dot-atom = [CFWS] dot-atom-text [CFWS]\n //\n // dot-atom-text = 1*atext *(\".\" 1*atext)\n //\n // quoted-string = [CFWS]\n // DQUOTE *([FWS] qcontent) [FWS] DQUOTE\n // [CFWS]\n //\n // obs-local-part = word *(\".\" word)\n //\n // word = atom / quoted-string\n //\n // atom = [CFWS] 1*atext [CFWS]\n switch (token) {\n // Comment\n case '(':\n if (elementLength === 0) {\n // Comments are OK at the beginning of an element\n updateResult(elementCount === 0 ? internals.diagnoses.cfwsComment : internals.diagnoses.deprecatedComment);\n } else {\n updateResult(internals.diagnoses.cfwsComment); // Cannot start a comment in an element, should be end\n\n assertEnd = true;\n }\n\n context.stack.push(context.now);\n context.now = internals.components.contextComment;\n break;\n // Next dot-atom element\n\n case '.':\n if (elementLength === 0) {\n // Another dot, already?\n updateResult(elementCount === 0 ? internals.diagnoses.errDotStart : internals.diagnoses.errConsecutiveDots);\n } else {\n // The entire local-part can be a quoted string for RFC 5321; if one atom is quoted it's an RFC 5322 obsolete form\n if (assertEnd) {\n updateResult(internals.diagnoses.deprecatedLocalPart);\n } // CFWS & quoted strings are OK again now we're at the beginning of an element (although they are obsolete forms)\n\n\n assertEnd = false;\n elementLength = 0;\n ++elementCount;\n parseData.local += token;\n atomData.locals[elementCount] = '';\n }\n\n break;\n // Quoted string\n\n case '\"':\n if (elementLength === 0) {\n // The entire local-part can be a quoted string for RFC 5321; if one atom is quoted it's an RFC 5322 obsolete form\n updateResult(elementCount === 0 ? internals.diagnoses.rfc5321QuotedString : internals.diagnoses.deprecatedLocalPart);\n parseData.local += token;\n atomData.locals[elementCount] += token;\n elementLength += Buffer.byteLength(token, 'utf8'); // Quoted string must be the entire element\n\n assertEnd = true;\n context.stack.push(context.now);\n context.now = internals.components.contextQuotedString;\n } else {\n updateResult(internals.diagnoses.errExpectingATEXT);\n }\n\n break;\n // Folding white space\n\n case '\\r':\n if (emailLength === ++i || email[i] !== '\\n') {\n // Fatal error\n updateResult(internals.diagnoses.errCRNoLF);\n break;\n }\n\n // Fallthrough\n\n case ' ':\n case '\\t':\n if (elementLength === 0) {\n updateResult(elementCount === 0 ? internals.diagnoses.cfwsFWS : internals.diagnoses.deprecatedFWS);\n } else {\n // We can't start FWS in the middle of an element, better be end\n assertEnd = true;\n }\n\n context.stack.push(context.now);\n context.now = internals.components.contextFWS;\n prevToken = token;\n break;\n\n case '@':\n // At this point we should have a valid local-part\n // $lab:coverage:off$\n if (context.stack.length !== 1) {\n throw new Error('unexpected item on context stack');\n } // $lab:coverage:on$\n\n\n if (parseData.local.length === 0) {\n // Fatal error\n updateResult(internals.diagnoses.errNoLocalPart);\n } else if (elementLength === 0) {\n // Fatal error\n updateResult(internals.diagnoses.errDotEnd);\n } // http://tools.ietf.org/html/rfc5321#section-4.5.3.1.1 the maximum total length of a user name or other local-part is 64\n // octets\n else if (Buffer.byteLength(parseData.local, 'utf8') > 64) {\n updateResult(internals.diagnoses.rfc5322LocalTooLong);\n } // http://tools.ietf.org/html/rfc5322#section-3.4.1 comments and folding white space SHOULD NOT be used around \"@\" in the\n // addr-spec\n //\n // http://tools.ietf.org/html/rfc2119\n // 4. SHOULD NOT this phrase, or the phrase \"NOT RECOMMENDED\" mean that there may exist valid reasons in particular\n // circumstances when the particular behavior is acceptable or even useful, but the full implications should be understood\n // and the case carefully weighed before implementing any behavior described with this label.\n else if (context.prev === internals.components.contextComment || context.prev === internals.components.contextFWS) {\n updateResult(internals.diagnoses.deprecatedCFWSNearAt);\n } // Clear everything down for the domain parsing\n\n\n context.now = internals.components.domain;\n context.stack[0] = internals.components.domain;\n elementCount = 0;\n elementLength = 0;\n assertEnd = false; // CFWS can only appear at the end of the element\n\n break;\n // ATEXT\n\n default:\n // http://tools.ietf.org/html/rfc5322#section-3.2.3\n // atext = ALPHA / DIGIT / ; Printable US-ASCII\n // \"!\" / \"#\" / ; characters not including\n // \"$\" / \"%\" / ; specials. Used for atoms.\n // \"&\" / \"'\" /\n // \"*\" / \"+\" /\n // \"-\" / \"/\" /\n // \"=\" / \"?\" /\n // \"^\" / \"_\" /\n // \"`\" / \"{\" /\n // \"|\" / \"}\" /\n // \"~\"\n if (assertEnd) {\n // We have encountered atext where it is no longer valid\n switch (context.prev) {\n case internals.components.contextComment:\n case internals.components.contextFWS:\n updateResult(internals.diagnoses.errATEXTAfterCFWS);\n break;\n\n case internals.components.contextQuotedString:\n updateResult(internals.diagnoses.errATEXTAfterQS);\n break;\n // $lab:coverage:off$\n\n default:\n throw new Error('more atext found where none is allowed, but unrecognized prev context: ' + context.prev);\n // $lab:coverage:on$\n }\n } else {\n context.prev = context.now;\n charCode = token.codePointAt(0); // Especially if charCode == 10\n\n if (internals.specials(charCode) || internals.c0Controls(charCode) || internals.c1Controls(charCode)) {\n // Fatal error\n updateResult(internals.diagnoses.errExpectingATEXT);\n }\n\n parseData.local += token;\n atomData.locals[elementCount] += token;\n elementLength += Buffer.byteLength(token, 'utf8');\n }\n\n }\n\n break;\n\n case internals.components.domain:\n // http://tools.ietf.org/html/rfc5322#section-3.4.1\n // domain = dot-atom / domain-literal / obs-domain\n //\n // dot-atom = [CFWS] dot-atom-text [CFWS]\n //\n // dot-atom-text = 1*atext *(\".\" 1*atext)\n //\n // domain-literal = [CFWS] \"[\" *([FWS] dtext) [FWS] \"]\" [CFWS]\n //\n // dtext = %d33-90 / ; Printable US-ASCII\n // %d94-126 / ; characters not including\n // obs-dtext ; \"[\", \"]\", or \"\\\"\n //\n // obs-domain = atom *(\".\" atom)\n //\n // atom = [CFWS] 1*atext [CFWS]\n // http://tools.ietf.org/html/rfc5321#section-4.1.2\n // Mailbox = Local-part \"@\" ( Domain / address-literal )\n //\n // Domain = sub-domain *(\".\" sub-domain)\n //\n // address-literal = \"[\" ( IPv4-address-literal /\n // IPv6-address-literal /\n // General-address-literal ) \"]\"\n // ; See Section 4.1.3\n // http://tools.ietf.org/html/rfc5322#section-3.4.1\n // Note: A liberal syntax for the domain portion of addr-spec is\n // given here. However, the domain portion contains addressing\n // information specified by and used in other protocols (e.g.,\n // [RFC1034], [RFC1035], [RFC1123], [RFC5321]). It is therefore\n // incumbent upon implementations to conform to the syntax of\n // addresses for the context in which they are used.\n //\n // is_email() author's note: it's not clear how to interpret this in\n // he context of a general email address validator. The conclusion I\n // have reached is this: \"addressing information\" must comply with\n // RFC 5321 (and in turn RFC 1035), anything that is \"semantically\n // invisible\" must comply only with RFC 5322.\n switch (token) {\n // Comment\n case '(':\n if (elementLength === 0) {\n // Comments at the start of the domain are deprecated in the text, comments at the start of a subdomain are obs-domain\n // http://tools.ietf.org/html/rfc5322#section-3.4.1\n updateResult(elementCount === 0 ? internals.diagnoses.deprecatedCFWSNearAt : internals.diagnoses.deprecatedComment);\n } else {\n // We can't start a comment mid-element, better be at the end\n assertEnd = true;\n updateResult(internals.diagnoses.cfwsComment);\n }\n\n context.stack.push(context.now);\n context.now = internals.components.contextComment;\n break;\n // Next dot-atom element\n\n case '.':\n var punycodeLength = Punycode.encode(atomData.domains[elementCount]).length;\n\n if (elementLength === 0) {\n // Another dot, already? Fatal error.\n updateResult(elementCount === 0 ? internals.diagnoses.errDotStart : internals.diagnoses.errConsecutiveDots);\n } else if (hyphenFlag) {\n // Previous subdomain ended in a hyphen. Fatal error.\n updateResult(internals.diagnoses.errDomainHyphenEnd);\n } else if (punycodeLength > 63) {\n // RFC 5890 specifies that domain labels that are encoded using the Punycode algorithm\n // must adhere to the <= 63 octet requirement.\n // This includes string prefixes from the Punycode algorithm.\n //\n // https://tools.ietf.org/html/rfc5890#section-2.3.2.1\n // labels 63 octets or less\n updateResult(internals.diagnoses.rfc5322LabelTooLong);\n } // CFWS is OK again now we're at the beginning of an element (although\n // it may be obsolete CFWS)\n\n\n assertEnd = false;\n elementLength = 0;\n ++elementCount;\n atomData.domains[elementCount] = '';\n parseData.domain += token;\n break;\n // Domain literal\n\n case '[':\n if (parseData.domain.length === 0) {\n // Domain literal must be the only component\n assertEnd = true;\n elementLength += Buffer.byteLength(token, 'utf8');\n context.stack.push(context.now);\n context.now = internals.components.literal;\n parseData.domain += token;\n atomData.domains[elementCount] += token;\n parseData.literal = '';\n } else {\n // Fatal error\n updateResult(internals.diagnoses.errExpectingATEXT);\n }\n\n break;\n // Folding white space\n\n case '\\r':\n if (emailLength === ++i || email[i] !== '\\n') {\n // Fatal error\n updateResult(internals.diagnoses.errCRNoLF);\n break;\n }\n\n // Fallthrough\n\n case ' ':\n case '\\t':\n if (elementLength === 0) {\n updateResult(elementCount === 0 ? internals.diagnoses.deprecatedCFWSNearAt : internals.diagnoses.deprecatedFWS);\n } else {\n // We can't start FWS in the middle of an element, so this better be the end\n updateResult(internals.diagnoses.cfwsFWS);\n assertEnd = true;\n }\n\n context.stack.push(context.now);\n context.now = internals.components.contextFWS;\n prevToken = token;\n break;\n // This must be ATEXT\n\n default:\n // RFC 5322 allows any atext...\n // http://tools.ietf.org/html/rfc5322#section-3.2.3\n // atext = ALPHA / DIGIT / ; Printable US-ASCII\n // \"!\" / \"#\" / ; characters not including\n // \"$\" / \"%\" / ; specials. Used for atoms.\n // \"&\" / \"'\" /\n // \"*\" / \"+\" /\n // \"-\" / \"/\" /\n // \"=\" / \"?\" /\n // \"^\" / \"_\" /\n // \"`\" / \"{\" /\n // \"|\" / \"}\" /\n // \"~\"\n // But RFC 5321 only allows letter-digit-hyphen to comply with DNS rules\n // (RFCs 1034 & 1123)\n // http://tools.ietf.org/html/rfc5321#section-4.1.2\n // sub-domain = Let-dig [Ldh-str]\n //\n // Let-dig = ALPHA / DIGIT\n //\n // Ldh-str = *( ALPHA / DIGIT / \"-\" ) Let-dig\n //\n if (assertEnd) {\n // We have encountered ATEXT where it is no longer valid\n switch (context.prev) {\n case internals.components.contextComment:\n case internals.components.contextFWS:\n updateResult(internals.diagnoses.errATEXTAfterCFWS);\n break;\n\n case internals.components.literal:\n updateResult(internals.diagnoses.errATEXTAfterDomainLiteral);\n break;\n // $lab:coverage:off$\n\n default:\n throw new Error('more atext found where none is allowed, but unrecognized prev context: ' + context.prev);\n // $lab:coverage:on$\n }\n }\n\n charCode = token.codePointAt(0); // Assume this token isn't a hyphen unless we discover it is\n\n hyphenFlag = false;\n\n if (internals.specials(charCode) || internals.c0Controls(charCode) || internals.c1Controls(charCode)) {\n // Fatal error\n updateResult(internals.diagnoses.errExpectingATEXT);\n } else if (token === '-') {\n if (elementLength === 0) {\n // Hyphens cannot be at the beginning of a subdomain, fatal error\n updateResult(internals.diagnoses.errDomainHyphenStart);\n }\n\n hyphenFlag = true;\n } // Check if it's a neither a number nor a latin/unicode letter\n else if (charCode < 48 || charCode > 122 && charCode < 192 || charCode > 57 && charCode < 65 || charCode > 90 && charCode < 97) {\n // This is not an RFC 5321 subdomain, but still OK by RFC 5322\n updateResult(internals.diagnoses.rfc5322Domain);\n }\n\n parseData.domain += token;\n atomData.domains[elementCount] += token;\n elementLength += Buffer.byteLength(token, 'utf8');\n }\n\n break;\n // Domain literal\n\n case internals.components.literal:\n // http://tools.ietf.org/html/rfc5322#section-3.4.1\n // domain-literal = [CFWS] \"[\" *([FWS] dtext) [FWS] \"]\" [CFWS]\n //\n // dtext = %d33-90 / ; Printable US-ASCII\n // %d94-126 / ; characters not including\n // obs-dtext ; \"[\", \"]\", or \"\\\"\n //\n // obs-dtext = obs-NO-WS-CTL / quoted-pair\n switch (token) {\n // End of domain literal\n case ']':\n if (maxResult < internals.categories.deprecated) {\n // Could be a valid RFC 5321 address literal, so let's check\n // http://tools.ietf.org/html/rfc5321#section-4.1.2\n // address-literal = \"[\" ( IPv4-address-literal /\n // IPv6-address-literal /\n // General-address-literal ) \"]\"\n // ; See Section 4.1.3\n //\n // http://tools.ietf.org/html/rfc5321#section-4.1.3\n // IPv4-address-literal = Snum 3(\".\" Snum)\n //\n // IPv6-address-literal = \"IPv6:\" IPv6-addr\n //\n // General-address-literal = Standardized-tag \":\" 1*dcontent\n //\n // Standardized-tag = Ldh-str\n // ; Standardized-tag MUST be specified in a\n // ; Standards-Track RFC and registered with IANA\n //\n // dcontent = %d33-90 / ; Printable US-ASCII\n // %d94-126 ; excl. \"[\", \"\\\", \"]\"\n //\n // Snum = 1*3DIGIT\n // ; representing a decimal integer\n // ; value in the range 0 through 255\n //\n // IPv6-addr = IPv6-full / IPv6-comp / IPv6v4-full / IPv6v4-comp\n //\n // IPv6-hex = 1*4HEXDIG\n //\n // IPv6-full = IPv6-hex 7(\":\" IPv6-hex)\n //\n // IPv6-comp = [IPv6-hex *5(\":\" IPv6-hex)] \"::\"\n // [IPv6-hex *5(\":\" IPv6-hex)]\n // ; The \"::\" represents at least 2 16-bit groups of\n // ; zeros. No more than 6 groups in addition to the\n // ; \"::\" may be present.\n //\n // IPv6v4-full = IPv6-hex 5(\":\" IPv6-hex) \":\" IPv4-address-literal\n //\n // IPv6v4-comp = [IPv6-hex *3(\":\" IPv6-hex)] \"::\"\n // [IPv6-hex *3(\":\" IPv6-hex) \":\"]\n // IPv4-address-literal\n // ; The \"::\" represents at least 2 16-bit groups of\n // ; zeros. No more than 4 groups in addition to the\n // ; \"::\" and IPv4-address-literal may be present.\n var index = -1;\n var addressLiteral = parseData.literal;\n var matchesIP = internals.regex.ipV4.exec(addressLiteral); // Maybe extract IPv4 part from the end of the address-literal\n\n if (matchesIP) {\n index = matchesIP.index;\n\n if (index !== 0) {\n // Convert IPv4 part to IPv6 format for futher testing\n addressLiteral = addressLiteral.slice(0, index) + '0:0';\n }\n }\n\n if (index === 0) {\n // Nothing there except a valid IPv4 address, so...\n updateResult(internals.diagnoses.rfc5321AddressLiteral);\n } else if (addressLiteral.slice(0, 5).toLowerCase() !== 'ipv6:') {\n updateResult(internals.diagnoses.rfc5322DomainLiteral);\n } else {\n var match = addressLiteral.slice(5);\n var maxGroups = internals.maxIPv6Groups;\n var groups = match.split(':');\n index = match.indexOf('::');\n\n if (!~index) {\n // Need exactly the right number of groups\n if (groups.length !== maxGroups) {\n updateResult(internals.diagnoses.rfc5322IPv6GroupCount);\n }\n } else if (index !== match.lastIndexOf('::')) {\n updateResult(internals.diagnoses.rfc5322IPv62x2xColon);\n } else {\n if (index === 0 || index === match.length - 2) {\n // RFC 4291 allows :: at the start or end of an address with 7 other groups in addition\n ++maxGroups;\n }\n\n if (groups.length > maxGroups) {\n updateResult(internals.diagnoses.rfc5322IPv6MaxGroups);\n } else if (groups.length === maxGroups) {\n // Eliding a single \"::\"\n updateResult(internals.diagnoses.deprecatedIPv6);\n }\n } // IPv6 testing strategy\n\n\n if (match[0] === ':' && match[1] !== ':') {\n updateResult(internals.diagnoses.rfc5322IPv6ColonStart);\n } else if (match[match.length - 1] === ':' && match[match.length - 2] !== ':') {\n updateResult(internals.diagnoses.rfc5322IPv6ColonEnd);\n } else if (internals.checkIpV6(groups)) {\n updateResult(internals.diagnoses.rfc5321AddressLiteral);\n } else {\n updateResult(internals.diagnoses.rfc5322IPv6BadCharacter);\n }\n }\n } else {\n updateResult(internals.diagnoses.rfc5322DomainLiteral);\n }\n\n parseData.domain += token;\n atomData.domains[elementCount] += token;\n elementLength += Buffer.byteLength(token, 'utf8');\n context.prev = context.now;\n context.now = context.stack.pop();\n break;\n\n case '\\\\':\n updateResult(internals.diagnoses.rfc5322DomainLiteralOBSDText);\n context.stack.push(context.now);\n context.now = internals.components.contextQuotedPair;\n break;\n // Folding white space\n\n case '\\r':\n if (emailLength === ++i || email[i] !== '\\n') {\n updateResult(internals.diagnoses.errCRNoLF);\n break;\n }\n\n // Fallthrough\n\n case ' ':\n case '\\t':\n updateResult(internals.diagnoses.cfwsFWS);\n context.stack.push(context.now);\n context.now = internals.components.contextFWS;\n prevToken = token;\n break;\n // DTEXT\n\n default:\n // http://tools.ietf.org/html/rfc5322#section-3.4.1\n // dtext = %d33-90 / ; Printable US-ASCII\n // %d94-126 / ; characters not including\n // obs-dtext ; \"[\", \"]\", or \"\\\"\n //\n // obs-dtext = obs-NO-WS-CTL / quoted-pair\n //\n // obs-NO-WS-CTL = %d1-8 / ; US-ASCII control\n // %d11 / ; characters that do not\n // %d12 / ; include the carriage\n // %d14-31 / ; return, line feed, and\n // %d127 ; white space characters\n charCode = token.codePointAt(0); // '\\r', '\\n', ' ', and '\\t' have already been parsed above\n\n if (charCode !== 127 && internals.c1Controls(charCode) || charCode === 0 || token === '[') {\n // Fatal error\n updateResult(internals.diagnoses.errExpectingDTEXT);\n break;\n } else if (internals.c0Controls(charCode) || charCode === 127) {\n updateResult(internals.diagnoses.rfc5322DomainLiteralOBSDText);\n }\n\n parseData.literal += token;\n parseData.domain += token;\n atomData.domains[elementCount] += token;\n elementLength += Buffer.byteLength(token, 'utf8');\n }\n\n break;\n // Quoted string\n\n case internals.components.contextQuotedString:\n // http://tools.ietf.org/html/rfc5322#section-3.2.4\n // quoted-string = [CFWS]\n // DQUOTE *([FWS] qcontent) [FWS] DQUOTE\n // [CFWS]\n //\n // qcontent = qtext / quoted-pair\n switch (token) {\n // Quoted pair\n case '\\\\':\n context.stack.push(context.now);\n context.now = internals.components.contextQuotedPair;\n break;\n // Folding white space. Spaces are allowed as regular characters inside a quoted string - it's only FWS if we include '\\t' or '\\r\\n'\n\n case '\\r':\n if (emailLength === ++i || email[i] !== '\\n') {\n // Fatal error\n updateResult(internals.diagnoses.errCRNoLF);\n break;\n }\n\n // Fallthrough\n\n case '\\t':\n // http://tools.ietf.org/html/rfc5322#section-3.2.2\n // Runs of FWS, comment, or CFWS that occur between lexical tokens in\n // a structured header field are semantically interpreted as a single\n // space character.\n // http://tools.ietf.org/html/rfc5322#section-3.2.4\n // the CRLF in any FWS/CFWS that appears within the quoted-string [is]\n // semantically \"invisible\" and therefore not part of the\n // quoted-string\n parseData.local += ' ';\n atomData.locals[elementCount] += ' ';\n elementLength += Buffer.byteLength(token, 'utf8');\n updateResult(internals.diagnoses.cfwsFWS);\n context.stack.push(context.now);\n context.now = internals.components.contextFWS;\n prevToken = token;\n break;\n // End of quoted string\n\n case '\"':\n parseData.local += token;\n atomData.locals[elementCount] += token;\n elementLength += Buffer.byteLength(token, 'utf8');\n context.prev = context.now;\n context.now = context.stack.pop();\n break;\n // QTEXT\n\n default:\n // http://tools.ietf.org/html/rfc5322#section-3.2.4\n // qtext = %d33 / ; Printable US-ASCII\n // %d35-91 / ; characters not including\n // %d93-126 / ; \"\\\" or the quote character\n // obs-qtext\n //\n // obs-qtext = obs-NO-WS-CTL\n //\n // obs-NO-WS-CTL = %d1-8 / ; US-ASCII control\n // %d11 / ; characters that do not\n // %d12 / ; include the carriage\n // %d14-31 / ; return, line feed, and\n // %d127 ; white space characters\n charCode = token.codePointAt(0);\n\n if (charCode !== 127 && internals.c1Controls(charCode) || charCode === 0 || charCode === 10) {\n updateResult(internals.diagnoses.errExpectingQTEXT);\n } else if (internals.c0Controls(charCode) || charCode === 127) {\n updateResult(internals.diagnoses.deprecatedQTEXT);\n }\n\n parseData.local += token;\n atomData.locals[elementCount] += token;\n elementLength += Buffer.byteLength(token, 'utf8');\n } // http://tools.ietf.org/html/rfc5322#section-3.4.1\n // If the string can be represented as a dot-atom (that is, it contains\n // no characters other than atext characters or \".\" surrounded by atext\n // characters), then the dot-atom form SHOULD be used and the quoted-\n // string form SHOULD NOT be used.\n\n\n break;\n // Quoted pair\n\n case internals.components.contextQuotedPair:\n // http://tools.ietf.org/html/rfc5322#section-3.2.1\n // quoted-pair = (\"\\\" (VCHAR / WSP)) / obs-qp\n //\n // VCHAR = %d33-126 ; visible (printing) characters\n // WSP = SP / HTAB ; white space\n //\n // obs-qp = \"\\\" (%d0 / obs-NO-WS-CTL / LF / CR)\n //\n // obs-NO-WS-CTL = %d1-8 / ; US-ASCII control\n // %d11 / ; characters that do not\n // %d12 / ; include the carriage\n // %d14-31 / ; return, line feed, and\n // %d127 ; white space characters\n //\n // i.e. obs-qp = \"\\\" (%d0-8, %d10-31 / %d127)\n charCode = token.codePointAt(0);\n\n if (charCode !== 127 && internals.c1Controls(charCode)) {\n // Fatal error\n updateResult(internals.diagnoses.errExpectingQPair);\n } else if (charCode < 31 && charCode !== 9 || charCode === 127) {\n // ' ' and '\\t' are allowed\n updateResult(internals.diagnoses.deprecatedQP);\n } // At this point we know where this qpair occurred so we could check to see if the character actually needed to be quoted at all.\n // http://tools.ietf.org/html/rfc5321#section-4.1.2\n // the sending system SHOULD transmit the form that uses the minimum quoting possible.\n\n\n context.prev = context.now; // End of qpair\n\n context.now = context.stack.pop();\n var escapeToken = '\\\\' + token;\n\n switch (context.now) {\n case internals.components.contextComment:\n break;\n\n case internals.components.contextQuotedString:\n parseData.local += escapeToken;\n atomData.locals[elementCount] += escapeToken; // The maximum sizes specified by RFC 5321 are octet counts, so we must include the backslash\n\n elementLength += 2;\n break;\n\n case internals.components.literal:\n parseData.domain += escapeToken;\n atomData.domains[elementCount] += escapeToken; // The maximum sizes specified by RFC 5321 are octet counts, so we must include the backslash\n\n elementLength += 2;\n break;\n // $lab:coverage:off$\n\n default:\n throw new Error('quoted pair logic invoked in an invalid context: ' + context.now);\n // $lab:coverage:on$\n }\n\n break;\n // Comment\n\n case internals.components.contextComment:\n // http://tools.ietf.org/html/rfc5322#section-3.2.2\n // comment = \"(\" *([FWS] ccontent) [FWS] \")\"\n //\n // ccontent = ctext / quoted-pair / comment\n switch (token) {\n // Nested comment\n case '(':\n // Nested comments are ok\n context.stack.push(context.now);\n context.now = internals.components.contextComment;\n break;\n // End of comment\n\n case ')':\n context.prev = context.now;\n context.now = context.stack.pop();\n break;\n // Quoted pair\n\n case '\\\\':\n context.stack.push(context.now);\n context.now = internals.components.contextQuotedPair;\n break;\n // Folding white space\n\n case '\\r':\n if (emailLength === ++i || email[i] !== '\\n') {\n // Fatal error\n updateResult(internals.diagnoses.errCRNoLF);\n break;\n }\n\n // Fallthrough\n\n case ' ':\n case '\\t':\n updateResult(internals.diagnoses.cfwsFWS);\n context.stack.push(context.now);\n context.now = internals.components.contextFWS;\n prevToken = token;\n break;\n // CTEXT\n\n default:\n // http://tools.ietf.org/html/rfc5322#section-3.2.3\n // ctext = %d33-39 / ; Printable US-ASCII\n // %d42-91 / ; characters not including\n // %d93-126 / ; \"(\", \")\", or \"\\\"\n // obs-ctext\n //\n // obs-ctext = obs-NO-WS-CTL\n //\n // obs-NO-WS-CTL = %d1-8 / ; US-ASCII control\n // %d11 / ; characters that do not\n // %d12 / ; include the carriage\n // %d14-31 / ; return, line feed, and\n // %d127 ; white space characters\n charCode = token.codePointAt(0);\n\n if (charCode === 0 || charCode === 10 || charCode !== 127 && internals.c1Controls(charCode)) {\n // Fatal error\n updateResult(internals.diagnoses.errExpectingCTEXT);\n break;\n } else if (internals.c0Controls(charCode) || charCode === 127) {\n updateResult(internals.diagnoses.deprecatedCTEXT);\n }\n\n }\n\n break;\n // Folding white space\n\n case internals.components.contextFWS:\n // http://tools.ietf.org/html/rfc5322#section-3.2.2\n // FWS = ([*WSP CRLF] 1*WSP) / obs-FWS\n // ; Folding white space\n // But note the erratum:\n // http://www.rfc-editor.org/errata_search.php?rfc=5322&eid=1908:\n // In the obsolete syntax, any amount of folding white space MAY be\n // inserted where the obs-FWS rule is allowed. This creates the\n // possibility of having two consecutive \"folds\" in a line, and\n // therefore the possibility that a line which makes up a folded header\n // field could be composed entirely of white space.\n //\n // obs-FWS = 1*([CRLF] WSP)\n if (prevToken === '\\r') {\n if (token === '\\r') {\n // Fatal error\n updateResult(internals.diagnoses.errFWSCRLFx2);\n break;\n }\n\n if (++crlfCount > 1) {\n // Multiple folds => obsolete FWS\n updateResult(internals.diagnoses.deprecatedFWS);\n } else {\n crlfCount = 1;\n }\n }\n\n switch (token) {\n case '\\r':\n if (emailLength === ++i || email[i] !== '\\n') {\n // Fatal error\n updateResult(internals.diagnoses.errCRNoLF);\n }\n\n break;\n\n case ' ':\n case '\\t':\n break;\n\n default:\n if (prevToken === '\\r') {\n // Fatal error\n updateResult(internals.diagnoses.errFWSCRLFEnd);\n }\n\n crlfCount = 0; // End of FWS\n\n context.prev = context.now;\n context.now = context.stack.pop(); // Look at this token again in the parent context\n\n --i;\n }\n\n prevToken = token;\n break;\n // Unexpected context\n // $lab:coverage:off$\n\n default:\n throw new Error('unknown context: ' + context.now);\n // $lab:coverage:on$\n } // Primary state machine\n\n\n if (maxResult > internals.categories.rfc5322) {\n // Fatal error, no point continuing\n break;\n }\n } // Token loop\n // Check for errors\n\n\n if (maxResult < internals.categories.rfc5322) {\n var _punycodeLength = Punycode.encode(parseData.domain).length; // Fatal errors\n\n if (context.now === internals.components.contextQuotedString) {\n updateResult(internals.diagnoses.errUnclosedQuotedString);\n } else if (context.now === internals.components.contextQuotedPair) {\n updateResult(internals.diagnoses.errBackslashEnd);\n } else if (context.now === internals.components.contextComment) {\n updateResult(internals.diagnoses.errUnclosedComment);\n } else if (context.now === internals.components.literal) {\n updateResult(internals.diagnoses.errUnclosedDomainLiteral);\n } else if (token === '\\r') {\n updateResult(internals.diagnoses.errFWSCRLFEnd);\n } else if (parseData.domain.length === 0) {\n updateResult(internals.diagnoses.errNoDomain);\n } else if (elementLength === 0) {\n updateResult(internals.diagnoses.errDotEnd);\n } else if (hyphenFlag) {\n updateResult(internals.diagnoses.errDomainHyphenEnd);\n } // Other errors\n else if (_punycodeLength > 255) {\n // http://tools.ietf.org/html/rfc5321#section-4.5.3.1.2\n // The maximum total length of a domain name or number is 255 octets.\n updateResult(internals.diagnoses.rfc5322DomainTooLong);\n } else if (Buffer.byteLength(parseData.local, 'utf8') + _punycodeLength +\n /* '@' */\n 1 > 254) {\n // http://tools.ietf.org/html/rfc5321#section-4.1.2\n // Forward-path = Path\n //\n // Path = \"<\" [ A-d-l \":\" ] Mailbox \">\"\n //\n // http://tools.ietf.org/html/rfc5321#section-4.5.3.1.3\n // The maximum total length of a reverse-path or forward-path is 256 octets (including the punctuation and element separators).\n //\n // Thus, even without (obsolete) routing information, the Mailbox can only be 254 characters long. This is confirmed by this verified\n // erratum to RFC 3696:\n //\n // http://www.rfc-editor.org/errata_search.php?rfc=3696&eid=1690\n // However, there is a restriction in RFC 2821 on the length of an address in MAIL and RCPT commands of 254 characters. Since\n // addresses that do not fit in those fields are not normally useful, the upper limit on address lengths should normally be considered\n // to be 254.\n updateResult(internals.diagnoses.rfc5322TooLong);\n } else if (elementLength > 63) {\n // http://tools.ietf.org/html/rfc1035#section-2.3.4\n // labels 63 octets or less\n updateResult(internals.diagnoses.rfc5322LabelTooLong);\n } else if (options.minDomainAtoms && atomData.domains.length < options.minDomainAtoms) {\n updateResult(internals.diagnoses.errDomainTooShort);\n } else if (options.tldWhitelist || options.tldBlacklist) {\n var tldAtom = atomData.domains[elementCount];\n\n if (!internals.validDomain(tldAtom, options)) {\n updateResult(internals.diagnoses.errUnknownTLD);\n }\n }\n } // Check for errors\n // Finish\n\n\n if (maxResult < internals.categories.dnsWarn) {\n // Per RFC 5321, domain atoms are limited to letter-digit-hyphen, so we only need to check code <= 57 to check for a digit\n var code = atomData.domains[elementCount].codePointAt(0);\n\n if (code <= 57) {\n updateResult(internals.diagnoses.rfc5321TLDNumeric);\n }\n }\n\n if (maxResult < threshold) {\n maxResult = internals.diagnoses.valid;\n }\n\n var finishResult = diagnose ? maxResult : maxResult < internals.defaultThreshold;\n\n if (callback) {\n callback(finishResult);\n }\n\n return finishResult;\n };\n\n exports.diagnoses = internals.validate.diagnoses = function () {\n var diag = {};\n var keys = Object.keys(internals.diagnoses);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n diag[key] = internals.diagnoses[key];\n }\n\n return diag;\n }();\n\n exports.normalize = internals.normalize = function (email) {\n // $lab:coverage:off$\n if (process.version[1] === '4' && email.indexOf('\\0') >= 0) {\n return internals.nulNormalize(email);\n } // $lab:coverage:on$\n\n\n return email.normalize('NFC');\n };\n /* WEBPACK VAR INJECTION */\n\n }).call(exports, __webpack_require__(3).Buffer, __webpack_require__(5));\n /***/\n },\n /* 17 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n // Declare internals\n\n var internals = {};\n exports.errors = {\n root: 'value',\n key: '\"{{!label}}\" ',\n messages: {\n wrapArrays: true\n },\n any: {\n unknown: 'is not allowed',\n invalid: 'contains an invalid value',\n empty: 'is not allowed to be empty',\n required: 'is required',\n allowOnly: 'must be one of {{valids}}',\n \"default\": 'threw an error when running default method'\n },\n alternatives: {\n base: 'not matching any of the allowed alternatives',\n child: null\n },\n array: {\n base: 'must be an array',\n includes: 'at position {{pos}} does not match any of the allowed types',\n includesSingle: 'single value of \"{{!label}}\" does not match any of the allowed types',\n includesOne: 'at position {{pos}} fails because {{reason}}',\n includesOneSingle: 'single value of \"{{!label}}\" fails because {{reason}}',\n includesRequiredUnknowns: 'does not contain {{unknownMisses}} required value(s)',\n includesRequiredKnowns: 'does not contain {{knownMisses}}',\n includesRequiredBoth: 'does not contain {{knownMisses}} and {{unknownMisses}} other required value(s)',\n excludes: 'at position {{pos}} contains an excluded value',\n excludesSingle: 'single value of \"{{!label}}\" contains an excluded value',\n min: 'must contain at least {{limit}} items',\n max: 'must contain less than or equal to {{limit}} items',\n length: 'must contain {{limit}} items',\n ordered: 'at position {{pos}} fails because {{reason}}',\n orderedLength: 'at position {{pos}} fails because array must contain at most {{limit}} items',\n ref: 'references \"{{ref}}\" which is not a positive integer',\n sparse: 'must not be a sparse array',\n unique: 'position {{pos}} contains a duplicate value'\n },\n \"boolean\": {\n base: 'must be a boolean'\n },\n binary: {\n base: 'must be a buffer or a string',\n min: 'must be at least {{limit}} bytes',\n max: 'must be less than or equal to {{limit}} bytes',\n length: 'must be {{limit}} bytes'\n },\n date: {\n base: 'must be a number of milliseconds or valid date string',\n format: 'must be a string with one of the following formats {{format}}',\n strict: 'must be a valid date',\n min: 'must be larger than or equal to \"{{limit}}\"',\n max: 'must be less than or equal to \"{{limit}}\"',\n isoDate: 'must be a valid ISO 8601 date',\n timestamp: {\n javascript: 'must be a valid timestamp or number of milliseconds',\n unix: 'must be a valid timestamp or number of seconds'\n },\n ref: 'references \"{{ref}}\" which is not a date'\n },\n \"function\": {\n base: 'must be a Function',\n arity: 'must have an arity of {{n}}',\n minArity: 'must have an arity greater or equal to {{n}}',\n maxArity: 'must have an arity lesser or equal to {{n}}',\n ref: 'must be a Joi reference',\n \"class\": 'must be a class'\n },\n lazy: {\n base: '!!schema error: lazy schema must be set',\n schema: '!!schema error: lazy schema function must return a schema'\n },\n object: {\n base: 'must be an object',\n child: '!!child \"{{!child}}\" fails because {{reason}}',\n min: 'must have at least {{limit}} children',\n max: 'must have less than or equal to {{limit}} children',\n length: 'must have {{limit}} children',\n allowUnknown: '!!\"{{!child}}\" is not allowed',\n \"with\": '!!\"{{mainWithLabel}}\" missing required peer \"{{peerWithLabel}}\"',\n without: '!!\"{{mainWithLabel}}\" conflict with forbidden peer \"{{peerWithLabel}}\"',\n missing: 'must contain at least one of {{peersWithLabels}}',\n xor: 'contains a conflict between exclusive peers {{peersWithLabels}}',\n or: 'must contain at least one of {{peersWithLabels}}',\n and: 'contains {{presentWithLabels}} without its required peers {{missingWithLabels}}',\n nand: '!!\"{{mainWithLabel}}\" must not exist simultaneously with {{peersWithLabels}}',\n assert: '!!\"{{ref}}\" validation failed because \"{{ref}}\" failed to {{message}}',\n rename: {\n multiple: 'cannot rename child \"{{from}}\" because multiple renames are disabled and another key was already renamed to \"{{to}}\"',\n override: 'cannot rename child \"{{from}}\" because override is disabled and target \"{{to}}\" exists',\n regex: {\n multiple: 'cannot rename children {{from}} because multiple renames are disabled and another key was already renamed to \"{{to}}\"',\n override: 'cannot rename children {{from}} because override is disabled and target \"{{to}}\" exists'\n }\n },\n type: 'must be an instance of \"{{type}}\"',\n schema: 'must be a Joi instance'\n },\n number: {\n base: 'must be a number',\n min: 'must be larger than or equal to {{limit}}',\n max: 'must be less than or equal to {{limit}}',\n less: 'must be less than {{limit}}',\n greater: 'must be greater than {{limit}}',\n \"float\": 'must be a float or double',\n integer: 'must be an integer',\n negative: 'must be a negative number',\n positive: 'must be a positive number',\n precision: 'must have no more than {{limit}} decimal places',\n ref: 'references \"{{ref}}\" which is not a number',\n multiple: 'must be a multiple of {{multiple}}'\n },\n string: {\n base: 'must be a string',\n min: 'length must be at least {{limit}} characters long',\n max: 'length must be less than or equal to {{limit}} characters long',\n length: 'length must be {{limit}} characters long',\n alphanum: 'must only contain alpha-numeric characters',\n token: 'must only contain alpha-numeric and underscore characters',\n regex: {\n base: 'with value \"{{!value}}\" fails to match the required pattern: {{pattern}}',\n name: 'with value \"{{!value}}\" fails to match the {{name}} pattern',\n invert: {\n base: 'with value \"{{!value}}\" matches the inverted pattern: {{pattern}}',\n name: 'with value \"{{!value}}\" matches the inverted {{name}} pattern'\n }\n },\n email: 'must be a valid email',\n uri: 'must be a valid uri',\n uriRelativeOnly: 'must be a valid relative uri',\n uriCustomScheme: 'must be a valid uri with a scheme matching the {{scheme}} pattern',\n isoDate: 'must be a valid ISO 8601 date',\n guid: 'must be a valid GUID',\n hex: 'must only contain hexadecimal characters',\n base64: 'must be a valid base64 string',\n hostname: 'must be a valid hostname',\n normalize: 'must be unicode normalized in the {{form}} form',\n lowercase: 'must only contain lowercase characters',\n uppercase: 'must only contain uppercase characters',\n trim: 'must not have leading or trailing whitespace',\n creditCard: 'must be a credit card',\n ref: 'references \"{{ref}}\" which is not a number',\n ip: 'must be a valid ip address with a {{cidr}} CIDR',\n ipVersion: 'must be a valid ip address of one of the following versions {{version}} with a {{cidr}} CIDR'\n }\n };\n /***/\n },\n /* 18 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n var Joi = __webpack_require__(8); // Declare internals\n\n\n var internals = {};\n exports.options = Joi.object({\n abortEarly: Joi[\"boolean\"](),\n convert: Joi[\"boolean\"](),\n allowUnknown: Joi[\"boolean\"](),\n skipFunctions: Joi[\"boolean\"](),\n stripUnknown: [Joi[\"boolean\"](), Joi.object({\n arrays: Joi[\"boolean\"](),\n objects: Joi[\"boolean\"]()\n }).or('arrays', 'objects')],\n language: Joi.object(),\n presence: Joi.string().only('required', 'optional', 'forbidden', 'ignore'),\n raw: Joi[\"boolean\"](),\n context: Joi.object(),\n strip: Joi[\"boolean\"](),\n noDefaults: Joi[\"boolean\"](),\n escapeHtml: Joi[\"boolean\"]()\n }).strict();\n /***/\n },\n /* 19 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n\n function _defaults(obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass);\n }\n\n var Any = __webpack_require__(2);\n\n var Cast = __webpack_require__(4);\n\n var Ref = __webpack_require__(1);\n\n var Hoek = __webpack_require__(0); // Declare internals\n\n\n var internals = {};\n\n internals.fastSplice = function (arr, i) {\n var pos = i;\n\n while (pos < arr.length) {\n arr[pos++] = arr[pos];\n }\n\n --arr.length;\n };\n\n internals.Array = function (_Any) {\n _inherits(_class, _Any);\n\n function _class() {\n _classCallCheck(this, _class);\n\n var _this = _possibleConstructorReturn(this, _Any.call(this));\n\n _this._type = 'array';\n _this._inner.items = [];\n _this._inner.ordereds = [];\n _this._inner.inclusions = [];\n _this._inner.exclusions = [];\n _this._inner.requireds = [];\n _this._flags.sparse = false;\n return _this;\n }\n\n _class.prototype._base = function _base(value, state, options) {\n var result = {\n value: value\n };\n\n if (typeof value === 'string' && options.convert) {\n internals.safeParse(value, result);\n }\n\n var isArray = Array.isArray(result.value);\n var wasArray = isArray;\n\n if (options.convert && this._flags.single && !isArray) {\n result.value = [result.value];\n isArray = true;\n }\n\n if (!isArray) {\n result.errors = this.createError('array.base', null, state, options);\n return result;\n }\n\n if (this._inner.inclusions.length || this._inner.exclusions.length || this._inner.requireds.length || this._inner.ordereds.length || !this._flags.sparse) {\n // Clone the array so that we don't modify the original\n if (wasArray) {\n result.value = result.value.slice(0);\n }\n\n result.errors = this._checkItems.call(this, result.value, wasArray, state, options);\n\n if (result.errors && wasArray && options.convert && this._flags.single) {\n // Attempt a 2nd pass by putting the array inside one.\n var previousErrors = result.errors;\n result.value = [result.value];\n result.errors = this._checkItems.call(this, result.value, wasArray, state, options);\n\n if (result.errors) {\n // Restore previous errors and value since this didn't validate either.\n result.errors = previousErrors;\n result.value = result.value[0];\n }\n }\n }\n\n return result;\n };\n\n _class.prototype._checkItems = function _checkItems(items, wasArray, state, options) {\n var errors = [];\n var errored = void 0;\n\n var requireds = this._inner.requireds.slice();\n\n var ordereds = this._inner.ordereds.slice();\n\n var inclusions = this._inner.inclusions.concat(requireds);\n\n var il = items.length;\n\n for (var i = 0; i < il; ++i) {\n errored = false;\n var item = items[i];\n var isValid = false;\n var key = wasArray ? i : state.key;\n var path = wasArray ? state.path.concat(i) : state.path;\n var localState = {\n key: key,\n path: path,\n parent: state.parent,\n reference: state.reference\n };\n var res = void 0; // Sparse\n\n if (!this._flags.sparse && item === undefined) {\n errors.push(this.createError('array.sparse', null, {\n key: state.key,\n path: localState.path,\n pos: i\n }, options));\n\n if (options.abortEarly) {\n return errors;\n }\n\n continue;\n } // Exclusions\n\n\n for (var j = 0; j < this._inner.exclusions.length; ++j) {\n res = this._inner.exclusions[j]._validate(item, localState, {}); // Not passing options to use defaults\n\n if (!res.errors) {\n errors.push(this.createError(wasArray ? 'array.excludes' : 'array.excludesSingle', {\n pos: i,\n value: item\n }, {\n key: state.key,\n path: localState.path\n }, options));\n errored = true;\n\n if (options.abortEarly) {\n return errors;\n }\n\n break;\n }\n }\n\n if (errored) {\n continue;\n } // Ordered\n\n\n if (this._inner.ordereds.length) {\n if (ordereds.length > 0) {\n var ordered = ordereds.shift();\n res = ordered._validate(item, localState, options);\n\n if (!res.errors) {\n if (ordered._flags.strip) {\n internals.fastSplice(items, i);\n --i;\n --il;\n } else if (!this._flags.sparse && res.value === undefined) {\n errors.push(this.createError('array.sparse', null, {\n key: state.key,\n path: localState.path,\n pos: i\n }, options));\n\n if (options.abortEarly) {\n return errors;\n }\n\n continue;\n } else {\n items[i] = res.value;\n }\n } else {\n errors.push(this.createError('array.ordered', {\n pos: i,\n reason: res.errors,\n value: item\n }, {\n key: state.key,\n path: localState.path\n }, options));\n\n if (options.abortEarly) {\n return errors;\n }\n }\n\n continue;\n } else if (!this._inner.items.length) {\n errors.push(this.createError('array.orderedLength', {\n pos: i,\n limit: this._inner.ordereds.length\n }, {\n key: state.key,\n path: localState.path\n }, options));\n\n if (options.abortEarly) {\n return errors;\n }\n\n continue;\n }\n } // Requireds\n\n\n var requiredChecks = [];\n var jl = requireds.length;\n\n for (var _j = 0; _j < jl; ++_j) {\n res = requiredChecks[_j] = requireds[_j]._validate(item, localState, options);\n\n if (!res.errors) {\n items[i] = res.value;\n isValid = true;\n internals.fastSplice(requireds, _j);\n --_j;\n --jl;\n\n if (!this._flags.sparse && res.value === undefined) {\n errors.push(this.createError('array.sparse', null, {\n key: state.key,\n path: localState.path,\n pos: i\n }, options));\n\n if (options.abortEarly) {\n return errors;\n }\n }\n\n break;\n }\n }\n\n if (isValid) {\n continue;\n } // Inclusions\n\n\n var stripUnknown = options.stripUnknown ? options.stripUnknown === true ? true : !!options.stripUnknown.arrays : false;\n jl = inclusions.length;\n\n for (var _j2 = 0; _j2 < jl; ++_j2) {\n var inclusion = inclusions[_j2]; // Avoid re-running requireds that already didn't match in the previous loop\n\n var previousCheck = requireds.indexOf(inclusion);\n\n if (previousCheck !== -1) {\n res = requiredChecks[previousCheck];\n } else {\n res = inclusion._validate(item, localState, options);\n\n if (!res.errors) {\n if (inclusion._flags.strip) {\n internals.fastSplice(items, i);\n --i;\n --il;\n } else if (!this._flags.sparse && res.value === undefined) {\n errors.push(this.createError('array.sparse', null, {\n key: state.key,\n path: localState.path,\n pos: i\n }, options));\n errored = true;\n } else {\n items[i] = res.value;\n }\n\n isValid = true;\n break;\n }\n } // Return the actual error if only one inclusion defined\n\n\n if (jl === 1) {\n if (stripUnknown) {\n internals.fastSplice(items, i);\n --i;\n --il;\n isValid = true;\n break;\n }\n\n errors.push(this.createError(wasArray ? 'array.includesOne' : 'array.includesOneSingle', {\n pos: i,\n reason: res.errors,\n value: item\n }, {\n key: state.key,\n path: localState.path\n }, options));\n errored = true;\n\n if (options.abortEarly) {\n return errors;\n }\n\n break;\n }\n }\n\n if (errored) {\n continue;\n }\n\n if (this._inner.inclusions.length && !isValid) {\n if (stripUnknown) {\n internals.fastSplice(items, i);\n --i;\n --il;\n continue;\n }\n\n errors.push(this.createError(wasArray ? 'array.includes' : 'array.includesSingle', {\n pos: i,\n value: item\n }, {\n key: state.key,\n path: localState.path\n }, options));\n\n if (options.abortEarly) {\n return errors;\n }\n }\n }\n\n if (requireds.length) {\n this._fillMissedErrors.call(this, errors, requireds, state, options);\n }\n\n if (ordereds.length) {\n this._fillOrderedErrors.call(this, errors, ordereds, state, options);\n }\n\n return errors.length ? errors : null;\n };\n\n _class.prototype.describe = function describe() {\n var description = Any.prototype.describe.call(this);\n\n if (this._inner.ordereds.length) {\n description.orderedItems = [];\n\n for (var i = 0; i < this._inner.ordereds.length; ++i) {\n description.orderedItems.push(this._inner.ordereds[i].describe());\n }\n }\n\n if (this._inner.items.length) {\n description.items = [];\n\n for (var _i = 0; _i < this._inner.items.length; ++_i) {\n description.items.push(this._inner.items[_i].describe());\n }\n }\n\n return description;\n };\n\n _class.prototype.items = function items() {\n var _this2 = this;\n\n var obj = this.clone();\n\n for (var _len = arguments.length, schemas = Array(_len), _key = 0; _key < _len; _key++) {\n schemas[_key] = arguments[_key];\n }\n\n Hoek.flatten(schemas).forEach(function (type, index) {\n try {\n type = Cast.schema(_this2._currentJoi, type);\n } catch (castErr) {\n if (castErr.hasOwnProperty('path')) {\n castErr.path = index + '.' + castErr.path;\n } else {\n castErr.path = index;\n }\n\n castErr.message = castErr.message + '(' + castErr.path + ')';\n throw castErr;\n }\n\n obj._inner.items.push(type);\n\n if (type._flags.presence === 'required') {\n obj._inner.requireds.push(type);\n } else if (type._flags.presence === 'forbidden') {\n obj._inner.exclusions.push(type.optional());\n } else {\n obj._inner.inclusions.push(type);\n }\n });\n return obj;\n };\n\n _class.prototype.ordered = function ordered() {\n var _this3 = this;\n\n var obj = this.clone();\n\n for (var _len2 = arguments.length, schemas = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n schemas[_key2] = arguments[_key2];\n }\n\n Hoek.flatten(schemas).forEach(function (type, index) {\n try {\n type = Cast.schema(_this3._currentJoi, type);\n } catch (castErr) {\n if (castErr.hasOwnProperty('path')) {\n castErr.path = index + '.' + castErr.path;\n } else {\n castErr.path = index;\n }\n\n castErr.message = castErr.message + '(' + castErr.path + ')';\n throw castErr;\n }\n\n obj._inner.ordereds.push(type);\n });\n return obj;\n };\n\n _class.prototype.min = function min(limit) {\n var isRef = Ref.isRef(limit);\n Hoek.assert(Number.isSafeInteger(limit) && limit >= 0 || isRef, 'limit must be a positive integer or reference');\n return this._test('min', limit, function (value, state, options) {\n var compareTo = void 0;\n\n if (isRef) {\n compareTo = limit(state.reference || state.parent, options);\n\n if (!(Number.isSafeInteger(compareTo) && compareTo >= 0)) {\n return this.createError('array.ref', {\n ref: limit.key\n }, state, options);\n }\n } else {\n compareTo = limit;\n }\n\n if (value.length >= compareTo) {\n return value;\n }\n\n return this.createError('array.min', {\n limit: limit,\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.max = function max(limit) {\n var isRef = Ref.isRef(limit);\n Hoek.assert(Number.isSafeInteger(limit) && limit >= 0 || isRef, 'limit must be a positive integer or reference');\n return this._test('max', limit, function (value, state, options) {\n var compareTo = void 0;\n\n if (isRef) {\n compareTo = limit(state.reference || state.parent, options);\n\n if (!(Number.isSafeInteger(compareTo) && compareTo >= 0)) {\n return this.createError('array.ref', {\n ref: limit.key\n }, state, options);\n }\n } else {\n compareTo = limit;\n }\n\n if (value.length <= compareTo) {\n return value;\n }\n\n return this.createError('array.max', {\n limit: limit,\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.length = function length(limit) {\n var isRef = Ref.isRef(limit);\n Hoek.assert(Number.isSafeInteger(limit) && limit >= 0 || isRef, 'limit must be a positive integer or reference');\n return this._test('length', limit, function (value, state, options) {\n var compareTo = void 0;\n\n if (isRef) {\n compareTo = limit(state.reference || state.parent, options);\n\n if (!(Number.isSafeInteger(compareTo) && compareTo >= 0)) {\n return this.createError('array.ref', {\n ref: limit.key\n }, state, options);\n }\n } else {\n compareTo = limit;\n }\n\n if (value.length === compareTo) {\n return value;\n }\n\n return this.createError('array.length', {\n limit: limit,\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.unique = function unique(comparator) {\n Hoek.assert(comparator === undefined || typeof comparator === 'function' || typeof comparator === 'string', 'comparator must be a function or a string');\n var settings = {};\n\n if (typeof comparator === 'string') {\n settings.path = comparator;\n } else if (typeof comparator === 'function') {\n settings.comparator = comparator;\n }\n\n return this._test('unique', settings, function (value, state, options) {\n var found = {\n string: {},\n number: {},\n undefined: {},\n \"boolean\": {},\n object: new Map(),\n \"function\": new Map(),\n custom: new Map()\n };\n var compare = settings.comparator || Hoek.deepEqual;\n\n for (var i = 0; i < value.length; ++i) {\n var item = settings.path ? Hoek.reach(value[i], settings.path) : value[i];\n var records = settings.comparator ? found.custom : found[typeof item === 'undefined' ? 'undefined' : _typeof(item)]; // All available types are supported, so it's not possible to reach 100% coverage without ignoring this line.\n // I still want to keep the test for future js versions with new types (eg. Symbol).\n\n if (\n /* $lab:coverage:off$ */\n records\n /* $lab:coverage:on$ */\n ) {\n if (records instanceof Map) {\n var entries = records.entries();\n var current = void 0;\n\n while (!(current = entries.next()).done) {\n if (compare(current.value[0], item)) {\n var localState = {\n key: state.key,\n path: state.path.concat(i),\n parent: state.parent,\n reference: state.reference\n };\n var context = {\n pos: i,\n value: value[i],\n dupePos: current.value[1],\n dupeValue: value[current.value[1]]\n };\n\n if (settings.path) {\n context.path = settings.path;\n }\n\n return this.createError('array.unique', context, localState, options);\n }\n }\n\n records.set(item, i);\n } else {\n if (records[item] !== undefined) {\n var _localState = {\n key: state.key,\n path: state.path.concat(i),\n parent: state.parent,\n reference: state.reference\n };\n var _context = {\n pos: i,\n value: value[i],\n dupePos: records[item],\n dupeValue: value[records[item]]\n };\n\n if (settings.path) {\n _context.path = settings.path;\n }\n\n return this.createError('array.unique', _context, _localState, options);\n }\n\n records[item] = i;\n }\n }\n }\n\n return value;\n });\n };\n\n _class.prototype.sparse = function sparse(enabled) {\n var value = enabled === undefined ? true : !!enabled;\n\n if (this._flags.sparse === value) {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.sparse = value;\n return obj;\n };\n\n _class.prototype.single = function single(enabled) {\n var value = enabled === undefined ? true : !!enabled;\n\n if (this._flags.single === value) {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.single = value;\n return obj;\n };\n\n _class.prototype._fillMissedErrors = function _fillMissedErrors(errors, requireds, state, options) {\n var knownMisses = [];\n var unknownMisses = 0;\n\n for (var i = 0; i < requireds.length; ++i) {\n var label = requireds[i]._getLabel();\n\n if (label) {\n knownMisses.push(label);\n } else {\n ++unknownMisses;\n }\n }\n\n if (knownMisses.length) {\n if (unknownMisses) {\n errors.push(this.createError('array.includesRequiredBoth', {\n knownMisses: knownMisses,\n unknownMisses: unknownMisses\n }, {\n key: state.key,\n path: state.path\n }, options));\n } else {\n errors.push(this.createError('array.includesRequiredKnowns', {\n knownMisses: knownMisses\n }, {\n key: state.key,\n path: state.path\n }, options));\n }\n } else {\n errors.push(this.createError('array.includesRequiredUnknowns', {\n unknownMisses: unknownMisses\n }, {\n key: state.key,\n path: state.path\n }, options));\n }\n };\n\n _class.prototype._fillOrderedErrors = function _fillOrderedErrors(errors, ordereds, state, options) {\n var requiredOrdereds = [];\n\n for (var i = 0; i < ordereds.length; ++i) {\n var presence = Hoek.reach(ordereds[i], '_flags.presence');\n\n if (presence === 'required') {\n requiredOrdereds.push(ordereds[i]);\n }\n }\n\n if (requiredOrdereds.length) {\n this._fillMissedErrors.call(this, errors, requiredOrdereds, state, options);\n }\n };\n\n return _class;\n }(Any);\n\n internals.safeParse = function (value, result) {\n try {\n var converted = JSON.parse(value);\n\n if (Array.isArray(converted)) {\n result.value = converted;\n }\n } catch (e) {}\n };\n\n module.exports = new internals.Array();\n /***/\n },\n /* 20 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n /* WEBPACK VAR INJECTION */\n\n (function (Buffer) {\n // Load modules\n function _defaults(obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass);\n }\n\n var Any = __webpack_require__(2);\n\n var Hoek = __webpack_require__(0); // Declare internals\n\n\n var internals = {};\n\n internals.Binary = function (_Any) {\n _inherits(_class, _Any);\n\n function _class() {\n _classCallCheck(this, _class);\n\n var _this = _possibleConstructorReturn(this, _Any.call(this));\n\n _this._type = 'binary';\n return _this;\n }\n\n _class.prototype._base = function _base(value, state, options) {\n var result = {\n value: value\n };\n\n if (typeof value === 'string' && options.convert) {\n try {\n result.value = new Buffer(value, this._flags.encoding);\n } catch (e) {}\n }\n\n result.errors = Buffer.isBuffer(result.value) ? null : this.createError('binary.base', null, state, options);\n return result;\n };\n\n _class.prototype.encoding = function encoding(_encoding) {\n Hoek.assert(Buffer.isEncoding(_encoding), 'Invalid encoding:', _encoding);\n\n if (this._flags.encoding === _encoding) {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.encoding = _encoding;\n return obj;\n };\n\n _class.prototype.min = function min(limit) {\n Hoek.assert(Number.isSafeInteger(limit) && limit >= 0, 'limit must be a positive integer');\n return this._test('min', limit, function (value, state, options) {\n if (value.length >= limit) {\n return value;\n }\n\n return this.createError('binary.min', {\n limit: limit,\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.max = function max(limit) {\n Hoek.assert(Number.isSafeInteger(limit) && limit >= 0, 'limit must be a positive integer');\n return this._test('max', limit, function (value, state, options) {\n if (value.length <= limit) {\n return value;\n }\n\n return this.createError('binary.max', {\n limit: limit,\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.length = function length(limit) {\n Hoek.assert(Number.isSafeInteger(limit) && limit >= 0, 'limit must be a positive integer');\n return this._test('length', limit, function (value, state, options) {\n if (value.length === limit) {\n return value;\n }\n\n return this.createError('binary.length', {\n limit: limit,\n value: value\n }, state, options);\n });\n };\n\n return _class;\n }(Any);\n\n module.exports = new internals.Binary();\n /* WEBPACK VAR INJECTION */\n }).call(exports, __webpack_require__(3).Buffer);\n /***/\n },\n /* 21 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n function _defaults(obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass);\n }\n\n var Any = __webpack_require__(2);\n\n var Hoek = __webpack_require__(0); // Declare internals\n\n\n var internals = {\n Set: __webpack_require__(9)\n };\n\n internals.Boolean = function (_Any) {\n _inherits(_class, _Any);\n\n function _class() {\n _classCallCheck(this, _class);\n\n var _this = _possibleConstructorReturn(this, _Any.call(this));\n\n _this._type = 'boolean';\n _this._flags.insensitive = true;\n _this._inner.truthySet = new internals.Set();\n _this._inner.falsySet = new internals.Set();\n return _this;\n }\n\n _class.prototype._base = function _base(value, state, options) {\n var result = {\n value: value\n };\n\n if (typeof value === 'string' && options.convert) {\n var normalized = this._flags.insensitive ? value.toLowerCase() : value;\n result.value = normalized === 'true' ? true : normalized === 'false' ? false : value;\n }\n\n if (typeof result.value !== 'boolean') {\n result.value = this._inner.truthySet.has(value, null, null, this._flags.insensitive) ? true : this._inner.falsySet.has(value, null, null, this._flags.insensitive) ? false : value;\n }\n\n result.errors = typeof result.value === 'boolean' ? null : this.createError('boolean.base', null, state, options);\n return result;\n };\n\n _class.prototype.truthy = function truthy() {\n for (var _len = arguments.length, values = Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n var obj = this.clone();\n values = Hoek.flatten(values);\n\n for (var i = 0; i < values.length; ++i) {\n var value = values[i];\n Hoek.assert(value !== undefined, 'Cannot call truthy with undefined');\n\n obj._inner.truthySet.add(value);\n }\n\n return obj;\n };\n\n _class.prototype.falsy = function falsy() {\n for (var _len2 = arguments.length, values = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n values[_key2] = arguments[_key2];\n }\n\n var obj = this.clone();\n values = Hoek.flatten(values);\n\n for (var i = 0; i < values.length; ++i) {\n var value = values[i];\n Hoek.assert(value !== undefined, 'Cannot call falsy with undefined');\n\n obj._inner.falsySet.add(value);\n }\n\n return obj;\n };\n\n _class.prototype.insensitive = function insensitive(enabled) {\n var insensitive = enabled === undefined ? true : !!enabled;\n\n if (this._flags.insensitive === insensitive) {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.insensitive = insensitive;\n return obj;\n };\n\n _class.prototype.describe = function describe() {\n var description = Any.prototype.describe.call(this);\n description.truthy = [true].concat(this._inner.truthySet.values());\n description.falsy = [false].concat(this._inner.falsySet.values());\n return description;\n };\n\n return _class;\n }(Any);\n\n module.exports = new internals.Boolean();\n /***/\n },\n /* 22 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n function _defaults(obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass);\n }\n\n var Hoek = __webpack_require__(0);\n\n var ObjectType = __webpack_require__(12);\n\n var Ref = __webpack_require__(1); // Declare internals\n\n\n var internals = {};\n\n internals.Func = function (_ObjectType$construct) {\n _inherits(_class, _ObjectType$construct);\n\n function _class() {\n _classCallCheck(this, _class);\n\n var _this = _possibleConstructorReturn(this, _ObjectType$construct.call(this));\n\n _this._flags.func = true;\n return _this;\n }\n\n _class.prototype.arity = function arity(n) {\n Hoek.assert(Number.isSafeInteger(n) && n >= 0, 'n must be a positive integer');\n return this._test('arity', n, function (value, state, options) {\n if (value.length === n) {\n return value;\n }\n\n return this.createError('function.arity', {\n n: n\n }, state, options);\n });\n };\n\n _class.prototype.minArity = function minArity(n) {\n Hoek.assert(Number.isSafeInteger(n) && n > 0, 'n must be a strict positive integer');\n return this._test('minArity', n, function (value, state, options) {\n if (value.length >= n) {\n return value;\n }\n\n return this.createError('function.minArity', {\n n: n\n }, state, options);\n });\n };\n\n _class.prototype.maxArity = function maxArity(n) {\n Hoek.assert(Number.isSafeInteger(n) && n >= 0, 'n must be a positive integer');\n return this._test('maxArity', n, function (value, state, options) {\n if (value.length <= n) {\n return value;\n }\n\n return this.createError('function.maxArity', {\n n: n\n }, state, options);\n });\n };\n\n _class.prototype.ref = function ref() {\n return this._test('ref', null, function (value, state, options) {\n if (Ref.isRef(value)) {\n return value;\n }\n\n return this.createError('function.ref', null, state, options);\n });\n };\n\n _class.prototype[\"class\"] = function _class() {\n return this._test('class', null, function (value, state, options) {\n if (/^\\s*class\\s/.test(value.toString())) {\n return value;\n }\n\n return this.createError('function.class', null, state, options);\n });\n };\n\n return _class;\n }(ObjectType.constructor);\n\n module.exports = new internals.Func();\n /***/\n },\n /* 23 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n function _defaults(obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass);\n }\n\n var Any = __webpack_require__(2);\n\n var Hoek = __webpack_require__(0); // Declare internals\n\n\n var internals = {};\n\n internals.Lazy = function (_Any) {\n _inherits(_class, _Any);\n\n function _class() {\n _classCallCheck(this, _class);\n\n var _this = _possibleConstructorReturn(this, _Any.call(this));\n\n _this._type = 'lazy';\n return _this;\n }\n\n _class.prototype._base = function _base(value, state, options) {\n var result = {\n value: value\n };\n var lazy = this._flags.lazy;\n\n if (!lazy) {\n result.errors = this.createError('lazy.base', null, state, options);\n return result;\n }\n\n var schema = lazy();\n\n if (!(schema instanceof Any)) {\n result.errors = this.createError('lazy.schema', null, state, options);\n return result;\n }\n\n return schema._validate(value, state, options);\n };\n\n _class.prototype.set = function set(fn) {\n Hoek.assert(typeof fn === 'function', 'You must provide a function as first argument');\n var obj = this.clone();\n obj._flags.lazy = fn;\n return obj;\n };\n\n return _class;\n }(Any);\n\n module.exports = new internals.Lazy();\n /***/\n },\n /* 24 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n function _defaults(obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass);\n }\n\n var Any = __webpack_require__(2);\n\n var Ref = __webpack_require__(1);\n\n var Hoek = __webpack_require__(0); // Declare internals\n\n\n var internals = {\n precisionRx: /(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?$/\n };\n\n internals.Number = function (_Any) {\n _inherits(_class, _Any);\n\n function _class() {\n _classCallCheck(this, _class);\n\n var _this = _possibleConstructorReturn(this, _Any.call(this));\n\n _this._type = 'number';\n\n _this._invalids.add(Infinity);\n\n _this._invalids.add(-Infinity);\n\n return _this;\n }\n\n _class.prototype._base = function _base(value, state, options) {\n var result = {\n errors: null,\n value: value\n };\n\n if (typeof value === 'string' && options.convert) {\n var number = parseFloat(value);\n result.value = isNaN(number) || !isFinite(value) ? NaN : number;\n }\n\n var isNumber = typeof result.value === 'number' && !isNaN(result.value);\n\n if (options.convert && 'precision' in this._flags && isNumber) {\n // This is conceptually equivalent to using toFixed but it should be much faster\n var precision = Math.pow(10, this._flags.precision);\n result.value = Math.round(result.value * precision) / precision;\n }\n\n result.errors = isNumber ? null : this.createError('number.base', null, state, options);\n return result;\n };\n\n _class.prototype.multiple = function multiple(base) {\n var isRef = Ref.isRef(base);\n\n if (!isRef) {\n Hoek.assert(typeof base === 'number' && isFinite(base), 'multiple must be a number');\n Hoek.assert(base > 0, 'multiple must be greater than 0');\n }\n\n return this._test('multiple', base, function (value, state, options) {\n var divisor = isRef ? base(state.reference || state.parent, options) : base;\n\n if (isRef && (typeof divisor !== 'number' || !isFinite(divisor))) {\n return this.createError('number.ref', {\n ref: base.key\n }, state, options);\n }\n\n if (value % divisor === 0) {\n return value;\n }\n\n return this.createError('number.multiple', {\n multiple: base,\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.integer = function integer() {\n return this._test('integer', undefined, function (value, state, options) {\n return Number.isSafeInteger(value) ? value : this.createError('number.integer', {\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.negative = function negative() {\n return this._test('negative', undefined, function (value, state, options) {\n if (value < 0) {\n return value;\n }\n\n return this.createError('number.negative', {\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.positive = function positive() {\n return this._test('positive', undefined, function (value, state, options) {\n if (value > 0) {\n return value;\n }\n\n return this.createError('number.positive', {\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.precision = function precision(limit) {\n Hoek.assert(Number.isSafeInteger(limit), 'limit must be an integer');\n Hoek.assert(!('precision' in this._flags), 'precision already set');\n\n var obj = this._test('precision', limit, function (value, state, options) {\n var places = value.toString().match(internals.precisionRx);\n var decimals = Math.max((places[1] ? places[1].length : 0) - (places[2] ? parseInt(places[2], 10) : 0), 0);\n\n if (decimals <= limit) {\n return value;\n }\n\n return this.createError('number.precision', {\n limit: limit,\n value: value\n }, state, options);\n });\n\n obj._flags.precision = limit;\n return obj;\n };\n\n return _class;\n }(Any);\n\n internals.compare = function (type, compare) {\n return function (limit) {\n var isRef = Ref.isRef(limit);\n var isNumber = typeof limit === 'number' && !isNaN(limit);\n Hoek.assert(isNumber || isRef, 'limit must be a number or reference');\n return this._test(type, limit, function (value, state, options) {\n var compareTo = void 0;\n\n if (isRef) {\n compareTo = limit(state.reference || state.parent, options);\n\n if (!(typeof compareTo === 'number' && !isNaN(compareTo))) {\n return this.createError('number.ref', {\n ref: limit.key\n }, state, options);\n }\n } else {\n compareTo = limit;\n }\n\n if (compare(value, compareTo)) {\n return value;\n }\n\n return this.createError('number.' + type, {\n limit: compareTo,\n value: value\n }, state, options);\n });\n };\n };\n\n internals.Number.prototype.min = internals.compare('min', function (value, limit) {\n return value >= limit;\n });\n internals.Number.prototype.max = internals.compare('max', function (value, limit) {\n return value <= limit;\n });\n internals.Number.prototype.greater = internals.compare('greater', function (value, limit) {\n return value > limit;\n });\n internals.Number.prototype.less = internals.compare('less', function (value, limit) {\n return value < limit;\n });\n module.exports = new internals.Number();\n /***/\n },\n /* 25 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n /* WEBPACK VAR INJECTION */\n\n (function (Buffer) {\n // Load modules\n var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n\n function _defaults(obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass);\n }\n\n var Net = __webpack_require__(14);\n\n var Hoek = __webpack_require__(0);\n\n var Isemail = void 0; // Loaded on demand\n\n var Any = __webpack_require__(2);\n\n var Ref = __webpack_require__(1);\n\n var JoiDate = __webpack_require__(11);\n\n var Uri = __webpack_require__(27);\n\n var Ip = __webpack_require__(26); // Declare internals\n\n\n var internals = {\n uriRegex: Uri.createUriRegex(),\n ipRegex: Ip.createIpRegex(['ipv4', 'ipv6', 'ipvfuture'], 'optional'),\n guidBrackets: {\n '{': '}',\n '[': ']',\n '(': ')',\n '': ''\n },\n guidVersions: {\n uuidv1: '1',\n uuidv2: '2',\n uuidv3: '3',\n uuidv4: '4',\n uuidv5: '5'\n },\n cidrPresences: ['required', 'optional', 'forbidden'],\n normalizationForms: ['NFC', 'NFD', 'NFKC', 'NFKD']\n };\n\n internals.String = function (_Any) {\n _inherits(_class, _Any);\n\n function _class() {\n _classCallCheck(this, _class);\n\n var _this = _possibleConstructorReturn(this, _Any.call(this));\n\n _this._type = 'string';\n\n _this._invalids.add('');\n\n return _this;\n }\n\n _class.prototype._base = function _base(value, state, options) {\n if (typeof value === 'string' && options.convert) {\n if (this._flags.normalize) {\n value = value.normalize(this._flags.normalize);\n }\n\n if (this._flags[\"case\"]) {\n value = this._flags[\"case\"] === 'upper' ? value.toLocaleUpperCase() : value.toLocaleLowerCase();\n }\n\n if (this._flags.trim) {\n value = value.trim();\n }\n\n if (this._inner.replacements) {\n for (var i = 0; i < this._inner.replacements.length; ++i) {\n var replacement = this._inner.replacements[i];\n value = value.replace(replacement.pattern, replacement.replacement);\n }\n }\n\n if (this._flags.truncate) {\n for (var _i = 0; _i < this._tests.length; ++_i) {\n var test = this._tests[_i];\n\n if (test.name === 'max') {\n value = value.slice(0, test.arg);\n break;\n }\n }\n }\n }\n\n return {\n value: value,\n errors: typeof value === 'string' ? null : this.createError('string.base', {\n value: value\n }, state, options)\n };\n };\n\n _class.prototype.insensitive = function insensitive() {\n if (this._flags.insensitive) {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.insensitive = true;\n return obj;\n };\n\n _class.prototype.creditCard = function creditCard() {\n return this._test('creditCard', undefined, function (value, state, options) {\n var i = value.length;\n var sum = 0;\n var mul = 1;\n\n while (i--) {\n var _char = value.charAt(i) * mul;\n\n sum = sum + (_char - (_char > 9) * 9);\n mul = mul ^ 3;\n }\n\n var check = sum % 10 === 0 && sum > 0;\n return check ? value : this.createError('string.creditCard', {\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.regex = function regex(pattern, patternOptions) {\n Hoek.assert(pattern instanceof RegExp, 'pattern must be a RegExp');\n var patternObject = {\n pattern: new RegExp(pattern.source, pattern.ignoreCase ? 'i' : undefined) // Future version should break this and forbid unsupported regex flags\n\n };\n\n if (typeof patternOptions === 'string') {\n patternObject.name = patternOptions;\n } else if ((typeof patternOptions === 'undefined' ? 'undefined' : _typeof(patternOptions)) === 'object') {\n patternObject.invert = !!patternOptions.invert;\n\n if (patternOptions.name) {\n patternObject.name = patternOptions.name;\n }\n }\n\n var errorCode = ['string.regex', patternObject.invert ? '.invert' : '', patternObject.name ? '.name' : '.base'].join('');\n return this._test('regex', patternObject, function (value, state, options) {\n var patternMatch = patternObject.pattern.test(value);\n\n if (patternMatch ^ patternObject.invert) {\n return value;\n }\n\n return this.createError(errorCode, {\n name: patternObject.name,\n pattern: patternObject.pattern,\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.alphanum = function alphanum() {\n return this._test('alphanum', undefined, function (value, state, options) {\n if (/^[a-zA-Z0-9]+$/.test(value)) {\n return value;\n }\n\n return this.createError('string.alphanum', {\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.token = function token() {\n return this._test('token', undefined, function (value, state, options) {\n if (/^\\w+$/.test(value)) {\n return value;\n }\n\n return this.createError('string.token', {\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.email = function email(isEmailOptions) {\n if (isEmailOptions) {\n Hoek.assert((typeof isEmailOptions === 'undefined' ? 'undefined' : _typeof(isEmailOptions)) === 'object', 'email options must be an object');\n Hoek.assert(typeof isEmailOptions.checkDNS === 'undefined', 'checkDNS option is not supported');\n Hoek.assert(typeof isEmailOptions.tldWhitelist === 'undefined' || _typeof(isEmailOptions.tldWhitelist) === 'object', 'tldWhitelist must be an array or object');\n Hoek.assert(typeof isEmailOptions.minDomainAtoms === 'undefined' || Number.isSafeInteger(isEmailOptions.minDomainAtoms) && isEmailOptions.minDomainAtoms > 0, 'minDomainAtoms must be a positive integer');\n Hoek.assert(typeof isEmailOptions.errorLevel === 'undefined' || typeof isEmailOptions.errorLevel === 'boolean' || Number.isSafeInteger(isEmailOptions.errorLevel) && isEmailOptions.errorLevel >= 0, 'errorLevel must be a non-negative integer or boolean');\n }\n\n return this._test('email', isEmailOptions, function (value, state, options) {\n Isemail = Isemail || __webpack_require__(16);\n\n try {\n var result = Isemail.validate(value, isEmailOptions);\n\n if (result === true || result === 0) {\n return value;\n }\n } catch (e) {}\n\n return this.createError('string.email', {\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.ip = function ip() {\n var ipOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var regex = internals.ipRegex;\n Hoek.assert((typeof ipOptions === 'undefined' ? 'undefined' : _typeof(ipOptions)) === 'object', 'options must be an object');\n\n if (ipOptions.cidr) {\n Hoek.assert(typeof ipOptions.cidr === 'string', 'cidr must be a string');\n ipOptions.cidr = ipOptions.cidr.toLowerCase();\n Hoek.assert(Hoek.contain(internals.cidrPresences, ipOptions.cidr), 'cidr must be one of ' + internals.cidrPresences.join(', ')); // If we only received a `cidr` setting, create a regex for it. But we don't need to create one if `cidr` is \"optional\" since that is the default\n\n if (!ipOptions.version && ipOptions.cidr !== 'optional') {\n regex = Ip.createIpRegex(['ipv4', 'ipv6', 'ipvfuture'], ipOptions.cidr);\n }\n } else {\n // Set our default cidr strategy\n ipOptions.cidr = 'optional';\n }\n\n var versions = void 0;\n\n if (ipOptions.version) {\n if (!Array.isArray(ipOptions.version)) {\n ipOptions.version = [ipOptions.version];\n }\n\n Hoek.assert(ipOptions.version.length >= 1, 'version must have at least 1 version specified');\n versions = [];\n\n for (var i = 0; i < ipOptions.version.length; ++i) {\n var version = ipOptions.version[i];\n Hoek.assert(typeof version === 'string', 'version at position ' + i + ' must be a string');\n version = version.toLowerCase();\n Hoek.assert(Ip.versions[version], 'version at position ' + i + ' must be one of ' + Object.keys(Ip.versions).join(', '));\n versions.push(version);\n } // Make sure we have a set of versions\n\n\n versions = Hoek.unique(versions);\n regex = Ip.createIpRegex(versions, ipOptions.cidr);\n }\n\n return this._test('ip', ipOptions, function (value, state, options) {\n if (regex.test(value)) {\n return value;\n }\n\n if (versions) {\n return this.createError('string.ipVersion', {\n value: value,\n cidr: ipOptions.cidr,\n version: versions\n }, state, options);\n }\n\n return this.createError('string.ip', {\n value: value,\n cidr: ipOptions.cidr\n }, state, options);\n });\n };\n\n _class.prototype.uri = function uri(uriOptions) {\n var customScheme = '';\n var allowRelative = false;\n var relativeOnly = false;\n var regex = internals.uriRegex;\n\n if (uriOptions) {\n Hoek.assert((typeof uriOptions === 'undefined' ? 'undefined' : _typeof(uriOptions)) === 'object', 'options must be an object');\n\n if (uriOptions.scheme) {\n Hoek.assert(uriOptions.scheme instanceof RegExp || typeof uriOptions.scheme === 'string' || Array.isArray(uriOptions.scheme), 'scheme must be a RegExp, String, or Array');\n\n if (!Array.isArray(uriOptions.scheme)) {\n uriOptions.scheme = [uriOptions.scheme];\n }\n\n Hoek.assert(uriOptions.scheme.length >= 1, 'scheme must have at least 1 scheme specified'); // Flatten the array into a string to be used to match the schemes.\n\n for (var i = 0; i < uriOptions.scheme.length; ++i) {\n var scheme = uriOptions.scheme[i];\n Hoek.assert(scheme instanceof RegExp || typeof scheme === 'string', 'scheme at position ' + i + ' must be a RegExp or String'); // Add OR separators if a value already exists\n\n customScheme = customScheme + (customScheme ? '|' : ''); // If someone wants to match HTTP or HTTPS for example then we need to support both RegExp and String so we don't escape their pattern unknowingly.\n\n if (scheme instanceof RegExp) {\n customScheme = customScheme + scheme.source;\n } else {\n Hoek.assert(/[a-zA-Z][a-zA-Z0-9+-\\.]*/.test(scheme), 'scheme at position ' + i + ' must be a valid scheme');\n customScheme = customScheme + Hoek.escapeRegex(scheme);\n }\n }\n }\n\n if (uriOptions.allowRelative) {\n allowRelative = true;\n }\n\n if (uriOptions.relativeOnly) {\n relativeOnly = true;\n }\n }\n\n if (customScheme || allowRelative || relativeOnly) {\n regex = Uri.createUriRegex(customScheme, allowRelative, relativeOnly);\n }\n\n return this._test('uri', uriOptions, function (value, state, options) {\n if (regex.test(value)) {\n return value;\n }\n\n if (relativeOnly) {\n return this.createError('string.uriRelativeOnly', {\n value: value\n }, state, options);\n }\n\n if (customScheme) {\n return this.createError('string.uriCustomScheme', {\n scheme: customScheme,\n value: value\n }, state, options);\n }\n\n return this.createError('string.uri', {\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.isoDate = function isoDate() {\n return this._test('isoDate', undefined, function (value, state, options) {\n if (JoiDate._isIsoDate(value)) {\n if (!options.convert) {\n return value;\n }\n\n var d = new Date(value);\n\n if (!isNaN(d.getTime())) {\n return d.toISOString();\n }\n }\n\n return this.createError('string.isoDate', {\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.guid = function guid(guidOptions) {\n var versionNumbers = '';\n\n if (guidOptions && guidOptions.version) {\n if (!Array.isArray(guidOptions.version)) {\n guidOptions.version = [guidOptions.version];\n }\n\n Hoek.assert(guidOptions.version.length >= 1, 'version must have at least 1 valid version specified');\n var versions = new Set();\n\n for (var i = 0; i < guidOptions.version.length; ++i) {\n var version = guidOptions.version[i];\n Hoek.assert(typeof version === 'string', 'version at position ' + i + ' must be a string');\n version = version.toLowerCase();\n var versionNumber = internals.guidVersions[version];\n Hoek.assert(versionNumber, 'version at position ' + i + ' must be one of ' + Object.keys(internals.guidVersions).join(', '));\n Hoek.assert(!versions.has(versionNumber), 'version at position ' + i + ' must not be a duplicate.');\n versionNumbers += versionNumber;\n versions.add(versionNumber);\n }\n }\n\n var guidRegex = new RegExp('^([\\\\[{\\\\(]?)[0-9A-F]{8}([:-]?)[0-9A-F]{4}\\\\2?[' + (versionNumbers || '0-9A-F') + '][0-9A-F]{3}\\\\2?[' + (versionNumbers ? '89AB' : '0-9A-F') + '][0-9A-F]{3}\\\\2?[0-9A-F]{12}([\\\\]}\\\\)]?)$', 'i');\n return this._test('guid', guidOptions, function (value, state, options) {\n var results = guidRegex.exec(value);\n\n if (!results) {\n return this.createError('string.guid', {\n value: value\n }, state, options);\n } // Matching braces\n\n\n if (internals.guidBrackets[results[1]] !== results[results.length - 1]) {\n return this.createError('string.guid', {\n value: value\n }, state, options);\n }\n\n return value;\n });\n };\n\n _class.prototype.hex = function hex() {\n var regex = /^[a-f0-9]+$/i;\n return this._test('hex', regex, function (value, state, options) {\n if (regex.test(value)) {\n return value;\n }\n\n return this.createError('string.hex', {\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.base64 = function base64() {\n var base64Options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; // Validation.\n\n Hoek.assert((typeof base64Options === 'undefined' ? 'undefined' : _typeof(base64Options)) === 'object', 'base64 options must be an object');\n Hoek.assert(typeof base64Options.paddingRequired === 'undefined' || typeof base64Options.paddingRequired === 'boolean', 'paddingRequired must be boolean'); // Determine if padding is required.\n\n var paddingRequired = base64Options.paddingRequired === false ? base64Options.paddingRequired : base64Options.paddingRequired || true; // Set validation based on preference.\n\n var regex = paddingRequired ? // Padding is required.\n /^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?$/ // Padding is optional.\n : /^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}(==)?|[A-Za-z0-9+\\/]{3}=?)?$/;\n return this._test('base64', regex, function (value, state, options) {\n if (regex.test(value)) {\n return value;\n }\n\n return this.createError('string.base64', {\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.hostname = function hostname() {\n var regex = /^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9])$/;\n return this._test('hostname', undefined, function (value, state, options) {\n if (value.length <= 255 && regex.test(value) || Net.isIPv6(value)) {\n return value;\n }\n\n return this.createError('string.hostname', {\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.normalize = function normalize() {\n var form = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'NFC';\n Hoek.assert(Hoek.contain(internals.normalizationForms, form), 'normalization form must be one of ' + internals.normalizationForms.join(', '));\n\n var obj = this._test('normalize', form, function (value, state, options) {\n if (options.convert || value === value.normalize(form)) {\n return value;\n }\n\n return this.createError('string.normalize', {\n value: value,\n form: form\n }, state, options);\n });\n\n obj._flags.normalize = form;\n return obj;\n };\n\n _class.prototype.lowercase = function lowercase() {\n var obj = this._test('lowercase', undefined, function (value, state, options) {\n if (options.convert || value === value.toLocaleLowerCase()) {\n return value;\n }\n\n return this.createError('string.lowercase', {\n value: value\n }, state, options);\n });\n\n obj._flags[\"case\"] = 'lower';\n return obj;\n };\n\n _class.prototype.uppercase = function uppercase() {\n var obj = this._test('uppercase', undefined, function (value, state, options) {\n if (options.convert || value === value.toLocaleUpperCase()) {\n return value;\n }\n\n return this.createError('string.uppercase', {\n value: value\n }, state, options);\n });\n\n obj._flags[\"case\"] = 'upper';\n return obj;\n };\n\n _class.prototype.trim = function trim() {\n var obj = this._test('trim', undefined, function (value, state, options) {\n if (options.convert || value === value.trim()) {\n return value;\n }\n\n return this.createError('string.trim', {\n value: value\n }, state, options);\n });\n\n obj._flags.trim = true;\n return obj;\n };\n\n _class.prototype.replace = function replace(pattern, replacement) {\n if (typeof pattern === 'string') {\n pattern = new RegExp(Hoek.escapeRegex(pattern), 'g');\n }\n\n Hoek.assert(pattern instanceof RegExp, 'pattern must be a RegExp');\n Hoek.assert(typeof replacement === 'string', 'replacement must be a String'); // This can not be considere a test like trim, we can't \"reject\"\n // anything from this rule, so just clone the current object\n\n var obj = this.clone();\n\n if (!obj._inner.replacements) {\n obj._inner.replacements = [];\n }\n\n obj._inner.replacements.push({\n pattern: pattern,\n replacement: replacement\n });\n\n return obj;\n };\n\n _class.prototype.truncate = function truncate(enabled) {\n var value = enabled === undefined ? true : !!enabled;\n\n if (this._flags.truncate === value) {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.truncate = value;\n return obj;\n };\n\n return _class;\n }(Any);\n\n internals.compare = function (type, compare) {\n return function (limit, encoding) {\n var isRef = Ref.isRef(limit);\n Hoek.assert(Number.isSafeInteger(limit) && limit >= 0 || isRef, 'limit must be a positive integer or reference');\n Hoek.assert(!encoding || Buffer.isEncoding(encoding), 'Invalid encoding:', encoding);\n return this._test(type, limit, function (value, state, options) {\n var compareTo = void 0;\n\n if (isRef) {\n compareTo = limit(state.reference || state.parent, options);\n\n if (!Number.isSafeInteger(compareTo)) {\n return this.createError('string.ref', {\n ref: limit.key\n }, state, options);\n }\n } else {\n compareTo = limit;\n }\n\n if (compare(value, compareTo, encoding)) {\n return value;\n }\n\n return this.createError('string.' + type, {\n limit: compareTo,\n value: value,\n encoding: encoding\n }, state, options);\n });\n };\n };\n\n internals.String.prototype.min = internals.compare('min', function (value, limit, encoding) {\n var length = encoding ? Buffer.byteLength(value, encoding) : value.length;\n return length >= limit;\n });\n internals.String.prototype.max = internals.compare('max', function (value, limit, encoding) {\n var length = encoding ? Buffer.byteLength(value, encoding) : value.length;\n return length <= limit;\n });\n internals.String.prototype.length = internals.compare('length', function (value, limit, encoding) {\n var length = encoding ? Buffer.byteLength(value, encoding) : value.length;\n return length === limit;\n }); // Aliases\n\n internals.String.prototype.uuid = internals.String.prototype.guid;\n module.exports = new internals.String();\n /* WEBPACK VAR INJECTION */\n }).call(exports, __webpack_require__(3).Buffer);\n /***/\n },\n /* 26 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n var RFC3986 = __webpack_require__(13); // Declare internals\n\n\n var internals = {\n Ip: {\n cidrs: {\n ipv4: {\n required: '\\\\/(?:' + RFC3986.ipv4Cidr + ')',\n optional: '(?:\\\\/(?:' + RFC3986.ipv4Cidr + '))?',\n forbidden: ''\n },\n ipv6: {\n required: '\\\\/' + RFC3986.ipv6Cidr,\n optional: '(?:\\\\/' + RFC3986.ipv6Cidr + ')?',\n forbidden: ''\n },\n ipvfuture: {\n required: '\\\\/' + RFC3986.ipv6Cidr,\n optional: '(?:\\\\/' + RFC3986.ipv6Cidr + ')?',\n forbidden: ''\n }\n },\n versions: {\n ipv4: RFC3986.IPv4address,\n ipv6: RFC3986.IPv6address,\n ipvfuture: RFC3986.IPvFuture\n }\n }\n };\n\n internals.Ip.createIpRegex = function (versions, cidr) {\n var regex = void 0;\n\n for (var i = 0; i < versions.length; ++i) {\n var version = versions[i];\n\n if (!regex) {\n regex = '^(?:' + internals.Ip.versions[version] + internals.Ip.cidrs[version][cidr];\n } else {\n regex += '|' + internals.Ip.versions[version] + internals.Ip.cidrs[version][cidr];\n }\n }\n\n return new RegExp(regex + ')$');\n };\n\n module.exports = internals.Ip;\n /***/\n },\n /* 27 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load Modules\n\n var RFC3986 = __webpack_require__(13); // Declare internals\n\n\n var internals = {\n Uri: {\n createUriRegex: function createUriRegex(optionalScheme, allowRelative, relativeOnly) {\n var scheme = RFC3986.scheme;\n var prefix = void 0;\n\n if (relativeOnly) {\n prefix = '(?:' + RFC3986.relativeRef + ')';\n } else {\n // If we were passed a scheme, use it instead of the generic one\n if (optionalScheme) {\n // Have to put this in a non-capturing group to handle the OR statements\n scheme = '(?:' + optionalScheme + ')';\n }\n\n var withScheme = '(?:' + scheme + ':' + RFC3986.hierPart + ')';\n prefix = allowRelative ? '(?:' + withScheme + '|' + RFC3986.relativeRef + ')' : withScheme;\n }\n /**\n * URI = scheme \":\" hier-part [ \"?\" query ] [ \"#\" fragment ]\n *\n * OR\n *\n * relative-ref = relative-part [ \"?\" query ] [ \"#\" fragment ]\n */\n\n\n return new RegExp('^' + prefix + '(?:\\\\?' + RFC3986.query + ')?' + '(?:#' + RFC3986.fragment + ')?$');\n }\n }\n };\n module.exports = internals.Uri;\n /***/\n },\n /* 28 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n var Hoek = __webpack_require__(0); // Declare internals\n\n\n var internals = {};\n\n exports = module.exports = internals.Topo = function () {\n this._items = [];\n this.nodes = [];\n };\n\n internals.Topo.prototype.add = function (nodes, options) {\n var _this = this;\n\n options = options || {}; // Validate rules\n\n var before = [].concat(options.before || []);\n var after = [].concat(options.after || []);\n var group = options.group || '?';\n var sort = options.sort || 0; // Used for merging only\n\n Hoek.assert(before.indexOf(group) === -1, 'Item cannot come before itself:', group);\n Hoek.assert(before.indexOf('?') === -1, 'Item cannot come before unassociated items');\n Hoek.assert(after.indexOf(group) === -1, 'Item cannot come after itself:', group);\n Hoek.assert(after.indexOf('?') === -1, 'Item cannot come after unassociated items');\n [].concat(nodes).forEach(function (node, i) {\n var item = {\n seq: _this._items.length,\n sort: sort,\n before: before,\n after: after,\n group: group,\n node: node\n };\n\n _this._items.push(item);\n }); // Insert event\n\n var error = this._sort();\n\n Hoek.assert(!error, 'item', group !== '?' ? 'added into group ' + group : '', 'created a dependencies error');\n return this.nodes;\n };\n\n internals.Topo.prototype.merge = function (others) {\n others = [].concat(others);\n\n for (var i = 0; i < others.length; ++i) {\n var other = others[i];\n\n if (other) {\n for (var j = 0; j < other._items.length; ++j) {\n var item = Hoek.shallow(other._items[j]);\n\n this._items.push(item);\n }\n }\n } // Sort items\n\n\n this._items.sort(internals.mergeSort);\n\n for (var _i = 0; _i < this._items.length; ++_i) {\n this._items[_i].seq = _i;\n }\n\n var error = this._sort();\n\n Hoek.assert(!error, 'merge created a dependencies error');\n return this.nodes;\n };\n\n internals.mergeSort = function (a, b) {\n return a.sort === b.sort ? 0 : a.sort < b.sort ? -1 : 1;\n };\n\n internals.Topo.prototype._sort = function () {\n // Construct graph\n var graph = {};\n var graphAfters = Object.create(null); // A prototype can bungle lookups w/ false positives\n\n var groups = Object.create(null);\n\n for (var i = 0; i < this._items.length; ++i) {\n var item = this._items[i];\n var seq = item.seq; // Unique across all items\n\n var group = item.group; // Determine Groups\n\n groups[group] = groups[group] || [];\n groups[group].push(seq); // Build intermediary graph using 'before'\n\n graph[seq] = item.before; // Build second intermediary graph with 'after'\n\n var after = item.after;\n\n for (var j = 0; j < after.length; ++j) {\n graphAfters[after[j]] = (graphAfters[after[j]] || []).concat(seq);\n }\n } // Expand intermediary graph\n\n\n var graphNodes = Object.keys(graph);\n\n for (var _i2 = 0; _i2 < graphNodes.length; ++_i2) {\n var node = graphNodes[_i2];\n var expandedGroups = [];\n var graphNodeItems = Object.keys(graph[node]);\n\n for (var _j = 0; _j < graphNodeItems.length; ++_j) {\n var _group = graph[node][graphNodeItems[_j]];\n groups[_group] = groups[_group] || [];\n\n for (var k = 0; k < groups[_group].length; ++k) {\n expandedGroups.push(groups[_group][k]);\n }\n }\n\n graph[node] = expandedGroups;\n } // Merge intermediary graph using graphAfters into final graph\n\n\n var afterNodes = Object.keys(graphAfters);\n\n for (var _i3 = 0; _i3 < afterNodes.length; ++_i3) {\n var _group2 = afterNodes[_i3];\n\n if (groups[_group2]) {\n for (var _j2 = 0; _j2 < groups[_group2].length; ++_j2) {\n var _node = groups[_group2][_j2];\n graph[_node] = graph[_node].concat(graphAfters[_group2]);\n }\n }\n } // Compile ancestors\n\n\n var children = void 0;\n var ancestors = {};\n graphNodes = Object.keys(graph);\n\n for (var _i4 = 0; _i4 < graphNodes.length; ++_i4) {\n var _node2 = graphNodes[_i4];\n children = graph[_node2];\n\n for (var _j3 = 0; _j3 < children.length; ++_j3) {\n ancestors[children[_j3]] = (ancestors[children[_j3]] || []).concat(_node2);\n }\n } // Topo sort\n\n\n var visited = {};\n var sorted = [];\n\n for (var _i5 = 0; _i5 < this._items.length; ++_i5) {\n // Really looping thru item.seq values out of order\n var next = _i5;\n\n if (ancestors[_i5]) {\n next = null;\n\n for (var _j4 = 0; _j4 < this._items.length; ++_j4) {\n // As above, these are item.seq values\n if (visited[_j4] === true) {\n continue;\n }\n\n if (!ancestors[_j4]) {\n ancestors[_j4] = [];\n }\n\n var shouldSeeCount = ancestors[_j4].length;\n var seenCount = 0;\n\n for (var _k = 0; _k < shouldSeeCount; ++_k) {\n if (visited[ancestors[_j4][_k]]) {\n ++seenCount;\n }\n }\n\n if (seenCount === shouldSeeCount) {\n next = _j4;\n break;\n }\n }\n }\n\n if (next !== null) {\n visited[next] = true;\n sorted.push(next);\n }\n }\n\n if (sorted.length !== this._items.length) {\n return new Error('Invalid dependencies');\n }\n\n var seqIndex = {};\n\n for (var _i6 = 0; _i6 < this._items.length; ++_i6) {\n var _item = this._items[_i6];\n seqIndex[_item.seq] = _item;\n }\n\n var sortedNodes = [];\n this._items = sorted.map(function (value) {\n var sortedItem = seqIndex[value];\n sortedNodes.push(sortedItem.node);\n return sortedItem;\n });\n this.nodes = sortedNodes;\n };\n /***/\n\n },\n /* 29 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var Joi = __webpack_require__(8);\n\n module.exports = Joi;\n /***/\n },\n /* 30 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n exports.byteLength = byteLength;\n exports.toByteArray = toByteArray;\n exports.fromByteArray = fromByteArray;\n var lookup = [];\n var revLookup = [];\n var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\n var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n for (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n }\n\n revLookup['-'.charCodeAt(0)] = 62;\n revLookup['_'.charCodeAt(0)] = 63;\n\n function placeHoldersCount(b64) {\n var len = b64.length;\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4');\n } // the number of equal signs (place holders)\n // if there are two placeholders, than the two characters before it\n // represent one byte\n // if there is only one, then the three characters before it represent 2 bytes\n // this is just a cheap hack to not do indexOf twice\n\n\n return b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0;\n }\n\n function byteLength(b64) {\n // base64 is 4/3 + up to two characters of the original data\n return b64.length * 3 / 4 - placeHoldersCount(b64);\n }\n\n function toByteArray(b64) {\n var i, l, tmp, placeHolders, arr;\n var len = b64.length;\n placeHolders = placeHoldersCount(b64);\n arr = new Arr(len * 3 / 4 - placeHolders); // if there are placeholders, only get up to the last complete 4 chars\n\n l = placeHolders > 0 ? len - 4 : len;\n var L = 0;\n\n for (i = 0; i < l; i += 4) {\n tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | revLookup[b64.charCodeAt(i + 3)];\n arr[L++] = tmp >> 16 & 0xFF;\n arr[L++] = tmp >> 8 & 0xFF;\n arr[L++] = tmp & 0xFF;\n }\n\n if (placeHolders === 2) {\n tmp = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4;\n arr[L++] = tmp & 0xFF;\n } else if (placeHolders === 1) {\n tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | revLookup[b64.charCodeAt(i + 2)] >> 2;\n arr[L++] = tmp >> 8 & 0xFF;\n arr[L++] = tmp & 0xFF;\n }\n\n return arr;\n }\n\n function tripletToBase64(num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F];\n }\n\n function encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + uint8[i + 2];\n output.push(tripletToBase64(tmp));\n }\n\n return output.join('');\n }\n\n function fromByteArray(uint8) {\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n\n var output = '';\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n // go through the array every three bytes, we'll deal with trailing stuff later\n\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength));\n } // pad the end with zeros, but make sure to not forget the extra bytes\n\n\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n output += lookup[tmp >> 2];\n output += lookup[tmp << 4 & 0x3F];\n output += '==';\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n output += lookup[tmp >> 10];\n output += lookup[tmp >> 4 & 0x3F];\n output += lookup[tmp << 2 & 0x3F];\n output += '=';\n }\n\n parts.push(output);\n return parts.join('');\n }\n /***/\n\n },\n /* 31 */\n\n /***/\n function (module, exports) {\n exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? nBytes - 1 : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : (s ? -1 : 1) * Infinity;\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n };\n\n exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;\n var i = isLE ? 0 : nBytes - 1;\n var d = isLE ? 1 : -1;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n value = Math.abs(value);\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = e << mLen | m;\n eLen += mLen;\n\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128;\n };\n /***/\n\n },\n /* 32 */\n\n /***/\n function (module, exports) {\n var toString = {}.toString;\n\n module.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n };\n /***/\n\n },\n /* 33 */\n\n /***/\n function (module, exports) {\n module.exports = {\n \"_args\": [[\"joi@13.0.1\", \"/Users/jeff/projects/joi-browser\"]],\n \"_development\": true,\n \"_from\": \"joi@13.0.1\",\n \"_id\": \"joi@13.0.1\",\n \"_inBundle\": false,\n \"_integrity\": \"sha512-ChTMfmbIg5yrN9pUdeaLL8vzylMQhUteXiXa1MWINsMUs3jTQ8I87lUZwR5GdfCLJlpK04U7UgrxgmU8Zp7PhQ==\",\n \"_location\": \"/joi\",\n \"_phantomChildren\": {},\n \"_requested\": {\n \"type\": \"version\",\n \"registry\": true,\n \"raw\": \"joi@13.0.1\",\n \"name\": \"joi\",\n \"escapedName\": \"joi\",\n \"rawSpec\": \"13.0.1\",\n \"saveSpec\": null,\n \"fetchSpec\": \"13.0.1\"\n },\n \"_requiredBy\": [\"#DEV:/\"],\n \"_resolved\": \"https://registry.npmjs.org/joi/-/joi-13.0.1.tgz\",\n \"_spec\": \"13.0.1\",\n \"_where\": \"/Users/jeff/projects/joi-browser\",\n \"bugs\": {\n \"url\": \"https://github.com/hapijs/joi/issues\"\n },\n \"dependencies\": {\n \"hoek\": \"5.x.x\",\n \"isemail\": \"3.x.x\",\n \"topo\": \"3.x.x\"\n },\n \"description\": \"Object schema validation\",\n \"devDependencies\": {\n \"hapitoc\": \"1.x.x\",\n \"lab\": \"14.x.x\"\n },\n \"engines\": {\n \"node\": \">=8.3.0\"\n },\n \"homepage\": \"https://github.com/hapijs/joi\",\n \"keywords\": [\"hapi\", \"schema\", \"validation\"],\n \"license\": \"BSD-3-Clause\",\n \"main\": \"lib/index.js\",\n \"name\": \"joi\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git://github.com/hapijs/joi.git\"\n },\n \"scripts\": {\n \"test\": \"lab -t 100 -a code -L\",\n \"test-cov-html\": \"lab -r html -o coverage.html -a code\",\n \"test-debug\": \"lab -a code\",\n \"toc\": \"hapitoc\",\n \"version\": \"npm run toc && git add API.md README.md\"\n },\n \"version\": \"13.0.1\"\n };\n /***/\n },\n /* 34 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /* WEBPACK VAR INJECTION */\n (function (process) {\n // Copyright Joyent, Inc. and other Node contributors.\n //\n // Permission is hereby granted, free of charge, to any person obtaining a\n // copy of this software and associated documentation files (the\n // \"Software\"), to deal in the Software without restriction, including\n // without limitation the rights to use, copy, modify, merge, publish,\n // distribute, sublicense, and/or sell copies of the Software, and to permit\n // persons to whom the Software is furnished to do so, subject to the\n // following conditions:\n //\n // The above copyright notice and this permission notice shall be included\n // in all copies or substantial portions of the Software.\n //\n // THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n // USE OR OTHER DEALINGS IN THE SOFTWARE.\n // resolves . and .. elements in a path array with directory names there\n // must be no slashes, empty elements, or device names (c:\\) in the array\n // (so also no leading and trailing slashes - it does not distinguish\n // relative and absolute paths)\n function normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n } // if the path is allowed to go above the root, restore leading ..s\n\n\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n } // Split a filename into [root, dir, basename, ext], unix version\n // 'root' is just a slash, or nothing.\n\n\n var splitPathRe = /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;\n\n var splitPath = function splitPath(filename) {\n return splitPathRe.exec(filename).slice(1);\n }; // path.resolve([from ...], to)\n // posix version\n\n\n exports.resolve = function () {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = i >= 0 ? arguments[i] : process.cwd(); // Skip empty and invalid entries\n\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n } // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n // Normalize the path\n\n\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function (p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n return (resolvedAbsolute ? '/' : '') + resolvedPath || '.';\n }; // path.normalize(path)\n // posix version\n\n\n exports.normalize = function (path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/'; // Normalize the path\n\n path = normalizeArray(filter(path.split('/'), function (p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n }; // posix version\n\n\n exports.isAbsolute = function (path) {\n return path.charAt(0) === '/';\n }; // posix version\n\n\n exports.join = function () {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function (p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n\n return p;\n }).join('/'));\n }; // path.relative(from, to)\n // posix version\n\n\n exports.relative = function (from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n return outputParts.join('/');\n };\n\n exports.sep = '/';\n exports.delimiter = ':';\n\n exports.dirname = function (path) {\n var result = splitPath(path),\n root = result[0],\n dir = result[1];\n\n if (!root && !dir) {\n // No dirname whatsoever\n return '.';\n }\n\n if (dir) {\n // It has a dirname, strip trailing slash\n dir = dir.substr(0, dir.length - 1);\n }\n\n return root + dir;\n };\n\n exports.basename = function (path, ext) {\n var f = splitPath(path)[2]; // TODO: make this comparison case-insensitive on windows?\n\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n\n return f;\n };\n\n exports.extname = function (path) {\n return splitPath(path)[3];\n };\n\n function filter(xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n\n return res;\n } // String.prototype.substr - negative index don't work in IE8\n\n\n var substr = 'ab'.substr(-1) === 'b' ? function (str, start, len) {\n return str.substr(start, len);\n } : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n };\n /* WEBPACK VAR INJECTION */\n }).call(exports, __webpack_require__(5));\n /***/\n },\n /* 35 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /* WEBPACK VAR INJECTION */\n (function (module, global) {\n var __WEBPACK_AMD_DEFINE_RESULT__;\n /*! https://mths.be/punycode v1.4.1 by @mathias */\n\n\n ;\n\n (function (root) {\n /** Detect free variables */\n var freeExports = _typeof2(exports) == 'object' && exports && !exports.nodeType && exports;\n var freeModule = _typeof2(module) == 'object' && module && !module.nodeType && module;\n var freeGlobal = _typeof2(global) == 'object' && global;\n\n if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal || freeGlobal.self === freeGlobal) {\n root = freeGlobal;\n }\n /**\n * The `punycode` object.\n * @name punycode\n * @type Object\n */\n\n\n var punycode,\n\n /** Highest positive signed 32-bit float value */\n maxInt = 2147483647,\n // aka. 0x7FFFFFFF or 2^31-1\n\n /** Bootstring parameters */\n base = 36,\n tMin = 1,\n tMax = 26,\n skew = 38,\n damp = 700,\n initialBias = 72,\n initialN = 128,\n // 0x80\n delimiter = '-',\n // '\\x2D'\n\n /** Regular expressions */\n regexPunycode = /^xn--/,\n regexNonASCII = /[^\\x20-\\x7E]/,\n // unprintable ASCII chars + non-ASCII chars\n regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g,\n // RFC 3490 separators\n\n /** Error messages */\n errors = {\n 'overflow': 'Overflow: input needs wider integers to process',\n 'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n 'invalid-input': 'Invalid input'\n },\n\n /** Convenience shortcuts */\n baseMinusTMin = base - tMin,\n floor = Math.floor,\n stringFromCharCode = String.fromCharCode,\n\n /** Temporary variable */\n key;\n /*--------------------------------------------------------------------------*/\n\n /**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\n\n function error(type) {\n throw new RangeError(errors[type]);\n }\n /**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\n\n\n function map(array, fn) {\n var length = array.length;\n var result = [];\n\n while (length--) {\n result[length] = fn(array[length]);\n }\n\n return result;\n }\n /**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\n\n\n function mapDomain(string, fn) {\n var parts = string.split('@');\n var result = '';\n\n if (parts.length > 1) {\n // In email addresses, only the domain name should be punycoded. Leave\n // the local part (i.e. everything up to `@`) intact.\n result = parts[0] + '@';\n string = parts[1];\n } // Avoid `split(regex)` for IE8 compatibility. See #17.\n\n\n string = string.replace(regexSeparators, '\\x2E');\n var labels = string.split('.');\n var encoded = map(labels, fn).join('.');\n return result + encoded;\n }\n /**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see \n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\n\n\n function ucs2decode(string) {\n var output = [],\n counter = 0,\n length = string.length,\n value,\n extra;\n\n while (counter < length) {\n value = string.charCodeAt(counter++);\n\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // high surrogate, and there is a next character\n extra = string.charCodeAt(counter++);\n\n if ((extra & 0xFC00) == 0xDC00) {\n // low surrogate\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // unmatched surrogate; only append this code unit, in case the next\n // code unit is the high surrogate of a surrogate pair\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n\n return output;\n }\n /**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\n\n\n function ucs2encode(array) {\n return map(array, function (value) {\n var output = '';\n\n if (value > 0xFFFF) {\n value -= 0x10000;\n output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n value = 0xDC00 | value & 0x3FF;\n }\n\n output += stringFromCharCode(value);\n return output;\n }).join('');\n }\n /**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\n\n\n function basicToDigit(codePoint) {\n if (codePoint - 48 < 10) {\n return codePoint - 22;\n }\n\n if (codePoint - 65 < 26) {\n return codePoint - 65;\n }\n\n if (codePoint - 97 < 26) {\n return codePoint - 97;\n }\n\n return base;\n }\n /**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\n\n\n function digitToBasic(digit, flag) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n }\n /**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\n\n\n function adapt(delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n\n for (;\n /* no initialization */\n delta > baseMinusTMin * tMax >> 1; k += base) {\n delta = floor(delta / baseMinusTMin);\n }\n\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n }\n /**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\n\n\n function decode(input) {\n // Don't use UCS-2\n var output = [],\n inputLength = input.length,\n out,\n i = 0,\n n = initialN,\n bias = initialBias,\n basic,\n j,\n index,\n oldi,\n w,\n k,\n digit,\n t,\n\n /** Cached calculation results */\n baseMinusT; // Handle the basic code points: let `basic` be the number of input code\n // points before the last delimiter, or `0` if there is none, then copy\n // the first basic code points to the output.\n\n basic = input.lastIndexOf(delimiter);\n\n if (basic < 0) {\n basic = 0;\n }\n\n for (j = 0; j < basic; ++j) {\n // if it's not a basic code point\n if (input.charCodeAt(j) >= 0x80) {\n error('not-basic');\n }\n\n output.push(input.charCodeAt(j));\n } // Main decoding loop: start just after the last delimiter if any basic code\n // points were copied; start at the beginning otherwise.\n\n\n for (index = basic > 0 ? basic + 1 : 0; index < inputLength;)\n /* no final expression */\n {\n // `index` is the index of the next character to be consumed.\n // Decode a generalized variable-length integer into `delta`,\n // which gets added to `i`. The overflow checking is easier\n // if we increase `i` as we go, then subtract off its starting\n // value at the end to obtain `delta`.\n for (oldi = i, w = 1, k = base;;\n /* no condition */\n k += base) {\n if (index >= inputLength) {\n error('invalid-input');\n }\n\n digit = basicToDigit(input.charCodeAt(index++));\n\n if (digit >= base || digit > floor((maxInt - i) / w)) {\n error('overflow');\n }\n\n i += digit * w;\n t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\n if (digit < t) {\n break;\n }\n\n baseMinusT = base - t;\n\n if (w > floor(maxInt / baseMinusT)) {\n error('overflow');\n }\n\n w *= baseMinusT;\n }\n\n out = output.length + 1;\n bias = adapt(i - oldi, out, oldi == 0); // `i` was supposed to wrap around from `out` to `0`,\n // incrementing `n` each time, so we'll fix that now:\n\n if (floor(i / out) > maxInt - n) {\n error('overflow');\n }\n\n n += floor(i / out);\n i %= out; // Insert `n` at position `i` of the output\n\n output.splice(i++, 0, n);\n }\n\n return ucs2encode(output);\n }\n /**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\n\n\n function encode(input) {\n var n,\n delta,\n handledCPCount,\n basicLength,\n bias,\n j,\n m,\n q,\n k,\n t,\n currentValue,\n output = [],\n\n /** `inputLength` will hold the number of code points in `input`. */\n inputLength,\n\n /** Cached calculation results */\n handledCPCountPlusOne,\n baseMinusT,\n qMinusT; // Convert the input in UCS-2 to Unicode\n\n input = ucs2decode(input); // Cache the length\n\n inputLength = input.length; // Initialize the state\n\n n = initialN;\n delta = 0;\n bias = initialBias; // Handle the basic code points\n\n for (j = 0; j < inputLength; ++j) {\n currentValue = input[j];\n\n if (currentValue < 0x80) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n\n handledCPCount = basicLength = output.length; // `handledCPCount` is the number of code points that have been handled;\n // `basicLength` is the number of basic code points.\n // Finish the basic string - if it is not empty - with a delimiter\n\n if (basicLength) {\n output.push(delimiter);\n } // Main encoding loop:\n\n\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next\n // larger one:\n for (m = maxInt, j = 0; j < inputLength; ++j) {\n currentValue = input[j];\n\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n } // Increase `delta` enough to advance the decoder's state to ,\n // but guard against overflow\n\n\n handledCPCountPlusOne = handledCPCount + 1;\n\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n error('overflow');\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (j = 0; j < inputLength; ++j) {\n currentValue = input[j];\n\n if (currentValue < n && ++delta > maxInt) {\n error('overflow');\n }\n\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer\n for (q = delta, k = base;;\n /* no condition */\n k += base) {\n t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\n if (q < t) {\n break;\n }\n\n qMinusT = q - t;\n baseMinusT = base - t;\n output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)));\n q = floor(qMinusT / baseMinusT);\n }\n\n output.push(stringFromCharCode(digitToBasic(q, 0)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n\n ++delta;\n ++n;\n }\n\n return output.join('');\n }\n /**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\n\n\n function toUnicode(input) {\n return mapDomain(input, function (string) {\n return regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string;\n });\n }\n /**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\n\n\n function toASCII(input) {\n return mapDomain(input, function (string) {\n return regexNonASCII.test(string) ? 'xn--' + encode(string) : string;\n });\n }\n /*--------------------------------------------------------------------------*/\n\n /** Define the public API */\n\n\n punycode = {\n /**\n * A string representing the current Punycode.js version number.\n * @memberOf punycode\n * @type String\n */\n 'version': '1.4.1',\n\n /**\n * An object of methods to convert from JavaScript's internal character\n * representation (UCS-2) to Unicode code points, and back.\n * @see \n * @memberOf punycode\n * @type Object\n */\n 'ucs2': {\n 'decode': ucs2decode,\n 'encode': ucs2encode\n },\n 'decode': decode,\n 'encode': encode,\n 'toASCII': toASCII,\n 'toUnicode': toUnicode\n };\n /** Expose `punycode` */\n // Some AMD build optimizers, like r.js, check for specific condition patterns\n // like the following:\n\n if (true) {\n !(__WEBPACK_AMD_DEFINE_RESULT__ = function () {\n return punycode;\n }.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else if (freeExports && freeModule) {\n if (module.exports == freeExports) {\n // in Node.js, io.js, or RingoJS v0.8.0+\n freeModule.exports = punycode;\n } else {\n // in Narwhal or RingoJS v0.7.0-\n for (key in punycode) {\n punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n }\n }\n } else {\n // in Rhino or a web browser\n root.punycode = punycode;\n }\n })(this);\n /* WEBPACK VAR INJECTION */\n\n }).call(exports, __webpack_require__(39)(module), __webpack_require__(7));\n /***/\n },\n /* 36 */\n\n /***/\n function (module, exports) {\n if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n } else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor;\n\n var TempCtor = function TempCtor() {};\n\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n };\n }\n /***/\n\n },\n /* 37 */\n\n /***/\n function (module, exports) {\n module.exports = function isBuffer(arg) {\n return arg && _typeof2(arg) === 'object' && typeof arg.copy === 'function' && typeof arg.fill === 'function' && typeof arg.readUInt8 === 'function';\n };\n /***/\n\n },\n /* 38 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /* WEBPACK VAR INJECTION */\n (function (global, process) {\n // Copyright Joyent, Inc. and other Node contributors.\n //\n // Permission is hereby granted, free of charge, to any person obtaining a\n // copy of this software and associated documentation files (the\n // \"Software\"), to deal in the Software without restriction, including\n // without limitation the rights to use, copy, modify, merge, publish,\n // distribute, sublicense, and/or sell copies of the Software, and to permit\n // persons to whom the Software is furnished to do so, subject to the\n // following conditions:\n //\n // The above copyright notice and this permission notice shall be included\n // in all copies or substantial portions of the Software.\n //\n // THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n // USE OR OTHER DEALINGS IN THE SOFTWARE.\n var formatRegExp = /%[sdj%]/g;\n\n exports.format = function (f) {\n if (!isString(f)) {\n var objects = [];\n\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function (x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n\n switch (x) {\n case '%s':\n return String(args[i++]);\n\n case '%d':\n return Number(args[i++]);\n\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n\n default:\n return x;\n }\n });\n\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n\n return str;\n }; // Mark that a method should not be used.\n // Returns a modified function which warns once by default.\n // If --no-deprecation is set, then it is a no-op.\n\n\n exports.deprecate = function (fn, msg) {\n // Allow for deprecating things in the process of starting up.\n if (isUndefined(global.process)) {\n return function () {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n if (process.noDeprecation === true) {\n return fn;\n }\n\n var warned = false;\n\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n\n warned = true;\n }\n\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n };\n\n var debugs = {};\n var debugEnviron;\n\n exports.debuglog = function (set) {\n if (isUndefined(debugEnviron)) debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n\n debugs[set] = function () {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function () {};\n }\n }\n\n return debugs[set];\n };\n /**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n\n /* legacy: obj, showHidden, depth, colors*/\n\n\n function inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n }; // legacy...\n\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n } // set default options\n\n\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n }\n\n exports.inspect = inspect; // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\n\n inspect.colors = {\n 'bold': [1, 22],\n 'italic': [3, 23],\n 'underline': [4, 24],\n 'inverse': [7, 27],\n 'white': [37, 39],\n 'grey': [90, 39],\n 'black': [30, 39],\n 'blue': [34, 39],\n 'cyan': [36, 39],\n 'green': [32, 39],\n 'magenta': [35, 39],\n 'red': [31, 39],\n 'yellow': [33, 39]\n }; // Don't use 'blue' not visible on cmd.exe\n\n inspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n };\n\n function stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return \"\\x1B[\" + inspect.colors[style][0] + 'm' + str + \"\\x1B[\" + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n }\n\n function stylizeNoColor(str, styleType) {\n return str;\n }\n\n function arrayToHash(array) {\n var hash = {};\n array.forEach(function (val, idx) {\n hash[val] = true;\n });\n return hash;\n }\n\n function formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect && value && isFunction(value.inspect) && // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect && // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n\n return ret;\n } // Primitive types cannot have properties\n\n\n var primitive = formatPrimitive(ctx, value);\n\n if (primitive) {\n return primitive;\n } // Look up the keys of the object.\n\n\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n } // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n\n\n if (isError(value) && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n } // Some type of object without properties can be shortcutted.\n\n\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '',\n array = false,\n braces = ['{', '}']; // Make Array say that they are Array\n\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n } // Make functions say that they are functions\n\n\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n } // Make RegExps say that they are RegExps\n\n\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n } // Make dates with properties first say the date\n\n\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n } // Make error with message first say the error\n\n\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n var output;\n\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function (key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n return reduceToSingleString(output, base, braces);\n }\n\n function formatPrimitive(ctx, value) {\n if (isUndefined(value)) return ctx.stylize('undefined', 'undefined');\n\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '').replace(/'/g, \"\\\\'\").replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n\n if (isNumber(value)) return ctx.stylize('' + value, 'number');\n if (isBoolean(value)) return ctx.stylize('' + value, 'boolean'); // For some reason typeof null is \"object\", so special case here.\n\n if (isNull(value)) return ctx.stylize('null', 'null');\n }\n\n function formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n }\n\n function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, String(i), true));\n } else {\n output.push('');\n }\n }\n\n keys.forEach(function (key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, key, true));\n }\n });\n return output;\n }\n\n function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || {\n value: value[key]\n };\n\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function (line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function (line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n\n name = JSON.stringify('' + key);\n\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\").replace(/\\\\\"/g, '\"').replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n }\n\n function reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function (prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] + (base === '' ? '' : base + '\\n ') + ' ' + output.join(',\\n ') + ' ' + braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n } // NOTE: These type checking functions intentionally don't use `instanceof`\n // because it is fragile and can be easily faked with `Object.create()`.\n\n\n function isArray(ar) {\n return Array.isArray(ar);\n }\n\n exports.isArray = isArray;\n\n function isBoolean(arg) {\n return typeof arg === 'boolean';\n }\n\n exports.isBoolean = isBoolean;\n\n function isNull(arg) {\n return arg === null;\n }\n\n exports.isNull = isNull;\n\n function isNullOrUndefined(arg) {\n return arg == null;\n }\n\n exports.isNullOrUndefined = isNullOrUndefined;\n\n function isNumber(arg) {\n return typeof arg === 'number';\n }\n\n exports.isNumber = isNumber;\n\n function isString(arg) {\n return typeof arg === 'string';\n }\n\n exports.isString = isString;\n\n function isSymbol(arg) {\n return _typeof2(arg) === 'symbol';\n }\n\n exports.isSymbol = isSymbol;\n\n function isUndefined(arg) {\n return arg === void 0;\n }\n\n exports.isUndefined = isUndefined;\n\n function isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n }\n\n exports.isRegExp = isRegExp;\n\n function isObject(arg) {\n return _typeof2(arg) === 'object' && arg !== null;\n }\n\n exports.isObject = isObject;\n\n function isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n }\n\n exports.isDate = isDate;\n\n function isError(e) {\n return isObject(e) && (objectToString(e) === '[object Error]' || e instanceof Error);\n }\n\n exports.isError = isError;\n\n function isFunction(arg) {\n return typeof arg === 'function';\n }\n\n exports.isFunction = isFunction;\n\n function isPrimitive(arg) {\n return arg === null || typeof arg === 'boolean' || typeof arg === 'number' || typeof arg === 'string' || _typeof2(arg) === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n }\n\n exports.isPrimitive = isPrimitive;\n exports.isBuffer = __webpack_require__(37);\n\n function objectToString(o) {\n return Object.prototype.toString.call(o);\n }\n\n function pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n }\n\n var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; // 26 Feb 16:19:34\n\n function timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()), pad(d.getMinutes()), pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n } // log is just a thin wrapper to console.log that prepends a timestamp\n\n\n exports.log = function () {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n };\n /**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\n\n\n exports.inherits = __webpack_require__(36);\n\n exports._extend = function (origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n var keys = Object.keys(add);\n var i = keys.length;\n\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n\n return origin;\n };\n\n function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n }\n /* WEBPACK VAR INJECTION */\n\n }).call(exports, __webpack_require__(7), __webpack_require__(5));\n /***/\n },\n /* 39 */\n\n /***/\n function (module, exports) {\n module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n };\n /***/\n\n }\n /******/\n ])\n );\n});","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is'); // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n\n\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}","import { css } from \"@emotion/react\";\nimport * as Feather from \"react-feather\";\n\nconst toPascalCase = (text) => {\n return text.replace(/(^\\w|-\\w)/g, clearAndUpper);\n};\n\nconst clearAndUpper = (text) => {\n return text.replace(/-/, \"\").toUpperCase();\n};\n\nconst Icon = ({ name }) => {\n const SelectedIcon = Feather[toPascalCase(name)];\n return (\n \n );\n};\n\nexport default Icon;\n","import { useMutation, useQuery, useQueryClient } from \"react-query\";\nimport { apiGet, apiPost } from \"@shared/queryHooks/api\";\n\nconst getJobBoardJob = async ({ jobId, organizationSlug }) => {\n if (jobId != undefined && organizationSlug != undefined) {\n return await apiGet({ path: `/public/organizations/${organizationSlug}/jobs/${jobId}` });\n }\n};\n\nconst applyForJob = async ({\n jobId,\n organizationSlug,\n application: { candidate, questionResponses, createdVia, src, source },\n recaptchaToken,\n}) => {\n if (jobId != undefined && organizationSlug != undefined) {\n return await apiPost({\n path: `/public/organizations/${organizationSlug}/jobs/${jobId}/apply`,\n variables: { candidate, questionResponses, createdVia, src, source, recaptchaToken },\n });\n }\n};\n\n/* Hooks\n--===================================================-- */\nfunction useJobBoardJob({\n jobId,\n organizationSlug,\n}): {\n status: any;\n data: any;\n error: any;\n isFetching: boolean;\n isLoading: boolean;\n} {\n return useQuery([\"jobBoardJob\", jobId], () => getJobBoardJob({ jobId, organizationSlug }), {\n refetchOnWindowFocus: false,\n });\n}\n\nfunction useApplyForJob() {\n const queryClient = useQueryClient();\n return useMutation(applyForJob, {\n onSuccess: (data, mutationVariables) => {\n window.logger(\"[useJobBoard] useApplyForJob\", { data, mutationVariables });\n queryClient.invalidateQueries([\"jobBoardJob\", mutationVariables.jobId]);\n },\n // throwOnError: true,\n });\n}\n\nexport { useJobBoardJob, useApplyForJob };\n","import React from \"react\";\nimport FormInput from \"@ats/src/components/forms/FormInput\";\nimport FormTextarea from \"@ats/src/components/forms/FormTextarea\";\nimport FormSelect from \"@ats/src/components/forms/FormSelect\";\nimport FormUploader from \"@ats/src/components/forms/FormUploader\";\n\nimport {\n MEGABYTE_IN_BYTES,\n isAllowedFileSize,\n isAllowedFileType,\n} from \"@ats/src/lib/utils/fileUploads\";\nimport { convertArrayToSelectOptions } from \"@shared/lib/utils\";\n\nexport default function QuestionResponse(props: {\n question: any;\n questionResponse: any;\n errors: any;\n index: number;\n handleQuestionResponseChange: (index, values, errors) => void;\n clearFixedErrors: (fieldName, errors) => any;\n}) {\n const { question, questionResponse, errors } = props;\n let customQuestionsErrors =\n errors && errors.customQuestionsErrors ? errors.customQuestionsErrors : null;\n const { id, questionText, placeholderText, requirementSetting, options } = question;\n const name = `${id}`;\n const questionResponseBody = questionResponse ? questionResponse.body : \"\";\n const questionSelectedOptions = questionResponse ? questionResponse.responseArray : \"\";\n const fileToUpload = questionResponse ? questionResponse.customFile : undefined;\n const label = questionText;\n const isRequired = requirementSetting === \"required\";\n const selectOptions = convertArrayToSelectOptions(options.data);\n const maxFileSize = MEGABYTE_IN_BYTES * 10;\n\n const handleQuestionResponseChange = (name, value) => {\n const { question, index, errors } = props;\n const response = { questionId: question.id, body: value };\n props.handleQuestionResponseChange(index, response, errors);\n };\n\n const handleSelectChange = (name, value) => {\n const { question, index, errors } = props;\n window.logger(\"%c[QuestionResponse] handleSelectChange\", \"color: #1976D2\", { name, value });\n props.handleQuestionResponseChange(index, { questionId: question.id, body: value }, errors);\n };\n\n const handleMultiSelectChange = (name, value) => {\n const { question, index, errors } = props;\n window.logger(\"%c[QuestionResponse] handleSelectChange\", \"color: #1976D2\", { name, value });\n const selections = value.map((item) => item.value);\n const response = { questionId: question.id, responseArray: selections };\n props.handleQuestionResponseChange(index, response, errors);\n };\n\n /* Handle File Input & Error\n --===================================================-- */\n const handleFileInputChange = (value) => {\n const { question, index } = props;\n window.logger(\"%c[QuestionResponse] handleFileInputChange\", \"color: #1976D2\", { name, value });\n const errors = props.clearFixedErrors(\"file\", props.errors);\n const response = { questionId: question.id, customFile: value.fileToUpload };\n props.handleQuestionResponseChange(index, response, errors);\n };\n\n const onInvalidFile = (file, expectedFileType) => {\n const { question, index } = props;\n window.logger(\"%c[QuestionResponse] onInvalidFile\", \"color: #1976D2\", {\n file,\n expectedFileType,\n });\n const errors = file ? invalidFileError(file) : props.errors;\n const response = { questionId: question.id, customFile: undefined };\n props.handleQuestionResponseChange(index, response, errors);\n };\n\n const invalidFileError = (file: File) => {\n let fileError: { file: string[] };\n if (!isAllowedFileType(\"combined\", file.type)) {\n fileError = {\n file: [window.APP_TRANSLATIONS.custom_question_file_type_error],\n };\n } else if (!isAllowedFileSize(maxFileSize, file.size)) {\n fileError = {\n file: [window.APP_TRANSLATIONS.custom_question_file_size_error],\n };\n }\n return fileError;\n };\n\n /* Return Question Component by Kind\n --===================================================-- */\n if (question.kind === \"text_short\") {\n return (\n \n );\n } else if (question.kind === \"text_long\") {\n return (\n \n );\n } else if (question.kind === \"single_select\") {\n return (\n \n );\n } else if (question.kind === \"multi_select\") {\n return (\n \n );\n } else if (question.kind === \"file_upload\") {\n return (\n \n undefined}\n loading={false}\n errors={customQuestionsErrors}\n isRequired={isRequired}\n requiredLabel={window.APP_TRANSLATIONS.required}\n />\n \n );\n } else {\n return null;\n }\n}\n","import React from \"react\";\nimport ReCAPTCHA from \"react-google-recaptcha\";\nimport isEmpty from \"lodash/isEmpty\";\nimport FormContainer from \"@ats/src/components/forms/FormContainer\";\nimport FormInput from \"@ats/src/components/forms/FormInput\";\nimport FormTextarea from \"@ats/src/components/forms/FormTextarea\";\nimport FormUploader from \"@ats/src/components/forms/FormUploader\";\nimport Button from \"@ats/src/components/shared/Button\";\n\nimport { removeHttpPrefix, removeKnownUrlPrefix } from \"@shared/lib/utils\";\n\nimport QuestionResponse from \"../components/QuestionResponse\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nfunction ApplicationForm(props) {\n const {\n questions,\n errors,\n questionResponsesState,\n handleQuestionResponseChange,\n recaptchaRef,\n } = props;\n\n const onSubmit = (event) => {\n event.preventDefault();\n props.onSubmit();\n };\n\n const customQuestionNodes = (questions) => {\n if (!questions || questions.length === 0) return null;\n\n return questions.map(\n (question, index) => (\n \n ),\n // undefined,\n );\n };\n\n const onInvalidFile = (file, expectedFileType) => {\n props.onInputChange({\n resumeFile: undefined,\n errors: { resume: [window.APP_TRANSLATIONS.resume_error] },\n });\n };\n\n const inputs = () => {\n const {\n errors,\n name,\n email,\n phone,\n location,\n linkedinUrl,\n githubUrl,\n twitterUrl,\n dribbbleUrl,\n websiteUrl,\n resumeFile,\n settings,\n } = props;\n\n if (settings === undefined) return [];\n\n return [\n {\n name: \"name\",\n label: window.APP_TRANSLATIONS.name_label,\n placeholder: \"\",\n value: name,\n errors: errors,\n requirementSetting: settings[\"name\"],\n type: \"text\",\n component: \"FormInput\",\n },\n {\n name: \"email\",\n label: window.APP_TRANSLATIONS.email_address_label,\n placeholder: \"\",\n value: email,\n errors: errors,\n requirementSetting: settings[\"email\"],\n type: \"email\",\n component: \"FormInput\",\n },\n {\n name: \"phone\",\n label: window.APP_TRANSLATIONS.phone_number_label,\n placeholder: \"\",\n value: phone,\n errors: errors,\n requirementSetting: settings[\"phone\"],\n type: \"text\",\n component: \"FormInput\",\n },\n {\n name: \"location\",\n label: window.APP_TRANSLATIONS.location_label,\n placeholder: window.APP_TRANSLATIONS.location_placeholder,\n value: location,\n errors: errors,\n requirementSetting: settings[\"location\"],\n type: \"text\",\n component: \"FormInput\",\n },\n {\n name: \"linkedinUrl\",\n label: window.APP_TRANSLATIONS.linkedin_label,\n placeholder: \"...\",\n value: removeKnownUrlPrefix(linkedinUrl) || \"\",\n errors: errors,\n requirementSetting: settings[\"linkedinUrl\"],\n type: \"text\",\n pretext: \"https://linkedin.com/in/\",\n component: \"FormInput\",\n },\n {\n name: \"twitterUrl\",\n label: window.APP_TRANSLATIONS.twitter_label,\n placeholder: \"...\",\n value: removeKnownUrlPrefix(twitterUrl) || \"\",\n errors: errors,\n requirementSetting: settings[\"twitterUrl\"],\n type: \"text\",\n pretext: \"https://twitter.com/\",\n component: \"FormInput\",\n },\n {\n name: \"githubUrl\",\n label: window.APP_TRANSLATIONS.github_label,\n placeholder: \"...\",\n value: removeKnownUrlPrefix(githubUrl) || \"\",\n errors: errors,\n requirementSetting: settings[\"githubUrl\"],\n type: \"text\",\n pretext: \"https://github.com/\",\n component: \"FormInput\",\n },\n {\n name: \"dribbbleUrl\",\n label: window.APP_TRANSLATIONS.dribbble_label,\n placeholder: \"...\",\n value: removeKnownUrlPrefix(dribbbleUrl) || \"\",\n errors: errors,\n requirementSetting: settings[\"dribbbleUrl\"],\n type: \"text\",\n pretext: \"https://dribbble.com/\",\n component: \"FormInput\",\n },\n {\n name: \"websiteUrl\",\n label: window.APP_TRANSLATIONS.website_label,\n placeholder: \"...\",\n value: removeHttpPrefix(websiteUrl) || \"\",\n errors: errors,\n requirementSetting: settings[\"websiteUrl\"],\n type: \"text\",\n pretext: \"https://\",\n component: \"FormInput\",\n },\n {\n name: \"resumeFile\",\n label: window.APP_TRANSLATIONS.resume_label,\n placeholder: window.APP_TRANSLATIONS.resume_placeholder,\n value: resumeFile,\n errors: errors,\n requirementSetting: settings[\"resume\"],\n type: \"file\",\n component: \"FileUpload\",\n },\n ];\n };\n\n const recaptchaElement = (\n \n \n \n );\n\n const standardQuestions = () => {\n const inputsArr = inputs();\n\n return inputsArr.map((input) => {\n const {\n name,\n placeholder,\n label,\n value,\n type,\n pretext,\n component,\n requirementSetting,\n errors,\n } = input;\n\n if (requirementSetting === \"hidden\") return null;\n\n if (component === \"FormInput\")\n return (\n \n );\n\n if (component === \"FormTextarea\")\n return (\n \n );\n\n if (component === \"FileUpload\") {\n return (\n \n undefined}\n />\n \n );\n }\n });\n };\n\n const clearFixedErrors = (fieldName, errors) => {\n // window.logger(\"%c[ApplicationForm] clearFixedErrors\", \"color: #1976D2\", {\n // fieldName,\n // errors,\n // props,\n // });\n\n if (errors != undefined && errors[fieldName]) {\n // Mark error as fixed for this field\n delete errors[fieldName];\n }\n if (isEmpty(errors)) {\n errors = undefined;\n }\n // console.log(\"%c[ApplicationForm] clearFixedErrors\", \"color: #1976D2\", { errors });\n return errors;\n };\n\n const handleInputChange = (name, value) => {\n // console.warn('[ApplicationForm] handleInputChange name', name);\n let val = value;\n const errors = clearFixedErrors(name, props.errors);\n\n if (name === \"linkedinUrl\") {\n val = removeKnownUrlPrefix(val);\n } else if (name === \"websiteUrl\") {\n val = removeHttpPrefix(val);\n }\n\n props.onInputChange({ [name]: val, errors });\n };\n\n /* Handle File Input Change\n --===================================================-- */\n const handleFileInputChange = ({ fileToUpload }) => {\n console.log(\"[ApplicationForm] handleFileInputChange fileToUpload\", fileToUpload);\n\n if (fileToUpload) {\n const errors = clearFixedErrors(\"resume\", props.errors);\n props.onInputChange({ resumeFile: fileToUpload, errors });\n }\n };\n\n const submitButton = (\n \n {window.APP_TRANSLATIONS.submit_application}\n \n );\n\n return (\n <>\n {window.APP_TRANSLATIONS.apply_here}\n \n {standardQuestions()}\n {customQuestionNodes(questions)}\n {recaptchaElement}\n \n \n );\n}\n\nexport default ApplicationForm;\n\n/* Styled Components\n======================================================= */\nconst Styled: any = {};\n\nStyled.Title = styled.h2((props: any) => {\n const t: any = props.theme;\n return css`\n label: ApplicationForm_Title;\n ${[t.mb(6), t.mt(1), t.text.h2, t.text.bold]}\n color: ${t.color.black};\n `;\n});\n\nStyled.Button = styled(Button)((props) => {\n const t: any = props.theme;\n return css`\n label: ApplicationForm_Button;\n ${t.mt(2)}\n `;\n});\n\nStyled.RecaptchaContainer = styled.div`\n label: ApplicationForm_RecaptchaContainer;\n\n .grecaptcha-badge {\n visibility: hidden;\n }\n`;\n","import React from \"react\";\nimport Joi from \"joi-browser\";\nimport isEmpty from \"lodash/isEmpty\";\nimport queryString from \"query-string\";\n\nimport { DirectUpload } from \"activestorage\";\nimport { useJobBoardJob, useApplyForJob } from \"@shared/queryHooks/jobBoard/useJobBoard\";\nimport { objectHasEmptyValues } from \"@shared/lib/utils\";\n\nimport ApplicationForm from \"./ApplicationForm\";\nimport EmptyState from \"@ats/src/components/shared/EmptyState\";\nimport LoadingIndicator from \"@ats/src/components/shared/LoadingIndicator\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\n/* REDUCER\n--===================================================-- */\nfunction questionResponsesReducer(state, action) {\n switch (action.type) {\n case \"SET_QUESTION_RESPONSE\": {\n return { ...state, [action.payload.questionId]: action.payload };\n }\n case \"DELETE_QUESTION_RESPONSE\": {\n const newState = { ...state };\n delete newState[action.payload.questionId];\n return newState;\n }\n default: {\n throw new Error(`Unhandled action type: ${action.type}`);\n }\n }\n}\n\nfunction ApplyApp(props) {\n const [submitted, setSubmitted] = React.useState(false);\n const [uploadingFile, setUploadingFile] = React.useState(false);\n const [errors, setErrors] = React.useState(null);\n const [questionResponsesState, questionResponsesDispatch] = React.useReducer(\n questionResponsesReducer,\n {},\n );\n\n const { src, source } = queryString.parse(location.search);\n const recaptchaRef = React.useRef(null);\n\n // window.logger(\"%c[ApplyApp] RENDER\", \"color: #1976D2\", { props, location, src });\n\n const [state, setState] = React.useState({\n name: \"\",\n email: \"\",\n phone: \"\",\n location: \"\",\n photo: \"\",\n coverLetter: \"\",\n linkedinUrl: \"\",\n twitterUrl: \"\",\n githubUrl: \"\",\n dribbbleUrl: \"\",\n websiteUrl: \"\",\n success: false,\n errors: null,\n resumeFile: undefined, // needs to be undefined for Joi\n });\n\n const jobId = window.inflowJobId;\n const organizationSlug = window.inflowOrganizationSlug;\n\n const { data: job, isLoading } = useJobBoardJob({\n jobId,\n organizationSlug,\n });\n\n const { mutate: applyForJob, isLoading: isLoadingApplyForJob } = useApplyForJob();\n\n if (isLoading === true) {\n return (\n \n \n \n );\n }\n\n const handleInputChange = ({ errors, ...inputValue }) => {\n setState({ ...state, ...inputValue });\n setErrors(errors);\n };\n\n const handleQuestionResponseChange = (questionIndex, response, errors) => {\n // window.logger(\"%c[ApplyApp] handleQuestionResponseChange\", \"color: #1976D2\", { response });\n\n if (errors != undefined && errors.customQuestionsErrors != undefined) {\n delete errors.customQuestionsErrors;\n }\n\n // setState({ ...state, errors: isEmpty(errors) ? undefined : errors });\n setErrors(isEmpty(errors) ? undefined : errors);\n //check for responses updated with null/empty/undefined body/array/file\n const invalidResponse = objectHasEmptyValues(response);\n\n questionResponsesDispatch({\n type: \"SET_QUESTION_RESPONSE\",\n payload: response,\n });\n //if invalid, update question state (above) so UI updates correctly\n //then delete invalid response to ensure required questions error\n if (invalidResponse) {\n questionResponsesDispatch({\n type: \"DELETE_QUESTION_RESPONSE\",\n payload: response,\n });\n }\n };\n\n /* onSubmit\n --===================================================-- */\n const onSubmit = async () => {\n const recaptchaToken = window.IS_TEST_ENV ? null : await recaptchaRef.current.executeAsync();\n\n const {\n name,\n email,\n phone,\n location,\n coverLetter,\n linkedinUrl,\n githubUrl,\n twitterUrl,\n dribbbleUrl,\n websiteUrl,\n resumeFile,\n } = state;\n\n if (isLoadingApplyForJob) {\n return;\n }\n\n let joiObject = {\n name: Joi.string().required(),\n email: Joi.string().email().required(),\n resumeFile: Joi.any().required(),\n };\n\n let objectToValidate = { name, email, resumeFile };\n\n if (job.settings[\"resume\"] !== \"required\") {\n delete joiObject.resumeFile;\n delete objectToValidate.resumeFile;\n }\n\n // window.logger(\"%c[ApplyApp] onSubmit\", \"color: #1976D2\", {\n // questionResponses: Object.values(questionResponsesState),\n // resumeFile,\n // settings: job.settings,\n // objectToValidate,\n // joiObject,\n // recaptchaToken,\n // });\n\n const schema = Joi.object().keys(joiObject);\n\n Joi.validate(objectToValidate, schema, { abortEarly: false }, (err, value) => {\n let errors;\n let questionsWithErrors = job.questions.filter((question, index) => {\n // console.log(\"%c[ApplyApp] questionsWithErrors\", \"color: #1976D2\", { question });\n return (\n question.requirementSetting === \"required\" &&\n (questionResponsesState[question.id] == undefined ||\n isEmpty(questionResponsesState[question.id]))\n // (question.questionResponse == undefined || isEmpty(question.questionResponse.body))\n );\n });\n\n if (err != undefined) {\n errors = {};\n console.error(\"[ApplyApp] onSubmit err.details\", err.details);\n\n err.details.forEach((index) => {\n let key = index.context.key;\n let message = index.message.replace(`\"${key}\" `, \"\");\n errors[key] = [message];\n });\n } else if (questionsWithErrors.length > 0) {\n errors = { customQuestionsErrors: {} };\n\n questionsWithErrors.forEach((question) => {\n errors.customQuestionsErrors[question.id] = [\"is required\"];\n });\n } else {\n handleSubmission({\n candidate: {\n name,\n email,\n phone,\n location,\n coverLetter,\n linkedinUrl,\n githubUrl,\n twitterUrl,\n dribbbleUrl,\n websiteUrl,\n },\n resumeFile,\n questionResponsesState,\n createdVia: \"created_via_job_board\",\n src,\n source, // pulled from the URL ?src=param\n recaptchaToken,\n });\n }\n // setState({ ...state, errors });\n setErrors(errors);\n recaptchaRef?.current?.reset();\n });\n };\n\n const handleSubmission = async ({\n candidate,\n resumeFile,\n questionResponsesState,\n createdVia,\n src,\n source,\n recaptchaToken,\n }) => {\n const fileUploadQuestions = job.questions.filter((question) => question.kind === \"file_upload\");\n let responses;\n if (!isEmpty(fileUploadQuestions)) {\n responses = await handleCustomFileUploads(fileUploadQuestions, questionResponsesState);\n } else {\n responses = Object.values(questionResponsesState);\n }\n\n if (resumeFile) {\n // Upload Resume, then postRequest with returned resumeSignedId\n const resumeSignedId = await directUploadFile(resumeFile);\n createCandidate({\n candidate: { ...candidate, resumeSignedId: resumeSignedId },\n questionResponses: responses,\n createdVia,\n src,\n source,\n recaptchaToken,\n });\n } else {\n createCandidate({\n candidate,\n questionResponses: responses,\n createdVia,\n src,\n source,\n recaptchaToken,\n });\n }\n };\n\n const createCandidate = ({\n candidate,\n questionResponses,\n createdVia,\n src,\n source,\n recaptchaToken,\n }) => {\n // window.logger(\"%c[ApplyApp] createCandidate \", \"color: #1976D2\", {\n // jobId,\n // organizationSlug,\n // application: {\n // candidate,\n // questionResponses,\n // },\n // });\n\n applyForJob(\n {\n jobId,\n organizationSlug,\n application: {\n candidate,\n questionResponses,\n createdVia,\n src,\n source,\n },\n recaptchaToken,\n },\n {\n onSuccess: (data) => {\n setSubmitted(true);\n setUploadingFile(false);\n },\n onError: (response) => {\n setErrors((response as any).data.errors);\n setUploadingFile(false);\n recaptchaRef?.current?.reset();\n },\n },\n );\n };\n\n /* UPLOAD HANDLERS */\n const directUploadFile = async (file) => {\n setUploadingFile(true);\n const railsDirectUploadUrl = `${window.APP_ATS_ROOT_URL}/api/v1/public/rails/active_storage/direct_uploads`;\n const upload = new DirectUpload(file, railsDirectUploadUrl, this);\n\n return new Promise((resolve, reject) => {\n upload.create((error, blob) => {\n if (error) {\n console.error(`[ApplyApp] directUploadFile error while uploading ${file.name}`, error);\n reject(error);\n } else {\n console.log(`%c[ApplyApp] directUploadFile ${file.name} blob`, \"color: #1976D2\", blob);\n resolve(blob.signed_id);\n }\n });\n });\n };\n\n const handleCustomFileUploads = async (fileUploadQuestions, responsesState) => {\n let fileUploads = [];\n fileUploadQuestions.forEach((question) => {\n if (responsesState[question.id] !== undefined && !isEmpty(responsesState[question.id])) {\n fileUploads.push(questionResponsesState[question.id]);\n }\n });\n // iterate through responses with files and upload each\n const fileUploadsResponses = {};\n for (const upload of fileUploads) {\n const signedId = await directUploadFile(upload.customFile);\n // assign returned signedId as the value of customFile\n const newResponse = { questionId: upload.questionId, customFile: signedId };\n fileUploadsResponses[upload.questionId] = newResponse;\n }\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign#merging_objects_with_same_properties\n const updatedQuestionResponsesState = Object.assign({}, responsesState, fileUploadsResponses);\n return Object.values(updatedQuestionResponsesState);\n };\n\n /* Handle successful submission */\n if (submitted) {\n return (\n \n );\n }\n\n return (\n <>\n \n \n \n \n This site is protected by reCAPTCHA and the Google{\" \"}\n Privacy Policy and{\" \"}\n Terms of Service apply.\n \n \n );\n}\n\nexport default ApplyApp;\n\n/* Styled Components\n======================================================= */\nconst Styled: any = {};\n\nStyled.Container = styled.div((props: any) => {\n const t: any = props.theme;\n return css`\n label: ApplyApp;\n ${[t.text.sm, t.p(4), t.rounded.md]}\n border: 1px solid ${t.color.gray[200]};\n background: ${t.color.white};\n width: 100%;\n\n ${t.mq[\"lg\"]} {\n ${[t.p(6), t.pb(8)]}\n }\n `;\n});\n\nStyled.Loader = styled.div((props: any) => {\n const t: any = props.theme;\n return css`\n label: ApplyApp_Loader;\n ${t.rounded.md}\n border: 1px solid ${t.color.gray[200]};\n background: ${t.color.white};\n width: 100%;\n `;\n});\n\nStyled.Recaptcha = styled.p((props: any) => {\n const t: any = props.theme;\n return css`\n label: ApplyApp_Recaptcha;\n ${[t.text.xs, t.mt(8)]}\n color: ${t.color.gray[600]};\n a:hover {\n color: ${t.color.black};\n }\n `;\n});\n","// ./src/index.js\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\n\n// import ApplyAppWrapper from \"@jobBoard/src/views/ApplyApp/wrapper.js\";\n// import store from \"@jobBoard/src/lib/store\";\n\nimport { QueryClient, QueryClientProvider } from \"react-query\";\nimport { ThemeProvider } from \"@emotion/react\";\nimport theme from \"@ats/styles/theme\";\nimport lightTheme from \"@shared/styles/lightTheme\";\n\nimport ApplyApp from \"@jobBoard/src/views/ApplyApp\";\n\nfunction App(props) {\n const queryClient = new QueryClient();\n\n return (\n \n \n \n \n \n );\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n if (document.getElementById(\"apply\")) {\n const render = (Component = App) => {\n ReactDOM.render(, document.getElementById(\"apply\"));\n };\n\n render(undefined);\n }\n});\n","const fileTypes = {\n image: [\"image/png\", \"image/jpeg\", \"image/jpg\", \"image/svg+xml\"],\n document: [\n \"application/pdf\",\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\n ],\n excel: [\n \"application/vnd.ms-excel\",\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\n ],\n csv: [\"text/csv\"],\n text: [\"text/plain\"],\n audio: [\n \"audio/mpeg\",\n \"audio/ogg\",\n \"audio/wav\",\n \"audio/x-wav\", // Firefox & Safari MIME type for .wav files\n \"video/ogg\", // Firefox identifies audio/ogg files as video/ogg \n ],\n};\n\nconst customQuestionUploadFileTypes = [...fileTypes.image, ...fileTypes.document, ...fileTypes.excel, ...fileTypes.csv, ...fileTypes.text, ...fileTypes.audio];\n\nfileTypes[\"combined\"] = customQuestionUploadFileTypes;\n\nexport type FileTypes = \"image\" | \"document\" | \"excel\" | \"csv\" | \"text\" | \"combined\" | \"any\";\n\nexport const KILOBYTE_IN_BYTES = 1024;\nexport const MEGABYTE_IN_KILOBYTES = 1024;\nexport const MEGABYTE_IN_BYTES = KILOBYTE_IN_BYTES * MEGABYTE_IN_KILOBYTES;\n\nexport const isAllowedFileType = (expectedFileType, actualFileType) => {\n if (expectedFileType === \"any\") return true;\n\n return expectedFileType === undefined\n ? true\n : fileTypes[expectedFileType].includes(actualFileType);\n};\n\nexport const isDocx = (contentType) => {\n return [\"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"].includes(\n contentType,\n );\n};\n\nexport const isAllowedFileSize = (maxFileSize, actualFileSize) => {\n if (!maxFileSize) return true;\n return actualFileSize <= maxFileSize;\n};\n","var STATE_DELIMITER = '.';\nvar EMPTY_ACTIVITY_MAP = {};\nvar DEFAULT_GUARD_TYPE = 'xstate.guard';\nvar TARGETLESS_KEY = '';\nexport { DEFAULT_GUARD_TYPE, EMPTY_ACTIVITY_MAP, STATE_DELIMITER, TARGETLESS_KEY };","import { css } from \"@emotion/react\";\n\nconst baseColors = {\n white: '#FFFFFF',\n gray: {\n 50: '#FAFAFA',\n 100: '#F5F5F5',\n 200: '#E5E5E5',\n 300: '#D4D4D4',\n 400: '#A3A3A3',\n 500: '#737373',\n 600: '#525252',\n 700: '#404040',\n 800: '#262626',\n 900: '#171717',\n },\n black: '#000000',\n}\n\nconst color = {\n data: [\n \"#fd7f6f\",\n \"#7eb0d5\",\n \"#b2e061\",\n \"#bd7ebe\",\n \"#ffb55a\",\n \"#ffee65\",\n \"#beb9db\",\n \"#fdcce5\",\n \"#8bd3c7\",\n\n // \"#003f5c\",\n // \"#2f4b7c\",\n // \"#665191\",\n // \"#a05195\",\n // \"#d45087\",\n // \"#f95d6a\",\n // \"#ff7c43\",\n // \"#ffa600\",\n ],\n ...baseColors,\n\n orange: {\n 200: \"#EBD7B5\",\n },\n red: {\n 100: \"#FEE2E2\",\n 200: \"#FECACA\",\n 300: \"#FCA5A5\",\n 400: \"#F87171\",\n 500: \"#EF4444\",\n 600: \"#DC2626\",\n 700: \"#B91C1C\",\n },\n};\n\nconst spacing = {\n \"0\": \"0px\",\n px: \"1px\",\n \"1\": \"0.25rem\",\n \"2\": \"0.5rem\",\n \"3\": \"0.75rem\",\n \"4\": \"1rem\",\n \"5\": \"1.25rem\",\n \"6\": \"1.5rem\",\n \"8\": \"2rem\",\n \"10\": \"2.5rem\",\n \"12\": \"3rem\",\n \"16\": \"4rem\",\n \"20\": \"5rem\",\n \"24\": \"6rem\",\n \"32\": \"8rem\",\n \"40\": \"10rem\",\n \"48\": \"12rem\",\n \"56\": \"14rem\",\n \"64\": \"16rem\",\n auto: \"auto\",\n};\n\nfunction spacingFromSize(size) {\n let sizeString = size.toString();\n if (sizeString.charAt(0) === \"-\") {\n return \"-\" + spacing[sizeString.substr(1)];\n } else return spacing[sizeString];\n}\n\nconst typeScale = {\n xs: css`\n font-size: 0.75rem;\n `,\n sm: css`\n font-size: 0.875rem;\n `,\n base: css`\n font-size: 1rem;\n `,\n lg: css`\n font-size: 1.125rem;\n `,\n xl: css`\n font-size: 1.25rem;\n `,\n xxl: css`\n font-size: 1.5rem;\n `,\n xxxl: css`\n font-size: 1.875rem;\n `,\n};\n\nconst breakpoints: { [index: string]: number } = {\n md: 480,\n lg: 768,\n xl: 1024,\n};\n\nconst mq = Object.keys(breakpoints)\n .map((key) => [key, breakpoints[key]] as [string, number])\n .reduce((prev, [key, breakpoint]) => {\n prev[key] = `@media (min-width: ${breakpoint}px)`;\n return prev;\n }, {} as { [index: string]: string });\n\n\nconst theme = {\n color,\n spacing,\n mq,\n\n // Size\n h: function (size) {\n return css`\n height: ${spacing[size.toString()]};\n `;\n },\n w: function (size) {\n return css`\n width: ${spacing[size.toString()]};\n `;\n },\n\n // Position\n l: function (size) {\n return css`\n left: ${spacingFromSize(size)};\n `;\n },\n r: function (size) {\n return css`\n right: ${spacingFromSize(size)};\n `;\n },\n t: function (size) {\n return css`\n top: ${spacingFromSize(size)};\n `;\n },\n b: function (size) {\n return css`\n bottom: ${spacingFromSize(size)};\n `;\n },\n\n // Margins\n m: function (size) {\n return css`\n margin: ${spacingFromSize(size)};\n `;\n },\n ml: function (size) {\n return css`\n margin-left: ${spacingFromSize(size)};\n `;\n },\n mr: function (size) {\n return css`\n margin-right: ${spacingFromSize(size)};\n `;\n },\n mt: function (size) {\n return css`\n margin-top: ${spacingFromSize(size)};\n `;\n },\n mb: function (size) {\n return css`\n margin-bottom: ${spacingFromSize(size)};\n `;\n },\n mx: function (size) {\n return css`\n margin-left: ${spacingFromSize(size)};\n margin-right: ${spacingFromSize(size)};\n `;\n },\n my: function (size) {\n return css`\n margin-top: ${spacingFromSize(size)};\n margin-bottom: ${spacingFromSize(size)};\n `;\n },\n\n // Padding\n p: function (size) {\n return css`\n padding: ${spacing[size.toString()]};\n `;\n },\n pl: function (size) {\n return css`\n padding-left: ${spacing[size.toString()]};\n `;\n },\n pr: function (size) {\n return css`\n padding-right: ${spacing[size.toString()]};\n `;\n },\n pt: function (size) {\n return css`\n padding-top: ${spacing[size.toString()]};\n `;\n },\n pb: function (size) {\n return css`\n padding-bottom: ${spacing[size.toString()]};\n `;\n },\n px: function (size) {\n var sizeKey = size.toString();\n return css`\n padding-left: ${spacing[sizeKey]};\n padding-right: ${spacing[sizeKey]};\n `;\n },\n py: function (size) {\n var sizeKey = size.toString();\n return css`\n padding-top: ${spacing[sizeKey]};\n padding-bottom: ${spacing[sizeKey]};\n `;\n },\n\n text: {\n ...typeScale,\n\n // Font Weights\n normal: css`\n font-weight: 400;\n `,\n medium: css`\n font-weight: 450;\n `,\n semibold: css`\n font-weight: 500;\n `,\n bold: css`\n font-weight: 600;\n `,\n\n // Font Colors\n forefront: css`\n color: ${color.black};\n `,\n primary: css`\n color: ${color.black};\n `,\n secondary: css`\n color: ${color.gray[600]};\n `,\n\n // Headings\n h1: css`\n font-weight: 600;\n ${typeScale.xxxl};\n `,\n h2: css`\n font-weight: 600;\n ${typeScale.xxl};\n `,\n h3: css`\n font-weight: 600;\n ${typeScale.xl};\n `,\n h4: css`\n font-weight: 600;\n ${typeScale.lg};\n `,\n h5: css`\n font-weight: 600;\n ${typeScale.base};\n `,\n h6: css`\n font-weight: 600;\n ${typeScale.sm};\n `,\n },\n\n rounded: {\n xs: css`\n border-radius: 0.25rem;\n `,\n sm: css`\n border-radius: 0.3125rem;\n `,\n md: css`\n border-radius: 0.4375rem;\n `,\n },\n};\n\nexport default theme;","import React from \"react\";\nimport PropTypes, { any } from \"prop-types\";\nimport { errorTextViaYupOrRailsOrJoi } from \"@shared/lib/formHelpers\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport FormLabel from \"./FormLabel\";\n\ntype Props = {\n name: string;\n placeholder?: string;\n label?: string;\n description?: string;\n scope?: any; // TODO: remove usage of this prop and delete it, bad pattern\n onChange?: (...args: any[]) => void;\n onBlur?: (...args: any[]) => void;\n className?: string;\n inputType?: string;\n rows?: any;\n value?: any;\n autoFocus?: boolean;\n isRequired?: boolean;\n isDisabled?: boolean;\n errors?: any[];\n onSelectionUpdate?: ({ ...args }) => void;\n children?: any;\n maxCharacterCount?: number;\n requiredLabel?: string;\n};\nfunction FormTextarea(props: Props) {\n const { errors, name, value, maxCharacterCount, requiredLabel = \"required\" } = props;\n const textAreaRef = React.useRef(null);\n let errorText = errorTextViaYupOrRailsOrJoi({ errors, name });\n const [characterCount, setCharacterCount] = React.useState(0);\n\n React.useEffect(() => {\n updateSelection();\n }, []);\n\n React.useEffect(() => {\n textAreaRef.current.addEventListener(\"keydown\", (event) => {\n if (event.keyCode === 27 || event.key === \"Escape\") {\n textAreaRef.current.blur();\n }\n return () => {\n textAreaRef.current.removeEventListener(\"keydown\");\n };\n });\n }, []);\n\n const handleChange = (event) => {\n event.preventDefault();\n\n updateSelection();\n\n if (props.scope !== undefined) {\n // TODO: deprecate this please, don't think actively used anymore\n props.scope.setState({ [props.name]: event.currentTarget.value, errors: null });\n } else if (props.onChange !== undefined) {\n const newValue = event.currentTarget.value;\n if (newValue.length > maxCharacterCount) {\n const sliced = newValue.slice(0, 280);\n props.onChange(props.name, sliced);\n setCharacterCount(sliced.length);\n } else {\n props.onChange(props.name, event.currentTarget.value);\n setCharacterCount(newValue.length);\n }\n }\n };\n\n const handleBlur = (event) => {\n event.preventDefault();\n event.stopPropagation();\n\n // Use the parent's scope to setState\n if (props.scope !== undefined && props.onBlur === undefined) {\n props.scope.setState({ [props.name]: event.currentTarget.value });\n } else if (props.onBlur !== undefined) {\n props.onBlur(props.name, event.currentTarget.value);\n }\n };\n\n const updateSelection = () => {\n const textarea = textAreaRef.current;\n\n if (props.onSelectionUpdate != undefined) {\n props.onSelectionUpdate({\n start: textarea.selectionStart,\n end: textarea.selectionEnd,\n textarea,\n });\n }\n\n // window.logger(\"%c[CMTM] updateSelection\", \"color: #1976D2\", {\n // // textarea,\n // start: textarea.selectionStart,\n // end: textarea.selectionEnd,\n // });\n };\n\n const textareaDescription = () => {\n if (props.description) {\n return (\n

\n {props.description}\n {maxCharacterCount != undefined ? (\n = maxCharacterCount ? \"over-count\" : \"\"}>\n {`${characterCount > 0 ? ` (${characterCount}/${maxCharacterCount})` : \"\"}`}\n \n ) : null}\n

\n );\n }\n };\n\n const inputId = props.label\n ? `input${props.label.replace(/\\s+/g, \"\")}`\n : props.name\n ? props.name\n : \"Default\";\n\n return (\n \n \n {textareaDescription()}\n \n {props.children} {/* For displaying Joi rendered errors. See NewInviteForm example. */}\n \n );\n}\n\nFormTextarea.propTypes = {\n name: PropTypes.string.isRequired,\n placeholder: PropTypes.string,\n label: PropTypes.string,\n description: PropTypes.string,\n scope: PropTypes.object, // typically set to \"this\" from the parent so we can use setState\n onChange: PropTypes.func, //.isRequired, // This get's used as a callback if scope is not set\n className: PropTypes.string,\n inputType: PropTypes.string,\n rows: PropTypes.any,\n value: PropTypes.any,\n autoFocus: PropTypes.bool,\n isRequired: PropTypes.bool,\n isDisabled: PropTypes.bool,\n errors: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),\n onSelectionUpdate: PropTypes.func,\n};\n\nFormTextarea.defaultProps = {\n isRequired: false,\n isDisabled: false,\n};\n\nexport default FormTextarea;\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div((props: any) => {\n const t: any = props.theme;\n return css`\n label: FormTextarea;\n ${t.mb(6)}\n > p {\n ${[t.text.sm, t.mt(-1), t.mb(2)]};\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n max-width: 32rem;\n\n a {\n ${[t.text.medium]}\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n\n &:hover {\n text-decoration: underline;\n }\n }\n\n ${t.mq[\"md\"]} {\n ${t.text.xs}\n }\n }\n\n ${t.mq[\"md\"]} {\n ${t.mb(5)}\n }\n\n span {\n ${[t.px(1), t.rounded.xs]}\n display: inline-flex;\n\n &.over-count {\n background-color: ${t.dark ? t.color.gray[700] : t.color.red[100]};\n color: ${t.dark ? t.color.red[400] : t.color.red[600]};\n }\n }\n `;\n});\n\nStyled.TextArea = styled.textarea((props: any) => {\n const t: any = props.theme;\n return css`\n label: FormTextarea_UI;\n ${[t.p(2), t.text.base, t.rounded.sm]}\n appearance: none;\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n background-color: ${t.dark ? \"rgba(255,255,255,0.07)\" : t.color.white};\n width: 100%;\n max-width: 100%;\n min-width: 100%;\n min-height: ${t.spacing[24]};\n line-height: 1.4;\n text-overflow: ellipsis;\n border-width: 1px;\n border-style: solid;\n transition: border-color 0.2s ease, box-shadow 0.2s ease;\n border-color: ${props.hasError\n ? t.dark\n ? t.color.red[400]\n : t.color.red[500]\n : t.dark\n ? \"transparent\"\n : t.color.gray[300]};\n &::placeholder {\n color: ${t.color.gray[500]};\n }\n &:hover {\n border-color: ${props.hasError\n ? t.dark\n ? t.color.red[300]\n : t.color.red[600]\n : t.dark\n ? t.color.gray[600]\n : t.color.gray[400]};\n }\n &:focus {\n outline: none;\n border-color: ${props.hasError\n ? t.dark\n ? t.color.red[300]\n : t.color.red[600]\n : t.dark\n ? t.color.gray[500]\n : t.color.gray[400]};\n ${t.dark ? \"\" : `box-shadow: 0 0 0 2px ${t.color.gray[300]};`}\n }\n &:disabled {\n color: ${t.dark ? t.color.gray[500] : t.color.gray[600]};\n background-color: ${t.dark ? \"transparent\" : t.color.gray[100]};\n ${t.dark && `border: 1px solid ${t.color.gray[800]};`}\n }\n &:disabled:hover {\n ${!t.dark && `border-color: ${t.color.gray[300]};`}\n }\n\n ${t.mq[\"md\"]} {\n ${[t.text.sm]}\n }\n `;\n});\n","const colors = {\n white: '#FFFFFF',\n gray: {\n 50: '#FAFAFA',\n 100: '#F5F5F5',\n 200: '#E5E5E5',\n 300: '#D4D4D4',\n 400: '#A3A3A3',\n 500: '#737373',\n 600: '#525252',\n 700: '#404040',\n 800: '#262626',\n 900: '#171717',\n },\n black: '#000000',\n}\n\nexport default colors;","const theme = {\n radii: {\n xs: \"4px\",\n sm: \"5px\",\n md: \"7px\",\n lg: \"13px\",\n },\n shadow: \"0px 8px 20px -4px rgba(0, 0, 0, 0.08)\",\n};\n\nexport default theme;\n","import React from \"react\";\n// import PropTypes from \"prop-types\";\nimport { errorTextViaYupOrRailsOrJoi } from \"@shared/lib/formHelpers\";\nimport { DirectUpload } from \"activestorage\";\nimport { useMachine } from \"@xstate/react\";\nimport { Machine } from \"xstate\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nimport Icon from \"@ats/src/components/shared/Icon\";\nimport FormLabel from \"@ats/src/components/forms/FormLabel\";\n\nimport { isAllowedFileSize, isAllowedFileType } from \"@ats/src/lib/utils/fileUploads\";\n\ntype Props = {\n displayType?: string;\n allowAutomaticUploading: boolean;\n htmlFor?: string; // used to connect the input and the uploader\n file?: any;\n fileName?: string;\n fileIsAlreadyUploaded: boolean;\n isRequired?: boolean;\n requiredLabel?: string;\n loading: boolean;\n name: string;\n label?: string;\n placeholder: {} | string;\n description?: string;\n tabIndex?: string;\n onChange?: ({}) => void;\n onCompleteDirectUpload: any;\n onStartDirectUpload?: (loading: boolean) => void;\n onInvalidFile: (file, expectedFileType) => void;\n errors: any;\n children?: any;\n expectedFileType: string;\n maxFileSize?: number;\n};\n\nexport default function FormUploader(props: Props) {\n // window.logger(\"%c[FormUploader] \", \"color: #1976D2\", { props });\n const {\n displayType,\n allowAutomaticUploading,\n tabIndex,\n placeholder,\n htmlFor,\n file,\n fileIsAlreadyUploaded,\n fileName, // useful for when displaying information for an already uploaded file\n label,\n isRequired,\n description,\n loading,\n children,\n expectedFileType,\n maxFileSize,\n onStartDirectUpload,\n requiredLabel = \"required\",\n } = props;\n\n const uploadMachine = Machine(\n {\n id: \"upload\",\n initial: \"noFile\",\n states: {\n noFile: {\n on: {\n ATTACH_FILE: \"fileAttachedForUpload\",\n AUTO_UPLOAD_FILE: \"newFileIsUploading\",\n HAS_EXISTING_FILE: \"existingFile\",\n },\n },\n existingFile: {\n on: {\n ATTACH_FILE: \"fileAttachedForUpload\",\n AUTO_UPLOAD_FILE: {\n target: \"replacementFileIsUploading\",\n actions: [\"sendOnLoadingCallback\"],\n },\n },\n },\n fileSuccessfullyUploaded: {\n on: {\n ATTACH_FILE: \"fileAttachedForUpload\",\n AUTO_UPLOAD_FILE: {\n target: \"replacementFileIsUploading\",\n actions: [\"sendOnLoadingCallback\"],\n },\n },\n },\n fileAttachedForUpload: {\n on: { INVALID_FILE: \"noFile\" },\n },\n newFileIsUploading: {\n on: { UPLOAD_COMPLETE: \"fileSuccessfullyUploaded\" },\n },\n replacementFileIsUploading: {\n on: { UPLOAD_COMPLETE: \"fileSuccessfullyUploaded\" },\n },\n },\n },\n {\n actions: {\n sendOnLoadingCallback: (context, event) => {\n window.logger(\"%c[FormUploader] sendOnLoadingCallback\", \"color: #1976D2\", {\n context,\n event,\n });\n const isLoading = event.type === \"AUTO_UPLOAD_FILE\";\n if (onStartDirectUpload != undefined) {\n onStartDirectUpload(isLoading);\n }\n },\n },\n },\n );\n\n const [state, send] = useMachine(uploadMachine);\n\n const [fileToUpload, setFileToUpload] = React.useState(file);\n\n let errorText = errorTextViaYupOrRailsOrJoi(props);\n\n React.useEffect(() => {\n setFileToUpload(file);\n\n if (fileIsAlreadyUploaded) {\n send(\"HAS_EXISTING_FILE\");\n }\n }, [file, fileIsAlreadyUploaded, send]);\n\n // window.logger(\"%c[FormUploader] STATE MACHINE value\", \"color: #1976D2\", { value: state.value });\n\n const fileExists = [\n \"existingFile\",\n \"fileAttachedForUpload\",\n \"fileSuccessfullyUploaded\",\n \"replacementFileIsUploading\",\n ].includes(String(state.value));\n\n const buttonText =\n displayType !== \"button\"\n ? placeholder\n : file != null && fileToUpload != null && fileExists\n ? fileToUpload.name\n : fileIsAlreadyUploaded && fileName\n ? fileName\n : placeholder;\n\n // const fileTypes = {\n // image: [\"image/png\", \"image/jpeg\", \"image/jpg\", \"image/svg+xml\"],\n // document: [\n // \"application/pdf\",\n // \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\n // ],\n // };\n\n // const trimFilename = (filename) => {\n // let cutStart, cutEnd;\n\n // if (filename.length > 20) {\n // cutStart = 10;\n // cutEnd = filename.length - 7;\n // return filename.substr(0, cutStart) + \"...\" + filename.substr(cutEnd + 1);\n // } else {\n // return filename;\n // }\n // };\n\n // const isAllowedFileType = (expectedFileType, fileType) => {\n // return expectedFileType === undefined ? true : fileTypes[expectedFileType].includes(fileType);\n // };\n\n /* Handle File Input Change\n --===================================================-- */\n const handleFileInputChange = (e) => {\n e.preventDefault();\n const file = e.currentTarget.files[0];\n const upload = new DirectUpload(\n file,\n `/api/v1/public/rails/active_storage/direct_uploads`,\n this,\n );\n\n if (\n file &&\n isAllowedFileType(expectedFileType, file.type) &&\n isAllowedFileSize(maxFileSize, file.size)\n ) {\n if (props.onChange) props.onChange({ fileToUpload: file });\n\n if (allowAutomaticUploading) {\n send(\"AUTO_UPLOAD_FILE\");\n upload.create((error, blob) => {\n if (error) {\n console.error(\"[FormUploader] handleFileInputChange directUpload error\", error);\n } else {\n // window.logger('%c[FormUploader] uploaded file', 'color: #1976D2', { blob });\n props.onCompleteDirectUpload(blob).then((data) => {\n window.logger(\"%c[FormUploader] onCompleteDirectUpload\", \"color: #1976D2\", { data });\n if (data !== undefined) send(\"UPLOAD_COMPLETE\");\n });\n }\n });\n } else {\n setFileToUpload(file);\n send(\"ATTACH_FILE\");\n }\n } else {\n send(\"INVALID_FILE\");\n props.onInvalidFile(file, expectedFileType);\n }\n };\n\n return (\n \n {label && (\n \n )}\n {description &&

{description}

}\n \n \n \n {displayType === \"button\" && }\n {buttonText}\n \n\n {loading && (\n \n \n \n )}\n {!loading && displayType === \"button\" && state.value === \"fileSuccessfullyUploaded\" && (\n \n \n Uploaded\n \n )}\n {!loading && displayType === \"button\" && state.value === \"fileAttachedForUpload\" && (\n \n \n {window.APP_TRANSLATIONS.file_attached_label}\n \n )}\n \n {children}\n {/* For displaying Joi rendered errors. See NewInviteForm example. */}\n
\n );\n}\n\nFormUploader.defaultProps = {\n // allowAutomaticUploading: true,\n displayType: \"button\",\n};\n\n/* Styled Components\n======================================================= */\nlet Styled: any;\nStyled = {};\n\nStyled.Container = styled.div((props: any) => {\n const t: any = props.theme;\n return css`\n label: FormUploader;\n ${props.displayType === \"dropdownLink\" ? \"margin-bottom: 2px\" : t.mb(6)};\n > p {\n ${[t.text.sm, t.mt(-1), t.mb(2)]};\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n max-width: 32rem;\n\n a {\n ${[t.text.medium]}\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n\n &:hover {\n text-decoration: underline;\n }\n }\n\n ${t.mq[\"md\"]} {\n ${t.text.xs}\n }\n }\n\n ${t.mq[\"md\"]} {\n ${props.displayType === \"dropdownLink\" ? \"margin-bottom: 2px\" : t.mb(5)};\n }\n `;\n});\n\nStyled.UIContainer = styled.div((props: any) => {\n const t: any = props.theme;\n return css`\n label: FormUploader_UI;\n display: flex;\n align-items: center;\n\n [type=\"file\"]:focus + label,\n [type=\"file\"]:focus + label:hover {\n transition: border-color 0.2s ease, box-shadow 0.2s;\n ${props.displayType === \"dropdownLink\"\n ? \"text-decoration: underline;\"\n : t.dark\n ? \"\"\n : `box-shadow: 0 0 0 2px ${t.color.gray[300]};`};\n border-color: ${t.dark ? t.color.gray[500] : t.color.gray[400]};\n }\n `;\n});\n\nStyled.UploadButton = styled.label((props: any) => {\n const t: any = props.theme;\n const base = css`\n label: FormUploader_UploadButton;\n border: none;\n appearance: none;\n outline: none;\n position: relative;\n cursor: pointer;\n overflow: hidden;\n display: flex;\n align-items: center;\n `;\n\n if (props.displayType === \"dropdownLink\") {\n return css`\n ${[t.text.medium, base]}\n color: ${t.dark ? t.color.gray[300] : t.color.black};\n background-color: transparent;\n &:hover {\n text-decoration: underline;\n }\n `;\n } else {\n return props.fileExists\n ? css`\n ${[t.h(10), t.text.base, t.rounded.sm, base]};\n padding: 0 ${t.spacing[2]};\n width: 100%;\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n border: 1px solid ${t.dark ? \"transparent\" : t.color.gray[300]};\n background-color: ${t.dark ? \"rgba(255,255,255,0.08)\" : t.color.white};\n transition: background-color 0.2s ease, border-color 0.2s ease;\n svg {\n margin-right: ${t.spacing[1]};\n }\n &:hover {\n border-color: ${t.dark ? t.color.gray[600] : t.color.gray[400]};\n }\n\n ${t.mq[\"md\"]} {\n ${[t.h(8), t.text.sm]}\n }\n `\n : css`\n ${[t.h(10), t.text.base, t.rounded.sm, base]}\n padding: 0 ${t.spacing[4]};\n transition: background-color 0.2s ease;\n background-color: ${t.dark ? t.color.gray[700] : t.color.gray[200]};\n font-weight: 450;\n color: ${props.hasError\n ? t.dark\n ? t.color.red[300]\n : t.color.red[600]\n : t.dark\n ? t.color.gray[200]\n : t.color.black};\n svg {\n display: none;\n }\n &:hover {\n background-color: ${t.dark ? t.color.gray[600] : t.color.gray[300]};\n color: ${t.dark ? t.color.white : t.color.black};\n }\n\n ${t.mq[\"md\"]} {\n ${[t.h(8), t.text.sm]}\n }\n `;\n }\n});\n\nStyled.UploadButtonLabel = styled.span`\n label: FormUploader_UploadButtonLabel;\n display: flex;\n align-items: center;\n flex-shrink: 1;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n`;\n\nStyled.Input = styled.input`\n label: FormUploader_Input;\n position: absolute;\n margin: -1px;\n width: 1px;\n height: 1px;\n border: 0;\n clip: rect(0, 0, 0, 0);\n overflow: hidden;\n`;\n\nStyled.UploadStatus = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: FormUploader_UploadStatus;\n ${t.ml(3)}\n display: flex;\n align-items: center;\n color: ${t.dark ? t.color.gray[300] : t.color.black};\n svg {\n ${t.mr(1)}\n }\n `;\n});\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([\"exports\"], factory) : factory(global.ActiveStorage = {});\n})(this, function (exports) {\n \"use strict\";\n\n function createCommonjsModule(fn, module) {\n return module = {\n exports: {}\n }, fn(module, module.exports), module.exports;\n }\n\n var sparkMd5 = createCommonjsModule(function (module, exports) {\n (function (factory) {\n {\n module.exports = factory();\n }\n })(function (undefined) {\n var hex_chr = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\n\n function md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n\n function md5blk(s) {\n var md5blks = [],\n i;\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n\n return md5blks;\n }\n\n function md5blk_array(a) {\n var md5blks = [],\n i;\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n\n return md5blks;\n }\n\n function md51(s) {\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n\n s = s.substring(i - 64);\n length = s.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n\n function md51_array(a) {\n var n = a.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n\n a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n length = a.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n\n function rhex(n) {\n var s = \"\",\n j;\n\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n }\n\n return s;\n }\n\n function hex(x) {\n var i;\n\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n\n return x.join(\"\");\n }\n\n if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n\n if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = val | 0 || 0;\n\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n\n return Math.min(val, length);\n }\n\n ArrayBuffer.prototype.slice = function (from, to) {\n var length = this.byteLength,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n\n if (to !== undefined) {\n end = clamp(to, length);\n }\n\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n return target;\n };\n })();\n }\n\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n\n return str;\n }\n\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n\n return returnUInt8Array ? arr : buff;\n }\n\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n return returnUInt8Array ? result : result.buffer;\n }\n\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n\n return String.fromCharCode.apply(String, bytes);\n }\n\n function SparkMD5() {\n this.reset();\n }\n\n SparkMD5.prototype.append = function (str) {\n this.appendBinary(toUtf8(str));\n return this;\n };\n\n SparkMD5.prototype.appendBinary = function (contents) {\n this._buff += contents;\n this._length += contents.length;\n var length = this._buff.length,\n i;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n\n this._buff = this._buff.substring(i - 64);\n return this;\n };\n\n SparkMD5.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\n\n SparkMD5.prototype.reset = function () {\n this._buff = \"\";\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash\n };\n };\n\n SparkMD5.prototype.setState = function (state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n return this;\n };\n\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n\n SparkMD5.prototype._finish = function (tail, length) {\n var i = length,\n tmp,\n lo,\n hi;\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(this._hash, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n\n SparkMD5.hash = function (str, raw) {\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n SparkMD5.ArrayBuffer = function () {\n this.reset();\n };\n\n SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n length = buff.length,\n i;\n this._length += arr.byteLength;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n\n this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\n\n SparkMD5.ArrayBuffer.prototype.reset = function () {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.getState = function () {\n var state = SparkMD5.prototype.getState.call(this);\n state.buff = arrayBuffer2Utf8Str(state.buff);\n return state;\n };\n\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n return SparkMD5.prototype.setState.call(this, state);\n };\n\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n\n SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n var hash = md51_array(new Uint8Array(arr)),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n return SparkMD5;\n });\n });\n\n var classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n\n var createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n\n var FileChecksum = function () {\n createClass(FileChecksum, null, [{\n key: \"create\",\n value: function create(file, callback) {\n var instance = new FileChecksum(file);\n instance.create(callback);\n }\n }]);\n\n function FileChecksum(file) {\n classCallCheck(this, FileChecksum);\n this.file = file;\n this.chunkSize = 2097152;\n this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n this.chunkIndex = 0;\n }\n\n createClass(FileChecksum, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n this.callback = callback;\n this.md5Buffer = new sparkMd5.ArrayBuffer();\n this.fileReader = new FileReader();\n this.fileReader.addEventListener(\"load\", function (event) {\n return _this.fileReaderDidLoad(event);\n });\n this.fileReader.addEventListener(\"error\", function (event) {\n return _this.fileReaderDidError(event);\n });\n this.readNextChunk();\n }\n }, {\n key: \"fileReaderDidLoad\",\n value: function fileReaderDidLoad(event) {\n this.md5Buffer.append(event.target.result);\n\n if (!this.readNextChunk()) {\n var binaryDigest = this.md5Buffer.end(true);\n var base64digest = btoa(binaryDigest);\n this.callback(null, base64digest);\n }\n }\n }, {\n key: \"fileReaderDidError\",\n value: function fileReaderDidError(event) {\n this.callback(\"Error reading \" + this.file.name);\n }\n }, {\n key: \"readNextChunk\",\n value: function readNextChunk() {\n if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n var start = this.chunkIndex * this.chunkSize;\n var end = Math.min(start + this.chunkSize, this.file.size);\n var bytes = fileSlice.call(this.file, start, end);\n this.fileReader.readAsArrayBuffer(bytes);\n this.chunkIndex++;\n return true;\n } else {\n return false;\n }\n }\n }]);\n return FileChecksum;\n }();\n\n function getMetaValue(name) {\n var element = findElement(document.head, 'meta[name=\"' + name + '\"]');\n\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n\n function findElements(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n var elements = root.querySelectorAll(selector);\n return toArray$1(elements);\n }\n\n function findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n return root.querySelector(selector);\n }\n\n function dispatchEvent(element, type) {\n var eventInit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var disabled = element.disabled;\n var bubbles = eventInit.bubbles,\n cancelable = eventInit.cancelable,\n detail = eventInit.detail;\n var event = document.createEvent(\"Event\");\n event.initEvent(type, bubbles || true, cancelable || true);\n event.detail = detail || {};\n\n try {\n element.disabled = false;\n element.dispatchEvent(event);\n } finally {\n element.disabled = disabled;\n }\n\n return event;\n }\n\n function toArray$1(value) {\n if (Array.isArray(value)) {\n return value;\n } else if (Array.from) {\n return Array.from(value);\n } else {\n return [].slice.call(value);\n }\n }\n\n var BlobRecord = function () {\n function BlobRecord(file, checksum, url) {\n var _this = this;\n\n classCallCheck(this, BlobRecord);\n this.file = file;\n this.attributes = {\n filename: file.name,\n content_type: file.type,\n byte_size: file.size,\n checksum: checksum\n };\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"POST\", url, true);\n this.xhr.responseType = \"json\";\n this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n this.xhr.setRequestHeader(\"X-CSRF-Token\", getMetaValue(\"csrf-token\"));\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobRecord, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(JSON.stringify({\n blob: this.attributes\n }));\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n if (this.status >= 200 && this.status < 300) {\n var response = this.response;\n var direct_upload = response.direct_upload;\n delete response.direct_upload;\n this.attributes = response;\n this.directUploadData = direct_upload;\n this.callback(null, this.toJSON());\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error creating Blob for \"' + this.file.name + '\". Status: ' + this.status);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var result = {};\n\n for (var key in this.attributes) {\n result[key] = this.attributes[key];\n }\n\n return result;\n }\n }, {\n key: \"status\",\n get: function get$$1() {\n return this.xhr.status;\n }\n }, {\n key: \"response\",\n get: function get$$1() {\n var _xhr = this.xhr,\n responseType = _xhr.responseType,\n response = _xhr.response;\n\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n }]);\n return BlobRecord;\n }();\n\n var BlobUpload = function () {\n function BlobUpload(blob) {\n var _this = this;\n\n classCallCheck(this, BlobUpload);\n this.blob = blob;\n this.file = blob.file;\n var _blob$directUploadDat = blob.directUploadData,\n url = _blob$directUploadDat.url,\n headers = _blob$directUploadDat.headers;\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"PUT\", url, true);\n this.xhr.responseType = \"text\";\n\n for (var key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\n\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobUpload, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(this.file.slice());\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n var _xhr = this.xhr,\n status = _xhr.status,\n response = _xhr.response;\n\n if (status >= 200 && status < 300) {\n this.callback(null, response);\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error storing \"' + this.file.name + '\". Status: ' + this.xhr.status);\n }\n }]);\n return BlobUpload;\n }();\n\n var id = 0;\n\n var DirectUpload = function () {\n function DirectUpload(file, url, delegate) {\n classCallCheck(this, DirectUpload);\n this.id = ++id;\n this.file = file;\n this.url = url;\n this.delegate = delegate;\n }\n\n createClass(DirectUpload, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n FileChecksum.create(this.file, function (error, checksum) {\n if (error) {\n callback(error);\n return;\n }\n\n var blob = new BlobRecord(_this.file, checksum, _this.url);\n notify(_this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n blob.create(function (error) {\n if (error) {\n callback(error);\n } else {\n var upload = new BlobUpload(blob);\n notify(_this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n upload.create(function (error) {\n if (error) {\n callback(error);\n } else {\n callback(null, blob.toJSON());\n }\n });\n }\n });\n });\n }\n }]);\n return DirectUpload;\n }();\n\n function notify(object, methodName) {\n if (object && typeof object[methodName] == \"function\") {\n for (var _len = arguments.length, messages = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n messages[_key - 2] = arguments[_key];\n }\n\n return object[methodName].apply(object, messages);\n }\n }\n\n var DirectUploadController = function () {\n function DirectUploadController(input, file) {\n classCallCheck(this, DirectUploadController);\n this.input = input;\n this.file = file;\n this.directUpload = new DirectUpload(this.file, this.url, this);\n this.dispatch(\"initialize\");\n }\n\n createClass(DirectUploadController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var hiddenInput = document.createElement(\"input\");\n hiddenInput.type = \"hidden\";\n hiddenInput.name = this.input.name;\n this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n this.dispatch(\"start\");\n this.directUpload.create(function (error, attributes) {\n if (error) {\n hiddenInput.parentNode.removeChild(hiddenInput);\n\n _this.dispatchError(error);\n } else {\n hiddenInput.value = attributes.signed_id;\n }\n\n _this.dispatch(\"end\");\n\n callback(error);\n });\n }\n }, {\n key: \"uploadRequestDidProgress\",\n value: function uploadRequestDidProgress(event) {\n var progress = event.loaded / event.total * 100;\n\n if (progress) {\n this.dispatch(\"progress\", {\n progress: progress\n });\n }\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n detail.file = this.file;\n detail.id = this.directUpload.id;\n return dispatchEvent(this.input, \"direct-upload:\" + name, {\n detail: detail\n });\n }\n }, {\n key: \"dispatchError\",\n value: function dispatchError(error) {\n var event = this.dispatch(\"error\", {\n error: error\n });\n\n if (!event.defaultPrevented) {\n alert(error);\n }\n }\n }, {\n key: \"directUploadWillCreateBlobWithXHR\",\n value: function directUploadWillCreateBlobWithXHR(xhr) {\n this.dispatch(\"before-blob-request\", {\n xhr: xhr\n });\n }\n }, {\n key: \"directUploadWillStoreFileWithXHR\",\n value: function directUploadWillStoreFileWithXHR(xhr) {\n var _this2 = this;\n\n this.dispatch(\"before-storage-request\", {\n xhr: xhr\n });\n xhr.upload.addEventListener(\"progress\", function (event) {\n return _this2.uploadRequestDidProgress(event);\n });\n }\n }, {\n key: \"url\",\n get: function get$$1() {\n return this.input.getAttribute(\"data-direct-upload-url\");\n }\n }]);\n return DirectUploadController;\n }();\n\n var inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n\n var DirectUploadsController = function () {\n function DirectUploadsController(form) {\n classCallCheck(this, DirectUploadsController);\n this.form = form;\n this.inputs = findElements(form, inputSelector).filter(function (input) {\n return input.files.length;\n });\n }\n\n createClass(DirectUploadsController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var controllers = this.createDirectUploadControllers();\n\n var startNextController = function startNextController() {\n var controller = controllers.shift();\n\n if (controller) {\n controller.start(function (error) {\n if (error) {\n callback(error);\n\n _this.dispatch(\"end\");\n } else {\n startNextController();\n }\n });\n } else {\n callback();\n\n _this.dispatch(\"end\");\n }\n };\n\n this.dispatch(\"start\");\n startNextController();\n }\n }, {\n key: \"createDirectUploadControllers\",\n value: function createDirectUploadControllers() {\n var controllers = [];\n this.inputs.forEach(function (input) {\n toArray$1(input.files).forEach(function (file) {\n var controller = new DirectUploadController(input, file);\n controllers.push(controller);\n });\n });\n return controllers;\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return dispatchEvent(this.form, \"direct-uploads:\" + name, {\n detail: detail\n });\n }\n }]);\n return DirectUploadsController;\n }();\n\n var processingAttribute = \"data-direct-uploads-processing\";\n var submitButtonsByForm = new WeakMap();\n var started = false;\n\n function start() {\n if (!started) {\n started = true;\n document.addEventListener(\"click\", didClick, true);\n document.addEventListener(\"submit\", didSubmitForm);\n document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n }\n }\n\n function didClick(event) {\n var target = event.target;\n\n if ((target.tagName == \"INPUT\" || target.tagName == \"BUTTON\") && target.type == \"submit\" && target.form) {\n submitButtonsByForm.set(target.form, target);\n }\n }\n\n function didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n }\n\n function didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n }\n\n function handleFormSubmissionEvent(event) {\n var form = event.target;\n\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n\n var controller = new DirectUploadsController(form);\n var inputs = controller.inputs;\n\n if (inputs.length) {\n event.preventDefault();\n form.setAttribute(processingAttribute, \"\");\n inputs.forEach(disable);\n controller.start(function (error) {\n form.removeAttribute(processingAttribute);\n\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n });\n }\n }\n\n function submitForm(form) {\n var button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n\n if (button) {\n var _button = button,\n disabled = _button.disabled;\n button.disabled = false;\n button.focus();\n button.click();\n button.disabled = disabled;\n } else {\n button = document.createElement(\"input\");\n button.type = \"submit\";\n button.style.display = \"none\";\n form.appendChild(button);\n button.click();\n form.removeChild(button);\n }\n\n submitButtonsByForm[\"delete\"](form);\n }\n\n function disable(input) {\n input.disabled = true;\n }\n\n function enable(input) {\n input.disabled = false;\n }\n\n function autostart() {\n if (window.ActiveStorage) {\n start();\n }\n }\n\n setTimeout(autostart, 1);\n exports.start = start;\n exports.DirectUpload = DirectUpload;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});","import { __assign, __rest } from './_virtual/_tslib.js';\nimport { toSCXMLEvent, isFunction, toEventObject, getEventType, isString, isArray } from './utils.js';\nimport { SpecialTargets, ActionTypes } from './types.js';\nimport { send as send$1, update, assign as assign$1, raise as raise$1, init, log as log$1, cancel as cancel$1, error as error$1 } from './actionTypes.js';\nvar initEvent = /*#__PURE__*/toSCXMLEvent({\n type: init\n});\n\nfunction getActionFunction(actionType, actionFunctionMap) {\n return actionFunctionMap ? actionFunctionMap[actionType] || undefined : undefined;\n}\n\nfunction toActionObject(action, actionFunctionMap) {\n var actionObject;\n\n if (isString(action) || typeof action === 'number') {\n var exec = getActionFunction(action, actionFunctionMap);\n\n if (isFunction(exec)) {\n actionObject = {\n type: action,\n exec: exec\n };\n } else if (exec) {\n actionObject = exec;\n } else {\n actionObject = {\n type: action,\n exec: undefined\n };\n }\n } else if (isFunction(action)) {\n actionObject = {\n // Convert action to string if unnamed\n type: action.name || action.toString(),\n exec: action\n };\n } else {\n var exec = getActionFunction(action.type, actionFunctionMap);\n\n if (isFunction(exec)) {\n actionObject = __assign(__assign({}, action), {\n exec: exec\n });\n } else if (exec) {\n var type = action.type,\n other = __rest(action, [\"type\"]);\n\n actionObject = __assign(__assign({\n type: type\n }, exec), other);\n } else {\n actionObject = action;\n }\n }\n\n Object.defineProperty(actionObject, 'toString', {\n value: function value() {\n return actionObject.type;\n },\n enumerable: false,\n configurable: true\n });\n return actionObject;\n}\n\nvar toActionObjects = function toActionObjects(action, actionFunctionMap) {\n if (!action) {\n return [];\n }\n\n var actions = isArray(action) ? action : [action];\n return actions.map(function (subAction) {\n return toActionObject(subAction, actionFunctionMap);\n });\n};\n\nfunction toActivityDefinition(action) {\n var actionObject = toActionObject(action);\n return __assign(__assign({\n id: isString(action) ? action : actionObject.id\n }, actionObject), {\n type: actionObject.type\n });\n}\n/**\r\n * Raises an event. This places the event in the internal event queue, so that\r\n * the event is immediately consumed by the machine in the current step.\r\n *\r\n * @param eventType The event to raise.\r\n */\n\n\nfunction raise(event) {\n if (!isString(event)) {\n return send(event, {\n to: SpecialTargets.Internal\n });\n }\n\n return {\n type: raise$1,\n event: event\n };\n}\n\nfunction resolveRaise(action) {\n return {\n type: raise$1,\n _event: toSCXMLEvent(action.event)\n };\n}\n/**\r\n * Sends an event. This returns an action that will be read by an interpreter to\r\n * send the event in the next step, after the current step is finished executing.\r\n *\r\n * @param event The event to send.\r\n * @param options Options to pass into the send event:\r\n * - `id` - The unique send event identifier (used with `cancel()`).\r\n * - `delay` - The number of milliseconds to delay the sending of the event.\r\n * - `to` - The target of this event (by default, the machine the event was sent from).\r\n */\n\n\nfunction send(event, options) {\n return {\n to: options ? options.to : undefined,\n type: send$1,\n event: isFunction(event) ? event : toEventObject(event),\n delay: options ? options.delay : undefined,\n id: options && options.id !== undefined ? options.id : isFunction(event) ? event.name : getEventType(event)\n };\n}\n\nfunction resolveSend(action, ctx, _event, delaysMap) {\n var meta = {\n _event: _event\n }; // TODO: helper function for resolving Expr\n\n var resolvedEvent = toSCXMLEvent(isFunction(action.event) ? action.event(ctx, _event.data, meta) : action.event);\n var resolvedDelay;\n\n if (isString(action.delay)) {\n var configDelay = delaysMap && delaysMap[action.delay];\n resolvedDelay = isFunction(configDelay) ? configDelay(ctx, _event.data, meta) : configDelay;\n } else {\n resolvedDelay = isFunction(action.delay) ? action.delay(ctx, _event.data, meta) : action.delay;\n }\n\n var resolvedTarget = isFunction(action.to) ? action.to(ctx, _event.data, meta) : action.to;\n return __assign(__assign({}, action), {\n to: resolvedTarget,\n _event: resolvedEvent,\n event: resolvedEvent.data,\n delay: resolvedDelay\n });\n}\n/**\r\n * Sends an event to this machine's parent.\r\n *\r\n * @param event The event to send to the parent machine.\r\n * @param options Options to pass into the send event.\r\n */\n\n\nfunction sendParent(event, options) {\n return send(event, __assign(__assign({}, options), {\n to: SpecialTargets.Parent\n }));\n}\n/**\r\n * Sends an update event to this machine's parent.\r\n */\n\n\nfunction sendUpdate() {\n return sendParent(update);\n}\n/**\r\n * Sends an event back to the sender of the original event.\r\n *\r\n * @param event The event to send back to the sender\r\n * @param options Options to pass into the send event\r\n */\n\n\nfunction respond(event, options) {\n return send(event, __assign(__assign({}, options), {\n to: function to(_, __, _a) {\n var _event = _a._event;\n return _event.origin; // TODO: handle when _event.origin is undefined\n }\n }));\n}\n\nvar defaultLogExpr = function defaultLogExpr(context, event) {\n return {\n context: context,\n event: event\n };\n};\n/**\r\n *\r\n * @param expr The expression function to evaluate which will be logged.\r\n * Takes in 2 arguments:\r\n * - `ctx` - the current state context\r\n * - `event` - the event that caused this action to be executed.\r\n * @param label The label to give to the logged expression.\r\n */\n\n\nfunction log(expr, label) {\n if (expr === void 0) {\n expr = defaultLogExpr;\n }\n\n return {\n type: log$1,\n label: label,\n expr: expr\n };\n}\n\nvar resolveLog = function resolveLog(action, ctx, _event) {\n return __assign(__assign({}, action), {\n value: isString(action.expr) ? action.expr : action.expr(ctx, _event.data, {\n _event: _event\n })\n });\n};\n/**\r\n * Cancels an in-flight `send(...)` action. A canceled sent action will not\r\n * be executed, nor will its event be sent, unless it has already been sent\r\n * (e.g., if `cancel(...)` is called after the `send(...)` action's `delay`).\r\n *\r\n * @param sendId The `id` of the `send(...)` action to cancel.\r\n */\n\n\nvar cancel = function cancel(sendId) {\n return {\n type: cancel$1,\n sendId: sendId\n };\n};\n/**\r\n * Starts an activity.\r\n *\r\n * @param activity The activity to start.\r\n */\n\n\nfunction start(activity) {\n var activityDef = toActivityDefinition(activity);\n return {\n type: ActionTypes.Start,\n activity: activityDef,\n exec: undefined\n };\n}\n/**\r\n * Stops an activity.\r\n *\r\n * @param activity The activity to stop.\r\n */\n\n\nfunction stop(activity) {\n var activityDef = toActivityDefinition(activity);\n return {\n type: ActionTypes.Stop,\n activity: activityDef,\n exec: undefined\n };\n}\n/**\r\n * Updates the current context of the machine.\r\n *\r\n * @param assignment An object that represents the partial context to update.\r\n */\n\n\nvar assign = function assign(assignment) {\n return {\n type: assign$1,\n assignment: assignment\n };\n};\n/**\r\n * Returns an event type that represents an implicit event that\r\n * is sent after the specified `delay`.\r\n *\r\n * @param delayRef The delay in milliseconds\r\n * @param id The state node ID where this event is handled\r\n */\n\n\nfunction after(delayRef, id) {\n var idSuffix = id ? \"#\" + id : '';\n return ActionTypes.After + \"(\" + delayRef + \")\" + idSuffix;\n}\n/**\r\n * Returns an event that represents that a final state node\r\n * has been reached in the parent state node.\r\n *\r\n * @param id The final state node's parent state node `id`\r\n * @param data The data to pass into the event\r\n */\n\n\nfunction done(id, data) {\n var type = ActionTypes.DoneState + \".\" + id;\n var eventObject = {\n type: type,\n data: data\n };\n\n eventObject.toString = function () {\n return type;\n };\n\n return eventObject;\n}\n/**\r\n * Returns an event that represents that an invoked service has terminated.\r\n *\r\n * An invoked service is terminated when it has reached a top-level final state node,\r\n * but not when it is canceled.\r\n *\r\n * @param id The final state node ID\r\n * @param data The data to pass into the event\r\n */\n\n\nfunction doneInvoke(id, data) {\n var type = ActionTypes.DoneInvoke + \".\" + id;\n var eventObject = {\n type: type,\n data: data\n };\n\n eventObject.toString = function () {\n return type;\n };\n\n return eventObject;\n}\n\nfunction error(id, data) {\n var type = ActionTypes.ErrorPlatform + \".\" + id;\n var eventObject = {\n type: type,\n data: data\n };\n\n eventObject.toString = function () {\n return type;\n };\n\n return eventObject;\n}\n/**\r\n * Forwards (sends) an event to a specified service.\r\n *\r\n * @param target The target service to forward the event to.\r\n * @param options Options to pass into the send action creator.\r\n */\n\n\nfunction forwardTo(target, options) {\n return send(function (_, event) {\n return event;\n }, __assign(__assign({}, options), {\n to: target\n }));\n}\n/**\r\n * Escalates an error by sending it as an event to this machine's parent.\r\n *\r\n * @param errorData The error data to send, or the expression function that\r\n * takes in the `context`, `event`, and `meta`, and returns the error data to send.\r\n * @param options Options to pass into the send action creator.\r\n */\n\n\nfunction escalate(errorData, options) {\n return sendParent(function (context, event, meta) {\n return {\n type: error$1,\n data: isFunction(errorData) ? errorData(context, event, meta) : errorData\n };\n }, __assign(__assign({}, options), {\n to: SpecialTargets.Parent\n }));\n}\n\nexport { after, assign, cancel, done, doneInvoke, error, escalate, forwardTo, getActionFunction, initEvent, log, raise, resolveLog, resolveRaise, resolveSend, respond, send, sendParent, sendUpdate, start, stop, toActionObject, toActionObjects, toActivityDefinition };","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport isArray from \"lodash/isArray\";\nimport { errorTextViaYupOrRailsOrJoi } from \"@shared/lib/formHelpers\";\nimport { findSelectOptionByValue } from \"@ats/src/lib/lookups\";\n\nimport Select, { Creatable } from \"react-select\";\nimport FormLabel from \"@ats/src/components/forms/FormLabel\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nconst handleChange = (props) => (selectedOption, actionObj) => {\n // Use the parent's scope to setState\n if (props.scope !== undefined) {\n if (actionObj.action === \"clear\") {\n props.scope.setState({ [props.name]: null, errors: null });\n } else {\n props.scope.setState({\n [props.name]: isArray(selectedOption) ? selectedOption : selectedOption.value,\n errors: null,\n });\n }\n } else if (props.onChange !== undefined) {\n if (actionObj.action === \"clear\") {\n props.onChange(props.name, null);\n } else {\n props.onChange(props.name, isArray(selectedOption) ? selectedOption : selectedOption.value);\n }\n } else {\n console.error(\"[FormSelect] scope or onChange must be defined\");\n }\n};\n\nconst handleInputChange = (props) => (selectedOption, actionObj) => {\n if (actionObj.action === \"clear\") {\n props.onInputChange(props.name, null);\n } else {\n props.onInputChange(\n props.name,\n isArray(selectedOption) ? selectedOption : selectedOption.value,\n );\n }\n};\n\nconst FormSelect = (props) => {\n const {\n errors,\n options,\n name,\n placeholder,\n value,\n label,\n description,\n onChange,\n isRequired,\n isDisabled,\n isClearable,\n isCreatable,\n isMulti,\n requiredLabel,\n ...rest\n } = props;\n let errorText = errorTextViaYupOrRailsOrJoi(props);\n\n const selectedOption = findSelectOptionByValue(options, value);\n const [selectRef, setSelectRef] = React.useState(null);\n\n const handleKeyDown = (event) => {\n if (event.keyCode === 27 || event.key === \"Escape\") {\n selectRef.blur();\n }\n };\n\n // window.logger(\"%c[FormSelect] errorText\", \"color: #1976D2\", {\n // errorText,\n // errors,\n // selectedOption,\n // rest,\n // });\n\n return isCreatable ? (\n \n {label && }\n {\n if (ref != undefined) {\n setSelectRef(ref);\n }\n }}\n />\n {props.children}\n {/* For displaying Joi rendered errors. See NewInviteForm example. */}\n \n ) : (\n \n {label && (\n \n )}\n {description &&

{description}

}\n {\n if (ref != undefined) {\n setSelectRef(ref);\n }\n }}\n onKeyDown={handleKeyDown}\n // data-testid=\"doesthiswork\"\n />\n {props.children}\n {/* For displaying Joi rendered errors. See NewInviteForm example. */}\n
\n );\n};\n\nFormSelect.propTypes = {\n name: PropTypes.string.isRequired,\n placeholder: PropTypes.string,\n label: PropTypes.string,\n description: PropTypes.any,\n scope: PropTypes.object, // typically set to \"this\" from the parent so we can use setState\n onChange: PropTypes.func, //.isRequired, // This get's used as a callback if scope is not set\n className: PropTypes.string,\n value: PropTypes.any,\n options: PropTypes.any.isRequired,\n isRequired: PropTypes.bool,\n isDisabled: PropTypes.bool,\n isClearable: PropTypes.bool,\n errors: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),\n requiredLabel: PropTypes.string,\n};\n\nFormSelect.defaultProps = {\n isRequired: false,\n isDisabled: false,\n isClearable: false,\n isMulti: false,\n placeholder: \"Select...\",\n requiredLabel: \"required\",\n};\n\nexport default FormSelect;\n\n/* Styled Components\n======================================================= */\nconst Styled = {};\n\nStyled.Container = styled.div((props) => {\n const t = props.theme;\n return css`\n label: FormSelect;\n ${t.mb(5)}\n > p {\n ${[t.text.xs, t.mt(-1), t.mb(2)]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n max-width: 32rem;\n\n a {\n ${[t.text.medium]}\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n\n &:hover {\n text-decoration: underline;\n }\n }\n\n ${t.mq[\"md\"]} {\n ${t.text.xs}\n }\n }\n\n ${t.mq[\"md\"]} {\n ${t.mb(5)}\n }\n `;\n});\n\nStyled.Select = styled(Select)((props) => {\n const t = props.theme;\n return css`\n label: FormSelect_UI;\n .form-select-ui {\n &__clear-indicator {\n cursor: pointer;\n }\n &__control {\n ${[t.h(10), t.rounded.sm, t.text.base]}\n min-height: ${t.spacing[10]};\n width: 100%;\n appearance: none;\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n background-color: ${t.dark ? \"rgba(255,255,255,0.07)\" : t.color.white};\n border-width: 1px;\n border-style: solid;\n border-color: ${props.hasError\n ? t.dark\n ? t.color.red[400]\n : t.color.red[500]\n : t.dark\n ? \"transparent\"\n : t.color.gray[300]};\n transition: border-color 0.2s ease, box-shadow 0.2s ease;\n &:hover {\n border-color: ${props.hasError\n ? t.dark\n ? t.color.red[300]\n : t.color.red[600]\n : t.dark\n ? t.color.gray[600]\n : t.color.gray[400]};\n }\n &:focus {\n outline: none;\n border-color: ${props.hasError\n ? t.dark\n ? t.color.red[300]\n : t.color.red[600]\n : t.dark\n ? t.color.gray[500]\n : t.color.gray[400]};\n ${t.dark ? \"\" : `box-shadow: 0 0 0 2px ${t.color.gray[300]};`}\n }\n &:focus:hover,\n &--is-focused,\n &--is-focused:hover {\n outline: none;\n border-color: ${props.hasError\n ? t.dark\n ? t.color.red[300]\n : t.color.red[600]\n : t.dark\n ? t.color.gray[500]\n : t.color.gray[400]};\n ${t.dark ? \"box-shadow: none;\" : `box-shadow: 0 0 0 2px ${t.color.gray[300]};`}\n }\n &--is-disabled {\n background-color: ${t.dark ? \"transparent\" : t.color.gray[100]};\n .form-select-ui__single-value {\n color: ${t.dark ? t.color.gray[500] : t.color.gray[600]};\n }\n ${t.dark && `border: 1px solid ${t.color.gray[800]};`}\n\n .form-select-ui__indicator svg {\n fill: ${t.color.gray[500]};\n stroke: ${t.dark ? t.color.gray[800] : t.color.gray[100]};\n }\n }\n\n ${t.mq[\"md\"]} {\n ${[t.h(8), t.text.sm]}\n min-height: ${t.spacing[8]};\n }\n }\n &__option {\n ${[t.h(10), t.px(2), t.text.base]}\n transition: color 0.2s ease, background-color 0.2s ease;\n display: flex;\n align-items: center;\n background-color: ${t.dark ? t.color.gray[700] : t.color.white};\n color: ${t.dark ? t.color.gray[200] : t.color.gray[600]};\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n &:hover,\n &--is-focused {\n background-color: ${t.dark ? t.color.gray[500] : t.color.gray[200]};\n color: ${t.dark ? t.color.white : t.color.black};\n }\n &--is-selected {\n background-color: ${t.dark ? t.color.gray[600] : t.color.gray[100]};\n color: ${t.dark ? t.color.white : t.color.black};\n }\n\n ${t.mq[\"md\"]} {\n ${[t.h(8), t.text.sm]}\n }\n }\n &__placeholder {\n ${[t.mx(0)]}\n color: ${t.color.gray[500]};\n }\n &__indicators {\n ${t.h(8)}\n align-items: center;\n height: 100%;\n span {\n display: none;\n }\n }\n &__indicator svg {\n height: 1.125rem;\n width: 1.125rem;\n stroke-width: 1px;\n fill: ${t.dark ? t.color.gray[300] : t.color.black};\n stroke: ${t.dark ? t.color.gray[800] : t.color.white};\n }\n &__dropdown-indicator {\n ${t.mr(\"px\")}\n padding: 0.3125rem;\n }\n &__clear-indicator svg {\n ${[t.rounded.xs]}\n position: relative;\n right: -${t.spacing[2]};\n background-color: ${t.dark ? t.color.gray[600] : t.color.gray[200]} !important;\n transition: background-color 0.2s ease;\n stroke: ${t.dark ? t.color.gray[600] : t.color.gray[200]};\n }\n &__clear-indicator:hover svg {\n background-color: ${t.dark ? t.color.orange[200] : t.color.gray[300]} !important;\n transition: background-color 0.2s ease;\n stroke: ${t.dark ? t.color.orange[200] : t.color.gray[300]};\n fill: ${t.color.black};\n }\n &__menu {\n ${[t.my(\"-px\"), t.rounded.sm]};\n border: 1px solid ${t.dark ? t.color.gray[500] : t.color.gray[400]};\n box-shadow: none;\n z-index: 20;\n }\n &__menu-list {\n ${[t.rounded.xs]};\n padding: 0;\n }\n &__value-container {\n ${[t.mx(0)]};\n height: 100%;\n > div {\n ${t.m(0)}\n }\n }\n &__input,\n &__single-value {\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n ${t.m(0)};\n }\n &__multi-value {\n ${[t.m(\"px\"), t.rounded.xs]};\n margin-right: 0.25rem !important;\n height: 1.375rem;\n display: flex;\n align-items: center;\n background-color: ${t.dark ? t.color.gray[600] : t.color.gray[200]};\n transition: background-color 0.2s ease;\n &__label {\n ${[t.text.sm, t.py(\"px\"), t.pr(0), t.pl(2)]};\n color: ${t.dark ? t.color.white : t.color.black};\n }\n &__remove {\n height: 1.375rem;\n color: ${t.dark ? t.color.gray[400] : t.color.gray[500]};\n &:hover {\n background: none;\n color: ${t.dark ? t.color.white : t.color.black};\n cursor: pointer;\n }\n }\n }\n &__menu-notice,\n &__menu-notice--no-options {\n color: ${t.dark ? t.color.gray[600] : t.color.gray[400]};\n background-color: ${t.dark ? t.color.gray[800] : t.color.white};\n }\n }\n `;\n});\n\nStyled.Creatable = styled(Creatable)((props) => {\n const t = props.theme;\n return css`\n label: FormSelect_UI;\n .form-select-ui {\n &__clear-indicator {\n cursor: pointer;\n }\n &__control {\n ${[t.h(10), t.rounded.sm, t.text.base]}\n min-height: ${t.spacing[10]};\n width: 100%;\n appearance: none;\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n background-color: ${t.dark ? \"rgba(255,255,255,0.07)\" : t.color.white};\n border-width: 1px;\n border-style: solid;\n border-color: ${props.hasError\n ? t.dark\n ? t.color.red[400]\n : t.color.red[500]\n : t.dark\n ? \"transparent\"\n : t.color.gray[300]};\n transition: border-color 0.2s ease, box-shadow 0.2s ease;\n &:hover {\n border-color: ${props.hasError\n ? t.dark\n ? t.color.red[300]\n : t.color.red[600]\n : t.dark\n ? t.color.gray[600]\n : t.color.gray[400]};\n }\n &:focus {\n outline: none;\n border-color: ${props.hasError\n ? t.dark\n ? t.color.red[300]\n : t.color.red[600]\n : t.dark\n ? t.color.gray[500]\n : t.color.gray[400]};\n ${t.dark ? \"\" : `box-shadow: 0 0 0 2px ${t.color.gray[300]};`}\n }\n &:focus:hover,\n &--is-focused,\n &--is-focused:hover {\n outline: none;\n border-color: ${props.hasError\n ? t.dark\n ? t.color.red[300]\n : t.color.red[600]\n : t.dark\n ? t.color.gray[500]\n : t.color.gray[400]};\n ${t.dark ? \"box-shadow: none;\" : `box-shadow: 0 0 0 2px ${t.color.gray[300]};`}\n }\n &--is-disabled {\n background-color: ${t.dark ? \"transparent\" : t.color.gray[100]};\n .form-select-ui__single-value {\n color: ${t.dark ? t.color.gray[500] : t.color.gray[600]};\n }\n ${t.dark && `border: 1px solid ${t.color.gray[800]};`}\n\n .form-select-ui__indicator svg {\n fill: ${t.color.gray[500]};\n stroke: ${t.dark ? t.color.gray[800] : t.color.gray[100]};\n }\n }\n\n ${t.mq[\"md\"]} {\n ${[t.h(8), t.text.sm]}\n min-height: ${t.spacing[8]};\n }\n }\n &__option {\n ${[t.h(10), t.px(2), t.text.base]}\n transition: color 0.2s ease, background-color 0.2s ease;\n display: flex;\n align-items: center;\n background-color: ${t.dark ? t.color.gray[700] : t.color.white};\n color: ${t.dark ? t.color.gray[200] : t.color.gray[600]};\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n &:hover,\n &--is-focused {\n background-color: ${t.dark ? t.color.gray[500] : t.color.gray[200]};\n color: ${t.dark ? t.color.white : t.color.black};\n }\n &--is-selected {\n background-color: ${t.dark ? t.color.gray[600] : t.color.gray[100]};\n color: ${t.dark ? t.color.white : t.color.black};\n }\n\n ${t.mq[\"md\"]} {\n ${[t.h(8), t.text.sm]}\n }\n }\n &__placeholder {\n ${[t.mx(0)]}\n color: ${t.color.gray[500]};\n }\n &__indicators {\n ${t.h(8)}\n align-items: center;\n height: 100%;\n span {\n display: none;\n }\n }\n &__indicator svg {\n height: 1.125rem;\n width: 1.125rem;\n stroke-width: 1px;\n fill: ${t.dark ? t.color.gray[300] : t.color.black};\n stroke: ${t.dark ? t.color.gray[800] : t.color.white};\n }\n &__dropdown-indicator {\n ${t.mr(\"px\")}\n padding: 0.3125rem;\n }\n &__clear-indicator svg {\n ${[t.rounded.xs]}\n position: relative;\n right: -${t.spacing[2]};\n background-color: ${t.dark ? t.color.gray[600] : t.color.gray[200]} !important;\n transition: background-color 0.2s ease;\n stroke: ${t.dark ? t.color.gray[600] : t.color.gray[200]};\n }\n &__clear-indicator:hover svg {\n background-color: ${t.dark ? t.color.orange[200] : t.color.gray[300]} !important;\n transition: background-color 0.2s ease;\n stroke: ${t.dark ? t.color.orange[200] : t.color.gray[300]};\n fill: ${t.color.black};\n }\n &__menu {\n ${[t.my(\"-px\"), t.rounded.sm]};\n border: 1px solid ${t.dark ? t.color.gray[500] : t.color.gray[400]};\n box-shadow: none;\n z-index: 20;\n }\n &__menu-list {\n ${[t.rounded.xs]};\n padding: 0;\n }\n &__value-container {\n ${[t.mx(0)]};\n height: 100%;\n > div {\n ${t.m(0)}\n }\n }\n &__input,\n &__single-value {\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n ${t.m(0)};\n }\n &__multi-value {\n ${[t.m(\"px\"), t.rounded.xs]};\n margin-right: 0.25rem !important;\n height: 1.375rem;\n display: flex;\n align-items: center;\n background-color: ${t.dark ? t.color.gray[600] : t.color.gray[200]};\n transition: background-color 0.2s ease;\n &__label {\n ${[t.text.sm, t.py(\"px\"), t.pr(0), t.pl(2)]};\n color: ${t.dark ? t.color.white : t.color.black};\n }\n &__remove {\n height: 1.375rem;\n color: ${t.dark ? t.color.gray[400] : t.color.gray[500]};\n &:hover {\n background: none;\n color: ${t.dark ? t.color.white : t.color.black};\n cursor: pointer;\n }\n }\n }\n &__menu-notice,\n &__menu-notice--no-options {\n color: ${t.dark ? t.color.gray[600] : t.color.gray[400]};\n background-color: ${t.dark ? t.color.gray[800] : t.color.white};\n }\n }\n `;\n});\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\nimport { useHotkeys } from \"react-hotkeys-hook\";\n\nimport { errorTextViaYupOrRailsOrJoi } from \"@shared/lib/formHelpers\";\n\nimport FormLabel from \"@ats/src/components/forms/FormLabel\";\n\nconst FormInput = (props) => {\n const { errors, label, isRequired, onKeyDown, defaultValue, requiredLabel } = props;\n let errorText = errorTextViaYupOrRailsOrJoi(props); // errorsDisplay(props);\n const inputRef = React.useRef(null);\n\n React.useEffect(() => {\n inputRef.current.addEventListener(\"keydown\", (event) => {\n if (event.keyCode === 27 || event.key === \"Escape\") {\n inputRef.current.blur();\n }\n return () => {\n inputRef.current.removeEventListener(\"keydown\");\n };\n });\n }, []);\n\n /* HOTKEYS\n --===================================================-- */\n useHotkeys(\n \"esc\",\n (event) => {\n event.preventDefault();\n event.stopPropagation();\n inputRef.current.blur();\n return false;\n },\n {},\n [],\n );\n\n const handleChange = (event) => {\n event.preventDefault();\n\n // Use the parent's scope to setState\n if (props.scope !== undefined) {\n props.scope.setState({\n [props.name]: event.currentTarget.value,\n errors: null,\n });\n } else if (props.onChange !== undefined) {\n props.onChange(props.name, event.currentTarget.value);\n }\n };\n\n const handleBlur = (event) => {\n event.preventDefault();\n\n if (props.onBlur !== undefined) {\n props.onBlur(props.name, event.currentTarget.value);\n }\n };\n\n // window.logger(\"%c[FormInput] Errors\", \"background: red; color: white;\", {\n // errors,\n // errorText,\n // });\n\n const inputId = props.label\n ? `input${props.label.replace(/\\s+/g, \"\")}`\n : props.name\n ? props.name\n : \"Default\";\n\n return (\n \n {label && (\n \n )}\n {props.description &&

{props.description}

}\n \n {props.pretext && {props.pretext}}\n \n \n {props.children} {/* For displaying Joi rendered errors. See NewInviteForm example. */}\n
\n );\n};\n\nFormInput.propTypes = {\n name: PropTypes.string.isRequired,\n placeholder: PropTypes.string,\n label: PropTypes.string,\n description: PropTypes.string,\n scope: PropTypes.object, // typically set to \"this\" from the parent so we can use setState\n onChange: PropTypes.func, //.isRequired, // This get's used as a callback if scope is not set\n className: PropTypes.string,\n inputType: PropTypes.string,\n pretext: PropTypes.string,\n value: PropTypes.any,\n autoFocus: PropTypes.bool,\n isRequired: PropTypes.bool,\n isDisabled: PropTypes.bool,\n defaultValue: PropTypes.string,\n errors: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),\n requiredLabel: PropTypes.string,\n};\n\nFormInput.defaultProps = {\n isRequired: false,\n isDisabled: false,\n requiredLabel: \"required\",\n};\n\nexport default FormInput;\n\n/* Styled Components\n======================================================= */\nconst Styled = {};\n\nStyled.Container = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: FormInput;\n ${t.mb(6)}\n > p {\n ${[t.text.sm, t.mt(-1), t.mb(2)]};\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n max-width: 32rem;\n\n a {\n ${[t.text.medium]}\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n\n &:hover {\n text-decoration: underline;\n }\n }\n\n ${t.mq[\"md\"]} {\n ${t.text.xs}\n }\n }\n\n ${t.mq[\"md\"]} {\n ${t.mb(5)}\n }\n `;\n});\n\nStyled.UI = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: FormInput_UI;\n display: flex;\n input {\n ${[t.h(10), t.px(2), t.rounded.sm, t.text.base]}\n appearance: none;\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n background-color: ${t.dark ? \"rgba(255,255,255,0.07)\" : t.color.white};\n width: 100%;\n text-overflow: ellipsis;\n border-width: 1px;\n border-style: solid;\n transition: border-color 0.2s ease, box-shadow 0.2s ease;\n border-color: ${props.hasError\n ? t.dark\n ? t.color.red[400]\n : t.color.red[500]\n : t.dark\n ? \"transparent\"\n : t.color.gray[300]};\n ${props.hasPretext ? \"border-top-left-radius: 0; border-bottom-left-radius: 0;\" : \"\"}\n &::placeholder {\n color: ${t.color.gray[500]};\n }\n &:hover {\n border-color: ${props.hasError\n ? t.dark\n ? t.color.red[300]\n : t.color.red[600]\n : t.dark\n ? t.color.gray[600]\n : t.color.gray[400]};\n }\n &:focus {\n outline: none;\n border-color: ${props.hasError\n ? t.dark\n ? t.color.red[300]\n : t.color.red[600]\n : t.dark\n ? t.color.gray[500]\n : t.color.gray[400]};\n ${t.dark ? \"\" : `box-shadow: 0 0 0 2px ${t.color.gray[300]};`}\n }\n &:disabled {\n color: ${t.dark ? t.color.gray[500] : t.color.gray[600]};\n background-color: ${t.dark ? \"transparent\" : t.color.gray[100]};\n ${t.dark && `border: 1px solid ${t.color.gray[800]};`}\n border-color: ${t.dark ? \"rgba(255,255,255,0.08)\" : t.color.gray[300]};\n }\n &:disabled:hover {\n ${!t.dark && `border-color: ${t.color.gray[300]};`}\n }\n\n ${t.mq[\"md\"]} {\n ${[t.h(8), t.text.sm]}\n }\n }\n input[type=\"number\"] {\n appearance: textfield;\n }\n input[type=\"number\"]::-webkit-inner-spin-button,\n input[type=\"number\"]::-webkit-outer-spin-button {\n appearance: none;\n margin: 0;\n }\n `;\n});\n\nStyled.Pretext = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: FormInput_Pretext;\n ${[t.h(10), t.px(2), t.text.base, t.rounded.sm]}\n color: ${t.dark ? t.color.gray[300] : t.color.gray[600]};\n display: flex;\n flex-shrink: 0;\n justify-content: center;\n align-items: center;\n border: 1px solid ${t.dark ? \"transparent\" : t.color.gray[300]};\n border-right: none;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n background-color: ${t.dark ? t.color.gray[700] : t.color.gray[100]};\n\n ${t.mq[\"md\"]} {\n ${[t.h(8), t.text.sm]}\n }\n `;\n});\n","import colors from \"./colors\";\nimport theme from \"./theme\";\n\nconst poly = {\n color: {\n canvas: colors.white,\n border: colors.gray[200],\n borderHover: colors.gray[400],\n loudText: colors.black,\n primaryText: colors.black,\n secondaryText: colors.gray[600],\n placeholderText: colors.gray[500],\n\n subtleHover: colors.gray[100],\n loudHover: colors.gray[200],\n\n wellCanvas: colors.gray[100],\n\n calloutCanvas: colors.gray[100],\n\n dropdownCanvas: colors.white,\n dropdownBorder: colors.gray[400],\n dropdownDivider: colors.gray[200],\n dropdownHover: colors.gray[200],\n dropdownTextHover: colors.black,\n\n cardCanvas: colors.white,\n cardBorder: colors.gray[200],\n cardDivider: colors.gray[200],\n\n chipBorder: colors.gray[300],\n },\n ...theme,\n};\n\nexport default poly;\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport { __assign, __values, __spread, __read, __rest } from './_virtual/_tslib.js';\nimport { DEFAULT_GUARD_TYPE, STATE_DELIMITER } from './constants.js';\nimport { IS_PRODUCTION } from './environment.js';\nimport { mapValues, isArray, flatten, keys, toArray, toStateValue, isString, getEventType, matchesState, path, mapContext, toSCXMLEvent, pathToStateValue, isBuiltInEvent, partition, updateContext, warn, updateHistoryValue, toStatePath, mapFilterValues, toStatePaths, nestedPath, normalizeTarget, toGuard, toTransitionConfigArray, isMachine, isFunction } from './utils.js';\nimport { SpecialTargets } from './types.js';\nimport { getAllStateNodes, getConfiguration, has, getChildren, isInFinalState, getValue, isLeafNode } from './stateUtils.js';\nimport { start as start$1, stop as stop$1, pure, log, send, raise as raise$1, invoke, update, nullEvent, assign } from './actionTypes.js';\nimport { done, start, raise, stop, toActionObjects, toActionObject, resolveLog, resolveSend, resolveRaise, doneInvoke, error, toActivityDefinition, after, send as send$1, cancel, initEvent } from './actions.js';\nimport { State, stateValuesEqual } from './State.js';\nimport { createInvocableActor } from './Actor.js';\nvar NULL_EVENT = '';\nvar STATE_IDENTIFIER = '#';\nvar WILDCARD = '*';\nvar EMPTY_OBJECT = {};\n\nvar isStateId = function isStateId(str) {\n return str[0] === STATE_IDENTIFIER;\n};\n\nvar createDefaultOptions = function createDefaultOptions() {\n return {\n actions: {},\n guards: {},\n services: {},\n activities: {},\n delays: {}\n };\n};\n\nvar validateArrayifiedTransitions = function validateArrayifiedTransitions(stateNode, event, transitions) {\n var hasNonLastUnguardedTarget = transitions.slice(0, -1).some(function (transition) {\n return !('cond' in transition) && !('in' in transition) && (isString(transition.target) || isMachine(transition.target));\n });\n var eventText = event === NULL_EVENT ? 'the transient event' : \"event '\" + event + \"'\";\n warn(!hasNonLastUnguardedTarget, \"One or more transitions for \" + eventText + \" on state '\" + stateNode.id + \"' are unreachable. \" + \"Make sure that the default transition is the last one defined.\");\n};\n\nvar StateNode =\n/*#__PURE__*/\n\n/** @class */\nfunction () {\n function StateNode(\n /**\r\n * The raw config used to create the machine.\r\n */\n config, options,\n /**\r\n * The initial extended state\r\n */\n context) {\n var _this = this;\n\n this.config = config;\n this.context = context;\n /**\r\n * The order this state node appears. Corresponds to the implicit SCXML document order.\r\n */\n\n this.order = -1;\n this.__xstatenode = true;\n this.__cache = {\n events: undefined,\n relativeValue: new Map(),\n initialStateValue: undefined,\n initialState: undefined,\n on: undefined,\n transitions: undefined,\n candidates: {},\n delayedTransitions: undefined\n };\n this.idMap = {};\n this.options = Object.assign(createDefaultOptions(), options);\n this.parent = this.options._parent;\n this.key = this.config.key || this.options._key || this.config.id || '(machine)';\n this.machine = this.parent ? this.parent.machine : this;\n this.path = this.parent ? this.parent.path.concat(this.key) : [];\n this.delimiter = this.config.delimiter || (this.parent ? this.parent.delimiter : STATE_DELIMITER);\n this.id = this.config.id || __spread([this.machine.key], this.path).join(this.delimiter);\n this.version = this.parent ? this.parent.version : this.config.version;\n this.type = this.config.type || (this.config.parallel ? 'parallel' : this.config.states && keys(this.config.states).length ? 'compound' : this.config.history ? 'history' : 'atomic');\n\n if (!IS_PRODUCTION) {\n warn(!('parallel' in this.config), \"The \\\"parallel\\\" property is deprecated and will be removed in version 4.1. \" + (this.config.parallel ? \"Replace with `type: 'parallel'`\" : \"Use `type: '\" + this.type + \"'`\") + \" in the config for state node '\" + this.id + \"' instead.\");\n }\n\n this.initial = this.config.initial;\n this.states = this.config.states ? mapValues(this.config.states, function (stateConfig, key) {\n var _a;\n\n var stateNode = new StateNode(stateConfig, {\n _parent: _this,\n _key: key\n });\n Object.assign(_this.idMap, __assign((_a = {}, _a[stateNode.id] = stateNode, _a), stateNode.idMap));\n return stateNode;\n }) : EMPTY_OBJECT; // Document order\n\n var order = 0;\n\n function dfs(stateNode) {\n var e_1, _a;\n\n stateNode.order = order++;\n\n try {\n for (var _b = __values(getChildren(stateNode)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n dfs(child);\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b[\"return\"])) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n }\n\n dfs(this); // History config\n\n this.history = this.config.history === true ? 'shallow' : this.config.history || false;\n this._transient = !this.config.on ? false : Array.isArray(this.config.on) ? this.config.on.some(function (_a) {\n var event = _a.event;\n return event === NULL_EVENT;\n }) : NULL_EVENT in this.config.on;\n this.strict = !!this.config.strict; // TODO: deprecate (entry)\n\n this.onEntry = toArray(this.config.entry || this.config.onEntry).map(function (action) {\n return toActionObject(action);\n }); // TODO: deprecate (exit)\n\n this.onExit = toArray(this.config.exit || this.config.onExit).map(function (action) {\n return toActionObject(action);\n });\n this.meta = this.config.meta;\n this.data = this.type === 'final' ? this.config.data : undefined;\n this.invoke = toArray(this.config.invoke).map(function (invokeConfig, i) {\n var _a, _b;\n\n if (isMachine(invokeConfig)) {\n _this.machine.options.services = __assign((_a = {}, _a[invokeConfig.id] = invokeConfig, _a), _this.machine.options.services);\n return {\n type: invoke,\n src: invokeConfig.id,\n id: invokeConfig.id\n };\n } else if (typeof invokeConfig.src !== 'string') {\n var invokeSrc = _this.id + \":invocation[\" + i + \"]\"; // TODO: util function\n\n _this.machine.options.services = __assign((_b = {}, _b[invokeSrc] = invokeConfig.src, _b), _this.machine.options.services);\n return __assign(__assign({\n type: invoke,\n id: invokeSrc\n }, invokeConfig), {\n src: invokeSrc\n });\n } else {\n return __assign(__assign({}, invokeConfig), {\n type: invoke,\n id: invokeConfig.id || invokeConfig.src,\n src: invokeConfig.src\n });\n }\n });\n this.activities = toArray(this.config.activities).concat(this.invoke).map(function (activity) {\n return toActivityDefinition(activity);\n });\n this.transition = this.transition.bind(this);\n }\n\n StateNode.prototype._init = function () {\n if (this.__cache.transitions) {\n return;\n }\n\n getAllStateNodes(this).forEach(function (stateNode) {\n return stateNode.on;\n });\n };\n /**\r\n * Clones this state machine with custom options and context.\r\n *\r\n * @param options Options (actions, guards, activities, services) to recursively merge with the existing options.\r\n * @param context Custom context (will override predefined context)\r\n */\n\n\n StateNode.prototype.withConfig = function (options, context) {\n if (context === void 0) {\n context = this.context;\n }\n\n var _a = this.options,\n actions = _a.actions,\n activities = _a.activities,\n guards = _a.guards,\n services = _a.services,\n delays = _a.delays;\n return new StateNode(this.config, {\n actions: __assign(__assign({}, actions), options.actions),\n activities: __assign(__assign({}, activities), options.activities),\n guards: __assign(__assign({}, guards), options.guards),\n services: __assign(__assign({}, services), options.services),\n delays: __assign(__assign({}, delays), options.delays)\n }, context);\n };\n /**\r\n * Clones this state machine with custom context.\r\n *\r\n * @param context Custom context (will override predefined context, not recursive)\r\n */\n\n\n StateNode.prototype.withContext = function (context) {\n return new StateNode(this.config, this.options, context);\n };\n\n Object.defineProperty(StateNode.prototype, \"definition\", {\n /**\r\n * The well-structured state node definition.\r\n */\n get: function get() {\n return {\n id: this.id,\n key: this.key,\n version: this.version,\n type: this.type,\n initial: this.initial,\n history: this.history,\n states: mapValues(this.states, function (state) {\n return state.definition;\n }),\n on: this.on,\n transitions: this.transitions,\n onEntry: this.onEntry,\n onExit: this.onExit,\n activities: this.activities || [],\n meta: this.meta,\n order: this.order || -1,\n data: this.data,\n invoke: this.invoke\n };\n },\n enumerable: true,\n configurable: true\n });\n\n StateNode.prototype.toJSON = function () {\n return this.definition;\n };\n\n Object.defineProperty(StateNode.prototype, \"on\", {\n /**\r\n * The mapping of events to transitions.\r\n */\n get: function get() {\n if (this.__cache.on) {\n return this.__cache.on;\n }\n\n var transitions = this.transitions;\n return this.__cache.on = transitions.reduce(function (map, transition) {\n map[transition.eventType] = map[transition.eventType] || [];\n map[transition.eventType].push(transition);\n return map;\n }, {});\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(StateNode.prototype, \"after\", {\n get: function get() {\n return this.__cache.delayedTransitions || (this.__cache.delayedTransitions = this.getDelayedTransitions(), this.__cache.delayedTransitions);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(StateNode.prototype, \"transitions\", {\n /**\r\n * All the transitions that can be taken from this state node.\r\n */\n get: function get() {\n return this.__cache.transitions || (this.__cache.transitions = this.formatTransitions(), this.__cache.transitions);\n },\n enumerable: true,\n configurable: true\n });\n\n StateNode.prototype.getCandidates = function (eventName) {\n if (this.__cache.candidates[eventName]) {\n return this.__cache.candidates[eventName];\n }\n\n var _transient = eventName === NULL_EVENT;\n\n var candidates = this.transitions.filter(function (transition) {\n var sameEventType = transition.eventType === eventName; // null events should only match against eventless transitions\n\n return _transient ? sameEventType : sameEventType || transition.eventType === WILDCARD;\n });\n this.__cache.candidates[eventName] = candidates;\n return candidates;\n };\n /**\r\n * All delayed transitions from the config.\r\n */\n\n\n StateNode.prototype.getDelayedTransitions = function () {\n var _this = this;\n\n var afterConfig = this.config.after;\n\n if (!afterConfig) {\n return [];\n }\n\n var mutateEntryExit = function mutateEntryExit(delay, i) {\n var delayRef = isFunction(delay) ? _this.id + \":delay[\" + i + \"]\" : delay;\n var eventType = after(delayRef, _this.id);\n\n _this.onEntry.push(send$1(eventType, {\n delay: delay\n }));\n\n _this.onExit.push(cancel(eventType));\n\n return eventType;\n };\n\n var delayedTransitions = isArray(afterConfig) ? afterConfig.map(function (transition, i) {\n var eventType = mutateEntryExit(transition.delay, i);\n return __assign(__assign({}, transition), {\n event: eventType\n });\n }) : flatten(keys(afterConfig).map(function (delay, i) {\n var configTransition = afterConfig[delay];\n var resolvedTransition = isString(configTransition) ? {\n target: configTransition\n } : configTransition;\n var resolvedDelay = !isNaN(+delay) ? +delay : delay;\n var eventType = mutateEntryExit(resolvedDelay, i);\n return toArray(resolvedTransition).map(function (transition) {\n return __assign(__assign({}, transition), {\n event: eventType,\n delay: resolvedDelay\n });\n });\n }));\n return delayedTransitions.map(function (delayedTransition) {\n var delay = delayedTransition.delay;\n return __assign(__assign({}, _this.formatTransition(delayedTransition)), {\n delay: delay\n });\n });\n };\n /**\r\n * Returns the state nodes represented by the current state value.\r\n *\r\n * @param state The state value or State instance\r\n */\n\n\n StateNode.prototype.getStateNodes = function (state) {\n var _a;\n\n var _this = this;\n\n if (!state) {\n return [];\n }\n\n var stateValue = state instanceof State ? state.value : toStateValue(state, this.delimiter);\n\n if (isString(stateValue)) {\n var initialStateValue = this.getStateNode(stateValue).initial;\n return initialStateValue !== undefined ? this.getStateNodes((_a = {}, _a[stateValue] = initialStateValue, _a)) : [this.states[stateValue]];\n }\n\n var subStateKeys = keys(stateValue);\n var subStateNodes = subStateKeys.map(function (subStateKey) {\n return _this.getStateNode(subStateKey);\n });\n return subStateNodes.concat(subStateKeys.reduce(function (allSubStateNodes, subStateKey) {\n var subStateNode = _this.getStateNode(subStateKey).getStateNodes(stateValue[subStateKey]);\n\n return allSubStateNodes.concat(subStateNode);\n }, []));\n };\n /**\r\n * Returns `true` if this state node explicitly handles the given event.\r\n *\r\n * @param event The event in question\r\n */\n\n\n StateNode.prototype.handles = function (event) {\n var eventType = getEventType(event);\n return this.events.includes(eventType);\n };\n /**\r\n * Resolves the given `state` to a new `State` instance relative to this machine.\r\n *\r\n * This ensures that `.events` and `.nextEvents` represent the correct values.\r\n *\r\n * @param state The state to resolve\r\n */\n\n\n StateNode.prototype.resolveState = function (state) {\n var configuration = Array.from(getConfiguration([], this.getStateNodes(state.value)));\n return new State(__assign(__assign({}, state), {\n value: this.resolve(state.value),\n configuration: configuration\n }));\n };\n\n StateNode.prototype.transitionLeafNode = function (stateValue, state, _event) {\n var stateNode = this.getStateNode(stateValue);\n var next = stateNode.next(state, _event);\n\n if (!next || !next.transitions.length) {\n return this.next(state, _event);\n }\n\n return next;\n };\n\n StateNode.prototype.transitionCompoundNode = function (stateValue, state, _event) {\n var subStateKeys = keys(stateValue);\n var stateNode = this.getStateNode(subStateKeys[0]);\n\n var next = stateNode._transition(stateValue[subStateKeys[0]], state, _event);\n\n if (!next || !next.transitions.length) {\n return this.next(state, _event);\n }\n\n return next;\n };\n\n StateNode.prototype.transitionParallelNode = function (stateValue, state, _event) {\n var e_2, _a;\n\n var transitionMap = {};\n\n try {\n for (var _b = __values(keys(stateValue)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var subStateKey = _c.value;\n var subStateValue = stateValue[subStateKey];\n\n if (!subStateValue) {\n continue;\n }\n\n var subStateNode = this.getStateNode(subStateKey);\n\n var next = subStateNode._transition(subStateValue, state, _event);\n\n if (next) {\n transitionMap[subStateKey] = next;\n }\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b[\"return\"])) _a.call(_b);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n\n var stateTransitions = keys(transitionMap).map(function (key) {\n return transitionMap[key];\n });\n var enabledTransitions = flatten(stateTransitions.map(function (st) {\n return st.transitions;\n }));\n var willTransition = stateTransitions.some(function (st) {\n return st.transitions.length > 0;\n });\n\n if (!willTransition) {\n return this.next(state, _event);\n }\n\n var entryNodes = flatten(stateTransitions.map(function (t) {\n return t.entrySet;\n }));\n var configuration = flatten(keys(transitionMap).map(function (key) {\n return transitionMap[key].configuration;\n }));\n return {\n transitions: enabledTransitions,\n entrySet: entryNodes,\n exitSet: flatten(stateTransitions.map(function (t) {\n return t.exitSet;\n })),\n configuration: configuration,\n source: state,\n actions: flatten(keys(transitionMap).map(function (key) {\n return transitionMap[key].actions;\n }))\n };\n };\n\n StateNode.prototype._transition = function (stateValue, state, _event) {\n // leaf node\n if (isString(stateValue)) {\n return this.transitionLeafNode(stateValue, state, _event);\n } // hierarchical node\n\n\n if (keys(stateValue).length === 1) {\n return this.transitionCompoundNode(stateValue, state, _event);\n } // orthogonal node\n\n\n return this.transitionParallelNode(stateValue, state, _event);\n };\n\n StateNode.prototype.next = function (state, _event) {\n var e_3, _a;\n\n var _this = this;\n\n var eventName = _event.name;\n var actions = [];\n var nextStateNodes = [];\n var selectedTransition;\n\n try {\n for (var _b = __values(this.getCandidates(eventName)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var candidate = _c.value;\n var cond = candidate.cond,\n stateIn = candidate[\"in\"];\n var resolvedContext = state.context;\n var isInState = stateIn ? isString(stateIn) && isStateId(stateIn) ? // Check if in state by ID\n state.matches(toStateValue(this.getStateNodeById(stateIn).path, this.delimiter)) : // Check if in state by relative grandparent\n matchesState(toStateValue(stateIn, this.delimiter), path(this.path.slice(0, -2))(state.value)) : true;\n var guardPassed = false;\n\n try {\n guardPassed = !cond || this.evaluateGuard(cond, resolvedContext, _event, state);\n } catch (err) {\n throw new Error(\"Unable to evaluate guard '\" + (cond.name || cond.type) + \"' in transition for event '\" + eventName + \"' in state node '\" + this.id + \"':\\n\" + err.message);\n }\n\n if (guardPassed && isInState) {\n if (candidate.target !== undefined) {\n nextStateNodes = candidate.target;\n }\n\n actions.push.apply(actions, __spread(candidate.actions));\n selectedTransition = candidate;\n break;\n }\n }\n } catch (e_3_1) {\n e_3 = {\n error: e_3_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b[\"return\"])) _a.call(_b);\n } finally {\n if (e_3) throw e_3.error;\n }\n }\n\n if (!selectedTransition) {\n return undefined;\n }\n\n if (!nextStateNodes.length) {\n return {\n transitions: [selectedTransition],\n entrySet: [],\n exitSet: [],\n configuration: state.value ? [this] : [],\n source: state,\n actions: actions\n };\n }\n\n var allNextStateNodes = flatten(nextStateNodes.map(function (stateNode) {\n return _this.getRelativeStateNodes(stateNode, state.historyValue);\n }));\n var isInternal = !!selectedTransition.internal;\n var reentryNodes = isInternal ? [] : flatten(allNextStateNodes.map(function (n) {\n return _this.nodesFromChild(n);\n }));\n return {\n transitions: [selectedTransition],\n entrySet: reentryNodes,\n exitSet: isInternal ? [] : [this],\n configuration: allNextStateNodes,\n source: state,\n actions: actions\n };\n };\n\n StateNode.prototype.nodesFromChild = function (childStateNode) {\n if (childStateNode.escapes(this)) {\n return [];\n }\n\n var nodes = [];\n var marker = childStateNode;\n\n while (marker && marker !== this) {\n nodes.push(marker);\n marker = marker.parent;\n }\n\n nodes.push(this); // inclusive\n\n return nodes;\n };\n /**\r\n * Whether the given state node \"escapes\" this state node. If the `stateNode` is equal to or the parent of\r\n * this state node, it does not escape.\r\n */\n\n\n StateNode.prototype.escapes = function (stateNode) {\n if (this === stateNode) {\n return false;\n }\n\n var parent = this.parent;\n\n while (parent) {\n if (parent === stateNode) {\n return false;\n }\n\n parent = parent.parent;\n }\n\n return true;\n };\n\n StateNode.prototype.evaluateGuard = function (guard, context, _event, state) {\n var guards = this.machine.options.guards;\n var guardMeta = {\n state: state,\n cond: guard,\n _event: _event\n }; // TODO: do not hardcode!\n\n if (guard.type === DEFAULT_GUARD_TYPE) {\n return guard.predicate(context, _event.data, guardMeta);\n }\n\n var condFn = guards[guard.type];\n\n if (!condFn) {\n throw new Error(\"Guard '\" + guard.type + \"' is not implemented on machine '\" + this.machine.id + \"'.\");\n }\n\n return condFn(context, _event.data, guardMeta);\n };\n\n StateNode.prototype.getActions = function (transition, currentContext, _event, prevState) {\n var e_4, _a, e_5, _b;\n\n var prevConfig = getConfiguration([], prevState ? this.getStateNodes(prevState.value) : [this]);\n var resolvedConfig = transition.configuration.length ? getConfiguration(prevConfig, transition.configuration) : prevConfig;\n\n try {\n for (var resolvedConfig_1 = __values(resolvedConfig), resolvedConfig_1_1 = resolvedConfig_1.next(); !resolvedConfig_1_1.done; resolvedConfig_1_1 = resolvedConfig_1.next()) {\n var sn = resolvedConfig_1_1.value;\n\n if (!has(prevConfig, sn)) {\n transition.entrySet.push(sn);\n }\n }\n } catch (e_4_1) {\n e_4 = {\n error: e_4_1\n };\n } finally {\n try {\n if (resolvedConfig_1_1 && !resolvedConfig_1_1.done && (_a = resolvedConfig_1[\"return\"])) _a.call(resolvedConfig_1);\n } finally {\n if (e_4) throw e_4.error;\n }\n }\n\n try {\n for (var prevConfig_1 = __values(prevConfig), prevConfig_1_1 = prevConfig_1.next(); !prevConfig_1_1.done; prevConfig_1_1 = prevConfig_1.next()) {\n var sn = prevConfig_1_1.value;\n\n if (!has(resolvedConfig, sn) || has(transition.exitSet, sn.parent)) {\n transition.exitSet.push(sn);\n }\n }\n } catch (e_5_1) {\n e_5 = {\n error: e_5_1\n };\n } finally {\n try {\n if (prevConfig_1_1 && !prevConfig_1_1.done && (_b = prevConfig_1[\"return\"])) _b.call(prevConfig_1);\n } finally {\n if (e_5) throw e_5.error;\n }\n }\n\n if (!transition.source) {\n transition.exitSet = []; // Ensure that root StateNode (machine) is entered\n\n transition.entrySet.push(this);\n }\n\n var doneEvents = flatten(transition.entrySet.map(function (sn) {\n var events = [];\n\n if (sn.type !== 'final') {\n return events;\n }\n\n var parent = sn.parent;\n events.push(done(sn.id, sn.data), // TODO: deprecate - final states should not emit done events for their own state.\n done(parent.id, sn.data ? mapContext(sn.data, currentContext, _event) : undefined));\n\n if (parent.parent) {\n var grandparent = parent.parent;\n\n if (grandparent.type === 'parallel') {\n if (getChildren(grandparent).every(function (parentNode) {\n return isInFinalState(transition.configuration, parentNode);\n })) {\n events.push(done(grandparent.id, grandparent.data));\n }\n }\n }\n\n return events;\n }));\n transition.exitSet.sort(function (a, b) {\n return b.order - a.order;\n });\n transition.entrySet.sort(function (a, b) {\n return a.order - b.order;\n });\n var entryStates = new Set(transition.entrySet);\n var exitStates = new Set(transition.exitSet);\n\n var _c = __read([flatten(Array.from(entryStates).map(function (stateNode) {\n return __spread(stateNode.activities.map(function (activity) {\n return start(activity);\n }), stateNode.onEntry);\n })).concat(doneEvents.map(raise)), flatten(Array.from(exitStates).map(function (stateNode) {\n return __spread(stateNode.onExit, stateNode.activities.map(function (activity) {\n return stop(activity);\n }));\n }))], 2),\n entryActions = _c[0],\n exitActions = _c[1];\n\n var actions = toActionObjects(exitActions.concat(transition.actions).concat(entryActions), this.machine.options.actions);\n return actions;\n };\n /**\r\n * Determines the next state given the current `state` and sent `event`.\r\n *\r\n * @param state The current State instance or state value\r\n * @param event The event that was sent at the current state\r\n * @param context The current context (extended state) of the current state\r\n */\n\n\n StateNode.prototype.transition = function (state, event, context) {\n if (state === void 0) {\n state = this.initialState;\n }\n\n var _event = toSCXMLEvent(event);\n\n var currentState;\n\n if (state instanceof State) {\n currentState = context === undefined ? state : this.resolveState(State.from(state, context));\n } else {\n var resolvedStateValue = isString(state) ? this.resolve(pathToStateValue(this.getResolvedPath(state))) : this.resolve(state);\n var resolvedContext = context ? context : this.machine.context;\n currentState = this.resolveState(State.from(resolvedStateValue, resolvedContext));\n }\n\n if (!IS_PRODUCTION && _event.name === WILDCARD) {\n throw new Error(\"An event cannot have the wildcard type ('\" + WILDCARD + \"')\");\n }\n\n if (this.strict) {\n if (!this.events.includes(_event.name) && !isBuiltInEvent(_event.name)) {\n throw new Error(\"Machine '\" + this.id + \"' does not accept event '\" + _event.name + \"'\");\n }\n }\n\n var stateTransition = this._transition(currentState.value, currentState, _event) || {\n transitions: [],\n configuration: [],\n entrySet: [],\n exitSet: [],\n source: currentState,\n actions: []\n };\n var prevConfig = getConfiguration([], this.getStateNodes(currentState.value));\n var resolvedConfig = stateTransition.configuration.length ? getConfiguration(prevConfig, stateTransition.configuration) : prevConfig;\n stateTransition.configuration = __spread(resolvedConfig);\n return this.resolveTransition(stateTransition, currentState, _event);\n };\n\n StateNode.prototype.resolveRaisedTransition = function (state, _event, originalEvent) {\n var _a;\n\n var currentActions = state.actions;\n state = this.transition(state, _event); // Save original event to state\n\n state._event = originalEvent;\n state.event = originalEvent.data;\n\n (_a = state.actions).unshift.apply(_a, __spread(currentActions));\n\n return state;\n };\n\n StateNode.prototype.resolveTransition = function (stateTransition, currentState, _event, context) {\n var e_6, _a;\n\n var _this = this;\n\n if (_event === void 0) {\n _event = initEvent;\n }\n\n if (context === void 0) {\n context = this.machine.context;\n }\n\n var configuration = stateTransition.configuration; // Transition will \"apply\" if:\n // - this is the initial state (there is no current state)\n // - OR there are transitions\n\n var willTransition = !currentState || stateTransition.transitions.length > 0;\n var resolvedStateValue = willTransition ? getValue(this.machine, configuration) : undefined;\n var historyValue = currentState ? currentState.historyValue ? currentState.historyValue : stateTransition.source ? this.machine.historyValue(currentState.value) : undefined : undefined;\n var currentContext = currentState ? currentState.context : context;\n var actions = this.getActions(stateTransition, currentContext, _event, currentState);\n var activities = currentState ? __assign({}, currentState.activities) : {};\n\n try {\n for (var actions_1 = __values(actions), actions_1_1 = actions_1.next(); !actions_1_1.done; actions_1_1 = actions_1.next()) {\n var action = actions_1_1.value;\n\n if (action.type === start$1) {\n activities[action.activity.type] = action;\n } else if (action.type === stop$1) {\n activities[action.activity.type] = false;\n }\n }\n } catch (e_6_1) {\n e_6 = {\n error: e_6_1\n };\n } finally {\n try {\n if (actions_1_1 && !actions_1_1.done && (_a = actions_1[\"return\"])) _a.call(actions_1);\n } finally {\n if (e_6) throw e_6.error;\n }\n }\n\n var _b = __read(partition(actions, function (action) {\n return action.type === assign;\n }), 2),\n assignActions = _b[0],\n otherActions = _b[1];\n\n var updatedContext = assignActions.length ? updateContext(currentContext, _event, assignActions, currentState) : currentContext;\n var resolvedActions = flatten(otherActions.map(function (actionObject) {\n switch (actionObject.type) {\n case raise$1:\n return resolveRaise(actionObject);\n\n case send:\n var sendAction = resolveSend(actionObject, updatedContext, _event, _this.machine.options.delays); // TODO: fix ActionTypes.Init\n\n if (!IS_PRODUCTION) {\n // warn after resolving as we can create better contextual message here\n warn(!isString(actionObject.delay) || typeof sendAction.delay === 'number', // tslint:disable-next-line:max-line-length\n \"No delay reference for delay expression '\" + actionObject.delay + \"' was found on machine '\" + _this.machine.id + \"'\");\n }\n\n return sendAction;\n\n case log:\n return resolveLog(actionObject, updatedContext, _event);\n\n case pure:\n return actionObject.get(updatedContext, _event.data) || [];\n\n default:\n return toActionObject(actionObject, _this.options.actions);\n }\n }));\n\n var _c = __read(partition(resolvedActions, function (action) {\n return action.type === raise$1 || action.type === send && action.to === SpecialTargets.Internal;\n }), 2),\n raisedEvents = _c[0],\n nonRaisedActions = _c[1];\n\n var invokeActions = resolvedActions.filter(function (action) {\n return action.type === start$1 && action.activity.type === invoke;\n });\n var children = invokeActions.reduce(function (acc, action) {\n acc[action.activity.id] = createInvocableActor(action.activity);\n return acc;\n }, currentState ? __assign({}, currentState.children) : {});\n var resolvedConfiguration = resolvedStateValue ? stateTransition.configuration : currentState ? currentState.configuration : [];\n var meta = resolvedConfiguration.reduce(function (acc, stateNode) {\n if (stateNode.meta !== undefined) {\n acc[stateNode.id] = stateNode.meta;\n }\n\n return acc;\n }, {});\n var isDone = isInFinalState(resolvedConfiguration, this);\n var nextState = new State({\n value: resolvedStateValue || currentState.value,\n context: updatedContext,\n _event: _event,\n // Persist _sessionid between states\n _sessionid: currentState ? currentState._sessionid : null,\n historyValue: resolvedStateValue ? historyValue ? updateHistoryValue(historyValue, resolvedStateValue) : undefined : currentState ? currentState.historyValue : undefined,\n history: !resolvedStateValue || stateTransition.source ? currentState : undefined,\n actions: resolvedStateValue ? nonRaisedActions : [],\n activities: resolvedStateValue ? activities : currentState ? currentState.activities : {},\n meta: resolvedStateValue ? meta : currentState ? currentState.meta : undefined,\n events: [],\n configuration: resolvedConfiguration,\n transitions: stateTransition.transitions,\n children: children,\n done: isDone\n });\n nextState.changed = _event.name === update || !!assignActions.length; // Dispose of penultimate histories to prevent memory leaks\n\n var history = nextState.history;\n\n if (history) {\n delete history.history;\n }\n\n if (!resolvedStateValue) {\n return nextState;\n }\n\n var maybeNextState = nextState;\n\n if (!isDone) {\n var isTransient = this._transient || configuration.some(function (stateNode) {\n return stateNode._transient;\n });\n\n if (isTransient) {\n maybeNextState = this.resolveRaisedTransition(maybeNextState, {\n type: nullEvent\n }, _event);\n }\n\n while (raisedEvents.length) {\n var raisedEvent = raisedEvents.shift();\n maybeNextState = this.resolveRaisedTransition(maybeNextState, raisedEvent._event, _event);\n }\n } // Detect if state changed\n\n\n var changed = maybeNextState.changed || (history ? !!maybeNextState.actions.length || !!assignActions.length || _typeof(history.value) !== _typeof(maybeNextState.value) || !stateValuesEqual(maybeNextState.value, history.value) : undefined);\n maybeNextState.changed = changed; // Preserve original history after raised events\n\n maybeNextState.historyValue = nextState.historyValue;\n maybeNextState.history = history;\n return maybeNextState;\n };\n /**\r\n * Returns the child state node from its relative `stateKey`, or throws.\r\n */\n\n\n StateNode.prototype.getStateNode = function (stateKey) {\n if (isStateId(stateKey)) {\n return this.machine.getStateNodeById(stateKey);\n }\n\n if (!this.states) {\n throw new Error(\"Unable to retrieve child state '\" + stateKey + \"' from '\" + this.id + \"'; no child states exist.\");\n }\n\n var result = this.states[stateKey];\n\n if (!result) {\n throw new Error(\"Child state '\" + stateKey + \"' does not exist on '\" + this.id + \"'\");\n }\n\n return result;\n };\n /**\r\n * Returns the state node with the given `stateId`, or throws.\r\n *\r\n * @param stateId The state ID. The prefix \"#\" is removed.\r\n */\n\n\n StateNode.prototype.getStateNodeById = function (stateId) {\n var resolvedStateId = isStateId(stateId) ? stateId.slice(STATE_IDENTIFIER.length) : stateId;\n\n if (resolvedStateId === this.id) {\n return this;\n }\n\n var stateNode = this.machine.idMap[resolvedStateId];\n\n if (!stateNode) {\n throw new Error(\"Child state node '#\" + resolvedStateId + \"' does not exist on machine '\" + this.id + \"'\");\n }\n\n return stateNode;\n };\n /**\r\n * Returns the relative state node from the given `statePath`, or throws.\r\n *\r\n * @param statePath The string or string array relative path to the state node.\r\n */\n\n\n StateNode.prototype.getStateNodeByPath = function (statePath) {\n if (typeof statePath === 'string' && isStateId(statePath)) {\n try {\n return this.getStateNodeById(statePath.slice(1));\n } catch (e) {// try individual paths\n // throw e;\n }\n }\n\n var arrayStatePath = toStatePath(statePath, this.delimiter).slice();\n var currentStateNode = this;\n\n while (arrayStatePath.length) {\n var key = arrayStatePath.shift();\n\n if (!key.length) {\n break;\n }\n\n currentStateNode = currentStateNode.getStateNode(key);\n }\n\n return currentStateNode;\n };\n /**\r\n * Resolves a partial state value with its full representation in this machine.\r\n *\r\n * @param stateValue The partial state value to resolve.\r\n */\n\n\n StateNode.prototype.resolve = function (stateValue) {\n var _a;\n\n var _this = this;\n\n if (!stateValue) {\n return this.initialStateValue || EMPTY_OBJECT; // TODO: type-specific properties\n }\n\n switch (this.type) {\n case 'parallel':\n return mapValues(this.initialStateValue, function (subStateValue, subStateKey) {\n return subStateValue ? _this.getStateNode(subStateKey).resolve(stateValue[subStateKey] || subStateValue) : EMPTY_OBJECT;\n });\n\n case 'compound':\n if (isString(stateValue)) {\n var subStateNode = this.getStateNode(stateValue);\n\n if (subStateNode.type === 'parallel' || subStateNode.type === 'compound') {\n return _a = {}, _a[stateValue] = subStateNode.initialStateValue, _a;\n }\n\n return stateValue;\n }\n\n if (!keys(stateValue).length) {\n return this.initialStateValue || {};\n }\n\n return mapValues(stateValue, function (subStateValue, subStateKey) {\n return subStateValue ? _this.getStateNode(subStateKey).resolve(subStateValue) : EMPTY_OBJECT;\n });\n\n default:\n return stateValue || EMPTY_OBJECT;\n }\n };\n\n StateNode.prototype.getResolvedPath = function (stateIdentifier) {\n if (isStateId(stateIdentifier)) {\n var stateNode = this.machine.idMap[stateIdentifier.slice(STATE_IDENTIFIER.length)];\n\n if (!stateNode) {\n throw new Error(\"Unable to find state node '\" + stateIdentifier + \"'\");\n }\n\n return stateNode.path;\n }\n\n return toStatePath(stateIdentifier, this.delimiter);\n };\n\n Object.defineProperty(StateNode.prototype, \"initialStateValue\", {\n get: function get() {\n var _a;\n\n if (this.__cache.initialStateValue) {\n return this.__cache.initialStateValue;\n }\n\n var initialStateValue;\n\n if (this.type === 'parallel') {\n initialStateValue = mapFilterValues(this.states, function (state) {\n return state.initialStateValue || EMPTY_OBJECT;\n }, function (stateNode) {\n return !(stateNode.type === 'history');\n });\n } else if (this.initial !== undefined) {\n if (!this.states[this.initial]) {\n throw new Error(\"Initial state '\" + this.initial + \"' not found on '\" + this.key + \"'\");\n }\n\n initialStateValue = isLeafNode(this.states[this.initial]) ? this.initial : (_a = {}, _a[this.initial] = this.states[this.initial].initialStateValue, _a);\n }\n\n this.__cache.initialStateValue = initialStateValue;\n return this.__cache.initialStateValue;\n },\n enumerable: true,\n configurable: true\n });\n\n StateNode.prototype.getInitialState = function (stateValue, context) {\n var configuration = this.getStateNodes(stateValue);\n return this.resolveTransition({\n configuration: configuration,\n entrySet: configuration,\n exitSet: [],\n transitions: [],\n source: undefined,\n actions: []\n }, undefined, undefined, context);\n };\n\n Object.defineProperty(StateNode.prototype, \"initialState\", {\n /**\r\n * The initial State instance, which includes all actions to be executed from\r\n * entering the initial state.\r\n */\n get: function get() {\n this._init();\n\n var initialStateValue = this.initialStateValue;\n\n if (!initialStateValue) {\n throw new Error(\"Cannot retrieve initial state from simple state '\" + this.id + \"'.\");\n }\n\n return this.getInitialState(initialStateValue);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(StateNode.prototype, \"target\", {\n /**\r\n * The target state value of the history state node, if it exists. This represents the\r\n * default state value to transition to if no history value exists yet.\r\n */\n get: function get() {\n var target;\n\n if (this.type === 'history') {\n var historyConfig = this.config;\n\n if (isString(historyConfig.target)) {\n target = isStateId(historyConfig.target) ? pathToStateValue(this.machine.getStateNodeById(historyConfig.target).path.slice(this.path.length - 1)) : historyConfig.target;\n } else {\n target = historyConfig.target;\n }\n }\n\n return target;\n },\n enumerable: true,\n configurable: true\n });\n /**\r\n * Returns the leaf nodes from a state path relative to this state node.\r\n *\r\n * @param relativeStateId The relative state path to retrieve the state nodes\r\n * @param history The previous state to retrieve history\r\n * @param resolve Whether state nodes should resolve to initial child state nodes\r\n */\n\n StateNode.prototype.getRelativeStateNodes = function (relativeStateId, historyValue, resolve) {\n if (resolve === void 0) {\n resolve = true;\n }\n\n return resolve ? relativeStateId.type === 'history' ? relativeStateId.resolveHistory(historyValue) : relativeStateId.initialStateNodes : [relativeStateId];\n };\n\n Object.defineProperty(StateNode.prototype, \"initialStateNodes\", {\n get: function get() {\n var _this = this;\n\n if (isLeafNode(this)) {\n return [this];\n } // Case when state node is compound but no initial state is defined\n\n\n if (this.type === 'compound' && !this.initial) {\n if (!IS_PRODUCTION) {\n warn(false, \"Compound state node '\" + this.id + \"' has no initial state.\");\n }\n\n return [this];\n }\n\n var initialStateNodePaths = toStatePaths(this.initialStateValue);\n return flatten(initialStateNodePaths.map(function (initialPath) {\n return _this.getFromRelativePath(initialPath);\n }));\n },\n enumerable: true,\n configurable: true\n });\n /**\r\n * Retrieves state nodes from a relative path to this state node.\r\n *\r\n * @param relativePath The relative path from this state node\r\n * @param historyValue\r\n */\n\n StateNode.prototype.getFromRelativePath = function (relativePath) {\n if (!relativePath.length) {\n return [this];\n }\n\n var _a = __read(relativePath),\n stateKey = _a[0],\n childStatePath = _a.slice(1);\n\n if (!this.states) {\n throw new Error(\"Cannot retrieve subPath '\" + stateKey + \"' from node with no states\");\n }\n\n var childStateNode = this.getStateNode(stateKey);\n\n if (childStateNode.type === 'history') {\n return childStateNode.resolveHistory();\n }\n\n if (!this.states[stateKey]) {\n throw new Error(\"Child state '\" + stateKey + \"' does not exist on '\" + this.id + \"'\");\n }\n\n return this.states[stateKey].getFromRelativePath(childStatePath);\n };\n\n StateNode.prototype.historyValue = function (relativeStateValue) {\n if (!keys(this.states).length) {\n return undefined;\n }\n\n return {\n current: relativeStateValue || this.initialStateValue,\n states: mapFilterValues(this.states, function (stateNode, key) {\n if (!relativeStateValue) {\n return stateNode.historyValue();\n }\n\n var subStateValue = isString(relativeStateValue) ? undefined : relativeStateValue[key];\n return stateNode.historyValue(subStateValue || stateNode.initialStateValue);\n }, function (stateNode) {\n return !stateNode.history;\n })\n };\n };\n /**\r\n * Resolves to the historical value(s) of the parent state node,\r\n * represented by state nodes.\r\n *\r\n * @param historyValue\r\n */\n\n\n StateNode.prototype.resolveHistory = function (historyValue) {\n var _this = this;\n\n if (this.type !== 'history') {\n return [this];\n }\n\n var parent = this.parent;\n\n if (!historyValue) {\n var historyTarget = this.target;\n return historyTarget ? flatten(toStatePaths(historyTarget).map(function (relativeChildPath) {\n return parent.getFromRelativePath(relativeChildPath);\n })) : parent.initialStateNodes;\n }\n\n var subHistoryValue = nestedPath(parent.path, 'states')(historyValue).current;\n\n if (isString(subHistoryValue)) {\n return [parent.getStateNode(subHistoryValue)];\n }\n\n return flatten(toStatePaths(subHistoryValue).map(function (subStatePath) {\n return _this.history === 'deep' ? parent.getFromRelativePath(subStatePath) : [parent.states[subStatePath[0]]];\n }));\n };\n\n Object.defineProperty(StateNode.prototype, \"stateIds\", {\n /**\r\n * All the state node IDs of this state node and its descendant state nodes.\r\n */\n get: function get() {\n var _this = this;\n\n var childStateIds = flatten(keys(this.states).map(function (stateKey) {\n return _this.states[stateKey].stateIds;\n }));\n return [this.id].concat(childStateIds);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(StateNode.prototype, \"events\", {\n /**\r\n * All the event types accepted by this state node and its descendants.\r\n */\n get: function get() {\n var e_7, _a, e_8, _b;\n\n if (this.__cache.events) {\n return this.__cache.events;\n }\n\n var states = this.states;\n var events = new Set(this.ownEvents);\n\n if (states) {\n try {\n for (var _c = __values(keys(states)), _d = _c.next(); !_d.done; _d = _c.next()) {\n var stateId = _d.value;\n var state = states[stateId];\n\n if (state.states) {\n try {\n for (var _e = (e_8 = void 0, __values(state.events)), _f = _e.next(); !_f.done; _f = _e.next()) {\n var event_1 = _f.value;\n events.add(\"\" + event_1);\n }\n } catch (e_8_1) {\n e_8 = {\n error: e_8_1\n };\n } finally {\n try {\n if (_f && !_f.done && (_b = _e[\"return\"])) _b.call(_e);\n } finally {\n if (e_8) throw e_8.error;\n }\n }\n }\n }\n } catch (e_7_1) {\n e_7 = {\n error: e_7_1\n };\n } finally {\n try {\n if (_d && !_d.done && (_a = _c[\"return\"])) _a.call(_c);\n } finally {\n if (e_7) throw e_7.error;\n }\n }\n }\n\n return this.__cache.events = Array.from(events);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(StateNode.prototype, \"ownEvents\", {\n /**\r\n * All the events that have transitions directly from this state node.\r\n *\r\n * Excludes any inert events.\r\n */\n get: function get() {\n var events = new Set(this.transitions.filter(function (transition) {\n return !(!transition.target && !transition.actions.length && transition.internal);\n }).map(function (transition) {\n return transition.eventType;\n }));\n return Array.from(events);\n },\n enumerable: true,\n configurable: true\n });\n\n StateNode.prototype.resolveTarget = function (_target) {\n var _this = this;\n\n if (_target === undefined) {\n // an undefined target signals that the state node should not transition from that state when receiving that event\n return undefined;\n }\n\n return _target.map(function (target) {\n if (!isString(target)) {\n return target;\n }\n\n var isInternalTarget = target[0] === _this.delimiter; // If internal target is defined on machine,\n // do not include machine key on target\n\n if (isInternalTarget && !_this.parent) {\n return _this.getStateNodeByPath(target.slice(1));\n }\n\n var resolvedTarget = isInternalTarget ? _this.key + target : target;\n\n if (_this.parent) {\n try {\n var targetStateNode = _this.parent.getStateNodeByPath(resolvedTarget);\n\n return targetStateNode;\n } catch (err) {\n throw new Error(\"Invalid transition definition for state node '\" + _this.id + \"':\\n\" + err.message);\n }\n } else {\n return _this.getStateNodeByPath(resolvedTarget);\n }\n });\n };\n\n StateNode.prototype.formatTransition = function (transitionConfig) {\n var _this = this;\n\n var normalizedTarget = normalizeTarget(transitionConfig.target);\n var internal = 'internal' in transitionConfig ? transitionConfig.internal : normalizedTarget ? normalizedTarget.some(function (_target) {\n return isString(_target) && _target[0] === _this.delimiter;\n }) : true;\n var guards = this.machine.options.guards;\n var target = this.resolveTarget(normalizedTarget);\n return __assign(__assign({}, transitionConfig), {\n actions: toActionObjects(toArray(transitionConfig.actions)),\n cond: toGuard(transitionConfig.cond, guards),\n target: target,\n source: this,\n internal: internal,\n eventType: transitionConfig.event\n });\n };\n\n StateNode.prototype.formatTransitions = function () {\n var e_9, _a;\n\n var _this = this;\n\n var onConfig;\n\n if (!this.config.on) {\n onConfig = [];\n } else if (Array.isArray(this.config.on)) {\n onConfig = this.config.on;\n } else {\n var _b = this.config.on,\n _c = WILDCARD,\n _d = _b[_c],\n wildcardConfigs = _d === void 0 ? [] : _d,\n strictOnConfigs_1 = __rest(_b, [_typeof(_c) === \"symbol\" ? _c : _c + \"\"]);\n\n onConfig = flatten(keys(strictOnConfigs_1).map(function (key) {\n var arrayified = toTransitionConfigArray(key, strictOnConfigs_1[key]);\n\n if (!IS_PRODUCTION) {\n validateArrayifiedTransitions(_this, key, arrayified);\n }\n\n return arrayified;\n }).concat(toTransitionConfigArray(WILDCARD, wildcardConfigs)));\n }\n\n var doneConfig = this.config.onDone ? toTransitionConfigArray(String(done(this.id)), this.config.onDone) : [];\n var invokeConfig = flatten(this.invoke.map(function (invokeDef) {\n var settleTransitions = [];\n\n if (invokeDef.onDone) {\n settleTransitions.push.apply(settleTransitions, __spread(toTransitionConfigArray(String(doneInvoke(invokeDef.id)), invokeDef.onDone)));\n }\n\n if (invokeDef.onError) {\n settleTransitions.push.apply(settleTransitions, __spread(toTransitionConfigArray(String(error(invokeDef.id)), invokeDef.onError)));\n }\n\n return settleTransitions;\n }));\n var delayedTransitions = this.after;\n var formattedTransitions = flatten(__spread(doneConfig, invokeConfig, onConfig).map(function (transitionConfig) {\n return toArray(transitionConfig).map(function (transition) {\n return _this.formatTransition(transition);\n });\n }));\n\n try {\n for (var delayedTransitions_1 = __values(delayedTransitions), delayedTransitions_1_1 = delayedTransitions_1.next(); !delayedTransitions_1_1.done; delayedTransitions_1_1 = delayedTransitions_1.next()) {\n var delayedTransition = delayedTransitions_1_1.value;\n formattedTransitions.push(delayedTransition);\n }\n } catch (e_9_1) {\n e_9 = {\n error: e_9_1\n };\n } finally {\n try {\n if (delayedTransitions_1_1 && !delayedTransitions_1_1.done && (_a = delayedTransitions_1[\"return\"])) _a.call(delayedTransitions_1);\n } finally {\n if (e_9) throw e_9.error;\n }\n }\n\n return formattedTransitions;\n };\n\n return StateNode;\n}();\n\nexport { StateNode };","function createNullActor(id) {\n return {\n id: id,\n send: function send() {\n return void 0;\n },\n subscribe: function subscribe() {\n return {\n unsubscribe: function unsubscribe() {\n return void 0;\n }\n };\n },\n toJSON: function toJSON() {\n return {\n id: id\n };\n }\n };\n}\n/**\r\n * Creates a null actor that is able to be invoked given the provided\r\n * invocation information in its `.meta` value.\r\n *\r\n * @param invokeDefinition The meta information needed to invoke the actor.\r\n */\n\n\nfunction createInvocableActor(invokeDefinition) {\n var tempActor = createNullActor(invokeDefinition.id);\n tempActor.meta = invokeDefinition;\n return tempActor;\n}\n\nfunction isActor(item) {\n try {\n return typeof item.send === 'function';\n } catch (e) {\n return false;\n }\n}\n\nexport { createInvocableActor, createNullActor, isActor };","var children = /*#__PURE__*/new Map();\nvar sessionIdIndex = 0;\nvar registry = {\n bookId: function bookId() {\n return \"x:\" + sessionIdIndex++;\n },\n register: function register(id, actor) {\n children.set(id, actor);\n return id;\n },\n get: function get(id) {\n return children.get(id);\n },\n free: function free(id) {\n children[\"delete\"](id);\n }\n};\nexport { registry };","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport styled from \"@emotion/styled\";\nimport { css, keyframes } from \"@emotion/react\";\n\nconst LoadingIndicator = ({ label, subtle }) =>\n subtle ? (\n \n
\n
\n
\n \n ) : (\n \n {label && {label}}\n \n \n \n \n );\n\nLoadingIndicator.propTypes = {\n label: PropTypes.string,\n subtle: PropTypes.bool,\n};\n\nLoadingIndicator.defaultProps = {\n label: \"\",\n subtle: false,\n};\n\nexport default LoadingIndicator;\n\n/* Styled Components\n======================================================= */\nconst Styled = {};\n\nStyled.Container = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: LoadingIndicator;\n ${[t.my(24), t.mx(\"auto\")]}\n display: flex;\n flex-direction: column;\n align-items: center;\n `;\n});\n\nStyled.Label = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: LoadingIndicator_Label;\n ${[t.text.xs, t.mb(2)]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n `;\n});\n\nStyled.Bar = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: LoadingIndicator_Bar;\n ${[t.w(32)]}\n height: 0.1875rem;\n background-color: ${t.dark ? \"rgba(255,255,255,0.07)\" : t.color.gray[200]};\n position: relative;\n overflow: hidden;\n `;\n});\n\nStyled.Indicator = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: LoadingIndicator_Indicator;\n ${[t.w(16)]}\n height: 100%;\n position: absolute;\n background-color: ${t.dark ? t.color.gray[400] : t.color.black};\n transition: transform 0.3s ease-in;\n animation: ${loading} 1.5s infinite ease;\n `;\n});\n\nconst loading = keyframes`\n 0%, 100% {\n transform: translate(-3rem,0);\n }\n 50% {\n transform: translate(7rem,0);\n }\n`;\n\nconst subtleKeyframe = keyframes`\n 0% {\n height: 0.75rem;\n }\n 30%,\n 100% {\n height: 0.125rem;\n }\n`;\n\nStyled.Subtle = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: LoadingIndicator_Subtle;\n ${t.h(10)}\n display: flex;\n align-items: center;\n div {\n position: relative;\n width: 0.125rem;\n margin: 0.125rem;\n background-color: ${t.dark ? t.color.gray[400] : t.color.gray[300]};\n animation: ${subtleKeyframe} 1.6s cubic-bezier(0, 0.5, 0.5, 1) infinite;\n }\n div:nth-of-type(1) {\n animation-delay: -0.24s;\n }\n div:nth-of-type(2) {\n animation-delay: -0.12s;\n }\n div:nth-of-type(3) {\n animation-delay: 0;\n }\n `;\n});\n","window.logger =\n window.IS_DEVELOPMENT || window.CONSOLE_LOG_ENABLED\n ? // window.CONSOLE_LOG_ENABLED\n console.log.bind(window.console)\n : function () {};\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport { __values, __assign, __spread } from './_virtual/_tslib.js';\nimport { IS_PRODUCTION } from './environment.js';\nimport { warn, mapContext, isFunction, keys, toSCXMLEvent, isPromiseLike, isObservable, isMachine, reportUnhandledExceptionOnInvocation, symbolObservable, isArray, toEventObject, isString, uniqueId } from './utils.js';\nimport { ActionTypes, SpecialTargets } from './types.js';\nimport { isInFinalState } from './stateUtils.js';\nimport { errorPlatform, log, stop, start, cancel, send, update, error as error$1 } from './actionTypes.js';\nimport { doneInvoke, initEvent, getActionFunction, error } from './actions.js';\nimport { isState, State, bindActionToState } from './State.js';\nimport { isActor } from './Actor.js';\nimport { Scheduler } from './scheduler.js';\nimport { registry } from './registry.js';\nimport { registerService } from './devTools.js';\nvar DEFAULT_SPAWN_OPTIONS = {\n sync: false,\n autoForward: false\n};\n/**\r\n * Maintains a stack of the current service in scope.\r\n * This is used to provide the correct service to spawn().\r\n *\r\n * @private\r\n */\n\nvar withServiceScope = /*#__PURE__*/function () {\n var serviceStack = [];\n return function (service, fn) {\n service && serviceStack.push(service);\n var result = fn(service || serviceStack[serviceStack.length - 1]);\n service && serviceStack.pop();\n return result;\n };\n}();\n\nvar InterpreterStatus;\n\n(function (InterpreterStatus) {\n InterpreterStatus[InterpreterStatus[\"NotStarted\"] = 0] = \"NotStarted\";\n InterpreterStatus[InterpreterStatus[\"Running\"] = 1] = \"Running\";\n InterpreterStatus[InterpreterStatus[\"Stopped\"] = 2] = \"Stopped\";\n})(InterpreterStatus || (InterpreterStatus = {}));\n\nvar Interpreter =\n/*#__PURE__*/\n\n/** @class */\nfunction () {\n /**\r\n * Creates a new Interpreter instance (i.e., service) for the given machine with the provided options, if any.\r\n *\r\n * @param machine The machine to be interpreted\r\n * @param options Interpreter options\r\n */\n function Interpreter(machine, options) {\n var _this = this;\n\n if (options === void 0) {\n options = Interpreter.defaultOptions;\n }\n\n this.machine = machine;\n this.scheduler = new Scheduler();\n this.delayedEventsMap = {};\n this.listeners = new Set();\n this.contextListeners = new Set();\n this.stopListeners = new Set();\n this.doneListeners = new Set();\n this.eventListeners = new Set();\n this.sendListeners = new Set();\n /**\r\n * Whether the service is started.\r\n */\n\n this.initialized = false;\n this._status = InterpreterStatus.NotStarted;\n this.children = new Map();\n this.forwardTo = new Set();\n /**\r\n * Alias for Interpreter.prototype.start\r\n */\n\n this.init = this.start;\n /**\r\n * Sends an event to the running interpreter to trigger a transition.\r\n *\r\n * An array of events (batched) can be sent as well, which will send all\r\n * batched events to the running interpreter. The listeners will be\r\n * notified only **once** when all events are processed.\r\n *\r\n * @param event The event(s) to send\r\n */\n\n this.send = function (event, payload) {\n if (isArray(event)) {\n _this.batch(event);\n\n return _this.state;\n }\n\n var _event = toSCXMLEvent(toEventObject(event, payload));\n\n if (_this._status === InterpreterStatus.Stopped) {\n // do nothing\n if (!IS_PRODUCTION) {\n warn(false, \"Event \\\"\" + _event.name + \"\\\" was sent to stopped service \\\"\" + _this.machine.id + \"\\\". This service has already reached its final state, and will not transition.\\nEvent: \" + JSON.stringify(_event.data));\n }\n\n return _this.state;\n }\n\n if (_this._status === InterpreterStatus.NotStarted && _this.options.deferEvents) {\n // tslint:disable-next-line:no-console\n if (!IS_PRODUCTION) {\n warn(false, \"Event \\\"\" + _event.name + \"\\\" was sent to uninitialized service \\\"\" + _this.machine.id + \"\\\" and is deferred. Make sure .start() is called for this service.\\nEvent: \" + JSON.stringify(_event.data));\n }\n } else if (_this._status !== InterpreterStatus.Running) {\n throw new Error(\"Event \\\"\" + _event.name + \"\\\" was sent to uninitialized service \\\"\" + _this.machine.id + \"\\\". Make sure .start() is called for this service, or set { deferEvents: true } in the service options.\\nEvent: \" + JSON.stringify(_event.data));\n }\n\n _this.scheduler.schedule(function () {\n // Forward copy of event to child actors\n _this.forward(_event);\n\n var nextState = _this.nextState(_event);\n\n _this.update(nextState, _event);\n });\n\n return _this._state; // TODO: deprecate (should return void)\n // tslint:disable-next-line:semicolon\n };\n\n this.sendTo = function (event, to) {\n var isParent = _this.parent && (to === SpecialTargets.Parent || _this.parent.id === to);\n var target = isParent ? _this.parent : isActor(to) ? to : _this.children.get(to) || registry.get(to);\n\n if (!target) {\n if (!isParent) {\n throw new Error(\"Unable to send event to child '\" + to + \"' from service '\" + _this.id + \"'.\");\n } // tslint:disable-next-line:no-console\n\n\n if (!IS_PRODUCTION) {\n warn(false, \"Service '\" + _this.id + \"' has no parent: unable to send event \" + event.type);\n }\n\n return;\n }\n\n if ('machine' in target) {\n // Send SCXML events to machines\n target.send(__assign(__assign({}, event), {\n name: event.name === error$1 ? \"\" + error(_this.id) : event.name,\n origin: _this.sessionId\n }));\n } else {\n // Send normal events to other targets\n target.send(event.data);\n }\n };\n\n var resolvedOptions = __assign(__assign({}, Interpreter.defaultOptions), options);\n\n var clock = resolvedOptions.clock,\n logger = resolvedOptions.logger,\n parent = resolvedOptions.parent,\n id = resolvedOptions.id;\n var resolvedId = id !== undefined ? id : machine.id;\n this.id = resolvedId;\n this.logger = logger;\n this.clock = clock;\n this.parent = parent;\n this.options = resolvedOptions;\n this.scheduler = new Scheduler({\n deferEvents: this.options.deferEvents\n });\n this.sessionId = registry.bookId();\n }\n\n Object.defineProperty(Interpreter.prototype, \"initialState\", {\n get: function get() {\n var _this = this;\n\n if (this._initialState) {\n return this._initialState;\n }\n\n return withServiceScope(this, function () {\n _this._initialState = _this.machine.initialState;\n return _this._initialState;\n });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Interpreter.prototype, \"state\", {\n get: function get() {\n if (!IS_PRODUCTION) {\n warn(this._status !== InterpreterStatus.NotStarted, \"Attempted to read state from uninitialized service '\" + this.id + \"'. Make sure the service is started first.\");\n }\n\n return this._state;\n },\n enumerable: true,\n configurable: true\n });\n /**\r\n * Executes the actions of the given state, with that state's `context` and `event`.\r\n *\r\n * @param state The state whose actions will be executed\r\n * @param actionsConfig The action implementations to use\r\n */\n\n Interpreter.prototype.execute = function (state, actionsConfig) {\n var e_1, _a;\n\n try {\n for (var _b = __values(state.actions), _c = _b.next(); !_c.done; _c = _b.next()) {\n var action = _c.value;\n this.exec(action, state, actionsConfig);\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b[\"return\"])) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n };\n\n Interpreter.prototype.update = function (state, _event) {\n var e_2, _a, e_3, _b, e_4, _c, e_5, _d;\n\n var _this = this; // Attach session ID to state\n\n\n state._sessionid = this.sessionId; // Update state\n\n this._state = state; // Execute actions\n\n if (this.options.execute) {\n this.execute(this.state);\n } // Dev tools\n\n\n if (this.devTools) {\n this.devTools.send(_event.data, state);\n } // Execute listeners\n\n\n if (state.event) {\n try {\n for (var _e = __values(this.eventListeners), _f = _e.next(); !_f.done; _f = _e.next()) {\n var listener = _f.value;\n listener(state.event);\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (_f && !_f.done && (_a = _e[\"return\"])) _a.call(_e);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n }\n\n try {\n for (var _g = __values(this.listeners), _h = _g.next(); !_h.done; _h = _g.next()) {\n var listener = _h.value;\n listener(state, state.event);\n }\n } catch (e_3_1) {\n e_3 = {\n error: e_3_1\n };\n } finally {\n try {\n if (_h && !_h.done && (_b = _g[\"return\"])) _b.call(_g);\n } finally {\n if (e_3) throw e_3.error;\n }\n }\n\n try {\n for (var _j = __values(this.contextListeners), _k = _j.next(); !_k.done; _k = _j.next()) {\n var contextListener = _k.value;\n contextListener(this.state.context, this.state.history ? this.state.history.context : undefined);\n }\n } catch (e_4_1) {\n e_4 = {\n error: e_4_1\n };\n } finally {\n try {\n if (_k && !_k.done && (_c = _j[\"return\"])) _c.call(_j);\n } finally {\n if (e_4) throw e_4.error;\n }\n }\n\n var isDone = isInFinalState(state.configuration || [], this.machine);\n\n if (this.state.configuration && isDone) {\n // get final child state node\n var finalChildStateNode = state.configuration.find(function (sn) {\n return sn.type === 'final' && sn.parent === _this.machine;\n });\n var doneData = finalChildStateNode && finalChildStateNode.data ? mapContext(finalChildStateNode.data, state.context, _event) : undefined;\n\n try {\n for (var _l = __values(this.doneListeners), _m = _l.next(); !_m.done; _m = _l.next()) {\n var listener = _m.value;\n listener(doneInvoke(this.id, doneData));\n }\n } catch (e_5_1) {\n e_5 = {\n error: e_5_1\n };\n } finally {\n try {\n if (_m && !_m.done && (_d = _l[\"return\"])) _d.call(_l);\n } finally {\n if (e_5) throw e_5.error;\n }\n }\n\n this.stop();\n }\n };\n /*\r\n * Adds a listener that is notified whenever a state transition happens. The listener is called with\r\n * the next state and the event object that caused the state transition.\r\n *\r\n * @param listener The state listener\r\n */\n\n\n Interpreter.prototype.onTransition = function (listener) {\n this.listeners.add(listener); // Send current state to listener\n\n if (this._status === InterpreterStatus.Running) {\n listener(this.state, this.state.event);\n }\n\n return this;\n };\n\n Interpreter.prototype.subscribe = function (nextListenerOrObserver, // @ts-ignore\n errorListener, completeListener) {\n var _this = this;\n\n if (!nextListenerOrObserver) {\n return {\n unsubscribe: function unsubscribe() {\n return void 0;\n }\n };\n }\n\n var listener;\n var resolvedCompleteListener = completeListener;\n\n if (typeof nextListenerOrObserver === 'function') {\n listener = nextListenerOrObserver;\n } else {\n listener = nextListenerOrObserver.next.bind(nextListenerOrObserver);\n resolvedCompleteListener = nextListenerOrObserver.complete.bind(nextListenerOrObserver);\n }\n\n this.listeners.add(listener); // Send current state to listener\n\n if (this._status === InterpreterStatus.Running) {\n listener(this.state);\n }\n\n if (resolvedCompleteListener) {\n this.onDone(resolvedCompleteListener);\n }\n\n return {\n unsubscribe: function unsubscribe() {\n listener && _this.listeners[\"delete\"](listener);\n resolvedCompleteListener && _this.doneListeners[\"delete\"](resolvedCompleteListener);\n }\n };\n };\n /**\r\n * Adds an event listener that is notified whenever an event is sent to the running interpreter.\r\n * @param listener The event listener\r\n */\n\n\n Interpreter.prototype.onEvent = function (listener) {\n this.eventListeners.add(listener);\n return this;\n };\n /**\r\n * Adds an event listener that is notified whenever a `send` event occurs.\r\n * @param listener The event listener\r\n */\n\n\n Interpreter.prototype.onSend = function (listener) {\n this.sendListeners.add(listener);\n return this;\n };\n /**\r\n * Adds a context listener that is notified whenever the state context changes.\r\n * @param listener The context listener\r\n */\n\n\n Interpreter.prototype.onChange = function (listener) {\n this.contextListeners.add(listener);\n return this;\n };\n /**\r\n * Adds a listener that is notified when the machine is stopped.\r\n * @param listener The listener\r\n */\n\n\n Interpreter.prototype.onStop = function (listener) {\n this.stopListeners.add(listener);\n return this;\n };\n /**\r\n * Adds a state listener that is notified when the statechart has reached its final state.\r\n * @param listener The state listener\r\n */\n\n\n Interpreter.prototype.onDone = function (listener) {\n this.doneListeners.add(listener);\n return this;\n };\n /**\r\n * Removes a listener.\r\n * @param listener The listener to remove\r\n */\n\n\n Interpreter.prototype.off = function (listener) {\n this.listeners[\"delete\"](listener);\n this.eventListeners[\"delete\"](listener);\n this.sendListeners[\"delete\"](listener);\n this.stopListeners[\"delete\"](listener);\n this.doneListeners[\"delete\"](listener);\n this.contextListeners[\"delete\"](listener);\n return this;\n };\n /**\r\n * Starts the interpreter from the given state, or the initial state.\r\n * @param initialState The state to start the statechart from\r\n */\n\n\n Interpreter.prototype.start = function (initialState) {\n var _this = this;\n\n if (this._status === InterpreterStatus.Running) {\n // Do not restart the service if it is already started\n return this;\n }\n\n registry.register(this.sessionId, this);\n this.initialized = true;\n this._status = InterpreterStatus.Running;\n var resolvedState = initialState === undefined ? this.initialState : withServiceScope(this, function () {\n return isState(initialState) ? _this.machine.resolveState(initialState) : _this.machine.resolveState(State.from(initialState, _this.machine.context));\n });\n\n if (this.options.devTools) {\n this.attachDev();\n }\n\n this.scheduler.initialize(function () {\n _this.update(resolvedState, initEvent);\n });\n return this;\n };\n /**\r\n * Stops the interpreter and unsubscribe all listeners.\r\n *\r\n * This will also notify the `onStop` listeners.\r\n */\n\n\n Interpreter.prototype.stop = function () {\n var e_6, _a, e_7, _b, e_8, _c, e_9, _d, e_10, _e;\n\n try {\n for (var _f = __values(this.listeners), _g = _f.next(); !_g.done; _g = _f.next()) {\n var listener = _g.value;\n this.listeners[\"delete\"](listener);\n }\n } catch (e_6_1) {\n e_6 = {\n error: e_6_1\n };\n } finally {\n try {\n if (_g && !_g.done && (_a = _f[\"return\"])) _a.call(_f);\n } finally {\n if (e_6) throw e_6.error;\n }\n }\n\n try {\n for (var _h = __values(this.stopListeners), _j = _h.next(); !_j.done; _j = _h.next()) {\n var listener = _j.value; // call listener, then remove\n\n listener();\n this.stopListeners[\"delete\"](listener);\n }\n } catch (e_7_1) {\n e_7 = {\n error: e_7_1\n };\n } finally {\n try {\n if (_j && !_j.done && (_b = _h[\"return\"])) _b.call(_h);\n } finally {\n if (e_7) throw e_7.error;\n }\n }\n\n try {\n for (var _k = __values(this.contextListeners), _l = _k.next(); !_l.done; _l = _k.next()) {\n var listener = _l.value;\n this.contextListeners[\"delete\"](listener);\n }\n } catch (e_8_1) {\n e_8 = {\n error: e_8_1\n };\n } finally {\n try {\n if (_l && !_l.done && (_c = _k[\"return\"])) _c.call(_k);\n } finally {\n if (e_8) throw e_8.error;\n }\n }\n\n try {\n for (var _m = __values(this.doneListeners), _o = _m.next(); !_o.done; _o = _m.next()) {\n var listener = _o.value;\n this.doneListeners[\"delete\"](listener);\n }\n } catch (e_9_1) {\n e_9 = {\n error: e_9_1\n };\n } finally {\n try {\n if (_o && !_o.done && (_d = _m[\"return\"])) _d.call(_m);\n } finally {\n if (e_9) throw e_9.error;\n }\n } // Stop all children\n\n\n this.children.forEach(function (child) {\n if (isFunction(child.stop)) {\n child.stop();\n }\n });\n\n try {\n // Cancel all delayed events\n for (var _p = __values(keys(this.delayedEventsMap)), _q = _p.next(); !_q.done; _q = _p.next()) {\n var key = _q.value;\n this.clock.clearTimeout(this.delayedEventsMap[key]);\n }\n } catch (e_10_1) {\n e_10 = {\n error: e_10_1\n };\n } finally {\n try {\n if (_q && !_q.done && (_e = _p[\"return\"])) _e.call(_p);\n } finally {\n if (e_10) throw e_10.error;\n }\n }\n\n this.scheduler.clear();\n this.initialized = false;\n this._status = InterpreterStatus.Stopped;\n registry.free(this.sessionId);\n return this;\n };\n\n Interpreter.prototype.batch = function (events) {\n var _this = this;\n\n if (this._status === InterpreterStatus.NotStarted && this.options.deferEvents) {\n // tslint:disable-next-line:no-console\n if (!IS_PRODUCTION) {\n warn(false, events.length + \" event(s) were sent to uninitialized service \\\"\" + this.machine.id + \"\\\" and are deferred. Make sure .start() is called for this service.\\nEvent: \" + JSON.stringify(event));\n }\n } else if (this._status !== InterpreterStatus.Running) {\n throw new Error( // tslint:disable-next-line:max-line-length\n events.length + \" event(s) were sent to uninitialized service \\\"\" + this.machine.id + \"\\\". Make sure .start() is called for this service, or set { deferEvents: true } in the service options.\");\n }\n\n this.scheduler.schedule(function () {\n var e_11, _a;\n\n var nextState = _this.state;\n var batchChanged = false;\n var batchedActions = [];\n\n var _loop_1 = function _loop_1(event_1) {\n var _event = toSCXMLEvent(event_1);\n\n _this.forward(_event);\n\n nextState = withServiceScope(_this, function () {\n return _this.machine.transition(nextState, _event);\n });\n batchedActions.push.apply(batchedActions, __spread(nextState.actions.map(function (a) {\n return bindActionToState(a, nextState);\n })));\n batchChanged = batchChanged || !!nextState.changed;\n };\n\n try {\n for (var events_1 = __values(events), events_1_1 = events_1.next(); !events_1_1.done; events_1_1 = events_1.next()) {\n var event_1 = events_1_1.value;\n\n _loop_1(event_1);\n }\n } catch (e_11_1) {\n e_11 = {\n error: e_11_1\n };\n } finally {\n try {\n if (events_1_1 && !events_1_1.done && (_a = events_1[\"return\"])) _a.call(events_1);\n } finally {\n if (e_11) throw e_11.error;\n }\n }\n\n nextState.changed = batchChanged;\n nextState.actions = batchedActions;\n\n _this.update(nextState, toSCXMLEvent(events[events.length - 1]));\n });\n };\n /**\r\n * Returns a send function bound to this interpreter instance.\r\n *\r\n * @param event The event to be sent by the sender.\r\n */\n\n\n Interpreter.prototype.sender = function (event) {\n return this.send.bind(this, event);\n };\n /**\r\n * Returns the next state given the interpreter's current state and the event.\r\n *\r\n * This is a pure method that does _not_ update the interpreter's state.\r\n *\r\n * @param event The event to determine the next state\r\n */\n\n\n Interpreter.prototype.nextState = function (event) {\n var _this = this;\n\n var _event = toSCXMLEvent(event);\n\n if (_event.name.indexOf(errorPlatform) === 0 && !this.state.nextEvents.some(function (nextEvent) {\n return nextEvent.indexOf(errorPlatform) === 0;\n })) {\n throw _event.data.data;\n }\n\n var nextState = withServiceScope(this, function () {\n return _this.machine.transition(_this.state, _event);\n });\n return nextState;\n };\n\n Interpreter.prototype.forward = function (event) {\n var e_12, _a;\n\n try {\n for (var _b = __values(this.forwardTo), _c = _b.next(); !_c.done; _c = _b.next()) {\n var id = _c.value;\n var child = this.children.get(id);\n\n if (!child) {\n throw new Error(\"Unable to forward event '\" + event + \"' from interpreter '\" + this.id + \"' to nonexistant child '\" + id + \"'.\");\n }\n\n child.send(event);\n }\n } catch (e_12_1) {\n e_12 = {\n error: e_12_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b[\"return\"])) _a.call(_b);\n } finally {\n if (e_12) throw e_12.error;\n }\n }\n };\n\n Interpreter.prototype.defer = function (sendAction) {\n var _this = this;\n\n this.delayedEventsMap[sendAction.id] = this.clock.setTimeout(function () {\n if (sendAction.to) {\n _this.sendTo(sendAction._event, sendAction.to);\n } else {\n _this.send(sendAction._event);\n }\n }, sendAction.delay);\n };\n\n Interpreter.prototype.cancel = function (sendId) {\n this.clock.clearTimeout(this.delayedEventsMap[sendId]);\n delete this.delayedEventsMap[sendId];\n };\n\n Interpreter.prototype.exec = function (action, state, actionFunctionMap) {\n var context = state.context,\n _event = state._event;\n var actionOrExec = getActionFunction(action.type, actionFunctionMap) || action.exec;\n var exec = isFunction(actionOrExec) ? actionOrExec : actionOrExec ? actionOrExec.exec : action.exec;\n\n if (exec) {\n try {\n return exec(context, _event.data, {\n action: action,\n state: this.state,\n _event: _event\n });\n } catch (err) {\n if (this.parent) {\n this.parent.send({\n type: 'xstate.error',\n data: err\n });\n }\n\n throw err;\n }\n }\n\n switch (action.type) {\n case send:\n var sendAction = action;\n\n if (typeof sendAction.delay === 'number') {\n this.defer(sendAction);\n return;\n } else {\n if (sendAction.to) {\n this.sendTo(sendAction._event, sendAction.to);\n } else {\n this.send(sendAction._event);\n }\n }\n\n break;\n\n case cancel:\n this.cancel(action.sendId);\n break;\n\n case start:\n {\n var activity = action.activity; // If the activity will be stopped right after it's started\n // (such as in transient states)\n // don't bother starting the activity.\n\n if (!this.state.activities[activity.type]) {\n break;\n } // Invoked services\n\n\n if (activity.type === ActionTypes.Invoke) {\n var serviceCreator = this.machine.options.services ? this.machine.options.services[activity.src] : undefined;\n var id = activity.id,\n data = activity.data;\n\n if (!IS_PRODUCTION) {\n warn(!('forward' in activity), // tslint:disable-next-line:max-line-length\n \"`forward` property is deprecated (found in invocation of '\" + activity.src + \"' in in machine '\" + this.machine.id + \"'). \" + \"Please use `autoForward` instead.\");\n }\n\n var autoForward = 'autoForward' in activity ? activity.autoForward : !!activity.forward;\n\n if (!serviceCreator) {\n // tslint:disable-next-line:no-console\n if (!IS_PRODUCTION) {\n warn(false, \"No service found for invocation '\" + activity.src + \"' in machine '\" + this.machine.id + \"'.\");\n }\n\n return;\n }\n\n var source = isFunction(serviceCreator) ? serviceCreator(context, _event.data) : serviceCreator;\n\n if (isPromiseLike(source)) {\n this.state.children[id] = this.spawnPromise(Promise.resolve(source), id);\n } else if (isFunction(source)) {\n this.state.children[id] = this.spawnCallback(source, id);\n } else if (isObservable(source)) {\n this.state.children[id] = this.spawnObservable(source, id);\n } else if (isMachine(source)) {\n // TODO: try/catch here\n this.state.children[id] = this.spawnMachine(data ? source.withContext(mapContext(data, context, _event)) : source, {\n id: id,\n autoForward: autoForward\n });\n }\n } else {\n this.spawnActivity(activity);\n }\n\n break;\n }\n\n case stop:\n {\n this.stopChild(action.activity.id);\n break;\n }\n\n case log:\n var label = action.label,\n value = action.value;\n\n if (label) {\n this.logger(label, value);\n } else {\n this.logger(value);\n }\n\n break;\n\n default:\n if (!IS_PRODUCTION) {\n warn(false, \"No implementation found for action type '\" + action.type + \"'\");\n }\n\n break;\n }\n\n return undefined;\n };\n\n Interpreter.prototype.stopChild = function (childId) {\n var child = this.children.get(childId);\n\n if (!child) {\n return;\n }\n\n this.children[\"delete\"](childId);\n this.forwardTo[\"delete\"](childId);\n delete this.state.children[childId];\n\n if (isFunction(child.stop)) {\n child.stop();\n }\n };\n\n Interpreter.prototype.spawn = function (entity, name, options) {\n if (isPromiseLike(entity)) {\n return this.spawnPromise(Promise.resolve(entity), name);\n } else if (isFunction(entity)) {\n return this.spawnCallback(entity, name);\n } else if (isActor(entity)) {\n return this.spawnActor(entity);\n } else if (isObservable(entity)) {\n return this.spawnObservable(entity, name);\n } else if (isMachine(entity)) {\n return this.spawnMachine(entity, __assign(__assign({}, options), {\n id: name\n }));\n } else {\n throw new Error(\"Unable to spawn entity \\\"\" + name + \"\\\" of type \\\"\" + _typeof(entity) + \"\\\".\");\n }\n };\n\n Interpreter.prototype.spawnMachine = function (machine, options) {\n var _this = this;\n\n if (options === void 0) {\n options = {};\n }\n\n var childService = new Interpreter(machine, __assign(__assign({}, this.options), {\n parent: this,\n id: options.id || machine.id\n }));\n\n var resolvedOptions = __assign(__assign({}, DEFAULT_SPAWN_OPTIONS), options);\n\n if (resolvedOptions.sync) {\n childService.onTransition(function (state) {\n _this.send(update, {\n state: state,\n id: childService.id\n });\n });\n }\n\n childService.onDone(function (doneEvent) {\n _this.send(toSCXMLEvent(doneEvent, {\n origin: childService.id\n }));\n }).start();\n var actor = childService;\n this.children.set(childService.id, actor);\n\n if (resolvedOptions.autoForward) {\n this.forwardTo.add(childService.id);\n }\n\n return actor;\n };\n\n Interpreter.prototype.spawnPromise = function (promise, id) {\n var _this = this;\n\n var canceled = false;\n promise.then(function (response) {\n if (!canceled) {\n _this.send(toSCXMLEvent(doneInvoke(id, response), {\n origin: id\n }));\n }\n }, function (errorData) {\n if (!canceled) {\n var errorEvent = error(id, errorData);\n\n try {\n // Send \"error.platform.id\" to this (parent).\n _this.send(toSCXMLEvent(errorEvent, {\n origin: id\n }));\n } catch (error) {\n reportUnhandledExceptionOnInvocation(errorData, error, id);\n\n if (_this.devTools) {\n _this.devTools.send(errorEvent, _this.state);\n }\n\n if (_this.machine.strict) {\n // it would be better to always stop the state machine if unhandled\n // exception/promise rejection happens but because we don't want to\n // break existing code so enforce it on strict mode only especially so\n // because documentation says that onError is optional\n _this.stop();\n }\n }\n }\n });\n var actor = {\n id: id,\n send: function send() {\n return void 0;\n },\n subscribe: function subscribe(next, handleError, complete) {\n var unsubscribed = false;\n promise.then(function (response) {\n if (unsubscribed) {\n return;\n }\n\n next && next(response);\n\n if (unsubscribed) {\n return;\n }\n\n complete && complete();\n }, function (err) {\n if (unsubscribed) {\n return;\n }\n\n handleError(err);\n });\n return {\n unsubscribe: function unsubscribe() {\n return unsubscribed = true;\n }\n };\n },\n stop: function stop() {\n canceled = true;\n },\n toJSON: function toJSON() {\n return {\n id: id\n };\n }\n };\n this.children.set(id, actor);\n return actor;\n };\n\n Interpreter.prototype.spawnCallback = function (callback, id) {\n var _this = this;\n\n var canceled = false;\n var receivers = new Set();\n var listeners = new Set();\n\n var receive = function receive(e) {\n listeners.forEach(function (listener) {\n return listener(e);\n });\n\n if (canceled) {\n return;\n }\n\n _this.send(e);\n };\n\n var callbackStop;\n\n try {\n callbackStop = callback(receive, function (newListener) {\n receivers.add(newListener);\n });\n } catch (err) {\n this.send(error(id, err));\n }\n\n if (isPromiseLike(callbackStop)) {\n // it turned out to be an async function, can't reliably check this before calling `callback`\n // because transpiled async functions are not recognizable\n return this.spawnPromise(callbackStop, id);\n }\n\n var actor = {\n id: id,\n send: function send(event) {\n return receivers.forEach(function (receiver) {\n return receiver(event);\n });\n },\n subscribe: function subscribe(next) {\n listeners.add(next);\n return {\n unsubscribe: function unsubscribe() {\n listeners[\"delete\"](next);\n }\n };\n },\n stop: function stop() {\n canceled = true;\n\n if (isFunction(callbackStop)) {\n callbackStop();\n }\n },\n toJSON: function toJSON() {\n return {\n id: id\n };\n }\n };\n this.children.set(id, actor);\n return actor;\n };\n\n Interpreter.prototype.spawnObservable = function (source, id) {\n var _this = this;\n\n var subscription = source.subscribe(function (value) {\n _this.send(toSCXMLEvent(value, {\n origin: id\n }));\n }, function (err) {\n _this.send(toSCXMLEvent(error(id, err), {\n origin: id\n }));\n }, function () {\n _this.send(toSCXMLEvent(doneInvoke(id), {\n origin: id\n }));\n });\n var actor = {\n id: id,\n send: function send() {\n return void 0;\n },\n subscribe: function subscribe(next, handleError, complete) {\n return source.subscribe(next, handleError, complete);\n },\n stop: function stop() {\n return subscription.unsubscribe();\n },\n toJSON: function toJSON() {\n return {\n id: id\n };\n }\n };\n this.children.set(id, actor);\n return actor;\n };\n\n Interpreter.prototype.spawnActor = function (actor) {\n this.children.set(actor.id, actor);\n return actor;\n };\n\n Interpreter.prototype.spawnActivity = function (activity) {\n var implementation = this.machine.options && this.machine.options.activities ? this.machine.options.activities[activity.type] : undefined;\n\n if (!implementation) {\n if (!IS_PRODUCTION) {\n warn(false, \"No implementation found for activity '\" + activity.type + \"'\");\n } // tslint:disable-next-line:no-console\n\n\n return;\n } // Start implementation\n\n\n var dispose = implementation(this.state.context, activity);\n this.spawnEffect(activity.id, dispose);\n };\n\n Interpreter.prototype.spawnEffect = function (id, dispose) {\n this.children.set(id, {\n id: id,\n send: function send() {\n return void 0;\n },\n subscribe: function subscribe() {\n return {\n unsubscribe: function unsubscribe() {\n return void 0;\n }\n };\n },\n stop: dispose || undefined,\n toJSON: function toJSON() {\n return {\n id: id\n };\n }\n });\n };\n\n Interpreter.prototype.attachDev = function () {\n if (this.options.devTools && typeof window !== 'undefined') {\n if (window.__REDUX_DEVTOOLS_EXTENSION__) {\n var devToolsOptions = _typeof(this.options.devTools) === 'object' ? this.options.devTools : undefined;\n this.devTools = window.__REDUX_DEVTOOLS_EXTENSION__.connect(__assign(__assign({\n name: this.id,\n autoPause: true,\n stateSanitizer: function stateSanitizer(state) {\n return {\n value: state.value,\n context: state.context,\n actions: state.actions\n };\n }\n }, devToolsOptions), {\n features: __assign({\n jump: false,\n skip: false\n }, devToolsOptions ? devToolsOptions.features : undefined)\n }), this.machine);\n this.devTools.init(this.state);\n } // add XState-specific dev tooling hook\n\n\n registerService(this);\n }\n };\n\n Interpreter.prototype.toJSON = function () {\n return {\n id: this.id\n };\n };\n\n Interpreter.prototype[symbolObservable] = function () {\n return this;\n };\n /**\r\n * The default interpreter options:\r\n *\r\n * - `clock` uses the global `setTimeout` and `clearTimeout` functions\r\n * - `logger` uses the global `console.log()` method\r\n */\n\n\n Interpreter.defaultOptions = /*#__PURE__*/function (global) {\n return {\n execute: true,\n deferEvents: true,\n clock: {\n setTimeout: function setTimeout(fn, ms) {\n return global.setTimeout.call(null, fn, ms);\n },\n clearTimeout: function clearTimeout(id) {\n return global.clearTimeout.call(null, id);\n }\n },\n logger: global.console.log.bind(console),\n devTools: false\n };\n }(typeof window === 'undefined' ? global : window);\n\n Interpreter.interpret = interpret;\n return Interpreter;\n}();\n\nvar createNullActor = function createNullActor(name) {\n if (name === void 0) {\n name = 'null';\n }\n\n return {\n id: name,\n send: function send() {\n return void 0;\n },\n subscribe: function subscribe() {\n // tslint:disable-next-line:no-empty\n return {\n unsubscribe: function unsubscribe() {}\n };\n },\n toJSON: function toJSON() {\n return {\n id: name\n };\n }\n };\n};\n\nvar resolveSpawnOptions = function resolveSpawnOptions(nameOrOptions) {\n if (isString(nameOrOptions)) {\n return __assign(__assign({}, DEFAULT_SPAWN_OPTIONS), {\n name: nameOrOptions\n });\n }\n\n return __assign(__assign(__assign({}, DEFAULT_SPAWN_OPTIONS), {\n name: uniqueId()\n }), nameOrOptions);\n};\n\nfunction spawn(entity, nameOrOptions) {\n var resolvedOptions = resolveSpawnOptions(nameOrOptions);\n return withServiceScope(undefined, function (service) {\n if (!IS_PRODUCTION) {\n warn(!!service, \"Attempted to spawn an Actor (ID: \\\"\" + (isMachine(entity) ? entity.id : 'undefined') + \"\\\") outside of a service. This will have no effect.\");\n }\n\n if (service) {\n return service.spawn(entity, resolvedOptions.name, resolvedOptions);\n } else {\n return createNullActor(resolvedOptions.name);\n }\n });\n}\n/**\r\n * Creates a new Interpreter instance for the given machine with the provided options, if any.\r\n *\r\n * @param machine The machine to interpret\r\n * @param options Interpreter options\r\n */\n\n\nfunction interpret(machine, options) {\n var interpreter = new Interpreter(machine, options);\n return interpreter;\n}\n\nexport { Interpreter, interpret, spawn };","import { StateNode } from './StateNode.js';\n\nfunction Machine(config, options, initialContext) {\n if (initialContext === void 0) {\n initialContext = config.context;\n }\n\n var resolvedInitialContext = typeof initialContext === 'function' ? initialContext() : initialContext;\n return new StateNode(config, options, resolvedInitialContext);\n}\n\nfunction createMachine(config, options) {\n var resolvedInitialContext = typeof config.context === 'function' ? config.context() : config.context;\n return new StateNode(config, options, resolvedInitialContext);\n}\n\nexport { Machine, createMachine };","import find from \"lodash/find\";\nimport isArray from \"lodash/isArray\";\n\nimport countriesData from \"@ats/src/lib/countries.json\";\nimport usStatesData from \"@ats/src/lib/usStates.json\";\nimport currencyCodes from \"@ats/src/lib/currencyCodes.json\";\n\nexport const findSelectOptionByValue = (options, value) => {\n if (isArray(value)) {\n return value.map((val) => find(options, (option) => option.value === val));\n }\n return find(options, (option) => option.value === value);\n};\n\nexport const findSelectOptionByLabel = (options, name) => {\n return find(options, (o) => o.label === name);\n};\n\nexport const getOptionLabel = (options, value) => {\n const option = findSelectOptionByValue(options, value);\n return option ? option.label : \"---\";\n};\n\n// Generic - Yes Or No\nexport const yesOrNoOptions = [\n { value: false, label: \"No\" },\n { value: true, label: \"Yes\" },\n];\n\n// Generic = Enabled or Disabled\nexport const enabledOrDisabledOptions = [\n { value: false, label: \"Disabled\" },\n { value: true, label: \"Enabled\" }\n]\n\n/* Questions\n--===================================================-- */\nexport const questionKindOptions = [\n { value: \"text_short\", label: \"Short answer\" },\n { value: \"text_long\", label: \"Long answer\" },\n { value: \"single_select\", label: \"Multiple-choice (single select)\" },\n { value: \"multi_select\", label: \"Multiple-choice (multi select)\" },\n { value: \"file_upload\", label: \"File upload\" },\n];\n\nexport const questionKindNames = (name) => {\n const option = findSelectOptionByValue(questionKindOptions, name);\n return option ? option.label : \"---\";\n};\n\n/* Default Job Form Settings\n--===================================================-- */\nexport const defaultJobSettings = {\n firstName: \"required\",\n lastName: \"required\",\n email: \"required\",\n phone: \"optional\",\n location: \"optional\",\n coverLetter: \"optional\",\n linkedinUrl: \"hidden\",\n githubUrl: \"hidden\",\n twitterUrl: \"hidden\",\n dribbbleUrl: \"hidden\",\n websiteUrl: \"hidden\",\n resume: \"required\",\n};\n\nexport const jobSettingOptions = [\n {\n value: \"required\",\n label: \"Required\",\n note: \"Candidates must fill this out\",\n },\n { value: \"optional\", label: \"Optional\", note: \"This field is optional\" },\n {\n value: \"hidden\",\n label: \"Hidden\",\n note: \"Candidates will not see this field\",\n },\n];\n\nexport const questionVisibilityOptions = [\n {\n value: \"visibility_public\",\n label: \"Entire hiring team\",\n note: \"Everyone on the hiring team and assigned interviewers can view the answer to this question\",\n },\n {\n value: \"visibility_private\",\n label: \"Admin only\",\n note: \"Only admins can view the answer to this question\",\n },\n];\n\nexport const jobSettingNames = (name) => {\n const option = findSelectOptionByValue(jobSettingOptions, name);\n return option ? option.label : \"---\";\n};\n\n/* careerNavigationOptions\n--===================================================-- */\nexport const careerNavigationOptions = [\n { value: false, label: \"Default\" },\n { value: true, label: \"Custom URL\" },\n];\n\nexport const careerNavigationNames = (name) => {\n const option = findSelectOptionByValue(careerNavigationOptions, name);\n return option ? option.label : \"---\";\n};\n\n/* jobBoardBrandingOptions\n--===================================================-- */\n\nexport const jobBoardLogoVisibilityOptions = [\n { value: \"logo_visibility_both_logo_and_name\", label: \"Show logo and name\" },\n { value: \"logo_visibility_logo_only\", label: \"Show logo only\" },\n { value: \"logo_visibility_name_only\", label: \"Show name only\" },\n];\n\nexport const socialShareImageTypeOptions = [\n { value: \"social_share_image_type_default\", label: \"Default\" },\n { value: \"social_share_image_type_custom\", label: \"Custom\" },\n { value: \"social_share_image_type_none\", label: \"None\" },\n];\n\nexport const jobOverrideSocialShareImageTypeOptions = [\n { value: \"default\", label: \"Default\" },\n { value: \"custom\", label: \"Custom\" },\n { value: \"none\", label: \"None\" },\n];\n\nexport const billboardMediaTypeOptions = [\n { value: \"billboard_media_type_none\", label: \"None\" },\n { value: \"billboard_media_type_image\", label: \"Image\" },\n { value: \"billboard_media_type_video\", label: \"Video\" },\n];\n\n// User - Roles\nexport const userRoleOptions = [\n {\n value: \"org_admin\",\n label: \"Admin\",\n roleAbilities:\n \"Admins can access all jobs, create jobs, assign members to jobs, invite new members, and change member roles.\",\n },\n {\n value: \"org_user\",\n label: \"Member\",\n roleAbilities:\n \"Members can only access jobs they have been assigned to. They cannot create jobs or invite new members.\",\n },\n {\n value: \"org_interviewer\",\n label: \"Interviewer\",\n roleAbilities:\n \"Interviewers can only submit candidate reviews. They can only access candidate information via the Review Kit\",\n },\n];\n\nexport const userRoleNames = (name) => {\n const option = findSelectOptionByValue(userRoleOptions, name);\n return option ? option.label : \"---\";\n};\n\n// Job - Kind\nexport const jobKindOptions = [\n { value: \"full_time\", label: \"Full-time\" },\n { value: \"part_time\", label: \"Part-time\" },\n { value: \"part_time_or_full_time\", label: \"Part-time or Full-time\" },\n { value: \"temporary\", label: \"Temporary\" },\n { value: \"contract\", label: \"Contract\" },\n { value: \"internship\", label: \"Internship\" },\n { value: \"volunteer\", label: \"Volunteer\" },\n { value: \"other\", label: \"Other\" },\n];\n\nexport const jobKindNames = (name) => {\n const option = findSelectOptionByValue(jobKindOptions, name);\n return option ? option.label : \"---\";\n};\n\n// Job - Category\nexport const jobCategoryOptions = [\n { value: \"category_sales_and_marketing\", label: \"Sales & Marketing\" },\n { value: \"category_design_and_ux\", label: \"Design & User Experience\" },\n { value: \"category_product_management\", label: \"Product Management\" },\n { value: \"category_customer_and_community\", label: \"Customer & Community\" },\n { value: \"category_content_and_copywriting\", label: \"Content & Copywriting\" },\n { value: \"category_software_development\", label: \"Software Development\" },\n { value: \"category_devops_and_sysadmin\", label: \"Dev Ops & Sysadmin\" },\n { value: \"category_operations_and_finance\", label: \"Operations & Finance\" },\n { value: \"category_quality_assurance\", label: \"Quality Assurance\" },\n { value: \"category_hr_and_recruiting\", label: \"HR & Recruiting\" },\n { value: \"category_security\", label: \"Security\" },\n { value: \"category_other\", label: \"Other\" },\n];\n\nexport const jobCategoryNames = (name) => {\n const option = findSelectOptionByValue(jobCategoryOptions, name);\n return option ? option.label : \"---\";\n};\n\n// Job - Status\nexport const jobStatusOptions = [\n { value: \"draft\", label: \"Draft\" },\n { value: \"published\", label: \"Published\" },\n { value: \"in_review\", label: \"In review\" },\n { value: \"status_archived\", label: \"Archived\" },\n];\n\nexport const jobStatusNames = (name) => {\n const option = findSelectOptionByValue(jobStatusOptions, name);\n return option ? option.label : \"---\";\n};\n\n// Organization - Kind\nexport const organizationKindOptions = [\n { value: \"kind_claimed\", label: \"Claimed\" },\n { value: \"kind_wrk_managed\", label: \"Polymer Managed\" },\n { value: \"kind_scrapable\", label: \"Scrapable\" },\n];\n\nexport const organizationKindNames = (name) => {\n const option = findSelectOptionByValue(organizationKindOptions, name);\n return option ? option.label : \"---\";\n};\n\n// Organization - Plan\nexport const organizationPlanOptions = [\n { value: \"plan_no_plan\", label: \"No Plan\" },\n { value: \"plan_simple_ats_free\", label: \"Free\" },\n { value: \"plan_simple_ats_paid\", label: \"Paid Unlimited Monthly\" },\n { value: \"plan_simple_ats_per_job\", label: \"Paid - Per Job\" },\n { value: \"plan_ats_tier_gemini\", label: \"Paid - Gemini\" },\n { value: \"plan_ats_tier_apollo\", label: \"Paid - Apollo\" },\n { value: \"plan_ats_tier_artemis\", label: \"Paid - Artemis\" },\n];\n\nexport const organizationPlanNames = (name) => {\n const option = findSelectOptionByValue(organizationPlanOptions, name);\n return option ? option.label : \"---\";\n};\n\nexport const adminOrganizationFlipperGroupOptions = [\n { value: \"flipper_group_all\", label: \"Default\" },\n { value: \"flipper_group_beta_testers\", label: \"Beta Testers\" },\n];\n\nexport const adminBooleanOptions = [\n { value: true, label: \"True\" },\n { value: false, label: \"False\" },\n];\n\n/* Interview - Venue\n--===================================================-- */\nexport const interviewVenueOptions = [\n { value: \"phone\", label: \"Phone\" },\n { value: \"video\", label: \"Video\" },\n { value: \"in_person\", label: \"In person\" },\n];\n\n/* Interview - Kind\n--===================================================-- */\nexport const interviewSynchronicityOptions = [\n { value: \"synchronous\", label: \"Live\" }, // Synchronous\n { value: \"asynchronous\", label: \"Take home\" }, // Asynchronous\n];\n\n// JobApplication - Stage\nexport const jobApplicationStageOptions = [\n { value: \"inbox\", label: \"Inbox\" },\n { value: \"application\", label: \"Application\" },\n { value: \"screen\", label: \"Screen\" },\n { value: \"interview\", label: \"Interview\" },\n { value: \"decide\", label: \"Decide\" },\n { value: \"offer\", label: \"Offer\" },\n];\n\nexport const interviewableJobApplicationStageOptions = [\n { value: \"screen\", label: \"Screen\" },\n { value: \"interview\", label: \"Interview\" },\n];\n\nexport const jobApplicationStageNames = (name) => {\n const option = findSelectOptionByValue(jobApplicationStageOptions, name);\n return option ? option.label : \"---\";\n};\n\n// JobApplication - Status\nexport const jobApplicationStatusOptions = [\n { value: \"status_in_process\", label: \"In process\" },\n { value: \"status_archived\", label: \"Archived\" },\n { value: \"status_hired\", label: \"Hired\" },\n];\n\nexport const jobApplicationStatusNames = (name) => {\n const option = findSelectOptionByValue(jobApplicationStatusOptions, name);\n return option ? option.label : \"---\";\n};\n\n// JobApplication - Archive Reason\nexport const jobApplicationArchiveReasonOptions = [\n { value: \"archive_position_filled\", label: \"Position filled\" },\n { value: \"archive_duplicate\", label: \"Duplicate\" },\n { value: \"archive_underqualified\", label: \"Underqualified\" },\n { value: \"archive_accepted_another_offer\", label: \"Accepted another offer\" },\n { value: \"archive_not_responding\", label: \"Not responding\" },\n { value: \"archive_not_interested\", label: \"Not interested\" },\n { value: \"archive_compensation\", label: \"Compensation\" },\n { value: \"archive_other\", label: \"Other\" },\n];\n\nexport const jobApplicationArchiveReasonNames = (name) => {\n const option = findSelectOptionByValue(jobApplicationArchiveReasonOptions, name);\n return option ? option.label : \"---\";\n};\n\n// Scorecard\nexport const scorecardRatingOptions = [\n { value: \"strong_yes\", label: \"Strong yes\" },\n { value: \"weak_yes\", label: \"Weak yes\" },\n { value: \"weak_no\", label: \"Weak no\" },\n { value: \"strong_no\", label: \"Strong no\" },\n];\n\nexport const scorecardRatingNames = (name) => {\n const option = findSelectOptionByValue(scorecardRatingOptions, name);\n return option ? option.label : \"---\";\n};\n\n// Interview\nexport const interviewStatusOptions = [\n { value: \"inactive\", label: \"Inactive\" },\n { value: \"active\", label: \"Open\" },\n { value: \"closed\", label: \"Closed\" },\n];\n\nexport const interviewStatusNames = (name) => {\n const option = findSelectOptionByValue(interviewStatusOptions, name);\n return option ? option.label : \"---\";\n};\n\n/* COUNTRY AND REGION DATA\n--===================================================-- */\n/* Country Data\n--===================================================-- */\nexport const countryOptions = () => {\n return countriesData.map((country) => {\n return { value: country.code, label: country.name };\n });\n};\n\n/* State/Region Data\n--===================================================-- */\nexport const unitedStatesOptions = () => {\n return usStatesData.map((state) => {\n return { value: state.code, label: state.name };\n });\n};\n\n// Organization - Remoteness\nexport const organizationRemotenessOptions = [\n // { value: \"remoteness_none\", label: \"No Remote\" },\n { value: \"remoteness_some\", label: \"Some remote\" },\n { value: \"remoteness_mostly\", label: \"Mostly remote\" },\n { value: \"remoteness_fully\", label: \"Fully distributed\" },\n];\n\nexport const organizationRemotenessNames = (name) => {\n const option = findSelectOptionByValue(organizationRemotenessOptions, name);\n return option ? option.label : \"---\";\n};\n\nexport const remoteRestrictionCountryResidencyIsRequiredNames = (name) => {\n const option = findSelectOptionByValue(yesOrNoOptions, name);\n return option ? option.label : \"---\";\n};\n\nexport const remoteRestrictionOverlapHoursIsRequiredNames = (name) => {\n const option = findSelectOptionByValue(yesOrNoOptions, name);\n return option ? option.label : \"---\";\n};\n\n// Job - Remoteness\nexport const jobRemotenessOptions = [\n { value: \"remoteness_none\", label: \"No remote\" },\n { value: \"remoteness_optional\", label: \"Remote friendly\" },\n { value: \"remoteness_hybrid\", label: \"Hybrid\" },\n { value: \"remoteness_only\", label: \"Remote (only)\" },\n];\n\nexport const jobRemotenessNames = (name) => {\n const option = findSelectOptionByValue(jobRemotenessOptions, name);\n return option ? option.label : \"---\";\n};\n\n// Job - applyThrough\nexport const applyThroughOptions = [\n { value: \"apply_through_hire\", label: \"Through a Polymer posting\" },\n { value: \"apply_through_third_party_ats\", label: \"Through your own link\" },\n];\n\nexport const applyThroughNames = (name) => {\n const option = findSelectOptionByValue(applyThroughOptions, name);\n return option ? option.label : \"---\";\n};\n\n// Job - remoteRestrictionOverlapHours\nexport const remoteRestrictionOverlapHoursOptions = [\n { value: 1, label: \"1 hour\" },\n { value: 2, label: \"2 hours\" },\n { value: 3, label: \"3 hours\" },\n { value: 4, label: \"4 hours\" },\n { value: 5, label: \"5 hours\" },\n { value: 6, label: \"6 hours\" },\n { value: 7, label: \"7 hours\" },\n { value: 8, label: \"8 hours\" },\n];\n\nexport const remoteRestrictionOverlapHoursNames = (name) => {\n const option = findSelectOptionByValue(remoteRestrictionOverlapHoursOptions, name);\n return option ? option.label : \"---\";\n};\n\n// Stripe\n\nexport const cardBrand = (brand) => {\n const cards = {\n amex: \"American Express\",\n diners: \"Diners\",\n discover: \"Discover\",\n jcb: \"JCB\",\n mastercard: \"Mastercard\",\n unionpay: \"Unionpay\",\n visa: \"Visa\",\n };\n\n return cards[brand] || \"Unknown\";\n};\n\n/* We Work Remotely WWR\n--===================================================-- */\nexport const wwrCategoryOptions = [\n { value: \"category_design\", label: \"Design\" },\n // { value: \"category_programming\", label: \"Programming\" },\n { value: \"category_fullstack_programming\", label: \"Full-Stack Programming\" },\n { value: \"category_frontend_programming\", label: \"Front-End Programming\" },\n { value: \"category_backend_programming\", label: \"Back-End Programming\" },\n { value: \"category_customer_support\", label: \"Customer Support\" },\n // { value: \"category_copywriting\", label: \"Copywriting\" },\n { value: \"category_devops_and_sysadmin\", label: \"DevOps and Sysadmin\" },\n { value: \"category_sales_and_marketing\", label: \"Sales and Marketing\" },\n {\n value: \"category_business_and_management\",\n label: \"Business, Management and Finance\",\n },\n { value: \"category_product\", label: \"Product\" },\n { value: \"category_all_other\", label: \"All Other Remote\" },\n // { value: \"category_finance_and_legal\", label: \"Finance & Legal\" },\n // { value: \"category_administrative\", label: \"Administrative\" },\n // { value: \"category_education\", label: \"Education\" },\n // {\n // value: \"category_translation_and_transcription\",\n // label: \"Translation & Transcription\",\n // },\n // { value: \"category_medical_and_health\", label: \"Medical/Health\" },\n];\n\nexport const wwrUpgradeCosts = {\n good: { price: \"59\", total: \"358\" },\n better: { price: \"99\", total: \"398\" },\n best: { price: \"149\", total: \"448\" },\n};\n\n/* Polymer Job Fields\n--===================================================-- */\n// export const webflowJobFieldMappingOptions = [\n// { value: \"title\", label: \"Title\", type: \"PlainText\" },\n// { value: \"description\", label: \"Description\", type: \"RichText\" },\n// { value: \"kind\", label: \"Employment type\", type: \"PlainText\" },\n// { value: \"category\", label: \"Category\", type: \"PlainText\" },\n// // { value: \"department\", label: \"Department\" },\n// { value: \"location\", label: \"Location\", type: \"PlainText\" },\n// { value: \"remoteness\", label: \"Remote friendliness\", type: \"PlainText\" },\n// { value: \"publishedAt\", label: \"Published at\", type: \"DateTime\" },\n// { value: \"applicationUrl\", label: \"Application form URL\", type: \"Link\" },\n// ];\nexport const webflowJobFieldMappingOptions = (isApiV2) => {\n const dateTimeType = isApiV2 ? \"DateTime\" : \"Date\";\n return [\n { value: \"title\", label: \"Title\", type: \"PlainText\" },\n { value: \"description\", label: \"Description\", type: \"RichText\" },\n { value: \"kind\", label: \"Employment type\", type: \"PlainText\" },\n { value: \"category\", label: \"Category\", type: \"PlainText\" },\n // { value: \"department\", label: \"Department\" },\n { value: \"location\", label: \"Location\", type: \"PlainText\" },\n { value: \"remoteness\", label: \"Remote friendliness\", type: \"PlainText\" },\n { value: \"publishedAt\", label: \"Published at\", type: dateTimeType },\n { value: \"applicationUrl\", label: \"Application form URL\", type: \"Link\" },\n ];\n};\n\n/* Review Rating Options\n--===================================================-- */\nexport const reviewRatingOptions = [\n { label: \"Strong yes\", value: \"strong_yes\" },\n { label: \"Weak yes\", value: \"weak_yes\" },\n { label: \"Weak no\", value: \"weak_no\" },\n { label: \"Strong no\", value: \"strong_no\" },\n { label: \"No rating\", value: \"opt_out\" },\n];\n\nexport const salaryUnitOptions = [\n { label: \"Hourly\", value: \"HOUR\" },\n { label: \"Daily\", value: \"DAY\" },\n { label: \"Weekly\", value: \"WEEK\" },\n { label: \"Monthly\", value: \"MONTH\" },\n { label: \"Yearly\", value: \"YEAR\" },\n];\n\nexport const salaryCurrencyCodeOptions = currencyCodes.map((code) => ({\n label: code.code,\n value: code.code,\n}));\n\nexport const localeCodeOptions = [\n { label: \"English (en)\", value: \"en\" },\n { label: \"Dutch (de)\", value: \"de\" },\n { label: \"Swedish (se)\", value: \"se\"}, \n];\n","import React, { Component } from \"react\";\n\nimport isEmpty from \"lodash/isEmpty\";\nimport isArray from \"lodash/isArray\";\nimport isObject from \"lodash/isObject\";\nimport lowerCase from \"lodash/lowerCase\";\nimport upperFirst from \"lodash/upperFirst\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\nimport { prettyErrorsArray } from \"@shared/lib/formHelpers\";\n\nclass FormContainer extends Component {\n static displayName = \"FormContainer\";\n\n formErrors = (errors) => {\n if (errors && isArray(errors) && !isEmpty(errors)) {\n return this.handleErrorsArray(errors);\n } else if (errors && isObject(errors) && !isEmpty(errors)) {\n return this.handleErrorsObject(errors);\n }\n };\n\n /* Likely used to handle Joi errors\n --===================================================-- */\n handleErrorsArray = (errors) => {\n return errors.map((error, index) => {\n const key = error.context ? error.context.key : error.key;\n const keyRegex = error.context ? new RegExp(`\"${key}\" `, \"gi\") : new RegExp(`${key} `, \"gi\");\n const message = error.message ? error.message.replace(keyRegex, \"\") : error;\n return
  • {`${upperFirst(lowerCase(key))} ${message}`}
  • ;\n });\n };\n\n /* Likely Used to handle Rails and Yup errors\n --===================================================-- */\n handleErrorsObject = (errors) => {\n let groupErrorText;\n if (errors && errors.customQuestionsErrors && !isEmpty(errors.customQuestionsErrors)) {\n return
  • Questions are missing a response
  • ;\n } else {\n return prettyErrorsArray(errors).map((error, index) => {\n return
  • {error}
  • ;\n });\n }\n };\n\n // Note the second param \"ref\" provided by React.forwardRef.\n // We can pass it along to LogProps as a regular prop, e.g. \"forwardedRef\"\n // And it can then be attached to the Component.\n // return React.forwardRef((props, ref) => {\n // return ;\n // });\n\n render() {\n // window.logger(\"%c[FormContainer] props\", \"color: #1976D2\", this.props);\n const { id, children, buttons, errors, onSubmit, className } = this.props;\n const formErrors = this.formErrors(errors);\n\n return (\n
    \n {children}\n\n {formErrors ? (\n \n Form Errors:\n {formErrors}\n \n ) : null}\n\n {buttons && {buttons}}\n
    \n );\n }\n}\n\nexport default FormContainer;\n\n/* Styled Components\n======================================================= */\nconst Styled = {};\n\nStyled.ErrorsContainer = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: FormContainer_ErrorsContainer;\n ${[t.p(2), t.my(6), t.rounded.sm]}\n border: 1px solid ${t.dark ? t.color.red[400] : t.color.red[600]};\n background-color: ${t.dark ? t.color.gray[800] : t.color.red[100]};\n color: ${t.dark ? t.color.red[400] : t.color.red[600]};\n\n ${t.mq[\"md\"]} {\n ${[t.px(2), t.py(1)]}\n }\n `;\n});\n\nStyled.ErrorsLabel = styled.span((props) => {\n const t: any = props.theme;\n return css`\n label: FormContainer_ErrorsLabel;\n ${[t.text.sm, t.text.medium]}\n\n ${t.mq[\"md\"]} {\n ${t.text.xs}\n }\n `;\n});\n\nStyled.ErrorsList = styled.ul((props) => {\n const t: any = props.theme;\n return css`\n label: FormContainer_ErrorsList;\n ${[t.text.base, t.mt(1), t.pl(6)]}\n list-style-type: disc;\n li {\n ${t.mb(1)}\n }\n\n ${t.mq[\"md\"]} {\n ${t.text.sm}\n }\n `;\n});\n\nStyled.Buttons = styled.ul((props) => {\n const t: any = props.theme;\n return css`\n label: FormContainer_Buttons;\n ${t.mt(10)}\n\n ${t.mq[\"md\"]} {\n ${t.mt(8)}\n }\n `;\n});\n","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n/** `Object#toString` result references. */\n\n\nvar stringTag = '[object String]';\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\n\nfunction isString(value) {\n return typeof value == 'string' || !isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag;\n}\n\nmodule.exports = isString;","'use strict';\n\nmodule.exports = function (str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (x) {\n return \"%\".concat(x.charCodeAt(0).toString(16).toUpperCase());\n });\n};","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp(token, 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n try {\n // Try to decode the entire string first\n return decodeURIComponent(components.join(''));\n } catch (err) {// Do nothing\n }\n\n if (components.length === 1) {\n return components;\n }\n\n split = split || 1; // Split the array in 2 parts\n\n var left = components.slice(0, split);\n var right = components.slice(split);\n return Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n try {\n return decodeURIComponent(input);\n } catch (err) {\n var tokens = input.match(singleMatcher);\n\n for (var i = 1; i < tokens.length; i++) {\n input = decodeComponents(tokens, i).join('');\n tokens = input.match(singleMatcher);\n }\n\n return input;\n }\n}\n\nfunction customDecodeURIComponent(input) {\n // Keep track of all the replacements and prefill the map with the `BOM`\n var replaceMap = {\n '%FE%FF': \"\\uFFFD\\uFFFD\",\n '%FF%FE': \"\\uFFFD\\uFFFD\"\n };\n var match = multiMatcher.exec(input);\n\n while (match) {\n try {\n // Decode as big chunks as possible\n replaceMap[match[0]] = decodeURIComponent(match[0]);\n } catch (err) {\n var result = decode(match[0]);\n\n if (result !== match[0]) {\n replaceMap[match[0]] = result;\n }\n }\n\n match = multiMatcher.exec(input);\n } // Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\n\n replaceMap['%C2'] = \"\\uFFFD\";\n var entries = Object.keys(replaceMap);\n\n for (var i = 0; i < entries.length; i++) {\n // Replace all decoded components\n var key = entries[i];\n input = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n }\n\n return input;\n}\n\nmodule.exports = function (encodedURI) {\n if (typeof encodedURI !== 'string') {\n throw new TypeError('Expected `encodedURI` to be of type `string`, got `' + _typeof(encodedURI) + '`');\n }\n\n try {\n encodedURI = encodedURI.replace(/\\+/g, ' '); // Try the built in decoder first\n\n return decodeURIComponent(encodedURI);\n } catch (err) {\n // Fallback to a more advanced decoder\n return customDecodeURIComponent(encodedURI);\n }\n};","import { __assign } from './_virtual/_tslib.js';\nvar defaultOptions = {\n deferEvents: false\n};\n\nvar Scheduler =\n/*#__PURE__*/\n\n/** @class */\nfunction () {\n function Scheduler(options) {\n this.processingEvent = false;\n this.queue = [];\n this.initialized = false;\n this.options = __assign(__assign({}, defaultOptions), options);\n }\n\n Scheduler.prototype.initialize = function (callback) {\n this.initialized = true;\n\n if (callback) {\n if (!this.options.deferEvents) {\n this.schedule(callback);\n return;\n }\n\n this.process(callback);\n }\n\n this.flushEvents();\n };\n\n Scheduler.prototype.schedule = function (task) {\n if (!this.initialized || this.processingEvent) {\n this.queue.push(task);\n return;\n }\n\n if (this.queue.length !== 0) {\n throw new Error('Event queue should be empty when it is not processing events');\n }\n\n this.process(task);\n this.flushEvents();\n };\n\n Scheduler.prototype.clear = function () {\n this.queue = [];\n };\n\n Scheduler.prototype.flushEvents = function () {\n var nextCallback = this.queue.shift();\n\n while (nextCallback) {\n this.process(nextCallback);\n nextCallback = this.queue.shift();\n }\n };\n\n Scheduler.prototype.process = function (callback) {\n this.processingEvent = true;\n\n try {\n callback();\n } catch (e) {\n // there is no use to keep the future events\n // as the situation is not anymore the same\n this.clear();\n throw e;\n } finally {\n this.processingEvent = false;\n }\n };\n\n return Scheduler;\n}();\n\nexport { Scheduler };","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\n\nconst FormLabel = (props) => {\n return (\n \n \n \n {props.isRequired && ({props.requiredLabel})}\n \n {props.error && {props.error}}\n \n );\n};\n\nFormLabel.propTypes = {\n label: PropTypes.string,\n for: PropTypes.string,\n isRequired: PropTypes.bool,\n error: PropTypes.string,\n requiredLabel: PropTypes.string,\n};\n\nFormLabel.defaultProps = {\n requiredLabel: \"required\",\n};\n\nexport default FormLabel;\n\n/* Styled Components\n======================================================= */\nconst Styled = {};\n\nStyled.Container = styled.div`\n label: FormLabel;\n display: flex;\n justify-content: space-between;\n align-items: baseline;\n`;\n\nStyled.Label = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: FormLabel_Label;\n ${[t.text.sm, t.text.bold]}\n color: ${t.dark ? t.color.gray[300] : t.color.black};\n display: inline-block;\n line-height: 1.4;\n margin-bottom: 0.375rem;\n\n ${t.mq[\"md\"]} {\n ${[t.text.xs]}\n }\n `;\n});\n\nStyled.RequiredLabel = styled.span((props) => {\n const t: any = props.theme;\n return css`\n label: FormLabel_RequiredLabel;\n ${[t.text.normal, t.ml(1)]}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n `;\n});\n\nStyled.Error = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: FormLabel_Error;\n ${t.text.sm}\n color: ${t.dark ? t.color.red[400] : t.color.red[600]};\n\n ${t.mq[\"md\"]} {\n ${[t.text.xs]}\n }\n `;\n});\n","import { ActionTypes } from './types.js'; // xstate-specific action types\n\nvar start = ActionTypes.Start;\nvar stop = ActionTypes.Stop;\nvar raise = ActionTypes.Raise;\nvar send = ActionTypes.Send;\nvar cancel = ActionTypes.Cancel;\nvar nullEvent = ActionTypes.NullEvent;\nvar assign = ActionTypes.Assign;\nvar after = ActionTypes.After;\nvar doneState = ActionTypes.DoneState;\nvar log = ActionTypes.Log;\nvar init = ActionTypes.Init;\nvar invoke = ActionTypes.Invoke;\nvar errorExecution = ActionTypes.ErrorExecution;\nvar errorPlatform = ActionTypes.ErrorPlatform;\nvar error = ActionTypes.ErrorCustom;\nvar update = ActionTypes.Update;\nvar pure = ActionTypes.Pure;\nexport { after, assign, cancel, doneState, error, errorExecution, errorPlatform, init, invoke, log, nullEvent, pure, raise, send, start, stop, update };","var ActionTypes;\n\n(function (ActionTypes) {\n ActionTypes[\"Start\"] = \"xstate.start\";\n ActionTypes[\"Stop\"] = \"xstate.stop\";\n ActionTypes[\"Raise\"] = \"xstate.raise\";\n ActionTypes[\"Send\"] = \"xstate.send\";\n ActionTypes[\"Cancel\"] = \"xstate.cancel\";\n ActionTypes[\"NullEvent\"] = \"\";\n ActionTypes[\"Assign\"] = \"xstate.assign\";\n ActionTypes[\"After\"] = \"xstate.after\";\n ActionTypes[\"DoneState\"] = \"done.state\";\n ActionTypes[\"DoneInvoke\"] = \"done.invoke\";\n ActionTypes[\"Log\"] = \"xstate.log\";\n ActionTypes[\"Init\"] = \"xstate.init\";\n ActionTypes[\"Invoke\"] = \"xstate.invoke\";\n ActionTypes[\"ErrorExecution\"] = \"error.execution\";\n ActionTypes[\"ErrorCommunication\"] = \"error.communication\";\n ActionTypes[\"ErrorPlatform\"] = \"error.platform\";\n ActionTypes[\"ErrorCustom\"] = \"xstate.error\";\n ActionTypes[\"Update\"] = \"xstate.update\";\n ActionTypes[\"Pure\"] = \"xstate.pure\";\n})(ActionTypes || (ActionTypes = {}));\n\nvar SpecialTargets;\n\n(function (SpecialTargets) {\n SpecialTargets[\"Parent\"] = \"#_parent\";\n SpecialTargets[\"Internal\"] = \"#_internal\";\n})(SpecialTargets || (SpecialTargets = {}));\n\nexport { ActionTypes, SpecialTargets };","import keys from \"lodash/keys\";\nimport isArray from \"lodash/isArray\";\nimport isObject from \"lodash/isObject\";\nimport lowerCase from \"lodash/lowerCase\";\nimport upperFirst from \"lodash/upperFirst\";\n\nexport const errorTextViaYupOrRailsOrJoi = (props: { errors: any; name: string }) => {\n const { errors, name } = props;\n if (errors == undefined) {\n return null;\n }\n // console.log(\"%c[formHelpers] errorTextViaYupOrRailsOrJoi\", \"background-color: #65FF92\", {\n // errors,\n // name,\n // });\n\n if (errors && isObject(errors) && errors[name]) {\n let error: { fieldError?: any } = errors[name];\n\n return isArray(error) && (error as string[]).length > 0\n ? (error as string[]).join(\", \") // Rails generated error\n : isObject(error) // isObject returns true for Arrays so must be checked second\n ? error.fieldError // Yup generated error\n : null;\n }\n};\n\n// export const processErrors = (errors) => {\n// if (errors && isArray(errors) && !isEmpty(errors)) {\n// return handleErrorsArray(errors);\n// } else if (errors && isObject(errors) && !isEmpty(errors)) {\n// console.log(\n// \"%c[formHelpers] ERRORS Object NOT HANDLED YET\",\n// \"background: red; color: white\",\n// errors,\n// );\n// return handleErrorsObject(errors);\n// }\n// };\n\n// const handleErrorsArray = (errors) => {\n// return errors.reduce((accumulator, error) => {\n// const key = error.context ? error.context.key : error.key;\n// const keyRegex = error.context ? new RegExp(`\"${key}\" `, \"gi\") : new RegExp(`${key} `, \"gi\");\n// const message = error.message ? error.message.replace(keyRegex, \"\") : error;\n// accumulator[key] = message;\n// return accumulator;\n// }, {});\n// };\n\n// const handleErrorsObject = (errors) => {\n// return errors;\n// };\n\nexport const prettyErrorsArray = (errors) => {\n return keys(errors)\n .map((key) => {\n console.log(\"%c[formHelpers] prettyErrorsArray\", \"background-color: #110378; color: white;\", {\n errors,\n key,\n });\n const error = errors[key];\n if (key === \"customQuestionsErrors\") {\n return null;\n }\n\n if (isArray(error)) {\n // Rails Errors\n return key !== \"general\" ? `${upperFirst(lowerCase(key))} ${error[0]}` : error[0];\n } else if (error.groupError != undefined) {\n // Yup Errors\n return error.groupError;\n } else {\n return null;\n }\n })\n .filter((error) => error != undefined);\n};\n","import keys from \"lodash/keys\";\nimport isString from \"lodash/isString\";\nimport isArray from \"lodash/isArray\";\nimport isPlainObject from \"lodash/isPlainObject\";\n\n/* standardizeQueryParamsObject\n--===================================================-- */\n// This ensures that search params are in an Array\nexport function standardizeQueryParamsObject(queryObject) {\n const queryKeys = keys(queryObject);\n let filterObject = queryObject;\n queryKeys.forEach((filterKey) => {\n if (isString(filterObject[filterKey])) {\n let value = filterObject[filterKey];\n filterObject[filterKey] = [value];\n }\n });\n return filterObject;\n}\n\nexport const trimFilename = (filename) => {\n let cutStart, cutEnd;\n\n if (filename.length > 20) {\n cutStart = 10;\n cutEnd = filename.length - 7;\n return filename.substr(0, cutStart) + \"...\" + filename.substr(cutEnd + 1);\n } else {\n return filename;\n }\n};\n\nexport const clearUrlParams = (history) => {\n history.push({ search: \"\" });\n};\n\n/* URLS\n--===================================================-- */\nexport const addHttpsPrefix = (url) => {\n if (url == undefined) {\n return null;\n }\n\n // return url.replace(/(^\\w+:|^)\\/\\//, \"\");\n return url.test(/(^\\w+:|^)\\/\\//, \"\");\n};\n\nexport const removeHttpPrefix = (url) => {\n if (url == undefined) {\n return null;\n }\n\n return url.replace(/(^\\w+:|^)\\/\\//, \"\"); // removes http:// or https://\n};\n\nexport const removeKnownUrlPrefix = (url) => {\n if (url == undefined) {\n return null;\n }\n\n return removeHttpPrefix(url) // removes http:// or https://\n .replace(/(^www\\.)/, \"\") // removes www\n .replace(/(^linkedin\\.com\\/in\\/)/, \"\") // removes linkedin.com\n .replace(/(^twitter\\.com\\/)/, \"\") // removes twitter.com\n .replace(/(^github\\.com\\/)/, \"\") // removes github.com\n .replace(/(^dribbble\\.com\\/)/, \"\"); // removes dribbble.com\n // .replace(/(\\/$)/, \"\"); // removes trailing slashes\n};\n\n/* Remove from Array\n--===================================================-- */\nexport const removeFromArray = (array, fn) => {\n const index = array.findIndex(fn);\n\n return removeFromArrayAtIndex(array, index);\n};\n\nexport const removeFromArrayAtIndex = (array, index) => {\n return [...array.slice(0, index), ...array.slice(index + 1, array.length)];\n};\n\nexport const insertIntoArrayAtIndex = (array, item, index) => {\n console.log(\"%c[utils] insertIntoArrayAtIndex\", \"color: #1976D2\", { array, item, index });\n return [...array.slice(0, index), item, ...array.slice(index, array.length)];\n};\n\nexport const moveFromIndexToIndex = (array, fromIndex, toIndex) => {\n const item = array[fromIndex];\n let newArray = removeFromArrayAtIndex(array, fromIndex);\n return insertIntoArrayAtIndex(newArray, item, toIndex);\n};\n\n/* Convert Array to Select Options\n--===================================================-- */\nexport const convertArrayToSelectOptions = (options) => {\n return options.map((option, index) => {\n return { value: option, label: option };\n });\n};\n\n/* FORMATTING\n--===================================================-- */\nexport const formatPhoneNumber = (str) => {\n //Filter only numbers from the input\n let cleaned = (\"\" + str).replace(/\\D/g, \"\");\n\n //Check if the input is of correct\n let match = cleaned.match(/^(1|)?(\\d{3})(\\d{3})(\\d{4})$/);\n\n if (match) {\n //Remove the matched extension code\n // TODO: Change this to format for any country code.\n let intlCode = match[1] ? \"+1 \" : \"\";\n return [intlCode, \"(\", match[2], \") \", match[3], \"-\", match[4]].join(\"\");\n }\n\n return str;\n};\n\n/* Check Object for Empty, Null, or Undefined Values\n--====================================================-- */\nexport const objectHasEmptyValues = (obj) => {\n return Object.values(obj).some((value) => {\n if (value === null || value === undefined || value === \"\") {\n return true;\n }\n if (isArray(value) && value.length === 0) {\n return true;\n }\n if (isPlainObject(value) && keys(value).length === 0) {\n return true;\n }\n\n return false;\n });\n};\n","import { __values } from './_virtual/_tslib.js';\nimport { keys, matchesState } from './utils.js';\n\nfunction mapState(stateMap, stateId) {\n var e_1, _a;\n\n var foundStateId;\n\n try {\n for (var _b = __values(keys(stateMap)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var mappedStateId = _c.value;\n\n if (matchesState(mappedStateId, stateId) && (!foundStateId || stateId.length > foundStateId.length)) {\n foundStateId = mappedStateId;\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b[\"return\"])) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n return stateMap[foundStateId];\n}\n\nexport { mapState };","import { __values, __read } from './_virtual/_tslib.js';\nimport { State } from './State.js';\n\nfunction matchState(state, patterns, defaultValue) {\n var e_1, _a;\n\n var resolvedState = State.from(state, state instanceof State ? state.context : undefined);\n\n try {\n for (var patterns_1 = __values(patterns), patterns_1_1 = patterns_1.next(); !patterns_1_1.done; patterns_1_1 = patterns_1.next()) {\n var _b = __read(patterns_1_1.value, 2),\n stateValue = _b[0],\n getValue = _b[1];\n\n if (resolvedState.matches(stateValue)) {\n return getValue(resolvedState);\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (patterns_1_1 && !patterns_1_1.done && (_a = patterns_1[\"return\"])) _a.call(patterns_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n return defaultValue(resolvedState);\n}\n\nexport { matchState };","export { matchesState } from './utils.js';\nexport { mapState } from './mapState.js';\nexport { ActionTypes, SpecialTargets } from './types.js';\nimport { raise, send, sendParent, sendUpdate, log, cancel, start, stop, assign, after, done, respond, forwardTo, escalate } from './actions.js';\nexport { assign, doneInvoke, forwardTo, send, sendParent, sendUpdate } from './actions.js';\nexport { State } from './State.js';\nexport { StateNode } from './StateNode.js';\nexport { Machine, createMachine } from './Machine.js';\nexport { Interpreter, interpret, spawn } from './interpreter.js';\nexport { matchState } from './match.js';\nvar actions = {\n raise: raise,\n send: send,\n sendParent: sendParent,\n sendUpdate: sendUpdate,\n log: log,\n cancel: cancel,\n start: start,\n stop: stop,\n assign: assign,\n after: after,\n done: done,\n respond: respond,\n forwardTo: forwardTo,\n escalate: escalate\n};\nexport { actions };","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport { __spread, __values, __read, __assign } from './_virtual/_tslib.js';\nimport { DEFAULT_GUARD_TYPE, TARGETLESS_KEY, STATE_DELIMITER } from './constants.js';\nimport { IS_PRODUCTION } from './environment.js';\n\nfunction keys(value) {\n return Object.keys(value);\n}\n\nfunction matchesState(parentStateId, childStateId, delimiter) {\n if (delimiter === void 0) {\n delimiter = STATE_DELIMITER;\n }\n\n var parentStateValue = toStateValue(parentStateId, delimiter);\n var childStateValue = toStateValue(childStateId, delimiter);\n\n if (isString(childStateValue)) {\n if (isString(parentStateValue)) {\n return childStateValue === parentStateValue;\n } // Parent more specific than child\n\n\n return false;\n }\n\n if (isString(parentStateValue)) {\n return parentStateValue in childStateValue;\n }\n\n return keys(parentStateValue).every(function (key) {\n if (!(key in childStateValue)) {\n return false;\n }\n\n return matchesState(parentStateValue[key], childStateValue[key]);\n });\n}\n\nfunction getEventType(event) {\n try {\n return isString(event) || typeof event === 'number' ? \"\" + event : event.type;\n } catch (e) {\n throw new Error('Events must be strings or objects with a string event.type property.');\n }\n}\n\nfunction toStatePath(stateId, delimiter) {\n try {\n if (isArray(stateId)) {\n return stateId;\n }\n\n return stateId.toString().split(delimiter);\n } catch (e) {\n throw new Error(\"'\" + stateId + \"' is not a valid state path.\");\n }\n}\n\nfunction isStateLike(state) {\n return _typeof(state) === 'object' && 'value' in state && 'context' in state && 'event' in state && '_event' in state;\n}\n\nfunction toStateValue(stateValue, delimiter) {\n if (isStateLike(stateValue)) {\n return stateValue.value;\n }\n\n if (isArray(stateValue)) {\n return pathToStateValue(stateValue);\n }\n\n if (typeof stateValue !== 'string') {\n return stateValue;\n }\n\n var statePath = toStatePath(stateValue, delimiter);\n return pathToStateValue(statePath);\n}\n\nfunction pathToStateValue(statePath) {\n if (statePath.length === 1) {\n return statePath[0];\n }\n\n var value = {};\n var marker = value;\n\n for (var i = 0; i < statePath.length - 1; i++) {\n if (i === statePath.length - 2) {\n marker[statePath[i]] = statePath[i + 1];\n } else {\n marker[statePath[i]] = {};\n marker = marker[statePath[i]];\n }\n }\n\n return value;\n}\n\nfunction mapValues(collection, iteratee) {\n var result = {};\n var collectionKeys = keys(collection);\n\n for (var i = 0; i < collectionKeys.length; i++) {\n var key = collectionKeys[i];\n result[key] = iteratee(collection[key], key, collection, i);\n }\n\n return result;\n}\n\nfunction mapFilterValues(collection, iteratee, predicate) {\n var e_1, _a;\n\n var result = {};\n\n try {\n for (var _b = __values(keys(collection)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n var item = collection[key];\n\n if (!predicate(item)) {\n continue;\n }\n\n result[key] = iteratee(item, key, collection);\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b[\"return\"])) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n return result;\n}\n/**\r\n * Retrieves a value at the given path.\r\n * @param props The deep path to the prop of the desired value\r\n */\n\n\nvar path = function path(props) {\n return function (object) {\n var e_2, _a;\n\n var result = object;\n\n try {\n for (var props_1 = __values(props), props_1_1 = props_1.next(); !props_1_1.done; props_1_1 = props_1.next()) {\n var prop = props_1_1.value;\n result = result[prop];\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (props_1_1 && !props_1_1.done && (_a = props_1[\"return\"])) _a.call(props_1);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n\n return result;\n };\n};\n/**\r\n * Retrieves a value at the given path via the nested accessor prop.\r\n * @param props The deep path to the prop of the desired value\r\n */\n\n\nfunction nestedPath(props, accessorProp) {\n return function (object) {\n var e_3, _a;\n\n var result = object;\n\n try {\n for (var props_2 = __values(props), props_2_1 = props_2.next(); !props_2_1.done; props_2_1 = props_2.next()) {\n var prop = props_2_1.value;\n result = result[accessorProp][prop];\n }\n } catch (e_3_1) {\n e_3 = {\n error: e_3_1\n };\n } finally {\n try {\n if (props_2_1 && !props_2_1.done && (_a = props_2[\"return\"])) _a.call(props_2);\n } finally {\n if (e_3) throw e_3.error;\n }\n }\n\n return result;\n };\n}\n\nfunction toStatePaths(stateValue) {\n if (!stateValue) {\n return [[]];\n }\n\n if (isString(stateValue)) {\n return [[stateValue]];\n }\n\n var result = flatten(keys(stateValue).map(function (key) {\n var subStateValue = stateValue[key];\n\n if (typeof subStateValue !== 'string' && (!subStateValue || !Object.keys(subStateValue).length)) {\n return [[key]];\n }\n\n return toStatePaths(stateValue[key]).map(function (subPath) {\n return [key].concat(subPath);\n });\n }));\n return result;\n}\n\nfunction flatten(array) {\n var _a;\n\n return (_a = []).concat.apply(_a, __spread(array));\n}\n\nfunction toArrayStrict(value) {\n if (isArray(value)) {\n return value;\n }\n\n return [value];\n}\n\nfunction toArray(value) {\n if (value === undefined) {\n return [];\n }\n\n return toArrayStrict(value);\n}\n\nfunction mapContext(mapper, context, _event) {\n var e_5, _a;\n\n if (isFunction(mapper)) {\n return mapper(context, _event.data);\n }\n\n var result = {};\n\n try {\n for (var _b = __values(keys(mapper)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n var subMapper = mapper[key];\n\n if (isFunction(subMapper)) {\n result[key] = subMapper(context, _event.data);\n } else {\n result[key] = subMapper;\n }\n }\n } catch (e_5_1) {\n e_5 = {\n error: e_5_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b[\"return\"])) _a.call(_b);\n } finally {\n if (e_5) throw e_5.error;\n }\n }\n\n return result;\n}\n\nfunction isBuiltInEvent(eventType) {\n return /^(done|error)\\./.test(eventType);\n}\n\nfunction isPromiseLike(value) {\n if (value instanceof Promise) {\n return true;\n } // Check if shape matches the Promise/A+ specification for a \"thenable\".\n\n\n if (value !== null && (isFunction(value) || _typeof(value) === 'object') && isFunction(value.then)) {\n return true;\n }\n\n return false;\n}\n\nfunction partition(items, predicate) {\n var e_6, _a;\n\n var _b = __read([[], []], 2),\n truthy = _b[0],\n falsy = _b[1];\n\n try {\n for (var items_1 = __values(items), items_1_1 = items_1.next(); !items_1_1.done; items_1_1 = items_1.next()) {\n var item = items_1_1.value;\n\n if (predicate(item)) {\n truthy.push(item);\n } else {\n falsy.push(item);\n }\n }\n } catch (e_6_1) {\n e_6 = {\n error: e_6_1\n };\n } finally {\n try {\n if (items_1_1 && !items_1_1.done && (_a = items_1[\"return\"])) _a.call(items_1);\n } finally {\n if (e_6) throw e_6.error;\n }\n }\n\n return [truthy, falsy];\n}\n\nfunction updateHistoryStates(hist, stateValue) {\n return mapValues(hist.states, function (subHist, key) {\n if (!subHist) {\n return undefined;\n }\n\n var subStateValue = (isString(stateValue) ? undefined : stateValue[key]) || (subHist ? subHist.current : undefined);\n\n if (!subStateValue) {\n return undefined;\n }\n\n return {\n current: subStateValue,\n states: updateHistoryStates(subHist, subStateValue)\n };\n });\n}\n\nfunction updateHistoryValue(hist, stateValue) {\n return {\n current: stateValue,\n states: updateHistoryStates(hist, stateValue)\n };\n}\n\nfunction updateContext(context, _event, assignActions, state) {\n if (!IS_PRODUCTION) {\n warn(!!context, 'Attempting to update undefined context');\n }\n\n var updatedContext = context ? assignActions.reduce(function (acc, assignAction) {\n var e_7, _a;\n\n var assignment = assignAction.assignment;\n var meta = {\n state: state,\n action: assignAction,\n _event: _event\n };\n var partialUpdate = {};\n\n if (isFunction(assignment)) {\n partialUpdate = assignment(acc, _event.data, meta);\n } else {\n try {\n for (var _b = __values(keys(assignment)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n var propAssignment = assignment[key];\n partialUpdate[key] = isFunction(propAssignment) ? propAssignment(acc, _event.data, meta) : propAssignment;\n }\n } catch (e_7_1) {\n e_7 = {\n error: e_7_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b[\"return\"])) _a.call(_b);\n } finally {\n if (e_7) throw e_7.error;\n }\n }\n }\n\n return Object.assign({}, acc, partialUpdate);\n }, context) : context;\n return updatedContext;\n} // tslint:disable-next-line:no-empty\n\n\nvar warn = function warn() {};\n\nif (!IS_PRODUCTION) {\n warn = function warn(condition, message) {\n var error = condition instanceof Error ? condition : undefined;\n\n if (!error && condition) {\n return;\n }\n\n if (console !== undefined) {\n var args = [\"Warning: \" + message];\n\n if (error) {\n args.push(error);\n } // tslint:disable-next-line:no-console\n\n\n console.warn.apply(console, args);\n }\n };\n}\n\nfunction isArray(value) {\n return Array.isArray(value);\n} // tslint:disable-next-line:ban-types\n\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n\nfunction isString(value) {\n return typeof value === 'string';\n} // export function memoizedGetter(\n// o: TP,\n// property: string,\n// getter: () => T\n// ): void {\n// Object.defineProperty(o.prototype, property, {\n// get: getter,\n// enumerable: false,\n// configurable: false\n// });\n// }\n\n\nfunction toGuard(condition, guardMap) {\n if (!condition) {\n return undefined;\n }\n\n if (isString(condition)) {\n return {\n type: DEFAULT_GUARD_TYPE,\n name: condition,\n predicate: guardMap ? guardMap[condition] : undefined\n };\n }\n\n if (isFunction(condition)) {\n return {\n type: DEFAULT_GUARD_TYPE,\n name: condition.name,\n predicate: condition\n };\n }\n\n return condition;\n}\n\nfunction isObservable(value) {\n try {\n return 'subscribe' in value && isFunction(value.subscribe);\n } catch (e) {\n return false;\n }\n}\n\nvar symbolObservable = /*#__PURE__*/function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n}();\n\nfunction isMachine(value) {\n try {\n return '__xstatenode' in value;\n } catch (e) {\n return false;\n }\n}\n\nvar uniqueId = /*#__PURE__*/function () {\n var currentId = 0;\n return function () {\n currentId++;\n return currentId.toString(16);\n };\n}();\n\nfunction toEventObject(event, payload // id?: TEvent['type']\n) {\n if (isString(event) || typeof event === 'number') {\n return __assign({\n type: event\n }, payload);\n }\n\n return event;\n}\n\nfunction toSCXMLEvent(event, scxmlEvent) {\n if (!isString(event) && '$$type' in event && event.$$type === 'scxml') {\n return event;\n }\n\n var eventObject = toEventObject(event);\n return __assign({\n name: eventObject.type,\n data: eventObject,\n $$type: 'scxml',\n type: 'external'\n }, scxmlEvent);\n}\n\nfunction toTransitionConfigArray(event, configLike) {\n var transitions = toArrayStrict(configLike).map(function (transitionLike) {\n if (typeof transitionLike === 'undefined' || typeof transitionLike === 'string' || isMachine(transitionLike)) {\n // @ts-ignore until Type instantiation is excessively deep and possibly infinite bug is fixed\n return {\n target: transitionLike,\n event: event\n };\n }\n\n return __assign(__assign({}, transitionLike), {\n event: event\n });\n });\n return transitions;\n}\n\nfunction normalizeTarget(target) {\n if (target === undefined || target === TARGETLESS_KEY) {\n return undefined;\n }\n\n return toArray(target);\n}\n\nfunction reportUnhandledExceptionOnInvocation(originalError, currentError, id) {\n if (!IS_PRODUCTION) {\n var originalStackTrace = originalError.stack ? \" Stacktrace was '\" + originalError.stack + \"'\" : '';\n\n if (originalError === currentError) {\n // tslint:disable-next-line:no-console\n console.error(\"Missing onError handler for invocation '\" + id + \"', error was '\" + originalError + \"'.\" + originalStackTrace);\n } else {\n var stackTrace = currentError.stack ? \" Stacktrace was '\" + currentError.stack + \"'\" : ''; // tslint:disable-next-line:no-console\n\n console.error(\"Missing onError handler and/or unhandled exception/promise rejection for invocation '\" + id + \"'. \" + (\"Original error: '\" + originalError + \"'. \" + originalStackTrace + \" Current error is '\" + currentError + \"'.\" + stackTrace));\n }\n }\n}\n\nexport { flatten, getEventType, isArray, isBuiltInEvent, isFunction, isMachine, isObservable, isPromiseLike, isStateLike, isString, keys, mapContext, mapFilterValues, mapValues, matchesState, nestedPath, normalizeTarget, partition, path, pathToStateValue, reportUnhandledExceptionOnInvocation, symbolObservable, toArray, toArrayStrict, toEventObject, toGuard, toSCXMLEvent, toStatePath, toStatePaths, toStateValue, toTransitionConfigArray, uniqueId, updateContext, updateHistoryStates, updateHistoryValue, warn };","\"use strict\";\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\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nvar __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar react_1 = require(\"react\");\n\nvar xstate_1 = require(\"xstate\");\n\nvar defaultOptions = {\n immediate: false\n};\n\nfunction useMachine(machine, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var context = options.context,\n guards = options.guards,\n actions = options.actions,\n activities = options.activities,\n services = options.services,\n delays = options.delays,\n immediate = options.immediate,\n rehydratedState = options.state,\n interpreterOptions = __rest(options, [\"context\", \"guards\", \"actions\", \"activities\", \"services\", \"delays\", \"immediate\", \"state\"]);\n\n var machineConfig = {\n context: context,\n guards: guards,\n actions: actions,\n activities: activities,\n services: services,\n delays: delays\n }; // Reference the machine\n\n var machineRef = react_1.useRef(null); // Create the machine only once\n // See https://reactjs.org/docs/hooks-faq.html#how-to-create-expensive-objects-lazily\n\n if (machineRef.current === null) {\n machineRef.current = machine.withConfig(machineConfig, __assign(__assign({}, machine.context), context));\n } // Reference the service\n\n\n var serviceRef = react_1.useRef(null); // Create the service only once\n\n if (serviceRef.current === null) {\n serviceRef.current = xstate_1.interpret(machineRef.current, interpreterOptions).onTransition(function (state) {\n // Update the current machine state when a transition occurs\n if (state.changed) {\n setCurrent(state);\n }\n });\n }\n\n var service = serviceRef.current; // Make sure actions and services are kept updated when they change.\n // This mutation assignment is safe because the service instance is only used\n // in one place -- this hook's caller.\n\n react_1.useEffect(function () {\n Object.assign(service.machine.options.actions, actions);\n }, [actions]);\n react_1.useEffect(function () {\n Object.assign(service.machine.options.services, services);\n }, [services]); // Keep track of the current machine state\n\n var initialState = rehydratedState ? xstate_1.State.create(rehydratedState) : service.initialState;\n\n var _a = __read(react_1.useState(function () {\n return initialState;\n }), 2),\n current = _a[0],\n setCurrent = _a[1]; // Start service immediately (before mount) if specified in options\n\n\n if (immediate) {\n service.start();\n }\n\n react_1.useEffect(function () {\n // Start the service when the component mounts.\n // Note: the service will start only if it hasn't started already.\n //\n // If a rehydrated state was provided, use the resolved `initialState`.\n service.start(rehydratedState ? initialState : undefined);\n return function () {\n // Stop the service when the component unmounts\n service.stop();\n };\n }, []);\n return [current, service.send, service];\n}\n\nexports.useMachine = useMachine;\n\nfunction useService(service) {\n var _a = __read(react_1.useState(service.state), 2),\n current = _a[0],\n setCurrent = _a[1];\n\n react_1.useEffect(function () {\n // Set to current service state as there is a possibility\n // of a transition occurring between the initial useState()\n // initialization and useEffect() commit.\n setCurrent(service.state);\n\n var listener = function listener(state) {\n if (state.changed) {\n setCurrent(state);\n }\n };\n\n var sub = service.subscribe(listener);\n return function () {\n sub.unsubscribe();\n };\n }, [service]);\n return [current, service.send, service];\n}\n\nexports.useService = useService;\n\nvar useActor_1 = require(\"./useActor\");\n\nexports.useActor = useActor_1.useActor;","import { IS_PRODUCTION } from './environment.js';\n\nfunction getDevTools() {\n var w = window;\n\n if (!!w.__xstate__) {\n return w.__xstate__;\n }\n\n return undefined;\n}\n\nfunction registerService(service) {\n if (IS_PRODUCTION || typeof window === 'undefined') {\n return;\n }\n\n var devTools = getDevTools();\n\n if (devTools) {\n devTools.register(service);\n }\n}\n\nexport { registerService };","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is'); // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n\n\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\n\nvar ReCAPTCHA = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(ReCAPTCHA, _React$Component);\n\n function ReCAPTCHA() {\n var _this;\n\n _this = _React$Component.call(this) || this;\n _this.handleExpired = _this.handleExpired.bind(_assertThisInitialized(_this));\n _this.handleErrored = _this.handleErrored.bind(_assertThisInitialized(_this));\n _this.handleChange = _this.handleChange.bind(_assertThisInitialized(_this));\n _this.handleRecaptchaRef = _this.handleRecaptchaRef.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n var _proto = ReCAPTCHA.prototype;\n\n _proto.getValue = function getValue() {\n if (this.props.grecaptcha && this._widgetId !== undefined) {\n return this.props.grecaptcha.getResponse(this._widgetId);\n }\n\n return null;\n };\n\n _proto.getWidgetId = function getWidgetId() {\n if (this.props.grecaptcha && this._widgetId !== undefined) {\n return this._widgetId;\n }\n\n return null;\n };\n\n _proto.execute = function execute() {\n var grecaptcha = this.props.grecaptcha;\n\n if (grecaptcha && this._widgetId !== undefined) {\n return grecaptcha.execute(this._widgetId);\n } else {\n this._executeRequested = true;\n }\n };\n\n _proto.executeAsync = function executeAsync() {\n var _this2 = this;\n\n return new Promise(function (resolve, reject) {\n _this2.executionResolve = resolve;\n _this2.executionReject = reject;\n\n _this2.execute();\n });\n };\n\n _proto.reset = function reset() {\n if (this.props.grecaptcha && this._widgetId !== undefined) {\n this.props.grecaptcha.reset(this._widgetId);\n }\n };\n\n _proto.handleExpired = function handleExpired() {\n if (this.props.onExpired) {\n this.props.onExpired();\n } else {\n this.handleChange(null);\n }\n };\n\n _proto.handleErrored = function handleErrored() {\n if (this.props.onErrored) {\n this.props.onErrored();\n }\n\n if (this.executionReject) {\n this.executionReject();\n delete this.executionResolve;\n delete this.executionReject;\n }\n };\n\n _proto.handleChange = function handleChange(token) {\n if (this.props.onChange) {\n this.props.onChange(token);\n }\n\n if (this.executionResolve) {\n this.executionResolve(token);\n delete this.executionReject;\n delete this.executionResolve;\n }\n };\n\n _proto.explicitRender = function explicitRender() {\n if (this.props.grecaptcha && this.props.grecaptcha.render && this._widgetId === undefined) {\n var wrapper = document.createElement(\"div\");\n this._widgetId = this.props.grecaptcha.render(wrapper, {\n sitekey: this.props.sitekey,\n callback: this.handleChange,\n theme: this.props.theme,\n type: this.props.type,\n tabindex: this.props.tabindex,\n \"expired-callback\": this.handleExpired,\n \"error-callback\": this.handleErrored,\n size: this.props.size,\n stoken: this.props.stoken,\n hl: this.props.hl,\n badge: this.props.badge\n });\n this.captcha.appendChild(wrapper);\n }\n\n if (this._executeRequested && this.props.grecaptcha && this._widgetId !== undefined) {\n this._executeRequested = false;\n this.execute();\n }\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this.explicitRender();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n this.explicitRender();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this._widgetId !== undefined) {\n this.delayOfCaptchaIframeRemoving();\n this.reset();\n }\n };\n\n _proto.delayOfCaptchaIframeRemoving = function delayOfCaptchaIframeRemoving() {\n var temporaryNode = document.createElement(\"div\");\n document.body.appendChild(temporaryNode);\n temporaryNode.style.display = \"none\"; // move of the recaptcha to a temporary node\n\n while (this.captcha.firstChild) {\n temporaryNode.appendChild(this.captcha.firstChild);\n } // delete the temporary node after reset will be done\n\n\n setTimeout(function () {\n document.body.removeChild(temporaryNode);\n }, 5000);\n };\n\n _proto.handleRecaptchaRef = function handleRecaptchaRef(elem) {\n this.captcha = elem;\n };\n\n _proto.render = function render() {\n // consume properties owned by the reCATPCHA, pass the rest to the div so the user can style it.\n\n /* eslint-disable no-unused-vars */\n var _this$props = this.props,\n sitekey = _this$props.sitekey,\n onChange = _this$props.onChange,\n theme = _this$props.theme,\n type = _this$props.type,\n tabindex = _this$props.tabindex,\n onExpired = _this$props.onExpired,\n onErrored = _this$props.onErrored,\n size = _this$props.size,\n stoken = _this$props.stoken,\n grecaptcha = _this$props.grecaptcha,\n badge = _this$props.badge,\n hl = _this$props.hl,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"sitekey\", \"onChange\", \"theme\", \"type\", \"tabindex\", \"onExpired\", \"onErrored\", \"size\", \"stoken\", \"grecaptcha\", \"badge\", \"hl\"]);\n /* eslint-enable no-unused-vars */\n\n\n return React.createElement(\"div\", _extends({}, childProps, {\n ref: this.handleRecaptchaRef\n }));\n };\n\n return ReCAPTCHA;\n}(React.Component);\n\nexport { ReCAPTCHA as default };\nReCAPTCHA.displayName = \"ReCAPTCHA\";\nReCAPTCHA.propTypes = {\n sitekey: PropTypes.string.isRequired,\n onChange: PropTypes.func,\n grecaptcha: PropTypes.object,\n theme: PropTypes.oneOf([\"dark\", \"light\"]),\n type: PropTypes.oneOf([\"image\", \"audio\"]),\n tabindex: PropTypes.number,\n onExpired: PropTypes.func,\n onErrored: PropTypes.func,\n size: PropTypes.oneOf([\"compact\", \"normal\", \"invisible\"]),\n stoken: PropTypes.string,\n hl: PropTypes.string,\n badge: PropTypes.oneOf([\"bottomright\", \"bottomleft\", \"inline\"])\n};\nReCAPTCHA.defaultProps = {\n onChange: function onChange() {},\n theme: \"light\",\n type: \"image\",\n tabindex: 0,\n size: \"normal\",\n badge: \"bottomright\"\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nimport { Component, createElement, forwardRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nvar SCRIPT_MAP = {}; // A counter used to generate a unique id for each component that uses the function\n\nvar idCount = 0;\nexport default function makeAsyncScript(getScriptURL, options) {\n options = options || {};\n return function wrapWithAsyncScript(WrappedComponent) {\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || \"Component\";\n\n var AsyncScriptLoader = /*#__PURE__*/function (_Component) {\n _inheritsLoose(AsyncScriptLoader, _Component);\n\n function AsyncScriptLoader(props, context) {\n var _this;\n\n _this = _Component.call(this, props, context) || this;\n _this.state = {};\n _this.__scriptURL = \"\";\n return _this;\n }\n\n var _proto = AsyncScriptLoader.prototype;\n\n _proto.asyncScriptLoaderGetScriptLoaderID = function asyncScriptLoaderGetScriptLoaderID() {\n if (!this.__scriptLoaderID) {\n this.__scriptLoaderID = \"async-script-loader-\" + idCount++;\n }\n\n return this.__scriptLoaderID;\n };\n\n _proto.setupScriptURL = function setupScriptURL() {\n this.__scriptURL = typeof getScriptURL === \"function\" ? getScriptURL() : getScriptURL;\n return this.__scriptURL;\n };\n\n _proto.asyncScriptLoaderHandleLoad = function asyncScriptLoaderHandleLoad(state) {\n var _this2 = this; // use reacts setState callback to fire props.asyncScriptOnLoad with new state/entry\n\n\n this.setState(state, function () {\n return _this2.props.asyncScriptOnLoad && _this2.props.asyncScriptOnLoad(_this2.state);\n });\n };\n\n _proto.asyncScriptLoaderTriggerOnScriptLoaded = function asyncScriptLoaderTriggerOnScriptLoaded() {\n var mapEntry = SCRIPT_MAP[this.__scriptURL];\n\n if (!mapEntry || !mapEntry.loaded) {\n throw new Error(\"Script is not loaded.\");\n }\n\n for (var obsKey in mapEntry.observers) {\n mapEntry.observers[obsKey](mapEntry);\n }\n\n delete window[options.callbackName];\n };\n\n _proto.componentDidMount = function componentDidMount() {\n var _this3 = this;\n\n var scriptURL = this.setupScriptURL();\n var key = this.asyncScriptLoaderGetScriptLoaderID();\n var _options = options,\n globalName = _options.globalName,\n callbackName = _options.callbackName,\n scriptId = _options.scriptId; // check if global object already attached to window\n\n if (globalName && typeof window[globalName] !== \"undefined\") {\n SCRIPT_MAP[scriptURL] = {\n loaded: true,\n observers: {}\n };\n } // check if script loading already\n\n\n if (SCRIPT_MAP[scriptURL]) {\n var entry = SCRIPT_MAP[scriptURL]; // if loaded or errored then \"finish\"\n\n if (entry && (entry.loaded || entry.errored)) {\n this.asyncScriptLoaderHandleLoad(entry);\n return;\n } // if still loading then callback to observer queue\n\n\n entry.observers[key] = function (entry) {\n return _this3.asyncScriptLoaderHandleLoad(entry);\n };\n\n return;\n }\n /*\n * hasn't started loading\n * start the \"magic\"\n * setup script to load and observers\n */\n\n\n var observers = {};\n\n observers[key] = function (entry) {\n return _this3.asyncScriptLoaderHandleLoad(entry);\n };\n\n SCRIPT_MAP[scriptURL] = {\n loaded: false,\n observers: observers\n };\n var script = document.createElement(\"script\");\n script.src = scriptURL;\n script.async = true;\n\n for (var attribute in options.attributes) {\n script.setAttribute(attribute, options.attributes[attribute]);\n }\n\n if (scriptId) {\n script.id = scriptId;\n }\n\n var callObserverFuncAndRemoveObserver = function callObserverFuncAndRemoveObserver(func) {\n if (SCRIPT_MAP[scriptURL]) {\n var mapEntry = SCRIPT_MAP[scriptURL];\n var observersMap = mapEntry.observers;\n\n for (var obsKey in observersMap) {\n if (func(observersMap[obsKey])) {\n delete observersMap[obsKey];\n }\n }\n }\n };\n\n if (callbackName && typeof window !== \"undefined\") {\n window[callbackName] = function () {\n return _this3.asyncScriptLoaderTriggerOnScriptLoaded();\n };\n }\n\n script.onload = function () {\n var mapEntry = SCRIPT_MAP[scriptURL];\n\n if (mapEntry) {\n mapEntry.loaded = true;\n callObserverFuncAndRemoveObserver(function (observer) {\n if (callbackName) {\n return false;\n }\n\n observer(mapEntry);\n return true;\n });\n }\n };\n\n script.onerror = function () {\n var mapEntry = SCRIPT_MAP[scriptURL];\n\n if (mapEntry) {\n mapEntry.errored = true;\n callObserverFuncAndRemoveObserver(function (observer) {\n observer(mapEntry);\n return true;\n });\n }\n };\n\n document.body.appendChild(script);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n // Remove tag script\n var scriptURL = this.__scriptURL;\n\n if (options.removeOnUnmount === true) {\n var allScripts = document.getElementsByTagName(\"script\");\n\n for (var i = 0; i < allScripts.length; i += 1) {\n if (allScripts[i].src.indexOf(scriptURL) > -1) {\n if (allScripts[i].parentNode) {\n allScripts[i].parentNode.removeChild(allScripts[i]);\n }\n }\n }\n } // Clean the observer entry\n\n\n var mapEntry = SCRIPT_MAP[scriptURL];\n\n if (mapEntry) {\n delete mapEntry.observers[this.asyncScriptLoaderGetScriptLoaderID()];\n\n if (options.removeOnUnmount === true) {\n delete SCRIPT_MAP[scriptURL];\n }\n }\n };\n\n _proto.render = function render() {\n var globalName = options.globalName; // remove asyncScriptOnLoad from childProps\n\n var _this$props = this.props,\n asyncScriptOnLoad = _this$props.asyncScriptOnLoad,\n forwardedRef = _this$props.forwardedRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"asyncScriptOnLoad\", \"forwardedRef\"]); // eslint-disable-line no-unused-vars\n\n\n if (globalName && typeof window !== \"undefined\") {\n childProps[globalName] = typeof window[globalName] !== \"undefined\" ? window[globalName] : undefined;\n }\n\n childProps.ref = forwardedRef;\n return createElement(WrappedComponent, childProps);\n };\n\n return AsyncScriptLoader;\n }(Component); // Note the second param \"ref\" provided by React.forwardRef.\n // We can pass it along to AsyncScriptLoader as a regular prop, e.g. \"forwardedRef\"\n // And it can then be attached to the Component.\n\n\n var ForwardedComponent = forwardRef(function (props, ref) {\n return createElement(AsyncScriptLoader, _extends({}, props, {\n forwardedRef: ref\n }));\n });\n ForwardedComponent.displayName = \"AsyncScriptLoader(\" + wrappedComponentName + \")\";\n ForwardedComponent.propTypes = {\n asyncScriptOnLoad: PropTypes.func\n };\n return hoistStatics(ForwardedComponent, WrappedComponent);\n };\n}","import ReCAPTCHA from \"./recaptcha\";\nimport makeAsyncScriptLoader from \"react-async-script\";\nvar callbackName = \"onloadcallback\";\nvar globalName = \"grecaptcha\";\n\nfunction getOptions() {\n return typeof window !== \"undefined\" && window.recaptchaOptions || {};\n}\n\nfunction getURL() {\n var dynamicOptions = getOptions();\n var hostname = dynamicOptions.useRecaptchaNet ? \"recaptcha.net\" : \"www.google.com\";\n return \"https://\" + hostname + \"/recaptcha/api.js?onload=\" + callbackName + \"&render=explicit\";\n}\n\nexport default makeAsyncScriptLoader(getURL, {\n callbackName: callbackName,\n globalName: globalName\n})(ReCAPTCHA);","import RecaptchaWrapper from \"./recaptcha-wrapper\";\nimport ReCAPTCHA from \"./recaptcha\";\nexport default RecaptchaWrapper;\nexport { ReCAPTCHA };","var IS_PRODUCTION = process.env.NODE_ENV === 'production';\nexport { IS_PRODUCTION };","\"use strict\";\n\nvar __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar react_1 = require(\"react\");\n\nfunction useActor(actor) {\n var _a = __read(react_1.useState(undefined), 2),\n current = _a[0],\n setCurrent = _a[1];\n\n var actorRef = react_1.useRef(actor);\n react_1.useEffect(function () {\n if (actor) {\n actorRef.current = actor;\n var sub_1 = actor.subscribe(setCurrent);\n return function () {\n sub_1.unsubscribe();\n };\n }\n }, [actor]);\n return [current, actorRef.current ? actorRef.current.send : function () {\n return void 0;\n }];\n}\n\nexports.useActor = useActor;","import React from \"react\";\n\nimport styled from \"@emotion/styled\";\nimport { css } from \"@emotion/react\";\nimport Icon from \"@ats/src/components/shared/Icon\";\n\ntype Props = {\n title?: string;\n message: string | object;\n icon?: string;\n borderless?: boolean;\n roomy?: boolean;\n};\n\nconst EmptyState = ({ title, message, icon, borderless, roomy }: Props) => {\n return (\n \n {icon && (\n \n \n \n )}\n {title &&

    {title}

    }\n {message &&

    {message}

    }\n
    \n );\n};\n\nexport default EmptyState;\n\n/* Styled Components\n======================================================= */\nconst Styled: any = {};\n\nStyled.Container = styled.div((props: any) => {\n const t: any = props.theme;\n return css`\n label: EmptyState;\n ${[t.px(6), t.rounded.md]}\n ${props.roomy ? t.py(8) : t.py(5)}\n display: flex;\n flex-direction: column;\n align-items: center;\n text-align: center;\n ${!props.borderless\n ? `\n border: 1px solid ${t.dark ? \"transparent\" : t.color.gray[200]};\n background-color: ${t.dark ? \"rgba(255,255,255,0.07)\" : \"transparent\"};\n `\n : \"\"}\n color: ${t.dark ? t.color.gray[200] : t.color.black};\n h2 {\n ${[t.text.sm, t.mb(1)]};\n }\n p {\n ${t.text.xs}\n color: ${t.dark ? t.color.gray[400] : t.color.gray[600]};\n }\n `;\n});\n\nStyled.IconWrapper = styled.div((props) => {\n const t: any = props.theme;\n return css`\n label: EmptyState_IconWrapper;\n ${[t.text.sm, t.mb(2)]}\n `;\n});\n"],"sourceRoot":""}