From 422ec09771cd3a9d06e9059bed0827fea2bc09d0 Mon Sep 17 00:00:00 2001 From: Till Kolter Date: Tue, 25 Aug 2020 23:36:10 +0200 Subject: [PATCH] feat: Add bundles --- .gitignore | 2 +- bundles/6ab91c58bf337b7164c3.worker.js.map | 1 + bundles/95952f773ec942db46dc.worker.js.map | 1 + bundles/redoc.lib.js | 14845 ++++++++++++++++ bundles/redoc.lib.js.map | 1 + bundles/redoc.standalone.js | 110 + bundles/redoc.standalone.js.map | 1 + demo/index.tsx | 2 +- demo/openapi.yaml | 12 +- demo/playground/hmr-playground.tsx | 4 +- .../playground}/markdown/TryOutWidget.tsx | 4 +- {src => demo/playground}/markdown/auth.mdx | 20 +- demo/playground/markdown/index.ts | 15 + demo/playground/markdown/manifest.json | 3 + {src => demo/playground}/markdown/welcome.mdx | 0 demo/swagger.yaml | 7 - demo/webpack.config.ts | 6 +- package-lock.json | 22 +- src/common-elements/flex.ts | 10 +- src/common-elements/index.ts | 1 + src/common-elements/perfect-scrollbar.tsx | 11 +- src/components/Redoc/Redoc.tsx | 15 +- src/components/RedocStandalone.tsx | 2 + .../SelectOnClick/SelectOnClick.tsx | 2 +- src/index.ts | 3 +- src/markdown/code/Highlighter/index.tsx | 11 +- src/markdown/components.tsx | 89 + src/markdown/index.tsx | 112 +- src/services/AppStore.ts | 24 +- src/services/MenuStore.ts | 434 +- src/services/OpenAPIParser.ts | 16 +- src/services/SpecStore.ts | 2 +- src/utils/openapi.ts | 35 +- webpack.config.ts | 60 +- 34 files changed, 15457 insertions(+), 426 deletions(-) create mode 100644 bundles/6ab91c58bf337b7164c3.worker.js.map create mode 100644 bundles/95952f773ec942db46dc.worker.js.map create mode 100644 bundles/redoc.lib.js create mode 100644 bundles/redoc.lib.js.map create mode 100644 bundles/redoc.standalone.js create mode 100644 bundles/redoc.standalone.js.map rename {src => demo/playground}/markdown/TryOutWidget.tsx (77%) rename {src => demo/playground}/markdown/auth.mdx (68%) create mode 100644 demo/playground/markdown/index.ts create mode 100644 demo/playground/markdown/manifest.json rename {src => demo/playground}/markdown/welcome.mdx (100%) create mode 100644 src/markdown/components.tsx diff --git a/.gitignore b/.gitignore index 799396e5..8d59ea12 100644 --- a/.gitignore +++ b/.gitignore @@ -24,7 +24,7 @@ node_modules lib/ stats.json cypress/ -bundles/ +# bundles/ typings/* !typings/styled-patch.d.ts cli/index.js diff --git a/bundles/6ab91c58bf337b7164c3.worker.js.map b/bundles/6ab91c58bf337b7164c3.worker.js.map new file mode 100644 index 00000000..ac8dcac3 --- /dev/null +++ b/bundles/6ab91c58bf337b7164c3.worker.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack://Redoc/182649235cd683068b8d.worker.js"],"names":["modules","installedModules","__webpack_require__","moduleId","exports","module","i","l","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","global","check","it","Math","globalThis","window","self","Function","this","shared","has","uid","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","isObject","TypeError","String","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_RESULT__","step2list","step3list","v","C","re_mgr0","re_mgr1","re_meq1","re_s_v","re_1a","re2_1a","re_1b","re2_1b","re_1b_2","re2_1b_2","re3_1b_2","re4_1b_2","re_1c","re_2","re_3","re_4","re2_4","re_5","re_5_1","re3_5","porterStemmer","lunr","config","builder","Builder","pipeline","add","trimmer","stopWordFilter","stemmer","searchPipeline","build","version","utils","warn","message","console","asString","obj","toString","clone","keys","length","val","Array","isArray","slice","FieldRef","docRef","fieldName","stringValue","_stringValue","joiner","fromString","indexOf","fieldRef","undefined","Set","elements","complete","intersect","other","union","contains","empty","a","b","intersection","element","push","concat","idf","posting","documentCount","documentsWithTerm","x","log","abs","Token","str","metadata","update","fn","tokenizer","map","toLowerCase","len","tokens","sliceEnd","sliceStart","sliceLength","charAt","match","separator","tokenMetadata","Pipeline","_stack","registeredFunctions","registerFunction","label","warnIfFunctionNotRegistered","load","serialised","forEach","fnName","Error","fns","arguments","after","existingFn","newFn","pos","splice","before","remove","run","stackLength","memo","j","result","k","runString","token","reset","toJSON","Vector","_magnitude","positionForIndex","index","start","end","pivotPoint","floor","pivotIndex","insert","insertIdx","upsert","position","magnitude","sumOfSquares","elementsLength","sqrt","dot","otherVector","dotProduct","aLen","bLen","aVal","bVal","similarity","toArray","output","ational","tional","enci","anci","izer","bli","alli","entli","eli","ousli","ization","ation","ator","alism","iveness","fulness","ousness","aliti","iviti","biliti","logi","icate","ative","alize","iciti","ical","ful","ness","RegExp","w","stem","suffix","firstch","re","re2","re3","re4","substr","toUpperCase","test","replace","fp","exec","generateStopWordFilter","stopWords","words","reduce","stopWord","TokenSet","final","edges","id","_nextId","fromArray","arr","finish","root","fromClause","clause","fromFuzzyString","term","editDistance","stack","node","editsRemaining","frame","pop","noEditNode","char","insertionNode","substitutionNode","transposeNode","charA","charB","next","prefix","edge","_str","labels","sort","qNode","qEdges","qLen","nEdges","nLen","q","qEdge","nEdge","previousWord","uncheckedNodes","minimizedNodes","word","commonPrefix","minimize","child","nextNode","parent","downTo","childKey","Index","attrs","invertedIndex","fieldVectors","tokenSet","fields","search","queryString","query","QueryParser","parse","Query","matchingFields","queryVectors","termFieldCache","requiredMatches","prohibitedMatches","clauses","terms","clauseMatches","usePipeline","termTokenSet","expandedTerms","presence","REQUIRED","field","expandedTerm","termIndex","_index","fieldPosting","matchingDocumentRefs","termField","matchingDocumentsSet","PROHIBITED","boost","fieldMatch","matchingDocumentRef","matchingFieldRef","MatchData","allRequiredMatches","allProhibitedMatches","matchingFieldRefs","results","matches","isNegated","docMatch","fieldVector","score","matchData","combine","ref","serializedIndex","serializedVectors","serializedInvertedIndex","tokenSetBuilder","tuple","_ref","_fields","_documents","fieldTermFrequencies","fieldLengths","_b","_k1","metadataWhitelist","attributes","RangeError","number","k1","doc","extractor","fieldTerms","metadataKey","calculateAverageFieldLengths","fieldRefs","numberOfFields","accumulator","documentsWithField","averageFieldLength","createFieldVectors","fieldRefsLength","termIdfCache","fieldLength","termFrequencies","termsLength","fieldBoost","docBoost","scoreWithPrecision","tf","round","createTokenSet","use","args","unshift","apply","clonedMetadata","metadataKeys","otherMatchData","allFields","wildcard","NONE","LEADING","TRAILING","OPTIONAL","options","QueryParseError","QueryLexer","lexemes","escapeCharPositions","state","lexText","sliceString","subSlices","join","emit","type","escapeCharacter","EOS","width","ignore","backup","acceptDigitRun","charCode","charCodeAt","more","FIELD","TERM","EDIT_DISTANCE","BOOST","PRESENCE","lexField","lexer","lexTerm","lexEditDistance","lexBoost","lexEOS","termSeparator","currentClause","lexemeIdx","parseClause","peekLexeme","consumeLexeme","lexeme","nextClause","completedClause","parser","parsePresence","parseField","parseTerm","errorMessage","nextLexeme","possibleFields","f","parseEditDistance","parseBoost","parseInt","isNaN","error","DESCRIPTORS","definePropertyModule","createPropertyDescriptor","fails","IE8_DOM_DEFINE","anObject","toPrimitive","nativeDefineProperty","O","P","Attributes","createNonEnumerableProperty","setGlobal","inspectSource","InternalStateModule","getInternalState","enforceInternalState","enforce","TEMPLATE","split","unsafe","simple","noTargetGet","source","path","aFunction","variable","namespace","method","set","NATIVE_WEAK_MAP","objectHas","sharedKey","hiddenKeys","WeakMap","store","wmget","wmhas","wmset","STATE","getterFor","TYPE","getOwnPropertyDescriptor","redefine","copyConstructorProperties","isForced","target","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","forced","sham","IndexedObject","requireObjectCoercible","wellKnownSymbol","document","EXISTS","createElement","bitmap","configurable","writable","functionToString","ceil","argument","propertyIsEnumerableModule","toIndexedObject","nativeGetOwnPropertyDescriptor","TO_STRING_TAG","TAG","PromiseCapability","resolve","reject","promise","$$resolve","$$reject","IS_PURE","copyright","input","PREFERRED_STRING","valueOf","postfix","random","getOwnPropertySymbols","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tag","tryGet","callee","$","createIteratorConstructor","getPrototypeOf","setPrototypeOf","setToStringTag","Iterators","IteratorsCore","IteratorPrototype","BUGGY_SAFARI_ITERATORS","ITERATOR","returnThis","Iterable","NAME","IteratorConstructor","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","values","proto","names","toInteger","min","replacement","feature","detection","data","normalize","POLYFILL","NATIVE","string","PrototypeOfArrayIteratorPrototype","arrayIterator","toObject","CORRECT_PROTOTYPE_GETTER","IE_PROTO","ObjectPrototype","constructor","activeXDocument","defineProperties","enumBugKeys","html","documentCreateElement","EmptyConstructor","scriptTag","content","LT","NullProtoObject","domain","ActiveXObject","iframeDocument","iframe","write","close","temp","parentWindow","NullProtoObjectViaActiveX","style","display","appendChild","src","contentWindow","open","F","Properties","getBuiltIn","Promise","isArrayIteratorMethod","toLength","getIteratorMethod","callWithSafeIterationClosing","Result","stopped","iterable","that","AS_ENTRIES","IS_ITERATOR","iterator","iterFn","step","boundFunction","done","stop","SPECIES","defaultConstructor","S","defer","channel","port","classof","IS_IOS","location","setImmediate","clear","clearImmediate","process","MessageChannel","Dispatch","counter","queue","runner","listener","event","post","postMessage","protocol","host","nextTick","now","port2","port1","onmessage","addEventListener","importScripts","removeChild","setTimeout","userAgent","newPromiseCapability","promiseCapability","g","e","defineIterator","setInternalState","iterated","point","createMethod","CONVERT_TO_STRING","$this","first","second","size","codeAt","nativePropertyIsEnumerable","propertyIsEnumerable","NASHORN_BUG","1","V","ownKeys","getOwnPropertyDescriptorModule","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","internalObjectKeys","getOwnPropertyNames","toAbsoluteIndex","IS_INCLUDES","el","fromIndex","includes","max","integer","objectKeys","aPossiblePrototype","setter","CORRECT_SETTER","__proto__","DOMIterables","ArrayIteratorMethods","ArrayValues","COLLECTION_NAME","Collection","CollectionPrototype","METHOD_NAME","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","addToUnscopables","kind","Arguments","UNSCOPABLES","ArrayPrototype","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","NativePromise","redefineAll","setSpecies","anInstance","iterate","checkCorrectnessOfIteration","speciesConstructor","task","microtask","promiseResolve","hostReportErrors","newPromiseCapabilityModule","perform","V8_VERSION","PROMISE","getInternalPromiseState","PromiseConstructor","$fetch","newGenericPromiseCapability","IS_NODE","DISPATCH_EVENT","createEvent","dispatchEvent","PromiseRejectionEvent","FakePromise","then","INCORRECT_ITERATION","all","isThenable","notify","isReject","notified","chain","reactions","ok","exited","reaction","handler","fail","rejection","onHandleUnhandled","enter","exit","onUnhandled","reason","initEvent","isUnhandled","unwrap","internalReject","internalResolve","wrapper","executor","onFulfilled","onRejected","catch","fetch","wrap","capability","$promiseResolve","remaining","alreadyCalled","race","CONSTRUCTOR_NAME","Constructor","ENTRIES","returnMethod","SAFE_CLOSING","called","iteratorWithReturn","return","from","SKIP_CLOSING","ITERATION_SUPPORT","flush","head","last","toggle","macrotask","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","createTextNode","observe","characterData","versions","v8","allSettled","status","real","finally","onFinally","isFunction","__webpack_exports__","toJS","dispose","__awaiter","thisArg","_arguments","generator","fulfilled","rejected","__generator","body","y","_","sent","trys","ops","verb","throw","op","resolveIndex","Worker","initEmpty","title","description","meta","item","_a","limit","searchResults","trim","exp","expandTerm","res","_e$data","params"],"mappings":"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,KAAKT,KAAWK,EAAII,KAAKT,MACjDD,EAAIC,IAKRI,EAAMzL,GADNwL,EAAKvK,GAEE6K,KAAKV,IAAMK,EAAIK,KAAKV,KACzBI,EAAKjL,EACL6K,EAAIA,EAAEW,QAAQP,EAAG,KAKJ,KAAXD,IACFH,EAAIG,EAAQnG,cAAgBgG,EAAEQ,OAAO,IAGhCR,GAGF,SAAU3D,GACf,OAAOA,EAAMzC,OAAO7D,KAIxBC,EAAK0E,SAASG,iBAAiB7E,EAAKQ,QAAS;;;;IAmB7CR,EAAK8K,uBAAyB,SAAUC,GACtC,IAAIC,EAAQD,EAAUE,QAAO,SAAUjF,EAAMkF,GAE3C,OADAlF,EAAKkF,GAAYA,EACVlF,IACN,IAEH,OAAO,SAAUK,GACf,GAAIA,GAAS2E,EAAM3E,EAAMnF,cAAgBmF,EAAMnF,WAAY,OAAOmF,IAiBtErG,EAAKO,eAAiBP,EAAK8K,uBAAuB,CAChD,IACA,OACA,QACA,SACA,QACA,MACA,SACA,OACA,KACA,QACA,KACA,MACA,MACA,MACA,KACA,KACA,KACA,UACA,OACA,MACA,KACA,MACA,SACA,QACA,OACA,MACA,KACA,OACA,SACA,OACA,OACA,QACA,MACA,OACA,MACA,MACA,MACA,MACA,OACA,KACA,MACA,OACA,MACA,MACA,MACA,UACA,IACA,KACA,KACA,OACA,KACA,KACA,MACA,OACA,QACA,MACA,OACA,SACA,MACA,KACA,QACA,OACA,OACA,KACA,UACA,KACA,MACA,MACA,KACA,MACA,QACA,KACA,OACA,KACA,QACA,MACA,MACA,SACA,OACA,MACA,OACA,MACA,SACA,QACA,KACA,OACA,OACA,OACA,MACA,QACA,OACA,OACA,QACA,QACA,OACA,OACA,MACA,KACA,MACA,OACA,KACA,QACA,MACA,KACA,OACA,OACA,OACA,QACA,QACA,QACA,MACA,OACA,MACA,OACA,OACA,QACA,MACA,MACA,SAGF9K,EAAK0E,SAASG,iBAAiB7E,EAAKO,eAAgB;;;;IAqBpDP,EAAKM,QAAU,SAAU+F,GACvB,OAAOA,EAAMzC,QAAO,SAAU5G,GAC5B,O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","file":"6ab91c58bf337b7164c3.worker.js","sourceRoot":""} \ No newline at end of file diff --git a/bundles/95952f773ec942db46dc.worker.js.map b/bundles/95952f773ec942db46dc.worker.js.map new file mode 100644 index 00000000..38af5de8 --- /dev/null +++ b/bundles/95952f773ec942db46dc.worker.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack://Redoc/webpack/bootstrap","webpack://Redoc/./node_modules/core-js/internals/global.js","webpack://Redoc/./node_modules/core-js/internals/well-known-symbol.js","webpack://Redoc/./node_modules/core-js/internals/an-object.js","webpack://Redoc/./node_modules/core-js/internals/has.js","webpack://Redoc/./node_modules/lunr/lunr.js","webpack://Redoc/./node_modules/core-js/internals/fails.js","webpack://Redoc/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://Redoc/./node_modules/core-js/internals/is-object.js","webpack://Redoc/./node_modules/core-js/internals/descriptors.js","webpack://Redoc/./node_modules/core-js/internals/object-define-property.js","webpack://Redoc/./node_modules/core-js/internals/redefine.js","webpack://Redoc/./node_modules/core-js/internals/get-built-in.js","webpack://Redoc/./node_modules/core-js/internals/is-pure.js","webpack://Redoc/./node_modules/core-js/internals/classof-raw.js","webpack://Redoc/./node_modules/core-js/internals/iterators.js","webpack://Redoc/./node_modules/core-js/internals/a-function.js","webpack://Redoc/./node_modules/core-js/internals/internal-state.js","webpack://Redoc/./node_modules/core-js/internals/export.js","webpack://Redoc/./node_modules/core-js/internals/to-indexed-object.js","webpack://Redoc/./node_modules/core-js/internals/to-string-tag-support.js","webpack://Redoc/./node_modules/core-js/internals/set-global.js","webpack://Redoc/./node_modules/core-js/internals/document-create-element.js","webpack://Redoc/./node_modules/core-js/internals/create-property-descriptor.js","webpack://Redoc/./node_modules/core-js/internals/inspect-source.js","webpack://Redoc/./node_modules/core-js/internals/shared-key.js","webpack://Redoc/./node_modules/core-js/internals/hidden-keys.js","webpack://Redoc/./node_modules/core-js/internals/to-integer.js","webpack://Redoc/./node_modules/core-js/internals/require-object-coercible.js","webpack://Redoc/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://Redoc/./node_modules/core-js/internals/enum-bug-keys.js","webpack://Redoc/./node_modules/core-js/internals/set-to-string-tag.js","webpack://Redoc/./node_modules/core-js/internals/new-promise-capability.js","webpack://Redoc/./node_modules/core-js/internals/shared.js","webpack://Redoc/./node_modules/core-js/internals/shared-store.js","webpack://Redoc/./node_modules/core-js/internals/ie8-dom-define.js","webpack://Redoc/./node_modules/core-js/internals/to-primitive.js","webpack://Redoc/./node_modules/core-js/internals/uid.js","webpack://Redoc/./node_modules/core-js/internals/native-symbol.js","webpack://Redoc/./node_modules/core-js/internals/classof.js","webpack://Redoc/./node_modules/core-js/internals/define-iterator.js","webpack://Redoc/./node_modules/core-js/internals/path.js","webpack://Redoc/./node_modules/core-js/internals/object-keys-internal.js","webpack://Redoc/./node_modules/core-js/internals/to-length.js","webpack://Redoc/./node_modules/core-js/internals/is-forced.js","webpack://Redoc/./node_modules/core-js/internals/iterators-core.js","webpack://Redoc/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://Redoc/./node_modules/core-js/internals/object-create.js","webpack://Redoc/./node_modules/core-js/internals/html.js","webpack://Redoc/./node_modules/core-js/internals/native-promise-constructor.js","webpack://Redoc/./node_modules/core-js/internals/iterate.js","webpack://Redoc/./node_modules/core-js/internals/function-bind-context.js","webpack://Redoc/./node_modules/core-js/internals/species-constructor.js","webpack://Redoc/./node_modules/core-js/internals/task.js","webpack://Redoc/./node_modules/core-js/internals/engine-is-ios.js","webpack://Redoc/./node_modules/core-js/internals/engine-user-agent.js","webpack://Redoc/./node_modules/core-js/internals/promise-resolve.js","webpack://Redoc/./node_modules/core-js/internals/perform.js","webpack://Redoc/./node_modules/core-js/es/promise/index.js","webpack://Redoc/./node_modules/core-js/modules/es.object.to-string.js","webpack://Redoc/(webpack)/buildin/global.js","webpack://Redoc/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://Redoc/./node_modules/core-js/internals/native-weak-map.js","webpack://Redoc/./node_modules/core-js/internals/object-to-string.js","webpack://Redoc/./node_modules/core-js/modules/es.string.iterator.js","webpack://Redoc/./node_modules/core-js/internals/string-multibyte.js","webpack://Redoc/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://Redoc/./node_modules/core-js/internals/indexed-object.js","webpack://Redoc/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://Redoc/./node_modules/core-js/internals/own-keys.js","webpack://Redoc/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://Redoc/./node_modules/core-js/internals/array-includes.js","webpack://Redoc/./node_modules/core-js/internals/to-absolute-index.js","webpack://Redoc/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://Redoc/./node_modules/core-js/internals/create-iterator-constructor.js","webpack://Redoc/./node_modules/core-js/internals/to-object.js","webpack://Redoc/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://Redoc/./node_modules/core-js/internals/object-define-properties.js","webpack://Redoc/./node_modules/core-js/internals/object-keys.js","webpack://Redoc/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://Redoc/./node_modules/core-js/internals/a-possible-prototype.js","webpack://Redoc/./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack://Redoc/./node_modules/core-js/internals/dom-iterables.js","webpack://Redoc/./node_modules/core-js/modules/es.array.iterator.js","webpack://Redoc/./node_modules/core-js/internals/add-to-unscopables.js","webpack://Redoc/./node_modules/core-js/modules/es.promise.js","webpack://Redoc/./node_modules/core-js/internals/redefine-all.js","webpack://Redoc/./node_modules/core-js/internals/set-species.js","webpack://Redoc/./node_modules/core-js/internals/an-instance.js","webpack://Redoc/./node_modules/core-js/internals/is-array-iterator-method.js","webpack://Redoc/./node_modules/core-js/internals/get-iterator-method.js","webpack://Redoc/./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://Redoc/./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://Redoc/./node_modules/core-js/internals/microtask.js","webpack://Redoc/./node_modules/core-js/internals/host-report-errors.js","webpack://Redoc/./node_modules/core-js/internals/engine-v8-version.js","webpack://Redoc/./node_modules/core-js/modules/es.promise.all-settled.js","webpack://Redoc/./node_modules/core-js/modules/es.promise.finally.js","webpack://Redoc/./node_modules/tslib/tslib.es6.js","webpack://Redoc/./src/services/SearchWorker.worker.ts"],"names":[],"mappings":";;;;;;;QAAA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;AClFA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZA,aAAa,mBAAO,CAAC,CAAqB;AAC1C,aAAa,mBAAO,CAAC,EAAqB;AAC1C,UAAU,mBAAO,CAAC,CAAkB;AACpC,UAAU,mBAAO,CAAC,EAAkB;AACpC,oBAAoB,mBAAO,CAAC,EAA4B;AACxD,wBAAwB,mBAAO,CAAC,EAAgC;;AAEhE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;AChBA,eAAe,mBAAO,CAAC,CAAwB;;AAE/C;AACA;AACA;AACA,GAAG;AACH;;;;;;;ACNA,uBAAuB;;AAEvB;AACA;AACA;;;;;;;ACJA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,IAAI;AACJ;AACA,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,eAAe,SAAS;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,IAAI;AACf,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,iBAAiB;AAClC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB,iBAAiB;AACpC;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO,aAAa;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,WAAW,0BAA0B;AACrC,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,0BAA0B;AACrC,aAAa;AACb;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,0BAA0B;AACrC,WAAW,QAAQ;AACnB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA,wCAAwC,iBAAiB;AACzD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,sBAAsB;AACjC,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,sBAAsB;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,wBAAwB;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,sBAAsB;AACjC,WAAW,sBAAsB;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,sBAAsB;AACjC,WAAW,sBAAsB;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,sBAAsB;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa;AACb;AACA;AACA;;AAEA,iBAAiB,iBAAiB;AAClC;AACA;;AAEA,mBAAmB,mBAAmB;AACtC;;AAEA;;AAEA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,oBAAoB;AACrC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,YAAY;AACvB;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA,wBAAwB,0BAA0B;AAClD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,WAAW,WAAW;AACtB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,UAAU;;AAEjC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,0BAA0B;AAC/C,2BAA2B,2BAA2B;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,aAAa;AACvC,+BAA+B,cAAc,sBAAsB;AACnE,+BAA+B,aAAa;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,IAAI;;AAEP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,YAAY,WAAW;AACvB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,WAAW,WAAW;AACtB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa;AACb;AACA;AACA;AACA;;AAEA,mCAAmC,SAAS;AAC5C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,SAAS;AAC5C;AACA;;AAEA;AACA;AACA;;AAEA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,SAAS;AAC5B;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,SAAS;AAC1B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,UAAU;AAC7B;;AAEA,qBAAqB,UAAU;AAC/B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,iDAAiD;AAClE;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA,4BAA4B,iBAAiB;AAC7C;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,8CAA8C,aAAa;AAC3D;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,4BAA4B;AACvC,WAAW,cAAc;AACzB,WAAW,SAAS;AACpB,WAAW,cAAc;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,eAAe;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ,6DAA6D;AACrE;AACA;AACA;AACA,WAAW,uBAAuB;AAClC,YAAY,qBAAqB;AACjC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,wBAAwB;AACnC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,wBAAwB;AACzC;AACA;;AAEA;;AAEA,iBAAiB,0BAA0B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;;AAEA,mBAAmB,kBAAkB;AACrC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA;AACA;;AAEA;AACA;;AAEA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,0BAA0B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,eAAe;;AAE9F;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB,iCAAiC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,wBAAwB;AACzC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,8BAA8B;AACjD;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,8BAA8B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA,gBAAgB;AAChB,uBAAuB;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,8BAA8B;AAC/C;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,oCAAoC;AACrD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,SAAS;AACvB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,eAAe;AAC7B,cAAc,cAAc;AAC5B,cAAc,cAAc;AAC5B,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,0BAA0B;AACvC;AACA,mBAAmB;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,eAAe;AAC1B,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,mBAAmB,kBAAkB;AACrC;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,mBAAmB;AAC1C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,mCAAmC;AACxD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB;AACtB;;AAEA,iBAAiB,oBAAoB;AACrC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,iBAAiB,mBAAmB;AACpC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;;AAEA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,cAAc,OAAO;AACrB,SAAS;AACT;AACA;AACA;AACA,+CAA+C;;AAE/C;AACA;AACA;AACA;AACA;AACA,iBAAiB,yBAAyB;AAC1C;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,eAAe;AAC1B,SAAS;AACT;AACA;AACA;;AAEA,iBAAiB,kBAAkB;AACnC;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,mBAAmB;AACtC;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,iBAAiB;AACtC;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,iBAAiB,yBAAyB;AAC1C;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA,+CAA+C,uBAAuB;AACtE;AACA;AACA;AACA,cAAc,oBAAoB;AAClC,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB,iBAAiB;AAC1C,8BAA8B,iBAAiB;AAC/C;AACA,aAAa,OAAO;AACpB,cAAc,SAAS;AACvB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,QAAQ;AACtB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB;;AAEA;AACA,WAAW,wBAAwB;AACnC;AACA;AACA;AACA;AACA,WAAW,kBAAkB;AAC7B;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,yBAAyB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,0EAA0E;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,+BAA+B,0CAA0C;AACzE;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAiB,qCAAqC;AACtD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kEAAkE,uBAAuB;AACzF;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,QAAQ,IAA0C;AAClD;AACA,MAAM,oCAAO,OAAO;AAAA;AAAA;AAAA;AAAA,oGAAC;AACrB,KAAK,MAAM,EAUN;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;ACl5GD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;ACNA,kBAAkB,mBAAO,CAAC,CAA0B;AACpD,2BAA2B,mBAAO,CAAC,CAAqC;AACxE,+BAA+B,mBAAO,CAAC,EAAyC;;AAEhF;AACA;AACA,CAAC;AACD;AACA;AACA;;;;;;;ACTA;AACA;AACA;;;;;;;ACFA,YAAY,mBAAO,CAAC,CAAoB;;AAExC;AACA;AACA,iCAAiC,MAAM,mBAAmB,UAAU,EAAE,EAAE;AACxE,CAAC;;;;;;;ACLD,kBAAkB,mBAAO,CAAC,CAA0B;AACpD,qBAAqB,mBAAO,CAAC,EAA6B;AAC1D,eAAe,mBAAO,CAAC,CAAwB;AAC/C,kBAAkB,mBAAO,CAAC,EAA2B;;AAErD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,gBAAgB;AACnB;AACA;AACA;AACA;;;;;;;ACnBA,aAAa,mBAAO,CAAC,CAAqB;AAC1C,kCAAkC,mBAAO,CAAC,CAA6C;AACvF,UAAU,mBAAO,CAAC,CAAkB;AACpC,gBAAgB,mBAAO,CAAC,EAAyB;AACjD,oBAAoB,mBAAO,CAAC,EAA6B;AACzD,0BAA0B,mBAAO,CAAC,EAA6B;;AAE/D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;;;;;;;ACjCD,WAAW,mBAAO,CAAC,EAAmB;AACtC,aAAa,mBAAO,CAAC,CAAqB;;AAE1C;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;ACVA;;;;;;;ACAA,iBAAiB;;AAEjB;AACA;AACA;;;;;;;ACJA;;;;;;;ACAA;AACA;AACA;AACA,GAAG;AACH;;;;;;;ACJA,sBAAsB,mBAAO,CAAC,EAA8B;AAC5D,aAAa,mBAAO,CAAC,CAAqB;AAC1C,eAAe,mBAAO,CAAC,CAAwB;AAC/C,kCAAkC,mBAAO,CAAC,CAA6C;AACvF,gBAAgB,mBAAO,CAAC,CAAkB;AAC1C,gBAAgB,mBAAO,CAAC,EAAyB;AACjD,iBAAiB,mBAAO,CAAC,EAA0B;;AAEnD;AACA;;AAEA;AACA,uCAAuC;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC5DA,aAAa,mBAAO,CAAC,CAAqB;AAC1C,+BAA+B,mBAAO,CAAC,EAAiD;AACxF,kCAAkC,mBAAO,CAAC,CAA6C;AACvF,eAAe,mBAAO,CAAC,EAAuB;AAC9C,gBAAgB,mBAAO,CAAC,EAAyB;AACjD,gCAAgC,mBAAO,CAAC,EAA0C;AAClF,eAAe,mBAAO,CAAC,EAAwB;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,mDAAmD;AACnD,GAAG;AACH,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACrDA;AACA,oBAAoB,mBAAO,CAAC,EAA6B;AACzD,6BAA6B,mBAAO,CAAC,EAAuC;;AAE5E;AACA;AACA;;;;;;;ACNA,sBAA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AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;AChBA,eAAe,mBAAO,CAAC,CAAwB;AAC/C,uBAAuB,mBAAO,CAAC,EAAuC;AACtE,kBAAkB,mBAAO,CAAC,EAA4B;AACtD,iBAAiB,mBAAO,CAAC,EAA0B;AACnD,WAAW,mBAAO,CAAC,EAAmB;AACtC,4BAA4B,mBAAO,CAAC,EAAsC;AAC1E,gBAAgB,mBAAO,CAAC,EAAyB;;AAEjD;AACA;AACA;AACA;AACA;;AAEA,oCAAoC;;AAEpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,gBAAgB;AACnB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;AC7EA,iBAAiB,mBAAO,CAAC,EAA2B;;AAEpD;;;;;;;ACFA,aAAa,mBAAO,CAAC,CAAqB;;AAE1C;;;;;;;ACFA,eAAe,mBAAO,CAAC,CAAwB;AAC/C,4BAA4B,mBAAO,CAAC,EAAuC;AAC3E,eAAe,mBAAO,CAAC,EAAwB;AAC/C,WAAW,mBAAO,CAAC,EAAoC;AACvD,wBAAwB,mBAAO,CAAC,EAAkC;AAClE,mCAAmC,mBAAO,CAAC,EAA+C;;AAE1F;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,yDAAyD,gBAAgB;AACzE;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;;;;;;AC1CA,gBAAgB,mBAAO,CAAC,EAAyB;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACvBA,eAAe,mBAAO,CAAC,CAAwB;AAC/C,gBAAgB,mBAAO,CAAC,EAAyB;AACjD,sBAAsB,mBAAO,CAAC,CAAgC;;AAE9D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACZA,aAAa,mBAAO,CAAC,CAAqB;AAC1C,YAAY,mBAAO,CAAC,CAAoB;AACxC,cAAc,mBAAO,CAAC,EAA0B;AAChD,WAAW,mBAAO,CAAC,EAAoC;AACvD,WAAW,mBAAO,CAAC,EAAmB;AACtC,oBAAoB,mBAAO,CAAC,EAAsC;AAClE,aAAa,mBAAO,CAAC,EAA4B;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;AC1GA,gBAAgB,mBAAO,CAAC,EAAgC;;AAExD;;;;;;;ACFA,iBAAiB,mBAAO,CAAC,EAA2B;;AAEpD;;;;;;;ACFA,eAAe,mBAAO,CAAC,CAAwB;AAC/C,eAAe,mBAAO,CAAC,CAAwB;AAC/C,2BAA2B,mBAAO,CAAC,EAAqC;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACXA;AACA;AACA,YAAY;AACZ,GAAG;AACH,YAAY;AACZ;AACA;;;;;;;ACNA,mBAAO,CAAC,EAAmC;AAC3C,mBAAO,CAAC,EAAkC;AAC1C,mBAAO,CAAC,EAA4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BAAiB,mBAAO,CAAC,EAAgC;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,cAAc,eAAe,cAAc;AACjE;AACA;AACA;AACA,qCAAqC,cAAc;AACnD,CAAC;;AAED;AACA,yDAAyD,cAAc;AACvE,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,eAAe;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH,6BAA6B,cAAc;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK,GAAG,eAAe;;AAEvB;AACA,wCAAwC,+CAA+C;AACvF;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,GAAG,2CAA2C;AAC9C;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA,GAAG,8CAA8C;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,GAAG,yDAAyD;AAC5D;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,GAAG,2DAA2D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,CAAC;;;;;;;AC1XD,eAAe,mBAAO,CAAC,EAAuB;;AAE9C;AACA;AACA;AACA;;;;;;;;ACLa;AACb,iBAAiB,mBAAO,CAAC,EAA2B;AACpD,2BAA2B,mBAAO,CAAC,CAAqC;AACxE,sBAAsB,mBAAO,CAAC,CAAgC;AAC9D,kBAAkB,mBAAO,CAAC,CAA0B;;AAEpD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,aAAa;AACrC,KAAK;AACL;AACA;;;;;;;AClBA;AACA;AACA;AACA,GAAG;AACH;;;;;;;ACJA,sBAAsB,mBAAO,CAAC,CAAgC;AAC9D,gBAAgB,mBAAO,CAAC,EAAwB;;AAEhD;AACA;;AAEA;AACA;AACA;AACA;;;;;;;ACTA,cAAc,mBAAO,CAAC,EAAsB;AAC5C,gBAAgB,mBAAO,CAAC,EAAwB;AAChD,sBAAsB,mBAAO,CAAC,CAAgC;;AAE9D;;AAEA;AACA;AACA;AACA;AACA;;;;;;;ACVA,eAAe,mBAAO,CAAC,CAAwB;;AAE/C;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;;;;;;ACZA,sBAAsB,mBAAO,CAAC,CAAgC;;AAE9D;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,SAAS,EAAE;AACzD,CAAC,gBAAgB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,GAAG,gBAAgB;AACnB;AACA;;;;;;;ACrCA,aAAa,mBAAO,CAAC,CAAqB;AAC1C,+BAA+B,mBAAO,CAAC,EAAiD;AACxF,cAAc,mBAAO,CAAC,EAA0B;AAChD,gBAAgB,mBAAO,CAAC,EAAmB;AAC3C,aAAa,mBAAO,CAAC,EAA4B;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,+CAA+C,sBAAsB;AACrE;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;AC7EA,aAAa,mBAAO,CAAC,CAAqB;;AAE1C;AACA;AACA;AACA;AACA;AACA;;;;;;;ACPA,aAAa,mBAAO,CAAC,CAAqB;AAC1C,gBAAgB,mBAAO,CAAC,EAAgC;;AAExD;AACA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","file":"95952f773ec942db46dc.worker.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 97);\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","/**\n * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.8\n * Copyright (C) 2019 Oliver Nightingale\n * @license MIT\n */\n\n;(function(){\n\n/**\n * A convenience function for configuring and constructing\n * a new lunr Index.\n *\n * A lunr.Builder instance is created and the pipeline setup\n * with a trimmer, stop word filter and stemmer.\n *\n * This builder object is yielded to the configuration function\n * that is passed as a parameter, allowing the list of fields\n * and other builder parameters to be customised.\n *\n * All documents _must_ be added within the passed config function.\n *\n * @example\n * var idx = lunr(function () {\n * this.field('title')\n * this.field('body')\n * this.ref('id')\n *\n * documents.forEach(function (doc) {\n * this.add(doc)\n * }, this)\n * })\n *\n * @see {@link lunr.Builder}\n * @see {@link lunr.Pipeline}\n * @see {@link lunr.trimmer}\n * @see {@link lunr.stopWordFilter}\n * @see {@link lunr.stemmer}\n * @namespace {function} lunr\n */\nvar lunr = function (config) {\n var builder = new lunr.Builder\n\n builder.pipeline.add(\n lunr.trimmer,\n lunr.stopWordFilter,\n lunr.stemmer\n )\n\n builder.searchPipeline.add(\n lunr.stemmer\n )\n\n config.call(builder, builder)\n return builder.build()\n}\n\nlunr.version = \"2.3.8\"\n/*!\n * lunr.utils\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A namespace containing utils for the rest of the lunr library\n * @namespace lunr.utils\n */\nlunr.utils = {}\n\n/**\n * Print a warning message to the console.\n *\n * @param {String} message The message to be printed.\n * @memberOf lunr.utils\n * @function\n */\nlunr.utils.warn = (function (global) {\n /* eslint-disable no-console */\n return function (message) {\n if (global.console && console.warn) {\n console.warn(message)\n }\n }\n /* eslint-enable no-console */\n})(this)\n\n/**\n * Convert an object to a string.\n *\n * In the case of `null` and `undefined` the function returns\n * the empty string, in all other cases the result of calling\n * `toString` on the passed object is returned.\n *\n * @param {Any} obj The object to convert to a string.\n * @return {String} string representation of the passed object.\n * @memberOf lunr.utils\n */\nlunr.utils.asString = function (obj) {\n if (obj === void 0 || obj === null) {\n return \"\"\n } else {\n return obj.toString()\n }\n}\n\n/**\n * Clones an object.\n *\n * Will create a copy of an existing object such that any mutations\n * on the copy cannot affect the original.\n *\n * Only shallow objects are supported, passing a nested object to this\n * function will cause a TypeError.\n *\n * Objects with primitives, and arrays of primitives are supported.\n *\n * @param {Object} obj The object to clone.\n * @return {Object} a clone of the passed object.\n * @throws {TypeError} when a nested object is passed.\n * @memberOf Utils\n */\nlunr.utils.clone = function (obj) {\n if (obj === null || obj === undefined) {\n return obj\n }\n\n var clone = Object.create(null),\n keys = Object.keys(obj)\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i],\n val = obj[key]\n\n if (Array.isArray(val)) {\n clone[key] = val.slice()\n continue\n }\n\n if (typeof val === 'string' ||\n typeof val === 'number' ||\n typeof val === 'boolean') {\n clone[key] = val\n continue\n }\n\n throw new TypeError(\"clone is not deep and does not support nested objects\")\n }\n\n return clone\n}\nlunr.FieldRef = function (docRef, fieldName, stringValue) {\n this.docRef = docRef\n this.fieldName = fieldName\n this._stringValue = stringValue\n}\n\nlunr.FieldRef.joiner = \"/\"\n\nlunr.FieldRef.fromString = function (s) {\n var n = s.indexOf(lunr.FieldRef.joiner)\n\n if (n === -1) {\n throw \"malformed field ref string\"\n }\n\n var fieldRef = s.slice(0, n),\n docRef = s.slice(n + 1)\n\n return new lunr.FieldRef (docRef, fieldRef, s)\n}\n\nlunr.FieldRef.prototype.toString = function () {\n if (this._stringValue == undefined) {\n this._stringValue = this.fieldName + lunr.FieldRef.joiner + this.docRef\n }\n\n return this._stringValue\n}\n/*!\n * lunr.Set\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A lunr set.\n *\n * @constructor\n */\nlunr.Set = function (elements) {\n this.elements = Object.create(null)\n\n if (elements) {\n this.length = elements.length\n\n for (var i = 0; i < this.length; i++) {\n this.elements[elements[i]] = true\n }\n } else {\n this.length = 0\n }\n}\n\n/**\n * A complete set that contains all elements.\n *\n * @static\n * @readonly\n * @type {lunr.Set}\n */\nlunr.Set.complete = {\n intersect: function (other) {\n return other\n },\n\n union: function (other) {\n return other\n },\n\n contains: function () {\n return true\n }\n}\n\n/**\n * An empty set that contains no elements.\n *\n * @static\n * @readonly\n * @type {lunr.Set}\n */\nlunr.Set.empty = {\n intersect: function () {\n return this\n },\n\n union: function (other) {\n return other\n },\n\n contains: function () {\n return false\n }\n}\n\n/**\n * Returns true if this set contains the specified object.\n *\n * @param {object} object - Object whose presence in this set is to be tested.\n * @returns {boolean} - True if this set contains the specified object.\n */\nlunr.Set.prototype.contains = function (object) {\n return !!this.elements[object]\n}\n\n/**\n * Returns a new set containing only the elements that are present in both\n * this set and the specified set.\n *\n * @param {lunr.Set} other - set to intersect with this set.\n * @returns {lunr.Set} a new set that is the intersection of this and the specified set.\n */\n\nlunr.Set.prototype.intersect = function (other) {\n var a, b, elements, intersection = []\n\n if (other === lunr.Set.complete) {\n return this\n }\n\n if (other === lunr.Set.empty) {\n return other\n }\n\n if (this.length < other.length) {\n a = this\n b = other\n } else {\n a = other\n b = this\n }\n\n elements = Object.keys(a.elements)\n\n for (var i = 0; i < elements.length; i++) {\n var element = elements[i]\n if (element in b.elements) {\n intersection.push(element)\n }\n }\n\n return new lunr.Set (intersection)\n}\n\n/**\n * Returns a new set combining the elements of this and the specified set.\n *\n * @param {lunr.Set} other - set to union with this set.\n * @return {lunr.Set} a new set that is the union of this and the specified set.\n */\n\nlunr.Set.prototype.union = function (other) {\n if (other === lunr.Set.complete) {\n return lunr.Set.complete\n }\n\n if (other === lunr.Set.empty) {\n return this\n }\n\n return new lunr.Set(Object.keys(this.elements).concat(Object.keys(other.elements)))\n}\n/**\n * A function to calculate the inverse document frequency for\n * a posting. This is shared between the builder and the index\n *\n * @private\n * @param {object} posting - The posting for a given term\n * @param {number} documentCount - The total number of documents.\n */\nlunr.idf = function (posting, documentCount) {\n var documentsWithTerm = 0\n\n for (var fieldName in posting) {\n if (fieldName == '_index') continue // Ignore the term index, its not a field\n documentsWithTerm += Object.keys(posting[fieldName]).length\n }\n\n var x = (documentCount - documentsWithTerm + 0.5) / (documentsWithTerm + 0.5)\n\n return Math.log(1 + Math.abs(x))\n}\n\n/**\n * A token wraps a string representation of a token\n * as it is passed through the text processing pipeline.\n *\n * @constructor\n * @param {string} [str=''] - The string token being wrapped.\n * @param {object} [metadata={}] - Metadata associated with this token.\n */\nlunr.Token = function (str, metadata) {\n this.str = str || \"\"\n this.metadata = metadata || {}\n}\n\n/**\n * Returns the token string that is being wrapped by this object.\n *\n * @returns {string}\n */\nlunr.Token.prototype.toString = function () {\n return this.str\n}\n\n/**\n * A token update function is used when updating or optionally\n * when cloning a token.\n *\n * @callback lunr.Token~updateFunction\n * @param {string} str - The string representation of the token.\n * @param {Object} metadata - All metadata associated with this token.\n */\n\n/**\n * Applies the given function to the wrapped string token.\n *\n * @example\n * token.update(function (str, metadata) {\n * return str.toUpperCase()\n * })\n *\n * @param {lunr.Token~updateFunction} fn - A function to apply to the token string.\n * @returns {lunr.Token}\n */\nlunr.Token.prototype.update = function (fn) {\n this.str = fn(this.str, this.metadata)\n return this\n}\n\n/**\n * Creates a clone of this token. Optionally a function can be\n * applied to the cloned token.\n *\n * @param {lunr.Token~updateFunction} [fn] - An optional function to apply to the cloned token.\n * @returns {lunr.Token}\n */\nlunr.Token.prototype.clone = function (fn) {\n fn = fn || function (s) { return s }\n return new lunr.Token (fn(this.str, this.metadata), this.metadata)\n}\n/*!\n * lunr.tokenizer\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A function for splitting a string into tokens ready to be inserted into\n * the search index. Uses `lunr.tokenizer.separator` to split strings, change\n * the value of this property to change how strings are split into tokens.\n *\n * This tokenizer will convert its parameter to a string by calling `toString` and\n * then will split this string on the character in `lunr.tokenizer.separator`.\n * Arrays will have their elements converted to strings and wrapped in a lunr.Token.\n *\n * Optional metadata can be passed to the tokenizer, this metadata will be cloned and\n * added as metadata to every token that is created from the object to be tokenized.\n *\n * @static\n * @param {?(string|object|object[])} obj - The object to convert into tokens\n * @param {?object} metadata - Optional metadata to associate with every token\n * @returns {lunr.Token[]}\n * @see {@link lunr.Pipeline}\n */\nlunr.tokenizer = function (obj, metadata) {\n if (obj == null || obj == undefined) {\n return []\n }\n\n if (Array.isArray(obj)) {\n return obj.map(function (t) {\n return new lunr.Token(\n lunr.utils.asString(t).toLowerCase(),\n lunr.utils.clone(metadata)\n )\n })\n }\n\n var str = obj.toString().toLowerCase(),\n len = str.length,\n tokens = []\n\n for (var sliceEnd = 0, sliceStart = 0; sliceEnd <= len; sliceEnd++) {\n var char = str.charAt(sliceEnd),\n sliceLength = sliceEnd - sliceStart\n\n if ((char.match(lunr.tokenizer.separator) || sliceEnd == len)) {\n\n if (sliceLength > 0) {\n var tokenMetadata = lunr.utils.clone(metadata) || {}\n tokenMetadata[\"position\"] = [sliceStart, sliceLength]\n tokenMetadata[\"index\"] = tokens.length\n\n tokens.push(\n new lunr.Token (\n str.slice(sliceStart, sliceEnd),\n tokenMetadata\n )\n )\n }\n\n sliceStart = sliceEnd + 1\n }\n\n }\n\n return tokens\n}\n\n/**\n * The separator used to split a string into tokens. Override this property to change the behaviour of\n * `lunr.tokenizer` behaviour when tokenizing strings. By default this splits on whitespace and hyphens.\n *\n * @static\n * @see lunr.tokenizer\n */\nlunr.tokenizer.separator = /[\\s\\-]+/\n/*!\n * lunr.Pipeline\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.Pipelines maintain an ordered list of functions to be applied to all\n * tokens in documents entering the search index and queries being ran against\n * the index.\n *\n * An instance of lunr.Index created with the lunr shortcut will contain a\n * pipeline with a stop word filter and an English language stemmer. Extra\n * functions can be added before or after either of these functions or these\n * default functions can be removed.\n *\n * When run the pipeline will call each function in turn, passing a token, the\n * index of that token in the original list of all tokens and finally a list of\n * all the original tokens.\n *\n * The output of functions in the pipeline will be passed to the next function\n * in the pipeline. To exclude a token from entering the index the function\n * should return undefined, the rest of the pipeline will not be called with\n * this token.\n *\n * For serialisation of pipelines to work, all functions used in an instance of\n * a pipeline should be registered with lunr.Pipeline. Registered functions can\n * then be loaded. If trying to load a serialised pipeline that uses functions\n * that are not registered an error will be thrown.\n *\n * If not planning on serialising the pipeline then registering pipeline functions\n * is not necessary.\n *\n * @constructor\n */\nlunr.Pipeline = function () {\n this._stack = []\n}\n\nlunr.Pipeline.registeredFunctions = Object.create(null)\n\n/**\n * A pipeline function maps lunr.Token to lunr.Token. A lunr.Token contains the token\n * string as well as all known metadata. A pipeline function can mutate the token string\n * or mutate (or add) metadata for a given token.\n *\n * A pipeline function can indicate that the passed token should be discarded by returning\n * null, undefined or an empty string. This token will not be passed to any downstream pipeline\n * functions and will not be added to the index.\n *\n * Multiple tokens can be returned by returning an array of tokens. Each token will be passed\n * to any downstream pipeline functions and all will returned tokens will be added to the index.\n *\n * Any number of pipeline functions may be chained together using a lunr.Pipeline.\n *\n * @interface lunr.PipelineFunction\n * @param {lunr.Token} token - A token from the document being processed.\n * @param {number} i - The index of this token in the complete list of tokens for this document/field.\n * @param {lunr.Token[]} tokens - All tokens for this document/field.\n * @returns {(?lunr.Token|lunr.Token[])}\n */\n\n/**\n * Register a function with the pipeline.\n *\n * Functions that are used in the pipeline should be registered if the pipeline\n * needs to be serialised, or a serialised pipeline needs to be loaded.\n *\n * Registering a function does not add it to a pipeline, functions must still be\n * added to instances of the pipeline for them to be used when running a pipeline.\n *\n * @param {lunr.PipelineFunction} fn - The function to check for.\n * @param {String} label - The label to register this function with\n */\nlunr.Pipeline.registerFunction = function (fn, label) {\n if (label in this.registeredFunctions) {\n lunr.utils.warn('Overwriting existing registered function: ' + label)\n }\n\n fn.label = label\n lunr.Pipeline.registeredFunctions[fn.label] = fn\n}\n\n/**\n * Warns if the function is not registered as a Pipeline function.\n *\n * @param {lunr.PipelineFunction} fn - The function to check for.\n * @private\n */\nlunr.Pipeline.warnIfFunctionNotRegistered = function (fn) {\n var isRegistered = fn.label && (fn.label in this.registeredFunctions)\n\n if (!isRegistered) {\n lunr.utils.warn('Function is not registered with pipeline. This may cause problems when serialising the index.\\n', fn)\n }\n}\n\n/**\n * Loads a previously serialised pipeline.\n *\n * All functions to be loaded must already be registered with lunr.Pipeline.\n * If any function from the serialised data has not been registered then an\n * error will be thrown.\n *\n * @param {Object} serialised - The serialised pipeline to load.\n * @returns {lunr.Pipeline}\n */\nlunr.Pipeline.load = function (serialised) {\n var pipeline = new lunr.Pipeline\n\n serialised.forEach(function (fnName) {\n var fn = lunr.Pipeline.registeredFunctions[fnName]\n\n if (fn) {\n pipeline.add(fn)\n } else {\n throw new Error('Cannot load unregistered function: ' + fnName)\n }\n })\n\n return pipeline\n}\n\n/**\n * Adds new functions to the end of the pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction[]} functions - Any number of functions to add to the pipeline.\n */\nlunr.Pipeline.prototype.add = function () {\n var fns = Array.prototype.slice.call(arguments)\n\n fns.forEach(function (fn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\n this._stack.push(fn)\n }, this)\n}\n\n/**\n * Adds a single function after a function that already exists in the\n * pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\n */\nlunr.Pipeline.prototype.after = function (existingFn, newFn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\n\n var pos = this._stack.indexOf(existingFn)\n if (pos == -1) {\n throw new Error('Cannot find existingFn')\n }\n\n pos = pos + 1\n this._stack.splice(pos, 0, newFn)\n}\n\n/**\n * Adds a single function before a function that already exists in the\n * pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\n */\nlunr.Pipeline.prototype.before = function (existingFn, newFn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\n\n var pos = this._stack.indexOf(existingFn)\n if (pos == -1) {\n throw new Error('Cannot find existingFn')\n }\n\n this._stack.splice(pos, 0, newFn)\n}\n\n/**\n * Removes a function from the pipeline.\n *\n * @param {lunr.PipelineFunction} fn The function to remove from the pipeline.\n */\nlunr.Pipeline.prototype.remove = function (fn) {\n var pos = this._stack.indexOf(fn)\n if (pos == -1) {\n return\n }\n\n this._stack.splice(pos, 1)\n}\n\n/**\n * Runs the current list of functions that make up the pipeline against the\n * passed tokens.\n *\n * @param {Array} tokens The tokens to run through the pipeline.\n * @returns {Array}\n */\nlunr.Pipeline.prototype.run = function (tokens) {\n var stackLength = this._stack.length\n\n for (var i = 0; i < stackLength; i++) {\n var fn = this._stack[i]\n var memo = []\n\n for (var j = 0; j < tokens.length; j++) {\n var result = fn(tokens[j], j, tokens)\n\n if (result === null || result === void 0 || result === '') continue\n\n if (Array.isArray(result)) {\n for (var k = 0; k < result.length; k++) {\n memo.push(result[k])\n }\n } else {\n memo.push(result)\n }\n }\n\n tokens = memo\n }\n\n return tokens\n}\n\n/**\n * Convenience method for passing a string through a pipeline and getting\n * strings out. This method takes care of wrapping the passed string in a\n * token and mapping the resulting tokens back to strings.\n *\n * @param {string} str - The string to pass through the pipeline.\n * @param {?object} metadata - Optional metadata to associate with the token\n * passed to the pipeline.\n * @returns {string[]}\n */\nlunr.Pipeline.prototype.runString = function (str, metadata) {\n var token = new lunr.Token (str, metadata)\n\n return this.run([token]).map(function (t) {\n return t.toString()\n })\n}\n\n/**\n * Resets the pipeline by removing any existing processors.\n *\n */\nlunr.Pipeline.prototype.reset = function () {\n this._stack = []\n}\n\n/**\n * Returns a representation of the pipeline ready for serialisation.\n *\n * Logs a warning if the function has not been registered.\n *\n * @returns {Array}\n */\nlunr.Pipeline.prototype.toJSON = function () {\n return this._stack.map(function (fn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\n\n return fn.label\n })\n}\n/*!\n * lunr.Vector\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A vector is used to construct the vector space of documents and queries. These\n * vectors support operations to determine the similarity between two documents or\n * a document and a query.\n *\n * Normally no parameters are required for initializing a vector, but in the case of\n * loading a previously dumped vector the raw elements can be provided to the constructor.\n *\n * For performance reasons vectors are implemented with a flat array, where an elements\n * index is immediately followed by its value. E.g. [index, value, index, value]. This\n * allows the underlying array to be as sparse as possible and still offer decent\n * performance when being used for vector calculations.\n *\n * @constructor\n * @param {Number[]} [elements] - The flat list of element index and element value pairs.\n */\nlunr.Vector = function (elements) {\n this._magnitude = 0\n this.elements = elements || []\n}\n\n\n/**\n * Calculates the position within the vector to insert a given index.\n *\n * This is used internally by insert and upsert. If there are duplicate indexes then\n * the position is returned as if the value for that index were to be updated, but it\n * is the callers responsibility to check whether there is a duplicate at that index\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @returns {Number}\n */\nlunr.Vector.prototype.positionForIndex = function (index) {\n // For an empty vector the tuple can be inserted at the beginning\n if (this.elements.length == 0) {\n return 0\n }\n\n var start = 0,\n end = this.elements.length / 2,\n sliceLength = end - start,\n pivotPoint = Math.floor(sliceLength / 2),\n pivotIndex = this.elements[pivotPoint * 2]\n\n while (sliceLength > 1) {\n if (pivotIndex < index) {\n start = pivotPoint\n }\n\n if (pivotIndex > index) {\n end = pivotPoint\n }\n\n if (pivotIndex == index) {\n break\n }\n\n sliceLength = end - start\n pivotPoint = start + Math.floor(sliceLength / 2)\n pivotIndex = this.elements[pivotPoint * 2]\n }\n\n if (pivotIndex == index) {\n return pivotPoint * 2\n }\n\n if (pivotIndex > index) {\n return pivotPoint * 2\n }\n\n if (pivotIndex < index) {\n return (pivotPoint + 1) * 2\n }\n}\n\n/**\n * Inserts an element at an index within the vector.\n *\n * Does not allow duplicates, will throw an error if there is already an entry\n * for this index.\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @param {Number} val - The value to be inserted into the vector.\n */\nlunr.Vector.prototype.insert = function (insertIdx, val) {\n this.upsert(insertIdx, val, function () {\n throw \"duplicate index\"\n })\n}\n\n/**\n * Inserts or updates an existing index within the vector.\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @param {Number} val - The value to be inserted into the vector.\n * @param {function} fn - A function that is called for updates, the existing value and the\n * requested value are passed as arguments\n */\nlunr.Vector.prototype.upsert = function (insertIdx, val, fn) {\n this._magnitude = 0\n var position = this.positionForIndex(insertIdx)\n\n if (this.elements[position] == insertIdx) {\n this.elements[position + 1] = fn(this.elements[position + 1], val)\n } else {\n this.elements.splice(position, 0, insertIdx, val)\n }\n}\n\n/**\n * Calculates the magnitude of this vector.\n *\n * @returns {Number}\n */\nlunr.Vector.prototype.magnitude = function () {\n if (this._magnitude) return this._magnitude\n\n var sumOfSquares = 0,\n elementsLength = this.elements.length\n\n for (var i = 1; i < elementsLength; i += 2) {\n var val = this.elements[i]\n sumOfSquares += val * val\n }\n\n return this._magnitude = Math.sqrt(sumOfSquares)\n}\n\n/**\n * Calculates the dot product of this vector and another vector.\n *\n * @param {lunr.Vector} otherVector - The vector to compute the dot product with.\n * @returns {Number}\n */\nlunr.Vector.prototype.dot = function (otherVector) {\n var dotProduct = 0,\n a = this.elements, b = otherVector.elements,\n aLen = a.length, bLen = b.length,\n aVal = 0, bVal = 0,\n i = 0, j = 0\n\n while (i < aLen && j < bLen) {\n aVal = a[i], bVal = b[j]\n if (aVal < bVal) {\n i += 2\n } else if (aVal > bVal) {\n j += 2\n } else if (aVal == bVal) {\n dotProduct += a[i + 1] * b[j + 1]\n i += 2\n j += 2\n }\n }\n\n return dotProduct\n}\n\n/**\n * Calculates the similarity between this vector and another vector.\n *\n * @param {lunr.Vector} otherVector - The other vector to calculate the\n * similarity with.\n * @returns {Number}\n */\nlunr.Vector.prototype.similarity = function (otherVector) {\n return this.dot(otherVector) / this.magnitude() || 0\n}\n\n/**\n * Converts the vector to an array of the elements within the vector.\n *\n * @returns {Number[]}\n */\nlunr.Vector.prototype.toArray = function () {\n var output = new Array (this.elements.length / 2)\n\n for (var i = 1, j = 0; i < this.elements.length; i += 2, j++) {\n output[j] = this.elements[i]\n }\n\n return output\n}\n\n/**\n * A JSON serializable representation of the vector.\n *\n * @returns {Number[]}\n */\nlunr.Vector.prototype.toJSON = function () {\n return this.elements\n}\n/* eslint-disable */\n/*!\n * lunr.stemmer\n * Copyright (C) 2019 Oliver Nightingale\n * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt\n */\n\n/**\n * lunr.stemmer is an english language stemmer, this is a JavaScript\n * implementation of the PorterStemmer taken from http://tartarus.org/~martin\n *\n * @static\n * @implements {lunr.PipelineFunction}\n * @param {lunr.Token} token - The string to stem\n * @returns {lunr.Token}\n * @see {@link lunr.Pipeline}\n * @function\n */\nlunr.stemmer = (function(){\n var step2list = {\n \"ational\" : \"ate\",\n \"tional\" : \"tion\",\n \"enci\" : \"ence\",\n \"anci\" : \"ance\",\n \"izer\" : \"ize\",\n \"bli\" : \"ble\",\n \"alli\" : \"al\",\n \"entli\" : \"ent\",\n \"eli\" : \"e\",\n \"ousli\" : \"ous\",\n \"ization\" : \"ize\",\n \"ation\" : \"ate\",\n \"ator\" : \"ate\",\n \"alism\" : \"al\",\n \"iveness\" : \"ive\",\n \"fulness\" : \"ful\",\n \"ousness\" : \"ous\",\n \"aliti\" : \"al\",\n \"iviti\" : \"ive\",\n \"biliti\" : \"ble\",\n \"logi\" : \"log\"\n },\n\n step3list = {\n \"icate\" : \"ic\",\n \"ative\" : \"\",\n \"alize\" : \"al\",\n \"iciti\" : \"ic\",\n \"ical\" : \"ic\",\n \"ful\" : \"\",\n \"ness\" : \"\"\n },\n\n c = \"[^aeiou]\", // consonant\n v = \"[aeiouy]\", // vowel\n C = c + \"[^aeiouy]*\", // consonant sequence\n V = v + \"[aeiou]*\", // vowel sequence\n\n mgr0 = \"^(\" + C + \")?\" + V + C, // [C]VC... is m>0\n meq1 = \"^(\" + C + \")?\" + V + C + \"(\" + V + \")?$\", // [C]VC[V] is m=1\n mgr1 = \"^(\" + C + \")?\" + V + C + V + C, // [C]VCVC... is m>1\n s_v = \"^(\" + C + \")?\" + v; // vowel in stem\n\n var re_mgr0 = new RegExp(mgr0);\n var re_mgr1 = new RegExp(mgr1);\n var re_meq1 = new RegExp(meq1);\n var re_s_v = new RegExp(s_v);\n\n var re_1a = /^(.+?)(ss|i)es$/;\n var re2_1a = /^(.+?)([^s])s$/;\n var re_1b = /^(.+?)eed$/;\n var re2_1b = /^(.+?)(ed|ing)$/;\n var re_1b_2 = /.$/;\n var re2_1b_2 = /(at|bl|iz)$/;\n var re3_1b_2 = new RegExp(\"([^aeiouylsz])\\\\1$\");\n var re4_1b_2 = new RegExp(\"^\" + C + v + \"[^aeiouwxy]$\");\n\n var re_1c = /^(.+?[^aeiou])y$/;\n var re_2 = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;\n\n var re_3 = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;\n\n var re_4 = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;\n var re2_4 = /^(.+?)(s|t)(ion)$/;\n\n var re_5 = /^(.+?)e$/;\n var re_5_1 = /ll$/;\n var re3_5 = new RegExp(\"^\" + C + v + \"[^aeiouwxy]$\");\n\n var porterStemmer = function porterStemmer(w) {\n var stem,\n suffix,\n firstch,\n re,\n re2,\n re3,\n re4;\n\n if (w.length < 3) { return w; }\n\n firstch = w.substr(0,1);\n if (firstch == \"y\") {\n w = firstch.toUpperCase() + w.substr(1);\n }\n\n // Step 1a\n re = re_1a\n re2 = re2_1a;\n\n if (re.test(w)) { w = w.replace(re,\"$1$2\"); }\n else if (re2.test(w)) { w = w.replace(re2,\"$1$2\"); }\n\n // Step 1b\n re = re_1b;\n re2 = re2_1b;\n if (re.test(w)) {\n var fp = re.exec(w);\n re = re_mgr0;\n if (re.test(fp[1])) {\n re = re_1b_2;\n w = w.replace(re,\"\");\n }\n } else if (re2.test(w)) {\n var fp = re2.exec(w);\n stem = fp[1];\n re2 = re_s_v;\n if (re2.test(stem)) {\n w = stem;\n re2 = re2_1b_2;\n re3 = re3_1b_2;\n re4 = re4_1b_2;\n if (re2.test(w)) { w = w + \"e\"; }\n else if (re3.test(w)) { re = re_1b_2; w = w.replace(re,\"\"); }\n else if (re4.test(w)) { w = w + \"e\"; }\n }\n }\n\n // Step 1c - replace suffix y or Y by i if preceded by a non-vowel which is not the first letter of the word (so cry -> cri, by -> by, say -> say)\n re = re_1c;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n w = stem + \"i\";\n }\n\n // Step 2\n re = re_2;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n suffix = fp[2];\n re = re_mgr0;\n if (re.test(stem)) {\n w = stem + step2list[suffix];\n }\n }\n\n // Step 3\n re = re_3;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n suffix = fp[2];\n re = re_mgr0;\n if (re.test(stem)) {\n w = stem + step3list[suffix];\n }\n }\n\n // Step 4\n re = re_4;\n re2 = re2_4;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n re = re_mgr1;\n if (re.test(stem)) {\n w = stem;\n }\n } else if (re2.test(w)) {\n var fp = re2.exec(w);\n stem = fp[1] + fp[2];\n re2 = re_mgr1;\n if (re2.test(stem)) {\n w = stem;\n }\n }\n\n // Step 5\n re = re_5;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n re = re_mgr1;\n re2 = re_meq1;\n re3 = re3_5;\n if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) {\n w = stem;\n }\n }\n\n re = re_5_1;\n re2 = re_mgr1;\n if (re.test(w) && re2.test(w)) {\n re = re_1b_2;\n w = w.replace(re,\"\");\n }\n\n // and turn initial Y back to y\n\n if (firstch == \"y\") {\n w = firstch.toLowerCase() + w.substr(1);\n }\n\n return w;\n };\n\n return function (token) {\n return token.update(porterStemmer);\n }\n})();\n\nlunr.Pipeline.registerFunction(lunr.stemmer, 'stemmer')\n/*!\n * lunr.stopWordFilter\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.generateStopWordFilter builds a stopWordFilter function from the provided\n * list of stop words.\n *\n * The built in lunr.stopWordFilter is built using this generator and can be used\n * to generate custom stopWordFilters for applications or non English languages.\n *\n * @function\n * @param {Array} token The token to pass through the filter\n * @returns {lunr.PipelineFunction}\n * @see lunr.Pipeline\n * @see lunr.stopWordFilter\n */\nlunr.generateStopWordFilter = function (stopWords) {\n var words = stopWords.reduce(function (memo, stopWord) {\n memo[stopWord] = stopWord\n return memo\n }, {})\n\n return function (token) {\n if (token && words[token.toString()] !== token.toString()) return token\n }\n}\n\n/**\n * lunr.stopWordFilter is an English language stop word list filter, any words\n * contained in the list will not be passed through the filter.\n *\n * This is intended to be used in the Pipeline. If the token does not pass the\n * filter then undefined will be returned.\n *\n * @function\n * @implements {lunr.PipelineFunction}\n * @params {lunr.Token} token - A token to check for being a stop word.\n * @returns {lunr.Token}\n * @see {@link lunr.Pipeline}\n */\nlunr.stopWordFilter = lunr.generateStopWordFilter([\n 'a',\n 'able',\n 'about',\n 'across',\n 'after',\n 'all',\n 'almost',\n 'also',\n 'am',\n 'among',\n 'an',\n 'and',\n 'any',\n 'are',\n 'as',\n 'at',\n 'be',\n 'because',\n 'been',\n 'but',\n 'by',\n 'can',\n 'cannot',\n 'could',\n 'dear',\n 'did',\n 'do',\n 'does',\n 'either',\n 'else',\n 'ever',\n 'every',\n 'for',\n 'from',\n 'get',\n 'got',\n 'had',\n 'has',\n 'have',\n 'he',\n 'her',\n 'hers',\n 'him',\n 'his',\n 'how',\n 'however',\n 'i',\n 'if',\n 'in',\n 'into',\n 'is',\n 'it',\n 'its',\n 'just',\n 'least',\n 'let',\n 'like',\n 'likely',\n 'may',\n 'me',\n 'might',\n 'most',\n 'must',\n 'my',\n 'neither',\n 'no',\n 'nor',\n 'not',\n 'of',\n 'off',\n 'often',\n 'on',\n 'only',\n 'or',\n 'other',\n 'our',\n 'own',\n 'rather',\n 'said',\n 'say',\n 'says',\n 'she',\n 'should',\n 'since',\n 'so',\n 'some',\n 'than',\n 'that',\n 'the',\n 'their',\n 'them',\n 'then',\n 'there',\n 'these',\n 'they',\n 'this',\n 'tis',\n 'to',\n 'too',\n 'twas',\n 'us',\n 'wants',\n 'was',\n 'we',\n 'were',\n 'what',\n 'when',\n 'where',\n 'which',\n 'while',\n 'who',\n 'whom',\n 'why',\n 'will',\n 'with',\n 'would',\n 'yet',\n 'you',\n 'your'\n])\n\nlunr.Pipeline.registerFunction(lunr.stopWordFilter, 'stopWordFilter')\n/*!\n * lunr.trimmer\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.trimmer is a pipeline function for trimming non word\n * characters from the beginning and end of tokens before they\n * enter the index.\n *\n * This implementation may not work correctly for non latin\n * characters and should either be removed or adapted for use\n * with languages with non-latin characters.\n *\n * @static\n * @implements {lunr.PipelineFunction}\n * @param {lunr.Token} token The token to pass through the filter\n * @returns {lunr.Token}\n * @see lunr.Pipeline\n */\nlunr.trimmer = function (token) {\n return token.update(function (s) {\n return s.replace(/^\\W+/, '').replace(/\\W+$/, '')\n })\n}\n\nlunr.Pipeline.registerFunction(lunr.trimmer, 'trimmer')\n/*!\n * lunr.TokenSet\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A token set is used to store the unique list of all tokens\n * within an index. Token sets are also used to represent an\n * incoming query to the index, this query token set and index\n * token set are then intersected to find which tokens to look\n * up in the inverted index.\n *\n * A token set can hold multiple tokens, as in the case of the\n * index token set, or it can hold a single token as in the\n * case of a simple query token set.\n *\n * Additionally token sets are used to perform wildcard matching.\n * Leading, contained and trailing wildcards are supported, and\n * from this edit distance matching can also be provided.\n *\n * Token sets are implemented as a minimal finite state automata,\n * where both common prefixes and suffixes are shared between tokens.\n * This helps to reduce the space used for storing the token set.\n *\n * @constructor\n */\nlunr.TokenSet = function () {\n this.final = false\n this.edges = {}\n this.id = lunr.TokenSet._nextId\n lunr.TokenSet._nextId += 1\n}\n\n/**\n * Keeps track of the next, auto increment, identifier to assign\n * to a new tokenSet.\n *\n * TokenSets require a unique identifier to be correctly minimised.\n *\n * @private\n */\nlunr.TokenSet._nextId = 1\n\n/**\n * Creates a TokenSet instance from the given sorted array of words.\n *\n * @param {String[]} arr - A sorted array of strings to create the set from.\n * @returns {lunr.TokenSet}\n * @throws Will throw an error if the input array is not sorted.\n */\nlunr.TokenSet.fromArray = function (arr) {\n var builder = new lunr.TokenSet.Builder\n\n for (var i = 0, len = arr.length; i < len; i++) {\n builder.insert(arr[i])\n }\n\n builder.finish()\n return builder.root\n}\n\n/**\n * Creates a token set from a query clause.\n *\n * @private\n * @param {Object} clause - A single clause from lunr.Query.\n * @param {string} clause.term - The query clause term.\n * @param {number} [clause.editDistance] - The optional edit distance for the term.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.fromClause = function (clause) {\n if ('editDistance' in clause) {\n return lunr.TokenSet.fromFuzzyString(clause.term, clause.editDistance)\n } else {\n return lunr.TokenSet.fromString(clause.term)\n }\n}\n\n/**\n * Creates a token set representing a single string with a specified\n * edit distance.\n *\n * Insertions, deletions, substitutions and transpositions are each\n * treated as an edit distance of 1.\n *\n * Increasing the allowed edit distance will have a dramatic impact\n * on the performance of both creating and intersecting these TokenSets.\n * It is advised to keep the edit distance less than 3.\n *\n * @param {string} str - The string to create the token set from.\n * @param {number} editDistance - The allowed edit distance to match.\n * @returns {lunr.Vector}\n */\nlunr.TokenSet.fromFuzzyString = function (str, editDistance) {\n var root = new lunr.TokenSet\n\n var stack = [{\n node: root,\n editsRemaining: editDistance,\n str: str\n }]\n\n while (stack.length) {\n var frame = stack.pop()\n\n // no edit\n if (frame.str.length > 0) {\n var char = frame.str.charAt(0),\n noEditNode\n\n if (char in frame.node.edges) {\n noEditNode = frame.node.edges[char]\n } else {\n noEditNode = new lunr.TokenSet\n frame.node.edges[char] = noEditNode\n }\n\n if (frame.str.length == 1) {\n noEditNode.final = true\n }\n\n stack.push({\n node: noEditNode,\n editsRemaining: frame.editsRemaining,\n str: frame.str.slice(1)\n })\n }\n\n if (frame.editsRemaining == 0) {\n continue\n }\n\n // insertion\n if (\"*\" in frame.node.edges) {\n var insertionNode = frame.node.edges[\"*\"]\n } else {\n var insertionNode = new lunr.TokenSet\n frame.node.edges[\"*\"] = insertionNode\n }\n\n if (frame.str.length == 0) {\n insertionNode.final = true\n }\n\n stack.push({\n node: insertionNode,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str\n })\n\n // deletion\n // can only do a deletion if we have enough edits remaining\n // and if there are characters left to delete in the string\n if (frame.str.length > 1) {\n stack.push({\n node: frame.node,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str.slice(1)\n })\n }\n\n // deletion\n // just removing the last character from the str\n if (frame.str.length == 1) {\n frame.node.final = true\n }\n\n // substitution\n // can only do a substitution if we have enough edits remaining\n // and if there are characters left to substitute\n if (frame.str.length >= 1) {\n if (\"*\" in frame.node.edges) {\n var substitutionNode = frame.node.edges[\"*\"]\n } else {\n var substitutionNode = new lunr.TokenSet\n frame.node.edges[\"*\"] = substitutionNode\n }\n\n if (frame.str.length == 1) {\n substitutionNode.final = true\n }\n\n stack.push({\n node: substitutionNode,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str.slice(1)\n })\n }\n\n // transposition\n // can only do a transposition if there are edits remaining\n // and there are enough characters to transpose\n if (frame.str.length > 1) {\n var charA = frame.str.charAt(0),\n charB = frame.str.charAt(1),\n transposeNode\n\n if (charB in frame.node.edges) {\n transposeNode = frame.node.edges[charB]\n } else {\n transposeNode = new lunr.TokenSet\n frame.node.edges[charB] = transposeNode\n }\n\n if (frame.str.length == 1) {\n transposeNode.final = true\n }\n\n stack.push({\n node: transposeNode,\n editsRemaining: frame.editsRemaining - 1,\n str: charA + frame.str.slice(2)\n })\n }\n }\n\n return root\n}\n\n/**\n * Creates a TokenSet from a string.\n *\n * The string may contain one or more wildcard characters (*)\n * that will allow wildcard matching when intersecting with\n * another TokenSet.\n *\n * @param {string} str - The string to create a TokenSet from.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.fromString = function (str) {\n var node = new lunr.TokenSet,\n root = node\n\n /*\n * Iterates through all characters within the passed string\n * appending a node for each character.\n *\n * When a wildcard character is found then a self\n * referencing edge is introduced to continually match\n * any number of any characters.\n */\n for (var i = 0, len = str.length; i < len; i++) {\n var char = str[i],\n final = (i == len - 1)\n\n if (char == \"*\") {\n node.edges[char] = node\n node.final = final\n\n } else {\n var next = new lunr.TokenSet\n next.final = final\n\n node.edges[char] = next\n node = next\n }\n }\n\n return root\n}\n\n/**\n * Converts this TokenSet into an array of strings\n * contained within the TokenSet.\n *\n * This is not intended to be used on a TokenSet that\n * contains wildcards, in these cases the results are\n * undefined and are likely to cause an infinite loop.\n *\n * @returns {string[]}\n */\nlunr.TokenSet.prototype.toArray = function () {\n var words = []\n\n var stack = [{\n prefix: \"\",\n node: this\n }]\n\n while (stack.length) {\n var frame = stack.pop(),\n edges = Object.keys(frame.node.edges),\n len = edges.length\n\n if (frame.node.final) {\n /* In Safari, at this point the prefix is sometimes corrupted, see:\n * https://github.com/olivernn/lunr.js/issues/279 Calling any\n * String.prototype method forces Safari to \"cast\" this string to what\n * it's supposed to be, fixing the bug. */\n frame.prefix.charAt(0)\n words.push(frame.prefix)\n }\n\n for (var i = 0; i < len; i++) {\n var edge = edges[i]\n\n stack.push({\n prefix: frame.prefix.concat(edge),\n node: frame.node.edges[edge]\n })\n }\n }\n\n return words\n}\n\n/**\n * Generates a string representation of a TokenSet.\n *\n * This is intended to allow TokenSets to be used as keys\n * in objects, largely to aid the construction and minimisation\n * of a TokenSet. As such it is not designed to be a human\n * friendly representation of the TokenSet.\n *\n * @returns {string}\n */\nlunr.TokenSet.prototype.toString = function () {\n // NOTE: Using Object.keys here as this.edges is very likely\n // to enter 'hash-mode' with many keys being added\n //\n // avoiding a for-in loop here as it leads to the function\n // being de-optimised (at least in V8). From some simple\n // benchmarks the performance is comparable, but allowing\n // V8 to optimize may mean easy performance wins in the future.\n\n if (this._str) {\n return this._str\n }\n\n var str = this.final ? '1' : '0',\n labels = Object.keys(this.edges).sort(),\n len = labels.length\n\n for (var i = 0; i < len; i++) {\n var label = labels[i],\n node = this.edges[label]\n\n str = str + label + node.id\n }\n\n return str\n}\n\n/**\n * Returns a new TokenSet that is the intersection of\n * this TokenSet and the passed TokenSet.\n *\n * This intersection will take into account any wildcards\n * contained within the TokenSet.\n *\n * @param {lunr.TokenSet} b - An other TokenSet to intersect with.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.prototype.intersect = function (b) {\n var output = new lunr.TokenSet,\n frame = undefined\n\n var stack = [{\n qNode: b,\n output: output,\n node: this\n }]\n\n while (stack.length) {\n frame = stack.pop()\n\n // NOTE: As with the #toString method, we are using\n // Object.keys and a for loop instead of a for-in loop\n // as both of these objects enter 'hash' mode, causing\n // the function to be de-optimised in V8\n var qEdges = Object.keys(frame.qNode.edges),\n qLen = qEdges.length,\n nEdges = Object.keys(frame.node.edges),\n nLen = nEdges.length\n\n for (var q = 0; q < qLen; q++) {\n var qEdge = qEdges[q]\n\n for (var n = 0; n < nLen; n++) {\n var nEdge = nEdges[n]\n\n if (nEdge == qEdge || qEdge == '*') {\n var node = frame.node.edges[nEdge],\n qNode = frame.qNode.edges[qEdge],\n final = node.final && qNode.final,\n next = undefined\n\n if (nEdge in frame.output.edges) {\n // an edge already exists for this character\n // no need to create a new node, just set the finality\n // bit unless this node is already final\n next = frame.output.edges[nEdge]\n next.final = next.final || final\n\n } else {\n // no edge exists yet, must create one\n // set the finality bit and insert it\n // into the output\n next = new lunr.TokenSet\n next.final = final\n frame.output.edges[nEdge] = next\n }\n\n stack.push({\n qNode: qNode,\n output: next,\n node: node\n })\n }\n }\n }\n }\n\n return output\n}\nlunr.TokenSet.Builder = function () {\n this.previousWord = \"\"\n this.root = new lunr.TokenSet\n this.uncheckedNodes = []\n this.minimizedNodes = {}\n}\n\nlunr.TokenSet.Builder.prototype.insert = function (word) {\n var node,\n commonPrefix = 0\n\n if (word < this.previousWord) {\n throw new Error (\"Out of order word insertion\")\n }\n\n for (var i = 0; i < word.length && i < this.previousWord.length; i++) {\n if (word[i] != this.previousWord[i]) break\n commonPrefix++\n }\n\n this.minimize(commonPrefix)\n\n if (this.uncheckedNodes.length == 0) {\n node = this.root\n } else {\n node = this.uncheckedNodes[this.uncheckedNodes.length - 1].child\n }\n\n for (var i = commonPrefix; i < word.length; i++) {\n var nextNode = new lunr.TokenSet,\n char = word[i]\n\n node.edges[char] = nextNode\n\n this.uncheckedNodes.push({\n parent: node,\n char: char,\n child: nextNode\n })\n\n node = nextNode\n }\n\n node.final = true\n this.previousWord = word\n}\n\nlunr.TokenSet.Builder.prototype.finish = function () {\n this.minimize(0)\n}\n\nlunr.TokenSet.Builder.prototype.minimize = function (downTo) {\n for (var i = this.uncheckedNodes.length - 1; i >= downTo; i--) {\n var node = this.uncheckedNodes[i],\n childKey = node.child.toString()\n\n if (childKey in this.minimizedNodes) {\n node.parent.edges[node.char] = this.minimizedNodes[childKey]\n } else {\n // Cache the key for this node since\n // we know it can't change anymore\n node.child._str = childKey\n\n this.minimizedNodes[childKey] = node.child\n }\n\n this.uncheckedNodes.pop()\n }\n}\n/*!\n * lunr.Index\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * An index contains the built index of all documents and provides a query interface\n * to the index.\n *\n * Usually instances of lunr.Index will not be created using this constructor, instead\n * lunr.Builder should be used to construct new indexes, or lunr.Index.load should be\n * used to load previously built and serialized indexes.\n *\n * @constructor\n * @param {Object} attrs - The attributes of the built search index.\n * @param {Object} attrs.invertedIndex - An index of term/field to document reference.\n * @param {Object} attrs.fieldVectors - Field vectors\n * @param {lunr.TokenSet} attrs.tokenSet - An set of all corpus tokens.\n * @param {string[]} attrs.fields - The names of indexed document fields.\n * @param {lunr.Pipeline} attrs.pipeline - The pipeline to use for search terms.\n */\nlunr.Index = function (attrs) {\n this.invertedIndex = attrs.invertedIndex\n this.fieldVectors = attrs.fieldVectors\n this.tokenSet = attrs.tokenSet\n this.fields = attrs.fields\n this.pipeline = attrs.pipeline\n}\n\n/**\n * A result contains details of a document matching a search query.\n * @typedef {Object} lunr.Index~Result\n * @property {string} ref - The reference of the document this result represents.\n * @property {number} score - A number between 0 and 1 representing how similar this document is to the query.\n * @property {lunr.MatchData} matchData - Contains metadata about this match including which term(s) caused the match.\n */\n\n/**\n * Although lunr provides the ability to create queries using lunr.Query, it also provides a simple\n * query language which itself is parsed into an instance of lunr.Query.\n *\n * For programmatically building queries it is advised to directly use lunr.Query, the query language\n * is best used for human entered text rather than program generated text.\n *\n * At its simplest queries can just be a single term, e.g. `hello`, multiple terms are also supported\n * and will be combined with OR, e.g `hello world` will match documents that contain either 'hello'\n * or 'world', though those that contain both will rank higher in the results.\n *\n * Wildcards can be included in terms to match one or more unspecified characters, these wildcards can\n * be inserted anywhere within the term, and more than one wildcard can exist in a single term. Adding\n * wildcards will increase the number of documents that will be found but can also have a negative\n * impact on query performance, especially with wildcards at the beginning of a term.\n *\n * Terms can be restricted to specific fields, e.g. `title:hello`, only documents with the term\n * hello in the title field will match this query. Using a field not present in the index will lead\n * to an error being thrown.\n *\n * Modifiers can also be added to terms, lunr supports edit distance and boost modifiers on terms. A term\n * boost will make documents matching that term score higher, e.g. `foo^5`. Edit distance is also supported\n * to provide fuzzy matching, e.g. 'hello~2' will match documents with hello with an edit distance of 2.\n * Avoid large values for edit distance to improve query performance.\n *\n * Each term also supports a presence modifier. By default a term's presence in document is optional, however\n * this can be changed to either required or prohibited. For a term's presence to be required in a document the\n * term should be prefixed with a '+', e.g. `+foo bar` is a search for documents that must contain 'foo' and\n * optionally contain 'bar'. Conversely a leading '-' sets the terms presence to prohibited, i.e. it must not\n * appear in a document, e.g. `-foo bar` is a search for documents that do not contain 'foo' but may contain 'bar'.\n *\n * To escape special characters the backslash character '\\' can be used, this allows searches to include\n * characters that would normally be considered modifiers, e.g. `foo\\~2` will search for a term \"foo~2\" instead\n * of attempting to apply a boost of 2 to the search term \"foo\".\n *\n * @typedef {string} lunr.Index~QueryString\n * @example Simple single term query\n * hello\n * @example Multiple term query\n * hello world\n * @example term scoped to a field\n * title:hello\n * @example term with a boost of 10\n * hello^10\n * @example term with an edit distance of 2\n * hello~2\n * @example terms with presence modifiers\n * -foo +bar baz\n */\n\n/**\n * Performs a search against the index using lunr query syntax.\n *\n * Results will be returned sorted by their score, the most relevant results\n * will be returned first. For details on how the score is calculated, please see\n * the {@link https://lunrjs.com/guides/searching.html#scoring|guide}.\n *\n * For more programmatic querying use lunr.Index#query.\n *\n * @param {lunr.Index~QueryString} queryString - A string containing a lunr query.\n * @throws {lunr.QueryParseError} If the passed query string cannot be parsed.\n * @returns {lunr.Index~Result[]}\n */\nlunr.Index.prototype.search = function (queryString) {\n return this.query(function (query) {\n var parser = new lunr.QueryParser(queryString, query)\n parser.parse()\n })\n}\n\n/**\n * A query builder callback provides a query object to be used to express\n * the query to perform on the index.\n *\n * @callback lunr.Index~queryBuilder\n * @param {lunr.Query} query - The query object to build up.\n * @this lunr.Query\n */\n\n/**\n * Performs a query against the index using the yielded lunr.Query object.\n *\n * If performing programmatic queries against the index, this method is preferred\n * over lunr.Index#search so as to avoid the additional query parsing overhead.\n *\n * A query object is yielded to the supplied function which should be used to\n * express the query to be run against the index.\n *\n * Note that although this function takes a callback parameter it is _not_ an\n * asynchronous operation, the callback is just yielded a query object to be\n * customized.\n *\n * @param {lunr.Index~queryBuilder} fn - A function that is used to build the query.\n * @returns {lunr.Index~Result[]}\n */\nlunr.Index.prototype.query = function (fn) {\n // for each query clause\n // * process terms\n // * expand terms from token set\n // * find matching documents and metadata\n // * get document vectors\n // * score documents\n\n var query = new lunr.Query(this.fields),\n matchingFields = Object.create(null),\n queryVectors = Object.create(null),\n termFieldCache = Object.create(null),\n requiredMatches = Object.create(null),\n prohibitedMatches = Object.create(null)\n\n /*\n * To support field level boosts a query vector is created per\n * field. An empty vector is eagerly created to support negated\n * queries.\n */\n for (var i = 0; i < this.fields.length; i++) {\n queryVectors[this.fields[i]] = new lunr.Vector\n }\n\n fn.call(query, query)\n\n for (var i = 0; i < query.clauses.length; i++) {\n /*\n * Unless the pipeline has been disabled for this term, which is\n * the case for terms with wildcards, we need to pass the clause\n * term through the search pipeline. A pipeline returns an array\n * of processed terms. Pipeline functions may expand the passed\n * term, which means we may end up performing multiple index lookups\n * for a single query term.\n */\n var clause = query.clauses[i],\n terms = null,\n clauseMatches = lunr.Set.complete\n\n if (clause.usePipeline) {\n terms = this.pipeline.runString(clause.term, {\n fields: clause.fields\n })\n } else {\n terms = [clause.term]\n }\n\n for (var m = 0; m < terms.length; m++) {\n var term = terms[m]\n\n /*\n * Each term returned from the pipeline needs to use the same query\n * clause object, e.g. the same boost and or edit distance. The\n * simplest way to do this is to re-use the clause object but mutate\n * its term property.\n */\n clause.term = term\n\n /*\n * From the term in the clause we create a token set which will then\n * be used to intersect the indexes token set to get a list of terms\n * to lookup in the inverted index\n */\n var termTokenSet = lunr.TokenSet.fromClause(clause),\n expandedTerms = this.tokenSet.intersect(termTokenSet).toArray()\n\n /*\n * If a term marked as required does not exist in the tokenSet it is\n * impossible for the search to return any matches. We set all the field\n * scoped required matches set to empty and stop examining any further\n * clauses.\n */\n if (expandedTerms.length === 0 && clause.presence === lunr.Query.presence.REQUIRED) {\n for (var k = 0; k < clause.fields.length; k++) {\n var field = clause.fields[k]\n requiredMatches[field] = lunr.Set.empty\n }\n\n break\n }\n\n for (var j = 0; j < expandedTerms.length; j++) {\n /*\n * For each term get the posting and termIndex, this is required for\n * building the query vector.\n */\n var expandedTerm = expandedTerms[j],\n posting = this.invertedIndex[expandedTerm],\n termIndex = posting._index\n\n for (var k = 0; k < clause.fields.length; k++) {\n /*\n * For each field that this query term is scoped by (by default\n * all fields are in scope) we need to get all the document refs\n * that have this term in that field.\n *\n * The posting is the entry in the invertedIndex for the matching\n * term from above.\n */\n var field = clause.fields[k],\n fieldPosting = posting[field],\n matchingDocumentRefs = Object.keys(fieldPosting),\n termField = expandedTerm + \"/\" + field,\n matchingDocumentsSet = new lunr.Set(matchingDocumentRefs)\n\n /*\n * if the presence of this term is required ensure that the matching\n * documents are added to the set of required matches for this clause.\n *\n */\n if (clause.presence == lunr.Query.presence.REQUIRED) {\n clauseMatches = clauseMatches.union(matchingDocumentsSet)\n\n if (requiredMatches[field] === undefined) {\n requiredMatches[field] = lunr.Set.complete\n }\n }\n\n /*\n * if the presence of this term is prohibited ensure that the matching\n * documents are added to the set of prohibited matches for this field,\n * creating that set if it does not yet exist.\n */\n if (clause.presence == lunr.Query.presence.PROHIBITED) {\n if (prohibitedMatches[field] === undefined) {\n prohibitedMatches[field] = lunr.Set.empty\n }\n\n prohibitedMatches[field] = prohibitedMatches[field].union(matchingDocumentsSet)\n\n /*\n * Prohibited matches should not be part of the query vector used for\n * similarity scoring and no metadata should be extracted so we continue\n * to the next field\n */\n continue\n }\n\n /*\n * The query field vector is populated using the termIndex found for\n * the term and a unit value with the appropriate boost applied.\n * Using upsert because there could already be an entry in the vector\n * for the term we are working with. In that case we just add the scores\n * together.\n */\n queryVectors[field].upsert(termIndex, clause.boost, function (a, b) { return a + b })\n\n /**\n * If we've already seen this term, field combo then we've already collected\n * the matching documents and metadata, no need to go through all that again\n */\n if (termFieldCache[termField]) {\n continue\n }\n\n for (var l = 0; l < matchingDocumentRefs.length; l++) {\n /*\n * All metadata for this term/field/document triple\n * are then extracted and collected into an instance\n * of lunr.MatchData ready to be returned in the query\n * results\n */\n var matchingDocumentRef = matchingDocumentRefs[l],\n matchingFieldRef = new lunr.FieldRef (matchingDocumentRef, field),\n metadata = fieldPosting[matchingDocumentRef],\n fieldMatch\n\n if ((fieldMatch = matchingFields[matchingFieldRef]) === undefined) {\n matchingFields[matchingFieldRef] = new lunr.MatchData (expandedTerm, field, metadata)\n } else {\n fieldMatch.add(expandedTerm, field, metadata)\n }\n\n }\n\n termFieldCache[termField] = true\n }\n }\n }\n\n /**\n * If the presence was required we need to update the requiredMatches field sets.\n * We do this after all fields for the term have collected their matches because\n * the clause terms presence is required in _any_ of the fields not _all_ of the\n * fields.\n */\n if (clause.presence === lunr.Query.presence.REQUIRED) {\n for (var k = 0; k < clause.fields.length; k++) {\n var field = clause.fields[k]\n requiredMatches[field] = requiredMatches[field].intersect(clauseMatches)\n }\n }\n }\n\n /**\n * Need to combine the field scoped required and prohibited\n * matching documents into a global set of required and prohibited\n * matches\n */\n var allRequiredMatches = lunr.Set.complete,\n allProhibitedMatches = lunr.Set.empty\n\n for (var i = 0; i < this.fields.length; i++) {\n var field = this.fields[i]\n\n if (requiredMatches[field]) {\n allRequiredMatches = allRequiredMatches.intersect(requiredMatches[field])\n }\n\n if (prohibitedMatches[field]) {\n allProhibitedMatches = allProhibitedMatches.union(prohibitedMatches[field])\n }\n }\n\n var matchingFieldRefs = Object.keys(matchingFields),\n results = [],\n matches = Object.create(null)\n\n /*\n * If the query is negated (contains only prohibited terms)\n * we need to get _all_ fieldRefs currently existing in the\n * index. This is only done when we know that the query is\n * entirely prohibited terms to avoid any cost of getting all\n * fieldRefs unnecessarily.\n *\n * Additionally, blank MatchData must be created to correctly\n * populate the results.\n */\n if (query.isNegated()) {\n matchingFieldRefs = Object.keys(this.fieldVectors)\n\n for (var i = 0; i < matchingFieldRefs.length; i++) {\n var matchingFieldRef = matchingFieldRefs[i]\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRef)\n matchingFields[matchingFieldRef] = new lunr.MatchData\n }\n }\n\n for (var i = 0; i < matchingFieldRefs.length; i++) {\n /*\n * Currently we have document fields that match the query, but we\n * need to return documents. The matchData and scores are combined\n * from multiple fields belonging to the same document.\n *\n * Scores are calculated by field, using the query vectors created\n * above, and combined into a final document score using addition.\n */\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRefs[i]),\n docRef = fieldRef.docRef\n\n if (!allRequiredMatches.contains(docRef)) {\n continue\n }\n\n if (allProhibitedMatches.contains(docRef)) {\n continue\n }\n\n var fieldVector = this.fieldVectors[fieldRef],\n score = queryVectors[fieldRef.fieldName].similarity(fieldVector),\n docMatch\n\n if ((docMatch = matches[docRef]) !== undefined) {\n docMatch.score += score\n docMatch.matchData.combine(matchingFields[fieldRef])\n } else {\n var match = {\n ref: docRef,\n score: score,\n matchData: matchingFields[fieldRef]\n }\n matches[docRef] = match\n results.push(match)\n }\n }\n\n /*\n * Sort the results objects by score, highest first.\n */\n return results.sort(function (a, b) {\n return b.score - a.score\n })\n}\n\n/**\n * Prepares the index for JSON serialization.\n *\n * The schema for this JSON blob will be described in a\n * separate JSON schema file.\n *\n * @returns {Object}\n */\nlunr.Index.prototype.toJSON = function () {\n var invertedIndex = Object.keys(this.invertedIndex)\n .sort()\n .map(function (term) {\n return [term, this.invertedIndex[term]]\n }, this)\n\n var fieldVectors = Object.keys(this.fieldVectors)\n .map(function (ref) {\n return [ref, this.fieldVectors[ref].toJSON()]\n }, this)\n\n return {\n version: lunr.version,\n fields: this.fields,\n fieldVectors: fieldVectors,\n invertedIndex: invertedIndex,\n pipeline: this.pipeline.toJSON()\n }\n}\n\n/**\n * Loads a previously serialized lunr.Index\n *\n * @param {Object} serializedIndex - A previously serialized lunr.Index\n * @returns {lunr.Index}\n */\nlunr.Index.load = function (serializedIndex) {\n var attrs = {},\n fieldVectors = {},\n serializedVectors = serializedIndex.fieldVectors,\n invertedIndex = Object.create(null),\n serializedInvertedIndex = serializedIndex.invertedIndex,\n tokenSetBuilder = new lunr.TokenSet.Builder,\n pipeline = lunr.Pipeline.load(serializedIndex.pipeline)\n\n if (serializedIndex.version != lunr.version) {\n lunr.utils.warn(\"Version mismatch when loading serialised index. Current version of lunr '\" + lunr.version + \"' does not match serialized index '\" + serializedIndex.version + \"'\")\n }\n\n for (var i = 0; i < serializedVectors.length; i++) {\n var tuple = serializedVectors[i],\n ref = tuple[0],\n elements = tuple[1]\n\n fieldVectors[ref] = new lunr.Vector(elements)\n }\n\n for (var i = 0; i < serializedInvertedIndex.length; i++) {\n var tuple = serializedInvertedIndex[i],\n term = tuple[0],\n posting = tuple[1]\n\n tokenSetBuilder.insert(term)\n invertedIndex[term] = posting\n }\n\n tokenSetBuilder.finish()\n\n attrs.fields = serializedIndex.fields\n\n attrs.fieldVectors = fieldVectors\n attrs.invertedIndex = invertedIndex\n attrs.tokenSet = tokenSetBuilder.root\n attrs.pipeline = pipeline\n\n return new lunr.Index(attrs)\n}\n/*!\n * lunr.Builder\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.Builder performs indexing on a set of documents and\n * returns instances of lunr.Index ready for querying.\n *\n * All configuration of the index is done via the builder, the\n * fields to index, the document reference, the text processing\n * pipeline and document scoring parameters are all set on the\n * builder before indexing.\n *\n * @constructor\n * @property {string} _ref - Internal reference to the document reference field.\n * @property {string[]} _fields - Internal reference to the document fields to index.\n * @property {object} invertedIndex - The inverted index maps terms to document fields.\n * @property {object} documentTermFrequencies - Keeps track of document term frequencies.\n * @property {object} documentLengths - Keeps track of the length of documents added to the index.\n * @property {lunr.tokenizer} tokenizer - Function for splitting strings into tokens for indexing.\n * @property {lunr.Pipeline} pipeline - The pipeline performs text processing on tokens before indexing.\n * @property {lunr.Pipeline} searchPipeline - A pipeline for processing search terms before querying the index.\n * @property {number} documentCount - Keeps track of the total number of documents indexed.\n * @property {number} _b - A parameter to control field length normalization, setting this to 0 disabled normalization, 1 fully normalizes field lengths, the default value is 0.75.\n * @property {number} _k1 - A parameter to control how quickly an increase in term frequency results in term frequency saturation, the default value is 1.2.\n * @property {number} termIndex - A counter incremented for each unique term, used to identify a terms position in the vector space.\n * @property {array} metadataWhitelist - A list of metadata keys that have been whitelisted for entry in the index.\n */\nlunr.Builder = function () {\n this._ref = \"id\"\n this._fields = Object.create(null)\n this._documents = Object.create(null)\n this.invertedIndex = Object.create(null)\n this.fieldTermFrequencies = {}\n this.fieldLengths = {}\n this.tokenizer = lunr.tokenizer\n this.pipeline = new lunr.Pipeline\n this.searchPipeline = new lunr.Pipeline\n this.documentCount = 0\n this._b = 0.75\n this._k1 = 1.2\n this.termIndex = 0\n this.metadataWhitelist = []\n}\n\n/**\n * Sets the document field used as the document reference. Every document must have this field.\n * The type of this field in the document should be a string, if it is not a string it will be\n * coerced into a string by calling toString.\n *\n * The default ref is 'id'.\n *\n * The ref should _not_ be changed during indexing, it should be set before any documents are\n * added to the index. Changing it during indexing can lead to inconsistent results.\n *\n * @param {string} ref - The name of the reference field in the document.\n */\nlunr.Builder.prototype.ref = function (ref) {\n this._ref = ref\n}\n\n/**\n * A function that is used to extract a field from a document.\n *\n * Lunr expects a field to be at the top level of a document, if however the field\n * is deeply nested within a document an extractor function can be used to extract\n * the right field for indexing.\n *\n * @callback fieldExtractor\n * @param {object} doc - The document being added to the index.\n * @returns {?(string|object|object[])} obj - The object that will be indexed for this field.\n * @example Extracting a nested field\n * function (doc) { return doc.nested.field }\n */\n\n/**\n * Adds a field to the list of document fields that will be indexed. Every document being\n * indexed should have this field. Null values for this field in indexed documents will\n * not cause errors but will limit the chance of that document being retrieved by searches.\n *\n * All fields should be added before adding documents to the index. Adding fields after\n * a document has been indexed will have no effect on already indexed documents.\n *\n * Fields can be boosted at build time. This allows terms within that field to have more\n * importance when ranking search results. Use a field boost to specify that matches within\n * one field are more important than other fields.\n *\n * @param {string} fieldName - The name of a field to index in all documents.\n * @param {object} attributes - Optional attributes associated with this field.\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this field.\n * @param {fieldExtractor} [attributes.extractor] - Function to extract a field from a document.\n * @throws {RangeError} fieldName cannot contain unsupported characters '/'\n */\nlunr.Builder.prototype.field = function (fieldName, attributes) {\n if (/\\//.test(fieldName)) {\n throw new RangeError (\"Field '\" + fieldName + \"' contains illegal character '/'\")\n }\n\n this._fields[fieldName] = attributes || {}\n}\n\n/**\n * A parameter to tune the amount of field length normalisation that is applied when\n * calculating relevance scores. A value of 0 will completely disable any normalisation\n * and a value of 1 will fully normalise field lengths. The default is 0.75. Values of b\n * will be clamped to the range 0 - 1.\n *\n * @param {number} number - The value to set for this tuning parameter.\n */\nlunr.Builder.prototype.b = function (number) {\n if (number < 0) {\n this._b = 0\n } else if (number > 1) {\n this._b = 1\n } else {\n this._b = number\n }\n}\n\n/**\n * A parameter that controls the speed at which a rise in term frequency results in term\n * frequency saturation. The default value is 1.2. Setting this to a higher value will give\n * slower saturation levels, a lower value will result in quicker saturation.\n *\n * @param {number} number - The value to set for this tuning parameter.\n */\nlunr.Builder.prototype.k1 = function (number) {\n this._k1 = number\n}\n\n/**\n * Adds a document to the index.\n *\n * Before adding fields to the index the index should have been fully setup, with the document\n * ref and all fields to index already having been specified.\n *\n * The document must have a field name as specified by the ref (by default this is 'id') and\n * it should have all fields defined for indexing, though null or undefined values will not\n * cause errors.\n *\n * Entire documents can be boosted at build time. Applying a boost to a document indicates that\n * this document should rank higher in search results than other documents.\n *\n * @param {object} doc - The document to add to the index.\n * @param {object} attributes - Optional attributes associated with this document.\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this document.\n */\nlunr.Builder.prototype.add = function (doc, attributes) {\n var docRef = doc[this._ref],\n fields = Object.keys(this._fields)\n\n this._documents[docRef] = attributes || {}\n this.documentCount += 1\n\n for (var i = 0; i < fields.length; i++) {\n var fieldName = fields[i],\n extractor = this._fields[fieldName].extractor,\n field = extractor ? extractor(doc) : doc[fieldName],\n tokens = this.tokenizer(field, {\n fields: [fieldName]\n }),\n terms = this.pipeline.run(tokens),\n fieldRef = new lunr.FieldRef (docRef, fieldName),\n fieldTerms = Object.create(null)\n\n this.fieldTermFrequencies[fieldRef] = fieldTerms\n this.fieldLengths[fieldRef] = 0\n\n // store the length of this field for this document\n this.fieldLengths[fieldRef] += terms.length\n\n // calculate term frequencies for this field\n for (var j = 0; j < terms.length; j++) {\n var term = terms[j]\n\n if (fieldTerms[term] == undefined) {\n fieldTerms[term] = 0\n }\n\n fieldTerms[term] += 1\n\n // add to inverted index\n // create an initial posting if one doesn't exist\n if (this.invertedIndex[term] == undefined) {\n var posting = Object.create(null)\n posting[\"_index\"] = this.termIndex\n this.termIndex += 1\n\n for (var k = 0; k < fields.length; k++) {\n posting[fields[k]] = Object.create(null)\n }\n\n this.invertedIndex[term] = posting\n }\n\n // add an entry for this term/fieldName/docRef to the invertedIndex\n if (this.invertedIndex[term][fieldName][docRef] == undefined) {\n this.invertedIndex[term][fieldName][docRef] = Object.create(null)\n }\n\n // store all whitelisted metadata about this token in the\n // inverted index\n for (var l = 0; l < this.metadataWhitelist.length; l++) {\n var metadataKey = this.metadataWhitelist[l],\n metadata = term.metadata[metadataKey]\n\n if (this.invertedIndex[term][fieldName][docRef][metadataKey] == undefined) {\n this.invertedIndex[term][fieldName][docRef][metadataKey] = []\n }\n\n this.invertedIndex[term][fieldName][docRef][metadataKey].push(metadata)\n }\n }\n\n }\n}\n\n/**\n * Calculates the average document length for this index\n *\n * @private\n */\nlunr.Builder.prototype.calculateAverageFieldLengths = function () {\n\n var fieldRefs = Object.keys(this.fieldLengths),\n numberOfFields = fieldRefs.length,\n accumulator = {},\n documentsWithField = {}\n\n for (var i = 0; i < numberOfFields; i++) {\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\n field = fieldRef.fieldName\n\n documentsWithField[field] || (documentsWithField[field] = 0)\n documentsWithField[field] += 1\n\n accumulator[field] || (accumulator[field] = 0)\n accumulator[field] += this.fieldLengths[fieldRef]\n }\n\n var fields = Object.keys(this._fields)\n\n for (var i = 0; i < fields.length; i++) {\n var fieldName = fields[i]\n accumulator[fieldName] = accumulator[fieldName] / documentsWithField[fieldName]\n }\n\n this.averageFieldLength = accumulator\n}\n\n/**\n * Builds a vector space model of every document using lunr.Vector\n *\n * @private\n */\nlunr.Builder.prototype.createFieldVectors = function () {\n var fieldVectors = {},\n fieldRefs = Object.keys(this.fieldTermFrequencies),\n fieldRefsLength = fieldRefs.length,\n termIdfCache = Object.create(null)\n\n for (var i = 0; i < fieldRefsLength; i++) {\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\n fieldName = fieldRef.fieldName,\n fieldLength = this.fieldLengths[fieldRef],\n fieldVector = new lunr.Vector,\n termFrequencies = this.fieldTermFrequencies[fieldRef],\n terms = Object.keys(termFrequencies),\n termsLength = terms.length\n\n\n var fieldBoost = this._fields[fieldName].boost || 1,\n docBoost = this._documents[fieldRef.docRef].boost || 1\n\n for (var j = 0; j < termsLength; j++) {\n var term = terms[j],\n tf = termFrequencies[term],\n termIndex = this.invertedIndex[term]._index,\n idf, score, scoreWithPrecision\n\n if (termIdfCache[term] === undefined) {\n idf = lunr.idf(this.invertedIndex[term], this.documentCount)\n termIdfCache[term] = idf\n } else {\n idf = termIdfCache[term]\n }\n\n score = idf * ((this._k1 + 1) * tf) / (this._k1 * (1 - this._b + this._b * (fieldLength / this.averageFieldLength[fieldName])) + tf)\n score *= fieldBoost\n score *= docBoost\n scoreWithPrecision = Math.round(score * 1000) / 1000\n // Converts 1.23456789 to 1.234.\n // Reducing the precision so that the vectors take up less\n // space when serialised. Doing it now so that they behave\n // the same before and after serialisation. Also, this is\n // the fastest approach to reducing a number's precision in\n // JavaScript.\n\n fieldVector.insert(termIndex, scoreWithPrecision)\n }\n\n fieldVectors[fieldRef] = fieldVector\n }\n\n this.fieldVectors = fieldVectors\n}\n\n/**\n * Creates a token set of all tokens in the index using lunr.TokenSet\n *\n * @private\n */\nlunr.Builder.prototype.createTokenSet = function () {\n this.tokenSet = lunr.TokenSet.fromArray(\n Object.keys(this.invertedIndex).sort()\n )\n}\n\n/**\n * Builds the index, creating an instance of lunr.Index.\n *\n * This completes the indexing process and should only be called\n * once all documents have been added to the index.\n *\n * @returns {lunr.Index}\n */\nlunr.Builder.prototype.build = function () {\n this.calculateAverageFieldLengths()\n this.createFieldVectors()\n this.createTokenSet()\n\n return new lunr.Index({\n invertedIndex: this.invertedIndex,\n fieldVectors: this.fieldVectors,\n tokenSet: this.tokenSet,\n fields: Object.keys(this._fields),\n pipeline: this.searchPipeline\n })\n}\n\n/**\n * Applies a plugin to the index builder.\n *\n * A plugin is a function that is called with the index builder as its context.\n * Plugins can be used to customise or extend the behaviour of the index\n * in some way. A plugin is just a function, that encapsulated the custom\n * behaviour that should be applied when building the index.\n *\n * The plugin function will be called with the index builder as its argument, additional\n * arguments can also be passed when calling use. The function will be called\n * with the index builder as its context.\n *\n * @param {Function} plugin The plugin to apply.\n */\nlunr.Builder.prototype.use = function (fn) {\n var args = Array.prototype.slice.call(arguments, 1)\n args.unshift(this)\n fn.apply(this, args)\n}\n/**\n * Contains and collects metadata about a matching document.\n * A single instance of lunr.MatchData is returned as part of every\n * lunr.Index~Result.\n *\n * @constructor\n * @param {string} term - The term this match data is associated with\n * @param {string} field - The field in which the term was found\n * @param {object} metadata - The metadata recorded about this term in this field\n * @property {object} metadata - A cloned collection of metadata associated with this document.\n * @see {@link lunr.Index~Result}\n */\nlunr.MatchData = function (term, field, metadata) {\n var clonedMetadata = Object.create(null),\n metadataKeys = Object.keys(metadata || {})\n\n // Cloning the metadata to prevent the original\n // being mutated during match data combination.\n // Metadata is kept in an array within the inverted\n // index so cloning the data can be done with\n // Array#slice\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i]\n clonedMetadata[key] = metadata[key].slice()\n }\n\n this.metadata = Object.create(null)\n\n if (term !== undefined) {\n this.metadata[term] = Object.create(null)\n this.metadata[term][field] = clonedMetadata\n }\n}\n\n/**\n * An instance of lunr.MatchData will be created for every term that matches a\n * document. However only one instance is required in a lunr.Index~Result. This\n * method combines metadata from another instance of lunr.MatchData with this\n * objects metadata.\n *\n * @param {lunr.MatchData} otherMatchData - Another instance of match data to merge with this one.\n * @see {@link lunr.Index~Result}\n */\nlunr.MatchData.prototype.combine = function (otherMatchData) {\n var terms = Object.keys(otherMatchData.metadata)\n\n for (var i = 0; i < terms.length; i++) {\n var term = terms[i],\n fields = Object.keys(otherMatchData.metadata[term])\n\n if (this.metadata[term] == undefined) {\n this.metadata[term] = Object.create(null)\n }\n\n for (var j = 0; j < fields.length; j++) {\n var field = fields[j],\n keys = Object.keys(otherMatchData.metadata[term][field])\n\n if (this.metadata[term][field] == undefined) {\n this.metadata[term][field] = Object.create(null)\n }\n\n for (var k = 0; k < keys.length; k++) {\n var key = keys[k]\n\n if (this.metadata[term][field][key] == undefined) {\n this.metadata[term][field][key] = otherMatchData.metadata[term][field][key]\n } else {\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(otherMatchData.metadata[term][field][key])\n }\n\n }\n }\n }\n}\n\n/**\n * Add metadata for a term/field pair to this instance of match data.\n *\n * @param {string} term - The term this match data is associated with\n * @param {string} field - The field in which the term was found\n * @param {object} metadata - The metadata recorded about this term in this field\n */\nlunr.MatchData.prototype.add = function (term, field, metadata) {\n if (!(term in this.metadata)) {\n this.metadata[term] = Object.create(null)\n this.metadata[term][field] = metadata\n return\n }\n\n if (!(field in this.metadata[term])) {\n this.metadata[term][field] = metadata\n return\n }\n\n var metadataKeys = Object.keys(metadata)\n\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i]\n\n if (key in this.metadata[term][field]) {\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(metadata[key])\n } else {\n this.metadata[term][field][key] = metadata[key]\n }\n }\n}\n/**\n * A lunr.Query provides a programmatic way of defining queries to be performed\n * against a {@link lunr.Index}.\n *\n * Prefer constructing a lunr.Query using the {@link lunr.Index#query} method\n * so the query object is pre-initialized with the right index fields.\n *\n * @constructor\n * @property {lunr.Query~Clause[]} clauses - An array of query clauses.\n * @property {string[]} allFields - An array of all available fields in a lunr.Index.\n */\nlunr.Query = function (allFields) {\n this.clauses = []\n this.allFields = allFields\n}\n\n/**\n * Constants for indicating what kind of automatic wildcard insertion will be used when constructing a query clause.\n *\n * This allows wildcards to be added to the beginning and end of a term without having to manually do any string\n * concatenation.\n *\n * The wildcard constants can be bitwise combined to select both leading and trailing wildcards.\n *\n * @constant\n * @default\n * @property {number} wildcard.NONE - The term will have no wildcards inserted, this is the default behaviour\n * @property {number} wildcard.LEADING - Prepend the term with a wildcard, unless a leading wildcard already exists\n * @property {number} wildcard.TRAILING - Append a wildcard to the term, unless a trailing wildcard already exists\n * @see lunr.Query~Clause\n * @see lunr.Query#clause\n * @see lunr.Query#term\n * @example query term with trailing wildcard\n * query.term('foo', { wildcard: lunr.Query.wildcard.TRAILING })\n * @example query term with leading and trailing wildcard\n * query.term('foo', {\n * wildcard: lunr.Query.wildcard.LEADING | lunr.Query.wildcard.TRAILING\n * })\n */\n\nlunr.Query.wildcard = new String (\"*\")\nlunr.Query.wildcard.NONE = 0\nlunr.Query.wildcard.LEADING = 1\nlunr.Query.wildcard.TRAILING = 2\n\n/**\n * Constants for indicating what kind of presence a term must have in matching documents.\n *\n * @constant\n * @enum {number}\n * @see lunr.Query~Clause\n * @see lunr.Query#clause\n * @see lunr.Query#term\n * @example query term with required presence\n * query.term('foo', { presence: lunr.Query.presence.REQUIRED })\n */\nlunr.Query.presence = {\n /**\n * Term's presence in a document is optional, this is the default value.\n */\n OPTIONAL: 1,\n\n /**\n * Term's presence in a document is required, documents that do not contain\n * this term will not be returned.\n */\n REQUIRED: 2,\n\n /**\n * Term's presence in a document is prohibited, documents that do contain\n * this term will not be returned.\n */\n PROHIBITED: 3\n}\n\n/**\n * A single clause in a {@link lunr.Query} contains a term and details on how to\n * match that term against a {@link lunr.Index}.\n *\n * @typedef {Object} lunr.Query~Clause\n * @property {string[]} fields - The fields in an index this clause should be matched against.\n * @property {number} [boost=1] - Any boost that should be applied when matching this clause.\n * @property {number} [editDistance] - Whether the term should have fuzzy matching applied, and how fuzzy the match should be.\n * @property {boolean} [usePipeline] - Whether the term should be passed through the search pipeline.\n * @property {number} [wildcard=lunr.Query.wildcard.NONE] - Whether the term should have wildcards appended or prepended.\n * @property {number} [presence=lunr.Query.presence.OPTIONAL] - The terms presence in any matching documents.\n */\n\n/**\n * Adds a {@link lunr.Query~Clause} to this query.\n *\n * Unless the clause contains the fields to be matched all fields will be matched. In addition\n * a default boost of 1 is applied to the clause.\n *\n * @param {lunr.Query~Clause} clause - The clause to add to this query.\n * @see lunr.Query~Clause\n * @returns {lunr.Query}\n */\nlunr.Query.prototype.clause = function (clause) {\n if (!('fields' in clause)) {\n clause.fields = this.allFields\n }\n\n if (!('boost' in clause)) {\n clause.boost = 1\n }\n\n if (!('usePipeline' in clause)) {\n clause.usePipeline = true\n }\n\n if (!('wildcard' in clause)) {\n clause.wildcard = lunr.Query.wildcard.NONE\n }\n\n if ((clause.wildcard & lunr.Query.wildcard.LEADING) && (clause.term.charAt(0) != lunr.Query.wildcard)) {\n clause.term = \"*\" + clause.term\n }\n\n if ((clause.wildcard & lunr.Query.wildcard.TRAILING) && (clause.term.slice(-1) != lunr.Query.wildcard)) {\n clause.term = \"\" + clause.term + \"*\"\n }\n\n if (!('presence' in clause)) {\n clause.presence = lunr.Query.presence.OPTIONAL\n }\n\n this.clauses.push(clause)\n\n return this\n}\n\n/**\n * A negated query is one in which every clause has a presence of\n * prohibited. These queries require some special processing to return\n * the expected results.\n *\n * @returns boolean\n */\nlunr.Query.prototype.isNegated = function () {\n for (var i = 0; i < this.clauses.length; i++) {\n if (this.clauses[i].presence != lunr.Query.presence.PROHIBITED) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * Adds a term to the current query, under the covers this will create a {@link lunr.Query~Clause}\n * to the list of clauses that make up this query.\n *\n * The term is used as is, i.e. no tokenization will be performed by this method. Instead conversion\n * to a token or token-like string should be done before calling this method.\n *\n * The term will be converted to a string by calling `toString`. Multiple terms can be passed as an\n * array, each term in the array will share the same options.\n *\n * @param {object|object[]} term - The term(s) to add to the query.\n * @param {object} [options] - Any additional properties to add to the query clause.\n * @returns {lunr.Query}\n * @see lunr.Query#clause\n * @see lunr.Query~Clause\n * @example adding a single term to a query\n * query.term(\"foo\")\n * @example adding a single term to a query and specifying search fields, term boost and automatic trailing wildcard\n * query.term(\"foo\", {\n * fields: [\"title\"],\n * boost: 10,\n * wildcard: lunr.Query.wildcard.TRAILING\n * })\n * @example using lunr.tokenizer to convert a string to tokens before using them as terms\n * query.term(lunr.tokenizer(\"foo bar\"))\n */\nlunr.Query.prototype.term = function (term, options) {\n if (Array.isArray(term)) {\n term.forEach(function (t) { this.term(t, lunr.utils.clone(options)) }, this)\n return this\n }\n\n var clause = options || {}\n clause.term = term.toString()\n\n this.clause(clause)\n\n return this\n}\nlunr.QueryParseError = function (message, start, end) {\n this.name = \"QueryParseError\"\n this.message = message\n this.start = start\n this.end = end\n}\n\nlunr.QueryParseError.prototype = new Error\nlunr.QueryLexer = function (str) {\n this.lexemes = []\n this.str = str\n this.length = str.length\n this.pos = 0\n this.start = 0\n this.escapeCharPositions = []\n}\n\nlunr.QueryLexer.prototype.run = function () {\n var state = lunr.QueryLexer.lexText\n\n while (state) {\n state = state(this)\n }\n}\n\nlunr.QueryLexer.prototype.sliceString = function () {\n var subSlices = [],\n sliceStart = this.start,\n sliceEnd = this.pos\n\n for (var i = 0; i < this.escapeCharPositions.length; i++) {\n sliceEnd = this.escapeCharPositions[i]\n subSlices.push(this.str.slice(sliceStart, sliceEnd))\n sliceStart = sliceEnd + 1\n }\n\n subSlices.push(this.str.slice(sliceStart, this.pos))\n this.escapeCharPositions.length = 0\n\n return subSlices.join('')\n}\n\nlunr.QueryLexer.prototype.emit = function (type) {\n this.lexemes.push({\n type: type,\n str: this.sliceString(),\n start: this.start,\n end: this.pos\n })\n\n this.start = this.pos\n}\n\nlunr.QueryLexer.prototype.escapeCharacter = function () {\n this.escapeCharPositions.push(this.pos - 1)\n this.pos += 1\n}\n\nlunr.QueryLexer.prototype.next = function () {\n if (this.pos >= this.length) {\n return lunr.QueryLexer.EOS\n }\n\n var char = this.str.charAt(this.pos)\n this.pos += 1\n return char\n}\n\nlunr.QueryLexer.prototype.width = function () {\n return this.pos - this.start\n}\n\nlunr.QueryLexer.prototype.ignore = function () {\n if (this.start == this.pos) {\n this.pos += 1\n }\n\n this.start = this.pos\n}\n\nlunr.QueryLexer.prototype.backup = function () {\n this.pos -= 1\n}\n\nlunr.QueryLexer.prototype.acceptDigitRun = function () {\n var char, charCode\n\n do {\n char = this.next()\n charCode = char.charCodeAt(0)\n } while (charCode > 47 && charCode < 58)\n\n if (char != lunr.QueryLexer.EOS) {\n this.backup()\n }\n}\n\nlunr.QueryLexer.prototype.more = function () {\n return this.pos < this.length\n}\n\nlunr.QueryLexer.EOS = 'EOS'\nlunr.QueryLexer.FIELD = 'FIELD'\nlunr.QueryLexer.TERM = 'TERM'\nlunr.QueryLexer.EDIT_DISTANCE = 'EDIT_DISTANCE'\nlunr.QueryLexer.BOOST = 'BOOST'\nlunr.QueryLexer.PRESENCE = 'PRESENCE'\n\nlunr.QueryLexer.lexField = function (lexer) {\n lexer.backup()\n lexer.emit(lunr.QueryLexer.FIELD)\n lexer.ignore()\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexTerm = function (lexer) {\n if (lexer.width() > 1) {\n lexer.backup()\n lexer.emit(lunr.QueryLexer.TERM)\n }\n\n lexer.ignore()\n\n if (lexer.more()) {\n return lunr.QueryLexer.lexText\n }\n}\n\nlunr.QueryLexer.lexEditDistance = function (lexer) {\n lexer.ignore()\n lexer.acceptDigitRun()\n lexer.emit(lunr.QueryLexer.EDIT_DISTANCE)\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexBoost = function (lexer) {\n lexer.ignore()\n lexer.acceptDigitRun()\n lexer.emit(lunr.QueryLexer.BOOST)\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexEOS = function (lexer) {\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n}\n\n// This matches the separator used when tokenising fields\n// within a document. These should match otherwise it is\n// not possible to search for some tokens within a document.\n//\n// It is possible for the user to change the separator on the\n// tokenizer so it _might_ clash with any other of the special\n// characters already used within the search string, e.g. :.\n//\n// This means that it is possible to change the separator in\n// such a way that makes some words unsearchable using a search\n// string.\nlunr.QueryLexer.termSeparator = lunr.tokenizer.separator\n\nlunr.QueryLexer.lexText = function (lexer) {\n while (true) {\n var char = lexer.next()\n\n if (char == lunr.QueryLexer.EOS) {\n return lunr.QueryLexer.lexEOS\n }\n\n // Escape character is '\\'\n if (char.charCodeAt(0) == 92) {\n lexer.escapeCharacter()\n continue\n }\n\n if (char == \":\") {\n return lunr.QueryLexer.lexField\n }\n\n if (char == \"~\") {\n lexer.backup()\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n return lunr.QueryLexer.lexEditDistance\n }\n\n if (char == \"^\") {\n lexer.backup()\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n return lunr.QueryLexer.lexBoost\n }\n\n // \"+\" indicates term presence is required\n // checking for length to ensure that only\n // leading \"+\" are considered\n if (char == \"+\" && lexer.width() === 1) {\n lexer.emit(lunr.QueryLexer.PRESENCE)\n return lunr.QueryLexer.lexText\n }\n\n // \"-\" indicates term presence is prohibited\n // checking for length to ensure that only\n // leading \"-\" are considered\n if (char == \"-\" && lexer.width() === 1) {\n lexer.emit(lunr.QueryLexer.PRESENCE)\n return lunr.QueryLexer.lexText\n }\n\n if (char.match(lunr.QueryLexer.termSeparator)) {\n return lunr.QueryLexer.lexTerm\n }\n }\n}\n\nlunr.QueryParser = function (str, query) {\n this.lexer = new lunr.QueryLexer (str)\n this.query = query\n this.currentClause = {}\n this.lexemeIdx = 0\n}\n\nlunr.QueryParser.prototype.parse = function () {\n this.lexer.run()\n this.lexemes = this.lexer.lexemes\n\n var state = lunr.QueryParser.parseClause\n\n while (state) {\n state = state(this)\n }\n\n return this.query\n}\n\nlunr.QueryParser.prototype.peekLexeme = function () {\n return this.lexemes[this.lexemeIdx]\n}\n\nlunr.QueryParser.prototype.consumeLexeme = function () {\n var lexeme = this.peekLexeme()\n this.lexemeIdx += 1\n return lexeme\n}\n\nlunr.QueryParser.prototype.nextClause = function () {\n var completedClause = this.currentClause\n this.query.clause(completedClause)\n this.currentClause = {}\n}\n\nlunr.QueryParser.parseClause = function (parser) {\n var lexeme = parser.peekLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n switch (lexeme.type) {\n case lunr.QueryLexer.PRESENCE:\n return lunr.QueryParser.parsePresence\n case lunr.QueryLexer.FIELD:\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expected either a field or a term, found \" + lexeme.type\n\n if (lexeme.str.length >= 1) {\n errorMessage += \" with value '\" + lexeme.str + \"'\"\n }\n\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n}\n\nlunr.QueryParser.parsePresence = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n switch (lexeme.str) {\n case \"-\":\n parser.currentClause.presence = lunr.Query.presence.PROHIBITED\n break\n case \"+\":\n parser.currentClause.presence = lunr.Query.presence.REQUIRED\n break\n default:\n var errorMessage = \"unrecognised presence operator'\" + lexeme.str + \"'\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n var errorMessage = \"expecting term or field, found nothing\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.FIELD:\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expecting term or field, found '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseField = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n if (parser.query.allFields.indexOf(lexeme.str) == -1) {\n var possibleFields = parser.query.allFields.map(function (f) { return \"'\" + f + \"'\" }).join(', '),\n errorMessage = \"unrecognised field '\" + lexeme.str + \"', possible fields: \" + possibleFields\n\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.fields = [lexeme.str]\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n var errorMessage = \"expecting term, found nothing\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expecting term, found '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseTerm = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n parser.currentClause.term = lexeme.str.toLowerCase()\n\n if (lexeme.str.indexOf(\"*\") != -1) {\n parser.currentClause.usePipeline = false\n }\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseEditDistance = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n var editDistance = parseInt(lexeme.str, 10)\n\n if (isNaN(editDistance)) {\n var errorMessage = \"edit distance must be numeric\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.editDistance = editDistance\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseBoost = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n var boost = parseInt(lexeme.str, 10)\n\n if (isNaN(boost)) {\n var errorMessage = \"boost must be numeric\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.boost = boost\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\n /**\n * export the module via AMD, CommonJS or as a browser global\n * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js\n */\n ;(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(factory)\n } else if (typeof exports === 'object') {\n /**\n * Node. Does not work with strict CommonJS, but\n * only CommonJS-like enviroments that support module.exports,\n * like Node.\n */\n module.exports = factory()\n } else {\n // Browser globals (root is window)\n root.lunr = factory()\n }\n }(this, function () {\n /**\n * Just return a value to define the module export.\n * This example returns an object, but the module\n * can return a function as the exported value.\n */\n return lunr\n }))\n})();\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","module.exports = false;\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","module.exports = {};\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\nvar aFunction = require('../internals/a-function');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n};\n\n// 25.4.1.5 NewPromiseCapability(C)\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.6.5',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\n var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\n var iterator, iterFn, index, length, result, next, step;\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = AS_ENTRIES\n ? boundFunction(anObject(step = iterable[index])[0], step[1])\n : boundFunction(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n\niterate.stop = function (result) {\n return new Result(true, result);\n};\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\nvar bind = require('../internals/function-bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (classof(process) == 'process') {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n typeof postMessage == 'function' &&\n !global.importScripts &&\n !fails(post) &&\n location.protocol !== 'file:'\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","require('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/web.dom-collections.iterator');\nrequire('../../modules/es.promise');\nrequire('../../modules/es.promise.all-settled');\nrequire('../../modules/es.promise.finally');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Promise;\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\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\nmodule.exports = g;\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n // eslint-disable-next-line no-undef\n && !Symbol.sham\n // eslint-disable-next-line no-undef\n && typeof Symbol.iterator == 'symbol';\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\nvar anInstance = require('../internals/an-instance');\nvar classof = require('../internals/classof-raw');\nvar inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar PromiseConstructor = NativePromise;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar $fetch = getBuiltIn('fetch');\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar IS_NODE = classof(process) == 'process';\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n if (!GLOBAL_CORE_JS_PROMISE) {\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (V8_VERSION === 66) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n if (!IS_NODE && typeof PromiseRejectionEvent != 'function') return true;\n }\n // We need Promise#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromiseConstructor.prototype['finally']) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = PromiseConstructor.resolve(1);\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n return !(promise.then(function () { /* empty */ }) instanceof FakePromise);\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (promise, state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(promise, state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n }\n state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(promise, state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (handler = global['on' + name]) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (promise, state) {\n task.call(global, function () {\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (promise, state) {\n task.call(global, function () {\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, promise, state, unwrap) {\n return function (value) {\n fn(promise, state, value, unwrap);\n };\n};\n\nvar internalReject = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(promise, state, true);\n};\n\nvar internalResolve = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n then.call(value,\n bind(internalResolve, promise, wrapper, state),\n bind(internalReject, promise, wrapper, state)\n );\n } catch (error) {\n internalReject(promise, wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(promise, state, false);\n }\n } catch (error) {\n internalReject(promise, { done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, this, state), bind(internalReject, this, state));\n } catch (error) {\n internalReject(this, state, error);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n // `Promise.prototype.then` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(this, state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, promise, state);\n this.reject = bind(internalReject, promise, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && typeof NativePromise == 'function') {\n nativeThen = NativePromise.prototype.then;\n\n // wrap native Promise#then for native async functions\n redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n nativeThen.call(that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n\n // wrap fetch result\n if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\n // eslint-disable-next-line no-unused-vars\n fetch: function fetch(input /* , init */) {\n return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\n }\n });\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.github.io/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n capability.reject.call(undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.github.io/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.github.io/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n $promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.github.io/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var anObject = require('../internals/an-object');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\n throw error;\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar classof = require('../internals/classof-raw');\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar IS_NODE = classof(process) == 'process';\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n } else if (MutationObserver && !IS_IOS) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n then = promise.then;\n notify = function () {\n then.call(promise, flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\n// `Promise.allSettled` method\n// https://github.com/tc39/proposal-promise-allSettled\n$({ target: 'Promise', stat: true }, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'fulfilled', value: value };\n --remaining || resolve(values);\n }, function (e) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'rejected', reason: e };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar redefine = require('../internals/redefine');\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromise && fails(function () {\n NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.github.io/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// patch native Promise.prototype for native async functions\nif (!IS_PURE && typeof NativePromise == 'function' && !NativePromise.prototype['finally']) {\n redefine(NativePromise.prototype, 'finally', getBuiltIn('Promise').prototype['finally']);\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import * as lunr from 'lunr';\n\ntry {\n // tslint:disable-next-line\n require('core-js/es/promise'); // bundle into worker\n\n} catch (_) {// nope\n}\n/* just for better typings */\n\n\nexport default class Worker {\n add: typeof add = add;\n done = done;\n search: typeof search = search;\n toJS = toJS;\n load = load;\n dispose = dispose;\n}\nexport interface SearchDocument {\n title: string;\n description: string;\n id: string;\n}\nexport interface SearchResult {\n meta: T;\n score: number;\n}\nlet store: any[] = [];\nlunr.tokenizer.separator = /\\s+/;\nlet builder: lunr.Builder;\nlet resolveIndex: (v: lunr.Index) => void;\nlet index: Promise;\n\nfunction initEmpty() {\n builder = new lunr.Builder();\n builder.field('title');\n builder.field('description');\n builder.ref('ref');\n builder.pipeline.add(lunr.trimmer, lunr.stopWordFilter, lunr.stemmer);\n index = new Promise(resolve => {\n resolveIndex = resolve;\n });\n}\n\ninitEmpty();\n\nconst expandTerm = term => '*' + lunr.stemmer(new lunr.Token(term, {})) + '*';\n\nexport function add(title: string, description: string, meta?: T) {\n const ref = store.push(meta) - 1;\n const item = {\n title: title.toLowerCase(),\n description: description.toLowerCase(),\n ref\n };\n builder.add(item);\n}\nexport async function done() {\n resolveIndex(builder.build());\n}\nexport async function toJS() {\n return {\n store,\n index: (await index).toJSON()\n };\n}\nexport async function load(state: any) {\n store = state.store;\n resolveIndex(lunr.Index.load(state.index));\n}\nexport async function dispose() {\n store = [];\n initEmpty();\n}\nexport async function search(q: string, limit = 0): Promise>> {\n if (q.trim().length === 0) {\n return [];\n }\n\n let searchResults = (await index).query(t => {\n q.trim().toLowerCase().split(/\\s+/).forEach(term => {\n const exp = expandTerm(term);\n t.term(exp, {});\n });\n });\n\n if (limit > 0) {\n searchResults = searchResults.slice(0, limit);\n }\n\n return searchResults.map(res => ({\n meta: store[res.ref],\n score: res.score\n }));\n}"],"sourceRoot":""} \ No newline at end of file diff --git a/bundles/redoc.lib.js b/bundles/redoc.lib.js new file mode 100644 index 00000000..655181ac --- /dev/null +++ b/bundles/redoc.lib.js @@ -0,0 +1,14845 @@ +/*! + * ReDoc - OpenAPI/Swagger-generated API Reference Documentation + * ------------------------------------------------------------- + * Version: "2.0.0-rc.37" + * Repo: https://github.com/Redocly/redoc + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else if(typeof exports === 'object') + exports["Redoc"] = factory(); + else + root["Redoc"] = factory(); +})(this, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 85); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports) { + +module.exports = require("react"); + +/***/ }), +/* 1 */ +/***/ (function(module, exports) { + +module.exports = require("tslib"); + +/***/ }), +/* 2 */ +/***/ (function(module, exports) { + +module.exports = require("polished"); + +/***/ }), +/* 3 */ +/***/ (function(module, exports) { + +module.exports = require("mobx-react"); + +/***/ }), +/* 4 */ +/***/ (function(module, exports) { + +module.exports = require("mobx"); + +/***/ }), +/* 5 */ +/***/ (function(module, exports) { + +module.exports = require("url"); + +/***/ }), +/* 6 */ +/***/ (function(module, exports) { + +module.exports = require("json-pointer"); + +/***/ }), +/* 7 */ +/***/ (function(module, exports) { + +module.exports = require("lunr"); + +/***/ }), +/* 8 */ +/***/ (function(module, exports) { + +module.exports = require("decko"); + +/***/ }), +/* 9 */ +/***/ (function(module, exports) { + +module.exports = require("react-tabs"); + +/***/ }), +/* 10 */ +/***/ (function(module, exports) { + +module.exports = require("prismjs"); + +/***/ }), +/* 11 */ +/***/ (function(module, exports) { + +var g; + +// This works in non-strict mode +g = (function() { + return this; +})(); + +try { + // This works if eval is allowed (see CSP) + g = g || new Function("return this")(); +} catch (e) { + // This works if the window reference is available + if (typeof window === "object") g = window; +} + +// g can still be undefined, but nothing to do about it... +// We return undefined, instead of nothing here, so it's +// easier to handle this case. if(!global) { ...} + +module.exports = g; + + +/***/ }), +/* 12 */ +/***/ (function(module, exports) { + +module.exports = require("prop-types"); + +/***/ }), +/* 13 */ +/***/ (function(module, exports) { + +module.exports = require("marked"); + +/***/ }), +/* 14 */ +/***/ (function(module, exports) { + +// shim for using process in browser +var process = module.exports = {}; + +// cached from whatever global is present so that test runners that stub it +// don't break things. But we need to wrap it in a try catch in case it is +// wrapped in strict mode code which doesn't define any globals. It's inside a +// function because try/catches deoptimize in certain engines. + +var cachedSetTimeout; +var cachedClearTimeout; + +function defaultSetTimout() { + throw new Error('setTimeout has not been defined'); +} +function defaultClearTimeout () { + throw new Error('clearTimeout has not been defined'); +} +(function () { + try { + if (typeof setTimeout === 'function') { + cachedSetTimeout = setTimeout; + } else { + cachedSetTimeout = defaultSetTimout; + } + } catch (e) { + cachedSetTimeout = defaultSetTimout; + } + try { + if (typeof clearTimeout === 'function') { + cachedClearTimeout = clearTimeout; + } else { + cachedClearTimeout = defaultClearTimeout; + } + } catch (e) { + cachedClearTimeout = defaultClearTimeout; + } +} ()) +function runTimeout(fun) { + if (cachedSetTimeout === setTimeout) { + //normal enviroments in sane situations + return setTimeout(fun, 0); + } + // if setTimeout wasn't available but was latter defined + if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { + cachedSetTimeout = setTimeout; + return setTimeout(fun, 0); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedSetTimeout(fun, 0); + } catch(e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedSetTimeout.call(null, fun, 0); + } catch(e){ + // 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 + return cachedSetTimeout.call(this, fun, 0); + } + } + + +} +function runClearTimeout(marker) { + if (cachedClearTimeout === clearTimeout) { + //normal enviroments in sane situations + return clearTimeout(marker); + } + // if clearTimeout wasn't available but was latter defined + if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { + cachedClearTimeout = clearTimeout; + return clearTimeout(marker); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedClearTimeout(marker); + } catch (e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedClearTimeout.call(null, marker); + } catch (e){ + // 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. + // Some versions of I.E. have different rules for clearTimeout vs setTimeout + return cachedClearTimeout.call(this, marker); + } + } + + + +} +var queue = []; +var draining = false; +var currentQueue; +var queueIndex = -1; + +function cleanUpNextTick() { + if (!draining || !currentQueue) { + return; + } + draining = false; + if (currentQueue.length) { + queue = currentQueue.concat(queue); + } else { + queueIndex = -1; + } + if (queue.length) { + drainQueue(); + } +} + +function drainQueue() { + if (draining) { + return; + } + var timeout = runTimeout(cleanUpNextTick); + draining = true; + + var len = queue.length; + while(len) { + currentQueue = queue; + queue = []; + while (++queueIndex < len) { + if (currentQueue) { + currentQueue[queueIndex].run(); + } + } + queueIndex = -1; + len = queue.length; + } + currentQueue = null; + draining = false; + runClearTimeout(timeout); +} + +process.nextTick = function (fun) { + var args = new Array(arguments.length - 1); + if (arguments.length > 1) { + for (var i = 1; i < arguments.length; i++) { + args[i - 1] = arguments[i]; + } + } + queue.push(new Item(fun, args)); + if (queue.length === 1 && !draining) { + runTimeout(drainQueue); + } +}; + +// v8 likes predictible objects +function Item(fun, array) { + this.fun = fun; + this.array = array; +} +Item.prototype.run = function () { + this.fun.apply(null, this.array); +}; +process.title = 'browser'; +process.browser = true; +process.env = {}; +process.argv = []; +process.version = ''; // empty string to avoid regexp issues +process.versions = {}; + +function noop() {} + +process.on = noop; +process.addListener = noop; +process.once = noop; +process.off = noop; +process.removeListener = noop; +process.removeAllListeners = noop; +process.emit = noop; +process.prependListener = noop; +process.prependOnceListener = noop; + +process.listeners = function (name) { return [] } + +process.binding = function (name) { + throw new Error('process.binding is not supported'); +}; + +process.cwd = function () { return '/' }; +process.chdir = function (dir) { + throw new Error('process.chdir is not supported'); +}; +process.umask = function() { return 0; }; + + +/***/ }), +/* 15 */ +/***/ (function(module, exports) { + +module.exports = undefined; + +/***/ }), +/* 16 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +/** +* escapes JSON Pointer using ~0 for ~ and ~1 for / +* @param s the string to escape +* @return the escaped string +*/ +function jpescape(s) { + return s.replace(/\~/g, '~0').replace(/\//g, '~1'); +} +/** +* unescapes JSON Pointer using ~0 for ~ and ~1 for / +* @param s the string to unescape +* @return the unescaped string +*/ +function jpunescape(s) { + return s.replace(/\~1/g, '/').replace(/~0/g, '~'); +} +// JSON Pointer specification: http://tools.ietf.org/html/rfc6901 +/** +* from obj, return the property with a JSON Pointer prop, optionally setting it +* to newValue +* @param obj the object to point into +* @param prop the JSON Pointer or JSON Reference +* @param newValue optional value to set the property to +* @return the found property, or false +*/ +function jptr(obj, prop, newValue) { + if (typeof obj === 'undefined') + return false; + if (!prop || typeof prop !== 'string' || (prop === '#')) + return (typeof newValue !== 'undefined' ? newValue : obj); + if (prop.indexOf('#') >= 0) { + var parts = prop.split('#'); + var uri = parts[0]; + if (uri) + return false; // we do internal resolution only + prop = parts[1]; + prop = decodeURIComponent(prop.slice(1).split('+').join(' ')); + } + if (prop.startsWith('/')) + prop = prop.slice(1); + var components = prop.split('/'); + for (var i = 0; i < components.length; i++) { + components[i] = jpunescape(components[i]); + var setAndLast = (typeof newValue !== 'undefined') && (i == components.length - 1); + var index = parseInt(components[i], 10); + if (!Array.isArray(obj) || isNaN(index) || (index.toString() !== components[i])) { + index = (Array.isArray(obj) && components[i] === '-') ? -2 : -1; + } + else { + components[i] = (i > 0) ? components[i - 1] : ''; // backtrack to indexed property name + } + if ((index != -1) || obj.hasOwnProperty(components[i])) { + if (index >= 0) { + if (setAndLast) { + obj[index] = newValue; + } + obj = obj[index]; + } + else if (index === -2) { + if (setAndLast) { + if (Array.isArray(obj)) { + obj.push(newValue); + } + return newValue; + } + else + return undefined; + } + else { + if (setAndLast) { + obj[components[i]] = newValue; + } + obj = obj[components[i]]; + } + } + else { + if ((typeof newValue !== 'undefined') && (typeof obj === 'object') && + (!Array.isArray(obj))) { + obj[components[i]] = (setAndLast ? newValue : ((components[i + 1] === '0' || components[i + 1] === '-') ? [] : {})); + obj = obj[components[i]]; + } + else + return false; + } + } + return obj; +} +module.exports = { + jptr: jptr, + jpescape: jpescape, + jpunescape: jpunescape +}; + + +/***/ }), +/* 17 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var tslib_1 = __webpack_require__(1); +/** +* a collection of cloning functions +*/ +/** +* a no-op placeholder which returns the given object unchanged +* useful for when a clone function needs to be passed but cloning is not +* required +* @param obj the input object +* @return the input object, unchanged +*/ +function nop(obj) { + return obj; +} +/** +* clones the given object using JSON.parse and JSON.stringify +* @param obj the object to clone +* @return the cloned object +*/ +function clone(obj) { + return JSON.parse(JSON.stringify(obj)); +} +/** +* clones the given object's properties shallowly, ignores properties from prototype +* @param obj the object to clone +* @return the cloned object +*/ +function shallowClone(obj) { + var result = {}; + for (var p in obj) { + if (obj.hasOwnProperty(p)) { + result[p] = obj[p]; + } + } + return result; +} +/** +* clones the given object's properties deeply, ignores properties from prototype +* @param obj the object to clone +* @return the cloned object +*/ +function deepClone(obj) { + var result = Array.isArray(obj) ? [] : {}; + for (var p in obj) { + if (obj.hasOwnProperty(p) || Array.isArray(obj)) { + result[p] = (typeof obj[p] === 'object') ? deepClone(obj[p]) : obj[p]; + } + } + return result; +} +/** +* clones the given object's properties shallowly, using Object.assign +* @param obj the object to clone +* @return the cloned object +*/ +function fastClone(obj) { + return Object.assign({}, obj); +} +/** +* Source: stackoverflow http://bit.ly/2A1Kha6 +*/ +function circularClone(obj, hash) { + if (!hash) + hash = new WeakMap(); + // Do not try to clone primitives or functions + if (Object(obj) !== obj || obj instanceof Function) + return obj; + if (hash.has(obj)) + return hash.get(obj); // Cyclic reference + try { // Try to run constructor (without arguments, as we don't know them) + var result = new obj.constructor(); + } + catch (e) { // Constructor failed, create object without running the constructor + result = Object.create(Object.getPrototypeOf(obj)); + } + // Optional: support for some standard constructors (extend as desired) + /*if (obj instanceof Map) + Array.from(obj, ([key, val]) => result.set(circularClone(key, hash), + circularClone(val, hash)) ); + else if (obj instanceof Set) + Array.from(obj, (key) => result.add(circularClone(key, hash)) ); + */ + // Register in hash + hash.set(obj, result); + // Clone and assign enumerable own properties recursively + return Object.assign.apply(Object, tslib_1.__spreadArrays([result], Object.keys(obj).map(function (key) { + var _a; + return (_a = {}, _a[key] = circularClone(obj[key], hash), _a); + }))); +} +module.exports = { + nop: nop, + clone: clone, + shallowClone: shallowClone, + deepClone: deepClone, + fastClone: fastClone, + circularClone: circularClone +}; + + +/***/ }), +/* 18 */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(process) {// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1, +// backported and transplited with Babel, with backwards-compat fixes + +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +// resolves . and .. elements in a path array with directory names there +// must be no slashes, empty elements, or device names (c:\) in the array +// (so also no leading and trailing slashes - it does not distinguish +// relative and absolute paths) +function normalizeArray(parts, allowAboveRoot) { + // if the path tries to go above the root, `up` ends up > 0 + var up = 0; + for (var i = parts.length - 1; i >= 0; i--) { + var last = parts[i]; + if (last === '.') { + parts.splice(i, 1); + } else if (last === '..') { + parts.splice(i, 1); + up++; + } else if (up) { + parts.splice(i, 1); + up--; + } + } + + // if the path is allowed to go above the root, restore leading ..s + if (allowAboveRoot) { + for (; up--; up) { + parts.unshift('..'); + } + } + + return parts; +} + +// path.resolve([from ...], to) +// posix version +exports.resolve = function() { + var resolvedPath = '', + resolvedAbsolute = false; + + for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { + var path = (i >= 0) ? arguments[i] : process.cwd(); + + // Skip empty and invalid entries + if (typeof path !== 'string') { + throw new TypeError('Arguments to path.resolve must be strings'); + } else if (!path) { + continue; + } + + resolvedPath = path + '/' + resolvedPath; + resolvedAbsolute = path.charAt(0) === '/'; + } + + // At this point the path should be resolved to a full absolute path, but + // handle relative paths to be safe (might happen when process.cwd() fails) + + // Normalize the path + resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) { + return !!p; + }), !resolvedAbsolute).join('/'); + + return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; +}; + +// path.normalize(path) +// posix version +exports.normalize = function(path) { + var isAbsolute = exports.isAbsolute(path), + trailingSlash = substr(path, -1) === '/'; + + // Normalize the path + path = normalizeArray(filter(path.split('/'), function(p) { + return !!p; + }), !isAbsolute).join('/'); + + if (!path && !isAbsolute) { + path = '.'; + } + if (path && trailingSlash) { + path += '/'; + } + + return (isAbsolute ? '/' : '') + path; +}; + +// posix version +exports.isAbsolute = function(path) { + return path.charAt(0) === '/'; +}; + +// posix version +exports.join = function() { + var paths = Array.prototype.slice.call(arguments, 0); + return exports.normalize(filter(paths, function(p, index) { + if (typeof p !== 'string') { + throw new TypeError('Arguments to path.join must be strings'); + } + return p; + }).join('/')); +}; + + +// path.relative(from, to) +// posix version +exports.relative = function(from, to) { + from = exports.resolve(from).substr(1); + to = exports.resolve(to).substr(1); + + function trim(arr) { + var start = 0; + for (; start < arr.length; start++) { + if (arr[start] !== '') break; + } + + var end = arr.length - 1; + for (; end >= 0; end--) { + if (arr[end] !== '') break; + } + + if (start > end) return []; + return arr.slice(start, end - start + 1); + } + + var fromParts = trim(from.split('/')); + var toParts = trim(to.split('/')); + + var length = Math.min(fromParts.length, toParts.length); + var samePartsLength = length; + for (var i = 0; i < length; i++) { + if (fromParts[i] !== toParts[i]) { + samePartsLength = i; + break; + } + } + + var outputParts = []; + for (var i = samePartsLength; i < fromParts.length; i++) { + outputParts.push('..'); + } + + outputParts = outputParts.concat(toParts.slice(samePartsLength)); + + return outputParts.join('/'); +}; + +exports.sep = '/'; +exports.delimiter = ':'; + +exports.dirname = function (path) { + if (typeof path !== 'string') path = path + ''; + if (path.length === 0) return '.'; + var code = path.charCodeAt(0); + var hasRoot = code === 47 /*/*/; + var end = -1; + var matchedSlash = true; + for (var i = path.length - 1; i >= 1; --i) { + code = path.charCodeAt(i); + if (code === 47 /*/*/) { + if (!matchedSlash) { + end = i; + break; + } + } else { + // We saw the first non-path separator + matchedSlash = false; + } + } + + if (end === -1) return hasRoot ? '/' : '.'; + if (hasRoot && end === 1) { + // return '//'; + // Backwards-compat fix: + return '/'; + } + return path.slice(0, end); +}; + +function basename(path) { + if (typeof path !== 'string') path = path + ''; + + var start = 0; + var end = -1; + var matchedSlash = true; + var i; + + for (i = path.length - 1; i >= 0; --i) { + if (path.charCodeAt(i) === 47 /*/*/) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + start = i + 1; + break; + } + } else if (end === -1) { + // We saw the first non-path separator, mark this as the end of our + // path component + matchedSlash = false; + end = i + 1; + } + } + + if (end === -1) return ''; + return path.slice(start, end); +} + +// Uses a mixed approach for backwards-compatibility, as ext behavior changed +// in new Node.js versions, so only basename() above is backported here +exports.basename = function (path, ext) { + var f = basename(path); + if (ext && f.substr(-1 * ext.length) === ext) { + f = f.substr(0, f.length - ext.length); + } + return f; +}; + +exports.extname = function (path) { + if (typeof path !== 'string') path = path + ''; + var startDot = -1; + var startPart = 0; + var end = -1; + var matchedSlash = true; + // Track the state of characters (if any) we see before our first dot and + // after any path separator we find + var preDotState = 0; + for (var i = path.length - 1; i >= 0; --i) { + var code = path.charCodeAt(i); + if (code === 47 /*/*/) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + startPart = i + 1; + break; + } + continue; + } + if (end === -1) { + // We saw the first non-path separator, mark this as the end of our + // extension + matchedSlash = false; + end = i + 1; + } + if (code === 46 /*.*/) { + // If this is our first dot, mark it as the start of our extension + if (startDot === -1) + startDot = i; + else if (preDotState !== 1) + preDotState = 1; + } else if (startDot !== -1) { + // We saw a non-dot and non-path separator before our dot, so we should + // have a good chance at having a non-empty extension + preDotState = -1; + } + } + + if (startDot === -1 || end === -1 || + // We saw a non-dot character immediately before the dot + preDotState === 0 || + // The (right-most) trimmed path component is exactly '..' + preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) { + return ''; + } + return path.slice(startDot, end); +}; + +function filter (xs, f) { + if (xs.filter) return xs.filter(f); + var res = []; + for (var i = 0; i < xs.length; i++) { + if (f(xs[i], i, xs)) res.push(xs[i]); + } + return res; +} + +// String.prototype.substr - negative index don't work in IE8 +var substr = 'ab'.substr(-1) === 'b' + ? function (str, start, len) { return str.substr(start, len) } + : function (str, start, len) { + if (start < 0) start = str.length + start; + return str.substr(start, len); + } +; + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(14))) + +/***/ }), +/* 19 */ +/***/ (function(module, exports) { + +module.exports = require("eventemitter3"); + +/***/ }), +/* 20 */ +/***/ (function(module, exports) { + +module.exports = require("url-template"); + +/***/ }), +/* 21 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +function isRef(obj, key) { + return ((key === '$ref') && (!!obj && typeof obj[key] === 'string')); +} +module.exports = { + isRef: isRef +}; + + +/***/ }), +/* 22 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var jpescape = __webpack_require__(16).jpescape; +function defaultState() { + return { + path: '#', + depth: 0, + pkey: '', + parent: {}, + payload: {}, + seen: new WeakMap(), + identity: false, + identityDetection: false + }; +} +/** +* recurses through the properties of an object, given an optional starting state +* anything you pass in state.payload is passed to the callback each time +* @param object the object to recurse through +* @param state optional starting state, can be set to null or {} +* @param callback the function which receives object,key,state on each property +*/ +function recurse(object, state, callback) { + if (!state) + state = { depth: 0 }; + if (!state.depth) { + state = Object.assign({}, defaultState(), state); + } + if (typeof object !== 'object') + return; + var oPath = state.path; + for (var key in object) { + state.key = key; + state.path = state.path + '/' + encodeURIComponent(jpescape(key)); + state.identityPath = state.seen.get(object[key]); + state.identity = (typeof state.identityPath !== 'undefined'); + if (object.hasOwnProperty(key)) { + callback(object, key, state); + } + if ((typeof object[key] === 'object') && (!state.identity)) { + if (state.identityDetection && !Array.isArray(object[key]) && object[key] !== null) { + state.seen.set(object[key], state.path); + } + var newState = {}; + newState.parent = object; + newState.path = state.path; + newState.depth = state.depth ? state.depth + 1 : 1; + newState.pkey = key; + newState.payload = state.payload; + newState.seen = state.seen; + newState.identity = false; + newState.identityDetection = state.identityDetection; + recurse(object[key], newState, callback); + } + state.path = oPath; + } +} +module.exports = { + recurse: recurse +}; + + +/***/ }), +/* 23 */ +/***/ (function(module, exports) { + +module.exports = require("mark.js"); + +/***/ }), +/* 24 */ +/***/ (function(module, exports) { + +module.exports = require("openapi-sampler"); + +/***/ }), +/* 25 */ +/***/ (function(module, exports) { + +module.exports = require("perfect-scrollbar"); + +/***/ }), +/* 26 */ +/***/ (function(module, exports) { + +module.exports = require("prism-react-renderer"); + +/***/ }), +/* 27 */ +/***/ (function(module, exports) { + + + +/***/ }), +/* 28 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) { +var sjs = __webpack_require__(47); +var colour = process.env.NODE_DISABLE_COLORS ? + { red: '', yellow: '', green: '', normal: '' } : + { red: '\x1b[31m', yellow: '\x1b[33;1m', green: '\x1b[32m', normal: '\x1b[0m' }; +function uniqueOnly(value, index, self) { + return self.indexOf(value) === index; +} +function hasDuplicates(array) { + return (new Set(array)).size !== array.length; +} +function allSame(array) { + return (new Set(array)).size <= 1; +} +function deepEquals(obj1, obj2) { + function _equals(obj1, obj2) { + return sjs.stringify(obj1) === sjs.stringify(Object.assign({}, obj1, obj2)); + } + return _equals(obj1, obj2) && _equals(obj2, obj1); +} +function compressArray(arr) { + var result = []; + var _loop_1 = function (candidate) { + var dupe = result.find(function (e, i, a) { + return deepEquals(e, candidate); + }); + if (!dupe) + result.push(candidate); + }; + for (var _i = 0, arr_1 = arr; _i < arr_1.length; _i++) { + var candidate = arr_1[_i]; + _loop_1(candidate); + } + return result; +} +function distinctArray(arr) { + return (arr.length === compressArray(arr).length); +} +function firstDupe(arr) { + return arr.find(function (e, i, a) { + return arr.indexOf(e) < i; + }); +} +/** + * simple hash implementation based on https://stackoverflow.com/a/7616484/1749888 + * @param {string} s - string to hash + * @returns {number} numerical hash code + */ +function hash(s) { + var hash = 0; + var chr; + if (s.length === 0) + return hash; + for (var i = 0; i < s.length; i++) { + chr = s.charCodeAt(i); + hash = ((hash << 5) - hash) + chr; + hash |= 0; // Convert to 32bit integer + } + return hash; +} +String.prototype.toCamelCase = function camelize() { + return this.toLowerCase().replace(/[-_ \/\.](.)/g, function (match, group1) { + return group1.toUpperCase(); + }); +}; +var parameterTypeProperties = [ + 'format', + 'minimum', + 'maximum', + 'exclusiveMinimum', + 'exclusiveMaximum', + 'minLength', + 'maxLength', + 'multipleOf', + 'minItems', + 'maxItems', + 'uniqueItems', + 'minProperties', + 'maxProperties', + 'additionalProperties', + 'pattern', + 'enum', + 'default' +]; +var arrayProperties = [ + 'items', + 'minItems', + 'maxItems', + 'uniqueItems' +]; +var httpMethods = [ + 'get', + 'post', + 'put', + 'delete', + 'patch', + 'head', + 'options', + 'trace' +]; +function sanitise(s) { + s = s.replace('[]', 'Array'); + var components = s.split('/'); + components[0] = components[0].replace(/[^A-Za-z0-9_\-\.]+|\s+/gm, '_'); + return components.join('/'); +} +function sanitiseAll(s) { + return sanitise(s.split('/').join('_')); +} +module.exports = { + colour: colour, + uniqueOnly: uniqueOnly, + hasDuplicates: hasDuplicates, + allSame: allSame, + distinctArray: distinctArray, + firstDupe: firstDupe, + hash: hash, + parameterTypeProperties: parameterTypeProperties, + arrayProperties: arrayProperties, + httpMethods: httpMethods, + sanitise: sanitise, + sanitiseAll: sanitiseAll +}; + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(14))) + +/***/ }), +/* 29 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) {/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */ +/* eslint-disable no-proto */ + + + +var base64 = __webpack_require__(52) +var ieee754 = __webpack_require__(53) +var isArray = __webpack_require__(54) + +exports.Buffer = Buffer +exports.SlowBuffer = SlowBuffer +exports.INSPECT_MAX_BYTES = 50 + +/** + * If `Buffer.TYPED_ARRAY_SUPPORT`: + * === true Use Uint8Array implementation (fastest) + * === false Use Object implementation (most compatible, even IE6) + * + * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, + * Opera 11.6+, iOS 4.2+. + * + * Due to various browser bugs, sometimes the Object implementation will be used even + * when the browser supports typed arrays. + * + * Note: + * + * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances, + * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438. + * + * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function. + * + * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of + * incorrect length in some situations. + + * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they + * get the Object implementation, which is slower but behaves correctly. + */ +Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined + ? global.TYPED_ARRAY_SUPPORT + : typedArraySupport() + +/* + * Export kMaxLength after typed array support is determined. + */ +exports.kMaxLength = kMaxLength() + +function typedArraySupport () { + try { + var arr = new Uint8Array(1) + arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }} + return arr.foo() === 42 && // typed array instances can be augmented + typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray` + arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray` + } catch (e) { + return false + } +} + +function kMaxLength () { + return Buffer.TYPED_ARRAY_SUPPORT + ? 0x7fffffff + : 0x3fffffff +} + +function createBuffer (that, length) { + if (kMaxLength() < length) { + throw new RangeError('Invalid typed array length') + } + if (Buffer.TYPED_ARRAY_SUPPORT) { + // Return an augmented `Uint8Array` instance, for best performance + that = new Uint8Array(length) + that.__proto__ = Buffer.prototype + } else { + // Fallback: Return an object instance of the Buffer class + if (that === null) { + that = new Buffer(length) + } + that.length = length + } + + return that +} + +/** + * The Buffer constructor returns instances of `Uint8Array` that have their + * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of + * `Uint8Array`, so the returned instances will have all the node `Buffer` methods + * and the `Uint8Array` methods. Square bracket notation works as expected -- it + * returns a single octet. + * + * The `Uint8Array` prototype remains unmodified. + */ + +function Buffer (arg, encodingOrOffset, length) { + if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) { + return new Buffer(arg, encodingOrOffset, length) + } + + // Common case. + if (typeof arg === 'number') { + if (typeof encodingOrOffset === 'string') { + throw new Error( + 'If encoding is specified then the first argument must be a string' + ) + } + return allocUnsafe(this, arg) + } + return from(this, arg, encodingOrOffset, length) +} + +Buffer.poolSize = 8192 // not used by this implementation + +// TODO: Legacy, not needed anymore. Remove in next major version. +Buffer._augment = function (arr) { + arr.__proto__ = Buffer.prototype + return arr +} + +function from (that, value, encodingOrOffset, length) { + if (typeof value === 'number') { + throw new TypeError('"value" argument must not be a number') + } + + if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { + return fromArrayBuffer(that, value, encodingOrOffset, length) + } + + if (typeof value === 'string') { + return fromString(that, value, encodingOrOffset) + } + + return fromObject(that, value) +} + +/** + * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError + * if value is a number. + * Buffer.from(str[, encoding]) + * Buffer.from(array) + * Buffer.from(buffer) + * Buffer.from(arrayBuffer[, byteOffset[, length]]) + **/ +Buffer.from = function (value, encodingOrOffset, length) { + return from(null, value, encodingOrOffset, length) +} + +if (Buffer.TYPED_ARRAY_SUPPORT) { + Buffer.prototype.__proto__ = Uint8Array.prototype + Buffer.__proto__ = Uint8Array + if (typeof Symbol !== 'undefined' && Symbol.species && + Buffer[Symbol.species] === Buffer) { + // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97 + Object.defineProperty(Buffer, Symbol.species, { + value: null, + configurable: true + }) + } +} + +function assertSize (size) { + if (typeof size !== 'number') { + throw new TypeError('"size" argument must be a number') + } else if (size < 0) { + throw new RangeError('"size" argument must not be negative') + } +} + +function alloc (that, size, fill, encoding) { + assertSize(size) + if (size <= 0) { + return createBuffer(that, size) + } + if (fill !== undefined) { + // Only pay attention to encoding if it's a string. This + // prevents accidentally sending in a number that would + // be interpretted as a start offset. + return typeof encoding === 'string' + ? createBuffer(that, size).fill(fill, encoding) + : createBuffer(that, size).fill(fill) + } + return createBuffer(that, size) +} + +/** + * Creates a new filled Buffer instance. + * alloc(size[, fill[, encoding]]) + **/ +Buffer.alloc = function (size, fill, encoding) { + return alloc(null, size, fill, encoding) +} + +function allocUnsafe (that, size) { + assertSize(size) + that = createBuffer(that, size < 0 ? 0 : checked(size) | 0) + if (!Buffer.TYPED_ARRAY_SUPPORT) { + for (var i = 0; i < size; ++i) { + that[i] = 0 + } + } + return that +} + +/** + * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. + * */ +Buffer.allocUnsafe = function (size) { + return allocUnsafe(null, size) +} +/** + * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. + */ +Buffer.allocUnsafeSlow = function (size) { + return allocUnsafe(null, size) +} + +function fromString (that, string, encoding) { + if (typeof encoding !== 'string' || encoding === '') { + encoding = 'utf8' + } + + if (!Buffer.isEncoding(encoding)) { + throw new TypeError('"encoding" must be a valid string encoding') + } + + var length = byteLength(string, encoding) | 0 + that = createBuffer(that, length) + + var actual = that.write(string, encoding) + + if (actual !== length) { + // Writing a hex string, for example, that contains invalid characters will + // cause everything after the first invalid character to be ignored. (e.g. + // 'abxxcd' will be treated as 'ab') + that = that.slice(0, actual) + } + + return that +} + +function fromArrayLike (that, array) { + var length = array.length < 0 ? 0 : checked(array.length) | 0 + that = createBuffer(that, length) + for (var i = 0; i < length; i += 1) { + that[i] = array[i] & 255 + } + return that +} + +function fromArrayBuffer (that, array, byteOffset, length) { + array.byteLength // this throws if `array` is not a valid ArrayBuffer + + if (byteOffset < 0 || array.byteLength < byteOffset) { + throw new RangeError('\'offset\' is out of bounds') + } + + if (array.byteLength < byteOffset + (length || 0)) { + throw new RangeError('\'length\' is out of bounds') + } + + if (byteOffset === undefined && length === undefined) { + array = new Uint8Array(array) + } else if (length === undefined) { + array = new Uint8Array(array, byteOffset) + } else { + array = new Uint8Array(array, byteOffset, length) + } + + if (Buffer.TYPED_ARRAY_SUPPORT) { + // Return an augmented `Uint8Array` instance, for best performance + that = array + that.__proto__ = Buffer.prototype + } else { + // Fallback: Return an object instance of the Buffer class + that = fromArrayLike(that, array) + } + return that +} + +function fromObject (that, obj) { + if (Buffer.isBuffer(obj)) { + var len = checked(obj.length) | 0 + that = createBuffer(that, len) + + if (that.length === 0) { + return that + } + + obj.copy(that, 0, 0, len) + return that + } + + if (obj) { + if ((typeof ArrayBuffer !== 'undefined' && + obj.buffer instanceof ArrayBuffer) || 'length' in obj) { + if (typeof obj.length !== 'number' || isnan(obj.length)) { + return createBuffer(that, 0) + } + return fromArrayLike(that, obj) + } + + if (obj.type === 'Buffer' && isArray(obj.data)) { + return fromArrayLike(that, obj.data) + } + } + + throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.') +} + +function checked (length) { + // Note: cannot use `length < kMaxLength()` here because that fails when + // length is NaN (which is otherwise coerced to zero.) + if (length >= kMaxLength()) { + throw new RangeError('Attempt to allocate Buffer larger than maximum ' + + 'size: 0x' + kMaxLength().toString(16) + ' bytes') + } + return length | 0 +} + +function SlowBuffer (length) { + if (+length != length) { // eslint-disable-line eqeqeq + length = 0 + } + return Buffer.alloc(+length) +} + +Buffer.isBuffer = function isBuffer (b) { + return !!(b != null && b._isBuffer) +} + +Buffer.compare = function compare (a, b) { + if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { + throw new TypeError('Arguments must be Buffers') + } + + if (a === b) return 0 + + var x = a.length + var y = b.length + + for (var i = 0, len = Math.min(x, y); i < len; ++i) { + if (a[i] !== b[i]) { + x = a[i] + y = b[i] + break + } + } + + if (x < y) return -1 + if (y < x) return 1 + return 0 +} + +Buffer.isEncoding = function isEncoding (encoding) { + switch (String(encoding).toLowerCase()) { + case 'hex': + case 'utf8': + case 'utf-8': + case 'ascii': + case 'latin1': + case 'binary': + case 'base64': + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return true + default: + return false + } +} + +Buffer.concat = function concat (list, length) { + if (!isArray(list)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + + if (list.length === 0) { + return Buffer.alloc(0) + } + + var i + if (length === undefined) { + length = 0 + for (i = 0; i < list.length; ++i) { + length += list[i].length + } + } + + var buffer = Buffer.allocUnsafe(length) + var pos = 0 + for (i = 0; i < list.length; ++i) { + var buf = list[i] + if (!Buffer.isBuffer(buf)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + buf.copy(buffer, pos) + pos += buf.length + } + return buffer +} + +function byteLength (string, encoding) { + if (Buffer.isBuffer(string)) { + return string.length + } + if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && + (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) { + return string.byteLength + } + if (typeof string !== 'string') { + string = '' + string + } + + var len = string.length + if (len === 0) return 0 + + // Use a for loop to avoid recursion + var loweredCase = false + for (;;) { + switch (encoding) { + case 'ascii': + case 'latin1': + case 'binary': + return len + case 'utf8': + case 'utf-8': + case undefined: + return utf8ToBytes(string).length + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return len * 2 + case 'hex': + return len >>> 1 + case 'base64': + return base64ToBytes(string).length + default: + if (loweredCase) return utf8ToBytes(string).length // assume utf8 + encoding = ('' + encoding).toLowerCase() + loweredCase = true + } + } +} +Buffer.byteLength = byteLength + +function slowToString (encoding, start, end) { + var loweredCase = false + + // No need to verify that "this.length <= MAX_UINT32" since it's a read-only + // property of a typed array. + + // This behaves neither like String nor Uint8Array in that we set start/end + // to their upper/lower bounds if the value passed is out of range. + // undefined is handled specially as per ECMA-262 6th Edition, + // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. + if (start === undefined || start < 0) { + start = 0 + } + // Return early if start > this.length. Done here to prevent potential uint32 + // coercion fail below. + if (start > this.length) { + return '' + } + + if (end === undefined || end > this.length) { + end = this.length + } + + if (end <= 0) { + return '' + } + + // Force coersion to uint32. This will also coerce falsey/NaN values to 0. + end >>>= 0 + start >>>= 0 + + if (end <= start) { + return '' + } + + if (!encoding) encoding = 'utf8' + + while (true) { + switch (encoding) { + case 'hex': + return hexSlice(this, start, end) + + case 'utf8': + case 'utf-8': + return utf8Slice(this, start, end) + + case 'ascii': + return asciiSlice(this, start, end) + + case 'latin1': + case 'binary': + return latin1Slice(this, start, end) + + case 'base64': + return base64Slice(this, start, end) + + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return utf16leSlice(this, start, end) + + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) + encoding = (encoding + '').toLowerCase() + loweredCase = true + } + } +} + +// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect +// Buffer instances. +Buffer.prototype._isBuffer = true + +function swap (b, n, m) { + var i = b[n] + b[n] = b[m] + b[m] = i +} + +Buffer.prototype.swap16 = function swap16 () { + var len = this.length + if (len % 2 !== 0) { + throw new RangeError('Buffer size must be a multiple of 16-bits') + } + for (var i = 0; i < len; i += 2) { + swap(this, i, i + 1) + } + return this +} + +Buffer.prototype.swap32 = function swap32 () { + var len = this.length + if (len % 4 !== 0) { + throw new RangeError('Buffer size must be a multiple of 32-bits') + } + for (var i = 0; i < len; i += 4) { + swap(this, i, i + 3) + swap(this, i + 1, i + 2) + } + return this +} + +Buffer.prototype.swap64 = function swap64 () { + var len = this.length + if (len % 8 !== 0) { + throw new RangeError('Buffer size must be a multiple of 64-bits') + } + for (var i = 0; i < len; i += 8) { + swap(this, i, i + 7) + swap(this, i + 1, i + 6) + swap(this, i + 2, i + 5) + swap(this, i + 3, i + 4) + } + return this +} + +Buffer.prototype.toString = function toString () { + var length = this.length | 0 + if (length === 0) return '' + if (arguments.length === 0) return utf8Slice(this, 0, length) + return slowToString.apply(this, arguments) +} + +Buffer.prototype.equals = function equals (b) { + if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') + if (this === b) return true + return Buffer.compare(this, b) === 0 +} + +Buffer.prototype.inspect = function inspect () { + var str = '' + var max = exports.INSPECT_MAX_BYTES + if (this.length > 0) { + str = this.toString('hex', 0, max).match(/.{2}/g).join(' ') + if (this.length > max) str += ' ... ' + } + return '' +} + +Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) { + if (!Buffer.isBuffer(target)) { + throw new TypeError('Argument must be a Buffer') + } + + if (start === undefined) { + start = 0 + } + if (end === undefined) { + end = target ? target.length : 0 + } + if (thisStart === undefined) { + thisStart = 0 + } + if (thisEnd === undefined) { + thisEnd = this.length + } + + if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { + throw new RangeError('out of range index') + } + + if (thisStart >= thisEnd && start >= end) { + return 0 + } + if (thisStart >= thisEnd) { + return -1 + } + if (start >= end) { + return 1 + } + + start >>>= 0 + end >>>= 0 + thisStart >>>= 0 + thisEnd >>>= 0 + + if (this === target) return 0 + + var x = thisEnd - thisStart + var y = end - start + var len = Math.min(x, y) + + var thisCopy = this.slice(thisStart, thisEnd) + var targetCopy = target.slice(start, end) + + for (var i = 0; i < len; ++i) { + if (thisCopy[i] !== targetCopy[i]) { + x = thisCopy[i] + y = targetCopy[i] + break + } + } + + if (x < y) return -1 + if (y < x) return 1 + return 0 +} + +// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, +// OR the last index of `val` in `buffer` at offset <= `byteOffset`. +// +// Arguments: +// - buffer - a Buffer to search +// - val - a string, Buffer, or number +// - byteOffset - an index into `buffer`; will be clamped to an int32 +// - encoding - an optional encoding, relevant is val is a string +// - dir - true for indexOf, false for lastIndexOf +function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) { + // Empty buffer means no match + if (buffer.length === 0) return -1 + + // Normalize byteOffset + if (typeof byteOffset === 'string') { + encoding = byteOffset + byteOffset = 0 + } else if (byteOffset > 0x7fffffff) { + byteOffset = 0x7fffffff + } else if (byteOffset < -0x80000000) { + byteOffset = -0x80000000 + } + byteOffset = +byteOffset // Coerce to Number. + if (isNaN(byteOffset)) { + // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer + byteOffset = dir ? 0 : (buffer.length - 1) + } + + // Normalize byteOffset: negative offsets start from the end of the buffer + if (byteOffset < 0) byteOffset = buffer.length + byteOffset + if (byteOffset >= buffer.length) { + if (dir) return -1 + else byteOffset = buffer.length - 1 + } else if (byteOffset < 0) { + if (dir) byteOffset = 0 + else return -1 + } + + // Normalize val + if (typeof val === 'string') { + val = Buffer.from(val, encoding) + } + + // Finally, search either indexOf (if dir is true) or lastIndexOf + if (Buffer.isBuffer(val)) { + // Special case: looking for empty string/buffer always fails + if (val.length === 0) { + return -1 + } + return arrayIndexOf(buffer, val, byteOffset, encoding, dir) + } else if (typeof val === 'number') { + val = val & 0xFF // Search for a byte value [0-255] + if (Buffer.TYPED_ARRAY_SUPPORT && + typeof Uint8Array.prototype.indexOf === 'function') { + if (dir) { + return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) + } else { + return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) + } + } + return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir) + } + + throw new TypeError('val must be string, number or Buffer') +} + +function arrayIndexOf (arr, val, byteOffset, encoding, dir) { + var indexSize = 1 + var arrLength = arr.length + var valLength = val.length + + if (encoding !== undefined) { + encoding = String(encoding).toLowerCase() + if (encoding === 'ucs2' || encoding === 'ucs-2' || + encoding === 'utf16le' || encoding === 'utf-16le') { + if (arr.length < 2 || val.length < 2) { + return -1 + } + indexSize = 2 + arrLength /= 2 + valLength /= 2 + byteOffset /= 2 + } + } + + function read (buf, i) { + if (indexSize === 1) { + return buf[i] + } else { + return buf.readUInt16BE(i * indexSize) + } + } + + var i + if (dir) { + var foundIndex = -1 + for (i = byteOffset; i < arrLength; i++) { + if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { + if (foundIndex === -1) foundIndex = i + if (i - foundIndex + 1 === valLength) return foundIndex * indexSize + } else { + if (foundIndex !== -1) i -= i - foundIndex + foundIndex = -1 + } + } + } else { + if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength + for (i = byteOffset; i >= 0; i--) { + var found = true + for (var j = 0; j < valLength; j++) { + if (read(arr, i + j) !== read(val, j)) { + found = false + break + } + } + if (found) return i + } + } + + return -1 +} + +Buffer.prototype.includes = function includes (val, byteOffset, encoding) { + return this.indexOf(val, byteOffset, encoding) !== -1 +} + +Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, true) +} + +Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, false) +} + +function hexWrite (buf, string, offset, length) { + offset = Number(offset) || 0 + var remaining = buf.length - offset + if (!length) { + length = remaining + } else { + length = Number(length) + if (length > remaining) { + length = remaining + } + } + + // must be an even number of digits + var strLen = string.length + if (strLen % 2 !== 0) throw new TypeError('Invalid hex string') + + if (length > strLen / 2) { + length = strLen / 2 + } + for (var i = 0; i < length; ++i) { + var parsed = parseInt(string.substr(i * 2, 2), 16) + if (isNaN(parsed)) return i + buf[offset + i] = parsed + } + return i +} + +function utf8Write (buf, string, offset, length) { + return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) +} + +function asciiWrite (buf, string, offset, length) { + return blitBuffer(asciiToBytes(string), buf, offset, length) +} + +function latin1Write (buf, string, offset, length) { + return asciiWrite(buf, string, offset, length) +} + +function base64Write (buf, string, offset, length) { + return blitBuffer(base64ToBytes(string), buf, offset, length) +} + +function ucs2Write (buf, string, offset, length) { + return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) +} + +Buffer.prototype.write = function write (string, offset, length, encoding) { + // Buffer#write(string) + if (offset === undefined) { + encoding = 'utf8' + length = this.length + offset = 0 + // Buffer#write(string, encoding) + } else if (length === undefined && typeof offset === 'string') { + encoding = offset + length = this.length + offset = 0 + // Buffer#write(string, offset[, length][, encoding]) + } else if (isFinite(offset)) { + offset = offset | 0 + if (isFinite(length)) { + length = length | 0 + if (encoding === undefined) encoding = 'utf8' + } else { + encoding = length + length = undefined + } + // legacy write(string, encoding, offset, length) - remove in v0.13 + } else { + throw new Error( + 'Buffer.write(string, encoding, offset[, length]) is no longer supported' + ) + } + + var remaining = this.length - offset + if (length === undefined || length > remaining) length = remaining + + if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { + throw new RangeError('Attempt to write outside buffer bounds') + } + + if (!encoding) encoding = 'utf8' + + var loweredCase = false + for (;;) { + switch (encoding) { + case 'hex': + return hexWrite(this, string, offset, length) + + case 'utf8': + case 'utf-8': + return utf8Write(this, string, offset, length) + + case 'ascii': + return asciiWrite(this, string, offset, length) + + case 'latin1': + case 'binary': + return latin1Write(this, string, offset, length) + + case 'base64': + // Warning: maxLength not taken into account in base64Write + return base64Write(this, string, offset, length) + + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return ucs2Write(this, string, offset, length) + + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) + encoding = ('' + encoding).toLowerCase() + loweredCase = true + } + } +} + +Buffer.prototype.toJSON = function toJSON () { + return { + type: 'Buffer', + data: Array.prototype.slice.call(this._arr || this, 0) + } +} + +function base64Slice (buf, start, end) { + if (start === 0 && end === buf.length) { + return base64.fromByteArray(buf) + } else { + return base64.fromByteArray(buf.slice(start, end)) + } +} + +function utf8Slice (buf, start, end) { + end = Math.min(buf.length, end) + var res = [] + + var i = start + while (i < end) { + var firstByte = buf[i] + var codePoint = null + var bytesPerSequence = (firstByte > 0xEF) ? 4 + : (firstByte > 0xDF) ? 3 + : (firstByte > 0xBF) ? 2 + : 1 + + if (i + bytesPerSequence <= end) { + var secondByte, thirdByte, fourthByte, tempCodePoint + + switch (bytesPerSequence) { + case 1: + if (firstByte < 0x80) { + codePoint = firstByte + } + break + case 2: + secondByte = buf[i + 1] + if ((secondByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F) + if (tempCodePoint > 0x7F) { + codePoint = tempCodePoint + } + } + break + case 3: + secondByte = buf[i + 1] + thirdByte = buf[i + 2] + if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F) + if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { + codePoint = tempCodePoint + } + } + break + case 4: + secondByte = buf[i + 1] + thirdByte = buf[i + 2] + fourthByte = buf[i + 3] + if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F) + if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { + codePoint = tempCodePoint + } + } + } + } + + if (codePoint === null) { + // we did not generate a valid codePoint so insert a + // replacement char (U+FFFD) and advance only 1 byte + codePoint = 0xFFFD + bytesPerSequence = 1 + } else if (codePoint > 0xFFFF) { + // encode to utf16 (surrogate pair dance) + codePoint -= 0x10000 + res.push(codePoint >>> 10 & 0x3FF | 0xD800) + codePoint = 0xDC00 | codePoint & 0x3FF + } + + res.push(codePoint) + i += bytesPerSequence + } + + return decodeCodePointsArray(res) +} + +// Based on http://stackoverflow.com/a/22747272/680742, the browser with +// the lowest limit is Chrome, with 0x10000 args. +// We go 1 magnitude less, for safety +var MAX_ARGUMENTS_LENGTH = 0x1000 + +function decodeCodePointsArray (codePoints) { + var len = codePoints.length + if (len <= MAX_ARGUMENTS_LENGTH) { + return String.fromCharCode.apply(String, codePoints) // avoid extra slice() + } + + // Decode in chunks to avoid "call stack size exceeded". + var res = '' + var i = 0 + while (i < len) { + res += String.fromCharCode.apply( + String, + codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) + ) + } + return res +} + +function asciiSlice (buf, start, end) { + var ret = '' + end = Math.min(buf.length, end) + + for (var i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i] & 0x7F) + } + return ret +} + +function latin1Slice (buf, start, end) { + var ret = '' + end = Math.min(buf.length, end) + + for (var i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i]) + } + return ret +} + +function hexSlice (buf, start, end) { + var len = buf.length + + if (!start || start < 0) start = 0 + if (!end || end < 0 || end > len) end = len + + var out = '' + for (var i = start; i < end; ++i) { + out += toHex(buf[i]) + } + return out +} + +function utf16leSlice (buf, start, end) { + var bytes = buf.slice(start, end) + var res = '' + for (var i = 0; i < bytes.length; i += 2) { + res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256) + } + return res +} + +Buffer.prototype.slice = function slice (start, end) { + var len = this.length + start = ~~start + end = end === undefined ? len : ~~end + + if (start < 0) { + start += len + if (start < 0) start = 0 + } else if (start > len) { + start = len + } + + if (end < 0) { + end += len + if (end < 0) end = 0 + } else if (end > len) { + end = len + } + + if (end < start) end = start + + var newBuf + if (Buffer.TYPED_ARRAY_SUPPORT) { + newBuf = this.subarray(start, end) + newBuf.__proto__ = Buffer.prototype + } else { + var sliceLen = end - start + newBuf = new Buffer(sliceLen, undefined) + for (var i = 0; i < sliceLen; ++i) { + newBuf[i] = this[i + start] + } + } + + return newBuf +} + +/* + * Need to make sure that buffer isn't trying to write out of bounds. + */ +function checkOffset (offset, ext, length) { + if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') + if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') +} + +Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var val = this[offset] + var mul = 1 + var i = 0 + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul + } + + return val +} + +Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) { + checkOffset(offset, byteLength, this.length) + } + + var val = this[offset + --byteLength] + var mul = 1 + while (byteLength > 0 && (mul *= 0x100)) { + val += this[offset + --byteLength] * mul + } + + return val +} + +Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) { + if (!noAssert) checkOffset(offset, 1, this.length) + return this[offset] +} + +Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + return this[offset] | (this[offset + 1] << 8) +} + +Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + return (this[offset] << 8) | this[offset + 1] +} + +Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return ((this[offset]) | + (this[offset + 1] << 8) | + (this[offset + 2] << 16)) + + (this[offset + 3] * 0x1000000) +} + +Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset] * 0x1000000) + + ((this[offset + 1] << 16) | + (this[offset + 2] << 8) | + this[offset + 3]) +} + +Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var val = this[offset] + var mul = 1 + var i = 0 + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul + } + mul *= 0x80 + + if (val >= mul) val -= Math.pow(2, 8 * byteLength) + + return val +} + +Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var i = byteLength + var mul = 1 + var val = this[offset + --i] + while (i > 0 && (mul *= 0x100)) { + val += this[offset + --i] * mul + } + mul *= 0x80 + + if (val >= mul) val -= Math.pow(2, 8 * byteLength) + + return val +} + +Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) { + if (!noAssert) checkOffset(offset, 1, this.length) + if (!(this[offset] & 0x80)) return (this[offset]) + return ((0xff - this[offset] + 1) * -1) +} + +Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + var val = this[offset] | (this[offset + 1] << 8) + return (val & 0x8000) ? val | 0xFFFF0000 : val +} + +Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + var val = this[offset + 1] | (this[offset] << 8) + return (val & 0x8000) ? val | 0xFFFF0000 : val +} + +Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset]) | + (this[offset + 1] << 8) | + (this[offset + 2] << 16) | + (this[offset + 3] << 24) +} + +Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset] << 24) | + (this[offset + 1] << 16) | + (this[offset + 2] << 8) | + (this[offset + 3]) +} + +Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + return ieee754.read(this, offset, true, 23, 4) +} + +Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + return ieee754.read(this, offset, false, 23, 4) +} + +Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 8, this.length) + return ieee754.read(this, offset, true, 52, 8) +} + +Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 8, this.length) + return ieee754.read(this, offset, false, 52, 8) +} + +function checkInt (buf, value, offset, ext, max, min) { + if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance') + if (value > max || value < min) throw new RangeError('"value" argument is out of bounds') + if (offset + ext > buf.length) throw new RangeError('Index out of range') +} + +Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) { + var maxBytes = Math.pow(2, 8 * byteLength) - 1 + checkInt(this, value, offset, byteLength, maxBytes, 0) + } + + var mul = 1 + var i = 0 + this[offset] = value & 0xFF + while (++i < byteLength && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) { + var maxBytes = Math.pow(2, 8 * byteLength) - 1 + checkInt(this, value, offset, byteLength, maxBytes, 0) + } + + var i = byteLength - 1 + var mul = 1 + this[offset + i] = value & 0xFF + while (--i >= 0 && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0) + if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) + this[offset] = (value & 0xff) + return offset + 1 +} + +function objectWriteUInt16 (buf, value, offset, littleEndian) { + if (value < 0) value = 0xffff + value + 1 + for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) { + buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>> + (littleEndian ? i : 1 - i) * 8 + } +} + +Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + } else { + objectWriteUInt16(this, value, offset, true) + } + return offset + 2 +} + +Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 8) + this[offset + 1] = (value & 0xff) + } else { + objectWriteUInt16(this, value, offset, false) + } + return offset + 2 +} + +function objectWriteUInt32 (buf, value, offset, littleEndian) { + if (value < 0) value = 0xffffffff + value + 1 + for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) { + buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff + } +} + +Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset + 3] = (value >>> 24) + this[offset + 2] = (value >>> 16) + this[offset + 1] = (value >>> 8) + this[offset] = (value & 0xff) + } else { + objectWriteUInt32(this, value, offset, true) + } + return offset + 4 +} + +Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 24) + this[offset + 1] = (value >>> 16) + this[offset + 2] = (value >>> 8) + this[offset + 3] = (value & 0xff) + } else { + objectWriteUInt32(this, value, offset, false) + } + return offset + 4 +} + +Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) { + var limit = Math.pow(2, 8 * byteLength - 1) + + checkInt(this, value, offset, byteLength, limit - 1, -limit) + } + + var i = 0 + var mul = 1 + var sub = 0 + this[offset] = value & 0xFF + while (++i < byteLength && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { + sub = 1 + } + this[offset + i] = ((value / mul) >> 0) - sub & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) { + var limit = Math.pow(2, 8 * byteLength - 1) + + checkInt(this, value, offset, byteLength, limit - 1, -limit) + } + + var i = byteLength - 1 + var mul = 1 + var sub = 0 + this[offset + i] = value & 0xFF + while (--i >= 0 && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { + sub = 1 + } + this[offset + i] = ((value / mul) >> 0) - sub & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80) + if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) + if (value < 0) value = 0xff + value + 1 + this[offset] = (value & 0xff) + return offset + 1 +} + +Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + } else { + objectWriteUInt16(this, value, offset, true) + } + return offset + 2 +} + +Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 8) + this[offset + 1] = (value & 0xff) + } else { + objectWriteUInt16(this, value, offset, false) + } + return offset + 2 +} + +Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + this[offset + 2] = (value >>> 16) + this[offset + 3] = (value >>> 24) + } else { + objectWriteUInt32(this, value, offset, true) + } + return offset + 4 +} + +Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) + if (value < 0) value = 0xffffffff + value + 1 + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 24) + this[offset + 1] = (value >>> 16) + this[offset + 2] = (value >>> 8) + this[offset + 3] = (value & 0xff) + } else { + objectWriteUInt32(this, value, offset, false) + } + return offset + 4 +} + +function checkIEEE754 (buf, value, offset, ext, max, min) { + if (offset + ext > buf.length) throw new RangeError('Index out of range') + if (offset < 0) throw new RangeError('Index out of range') +} + +function writeFloat (buf, value, offset, littleEndian, noAssert) { + if (!noAssert) { + checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38) + } + ieee754.write(buf, value, offset, littleEndian, 23, 4) + return offset + 4 +} + +Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { + return writeFloat(this, value, offset, true, noAssert) +} + +Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { + return writeFloat(this, value, offset, false, noAssert) +} + +function writeDouble (buf, value, offset, littleEndian, noAssert) { + if (!noAssert) { + checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308) + } + ieee754.write(buf, value, offset, littleEndian, 52, 8) + return offset + 8 +} + +Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { + return writeDouble(this, value, offset, true, noAssert) +} + +Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { + return writeDouble(this, value, offset, false, noAssert) +} + +// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) +Buffer.prototype.copy = function copy (target, targetStart, start, end) { + if (!start) start = 0 + if (!end && end !== 0) end = this.length + if (targetStart >= target.length) targetStart = target.length + if (!targetStart) targetStart = 0 + if (end > 0 && end < start) end = start + + // Copy 0 bytes; we're done + if (end === start) return 0 + if (target.length === 0 || this.length === 0) return 0 + + // Fatal error conditions + if (targetStart < 0) { + throw new RangeError('targetStart out of bounds') + } + if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds') + if (end < 0) throw new RangeError('sourceEnd out of bounds') + + // Are we oob? + if (end > this.length) end = this.length + if (target.length - targetStart < end - start) { + end = target.length - targetStart + start + } + + var len = end - start + var i + + if (this === target && start < targetStart && targetStart < end) { + // descending copy from end + for (i = len - 1; i >= 0; --i) { + target[i + targetStart] = this[i + start] + } + } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) { + // ascending copy from start + for (i = 0; i < len; ++i) { + target[i + targetStart] = this[i + start] + } + } else { + Uint8Array.prototype.set.call( + target, + this.subarray(start, start + len), + targetStart + ) + } + + return len +} + +// Usage: +// buffer.fill(number[, offset[, end]]) +// buffer.fill(buffer[, offset[, end]]) +// buffer.fill(string[, offset[, end]][, encoding]) +Buffer.prototype.fill = function fill (val, start, end, encoding) { + // Handle string cases: + if (typeof val === 'string') { + if (typeof start === 'string') { + encoding = start + start = 0 + end = this.length + } else if (typeof end === 'string') { + encoding = end + end = this.length + } + if (val.length === 1) { + var code = val.charCodeAt(0) + if (code < 256) { + val = code + } + } + if (encoding !== undefined && typeof encoding !== 'string') { + throw new TypeError('encoding must be a string') + } + if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { + throw new TypeError('Unknown encoding: ' + encoding) + } + } else if (typeof val === 'number') { + val = val & 255 + } + + // Invalid ranges are not set to a default, so can range check early. + if (start < 0 || this.length < start || this.length < end) { + throw new RangeError('Out of range index') + } + + if (end <= start) { + return this + } + + start = start >>> 0 + end = end === undefined ? this.length : end >>> 0 + + if (!val) val = 0 + + var i + if (typeof val === 'number') { + for (i = start; i < end; ++i) { + this[i] = val + } + } else { + var bytes = Buffer.isBuffer(val) + ? val + : utf8ToBytes(new Buffer(val, encoding).toString()) + var len = bytes.length + for (i = 0; i < end - start; ++i) { + this[i + start] = bytes[i % len] + } + } + + return this +} + +// HELPER FUNCTIONS +// ================ + +var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g + +function base64clean (str) { + // Node strips out invalid characters like \n and \t from the string, base64-js does not + str = stringtrim(str).replace(INVALID_BASE64_RE, '') + // Node converts strings with length < 2 to '' + if (str.length < 2) return '' + // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not + while (str.length % 4 !== 0) { + str = str + '=' + } + return str +} + +function stringtrim (str) { + if (str.trim) return str.trim() + return str.replace(/^\s+|\s+$/g, '') +} + +function toHex (n) { + if (n < 16) return '0' + n.toString(16) + return n.toString(16) +} + +function utf8ToBytes (string, units) { + units = units || Infinity + var codePoint + var length = string.length + var leadSurrogate = null + var bytes = [] + + for (var i = 0; i < length; ++i) { + codePoint = string.charCodeAt(i) + + // is surrogate component + if (codePoint > 0xD7FF && codePoint < 0xE000) { + // last char was a lead + if (!leadSurrogate) { + // no lead yet + if (codePoint > 0xDBFF) { + // unexpected trail + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } else if (i + 1 === length) { + // unpaired lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } + + // valid lead + leadSurrogate = codePoint + + continue + } + + // 2 leads in a row + if (codePoint < 0xDC00) { + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + leadSurrogate = codePoint + continue + } + + // valid surrogate pair + codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000 + } else if (leadSurrogate) { + // valid bmp char, but last char was a lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + } + + leadSurrogate = null + + // encode utf8 + if (codePoint < 0x80) { + if ((units -= 1) < 0) break + bytes.push(codePoint) + } else if (codePoint < 0x800) { + if ((units -= 2) < 0) break + bytes.push( + codePoint >> 0x6 | 0xC0, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x10000) { + if ((units -= 3) < 0) break + bytes.push( + codePoint >> 0xC | 0xE0, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x110000) { + if ((units -= 4) < 0) break + bytes.push( + codePoint >> 0x12 | 0xF0, + codePoint >> 0xC & 0x3F | 0x80, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else { + throw new Error('Invalid code point') + } + } + + return bytes +} + +function asciiToBytes (str) { + var byteArray = [] + for (var i = 0; i < str.length; ++i) { + // Node's code seems to be doing this and not & 0x7F.. + byteArray.push(str.charCodeAt(i) & 0xFF) + } + return byteArray +} + +function utf16leToBytes (str, units) { + var c, hi, lo + var byteArray = [] + for (var i = 0; i < str.length; ++i) { + if ((units -= 2) < 0) break + + c = str.charCodeAt(i) + hi = c >> 8 + lo = c % 256 + byteArray.push(lo) + byteArray.push(hi) + } + + return byteArray +} + +function base64ToBytes (str) { + return base64.toByteArray(base64clean(str)) +} + +function blitBuffer (src, dst, offset, length) { + for (var i = 0; i < length; ++i) { + if ((i + offset >= dst.length) || (i >= src.length)) break + dst[i + offset] = src[i] + } + return i +} + +function isnan (val) { + return val !== val // eslint-disable-line no-self-compare +} + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(11))) + +/***/ }), +/* 30 */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(global) {exports.fetch = isFunction(global.fetch) && isFunction(global.ReadableStream) + +exports.writableStream = isFunction(global.WritableStream) + +exports.abortController = isFunction(global.AbortController) + +exports.blobConstructor = false +try { + new Blob([new ArrayBuffer(1)]) + exports.blobConstructor = true +} catch (e) {} + +// The xhr request to example.com may violate some restrictive CSP configurations, +// so if we're running in a browser that supports `fetch`, avoid calling getXHR() +// and assume support for certain features below. +var xhr +function getXHR () { + // Cache the xhr value + if (xhr !== undefined) return xhr + + if (global.XMLHttpRequest) { + xhr = new global.XMLHttpRequest() + // If XDomainRequest is available (ie only, where xhr might not work + // cross domain), use the page location. Otherwise use example.com + // Note: this doesn't actually make an http request. + try { + xhr.open('GET', global.XDomainRequest ? '/' : 'https://example.com') + } catch(e) { + xhr = null + } + } else { + // Service workers don't have XHR + xhr = null + } + return xhr +} + +function checkTypeSupport (type) { + var xhr = getXHR() + if (!xhr) return false + try { + xhr.responseType = type + return xhr.responseType === type + } catch (e) {} + return false +} + +// For some strange reason, Safari 7.0 reports typeof global.ArrayBuffer === 'object'. +// Safari 7.1 appears to have fixed this bug. +var haveArrayBuffer = typeof global.ArrayBuffer !== 'undefined' +var haveSlice = haveArrayBuffer && isFunction(global.ArrayBuffer.prototype.slice) + +// If fetch is supported, then arraybuffer will be supported too. Skip calling +// checkTypeSupport(), since that calls getXHR(). +exports.arraybuffer = exports.fetch || (haveArrayBuffer && checkTypeSupport('arraybuffer')) + +// These next two tests unavoidably show warnings in Chrome. Since fetch will always +// be used if it's available, just return false for these to avoid the warnings. +exports.msstream = !exports.fetch && haveSlice && checkTypeSupport('ms-stream') +exports.mozchunkedarraybuffer = !exports.fetch && haveArrayBuffer && + checkTypeSupport('moz-chunked-arraybuffer') + +// If fetch is supported, then overrideMimeType will be supported too. Skip calling +// getXHR(). +exports.overrideMimeType = exports.fetch || (getXHR() ? isFunction(getXHR().overrideMimeType) : false) + +exports.vbArray = isFunction(global.VBArray) + +function isFunction (value) { + return typeof value === 'function' +} + +xhr = null // Help gc + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(11))) + +/***/ }), +/* 31 */ +/***/ (function(module, exports) { + +module.exports = require("inherits"); + +/***/ }), +/* 32 */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(process, Buffer, global) {var capability = __webpack_require__(30) +var inherits = __webpack_require__(31) +var stream = __webpack_require__(33) + +var rStates = exports.readyStates = { + UNSENT: 0, + OPENED: 1, + HEADERS_RECEIVED: 2, + LOADING: 3, + DONE: 4 +} + +var IncomingMessage = exports.IncomingMessage = function (xhr, response, mode, fetchTimer) { + var self = this + stream.Readable.call(self) + + self._mode = mode + self.headers = {} + self.rawHeaders = [] + self.trailers = {} + self.rawTrailers = [] + + // Fake the 'close' event, but only once 'end' fires + self.on('end', function () { + // The nextTick is necessary to prevent the 'request' module from causing an infinite loop + process.nextTick(function () { + self.emit('close') + }) + }) + + if (mode === 'fetch') { + self._fetchResponse = response + + self.url = response.url + self.statusCode = response.status + self.statusMessage = response.statusText + + response.headers.forEach(function (header, key){ + self.headers[key.toLowerCase()] = header + self.rawHeaders.push(key, header) + }) + + if (capability.writableStream) { + var writable = new WritableStream({ + write: function (chunk) { + return new Promise(function (resolve, reject) { + if (self._destroyed) { + reject() + } else if(self.push(new Buffer(chunk))) { + resolve() + } else { + self._resumeFetch = resolve + } + }) + }, + close: function () { + global.clearTimeout(fetchTimer) + if (!self._destroyed) + self.push(null) + }, + abort: function (err) { + if (!self._destroyed) + self.emit('error', err) + } + }) + + try { + response.body.pipeTo(writable).catch(function (err) { + global.clearTimeout(fetchTimer) + if (!self._destroyed) + self.emit('error', err) + }) + return + } catch (e) {} // pipeTo method isn't defined. Can't find a better way to feature test this + } + // fallback for when writableStream or pipeTo aren't available + var reader = response.body.getReader() + function read () { + reader.read().then(function (result) { + if (self._destroyed) + return + if (result.done) { + global.clearTimeout(fetchTimer) + self.push(null) + return + } + self.push(new Buffer(result.value)) + read() + }).catch(function (err) { + global.clearTimeout(fetchTimer) + if (!self._destroyed) + self.emit('error', err) + }) + } + read() + } else { + self._xhr = xhr + self._pos = 0 + + self.url = xhr.responseURL + self.statusCode = xhr.status + self.statusMessage = xhr.statusText + var headers = xhr.getAllResponseHeaders().split(/\r?\n/) + headers.forEach(function (header) { + var matches = header.match(/^([^:]+):\s*(.*)/) + if (matches) { + var key = matches[1].toLowerCase() + if (key === 'set-cookie') { + if (self.headers[key] === undefined) { + self.headers[key] = [] + } + self.headers[key].push(matches[2]) + } else if (self.headers[key] !== undefined) { + self.headers[key] += ', ' + matches[2] + } else { + self.headers[key] = matches[2] + } + self.rawHeaders.push(matches[1], matches[2]) + } + }) + + self._charset = 'x-user-defined' + if (!capability.overrideMimeType) { + var mimeType = self.rawHeaders['mime-type'] + if (mimeType) { + var charsetMatch = mimeType.match(/;\s*charset=([^;])(;|$)/) + if (charsetMatch) { + self._charset = charsetMatch[1].toLowerCase() + } + } + if (!self._charset) + self._charset = 'utf-8' // best guess + } + } +} + +inherits(IncomingMessage, stream.Readable) + +IncomingMessage.prototype._read = function () { + var self = this + + var resolve = self._resumeFetch + if (resolve) { + self._resumeFetch = null + resolve() + } +} + +IncomingMessage.prototype._onXHRProgress = function () { + var self = this + + var xhr = self._xhr + + var response = null + switch (self._mode) { + case 'text:vbarray': // For IE9 + if (xhr.readyState !== rStates.DONE) + break + try { + // This fails in IE8 + response = new global.VBArray(xhr.responseBody).toArray() + } catch (e) {} + if (response !== null) { + self.push(new Buffer(response)) + break + } + // Falls through in IE8 + case 'text': + try { // This will fail when readyState = 3 in IE9. Switch mode and wait for readyState = 4 + response = xhr.responseText + } catch (e) { + self._mode = 'text:vbarray' + break + } + if (response.length > self._pos) { + var newData = response.substr(self._pos) + if (self._charset === 'x-user-defined') { + var buffer = new Buffer(newData.length) + for (var i = 0; i < newData.length; i++) + buffer[i] = newData.charCodeAt(i) & 0xff + + self.push(buffer) + } else { + self.push(newData, self._charset) + } + self._pos = response.length + } + break + case 'arraybuffer': + if (xhr.readyState !== rStates.DONE || !xhr.response) + break + response = xhr.response + self.push(new Buffer(new Uint8Array(response))) + break + case 'moz-chunked-arraybuffer': // take whole + response = xhr.response + if (xhr.readyState !== rStates.LOADING || !response) + break + self.push(new Buffer(new Uint8Array(response))) + break + case 'ms-stream': + response = xhr.response + if (xhr.readyState !== rStates.LOADING) + break + var reader = new global.MSStreamReader() + reader.onprogress = function () { + if (reader.result.byteLength > self._pos) { + self.push(new Buffer(new Uint8Array(reader.result.slice(self._pos)))) + self._pos = reader.result.byteLength + } + } + reader.onload = function () { + self.push(null) + } + // reader.onerror = ??? // TODO: this + reader.readAsArrayBuffer(response) + break + } + + // The ms-stream case handles end separately in reader.onload() + if (self._xhr.readyState === rStates.DONE && self._mode !== 'ms-stream') { + self.push(null) + } +} + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(14), __webpack_require__(29).Buffer, __webpack_require__(11))) + +/***/ }), +/* 33 */ +/***/ (function(module, exports) { + +module.exports = require("readable-stream"); + +/***/ }), +/* 34 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "add", function() { return add; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "done", function() { return done; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toJS", function() { return toJS; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "load", function() { return load; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dispose", function() { return dispose; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "search", function() { return search; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(tslib__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var lunr__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7); +/* harmony import */ var lunr__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lunr__WEBPACK_IMPORTED_MODULE_1__); + + +try { + // tslint:disable-next-line + __webpack_require__(81); // bundle into worker +} +catch (_) { // nope +} +/* just for better typings */ +var Worker = /** @class */ (function () { + function Worker() { + this.add = add; + this.done = done; + this.search = search; + this.toJS = toJS; + this.load = load; + this.dispose = dispose; + } + return Worker; +}()); +/* harmony default export */ __webpack_exports__["default"] = (Worker); +var store = []; +lunr__WEBPACK_IMPORTED_MODULE_1__["tokenizer"].separator = /\s+/; +var builder; +var resolveIndex; +var index; +function initEmpty() { + builder = new lunr__WEBPACK_IMPORTED_MODULE_1__["Builder"](); + builder.field('title'); + builder.field('description'); + builder.ref('ref'); + builder.pipeline.add(lunr__WEBPACK_IMPORTED_MODULE_1__["trimmer"], lunr__WEBPACK_IMPORTED_MODULE_1__["stopWordFilter"], lunr__WEBPACK_IMPORTED_MODULE_1__["stemmer"]); + index = new Promise(function (resolve) { + resolveIndex = resolve; + }); +} +initEmpty(); +var expandTerm = function (term) { return '*' + lunr__WEBPACK_IMPORTED_MODULE_1__["stemmer"](new lunr__WEBPACK_IMPORTED_MODULE_1__["Token"](term, {})) + '*'; }; +function add(title, description, meta) { + var ref = store.push(meta) - 1; + var item = { + title: title.toLowerCase(), + description: description.toLowerCase(), + ref: ref + }; + builder.add(item); +} +function done() { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { + resolveIndex(builder.build()); + return [2 /*return*/]; + }); + }); +} +function toJS() { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { + var _a; + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_b) { + switch (_b.label) { + case 0: + _a = { + store: store + }; + return [4 /*yield*/, index]; + case 1: return [2 /*return*/, (_a.index = (_b.sent()).toJSON(), + _a)]; + } + }); + }); +} +function load(state) { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { + store = state.store; + resolveIndex(lunr__WEBPACK_IMPORTED_MODULE_1__["Index"].load(state.index)); + return [2 /*return*/]; + }); + }); +} +function dispose() { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { + store = []; + initEmpty(); + return [2 /*return*/]; + }); + }); +} +function search(q, limit) { + if (limit === void 0) { limit = 0; } + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { + var searchResults; + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { + switch (_a.label) { + case 0: + if (q.trim().length === 0) { + return [2 /*return*/, []]; + } + return [4 /*yield*/, index]; + case 1: + searchResults = (_a.sent()).query(function (t) { + q.trim().toLowerCase().split(/\s+/).forEach(function (term) { + var exp = expandTerm(term); + t.term(exp, {}); + }); + }); + if (limit > 0) { + searchResults = searchResults.slice(0, limit); + } + return [2 /*return*/, searchResults.map(function (res) { return ({ + meta: store[res.ref], + score: res.score + }); })]; + } + }); + }); +} + + +/***/ }), +/* 35 */ +/***/ (function(module, exports) { + +module.exports = require("slugify"); + +/***/ }), +/* 36 */ +/***/ (function(module, exports) { + +module.exports = require("styled-components"); + +/***/ }), +/* 37 */ +/***/ (function(module, exports) { + +module.exports = require("@mdx-js/react"); + +/***/ }), +/* 38 */ +/***/ (function(module, exports) { + +module.exports = require("json-schema-ref-parser"); + +/***/ }), +/* 39 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +// @ts-check + +var tslib_1 = __webpack_require__(1); +var fs = __webpack_require__(27); +var url = __webpack_require__(5); +var pathlib = __webpack_require__(18); +var maybe = __webpack_require__(44); +var fetch = __webpack_require__(15); +var yaml = __webpack_require__(15); +var jptr = __webpack_require__(16); +var resolveInternal = jptr.jptr; +var isRef = __webpack_require__(21).isRef; +var clone = __webpack_require__(17).clone; +var cclone = __webpack_require__(17).circularClone; +var recurse = __webpack_require__(22).recurse; +var resolver = __webpack_require__(45); +var sw = __webpack_require__(48); +var common = __webpack_require__(28); +var statusCodes = __webpack_require__(49).statusCodes; +var ourVersion = __webpack_require__(58).version; +// TODO handle specification-extensions with plugins? +var targetVersion = '3.0.0'; +var componentNames; // initialised in main +var S2OError = /** @class */ (function (_super) { + tslib_1.__extends(S2OError, _super); + function S2OError(message) { + var _this = _super.call(this, message) || this; + _this.name = 'S2OError'; + return _this; + } + return S2OError; +}(Error)); +function throwError(message, options) { + var err = new S2OError(message); + err.options = options; + if (options.promise) { + options.promise.reject(err); + } + else { + throw err; + } +} +function throwOrWarn(message, container, options) { + if (options.warnOnly) { + container[options.warnProperty || 'x-s2o-warning'] = message; + } + else { + throwError(message, options); + } +} +function fixUpSubSchema(schema, parent, options) { + if (schema.nullable) + options.patches++; + if (schema.discriminator && typeof schema.discriminator === 'string') { + schema.discriminator = { propertyName: schema.discriminator }; + } + if (schema.items && Array.isArray(schema.items)) { + if (schema.items.length === 0) { + schema.items = {}; + } + else if (schema.items.length === 1) { + schema.items = schema.items[0]; + } + else + schema.items = { anyOf: schema.items }; + } + if (schema.type && Array.isArray(schema.type)) { + if (options.patch) { + options.patches++; + if (schema.type.length === 0) { + delete schema.type; + } + else { + if (!schema.oneOf) + schema.oneOf = []; + for (var _i = 0, _a = schema.type; _i < _a.length; _i++) { + var type = _a[_i]; + var newSchema = {}; + if (type === 'null') { + schema.nullable = true; + } + else { + newSchema.type = type; + for (var _b = 0, _c = common.arrayProperties; _b < _c.length; _b++) { + var prop = _c[_b]; + if (typeof schema.prop !== 'undefined') { + newSchema[prop] = schema[prop]; + delete schema[prop]; + } + } + } + if (newSchema.type) { + schema.oneOf.push(newSchema); + } + } + delete schema.type; + if (schema.oneOf.length === 0) { + delete schema.oneOf; // means was just null => nullable + } + else if (schema.oneOf.length < 2) { + schema.type = schema.oneOf[0].type; + if (Object.keys(schema.oneOf[0]).length > 1) { + throwOrWarn('Lost properties from oneOf', schema, options); + } + delete schema.oneOf; + } + } + // do not else this + if (schema.type && Array.isArray(schema.type) && schema.type.length === 1) { + schema.type = schema.type[0]; + } + } + else { + throwError('(Patchable) schema type must not be an array', options); + } + } + if (schema.type && schema.type === 'null') { + delete schema.type; + schema.nullable = true; + } + if ((schema.type === 'array') && (!schema.items)) { + schema.items = {}; + } + if (typeof schema.required === 'boolean') { + if (schema.required && schema.name) { + if (typeof parent.required === 'undefined') { + parent.required = []; + } + if (Array.isArray(parent.required)) + parent.required.push(schema.name); + } + delete schema.required; + } + // TODO if we have a nested properties (object inside an object) and the + // *parent* type is not set, force it to object + // TODO if default is set but type is not set, force type to typeof default + if (schema.xml && typeof schema.xml.namespace === 'string') { + if (!schema.xml.namespace) + delete schema.xml.namespace; + } +} +function fixUpSubSchemaExtensions(schema, parent) { + if (schema["x-required"] && Array.isArray(schema["x-required"])) { + if (!schema.required) + schema.required = []; + schema.required = schema.required.concat(schema["x-required"]); + delete schema["x-required"]; + } + if (schema["x-anyOf"]) { + schema.anyOf = schema["x-anyOf"]; + delete schema["x-anyOf"]; + } + if (schema["x-oneOf"]) { + schema.oneOf = schema["x-oneOf"]; + delete schema["x-oneOf"]; + } + if (schema["x-not"]) { + schema.not = schema["x-not"]; + delete schema["x-not"]; + } + if (typeof schema["x-nullable"] === 'boolean') { + schema.nullable = schema["x-nullable"]; + delete schema["x-nullable"]; + } + if ((typeof schema["x-discriminator"] === 'object') && (typeof schema["x-discriminator"].propertyName === 'string')) { + schema.discriminator = schema["x-discriminator"]; + delete schema["x-discriminator"]; + for (var entry in schema.discriminator.mapping) { + var schemaOrRef = schema.discriminator.mapping[entry]; + if (schemaOrRef.startsWith('#/definitions/')) { + schema.discriminator.mapping[entry] = schemaOrRef.replace('#/definitions/', '#/components/schemas/'); + } + } + } +} +function fixUpSchema(schema, options) { + sw.walkSchema(schema, {}, {}, function (schema, parent, state) { + fixUpSubSchemaExtensions(schema, parent); + fixUpSubSchema(schema, parent, options); + }); +} +function getMiroComponentName(ref) { + if (ref.indexOf('#') >= 0) { + ref = ref.split('#')[1].split('/').pop(); + } + else { + ref = ref.split('/').pop().split('.')[0]; + } + return encodeURIComponent(common.sanitise(ref)); +} +function fixupRefs(obj, key, state) { + var options = state.payload.options; + if (isRef(obj, key)) { + if (obj[key].startsWith('#/components/')) { + // no-op + } + else if (obj[key] === '#/consumes') { + // people are *so* creative + delete obj[key]; + state.parent[state.pkey] = clone(options.openapi.consumes); + } + else if (obj[key] === '#/produces') { + // and by creative, I mean devious + delete obj[key]; + state.parent[state.pkey] = clone(options.openapi.produces); + } + else if (obj[key].startsWith('#/definitions/')) { + //only the first part of a schema component name must be sanitised + var keys = obj[key].replace('#/definitions/', '').split('/'); + var ref = jptr.jpunescape(keys[0]); + var newKey = componentNames.schemas[decodeURIComponent(ref)]; // lookup, resolves a $ref + if (newKey) { + keys[0] = newKey; + } + else { + throwOrWarn('Could not resolve reference ' + obj[key], obj, options); + } + obj[key] = '#/components/schemas/' + keys.join('/'); + } + else if (obj[key].startsWith('#/parameters/')) { + // for extensions like Apigee's x-templates + obj[key] = '#/components/parameters/' + common.sanitise(obj[key].replace('#/parameters/', '')); + } + else if (obj[key].startsWith('#/responses/')) { + // for extensions like Apigee's x-templates + obj[key] = '#/components/responses/' + common.sanitise(obj[key].replace('#/responses/', '')); + } + else if (obj[key].startsWith('#')) { + // fixes up direct $refs or those created by resolvers + var target = clone(jptr.jptr(options.openapi, obj[key])); + if (target === false) + throwOrWarn('direct $ref not found ' + obj[key], obj, options); + else if (options.refmap[obj[key]]) { + obj[key] = options.refmap[obj[key]]; + } + else { + // we use a heuristic to determine what kind of thing is being referenced + var oldRef = obj[key]; + oldRef = oldRef.replace('/properties/headers/', ''); + oldRef = oldRef.replace('/properties/responses/', ''); + oldRef = oldRef.replace('/properties/parameters/', ''); + oldRef = oldRef.replace('/properties/schemas/', ''); + var type = 'schemas'; + var schemaIndex = oldRef.lastIndexOf('/schema'); + type = (oldRef.indexOf('/headers/') > schemaIndex) ? 'headers' : + ((oldRef.indexOf('/responses/') > schemaIndex) ? 'responses' : + ((oldRef.indexOf('/example') > schemaIndex) ? 'examples' : + ((oldRef.indexOf('/x-') > schemaIndex) ? 'extensions' : + ((oldRef.indexOf('/parameters/') > schemaIndex) ? 'parameters' : 'schemas')))); + // non-body/form parameters have not moved in the overall structure (like responses) + // but extracting the requestBodies can cause the *number* of parameters to change + if (type === 'schemas') { + fixUpSchema(target, options); + } + if ((type !== 'responses') && (type !== 'extensions')) { + var prefix = type.substr(0, type.length - 1); + if ((prefix === 'parameter') && target.name && (target.name === common.sanitise(target.name))) { + prefix = encodeURIComponent(target.name); + } + var suffix = 1; + if (obj['x-miro']) { + prefix = getMiroComponentName(obj['x-miro']); + suffix = ''; + } + while (jptr.jptr(options.openapi, '#/components/' + type + '/' + prefix + suffix)) { + suffix = (suffix === '' ? 2 : ++suffix); + } + var newRef = '#/components/' + type + '/' + prefix + suffix; + var refSuffix = ''; + if (type === 'examples') { + target = { value: target }; + refSuffix = '/value'; + } + jptr.jptr(options.openapi, newRef, target); + options.refmap[obj[key]] = newRef + refSuffix; + obj[key] = newRef + refSuffix; + } + } + } + delete obj['x-miro']; + // do this last - rework cases where $ref object has sibling properties + if (Object.keys(obj).length > 1) { + var tmpRef = obj[key]; + var inSchema = state.path.indexOf('/schema') >= 0; // not perfect, but in the absence of a reasonably-sized and complete OAS 2.0 parser... + if (options.refSiblings === 'preserve') { + // no-op + } + else if (inSchema && (options.refSiblings === 'allOf')) { + delete obj.$ref; + state.parent[state.pkey] = { allOf: [{ $ref: tmpRef }, obj] }; + } + else { // remove, or not 'preserve' and not in a schema + state.parent[state.pkey] = { $ref: tmpRef }; + } + } + } + if ((key === 'x-ms-odata') && (typeof obj[key] === 'string') && (obj[key].startsWith('#/'))) { + var keys = obj[key].replace('#/definitions/', '').replace('#/components/schemas/', '').split('/'); + var newKey = componentNames.schemas[decodeURIComponent(keys[0])]; // lookup, resolves a $ref + if (newKey) { + keys[0] = newKey; + } + else { + throwOrWarn('Could not resolve reference ' + obj[key], obj, options); + } + obj[key] = '#/components/schemas/' + keys.join('/'); + } +} +/* +* This has to happen as a separate pass because multiple $refs may point +* through elements of the same path +*/ +function dedupeRefs(openapi, options) { + for (var ref in options.refmap) { + jptr.jptr(openapi, ref, { $ref: options.refmap[ref] }); + } +} +function processSecurity(securityObject) { + for (var s in securityObject) { + for (var k in securityObject[s]) { + var sname = common.sanitise(k); + if (k != sname) { + securityObject[s][sname] = securityObject[s][k]; + delete securityObject[s][k]; + } + } + } +} +function processSecurityScheme(scheme, options) { + if (scheme.type === 'basic') { + scheme.type = 'http'; + scheme.scheme = 'basic'; + } + if (scheme.type === 'oauth2') { + var flow = {}; + var flowName = scheme.flow; + if (scheme.flow === 'application') + flowName = 'clientCredentials'; + if (scheme.flow === 'accessCode') + flowName = 'authorizationCode'; + if (typeof scheme.authorizationUrl !== 'undefined') + flow.authorizationUrl = scheme.authorizationUrl.split('?')[0].trim() || '/'; + if (typeof scheme.tokenUrl === 'string') + flow.tokenUrl = scheme.tokenUrl.split('?')[0].trim() || '/'; + flow.scopes = scheme.scopes || {}; + scheme.flows = {}; + scheme.flows[flowName] = flow; + delete scheme.flow; + delete scheme.authorizationUrl; + delete scheme.tokenUrl; + delete scheme.scopes; + if (typeof scheme.name !== 'undefined') { + if (options.patch) { + options.patches++; + delete scheme.name; + } + else { + throwError('(Patchable) oauth2 securitySchemes should not have name property', options); + } + } + } +} +function keepParameters(value) { + return (value && !value["x-s2o-delete"]); +} +function processHeader(header, options) { + if (header.$ref) { + header.$ref = header.$ref.replace('#/responses/', '#/components/responses/'); + } + else { + if (header.type && !header.schema) { + header.schema = {}; + } + if (header.type) + header.schema.type = header.type; + if (header.items && header.items.type !== 'array') { + if (header.items.collectionFormat !== header.collectionFormat) { + throwOrWarn('Nested collectionFormats are not supported', header, options); + } + delete header.items.collectionFormat; + } + if (header.type === 'array') { + if (header.collectionFormat === 'ssv') { + throwOrWarn('collectionFormat:ssv is no longer supported for headers', header, options); // not lossless + } + else if (header.collectionFormat === 'pipes') { + throwOrWarn('collectionFormat:pipes is no longer supported for headers', header, options); // not lossless + } + else if (header.collectionFormat === 'multi') { + header.explode = true; + } + else if (header.collectionFormat === 'tsv') { + throwOrWarn('collectionFormat:tsv is no longer supported', header, options); // not lossless + header["x-collectionFormat"] = 'tsv'; + } + else { // 'csv' + header.style = 'simple'; + } + delete header.collectionFormat; + } + else if (header.collectionFormat) { + if (options.patch) { + options.patches++; + delete header.collectionFormat; + } + else { + throwError('(Patchable) collectionFormat is only applicable to header.type array', options); + } + } + delete header.type; + for (var _i = 0, _a = common.parameterTypeProperties; _i < _a.length; _i++) { + var prop = _a[_i]; + if (typeof header[prop] !== 'undefined') { + header.schema[prop] = header[prop]; + delete header[prop]; + } + } + for (var _b = 0, _c = common.arrayProperties; _b < _c.length; _b++) { + var prop = _c[_b]; + if (typeof header[prop] !== 'undefined') { + header.schema[prop] = header[prop]; + delete header[prop]; + } + } + } +} +function fixParamRef(param, options) { + if (param.$ref.indexOf('#/parameters/') >= 0) { + var refComponents = param.$ref.split('#/parameters/'); + param.$ref = refComponents[0] + '#/components/parameters/' + common.sanitise(refComponents[1]); + } + if (param.$ref.indexOf('#/definitions/') >= 0) { + throwOrWarn('Definition used as parameter', param, options); + } +} +function attachRequestBody(op, options) { + var newOp = {}; + for (var _i = 0, _a = Object.keys(op); _i < _a.length; _i++) { + var key = _a[_i]; + newOp[key] = op[key]; + if (key === 'parameters') { + newOp.requestBody = {}; + if (options.rbname) + newOp[options.rbname] = ''; + } + } + newOp.requestBody = {}; // just in case there are no parameters + return newOp; +} +/** + * @returns op, as it may have changed + */ +function processParameter(param, op, path, method, index, openapi, options) { + var result = {}; + var singularRequestBody = true; + var originalType; + if (op && op.consumes && (typeof op.consumes === 'string')) { + if (options.patch) { + options.patches++; + op.consumes = [op.consumes]; + } + else { + return throwError('(Patchable) operation.consumes must be an array', options); + } + } + if (!Array.isArray(openapi.consumes)) + delete openapi.consumes; + var consumes = ((op ? op.consumes : null) || (openapi.consumes || [])).filter(common.uniqueOnly); + if (param && param.$ref && (typeof param.$ref === 'string')) { + // if we still have a ref here, it must be an internal one + fixParamRef(param, options); + var ptr = decodeURIComponent(param.$ref.replace('#/components/parameters/', '')); + var rbody = false; + var target = openapi.components.parameters[ptr]; // resolves a $ref, must have been sanitised already + if (((!target) || (target["x-s2o-delete"])) && param.$ref.startsWith('#/')) { + // if it's gone, chances are it's a requestBody component now unless spec was broken + param["x-s2o-delete"] = true; + rbody = true; + } + // shared formData parameters from swagger or path level could be used in any combination. + // we dereference all op.requestBody's then hash them and pull out common ones later + if (rbody) { + var ref = param.$ref; + var newParam = resolveInternal(openapi, param.$ref); + if (!newParam && ref.startsWith('#/')) { + throwOrWarn('Could not resolve reference ' + ref, param, options); + } + else { + if (newParam) + param = newParam; // preserve reference + } + } + } + if (param && (param.name || param.in)) { // if it's a real parameter OR we've dereferenced it + if (typeof param['x-deprecated'] === 'boolean') { + param.deprecated = param['x-deprecated']; + delete param['x-deprecated']; + } + if (typeof param['x-example'] !== 'undefined') { + param.example = param['x-example']; + delete param['x-example']; + } + if ((param.in != 'body') && (!param.type)) { + if (options.patch) { + options.patches++; + param.type = 'string'; + } + else { + throwError('(Patchable) parameter.type is mandatory for non-body parameters', options); + } + } + if (param.type && typeof param.type === 'object' && param.type.$ref) { + // $ref anywhere sensibility + param.type = resolveInternal(openapi, param.type.$ref); + } + if (param.type === 'file') { + param['x-s2o-originalType'] = param.type; + originalType = param.type; + } + if (param.description && typeof param.description === 'object' && param.description.$ref) { + // $ref anywhere sensibility + param.description = resolveInternal(openapi, param.description.$ref); + } + if (param.description === null) + delete param.description; + var oldCollectionFormat_1 = param.collectionFormat; + if ((param.type === 'array') && !oldCollectionFormat_1) { + oldCollectionFormat_1 = 'csv'; + } + if (oldCollectionFormat_1) { + if (param.type != 'array') { + if (options.patch) { + options.patches++; + delete param.collectionFormat; + } + else { + throwError('(Patchable) collectionFormat is only applicable to param.type array', options); + } + } + if ((oldCollectionFormat_1 === 'csv') && ((param.in === 'query') || (param.in === 'cookie'))) { + param.style = 'form'; + param.explode = false; + } + if ((oldCollectionFormat_1 === 'csv') && ((param.in === 'path') || (param.in === 'header'))) { + param.style = 'simple'; + } + if (oldCollectionFormat_1 === 'ssv') { + if (param.in === 'query') { + param.style = 'spaceDelimited'; + } + else { + throwOrWarn('collectionFormat:ssv is no longer supported except for in:query parameters', param, options); // not lossless + } + } + if (oldCollectionFormat_1 === 'pipes') { + if (param.in === 'query') { + param.style = 'pipeDelimited'; + } + else { + throwOrWarn('collectionFormat:pipes is no longer supported except for in:query parameters', param, options); // not lossless + } + } + if (oldCollectionFormat_1 === 'multi') { + param.explode = true; + } + if (oldCollectionFormat_1 === 'tsv') { + throwOrWarn('collectionFormat:tsv is no longer supported', param, options); // not lossless + param["x-collectionFormat"] = 'tsv'; + } + delete param.collectionFormat; + } + if (param.type && (param.type != 'object') && (param.type != 'body') && (param.in != 'formData')) { + if (param.items && param.schema) { + throwOrWarn('parameter has array,items and schema', param, options); + } + else { + if (param.schema) + options.patches++; // already present + if ((!param.schema) || (typeof param.schema !== 'object')) + param.schema = {}; + param.schema.type = param.type; + if (param.items) { + param.schema.items = param.items; + delete param.items; + recurse(param.schema.items, null, function (obj, key, state) { + if ((key === 'collectionFormat') && (typeof obj[key] === 'string')) { + if (oldCollectionFormat_1 && obj[key] !== oldCollectionFormat_1) { + throwOrWarn('Nested collectionFormats are not supported', param, options); + } + delete obj[key]; // not lossless + } + // items in 2.0 was a subset of the JSON-Schema items + // object, it gets fixed up below + }); + } + for (var _i = 0, _a = common.parameterTypeProperties; _i < _a.length; _i++) { + var prop = _a[_i]; + if (typeof param[prop] !== 'undefined') + param.schema[prop] = param[prop]; + delete param[prop]; + } + } + } + if (param.schema) { + fixUpSchema(param.schema, options); + } + if (param["x-ms-skip-url-encoding"]) { + if (param.in === 'query') { // might be in:path, not allowed in OAS3 + param.allowReserved = true; + delete param["x-ms-skip-url-encoding"]; + } + } + } + if (param && param.in === 'formData') { + // convert to requestBody component + singularRequestBody = false; + result.content = {}; + var contentType = 'application/x-www-form-urlencoded'; + if ((consumes.length) && (consumes.indexOf('multipart/form-data') >= 0)) { + contentType = 'multipart/form-data'; + } + result.content[contentType] = {}; + if (param.schema) { + result.content[contentType].schema = param.schema; + if (param.schema.$ref) { + result['x-s2o-name'] = decodeURIComponent(param.schema.$ref.replace('#/components/schemas/', '')); + } + } + else { + result.content[contentType].schema = {}; + result.content[contentType].schema.type = 'object'; + result.content[contentType].schema.properties = {}; + result.content[contentType].schema.properties[param.name] = {}; + var schema = result.content[contentType].schema; + var target = result.content[contentType].schema.properties[param.name]; + if (param.description) + target.description = param.description; + if (param.example) + target.example = param.example; + if (param.type) + target.type = param.type; + for (var _b = 0, _c = common.parameterTypeProperties; _b < _c.length; _b++) { + var prop = _c[_b]; + if (typeof param[prop] !== 'undefined') + target[prop] = param[prop]; + } + if (param.required === true) { + if (!schema.required) + schema.required = []; + schema.required.push(param.name); + result.required = true; + } + if (typeof param.default !== 'undefined') + target.default = param.default; + if (target.properties) + target.properties = param.properties; + if (param.allOf) + target.allOf = param.allOf; // new are anyOf, oneOf, not + if ((param.type === 'array') && (param.items)) { + target.items = param.items; + if (target.items.collectionFormat) + delete target.items.collectionFormat; + } + if ((originalType === 'file') || (param['x-s2o-originalType'] === 'file')) { + target.type = 'string'; + target.format = 'binary'; + } + // Copy any extensions on the form param to the target schema property. + copyExtensions(param, target); + } + } + else if (param && param.type === 'file') { + // convert to requestBody + if (param.required) + result.required = param.required; + result.content = {}; + result.content["application/octet-stream"] = {}; + result.content["application/octet-stream"].schema = {}; + result.content["application/octet-stream"].schema.type = 'string'; + result.content["application/octet-stream"].schema.format = 'binary'; + copyExtensions(param, result); + } + if (param && param.in === 'body') { + result.content = {}; + if (param.name) + result['x-s2o-name'] = (op && op.operationId ? common.sanitiseAll(op.operationId) : '') + ('_' + param.name).toCamelCase(); + if (param.description) + result.description = param.description; + if (param.required) + result.required = param.required; + // Set the "request body name" extension on the operation if requested. + if (op && options.rbname && param.name) { + op[options.rbname] = param.name; + } + if (param.schema && param.schema.$ref) { + result['x-s2o-name'] = decodeURIComponent(param.schema.$ref.replace('#/components/schemas/', '')); + } + else if (param.schema && (param.schema.type === 'array') && param.schema.items && param.schema.items.$ref) { + result['x-s2o-name'] = decodeURIComponent(param.schema.items.$ref.replace('#/components/schemas/', '')) + 'Array'; + } + if (!consumes.length) { + consumes.push('application/json'); // TODO verify default + } + for (var _d = 0, consumes_1 = consumes; _d < consumes_1.length; _d++) { + var mimetype = consumes_1[_d]; + result.content[mimetype] = {}; + result.content[mimetype].schema = clone(param.schema || {}); + fixUpSchema(result.content[mimetype].schema, options); + } + // Copy any extensions from the original parameter to the new requestBody + copyExtensions(param, result); + } + if (Object.keys(result).length > 0) { + param["x-s2o-delete"] = true; + // work out where to attach the requestBody + if (op) { + if (op.requestBody && singularRequestBody) { + op.requestBody["x-s2o-overloaded"] = true; + var opId = op.operationId || index; + throwOrWarn('Operation ' + opId + ' has multiple requestBodies', op, options); + } + else { + if (!op.requestBody) { + op = path[method] = attachRequestBody(op, options); // make sure we have one + } + if ((op.requestBody.content && op.requestBody.content["multipart/form-data"]) + && (op.requestBody.content["multipart/form-data"].schema) && (op.requestBody.content["multipart/form-data"].schema.properties) && (result.content["multipart/form-data"]) && (result.content["multipart/form-data"].schema) && (result.content["multipart/form-data"].schema.properties)) { + op.requestBody.content["multipart/form-data"].schema.properties = + Object.assign(op.requestBody.content["multipart/form-data"].schema.properties, result.content["multipart/form-data"].schema.properties); + op.requestBody.content["multipart/form-data"].schema.required = (op.requestBody.content["multipart/form-data"].schema.required || []).concat(result.content["multipart/form-data"].schema.required || []); + if (!op.requestBody.content["multipart/form-data"].schema.required.length) { + delete op.requestBody.content["multipart/form-data"].schema.required; + } + } + else if ((op.requestBody.content && op.requestBody.content["application/x-www-form-urlencoded"] && op.requestBody.content["application/x-www-form-urlencoded"].schema && op.requestBody.content["application/x-www-form-urlencoded"].schema.properties) + && result.content["application/x-www-form-urlencoded"] && result.content["application/x-www-form-urlencoded"].schema && result.content["application/x-www-form-urlencoded"].schema.properties) { + op.requestBody.content["application/x-www-form-urlencoded"].schema.properties = + Object.assign(op.requestBody.content["application/x-www-form-urlencoded"].schema.properties, result.content["application/x-www-form-urlencoded"].schema.properties); + op.requestBody.content["application/x-www-form-urlencoded"].schema.required = (op.requestBody.content["application/x-www-form-urlencoded"].schema.required || []).concat(result.content["application/x-www-form-urlencoded"].schema.required || []); + if (!op.requestBody.content["application/x-www-form-urlencoded"].schema.required.length) { + delete op.requestBody.content["application/x-www-form-urlencoded"].schema.required; + } + } + else { + op.requestBody = Object.assign(op.requestBody, result); + if (!op.requestBody['x-s2o-name']) { + if (op.requestBody.schema && op.requestBody.schema.$ref) { + op.requestBody['x-s2o-name'] = decodeURIComponent(op.requestBody.schema.$ref.replace('#/components/schemas/', '')).split('/').join(''); + } + else if (op.operationId) { + op.requestBody['x-s2o-name'] = common.sanitiseAll(op.operationId); + } + } + } + } + } + } + // tidy up + if (param && !param['x-s2o-delete']) { + delete param.type; + for (var _e = 0, _f = common.parameterTypeProperties; _e < _f.length; _e++) { + var prop = _f[_e]; + delete param[prop]; + } + if ((param.in === 'path') && ((typeof param.required === 'undefined') || (param.required !== true))) { + if (options.patch) { + options.patches++; + param.required = true; + } + else { + throwError('(Patchable) path parameters must be required:true [' + param.name + ' in ' + index + ']', options); + } + } + } + return op; +} +function copyExtensions(src, tgt) { + for (var prop in src) { + if (prop.startsWith('x-') && !prop.startsWith('x-s2o')) { + tgt[prop] = src[prop]; + } + } +} +function processResponse(response, name, op, openapi, options) { + if (!response) + return false; + if (response.$ref && (typeof response.$ref === 'string')) { + if (response.$ref.indexOf('#/definitions/') >= 0) { + //response.$ref = '#/components/schemas/'+common.sanitise(response.$ref.replace('#/definitions/','')); + throwOrWarn('definition used as response: ' + response.$ref, response, options); + } + else { + if (response.$ref.startsWith('#/responses/')) { + response.$ref = '#/components/responses/' + common.sanitise(decodeURIComponent(response.$ref.replace('#/responses/', ''))); + } + } + } + else { + if ((typeof response.description === 'undefined') || (response.description === null) + || ((response.description === '') && options.patch)) { + if (options.patch) { + if ((typeof response === 'object') && (!Array.isArray(response))) { + options.patches++; + response.description = (statusCodes[response] || ''); + } + } + else { + throwError('(Patchable) response.description is mandatory', options); + } + } + if (typeof response.schema !== 'undefined') { + fixUpSchema(response.schema, options); + if (response.schema.$ref && (typeof response.schema.$ref === 'string') && response.schema.$ref.startsWith('#/responses/')) { + response.schema.$ref = '#/components/responses/' + common.sanitise(decodeURIComponent(response.schema.$ref.replace('#/responses/', ''))); + } + if (op && op.produces && (typeof op.produces === 'string')) { + if (options.patch) { + options.patches++; + op.produces = [op.produces]; + } + else { + return throwError('(Patchable) operation.produces must be an array', options); + } + } + if (openapi.produces && !Array.isArray(openapi.produces)) + delete openapi.produces; + var produces = ((op ? op.produces : null) || (openapi.produces || [])).filter(common.uniqueOnly); + if (!produces.length) + produces.push('*/*'); // TODO verify default + response.content = {}; + for (var _i = 0, produces_1 = produces; _i < produces_1.length; _i++) { + var mimetype = produces_1[_i]; + response.content[mimetype] = {}; + response.content[mimetype].schema = clone(response.schema); + if (response.examples && response.examples[mimetype]) { + var example = {}; + example.value = response.examples[mimetype]; + response.content[mimetype].examples = {}; + response.content[mimetype].examples.response = example; + delete response.examples[mimetype]; + } + if (response.content[mimetype].schema.type === 'file') { + response.content[mimetype].schema = { type: 'string', format: 'binary' }; + } + } + delete response.schema; + } + // examples for content-types not listed in produces + for (var mimetype in response.examples) { + if (!response.content) + response.content = {}; + if (!response.content[mimetype]) + response.content[mimetype] = {}; + response.content[mimetype].examples = {}; + response.content[mimetype].examples.response = {}; + response.content[mimetype].examples.response.value = response.examples[mimetype]; + } + delete response.examples; + if (response.headers) { + for (var h in response.headers) { + if (h.toLowerCase() === 'status code') { + if (options.patch) { + options.patches++; + delete response.headers[h]; + } + else { + throwError('(Patchable) "Status Code" is not a valid header', options); + } + } + else { + processHeader(response.headers[h], options); + } + } + } + } +} +function processPaths(container, containerName, options, requestBodyCache, openapi) { + for (var p in container) { + var path = container[p]; + // path.$ref is external only + if (path && (path['x-trace']) && (typeof path['x-trace'] === 'object')) { + path.trace = path['x-trace']; + delete path['x-trace']; + } + if (path && (path['x-summary']) && (typeof path['x-summary'] === 'string')) { + path.summary = path['x-summary']; + delete path['x-summary']; + } + if (path && (path['x-description']) && (typeof path['x-description'] === 'string')) { + path.description = path['x-description']; + delete path['x-description']; + } + if (path && (path['x-servers']) && (Array.isArray(path['x-servers']))) { + path.servers = path['x-servers']; + delete path['x-servers']; + } + for (var method in path) { + if ((common.httpMethods.indexOf(method) >= 0) || (method === 'x-amazon-apigateway-any-method')) { + var op = path[method]; + if (op && op.parameters && Array.isArray(op.parameters)) { + if (path.parameters) { + var _loop_1 = function (param) { + if (typeof param.$ref === 'string') { + fixParamRef(param, options); + param = resolveInternal(openapi, param.$ref); + } + var match = op.parameters.find(function (e, i, a) { + return ((e.name === param.name) && (e.in === param.in)); + }); + if (!match && ((param.in === 'formData') || (param.in === 'body') || (param.type === 'file'))) { + op = processParameter(param, op, path, method, p, openapi, options); + if (options.rbname && op[options.rbname] === '') { + delete op[options.rbname]; + } + } + }; + for (var _i = 0, _a = path.parameters; _i < _a.length; _i++) { + var param = _a[_i]; + _loop_1(param); + } + } + for (var _b = 0, _c = op.parameters; _b < _c.length; _b++) { + var param = _c[_b]; + op = processParameter(param, op, path, method, method + ':' + p, openapi, options); + } + if (options.rbname && op[options.rbname] === '') { + delete op[options.rbname]; + } + if (!options.debug) { + if (op.parameters) + op.parameters = op.parameters.filter(keepParameters); + } + } + if (op && op.security) + processSecurity(op.security); + //don't need to remove requestBody for non-supported ops as they "SHALL be ignored" + // responses + if (typeof op === 'object') { + if (!op.responses) { + var defaultResp = {}; + defaultResp.description = 'Default response'; + op.responses = { default: defaultResp }; + } + for (var r in op.responses) { + var response = op.responses[r]; + processResponse(response, r, op, openapi, options); + } + } + if (op && (op['x-servers']) && (Array.isArray(op['x-servers']))) { + op.servers = op['x-servers']; + delete op['x-servers']; + } + else if (op && op.schemes && op.schemes.length) { + for (var _d = 0, _e = op.schemes; _d < _e.length; _d++) { + var scheme = _e[_d]; + if ((!openapi.schemes) || (openapi.schemes.indexOf(scheme) < 0)) { + if (!op.servers) { + op.servers = []; + } + if (Array.isArray(openapi.servers)) { + for (var _f = 0, _g = openapi.servers; _f < _g.length; _f++) { + var server = _g[_f]; + var newServer = clone(server); + var serverUrl = url.parse(newServer.url); + serverUrl.protocol = scheme; + newServer.url = serverUrl.format(); + op.servers.push(newServer); + } + } + } + } + } + if (options.debug) { + op["x-s2o-consumes"] = op.consumes || []; + op["x-s2o-produces"] = op.produces || []; + } + if (op) { + delete op.consumes; + delete op.produces; + delete op.schemes; + if (op["x-ms-examples"]) { + for (var e in op["x-ms-examples"]) { + var example = op["x-ms-examples"][e]; + var se = common.sanitiseAll(e); + if (example.parameters) { + for (var p_1 in example.parameters) { + var value = example.parameters[p_1]; + for (var _h = 0, _j = (op.parameters || []).concat(path.parameters || []); _h < _j.length; _h++) { + var param = _j[_h]; + if (param.$ref) { + param = jptr.jptr(openapi, param.$ref); + } + if ((param.name === p_1) && (!param.example)) { + if (!param.examples) { + param.examples = {}; + } + param.examples[e] = { value: value }; + } + } + } + } + if (example.responses) { + for (var r in example.responses) { + if (example.responses[r].headers) { + for (var h in example.responses[r].headers) { + var value = example.responses[r].headers[h]; + for (var rh in op.responses[r].headers) { + if (rh === h) { + var header = op.responses[r].headers[rh]; + header.example = value; + } + } + } + } + if (example.responses[r].body) { + openapi.components.examples[se] = { value: clone(example.responses[r].body) }; + if (op.responses[r] && op.responses[r].content) { + for (var ct in op.responses[r].content) { + var contentType = op.responses[r].content[ct]; + if (!contentType.examples) { + contentType.examples = {}; + } + contentType.examples[e] = { $ref: '#/components/examples/' + se }; + } + } + } + } + } + } + delete op["x-ms-examples"]; + } + if (op.parameters && op.parameters.length === 0) + delete op.parameters; + if (op.requestBody) { + var effectiveOperationId = op.operationId ? common.sanitiseAll(op.operationId) : common.sanitiseAll(method + p).toCamelCase(); + var rbName = common.sanitise(op.requestBody['x-s2o-name'] || effectiveOperationId || ''); + delete op.requestBody['x-s2o-name']; + var rbStr = JSON.stringify(op.requestBody); + var rbHash = common.hash(rbStr); + if (!requestBodyCache[rbHash]) { + var entry = {}; + entry.name = rbName; + entry.body = op.requestBody; + entry.refs = []; + requestBodyCache[rbHash] = entry; + } + var ptr = '#/' + containerName + '/' + encodeURIComponent(jptr.jpescape(p)) + '/' + method + '/requestBody'; + requestBodyCache[rbHash].refs.push(ptr); + } + } + } + } + if (path && path.parameters) { + for (var p2 in path.parameters) { + var param = path.parameters[p2]; + processParameter(param, null, path, null, p, openapi, options); // index here is the path string + } + if (!options.debug && Array.isArray(path.parameters)) { + path.parameters = path.parameters.filter(keepParameters); + } + } + } +} +function main(openapi, options) { + var requestBodyCache = {}; + componentNames = { schemas: {} }; + if (openapi.security) + processSecurity(openapi.security); + for (var s in openapi.components.securitySchemes) { + var sname = common.sanitise(s); + if (s != sname) { + if (openapi.components.securitySchemes[sname]) { + throwError('Duplicate sanitised securityScheme name ' + sname, options); + } + openapi.components.securitySchemes[sname] = openapi.components.securitySchemes[s]; + delete openapi.components.securitySchemes[s]; + } + processSecurityScheme(openapi.components.securitySchemes[sname], options); + } + for (var s in openapi.components.schemas) { + var sname = common.sanitiseAll(s); + var suffix = ''; + if (s != sname) { + while (openapi.components.schemas[sname + suffix]) { + // @ts-ignore + suffix = (suffix ? ++suffix : 2); + } + openapi.components.schemas[sname + suffix] = openapi.components.schemas[s]; + delete openapi.components.schemas[s]; + } + componentNames.schemas[s] = sname + suffix; + fixUpSchema(openapi.components.schemas[sname + suffix], options); + } + // fix all $refs to their new locations (and potentially new names) + options.refmap = {}; + recurse(openapi, { payload: { options: options } }, fixupRefs); + dedupeRefs(openapi, options); + for (var p in openapi.components.parameters) { + var sname = common.sanitise(p); + if (p != sname) { + if (openapi.components.parameters[sname]) { + throwError('Duplicate sanitised parameter name ' + sname, options); + } + openapi.components.parameters[sname] = openapi.components.parameters[p]; + delete openapi.components.parameters[p]; + } + var param = openapi.components.parameters[sname]; + processParameter(param, null, null, null, sname, openapi, options); + } + for (var r in openapi.components.responses) { + var sname = common.sanitise(r); + if (r != sname) { + if (openapi.components.responses[sname]) { + throwError('Duplicate sanitised response name ' + sname, options); + } + openapi.components.responses[sname] = openapi.components.responses[r]; + delete openapi.components.responses[r]; + } + var response = openapi.components.responses[sname]; + processResponse(response, sname, null, openapi, options); + if (response.headers) { + for (var h in response.headers) { + if (h.toLowerCase() === 'status code') { + if (options.patch) { + options.patches++; + delete response.headers[h]; + } + else { + throwError('(Patchable) "Status Code" is not a valid header', options); + } + } + else { + processHeader(response.headers[h], options); + } + } + } + } + for (var r in openapi.components.requestBodies) { // converted ones + var rb = openapi.components.requestBodies[r]; + var rbStr = JSON.stringify(rb); + var rbHash = common.hash(rbStr); + var entry = {}; + entry.name = r; + entry.body = rb; + entry.refs = []; + requestBodyCache[rbHash] = entry; + } + processPaths(openapi.paths, 'paths', options, requestBodyCache, openapi); + if (openapi["x-ms-paths"]) { + processPaths(openapi["x-ms-paths"], 'x-ms-paths', options, requestBodyCache, openapi); + } + if (!options.debug) { + for (var p in openapi.components.parameters) { + var param = openapi.components.parameters[p]; + if (param["x-s2o-delete"]) { + delete openapi.components.parameters[p]; + } + } + } + if (options.debug) { + openapi["x-s2o-consumes"] = openapi.consumes || []; + openapi["x-s2o-produces"] = openapi.produces || []; + } + delete openapi.consumes; + delete openapi.produces; + delete openapi.schemes; + var rbNamesGenerated = []; + openapi.components.requestBodies = {}; // for now as we've dereffed them + if (!options.resolveInternal) { + var counter = 1; + for (var e in requestBodyCache) { + var entry = requestBodyCache[e]; + if (entry.refs.length > 1) { + // create a shared requestBody + var suffix = ''; + if (!entry.name) { + entry.name = 'requestBody'; + // @ts-ignore + suffix = counter++; + } + while (rbNamesGenerated.indexOf(entry.name + suffix) >= 0) { + // @ts-ignore - this can happen if descriptions are not exactly the same (e.g. bitbucket) + suffix = (suffix ? ++suffix : 2); + } + entry.name = entry.name + suffix; + rbNamesGenerated.push(entry.name); + openapi.components.requestBodies[entry.name] = clone(entry.body); + for (var r in entry.refs) { + var ref = {}; + ref.$ref = '#/components/requestBodies/' + entry.name; + jptr.jptr(openapi, entry.refs[r], ref); + } + } + } + } + if (openapi.components.responses && Object.keys(openapi.components.responses).length === 0) { + delete openapi.components.responses; + } + if (openapi.components.parameters && Object.keys(openapi.components.parameters).length === 0) { + delete openapi.components.parameters; + } + if (openapi.components.examples && Object.keys(openapi.components.examples).length === 0) { + delete openapi.components.examples; + } + if (openapi.components.requestBodies && Object.keys(openapi.components.requestBodies).length === 0) { + delete openapi.components.requestBodies; + } + if (openapi.components.securitySchemes && Object.keys(openapi.components.securitySchemes).length === 0) { + delete openapi.components.securitySchemes; + } + if (openapi.components.headers && Object.keys(openapi.components.headers).length === 0) { + delete openapi.components.headers; + } + if (openapi.components.schemas && Object.keys(openapi.components.schemas).length === 0) { + delete openapi.components.schemas; + } + if (openapi.components && Object.keys(openapi.components).length === 0) { + delete openapi.components; + } + return openapi; +} +function extractServerParameters(server) { + if (!server || !server.url || (typeof server.url !== 'string')) + return server; + server.url = server.url.split('{{').join('{'); + server.url = server.url.split('}}').join('}'); + server.url.replace(/\{(.+?)\}/g, function (match, group1) { + if (!server.variables) { + server.variables = {}; + } + server.variables[group1] = { default: 'unknown' }; + }); + return server; +} +function fixInfo(openapi, options, reject) { + if ((typeof openapi.info === 'undefined') || (openapi.info === null)) { + if (options.patch) { + options.patches++; + openapi.info = { version: '', title: '' }; + } + else { + return reject(new S2OError('(Patchable) info object is mandatory')); + } + } + if ((typeof openapi.info !== 'object') || (Array.isArray(openapi.info))) { + return reject(new S2OError('info must be an object')); + } + if ((typeof openapi.info.title === 'undefined') || (openapi.info.title === null)) { + if (options.patch) { + options.patches++; + openapi.info.title = ''; + } + else { + return reject(new S2OError('(Patchable) info.title cannot be null')); + } + } + if ((typeof openapi.info.version === 'undefined') || (openapi.info.version === null)) { + if (options.patch) { + options.patches++; + openapi.info.version = ''; + } + else { + return reject(new S2OError('(Patchable) info.version cannot be null')); + } + } + if (typeof openapi.info.version !== 'string') { + if (options.patch) { + options.patches++; + openapi.info.version = openapi.info.version.toString(); + } + else { + return reject(new S2OError('(Patchable) info.version must be a string')); + } + } + if (typeof openapi.info.logo !== 'undefined') { + if (options.patch) { + options.patches++; + openapi.info['x-logo'] = openapi.info.logo; + delete openapi.info.logo; + } + else + return reject(new S2OError('(Patchable) info should not have logo property')); + } + if (typeof openapi.info.termsOfService !== 'undefined') { + if (openapi.info.termsOfService === null) { + if (options.patch) { + options.patches++; + openapi.info.termsOfService = ''; + } + else { + return reject(new S2OError('(Patchable) info.termsOfService cannot be null')); + } + } + if (url.URL && options.whatwg) { + try { + url.URL.parse(openapi.info.termsOfService); + } + catch (ex) { + if (options.patch) { + options.patches++; + delete openapi.info.termsOfService; + } + else + return reject(new S2OError('(Patchable) info.termsOfService must be a URL')); + } + } + } +} +function fixPaths(openapi, options, reject) { + if (typeof openapi.paths === 'undefined') { + if (options.patch) { + options.patches++; + openapi.paths = {}; + } + else { + return reject(new S2OError('(Patchable) paths object is mandatory')); + } + } +} +function detectObjectReferences(obj, options) { + var seen = new WeakSet(); + recurse(obj, { identityDetection: true }, function (obj, key, state) { + if ((typeof obj[key] === 'object') && (obj[key] !== null)) { + if (seen.has(obj[key])) { + if (options.anchors) { + obj[key] = clone(obj[key]); + } + else { + throwError('YAML anchor or merge key at ' + state.path, options); + } + } + else { + seen.add(obj[key]); + } + } + }); +} +function convertObj(swagger, options, callback) { + return maybe(callback, new Promise(function (resolve, reject) { + if (!swagger) + swagger = {}; + options.original = swagger; + if (!options.text) + options.text = yaml.stringify(swagger); + options.externals = []; + options.externalRefs = {}; + options.rewriteRefs = true; // avoids stack explosions + options.preserveMiro = true; + options.promise = {}; + options.promise.resolve = resolve; + options.promise.reject = reject; + options.patches = 0; + if (!options.cache) + options.cache = {}; + if (options.source) + options.cache[options.source] = options.original; + detectObjectReferences(swagger, options); + if (swagger.openapi && (typeof swagger.openapi === 'string') && swagger.openapi.startsWith('3.')) { + options.openapi = cclone(swagger); + fixInfo(options.openapi, options, reject); + fixPaths(options.openapi, options, reject); + resolver.optionalResolve(options) // is a no-op if options.resolve is not set + .then(function () { + if (options.direct) { + return resolve(options.openapi); + } + else { + return resolve(options); + } + }) + .catch(function (ex) { + console.warn(ex); + reject(ex); + }); + return; // we should have resolved or rejected by now + } + if ((!swagger.swagger) || (swagger.swagger != "2.0")) { + return reject(new S2OError('Unsupported swagger/OpenAPI version: ' + (swagger.openapi ? swagger.openapi : swagger.swagger))); + } + var openapi = options.openapi = {}; + openapi.openapi = (typeof options.targetVersion === 'string' && options.targetVersion.startsWith('3.')) ? options.targetVersion : targetVersion; // semver + if (options.origin) { + if (!openapi["x-origin"]) { + openapi["x-origin"] = []; + } + var origin = {}; + origin.url = options.source || options.origin; + origin.format = 'swagger'; + origin.version = swagger.swagger; + origin.converter = {}; + origin.converter.url = 'https://github.com/mermade/oas-kit'; + origin.converter.version = ourVersion; + openapi["x-origin"].push(origin); + } + // we want the new and existing properties to appear in a sensible order. Not guaranteed + openapi = Object.assign(openapi, cclone(swagger)); + delete openapi.swagger; + recurse(openapi, {}, function (obj, key, state) { + if ((obj[key] === null) && (!key.startsWith('x-')) && key !== 'default' && (state.path.indexOf('/example') < 0)) + delete obj[key]; // this saves *so* much grief later + }); + if (swagger.host) { + for (var _i = 0, _a = (Array.isArray(swagger.schemes) ? swagger.schemes : ['']); _i < _a.length; _i++) { + var s = _a[_i]; + var server = {}; + server.url = (s ? s + ':' : '') + '//' + swagger.host + (swagger.basePath ? swagger.basePath : ''); + extractServerParameters(server); + if (!openapi.servers) + openapi.servers = []; + openapi.servers.push(server); + } + } + else if (swagger.basePath) { + var server = {}; + server.url = swagger.basePath; + extractServerParameters(server); + if (!openapi.servers) + openapi.servers = []; + openapi.servers.push(server); + } + delete openapi.host; + delete openapi.basePath; + if (openapi['x-servers'] && Array.isArray(openapi['x-servers'])) { + openapi.servers = openapi['x-servers']; + delete openapi['x-servers']; + } + // TODO APIMatic extensions (x-server-configuration) ? + if (swagger['x-ms-parameterized-host']) { + var xMsPHost = swagger['x-ms-parameterized-host']; + var server_1 = {}; + server_1.url = xMsPHost.hostTemplate + (swagger.basePath ? swagger.basePath : ''); + server_1.variables = {}; + for (var msp in xMsPHost.parameters) { + var param = xMsPHost.parameters[msp]; + if (param.$ref) { + param = clone(resolveInternal(openapi, param.$ref)); + } + if (!msp.startsWith('x-')) { + delete param.required; // all true + delete param.type; // all strings + delete param.in; // all 'host' + if (typeof param.default === 'undefined') { + if (param.enum) { + param.default = param.enum[0]; + } + else { + param.default = ''; + } + } + server_1.variables[param.name] = param; + delete param.name; + } + } + if (!openapi.servers) + openapi.servers = []; + if (xMsPHost.useSchemePrefix === false) { + // The server URL already includes a protocol scheme + openapi.servers.push(server_1); + } + else { + // Define this server once for each given protocol scheme + swagger.schemes.forEach(function (scheme) { + openapi.servers.push(Object.assign({}, server_1, { url: scheme + '://' + server_1.url })); + }); + } + delete openapi['x-ms-parameterized-host']; + } + fixInfo(openapi, options, reject); + fixPaths(openapi, options, reject); + if (typeof openapi.consumes === 'string') { + openapi.consumes = [openapi.consumes]; + } + if (typeof openapi.produces === 'string') { + openapi.produces = [openapi.produces]; + } + openapi.components = {}; + if (openapi['x-callbacks']) { + openapi.components.callbacks = openapi['x-callbacks']; + delete openapi['x-callbacks']; + } + openapi.components.examples = {}; + openapi.components.headers = {}; + if (openapi['x-links']) { + openapi.components.links = openapi['x-links']; + delete openapi['x-links']; + } + openapi.components.parameters = openapi.parameters || {}; + openapi.components.responses = openapi.responses || {}; + openapi.components.requestBodies = {}; + openapi.components.securitySchemes = openapi.securityDefinitions || {}; + openapi.components.schemas = openapi.definitions || {}; + delete openapi.definitions; + delete openapi.responses; + delete openapi.parameters; + delete openapi.securityDefinitions; + resolver.optionalResolve(options) // is a no-op if options.resolve is not set + .then(function () { + main(options.openapi, options); + if (options.direct) { + resolve(options.openapi); + } + else { + resolve(options); + } + }) + .catch(function (ex) { + console.warn(ex); + reject(ex); + }); + })); +} +function convertStr(str, options, callback) { + return maybe(callback, new Promise(function (resolve, reject) { + var obj = null; + var error = null; + try { + obj = JSON.parse(str); + options.text = JSON.stringify(obj, null, 2); + } + catch (ex) { + error = ex; + try { + obj = yaml.parse(str, { schema: 'core', prettyErrors: true }); + options.sourceYaml = true; + options.text = str; + } + catch (ex) { + error = ex; + } + } + if (obj) { + convertObj(obj, options) + .then(function (options) { return resolve(options); }) + .catch(function (ex) { return reject(ex); }); + } + else { + reject(new S2OError(error ? error.message : 'Could not parse string')); + } + })); +} +function convertUrl(url, options, callback) { + return maybe(callback, new Promise(function (resolve, reject) { + options.origin = true; + if (!options.source) { + options.source = url; + } + if (options.verbose) { + console.warn('GET ' + url); + } + if (!options.fetch) { + options.fetch = fetch; + } + var fetchOptions = Object.assign({}, options.fetchOptions, { agent: options.agent }); + options.fetch(url, fetchOptions).then(function (res) { + if (res.status !== 200) + throw new S2OError("Received status code " + res.status + ": " + url); + return res.text(); + }).then(function (body) { + convertStr(body, options) + .then(function (options) { return resolve(options); }) + .catch(function (ex) { return reject(ex); }); + }).catch(function (err) { + reject(err); + }); + })); +} +function convertFile(filename, options, callback) { + return maybe(callback, new Promise(function (resolve, reject) { + fs.readFile(filename, options.encoding || 'utf8', function (err, s) { + if (err) { + reject(err); + } + else { + options.sourceFile = filename; + convertStr(s, options) + .then(function (options) { return resolve(options); }) + .catch(function (ex) { return reject(ex); }); + } + }); + })); +} +function convertStream(readable, options, callback) { + return maybe(callback, new Promise(function (resolve, reject) { + var data = ''; + readable.on('data', function (chunk) { + data += chunk; + }) + .on('end', function () { + convertStr(data, options) + .then(function (options) { return resolve(options); }) + .catch(function (ex) { return reject(ex); }); + }); + })); +} +module.exports = { + S2OError: S2OError, + targetVersion: targetVersion, + convert: convertObj, + convertObj: convertObj, + convertUrl: convertUrl, + convertStr: convertStr, + convertFile: convertFile, + convertStream: convertStream +}; + + +/***/ }), +/* 40 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +function areInputsEqual(newInputs, lastInputs) { + if (newInputs.length !== lastInputs.length) { + return false; + } + for (var i = 0; i < newInputs.length; i++) { + if (newInputs[i] !== lastInputs[i]) { + return false; + } + } + return true; +} + +function memoizeOne(resultFn, isEqual) { + if (isEqual === void 0) { isEqual = areInputsEqual; } + var lastThis; + var lastArgs = []; + var lastResult; + var calledOnce = false; + function memoized() { + var newArgs = []; + for (var _i = 0; _i < arguments.length; _i++) { + newArgs[_i] = arguments[_i]; + } + if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) { + return lastResult; + } + lastResult = resultFn.apply(this, newArgs); + calledOnce = true; + lastThis = this; + lastArgs = newArgs; + return lastResult; + } + return memoized; +} + +module.exports = memoizeOne; + + +/***/ }), +/* 41 */ +/***/ (function(module, exports) { + +module.exports = require("react-dropdown-aria"); + +/***/ }), +/* 42 */ +/***/ (function(module, exports) { + +module.exports = require("dompurify"); + +/***/ }), +/* 43 */ +/***/ (function(module, exports) { + +module.exports = require("classnames"); + +/***/ }), +/* 44 */ +/***/ (function(module, exports) { + +module.exports = require("call-me-maybe"); + +/***/ }), +/* 45 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var tslib_1 = __webpack_require__(1); +var fs = __webpack_require__(27); +var path = __webpack_require__(18); +var url = __webpack_require__(5); +var fetch = __webpack_require__(15); +var yaml = __webpack_require__(15); +var jptr = __webpack_require__(16).jptr; +var recurse = __webpack_require__(22).recurse; +var clone = __webpack_require__(17).clone; +var deRef = __webpack_require__(46).dereference; +var isRef = __webpack_require__(21).isRef; +var common = __webpack_require__(28); +function unique(arr) { + return tslib_1.__spreadArrays(new Set(arr)); +} +function readFileAsync(filename, encoding) { + return new Promise(function (resolve, reject) { + fs.readFile(filename, encoding, function (err, data) { + if (err) + reject(err); + else + resolve(data); + }); + }); +} +function resolveAllFragment(obj, context, src, parentPath, base, options) { + var attachPoint = options.externalRefs[src + parentPath].paths[0]; + var baseUrl = url.parse(base); + var seen = {}; // seen is indexed by the $ref value and contains path replacements + var changes = 1; + while (changes) { + changes = 0; + recurse(obj, { identityDetection: true }, function (obj, key, state) { + if (isRef(obj, key)) { + if (obj[key].startsWith('#')) { + if (!seen[obj[key]] && !obj.$fixed) { + var target = clone(jptr(context, obj[key])); + if (options.verbose > 1) + console.warn((target === false ? common.colour.red : common.colour.green) + 'Fragment resolution', obj[key], common.colour.normal); + /* + ResolutionCase:A is where there is a local reference in an externally + referenced document, and we have not seen it before. The reference + is replaced by a copy of the data pointed to, which may be outside this fragment + but within the context of the external document + */ + if (target === false) { + state.parent[state.pkey] = {}; /* case:A(2) where the resolution fails */ + if (options.fatal) { + var ex = new Error('Fragment $ref resolution failed ' + obj[key]); + if (options.promise) + options.promise.reject(ex); + else + throw (ex); + } + } + else { + changes++; + state.parent[state.pkey] = target; + seen[obj[key]] = state.path.replace('/%24ref', ''); + } + } + else { + if (!obj.$fixed) { + var newRef = (attachPoint + '/' + seen[obj[key]]).split('/#/').join('/'); + state.parent[state.pkey] = { $ref: newRef, 'x-miro': obj[key], $fixed: true }; + if (options.verbose > 1) + console.warn('Replacing with', newRef); + changes++; + } + /* + ResolutionCase:B is where there is a local reference in an externally + referenced document, and we have seen this reference before and resolved it. + We create a new object containing the (immutable) $ref string + */ + } + } + else if (baseUrl.protocol) { + var newRef = url.resolve(base, obj[key]).toString(); + if (options.verbose > 1) + console.warn(common.colour.yellow + 'Rewriting external url ref', obj[key], 'as', newRef, common.colour.normal); + obj['x-miro'] = obj[key]; + obj[key] = newRef; + } + else if (!obj['x-miro']) { + var newRef = url.resolve(base, obj[key]).toString(); + if (options.verbose > 1) + console.warn(common.colour.yellow + 'Rewriting external ref', obj[key], 'as', newRef, common.colour.normal); + obj['x-miro'] = obj[key]; // we use x-miro as a flag so we don't do this > once + obj[key] = newRef; + } + } + }); + } + recurse(obj, {}, function (obj, key, state) { + if (isRef(obj, key)) { + if (typeof obj.$fixed !== 'undefined') + delete obj.$fixed; + } + }); + if (options.verbose > 1) + console.warn('Finished fragment resolution'); + return obj; +} +function filterData(data, options) { + if (!options.filters || !options.filters.length) + return data; + for (var _i = 0, _a = options.filters; _i < _a.length; _i++) { + var filter = _a[_i]; + data = filter(data, options); + } + return data; +} +function testProtocol(input, backup) { + if (input && input.length > 2) + return input; + if (backup && backup.length > 2) + return backup; + return 'file:'; +} +function resolveExternal(root, pointer, options, callback) { + var u = url.parse(options.source); + var base = options.source.split('\\').join('/').split('/'); + var doc = base.pop(); // drop the actual filename + if (!doc) + base.pop(); // in case it ended with a / + var fragment = ''; + var fnComponents = pointer.split('#'); + if (fnComponents.length > 1) { + fragment = '#' + fnComponents[1]; + pointer = fnComponents[0]; + } + base = base.join('/'); + var u2 = url.parse(pointer); + var effectiveProtocol = testProtocol(u2.protocol, u.protocol); + var target; + if (effectiveProtocol === 'file:') { + target = path.resolve(base ? base + '/' : '', pointer); + } + else { + target = url.resolve(base ? base + '/' : '', pointer); + } + if (options.cache[target]) { + if (options.verbose) + console.warn('CACHED', target, fragment); + /* + resolutionSource:A this is where we have cached the externally-referenced document from a + file, http or custom handler + */ + var context = clone(options.cache[target]); + var data = options.externalRef = context; + if (fragment) { + data = jptr(data, fragment); + if (data === false) { + data = {}; // case:A(2) where the resolution fails + if (options.fatal) { + var ex = new Error('Cached $ref resolution failed ' + target + fragment); + if (options.promise) + options.promise.reject(ex); + else + throw (ex); + } + } + } + data = resolveAllFragment(data, context, pointer, fragment, target, options); + data = filterData(data, options); + callback(clone(data), target, options); + return Promise.resolve(data); + } + if (options.verbose) + console.warn('GET', target, fragment); + if (options.handlers && options.handlers[effectiveProtocol]) { + return options.handlers[effectiveProtocol](base, pointer, fragment, options) + .then(function (data) { + options.externalRef = data; + data = filterData(data, options); + options.cache[target] = data; + callback(data, target, options); + return data; + }) + .catch(function (ex) { + if (options.verbose) + console.warn(ex); + throw (ex); + }); + } + else if (effectiveProtocol && effectiveProtocol.startsWith('http')) { + var fetchOptions = Object.assign({}, options.fetchOptions, { agent: options.agent }); + return options.fetch(target, fetchOptions) + .then(function (res) { + if (res.status !== 200) + throw new Error("Received status code " + res.status + ": " + target); + return res.text(); + }) + .then(function (data) { + try { + var context = yaml.parse(data, { schema: 'core', prettyErrors: true }); + data = options.externalRef = context; + options.cache[target] = clone(data); + /* resolutionSource:B, from the network, data is fresh, but we clone it into the cache */ + if (fragment) { + data = jptr(data, fragment); + if (data === false) { + data = {}; /* case:B(2) where the resolution fails */ + if (options.fatal) { + var ex = new Error('Remote $ref resolution failed ' + target + fragment); + if (options.promise) + options.promise.reject(ex); + else + throw (ex); + } + } + } + data = resolveAllFragment(data, context, pointer, fragment, target, options); + data = filterData(data, options); + } + catch (ex) { + if (options.verbose) + console.warn(ex); + if (options.promise && options.fatal) + options.promise.reject(ex); + else + throw (ex); + } + callback(data, target, options); + return data; + }) + .catch(function (err) { + if (options.verbose) + console.warn(err); + options.cache[target] = {}; + if (options.promise && options.fatal) + options.promise.reject(err); + else + throw (err); + }); + } + else { + return readFileAsync(target, options.encoding || 'utf8') + .then(function (data) { + try { + var context = yaml.parse(data, { schema: 'core', prettyErrors: true }); + data = options.externalRef = context; + /* + resolutionSource:C from a file, data is fresh but we clone it into the cache + */ + options.cache[target] = clone(data); + if (fragment) { + data = jptr(data, fragment); + if (data === false) { + data = {}; /* case:C(2) where the resolution fails */ + if (options.fatal) { + var ex = new Error('File $ref resolution failed ' + target + fragment); + if (options.promise) + options.promise.reject(ex); + else + throw (ex); + } + } + } + data = resolveAllFragment(data, context, pointer, fragment, target, options); + data = filterData(data, options); + } + catch (ex) { + if (options.verbose) + console.warn(ex); + if (options.promise && options.fatal) + options.promise.reject(ex); + else + throw (ex); + } + callback(data, target, options); + return data; + }) + .catch(function (err) { + if (options.verbose) + console.warn(err); + if (options.promise && options.fatal) + options.promise.reject(err); + else + throw (err); + }); + } +} +function scanExternalRefs(options) { + return new Promise(function (res, rej) { + function inner(obj, key, state) { + if (obj[key] && isRef(obj[key], '$ref')) { + var $ref_1 = obj[key].$ref; + if (!$ref_1.startsWith('#')) { // is external + var $extra = ''; + if (!refs[$ref_1]) { + var potential = Object.keys(refs).find(function (e, i, a) { + return $ref_1.startsWith(e + '/'); + }); + if (potential) { + if (options.verbose) + console.warn('Found potential subschema at', potential); + $extra = '/' + ($ref_1.split('#')[1] || '').replace(potential.split('#')[1] || ''); + $extra = $extra.split('/undefined').join(''); // FIXME + $ref_1 = potential; + } + } + if (!refs[$ref_1]) { + refs[$ref_1] = { resolved: false, paths: [], extras: {}, description: obj[key].description }; + } + if (refs[$ref_1].resolved) { + if (options.rewriteRefs) { + // we've already seen it + var newRef = refs[$ref_1].resolvedAt; + if (options.verbose > 1) + console.warn('Rewriting ref', $ref_1, newRef); + obj[key]['x-miro'] = $ref_1; + obj[key].$ref = newRef + $extra; // resolutionCase:C (new string) + } + else { + obj[key] = clone(refs[$ref_1].data); // resolutionCase:D (cloned:yes) + } + } + else { + refs[$ref_1].paths.push(state.path); + refs[$ref_1].extras[state.path] = $extra; + } + } + } + } + var refs = options.externalRefs; + if ((options.resolver.depth > 0) && (options.source === options.resolver.base)) { + // we only need to do any of this when called directly on pass #1 + return res(refs); + } + recurse(options.openapi.definitions, { identityDetection: true, path: '#/definitions' }, inner); + recurse(options.openapi.components, { identityDetection: true, path: '#/components' }, inner); + recurse(options.openapi, { identityDetection: true }, inner); + res(refs); + }); +} +function findExternalRefs(options) { + return new Promise(function (res, rej) { + scanExternalRefs(options) + .then(function (refs) { + var _loop_1 = function (ref) { + if (!refs[ref].resolved) { + var depth = options.resolver.depth; + if (depth > 0) + depth++; + options.resolver.actions[depth].push(function () { + return resolveExternal(options.openapi, ref, options, function (data, source, options) { + if (!refs[ref].resolved) { + var external = {}; + external.context = refs[ref]; + external.$ref = ref; + external.original = clone(data); + external.updated = data; + external.source = source; + options.externals.push(external); + refs[ref].resolved = true; + } + var localOptions = Object.assign({}, options, { source: '', + resolver: { actions: options.resolver.actions, + depth: options.resolver.actions.length - 1, base: options.resolver.base } }); + if (options.patch && refs[ref].description && !data.description && + (typeof data === 'object')) { + data.description = refs[ref].description; + } + refs[ref].data = data; + // sorting $refs by length causes bugs (due to overlapping regions?) + var pointers = unique(refs[ref].paths); + pointers = pointers.sort(function (a, b) { + var aComp = (a.startsWith('#/components/') || a.startsWith('#/definitions/')); + var bComp = (b.startsWith('#/components/') || b.startsWith('#/definitions/')); + if (aComp && !bComp) + return -1; + if (bComp && !aComp) + return +1; + return 0; + }); + for (var _i = 0, pointers_1 = pointers; _i < pointers_1.length; _i++) { + var ptr = pointers_1[_i]; + // shared x-ms-examples $refs confuse the fixupRefs heuristic in index.js + if (refs[ref].resolvedAt && (ptr !== refs[ref].resolvedAt) && (ptr.indexOf('x-ms-examples/') < 0)) { + if (options.verbose > 1) + console.warn('Creating pointer to data at', ptr); + jptr(options.openapi, ptr, { $ref: refs[ref].resolvedAt + refs[ref].extras[ptr], 'x-miro': ref + refs[ref].extras[ptr] }); // resolutionCase:E (new object) + } + else { + if (refs[ref].resolvedAt) { + if (options.verbose > 1) + console.warn('Avoiding circular reference'); + } + else { + refs[ref].resolvedAt = ptr; + if (options.verbose > 1) + console.warn('Creating initial clone of data at', ptr); + } + var cdata = clone(data); + jptr(options.openapi, ptr, cdata); // resolutionCase:F (cloned:yes) + } + } + if (options.resolver.actions[localOptions.resolver.depth].length === 0) { + //options.resolver.actions[localOptions.resolver.depth].push(function () { return scanExternalRefs(localOptions) }); + options.resolver.actions[localOptions.resolver.depth].push(function () { return findExternalRefs(localOptions); }); // findExternalRefs calls scanExternalRefs + } + }); + }); + } + }; + for (var ref in refs) { + _loop_1(ref); + } + }) + .catch(function (ex) { + if (options.verbose) + console.warn(ex); + rej(ex); + }); + var result = { options: options }; + result.actions = options.resolver.actions[options.resolver.depth]; + res(result); + }); +} +var serial = function (funcs) { + return funcs.reduce(function (promise, func) { + return promise.then(function (result) { return func().then(Array.prototype.concat.bind(result)); }); + }, Promise.resolve([])); +}; +function loopReferences(options, res, rej) { + options.resolver.actions.push([]); + findExternalRefs(options) + .then(function (data) { + serial(data.actions) + .then(function () { + if (options.resolver.depth >= options.resolver.actions.length) { + console.warn('Ran off the end of resolver actions'); + return res(true); + } + else { + options.resolver.depth++; + if (options.resolver.actions[options.resolver.depth].length) { + setTimeout(function () { + loopReferences(data.options, res, rej); + }, 0); + } + else { + if (options.verbose > 1) + console.warn(common.colour.yellow + 'Finished external resolution!', common.colour.normal); + if (options.resolveInternal) { + if (options.verbose > 1) + console.warn(common.colour.yellow + 'Starting internal resolution!', common.colour.normal); + options.openapi = deRef(options.openapi, options.original, { verbose: options.verbose - 1 }); + if (options.verbose > 1) + console.warn(common.colour.yellow + 'Finished internal resolution!', common.colour.normal); + } + recurse(options.openapi, {}, function (obj, key, state) { + if (isRef(obj, key)) { + if (!options.preserveMiro) + delete obj['x-miro']; + } + }); + res(options); + } + } + }) + .catch(function (ex) { + if (options.verbose) + console.warn(ex); + rej(ex); + }); + }) + .catch(function (ex) { + if (options.verbose) + console.warn(ex); + rej(ex); + }); +} +function setupOptions(options) { + if (!options.cache) + options.cache = {}; + if (!options.fetch) + options.fetch = fetch; + if (options.source) { + var srcUrl = url.parse(options.source); + if (!srcUrl.protocol || srcUrl.protocol.length <= 2) { // windows drive-letters + options.source = path.resolve(options.source); + } + } + if (!options.externals) + options.externals = []; + if (!options.externalRefs) + options.externalRefs = {}; + options.rewriteRefs = true; + options.resolver = {}; + options.resolver.depth = 0; + options.resolver.base = options.source; + options.resolver.actions = [[]]; +} +/** compatibility function for swagger2openapi */ +function optionalResolve(options) { + setupOptions(options); + return new Promise(function (res, rej) { + if (options.resolve) + loopReferences(options, res, rej); + else + res(options); + }); +} +function resolve(openapi, source, options) { + if (!options) + options = {}; + options.openapi = openapi; + options.source = source; + options.resolve = true; + setupOptions(options); + return new Promise(function (res, rej) { + loopReferences(options, res, rej); + }); +} +module.exports = { + optionalResolve: optionalResolve, + resolve: resolve +}; + + +/***/ }), +/* 46 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var recurse = __webpack_require__(22).recurse; +var clone = __webpack_require__(17).shallowClone; +var jptr = __webpack_require__(16).jptr; +var isRef = __webpack_require__(21).isRef; +var getLogger = function (options) { + if (options && options.verbose) { + return { + warn: function () { + var args = Array.prototype.slice.call(arguments); + console.warn.apply(console, args); + } + }; + } + else { + return { + warn: function () { + //nop + } + }; + } +}; +/** +* dereferences the given object +* @param o the object to dereference +* @definitions a source of definitions to reference +* @options optional settings (used recursively) +* @return the dereferenced object +*/ +function dereference(o, definitions, options) { + if (!options) + options = {}; + if (!options.cache) + options.cache = {}; + if (!options.state) + options.state = {}; + options.state.identityDetection = true; + // options.depth allows us to limit cloning to the first invocation + options.depth = (options.depth ? options.depth + 1 : 1); + var obj = (options.depth > 1 ? o : clone(o)); + var container = { data: obj }; + var defs = (options.depth > 1 ? definitions : clone(definitions)); + // options.master is the top level object, regardless of depth + if (!options.master) + options.master = obj; + var logger = getLogger(options); + var changes = 1; + while (changes > 0) { + changes = 0; + recurse(container, options.state, function (obj, key, state) { + if (isRef(obj, key)) { + var $ref = obj[key]; // immutable + changes++; + if (!options.cache[$ref]) { + var entry = {}; + entry.path = state.path.split('/$ref')[0]; + entry.key = $ref; + logger.warn('Dereffing %s at %s', $ref, entry.path); + entry.source = defs; + entry.data = jptr(entry.source, entry.key); + if (entry.data === false) { + entry.data = jptr(options.master, entry.key); + entry.source = options.master; + } + if (entry.data === false) { + logger.warn('Missing $ref target', entry.key); + } + options.cache[$ref] = entry; + entry.data = state.parent[state.pkey] = dereference(jptr(entry.source, entry.key), entry.source, options); + if ((options.$ref) && (typeof state.parent[state.pkey] === 'object')) + state.parent[state.pkey][options.$ref] = $ref; + entry.resolved = true; + } + else { + var entry = options.cache[$ref]; + if (entry.resolved) { + // we have already seen and resolved this reference + logger.warn('Patching %s for %s', $ref, entry.path); + state.parent[state.pkey] = entry.data; + if ((options.$ref) && (typeof state.parent[state.pkey] === 'object')) + state.parent[state.pkey][options.$ref] = $ref; + } + else if ($ref === entry.path) { + // reference to itself, throw + throw new Error("Tight circle at " + entry.path); + } + else { + // we're dealing with a circular reference here + logger.warn('Unresolved ref'); + state.parent[state.pkey] = jptr(entry.source, entry.path); + if (state.parent[state.pkey] === false) { + state.parent[state.pkey] = jptr(entry.source, entry.key); + } + if ((options.$ref) && (typeof state.parent[state.pkey] === 'object')) + state.parent[options.$ref] = $ref; + } + } + } + }); + } + return container.data; +} +module.exports = { + dereference: dereference +}; + + +/***/ }), +/* 47 */ +/***/ (function(module, exports) { + +module.exports = require("fast-safe-stringify"); + +/***/ }), +/* 48 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +/** +* functions to walk an OpenAPI schema object and traverse all subschemas +* calling a callback function on each one +*/ +/** +* obtains the default starting state for the `state` object used +* by walkSchema +* @return the state object suitable for use in walkSchema +*/ +function getDefaultState() { + return { depth: 0, seen: new WeakMap(), top: true, combine: false, allowRefSiblings: false }; +} +/** +* begins the walk of a schema object +* @param parent the parent schema, if any. Use empty object if none +* @param state the initial starting state of the walker, usually obtained from `getDefaultState`. Use empty object to auto-initialise +* @param callback a function taking a schema, parent and state to be called on this and all subschemas +* @return the schema object +*/ +function walkSchema(schema, parent, state, callback) { + if (typeof state.depth === 'undefined') + state = getDefaultState(); + if ((schema === null) || (typeof schema === 'undefined')) + return schema; + if (typeof schema.$ref !== 'undefined') { + var temp = { $ref: schema.$ref }; + if (state.allowRefSiblings && schema.description) { + temp.description = schema.description; + } + callback(temp, parent, state); + return temp; // all other properties SHALL be ignored + } + if (state.combine) { + if (schema.allOf && Array.isArray(schema.allOf) && schema.allOf.length === 1) { + schema = Object.assign({}, schema.allOf[0], schema); + delete schema.allOf; + } + if (schema.anyOf && Array.isArray(schema.anyOf) && schema.anyOf.length === 1) { + schema = Object.assign({}, schema.anyOf[0], schema); + delete schema.anyOf; + } + if (schema.oneOf && Array.isArray(schema.oneOf) && schema.oneOf.length === 1) { + schema = Object.assign({}, schema.oneOf[0], schema); + delete schema.oneOf; + } + } + callback(schema, parent, state); + if (state.seen.has(schema)) { + return schema; + } + //else + if ((typeof schema === 'object') && (schema !== null)) + state.seen.set(schema, true); + state.top = false; + state.depth++; + if (typeof schema.items !== 'undefined') { + state.property = 'items'; + walkSchema(schema.items, schema, state, callback); + } + if (schema.additionalItems) { + if (typeof schema.additionalItems === 'object') { + state.property = 'additionalItems'; + walkSchema(schema.additionalItems, schema, state, callback); + } + } + if (schema.additionalProperties) { + if (typeof schema.additionalProperties === 'object') { + state.property = 'additionalProperties'; + walkSchema(schema.additionalProperties, schema, state, callback); + } + } + if (schema.properties) { + for (var prop in schema.properties) { + var subSchema = schema.properties[prop]; + state.property = 'properties/' + prop; + walkSchema(subSchema, schema, state, callback); + } + } + if (schema.patternProperties) { + for (var prop in schema.patternProperties) { + var subSchema = schema.patternProperties[prop]; + state.property = 'patternProperties/' + prop; + walkSchema(subSchema, schema, state, callback); + } + } + if (schema.allOf) { + for (var index in schema.allOf) { + var subSchema = schema.allOf[index]; + state.property = 'allOf/' + index; + walkSchema(subSchema, schema, state, callback); + } + } + if (schema.anyOf) { + for (var index in schema.anyOf) { + var subSchema = schema.anyOf[index]; + state.property = 'anyOf/' + index; + walkSchema(subSchema, schema, state, callback); + } + } + if (schema.oneOf) { + for (var index in schema.oneOf) { + var subSchema = schema.oneOf[index]; + state.property = 'oneOf/' + index; + walkSchema(subSchema, schema, state, callback); + } + } + if (schema.not) { + state.property = 'not'; + walkSchema(schema.not, schema, state, callback); + } + state.depth--; + return schema; +} +module.exports = { + getDefaultState: getDefaultState, + walkSchema: walkSchema +}; + + +/***/ }), +/* 49 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var http = __webpack_require__(50); +var ours = { + "default": "Default response", + "1XX": "Informational", + "103": "Early hints", + "2XX": "Successful", + "3XX": "Redirection", + "4XX": "Client Error", + "5XX": "Server Error", + "7XX": "Developer Error" // April fools RFC +}; +module.exports = { + statusCodes: Object.assign({}, ours, http.STATUS_CODES) +}; + + +/***/ }), +/* 50 */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(global) {var ClientRequest = __webpack_require__(51) +var response = __webpack_require__(32) +var extend = __webpack_require__(56) +var statusCodes = __webpack_require__(57) +var url = __webpack_require__(5) + +var http = exports + +http.request = function (opts, cb) { + if (typeof opts === 'string') + opts = url.parse(opts) + else + opts = extend(opts) + + // Normally, the page is loaded from http or https, so not specifying a protocol + // will result in a (valid) protocol-relative url. However, this won't work if + // the protocol is something else, like 'file:' + var defaultProtocol = global.location.protocol.search(/^https?:$/) === -1 ? 'http:' : '' + + var protocol = opts.protocol || defaultProtocol + var host = opts.hostname || opts.host + var port = opts.port + var path = opts.path || '/' + + // Necessary for IPv6 addresses + if (host && host.indexOf(':') !== -1) + host = '[' + host + ']' + + // This may be a relative url. The browser should always be able to interpret it correctly. + opts.url = (host ? (protocol + '//' + host) : '') + (port ? ':' + port : '') + path + opts.method = (opts.method || 'GET').toUpperCase() + opts.headers = opts.headers || {} + + // Also valid opts.auth, opts.mode + + var req = new ClientRequest(opts) + if (cb) + req.on('response', cb) + return req +} + +http.get = function get (opts, cb) { + var req = http.request(opts, cb) + req.end() + return req +} + +http.ClientRequest = ClientRequest +http.IncomingMessage = response.IncomingMessage + +http.Agent = function () {} +http.Agent.defaultMaxSockets = 4 + +http.globalAgent = new http.Agent() + +http.STATUS_CODES = statusCodes + +http.METHODS = [ + 'CHECKOUT', + 'CONNECT', + 'COPY', + 'DELETE', + 'GET', + 'HEAD', + 'LOCK', + 'M-SEARCH', + 'MERGE', + 'MKACTIVITY', + 'MKCOL', + 'MOVE', + 'NOTIFY', + 'OPTIONS', + 'PATCH', + 'POST', + 'PROPFIND', + 'PROPPATCH', + 'PURGE', + 'PUT', + 'REPORT', + 'SEARCH', + 'SUBSCRIBE', + 'TRACE', + 'UNLOCK', + 'UNSUBSCRIBE' +] +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(11))) + +/***/ }), +/* 51 */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(Buffer, global, process) {var capability = __webpack_require__(30) +var inherits = __webpack_require__(31) +var response = __webpack_require__(32) +var stream = __webpack_require__(33) +var toArrayBuffer = __webpack_require__(55) + +var IncomingMessage = response.IncomingMessage +var rStates = response.readyStates + +function decideMode (preferBinary, useFetch) { + if (capability.fetch && useFetch) { + return 'fetch' + } else if (capability.mozchunkedarraybuffer) { + return 'moz-chunked-arraybuffer' + } else if (capability.msstream) { + return 'ms-stream' + } else if (capability.arraybuffer && preferBinary) { + return 'arraybuffer' + } else if (capability.vbArray && preferBinary) { + return 'text:vbarray' + } else { + return 'text' + } +} + +var ClientRequest = module.exports = function (opts) { + var self = this + stream.Writable.call(self) + + self._opts = opts + self._body = [] + self._headers = {} + if (opts.auth) + self.setHeader('Authorization', 'Basic ' + new Buffer(opts.auth).toString('base64')) + Object.keys(opts.headers).forEach(function (name) { + self.setHeader(name, opts.headers[name]) + }) + + var preferBinary + var useFetch = true + if (opts.mode === 'disable-fetch' || ('requestTimeout' in opts && !capability.abortController)) { + // If the use of XHR should be preferred. Not typically needed. + useFetch = false + preferBinary = true + } else if (opts.mode === 'prefer-streaming') { + // If streaming is a high priority but binary compatibility and + // the accuracy of the 'content-type' header aren't + preferBinary = false + } else if (opts.mode === 'allow-wrong-content-type') { + // If streaming is more important than preserving the 'content-type' header + preferBinary = !capability.overrideMimeType + } else if (!opts.mode || opts.mode === 'default' || opts.mode === 'prefer-fast') { + // Use binary if text streaming may corrupt data or the content-type header, or for speed + preferBinary = true + } else { + throw new Error('Invalid value for opts.mode') + } + self._mode = decideMode(preferBinary, useFetch) + self._fetchTimer = null + + self.on('finish', function () { + self._onFinish() + }) +} + +inherits(ClientRequest, stream.Writable) + +ClientRequest.prototype.setHeader = function (name, value) { + var self = this + var lowerName = name.toLowerCase() + // This check is not necessary, but it prevents warnings from browsers about setting unsafe + // headers. To be honest I'm not entirely sure hiding these warnings is a good thing, but + // http-browserify did it, so I will too. + if (unsafeHeaders.indexOf(lowerName) !== -1) + return + + self._headers[lowerName] = { + name: name, + value: value + } +} + +ClientRequest.prototype.getHeader = function (name) { + var header = this._headers[name.toLowerCase()] + if (header) + return header.value + return null +} + +ClientRequest.prototype.removeHeader = function (name) { + var self = this + delete self._headers[name.toLowerCase()] +} + +ClientRequest.prototype._onFinish = function () { + var self = this + + if (self._destroyed) + return + var opts = self._opts + + var headersObj = self._headers + var body = null + if (opts.method !== 'GET' && opts.method !== 'HEAD') { + if (capability.arraybuffer) { + body = toArrayBuffer(Buffer.concat(self._body)) + } else if (capability.blobConstructor) { + body = new global.Blob(self._body.map(function (buffer) { + return toArrayBuffer(buffer) + }), { + type: (headersObj['content-type'] || {}).value || '' + }) + } else { + // get utf8 string + body = Buffer.concat(self._body).toString() + } + } + + // create flattened list of headers + var headersList = [] + Object.keys(headersObj).forEach(function (keyName) { + var name = headersObj[keyName].name + var value = headersObj[keyName].value + if (Array.isArray(value)) { + value.forEach(function (v) { + headersList.push([name, v]) + }) + } else { + headersList.push([name, value]) + } + }) + + if (self._mode === 'fetch') { + var signal = null + var fetchTimer = null + if (capability.abortController) { + var controller = new AbortController() + signal = controller.signal + self._fetchAbortController = controller + + if ('requestTimeout' in opts && opts.requestTimeout !== 0) { + self._fetchTimer = global.setTimeout(function () { + self.emit('requestTimeout') + if (self._fetchAbortController) + self._fetchAbortController.abort() + }, opts.requestTimeout) + } + } + + global.fetch(self._opts.url, { + method: self._opts.method, + headers: headersList, + body: body || undefined, + mode: 'cors', + credentials: opts.withCredentials ? 'include' : 'same-origin', + signal: signal + }).then(function (response) { + self._fetchResponse = response + self._connect() + }, function (reason) { + global.clearTimeout(self._fetchTimer) + if (!self._destroyed) + self.emit('error', reason) + }) + } else { + var xhr = self._xhr = new global.XMLHttpRequest() + try { + xhr.open(self._opts.method, self._opts.url, true) + } catch (err) { + process.nextTick(function () { + self.emit('error', err) + }) + return + } + + // Can't set responseType on really old browsers + if ('responseType' in xhr) + xhr.responseType = self._mode.split(':')[0] + + if ('withCredentials' in xhr) + xhr.withCredentials = !!opts.withCredentials + + if (self._mode === 'text' && 'overrideMimeType' in xhr) + xhr.overrideMimeType('text/plain; charset=x-user-defined') + + if ('requestTimeout' in opts) { + xhr.timeout = opts.requestTimeout + xhr.ontimeout = function () { + self.emit('requestTimeout') + } + } + + headersList.forEach(function (header) { + xhr.setRequestHeader(header[0], header[1]) + }) + + self._response = null + xhr.onreadystatechange = function () { + switch (xhr.readyState) { + case rStates.LOADING: + case rStates.DONE: + self._onXHRProgress() + break + } + } + // Necessary for streaming in Firefox, since xhr.response is ONLY defined + // in onprogress, not in onreadystatechange with xhr.readyState = 3 + if (self._mode === 'moz-chunked-arraybuffer') { + xhr.onprogress = function () { + self._onXHRProgress() + } + } + + xhr.onerror = function () { + if (self._destroyed) + return + self.emit('error', new Error('XHR error')) + } + + try { + xhr.send(body) + } catch (err) { + process.nextTick(function () { + self.emit('error', err) + }) + return + } + } +} + +/** + * Checks if xhr.status is readable and non-zero, indicating no error. + * Even though the spec says it should be available in readyState 3, + * accessing it throws an exception in IE8 + */ +function statusValid (xhr) { + try { + var status = xhr.status + return (status !== null && status !== 0) + } catch (e) { + return false + } +} + +ClientRequest.prototype._onXHRProgress = function () { + var self = this + + if (!statusValid(self._xhr) || self._destroyed) + return + + if (!self._response) + self._connect() + + self._response._onXHRProgress() +} + +ClientRequest.prototype._connect = function () { + var self = this + + if (self._destroyed) + return + + self._response = new IncomingMessage(self._xhr, self._fetchResponse, self._mode, self._fetchTimer) + self._response.on('error', function(err) { + self.emit('error', err) + }) + + self.emit('response', self._response) +} + +ClientRequest.prototype._write = function (chunk, encoding, cb) { + var self = this + + self._body.push(chunk) + cb() +} + +ClientRequest.prototype.abort = ClientRequest.prototype.destroy = function () { + var self = this + self._destroyed = true + global.clearTimeout(self._fetchTimer) + if (self._response) + self._response._destroyed = true + if (self._xhr) + self._xhr.abort() + else if (self._fetchAbortController) + self._fetchAbortController.abort() +} + +ClientRequest.prototype.end = function (data, encoding, cb) { + var self = this + if (typeof data === 'function') { + cb = data + data = undefined + } + + stream.Writable.prototype.end.call(self, data, encoding, cb) +} + +ClientRequest.prototype.flushHeaders = function () {} +ClientRequest.prototype.setTimeout = function () {} +ClientRequest.prototype.setNoDelay = function () {} +ClientRequest.prototype.setSocketKeepAlive = function () {} + +// Taken from http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader%28%29-method +var unsafeHeaders = [ + 'accept-charset', + 'accept-encoding', + 'access-control-request-headers', + 'access-control-request-method', + 'connection', + 'content-length', + 'cookie', + 'cookie2', + 'date', + 'dnt', + 'expect', + 'host', + 'keep-alive', + 'origin', + 'referer', + 'te', + 'trailer', + 'transfer-encoding', + 'upgrade', + 'via' +] + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(29).Buffer, __webpack_require__(11), __webpack_require__(14))) + +/***/ }), +/* 52 */ +/***/ (function(module, exports) { + +module.exports = require("base64-js"); + +/***/ }), +/* 53 */ +/***/ (function(module, exports) { + +module.exports = require("ieee754"); + +/***/ }), +/* 54 */ +/***/ (function(module, exports) { + +module.exports = require("isarray"); + +/***/ }), +/* 55 */ +/***/ (function(module, exports) { + +module.exports = require("to-arraybuffer"); + +/***/ }), +/* 56 */ +/***/ (function(module, exports) { + +module.exports = require("xtend"); + +/***/ }), +/* 57 */ +/***/ (function(module, exports) { + +module.exports = require("builtin-status-codes"); + +/***/ }), +/* 58 */ +/***/ (function(module) { + +module.exports = JSON.parse("{\"_args\":[[\"swagger2openapi@6.2.1\",\"/Users/tkolter/work/tmp/redoc\"]],\"_from\":\"swagger2openapi@6.2.1\",\"_id\":\"swagger2openapi@6.2.1\",\"_inBundle\":false,\"_integrity\":\"sha512-CY3miXK2YZ0rjvGkVBzJps8ohDR7zGmbFhCVynAGlxIKbLvBuD99aS2ikZcvSo09uVOKcb5FspmvF/PKWdYV1Q==\",\"_location\":\"/swagger2openapi\",\"_phantomChildren\":{\"@types/color-name\":\"1.1.1\",\"camelcase\":\"5.3.1\",\"decamelize\":\"1.2.0\",\"p-limit\":\"2.2.2\",\"require-directory\":\"2.1.1\",\"set-blocking\":\"2.0.0\",\"which-module\":\"2.0.0\",\"y18n\":\"4.0.0\"},\"_requested\":{\"type\":\"version\",\"registry\":true,\"raw\":\"swagger2openapi@6.2.1\",\"name\":\"swagger2openapi\",\"escapedName\":\"swagger2openapi\",\"rawSpec\":\"6.2.1\",\"saveSpec\":null,\"fetchSpec\":\"6.2.1\"},\"_requiredBy\":[\"/\"],\"_resolved\":\"https://registry.npmjs.org/swagger2openapi/-/swagger2openapi-6.2.1.tgz\",\"_spec\":\"6.2.1\",\"_where\":\"/Users/tkolter/work/tmp/redoc\",\"author\":{\"name\":\"Mike Ralphson\",\"email\":\"mike.ralphson@gmail.com\"},\"bin\":{\"swagger2openapi\":\"swagger2openapi.js\",\"oas-validate\":\"oas-validate.js\",\"boast\":\"boast.js\"},\"browserify\":{\"transform\":[[\"babelify\",{\"presets\":[\"es2015\"]}]]},\"bugs\":{\"url\":\"https://github.com/mermade/oas-kit/issues\"},\"dependencies\":{\"better-ajv-errors\":\"^0.6.1\",\"call-me-maybe\":\"^1.0.1\",\"node-fetch-h2\":\"^2.3.0\",\"node-readfiles\":\"^0.2.0\",\"oas-kit-common\":\"^1.0.8\",\"oas-resolver\":\"^2.4.1\",\"oas-schema-walker\":\"^1.1.4\",\"oas-validator\":\"^4.0.6\",\"reftools\":\"^1.1.3\",\"yaml\":\"^1.8.3\",\"yargs\":\"^15.3.1\"},\"description\":\"Convert Swagger 2.0 definitions to OpenApi 3.0 and validate\",\"funding\":\"https://github.com/Mermade/oas-kit?sponsor=1\",\"gitHead\":\"13dc6d5989c198cc88e63969fa681f7296f064e6\",\"homepage\":\"https://github.com/Mermade/oas-kit#readme\",\"keywords\":[\"swagger\",\"openapi\",\"openapi2\",\"openapi3\",\"converter\",\"conversion\",\"validator\",\"validation\",\"resolver\",\"lint\",\"linter\"],\"license\":\"BSD-3-Clause\",\"main\":\"index.js\",\"name\":\"swagger2openapi\",\"repository\":{\"url\":\"git+https://github.com/Mermade/oas-kit.git\",\"type\":\"git\"},\"scripts\":{\"test\":\"mocha\"},\"version\":\"6.2.1\"}"); + +/***/ }), +/* 59 */ +/***/ (function(module, exports) { + +module.exports = require("prismjs/components/prism-bash.js"); + +/***/ }), +/* 60 */ +/***/ (function(module, exports) { + +module.exports = require("prismjs/components/prism-c.js"); + +/***/ }), +/* 61 */ +/***/ (function(module, exports) { + +module.exports = require("prismjs/components/prism-clike.js"); + +/***/ }), +/* 62 */ +/***/ (function(module, exports) { + +module.exports = require("prismjs/components/prism-coffeescript.js"); + +/***/ }), +/* 63 */ +/***/ (function(module, exports) { + +module.exports = require("prismjs/components/prism-cpp.js"); + +/***/ }), +/* 64 */ +/***/ (function(module, exports) { + +module.exports = require("prismjs/components/prism-csharp.js"); + +/***/ }), +/* 65 */ +/***/ (function(module, exports) { + +module.exports = require("prismjs/components/prism-go.js"); + +/***/ }), +/* 66 */ +/***/ (function(module, exports) { + +module.exports = require("prismjs/components/prism-http.js"); + +/***/ }), +/* 67 */ +/***/ (function(module, exports) { + +module.exports = require("prismjs/components/prism-java.js"); + +/***/ }), +/* 68 */ +/***/ (function(module, exports) { + +module.exports = require("prismjs/components/prism-lua.js"); + +/***/ }), +/* 69 */ +/***/ (function(module, exports) { + +module.exports = require("prismjs/components/prism-markup-templating.js"); + +/***/ }), +/* 70 */ +/***/ (function(module, exports) { + +module.exports = require("prismjs/components/prism-markup.js"); + +/***/ }), +/* 71 */ +/***/ (function(module, exports) { + +module.exports = require("prismjs/components/prism-objectivec.js"); + +/***/ }), +/* 72 */ +/***/ (function(module, exports) { + +module.exports = require("prismjs/components/prism-perl.js"); + +/***/ }), +/* 73 */ +/***/ (function(module, exports) { + +module.exports = require("prismjs/components/prism-php.js"); + +/***/ }), +/* 74 */ +/***/ (function(module, exports) { + +module.exports = require("prismjs/components/prism-python.js"); + +/***/ }), +/* 75 */ +/***/ (function(module, exports) { + +module.exports = require("prismjs/components/prism-ruby.js"); + +/***/ }), +/* 76 */ +/***/ (function(module, exports) { + +module.exports = require("prismjs/components/prism-scala.js"); + +/***/ }), +/* 77 */ +/***/ (function(module, exports) { + +module.exports = require("prismjs/components/prism-sql.js"); + +/***/ }), +/* 78 */ +/***/ (function(module, exports) { + +module.exports = require("prismjs/components/prism-swift.js"); + +/***/ }), +/* 79 */ +/***/ (function(module, exports, __webpack_require__) { + + + var addMethods = __webpack_require__(80) + var methods = ["add","done","toJS","load","dispose","search"] + module.exports = function() { + var w = new Worker(URL.createObjectURL(new Blob(["/*!\n * ReDoc - OpenAPI/Swagger-generated API Reference Documentation\n * -------------------------------------------------------------\n * Version: \"2.0.0-rc.37\"\n * Repo: https://github.com/Redocly/redoc\n */\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 97);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(59)))\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar shared = __webpack_require__(32);\nvar has = __webpack_require__(3);\nvar uid = __webpack_require__(36);\nvar NATIVE_SYMBOL = __webpack_require__(37);\nvar USE_SYMBOL_AS_UID = __webpack_require__(60);\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(7);\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.8\n * Copyright (C) 2019 Oliver Nightingale\n * @license MIT\n */\n\n;(function(){\n\n/**\n * A convenience function for configuring and constructing\n * a new lunr Index.\n *\n * A lunr.Builder instance is created and the pipeline setup\n * with a trimmer, stop word filter and stemmer.\n *\n * This builder object is yielded to the configuration function\n * that is passed as a parameter, allowing the list of fields\n * and other builder parameters to be customised.\n *\n * All documents _must_ be added within the passed config function.\n *\n * @example\n * var idx = lunr(function () {\n * this.field('title')\n * this.field('body')\n * this.ref('id')\n *\n * documents.forEach(function (doc) {\n * this.add(doc)\n * }, this)\n * })\n *\n * @see {@link lunr.Builder}\n * @see {@link lunr.Pipeline}\n * @see {@link lunr.trimmer}\n * @see {@link lunr.stopWordFilter}\n * @see {@link lunr.stemmer}\n * @namespace {function} lunr\n */\nvar lunr = function (config) {\n var builder = new lunr.Builder\n\n builder.pipeline.add(\n lunr.trimmer,\n lunr.stopWordFilter,\n lunr.stemmer\n )\n\n builder.searchPipeline.add(\n lunr.stemmer\n )\n\n config.call(builder, builder)\n return builder.build()\n}\n\nlunr.version = \"2.3.8\"\n/*!\n * lunr.utils\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A namespace containing utils for the rest of the lunr library\n * @namespace lunr.utils\n */\nlunr.utils = {}\n\n/**\n * Print a warning message to the console.\n *\n * @param {String} message The message to be printed.\n * @memberOf lunr.utils\n * @function\n */\nlunr.utils.warn = (function (global) {\n /* eslint-disable no-console */\n return function (message) {\n if (global.console && console.warn) {\n console.warn(message)\n }\n }\n /* eslint-enable no-console */\n})(this)\n\n/**\n * Convert an object to a string.\n *\n * In the case of `null` and `undefined` the function returns\n * the empty string, in all other cases the result of calling\n * `toString` on the passed object is returned.\n *\n * @param {Any} obj The object to convert to a string.\n * @return {String} string representation of the passed object.\n * @memberOf lunr.utils\n */\nlunr.utils.asString = function (obj) {\n if (obj === void 0 || obj === null) {\n return \"\"\n } else {\n return obj.toString()\n }\n}\n\n/**\n * Clones an object.\n *\n * Will create a copy of an existing object such that any mutations\n * on the copy cannot affect the original.\n *\n * Only shallow objects are supported, passing a nested object to this\n * function will cause a TypeError.\n *\n * Objects with primitives, and arrays of primitives are supported.\n *\n * @param {Object} obj The object to clone.\n * @return {Object} a clone of the passed object.\n * @throws {TypeError} when a nested object is passed.\n * @memberOf Utils\n */\nlunr.utils.clone = function (obj) {\n if (obj === null || obj === undefined) {\n return obj\n }\n\n var clone = Object.create(null),\n keys = Object.keys(obj)\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i],\n val = obj[key]\n\n if (Array.isArray(val)) {\n clone[key] = val.slice()\n continue\n }\n\n if (typeof val === 'string' ||\n typeof val === 'number' ||\n typeof val === 'boolean') {\n clone[key] = val\n continue\n }\n\n throw new TypeError(\"clone is not deep and does not support nested objects\")\n }\n\n return clone\n}\nlunr.FieldRef = function (docRef, fieldName, stringValue) {\n this.docRef = docRef\n this.fieldName = fieldName\n this._stringValue = stringValue\n}\n\nlunr.FieldRef.joiner = \"/\"\n\nlunr.FieldRef.fromString = function (s) {\n var n = s.indexOf(lunr.FieldRef.joiner)\n\n if (n === -1) {\n throw \"malformed field ref string\"\n }\n\n var fieldRef = s.slice(0, n),\n docRef = s.slice(n + 1)\n\n return new lunr.FieldRef (docRef, fieldRef, s)\n}\n\nlunr.FieldRef.prototype.toString = function () {\n if (this._stringValue == undefined) {\n this._stringValue = this.fieldName + lunr.FieldRef.joiner + this.docRef\n }\n\n return this._stringValue\n}\n/*!\n * lunr.Set\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A lunr set.\n *\n * @constructor\n */\nlunr.Set = function (elements) {\n this.elements = Object.create(null)\n\n if (elements) {\n this.length = elements.length\n\n for (var i = 0; i < this.length; i++) {\n this.elements[elements[i]] = true\n }\n } else {\n this.length = 0\n }\n}\n\n/**\n * A complete set that contains all elements.\n *\n * @static\n * @readonly\n * @type {lunr.Set}\n */\nlunr.Set.complete = {\n intersect: function (other) {\n return other\n },\n\n union: function (other) {\n return other\n },\n\n contains: function () {\n return true\n }\n}\n\n/**\n * An empty set that contains no elements.\n *\n * @static\n * @readonly\n * @type {lunr.Set}\n */\nlunr.Set.empty = {\n intersect: function () {\n return this\n },\n\n union: function (other) {\n return other\n },\n\n contains: function () {\n return false\n }\n}\n\n/**\n * Returns true if this set contains the specified object.\n *\n * @param {object} object - Object whose presence in this set is to be tested.\n * @returns {boolean} - True if this set contains the specified object.\n */\nlunr.Set.prototype.contains = function (object) {\n return !!this.elements[object]\n}\n\n/**\n * Returns a new set containing only the elements that are present in both\n * this set and the specified set.\n *\n * @param {lunr.Set} other - set to intersect with this set.\n * @returns {lunr.Set} a new set that is the intersection of this and the specified set.\n */\n\nlunr.Set.prototype.intersect = function (other) {\n var a, b, elements, intersection = []\n\n if (other === lunr.Set.complete) {\n return this\n }\n\n if (other === lunr.Set.empty) {\n return other\n }\n\n if (this.length < other.length) {\n a = this\n b = other\n } else {\n a = other\n b = this\n }\n\n elements = Object.keys(a.elements)\n\n for (var i = 0; i < elements.length; i++) {\n var element = elements[i]\n if (element in b.elements) {\n intersection.push(element)\n }\n }\n\n return new lunr.Set (intersection)\n}\n\n/**\n * Returns a new set combining the elements of this and the specified set.\n *\n * @param {lunr.Set} other - set to union with this set.\n * @return {lunr.Set} a new set that is the union of this and the specified set.\n */\n\nlunr.Set.prototype.union = function (other) {\n if (other === lunr.Set.complete) {\n return lunr.Set.complete\n }\n\n if (other === lunr.Set.empty) {\n return this\n }\n\n return new lunr.Set(Object.keys(this.elements).concat(Object.keys(other.elements)))\n}\n/**\n * A function to calculate the inverse document frequency for\n * a posting. This is shared between the builder and the index\n *\n * @private\n * @param {object} posting - The posting for a given term\n * @param {number} documentCount - The total number of documents.\n */\nlunr.idf = function (posting, documentCount) {\n var documentsWithTerm = 0\n\n for (var fieldName in posting) {\n if (fieldName == '_index') continue // Ignore the term index, its not a field\n documentsWithTerm += Object.keys(posting[fieldName]).length\n }\n\n var x = (documentCount - documentsWithTerm + 0.5) / (documentsWithTerm + 0.5)\n\n return Math.log(1 + Math.abs(x))\n}\n\n/**\n * A token wraps a string representation of a token\n * as it is passed through the text processing pipeline.\n *\n * @constructor\n * @param {string} [str=''] - The string token being wrapped.\n * @param {object} [metadata={}] - Metadata associated with this token.\n */\nlunr.Token = function (str, metadata) {\n this.str = str || \"\"\n this.metadata = metadata || {}\n}\n\n/**\n * Returns the token string that is being wrapped by this object.\n *\n * @returns {string}\n */\nlunr.Token.prototype.toString = function () {\n return this.str\n}\n\n/**\n * A token update function is used when updating or optionally\n * when cloning a token.\n *\n * @callback lunr.Token~updateFunction\n * @param {string} str - The string representation of the token.\n * @param {Object} metadata - All metadata associated with this token.\n */\n\n/**\n * Applies the given function to the wrapped string token.\n *\n * @example\n * token.update(function (str, metadata) {\n * return str.toUpperCase()\n * })\n *\n * @param {lunr.Token~updateFunction} fn - A function to apply to the token string.\n * @returns {lunr.Token}\n */\nlunr.Token.prototype.update = function (fn) {\n this.str = fn(this.str, this.metadata)\n return this\n}\n\n/**\n * Creates a clone of this token. Optionally a function can be\n * applied to the cloned token.\n *\n * @param {lunr.Token~updateFunction} [fn] - An optional function to apply to the cloned token.\n * @returns {lunr.Token}\n */\nlunr.Token.prototype.clone = function (fn) {\n fn = fn || function (s) { return s }\n return new lunr.Token (fn(this.str, this.metadata), this.metadata)\n}\n/*!\n * lunr.tokenizer\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A function for splitting a string into tokens ready to be inserted into\n * the search index. Uses `lunr.tokenizer.separator` to split strings, change\n * the value of this property to change how strings are split into tokens.\n *\n * This tokenizer will convert its parameter to a string by calling `toString` and\n * then will split this string on the character in `lunr.tokenizer.separator`.\n * Arrays will have their elements converted to strings and wrapped in a lunr.Token.\n *\n * Optional metadata can be passed to the tokenizer, this metadata will be cloned and\n * added as metadata to every token that is created from the object to be tokenized.\n *\n * @static\n * @param {?(string|object|object[])} obj - The object to convert into tokens\n * @param {?object} metadata - Optional metadata to associate with every token\n * @returns {lunr.Token[]}\n * @see {@link lunr.Pipeline}\n */\nlunr.tokenizer = function (obj, metadata) {\n if (obj == null || obj == undefined) {\n return []\n }\n\n if (Array.isArray(obj)) {\n return obj.map(function (t) {\n return new lunr.Token(\n lunr.utils.asString(t).toLowerCase(),\n lunr.utils.clone(metadata)\n )\n })\n }\n\n var str = obj.toString().toLowerCase(),\n len = str.length,\n tokens = []\n\n for (var sliceEnd = 0, sliceStart = 0; sliceEnd <= len; sliceEnd++) {\n var char = str.charAt(sliceEnd),\n sliceLength = sliceEnd - sliceStart\n\n if ((char.match(lunr.tokenizer.separator) || sliceEnd == len)) {\n\n if (sliceLength > 0) {\n var tokenMetadata = lunr.utils.clone(metadata) || {}\n tokenMetadata[\"position\"] = [sliceStart, sliceLength]\n tokenMetadata[\"index\"] = tokens.length\n\n tokens.push(\n new lunr.Token (\n str.slice(sliceStart, sliceEnd),\n tokenMetadata\n )\n )\n }\n\n sliceStart = sliceEnd + 1\n }\n\n }\n\n return tokens\n}\n\n/**\n * The separator used to split a string into tokens. Override this property to change the behaviour of\n * `lunr.tokenizer` behaviour when tokenizing strings. By default this splits on whitespace and hyphens.\n *\n * @static\n * @see lunr.tokenizer\n */\nlunr.tokenizer.separator = /[\\s\\-]+/\n/*!\n * lunr.Pipeline\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.Pipelines maintain an ordered list of functions to be applied to all\n * tokens in documents entering the search index and queries being ran against\n * the index.\n *\n * An instance of lunr.Index created with the lunr shortcut will contain a\n * pipeline with a stop word filter and an English language stemmer. Extra\n * functions can be added before or after either of these functions or these\n * default functions can be removed.\n *\n * When run the pipeline will call each function in turn, passing a token, the\n * index of that token in the original list of all tokens and finally a list of\n * all the original tokens.\n *\n * The output of functions in the pipeline will be passed to the next function\n * in the pipeline. To exclude a token from entering the index the function\n * should return undefined, the rest of the pipeline will not be called with\n * this token.\n *\n * For serialisation of pipelines to work, all functions used in an instance of\n * a pipeline should be registered with lunr.Pipeline. Registered functions can\n * then be loaded. If trying to load a serialised pipeline that uses functions\n * that are not registered an error will be thrown.\n *\n * If not planning on serialising the pipeline then registering pipeline functions\n * is not necessary.\n *\n * @constructor\n */\nlunr.Pipeline = function () {\n this._stack = []\n}\n\nlunr.Pipeline.registeredFunctions = Object.create(null)\n\n/**\n * A pipeline function maps lunr.Token to lunr.Token. A lunr.Token contains the token\n * string as well as all known metadata. A pipeline function can mutate the token string\n * or mutate (or add) metadata for a given token.\n *\n * A pipeline function can indicate that the passed token should be discarded by returning\n * null, undefined or an empty string. This token will not be passed to any downstream pipeline\n * functions and will not be added to the index.\n *\n * Multiple tokens can be returned by returning an array of tokens. Each token will be passed\n * to any downstream pipeline functions and all will returned tokens will be added to the index.\n *\n * Any number of pipeline functions may be chained together using a lunr.Pipeline.\n *\n * @interface lunr.PipelineFunction\n * @param {lunr.Token} token - A token from the document being processed.\n * @param {number} i - The index of this token in the complete list of tokens for this document/field.\n * @param {lunr.Token[]} tokens - All tokens for this document/field.\n * @returns {(?lunr.Token|lunr.Token[])}\n */\n\n/**\n * Register a function with the pipeline.\n *\n * Functions that are used in the pipeline should be registered if the pipeline\n * needs to be serialised, or a serialised pipeline needs to be loaded.\n *\n * Registering a function does not add it to a pipeline, functions must still be\n * added to instances of the pipeline for them to be used when running a pipeline.\n *\n * @param {lunr.PipelineFunction} fn - The function to check for.\n * @param {String} label - The label to register this function with\n */\nlunr.Pipeline.registerFunction = function (fn, label) {\n if (label in this.registeredFunctions) {\n lunr.utils.warn('Overwriting existing registered function: ' + label)\n }\n\n fn.label = label\n lunr.Pipeline.registeredFunctions[fn.label] = fn\n}\n\n/**\n * Warns if the function is not registered as a Pipeline function.\n *\n * @param {lunr.PipelineFunction} fn - The function to check for.\n * @private\n */\nlunr.Pipeline.warnIfFunctionNotRegistered = function (fn) {\n var isRegistered = fn.label && (fn.label in this.registeredFunctions)\n\n if (!isRegistered) {\n lunr.utils.warn('Function is not registered with pipeline. This may cause problems when serialising the index.\\n', fn)\n }\n}\n\n/**\n * Loads a previously serialised pipeline.\n *\n * All functions to be loaded must already be registered with lunr.Pipeline.\n * If any function from the serialised data has not been registered then an\n * error will be thrown.\n *\n * @param {Object} serialised - The serialised pipeline to load.\n * @returns {lunr.Pipeline}\n */\nlunr.Pipeline.load = function (serialised) {\n var pipeline = new lunr.Pipeline\n\n serialised.forEach(function (fnName) {\n var fn = lunr.Pipeline.registeredFunctions[fnName]\n\n if (fn) {\n pipeline.add(fn)\n } else {\n throw new Error('Cannot load unregistered function: ' + fnName)\n }\n })\n\n return pipeline\n}\n\n/**\n * Adds new functions to the end of the pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction[]} functions - Any number of functions to add to the pipeline.\n */\nlunr.Pipeline.prototype.add = function () {\n var fns = Array.prototype.slice.call(arguments)\n\n fns.forEach(function (fn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\n this._stack.push(fn)\n }, this)\n}\n\n/**\n * Adds a single function after a function that already exists in the\n * pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\n */\nlunr.Pipeline.prototype.after = function (existingFn, newFn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\n\n var pos = this._stack.indexOf(existingFn)\n if (pos == -1) {\n throw new Error('Cannot find existingFn')\n }\n\n pos = pos + 1\n this._stack.splice(pos, 0, newFn)\n}\n\n/**\n * Adds a single function before a function that already exists in the\n * pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\n */\nlunr.Pipeline.prototype.before = function (existingFn, newFn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\n\n var pos = this._stack.indexOf(existingFn)\n if (pos == -1) {\n throw new Error('Cannot find existingFn')\n }\n\n this._stack.splice(pos, 0, newFn)\n}\n\n/**\n * Removes a function from the pipeline.\n *\n * @param {lunr.PipelineFunction} fn The function to remove from the pipeline.\n */\nlunr.Pipeline.prototype.remove = function (fn) {\n var pos = this._stack.indexOf(fn)\n if (pos == -1) {\n return\n }\n\n this._stack.splice(pos, 1)\n}\n\n/**\n * Runs the current list of functions that make up the pipeline against the\n * passed tokens.\n *\n * @param {Array} tokens The tokens to run through the pipeline.\n * @returns {Array}\n */\nlunr.Pipeline.prototype.run = function (tokens) {\n var stackLength = this._stack.length\n\n for (var i = 0; i < stackLength; i++) {\n var fn = this._stack[i]\n var memo = []\n\n for (var j = 0; j < tokens.length; j++) {\n var result = fn(tokens[j], j, tokens)\n\n if (result === null || result === void 0 || result === '') continue\n\n if (Array.isArray(result)) {\n for (var k = 0; k < result.length; k++) {\n memo.push(result[k])\n }\n } else {\n memo.push(result)\n }\n }\n\n tokens = memo\n }\n\n return tokens\n}\n\n/**\n * Convenience method for passing a string through a pipeline and getting\n * strings out. This method takes care of wrapping the passed string in a\n * token and mapping the resulting tokens back to strings.\n *\n * @param {string} str - The string to pass through the pipeline.\n * @param {?object} metadata - Optional metadata to associate with the token\n * passed to the pipeline.\n * @returns {string[]}\n */\nlunr.Pipeline.prototype.runString = function (str, metadata) {\n var token = new lunr.Token (str, metadata)\n\n return this.run([token]).map(function (t) {\n return t.toString()\n })\n}\n\n/**\n * Resets the pipeline by removing any existing processors.\n *\n */\nlunr.Pipeline.prototype.reset = function () {\n this._stack = []\n}\n\n/**\n * Returns a representation of the pipeline ready for serialisation.\n *\n * Logs a warning if the function has not been registered.\n *\n * @returns {Array}\n */\nlunr.Pipeline.prototype.toJSON = function () {\n return this._stack.map(function (fn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\n\n return fn.label\n })\n}\n/*!\n * lunr.Vector\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A vector is used to construct the vector space of documents and queries. These\n * vectors support operations to determine the similarity between two documents or\n * a document and a query.\n *\n * Normally no parameters are required for initializing a vector, but in the case of\n * loading a previously dumped vector the raw elements can be provided to the constructor.\n *\n * For performance reasons vectors are implemented with a flat array, where an elements\n * index is immediately followed by its value. E.g. [index, value, index, value]. This\n * allows the underlying array to be as sparse as possible and still offer decent\n * performance when being used for vector calculations.\n *\n * @constructor\n * @param {Number[]} [elements] - The flat list of element index and element value pairs.\n */\nlunr.Vector = function (elements) {\n this._magnitude = 0\n this.elements = elements || []\n}\n\n\n/**\n * Calculates the position within the vector to insert a given index.\n *\n * This is used internally by insert and upsert. If there are duplicate indexes then\n * the position is returned as if the value for that index were to be updated, but it\n * is the callers responsibility to check whether there is a duplicate at that index\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @returns {Number}\n */\nlunr.Vector.prototype.positionForIndex = function (index) {\n // For an empty vector the tuple can be inserted at the beginning\n if (this.elements.length == 0) {\n return 0\n }\n\n var start = 0,\n end = this.elements.length / 2,\n sliceLength = end - start,\n pivotPoint = Math.floor(sliceLength / 2),\n pivotIndex = this.elements[pivotPoint * 2]\n\n while (sliceLength > 1) {\n if (pivotIndex < index) {\n start = pivotPoint\n }\n\n if (pivotIndex > index) {\n end = pivotPoint\n }\n\n if (pivotIndex == index) {\n break\n }\n\n sliceLength = end - start\n pivotPoint = start + Math.floor(sliceLength / 2)\n pivotIndex = this.elements[pivotPoint * 2]\n }\n\n if (pivotIndex == index) {\n return pivotPoint * 2\n }\n\n if (pivotIndex > index) {\n return pivotPoint * 2\n }\n\n if (pivotIndex < index) {\n return (pivotPoint + 1) * 2\n }\n}\n\n/**\n * Inserts an element at an index within the vector.\n *\n * Does not allow duplicates, will throw an error if there is already an entry\n * for this index.\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @param {Number} val - The value to be inserted into the vector.\n */\nlunr.Vector.prototype.insert = function (insertIdx, val) {\n this.upsert(insertIdx, val, function () {\n throw \"duplicate index\"\n })\n}\n\n/**\n * Inserts or updates an existing index within the vector.\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @param {Number} val - The value to be inserted into the vector.\n * @param {function} fn - A function that is called for updates, the existing value and the\n * requested value are passed as arguments\n */\nlunr.Vector.prototype.upsert = function (insertIdx, val, fn) {\n this._magnitude = 0\n var position = this.positionForIndex(insertIdx)\n\n if (this.elements[position] == insertIdx) {\n this.elements[position + 1] = fn(this.elements[position + 1], val)\n } else {\n this.elements.splice(position, 0, insertIdx, val)\n }\n}\n\n/**\n * Calculates the magnitude of this vector.\n *\n * @returns {Number}\n */\nlunr.Vector.prototype.magnitude = function () {\n if (this._magnitude) return this._magnitude\n\n var sumOfSquares = 0,\n elementsLength = this.elements.length\n\n for (var i = 1; i < elementsLength; i += 2) {\n var val = this.elements[i]\n sumOfSquares += val * val\n }\n\n return this._magnitude = Math.sqrt(sumOfSquares)\n}\n\n/**\n * Calculates the dot product of this vector and another vector.\n *\n * @param {lunr.Vector} otherVector - The vector to compute the dot product with.\n * @returns {Number}\n */\nlunr.Vector.prototype.dot = function (otherVector) {\n var dotProduct = 0,\n a = this.elements, b = otherVector.elements,\n aLen = a.length, bLen = b.length,\n aVal = 0, bVal = 0,\n i = 0, j = 0\n\n while (i < aLen && j < bLen) {\n aVal = a[i], bVal = b[j]\n if (aVal < bVal) {\n i += 2\n } else if (aVal > bVal) {\n j += 2\n } else if (aVal == bVal) {\n dotProduct += a[i + 1] * b[j + 1]\n i += 2\n j += 2\n }\n }\n\n return dotProduct\n}\n\n/**\n * Calculates the similarity between this vector and another vector.\n *\n * @param {lunr.Vector} otherVector - The other vector to calculate the\n * similarity with.\n * @returns {Number}\n */\nlunr.Vector.prototype.similarity = function (otherVector) {\n return this.dot(otherVector) / this.magnitude() || 0\n}\n\n/**\n * Converts the vector to an array of the elements within the vector.\n *\n * @returns {Number[]}\n */\nlunr.Vector.prototype.toArray = function () {\n var output = new Array (this.elements.length / 2)\n\n for (var i = 1, j = 0; i < this.elements.length; i += 2, j++) {\n output[j] = this.elements[i]\n }\n\n return output\n}\n\n/**\n * A JSON serializable representation of the vector.\n *\n * @returns {Number[]}\n */\nlunr.Vector.prototype.toJSON = function () {\n return this.elements\n}\n/* eslint-disable */\n/*!\n * lunr.stemmer\n * Copyright (C) 2019 Oliver Nightingale\n * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt\n */\n\n/**\n * lunr.stemmer is an english language stemmer, this is a JavaScript\n * implementation of the PorterStemmer taken from http://tartarus.org/~martin\n *\n * @static\n * @implements {lunr.PipelineFunction}\n * @param {lunr.Token} token - The string to stem\n * @returns {lunr.Token}\n * @see {@link lunr.Pipeline}\n * @function\n */\nlunr.stemmer = (function(){\n var step2list = {\n \"ational\" : \"ate\",\n \"tional\" : \"tion\",\n \"enci\" : \"ence\",\n \"anci\" : \"ance\",\n \"izer\" : \"ize\",\n \"bli\" : \"ble\",\n \"alli\" : \"al\",\n \"entli\" : \"ent\",\n \"eli\" : \"e\",\n \"ousli\" : \"ous\",\n \"ization\" : \"ize\",\n \"ation\" : \"ate\",\n \"ator\" : \"ate\",\n \"alism\" : \"al\",\n \"iveness\" : \"ive\",\n \"fulness\" : \"ful\",\n \"ousness\" : \"ous\",\n \"aliti\" : \"al\",\n \"iviti\" : \"ive\",\n \"biliti\" : \"ble\",\n \"logi\" : \"log\"\n },\n\n step3list = {\n \"icate\" : \"ic\",\n \"ative\" : \"\",\n \"alize\" : \"al\",\n \"iciti\" : \"ic\",\n \"ical\" : \"ic\",\n \"ful\" : \"\",\n \"ness\" : \"\"\n },\n\n c = \"[^aeiou]\", // consonant\n v = \"[aeiouy]\", // vowel\n C = c + \"[^aeiouy]*\", // consonant sequence\n V = v + \"[aeiou]*\", // vowel sequence\n\n mgr0 = \"^(\" + C + \")?\" + V + C, // [C]VC... is m>0\n meq1 = \"^(\" + C + \")?\" + V + C + \"(\" + V + \")?$\", // [C]VC[V] is m=1\n mgr1 = \"^(\" + C + \")?\" + V + C + V + C, // [C]VCVC... is m>1\n s_v = \"^(\" + C + \")?\" + v; // vowel in stem\n\n var re_mgr0 = new RegExp(mgr0);\n var re_mgr1 = new RegExp(mgr1);\n var re_meq1 = new RegExp(meq1);\n var re_s_v = new RegExp(s_v);\n\n var re_1a = /^(.+?)(ss|i)es$/;\n var re2_1a = /^(.+?)([^s])s$/;\n var re_1b = /^(.+?)eed$/;\n var re2_1b = /^(.+?)(ed|ing)$/;\n var re_1b_2 = /.$/;\n var re2_1b_2 = /(at|bl|iz)$/;\n var re3_1b_2 = new RegExp(\"([^aeiouylsz])\\\\1$\");\n var re4_1b_2 = new RegExp(\"^\" + C + v + \"[^aeiouwxy]$\");\n\n var re_1c = /^(.+?[^aeiou])y$/;\n var re_2 = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;\n\n var re_3 = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;\n\n var re_4 = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;\n var re2_4 = /^(.+?)(s|t)(ion)$/;\n\n var re_5 = /^(.+?)e$/;\n var re_5_1 = /ll$/;\n var re3_5 = new RegExp(\"^\" + C + v + \"[^aeiouwxy]$\");\n\n var porterStemmer = function porterStemmer(w) {\n var stem,\n suffix,\n firstch,\n re,\n re2,\n re3,\n re4;\n\n if (w.length < 3) { return w; }\n\n firstch = w.substr(0,1);\n if (firstch == \"y\") {\n w = firstch.toUpperCase() + w.substr(1);\n }\n\n // Step 1a\n re = re_1a\n re2 = re2_1a;\n\n if (re.test(w)) { w = w.replace(re,\"$1$2\"); }\n else if (re2.test(w)) { w = w.replace(re2,\"$1$2\"); }\n\n // Step 1b\n re = re_1b;\n re2 = re2_1b;\n if (re.test(w)) {\n var fp = re.exec(w);\n re = re_mgr0;\n if (re.test(fp[1])) {\n re = re_1b_2;\n w = w.replace(re,\"\");\n }\n } else if (re2.test(w)) {\n var fp = re2.exec(w);\n stem = fp[1];\n re2 = re_s_v;\n if (re2.test(stem)) {\n w = stem;\n re2 = re2_1b_2;\n re3 = re3_1b_2;\n re4 = re4_1b_2;\n if (re2.test(w)) { w = w + \"e\"; }\n else if (re3.test(w)) { re = re_1b_2; w = w.replace(re,\"\"); }\n else if (re4.test(w)) { w = w + \"e\"; }\n }\n }\n\n // Step 1c - replace suffix y or Y by i if preceded by a non-vowel which is not the first letter of the word (so cry -> cri, by -> by, say -> say)\n re = re_1c;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n w = stem + \"i\";\n }\n\n // Step 2\n re = re_2;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n suffix = fp[2];\n re = re_mgr0;\n if (re.test(stem)) {\n w = stem + step2list[suffix];\n }\n }\n\n // Step 3\n re = re_3;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n suffix = fp[2];\n re = re_mgr0;\n if (re.test(stem)) {\n w = stem + step3list[suffix];\n }\n }\n\n // Step 4\n re = re_4;\n re2 = re2_4;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n re = re_mgr1;\n if (re.test(stem)) {\n w = stem;\n }\n } else if (re2.test(w)) {\n var fp = re2.exec(w);\n stem = fp[1] + fp[2];\n re2 = re_mgr1;\n if (re2.test(stem)) {\n w = stem;\n }\n }\n\n // Step 5\n re = re_5;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n re = re_mgr1;\n re2 = re_meq1;\n re3 = re3_5;\n if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) {\n w = stem;\n }\n }\n\n re = re_5_1;\n re2 = re_mgr1;\n if (re.test(w) && re2.test(w)) {\n re = re_1b_2;\n w = w.replace(re,\"\");\n }\n\n // and turn initial Y back to y\n\n if (firstch == \"y\") {\n w = firstch.toLowerCase() + w.substr(1);\n }\n\n return w;\n };\n\n return function (token) {\n return token.update(porterStemmer);\n }\n})();\n\nlunr.Pipeline.registerFunction(lunr.stemmer, 'stemmer')\n/*!\n * lunr.stopWordFilter\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.generateStopWordFilter builds a stopWordFilter function from the provided\n * list of stop words.\n *\n * The built in lunr.stopWordFilter is built using this generator and can be used\n * to generate custom stopWordFilters for applications or non English languages.\n *\n * @function\n * @param {Array} token The token to pass through the filter\n * @returns {lunr.PipelineFunction}\n * @see lunr.Pipeline\n * @see lunr.stopWordFilter\n */\nlunr.generateStopWordFilter = function (stopWords) {\n var words = stopWords.reduce(function (memo, stopWord) {\n memo[stopWord] = stopWord\n return memo\n }, {})\n\n return function (token) {\n if (token && words[token.toString()] !== token.toString()) return token\n }\n}\n\n/**\n * lunr.stopWordFilter is an English language stop word list filter, any words\n * contained in the list will not be passed through the filter.\n *\n * This is intended to be used in the Pipeline. If the token does not pass the\n * filter then undefined will be returned.\n *\n * @function\n * @implements {lunr.PipelineFunction}\n * @params {lunr.Token} token - A token to check for being a stop word.\n * @returns {lunr.Token}\n * @see {@link lunr.Pipeline}\n */\nlunr.stopWordFilter = lunr.generateStopWordFilter([\n 'a',\n 'able',\n 'about',\n 'across',\n 'after',\n 'all',\n 'almost',\n 'also',\n 'am',\n 'among',\n 'an',\n 'and',\n 'any',\n 'are',\n 'as',\n 'at',\n 'be',\n 'because',\n 'been',\n 'but',\n 'by',\n 'can',\n 'cannot',\n 'could',\n 'dear',\n 'did',\n 'do',\n 'does',\n 'either',\n 'else',\n 'ever',\n 'every',\n 'for',\n 'from',\n 'get',\n 'got',\n 'had',\n 'has',\n 'have',\n 'he',\n 'her',\n 'hers',\n 'him',\n 'his',\n 'how',\n 'however',\n 'i',\n 'if',\n 'in',\n 'into',\n 'is',\n 'it',\n 'its',\n 'just',\n 'least',\n 'let',\n 'like',\n 'likely',\n 'may',\n 'me',\n 'might',\n 'most',\n 'must',\n 'my',\n 'neither',\n 'no',\n 'nor',\n 'not',\n 'of',\n 'off',\n 'often',\n 'on',\n 'only',\n 'or',\n 'other',\n 'our',\n 'own',\n 'rather',\n 'said',\n 'say',\n 'says',\n 'she',\n 'should',\n 'since',\n 'so',\n 'some',\n 'than',\n 'that',\n 'the',\n 'their',\n 'them',\n 'then',\n 'there',\n 'these',\n 'they',\n 'this',\n 'tis',\n 'to',\n 'too',\n 'twas',\n 'us',\n 'wants',\n 'was',\n 'we',\n 'were',\n 'what',\n 'when',\n 'where',\n 'which',\n 'while',\n 'who',\n 'whom',\n 'why',\n 'will',\n 'with',\n 'would',\n 'yet',\n 'you',\n 'your'\n])\n\nlunr.Pipeline.registerFunction(lunr.stopWordFilter, 'stopWordFilter')\n/*!\n * lunr.trimmer\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.trimmer is a pipeline function for trimming non word\n * characters from the beginning and end of tokens before they\n * enter the index.\n *\n * This implementation may not work correctly for non latin\n * characters and should either be removed or adapted for use\n * with languages with non-latin characters.\n *\n * @static\n * @implements {lunr.PipelineFunction}\n * @param {lunr.Token} token The token to pass through the filter\n * @returns {lunr.Token}\n * @see lunr.Pipeline\n */\nlunr.trimmer = function (token) {\n return token.update(function (s) {\n return s.replace(/^\\W+/, '').replace(/\\W+$/, '')\n })\n}\n\nlunr.Pipeline.registerFunction(lunr.trimmer, 'trimmer')\n/*!\n * lunr.TokenSet\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A token set is used to store the unique list of all tokens\n * within an index. Token sets are also used to represent an\n * incoming query to the index, this query token set and index\n * token set are then intersected to find which tokens to look\n * up in the inverted index.\n *\n * A token set can hold multiple tokens, as in the case of the\n * index token set, or it can hold a single token as in the\n * case of a simple query token set.\n *\n * Additionally token sets are used to perform wildcard matching.\n * Leading, contained and trailing wildcards are supported, and\n * from this edit distance matching can also be provided.\n *\n * Token sets are implemented as a minimal finite state automata,\n * where both common prefixes and suffixes are shared between tokens.\n * This helps to reduce the space used for storing the token set.\n *\n * @constructor\n */\nlunr.TokenSet = function () {\n this.final = false\n this.edges = {}\n this.id = lunr.TokenSet._nextId\n lunr.TokenSet._nextId += 1\n}\n\n/**\n * Keeps track of the next, auto increment, identifier to assign\n * to a new tokenSet.\n *\n * TokenSets require a unique identifier to be correctly minimised.\n *\n * @private\n */\nlunr.TokenSet._nextId = 1\n\n/**\n * Creates a TokenSet instance from the given sorted array of words.\n *\n * @param {String[]} arr - A sorted array of strings to create the set from.\n * @returns {lunr.TokenSet}\n * @throws Will throw an error if the input array is not sorted.\n */\nlunr.TokenSet.fromArray = function (arr) {\n var builder = new lunr.TokenSet.Builder\n\n for (var i = 0, len = arr.length; i < len; i++) {\n builder.insert(arr[i])\n }\n\n builder.finish()\n return builder.root\n}\n\n/**\n * Creates a token set from a query clause.\n *\n * @private\n * @param {Object} clause - A single clause from lunr.Query.\n * @param {string} clause.term - The query clause term.\n * @param {number} [clause.editDistance] - The optional edit distance for the term.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.fromClause = function (clause) {\n if ('editDistance' in clause) {\n return lunr.TokenSet.fromFuzzyString(clause.term, clause.editDistance)\n } else {\n return lunr.TokenSet.fromString(clause.term)\n }\n}\n\n/**\n * Creates a token set representing a single string with a specified\n * edit distance.\n *\n * Insertions, deletions, substitutions and transpositions are each\n * treated as an edit distance of 1.\n *\n * Increasing the allowed edit distance will have a dramatic impact\n * on the performance of both creating and intersecting these TokenSets.\n * It is advised to keep the edit distance less than 3.\n *\n * @param {string} str - The string to create the token set from.\n * @param {number} editDistance - The allowed edit distance to match.\n * @returns {lunr.Vector}\n */\nlunr.TokenSet.fromFuzzyString = function (str, editDistance) {\n var root = new lunr.TokenSet\n\n var stack = [{\n node: root,\n editsRemaining: editDistance,\n str: str\n }]\n\n while (stack.length) {\n var frame = stack.pop()\n\n // no edit\n if (frame.str.length > 0) {\n var char = frame.str.charAt(0),\n noEditNode\n\n if (char in frame.node.edges) {\n noEditNode = frame.node.edges[char]\n } else {\n noEditNode = new lunr.TokenSet\n frame.node.edges[char] = noEditNode\n }\n\n if (frame.str.length == 1) {\n noEditNode.final = true\n }\n\n stack.push({\n node: noEditNode,\n editsRemaining: frame.editsRemaining,\n str: frame.str.slice(1)\n })\n }\n\n if (frame.editsRemaining == 0) {\n continue\n }\n\n // insertion\n if (\"*\" in frame.node.edges) {\n var insertionNode = frame.node.edges[\"*\"]\n } else {\n var insertionNode = new lunr.TokenSet\n frame.node.edges[\"*\"] = insertionNode\n }\n\n if (frame.str.length == 0) {\n insertionNode.final = true\n }\n\n stack.push({\n node: insertionNode,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str\n })\n\n // deletion\n // can only do a deletion if we have enough edits remaining\n // and if there are characters left to delete in the string\n if (frame.str.length > 1) {\n stack.push({\n node: frame.node,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str.slice(1)\n })\n }\n\n // deletion\n // just removing the last character from the str\n if (frame.str.length == 1) {\n frame.node.final = true\n }\n\n // substitution\n // can only do a substitution if we have enough edits remaining\n // and if there are characters left to substitute\n if (frame.str.length >= 1) {\n if (\"*\" in frame.node.edges) {\n var substitutionNode = frame.node.edges[\"*\"]\n } else {\n var substitutionNode = new lunr.TokenSet\n frame.node.edges[\"*\"] = substitutionNode\n }\n\n if (frame.str.length == 1) {\n substitutionNode.final = true\n }\n\n stack.push({\n node: substitutionNode,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str.slice(1)\n })\n }\n\n // transposition\n // can only do a transposition if there are edits remaining\n // and there are enough characters to transpose\n if (frame.str.length > 1) {\n var charA = frame.str.charAt(0),\n charB = frame.str.charAt(1),\n transposeNode\n\n if (charB in frame.node.edges) {\n transposeNode = frame.node.edges[charB]\n } else {\n transposeNode = new lunr.TokenSet\n frame.node.edges[charB] = transposeNode\n }\n\n if (frame.str.length == 1) {\n transposeNode.final = true\n }\n\n stack.push({\n node: transposeNode,\n editsRemaining: frame.editsRemaining - 1,\n str: charA + frame.str.slice(2)\n })\n }\n }\n\n return root\n}\n\n/**\n * Creates a TokenSet from a string.\n *\n * The string may contain one or more wildcard characters (*)\n * that will allow wildcard matching when intersecting with\n * another TokenSet.\n *\n * @param {string} str - The string to create a TokenSet from.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.fromString = function (str) {\n var node = new lunr.TokenSet,\n root = node\n\n /*\n * Iterates through all characters within the passed string\n * appending a node for each character.\n *\n * When a wildcard character is found then a self\n * referencing edge is introduced to continually match\n * any number of any characters.\n */\n for (var i = 0, len = str.length; i < len; i++) {\n var char = str[i],\n final = (i == len - 1)\n\n if (char == \"*\") {\n node.edges[char] = node\n node.final = final\n\n } else {\n var next = new lunr.TokenSet\n next.final = final\n\n node.edges[char] = next\n node = next\n }\n }\n\n return root\n}\n\n/**\n * Converts this TokenSet into an array of strings\n * contained within the TokenSet.\n *\n * This is not intended to be used on a TokenSet that\n * contains wildcards, in these cases the results are\n * undefined and are likely to cause an infinite loop.\n *\n * @returns {string[]}\n */\nlunr.TokenSet.prototype.toArray = function () {\n var words = []\n\n var stack = [{\n prefix: \"\",\n node: this\n }]\n\n while (stack.length) {\n var frame = stack.pop(),\n edges = Object.keys(frame.node.edges),\n len = edges.length\n\n if (frame.node.final) {\n /* In Safari, at this point the prefix is sometimes corrupted, see:\n * https://github.com/olivernn/lunr.js/issues/279 Calling any\n * String.prototype method forces Safari to \"cast\" this string to what\n * it's supposed to be, fixing the bug. */\n frame.prefix.charAt(0)\n words.push(frame.prefix)\n }\n\n for (var i = 0; i < len; i++) {\n var edge = edges[i]\n\n stack.push({\n prefix: frame.prefix.concat(edge),\n node: frame.node.edges[edge]\n })\n }\n }\n\n return words\n}\n\n/**\n * Generates a string representation of a TokenSet.\n *\n * This is intended to allow TokenSets to be used as keys\n * in objects, largely to aid the construction and minimisation\n * of a TokenSet. As such it is not designed to be a human\n * friendly representation of the TokenSet.\n *\n * @returns {string}\n */\nlunr.TokenSet.prototype.toString = function () {\n // NOTE: Using Object.keys here as this.edges is very likely\n // to enter 'hash-mode' with many keys being added\n //\n // avoiding a for-in loop here as it leads to the function\n // being de-optimised (at least in V8). From some simple\n // benchmarks the performance is comparable, but allowing\n // V8 to optimize may mean easy performance wins in the future.\n\n if (this._str) {\n return this._str\n }\n\n var str = this.final ? '1' : '0',\n labels = Object.keys(this.edges).sort(),\n len = labels.length\n\n for (var i = 0; i < len; i++) {\n var label = labels[i],\n node = this.edges[label]\n\n str = str + label + node.id\n }\n\n return str\n}\n\n/**\n * Returns a new TokenSet that is the intersection of\n * this TokenSet and the passed TokenSet.\n *\n * This intersection will take into account any wildcards\n * contained within the TokenSet.\n *\n * @param {lunr.TokenSet} b - An other TokenSet to intersect with.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.prototype.intersect = function (b) {\n var output = new lunr.TokenSet,\n frame = undefined\n\n var stack = [{\n qNode: b,\n output: output,\n node: this\n }]\n\n while (stack.length) {\n frame = stack.pop()\n\n // NOTE: As with the #toString method, we are using\n // Object.keys and a for loop instead of a for-in loop\n // as both of these objects enter 'hash' mode, causing\n // the function to be de-optimised in V8\n var qEdges = Object.keys(frame.qNode.edges),\n qLen = qEdges.length,\n nEdges = Object.keys(frame.node.edges),\n nLen = nEdges.length\n\n for (var q = 0; q < qLen; q++) {\n var qEdge = qEdges[q]\n\n for (var n = 0; n < nLen; n++) {\n var nEdge = nEdges[n]\n\n if (nEdge == qEdge || qEdge == '*') {\n var node = frame.node.edges[nEdge],\n qNode = frame.qNode.edges[qEdge],\n final = node.final && qNode.final,\n next = undefined\n\n if (nEdge in frame.output.edges) {\n // an edge already exists for this character\n // no need to create a new node, just set the finality\n // bit unless this node is already final\n next = frame.output.edges[nEdge]\n next.final = next.final || final\n\n } else {\n // no edge exists yet, must create one\n // set the finality bit and insert it\n // into the output\n next = new lunr.TokenSet\n next.final = final\n frame.output.edges[nEdge] = next\n }\n\n stack.push({\n qNode: qNode,\n output: next,\n node: node\n })\n }\n }\n }\n }\n\n return output\n}\nlunr.TokenSet.Builder = function () {\n this.previousWord = \"\"\n this.root = new lunr.TokenSet\n this.uncheckedNodes = []\n this.minimizedNodes = {}\n}\n\nlunr.TokenSet.Builder.prototype.insert = function (word) {\n var node,\n commonPrefix = 0\n\n if (word < this.previousWord) {\n throw new Error (\"Out of order word insertion\")\n }\n\n for (var i = 0; i < word.length && i < this.previousWord.length; i++) {\n if (word[i] != this.previousWord[i]) break\n commonPrefix++\n }\n\n this.minimize(commonPrefix)\n\n if (this.uncheckedNodes.length == 0) {\n node = this.root\n } else {\n node = this.uncheckedNodes[this.uncheckedNodes.length - 1].child\n }\n\n for (var i = commonPrefix; i < word.length; i++) {\n var nextNode = new lunr.TokenSet,\n char = word[i]\n\n node.edges[char] = nextNode\n\n this.uncheckedNodes.push({\n parent: node,\n char: char,\n child: nextNode\n })\n\n node = nextNode\n }\n\n node.final = true\n this.previousWord = word\n}\n\nlunr.TokenSet.Builder.prototype.finish = function () {\n this.minimize(0)\n}\n\nlunr.TokenSet.Builder.prototype.minimize = function (downTo) {\n for (var i = this.uncheckedNodes.length - 1; i >= downTo; i--) {\n var node = this.uncheckedNodes[i],\n childKey = node.child.toString()\n\n if (childKey in this.minimizedNodes) {\n node.parent.edges[node.char] = this.minimizedNodes[childKey]\n } else {\n // Cache the key for this node since\n // we know it can't change anymore\n node.child._str = childKey\n\n this.minimizedNodes[childKey] = node.child\n }\n\n this.uncheckedNodes.pop()\n }\n}\n/*!\n * lunr.Index\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * An index contains the built index of all documents and provides a query interface\n * to the index.\n *\n * Usually instances of lunr.Index will not be created using this constructor, instead\n * lunr.Builder should be used to construct new indexes, or lunr.Index.load should be\n * used to load previously built and serialized indexes.\n *\n * @constructor\n * @param {Object} attrs - The attributes of the built search index.\n * @param {Object} attrs.invertedIndex - An index of term/field to document reference.\n * @param {Object} attrs.fieldVectors - Field vectors\n * @param {lunr.TokenSet} attrs.tokenSet - An set of all corpus tokens.\n * @param {string[]} attrs.fields - The names of indexed document fields.\n * @param {lunr.Pipeline} attrs.pipeline - The pipeline to use for search terms.\n */\nlunr.Index = function (attrs) {\n this.invertedIndex = attrs.invertedIndex\n this.fieldVectors = attrs.fieldVectors\n this.tokenSet = attrs.tokenSet\n this.fields = attrs.fields\n this.pipeline = attrs.pipeline\n}\n\n/**\n * A result contains details of a document matching a search query.\n * @typedef {Object} lunr.Index~Result\n * @property {string} ref - The reference of the document this result represents.\n * @property {number} score - A number between 0 and 1 representing how similar this document is to the query.\n * @property {lunr.MatchData} matchData - Contains metadata about this match including which term(s) caused the match.\n */\n\n/**\n * Although lunr provides the ability to create queries using lunr.Query, it also provides a simple\n * query language which itself is parsed into an instance of lunr.Query.\n *\n * For programmatically building queries it is advised to directly use lunr.Query, the query language\n * is best used for human entered text rather than program generated text.\n *\n * At its simplest queries can just be a single term, e.g. `hello`, multiple terms are also supported\n * and will be combined with OR, e.g `hello world` will match documents that contain either 'hello'\n * or 'world', though those that contain both will rank higher in the results.\n *\n * Wildcards can be included in terms to match one or more unspecified characters, these wildcards can\n * be inserted anywhere within the term, and more than one wildcard can exist in a single term. Adding\n * wildcards will increase the number of documents that will be found but can also have a negative\n * impact on query performance, especially with wildcards at the beginning of a term.\n *\n * Terms can be restricted to specific fields, e.g. `title:hello`, only documents with the term\n * hello in the title field will match this query. Using a field not present in the index will lead\n * to an error being thrown.\n *\n * Modifiers can also be added to terms, lunr supports edit distance and boost modifiers on terms. A term\n * boost will make documents matching that term score higher, e.g. `foo^5`. Edit distance is also supported\n * to provide fuzzy matching, e.g. 'hello~2' will match documents with hello with an edit distance of 2.\n * Avoid large values for edit distance to improve query performance.\n *\n * Each term also supports a presence modifier. By default a term's presence in document is optional, however\n * this can be changed to either required or prohibited. For a term's presence to be required in a document the\n * term should be prefixed with a '+', e.g. `+foo bar` is a search for documents that must contain 'foo' and\n * optionally contain 'bar'. Conversely a leading '-' sets the terms presence to prohibited, i.e. it must not\n * appear in a document, e.g. `-foo bar` is a search for documents that do not contain 'foo' but may contain 'bar'.\n *\n * To escape special characters the backslash character '\\' can be used, this allows searches to include\n * characters that would normally be considered modifiers, e.g. `foo\\~2` will search for a term \"foo~2\" instead\n * of attempting to apply a boost of 2 to the search term \"foo\".\n *\n * @typedef {string} lunr.Index~QueryString\n * @example Simple single term query\n * hello\n * @example Multiple term query\n * hello world\n * @example term scoped to a field\n * title:hello\n * @example term with a boost of 10\n * hello^10\n * @example term with an edit distance of 2\n * hello~2\n * @example terms with presence modifiers\n * -foo +bar baz\n */\n\n/**\n * Performs a search against the index using lunr query syntax.\n *\n * Results will be returned sorted by their score, the most relevant results\n * will be returned first. For details on how the score is calculated, please see\n * the {@link https://lunrjs.com/guides/searching.html#scoring|guide}.\n *\n * For more programmatic querying use lunr.Index#query.\n *\n * @param {lunr.Index~QueryString} queryString - A string containing a lunr query.\n * @throws {lunr.QueryParseError} If the passed query string cannot be parsed.\n * @returns {lunr.Index~Result[]}\n */\nlunr.Index.prototype.search = function (queryString) {\n return this.query(function (query) {\n var parser = new lunr.QueryParser(queryString, query)\n parser.parse()\n })\n}\n\n/**\n * A query builder callback provides a query object to be used to express\n * the query to perform on the index.\n *\n * @callback lunr.Index~queryBuilder\n * @param {lunr.Query} query - The query object to build up.\n * @this lunr.Query\n */\n\n/**\n * Performs a query against the index using the yielded lunr.Query object.\n *\n * If performing programmatic queries against the index, this method is preferred\n * over lunr.Index#search so as to avoid the additional query parsing overhead.\n *\n * A query object is yielded to the supplied function which should be used to\n * express the query to be run against the index.\n *\n * Note that although this function takes a callback parameter it is _not_ an\n * asynchronous operation, the callback is just yielded a query object to be\n * customized.\n *\n * @param {lunr.Index~queryBuilder} fn - A function that is used to build the query.\n * @returns {lunr.Index~Result[]}\n */\nlunr.Index.prototype.query = function (fn) {\n // for each query clause\n // * process terms\n // * expand terms from token set\n // * find matching documents and metadata\n // * get document vectors\n // * score documents\n\n var query = new lunr.Query(this.fields),\n matchingFields = Object.create(null),\n queryVectors = Object.create(null),\n termFieldCache = Object.create(null),\n requiredMatches = Object.create(null),\n prohibitedMatches = Object.create(null)\n\n /*\n * To support field level boosts a query vector is created per\n * field. An empty vector is eagerly created to support negated\n * queries.\n */\n for (var i = 0; i < this.fields.length; i++) {\n queryVectors[this.fields[i]] = new lunr.Vector\n }\n\n fn.call(query, query)\n\n for (var i = 0; i < query.clauses.length; i++) {\n /*\n * Unless the pipeline has been disabled for this term, which is\n * the case for terms with wildcards, we need to pass the clause\n * term through the search pipeline. A pipeline returns an array\n * of processed terms. Pipeline functions may expand the passed\n * term, which means we may end up performing multiple index lookups\n * for a single query term.\n */\n var clause = query.clauses[i],\n terms = null,\n clauseMatches = lunr.Set.complete\n\n if (clause.usePipeline) {\n terms = this.pipeline.runString(clause.term, {\n fields: clause.fields\n })\n } else {\n terms = [clause.term]\n }\n\n for (var m = 0; m < terms.length; m++) {\n var term = terms[m]\n\n /*\n * Each term returned from the pipeline needs to use the same query\n * clause object, e.g. the same boost and or edit distance. The\n * simplest way to do this is to re-use the clause object but mutate\n * its term property.\n */\n clause.term = term\n\n /*\n * From the term in the clause we create a token set which will then\n * be used to intersect the indexes token set to get a list of terms\n * to lookup in the inverted index\n */\n var termTokenSet = lunr.TokenSet.fromClause(clause),\n expandedTerms = this.tokenSet.intersect(termTokenSet).toArray()\n\n /*\n * If a term marked as required does not exist in the tokenSet it is\n * impossible for the search to return any matches. We set all the field\n * scoped required matches set to empty and stop examining any further\n * clauses.\n */\n if (expandedTerms.length === 0 && clause.presence === lunr.Query.presence.REQUIRED) {\n for (var k = 0; k < clause.fields.length; k++) {\n var field = clause.fields[k]\n requiredMatches[field] = lunr.Set.empty\n }\n\n break\n }\n\n for (var j = 0; j < expandedTerms.length; j++) {\n /*\n * For each term get the posting and termIndex, this is required for\n * building the query vector.\n */\n var expandedTerm = expandedTerms[j],\n posting = this.invertedIndex[expandedTerm],\n termIndex = posting._index\n\n for (var k = 0; k < clause.fields.length; k++) {\n /*\n * For each field that this query term is scoped by (by default\n * all fields are in scope) we need to get all the document refs\n * that have this term in that field.\n *\n * The posting is the entry in the invertedIndex for the matching\n * term from above.\n */\n var field = clause.fields[k],\n fieldPosting = posting[field],\n matchingDocumentRefs = Object.keys(fieldPosting),\n termField = expandedTerm + \"/\" + field,\n matchingDocumentsSet = new lunr.Set(matchingDocumentRefs)\n\n /*\n * if the presence of this term is required ensure that the matching\n * documents are added to the set of required matches for this clause.\n *\n */\n if (clause.presence == lunr.Query.presence.REQUIRED) {\n clauseMatches = clauseMatches.union(matchingDocumentsSet)\n\n if (requiredMatches[field] === undefined) {\n requiredMatches[field] = lunr.Set.complete\n }\n }\n\n /*\n * if the presence of this term is prohibited ensure that the matching\n * documents are added to the set of prohibited matches for this field,\n * creating that set if it does not yet exist.\n */\n if (clause.presence == lunr.Query.presence.PROHIBITED) {\n if (prohibitedMatches[field] === undefined) {\n prohibitedMatches[field] = lunr.Set.empty\n }\n\n prohibitedMatches[field] = prohibitedMatches[field].union(matchingDocumentsSet)\n\n /*\n * Prohibited matches should not be part of the query vector used for\n * similarity scoring and no metadata should be extracted so we continue\n * to the next field\n */\n continue\n }\n\n /*\n * The query field vector is populated using the termIndex found for\n * the term and a unit value with the appropriate boost applied.\n * Using upsert because there could already be an entry in the vector\n * for the term we are working with. In that case we just add the scores\n * together.\n */\n queryVectors[field].upsert(termIndex, clause.boost, function (a, b) { return a + b })\n\n /**\n * If we've already seen this term, field combo then we've already collected\n * the matching documents and metadata, no need to go through all that again\n */\n if (termFieldCache[termField]) {\n continue\n }\n\n for (var l = 0; l < matchingDocumentRefs.length; l++) {\n /*\n * All metadata for this term/field/document triple\n * are then extracted and collected into an instance\n * of lunr.MatchData ready to be returned in the query\n * results\n */\n var matchingDocumentRef = matchingDocumentRefs[l],\n matchingFieldRef = new lunr.FieldRef (matchingDocumentRef, field),\n metadata = fieldPosting[matchingDocumentRef],\n fieldMatch\n\n if ((fieldMatch = matchingFields[matchingFieldRef]) === undefined) {\n matchingFields[matchingFieldRef] = new lunr.MatchData (expandedTerm, field, metadata)\n } else {\n fieldMatch.add(expandedTerm, field, metadata)\n }\n\n }\n\n termFieldCache[termField] = true\n }\n }\n }\n\n /**\n * If the presence was required we need to update the requiredMatches field sets.\n * We do this after all fields for the term have collected their matches because\n * the clause terms presence is required in _any_ of the fields not _all_ of the\n * fields.\n */\n if (clause.presence === lunr.Query.presence.REQUIRED) {\n for (var k = 0; k < clause.fields.length; k++) {\n var field = clause.fields[k]\n requiredMatches[field] = requiredMatches[field].intersect(clauseMatches)\n }\n }\n }\n\n /**\n * Need to combine the field scoped required and prohibited\n * matching documents into a global set of required and prohibited\n * matches\n */\n var allRequiredMatches = lunr.Set.complete,\n allProhibitedMatches = lunr.Set.empty\n\n for (var i = 0; i < this.fields.length; i++) {\n var field = this.fields[i]\n\n if (requiredMatches[field]) {\n allRequiredMatches = allRequiredMatches.intersect(requiredMatches[field])\n }\n\n if (prohibitedMatches[field]) {\n allProhibitedMatches = allProhibitedMatches.union(prohibitedMatches[field])\n }\n }\n\n var matchingFieldRefs = Object.keys(matchingFields),\n results = [],\n matches = Object.create(null)\n\n /*\n * If the query is negated (contains only prohibited terms)\n * we need to get _all_ fieldRefs currently existing in the\n * index. This is only done when we know that the query is\n * entirely prohibited terms to avoid any cost of getting all\n * fieldRefs unnecessarily.\n *\n * Additionally, blank MatchData must be created to correctly\n * populate the results.\n */\n if (query.isNegated()) {\n matchingFieldRefs = Object.keys(this.fieldVectors)\n\n for (var i = 0; i < matchingFieldRefs.length; i++) {\n var matchingFieldRef = matchingFieldRefs[i]\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRef)\n matchingFields[matchingFieldRef] = new lunr.MatchData\n }\n }\n\n for (var i = 0; i < matchingFieldRefs.length; i++) {\n /*\n * Currently we have document fields that match the query, but we\n * need to return documents. The matchData and scores are combined\n * from multiple fields belonging to the same document.\n *\n * Scores are calculated by field, using the query vectors created\n * above, and combined into a final document score using addition.\n */\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRefs[i]),\n docRef = fieldRef.docRef\n\n if (!allRequiredMatches.contains(docRef)) {\n continue\n }\n\n if (allProhibitedMatches.contains(docRef)) {\n continue\n }\n\n var fieldVector = this.fieldVectors[fieldRef],\n score = queryVectors[fieldRef.fieldName].similarity(fieldVector),\n docMatch\n\n if ((docMatch = matches[docRef]) !== undefined) {\n docMatch.score += score\n docMatch.matchData.combine(matchingFields[fieldRef])\n } else {\n var match = {\n ref: docRef,\n score: score,\n matchData: matchingFields[fieldRef]\n }\n matches[docRef] = match\n results.push(match)\n }\n }\n\n /*\n * Sort the results objects by score, highest first.\n */\n return results.sort(function (a, b) {\n return b.score - a.score\n })\n}\n\n/**\n * Prepares the index for JSON serialization.\n *\n * The schema for this JSON blob will be described in a\n * separate JSON schema file.\n *\n * @returns {Object}\n */\nlunr.Index.prototype.toJSON = function () {\n var invertedIndex = Object.keys(this.invertedIndex)\n .sort()\n .map(function (term) {\n return [term, this.invertedIndex[term]]\n }, this)\n\n var fieldVectors = Object.keys(this.fieldVectors)\n .map(function (ref) {\n return [ref, this.fieldVectors[ref].toJSON()]\n }, this)\n\n return {\n version: lunr.version,\n fields: this.fields,\n fieldVectors: fieldVectors,\n invertedIndex: invertedIndex,\n pipeline: this.pipeline.toJSON()\n }\n}\n\n/**\n * Loads a previously serialized lunr.Index\n *\n * @param {Object} serializedIndex - A previously serialized lunr.Index\n * @returns {lunr.Index}\n */\nlunr.Index.load = function (serializedIndex) {\n var attrs = {},\n fieldVectors = {},\n serializedVectors = serializedIndex.fieldVectors,\n invertedIndex = Object.create(null),\n serializedInvertedIndex = serializedIndex.invertedIndex,\n tokenSetBuilder = new lunr.TokenSet.Builder,\n pipeline = lunr.Pipeline.load(serializedIndex.pipeline)\n\n if (serializedIndex.version != lunr.version) {\n lunr.utils.warn(\"Version mismatch when loading serialised index. Current version of lunr '\" + lunr.version + \"' does not match serialized index '\" + serializedIndex.version + \"'\")\n }\n\n for (var i = 0; i < serializedVectors.length; i++) {\n var tuple = serializedVectors[i],\n ref = tuple[0],\n elements = tuple[1]\n\n fieldVectors[ref] = new lunr.Vector(elements)\n }\n\n for (var i = 0; i < serializedInvertedIndex.length; i++) {\n var tuple = serializedInvertedIndex[i],\n term = tuple[0],\n posting = tuple[1]\n\n tokenSetBuilder.insert(term)\n invertedIndex[term] = posting\n }\n\n tokenSetBuilder.finish()\n\n attrs.fields = serializedIndex.fields\n\n attrs.fieldVectors = fieldVectors\n attrs.invertedIndex = invertedIndex\n attrs.tokenSet = tokenSetBuilder.root\n attrs.pipeline = pipeline\n\n return new lunr.Index(attrs)\n}\n/*!\n * lunr.Builder\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.Builder performs indexing on a set of documents and\n * returns instances of lunr.Index ready for querying.\n *\n * All configuration of the index is done via the builder, the\n * fields to index, the document reference, the text processing\n * pipeline and document scoring parameters are all set on the\n * builder before indexing.\n *\n * @constructor\n * @property {string} _ref - Internal reference to the document reference field.\n * @property {string[]} _fields - Internal reference to the document fields to index.\n * @property {object} invertedIndex - The inverted index maps terms to document fields.\n * @property {object} documentTermFrequencies - Keeps track of document term frequencies.\n * @property {object} documentLengths - Keeps track of the length of documents added to the index.\n * @property {lunr.tokenizer} tokenizer - Function for splitting strings into tokens for indexing.\n * @property {lunr.Pipeline} pipeline - The pipeline performs text processing on tokens before indexing.\n * @property {lunr.Pipeline} searchPipeline - A pipeline for processing search terms before querying the index.\n * @property {number} documentCount - Keeps track of the total number of documents indexed.\n * @property {number} _b - A parameter to control field length normalization, setting this to 0 disabled normalization, 1 fully normalizes field lengths, the default value is 0.75.\n * @property {number} _k1 - A parameter to control how quickly an increase in term frequency results in term frequency saturation, the default value is 1.2.\n * @property {number} termIndex - A counter incremented for each unique term, used to identify a terms position in the vector space.\n * @property {array} metadataWhitelist - A list of metadata keys that have been whitelisted for entry in the index.\n */\nlunr.Builder = function () {\n this._ref = \"id\"\n this._fields = Object.create(null)\n this._documents = Object.create(null)\n this.invertedIndex = Object.create(null)\n this.fieldTermFrequencies = {}\n this.fieldLengths = {}\n this.tokenizer = lunr.tokenizer\n this.pipeline = new lunr.Pipeline\n this.searchPipeline = new lunr.Pipeline\n this.documentCount = 0\n this._b = 0.75\n this._k1 = 1.2\n this.termIndex = 0\n this.metadataWhitelist = []\n}\n\n/**\n * Sets the document field used as the document reference. Every document must have this field.\n * The type of this field in the document should be a string, if it is not a string it will be\n * coerced into a string by calling toString.\n *\n * The default ref is 'id'.\n *\n * The ref should _not_ be changed during indexing, it should be set before any documents are\n * added to the index. Changing it during indexing can lead to inconsistent results.\n *\n * @param {string} ref - The name of the reference field in the document.\n */\nlunr.Builder.prototype.ref = function (ref) {\n this._ref = ref\n}\n\n/**\n * A function that is used to extract a field from a document.\n *\n * Lunr expects a field to be at the top level of a document, if however the field\n * is deeply nested within a document an extractor function can be used to extract\n * the right field for indexing.\n *\n * @callback fieldExtractor\n * @param {object} doc - The document being added to the index.\n * @returns {?(string|object|object[])} obj - The object that will be indexed for this field.\n * @example Extracting a nested field\n * function (doc) { return doc.nested.field }\n */\n\n/**\n * Adds a field to the list of document fields that will be indexed. Every document being\n * indexed should have this field. Null values for this field in indexed documents will\n * not cause errors but will limit the chance of that document being retrieved by searches.\n *\n * All fields should be added before adding documents to the index. Adding fields after\n * a document has been indexed will have no effect on already indexed documents.\n *\n * Fields can be boosted at build time. This allows terms within that field to have more\n * importance when ranking search results. Use a field boost to specify that matches within\n * one field are more important than other fields.\n *\n * @param {string} fieldName - The name of a field to index in all documents.\n * @param {object} attributes - Optional attributes associated with this field.\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this field.\n * @param {fieldExtractor} [attributes.extractor] - Function to extract a field from a document.\n * @throws {RangeError} fieldName cannot contain unsupported characters '/'\n */\nlunr.Builder.prototype.field = function (fieldName, attributes) {\n if (/\\//.test(fieldName)) {\n throw new RangeError (\"Field '\" + fieldName + \"' contains illegal character '/'\")\n }\n\n this._fields[fieldName] = attributes || {}\n}\n\n/**\n * A parameter to tune the amount of field length normalisation that is applied when\n * calculating relevance scores. A value of 0 will completely disable any normalisation\n * and a value of 1 will fully normalise field lengths. The default is 0.75. Values of b\n * will be clamped to the range 0 - 1.\n *\n * @param {number} number - The value to set for this tuning parameter.\n */\nlunr.Builder.prototype.b = function (number) {\n if (number < 0) {\n this._b = 0\n } else if (number > 1) {\n this._b = 1\n } else {\n this._b = number\n }\n}\n\n/**\n * A parameter that controls the speed at which a rise in term frequency results in term\n * frequency saturation. The default value is 1.2. Setting this to a higher value will give\n * slower saturation levels, a lower value will result in quicker saturation.\n *\n * @param {number} number - The value to set for this tuning parameter.\n */\nlunr.Builder.prototype.k1 = function (number) {\n this._k1 = number\n}\n\n/**\n * Adds a document to the index.\n *\n * Before adding fields to the index the index should have been fully setup, with the document\n * ref and all fields to index already having been specified.\n *\n * The document must have a field name as specified by the ref (by default this is 'id') and\n * it should have all fields defined for indexing, though null or undefined values will not\n * cause errors.\n *\n * Entire documents can be boosted at build time. Applying a boost to a document indicates that\n * this document should rank higher in search results than other documents.\n *\n * @param {object} doc - The document to add to the index.\n * @param {object} attributes - Optional attributes associated with this document.\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this document.\n */\nlunr.Builder.prototype.add = function (doc, attributes) {\n var docRef = doc[this._ref],\n fields = Object.keys(this._fields)\n\n this._documents[docRef] = attributes || {}\n this.documentCount += 1\n\n for (var i = 0; i < fields.length; i++) {\n var fieldName = fields[i],\n extractor = this._fields[fieldName].extractor,\n field = extractor ? extractor(doc) : doc[fieldName],\n tokens = this.tokenizer(field, {\n fields: [fieldName]\n }),\n terms = this.pipeline.run(tokens),\n fieldRef = new lunr.FieldRef (docRef, fieldName),\n fieldTerms = Object.create(null)\n\n this.fieldTermFrequencies[fieldRef] = fieldTerms\n this.fieldLengths[fieldRef] = 0\n\n // store the length of this field for this document\n this.fieldLengths[fieldRef] += terms.length\n\n // calculate term frequencies for this field\n for (var j = 0; j < terms.length; j++) {\n var term = terms[j]\n\n if (fieldTerms[term] == undefined) {\n fieldTerms[term] = 0\n }\n\n fieldTerms[term] += 1\n\n // add to inverted index\n // create an initial posting if one doesn't exist\n if (this.invertedIndex[term] == undefined) {\n var posting = Object.create(null)\n posting[\"_index\"] = this.termIndex\n this.termIndex += 1\n\n for (var k = 0; k < fields.length; k++) {\n posting[fields[k]] = Object.create(null)\n }\n\n this.invertedIndex[term] = posting\n }\n\n // add an entry for this term/fieldName/docRef to the invertedIndex\n if (this.invertedIndex[term][fieldName][docRef] == undefined) {\n this.invertedIndex[term][fieldName][docRef] = Object.create(null)\n }\n\n // store all whitelisted metadata about this token in the\n // inverted index\n for (var l = 0; l < this.metadataWhitelist.length; l++) {\n var metadataKey = this.metadataWhitelist[l],\n metadata = term.metadata[metadataKey]\n\n if (this.invertedIndex[term][fieldName][docRef][metadataKey] == undefined) {\n this.invertedIndex[term][fieldName][docRef][metadataKey] = []\n }\n\n this.invertedIndex[term][fieldName][docRef][metadataKey].push(metadata)\n }\n }\n\n }\n}\n\n/**\n * Calculates the average document length for this index\n *\n * @private\n */\nlunr.Builder.prototype.calculateAverageFieldLengths = function () {\n\n var fieldRefs = Object.keys(this.fieldLengths),\n numberOfFields = fieldRefs.length,\n accumulator = {},\n documentsWithField = {}\n\n for (var i = 0; i < numberOfFields; i++) {\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\n field = fieldRef.fieldName\n\n documentsWithField[field] || (documentsWithField[field] = 0)\n documentsWithField[field] += 1\n\n accumulator[field] || (accumulator[field] = 0)\n accumulator[field] += this.fieldLengths[fieldRef]\n }\n\n var fields = Object.keys(this._fields)\n\n for (var i = 0; i < fields.length; i++) {\n var fieldName = fields[i]\n accumulator[fieldName] = accumulator[fieldName] / documentsWithField[fieldName]\n }\n\n this.averageFieldLength = accumulator\n}\n\n/**\n * Builds a vector space model of every document using lunr.Vector\n *\n * @private\n */\nlunr.Builder.prototype.createFieldVectors = function () {\n var fieldVectors = {},\n fieldRefs = Object.keys(this.fieldTermFrequencies),\n fieldRefsLength = fieldRefs.length,\n termIdfCache = Object.create(null)\n\n for (var i = 0; i < fieldRefsLength; i++) {\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\n fieldName = fieldRef.fieldName,\n fieldLength = this.fieldLengths[fieldRef],\n fieldVector = new lunr.Vector,\n termFrequencies = this.fieldTermFrequencies[fieldRef],\n terms = Object.keys(termFrequencies),\n termsLength = terms.length\n\n\n var fieldBoost = this._fields[fieldName].boost || 1,\n docBoost = this._documents[fieldRef.docRef].boost || 1\n\n for (var j = 0; j < termsLength; j++) {\n var term = terms[j],\n tf = termFrequencies[term],\n termIndex = this.invertedIndex[term]._index,\n idf, score, scoreWithPrecision\n\n if (termIdfCache[term] === undefined) {\n idf = lunr.idf(this.invertedIndex[term], this.documentCount)\n termIdfCache[term] = idf\n } else {\n idf = termIdfCache[term]\n }\n\n score = idf * ((this._k1 + 1) * tf) / (this._k1 * (1 - this._b + this._b * (fieldLength / this.averageFieldLength[fieldName])) + tf)\n score *= fieldBoost\n score *= docBoost\n scoreWithPrecision = Math.round(score * 1000) / 1000\n // Converts 1.23456789 to 1.234.\n // Reducing the precision so that the vectors take up less\n // space when serialised. Doing it now so that they behave\n // the same before and after serialisation. Also, this is\n // the fastest approach to reducing a number's precision in\n // JavaScript.\n\n fieldVector.insert(termIndex, scoreWithPrecision)\n }\n\n fieldVectors[fieldRef] = fieldVector\n }\n\n this.fieldVectors = fieldVectors\n}\n\n/**\n * Creates a token set of all tokens in the index using lunr.TokenSet\n *\n * @private\n */\nlunr.Builder.prototype.createTokenSet = function () {\n this.tokenSet = lunr.TokenSet.fromArray(\n Object.keys(this.invertedIndex).sort()\n )\n}\n\n/**\n * Builds the index, creating an instance of lunr.Index.\n *\n * This completes the indexing process and should only be called\n * once all documents have been added to the index.\n *\n * @returns {lunr.Index}\n */\nlunr.Builder.prototype.build = function () {\n this.calculateAverageFieldLengths()\n this.createFieldVectors()\n this.createTokenSet()\n\n return new lunr.Index({\n invertedIndex: this.invertedIndex,\n fieldVectors: this.fieldVectors,\n tokenSet: this.tokenSet,\n fields: Object.keys(this._fields),\n pipeline: this.searchPipeline\n })\n}\n\n/**\n * Applies a plugin to the index builder.\n *\n * A plugin is a function that is called with the index builder as its context.\n * Plugins can be used to customise or extend the behaviour of the index\n * in some way. A plugin is just a function, that encapsulated the custom\n * behaviour that should be applied when building the index.\n *\n * The plugin function will be called with the index builder as its argument, additional\n * arguments can also be passed when calling use. The function will be called\n * with the index builder as its context.\n *\n * @param {Function} plugin The plugin to apply.\n */\nlunr.Builder.prototype.use = function (fn) {\n var args = Array.prototype.slice.call(arguments, 1)\n args.unshift(this)\n fn.apply(this, args)\n}\n/**\n * Contains and collects metadata about a matching document.\n * A single instance of lunr.MatchData is returned as part of every\n * lunr.Index~Result.\n *\n * @constructor\n * @param {string} term - The term this match data is associated with\n * @param {string} field - The field in which the term was found\n * @param {object} metadata - The metadata recorded about this term in this field\n * @property {object} metadata - A cloned collection of metadata associated with this document.\n * @see {@link lunr.Index~Result}\n */\nlunr.MatchData = function (term, field, metadata) {\n var clonedMetadata = Object.create(null),\n metadataKeys = Object.keys(metadata || {})\n\n // Cloning the metadata to prevent the original\n // being mutated during match data combination.\n // Metadata is kept in an array within the inverted\n // index so cloning the data can be done with\n // Array#slice\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i]\n clonedMetadata[key] = metadata[key].slice()\n }\n\n this.metadata = Object.create(null)\n\n if (term !== undefined) {\n this.metadata[term] = Object.create(null)\n this.metadata[term][field] = clonedMetadata\n }\n}\n\n/**\n * An instance of lunr.MatchData will be created for every term that matches a\n * document. However only one instance is required in a lunr.Index~Result. This\n * method combines metadata from another instance of lunr.MatchData with this\n * objects metadata.\n *\n * @param {lunr.MatchData} otherMatchData - Another instance of match data to merge with this one.\n * @see {@link lunr.Index~Result}\n */\nlunr.MatchData.prototype.combine = function (otherMatchData) {\n var terms = Object.keys(otherMatchData.metadata)\n\n for (var i = 0; i < terms.length; i++) {\n var term = terms[i],\n fields = Object.keys(otherMatchData.metadata[term])\n\n if (this.metadata[term] == undefined) {\n this.metadata[term] = Object.create(null)\n }\n\n for (var j = 0; j < fields.length; j++) {\n var field = fields[j],\n keys = Object.keys(otherMatchData.metadata[term][field])\n\n if (this.metadata[term][field] == undefined) {\n this.metadata[term][field] = Object.create(null)\n }\n\n for (var k = 0; k < keys.length; k++) {\n var key = keys[k]\n\n if (this.metadata[term][field][key] == undefined) {\n this.metadata[term][field][key] = otherMatchData.metadata[term][field][key]\n } else {\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(otherMatchData.metadata[term][field][key])\n }\n\n }\n }\n }\n}\n\n/**\n * Add metadata for a term/field pair to this instance of match data.\n *\n * @param {string} term - The term this match data is associated with\n * @param {string} field - The field in which the term was found\n * @param {object} metadata - The metadata recorded about this term in this field\n */\nlunr.MatchData.prototype.add = function (term, field, metadata) {\n if (!(term in this.metadata)) {\n this.metadata[term] = Object.create(null)\n this.metadata[term][field] = metadata\n return\n }\n\n if (!(field in this.metadata[term])) {\n this.metadata[term][field] = metadata\n return\n }\n\n var metadataKeys = Object.keys(metadata)\n\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i]\n\n if (key in this.metadata[term][field]) {\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(metadata[key])\n } else {\n this.metadata[term][field][key] = metadata[key]\n }\n }\n}\n/**\n * A lunr.Query provides a programmatic way of defining queries to be performed\n * against a {@link lunr.Index}.\n *\n * Prefer constructing a lunr.Query using the {@link lunr.Index#query} method\n * so the query object is pre-initialized with the right index fields.\n *\n * @constructor\n * @property {lunr.Query~Clause[]} clauses - An array of query clauses.\n * @property {string[]} allFields - An array of all available fields in a lunr.Index.\n */\nlunr.Query = function (allFields) {\n this.clauses = []\n this.allFields = allFields\n}\n\n/**\n * Constants for indicating what kind of automatic wildcard insertion will be used when constructing a query clause.\n *\n * This allows wildcards to be added to the beginning and end of a term without having to manually do any string\n * concatenation.\n *\n * The wildcard constants can be bitwise combined to select both leading and trailing wildcards.\n *\n * @constant\n * @default\n * @property {number} wildcard.NONE - The term will have no wildcards inserted, this is the default behaviour\n * @property {number} wildcard.LEADING - Prepend the term with a wildcard, unless a leading wildcard already exists\n * @property {number} wildcard.TRAILING - Append a wildcard to the term, unless a trailing wildcard already exists\n * @see lunr.Query~Clause\n * @see lunr.Query#clause\n * @see lunr.Query#term\n * @example query term with trailing wildcard\n * query.term('foo', { wildcard: lunr.Query.wildcard.TRAILING })\n * @example query term with leading and trailing wildcard\n * query.term('foo', {\n * wildcard: lunr.Query.wildcard.LEADING | lunr.Query.wildcard.TRAILING\n * })\n */\n\nlunr.Query.wildcard = new String (\"*\")\nlunr.Query.wildcard.NONE = 0\nlunr.Query.wildcard.LEADING = 1\nlunr.Query.wildcard.TRAILING = 2\n\n/**\n * Constants for indicating what kind of presence a term must have in matching documents.\n *\n * @constant\n * @enum {number}\n * @see lunr.Query~Clause\n * @see lunr.Query#clause\n * @see lunr.Query#term\n * @example query term with required presence\n * query.term('foo', { presence: lunr.Query.presence.REQUIRED })\n */\nlunr.Query.presence = {\n /**\n * Term's presence in a document is optional, this is the default value.\n */\n OPTIONAL: 1,\n\n /**\n * Term's presence in a document is required, documents that do not contain\n * this term will not be returned.\n */\n REQUIRED: 2,\n\n /**\n * Term's presence in a document is prohibited, documents that do contain\n * this term will not be returned.\n */\n PROHIBITED: 3\n}\n\n/**\n * A single clause in a {@link lunr.Query} contains a term and details on how to\n * match that term against a {@link lunr.Index}.\n *\n * @typedef {Object} lunr.Query~Clause\n * @property {string[]} fields - The fields in an index this clause should be matched against.\n * @property {number} [boost=1] - Any boost that should be applied when matching this clause.\n * @property {number} [editDistance] - Whether the term should have fuzzy matching applied, and how fuzzy the match should be.\n * @property {boolean} [usePipeline] - Whether the term should be passed through the search pipeline.\n * @property {number} [wildcard=lunr.Query.wildcard.NONE] - Whether the term should have wildcards appended or prepended.\n * @property {number} [presence=lunr.Query.presence.OPTIONAL] - The terms presence in any matching documents.\n */\n\n/**\n * Adds a {@link lunr.Query~Clause} to this query.\n *\n * Unless the clause contains the fields to be matched all fields will be matched. In addition\n * a default boost of 1 is applied to the clause.\n *\n * @param {lunr.Query~Clause} clause - The clause to add to this query.\n * @see lunr.Query~Clause\n * @returns {lunr.Query}\n */\nlunr.Query.prototype.clause = function (clause) {\n if (!('fields' in clause)) {\n clause.fields = this.allFields\n }\n\n if (!('boost' in clause)) {\n clause.boost = 1\n }\n\n if (!('usePipeline' in clause)) {\n clause.usePipeline = true\n }\n\n if (!('wildcard' in clause)) {\n clause.wildcard = lunr.Query.wildcard.NONE\n }\n\n if ((clause.wildcard & lunr.Query.wildcard.LEADING) && (clause.term.charAt(0) != lunr.Query.wildcard)) {\n clause.term = \"*\" + clause.term\n }\n\n if ((clause.wildcard & lunr.Query.wildcard.TRAILING) && (clause.term.slice(-1) != lunr.Query.wildcard)) {\n clause.term = \"\" + clause.term + \"*\"\n }\n\n if (!('presence' in clause)) {\n clause.presence = lunr.Query.presence.OPTIONAL\n }\n\n this.clauses.push(clause)\n\n return this\n}\n\n/**\n * A negated query is one in which every clause has a presence of\n * prohibited. These queries require some special processing to return\n * the expected results.\n *\n * @returns boolean\n */\nlunr.Query.prototype.isNegated = function () {\n for (var i = 0; i < this.clauses.length; i++) {\n if (this.clauses[i].presence != lunr.Query.presence.PROHIBITED) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * Adds a term to the current query, under the covers this will create a {@link lunr.Query~Clause}\n * to the list of clauses that make up this query.\n *\n * The term is used as is, i.e. no tokenization will be performed by this method. Instead conversion\n * to a token or token-like string should be done before calling this method.\n *\n * The term will be converted to a string by calling `toString`. Multiple terms can be passed as an\n * array, each term in the array will share the same options.\n *\n * @param {object|object[]} term - The term(s) to add to the query.\n * @param {object} [options] - Any additional properties to add to the query clause.\n * @returns {lunr.Query}\n * @see lunr.Query#clause\n * @see lunr.Query~Clause\n * @example adding a single term to a query\n * query.term(\"foo\")\n * @example adding a single term to a query and specifying search fields, term boost and automatic trailing wildcard\n * query.term(\"foo\", {\n * fields: [\"title\"],\n * boost: 10,\n * wildcard: lunr.Query.wildcard.TRAILING\n * })\n * @example using lunr.tokenizer to convert a string to tokens before using them as terms\n * query.term(lunr.tokenizer(\"foo bar\"))\n */\nlunr.Query.prototype.term = function (term, options) {\n if (Array.isArray(term)) {\n term.forEach(function (t) { this.term(t, lunr.utils.clone(options)) }, this)\n return this\n }\n\n var clause = options || {}\n clause.term = term.toString()\n\n this.clause(clause)\n\n return this\n}\nlunr.QueryParseError = function (message, start, end) {\n this.name = \"QueryParseError\"\n this.message = message\n this.start = start\n this.end = end\n}\n\nlunr.QueryParseError.prototype = new Error\nlunr.QueryLexer = function (str) {\n this.lexemes = []\n this.str = str\n this.length = str.length\n this.pos = 0\n this.start = 0\n this.escapeCharPositions = []\n}\n\nlunr.QueryLexer.prototype.run = function () {\n var state = lunr.QueryLexer.lexText\n\n while (state) {\n state = state(this)\n }\n}\n\nlunr.QueryLexer.prototype.sliceString = function () {\n var subSlices = [],\n sliceStart = this.start,\n sliceEnd = this.pos\n\n for (var i = 0; i < this.escapeCharPositions.length; i++) {\n sliceEnd = this.escapeCharPositions[i]\n subSlices.push(this.str.slice(sliceStart, sliceEnd))\n sliceStart = sliceEnd + 1\n }\n\n subSlices.push(this.str.slice(sliceStart, this.pos))\n this.escapeCharPositions.length = 0\n\n return subSlices.join('')\n}\n\nlunr.QueryLexer.prototype.emit = function (type) {\n this.lexemes.push({\n type: type,\n str: this.sliceString(),\n start: this.start,\n end: this.pos\n })\n\n this.start = this.pos\n}\n\nlunr.QueryLexer.prototype.escapeCharacter = function () {\n this.escapeCharPositions.push(this.pos - 1)\n this.pos += 1\n}\n\nlunr.QueryLexer.prototype.next = function () {\n if (this.pos >= this.length) {\n return lunr.QueryLexer.EOS\n }\n\n var char = this.str.charAt(this.pos)\n this.pos += 1\n return char\n}\n\nlunr.QueryLexer.prototype.width = function () {\n return this.pos - this.start\n}\n\nlunr.QueryLexer.prototype.ignore = function () {\n if (this.start == this.pos) {\n this.pos += 1\n }\n\n this.start = this.pos\n}\n\nlunr.QueryLexer.prototype.backup = function () {\n this.pos -= 1\n}\n\nlunr.QueryLexer.prototype.acceptDigitRun = function () {\n var char, charCode\n\n do {\n char = this.next()\n charCode = char.charCodeAt(0)\n } while (charCode > 47 && charCode < 58)\n\n if (char != lunr.QueryLexer.EOS) {\n this.backup()\n }\n}\n\nlunr.QueryLexer.prototype.more = function () {\n return this.pos < this.length\n}\n\nlunr.QueryLexer.EOS = 'EOS'\nlunr.QueryLexer.FIELD = 'FIELD'\nlunr.QueryLexer.TERM = 'TERM'\nlunr.QueryLexer.EDIT_DISTANCE = 'EDIT_DISTANCE'\nlunr.QueryLexer.BOOST = 'BOOST'\nlunr.QueryLexer.PRESENCE = 'PRESENCE'\n\nlunr.QueryLexer.lexField = function (lexer) {\n lexer.backup()\n lexer.emit(lunr.QueryLexer.FIELD)\n lexer.ignore()\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexTerm = function (lexer) {\n if (lexer.width() > 1) {\n lexer.backup()\n lexer.emit(lunr.QueryLexer.TERM)\n }\n\n lexer.ignore()\n\n if (lexer.more()) {\n return lunr.QueryLexer.lexText\n }\n}\n\nlunr.QueryLexer.lexEditDistance = function (lexer) {\n lexer.ignore()\n lexer.acceptDigitRun()\n lexer.emit(lunr.QueryLexer.EDIT_DISTANCE)\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexBoost = function (lexer) {\n lexer.ignore()\n lexer.acceptDigitRun()\n lexer.emit(lunr.QueryLexer.BOOST)\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexEOS = function (lexer) {\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n}\n\n// This matches the separator used when tokenising fields\n// within a document. These should match otherwise it is\n// not possible to search for some tokens within a document.\n//\n// It is possible for the user to change the separator on the\n// tokenizer so it _might_ clash with any other of the special\n// characters already used within the search string, e.g. :.\n//\n// This means that it is possible to change the separator in\n// such a way that makes some words unsearchable using a search\n// string.\nlunr.QueryLexer.termSeparator = lunr.tokenizer.separator\n\nlunr.QueryLexer.lexText = function (lexer) {\n while (true) {\n var char = lexer.next()\n\n if (char == lunr.QueryLexer.EOS) {\n return lunr.QueryLexer.lexEOS\n }\n\n // Escape character is '\\'\n if (char.charCodeAt(0) == 92) {\n lexer.escapeCharacter()\n continue\n }\n\n if (char == \":\") {\n return lunr.QueryLexer.lexField\n }\n\n if (char == \"~\") {\n lexer.backup()\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n return lunr.QueryLexer.lexEditDistance\n }\n\n if (char == \"^\") {\n lexer.backup()\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n return lunr.QueryLexer.lexBoost\n }\n\n // \"+\" indicates term presence is required\n // checking for length to ensure that only\n // leading \"+\" are considered\n if (char == \"+\" && lexer.width() === 1) {\n lexer.emit(lunr.QueryLexer.PRESENCE)\n return lunr.QueryLexer.lexText\n }\n\n // \"-\" indicates term presence is prohibited\n // checking for length to ensure that only\n // leading \"-\" are considered\n if (char == \"-\" && lexer.width() === 1) {\n lexer.emit(lunr.QueryLexer.PRESENCE)\n return lunr.QueryLexer.lexText\n }\n\n if (char.match(lunr.QueryLexer.termSeparator)) {\n return lunr.QueryLexer.lexTerm\n }\n }\n}\n\nlunr.QueryParser = function (str, query) {\n this.lexer = new lunr.QueryLexer (str)\n this.query = query\n this.currentClause = {}\n this.lexemeIdx = 0\n}\n\nlunr.QueryParser.prototype.parse = function () {\n this.lexer.run()\n this.lexemes = this.lexer.lexemes\n\n var state = lunr.QueryParser.parseClause\n\n while (state) {\n state = state(this)\n }\n\n return this.query\n}\n\nlunr.QueryParser.prototype.peekLexeme = function () {\n return this.lexemes[this.lexemeIdx]\n}\n\nlunr.QueryParser.prototype.consumeLexeme = function () {\n var lexeme = this.peekLexeme()\n this.lexemeIdx += 1\n return lexeme\n}\n\nlunr.QueryParser.prototype.nextClause = function () {\n var completedClause = this.currentClause\n this.query.clause(completedClause)\n this.currentClause = {}\n}\n\nlunr.QueryParser.parseClause = function (parser) {\n var lexeme = parser.peekLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n switch (lexeme.type) {\n case lunr.QueryLexer.PRESENCE:\n return lunr.QueryParser.parsePresence\n case lunr.QueryLexer.FIELD:\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expected either a field or a term, found \" + lexeme.type\n\n if (lexeme.str.length >= 1) {\n errorMessage += \" with value '\" + lexeme.str + \"'\"\n }\n\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n}\n\nlunr.QueryParser.parsePresence = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n switch (lexeme.str) {\n case \"-\":\n parser.currentClause.presence = lunr.Query.presence.PROHIBITED\n break\n case \"+\":\n parser.currentClause.presence = lunr.Query.presence.REQUIRED\n break\n default:\n var errorMessage = \"unrecognised presence operator'\" + lexeme.str + \"'\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n var errorMessage = \"expecting term or field, found nothing\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.FIELD:\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expecting term or field, found '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseField = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n if (parser.query.allFields.indexOf(lexeme.str) == -1) {\n var possibleFields = parser.query.allFields.map(function (f) { return \"'\" + f + \"'\" }).join(', '),\n errorMessage = \"unrecognised field '\" + lexeme.str + \"', possible fields: \" + possibleFields\n\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.fields = [lexeme.str]\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n var errorMessage = \"expecting term, found nothing\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expecting term, found '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseTerm = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n parser.currentClause.term = lexeme.str.toLowerCase()\n\n if (lexeme.str.indexOf(\"*\") != -1) {\n parser.currentClause.usePipeline = false\n }\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseEditDistance = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n var editDistance = parseInt(lexeme.str, 10)\n\n if (isNaN(editDistance)) {\n var errorMessage = \"edit distance must be numeric\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.editDistance = editDistance\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseBoost = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n var boost = parseInt(lexeme.str, 10)\n\n if (isNaN(boost)) {\n var errorMessage = \"boost must be numeric\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.boost = boost\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\n /**\n * export the module via AMD, CommonJS or as a browser global\n * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js\n */\n ;(function (root, factory) {\n if (true) {\n // AMD. Register as an anonymous module.\n !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))\n } else {}\n }(this, function () {\n /**\n * Just return a value to define the module export.\n * This example returns an object, but the module\n * can return a function as the exported value.\n */\n return lunr\n }))\n})();\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(8);\nvar definePropertyModule = __webpack_require__(9);\nvar createPropertyDescriptor = __webpack_require__(22);\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(5);\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(8);\nvar IE8_DOM_DEFINE = __webpack_require__(34);\nvar anObject = __webpack_require__(2);\nvar toPrimitive = __webpack_require__(35);\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar createNonEnumerableProperty = __webpack_require__(6);\nvar has = __webpack_require__(3);\nvar setGlobal = __webpack_require__(20);\nvar inspectSource = __webpack_require__(23);\nvar InternalStateModule = __webpack_require__(16);\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar path = __webpack_require__(40);\nvar global = __webpack_require__(0);\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports) {\n\nmodule.exports = false;\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar NATIVE_WEAK_MAP = __webpack_require__(61);\nvar global = __webpack_require__(0);\nvar isObject = __webpack_require__(7);\nvar createNonEnumerableProperty = __webpack_require__(6);\nvar objectHas = __webpack_require__(3);\nvar sharedKey = __webpack_require__(24);\nvar hiddenKeys = __webpack_require__(25);\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar getOwnPropertyDescriptor = __webpack_require__(28).f;\nvar createNonEnumerableProperty = __webpack_require__(6);\nvar redefine = __webpack_require__(10);\nvar setGlobal = __webpack_require__(20);\nvar copyConstructorProperties = __webpack_require__(67);\nvar isForced = __webpack_require__(43);\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = __webpack_require__(66);\nvar requireObjectCoercible = __webpack_require__(27);\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(1);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar createNonEnumerableProperty = __webpack_require__(6);\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar isObject = __webpack_require__(7);\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar store = __webpack_require__(33);\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar shared = __webpack_require__(32);\nvar uid = __webpack_require__(36);\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports) {\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports) {\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(8);\nvar propertyIsEnumerableModule = __webpack_require__(65);\nvar createPropertyDescriptor = __webpack_require__(22);\nvar toIndexedObject = __webpack_require__(18);\nvar toPrimitive = __webpack_require__(35);\nvar has = __webpack_require__(3);\nvar IE8_DOM_DEFINE = __webpack_require__(34);\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports) {\n\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar defineProperty = __webpack_require__(9).f;\nvar has = __webpack_require__(3);\nvar wellKnownSymbol = __webpack_require__(1);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar aFunction = __webpack_require__(15);\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n};\n\n// 25.4.1.5 NewPromiseCapability(C)\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar IS_PURE = __webpack_require__(12);\nvar store = __webpack_require__(33);\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.6.5',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar setGlobal = __webpack_require__(20);\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(8);\nvar fails = __webpack_require__(5);\nvar createElement = __webpack_require__(21);\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(7);\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports) {\n\nvar id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(5);\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(19);\nvar classofRaw = __webpack_require__(13);\nvar wellKnownSymbol = __webpack_require__(1);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(17);\nvar createIteratorConstructor = __webpack_require__(73);\nvar getPrototypeOf = __webpack_require__(45);\nvar setPrototypeOf = __webpack_require__(78);\nvar setToStringTag = __webpack_require__(30);\nvar createNonEnumerableProperty = __webpack_require__(6);\nvar redefine = __webpack_require__(10);\nvar wellKnownSymbol = __webpack_require__(1);\nvar IS_PURE = __webpack_require__(12);\nvar Iterators = __webpack_require__(14);\nvar IteratorsCore = __webpack_require__(44);\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\n\nmodule.exports = global;\n\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(3);\nvar toIndexedObject = __webpack_require__(18);\nvar indexOf = __webpack_require__(70).indexOf;\nvar hiddenKeys = __webpack_require__(25);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(26);\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(5);\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar getPrototypeOf = __webpack_require__(45);\nvar createNonEnumerableProperty = __webpack_require__(6);\nvar has = __webpack_require__(3);\nvar wellKnownSymbol = __webpack_require__(1);\nvar IS_PURE = __webpack_require__(12);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(3);\nvar toObject = __webpack_require__(74);\nvar sharedKey = __webpack_require__(24);\nvar CORRECT_PROTOTYPE_GETTER = __webpack_require__(75);\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(2);\nvar defineProperties = __webpack_require__(76);\nvar enumBugKeys = __webpack_require__(29);\nvar hiddenKeys = __webpack_require__(25);\nvar html = __webpack_require__(47);\nvar documentCreateElement = __webpack_require__(21);\nvar sharedKey = __webpack_require__(24);\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(11);\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\n\nmodule.exports = global.Promise;\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(2);\nvar isArrayIteratorMethod = __webpack_require__(88);\nvar toLength = __webpack_require__(42);\nvar bind = __webpack_require__(50);\nvar getIteratorMethod = __webpack_require__(89);\nvar callWithSafeIterationClosing = __webpack_require__(90);\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\n var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\n var iterator, iterFn, index, length, result, next, step;\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = AS_ENTRIES\n ? boundFunction(anObject(step = iterable[index])[0], step[1])\n : boundFunction(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n\niterate.stop = function (result) {\n return new Result(true, result);\n};\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar aFunction = __webpack_require__(15);\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(2);\nvar aFunction = __webpack_require__(15);\nvar wellKnownSymbol = __webpack_require__(1);\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar fails = __webpack_require__(5);\nvar classof = __webpack_require__(13);\nvar bind = __webpack_require__(50);\nvar html = __webpack_require__(47);\nvar createElement = __webpack_require__(21);\nvar IS_IOS = __webpack_require__(53);\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (classof(process) == 'process') {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n typeof postMessage == 'function' &&\n !global.importScripts &&\n !fails(post) &&\n location.protocol !== 'file:'\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar userAgent = __webpack_require__(54);\n\nmodule.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(11);\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(2);\nvar isObject = __webpack_require__(7);\nvar newPromiseCapability = __webpack_require__(31);\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(58);\n__webpack_require__(63);\n__webpack_require__(80);\n__webpack_require__(84);\n__webpack_require__(95);\n__webpack_require__(96);\nvar path = __webpack_require__(40);\n\nmodule.exports = path.Promise;\n\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(19);\nvar redefine = __webpack_require__(10);\nvar toString = __webpack_require__(62);\n\n// `Object.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports) {\n\nvar g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\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\nmodule.exports = g;\n\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar NATIVE_SYMBOL = __webpack_require__(37);\n\nmodule.exports = NATIVE_SYMBOL\n // eslint-disable-next-line no-undef\n && !Symbol.sham\n // eslint-disable-next-line no-undef\n && typeof Symbol.iterator == 'symbol';\n\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar inspectSource = __webpack_require__(23);\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(19);\nvar classof = __webpack_require__(38);\n\n// `Object.prototype.toString` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar charAt = __webpack_require__(64).charAt;\nvar InternalStateModule = __webpack_require__(16);\nvar defineIterator = __webpack_require__(39);\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(26);\nvar requireObjectCoercible = __webpack_require__(27);\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(5);\nvar classof = __webpack_require__(13);\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(3);\nvar ownKeys = __webpack_require__(68);\nvar getOwnPropertyDescriptorModule = __webpack_require__(28);\nvar definePropertyModule = __webpack_require__(9);\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(11);\nvar getOwnPropertyNamesModule = __webpack_require__(69);\nvar getOwnPropertySymbolsModule = __webpack_require__(72);\nvar anObject = __webpack_require__(2);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(41);\nvar enumBugKeys = __webpack_require__(29);\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toIndexedObject = __webpack_require__(18);\nvar toLength = __webpack_require__(42);\nvar toAbsoluteIndex = __webpack_require__(71);\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(26);\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports) {\n\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar IteratorPrototype = __webpack_require__(44).IteratorPrototype;\nvar create = __webpack_require__(46);\nvar createPropertyDescriptor = __webpack_require__(22);\nvar setToStringTag = __webpack_require__(30);\nvar Iterators = __webpack_require__(14);\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar requireObjectCoercible = __webpack_require__(27);\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(5);\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(8);\nvar definePropertyModule = __webpack_require__(9);\nvar anObject = __webpack_require__(2);\nvar objectKeys = __webpack_require__(77);\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(41);\nvar enumBugKeys = __webpack_require__(29);\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(2);\nvar aPossiblePrototype = __webpack_require__(79);\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(7);\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar DOMIterables = __webpack_require__(81);\nvar ArrayIteratorMethods = __webpack_require__(82);\nvar createNonEnumerableProperty = __webpack_require__(6);\nvar wellKnownSymbol = __webpack_require__(1);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports) {\n\n// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toIndexedObject = __webpack_require__(18);\nvar addToUnscopables = __webpack_require__(83);\nvar Iterators = __webpack_require__(14);\nvar InternalStateModule = __webpack_require__(16);\nvar defineIterator = __webpack_require__(39);\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(1);\nvar create = __webpack_require__(46);\nvar definePropertyModule = __webpack_require__(9);\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(17);\nvar IS_PURE = __webpack_require__(12);\nvar global = __webpack_require__(0);\nvar getBuiltIn = __webpack_require__(11);\nvar NativePromise = __webpack_require__(48);\nvar redefine = __webpack_require__(10);\nvar redefineAll = __webpack_require__(85);\nvar setToStringTag = __webpack_require__(30);\nvar setSpecies = __webpack_require__(86);\nvar isObject = __webpack_require__(7);\nvar aFunction = __webpack_require__(15);\nvar anInstance = __webpack_require__(87);\nvar classof = __webpack_require__(13);\nvar inspectSource = __webpack_require__(23);\nvar iterate = __webpack_require__(49);\nvar checkCorrectnessOfIteration = __webpack_require__(91);\nvar speciesConstructor = __webpack_require__(51);\nvar task = __webpack_require__(52).set;\nvar microtask = __webpack_require__(92);\nvar promiseResolve = __webpack_require__(55);\nvar hostReportErrors = __webpack_require__(93);\nvar newPromiseCapabilityModule = __webpack_require__(31);\nvar perform = __webpack_require__(56);\nvar InternalStateModule = __webpack_require__(16);\nvar isForced = __webpack_require__(43);\nvar wellKnownSymbol = __webpack_require__(1);\nvar V8_VERSION = __webpack_require__(94);\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar PromiseConstructor = NativePromise;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar $fetch = getBuiltIn('fetch');\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar IS_NODE = classof(process) == 'process';\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n if (!GLOBAL_CORE_JS_PROMISE) {\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (V8_VERSION === 66) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n if (!IS_NODE && typeof PromiseRejectionEvent != 'function') return true;\n }\n // We need Promise#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromiseConstructor.prototype['finally']) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = PromiseConstructor.resolve(1);\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n return !(promise.then(function () { /* empty */ }) instanceof FakePromise);\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (promise, state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(promise, state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n }\n state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(promise, state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (handler = global['on' + name]) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (promise, state) {\n task.call(global, function () {\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (promise, state) {\n task.call(global, function () {\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, promise, state, unwrap) {\n return function (value) {\n fn(promise, state, value, unwrap);\n };\n};\n\nvar internalReject = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(promise, state, true);\n};\n\nvar internalResolve = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n then.call(value,\n bind(internalResolve, promise, wrapper, state),\n bind(internalReject, promise, wrapper, state)\n );\n } catch (error) {\n internalReject(promise, wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(promise, state, false);\n }\n } catch (error) {\n internalReject(promise, { done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, this, state), bind(internalReject, this, state));\n } catch (error) {\n internalReject(this, state, error);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n // `Promise.prototype.then` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(this, state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, promise, state);\n this.reject = bind(internalReject, promise, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && typeof NativePromise == 'function') {\n nativeThen = NativePromise.prototype.then;\n\n // wrap native Promise#then for native async functions\n redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n nativeThen.call(that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n\n // wrap fetch result\n if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\n // eslint-disable-next-line no-unused-vars\n fetch: function fetch(input /* , init */) {\n return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\n }\n });\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.github.io/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n capability.reject.call(undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.github.io/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.github.io/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n $promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.github.io/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar redefine = __webpack_require__(10);\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar getBuiltIn = __webpack_require__(11);\nvar definePropertyModule = __webpack_require__(9);\nvar wellKnownSymbol = __webpack_require__(1);\nvar DESCRIPTORS = __webpack_require__(8);\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(1);\nvar Iterators = __webpack_require__(14);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(38);\nvar Iterators = __webpack_require__(14);\nvar wellKnownSymbol = __webpack_require__(1);\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(2);\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\n throw error;\n }\n};\n\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(1);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar getOwnPropertyDescriptor = __webpack_require__(28).f;\nvar classof = __webpack_require__(13);\nvar macrotask = __webpack_require__(52).set;\nvar IS_IOS = __webpack_require__(53);\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar IS_NODE = classof(process) == 'process';\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n } else if (MutationObserver && !IS_IOS) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n then = promise.then;\n notify = function () {\n then.call(promise, flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar userAgent = __webpack_require__(54);\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(17);\nvar aFunction = __webpack_require__(15);\nvar newPromiseCapabilityModule = __webpack_require__(31);\nvar perform = __webpack_require__(56);\nvar iterate = __webpack_require__(49);\n\n// `Promise.allSettled` method\n// https://github.com/tc39/proposal-promise-allSettled\n$({ target: 'Promise', stat: true }, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'fulfilled', value: value };\n --remaining || resolve(values);\n }, function (e) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'rejected', reason: e };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(17);\nvar IS_PURE = __webpack_require__(12);\nvar NativePromise = __webpack_require__(48);\nvar fails = __webpack_require__(5);\nvar getBuiltIn = __webpack_require__(11);\nvar speciesConstructor = __webpack_require__(51);\nvar promiseResolve = __webpack_require__(55);\nvar redefine = __webpack_require__(10);\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromise && fails(function () {\n NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.github.io/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// patch native Promise.prototype for native async functions\nif (!IS_PURE && typeof NativePromise == 'function' && !NativePromise.prototype['finally']) {\n redefine(NativePromise.prototype, 'finally', getBuiltIn('Promise').prototype['finally']);\n}\n\n\n/***/ }),\n/* 97 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"add\", function() { return /* binding */ add; });\n__webpack_require__.d(__webpack_exports__, \"done\", function() { return /* binding */ done; });\n__webpack_require__.d(__webpack_exports__, \"toJS\", function() { return /* binding */ toJS; });\n__webpack_require__.d(__webpack_exports__, \"load\", function() { return /* binding */ load; });\n__webpack_require__.d(__webpack_exports__, \"dispose\", function() { return /* binding */ dispose; });\n__webpack_require__.d(__webpack_exports__, \"search\", function() { return /* binding */ search; });\n\n// CONCATENATED MODULE: ./node_modules/tslib/tslib.es6.js\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nfunction __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nfunction __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nvar __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nfunction __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\r\n}\r\n\r\nfunction __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nfunction __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nfunction __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nfunction __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nfunction __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nfunction __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nfunction __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nfunction __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nfunction __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nfunction __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nfunction __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nfunction __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n\n// EXTERNAL MODULE: ./node_modules/lunr/lunr.js\nvar lunr = __webpack_require__(4);\n\n// CONCATENATED MODULE: ./node_modules/workerize-loader/dist/rpc-worker-loader.js!./node_modules/ts-loader??ref--5-0!./node_modules/babel-loader/lib??ref--5-1!./src/services/SearchWorker.worker.ts\n\n\ntry {\n // tslint:disable-next-line\n __webpack_require__(57); // bundle into worker\n}\ncatch (_) { // nope\n}\n/* just for better typings */\nvar Worker = /** @class */ (function () {\n function Worker() {\n this.add = add;\n this.done = done;\n this.search = search;\n this.toJS = toJS;\n this.load = load;\n this.dispose = dispose;\n }\n return Worker;\n}());\n/* harmony default export */ var SearchWorker_worker = __webpack_exports__[\"default\"] = (Worker);\nvar store = [];\nlunr[\"tokenizer\"].separator = /\\s+/;\nvar builder;\nvar resolveIndex;\nvar index;\nfunction initEmpty() {\n builder = new lunr[\"Builder\"]();\n builder.field('title');\n builder.field('description');\n builder.ref('ref');\n builder.pipeline.add(lunr[\"trimmer\"], lunr[\"stopWordFilter\"], lunr[\"stemmer\"]);\n index = new Promise(function (resolve) {\n resolveIndex = resolve;\n });\n}\ninitEmpty();\nvar expandTerm = function (term) { return '*' + lunr[\"stemmer\"](new lunr[\"Token\"](term, {})) + '*'; };\nfunction add(title, description, meta) {\n var ref = store.push(meta) - 1;\n var item = {\n title: title.toLowerCase(),\n description: description.toLowerCase(),\n ref: ref\n };\n builder.add(item);\n}\nfunction done() {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n resolveIndex(builder.build());\n return [2 /*return*/];\n });\n });\n}\nfunction toJS() {\n return __awaiter(this, void 0, void 0, function () {\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = {\n store: store\n };\n return [4 /*yield*/, index];\n case 1: return [2 /*return*/, (_a.index = (_b.sent()).toJSON(),\n _a)];\n }\n });\n });\n}\nfunction load(state) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n store = state.store;\n resolveIndex(lunr[\"Index\"].load(state.index));\n return [2 /*return*/];\n });\n });\n}\nfunction dispose() {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n store = [];\n initEmpty();\n return [2 /*return*/];\n });\n });\n}\nfunction search(q, limit) {\n if (limit === void 0) { limit = 0; }\n return __awaiter(this, void 0, void 0, function () {\n var searchResults;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (q.trim().length === 0) {\n return [2 /*return*/, []];\n }\n return [4 /*yield*/, index];\n case 1:\n searchResults = (_a.sent()).query(function (t) {\n q.trim().toLowerCase().split(/\\s+/).forEach(function (term) {\n var exp = expandTerm(term);\n t.term(exp, {});\n });\n });\n if (limit > 0) {\n searchResults = searchResults.slice(0, limit);\n }\n return [2 /*return*/, searchResults.map(function (res) { return ({\n meta: store[res.ref],\n score: res.score\n }); })];\n }\n });\n });\n}\n\naddEventListener('message', function (e) {var _e$data = e.data,type = _e$data.type,method = _e$data.method,id = _e$data.id,params = _e$data.params,f,p;if (type === 'RPC' && method) {if (f = __webpack_exports__[method]) {p = Promise.resolve().then(function () {return f.apply(__webpack_exports__, params);});} else {p = Promise.reject('No such method');}p.then(function (result) {postMessage({type: 'RPC',id: id,result: result});}).catch(function (e) {var error = {message: e};if (e.stack) {error.message = e.message;error.stack = e.stack;error.name = e.name;}postMessage({type: 'RPC',id: id,error: error});});}});postMessage({type: 'RPC',method: 'ready'});\n\n/***/ })\n/******/ ]);\n//# sourceMappingURL=95952f773ec942db46dc.worker.js.map"])), { name: "[hash].worker.js" }) + addMethods(w, methods) + + return w + } + + +/***/ }), +/* 80 */ +/***/ (function(module, exports) { + +function addMethods(worker, methods) { + var c = 0; + var callbacks = {}; + worker.addEventListener('message', function (e) { + var d = e.data; + if (d.type !== 'RPC') return; + + if (d.id) { + var f = callbacks[d.id]; + + if (f) { + delete callbacks[d.id]; + + if (d.error) { + f[1](Object.assign(Error(d.error.message), d.error)); + } else { + f[0](d.result); + } + } + } else { + var evt = document.createEvent('Event'); + evt.initEvent(d.method, false, false); + evt.data = d.params; + worker.dispatchEvent(evt); + } + }); + methods.forEach(function (method) { + worker[method] = function () { + var _arguments = arguments; + return new Promise(function (a, b) { + var id = ++c; + callbacks[id] = [a, b]; + worker.postMessage({ + type: 'RPC', + id: id, + method: method, + params: [].slice.call(_arguments) + }); + }); + }; + }); +} + +module.exports = addMethods; + + +/***/ }), +/* 81 */ +/***/ (function(module, exports) { + +module.exports = require("core-js/es/promise"); + +/***/ }), +/* 82 */ +/***/ (function(module, exports) { + +module.exports = require("stickyfill"); + +/***/ }), +/* 83 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var visit = __webpack_require__(84); +module.exports = slug; +function slug() { + return transformer; +} // Patch slugs on heading nodes. +function transformer(ast) { + var headlines = []; + visit(ast, 'heading', visitor); + function visitor(node) { + var data = node.data || (node.data = {}); + var props = data.hProperties || (data.hProperties = {}); + var sectionId = "section/" + data.id; + data.id = sectionId; + props.id = sectionId; + visit(node, 'text', function (textNode) { + headlines.push({ + depth: node.depth, + id: data.id, + text: textNode.value + }); + }); + } + var value = "export const headings = " + JSON.stringify(headlines) + ";"; + var meta = { + default: false, + type: 'export', + value: value + }; + ast.children.splice(0, 0, meta); +} + + +/***/ }), +/* 84 */ +/***/ (function(module, exports) { + +module.exports = require("unist-util-visit"); + +/***/ }), +/* 85 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +// ESM COMPAT FLAG +__webpack_require__.r(__webpack_exports__); + +// EXPORTS +__webpack_require__.d(__webpack_exports__, "RedocStandalone", function() { return /* reexport */ RedocStandalone_RedocStandalone; }); +__webpack_require__.d(__webpack_exports__, "Redoc", function() { return /* reexport */ Redoc_Redoc; }); +__webpack_require__.d(__webpack_exports__, "ApiInfo", function() { return /* reexport */ ApiInfo_ApiInfo; }); +__webpack_require__.d(__webpack_exports__, "ApiLogo", function() { return /* reexport */ ApiLogo_ApiLogo; }); +__webpack_require__.d(__webpack_exports__, "ContentItems", function() { return /* reexport */ ContentItems_ContentItems; }); +__webpack_require__.d(__webpack_exports__, "ContentItem", function() { return /* reexport */ ContentItems_ContentItem; }); +__webpack_require__.d(__webpack_exports__, "SectionItem", function() { return /* reexport */ ContentItems_SectionItem; }); +__webpack_require__.d(__webpack_exports__, "OperationItem", function() { return /* reexport */ ContentItems_OperationItem; }); +__webpack_require__.d(__webpack_exports__, "ApiContentWrap", function() { return /* reexport */ ApiContentWrap; }); +__webpack_require__.d(__webpack_exports__, "BackgroundStub", function() { return /* reexport */ BackgroundStub; }); +__webpack_require__.d(__webpack_exports__, "RedocWrap", function() { return /* reexport */ RedocWrap; }); +__webpack_require__.d(__webpack_exports__, "Schema", function() { return /* reexport */ Schema_Schema; }); +__webpack_require__.d(__webpack_exports__, "ObjectSchema", function() { return /* reexport */ ObjectSchema_ObjectSchema; }); +__webpack_require__.d(__webpack_exports__, "OneOfButton", function() { return /* reexport */ OneOfSchema_OneOfButton; }); +__webpack_require__.d(__webpack_exports__, "OneOfSchema", function() { return /* reexport */ OneOfSchema_OneOfSchema; }); +__webpack_require__.d(__webpack_exports__, "ArraySchema", function() { return /* reexport */ ArraySchema_ArraySchema; }); +__webpack_require__.d(__webpack_exports__, "DiscriminatorDropdown", function() { return /* reexport */ DiscriminatorDropdown_DiscriminatorDropdown; }); +__webpack_require__.d(__webpack_exports__, "SearchBox", function() { return /* reexport */ SearchBox_SearchBox; }); +__webpack_require__.d(__webpack_exports__, "Operation", function() { return /* reexport */ Operation_Operation; }); +__webpack_require__.d(__webpack_exports__, "Loading", function() { return /* reexport */ Loading_Loading; }); +__webpack_require__.d(__webpack_exports__, "JsonViewer", function() { return /* reexport */ JsonViewer; }); +__webpack_require__.d(__webpack_exports__, "Markdown", function() { return /* reexport */ Markdown_Markdown; }); +__webpack_require__.d(__webpack_exports__, "StyledMarkdownBlock", function() { return /* reexport */ StyledMarkdownBlock; }); +__webpack_require__.d(__webpack_exports__, "OAuthFlow", function() { return /* reexport */ SecuritySchemes_OAuthFlow; }); +__webpack_require__.d(__webpack_exports__, "SecurityDefs", function() { return /* reexport */ SecuritySchemes_SecurityDefs; }); +__webpack_require__.d(__webpack_exports__, "ResponseView", function() { return /* reexport */ Response_ResponseView; }); +__webpack_require__.d(__webpack_exports__, "ResponseDetails", function() { return /* reexport */ ResponseDetails_ResponseDetails; }); +__webpack_require__.d(__webpack_exports__, "ResponseHeaders", function() { return /* reexport */ ResponseHeaders_ResponseHeaders; }); +__webpack_require__.d(__webpack_exports__, "ResponsesList", function() { return /* reexport */ ResponsesList_ResponsesList; }); +__webpack_require__.d(__webpack_exports__, "ResponseTitle", function() { return /* reexport */ ResponseTitle_ResponseTitle; }); +__webpack_require__.d(__webpack_exports__, "ResponseSamples", function() { return /* reexport */ ResponseSamples_ResponseSamples; }); +__webpack_require__.d(__webpack_exports__, "PayloadSamples", function() { return /* reexport */ PayloadSamples_PayloadSamples; }); +__webpack_require__.d(__webpack_exports__, "MediaTypesSwitch", function() { return /* reexport */ MediaTypesSwitch_MediaTypesSwitch; }); +__webpack_require__.d(__webpack_exports__, "Parameters", function() { return /* reexport */ Parameters_Parameters; }); +__webpack_require__.d(__webpack_exports__, "BodyContent", function() { return /* reexport */ BodyContent; }); +__webpack_require__.d(__webpack_exports__, "Example", function() { return /* reexport */ Example; }); +__webpack_require__.d(__webpack_exports__, "ExternalExample", function() { return /* reexport */ ExternalExample; }); +__webpack_require__.d(__webpack_exports__, "ErrorBoundary", function() { return /* reexport */ ErrorBoundary_ErrorBoundary; }); +__webpack_require__.d(__webpack_exports__, "StoreProvider", function() { return /* reexport */ Provider; }); +__webpack_require__.d(__webpack_exports__, "StoreConsumer", function() { return /* reexport */ Consumer; }); +__webpack_require__.d(__webpack_exports__, "StoreBuilder", function() { return /* reexport */ StoreBuilder_StoreBuilder; }); +__webpack_require__.d(__webpack_exports__, "OptionsContext", function() { return /* reexport */ OptionsContext; }); +__webpack_require__.d(__webpack_exports__, "OptionsProvider", function() { return /* reexport */ OptionsProvider; }); +__webpack_require__.d(__webpack_exports__, "OptionsConsumer", function() { return /* reexport */ OptionsConsumer; }); +__webpack_require__.d(__webpack_exports__, "MenuItem", function() { return /* reexport */ MenuItem_MenuItem; }); +__webpack_require__.d(__webpack_exports__, "OperationMenuItemContent", function() { return /* reexport */ MenuItem_OperationMenuItemContent; }); +__webpack_require__.d(__webpack_exports__, "MenuItems", function() { return /* reexport */ MenuItems_MenuItems; }); +__webpack_require__.d(__webpack_exports__, "SideMenu", function() { return /* reexport */ SideMenu_SideMenu; }); +__webpack_require__.d(__webpack_exports__, "OperationBadge", function() { return /* reexport */ OperationBadge; }); +__webpack_require__.d(__webpack_exports__, "MenuItemUl", function() { return /* reexport */ MenuItemUl; }); +__webpack_require__.d(__webpack_exports__, "MenuItemLi", function() { return /* reexport */ MenuItemLi; }); +__webpack_require__.d(__webpack_exports__, "menuItemDepth", function() { return /* reexport */ menuItemDepth; }); +__webpack_require__.d(__webpack_exports__, "MenuItemLabel", function() { return /* reexport */ MenuItemLabel; }); +__webpack_require__.d(__webpack_exports__, "MenuItemTitle", function() { return /* reexport */ MenuItemTitle; }); +__webpack_require__.d(__webpack_exports__, "RedocAttribution", function() { return /* reexport */ RedocAttribution; }); +__webpack_require__.d(__webpack_exports__, "StickyResponsiveSidebar", function() { return /* reexport */ StickyResponsiveSidebar_StickyResponsiveSidebar; }); +__webpack_require__.d(__webpack_exports__, "SchemaDefinition", function() { return /* reexport */ SchemaDefinition_SchemaDefinition; }); +__webpack_require__.d(__webpack_exports__, "SourceCode", function() { return /* reexport */ SourceCode_SourceCode; }); +__webpack_require__.d(__webpack_exports__, "SourceCodeWithCopy", function() { return /* reexport */ SourceCode_SourceCodeWithCopy; }); +__webpack_require__.d(__webpack_exports__, "MiddlePanel", function() { return /* reexport */ MiddlePanel; }); +__webpack_require__.d(__webpack_exports__, "Row", function() { return /* reexport */ Row; }); +__webpack_require__.d(__webpack_exports__, "RightPanel", function() { return /* reexport */ RightPanel; }); +__webpack_require__.d(__webpack_exports__, "Section", function() { return /* reexport */ Section; }); +__webpack_require__.d(__webpack_exports__, "Flex", function() { return /* reexport */ flex_namespaceObject; }); +__webpack_require__.d(__webpack_exports__, "createStore", function() { return /* reexport */ createStore; }); +__webpack_require__.d(__webpack_exports__, "AppStore", function() { return /* reexport */ AppStore_AppStore; }); +__webpack_require__.d(__webpack_exports__, "OpenAPIParser", function() { return /* reexport */ OpenAPIParser_OpenAPIParser; }); +__webpack_require__.d(__webpack_exports__, "LEGACY_REGEXP", function() { return /* reexport */ LEGACY_REGEXP; }); +__webpack_require__.d(__webpack_exports__, "MDX_COMPONENT_REGEXP", function() { return /* reexport */ MDX_COMPONENT_REGEXP; }); +__webpack_require__.d(__webpack_exports__, "COMPONENT_REGEXP", function() { return /* reexport */ COMPONENT_REGEXP; }); +__webpack_require__.d(__webpack_exports__, "buildComponentComment", function() { return /* reexport */ buildComponentComment; }); +__webpack_require__.d(__webpack_exports__, "MarkdownRenderer", function() { return /* reexport */ MarkdownRenderer_MarkdownRenderer; }); +__webpack_require__.d(__webpack_exports__, "SECTION_ATTR", function() { return /* reexport */ SECTION_ATTR; }); +__webpack_require__.d(__webpack_exports__, "MenuStore", function() { return /* reexport */ MenuStore_MenuStore; }); +__webpack_require__.d(__webpack_exports__, "ScrollService", function() { return /* reexport */ ScrollService_ScrollService; }); +__webpack_require__.d(__webpack_exports__, "SpecStore", function() { return /* reexport */ SpecStore_SpecStore; }); +__webpack_require__.d(__webpack_exports__, "ClipboardService", function() { return /* reexport */ ClipboardService; }); +__webpack_require__.d(__webpack_exports__, "HistoryService", function() { return /* reexport */ HistoryService_HistoryService; }); +__webpack_require__.d(__webpack_exports__, "history", function() { return /* reexport */ HistoryService_history; }); +__webpack_require__.d(__webpack_exports__, "ApiInfoModel", function() { return /* reexport */ ApiInfo_ApiInfoModel; }); +__webpack_require__.d(__webpack_exports__, "CallbackModel", function() { return /* reexport */ Callback_CallbackModel; }); +__webpack_require__.d(__webpack_exports__, "ExampleModel", function() { return /* reexport */ Example_ExampleModel; }); +__webpack_require__.d(__webpack_exports__, "ExtraContent", function() { return /* reexport */ ExtraContent_ExtraContent; }); +__webpack_require__.d(__webpack_exports__, "FieldModel", function() { return /* reexport */ Field_FieldModel; }); +__webpack_require__.d(__webpack_exports__, "GroupModel", function() { return /* reexport */ Group_model_GroupModel; }); +__webpack_require__.d(__webpack_exports__, "MediaContentModel", function() { return /* reexport */ MediaContent_MediaContentModel; }); +__webpack_require__.d(__webpack_exports__, "MediaTypeModel", function() { return /* reexport */ MediaType_MediaTypeModel; }); +__webpack_require__.d(__webpack_exports__, "isPayloadSample", function() { return /* reexport */ isPayloadSample; }); +__webpack_require__.d(__webpack_exports__, "OperationModel", function() { return /* reexport */ Operation_OperationModel; }); +__webpack_require__.d(__webpack_exports__, "RequestBodyModel", function() { return /* reexport */ RequestBody_RequestBodyModel; }); +__webpack_require__.d(__webpack_exports__, "ResponseModel", function() { return /* reexport */ Response_ResponseModel; }); +__webpack_require__.d(__webpack_exports__, "SchemaModel", function() { return /* reexport */ Schema_SchemaModel; }); +__webpack_require__.d(__webpack_exports__, "SecuritySchemeModel", function() { return /* reexport */ SecuritySchemes_SecuritySchemeModel; }); +__webpack_require__.d(__webpack_exports__, "SecuritySchemesModel", function() { return /* reexport */ SecuritySchemesModel; }); +__webpack_require__.d(__webpack_exports__, "RedocNormalizedOptions", function() { return /* reexport */ RedocNormalizedOptions_RedocNormalizedOptions; }); +__webpack_require__.d(__webpack_exports__, "GROUP_DEPTH", function() { return /* reexport */ GROUP_DEPTH; }); +__webpack_require__.d(__webpack_exports__, "MenuBuilder", function() { return /* reexport */ MenuBuilder_MenuBuilder; }); +__webpack_require__.d(__webpack_exports__, "SearchStore", function() { return /* reexport */ SearchStore_SearchStore; }); +__webpack_require__.d(__webpack_exports__, "MarkerService", function() { return /* reexport */ MarkerService_MarkerService; }); +__webpack_require__.d(__webpack_exports__, "JsonPointer", function() { return /* reexport */ JsonPointer_JsonPointer; }); +__webpack_require__.d(__webpack_exports__, "isStatusCode", function() { return /* reexport */ isStatusCode; }); +__webpack_require__.d(__webpack_exports__, "getStatusCodeType", function() { return /* reexport */ getStatusCodeType; }); +__webpack_require__.d(__webpack_exports__, "isOperationName", function() { return /* reexport */ isOperationName; }); +__webpack_require__.d(__webpack_exports__, "getOperationSummary", function() { return /* reexport */ getOperationSummary; }); +__webpack_require__.d(__webpack_exports__, "detectType", function() { return /* reexport */ detectType; }); +__webpack_require__.d(__webpack_exports__, "isPrimitiveType", function() { return /* reexport */ isPrimitiveType; }); +__webpack_require__.d(__webpack_exports__, "isJsonLike", function() { return /* reexport */ isJsonLike; }); +__webpack_require__.d(__webpack_exports__, "isFormUrlEncoded", function() { return /* reexport */ isFormUrlEncoded; }); +__webpack_require__.d(__webpack_exports__, "urlFormEncodePayload", function() { return /* reexport */ urlFormEncodePayload; }); +__webpack_require__.d(__webpack_exports__, "serializeParameterValueWithMime", function() { return /* reexport */ serializeParameterValueWithMime; }); +__webpack_require__.d(__webpack_exports__, "serializeParameterValue", function() { return /* reexport */ serializeParameterValue; }); +__webpack_require__.d(__webpack_exports__, "langFromMime", function() { return /* reexport */ langFromMime; }); +__webpack_require__.d(__webpack_exports__, "isNamedDefinition", function() { return /* reexport */ isNamedDefinition; }); +__webpack_require__.d(__webpack_exports__, "humanizeConstraints", function() { return /* reexport */ humanizeConstraints; }); +__webpack_require__.d(__webpack_exports__, "sortByRequired", function() { return /* reexport */ sortByRequired; }); +__webpack_require__.d(__webpack_exports__, "sortByField", function() { return /* reexport */ sortByField; }); +__webpack_require__.d(__webpack_exports__, "mergeParams", function() { return /* reexport */ mergeParams; }); +__webpack_require__.d(__webpack_exports__, "mergeSimilarMediaTypes", function() { return /* reexport */ mergeSimilarMediaTypes; }); +__webpack_require__.d(__webpack_exports__, "expandDefaultServerVariables", function() { return /* reexport */ expandDefaultServerVariables; }); +__webpack_require__.d(__webpack_exports__, "normalizeServers", function() { return /* reexport */ normalizeServers; }); +__webpack_require__.d(__webpack_exports__, "SECURITY_DEFINITIONS_COMPONENT_NAME", function() { return /* reexport */ SECURITY_DEFINITIONS_COMPONENT_NAME; }); +__webpack_require__.d(__webpack_exports__, "SECURITY_DEFINITIONS_JSX_NAME", function() { return /* reexport */ SECURITY_DEFINITIONS_JSX_NAME; }); +__webpack_require__.d(__webpack_exports__, "SCHEMA_DEFINITION_JSX_NAME", function() { return /* reexport */ SCHEMA_DEFINITION_JSX_NAME; }); +__webpack_require__.d(__webpack_exports__, "SECURITY_SCHEMES_SECTION_PREFIX", function() { return /* reexport */ SECURITY_SCHEMES_SECTION_PREFIX; }); +__webpack_require__.d(__webpack_exports__, "setSecuritySchemePrefix", function() { return /* reexport */ setSecuritySchemePrefix; }); +__webpack_require__.d(__webpack_exports__, "shortenHTTPVerb", function() { return /* reexport */ shortenHTTPVerb; }); +__webpack_require__.d(__webpack_exports__, "isRedocExtension", function() { return /* reexport */ isRedocExtension; }); +__webpack_require__.d(__webpack_exports__, "extractExtensions", function() { return /* reexport */ extractExtensions; }); +__webpack_require__.d(__webpack_exports__, "pluralizeType", function() { return /* reexport */ pluralizeType; }); +__webpack_require__.d(__webpack_exports__, "mapWithLast", function() { return /* reexport */ mapWithLast; }); +__webpack_require__.d(__webpack_exports__, "mapValues", function() { return /* reexport */ mapValues; }); +__webpack_require__.d(__webpack_exports__, "flattenByProp", function() { return /* reexport */ flattenByProp; }); +__webpack_require__.d(__webpack_exports__, "stripTrailingSlash", function() { return /* reexport */ stripTrailingSlash; }); +__webpack_require__.d(__webpack_exports__, "isNumeric", function() { return /* reexport */ isNumeric; }); +__webpack_require__.d(__webpack_exports__, "appendToMdHeading", function() { return /* reexport */ appendToMdHeading; }); +__webpack_require__.d(__webpack_exports__, "mergeObjects", function() { return /* reexport */ mergeObjects; }); +__webpack_require__.d(__webpack_exports__, "safeSlugify", function() { return /* reexport */ safeSlugify; }); +__webpack_require__.d(__webpack_exports__, "isAbsoluteUrl", function() { return /* reexport */ isAbsoluteUrl; }); +__webpack_require__.d(__webpack_exports__, "resolveUrl", function() { return /* reexport */ resolveUrl; }); +__webpack_require__.d(__webpack_exports__, "getBasePath", function() { return /* reexport */ getBasePath; }); +__webpack_require__.d(__webpack_exports__, "titleize", function() { return /* reexport */ titleize; }); +__webpack_require__.d(__webpack_exports__, "removeQueryString", function() { return /* reexport */ removeQueryString; }); +__webpack_require__.d(__webpack_exports__, "unescapeHTMLChars", function() { return /* reexport */ unescapeHTMLChars; }); +__webpack_require__.d(__webpack_exports__, "mapLang", function() { return /* reexport */ mapLang; }); +__webpack_require__.d(__webpack_exports__, "highlight", function() { return /* reexport */ highlight; }); +__webpack_require__.d(__webpack_exports__, "loadAndBundleSpec", function() { return /* reexport */ loadAndBundleSpec; }); +__webpack_require__.d(__webpack_exports__, "convertSwagger2OpenAPI", function() { return /* reexport */ convertSwagger2OpenAPI; }); +__webpack_require__.d(__webpack_exports__, "IS_BROWSER", function() { return /* reexport */ IS_BROWSER; }); +__webpack_require__.d(__webpack_exports__, "querySelector", function() { return /* reexport */ querySelector; }); +__webpack_require__.d(__webpack_exports__, "html2Str", function() { return /* reexport */ html2Str; }); +__webpack_require__.d(__webpack_exports__, "Throttle", function() { return /* reexport */ Throttle; }); +__webpack_require__.d(__webpack_exports__, "debugTime", function() { return /* reexport */ debugTime; }); +__webpack_require__.d(__webpack_exports__, "debugTimeEnd", function() { return /* reexport */ debugTimeEnd; }); +__webpack_require__.d(__webpack_exports__, "memoize", function() { return /* reexport */ memoize; }); +__webpack_require__.d(__webpack_exports__, "media", function() { return /* reexport */ media; }); +__webpack_require__.d(__webpack_exports__, "css", function() { return /* reexport */ css; }); +__webpack_require__.d(__webpack_exports__, "createGlobalStyle", function() { return /* reexport */ createGlobalStyle; }); +__webpack_require__.d(__webpack_exports__, "keyframes", function() { return /* reexport */ keyframes; }); +__webpack_require__.d(__webpack_exports__, "ThemeProvider", function() { return /* reexport */ ThemeProvider; }); +__webpack_require__.d(__webpack_exports__, "extensionsHook", function() { return /* reexport */ extensionsHook; }); +__webpack_require__.d(__webpack_exports__, "styled", function() { return /* reexport */ styled_components; }); +__webpack_require__.d(__webpack_exports__, "loadMarkdownIndexFromComponents", function() { return /* reexport */ loadMarkdownIndexFromComponents; }); + +// NAMESPACE OBJECT: ./src/common-elements/flex.ts +var flex_namespaceObject = {}; +__webpack_require__.r(flex_namespaceObject); +__webpack_require__.d(flex_namespaceObject, "Flex", function() { return Flex; }); +__webpack_require__.d(flex_namespaceObject, "HFlex", function() { return HFlex; }); +__webpack_require__.d(flex_namespaceObject, "VFlex", function() { return VFlex; }); + +// EXTERNAL MODULE: external "tslib" +var external_tslib_ = __webpack_require__(1); + +// EXTERNAL MODULE: external "prop-types" +var external_prop_types_ = __webpack_require__(12); + +// EXTERNAL MODULE: external "react" +var external_react_ = __webpack_require__(0); + +// EXTERNAL MODULE: external "polished" +var external_polished_ = __webpack_require__(2); + +// CONCATENATED MODULE: ./src/theme.ts + +var defaultTheme = { + spacing: { + unit: 5, + sectionHorizontal: function (_a) { + var spacing = _a.spacing; + return spacing.unit * 8; + }, + sectionVertical: function (_a) { + var spacing = _a.spacing; + return spacing.unit * 8; + } + }, + breakpoints: { + small: '50rem', + medium: '75rem', + large: '105rem' + }, + colors: { + tonalOffset: 0.3, + primary: { + main: '#32329f', + light: function (_a) { + var colors = _a.colors; + return Object(external_polished_["lighten"])(colors.tonalOffset, colors.primary.main); + }, + dark: function (_a) { + var colors = _a.colors; + return Object(external_polished_["darken"])(colors.tonalOffset, colors.primary.main); + }, + contrastText: function (_a) { + var colors = _a.colors; + return Object(external_polished_["readableColor"])(colors.primary.main); + } + }, + success: { + main: '#1d8127', + light: function (_a) { + var colors = _a.colors; + return Object(external_polished_["lighten"])(colors.tonalOffset * 2, colors.success.main); + }, + dark: function (_a) { + var colors = _a.colors; + return Object(external_polished_["darken"])(colors.tonalOffset, colors.success.main); + }, + contrastText: function (_a) { + var colors = _a.colors; + return Object(external_polished_["readableColor"])(colors.success.main); + } + }, + warning: { + main: '#ffa500', + light: function (_a) { + var colors = _a.colors; + return Object(external_polished_["lighten"])(colors.tonalOffset, colors.warning.main); + }, + dark: function (_a) { + var colors = _a.colors; + return Object(external_polished_["darken"])(colors.tonalOffset, colors.warning.main); + }, + contrastText: '#ffffff' + }, + error: { + main: '#d41f1c', + light: function (_a) { + var colors = _a.colors; + return Object(external_polished_["lighten"])(colors.tonalOffset, colors.error.main); + }, + dark: function (_a) { + var colors = _a.colors; + return Object(external_polished_["darken"])(colors.tonalOffset, colors.error.main); + }, + contrastText: function (_a) { + var colors = _a.colors; + return Object(external_polished_["readableColor"])(colors.error.main); + } + }, + gray: { + 50: '#FAFAFA', + 100: '#F5F5F5' + }, + text: { + primary: '#333333', + secondary: function (_a) { + var colors = _a.colors; + return Object(external_polished_["lighten"])(colors.tonalOffset, colors.text.primary); + } + }, + border: { + dark: 'rgba(0,0,0, 0.1)', + light: '#ffffff' + }, + responses: { + success: { + color: function (_a) { + var colors = _a.colors; + return colors.success.main; + }, + backgroundColor: function (_a) { + var colors = _a.colors; + return Object(external_polished_["transparentize"])(0.93, colors.success.main); + } + }, + error: { + color: function (_a) { + var colors = _a.colors; + return colors.error.main; + }, + backgroundColor: function (_a) { + var colors = _a.colors; + return Object(external_polished_["transparentize"])(0.93, colors.error.main); + } + }, + redirect: { + color: function (_a) { + var colors = _a.colors; + return colors.warning.main; + }, + backgroundColor: function (_a) { + var colors = _a.colors; + return Object(external_polished_["transparentize"])(0.9, colors.responses.redirect.color); + } + }, + info: { + color: '#87ceeb', + backgroundColor: function (_a) { + var colors = _a.colors; + return Object(external_polished_["transparentize"])(0.9, colors.responses.info.color); + } + } + }, + http: { + get: '#6bbd5b', + post: '#248fb2', + put: '#9b708b', + options: '#d3ca12', + patch: '#e09d43', + delete: '#e27a7a', + basic: '#999', + link: '#31bbb6', + head: '#c167e4' + } + }, + schema: { + linesColor: function (theme) { return Object(external_polished_["lighten"])(theme.colors.tonalOffset, Object(external_polished_["desaturate"])(theme.colors.tonalOffset, theme.colors.primary.main)); }, + defaultDetailsWidth: '75%', + typeNameColor: function (theme) { return theme.colors.text.secondary; }, + typeTitleColor: function (theme) { return theme.schema.typeNameColor; }, + requireLabelColor: function (theme) { return theme.colors.error.main; }, + labelsTextSize: '0.9em', + nestingSpacing: '1em', + nestedBackground: '#fafafa', + arrow: { + size: '1.1em', + color: function (theme) { return theme.colors.text.secondary; } + } + }, + typography: { + fontSize: '14px', + lineHeight: '1.5em', + fontWeightRegular: '400', + fontWeightBold: '600', + fontWeightLight: '300', + fontFamily: 'Roboto, sans-serif', + smoothing: 'antialiased', + optimizeSpeed: true, + headings: { + fontFamily: 'Montserrat, sans-serif', + fontWeight: '400', + lineHeight: '1.6em' + }, + code: { + fontSize: '13px', + fontFamily: 'Courier, monospace', + lineHeight: function (_a) { + var typography = _a.typography; + return typography.lineHeight; + }, + fontWeight: function (_a) { + var typography = _a.typography; + return typography.fontWeightRegular; + }, + color: '#e53935', + backgroundColor: 'rgba(38, 50, 56, 0.05)', + wrap: false + }, + links: { + color: function (_a) { + var colors = _a.colors; + return colors.primary.main; + }, + visited: function (_a) { + var typography = _a.typography; + return typography.links.color; + }, + hover: function (_a) { + var typography = _a.typography; + return Object(external_polished_["lighten"])(0.2, typography.links.color); + } + } + }, + sidebar: { + width: '260px', + backgroundColor: '#fafafa', + textColor: '#333333', + activeTextColor: function (theme) { return theme.sidebar.textColor !== defaultTheme.sidebar.textColor ? theme.sidebar.textColor : theme.colors.primary.main; }, + groupItems: { + textTransform: 'uppercase' + }, + level1Items: { + color: '#3C3C3C', + textTransform: 'none', + fw: 600, + fontSize: '1rem' + }, + level2Items: { + fw: 500, + color: '#3C3C3C', + fontSize: '.95rem' + }, + arrow: { + size: '1.5em', + color: function (theme) { return theme.sidebar.textColor; } + } + }, + logo: { + maxHeight: function (_a) { + var sidebar = _a.sidebar; + return sidebar.width; + }, + maxWidth: function (_a) { + var sidebar = _a.sidebar; + return sidebar.width; + }, + gutter: '2px' + }, + rightPanel: { + backgroundColor: '#263238', + width: '40%', + textColor: '#ffffff' + }, + codeBlock: { + backgroundColor: function (_a) { + var rightPanel = _a.rightPanel; + return Object(external_polished_["darken"])(0.1, rightPanel.backgroundColor); + } + } +}; +/* harmony default export */ var src_theme = (defaultTheme); +function resolveTheme(theme) { + var resolvedValues = {}; + var counter = 0; + var setProxy = function (obj, path) { + Object.keys(obj).forEach(function (k) { + var currentPath = (path ? path + '.' : '') + k; + var val = obj[k]; + if (typeof val === 'function') { + Object.defineProperty(obj, k, { + get: function () { + if (!resolvedValues[currentPath]) { + counter++; + if (counter > 1000) { + throw new Error("Theme probably contains circular dependency at " + currentPath + ": " + val.toString()); + } + resolvedValues[currentPath] = val(theme); + } + return resolvedValues[currentPath]; + }, + enumerable: true + }); + } + else if (typeof val === 'object') { + setProxy(val, currentPath); + } + }); + }; + setProxy(theme, ''); + return JSON.parse(JSON.stringify(theme)); +} + +// CONCATENATED MODULE: ./src/utils/dom.ts +var IS_BROWSER = typeof window !== 'undefined' && 'HTMLElement' in window; +function querySelector(selector) { + if (typeof document !== 'undefined') { + return document.querySelector(selector); + } + return null; +} +/** + * Drop everything inside <...> (i.e., tags/elements), and keep the text. + * Unlike browser innerText, this removes newlines; it also doesn't handle + * un-encoded `<` or `>` characters very well, so don't feed it malformed HTML + */ +function html2Str(html) { + return html.split(/<[^>]+>/).map(function (chunk) { + return chunk.trim(); + }).filter(function (trimmedChunk) { + return trimmedChunk.length > 0; + }).join(' '); +} // scrollIntoViewIfNeeded polyfill +if (typeof Element !== 'undefined' && !Element.prototype.scrollIntoViewIfNeeded) { + Element.prototype.scrollIntoViewIfNeeded = function (centerIfNeeded) { + centerIfNeeded = arguments.length === 0 ? true : !!centerIfNeeded; + var parent = this.parentNode; + var parentComputedStyle = window.getComputedStyle(parent, undefined); + var parentBorderTopWidth = parseInt(parentComputedStyle.getPropertyValue('border-top-width'), 10); + var parentBorderLeftWidth = parseInt(parentComputedStyle.getPropertyValue('border-left-width'), 10); + var overTop = this.offsetTop - parent.offsetTop < parent.scrollTop; + var overBottom = this.offsetTop - parent.offsetTop + this.clientHeight - parentBorderTopWidth > parent.scrollTop + parent.clientHeight; + var overLeft = this.offsetLeft - parent.offsetLeft < parent.scrollLeft; + var overRight = this.offsetLeft - parent.offsetLeft + this.clientWidth - parentBorderLeftWidth > parent.scrollLeft + parent.clientWidth; + var alignWithTop = overTop && !overBottom; + if ((overTop || overBottom) && centerIfNeeded) { + parent.scrollTop = this.offsetTop - parent.offsetTop - parent.clientHeight / 2 - parentBorderTopWidth + this.clientHeight / 2; + } + if ((overLeft || overRight) && centerIfNeeded) { + parent.scrollLeft = this.offsetLeft - parent.offsetLeft - parent.clientWidth / 2 - parentBorderLeftWidth + this.clientWidth / 2; + } + if ((overTop || overBottom || overLeft || overRight) && !centerIfNeeded) { + this.scrollIntoView(alignWithTop); + } + }; +} + +// EXTERNAL MODULE: external "slugify" +var external_slugify_ = __webpack_require__(35); +var external_slugify_default = /*#__PURE__*/__webpack_require__.n(external_slugify_); + +// EXTERNAL MODULE: external "url" +var external_url_ = __webpack_require__(5); + +// CONCATENATED MODULE: ./src/utils/helpers.ts + + + +/** + * Maps over array passing `isLast` bool to iterator as the second argument + */ +function mapWithLast(array, iteratee) { + var res = []; + for (var i = 0; i < array.length - 1; i++) { + res.push(iteratee(array[i], false)); + } + if (array.length !== 0) { + res.push(iteratee(array[array.length - 1], true)); + } + return res; +} +/** + * Creates an object with the same keys as object and values generated by running each + * own enumerable string keyed property of object thru iteratee. + * The iteratee is invoked with three arguments: (value, key, object). + * + * @param object the object to iterate over + * @param iteratee the function invoked per iteration. + */ +function mapValues(object, iteratee) { + var res = {}; + for (var key in object) { + if (object.hasOwnProperty(key)) { + res[key] = iteratee(object[key], key, object); + } + } + return res; +} +/** + * flattens collection using `prop` field as a children + * @param collectionItems collection items + * @param prop item property with child elements + */ +function flattenByProp(collectionItems, prop) { + var res = []; + var iterate = function (items) { + for (var _i = 0, items_1 = items; _i < items_1.length; _i++) { + var item = items_1[_i]; + res.push(item); + if (item[prop]) { + iterate(item[prop]); + } + } + }; + iterate(collectionItems); + return res; +} +function stripTrailingSlash(path) { + if (path.endsWith('/')) { + return path.substring(0, path.length - 1); + } + return path; +} +function isNumeric(n) { + return !isNaN(parseFloat(n)) && isFinite(n); +} +function appendToMdHeading(md, heading, content) { + // if heading is already in md and append to the end of it + var testRegex = new RegExp("(^|\\n)#\\s?" + heading + "\\s*\\n", 'i'); + var replaceRegex = new RegExp("((\\n|^)#\\s*" + heading + "\\s*(\\n|$)(?:.|\\n)*?)(\\n#|$)", 'i'); + if (testRegex.test(md)) { + return md.replace(replaceRegex, "$1\n\n" + content + "\n$4"); + } + else { + // else append heading itself + var br = md === '' || md.endsWith('\n\n') ? '' : md.endsWith('\n') ? '\n' : '\n\n'; + return "" + md + br + "# " + heading + "\n\n" + content; + } +} // credits https://stackoverflow.com/a/46973278/1749888 +var mergeObjects = function (target) { + var sources = []; + for (var _i = 1; _i < arguments.length; _i++) { + sources[_i - 1] = arguments[_i]; + } + if (!sources.length) { + return target; + } + var source = sources.shift(); + if (source === undefined) { + return target; + } + if (isMergebleObject(target) && isMergebleObject(source)) { + Object.keys(source).forEach(function (key) { + if (isMergebleObject(source[key])) { + if (!target[key]) { + target[key] = {}; + } + mergeObjects(target[key], source[key]); + } + else { + target[key] = source[key]; + } + }); + } + return mergeObjects.apply(void 0, Object(external_tslib_["__spreadArrays"])([target], sources)); +}; +var isObject = function (item) { + return item !== null && typeof item === 'object'; +}; +var isMergebleObject = function (item) { + return isObject(item) && !Array.isArray(item); +}; +/** + * slugify() returns empty string when failed to slugify. + * so try to return minimum slugified-string with failed one which keeps original value + * the regex codes are referenced with https://gist.github.com/mathewbyrne/1280286 + */ +function safeSlugify(value) { + return external_slugify_default()(value) || value.toString().toLowerCase().replace(/\s+/g, '-') // Replace spaces with - + .replace(/&/g, '-and-') // Replace & with 'and' + .replace(/\--+/g, '-') // Replace multiple - with single - + .replace(/^-+/, '') // Trim - from start of text + .replace(/-+$/, ''); // Trim - from end of text +} +function isAbsoluteUrl(url) { + return /(?:^[a-z][a-z0-9+.-]*:|\/\/)/i.test(url); +} +/** + * simple resolve URL which doesn't break on strings with url fragments + * e.g. resolveUrl('http://test.com:{port}', 'path') results in http://test.com:{port}/path + */ +function resolveUrl(url, to) { + var res; + if (to.startsWith('//')) { + var specProtocol = Object(external_url_["parse"])(url).protocol; + res = "" + (specProtocol || 'https:') + to; + } + else if (isAbsoluteUrl(to)) { + res = to; + } + else if (!to.startsWith('/')) { + res = stripTrailingSlash(url) + '/' + to; + } + else { + var urlObj = Object(external_url_["parse"])(url); + res = Object(external_url_["format"])(Object(external_tslib_["__assign"])(Object(external_tslib_["__assign"])({}, urlObj), { pathname: to })); + } + return stripTrailingSlash(res); +} +function getBasePath(serverUrl) { + try { + return parseURL(serverUrl).pathname; + } + catch (e) { + // when using with redoc-cli serverUrl can be empty resulting in crash + return serverUrl; + } +} +function titleize(text) { + return text.charAt(0).toUpperCase() + text.slice(1); +} +function removeQueryString(serverUrl) { + try { + var url = parseURL(serverUrl); + url.search = ''; + return url.toString(); + } + catch (e) { + // when using with redoc-cli serverUrl can be empty resulting in crash + return serverUrl; + } +} +function parseURL(url) { + if (typeof URL === 'undefined') { + // node + return new (__webpack_require__(5).URL)(url); + } + else { + return new URL(url); + } +} +function unescapeHTMLChars(str) { + return str.replace(/&#(\d+);/g, function (_m, code) { return String.fromCharCode(parseInt(code, 10)); }).replace(/&/g, '&'); +} + +// CONCATENATED MODULE: ./src/services/Labels.ts +var labels = { + enum: 'Enum', + enumSingleValue: 'Value', + enumArray: 'Items', + default: 'Default', + deprecated: 'Deprecated', + example: 'Example', + nullable: 'Nullable', + recursive: 'Recursive', + arrayOf: 'Array of ', + webhook: 'Event' +}; +function setRedocLabels(_labels) { + Object.assign(labels, _labels); +} +function l(key, idx) { + var label = labels[key]; + if (idx !== undefined) { + return label[idx]; + } + return label; +} + +// CONCATENATED MODULE: ./src/services/RedocNormalizedOptions.ts + + + + + +function argValueToBoolean(val, defaultValue) { + if (val === undefined) { + return defaultValue || false; + } + if (typeof val === 'string') { + return val === 'false' ? false : true; + } + return val; +} +function argValueToNumber(value) { + if (typeof value === 'string') { + return parseInt(value, 10); + } + if (typeof value === 'number') { + return value; + } +} +var RedocNormalizedOptions_RedocNormalizedOptions = /** @class */ (function () { + function RedocNormalizedOptions(raw, defaults) { + if (defaults === void 0) { defaults = {}; } + var _a, _b, _c, _d; + raw = Object(external_tslib_["__assign"])(Object(external_tslib_["__assign"])({}, defaults), raw); + var hook = raw.theme && raw.theme.extensionsHook; // migrate from old theme + if (((_a = raw.theme) === null || _a === void 0 ? void 0 : _a.menu) && !((_b = raw.theme) === null || _b === void 0 ? void 0 : _b.sidebar)) { + console.warn('Theme setting "menu" is deprecated. Rename to "sidebar"'); + raw.theme.sidebar = raw.theme.menu; + } + if (((_c = raw.theme) === null || _c === void 0 ? void 0 : _c.codeSample) && !((_d = raw.theme) === null || _d === void 0 ? void 0 : _d.codeBlock)) { + console.warn('Theme setting "codeSample" is deprecated. Rename to "codeBlock"'); + raw.theme.codeBlock = raw.theme.codeSample; + } + this.theme = resolveTheme(mergeObjects({}, src_theme, Object(external_tslib_["__assign"])(Object(external_tslib_["__assign"])({}, raw.theme), { extensionsHook: undefined }))); + this.theme.extensionsHook = hook; // do not support dynamic labels changes. Labels should be configured before + setRedocLabels(raw.labels); + this.scrollYOffset = RedocNormalizedOptions.normalizeScrollYOffset(raw.scrollYOffset); + this.hideHostname = RedocNormalizedOptions.normalizeHideHostname(raw.hideHostname); + this.expandResponses = RedocNormalizedOptions.normalizeExpandResponses(raw.expandResponses); + this.requiredPropsFirst = argValueToBoolean(raw.requiredPropsFirst); + this.sortPropsAlphabetically = argValueToBoolean(raw.sortPropsAlphabetically); + this.sortEnumValuesAlphabetically = argValueToBoolean(raw.sortEnumValuesAlphabetically); + this.noAutoAuth = argValueToBoolean(raw.noAutoAuth); + this.nativeScrollbars = argValueToBoolean(raw.nativeScrollbars); + this.pathInMiddlePanel = argValueToBoolean(raw.pathInMiddlePanel); + this.untrustedSpec = argValueToBoolean(raw.untrustedSpec); + this.hideDownloadButton = argValueToBoolean(raw.hideDownloadButton); + this.disableSearch = argValueToBoolean(raw.disableSearch); + this.onlyRequiredInSamples = argValueToBoolean(raw.onlyRequiredInSamples); + this.showExtensions = RedocNormalizedOptions.normalizeShowExtensions(raw.showExtensions); + this.hideSingleRequestSampleTab = argValueToBoolean(raw.hideSingleRequestSampleTab); + this.menuToggle = argValueToBoolean(raw.menuToggle, true); + this.jsonSampleExpandLevel = RedocNormalizedOptions.normalizeJsonSampleExpandLevel(raw.jsonSampleExpandLevel); + this.enumSkipQuotes = argValueToBoolean(raw.enumSkipQuotes); + this.hideSchemaTitles = argValueToBoolean(raw.hideSchemaTitles); + this.simpleOneOfTypeLabel = argValueToBoolean(raw.simpleOneOfTypeLabel); + this.payloadSampleIdx = RedocNormalizedOptions.normalizePayloadSampleIdx(raw.payloadSampleIdx); + this.expandSingleSchemaField = argValueToBoolean(raw.expandSingleSchemaField); + this.expandAllSchemaFields = argValueToBoolean(raw.expandAllSchemaFields); + this.hideShelfIcon = argValueToBoolean(raw.hideShelfIcon); + this.hideHttpVerbs = argValueToBoolean(raw.hideHttpVerbs); + this.unstable_ignoreMimeParameters = argValueToBoolean(raw.unstable_ignoreMimeParameters); + this.allowedMdComponents = raw.allowedMdComponents || {}; + this.expandDefaultServerVariables = argValueToBoolean(raw.expandDefaultServerVariables); + this.maxDisplayedEnumValues = argValueToNumber(raw.maxDisplayedEnumValues); + } + RedocNormalizedOptions.normalizeExpandResponses = function (value) { + if (value === 'all') { + return 'all'; + } + if (typeof value === 'string') { + var res_1 = {}; + value.split(',').forEach(function (code) { + res_1[code.trim()] = true; + }); + return res_1; + } + else if (value !== undefined) { + console.warn("expandResponses must be a string but received value \"" + value + "\" of type " + typeof value); + } + return {}; + }; + RedocNormalizedOptions.normalizeHideHostname = function (value) { + return !!value; + }; + RedocNormalizedOptions.normalizeScrollYOffset = function (value) { + // just number is not valid selector and leads to crash so checking if isNumeric here + if (typeof value === 'string' && !isNumeric(value)) { + var el = querySelector(value); + if (!el) { + console.warn('scrollYOffset value is a selector to non-existing element. Using offset 0 by default'); + } + var bottom_1 = el && el.getBoundingClientRect().bottom || 0; + return function () { return bottom_1; }; + } + else if (typeof value === 'number' || isNumeric(value)) { + return function () { return typeof value === 'number' ? value : parseFloat(value); }; + } + else if (typeof value === 'function') { + return function () { + var res = value(); + if (typeof res !== 'number') { + console.warn("scrollYOffset should return number but returned value \"" + res + "\" of type " + typeof res); + } + return res; + }; + } + else if (value !== undefined) { + console.warn('Wrong value for scrollYOffset ReDoc option: should be string, number or function'); + } + return function () { return 0; }; + }; + RedocNormalizedOptions.normalizeShowExtensions = function (value) { + if (typeof value === 'undefined') { + return false; + } + if (value === '') { + return true; + } + if (typeof value !== 'string') { + return value; + } + switch (value) { + case 'true': + return true; + case 'false': + return false; + default: + return value.split(',').map(function (ext) { return ext.trim(); }); + } + }; + RedocNormalizedOptions.normalizePayloadSampleIdx = function (value) { + if (typeof value === 'number') { + return Math.max(0, value); // always greater or equal than 0 + } + if (typeof value === 'string') { + return isFinite(value) ? parseInt(value, 10) : 0; + } + return 0; + }; + RedocNormalizedOptions.normalizeJsonSampleExpandLevel = function (level) { + if (level === 'all') { + return +Infinity; + } + if (!isNaN(Number(level))) { + return Math.ceil(Number(level)); + } + return 2; + }; + return RedocNormalizedOptions; +}()); + + +// EXTERNAL MODULE: external "styled-components" +var external_styled_components_ = __webpack_require__(36); + +// CONCATENATED MODULE: ./src/styled-components.ts + + +var styled_components_a = external_styled_components_, styled = styled_components_a.default, css = styled_components_a.css, createGlobalStyle = styled_components_a.createGlobalStyle, keyframes = styled_components_a.keyframes, ThemeProvider = styled_components_a.ThemeProvider; +var media = { + lessThan: function (breakpoint, print) { + return function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return css(templateObject_1 || (templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n @media ", " screen and (max-width: ", ") {\n ", ";\n }\n "], ["\n @media ", " screen and (max-width: ", ") {\n ", ";\n }\n "])), print ? 'print, ' : '', function (props) { return props.theme.breakpoints[breakpoint]; }, css.apply(void 0, args)); + }; + }, + greaterThan: function (breakpoint) { + return function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return css(templateObject_2 || (templateObject_2 = Object(external_tslib_["__makeTemplateObject"])(["\n @media (min-width: ", ") {\n ", ";\n }\n "], ["\n @media (min-width: ", ") {\n ", ";\n }\n "])), function (props) { return props.theme.breakpoints[breakpoint]; }, css.apply(void 0, args)); + }; + }, + between: function (firstBreakpoint, secondBreakpoint) { + return function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return css(templateObject_3 || (templateObject_3 = Object(external_tslib_["__makeTemplateObject"])(["\n @media (min-width: ", ") and (max-width: ", ") {\n ", ";\n }\n "], ["\n @media (min-width: ", ") and (max-width: ", ") {\n ", ";\n }\n "])), function (props) { return props.theme.breakpoints[firstBreakpoint]; }, function (props) { return props.theme.breakpoints[secondBreakpoint]; }, css.apply(void 0, args)); + }; + } +}; + +/* harmony default export */ var styled_components = (styled); +function extensionsHook(styledName) { + return function (props) { + if (!props.theme.extensionsHook) { + return; + } + return props.theme.extensionsHook(styledName, props); + }; +} +var templateObject_1, templateObject_2, templateObject_3; + +// CONCATENATED MODULE: ./src/components/ErrorBoundary.tsx + + + +var ErrorWrapper = styled_components.div(ErrorBoundary_templateObject_1 || (ErrorBoundary_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n padding: 20px;\n color: red;\n"], ["\n padding: 20px;\n color: red;\n"]))); +var ErrorBoundary_ErrorBoundary = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(ErrorBoundary, _super); + function ErrorBoundary(props) { + var _this = _super.call(this, props) || this; + _this.state = { + error: undefined + }; + return _this; + } + ErrorBoundary.prototype.componentDidCatch = function (error) { + this.setState({ + error: error + }); + return false; + }; + ErrorBoundary.prototype.render = function () { + if (this.state.error) { + return external_react_["createElement"](ErrorWrapper, null, + external_react_["createElement"]("h1", null, "Something went wrong..."), + external_react_["createElement"]("small", null, + " ", + this.state.error.message, + " "), + external_react_["createElement"]("p", null, + external_react_["createElement"]("details", null, + external_react_["createElement"]("summary", null, "Stack trace"), + external_react_["createElement"]("pre", null, this.state.error.stack))), + external_react_["createElement"]("small", null, + " ReDoc Version: ", + "2.0.0-rc.37"), + " ", + external_react_["createElement"]("br", null), + external_react_["createElement"]("small", null, + " Commit: ", + "49f04d32")); + } + return external_react_["Children"].only(this.props.children); + }; + return ErrorBoundary; +}(external_react_["Component"])); + +var ErrorBoundary_templateObject_1; + +// CONCATENATED MODULE: ./src/components/Loading/Spinner.svg.tsx + + + +var _Spinner = function (props) { return external_react_["createElement"]("svg", { className: props.className, version: "1.1", width: "512", height: "512", viewBox: "0 0 512 512" }, + external_react_["createElement"]("path", { d: "M275.682 147.999c0 10.864-8.837 19.661-19.682 19.661v0c-10.875 0-19.681-8.796-19.681-19.661v-96.635c0-10.885 8.806-19.661 19.681-19.661v0c10.844 0 19.682 8.776 19.682 19.661v96.635z" }), + external_react_["createElement"]("path", { d: "M275.682 460.615c0 10.865-8.837 19.682-19.682 19.682v0c-10.875 0-19.681-8.817-19.681-19.682v-96.604c0-10.885 8.806-19.681 19.681-19.681v0c10.844 0 19.682 8.796 19.682 19.682v96.604z" }), + external_react_["createElement"]("path", { d: "M147.978 236.339c10.885 0 19.681 8.755 19.681 19.641v0c0 10.885-8.796 19.702-19.681 19.702h-96.624c-10.864 0-19.661-8.817-19.661-19.702v0c0-10.885 8.796-19.641 19.661-19.641h96.624z" }), + external_react_["createElement"]("path", { d: "M460.615 236.339c10.865 0 19.682 8.755 19.682 19.641v0c0 10.885-8.817 19.702-19.682 19.702h-96.584c-10.885 0-19.722-8.817-19.722-19.702v0c0-10.885 8.837-19.641 19.722-19.641h96.584z" }), + external_react_["createElement"]("path", { d: "M193.546 165.703c7.69 7.66 7.68 20.142 0 27.822v0c-7.701 7.701-20.162 7.701-27.853 0.020l-68.311-68.322c-7.68-7.701-7.68-20.142 0-27.863v0c7.68-7.68 20.121-7.68 27.822 0l68.342 68.342z" }), + external_react_["createElement"]("path", { d: "M414.597 386.775c7.7 7.68 7.7 20.163 0.021 27.863v0c-7.7 7.659-20.142 7.659-27.843-0.062l-68.311-68.26c-7.68-7.7-7.68-20.204 0-27.863v0c7.68-7.7 20.163-7.7 27.842 0l68.291 68.322z" }), + external_react_["createElement"]("path", { d: "M165.694 318.464c7.69-7.7 20.153-7.7 27.853 0v0c7.68 7.659 7.69 20.163 0 27.863l-68.342 68.322c-7.67 7.659-20.142 7.659-27.822-0.062v0c-7.68-7.68-7.68-20.122 0-27.801l68.311-68.322z" }), + external_react_["createElement"]("path", { d: "M386.775 97.362c7.7-7.68 20.142-7.68 27.822 0v0c7.7 7.68 7.7 20.183 0.021 27.863l-68.322 68.311c-7.68 7.68-20.163 7.68-27.843-0.020v0c-7.68-7.68-7.68-20.162 0-27.822l68.322-68.332z" })); }; +var rotate = keyframes(Spinner_svg_templateObject_1 || (Spinner_svg_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n 0% {\n transform: rotate(0deg); }\n 100% {\n transform: rotate(360deg);\n }\n"], ["\n 0% {\n transform: rotate(0deg); }\n 100% {\n transform: rotate(360deg);\n }\n"]))); +var Spinner = styled_components(_Spinner)(Spinner_svg_templateObject_2 || (Spinner_svg_templateObject_2 = Object(external_tslib_["__makeTemplateObject"])(["\n animation: 2s ", " linear infinite;\n width: 50px;\n height: 50px;\n content: '';\n display: inline-block;\n margin-left: -25px;\n\n path {\n fill: ", ";\n }\n"], ["\n animation: 2s ", " linear infinite;\n width: 50px;\n height: 50px;\n content: '';\n display: inline-block;\n margin-left: -25px;\n\n path {\n fill: ", ";\n }\n"])), rotate, function (props) { return props.color; }); +var Spinner_svg_templateObject_1, Spinner_svg_templateObject_2; + +// CONCATENATED MODULE: ./src/components/Loading/Loading.tsx + + + + +var LoadingMessage = styled_components.div(Loading_templateObject_1 || (Loading_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n font-family: helvetica, sans;\n width: 100%;\n text-align: center;\n font-size: 25px;\n margin: 30px 0 20px 0;\n color: ", ";\n"], ["\n font-family: helvetica, sans;\n width: 100%;\n text-align: center;\n font-size: 25px;\n margin: 30px 0 20px 0;\n color: ", ";\n"])), function (props) { return props.color; }); +var Loading_Loading = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(Loading, _super); + function Loading() { + return _super !== null && _super.apply(this, arguments) || this; + } + Loading.prototype.render = function () { + return external_react_["createElement"]("div", { style: { + textAlign: 'center' + } }, + external_react_["createElement"](LoadingMessage, { color: this.props.color }, "Loading ..."), + external_react_["createElement"](Spinner, { color: this.props.color })); + }; + return Loading; +}(external_react_["PureComponent"])); + +var Loading_templateObject_1; + +// EXTERNAL MODULE: external "@mdx-js/react" +var react_ = __webpack_require__(37); + +// CONCATENATED MODULE: ./src/components/OptionsProvider.ts + + +var OptionsContext = external_react_["createContext"](new RedocNormalizedOptions_RedocNormalizedOptions({})); +var OptionsProvider = OptionsContext.Provider; +var OptionsConsumer = OptionsContext.Consumer; + +// EXTERNAL MODULE: external "mobx" +var external_mobx_ = __webpack_require__(4); + +// EXTERNAL MODULE: external "json-schema-ref-parser" +var external_json_schema_ref_parser_ = __webpack_require__(38); + +// EXTERNAL MODULE: ./node_modules/swagger2openapi/index.js +var swagger2openapi = __webpack_require__(39); + +// CONCATENATED MODULE: ./src/utils/loadAndBundleSpec.ts + + +/* tslint:disable-next-line:no-implicit-dependencies */ + +function loadAndBundleSpec(specUrlOrObject) { + return Object(external_tslib_["__awaiter"])(this, void 0, void 0, function () { + var parser, spec; + return Object(external_tslib_["__generator"])(this, function (_a) { + switch (_a.label) { + case 0: + parser = new external_json_schema_ref_parser_(); + return [4 /*yield*/, parser.bundle(specUrlOrObject, { + resolve: { + http: { + withCredentials: false + } + } + })]; + case 1: + spec = _a.sent(); + if (spec.swagger !== undefined) { + return [2 /*return*/, convertSwagger2OpenAPI(spec)]; + } + else { + return [2 /*return*/, spec]; + } + return [2 /*return*/]; + } + }); + }); +} +function convertSwagger2OpenAPI(spec) { + console.warn('[ReDoc Compatibility mode]: Converting OpenAPI 2.0 to OpenAPI 3.0'); + return new Promise(function (resolve, reject) { return Object(swagger2openapi["convertObj"])(spec, { + patch: true, + warnOnly: true, + text: '{}', + anchors: true + }, function (err, res) { + // TODO: log any warnings + if (err) { + return reject(err); + } + resolve(res && res.openapi); + }); }); +} + +// EXTERNAL MODULE: external "decko" +var external_decko_ = __webpack_require__(8); + +// EXTERNAL MODULE: external "eventemitter3" +var external_eventemitter3_ = __webpack_require__(19); + +// EXTERNAL MODULE: external "json-pointer" +var external_json_pointer_ = __webpack_require__(6); + +// CONCATENATED MODULE: ./src/utils/JsonPointer.ts + + +var origParse = external_json_pointer_["parse"]; +/** + * Wrapper for JsonPointer. Provides common operations + */ +var JsonPointer_JsonPointer = /** @class */ (function () { + function JsonPointer() { + } + /** + * returns last JsonPointer token + * if level > 1 returns levels last (second last/third last) + * @example + * // returns subpath + * JsonPointerHelper.baseName('/path/0/subpath') + * // returns foo + * JsonPointerHelper.baseName('/path/foo/subpath', 2) + */ + JsonPointer.baseName = function (pointer, level) { + if (level === void 0) { level = 1; } + var tokens = JsonPointer.parse(pointer); + return tokens[tokens.length - level]; + }; + /** + * returns dirname of pointer + * if level > 1 returns corresponding dirname in the hierarchy + * @example + * // returns /path/0 + * JsonPointerHelper.dirName('/path/0/subpath') + * // returns /path + * JsonPointerHelper.dirName('/path/foo/subpath', 2) + */ + JsonPointer.dirName = function (pointer, level) { + if (level === void 0) { level = 1; } + var tokens = JsonPointer.parse(pointer); + return external_json_pointer_["compile"](tokens.slice(0, tokens.length - level)); + }; + /** + * returns relative path tokens + * @example + * // returns ['subpath'] + * JsonPointerHelper.relative('/path/0', '/path/0/subpath') + * // returns ['foo', 'subpath'] + * JsonPointerHelper.relative('/path', '/path/foo/subpath') + */ + JsonPointer.relative = function (from, to) { + var fromTokens = JsonPointer.parse(from); + var toTokens = JsonPointer.parse(to); + return toTokens.slice(fromTokens.length); + }; + /** + * overridden JsonPointer original parse to take care of prefixing '#' symbol + * that is not valid JsonPointer + */ + JsonPointer.parse = function (pointer) { + var ptr = pointer; + if (ptr.charAt(0) === '#') { + ptr = ptr.substring(1); + } + return origParse(ptr); + }; + /** + * Creates a JSON pointer path, by joining one or more tokens to a base path. + * + * @param {string} base - The base path + * @param {string|string[]} tokens - The token(s) to append (e.g. ["name", "first"]) + * @returns {string} + */ + JsonPointer.join = function (base, tokens) { + // TODO: optimize + var baseTokens = JsonPointer.parse(base); + var resTokens = baseTokens.concat(tokens); + return external_json_pointer_["compile"](resTokens); + }; + JsonPointer.get = function (object, pointer) { + return external_json_pointer_["get"](object, pointer); + }; + JsonPointer.compile = function (tokens) { + return external_json_pointer_["compile"](tokens); + }; + JsonPointer.escape = function (pointer) { + return external_json_pointer_["escape"](pointer); + }; + return JsonPointer; +}()); + +external_json_pointer_["parse"] = JsonPointer_JsonPointer.parse; +Object.assign(JsonPointer_JsonPointer, external_json_pointer_); +/* harmony default export */ var utils_JsonPointer = (JsonPointer_JsonPointer); + +// EXTERNAL MODULE: ./node_modules/path-browserify/index.js +var path_browserify = __webpack_require__(18); + +// EXTERNAL MODULE: external "url-template" +var external_url_template_ = __webpack_require__(20); + +// CONCATENATED MODULE: ./src/utils/openapi.ts + + + + +function isWildcardStatusCode(statusCode) { + return typeof statusCode === 'string' && /\dxx/i.test(statusCode); +} +function isStatusCode(statusCode) { + return statusCode === 'default' || isNumeric(statusCode) || isWildcardStatusCode(statusCode); +} +function getStatusCodeType(statusCode, defaultAsError) { + if (defaultAsError === void 0) { defaultAsError = false; } + if (statusCode === 'default') { + return defaultAsError ? 'error' : 'success'; + } + var code = typeof statusCode === 'string' ? parseInt(statusCode, 10) : statusCode; + if (isWildcardStatusCode(statusCode)) { + code *= 100; // parseInt('2xx') parses to 2 + } + if (code < 100 || code > 599) { + throw new Error('invalid HTTP code'); + } + var res = 'success'; + if (code >= 300 && code < 400) { + res = 'redirect'; + } + else if (code >= 400) { + res = 'error'; + } + else if (code < 200) { + res = 'info'; + } + return res; +} +var operationNames = { + get: true, + post: true, + put: true, + head: true, + patch: true, + delete: true, + options: true +}; +function isOperationName(key) { + return key in operationNames; +} +function getOperationSummary(operation) { + return operation.summary || operation.operationId || operation.description && operation.description.substring(0, 50) || ''; +} +var schemaKeywordTypes = { + multipleOf: 'number', + maximum: 'number', + exclusiveMaximum: 'number', + minimum: 'number', + exclusiveMinimum: 'number', + maxLength: 'string', + minLength: 'string', + pattern: 'string', + items: 'array', + maxItems: 'array', + minItems: 'array', + uniqueItems: 'array', + maxProperties: 'object', + minProperties: 'object', + required: 'object', + additionalProperties: 'object', + properties: 'object' +}; +function detectType(schema) { + if (schema.type !== undefined) { + return schema.type; + } + var keywords = Object.keys(schemaKeywordTypes); + for (var _i = 0, keywords_1 = keywords; _i < keywords_1.length; _i++) { + var keyword = keywords_1[_i]; + var type = schemaKeywordTypes[keyword]; + if (schema[keyword] !== undefined) { + return type; + } + } + return 'any'; +} +function isPrimitiveType(schema, type) { + if (type === void 0) { type = schema.type; } + if (schema.oneOf !== undefined || schema.anyOf !== undefined) { + return false; + } + if (type === 'object') { + return schema.properties !== undefined ? Object.keys(schema.properties).length === 0 : schema.additionalProperties === undefined; + } + if (type === 'array') { + if (schema.items === undefined) { + return true; + } + return false; + } + return true; +} +function isJsonLike(contentType) { + return contentType.search(/json/i) !== -1; +} +function isFormUrlEncoded(contentType) { + return contentType === 'application/x-www-form-urlencoded'; +} +function delimitedEncodeField(fieldVal, fieldName, delimiter) { + if (Array.isArray(fieldVal)) { + return fieldVal.map(function (v) { return v.toString(); }).join(delimiter); + } + else if (typeof fieldVal === 'object') { + return Object.keys(fieldVal).map(function (k) { return "" + k + delimiter + fieldVal[k]; }).join(delimiter); + } + else { + return fieldName + '=' + fieldVal.toString(); + } +} +function deepObjectEncodeField(fieldVal, fieldName) { + if (Array.isArray(fieldVal)) { + console.warn('deepObject style cannot be used with array value:' + fieldVal.toString()); + return ''; + } + else if (typeof fieldVal === 'object') { + return Object.keys(fieldVal).map(function (k) { return fieldName + "[" + k + "]=" + fieldVal[k]; }).join('&'); + } + else { + console.warn('deepObject style cannot be used with non-object value:' + fieldVal.toString()); + return ''; + } +} +function serializeFormValue(name, explode, value) { + var _a; + // Use RFC6570 safe name ([a-zA-Z0-9_]) and replace with our name later + // e.g. URI.template doesn't parse names with hyphen (-) which are valid query param names + var safeName = '__redoc_param_name__'; + var suffix = explode ? '*' : ''; + var template = external_url_template_["parse"]("{?" + safeName + suffix + "}"); + return template.expand((_a = {}, + _a[safeName] = value, + _a)).substring(1).replace(/__redoc_param_name__/g, name); +} +/* + * Should be used only for url-form-encoded body payloads + * To be used for parameters should be extended with other style values + */ +function urlFormEncodePayload(payload, encoding) { + if (encoding === void 0) { encoding = {}; } + if (Array.isArray(payload)) { + throw new Error('Payload must have fields: ' + payload.toString()); + } + else { + return Object.keys(payload).map(function (fieldName) { + var fieldVal = payload[fieldName]; + var _a = encoding[fieldName] || {}, _b = _a.style, style = _b === void 0 ? 'form' : _b, _c = _a.explode, explode = _c === void 0 ? true : _c; + switch (style) { + case 'form': + return serializeFormValue(fieldName, explode, fieldVal); + case 'spaceDelimited': + return delimitedEncodeField(fieldVal, fieldName, '%20'); + case 'pipeDelimited': + return delimitedEncodeField(fieldVal, fieldName, '|'); + case 'deepObject': + return deepObjectEncodeField(fieldVal, fieldName); + default: + // TODO implement rest of styles for path parameters + console.warn('Incorrect or unsupported encoding style: ' + style); + return ''; + } + }).join('&'); + } +} +function serializePathParameter(name, style, explode, value) { + var _a; + var suffix = explode ? '*' : ''; + var prefix = ''; + if (style === 'label') { + prefix = '.'; + } + else if (style === 'matrix') { + prefix = ';'; + } // Use RFC6570 safe name ([a-zA-Z0-9_]) and replace with our name later + // e.g. URI.template doesn't parse names with hyphen (-) which are valid query param names + var safeName = '__redoc_param_name__'; + var template = external_url_template_["parse"]("{" + prefix + safeName + suffix + "}"); + return template.expand((_a = {}, + _a[safeName] = value, + _a)).replace(/__redoc_param_name__/g, name); +} +function serializeQueryParameter(name, style, explode, value) { + switch (style) { + case 'form': + return serializeFormValue(name, explode, value); + case 'spaceDelimited': + if (!Array.isArray(value)) { + console.warn('The style spaceDelimited is only applicable to arrays'); + return ''; + } + if (explode) { + return serializeFormValue(name, explode, value); + } + return name + "=" + value.join('%20'); + case 'pipeDelimited': + if (!Array.isArray(value)) { + console.warn('The style pipeDelimited is only applicable to arrays'); + return ''; + } + if (explode) { + return serializeFormValue(name, explode, value); + } + return name + "=" + value.join('|'); + case 'deepObject': + if (!explode || Array.isArray(value) || typeof value !== 'object') { + console.warn('The style deepObject is only applicable for objects with explode=true'); + return ''; + } + return deepObjectEncodeField(value, name); + default: + console.warn('Unexpected style for query: ' + style); + return ''; + } +} +function serializeHeaderParameter(style, explode, value) { + var _a; + switch (style) { + case 'simple': + var suffix = explode ? '*' : ''; // name is not important here, so use RFC6570 safe name ([a-zA-Z0-9_]) + var name_1 = '__redoc_param_name__'; + var template = external_url_template_["parse"]("{" + name_1 + suffix + "}"); + return decodeURIComponent(template.expand((_a = {}, + _a[name_1] = value, + _a))); + default: + console.warn('Unexpected style for header: ' + style); + return ''; + } +} +function serializeCookieParameter(name, style, explode, value) { + switch (style) { + case 'form': + return serializeFormValue(name, explode, value); + default: + console.warn('Unexpected style for cookie: ' + style); + return ''; + } +} +function serializeParameterValueWithMime(value, mime) { + if (isJsonLike(mime)) { + return JSON.stringify(value); + } + else { + console.warn("Parameter serialization as " + mime + " is not supported"); + return ''; + } +} +function serializeParameterValue(parameter, value) { + var name = parameter.name, style = parameter.style, _a = parameter.explode, explode = _a === void 0 ? false : _a, serializationMime = parameter.serializationMime; + if (serializationMime) { + switch (parameter.in) { + case 'path': + case 'header': + return serializeParameterValueWithMime(value, serializationMime); + case 'cookie': + case 'query': + return name + "=" + serializeParameterValueWithMime(value, serializationMime); + default: + console.warn('Unexpected parameter location: ' + parameter.in); + return ''; + } + } + if (!style) { + console.warn("Missing style attribute or content for parameter " + name); + return ''; + } + switch (parameter.in) { + case 'path': + return serializePathParameter(name, style, explode, value); + case 'query': + return serializeQueryParameter(name, style, explode, value); + case 'header': + return serializeHeaderParameter(style, explode, value); + case 'cookie': + return serializeCookieParameter(name, style, explode, value); + default: + console.warn('Unexpected parameter location: ' + parameter.in); + return ''; + } +} +function langFromMime(contentType) { + if (contentType.search(/xml/i) !== -1) { + return 'xml'; + } + return 'clike'; +} +function isNamedDefinition(pointer) { + return /^#\/components\/schemas\/[^\/]+$/.test(pointer || ''); +} +function humanizeMultipleOfConstraint(multipleOf) { + if (multipleOf === undefined) { + return; + } + var strigifiedMultipleOf = multipleOf.toString(10); + if (!/^0\.0*1$/.test(strigifiedMultipleOf)) { + return "multiple of " + strigifiedMultipleOf; + } + return "decimal places <= " + strigifiedMultipleOf.split('.')[1].length; +} +function humanizeRangeConstraint(description, min, max) { + var stringRange; + if (min !== undefined && max !== undefined) { + if (min === max) { + stringRange = min + " " + description; + } + else { + stringRange = "[ " + min + " .. " + max + " ] " + description; + } + } + else if (max !== undefined) { + stringRange = "<= " + max + " " + description; + } + else if (min !== undefined) { + if (min === 1) { + stringRange = 'non-empty'; + } + else { + stringRange = ">= " + min + " " + description; + } + } + return stringRange; +} +function humanizeConstraints(schema) { + var res = []; + var stringRange = humanizeRangeConstraint('characters', schema.minLength, schema.maxLength); + if (stringRange !== undefined) { + res.push(stringRange); + } + var arrayRange = humanizeRangeConstraint('items', schema.minItems, schema.maxItems); + if (arrayRange !== undefined) { + res.push(arrayRange); + } + var multipleOfConstraint = humanizeMultipleOfConstraint(schema.multipleOf); + if (multipleOfConstraint !== undefined) { + res.push(multipleOfConstraint); + } + var numberRange; + if (schema.minimum !== undefined && schema.maximum !== undefined) { + numberRange = schema.exclusiveMinimum ? '( ' : '[ '; + numberRange += schema.minimum; + numberRange += ' .. '; + numberRange += schema.maximum; + numberRange += schema.exclusiveMaximum ? ' )' : ' ]'; + } + else if (schema.maximum !== undefined) { + numberRange = schema.exclusiveMaximum ? '< ' : '<= '; + numberRange += schema.maximum; + } + else if (schema.minimum !== undefined) { + numberRange = schema.exclusiveMinimum ? '> ' : '>= '; + numberRange += schema.minimum; + } + if (numberRange !== undefined) { + res.push(numberRange); + } + return res; +} +function sortByRequired(fields, order) { + if (order === void 0) { order = []; } + var unrequiredFields = []; + var orderedFields = []; + var unorderedFields = []; + fields.forEach(function (field) { + if (field.required) { + order.includes(field.name) ? orderedFields.push(field) : unorderedFields.push(field); + } + else { + unrequiredFields.push(field); + } + }); + orderedFields.sort(function (a, b) { return order.indexOf(a.name) - order.indexOf(b.name); }); + return Object(external_tslib_["__spreadArrays"])(orderedFields, unorderedFields, unrequiredFields); +} +function sortByField(fields, param) { + return Object(external_tslib_["__spreadArrays"])(fields).sort(function (a, b) { + return a[param].localeCompare(b[param]); + }); +} +function mergeParams(parser, pathParams, operationParams) { + if (pathParams === void 0) { pathParams = []; } + if (operationParams === void 0) { operationParams = []; } + var operationParamNames = {}; + operationParams.forEach(function (param) { + param = parser.shalowDeref(param); + operationParamNames[param.name + '_' + param.in] = true; + }); // filter out path params overridden by operation ones with the same name + pathParams = pathParams.filter(function (param) { + param = parser.shalowDeref(param); + return !operationParamNames[param.name + '_' + param.in]; + }); + return pathParams.concat(operationParams); +} +function mergeSimilarMediaTypes(types) { + var mergedTypes = {}; + Object.keys(types).forEach(function (name) { + var mime = types[name]; // ignore content type parameters (e.g. charset) and merge + var normalizedMimeName = name.split(';')[0].trim(); + if (!mergedTypes[normalizedMimeName]) { + mergedTypes[normalizedMimeName] = mime; + return; + } + mergedTypes[normalizedMimeName] = Object(external_tslib_["__assign"])(Object(external_tslib_["__assign"])({}, mergedTypes[normalizedMimeName]), mime); + }); + return mergedTypes; +} +function expandDefaultServerVariables(url, variables) { + if (variables === void 0) { variables = {}; } + return url.replace(/(?:{)([\w-.]+)(?:})/g, function (match, name) { return variables[name] && variables[name].default || match; }); +} +function normalizeServers(specUrl, servers) { + var getHref = function () { + return ''; + }; + var baseUrl = !specUrl ? removeQueryString(getHref()) : Object(path_browserify["dirname"])(specUrl); + if (servers.length === 0) { + // Behaviour defined in OpenAPI spec: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#openapi-object + servers = [{ + url: '/' + }]; + } + function normalizeUrl(url) { + return resolveUrl(baseUrl, url); + } + return servers.map(function (server) { + return Object(external_tslib_["__assign"])(Object(external_tslib_["__assign"])({}, server), { url: normalizeUrl(server.url), description: server.description || '' }); + }); +} +var SECURITY_DEFINITIONS_COMPONENT_NAME = 'security-definitions'; +var SECURITY_DEFINITIONS_JSX_NAME = 'SecurityDefinitions'; +var SCHEMA_DEFINITION_JSX_NAME = 'SchemaDefinition'; +var SECURITY_SCHEMES_SECTION_PREFIX = 'section/Authentication/'; +function setSecuritySchemePrefix(prefix) { + SECURITY_SCHEMES_SECTION_PREFIX = prefix; +} +var shortenHTTPVerb = function (verb) { return ({ + delete: 'del', + options: 'opts' +})[verb] || verb; }; +function isRedocExtension(key) { + var redocExtensions = { + 'x-circular-ref': true, + 'x-code-samples': true, + // deprecated + 'x-codeSamples': true, + 'x-displayName': true, + 'x-examples': true, + 'x-ignoredHeaderParameters': true, + 'x-logo': true, + 'x-nullable': true, + 'x-servers': true, + 'x-tagGroups': true, + 'x-traitTag': true, + 'x-additionalPropertiesName': true, + 'x-explicitMappingOnly': true + }; + return key in redocExtensions; +} +function extractExtensions(obj, showExtensions) { + return Object.keys(obj).filter(function (key) { + if (showExtensions === true) { + return key.startsWith('x-') && !isRedocExtension(key); + } + return key.startsWith('x-') && showExtensions.indexOf(key) > -1; + }).reduce(function (acc, key) { + acc[key] = obj[key]; + return acc; + }, {}); +} +function pluralizeType(displayType) { + return displayType.split(' or ').map(function (type) { return type.replace(/^(string|object|number|integer|array|boolean)s?( ?.*)/, '$1s$2'); }).join(' or '); +} + +// EXTERNAL MODULE: external "prismjs" +var external_prismjs_ = __webpack_require__(10); + +// EXTERNAL MODULE: external "prismjs/components/prism-bash.js" +var prism_bash_js_ = __webpack_require__(59); + +// EXTERNAL MODULE: external "prismjs/components/prism-c.js" +var prism_c_js_ = __webpack_require__(60); + +// EXTERNAL MODULE: external "prismjs/components/prism-clike.js" +var prism_clike_js_ = __webpack_require__(61); + +// EXTERNAL MODULE: external "prismjs/components/prism-coffeescript.js" +var prism_coffeescript_js_ = __webpack_require__(62); + +// EXTERNAL MODULE: external "prismjs/components/prism-cpp.js" +var prism_cpp_js_ = __webpack_require__(63); + +// EXTERNAL MODULE: external "prismjs/components/prism-csharp.js" +var prism_csharp_js_ = __webpack_require__(64); + +// EXTERNAL MODULE: external "prismjs/components/prism-go.js" +var prism_go_js_ = __webpack_require__(65); + +// EXTERNAL MODULE: external "prismjs/components/prism-http.js" +var prism_http_js_ = __webpack_require__(66); + +// EXTERNAL MODULE: external "prismjs/components/prism-java.js" +var prism_java_js_ = __webpack_require__(67); + +// EXTERNAL MODULE: external "prismjs/components/prism-lua.js" +var prism_lua_js_ = __webpack_require__(68); + +// EXTERNAL MODULE: external "prismjs/components/prism-markup-templating.js" +var prism_markup_templating_js_ = __webpack_require__(69); + +// EXTERNAL MODULE: external "prismjs/components/prism-markup.js" +var prism_markup_js_ = __webpack_require__(70); + +// EXTERNAL MODULE: external "prismjs/components/prism-objectivec.js" +var prism_objectivec_js_ = __webpack_require__(71); + +// EXTERNAL MODULE: external "prismjs/components/prism-perl.js" +var prism_perl_js_ = __webpack_require__(72); + +// EXTERNAL MODULE: external "prismjs/components/prism-php.js" +var prism_php_js_ = __webpack_require__(73); + +// EXTERNAL MODULE: external "prismjs/components/prism-python.js" +var prism_python_js_ = __webpack_require__(74); + +// EXTERNAL MODULE: external "prismjs/components/prism-ruby.js" +var prism_ruby_js_ = __webpack_require__(75); + +// EXTERNAL MODULE: external "prismjs/components/prism-scala.js" +var prism_scala_js_ = __webpack_require__(76); + +// EXTERNAL MODULE: external "prismjs/components/prism-sql.js" +var prism_sql_js_ = __webpack_require__(77); + +// EXTERNAL MODULE: external "prismjs/components/prism-swift.js" +var prism_swift_js_ = __webpack_require__(78); + +// CONCATENATED MODULE: ./src/utils/highlight.ts + + + + + + + + + + + + // dep of php + // xml + + + + + + + + +var DEFAULT_LANG = 'clike'; +external_prismjs_["languages"].insertBefore('javascript', 'string', { + 'property string': { + pattern: /([{,]\s*)"(?:\\.|[^\\"\r\n])*"(?=\s*:)/i, + lookbehind: true + } +}, undefined); +external_prismjs_["languages"].insertBefore('javascript', 'punctuation', { + property: { + pattern: /([{,]\s*)[a-z]\w*(?=\s*:)/i, + lookbehind: true + } +}, undefined); +/** + * map language names to Prism.js names + */ +function mapLang(lang) { + return { + json: 'js', + 'c++': 'cpp', + 'c#': 'csharp', + 'objective-c': 'objectivec', + shell: 'bash', + viml: 'vim' + }[lang] || DEFAULT_LANG; +} +/** + * Highlight source code string using Prism.js + * @param source source code to highlight + * @param lang highlight language + * @return highlighted source code as **html string** + */ +function highlight(source, lang) { + if (lang === void 0) { lang = DEFAULT_LANG; } + lang = lang.toLowerCase(); + var grammar = external_prismjs_["languages"][lang]; + if (!grammar) { + grammar = external_prismjs_["languages"][mapLang(lang)]; + } + return external_prismjs_["highlight"](source, grammar, lang); +} + +// CONCATENATED MODULE: ./src/utils/decorators.ts +function throttle(func, wait) { + var context; + var args; + var result; + var timeout = null; + var previous = 0; + var later = function () { + previous = new Date().getTime(); + timeout = null; + result = func.apply(context, args); + if (!timeout) { + context = args = null; + } + }; + return function () { + var now = new Date().getTime(); + var remaining = wait - (now - previous); + context = this; // eslint-disable-next-line prefer-rest-params + args = arguments; + if (remaining <= 0 || remaining > wait) { + if (timeout) { + clearTimeout(timeout); + timeout = null; + } + previous = now; + result = func.apply(context, args); + if (!timeout) { + context = args = null; + } + } + else if (!timeout) { + timeout = setTimeout(later, remaining); + } + return result; + }; +} +function Throttle(delay) { + return function (_, _2, desc) { + desc.value = throttle(desc.value, delay); + }; +} + +// CONCATENATED MODULE: ./src/utils/debug.ts +function debugTime(label) { + if (false) {} +} +function debugTimeEnd(label) { + if (false) {} +} + +// CONCATENATED MODULE: ./src/utils/memoize.ts + +// source: https://github.com/andreypopp/memoize-decorator +var SENTINEL = {}; +function memoize(target, name, descriptor) { + if (typeof descriptor.value === 'function') { + return _memoizeMethod(target, name, descriptor); + } + else if (typeof descriptor.get === 'function') { + return _memoizeGetter(target, name, descriptor); + } + else { + throw new Error('@memoize decorator can be applied to methods or getters, got ' + String(descriptor.value) + ' instead'); + } +} +function _memoizeGetter(target, name, descriptor) { + var memoizedName = "_memoized_" + name; + var get = descriptor.get; + target[memoizedName] = SENTINEL; + return Object(external_tslib_["__assign"])(Object(external_tslib_["__assign"])({}, descriptor), { get: function () { + if (this[memoizedName] === SENTINEL) { + this[memoizedName] = get.call(this); + } + return this[memoizedName]; + } }); +} +function _memoizeMethod(target, name, descriptor) { + if (!descriptor.value || descriptor.value.length > 0) { + throw new Error('@memoize decorator can only be applied to methods of zero arguments'); + } + var memoizedName = "_memoized_" + name; + var value = descriptor.value; + target[memoizedName] = SENTINEL; + return Object(external_tslib_["__assign"])(Object(external_tslib_["__assign"])({}, descriptor), { value: function () { + if (this[memoizedName] === SENTINEL) { + this[memoizedName] = value.call(this); + } + return this[memoizedName]; + } }); +} + +// CONCATENATED MODULE: ./src/utils/index.ts + + + + + + + + + + +// CONCATENATED MODULE: ./src/services/HistoryService.ts + + + + +var EVENT = 'hashchange'; +var HistoryService_HistoryService = /** @class */ (function () { + function HistoryService() { + var _this = this; + this.emit = function () { + _this._emiter.emit(EVENT, _this.currentId); + }; + this._emiter = new external_eventemitter3_["EventEmitter"](); + this.bind(); + } + Object.defineProperty(HistoryService.prototype, "currentId", { + get: function () { + return IS_BROWSER ? decodeURIComponent(window.location.hash.substring(1)) : ''; + }, + enumerable: false, + configurable: true + }); + HistoryService.prototype.linkForId = function (id) { + if (!id) { + return ''; + } + return '#' + id; + }; + HistoryService.prototype.subscribe = function (cb) { + var emmiter = this._emiter.addListener(EVENT, cb); + return function () { return emmiter.removeListener(EVENT, cb); }; + }; + HistoryService.prototype.bind = function () { + if (IS_BROWSER) { + window.addEventListener('hashchange', this.emit, false); + } + }; + HistoryService.prototype.dispose = function () { + if (IS_BROWSER) { + window.removeEventListener('hashchange', this.emit); + } + }; + HistoryService.prototype.replace = function (id, rewriteHistory) { + if (rewriteHistory === void 0) { rewriteHistory = false; } + if (!IS_BROWSER) { + return; + } + if (id == null || id === this.currentId) { + return; + } + if (rewriteHistory) { + window.history.replaceState(null, '', window.location.href.split('#')[0] + this.linkForId(id)); + return; + } + window.history.pushState(null, '', window.location.href.split('#')[0] + this.linkForId(id)); + this.emit(); + }; + Object(external_tslib_["__decorate"])([ + external_decko_["bind"], + external_decko_["debounce"] + ], HistoryService.prototype, "replace", null); + return HistoryService; +}()); + +var HistoryService_history = new HistoryService_HistoryService(); +if (false) {} + +// EXTERNAL MODULE: external "mark.js" +var external_mark_js_ = __webpack_require__(23); + +// CONCATENATED MODULE: ./src/services/MarkerService.ts + +var MarkerService_MarkerService = /** @class */ (function () { + function MarkerService() { + this.map = new Map(); + this.prevTerm = ''; + } + MarkerService.prototype.add = function (el) { + this.map.set(el, new external_mark_js_(el)); + }; + MarkerService.prototype.delete = function (el) { + this.map.delete(el); + }; + MarkerService.prototype.addOnly = function (elements) { + var _this = this; + this.map.forEach(function (inst, elem) { + if (elements.indexOf(elem) === -1) { + inst.unmark(); + _this.map.delete(elem); + } + }); + for (var _i = 0, elements_1 = elements; _i < elements_1.length; _i++) { + var el = elements_1[_i]; + if (!this.map.has(el)) { + this.map.set(el, new external_mark_js_(el)); + } + } + }; + MarkerService.prototype.clearAll = function () { + this.unmark(); + this.map.clear(); + }; + MarkerService.prototype.mark = function (term) { + var _this = this; + if (!term && !this.prevTerm) { + return; + } + this.map.forEach(function (val) { + val.unmark(); + val.mark(term || _this.prevTerm); + }); + this.prevTerm = term || this.prevTerm; + }; + MarkerService.prototype.unmark = function () { + this.map.forEach(function (val) { return val.unmark(); }); + this.prevTerm = ''; + }; + return MarkerService; +}()); + + +// EXTERNAL MODULE: external "marked" +var external_marked_ = __webpack_require__(13); + +// CONCATENATED MODULE: ./src/services/MarkdownRenderer.ts + + + +var MarkdownRenderer_renderer = new external_marked_["Renderer"](); +external_marked_["setOptions"]({ + renderer: MarkdownRenderer_renderer, + highlight: function (str, lang) { + return highlight(str, lang); + } +}); +var LEGACY_REGEXP = '^ {0,3}\\s*$'; // prettier-ignore +var MDX_COMPONENT_REGEXP = '(?:^ {0,3}<({component})([\\s\\S]*?)>([\\s\\S]*?)' // with children + + '|^ {0,3}<({component})([\\s\\S]*?)(?:/>|\\n{2,}))'; // self-closing +var COMPONENT_REGEXP = '(?:' + LEGACY_REGEXP + '|' + MDX_COMPONENT_REGEXP + ')'; +function buildComponentComment(name) { + return ""; +} +var MarkdownRenderer_MarkdownRenderer = /** @class */ (function () { + function MarkdownRenderer(options) { + var _this = this; + this.options = options; + this.headings = []; + this.headingRule = function (text, level, raw, slugger) { + if (level === 1) { + _this.currentTopHeading = _this.saveHeading(text, level); + } + else if (level === 2) { + _this.saveHeading(text, level, _this.currentTopHeading && _this.currentTopHeading.items, _this.currentTopHeading && _this.currentTopHeading.id); + } + return _this.originalHeadingRule(text, level, raw, slugger); + }; + this.headingEnhanceRenderer = new external_marked_["Renderer"](); + this.originalHeadingRule = this.headingEnhanceRenderer.heading.bind(this.headingEnhanceRenderer); + this.headingEnhanceRenderer.heading = this.headingRule; + } + MarkdownRenderer.containsComponent = function (rawText, componentName) { + var compRegexp = new RegExp(COMPONENT_REGEXP.replace(/{component}/g, componentName), 'gmi'); + return compRegexp.test(rawText); + }; + MarkdownRenderer.getTextBeforeHading = function (md, heading) { + var headingLinePos = md.search(new RegExp("^##?\\s+" + heading, 'm')); + if (headingLinePos > -1) { + return md.substring(0, headingLinePos); + } + return md; + }; + MarkdownRenderer.prototype.saveHeading = function (name, level, container, parentId) { + if (container === void 0) { container = this.headings; } + name = unescapeHTMLChars(name); + var item = { + id: parentId ? parentId + "/" + safeSlugify(name) : "section/" + safeSlugify(name), + name: name, + level: level, + items: [] + }; + container.push(item); + return item; + }; + MarkdownRenderer.prototype.flattenHeadings = function (container) { + if (container === undefined) { + return []; + } + var res = []; + for (var _i = 0, container_1 = container; _i < container_1.length; _i++) { + var heading = container_1[_i]; + res.push(heading); + res.push.apply(res, this.flattenHeadings(heading.items)); + } + return res; + }; + MarkdownRenderer.prototype.attachHeadingsDescriptions = function (rawText) { + var buildRegexp = function (heading) { + return new RegExp("##?\\s+" + heading.name.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&')); + }; + var flatHeadings = this.flattenHeadings(this.headings); + if (flatHeadings.length < 1) { + return; + } + var prevHeading = flatHeadings[0]; + var prevRegexp = buildRegexp(prevHeading); + var prevPos = rawText.search(prevRegexp); + for (var i = 1; i < flatHeadings.length; i++) { + var heading = flatHeadings[i]; + var regexp = buildRegexp(heading); + var currentPos = rawText.substr(prevPos + 1).search(regexp) + prevPos + 1; + prevHeading.description = rawText.substring(prevPos, currentPos).replace(prevRegexp, '').trim(); + prevHeading = heading; + prevRegexp = regexp; + prevPos = currentPos; + } + prevHeading.description = rawText.substring(prevPos).replace(prevRegexp, '').trim(); + }; + MarkdownRenderer.prototype.renderMd = function (rawText, extractHeadings) { + if (extractHeadings === void 0) { extractHeadings = false; } + var opts = extractHeadings ? { + renderer: this.headingEnhanceRenderer + } : undefined; + var res = external_marked_(rawText.toString(), opts); + return res; + }; + MarkdownRenderer.prototype.extractHeadings = function (rawText) { + this.renderMd(rawText, true); + this.attachHeadingsDescriptions(rawText); + var res = this.headings; + this.headings = []; + return res; + }; // regexp-based 👎: remark is slow and too big so for now using marked + regexps soup + MarkdownRenderer.prototype.renderMdWithComponents = function (rawText) { + var components = this.options && this.options.allowedMdComponents; + if (!components || Object.keys(components).length === 0) { + return [this.renderMd(rawText)]; + } + var names = Object.keys(components).join('|'); + var componentsRegexp = new RegExp(COMPONENT_REGEXP.replace(/{component}/g, names), 'mig'); + var htmlParts = []; + var componentDefs = []; + var match = componentsRegexp.exec(rawText); + var lasxtIdx = 0; + while (match) { + htmlParts.push(rawText.substring(lasxtIdx, match.index)); + lasxtIdx = componentsRegexp.lastIndex; + var compName = match[1] || match[2] || match[5]; + var componentMeta = components[compName]; + var props = match[3] || match[6]; + var children = match[4]; + if (componentMeta) { + componentDefs.push({ + component: componentMeta.component, + propsSelector: componentMeta.propsSelector, + props: Object(external_tslib_["__assign"])(Object(external_tslib_["__assign"])(Object(external_tslib_["__assign"])({}, parseProps(props)), componentMeta.props), { children: children }) + }); + } + match = componentsRegexp.exec(rawText); + } + htmlParts.push(rawText.substring(lasxtIdx)); + var res = []; + for (var i = 0; i < htmlParts.length; i++) { + var htmlPart = htmlParts[i]; + if (htmlPart) { + res.push(this.renderMd(htmlPart)); + } + if (componentDefs[i]) { + res.push(componentDefs[i]); + } + } + return res; + }; + return MarkdownRenderer; +}()); + +function parseProps(props) { + if (!props) { + return {}; + } + var regex = /([\w-]+)\s*=\s*(?:{([^}]+?)}|"([^"]+?)")/gim; + var parsed = {}; + var match; // tslint:disable-next-line + while ((match = regex.exec(props)) !== null) { + if (match[3]) { + // string prop match (in double quotes) + parsed[match[1]] = match[3]; + } + else if (match[2]) { + // jsx prop match (in curly braces) + var val = void 0; + try { + val = JSON.parse(match[2]); + } + catch (e) { + /* noop */ + } + parsed[match[1]] = val; + } + } + return parsed; +} + +// CONCATENATED MODULE: ./src/services/models/ApiInfo.ts + +var ApiInfo_ApiInfoModel = /** @class */ (function () { + function ApiInfoModel(parser) { + this.parser = parser; + Object.assign(this, parser.spec.info); + this.description = parser.spec.info.description || ''; + var firstHeadingLinePos = this.description.search(/^##?\s+/m); + if (firstHeadingLinePos > -1) { + this.description = this.description.substring(0, firstHeadingLinePos); + } + this.downloadLink = this.getDownloadLink(); + this.downloadFileName = this.getDownloadFileName(); + } + ApiInfoModel.prototype.getDownloadLink = function () { + if (this.parser.specUrl) { + return this.parser.specUrl; + } + if (IS_BROWSER && window.Blob && window.URL && window.URL.createObjectURL) { + var blob = new Blob([JSON.stringify(this.parser.spec, null, 2)], { + type: 'application/json' + }); + return window.URL.createObjectURL(blob); + } + }; + ApiInfoModel.prototype.getDownloadFileName = function () { + if (!this.parser.specUrl) { + return 'swagger.json'; + } + return undefined; + }; + return ApiInfoModel; +}()); + + +// CONCATENATED MODULE: ./src/services/models/SecurityRequirement.ts + + +var SecurityRequirement_SecurityRequirementModel = /** @class */ (function () { + function SecurityRequirementModel(requirement, parser) { + var schemes = parser.spec.components && parser.spec.components.securitySchemes || {}; + this.schemes = Object.keys(requirement || {}).map(function (id) { + var scheme = parser.deref(schemes[id]); + var scopes = requirement[id] || []; + if (!scheme) { + console.warn("Non existing security scheme referenced: " + id + ". Skipping"); + return undefined; + } + return Object(external_tslib_["__assign"])(Object(external_tslib_["__assign"])({}, scheme), { id: id, sectionId: SECURITY_SCHEMES_SECTION_PREFIX + id, scopes: scopes }); + }).filter(function (scheme) { return scheme !== undefined; }); + } + return SecurityRequirementModel; +}()); + + +// CONCATENATED MODULE: ./src/services/models/Callback.ts + + + + +var Callback_CallbackModel = /** @class */ (function () { + function CallbackModel(parser, name, infoOrRef, pointer, options) { + this.operations = []; + this.name = name; + var paths = parser.deref(infoOrRef); + parser.exitRef(infoOrRef); + for (var _i = 0, _a = Object.keys(paths); _i < _a.length; _i++) { + var pathName = _a[_i]; + var path = paths[pathName]; + var operations = Object.keys(path).filter(isOperationName); + for (var _b = 0, operations_1 = operations; _b < operations_1.length; _b++) { + var operationName = operations_1[_b]; + var operationInfo = path[operationName]; + var operation = new Operation_OperationModel(parser, Object(external_tslib_["__assign"])(Object(external_tslib_["__assign"])({}, operationInfo), { pathName: pathName, pointer: JsonPointer_JsonPointer.compile([pointer, name, pathName, operationName]), httpVerb: operationName, pathParameters: path.parameters || [], pathServers: path.servers }), undefined, options, true); + this.operations.push(operation); + } + } + } + CallbackModel.prototype.toggle = function () { + this.expanded = !this.expanded; + }; + Object(external_tslib_["__decorate"])([ + external_mobx_["observable"] + ], CallbackModel.prototype, "expanded", void 0); + Object(external_tslib_["__decorate"])([ + external_mobx_["action"] + ], CallbackModel.prototype, "toggle", null); + return CallbackModel; +}()); + + +// CONCATENATED MODULE: ./src/services/models/Schema.ts + + + + + // TODO: refactor this model, maybe use getters instead of copying all the values +var Schema_SchemaModel = /** @class */ (function () { + /** + * @param isChild if schema discriminator Child + * When true forces dereferencing in allOfs even if circular + */ + function SchemaModel(parser, schemaOrRef, pointer, options, isChild) { + if (isChild === void 0) { isChild = false; } + this.options = options; + this.typePrefix = ''; + this.isCircular = false; + this.activeOneOf = 0; + this.pointer = schemaOrRef.$ref || pointer || ''; + this.rawSchema = parser.deref(schemaOrRef); + this.schema = parser.mergeAllOf(this.rawSchema, this.pointer, isChild); + this.init(parser, isChild); + parser.exitRef(schemaOrRef); + parser.exitParents(this.schema); + if (options.showExtensions) { + this.extensions = extractExtensions(this.schema, options.showExtensions); + } + } + /** + * Set specified alternative schema as active + * @param idx oneOf index + */ + SchemaModel.prototype.activateOneOf = function (idx) { + this.activeOneOf = idx; + }; + SchemaModel.prototype.init = function (parser, isChild) { + var _this = this; + var schema = this.schema; + this.isCircular = schema['x-circular-ref']; + this.title = schema.title || isNamedDefinition(this.pointer) && JsonPointer_JsonPointer.baseName(this.pointer) || ''; + this.description = schema.description || ''; + this.type = schema.type || detectType(schema); + this.format = schema.format; + this.nullable = !!schema.nullable; + this.enum = schema.enum || []; + this.example = schema.example; + this.deprecated = !!schema.deprecated; + this.pattern = schema.pattern; + this.externalDocs = schema.externalDocs; + this.constraints = humanizeConstraints(schema); + this.displayType = this.type; + this.displayFormat = this.format; + this.isPrimitive = isPrimitiveType(schema, this.type); + this.default = schema.default; + this.readOnly = !!schema.readOnly; + this.writeOnly = !!schema.writeOnly; + if (this.isCircular) { + return; + } + if (!isChild && getDiscriminator(schema) !== undefined) { + this.initDiscriminator(schema, parser); + return; + } + else if (isChild && Array.isArray(schema.oneOf) && schema.oneOf.find(function (s) { return s.$ref === _this.pointer; })) { + // we hit allOf of the schema with the parent discriminator + delete schema.oneOf; + } + if (schema.oneOf !== undefined) { + this.initOneOf(schema.oneOf, parser); + this.oneOfType = 'One of'; + if (schema.anyOf !== undefined) { + console.warn("oneOf and anyOf are not supported on the same level. Skipping anyOf at " + this.pointer); + } + return; + } + if (schema.anyOf !== undefined) { + this.initOneOf(schema.anyOf, parser); + this.oneOfType = 'Any of'; + return; + } + if (this.type === 'object') { + this.fields = buildFields(parser, schema, this.pointer, this.options); + } + else if (this.type === 'array' && schema.items) { + this.items = new SchemaModel(parser, schema.items, this.pointer + '/items', this.options); + this.displayType = pluralizeType(this.items.displayType); + this.displayFormat = this.items.format; + this.typePrefix = this.items.typePrefix + l('arrayOf'); + this.title = this.title || this.items.title; + this.isPrimitive = this.items.isPrimitive; + if (this.example === undefined && this.items.example !== undefined) { + this.example = [this.items.example]; + } + if (this.items.isPrimitive) { + this.enum = this.items.enum; + } + } + if (this.enum.length && this.options.sortEnumValuesAlphabetically) { + this.enum.sort(); + } + }; + SchemaModel.prototype.initOneOf = function (oneOf, parser) { + var _this = this; + this.oneOf = oneOf.map(function (variant, idx) { + var derefVariant = parser.deref(variant); + var merged = parser.mergeAllOf(derefVariant, _this.pointer + '/oneOf/' + idx); // try to infer title + var title = isNamedDefinition(variant.$ref) && !merged.title ? JsonPointer_JsonPointer.baseName(variant.$ref) : merged.title; + var schema = new SchemaModel(parser, Object(external_tslib_["__assign"])(Object(external_tslib_["__assign"])({}, merged), { title: title, allOf: [Object(external_tslib_["__assign"])(Object(external_tslib_["__assign"])({}, _this.schema), { oneOf: undefined, anyOf: undefined })] }), _this.pointer + '/oneOf/' + idx, _this.options); + parser.exitRef(variant); // each oneOf should be independent so exiting all the parent refs + // otherwise it will cause false-positive recursive detection + parser.exitParents(merged); + return schema; + }); + if (this.options.simpleOneOfTypeLabel) { + var types = collectUniqueOneOfTypesDeep(this); + this.displayType = types.join(' or '); + } + else { + this.displayType = this.oneOf.map(function (schema) { + var name = schema.typePrefix + (schema.title ? schema.title + " (" + schema.displayType + ")" : schema.displayType); + if (name.indexOf(' or ') > -1) { + name = "(" + name + ")"; + } + return name; + }).join(' or '); + } + }; + SchemaModel.prototype.initDiscriminator = function (schema, parser) { + var _this = this; + var discriminator = getDiscriminator(schema); + this.discriminatorProp = discriminator.propertyName; + var implicitInversedMapping = parser.findDerived(Object(external_tslib_["__spreadArrays"])((schema.parentRefs || []), [this.pointer])); + if (schema.oneOf) { + for (var _i = 0, _a = schema.oneOf; _i < _a.length; _i++) { + var variant = _a[_i]; + if (variant.$ref === undefined) { + continue; + } + var name_1 = JsonPointer_JsonPointer.baseName(variant.$ref); + implicitInversedMapping[variant.$ref] = name_1; + } + } + var mapping = discriminator.mapping || {}; // Defines if the mapping is exhaustive. This avoids having references + // that overlap with the mapping entries + var isLimitedToMapping = discriminator['x-explicitMappingOnly'] || false; // if there are no mappings, assume non-exhaustive + if (Object.keys(mapping).length === 0) { + isLimitedToMapping = false; + } + var explicitInversedMapping = {}; + for (var name_2 in mapping) { + var $ref = mapping[name_2]; + if (Array.isArray(explicitInversedMapping[$ref])) { + explicitInversedMapping[$ref].push(name_2); + } + else { + // overrides implicit mapping here + explicitInversedMapping[$ref] = [name_2]; + } + } + var inversedMapping = isLimitedToMapping ? Object(external_tslib_["__assign"])({}, explicitInversedMapping) : Object(external_tslib_["__assign"])(Object(external_tslib_["__assign"])({}, implicitInversedMapping), explicitInversedMapping); + var refs = []; + for (var _b = 0, _c = Object.keys(inversedMapping); _b < _c.length; _b++) { + var $ref = _c[_b]; + var names_2 = inversedMapping[$ref]; + if (Array.isArray(names_2)) { + for (var _d = 0, names_1 = names_2; _d < names_1.length; _d++) { + var name_3 = names_1[_d]; + refs.push({ + $ref: $ref, + name: name_3 + }); + } + } + else { + refs.push({ + $ref: $ref, + name: names_2 + }); + } + } // Make the listing respects the mapping + // in case a mapping is defined, the user usually wants to have the order shown + // as it was defined in the yaml. This will sort the names given the provided + // mapping (if provided). + // The logic is: + // - If a name is among the mapping, promote it to first + // - Names among the mapping are sorted by their order in the mapping + // - Names outside the mapping are sorted alphabetically + var names = Object.keys(mapping); + if (names.length !== 0) { + refs = refs.sort(function (left, right) { + var indexLeft = names.indexOf(left.name); + var indexRight = names.indexOf(right.name); + if (indexLeft < 0 && indexRight < 0) { + // out of mapping, order by name + return left.name.localeCompare(right.name); + } + else if (indexLeft < 0) { + // the right is found, so mapping wins + return 1; + } + else if (indexRight < 0) { + // left wins as it's in mapping + return -1; + } + else { + return indexLeft - indexRight; + } + }); + } + this.oneOf = refs.map(function (_a) { + var $ref = _a.$ref, name = _a.name; + var innerSchema = new SchemaModel(parser, parser.byRef($ref), $ref, _this.options, true); + innerSchema.title = name; + return innerSchema; + }); + }; + Object(external_tslib_["__decorate"])([ + external_mobx_["observable"] + ], SchemaModel.prototype, "activeOneOf", void 0); + Object(external_tslib_["__decorate"])([ + external_mobx_["action"] + ], SchemaModel.prototype, "activateOneOf", null); + return SchemaModel; +}()); + +function buildFields(parser, schema, $ref, options) { + var props = schema.properties || {}; + var additionalProps = schema.additionalProperties; + var defaults = schema.default || {}; + var fields = Object.keys(props || []).map(function (fieldName) { + var field = props[fieldName]; + if (!field) { + console.warn("Field \"" + fieldName + "\" is invalid, skipping.\n Field must be an object but got " + typeof field + " at \"" + $ref + "\""); + field = {}; + } + var required = schema.required === undefined ? false : schema.required.indexOf(fieldName) > -1; + return new Field_FieldModel(parser, { + name: fieldName, + required: required, + schema: Object(external_tslib_["__assign"])(Object(external_tslib_["__assign"])({}, field), { default: field.default === undefined ? defaults[fieldName] : field.default }) + }, $ref + '/properties/' + fieldName, options); + }); + if (options.sortPropsAlphabetically) { + fields = sortByField(fields, 'name'); + } + if (options.requiredPropsFirst) { + // if not sort alphabetically sort in the order from required keyword + fields = sortByRequired(fields, !options.sortPropsAlphabetically ? schema.required : undefined); + } + if (typeof additionalProps === 'object' || additionalProps === true) { + fields.push(new Field_FieldModel(parser, { + name: (typeof additionalProps === 'object' ? additionalProps['x-additionalPropertiesName'] || 'property name' : 'property name').concat('*'), + required: false, + schema: additionalProps === true ? {} : additionalProps, + kind: 'additionalProperties' + }, $ref + '/additionalProperties', options)); + } + return fields; +} +function getDiscriminator(schema) { + return schema.discriminator || schema['x-discriminator']; +} +function collectUniqueOneOfTypesDeep(schema) { + var uniqueTypes = new Set(); + function crawl(schema) { + for (var _i = 0, _a = schema.oneOf || []; _i < _a.length; _i++) { + var oneOfType = _a[_i]; + if (oneOfType.oneOf) { + crawl(oneOfType); + continue; + } + if (oneOfType.type) { + uniqueTypes.add(oneOfType.type); + } + } + } + crawl(schema); + return Array.from(uniqueTypes.values()); +} + +// CONCATENATED MODULE: ./src/services/models/Field.ts + + + + +var DEFAULT_SERIALIZATION = { + path: { + style: 'simple', + explode: false + }, + query: { + style: 'form', + explode: true + }, + header: { + style: 'simple', + explode: false + }, + cookie: { + style: 'form', + explode: true + } +}; +/** + * Field or Parameter model ready to be used by components + */ +var Field_FieldModel = /** @class */ (function () { + function FieldModel(parser, infoOrRef, pointer, options) { + var info = parser.deref(infoOrRef); + this.kind = infoOrRef.kind || 'field'; + this.name = infoOrRef.name || info.name; + this.in = info.in; + this.required = !!info.required; + var fieldSchema = info.schema; + var serializationMime = ''; + if (!fieldSchema && info.in && info.content) { + serializationMime = Object.keys(info.content)[0]; + fieldSchema = info.content[serializationMime] && info.content[serializationMime].schema; + } + this.schema = new Schema_SchemaModel(parser, fieldSchema || {}, pointer, options); + this.description = info.description === undefined ? this.schema.description || '' : info.description; + this.example = info.example || this.schema.example; + if (serializationMime) { + this.serializationMime = serializationMime; + } + else if (info.style) { + this.style = info.style; + } + else if (this.in) { + this.style = DEFAULT_SERIALIZATION[this.in].style; + } + if (info.explode === undefined && this.in) { + this.explode = DEFAULT_SERIALIZATION[this.in].explode; + } + else { + this.explode = !!info.explode; + } + this.deprecated = info.deprecated === undefined ? !!this.schema.deprecated : info.deprecated; + parser.exitRef(infoOrRef); + if (options.showExtensions) { + this.extensions = extractExtensions(info, options.showExtensions); + } + } + FieldModel.prototype.toggle = function () { + this.expanded = !this.expanded; + }; + Object(external_tslib_["__decorate"])([ + external_mobx_["observable"] + ], FieldModel.prototype, "expanded", void 0); + Object(external_tslib_["__decorate"])([ + external_mobx_["action"] + ], FieldModel.prototype, "toggle", null); + return FieldModel; +}()); + + +// EXTERNAL MODULE: external "openapi-sampler" +var external_openapi_sampler_ = __webpack_require__(24); + +// CONCATENATED MODULE: ./src/services/models/Example.ts + + +var externalExamplesCache = {}; +var Example_ExampleModel = /** @class */ (function () { + function ExampleModel(parser, infoOrRef, mime, encoding) { + this.mime = mime; + var example = parser.deref(infoOrRef); + this.value = example.value; + this.summary = example.summary; + this.description = example.description; + if (example.externalValue) { + this.externalValueUrl = Object(external_url_["resolve"])(parser.specUrl || '', example.externalValue); + } + parser.exitRef(infoOrRef); + if (isFormUrlEncoded(mime) && this.value && typeof this.value === 'object') { + this.value = urlFormEncodePayload(this.value, encoding); + } + } + ExampleModel.prototype.getExternalValue = function (mimeType) { + if (!this.externalValueUrl) { + return Promise.resolve(undefined); + } + if (externalExamplesCache[this.externalValueUrl]) { + return externalExamplesCache[this.externalValueUrl]; + } + externalExamplesCache[this.externalValueUrl] = fetch(this.externalValueUrl).then(function (res) { + return res.text().then(function (txt) { + if (!res.ok) { + return Promise.reject(new Error(txt)); + } + if (isJsonLike(mimeType)) { + try { + return JSON.parse(txt); + } + catch (e) { + return txt; + } + } + else { + return txt; + } + }); + }); + return externalExamplesCache[this.externalValueUrl]; + }; + return ExampleModel; +}()); + + +// CONCATENATED MODULE: ./src/services/models/MediaType.ts + + + + +var MediaType_MediaTypeModel = /** @class */ (function () { + /** + * @param isRequestType needed to know if skipe RO/RW fields in objects + */ + function MediaTypeModel(parser, name, isRequestType, info, options) { + this.name = name; + this.isRequestType = isRequestType; + this.schema = info.schema && new Schema_SchemaModel(parser, info.schema, '', options); + this.onlyRequiredInSamples = options.onlyRequiredInSamples; + if (info.examples !== undefined) { + this.examples = mapValues(info.examples, function (example) { return new Example_ExampleModel(parser, example, name, info.encoding); }); + } + else if (info.example !== undefined) { + this.examples = { + default: new Example_ExampleModel(parser, { + value: parser.shalowDeref(info.example) + }, name, info.encoding) + }; + } + else if (isJsonLike(name)) { + this.generateExample(parser, info); + } + } + MediaTypeModel.prototype.generateExample = function (parser, info) { + var samplerOptions = { + skipReadOnly: this.isRequestType, + skipNonRequired: this.isRequestType && this.onlyRequiredInSamples, + skipWriteOnly: !this.isRequestType + }; + if (this.schema && this.schema.oneOf) { + this.examples = {}; + for (var _i = 0, _a = this.schema.oneOf; _i < _a.length; _i++) { + var subSchema = _a[_i]; + var sample = external_openapi_sampler_["sample"](subSchema.rawSchema, samplerOptions, parser.spec); + if (this.schema.discriminatorProp && typeof sample === 'object' && sample) { + sample[this.schema.discriminatorProp] = subSchema.title; + } + this.examples[subSchema.title] = new Example_ExampleModel(parser, { + value: sample + }, this.name, info.encoding); + } + } + else if (this.schema) { + this.examples = { + default: new Example_ExampleModel(parser, { + value: external_openapi_sampler_["sample"](info.schema, samplerOptions, parser.spec) + }, this.name, info.encoding) + }; + } + }; + return MediaTypeModel; +}()); + + +// CONCATENATED MODULE: ./src/services/models/MediaContent.ts + + + + +/** + * MediaContent model ready to be sued by React components + * Contains multiple MediaTypes and keeps track of the currently active one + */ +var MediaContent_MediaContentModel = /** @class */ (function () { + /** + * @param isRequestType needed to know if skipe RO/RW fields in objects + */ + function MediaContentModel(parser, info, isRequestType, options) { + this.isRequestType = isRequestType; + this.activeMimeIdx = 0; + if (options.unstable_ignoreMimeParameters) { + info = mergeSimilarMediaTypes(info); + } + this.mediaTypes = Object.keys(info).map(function (name) { + var mime = info[name]; // reset deref cache just in case something is left there + parser.resetVisited(); + return new MediaType_MediaTypeModel(parser, name, isRequestType, mime, options); + }); + } + /** + * Set active media type by index + * @param idx media type index + */ + MediaContentModel.prototype.activate = function (idx) { + this.activeMimeIdx = idx; + }; + Object.defineProperty(MediaContentModel.prototype, "active", { + get: function () { + return this.mediaTypes[this.activeMimeIdx]; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(MediaContentModel.prototype, "hasSample", { + get: function () { + return this.mediaTypes.filter(function (mime) { return !!mime.examples; }).length > 0; + }, + enumerable: false, + configurable: true + }); + Object(external_tslib_["__decorate"])([ + external_mobx_["observable"] + ], MediaContentModel.prototype, "activeMimeIdx", void 0); + Object(external_tslib_["__decorate"])([ + external_mobx_["action"] + ], MediaContentModel.prototype, "activate", null); + Object(external_tslib_["__decorate"])([ + external_mobx_["computed"] + ], MediaContentModel.prototype, "active", null); + return MediaContentModel; +}()); + + +// CONCATENATED MODULE: ./src/services/models/RequestBody.ts + +var RequestBody_RequestBodyModel = /** @class */ (function () { + function RequestBodyModel(parser, infoOrRef, options) { + var info = parser.deref(infoOrRef); + this.description = info.description || ''; + this.required = !!info.required; + parser.exitRef(infoOrRef); + if (info.content !== undefined) { + this.content = new MediaContent_MediaContentModel(parser, info.content, true, options); + } + } + return RequestBodyModel; +}()); + + +// CONCATENATED MODULE: ./src/services/models/Response.ts + + + + + +var Response_ResponseModel = /** @class */ (function () { + function ResponseModel(parser, code, defaultAsError, infoOrRef, options) { + this.headers = []; + this.expanded = options.expandResponses === 'all' || options.expandResponses[code]; + var info = parser.deref(infoOrRef); + parser.exitRef(infoOrRef); + this.code = code; + if (info.content !== undefined) { + this.content = new MediaContent_MediaContentModel(parser, info.content, false, options); + } + if (info['x-summary'] !== undefined) { + this.summary = info['x-summary']; + this.description = info.description || ''; + } + else { + this.summary = info.description || ''; + this.description = ''; + } + this.type = getStatusCodeType(code, defaultAsError); + var headers = info.headers; + if (headers !== undefined) { + this.headers = Object.keys(headers).map(function (name) { + var header = headers[name]; + return new Field_FieldModel(parser, Object(external_tslib_["__assign"])(Object(external_tslib_["__assign"])({}, header), { name: name }), '', options); + }); + } + } + ResponseModel.prototype.toggle = function () { + this.expanded = !this.expanded; + }; + Object(external_tslib_["__decorate"])([ + external_mobx_["observable"] + ], ResponseModel.prototype, "expanded", void 0); + Object(external_tslib_["__decorate"])([ + external_mobx_["action"] + ], ResponseModel.prototype, "toggle", null); + return ResponseModel; +}()); + + +// CONCATENATED MODULE: ./src/services/models/Operation.ts + + + + + + + + +function isPayloadSample(sample) { + return sample.lang === 'payload' && sample.requestBodyContent; +} +var isCodeSamplesWarningPrinted = false; +/** + * Operation model ready to be used by components + */ +var Operation_OperationModel = /** @class */ (function () { + function OperationModel(parser, operationSpec, parent, options, isCallback) { + if (isCallback === void 0) { isCallback = false; } + this.parser = parser; + this.operationSpec = operationSpec; + this.options = options; + this.type = 'operation'; + this.items = []; + this.ready = true; + this.active = false; + this.expanded = false; //#endregion + this.pointer = operationSpec.pointer; + this.description = operationSpec.description; + this.parent = parent; + this.externalDocs = operationSpec.externalDocs; + this.deprecated = !!operationSpec.deprecated; + this.httpVerb = operationSpec.httpVerb; + this.deprecated = !!operationSpec.deprecated; + this.operationId = operationSpec.operationId; + this.path = operationSpec.pathName; + this.isCallback = isCallback; + this.isWebhook = !!operationSpec.isWebhook; + this.name = getOperationSummary(operationSpec); + if (this.isCallback) { + // NOTE: Callbacks by default should not inherit the specification's global `security` definition. + // Can be defined individually per-callback in the specification. Defaults to none. + this.security = (operationSpec.security || []).map(function (security) { return new SecurityRequirement_SecurityRequirementModel(security, parser); }); // TODO: update getting pathInfo for overriding servers on path level + this.servers = normalizeServers('', operationSpec.servers || operationSpec.pathServers || []); + } + else { + this.id = operationSpec.operationId !== undefined ? 'operation/' + operationSpec.operationId : parent !== undefined ? parent.id + this.pointer : this.pointer; + this.security = (operationSpec.security || parser.spec.security || []).map(function (security) { return new SecurityRequirement_SecurityRequirementModel(security, parser); }); + this.servers = normalizeServers(parser.specUrl, operationSpec.servers || operationSpec.pathServers || parser.spec.servers || []); + } + if (options.showExtensions) { + this.extensions = extractExtensions(operationSpec, options.showExtensions); + } + } + /** + * set operation as active (used by side menu) + */ + OperationModel.prototype.activate = function () { + this.active = true; + }; + /** + * set operation as inactive (used by side menu) + */ + OperationModel.prototype.deactivate = function () { + this.active = false; + }; + /** + * Toggle expansion in middle panel (for callbacks, which are operations) + */ + OperationModel.prototype.toggle = function () { + this.expanded = !this.expanded; + }; + OperationModel.prototype.expand = function () { + if (this.parent) { + this.parent.expand(); + } + }; + OperationModel.prototype.collapse = function () { + /* do nothing */ + }; + Object.defineProperty(OperationModel.prototype, "requestBody", { + get: function () { + return this.operationSpec.requestBody && new RequestBody_RequestBodyModel(this.parser, this.operationSpec.requestBody, this.options); + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(OperationModel.prototype, "codeSamples", { + get: function () { + var samples = this.operationSpec['x-codeSamples'] || this.operationSpec['x-code-samples'] || []; + if (this.operationSpec['x-code-samples'] && !isCodeSamplesWarningPrinted) { + isCodeSamplesWarningPrinted = true; + console.warn('"x-code-samples" is deprecated. Use "x-codeSamples" instead'); + } + var requestBodyContent = this.requestBody && this.requestBody.content; + if (requestBodyContent && requestBodyContent.hasSample) { + var insertInx = Math.min(samples.length, this.options.payloadSampleIdx); + samples = Object(external_tslib_["__spreadArrays"])(samples.slice(0, insertInx), [{ + lang: 'payload', + label: 'Payload', + source: '', + requestBodyContent: requestBodyContent + }], samples.slice(insertInx)); + } + return samples; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(OperationModel.prototype, "parameters", { + get: function () { + var _this = this; + var _parameters = mergeParams(this.parser, this.operationSpec.pathParameters, this.operationSpec.parameters // TODO: fix pointer + ).map(function (paramOrRef) { return new Field_FieldModel(_this.parser, paramOrRef, _this.pointer, _this.options); }); + if (this.options.sortPropsAlphabetically) { + return sortByField(_parameters, 'name'); + } + if (this.options.requiredPropsFirst) { + return sortByRequired(_parameters); + } + return _parameters; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(OperationModel.prototype, "responses", { + get: function () { + var _this = this; + var hasSuccessResponses = false; + return Object.keys(this.operationSpec.responses || []).filter(function (code) { + if (code === 'default') { + return true; + } + if (getStatusCodeType(code) === 'success') { + hasSuccessResponses = true; + } + return isStatusCode(code); + }) // filter out other props (e.g. x-props) + .map(function (code) { + return new Response_ResponseModel(_this.parser, code, hasSuccessResponses, _this.operationSpec.responses[code], _this.options); + }); + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(OperationModel.prototype, "callbacks", { + get: function () { + var _this = this; + return Object.keys(this.operationSpec.callbacks || []).map(function (callbackEventName) { + return new Callback_CallbackModel(_this.parser, callbackEventName, _this.operationSpec.callbacks[callbackEventName], _this.pointer, _this.options); + }); + }, + enumerable: false, + configurable: true + }); + Object(external_tslib_["__decorate"])([ + external_mobx_["observable"] + ], OperationModel.prototype, "ready", void 0); + Object(external_tslib_["__decorate"])([ + external_mobx_["observable"] + ], OperationModel.prototype, "active", void 0); + Object(external_tslib_["__decorate"])([ + external_mobx_["observable"] + ], OperationModel.prototype, "expanded", void 0); + Object(external_tslib_["__decorate"])([ + external_mobx_["action"] + ], OperationModel.prototype, "activate", null); + Object(external_tslib_["__decorate"])([ + external_mobx_["action"] + ], OperationModel.prototype, "deactivate", null); + Object(external_tslib_["__decorate"])([ + external_mobx_["action"] + ], OperationModel.prototype, "toggle", null); + Object(external_tslib_["__decorate"])([ + memoize + ], OperationModel.prototype, "requestBody", null); + Object(external_tslib_["__decorate"])([ + memoize + ], OperationModel.prototype, "codeSamples", null); + Object(external_tslib_["__decorate"])([ + memoize + ], OperationModel.prototype, "parameters", null); + Object(external_tslib_["__decorate"])([ + memoize + ], OperationModel.prototype, "responses", null); + Object(external_tslib_["__decorate"])([ + memoize + ], OperationModel.prototype, "callbacks", null); + return OperationModel; +}()); + + +// CONCATENATED MODULE: ./src/services/models/Webhook.ts + + + +var Webhook_WebhookModel = /** @class */ (function () { + function WebhookModel(parser, options, infoOrRef) { + this.operations = []; + var webhooks = parser.deref(infoOrRef || {}); + parser.exitRef(infoOrRef); + for (var _i = 0, _a = Object.keys(webhooks); _i < _a.length; _i++) { + var webhookName = _a[_i]; + var webhook = webhooks[webhookName]; + var operations = Object.keys(webhook).filter(isOperationName); + for (var _b = 0, operations_1 = operations; _b < operations_1.length; _b++) { + var operationName = operations_1[_b]; + var operationInfo = webhook[operationName]; + var operation = new Operation_OperationModel(parser, Object(external_tslib_["__assign"])(Object(external_tslib_["__assign"])({}, operationInfo), { httpVerb: operationName }), undefined, options, false); + this.operations.push(operation); + } + } + } + return WebhookModel; +}()); + + +// CONCATENATED MODULE: ./src/services/models/SecuritySchemes.ts + +var SecuritySchemes_SecuritySchemeModel = /** @class */ (function () { + function SecuritySchemeModel(parser, id, scheme) { + var info = parser.deref(scheme); + this.id = id; + this.sectionId = SECURITY_SCHEMES_SECTION_PREFIX + id; + this.type = info.type; + this.description = info.description || ''; + if (info.type === 'apiKey') { + this.apiKey = { + name: info.name, + in: info.in + }; + } + if (info.type === 'http') { + this.http = { + scheme: info.scheme, + bearerFormat: info.bearerFormat + }; + } + if (info.type === 'openIdConnect') { + this.openId = { + connectUrl: info.openIdConnectUrl + }; + } + if (info.type === 'oauth2' && info.flows) { + this.flows = info.flows; + } + } + return SecuritySchemeModel; +}()); + +var SecuritySchemesModel = /** @class */ (function () { + function SecuritySchemesModel(parser) { + var schemes = parser.spec.components && parser.spec.components.securitySchemes || {}; + this.schemes = Object.keys(schemes).map(function (name) { return new SecuritySchemes_SecuritySchemeModel(parser, name, schemes[name]); }); + } + return SecuritySchemesModel; +}()); + + +// CONCATENATED MODULE: ./src/services/OpenAPIParser.ts + + + + + + + +/** + * Helper class to keep track of visited references to avoid + * endless recursion because of circular refs + */ +var RefCounter = /** @class */ (function () { + function RefCounter() { + this._counter = {}; + } + RefCounter.prototype.reset = function () { + this._counter = {}; + }; + RefCounter.prototype.visit = function (ref) { + this._counter[ref] = this._counter[ref] ? this._counter[ref] + 1 : 1; + }; + RefCounter.prototype.exit = function (ref) { + this._counter[ref] = this._counter[ref] && this._counter[ref] - 1; + }; + RefCounter.prototype.visited = function (ref) { + return !!this._counter[ref]; + }; + return RefCounter; +}()); +/** + * Loads and keeps spec. Provides raw spec operations + */ +var OpenAPIParser_OpenAPIParser = /** @class */ (function () { + function OpenAPIParser(spec, specUrl, options) { + var _this = this; + if (options === void 0) { options = new RedocNormalizedOptions_RedocNormalizedOptions({}); } + this.options = options; + this._refCounter = new RefCounter(); + /** + * get spec part by JsonPointer ($ref) + */ + this.byRef = function (ref) { + var res; + if (!_this.spec) { + return; + } + if (ref.charAt(0) !== '#') { + ref = '#' + ref; + } + ref = decodeURIComponent(ref); + try { + res = JsonPointer_JsonPointer.get(_this.spec, ref); + } + catch (e) { // do nothing + } + return res || {}; + }; + this.validate(spec); + this.preprocess(spec); + this.spec = spec; + this.mergeRefs = new Set(); + var href = ''; + if (typeof specUrl === 'string') { + this.specUrl = Object(external_url_["resolve"])(href, specUrl); + } + } + OpenAPIParser.prototype.validate = function (spec) { + if (spec.openapi === undefined) { + throw new Error('Document must be valid OpenAPI 3.0.0 definition'); + } + }; + OpenAPIParser.prototype.preprocess = function (spec) { + if (!this.options.noAutoAuth && spec.info && spec.components && spec.components.securitySchemes) { + // Automatically inject Authentication section with SecurityDefinitions component + var description = spec.info.description || ''; + if (!MarkdownRenderer_MarkdownRenderer.containsComponent(description, SECURITY_DEFINITIONS_COMPONENT_NAME) && !MarkdownRenderer_MarkdownRenderer.containsComponent(description, SECURITY_DEFINITIONS_JSX_NAME)) { + var comment = buildComponentComment(SECURITY_DEFINITIONS_COMPONENT_NAME); + spec.info.description = appendToMdHeading(description, 'Authentication', comment); + } + } + }; + /** + * checks if the object is OpenAPI reference (contains $ref property) + */ + OpenAPIParser.prototype.isRef = function (obj) { + if (!obj) { + return false; + } + return obj.$ref !== undefined && obj.$ref !== null; + }; + /** + * resets visited endpoints. should be run after + */ + OpenAPIParser.prototype.resetVisited = function () { + if (false) { var k; } + this._refCounter = new RefCounter(); + }; + OpenAPIParser.prototype.exitRef = function (ref) { + if (!this.isRef(ref)) { + return; + } + this._refCounter.exit(ref.$ref); + }; + /** + * Resolve given reference object or return as is if it is not a reference + * @param obj object to dereference + * @param forceCircular whether to dereference even if it is circular ref + */ + OpenAPIParser.prototype.deref = function (obj, forceCircular) { + if (forceCircular === void 0) { forceCircular = false; } + if (this.isRef(obj)) { + var resolved = this.byRef(obj.$ref); + var visited = this._refCounter.visited(obj.$ref); + this._refCounter.visit(obj.$ref); + if (visited && !forceCircular) { + // circular reference detected + // tslint:disable-next-line + return Object.assign({}, resolved, { + 'x-circular-ref': true + }); + } // deref again in case one more $ref is here + if (this.isRef(resolved)) { + var res = this.deref(resolved); + this.exitRef(resolved); + return res; + } + return resolved; + } + return obj; + }; + OpenAPIParser.prototype.shalowDeref = function (obj) { + if (this.isRef(obj)) { + return this.byRef(obj.$ref); + } + return obj; + }; + /** + * Merge allOf constraints. + * @param schema schema with allOF + * @param $ref pointer of the schema + * @param forceCircular whether to dereference children even if it is a circular ref + */ + OpenAPIParser.prototype.mergeAllOf = function (schema, $ref, forceCircular, used$Refs) { + var _this = this; + if (forceCircular === void 0) { forceCircular = false; } + if (used$Refs === void 0) { used$Refs = new Set(); } + if ($ref) { + used$Refs.add($ref); + } + schema = this.hoistOneOfs(schema); + if (schema.allOf === undefined) { + return schema; + } + var receiver = Object(external_tslib_["__assign"])(Object(external_tslib_["__assign"])({}, schema), { allOf: undefined, parentRefs: [], title: schema.title || (isNamedDefinition($ref) ? JsonPointer_JsonPointer.baseName($ref) : undefined) }); // avoid mutating inner objects + if (receiver.properties !== undefined && typeof receiver.properties === 'object') { + receiver.properties = Object(external_tslib_["__assign"])({}, receiver.properties); + } + if (receiver.items !== undefined && typeof receiver.items === 'object') { + receiver.items = Object(external_tslib_["__assign"])({}, receiver.items); + } + var allOfSchemas = schema.allOf.map(function (subSchema) { + var _a; + if (subSchema && subSchema.$ref && used$Refs.has(subSchema.$ref)) { + return undefined; + } + var resolved = _this.deref(subSchema, forceCircular); + var subRef = subSchema.$ref || undefined; + var subMerged = _this.mergeAllOf(resolved, subRef, forceCircular, used$Refs); + (_a = receiver.parentRefs).push.apply(_a, (subMerged.parentRefs || [])); + return { + $ref: subRef, + schema: subMerged + }; + }).filter(function (child) { return child !== undefined; }); + for (var _i = 0, allOfSchemas_1 = allOfSchemas; _i < allOfSchemas_1.length; _i++) { + var _a = allOfSchemas_1[_i], subSchemaRef = _a.$ref, subSchema = _a.schema; + if (receiver.type !== subSchema.type && receiver.type !== undefined && subSchema.type !== undefined) { + console.warn("Incompatible types in allOf at \"" + $ref + "\": \"" + receiver.type + "\" and \"" + subSchema.type + "\""); + } + if (subSchema.type !== undefined) { + receiver.type = subSchema.type; + } + if (subSchema.properties !== undefined) { + receiver.properties = receiver.properties || {}; + for (var prop in subSchema.properties) { + if (!receiver.properties[prop]) { + receiver.properties[prop] = subSchema.properties[prop]; + } + else { + // merge inner properties + receiver.properties[prop] = this.mergeAllOf({ + allOf: [receiver.properties[prop], subSchema.properties[prop]] + }, $ref + '/properties/' + prop); + } + } + } + if (subSchema.items !== undefined) { + receiver.items = receiver.items || {}; // merge inner properties + receiver.items = this.mergeAllOf({ + allOf: [receiver.items, subSchema.items] + }, $ref + '/items'); + } + if (subSchema.required !== undefined) { + receiver.required = (receiver.required || []).concat(subSchema.required); + } // merge rest of constraints + // TODO: do more intelligent merge + receiver = Object(external_tslib_["__assign"])(Object(external_tslib_["__assign"])({}, subSchema), receiver); + if (subSchemaRef) { + receiver.parentRefs.push(subSchemaRef); + if (receiver.title === undefined && isNamedDefinition(subSchemaRef)) { // this is not so correct behaviour. commented out for now + // ref: https://github.com/Redocly/redoc/issues/601 + // receiver.title = JsonPointer.baseName(subSchemaRef); + } + } + } + return receiver; + }; + /** + * Find all derived definitions among #/components/schemas from any of $refs + * returns map of definition pointer to definition name + * @param $refs array of references to find derived from + */ + OpenAPIParser.prototype.findDerived = function ($refs) { + var res = {}; + var schemas = this.spec.components && this.spec.components.schemas || {}; + for (var defName in schemas) { + var def = this.deref(schemas[defName]); + if (def.allOf !== undefined && def.allOf.find(function (obj) { return obj.$ref !== undefined && $refs.indexOf(obj.$ref) > -1; })) { + res['#/components/schemas/' + defName] = [def['x-discriminator-value'] || defName]; + } + } + return res; + }; + OpenAPIParser.prototype.exitParents = function (shema) { + for (var _i = 0, _a = shema.parentRefs || []; _i < _a.length; _i++) { + var parent$ref = _a[_i]; + this.exitRef({ + $ref: parent$ref + }); + } + }; + OpenAPIParser.prototype.hoistOneOfs = function (schema) { + var _this = this; + if (schema.allOf === undefined) { + return schema; + } + var allOf = schema.allOf; + var _loop_1 = function (i) { + var sub = allOf[i]; + if (Array.isArray(sub.oneOf)) { + var beforeAllOf_1 = allOf.slice(0, i); + var afterAllOf_1 = allOf.slice(i + 1); + return { value: { + oneOf: sub.oneOf.map(function (part) { + var merged = _this.mergeAllOf({ + allOf: Object(external_tslib_["__spreadArrays"])(beforeAllOf_1, [part], afterAllOf_1) + }); // each oneOf should be independent so exiting all the parent refs + // otherwise it will cause false-positive recursive detection + _this.exitParents(merged); + return merged; + }) + } }; + } + }; + for (var i = 0; i < allOf.length; i++) { + var state_1 = _loop_1(i); + if (typeof state_1 === "object") + return state_1.value; + } + return schema; + }; + return OpenAPIParser; +}()); + + +// CONCATENATED MODULE: ./src/services/SpecStore.ts + + + + + +/** + * Store that contains all the specification related information in the form of tree + */ +var SpecStore_SpecStore = /** @class */ (function () { + function SpecStore(spec, specUrl, options) { + this.options = options; + this.parser = new OpenAPIParser_OpenAPIParser(spec, specUrl, options); + this.info = new ApiInfo_ApiInfoModel(this.parser); + this.externalDocs = this.parser.spec.externalDocs; + this.contentItems = MenuBuilder_MenuBuilder.buildStructure(this.parser, this.options); + this.securitySchemes = new SecuritySchemesModel(this.parser); + this.webhooks = new Webhook_WebhookModel(this.parser, options, this.parser.spec['x-webhooks']); + } + return SpecStore; +}()); + + +// CONCATENATED MODULE: ./src/services/models/ExtraContent.ts + + +var ExtraContent_ExtraContent = /** @class */ (function () { + function ExtraContent(_a) { + var id = _a.id, name = _a.name, depth = _a.depth; + this.type = 'extra'; + this.items = []; + this.active = false; + this.expanded = false; + this.id = id; + this.name = name; + this.depth = depth; + } + /** + * set operation as active (used by side menu) + */ + ExtraContent.prototype.activate = function () { + this.active = true; + }; + /** + * set operation as inactive (used by side menu) + */ + ExtraContent.prototype.deactivate = function () { + this.active = false; + }; + ExtraContent.prototype.expand = function () { + if (this.parent) { + this.parent.expand(); + } + }; + ExtraContent.prototype.collapse = function () { + /* do nothing */ + }; + Object(external_tslib_["__decorate"])([ + external_mobx_["observable"] + ], ExtraContent.prototype, "active", void 0); + Object(external_tslib_["__decorate"])([ + external_mobx_["observable"] + ], ExtraContent.prototype, "expanded", void 0); + Object(external_tslib_["__decorate"])([ + external_mobx_["action"] + ], ExtraContent.prototype, "activate", null); + Object(external_tslib_["__decorate"])([ + external_mobx_["action"] + ], ExtraContent.prototype, "deactivate", null); + return ExtraContent; +}()); + + +// CONCATENATED MODULE: ./src/services/models/Group.model.ts + + + + +/** + * Operations Group model ready to be used by components + */ +var Group_model_GroupModel = /** @class */ (function () { + function GroupModel(type, tagOrGroup, parent) { + this.items = []; + this.active = false; + this.expanded = false; + // markdown headings already have ids calculated as they are needed for heading anchors + this.id = tagOrGroup.id || type + '/' + safeSlugify(tagOrGroup.name); + this.type = type; + this.name = tagOrGroup['x-displayName'] || tagOrGroup.name; + this.level = tagOrGroup.level || 1; // remove sections from markdown, same as in ApiInfo + this.description = tagOrGroup.description || ''; + var items = tagOrGroup.items; + if (items && items.length) { + this.description = MarkdownRenderer_MarkdownRenderer.getTextBeforeHading(this.description, items[0].name); + } + this.parent = parent; + this.externalDocs = tagOrGroup.externalDocs; // groups are active (expanded) by default + if (this.type === 'group') { + this.expanded = true; + } + } + GroupModel.prototype.activate = function () { + this.active = true; + }; + GroupModel.prototype.expand = function () { + if (this.parent) { + this.parent.expand(); + } + this.expanded = true; + }; + GroupModel.prototype.collapse = function () { + // disallow collapsing groups + if (this.type === 'group') { + return; + } + this.expanded = false; + }; + GroupModel.prototype.deactivate = function () { + this.active = false; + }; + Object(external_tslib_["__decorate"])([ + external_mobx_["observable"] + ], GroupModel.prototype, "active", void 0); + Object(external_tslib_["__decorate"])([ + external_mobx_["observable"] + ], GroupModel.prototype, "expanded", void 0); + Object(external_tslib_["__decorate"])([ + external_mobx_["action"] + ], GroupModel.prototype, "activate", null); + Object(external_tslib_["__decorate"])([ + external_mobx_["action"] + ], GroupModel.prototype, "expand", null); + Object(external_tslib_["__decorate"])([ + external_mobx_["action"] + ], GroupModel.prototype, "collapse", null); + Object(external_tslib_["__decorate"])([ + external_mobx_["action"] + ], GroupModel.prototype, "deactivate", null); + return GroupModel; +}()); + + +// CONCATENATED MODULE: ./src/services/models/index.ts + + + + + + + + + + + + + + + +// CONCATENATED MODULE: ./src/services/MenuBuilder.ts + + + + +var GROUP_DEPTH = 0; +var MenuBuilder_MenuBuilder = /** @class */ (function () { + function MenuBuilder() { + } + /** + * Builds page content structure based on tags + */ + MenuBuilder.buildStructure = function (parser, options) { + var spec = parser.spec; + var items = []; + var tagsMap = MenuBuilder.getTagsWithOperations(spec); + items.push.apply(items, MenuBuilder.addMarkdownItems(spec.info.description || '', undefined, 1, options)); + if (spec['x-tagGroups'] && spec['x-tagGroups'].length > 0) { + items.push.apply(items, MenuBuilder.getTagGroupsItems(parser, undefined, spec['x-tagGroups'], tagsMap, options)); + } + else { + items.push.apply(items, MenuBuilder.getTagsItems(parser, tagsMap, undefined, undefined, options)); + } + return items; + }; + /** + * extracts items from markdown description + * @param description - markdown source + */ + MenuBuilder.addMarkdownItems = function (description, parent, initialDepth, options) { + var renderer = new MarkdownRenderer_MarkdownRenderer(options); + var headings = renderer.extractHeadings(description || ''); + if (headings.length && parent && parent.description) { + parent.description = MarkdownRenderer_MarkdownRenderer.getTextBeforeHading(parent.description, headings[0].name); + } + var mapHeadingsDeep = function (_parent, items, depth) { + if (depth === void 0) { depth = 1; } + return items.map(function (heading) { + var group = new Group_model_GroupModel('section', heading, _parent); + group.depth = depth; + if (heading.items) { + group.items = mapHeadingsDeep(group, heading.items, depth + 1); + } + if (MarkdownRenderer_MarkdownRenderer.containsComponent(group.description || '', SECURITY_DEFINITIONS_COMPONENT_NAME)) { + setSecuritySchemePrefix(group.id + '/'); + } + return group; + }); + }; + return mapHeadingsDeep(parent, headings, initialDepth); + }; + /** + * Returns array of OperationsGroup items for the tag groups (x-tagGroups vendor extension) + * @param tags value of `x-tagGroups` vendor extension + */ + MenuBuilder.getTagGroupsItems = function (parser, parent, groups, tags, options) { + var res = []; + for (var _i = 0, groups_1 = groups; _i < groups_1.length; _i++) { + var group = groups_1[_i]; + var item = new Group_model_GroupModel('group', group, parent); + item.depth = GROUP_DEPTH; + item.items = MenuBuilder.getTagsItems(parser, tags, item, group, options); + res.push(item); + } // TODO checkAllTagsUsedInGroups + return res; + }; + /** + * Returns array of OperationsGroup items for the tags of the group or for all tags + * @param tagsMap tags info returned from `getTagsWithOperations` + * @param parent parent item + * @param group group which this tag belongs to. if not provided gets all tags + */ + MenuBuilder.getTagsItems = function (parser, tagsMap, parent, group, options) { + var tagNames; + if (group === undefined) { + tagNames = Object.keys(tagsMap); // all tags + } + else { + tagNames = group.tags; + } + var tags = tagNames.map(function (tagName) { + if (!tagsMap[tagName]) { + console.warn("Non-existing tag \"" + tagName + "\" is added to the group \"" + group.name + "\""); + return null; + } + tagsMap[tagName].used = true; + return tagsMap[tagName]; + }); + var res = []; + for (var _i = 0, tags_1 = tags; _i < tags_1.length; _i++) { + var tag = tags_1[_i]; + if (!tag) { + continue; + } + var item = new Group_model_GroupModel('tag', tag, parent); + item.depth = GROUP_DEPTH + 1; // don't put empty tag into content, instead put its operations + if (tag.name === '') { + var items = Object(external_tslib_["__spreadArrays"])(MenuBuilder.addMarkdownItems(tag.description || '', item, item.depth + 1, options), this.getOperationsItems(parser, undefined, tag, item.depth + 1, options)); + res.push.apply(res, items); + continue; + } + item.items = Object(external_tslib_["__spreadArrays"])(MenuBuilder.addMarkdownItems(tag.description || '', item, item.depth + 1, options), this.getOperationsItems(parser, item, tag, item.depth + 1, options)); + res.push(item); + } + return res; + }; + /** + * Returns array of Operation items for the tag + * @param parent parent OperationsGroup + * @param tag tag info returned from `getTagsWithOperations` + * @param depth items depth + */ + MenuBuilder.getOperationsItems = function (parser, parent, tag, depth, options) { + if (tag.operations.length === 0) { + return []; + } + var res = []; + for (var _i = 0, _a = tag.operations; _i < _a.length; _i++) { + var operationInfo = _a[_i]; + var operation = new Operation_OperationModel(parser, operationInfo, parent, options); + operation.depth = depth; + res.push(operation); + } + return res; + }; + /** + * collects tags and maps each tag to list of operations belonging to this tag + */ + MenuBuilder.getTagsWithOperations = function (spec) { + var tags = {}; + for (var _i = 0, _a = spec.tags || []; _i < _a.length; _i++) { + var tag = _a[_i]; + tags[tag.name] = Object(external_tslib_["__assign"])(Object(external_tslib_["__assign"])({}, tag), { operations: [] }); + } + getTags(spec.paths); + if (spec['x-webhooks']) { + getTags(spec['x-webhooks'], true); + } + function getTags(paths, isWebhook) { + for (var _i = 0, _a = Object.keys(paths); _i < _a.length; _i++) { + var pathName = _a[_i]; + var path = paths[pathName]; + var operations = Object.keys(path).filter(isOperationName); + for (var _b = 0, operations_1 = operations; _b < operations_1.length; _b++) { + var operationName = operations_1[_b]; + var operationInfo = path[operationName]; + var operationTags = operationInfo.tags; + if (!operationTags || !operationTags.length) { + // empty tag + operationTags = ['']; + } + for (var _c = 0, operationTags_1 = operationTags; _c < operationTags_1.length; _c++) { + var tagName = operationTags_1[_c]; + var tag = tags[tagName]; + if (tag === undefined) { + tag = { + name: tagName, + operations: [] + }; + tags[tagName] = tag; + } + if (tag['x-traitTag']) { + continue; + } + tag.operations.push(Object(external_tslib_["__assign"])(Object(external_tslib_["__assign"])({}, operationInfo), { pathName: pathName, pointer: JsonPointer_JsonPointer.compile(['paths', pathName, operationName]), httpVerb: operationName, pathParameters: path.parameters || [], pathServers: path.servers, isWebhook: !!isWebhook })); + } + } + } + } + return tags; + }; + return MenuBuilder; +}()); + + +// CONCATENATED MODULE: ./src/services/MenuStore.ts + + + + + + + +var SECTION_ATTR = 'data-section-id'; +/** + * Stores all side-menu related information + */ +var MenuStore_MenuStore = /** @class */ (function () { + /** + * + * @param spec [SpecStore](#SpecStore) which contains page content structure + * @param scroll scroll service instance used by this menu + */ + function MenuStore(spec, scroll, history, markdownIndex) { + var _this = this; + this.scroll = scroll; + this.history = history; + /** + * active item absolute index (when flattened). -1 means nothing is selected + */ + this.activeItemIdx = -1; + /** + * whether sidebar with menu is opened or not + */ + this.sideBarOpened = false; + /** + * update active items on scroll + * @param isScrolledDown whether last scroll was downside + */ + this.updateOnScroll = function (isScrolledDown) { + var step = isScrolledDown ? 1 : -1; + var itemIdx = _this.activeItemIdx; + while (true) { + if (itemIdx === -1 && !isScrolledDown) { + break; + } + if (itemIdx >= _this.flatItems.length - 1 && isScrolledDown) { + break; + } + if (isScrolledDown) { + var el = _this.getElementAtOrFirstChild(itemIdx + 1); + if (_this.scroll.isElementBellow(el)) { + break; + } + } + else { + var el = _this.getElementAt(itemIdx); + if (_this.scroll.isElementAbove(el)) { + break; + } + } + itemIdx += step; + } + _this.activate(_this.flatItems[itemIdx], true, true); + }; + /** + * update active items on hash change + * @param id current hash + */ + this.updateOnHistory = function (id) { + if (id === void 0) { id = _this.history.currentId; } + if (!id) { + return; + } + var item; + item = _this.flatItems.find(function (i) { return i.id === id; }); + if (item) { + _this.activateAndScroll(item, false); + } + else { + if (id.startsWith(SECURITY_SCHEMES_SECTION_PREFIX)) { + item = _this.flatItems.find(function (i) { return SECURITY_SCHEMES_SECTION_PREFIX.startsWith(i.id); }); + _this.activate(item); + } + _this.scroll.scrollIntoViewBySelector("[" + SECTION_ATTR + "=\"" + id + "\"]"); + } + }; + this.getItemById = function (id) { + return _this.flatItems.find(function (item) { return item.id === id; }); + }; + var extraHeadings = (markdownIndex || {}).headings; + var extraItems = extraHeadings ? extraHeadings.map(function (_a) { + var id = _a.id, text = _a.text, depth = _a.depth; + return new ExtraContent_ExtraContent({ + id: id, + name: text, + depth: depth + }); + }) : []; + this.items = Object(external_tslib_["__spreadArrays"])(extraItems, spec.contentItems); + this.flatItems = flattenByProp(this.items || [], 'items'); + this.flatItems.forEach(function (item, idx) { return item.absoluteIdx = idx; }); + this.subscribe(); + } + /** + * Statically try update scroll position + * Used before hydrating from server-side rendered html to scroll page faster + */ + MenuStore.updateOnHistory = function (id, scroll) { + if (id === void 0) { id = HistoryService_history.currentId; } + if (!id) { + return; + } + scroll.scrollIntoViewBySelector("[" + SECTION_ATTR + "=\"" + id + "\"]"); + }; + MenuStore.prototype.subscribe = function () { + this._unsubscribe = this.scroll.subscribe(this.updateOnScroll); + this._hashUnsubscribe = this.history.subscribe(this.updateOnHistory); + }; + MenuStore.prototype.toggleSidebar = function () { + this.sideBarOpened = this.sideBarOpened ? false : true; + }; + MenuStore.prototype.closeSidebar = function () { + this.sideBarOpened = false; + }; + /** + * get section/operation DOM Node related to the item or null if it doesn't exist + * @param idx item absolute index + */ + MenuStore.prototype.getElementAt = function (idx) { + var item = this.flatItems[idx]; + return item && querySelector("[" + SECTION_ATTR + "=\"" + item.id + "\"]") || null; + }; + /** + * get section/operation DOM Node related to the item or if it is group item, returns first item of the group + * @param idx item absolute index + */ + MenuStore.prototype.getElementAtOrFirstChild = function (idx) { + var item = this.flatItems[idx]; + if (item && item.type === 'group') { + item = item.items[0]; + } + return item && querySelector("[" + SECTION_ATTR + "=\"" + item.id + "\"]") || null; + }; + Object.defineProperty(MenuStore.prototype, "activeItem", { + /** + * current active item + */ + get: function () { + return this.flatItems[this.activeItemIdx] || undefined; + }, + enumerable: false, + configurable: true + }); + /** + * activate menu item + * @param item item to activate + * @param updateLocation [true] whether to update location + * @param rewriteHistory [false] whether to rewrite browser history (do not create new entry) + */ + MenuStore.prototype.activate = function (item, updateLocation, rewriteHistory) { + if (updateLocation === void 0) { updateLocation = true; } + if (rewriteHistory === void 0) { rewriteHistory = false; } + if ((this.activeItem && this.activeItem.id) === (item && item.id)) { + return; + } + if (item && item.type === 'group') { + return; + } + this.deactivate(this.activeItem); + if (!item) { + this.history.replace('', rewriteHistory); + return; + } // do not allow activating group items + // TODO: control over options + if (item.depth <= GROUP_DEPTH) { + return; + } + this.activeItemIdx = item.absoluteIdx; + if (updateLocation) { + this.history.replace(item.id, rewriteHistory); + } + item.activate(); + item.expand(); + }; + /** + * makes item and all the parents not active + * @param item item to deactivate + */ + MenuStore.prototype.deactivate = function (item) { + if (item === undefined) { + return; + } + item.deactivate(); + while (item !== undefined) { + item.collapse(); + item = item.parent; + } + }; + /** + * activate menu item and scroll to it + * @see MenuStore.activate + */ + MenuStore.prototype.activateAndScroll = function (item, updateLocation, rewriteHistory) { + // item here can be a copy from search results so find corresponding item from menu + var menuItem = item && this.getItemById(item.id) || item; + this.activate(menuItem, updateLocation, rewriteHistory); + this.scrollToActive(); + if (!menuItem || !menuItem.items.length) { + this.closeSidebar(); + } + }; + /** + * scrolls to active section + */ + MenuStore.prototype.scrollToActive = function () { + this.scroll.scrollIntoView(this.getElementAt(this.activeItemIdx)); + }; + MenuStore.prototype.dispose = function () { + this._unsubscribe(); + this._hashUnsubscribe(); + }; + Object(external_tslib_["__decorate"])([ + external_mobx_["observable"] + ], MenuStore.prototype, "activeItemIdx", void 0); + Object(external_tslib_["__decorate"])([ + external_mobx_["observable"] + ], MenuStore.prototype, "sideBarOpened", void 0); + Object(external_tslib_["__decorate"])([ + external_mobx_["action"] + ], MenuStore.prototype, "toggleSidebar", null); + Object(external_tslib_["__decorate"])([ + external_mobx_["action"] + ], MenuStore.prototype, "closeSidebar", null); + Object(external_tslib_["__decorate"])([ + external_mobx_["action"] + ], MenuStore.prototype, "activate", null); + Object(external_tslib_["__decorate"])([ + external_mobx_["action"].bound + ], MenuStore.prototype, "activateAndScroll", null); + return MenuStore; +}()); + + +// CONCATENATED MODULE: ./src/services/ScrollService.ts + + + + +var ScrollService_EVENT = 'scroll'; +var ScrollService_ScrollService = /** @class */ (function () { + function ScrollService(options) { + this.options = options; + this._prevOffsetY = 0; + this._scrollParent = IS_BROWSER ? window : undefined; + this._emiter = new external_eventemitter3_(); + this.bind(); + } + ScrollService.prototype.bind = function () { + this._prevOffsetY = this.scrollY(); + if (this._scrollParent) { + this._scrollParent.addEventListener('scroll', this.handleScroll); + } + }; + ScrollService.prototype.dispose = function () { + if (this._scrollParent) { + this._scrollParent.removeEventListener('scroll', this.handleScroll); + } + this._emiter.removeAllListeners(ScrollService_EVENT); + }; + ScrollService.prototype.scrollY = function () { + if (typeof HTMLElement !== 'undefined' && this._scrollParent instanceof HTMLElement) { + return this._scrollParent.scrollTop; + } + else if (this._scrollParent !== undefined) { + return this._scrollParent.pageYOffset; + } + else { + return 0; + } + }; + ScrollService.prototype.isElementBellow = function (el) { + if (el === null) { + return; + } + return el.getBoundingClientRect().top > this.options.scrollYOffset(); + }; + ScrollService.prototype.isElementAbove = function (el) { + if (el === null) { + return; + } + var top = el.getBoundingClientRect().top; + return (top > 0 ? Math.floor(top) : Math.ceil(top)) <= this.options.scrollYOffset(); + }; + ScrollService.prototype.subscribe = function (cb) { + var emmiter = this._emiter.addListener(ScrollService_EVENT, cb); + return function () { return emmiter.removeListener(ScrollService_EVENT, cb); }; + }; + ScrollService.prototype.scrollIntoView = function (element) { + if (element === null) { + return; + } + element.scrollIntoView(); + if (this._scrollParent && this._scrollParent.scrollBy) { + // adding 1 account rounding errors in case scrollYOffset is float-number + this._scrollParent.scrollBy(0, -this.options.scrollYOffset() + 1); + } + }; + ScrollService.prototype.scrollIntoViewBySelector = function (selector) { + var element = querySelector(selector); + this.scrollIntoView(element); + }; + ScrollService.prototype.handleScroll = function () { + var scrollY = this.scrollY(); + var isScrolledDown = scrollY - this._prevOffsetY > 0; + this._prevOffsetY = this.scrollY(); + this._emiter.emit(ScrollService_EVENT, isScrolledDown); + }; + Object(external_tslib_["__decorate"])([ + external_decko_["bind"], + Throttle(100) + ], ScrollService.prototype, "handleScroll", null); + return ScrollService; +}()); + + +// CONCATENATED MODULE: ./src/services/SearchStore.ts + + +function getWorker() { + var worker; + if (IS_BROWSER) { + try { + // tslint:disable-next-line + worker = __webpack_require__(79); + } + catch (e) { + worker = __webpack_require__(34).default; + } + } + else { + worker = __webpack_require__(34).default; + } + return new worker(); +} +var SearchStore_SearchStore = /** @class */ (function () { + function SearchStore() { + this.searchWorker = getWorker(); + } + SearchStore.prototype.indexItems = function (groups) { + var _this = this; + var recurse = function (items) { + items.forEach(function (group) { + if (group.type !== 'group') { + _this.add(group.name, group.description || '', group.id); + } + recurse(group.items); + }); + }; + recurse(groups); + this.searchWorker.done(); + }; + SearchStore.prototype.add = function (title, body, meta) { + this.searchWorker.add(title, body, meta); + }; + SearchStore.prototype.dispose = function () { + this.searchWorker.terminate(); + this.searchWorker.dispose(); + }; + SearchStore.prototype.search = function (q) { + return this.searchWorker.search(q); + }; + SearchStore.prototype.toJS = function () { + return Object(external_tslib_["__awaiter"])(this, void 0, void 0, function () { + return Object(external_tslib_["__generator"])(this, function (_a) { + return [2 /*return*/, this.searchWorker.toJS()]; + }); + }); + }; + SearchStore.prototype.load = function (state) { + this.searchWorker.load(state); + }; + return SearchStore; +}()); + + +// CONCATENATED MODULE: ./src/common-elements/panels.ts + + + +var MiddlePanel = styled_components.div(panels_templateObject_2 || (panels_templateObject_2 = Object(external_tslib_["__makeTemplateObject"])(["\n width: calc(100% - ", ");\n padding: 0 ", "px;\n\n ", ";\n"], ["\n width: calc(100% - ", ");\n padding: 0 ", "px;\n\n ", + ";\n"])), function (props) { return props.theme.rightPanel.width; }, function (props) { return props.theme.spacing.sectionHorizontal; }, function (_a) { + var compact = _a.compact, theme = _a.theme; + return media.lessThan('medium', true)(panels_templateObject_1 || (panels_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n width: 100%;\n padding: ", ";\n "], ["\n width: 100%;\n padding: ", ";\n "])), (compact ? 0 : theme.spacing.sectionVertical) + "px " + theme.spacing.sectionHorizontal + "px"); +}); +var Section = styled_components.div.attrs(function (props) { + var _a; + return (_a = {}, + _a[SECTION_ATTR] = props.id, + _a); +})(templateObject_4 || (templateObject_4 = Object(external_tslib_["__makeTemplateObject"])(["\n padding: ", "px 0;\n\n &:last-child {\n min-height: calc(100vh + 1px);\n }\n\n & > &:last-child {\n min-height: initial;\n }\n\n ", "\n ", "\n"], ["\n padding: ", "px 0;\n\n &:last-child {\n min-height: calc(100vh + 1px);\n }\n\n & > &:last-child {\n min-height: initial;\n }\n\n ", + "\n ", + "\n"])), function (props) { return props.theme.spacing.sectionVertical; }, media.lessThan('medium', true)(panels_templateObject_3 || (panels_templateObject_3 = Object(external_tslib_["__makeTemplateObject"])(["\n padding: 0;\n "], ["\n padding: 0;\n "]))), function (props) { return props.underlined && "\n position: relative;\n\n &:not(:last-of-type):after {\n position: absolute;\n bottom: 0;\n width: 100%;\n display: block;\n content: '';\n border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n }\n " || ''; }); +var RightPanel = styled_components.div(templateObject_6 || (templateObject_6 = Object(external_tslib_["__makeTemplateObject"])(["\n width: ", ";\n color: ", ";\n background-color: ", ";\n padding: 0 ", "px;\n\n ", ";\n"], ["\n width: ", ";\n color: ", + ";\n background-color: ", ";\n padding: 0 ", "px;\n\n ", + ";\n"])), function (props) { return props.theme.rightPanel.width; }, function (_a) { + var theme = _a.theme; + return theme.rightPanel.textColor; +}, function (props) { return props.theme.rightPanel.backgroundColor; }, function (props) { return props.theme.spacing.sectionHorizontal; }, media.lessThan('medium', true)(templateObject_5 || (templateObject_5 = Object(external_tslib_["__makeTemplateObject"])(["\n width: 100%;\n padding: ", ";\n "], ["\n width: 100%;\n padding: ", ";\n "])), function (props) { return props.theme.spacing.sectionVertical + "px " + props.theme.spacing.sectionHorizontal + "px"; })); +var DarkRightPanel = styled_components(RightPanel)(templateObject_7 || (templateObject_7 = Object(external_tslib_["__makeTemplateObject"])(["\n background-color: ", ";\n"], ["\n background-color: ", ";\n"])), function (props) { return props.theme.rightPanel.backgroundColor; }); +var Row = styled_components.div(templateObject_9 || (templateObject_9 = Object(external_tslib_["__makeTemplateObject"])(["\n display: flex;\n width: 100%;\n padding: 0;\n\n ", ";\n"], ["\n display: flex;\n width: 100%;\n padding: 0;\n\n ", + ";\n"])), media.lessThan('medium', true)(templateObject_8 || (templateObject_8 = Object(external_tslib_["__makeTemplateObject"])(["\n flex-direction: column;\n "], ["\n flex-direction: column;\n "])))); +var panels_templateObject_1, panels_templateObject_2, panels_templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9; + +// CONCATENATED MODULE: ./src/common-elements/headers.ts + + +var headerFontSize = { + 1: '1.85714em', + 2: '1.57143em', + 3: '1.27em' +}; +var headerCommonMixin = function (level) { return css(headers_templateObject_1 || (headers_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n font-family: ", ";\n font-weight: ", ";\n font-size: ", ";\n line-height: ", ";\n"], ["\n font-family: ", + ";\n font-weight: ", + ";\n font-size: ", ";\n line-height: ", + ";\n"])), function (_a) { + var theme = _a.theme; + return theme.typography.headings.fontFamily; +}, function (_a) { + var theme = _a.theme; + return theme.typography.headings.fontWeight; +}, headerFontSize[level], function (_a) { + var theme = _a.theme; + return theme.typography.headings.lineHeight; +}); }; +var H1 = styled_components.h1(headers_templateObject_2 || (headers_templateObject_2 = Object(external_tslib_["__makeTemplateObject"])(["\n ", ";\n color: ", ";\n\n ", ";\n"], ["\n ", ";\n color: ", + ";\n\n ", ";\n"])), headerCommonMixin(1), function (_a) { + var theme = _a.theme; + return theme.colors.primary.main; +}, extensionsHook('H1')); +var H2 = styled_components.h2(headers_templateObject_3 || (headers_templateObject_3 = Object(external_tslib_["__makeTemplateObject"])(["\n ", ";\n color: black;\n\n ", ";\n"], ["\n ", ";\n color: black;\n\n ", ";\n"])), headerCommonMixin(2), extensionsHook('H2')); +var H3 = styled_components.h2(headers_templateObject_4 || (headers_templateObject_4 = Object(external_tslib_["__makeTemplateObject"])(["\n ", ";\n color: black;\n\n ", ";\n"], ["\n ", ";\n color: black;\n\n ", ";\n"])), headerCommonMixin(3), extensionsHook('H3')); +var RightPanelHeader = styled_components.h3(headers_templateObject_5 || (headers_templateObject_5 = Object(external_tslib_["__makeTemplateObject"])(["\n color: ", ";\n\n ", ";\n"], ["\n color: ", + ";\n\n ", ";\n"])), function (_a) { + var theme = _a.theme; + return theme.rightPanel.textColor; +}, extensionsHook('RightPanelHeader')); +var UnderlinedHeader = styled_components.h5(headers_templateObject_6 || (headers_templateObject_6 = Object(external_tslib_["__makeTemplateObject"])(["\n border-bottom: 1px solid rgba(38, 50, 56, 0.3);\n margin: 1em 0 1em 0;\n color: rgba(38, 50, 56, 0.5);\n font-weight: normal;\n text-transform: uppercase;\n font-size: 0.929em;\n line-height: 20px;\n\n ", ";\n"], ["\n border-bottom: 1px solid rgba(38, 50, 56, 0.3);\n margin: 1em 0 1em 0;\n color: rgba(38, 50, 56, 0.5);\n font-weight: normal;\n text-transform: uppercase;\n font-size: 0.929em;\n line-height: 20px;\n\n ", ";\n"])), extensionsHook('UnderlinedHeader')); +var headers_templateObject_1, headers_templateObject_2, headers_templateObject_3, headers_templateObject_4, headers_templateObject_5, headers_templateObject_6; + +// EXTERNAL MODULE: ./node_modules/memoize-one/dist/memoize-one.cjs.js +var memoize_one_cjs = __webpack_require__(40); + +// CONCATENATED MODULE: ./src/components/StoreBuilder.ts + + // fixme: https://github.com/alexreardon/memoize-one/issues/37 + + + +var StoreBuilder_a = Object(external_react_["createContext"])(undefined), Provider = StoreBuilder_a.Provider, Consumer = StoreBuilder_a.Consumer; + +var StoreBuilder_StoreBuilder = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(StoreBuilder, _super); + function StoreBuilder() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.state = { + loading: true, + resolvedSpec: null + }; + return _this; + } + StoreBuilder.getDerivedStateFromProps = function (nextProps, prevState) { + if (nextProps.specUrl !== prevState.prevSpecUrl || nextProps.spec !== prevState.prevSpec) { + return { + loading: true, + resolvedSpec: null, + prevSpec: nextProps.spec, + prevSpecUrl: nextProps.specUrl + }; + } + return null; + }; + StoreBuilder.prototype.makeStore = function (spec, specUrl, options) { + if (!spec) { + return undefined; + } + try { + return new AppStore_AppStore(spec, specUrl, options); + } + catch (e) { + if (this.props.onLoaded) { + this.props.onLoaded(e); + } + throw e; + } + }; + StoreBuilder.prototype.componentDidMount = function () { + this.load(); + }; + StoreBuilder.prototype.componentDidUpdate = function () { + if (this.state.resolvedSpec === null) { + this.load(); + } + else if (!this.state.loading && this.props.onLoaded) { + // may run multiple time + this.props.onLoaded(); + } + }; + StoreBuilder.prototype.load = function () { + return Object(external_tslib_["__awaiter"])(this, void 0, void 0, function () { + var _a, specUrl, spec, resolvedSpec, e_1; + return Object(external_tslib_["__generator"])(this, function (_b) { + switch (_b.label) { + case 0: + _a = this.props, specUrl = _a.specUrl, spec = _a.spec; + _b.label = 1; + case 1: + _b.trys.push([1, 3, , 4]); + return [4 /*yield*/, loadAndBundleSpec(spec || specUrl)]; + case 2: + resolvedSpec = _b.sent(); + this.setState({ + resolvedSpec: resolvedSpec, + loading: false + }); + return [3 /*break*/, 4]; + case 3: + e_1 = _b.sent(); + if (this.props.onLoaded) { + this.props.onLoaded(e_1); + } + this.setState({ + error: e_1 + }); + return [3 /*break*/, 4]; + case 4: return [2 /*return*/]; + } + }); + }); + }; + StoreBuilder.prototype.render = function () { + if (this.state.error) { + throw this.state.error; + } + var _a = this.props, specUrl = _a.specUrl, options = _a.options; + var _b = this.state, loading = _b.loading, resolvedSpec = _b.resolvedSpec; + return this.props.children({ + loading: loading, + store: this.makeStore(resolvedSpec, specUrl, options) + }); + }; + Object(external_tslib_["__decorate"])([ + memoize_one_cjs + ], StoreBuilder.prototype, "makeStore", null); + return StoreBuilder; +}(external_react_["Component"])); + + +// CONCATENATED MODULE: ./src/common-elements/linkify.tsx + + + + +var linkifyMixin = function (className) { return css(linkify_templateObject_1 || (linkify_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n ", " {\n cursor: pointer;\n margin-left: -20px;\n padding: 0;\n line-height: 1;\n width: 20px;\n display: inline-block;\n outline: 0;\n }\n ", ":before {\n content: '';\n width: 15px;\n height: 15px;\n background-size: contain;\n background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMCIgeT0iMCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA1MTIgNTEyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48cGF0aCBmaWxsPSIjMDEwMTAxIiBkPSJNNDU5LjcgMjMzLjRsLTkwLjUgOTAuNWMtNTAgNTAtMTMxIDUwLTE4MSAwIC03LjktNy44LTE0LTE2LjctMTkuNC0yNS44bDQyLjEtNDIuMWMyLTIgNC41LTMuMiA2LjgtNC41IDIuOSA5LjkgOCAxOS4zIDE1LjggMjcuMiAyNSAyNSA2NS42IDI0LjkgOTAuNSAwbDkwLjUtOTAuNWMyNS0yNSAyNS02NS42IDAtOTAuNSAtMjQuOS0yNS02NS41LTI1LTkwLjUgMGwtMzIuMiAzMi4yYy0yNi4xLTEwLjItNTQuMi0xMi45LTgxLjYtOC45bDY4LjYtNjguNmM1MC01MCAxMzEtNTAgMTgxIDBDNTA5LjYgMTAyLjMgNTA5LjYgMTgzLjQgNDU5LjcgMjMzLjR6TTIyMC4zIDM4Mi4ybC0zMi4yIDMyLjJjLTI1IDI0LjktNjUuNiAyNC45LTkwLjUgMCAtMjUtMjUtMjUtNjUuNiAwLTkwLjVsOTAuNS05MC41YzI1LTI1IDY1LjUtMjUgOTAuNSAwIDcuOCA3LjggMTIuOSAxNy4yIDE1LjggMjcuMSAyLjQtMS40IDQuOC0yLjUgNi44LTQuNWw0Mi4xLTQyYy01LjQtOS4yLTExLjYtMTgtMTkuNC0yNS44IC01MC01MC0xMzEtNTAtMTgxIDBsLTkwLjUgOTAuNWMtNTAgNTAtNTAgMTMxIDAgMTgxIDUwIDUwIDEzMSA1MCAxODEgMGw2OC42LTY4LjZDMjc0LjYgMzk1LjEgMjQ2LjQgMzkyLjMgMjIwLjMgMzgyLjJ6Ii8+PC9zdmc+Cg==');\n opacity: 0.5;\n visibility: hidden;\n display: inline-block;\n vertical-align: middle;\n }\n\n h1:hover > ", "::before, h2:hover > ", "::before, ", ":hover::before {\n visibility: visible;\n }\n"], ["\n ", " {\n cursor: pointer;\n margin-left: -20px;\n padding: 0;\n line-height: 1;\n width: 20px;\n display: inline-block;\n outline: 0;\n }\n ", ":before {\n content: '';\n width: 15px;\n height: 15px;\n background-size: contain;\n background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMCIgeT0iMCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA1MTIgNTEyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48cGF0aCBmaWxsPSIjMDEwMTAxIiBkPSJNNDU5LjcgMjMzLjRsLTkwLjUgOTAuNWMtNTAgNTAtMTMxIDUwLTE4MSAwIC03LjktNy44LTE0LTE2LjctMTkuNC0yNS44bDQyLjEtNDIuMWMyLTIgNC41LTMuMiA2LjgtNC41IDIuOSA5LjkgOCAxOS4zIDE1LjggMjcuMiAyNSAyNSA2NS42IDI0LjkgOTAuNSAwbDkwLjUtOTAuNWMyNS0yNSAyNS02NS42IDAtOTAuNSAtMjQuOS0yNS02NS41LTI1LTkwLjUgMGwtMzIuMiAzMi4yYy0yNi4xLTEwLjItNTQuMi0xMi45LTgxLjYtOC45bDY4LjYtNjguNmM1MC01MCAxMzEtNTAgMTgxIDBDNTA5LjYgMTAyLjMgNTA5LjYgMTgzLjQgNDU5LjcgMjMzLjR6TTIyMC4zIDM4Mi4ybC0zMi4yIDMyLjJjLTI1IDI0LjktNjUuNiAyNC45LTkwLjUgMCAtMjUtMjUtMjUtNjUuNiAwLTkwLjVsOTAuNS05MC41YzI1LTI1IDY1LjUtMjUgOTAuNSAwIDcuOCA3LjggMTIuOSAxNy4yIDE1LjggMjcuMSAyLjQtMS40IDQuOC0yLjUgNi44LTQuNWw0Mi4xLTQyYy01LjQtOS4yLTExLjYtMTgtMTkuNC0yNS44IC01MC01MC0xMzEtNTAtMTgxIDBsLTkwLjUgOTAuNWMtNTAgNTAtNTAgMTMxIDAgMTgxIDUwIDUwIDEzMSA1MCAxODEgMGw2OC42LTY4LjZDMjc0LjYgMzk1LjEgMjQ2LjQgMzkyLjMgMjIwLjMgMzgyLjJ6Ii8+PC9zdmc+Cg==');\n opacity: 0.5;\n visibility: hidden;\n display: inline-block;\n vertical-align: middle;\n }\n\n h1:hover > ", "::before, h2:hover > ", "::before, ", ":hover::before {\n visibility: visible;\n }\n"])), className, className, className, className, className); }; +var isModifiedEvent = function (event) { return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey); }; +var linkify_Link = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(Link, _super); + function Link() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.navigate = function (history, event) { + if (!event.defaultPrevented && // onClick prevented default + event.button === 0 && // ignore everything but left clicks + !isModifiedEvent(event) // ignore clicks with modifier keys + ) { + event.preventDefault(); + history.replace(_this.props.to); + } + }; + return _this; + } + Link.prototype.render = function () { + var _this = this; + return external_react_["createElement"](Consumer, null, function (store) { return external_react_["createElement"]("a", { className: _this.props.className, href: store.menu.history.linkForId(_this.props.to), onClick: _this.navigate.bind(_this, store.menu.history) }, _this.props.children); }); + }; + return Link; +}(external_react_["Component"])); + +var StyledShareLink = styled_components(linkify_Link)(linkify_templateObject_2 || (linkify_templateObject_2 = Object(external_tslib_["__makeTemplateObject"])(["\n ", ";\n"], ["\n ", ";\n"])), linkifyMixin('&')); +function ShareLink(props) { + return external_react_["createElement"](StyledShareLink, { to: props.to }); +} +var linkify_templateObject_1, linkify_templateObject_2; + +// CONCATENATED MODULE: ./src/common-elements/shelfs.tsx + + + +var directionMap = { + left: '90deg', + right: '-90deg', + up: '-180deg', + down: '0' +}; +var shelfs_IntShelfIcon = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(IntShelfIcon, _super); + function IntShelfIcon() { + return _super !== null && _super.apply(this, arguments) || this; + } + IntShelfIcon.prototype.render = function () { + return external_react_["createElement"]("svg", { className: this.props.className, style: this.props.style, version: "1.1", viewBox: "0 0 24 24", x: "0", xmlns: "http://www.w3.org/2000/svg", y: "0", "aria-hidden": "true" }, + external_react_["createElement"]("polygon", { points: "17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 " })); + }; + return IntShelfIcon; +}(external_react_["PureComponent"])); +var ShelfIcon = styled_components(shelfs_IntShelfIcon)(shelfs_templateObject_1 || (shelfs_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n height: ", ";\n width: ", ";\n vertical-align: middle;\n float: ", ";\n transition: transform 0.2s ease-out;\n transform: rotateZ(", ");\n\n polygon {\n fill: ", ";\n }\n"], ["\n height: ", ";\n width: ", ";\n vertical-align: middle;\n float: ", ";\n transition: transform 0.2s ease-out;\n transform: rotateZ(", ");\n\n polygon {\n fill: ", ";\n }\n"])), function (props) { return props.size || '18px'; }, function (props) { return props.size || '18px'; }, function (props) { return props.float || ''; }, function (props) { return directionMap[props.direction || 'down']; }, function (props) { return props.color && props.theme.colors[props.color] && props.theme.colors[props.color].main || props.color; }); +var Badge = styled_components.span(shelfs_templateObject_2 || (shelfs_templateObject_2 = Object(external_tslib_["__makeTemplateObject"])(["\n display: inline-block;\n padding: 2px 8px;\n margin: 0;\n background-color: ", ";\n color: ", ";\n font-size: ", ";\n vertical-align: middle;\n line-height: 1.6;\n border-radius: 4px;\n font-weight: ", ";\n font-size: 12px;\n + span[type] {\n margin-left: 4px;\n }\n"], ["\n display: inline-block;\n padding: 2px 8px;\n margin: 0;\n background-color: ", ";\n color: ", ";\n font-size: ", ";\n vertical-align: middle;\n line-height: 1.6;\n border-radius: 4px;\n font-weight: ", + ";\n font-size: 12px;\n + span[type] {\n margin-left: 4px;\n }\n"])), function (props) { return props.theme.colors[props.type].main; }, function (props) { return props.theme.colors[props.type].contrastText; }, function (props) { return props.theme.typography.code.fontSize; }, function (_a) { + var theme = _a.theme; + return theme.typography.fontWeightBold; +}); +var shelfs_templateObject_1, shelfs_templateObject_2; + +// CONCATENATED MODULE: ./src/common-elements/mixins.ts + + +var deprecatedCss = css(mixins_templateObject_1 || (mixins_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n text-decoration: line-through;\n color: #bdccd3;\n"], ["\n text-decoration: line-through;\n color: #bdccd3;\n"]))); +var mixins_templateObject_1; + +// CONCATENATED MODULE: ./src/common-elements/fields-layout.ts + +// import { transparentize } from 'polished'; + + +var PropertiesTableCaption = styled_components.caption(fields_layout_templateObject_1 || (fields_layout_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n text-align: right;\n font-size: 0.9em;\n font-weight: normal;\n color: ", ";\n"], ["\n text-align: right;\n font-size: 0.9em;\n font-weight: normal;\n color: ", ";\n"])), function (props) { return props.theme.colors.text.secondary; }); +var PropertyCell = styled_components.td(fields_layout_templateObject_2 || (fields_layout_templateObject_2 = Object(external_tslib_["__makeTemplateObject"])(["\n border-left: 1px solid ", ";\n box-sizing: border-box;\n position: relative;\n padding: 10px 10px 10px 0;\n\n tr:first-of-type > &,\n tr.last > & {\n border-left-width: 0;\n background-position: top left;\n background-repeat: no-repeat;\n background-size: 1px 100%;\n }\n\n tr:first-of-type > & {\n background-image: linear-gradient(\n to bottom,\n transparent 0%,\n transparent 22px,\n ", " 22px,\n ", " 100%\n );\n }\n\n tr.last > & {\n background-image: linear-gradient(\n to bottom,\n ", " 0%,\n ", " 22px,\n transparent 22px,\n transparent 100%\n );\n }\n\n tr.last + tr > & {\n border-left-color: transparent;\n }\n\n tr.last:first-child > & {\n background: none;\n border-left-color: transparent;\n }\n"], ["\n border-left: 1px solid ", ";\n box-sizing: border-box;\n position: relative;\n padding: 10px 10px 10px 0;\n\n tr:first-of-type > &,\n tr.last > & {\n border-left-width: 0;\n background-position: top left;\n background-repeat: no-repeat;\n background-size: 1px 100%;\n }\n\n tr:first-of-type > & {\n background-image: linear-gradient(\n to bottom,\n transparent 0%,\n transparent 22px,\n ", " 22px,\n ", " 100%\n );\n }\n\n tr.last > & {\n background-image: linear-gradient(\n to bottom,\n ", " 0%,\n ", " 22px,\n transparent 22px,\n transparent 100%\n );\n }\n\n tr.last + tr > & {\n border-left-color: transparent;\n }\n\n tr.last:first-child > & {\n background: none;\n border-left-color: transparent;\n }\n"])), function (props) { return props.theme.schema.linesColor; }, function (props) { return props.theme.schema.linesColor; }, function (props) { return props.theme.schema.linesColor; }, function (props) { return props.theme.schema.linesColor; }, function (props) { return props.theme.schema.linesColor; }); +var PropertyCellWithInner = styled_components(PropertyCell)(fields_layout_templateObject_3 || (fields_layout_templateObject_3 = Object(external_tslib_["__makeTemplateObject"])(["\n padding: 0;\n"], ["\n padding: 0;\n"]))); +var PropertyNameCell = styled_components(PropertyCell)(fields_layout_templateObject_4 || (fields_layout_templateObject_4 = Object(external_tslib_["__makeTemplateObject"])(["\n vertical-align: top;\n line-height: 20px;\n white-space: nowrap;\n font-size: 13px;\n font-family: ", ";\n\n &.deprecated {\n ", ";\n }\n\n ", ";\n\n ", ";\n"], ["\n vertical-align: top;\n line-height: 20px;\n white-space: nowrap;\n font-size: 13px;\n font-family: ", ";\n\n &.deprecated {\n ", ";\n }\n\n ", + ";\n\n ", ";\n"])), function (props) { return props.theme.typography.code.fontFamily; }, deprecatedCss, function (_a) { + var kind = _a.kind; + return kind !== 'field' ? 'font-style: italic' : ''; +}, extensionsHook('PropertyNameCell')); +var PropertyDetailsCell = styled_components.td(fields_layout_templateObject_5 || (fields_layout_templateObject_5 = Object(external_tslib_["__makeTemplateObject"])(["\n border-bottom: 1px solid #9fb4be;\n padding: 10px 0;\n width: ", ";\n box-sizing: border-box;\n\n tr.expanded & {\n border-bottom: none;\n }\n"], ["\n border-bottom: 1px solid #9fb4be;\n padding: 10px 0;\n width: ", ";\n box-sizing: border-box;\n\n tr.expanded & {\n border-bottom: none;\n }\n"])), function (props) { return props.theme.schema.defaultDetailsWidth; }); +var PropertyBullet = styled_components.span(fields_layout_templateObject_6 || (fields_layout_templateObject_6 = Object(external_tslib_["__makeTemplateObject"])(["\n color: ", ";\n font-family: ", ";\n margin-right: 10px;\n\n &::before {\n content: '';\n display: inline-block;\n vertical-align: middle;\n width: 10px;\n height: 1px;\n background: ", ";\n }\n\n &::after {\n content: '';\n display: inline-block;\n vertical-align: middle;\n width: 1px;\n background: ", ";\n height: 7px;\n }\n"], ["\n color: ", ";\n font-family: ", ";\n margin-right: 10px;\n\n &::before {\n content: '';\n display: inline-block;\n vertical-align: middle;\n width: 10px;\n height: 1px;\n background: ", ";\n }\n\n &::after {\n content: '';\n display: inline-block;\n vertical-align: middle;\n width: 1px;\n background: ", ";\n height: 7px;\n }\n"])), function (props) { return props.theme.schema.linesColor; }, function (props) { return props.theme.typography.code.fontFamily; }, function (props) { return props.theme.schema.linesColor; }, function (props) { return props.theme.schema.linesColor; }); +var InnerPropertiesWrap = styled_components.div(fields_layout_templateObject_7 || (fields_layout_templateObject_7 = Object(external_tslib_["__makeTemplateObject"])(["\n padding: ", ";\n"], ["\n padding: ", + ";\n"])), function (_a) { + var theme = _a.theme; + return theme.schema.nestingSpacing; +}); +var PropertiesTable = styled_components.table(fields_layout_templateObject_8 || (fields_layout_templateObject_8 = Object(external_tslib_["__makeTemplateObject"])(["\n border-collapse: separate;\n border-radius: 3px;\n font-size: ", ";\n\n border-spacing: 0;\n width: 100%;\n\n > tr {\n vertical-align: middle;\n }\n\n &\n ", ",\n &\n ", "\n ", "\n ", ",\n &\n ", "\n ", "\n ", "\n ", "\n ", " {\n margin: ", ";\n margin-right: 0;\n background: ", ";\n }\n\n &\n ", "\n ", ",\n &\n ", "\n ", "\n ", "\n ", ",\n &\n ", "\n ", "\n ", "\n ", "\n ", "\n ", " {\n background: #ffffff;\n }\n"], ["\n border-collapse: separate;\n border-radius: 3px;\n font-size: ", ";\n\n border-spacing: 0;\n width: 100%;\n\n > tr {\n vertical-align: middle;\n }\n\n &\n ", ",\n &\n ", "\n ", "\n ", ",\n &\n ", "\n ", "\n ", "\n ", "\n ", " {\n margin: ", + ";\n margin-right: 0;\n background: ", + ";\n }\n\n &\n ", "\n ", ",\n &\n ", "\n ", "\n ", "\n ", ",\n &\n ", "\n ", "\n ", "\n ", "\n ", "\n ", " {\n background: #ffffff;\n }\n"])), function (props) { return props.theme.typography.fontSize; }, InnerPropertiesWrap, InnerPropertiesWrap, InnerPropertiesWrap, InnerPropertiesWrap, InnerPropertiesWrap, InnerPropertiesWrap, InnerPropertiesWrap, InnerPropertiesWrap, InnerPropertiesWrap, function (_a) { + var theme = _a.theme; + return theme.schema.nestingSpacing; +}, function (_a) { + var theme = _a.theme; + return theme.schema.nestedBackground; +}, InnerPropertiesWrap, InnerPropertiesWrap, InnerPropertiesWrap, InnerPropertiesWrap, InnerPropertiesWrap, InnerPropertiesWrap, InnerPropertiesWrap, InnerPropertiesWrap, InnerPropertiesWrap, InnerPropertiesWrap, InnerPropertiesWrap, InnerPropertiesWrap); +var fields_layout_templateObject_1, fields_layout_templateObject_2, fields_layout_templateObject_3, fields_layout_templateObject_4, fields_layout_templateObject_5, fields_layout_templateObject_6, fields_layout_templateObject_7, fields_layout_templateObject_8; + +// CONCATENATED MODULE: ./src/common-elements/schema.ts + + + +var OneOfList = styled_components.div(schema_templateObject_1 || (schema_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n margin: 0 0 3px 0;\n display: inline-block;\n"], ["\n margin: 0 0 3px 0;\n display: inline-block;\n"]))); +var OneOfLabel = styled_components.span(schema_templateObject_2 || (schema_templateObject_2 = Object(external_tslib_["__makeTemplateObject"])(["\n font-size: 0.9em;\n margin-right: 10px;\n color: ", ";\n font-family: ", ";\n}\n"], ["\n font-size: 0.9em;\n margin-right: 10px;\n color: ", ";\n font-family: ", ";\n}\n"])), function (props) { return props.theme.colors.primary.main; }, function (props) { return props.theme.typography.headings.fontFamily; }); +var schema_OneOfButton = styled_components.button(schema_templateObject_3 || (schema_templateObject_3 = Object(external_tslib_["__makeTemplateObject"])(["\n display: inline-block;\n margin-right: 10px;\n margin-bottom: 5px;\n font-size: 0.8em;\n cursor: pointer;\n border: 1px solid ", ";\n padding: 2px 10px;\n line-height: 1.5em;\n outline: none;\n &:focus {\n box-shadow: 0 0 0 1px ", ";\n }\n\n ", "\n"], ["\n display: inline-block;\n margin-right: 10px;\n margin-bottom: 5px;\n font-size: 0.8em;\n cursor: pointer;\n border: 1px solid ", ";\n padding: 2px 10px;\n line-height: 1.5em;\n outline: none;\n &:focus {\n box-shadow: 0 0 0 1px ", ";\n }\n\n ", + "\n"])), function (props) { return props.theme.colors.primary.main; }, function (props) { return props.theme.colors.primary.main; }, function (props) { + if (props.active) { + return "\n color: white;\n background-color: " + props.theme.colors.primary.main + ";\n &:focus {\n box-shadow: none;\n background-color: " + Object(external_polished_["darken"])(0.15, props.theme.colors.primary.main) + ";\n }\n "; + } + else { + return "\n color: " + props.theme.colors.primary.main + ";\n background-color: white;\n "; + } +}); +var ArrayOpenningLabel = styled_components.div(schema_templateObject_4 || (schema_templateObject_4 = Object(external_tslib_["__makeTemplateObject"])(["\n font-size: 0.9em;\n font-family: ", ";\n &::after {\n content: ' [';\n }\n"], ["\n font-size: 0.9em;\n font-family: ", ";\n &::after {\n content: ' [';\n }\n"])), function (props) { return props.theme.typography.code.fontFamily; }); +var ArrayClosingLabel = styled_components.div(schema_templateObject_5 || (schema_templateObject_5 = Object(external_tslib_["__makeTemplateObject"])(["\n font-size: 0.9em;\n font-family: ", ";\n &::after {\n content: ']';\n }\n"], ["\n font-size: 0.9em;\n font-family: ", ";\n &::after {\n content: ']';\n }\n"])), function (props) { return props.theme.typography.code.fontFamily; }); +var schema_templateObject_1, schema_templateObject_2, schema_templateObject_3, schema_templateObject_4, schema_templateObject_5; + +// EXTERNAL MODULE: external "react-dropdown-aria" +var external_react_dropdown_aria_ = __webpack_require__(41); +var external_react_dropdown_aria_default = /*#__PURE__*/__webpack_require__.n(external_react_dropdown_aria_); + +// CONCATENATED MODULE: ./src/common-elements/dropdown.ts + + + +var StyledDropdown = styled_components(external_react_dropdown_aria_default.a)(dropdown_templateObject_1 || (dropdown_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n && {\n box-sizing: border-box;\n min-width: 100px;\n outline: none;\n display: inline-block;\n border-radius: 2px;\n border: 1px solid rgba(38, 50, 56, 0.5);\n vertical-align: bottom;\n padding: 2px 0px 2px 6px;\n position: relative;\n width: auto;\n background: white;\n color: #263238;\n font-family: ", ";\n font-size: 0.929em;\n line-height: 1.5em;\n cursor: pointer;\n transition: border 0.25s ease, color 0.25s ease, box-shadow 0.25s ease;\n &:hover,\n &:focus-within {\n border: 1px solid ", ";\n color: ", ";\n box-shadow: 0px 0px 0px 1px ", ";\n }\n .dropdown-selector {\n display: inline-flex;\n padding: 0;\n height: auto;\n padding-right: 20px;\n position: relative;\n margin-bottom: 5px;\n }\n .dropdown-selector-value {\n font-family: ", ";\n position: relative;\n font-size: 0.929em;\n width: 100%;\n line-height: 1;\n vertical-align: middle;\n color: #263238;\n left: 0;\n transition: color 0.25s ease, text-shadow 0.25s ease;\n }\n .dropdown-arrow {\n position: absolute;\n right: 3px;\n top: 50%;\n transform: translateY(-50%);\n border-color: ", " transparent transparent;\n border-style: solid;\n border-width: 0.35em 0.35em 0;\n width: 0;\n svg {\n display: none;\n }\n }\n\n .dropdown-selector-content {\n position: absolute;\n margin-top: 2px;\n left: -2px;\n right: 0;\n\n z-index: 10;\n min-width: 100px;\n\n background: white;\n border: 1px solid rgba(38, 50, 56, 0.2);\n box-shadow: 0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.08);\n\n max-height: 220px;\n overflow: auto;\n }\n\n .dropdown-option {\n font-size: 0.9em;\n color: #263238;\n cursor: pointer;\n padding: 0.4em;\n\n &[aria-selected='true'] {\n background-color: rgba(0, 0, 0, 0.05);\n }\n\n &:hover {\n background-color: rgba(38, 50, 56, 0.12);\n }\n }\n input {\n cursor: pointer;\n height: 1px;\n }\n }\n"], ["\n && {\n box-sizing: border-box;\n min-width: 100px;\n outline: none;\n display: inline-block;\n border-radius: 2px;\n border: 1px solid rgba(38, 50, 56, 0.5);\n vertical-align: bottom;\n padding: 2px 0px 2px 6px;\n position: relative;\n width: auto;\n background: white;\n color: #263238;\n font-family: ", ";\n font-size: 0.929em;\n line-height: 1.5em;\n cursor: pointer;\n transition: border 0.25s ease, color 0.25s ease, box-shadow 0.25s ease;\n &:hover,\n &:focus-within {\n border: 1px solid ", ";\n color: ", ";\n box-shadow: 0px 0px 0px 1px ", ";\n }\n .dropdown-selector {\n display: inline-flex;\n padding: 0;\n height: auto;\n padding-right: 20px;\n position: relative;\n margin-bottom: 5px;\n }\n .dropdown-selector-value {\n font-family: ", ";\n position: relative;\n font-size: 0.929em;\n width: 100%;\n line-height: 1;\n vertical-align: middle;\n color: #263238;\n left: 0;\n transition: color 0.25s ease, text-shadow 0.25s ease;\n }\n .dropdown-arrow {\n position: absolute;\n right: 3px;\n top: 50%;\n transform: translateY(-50%);\n border-color: ", " transparent transparent;\n border-style: solid;\n border-width: 0.35em 0.35em 0;\n width: 0;\n svg {\n display: none;\n }\n }\n\n .dropdown-selector-content {\n position: absolute;\n margin-top: 2px;\n left: -2px;\n right: 0;\n\n z-index: 10;\n min-width: 100px;\n\n background: white;\n border: 1px solid rgba(38, 50, 56, 0.2);\n box-shadow: 0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.08);\n\n max-height: 220px;\n overflow: auto;\n }\n\n .dropdown-option {\n font-size: 0.9em;\n color: #263238;\n cursor: pointer;\n padding: 0.4em;\n\n &[aria-selected='true'] {\n background-color: rgba(0, 0, 0, 0.05);\n }\n\n &:hover {\n background-color: rgba(38, 50, 56, 0.12);\n }\n }\n input {\n cursor: pointer;\n height: 1px;\n }\n }\n"])), function (props) { return props.theme.typography.headings.fontFamily; }, function (props) { return props.theme.colors.primary.main; }, function (props) { return props.theme.colors.primary.main; }, function (props) { return props.theme.colors.primary.main; }, function (props) { return props.theme.typography.headings.fontFamily; }, function (props) { return props.theme.colors.primary.main; }); +var SimpleDropdown = styled_components(StyledDropdown)(dropdown_templateObject_2 || (dropdown_templateObject_2 = Object(external_tslib_["__makeTemplateObject"])(["\n && {\n margin-left: 10px;\n text-transform: none;\n font-size: 0.969em;\n\n font-size: 1em;\n border: none;\n padding: 0 1.2em 0 0;\n background: transparent;\n\n &:hover,\n &:focus-within {\n border: none;\n box-shadow: none;\n .dropdown-selector-value {\n color: ", ";\n text-shadow: 0px 0px 0px ", ";\n }\n }\n }\n"], ["\n && {\n margin-left: 10px;\n text-transform: none;\n font-size: 0.969em;\n\n font-size: 1em;\n border: none;\n padding: 0 1.2em 0 0;\n background: transparent;\n\n &:hover,\n &:focus-within {\n border: none;\n box-shadow: none;\n .dropdown-selector-value {\n color: ", ";\n text-shadow: 0px 0px 0px ", ";\n }\n }\n }\n"])), function (props) { return props.theme.colors.primary.main; }, function (props) { return props.theme.colors.primary.main; }); +var MimeLabel = styled_components.span(dropdown_templateObject_3 || (dropdown_templateObject_3 = Object(external_tslib_["__makeTemplateObject"])(["\n margin-left: 10px;\n text-transform: none;\n font-size: 0.929em;\n color: black;\n"], ["\n margin-left: 10px;\n text-transform: none;\n font-size: 0.929em;\n color: black;\n"]))); +var dropdown_templateObject_1, dropdown_templateObject_2, dropdown_templateObject_3; + +// EXTERNAL MODULE: external "react-tabs" +var external_react_tabs_ = __webpack_require__(9); + +// CONCATENATED MODULE: ./src/common-elements/tabs.ts + + + + + +var Tabs = styled_components(external_react_tabs_["Tabs"])(tabs_templateObject_1 || (tabs_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n > ul {\n list-style: none;\n padding: 0;\n margin: 0;\n margin: 0 -5px;\n\n > li {\n padding: 5px 10px;\n display: inline-block;\n\n background-color: ", ";\n border-bottom: 1px solid rgba(0, 0, 0, 0.5);\n cursor: pointer;\n text-align: center;\n outline: none;\n color: ", ";\n margin: 0\n ", ";\n border: 1px solid ", ";\n border-radius: 5px;\n min-width: 60px;\n font-size: 0.9em;\n font-weight: bold;\n\n &.react-tabs__tab--selected {\n color: ", ";\n background: ", ";\n &:focus {\n outline: auto;\n }\n }\n\n &:only-child {\n flex: none;\n min-width: 100px;\n }\n\n &.tab-success {\n color: ", ";\n }\n\n &.tab-redirect {\n color: ", ";\n }\n\n &.tab-info {\n color: ", ";\n }\n\n &.tab-error {\n color: ", ";\n }\n }\n }\n > .react-tabs__tab-panel {\n background: ", ";\n & > div,\n & > pre {\n padding: ", "px;\n margin: 0;\n }\n\n & > div > pre {\n padding: 0;\n }\n }\n"], ["\n > ul {\n list-style: none;\n padding: 0;\n margin: 0;\n margin: 0 -5px;\n\n > li {\n padding: 5px 10px;\n display: inline-block;\n\n background-color: ", + ";\n border-bottom: 1px solid rgba(0, 0, 0, 0.5);\n cursor: pointer;\n text-align: center;\n outline: none;\n color: ", + ";\n margin: 0\n ", + ";\n border: 1px solid ", + ";\n border-radius: 5px;\n min-width: 60px;\n font-size: 0.9em;\n font-weight: bold;\n\n &.react-tabs__tab--selected {\n color: ", ";\n background: ", + ";\n &:focus {\n outline: auto;\n }\n }\n\n &:only-child {\n flex: none;\n min-width: 100px;\n }\n\n &.tab-success {\n color: ", ";\n }\n\n &.tab-redirect {\n color: ", ";\n }\n\n &.tab-info {\n color: ", ";\n }\n\n &.tab-error {\n color: ", ";\n }\n }\n }\n > .react-tabs__tab-panel {\n background: ", + ";\n & > div,\n & > pre {\n padding: ", "px;\n margin: 0;\n }\n\n & > div > pre {\n padding: 0;\n }\n }\n"])), function (_a) { + var theme = _a.theme; + return theme.codeBlock.backgroundColor; +}, function (_a) { + var theme = _a.theme; + return Object(external_polished_["darken"])(theme.colors.tonalOffset, theme.rightPanel.textColor); +}, function (_a) { + var theme = _a.theme; + return theme.spacing.unit + "px " + theme.spacing.unit + "px " + theme.spacing.unit + "px"; +}, function (_a) { + var theme = _a.theme; + return Object(external_polished_["darken"])(0.05, theme.codeBlock.backgroundColor); +}, function (props) { return props.theme.colors.text.primary; }, function (_a) { + var theme = _a.theme; + return theme.rightPanel.textColor; +}, function (props) { return props.theme.colors.responses.success.color; }, function (props) { return props.theme.colors.responses.redirect.color; }, function (props) { return props.theme.colors.responses.info.color; }, function (props) { return props.theme.colors.responses.error.color; }, function (_a) { + var theme = _a.theme; + return theme.codeBlock.backgroundColor; +}, function (props) { return props.theme.spacing.unit * 4; }); +var SmallTabs = styled_components(Tabs)(tabs_templateObject_2 || (tabs_templateObject_2 = Object(external_tslib_["__makeTemplateObject"])(["\n > ul {\n display: block;\n > li {\n padding: 2px 5px;\n min-width: auto;\n margin: 0 15px 0 0;\n font-size: 13px;\n font-weight: normal;\n border-bottom: 1px dashed;\n color: ", ";\n border-radius: 0;\n background: none;\n\n &:last-child {\n margin-right: 0;\n }\n\n &.react-tabs__tab--selected {\n color: ", ";\n background: none;\n }\n }\n }\n > .react-tabs__tab-panel {\n & > div,\n & > pre {\n padding: ", "px 0;\n }\n }\n"], ["\n > ul {\n display: block;\n > li {\n padding: 2px 5px;\n min-width: auto;\n margin: 0 15px 0 0;\n font-size: 13px;\n font-weight: normal;\n border-bottom: 1px dashed;\n color: ", + ";\n border-radius: 0;\n background: none;\n\n &:last-child {\n margin-right: 0;\n }\n\n &.react-tabs__tab--selected {\n color: ", + ";\n background: none;\n }\n }\n }\n > .react-tabs__tab-panel {\n & > div,\n & > pre {\n padding: ", "px 0;\n }\n }\n"])), function (_a) { + var theme = _a.theme; + return Object(external_polished_["darken"])(theme.colors.tonalOffset, theme.rightPanel.textColor); +}, function (_a) { + var theme = _a.theme; + return theme.rightPanel.textColor; +}, function (props) { return props.theme.spacing.unit * 2; }); +var tabs_templateObject_1, tabs_templateObject_2; + +// CONCATENATED MODULE: ./src/common-elements/PrismDiv.tsx + + +var PrismDiv = styled_components.div(PrismDiv_templateObject_1 || (PrismDiv_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n /**\n * Based on prism-dark.css\n */\n\n code[class*='language-'],\n pre[class*='language-'] {\n /* color: white;\n background: none; */\n text-shadow: 0 -0.1em 0.2em black;\n text-align: left;\n white-space: pre;\n word-spacing: normal;\n word-break: normal;\n word-wrap: normal;\n line-height: 1.5;\n\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n\n -webkit-hyphens: none;\n -moz-hyphens: none;\n -ms-hyphens: none;\n hyphens: none;\n }\n\n @media print {\n code[class*='language-'],\n pre[class*='language-'] {\n text-shadow: none;\n }\n }\n\n /* Code blocks */\n pre[class*='language-'] {\n padding: 1em;\n margin: 0.5em 0;\n overflow: auto;\n }\n\n .token.comment,\n .token.prolog,\n .token.doctype,\n .token.cdata {\n color: hsl(30, 20%, 50%);\n }\n\n .token.punctuation {\n opacity: 0.7;\n }\n\n .namespace {\n opacity: 0.7;\n }\n\n .token.property,\n .token.tag,\n .token.number,\n .token.constant,\n .token.symbol {\n color: #4a8bb3;\n }\n\n .token.boolean {\n color: firebrick;\n }\n\n .token.selector,\n .token.attr-name,\n .token.string,\n .token.char,\n .token.builtin,\n .token.inserted {\n color: #a0fbaa;\n & + a,\n & + a:visited {\n color: #4ed2ba;\n text-decoration: underline;\n }\n }\n\n .token.property.string {\n color: white;\n }\n\n .token.operator,\n .token.entity,\n .token.url,\n .token.variable {\n color: hsl(40, 90%, 60%);\n }\n\n .token.atrule,\n .token.attr-value,\n .token.keyword {\n color: hsl(350, 40%, 70%);\n }\n\n .token.regex,\n .token.important {\n color: #e90;\n }\n\n .token.important,\n .token.bold {\n font-weight: bold;\n }\n .token.italic {\n font-style: italic;\n }\n\n .token.entity {\n cursor: help;\n }\n\n .token.deleted {\n color: red;\n }\n\n ", ";\n"], ["\n /**\n * Based on prism-dark.css\n */\n\n code[class*='language-'],\n pre[class*='language-'] {\n /* color: white;\n background: none; */\n text-shadow: 0 -0.1em 0.2em black;\n text-align: left;\n white-space: pre;\n word-spacing: normal;\n word-break: normal;\n word-wrap: normal;\n line-height: 1.5;\n\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n\n -webkit-hyphens: none;\n -moz-hyphens: none;\n -ms-hyphens: none;\n hyphens: none;\n }\n\n @media print {\n code[class*='language-'],\n pre[class*='language-'] {\n text-shadow: none;\n }\n }\n\n /* Code blocks */\n pre[class*='language-'] {\n padding: 1em;\n margin: 0.5em 0;\n overflow: auto;\n }\n\n .token.comment,\n .token.prolog,\n .token.doctype,\n .token.cdata {\n color: hsl(30, 20%, 50%);\n }\n\n .token.punctuation {\n opacity: 0.7;\n }\n\n .namespace {\n opacity: 0.7;\n }\n\n .token.property,\n .token.tag,\n .token.number,\n .token.constant,\n .token.symbol {\n color: #4a8bb3;\n }\n\n .token.boolean {\n color: firebrick;\n }\n\n .token.selector,\n .token.attr-name,\n .token.string,\n .token.char,\n .token.builtin,\n .token.inserted {\n color: #a0fbaa;\n & + a,\n & + a:visited {\n color: #4ed2ba;\n text-decoration: underline;\n }\n }\n\n .token.property.string {\n color: white;\n }\n\n .token.operator,\n .token.entity,\n .token.url,\n .token.variable {\n color: hsl(40, 90%, 60%);\n }\n\n .token.atrule,\n .token.attr-value,\n .token.keyword {\n color: hsl(350, 40%, 70%);\n }\n\n .token.regex,\n .token.important {\n color: #e90;\n }\n\n .token.important,\n .token.bold {\n font-weight: bold;\n }\n .token.italic {\n font-style: italic;\n }\n\n .token.entity {\n cursor: help;\n }\n\n .token.deleted {\n color: red;\n }\n\n ", ";\n"])), extensionsHook('Prism')); +var PrismDiv_templateObject_1; + +// CONCATENATED MODULE: ./src/common-elements/samples.tsx + + + +var SampleControls = styled_components.div(samples_templateObject_1 || (samples_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n opacity: 0.4;\n transition: opacity 0.3s ease;\n text-align: right;\n &:focus-within {\n opacity: 1;\n }\n > button {\n background-color: transparent;\n border: 0;\n color: inherit;\n padding: 2px 10px;\n font-family: ", ";\n font-size: ", ";\n line-height: ", ";\n cursor: pointer;\n outline: 0;\n\n :hover,\n :focus {\n background: rgba(255, 255, 255, 0.1);\n }\n }\n"], ["\n opacity: 0.4;\n transition: opacity 0.3s ease;\n text-align: right;\n &:focus-within {\n opacity: 1;\n }\n > button {\n background-color: transparent;\n border: 0;\n color: inherit;\n padding: 2px 10px;\n font-family: ", + ";\n font-size: ", + ";\n line-height: ", + ";\n cursor: pointer;\n outline: 0;\n\n :hover,\n :focus {\n background: rgba(255, 255, 255, 0.1);\n }\n }\n"])), function (_a) { + var theme = _a.theme; + return theme.typography.fontFamily; +}, function (_a) { + var theme = _a.theme; + return theme.typography.fontSize; +}, function (_a) { + var theme = _a.theme; + return theme.typography.lineHeight; +}); +var SampleControlsWrap = styled_components.div(samples_templateObject_2 || (samples_templateObject_2 = Object(external_tslib_["__makeTemplateObject"])(["\n &:hover ", " {\n opacity: 1;\n }\n"], ["\n &:hover ", " {\n opacity: 1;\n }\n"])), SampleControls); +var StyledPre = styled_components(PrismDiv.withComponent('pre'))(samples_templateObject_3 || (samples_templateObject_3 = Object(external_tslib_["__makeTemplateObject"])(["\n font-family: ", ";\n font-size: ", ";\n overflow-x: auto;\n margin: 0;\n\n white-space: ", ";\n"], ["\n font-family: ", ";\n font-size: ", ";\n overflow-x: auto;\n margin: 0;\n\n white-space: ", + ";\n"])), function (props) { return props.theme.typography.code.fontFamily; }, function (props) { return props.theme.typography.code.fontSize; }, function (_a) { + var theme = _a.theme; + return theme.typography.code.wrap ? 'pre-wrap' : 'pre'; +}); +var samples_templateObject_1, samples_templateObject_2, samples_templateObject_3; + +// EXTERNAL MODULE: external "perfect-scrollbar" +var external_perfect_scrollbar_ = __webpack_require__(25); +var external_perfect_scrollbar_default = /*#__PURE__*/__webpack_require__.n(external_perfect_scrollbar_); + +// CONCATENATED MODULE: ./src/common-elements/perfect-scrollbar.tsx + + + + + +/* + * perfect scrollbar umd bundle uses exports assignment while module uses default export + * so when bundled with webpack default export works but with jest it crashes + * That's why the following ugly fix is required + */ +var PerfectScrollbarConstructor = external_perfect_scrollbar_default.a || external_perfect_scrollbar_; // const PSStyling = createGlobalStyle`${require('perfect-scrollbar/css/perfect-scrollbar.css').toString()}`; +var StyledScrollWrapper = styled_components.div(perfect_scrollbar_templateObject_1 || (perfect_scrollbar_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n position: relative;\n"], ["\n position: relative;\n"]))); +var perfect_scrollbar_PerfectScrollbar = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(PerfectScrollbar, _super); + function PerfectScrollbar() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.handleRef = function (ref) { + _this._container = ref; + }; + return _this; + } + PerfectScrollbar.prototype.componentDidMount = function () { + var offset = this._container.parentElement && this._container.parentElement.scrollTop || 0; + this.inst = new PerfectScrollbarConstructor(this._container, this.props.options || {}); + if (this._container.scrollTo) { + this._container.scrollTo(0, offset); + } + }; + PerfectScrollbar.prototype.componentDidUpdate = function () { + this.inst.update(); + }; + PerfectScrollbar.prototype.componentWillUnmount = function () { + this.inst.destroy(); + }; + PerfectScrollbar.prototype.render = function () { + var _a = this.props, children = _a.children, className = _a.className, updateFn = _a.updateFn; + if (updateFn) { + updateFn(this.componentDidUpdate.bind(this)); + } + return external_react_["createElement"](external_react_["Fragment"], null, + external_react_["createElement"](StyledScrollWrapper, { className: "scrollbar-container " + className, ref: this.handleRef }, children)); + }; + return PerfectScrollbar; +}(external_react_["Component"])); + +function PerfectScrollbarWrap(props) { + return external_react_["createElement"](OptionsContext.Consumer, null, function (options) { return !options.nativeScrollbars ? external_react_["createElement"](perfect_scrollbar_PerfectScrollbar, Object(external_tslib_["__assign"])({}, props), props.children) : external_react_["createElement"]("div", { style: { + overflow: 'auto', + overscrollBehavior: 'contain', + msOverflowStyle: '-ms-autohiding-scrollbar' + } }, props.children); }); +} +var perfect_scrollbar_templateObject_1; + +// CONCATENATED MODULE: ./src/common-elements/flex.ts + + +var Flex = styled_components.div.attrs(function (props) { return ({ + justifyContent: props.justifyContent +}); })(flex_templateObject_1 || (flex_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n display: flex;\n justify-content: ", ";\n width: 100%;\n"], ["\n display: flex;\n justify-content: ", ";\n width: 100%;\n"])), function (props) { return props.justifyContent; }); +var HFlex = styled_components(Flex)(flex_templateObject_2 || (flex_templateObject_2 = Object(external_tslib_["__makeTemplateObject"])(["\n flex-direction: row;\n"], ["\n flex-direction: row;\n"]))); +var VFlex = styled_components(Flex)(flex_templateObject_3 || (flex_templateObject_3 = Object(external_tslib_["__makeTemplateObject"])(["\n flex-direction: column;\n"], ["\n flex-direction: column;\n"]))); +var flex_templateObject_1, flex_templateObject_2, flex_templateObject_3; + +// CONCATENATED MODULE: ./src/common-elements/index.ts + + + + + + + + + + + + + + +// CONCATENATED MODULE: ./src/components/DropdownOrLabel/DropdownOrLabel.tsx + + + +function DropdownOrLabel(props) { + var _a = props.Label, Label = _a === void 0 ? MimeLabel : _a, _b = props.Dropdown, Dropdown = _b === void 0 ? SimpleDropdown : _b; + if (props.options.length === 1) { + return external_react_["createElement"](Label, null, props.options[0].value); + } + return external_react_["createElement"](Dropdown, Object(external_tslib_["__assign"])({}, props, { searchable: false })); +} + +// EXTERNAL MODULE: external "dompurify" +var external_dompurify_ = __webpack_require__(42); + +// CONCATENATED MODULE: ./src/components/Markdown/styled.elements.tsx + + + + +var linksCss = css(styled_elements_templateObject_1 || (styled_elements_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n a {\n text-decoration: none;\n color: ", ";\n\n &:visited {\n color: ", ";\n }\n\n &:hover {\n color: ", ";\n }\n }\n"], ["\n a {\n text-decoration: none;\n color: ", ";\n\n &:visited {\n color: ", ";\n }\n\n &:hover {\n color: ", ";\n }\n }\n"])), function (props) { return props.theme.typography.links.color; }, function (props) { return props.theme.typography.links.visited; }, function (props) { return props.theme.typography.links.hover; }); +var StyledMarkdownBlock = styled_components(PrismDiv)(styled_elements_templateObject_2 || (styled_elements_templateObject_2 = Object(external_tslib_["__makeTemplateObject"])(["\n\n font-family: ", ";\n font-weight: ", ";\n line-height: ", ";\n\n p {\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n ", "\n\n ", "\n\n h1 {\n ", ";\n color: ", ";\n margin-top: 0;\n }\n\n h2 {\n ", ";\n color: ", ";\n }\n\n code {\n color: ", ";\n background-color: ", ";\n\n font-family: ", ";\n border-radius: 2px;\n border: 1px solid rgba(38, 50, 56, 0.1);\n padding: 0 ", "px;\n font-size: ", ";\n font-weight: ", ";\n\n word-break: break-word;\n }\n\n pre {\n font-family: ", ";\n white-space:", ";\n background-color: ", ";\n color: white;\n padding: ", "px;\n overflow-x: auto;\n line-height: normal;\n border-radius: 0px\n border: 1px solid rgba(38, 50, 56, 0.1);\n\n code {\n background-color: transparent;\n color: white;\n padding: 0;\n\n &:before,\n &:after {\n content: none;\n }\n }\n }\n\n blockquote {\n margin: 0;\n margin-bottom: 1em;\n padding: 0 15px;\n color: #777;\n border-left: 4px solid #ddd;\n }\n\n img {\n max-width: 100%;\n box-sizing: content-box;\n }\n\n ul,\n ol {\n padding-left: 2em;\n margin: 0;\n margin-bottom: 1em;\n\n ul, ol {\n margin-bottom: 0;\n margin-top: 0;\n }\n }\n\n table {\n display: block;\n width: 100%;\n overflow: auto;\n word-break: normal;\n word-break: keep-all;\n border-collapse: collapse;\n border-spacing: 0;\n margin-top: 1.5em;\n margin-bottom: 1.5em;\n }\n\n table tr {\n background-color: #fff;\n border-top: 1px solid #ccc;\n\n &:nth-child(2n) {\n background-color: ", ";\n }\n }\n\n table th,\n table td {\n padding: 6px 13px;\n border: 1px solid #ddd;\n }\n\n table th {\n text-align: left;\n font-weight: bold;\n }\n\n ", ";\n\n ", "\n\n ", ";\n"], ["\n\n font-family: ", ";\n font-weight: ", ";\n line-height: ", ";\n\n p {\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n ", + "\n\n ", + "\n\n h1 {\n ", ";\n color: ", ";\n margin-top: 0;\n }\n\n h2 {\n ", ";\n color: ", ";\n }\n\n code {\n color: ", + ";\n background-color: ", + ";\n\n font-family: ", ";\n border-radius: 2px;\n border: 1px solid rgba(38, 50, 56, 0.1);\n padding: 0 ", + "px;\n font-size: ", ";\n font-weight: ", + ";\n\n word-break: break-word;\n }\n\n pre {\n font-family: ", ";\n white-space:", + ";\n background-color: ", + ";\n color: white;\n padding: ", "px;\n overflow-x: auto;\n line-height: normal;\n border-radius: 0px\n border: 1px solid rgba(38, 50, 56, 0.1);\n\n code {\n background-color: transparent;\n color: white;\n padding: 0;\n\n &:before,\n &:after {\n content: none;\n }\n }\n }\n\n blockquote {\n margin: 0;\n margin-bottom: 1em;\n padding: 0 15px;\n color: #777;\n border-left: 4px solid #ddd;\n }\n\n img {\n max-width: 100%;\n box-sizing: content-box;\n }\n\n ul,\n ol {\n padding-left: 2em;\n margin: 0;\n margin-bottom: 1em;\n\n ul, ol {\n margin-bottom: 0;\n margin-top: 0;\n }\n }\n\n table {\n display: block;\n width: 100%;\n overflow: auto;\n word-break: normal;\n word-break: keep-all;\n border-collapse: collapse;\n border-spacing: 0;\n margin-top: 1.5em;\n margin-bottom: 1.5em;\n }\n\n table tr {\n background-color: #fff;\n border-top: 1px solid #ccc;\n\n &:nth-child(2n) {\n background-color: ", + ";\n }\n }\n\n table th,\n table td {\n padding: 6px 13px;\n border: 1px solid #ddd;\n }\n\n table th {\n text-align: left;\n font-weight: bold;\n }\n\n ", ";\n\n ", "\n\n ", ";\n"])), function (props) { return props.theme.typography.fontFamily; }, function (props) { return props.theme.typography.fontWeightRegular; }, function (props) { return props.theme.typography.lineHeight; }, function (_a) { + var compact = _a.compact; + return compact && "\n p:first-child {\n margin-top: 0;\n }\n p:last-child {\n margin-bottom: 0;\n }\n "; +}, function (_a) { + var inline = _a.inline; + return inline && " p {\n display: inline-block;\n }"; +}, headerCommonMixin(1), function (props) { return props.theme.colors.primary.main; }, headerCommonMixin(2), function (props) { return props.theme.colors.text.primary; }, function (_a) { + var theme = _a.theme; + return theme.typography.code.color; +}, function (_a) { + var theme = _a.theme; + return theme.typography.code.backgroundColor; +}, function (props) { return props.theme.typography.code.fontFamily; }, function (_a) { + var theme = _a.theme; + return theme.spacing.unit; +}, function (props) { return props.theme.typography.code.fontSize; }, function (_a) { + var theme = _a.theme; + return theme.typography.code.fontWeight; +}, function (props) { return props.theme.typography.code.fontFamily; }, function (_a) { + var theme = _a.theme; + return theme.typography.code.wrap ? 'pre-wrap' : 'pre'; +}, function (_a) { + var theme = _a.theme; + return theme.codeBlock.backgroundColor; +}, function (props) { return props.theme.spacing.unit * 4; }, function (_a) { + var theme = _a.theme; + return theme.schema.nestedBackground; +}, linkifyMixin('.share-link'), linksCss, extensionsHook('Markdown')); +var styled_elements_templateObject_1, styled_elements_templateObject_2; + +// CONCATENATED MODULE: ./src/components/Markdown/SanitizedMdBlock.tsx + + + + + +var StyledMarkdownSpan = StyledMarkdownBlock.withComponent('span'); +var sanitize = function (untrustedSpec, html) { return untrustedSpec ? external_dompurify_["sanitize"](html) : html; }; +function SanitizedMarkdownHTML(props) { + var Wrap = props.inline ? StyledMarkdownSpan : StyledMarkdownBlock; + return external_react_["createElement"](OptionsConsumer, null, function (options) { return external_react_["createElement"](Wrap, Object(external_tslib_["__assign"])({ className: 'redoc-markdown ' + (props.className || ''), dangerouslySetInnerHTML: { + __html: sanitize(options.untrustedSpec, props.html) + }, "data-role": props['data-role'] }, props)); }); +} + +// CONCATENATED MODULE: ./src/components/Markdown/Markdown.tsx + + + + +var Markdown_Markdown = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(Markdown, _super); + function Markdown() { + return _super !== null && _super.apply(this, arguments) || this; + } + Markdown.prototype.render = function () { + var _a = this.props, source = _a.source, inline = _a.inline, compact = _a.compact, className = _a.className, dataRole = _a["data-role"]; + var renderer = new MarkdownRenderer_MarkdownRenderer(); + return external_react_["createElement"](SanitizedMarkdownHTML, { html: renderer.renderMd(source), inline: inline, compact: compact, className: className, "data-role": dataRole }); + }; + return Markdown; +}(external_react_["Component"])); + + +// CONCATENATED MODULE: ./src/common-elements/Tooltip.tsx + + + +var Tooltip_Wrapper = styled_components.div(Tooltip_templateObject_1 || (Tooltip_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n position: relative;\n"], ["\n position: relative;\n"]))); +var Tip = styled_components.div(Tooltip_templateObject_2 || (Tooltip_templateObject_2 = Object(external_tslib_["__makeTemplateObject"])(["\n position: absolute;\n min-width: 80px;\n max-width: 500px;\n background: #fff;\n bottom: 100%;\n left: 50%;\n margin-bottom: 10px;\n transform: translateX(-50%);\n\n border-radius: 4px;\n padding: 0.3em 0.6em;\n text-align: center;\n box-shadow: 0px 0px 5px 0px rgba(204, 204, 204, 1);\n"], ["\n position: absolute;\n min-width: 80px;\n max-width: 500px;\n background: #fff;\n bottom: 100%;\n left: 50%;\n margin-bottom: 10px;\n transform: translateX(-50%);\n\n border-radius: 4px;\n padding: 0.3em 0.6em;\n text-align: center;\n box-shadow: 0px 0px 5px 0px rgba(204, 204, 204, 1);\n"]))); +var Content = styled_components.div(Tooltip_templateObject_3 || (Tooltip_templateObject_3 = Object(external_tslib_["__makeTemplateObject"])(["\n background: #fff;\n color: #000;\n display: inline;\n font-size: 0.85em;\n white-space: nowrap;\n"], ["\n background: #fff;\n color: #000;\n display: inline;\n font-size: 0.85em;\n white-space: nowrap;\n"]))); +var Arrow = styled_components.div(Tooltip_templateObject_4 || (Tooltip_templateObject_4 = Object(external_tslib_["__makeTemplateObject"])(["\n position: absolute;\n width: 0;\n height: 0;\n bottom: -5px;\n left: 50%;\n margin-left: -5px;\n border-left: solid transparent 5px;\n border-right: solid transparent 5px;\n border-top: solid #fff 5px;\n"], ["\n position: absolute;\n width: 0;\n height: 0;\n bottom: -5px;\n left: 50%;\n margin-left: -5px;\n border-left: solid transparent 5px;\n border-right: solid transparent 5px;\n border-top: solid #fff 5px;\n"]))); +var Gap = styled_components.div(Tooltip_templateObject_5 || (Tooltip_templateObject_5 = Object(external_tslib_["__makeTemplateObject"])(["\n position: absolute;\n width: 100%;\n height: 20px;\n bottom: -20px;\n"], ["\n position: absolute;\n width: 100%;\n height: 20px;\n bottom: -20px;\n"]))); +var Tooltip_Tooltip = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(Tooltip, _super); + function Tooltip() { + return _super !== null && _super.apply(this, arguments) || this; + } + Tooltip.prototype.render = function () { + var _a = this.props, open = _a.open, title = _a.title, children = _a.children; + return external_react_["createElement"](Tooltip_Wrapper, null, + children, + open && external_react_["createElement"](Tip, null, + external_react_["createElement"](Content, null, title), + external_react_["createElement"](Arrow, null), + external_react_["createElement"](Gap, null))); + }; + return Tooltip; +}(external_react_["Component"])); + +var Tooltip_templateObject_1, Tooltip_templateObject_2, Tooltip_templateObject_3, Tooltip_templateObject_4, Tooltip_templateObject_5; + +// CONCATENATED MODULE: ./src/services/ClipboardService.ts +var isSupported = typeof document !== 'undefined' && document.queryCommandSupported && document.queryCommandSupported('copy'); +var ClipboardService = /** @class */ (function () { + function ClipboardService() { + } + ClipboardService.isSupported = function () { + return isSupported; + }; + ClipboardService.selectElement = function (element) { + var range; + var selection; + if (document.body.createTextRange) { + range = document.body.createTextRange(); + range.moveToElementText(element); + range.select(); + } + else if (document.createRange && window.getSelection) { + selection = window.getSelection(); + range = document.createRange(); + range.selectNodeContents(element); + selection.removeAllRanges(); + selection.addRange(range); + } + }; + ClipboardService.deselect = function () { + if (document.selection) { + document.selection.empty(); + } + else if (window.getSelection) { + var selection = window.getSelection(); + if (selection) { + selection.removeAllRanges(); + } + } + }; + ClipboardService.copySelected = function () { + var result; + try { + result = document.execCommand('copy'); + } + catch (err) { + result = false; + } + return result; + }; + ClipboardService.copyElement = function (element) { + ClipboardService.selectElement(element); + var res = ClipboardService.copySelected(); + if (res) { + ClipboardService.deselect(); + } + return res; + }; + ClipboardService.copyCustom = function (text) { + var textArea = document.createElement('textarea'); + textArea.style.position = 'fixed'; + textArea.style.top = '0'; + textArea.style.left = '0'; // Ensure it has a small width and height. Setting to 1px / 1em + // doesn't work as this gives a negative w/h on some browsers. + textArea.style.width = '2em'; + textArea.style.height = '2em'; // We don't need padding, reducing the size if it does flash render. + textArea.style.padding = '0'; // Clean up any borders. + textArea.style.border = 'none'; + textArea.style.outline = 'none'; + textArea.style.boxShadow = 'none'; // Avoid flash of white box if rendered for any reason. + textArea.style.background = 'transparent'; + textArea.value = text; + document.body.appendChild(textArea); + textArea.select(); + var res = ClipboardService.copySelected(); + document.body.removeChild(textArea); + return res; + }; + return ClipboardService; +}()); + + +// CONCATENATED MODULE: ./src/common-elements/CopyButtonWrapper.tsx + + + + +var CopyButtonWrapper_CopyButtonWrapper = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(CopyButtonWrapper, _super); + function CopyButtonWrapper(props) { + var _this = _super.call(this, props) || this; + _this.copy = function () { + var content = typeof _this.props.data === 'string' ? _this.props.data : JSON.stringify(_this.props.data, null, 2); + ClipboardService.copyCustom(content); + _this.showTooltip(); + }; + _this.renderCopyButton = function () { + return external_react_["createElement"]("button", { onClick: _this.copy }, + external_react_["createElement"](Tooltip_Tooltip, { title: ClipboardService.isSupported() ? 'Copied' : 'Not supported in your browser', open: _this.state.tooltipShown }, "Copy")); + }; + _this.state = { + tooltipShown: false + }; + return _this; + } + CopyButtonWrapper.prototype.render = function () { + return this.props.children({ + renderCopyButton: this.renderCopyButton + }); + }; + CopyButtonWrapper.prototype.showTooltip = function () { + var _this = this; + this.setState({ + tooltipShown: true + }); + setTimeout(function () { + _this.setState({ + tooltipShown: false + }); + }, 1500); + }; + return CopyButtonWrapper; +}(external_react_["PureComponent"])); + + +// CONCATENATED MODULE: ./src/utils/jsonToHtml.ts +var jsonToHtml_level = 1; +function jsonToHTML(json, maxExpandLevel) { + jsonToHtml_level = 1; + var output = ''; + output += '
'; + output += ''; + output += valueToHTML(json, maxExpandLevel); + output += ''; + output += '
'; + return output; +} +function htmlEncode(t) { + return t !== undefined ? t.toString().replace(/&/g, '&').replace(/"/g, '"').replace(//g, '>') : ''; +} +function stringifyStringLiteral(str) { + return JSON.stringify(str).slice(1, -1); +} +function decorateWithSpan(value, className) { + return '' + htmlEncode(value) + ''; +} +function punctuation(val) { + return '' + val + ''; +} +function valueToHTML(value, maxExpandLevel) { + var valueType = typeof value; + var output = ''; + if (value === undefined || value === null) { + output += decorateWithSpan('null', 'token keyword'); + } + else if (value && value.constructor === Array) { + jsonToHtml_level++; + output += arrayToHTML(value, maxExpandLevel); + jsonToHtml_level--; + } + else if (value && value.constructor === Date) { + output += decorateWithSpan('"' + value.toISOString() + '"', 'token string'); + } + else if (valueType === 'object') { + jsonToHtml_level++; + output += objectToHTML(value, maxExpandLevel); + jsonToHtml_level--; + } + else if (valueType === 'number') { + output += decorateWithSpan(value, 'token number'); + } + else if (valueType === 'string') { + if (/^(http|https):\/\/[^\s]+$/.test(value)) { + output += decorateWithSpan('"', 'token string') + '' + htmlEncode(stringifyStringLiteral(value)) + '' + decorateWithSpan('"', 'token string'); + } + else { + output += decorateWithSpan('"' + stringifyStringLiteral(value) + '"', 'token string'); + } + } + else if (valueType === 'boolean') { + output += decorateWithSpan(value, 'token boolean'); + } + return output; +} +function arrayToHTML(json, maxExpandLevel) { + var collapsed = jsonToHtml_level > maxExpandLevel ? 'collapsed' : ''; + var output = "
" + punctuation('[') + "
    "; + var hasContents = false; + var length = json.length; + for (var i = 0; i < length; i++) { + hasContents = true; + output += '
  • '; + } + output += "
" + punctuation(']'); + if (!hasContents) { + output = punctuation('[ ]'); + } + return output; +} +function objectToHTML(json, maxExpandLevel) { + var collapsed = jsonToHtml_level > maxExpandLevel ? 'collapsed' : ''; + var keys = Object.keys(json); + var length = keys.length; + var output = "
" + punctuation('{') + "
    "; + var hasContents = false; + for (var i = 0; i < length; i++) { + var key = keys[i]; + hasContents = true; + output += '
  • '; + } + output += "
" + punctuation('}'); + if (!hasContents) { + output = punctuation('{ }'); + } + return output; +} + +// CONCATENATED MODULE: ./src/components/JsonViewer/style.ts + + +var jsonStyles = css(style_templateObject_1 || (style_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n .redoc-json > .collapser {\n display: none;\n }\n\n font-family: ", ";\n font-size: ", ";\n\n white-space: ", ";\n contain: content;\n overflow-x: auto;\n\n .callback-function {\n color: gray;\n }\n\n .collapser:after {\n content: '-';\n cursor: pointer;\n }\n\n .collapsed > .collapser:after {\n content: '+';\n cursor: pointer;\n }\n\n .ellipsis:after {\n content: ' \u2026 ';\n }\n\n .collapsible {\n margin-left: 2em;\n }\n\n .hoverable {\n padding-top: 1px;\n padding-bottom: 1px;\n padding-left: 2px;\n padding-right: 2px;\n border-radius: 2px;\n }\n\n .hovered {\n background-color: rgba(235, 238, 249, 1);\n }\n\n .collapser {\n padding-right: 6px;\n padding-left: 6px;\n }\n\n ul {\n list-style-type: none;\n padding: 0px;\n margin: 0px 0px 0px 26px;\n }\n\n li {\n position: relative;\n display: block;\n }\n\n .hoverable {\n display: inline-block;\n }\n\n .selected {\n outline-style: solid;\n outline-width: 1px;\n outline-style: dotted;\n }\n\n .collapsed > .collapsible {\n display: none;\n }\n\n .ellipsis {\n display: none;\n }\n\n .collapsed > .ellipsis {\n display: inherit;\n }\n\n .collapser {\n position: absolute;\n top: 1px;\n left: -1.5em;\n cursor: default;\n user-select: none;\n -webkit-user-select: none;\n }\n"], ["\n .redoc-json > .collapser {\n display: none;\n }\n\n font-family: ", ";\n font-size: ", ";\n\n white-space: ", + ";\n contain: content;\n overflow-x: auto;\n\n .callback-function {\n color: gray;\n }\n\n .collapser:after {\n content: '-';\n cursor: pointer;\n }\n\n .collapsed > .collapser:after {\n content: '+';\n cursor: pointer;\n }\n\n .ellipsis:after {\n content: ' \u2026 ';\n }\n\n .collapsible {\n margin-left: 2em;\n }\n\n .hoverable {\n padding-top: 1px;\n padding-bottom: 1px;\n padding-left: 2px;\n padding-right: 2px;\n border-radius: 2px;\n }\n\n .hovered {\n background-color: rgba(235, 238, 249, 1);\n }\n\n .collapser {\n padding-right: 6px;\n padding-left: 6px;\n }\n\n ul {\n list-style-type: none;\n padding: 0px;\n margin: 0px 0px 0px 26px;\n }\n\n li {\n position: relative;\n display: block;\n }\n\n .hoverable {\n display: inline-block;\n }\n\n .selected {\n outline-style: solid;\n outline-width: 1px;\n outline-style: dotted;\n }\n\n .collapsed > .collapsible {\n display: none;\n }\n\n .ellipsis {\n display: none;\n }\n\n .collapsed > .ellipsis {\n display: inherit;\n }\n\n .collapser {\n position: absolute;\n top: 1px;\n left: -1.5em;\n cursor: default;\n user-select: none;\n -webkit-user-select: none;\n }\n"])), function (props) { return props.theme.typography.code.fontFamily; }, function (props) { return props.theme.typography.code.fontSize; }, function (_a) { + var theme = _a.theme; + return theme.typography.code.wrap ? 'pre-wrap' : 'pre'; +}); +var style_templateObject_1; + +// CONCATENATED MODULE: ./src/components/JsonViewer/JsonViewer.tsx + + + + + + + + + +var JsonViewerWrap = styled_components.div(JsonViewer_templateObject_1 || (JsonViewer_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n &:hover > ", " {\n opacity: 1;\n }\n"], ["\n &:hover > ", " {\n opacity: 1;\n }\n"])), SampleControls); +var JsonViewer_Json = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(Json, _super); + function Json() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.renderInner = function (_a) { + var renderCopyButton = _a.renderCopyButton; + return external_react_["createElement"](JsonViewerWrap, null, + external_react_["createElement"](SampleControls, null, + renderCopyButton(), + external_react_["createElement"]("button", { onClick: _this.expandAll }, " Expand all "), + external_react_["createElement"]("button", { onClick: _this.collapseAll }, " Collapse all ")), + external_react_["createElement"](OptionsContext.Consumer, null, function (options) { return external_react_["createElement"](PrismDiv, { className: _this.props.className, ref: function (node) { return _this.node = node; }, dangerouslySetInnerHTML: { + __html: jsonToHTML(_this.props.data, options.jsonSampleExpandLevel) + } }); })); + }; + _this.expandAll = function () { + var elements = _this.node.getElementsByClassName('collapsible'); + for (var _i = 0, _a = Array.prototype.slice.call(elements); _i < _a.length; _i++) { + var collapsed = _a[_i]; + collapsed.parentNode.classList.remove('collapsed'); + } + }; + _this.collapseAll = function () { + var elements = _this.node.getElementsByClassName('collapsible'); // skip first item to avoid collapsing whole object/array + var elementsArr = Array.prototype.slice.call(elements, 1); + for (var _i = 0, elementsArr_1 = elementsArr; _i < elementsArr_1.length; _i++) { + var expanded = elementsArr_1[_i]; + expanded.parentNode.classList.add('collapsed'); + } + }; + _this.clickListener = function (event) { + var collapsed; + var target = event.target; + if (target.className === 'collapser') { + collapsed = target.parentElement.getElementsByClassName('collapsible')[0]; + if (collapsed.parentElement.classList.contains('collapsed')) { + collapsed.parentElement.classList.remove('collapsed'); + } + else { + collapsed.parentElement.classList.add('collapsed'); + } + } + }; + return _this; + } + Json.prototype.render = function () { + return external_react_["createElement"](CopyButtonWrapper_CopyButtonWrapper, { data: this.props.data }, this.renderInner); + }; + Json.prototype.componentDidMount = function () { + this.node.addEventListener('click', this.clickListener); + }; + Json.prototype.componentWillUnmount = function () { + this.node.removeEventListener('click', this.clickListener); + }; + return Json; +}(external_react_["PureComponent"])); +var JsonViewer = styled_components(JsonViewer_Json)(JsonViewer_templateObject_2 || (JsonViewer_templateObject_2 = Object(external_tslib_["__makeTemplateObject"])(["\n ", ";\n"], ["\n ", ";\n"])), jsonStyles); +var JsonViewer_templateObject_1, JsonViewer_templateObject_2; + +// CONCATENATED MODULE: ./src/components/SourceCode/SourceCode.tsx + + + + + +var SourceCode_SourceCode = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(SourceCode, _super); + function SourceCode() { + return _super !== null && _super.apply(this, arguments) || this; + } + SourceCode.prototype.render = function () { + var _a = this.props, source = _a.source, lang = _a.lang; + return external_react_["createElement"](StyledPre, { dangerouslySetInnerHTML: { + __html: highlight(source, lang) + } }); + }; + return SourceCode; +}(external_react_["PureComponent"])); + +var SourceCode_SourceCodeWithCopy = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(SourceCodeWithCopy, _super); + function SourceCodeWithCopy() { + return _super !== null && _super.apply(this, arguments) || this; + } + SourceCodeWithCopy.prototype.render = function () { + var _this = this; + return external_react_["createElement"](CopyButtonWrapper_CopyButtonWrapper, { data: this.props.source }, function (_a) { + var renderCopyButton = _a.renderCopyButton; + return external_react_["createElement"](SampleControlsWrap, null, + external_react_["createElement"](SampleControls, null, renderCopyButton()), + external_react_["createElement"](SourceCode_SourceCode, { lang: _this.props.lang, source: _this.props.source })); + }); + }; + return SourceCodeWithCopy; +}(external_react_["PureComponent"])); + + +// CONCATENATED MODULE: ./src/components/PayloadSamples/ExampleValue.tsx + + + + +function ExampleValue(_a) { + var value = _a.value, mimeType = _a.mimeType; + if (isJsonLike(mimeType)) { + return external_react_["createElement"](JsonViewer, { data: value }); + } + else { + if (typeof value === 'object') { + // just in case example was cached as json but used as non-json + value = JSON.stringify(value, null, 2); + } + return external_react_["createElement"](SourceCode_SourceCodeWithCopy, { lang: langFromMime(mimeType), source: value }); + } +} + +// CONCATENATED MODULE: ./src/components/PayloadSamples/exernalExampleHook.ts + + +function useExternalExample(example, mimeType) { + var _this = this; + var _a = Object(external_react_["useState"])(true), setIsLoading = _a[1]; // to trigger component reload + var value = Object(external_react_["useRef"])(undefined); + var prevRef = Object(external_react_["useRef"])(undefined); + if (prevRef.current !== example) { + value.current = undefined; + } + prevRef.current = example; + Object(external_react_["useEffect"])(function () { + var load = function () { return Object(external_tslib_["__awaiter"])(_this, void 0, void 0, function () { + var _a, e_1; + return Object(external_tslib_["__generator"])(this, function (_b) { + switch (_b.label) { + case 0: + setIsLoading(true); + _b.label = 1; + case 1: + _b.trys.push([1, 3, , 4]); + _a = value; + return [4 /*yield*/, example.getExternalValue(mimeType)]; + case 2: + _a.current = _b.sent(); + return [3 /*break*/, 4]; + case 3: + e_1 = _b.sent(); + value.current = e_1; + return [3 /*break*/, 4]; + case 4: + setIsLoading(false); + return [2 /*return*/]; + } + }); + }); }; + load(); + }, [example, mimeType]); + return value.current; +} + +// CONCATENATED MODULE: ./src/components/PayloadSamples/Example.tsx + + + + +function Example(_a) { + var example = _a.example, mimeType = _a.mimeType; + if (example.value === undefined && example.externalValueUrl) { + return external_react_["createElement"](ExternalExample, { example: example, mimeType: mimeType }); + } + else { + return external_react_["createElement"](ExampleValue, { value: example.value, mimeType: mimeType }); + } +} +function ExternalExample(_a) { + var example = _a.example, mimeType = _a.mimeType; + var value = useExternalExample(example, mimeType); + if (value === undefined) { + return external_react_["createElement"]("span", null, "Loading..."); + } + if (value instanceof Error) { + return external_react_["createElement"](StyledPre, null, + "Error loading external example: ", + external_react_["createElement"]("br", null), + external_react_["createElement"]("a", { className: 'token string', href: example.externalValueUrl, target: "_blank", rel: "noopener noreferrer" }, example.externalValueUrl)); + } + return external_react_["createElement"](ExampleValue, { value: value, mimeType: mimeType }); +} + +// CONCATENATED MODULE: ./src/components/PayloadSamples/styled.elements.ts + + + + +var styled_elements_MimeLabel = styled_components.div(PayloadSamples_styled_elements_templateObject_1 || (PayloadSamples_styled_elements_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n padding: 0.9em;\n background-color: ", ";\n margin: 0 0 10px 0;\n display: block;\n font-family: ", ";\n font-size: 0.929em;\n line-height: 1.5em;\n"], ["\n padding: 0.9em;\n background-color: ", + ";\n margin: 0 0 10px 0;\n display: block;\n font-family: ", + ";\n font-size: 0.929em;\n line-height: 1.5em;\n"])), function (_a) { + var theme = _a.theme; + return Object(external_polished_["transparentize"])(0.6, theme.rightPanel.backgroundColor); +}, function (_a) { + var theme = _a.theme; + return theme.typography.headings.fontFamily; +}); +var DropdownLabel = styled_components.span(PayloadSamples_styled_elements_templateObject_2 || (PayloadSamples_styled_elements_templateObject_2 = Object(external_tslib_["__makeTemplateObject"])(["\n font-family: ", ";\n font-size: 12px;\n position: absolute;\n z-index: 1;\n top: -11px;\n left: 12px;\n font-weight: ", ";\n color: ", ";\n"], ["\n font-family: ", + ";\n font-size: 12px;\n position: absolute;\n z-index: 1;\n top: -11px;\n left: 12px;\n font-weight: ", + ";\n color: ", + ";\n"])), function (_a) { + var theme = _a.theme; + return theme.typography.headings.fontFamily; +}, function (_a) { + var theme = _a.theme; + return theme.typography.fontWeightBold; +}, function (_a) { + var theme = _a.theme; + return Object(external_polished_["transparentize"])(0.6, theme.rightPanel.textColor); +}); +var DropdownWrapper = styled_components.div(styled_elements_templateObject_3 || (styled_elements_templateObject_3 = Object(external_tslib_["__makeTemplateObject"])(["\n position: relative;\n"], ["\n position: relative;\n"]))); +var InvertedSimpleDropdown = styled_components(StyledDropdown)(styled_elements_templateObject_4 || (styled_elements_templateObject_4 = Object(external_tslib_["__makeTemplateObject"])(["\n && {\n margin-left: 10px;\n text-transform: none;\n font-size: 0.929em;\n margin: 0 0 10px 0;\n display: block;\n background-color: ", ";\n font-size: 1em;\n border: none;\n padding: 0.9em 1.6em 0.9em 0.9em;\n box-shadow: none;\n &:hover,\n &:focus-within {\n border: none;\n box-shadow: none;\n }\n &:focus-within {\n background-color: ", ";\n }\n\n .dropdown-arrow {\n border-top-color: ", ";\n }\n .dropdown-selector-value {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n color: ", ";\n }\n\n .dropdown-selector-content {\n margin: 0;\n margin-top: 2px;\n .dropdown-option {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n }\n }\n }\n"], ["\n && {\n margin-left: 10px;\n text-transform: none;\n font-size: 0.929em;\n margin: 0 0 10px 0;\n display: block;\n background-color: ", + ";\n font-size: 1em;\n border: none;\n padding: 0.9em 1.6em 0.9em 0.9em;\n box-shadow: none;\n &:hover,\n &:focus-within {\n border: none;\n box-shadow: none;\n }\n &:focus-within {\n background-color: ", + ";\n }\n\n .dropdown-arrow {\n border-top-color: ", + ";\n }\n .dropdown-selector-value {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n color: ", + ";\n }\n\n .dropdown-selector-content {\n margin: 0;\n margin-top: 2px;\n .dropdown-option {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n }\n }\n }\n"])), function (_a) { + var theme = _a.theme; + return Object(external_polished_["transparentize"])(0.6, theme.rightPanel.backgroundColor); +}, function (_a) { + var theme = _a.theme; + return Object(external_polished_["transparentize"])(0.3, theme.rightPanel.backgroundColor); +}, function (_a) { + var theme = _a.theme; + return theme.rightPanel.textColor; +}, function (_a) { + var theme = _a.theme; + return theme.rightPanel.textColor; +}); +var NoSampleLabel = styled_components.div(styled_elements_templateObject_5 || (styled_elements_templateObject_5 = Object(external_tslib_["__makeTemplateObject"])(["\n font-family: ", ";\n font-size: 12px;\n color: #ee807f;\n"], ["\n font-family: ", ";\n font-size: 12px;\n color: #ee807f;\n"])), function (props) { return props.theme.typography.code.fontFamily; }); +var PayloadSamples_styled_elements_templateObject_1, PayloadSamples_styled_elements_templateObject_2, styled_elements_templateObject_3, styled_elements_templateObject_4, styled_elements_templateObject_5; + +// CONCATENATED MODULE: ./src/components/PayloadSamples/MediaTypeSamples.tsx + + + + + + +var MediaTypeSamples_MediaTypeSamples = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(MediaTypeSamples, _super); + function MediaTypeSamples() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.state = { + activeIdx: 0 + }; + _this.switchMedia = function (_a) { + var idx = _a.idx; + _this.setState({ + activeIdx: idx + }); + }; + return _this; + } + MediaTypeSamples.prototype.render = function () { + var activeIdx = this.state.activeIdx; + var examples = this.props.mediaType.examples || {}; + var mimeType = this.props.mediaType.name; + var noSample = external_react_["createElement"](NoSampleLabel, null, "No sample"); + var examplesNames = Object.keys(examples); + if (examplesNames.length === 0) { + return noSample; + } + if (examplesNames.length > 1) { + var options = examplesNames.map(function (name, idx) { + return { + value: examples[name].summary || name, + idx: idx + }; + }); + var example = examples[examplesNames[activeIdx]]; + var description = example.description; + return external_react_["createElement"](SamplesWrapper, null, + external_react_["createElement"](DropdownWrapper, null, + external_react_["createElement"](DropdownLabel, null, "Example"), + this.props.renderDropdown({ + value: options[activeIdx].value, + options: options, + onChange: this.switchMedia, + ariaLabel: 'Example' + })), + external_react_["createElement"]("div", null, + description && external_react_["createElement"](Markdown_Markdown, { source: description }), + external_react_["createElement"](Example, { example: example, mimeType: mimeType }))); + } + else { + var example = examples[examplesNames[0]]; + return external_react_["createElement"](SamplesWrapper, null, + example.description && external_react_["createElement"](Markdown_Markdown, { source: example.description }), + external_react_["createElement"](Example, { example: example, mimeType: mimeType })); + } + }; + return MediaTypeSamples; +}(external_react_["Component"])); + +var SamplesWrapper = styled_components.div(MediaTypeSamples_templateObject_1 || (MediaTypeSamples_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n margin-top: 15px;\n"], ["\n margin-top: 15px;\n"]))); +var MediaTypeSamples_templateObject_1; + +// EXTERNAL MODULE: external "mobx-react" +var external_mobx_react_ = __webpack_require__(3); + +// CONCATENATED MODULE: ./src/common-elements/fields.ts + + + + + +var ClickablePropertyNameCell = styled_components(PropertyNameCell)(fields_templateObject_1 || (fields_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n button {\n background-color: transparent;\n border: 0;\n outline: 0;\n font-size: 13px;\n font-family: ", ";\n cursor: pointer;\n padding: 0;\n color: ", ";\n &:focus {\n font-weight: ", ";\n }\n }\n ", " {\n height: ", ";\n width: ", ";\n polygon {\n fill: ", ";\n }\n }\n"], ["\n button {\n background-color: transparent;\n border: 0;\n outline: 0;\n font-size: 13px;\n font-family: ", ";\n cursor: pointer;\n padding: 0;\n color: ", ";\n &:focus {\n font-weight: ", + ";\n }\n }\n ", " {\n height: ", + ";\n width: ", + ";\n polygon {\n fill: ", + ";\n }\n }\n"])), function (props) { return props.theme.typography.code.fontFamily; }, function (props) { return props.theme.colors.text.primary; }, function (_a) { + var theme = _a.theme; + return theme.typography.fontWeightBold; +}, ShelfIcon, function (_a) { + var theme = _a.theme; + return theme.schema.arrow.size; +}, function (_a) { + var theme = _a.theme; + return theme.schema.arrow.size; +}, function (_a) { + var theme = _a.theme; + return theme.schema.arrow.color; +}); +var FieldLabel = styled_components.span(fields_templateObject_2 || (fields_templateObject_2 = Object(external_tslib_["__makeTemplateObject"])(["\n vertical-align: middle;\n font-size: ", ";\n line-height: 20px;\n"], ["\n vertical-align: middle;\n font-size: ", + ";\n line-height: 20px;\n"])), function (_a) { + var theme = _a.theme; + return theme.typography.code.fontSize; +}); +var TypePrefix = styled_components(FieldLabel)(fields_templateObject_3 || (fields_templateObject_3 = Object(external_tslib_["__makeTemplateObject"])(["\n color: ", ";\n"], ["\n color: ", ";\n"])), function (props) { return Object(external_polished_["transparentize"])(0.2, props.theme.schema.typeNameColor); }); +var TypeName = styled_components(FieldLabel)(fields_templateObject_4 || (fields_templateObject_4 = Object(external_tslib_["__makeTemplateObject"])(["\n color: ", ";\n"], ["\n color: ", ";\n"])), function (props) { return props.theme.schema.typeNameColor; }); +var TypeTitle = styled_components(FieldLabel)(fields_templateObject_5 || (fields_templateObject_5 = Object(external_tslib_["__makeTemplateObject"])(["\n color: ", ";\n word-break: break-word;\n"], ["\n color: ", ";\n word-break: break-word;\n"])), function (props) { return props.theme.schema.typeTitleColor; }); +var TypeFormat = TypeName; +var RequiredLabel = styled_components(FieldLabel.withComponent('div'))(fields_templateObject_6 || (fields_templateObject_6 = Object(external_tslib_["__makeTemplateObject"])(["\n color: ", ";\n font-size: ", ";\n font-weight: normal;\n margin-left: 20px;\n line-height: 1;\n"], ["\n color: ", ";\n font-size: ", ";\n font-weight: normal;\n margin-left: 20px;\n line-height: 1;\n"])), function (props) { return props.theme.schema.requireLabelColor; }, function (props) { return props.theme.schema.labelsTextSize; }); +var RecursiveLabel = styled_components(FieldLabel)(fields_templateObject_7 || (fields_templateObject_7 = Object(external_tslib_["__makeTemplateObject"])(["\n color: ", ";\n font-size: 13px;\n"], ["\n color: ", + ";\n font-size: 13px;\n"])), function (_a) { + var theme = _a.theme; + return theme.colors.warning.main; +}); +var NullableLabel = styled_components(FieldLabel)(fields_templateObject_8 || (fields_templateObject_8 = Object(external_tslib_["__makeTemplateObject"])(["\n color: #3195a6;\n font-size: 13px;\n"], ["\n color: #3195a6;\n font-size: 13px;\n"]))); +var PatternLabel = styled_components(FieldLabel)(fields_templateObject_9 || (fields_templateObject_9 = Object(external_tslib_["__makeTemplateObject"])(["\n color: #3195a6;\n &::before,\n &::after {\n font-weight: bold;\n }\n"], ["\n color: #3195a6;\n &::before,\n &::after {\n font-weight: bold;\n }\n"]))); +var fields_ExampleValue = styled_components(FieldLabel)(templateObject_10 || (templateObject_10 = Object(external_tslib_["__makeTemplateObject"])(["\n border-radius: 2px;\n ", ";\n & + & {\n margin-left: 0;\n }\n ", ";\n"], ["\n border-radius: 2px;\n ", + ";\n & + & {\n margin-left: 0;\n }\n ", ";\n"])), function (_a) { + var theme = _a.theme; + return "\n background-color: " + Object(external_polished_["transparentize"])(0.95, theme.colors.text.primary) + ";\n color: " + Object(external_polished_["transparentize"])(0.1, theme.colors.text.primary) + ";\n\n padding: 0 " + theme.spacing.unit + "px;\n border: 1px solid " + Object(external_polished_["transparentize"])(0.9, theme.colors.text.primary) + ";\n font-family: " + theme.typography.code.fontFamily + ";\n}"; +}, extensionsHook('ExampleValue')); +var ExtensionValue = styled_components(fields_ExampleValue)(templateObject_11 || (templateObject_11 = Object(external_tslib_["__makeTemplateObject"])([""], [""]))); +var ConstraintItem = styled_components(FieldLabel)(templateObject_12 || (templateObject_12 = Object(external_tslib_["__makeTemplateObject"])(["\n border-radius: 2px;\n ", ";\n & + & {\n margin-left: 0;\n }\n ", ";\n"], ["\n border-radius: 2px;\n ", + ";\n & + & {\n margin-left: 0;\n }\n ", ";\n"])), function (_a) { + var theme = _a.theme; + return "\n background-color: " + Object(external_polished_["transparentize"])(0.95, theme.colors.primary.light) + ";\n color: " + Object(external_polished_["transparentize"])(0.1, theme.colors.primary.main) + ";\n\n margin: 0 " + theme.spacing.unit + "px;\n padding: 0 " + theme.spacing.unit + "px;\n border: 1px solid " + Object(external_polished_["transparentize"])(0.9, theme.colors.primary.main) + ";\n font-family: " + theme.typography.code.fontFamily + ";\n}"; +}, extensionsHook('ConstraintItem')); +var fields_templateObject_1, fields_templateObject_2, fields_templateObject_3, fields_templateObject_4, fields_templateObject_5, fields_templateObject_6, fields_templateObject_7, fields_templateObject_8, fields_templateObject_9, templateObject_10, templateObject_11, templateObject_12; + +// CONCATENATED MODULE: ./src/components/ExternalDocumentation/ExternalDocumentation.tsx + + + + + +var LinkWrap = styled_components.div(ExternalDocumentation_templateObject_1 || (ExternalDocumentation_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n ", ";\n ", "\n"], ["\n ", ";\n ", + "\n"])), linksCss, function (_a) { + var compact = _a.compact; + return !compact ? 'margin: 1em 0' : ''; +}); +var ExternalDocumentation_ExternalDocumentation = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(ExternalDocumentation, _super); + function ExternalDocumentation() { + return _super !== null && _super.apply(this, arguments) || this; + } + ExternalDocumentation.prototype.render = function () { + var externalDocs = this.props.externalDocs; + if (!externalDocs || !externalDocs.url) { + return null; + } + return external_react_["createElement"](LinkWrap, { compact: this.props.compact }, + external_react_["createElement"]("a", { href: externalDocs.url }, externalDocs.description || externalDocs.url)); + }; + ExternalDocumentation = Object(external_tslib_["__decorate"])([ + external_mobx_react_["observer"] + ], ExternalDocumentation); + return ExternalDocumentation; +}(external_react_["Component"])); + +var ExternalDocumentation_templateObject_1; + +// CONCATENATED MODULE: ./src/components/Fields/EnumValues.tsx + + + + + + +var EnumValues_EnumValues = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(EnumValues, _super); + function EnumValues() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.state = { + collapsed: true + }; + return _this; + } + EnumValues.prototype.toggle = function () { + this.setState({ + collapsed: !this.state.collapsed + }); + }; + EnumValues.prototype.render = function () { + var _this = this; + var _a = this.props, values = _a.values, type = _a.type; + var collapsed = this.state.collapsed; // TODO: provide context interface in more elegant way + var _b = this.context, enumSkipQuotes = _b.enumSkipQuotes, maxDisplayedEnumValues = _b.maxDisplayedEnumValues; + if (!values.length) { + return null; + } + var displayedItems = this.state.collapsed && maxDisplayedEnumValues ? values.slice(0, maxDisplayedEnumValues) : values; + var showToggleButton = maxDisplayedEnumValues ? values.length > maxDisplayedEnumValues : false; + var toggleButtonText = maxDisplayedEnumValues ? collapsed ? "\u2026 " + (values.length - maxDisplayedEnumValues) + " more" : 'Hide' : ''; + return external_react_["createElement"]("div", null, + external_react_["createElement"](FieldLabel, null, + type === 'array' ? l('enumArray') : '', + ' ', + values.length === 1 ? l('enumSingleValue') : l('enum'), + ":"), + ' ', + displayedItems.map(function (value, idx) { + var exampleValue = enumSkipQuotes ? value : JSON.stringify(value); + return external_react_["createElement"](external_react_["Fragment"], { key: idx }, + external_react_["createElement"](fields_ExampleValue, null, exampleValue), + ' '); + }), + showToggleButton ? external_react_["createElement"](ToggleButton, { onClick: function () { + _this.toggle(); + } }, toggleButtonText) : null); + }; + EnumValues.contextType = OptionsContext; + return EnumValues; +}(external_react_["PureComponent"])); + +var ToggleButton = styled_components.span(EnumValues_templateObject_1 || (EnumValues_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n color: ", ";\n vertical-align: middle;\n font-size: 13px;\n line-height: 20px;\n padding: 0 5px;\n cursor: pointer;\n"], ["\n color: ", ";\n vertical-align: middle;\n font-size: 13px;\n line-height: 20px;\n padding: 0 5px;\n cursor: pointer;\n"])), function (props) { return props.theme.colors.primary.main; }); +var EnumValues_templateObject_1; + +// CONCATENATED MODULE: ./src/components/Fields/Extensions.tsx + + + + + + +var Extension = styled_components(StyledMarkdownBlock)(Extensions_templateObject_1 || (Extensions_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n margin: 2px 0;\n"], ["\n margin: 2px 0;\n"]))); +var Extensions_Extensions = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(Extensions, _super); + function Extensions() { + return _super !== null && _super.apply(this, arguments) || this; + } + Extensions.prototype.render = function () { + var exts = this.props.extensions; + return external_react_["createElement"](OptionsContext.Consumer, null, function (options) { return external_react_["createElement"](external_react_["Fragment"], null, options.showExtensions && Object.keys(exts).map(function (key) { return external_react_["createElement"](Extension, { key: key }, + external_react_["createElement"](FieldLabel, null, + " ", + key.substring(2), + ": "), + ' ', + external_react_["createElement"](ExtensionValue, null, typeof exts[key] === 'string' ? exts[key] : JSON.stringify(exts[key]))); })); }); + }; + return Extensions; +}(external_react_["PureComponent"])); + +var Extensions_templateObject_1; + +// CONCATENATED MODULE: ./src/components/Fields/FieldContstraints.tsx + + + +var FieldContstraints_ConstraintsView = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(ConstraintsView, _super); + function ConstraintsView() { + return _super !== null && _super.apply(this, arguments) || this; + } + ConstraintsView.prototype.render = function () { + if (this.props.constraints.length === 0) { + return null; + } + return external_react_["createElement"]("span", null, + ' ', + this.props.constraints.map(function (constraint) { return external_react_["createElement"](ConstraintItem, { key: constraint }, + " ", + constraint, + " "); })); + }; + return ConstraintsView; +}(external_react_["PureComponent"])); + + +// CONCATENATED MODULE: ./src/components/Fields/FieldDetail.tsx + + + +var FieldDetail_FieldDetail = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(FieldDetail, _super); + function FieldDetail() { + return _super !== null && _super.apply(this, arguments) || this; + } + FieldDetail.prototype.render = function () { + if (this.props.value === undefined) { + return null; + } + var value = this.props.raw ? this.props.value : JSON.stringify(this.props.value); + return external_react_["createElement"]("div", null, + external_react_["createElement"](FieldLabel, null, + " ", + this.props.label, + " "), + " ", + external_react_["createElement"](fields_ExampleValue, null, value)); + }; + return FieldDetail; +}(external_react_["PureComponent"])); + + +// CONCATENATED MODULE: ./src/components/Fields/FieldDetails.tsx + + + + + + + + + + + + + +var MAX_PATTERN_LENGTH = 45; +var FieldDetails_FieldDetails = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(FieldDetails, _super); + function FieldDetails() { + return _super !== null && _super.apply(this, arguments) || this; + } + FieldDetails.prototype.render = function () { + var _a = this.props, showExamples = _a.showExamples, field = _a.field, renderDiscriminatorSwitch = _a.renderDiscriminatorSwitch; + var _b = this.context, enumSkipQuotes = _b.enumSkipQuotes, hideSchemaTitles = _b.hideSchemaTitles; + var schema = field.schema, description = field.description, example = field.example, deprecated = field.deprecated; + var rawDefault = !!enumSkipQuotes || field.in === 'header'; // having quotes around header field default values is confusing and inappropriate + var exampleField = null; + if (showExamples && example !== undefined) { + var label = l('example') + ':'; + if (field.in && (field.style || field.serializationMime)) { + // decode for better readability in examples: see https://github.com/Redocly/redoc/issues/1138 + var serializedValue = decodeURIComponent(serializeParameterValue(field, example)); + exampleField = external_react_["createElement"](FieldDetail_FieldDetail, { label: label, value: serializedValue, raw: true }); + } + else { + exampleField = external_react_["createElement"](FieldDetail_FieldDetail, { label: label, value: example }); + } + } + return external_react_["createElement"]("div", null, + external_react_["createElement"]("div", null, + external_react_["createElement"](TypePrefix, null, schema.typePrefix), + external_react_["createElement"](TypeName, null, schema.displayType), + schema.displayFormat && external_react_["createElement"](TypeFormat, null, + ' ', + "<", + schema.displayFormat, + ">", + ' '), + schema.title && !hideSchemaTitles && external_react_["createElement"](TypeTitle, null, + " (", + schema.title, + ") "), + external_react_["createElement"](FieldContstraints_ConstraintsView, { constraints: schema.constraints }), + schema.nullable && external_react_["createElement"](NullableLabel, null, + " ", + l('nullable'), + " "), + schema.pattern && schema.pattern.length < MAX_PATTERN_LENGTH && external_react_["createElement"](PatternLabel, null, + " ", + schema.pattern, + " "), + schema.isCircular && external_react_["createElement"](RecursiveLabel, null, + " ", + l('recursive'), + " ")), + deprecated && external_react_["createElement"]("div", null, + external_react_["createElement"](Badge, { type: "warning" }, + " ", + l('deprecated'), + " ")), + external_react_["createElement"](FieldDetail_FieldDetail, { raw: rawDefault, label: l('default') + ':', value: schema.default }), + !renderDiscriminatorSwitch && external_react_["createElement"](EnumValues_EnumValues, { type: schema.type, values: schema.enum }), + ' ', + exampleField, + external_react_["createElement"](Extensions_Extensions, { extensions: Object(external_tslib_["__assign"])(Object(external_tslib_["__assign"])({}, field.extensions), schema.extensions) }), + external_react_["createElement"]("div", null, + external_react_["createElement"](Markdown_Markdown, { compact: true, source: description })), + schema.externalDocs && external_react_["createElement"](ExternalDocumentation_ExternalDocumentation, { externalDocs: schema.externalDocs, compact: true }), + renderDiscriminatorSwitch && renderDiscriminatorSwitch(this.props) || null); + }; + FieldDetails.contextType = OptionsContext; + return FieldDetails; +}(external_react_["PureComponent"])); + + +// CONCATENATED MODULE: ./src/components/Schema/ArraySchema.tsx + + + + + + +var PaddedSchema = styled_components.div(ArraySchema_templateObject_1 || (ArraySchema_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n padding-left: ", "px;\n"], ["\n padding-left: ", + "px;\n"])), function (_a) { + var theme = _a.theme; + return theme.spacing.unit * 2; +}); +var ArraySchema_ArraySchema = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(ArraySchema, _super); + function ArraySchema() { + return _super !== null && _super.apply(this, arguments) || this; + } + ArraySchema.prototype.render = function () { + var itemsSchema = this.props.schema.items; + var itemConstraintSchema = function (min, max) { + if (min === void 0) { min = undefined; } + if (max === void 0) { max = undefined; } + return ({ + type: 'array', + minItems: min, + maxItems: max + }); + }; + var minMaxItems = humanizeConstraints(itemConstraintSchema(itemsSchema.schema.minItems, itemsSchema.schema.maxItems)); + return external_react_["createElement"]("div", null, + external_react_["createElement"](ArrayOpenningLabel, null, + " Array (", + minMaxItems, + ")"), + external_react_["createElement"](PaddedSchema, null, + external_react_["createElement"](Schema_Schema, Object(external_tslib_["__assign"])({}, this.props, { schema: itemsSchema }))), + external_react_["createElement"](ArrayClosingLabel, null)); + }; + return ArraySchema; +}(external_react_["PureComponent"])); + +var ArraySchema_templateObject_1; + +// CONCATENATED MODULE: ./src/components/Fields/Field.tsx + + + + + + + + +var Field_Field = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(Field, _super); + function Field() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.toggle = function () { + if (_this.props.field.expanded === undefined && !_this.props.field.expandAll && _this.props.expandByDefault) { + _this.props.field.expanded = false; + } + else { + _this.props.field.toggle(); + } + }; + _this.handleKeyPress = function (e) { + if (e.key === 'Enter') { + e.preventDefault(); + _this.toggle(); + } + }; + return _this; + } + Field.prototype.render = function () { + var _a = this.props, className = _a.className, field = _a.field, isLast = _a.isLast, expandByDefault = _a.expandByDefault, expandAllFields = _a.expandAllFields; + var name = field.name, deprecated = field.deprecated, required = field.required, kind = field.kind; + var withSubSchema = !field.schema.isPrimitive && !field.schema.isCircular; + var expandChildren = field.expandAll === undefined ? expandAllFields : field.expandAll; + var expanded = field.expanded === undefined ? expandChildren || expandByDefault : field.expanded; + var paramName = withSubSchema ? external_react_["createElement"](ClickablePropertyNameCell, { className: deprecated ? 'deprecated' : '', kind: kind, title: name }, + external_react_["createElement"](PropertyBullet, null), + external_react_["createElement"]("button", { onClick: this.toggle, onKeyPress: this.handleKeyPress, "aria-label": "expand properties" }, + name, + external_react_["createElement"](ShelfIcon, { direction: expanded ? 'down' : 'right' })), + required && external_react_["createElement"](RequiredLabel, null, " required ")) : external_react_["createElement"](PropertyNameCell, { className: deprecated ? 'deprecated' : undefined, kind: kind, title: name }, + external_react_["createElement"](PropertyBullet, null), + name, + required && external_react_["createElement"](RequiredLabel, null, " required ")); + return external_react_["createElement"](external_react_["Fragment"], null, + external_react_["createElement"]("tr", { className: isLast ? 'last ' + className : className }, + paramName, + external_react_["createElement"](PropertyDetailsCell, null, + external_react_["createElement"](FieldDetails_FieldDetails, Object(external_tslib_["__assign"])({}, this.props)))), + expanded && withSubSchema && external_react_["createElement"]("tr", { key: field.name + 'inner' }, + external_react_["createElement"](PropertyCellWithInner, { colSpan: 2 }, + external_react_["createElement"](InnerPropertiesWrap, null, + external_react_["createElement"](Schema_Schema, { expandAllFields: expandAllFields, schema: field.schema, skipReadOnly: this.props.skipReadOnly, skipWriteOnly: this.props.skipWriteOnly, showTitle: this.props.showTitle }))))); + }; + Field = Object(external_tslib_["__decorate"])([ + external_mobx_react_["observer"] + ], Field); + return Field; +}(external_react_["Component"])); + + +// CONCATENATED MODULE: ./src/components/Schema/DiscriminatorDropdown.tsx + + + + +var DiscriminatorDropdown_DiscriminatorDropdown = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(DiscriminatorDropdown, _super); + function DiscriminatorDropdown() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.changeActiveChild = function (option) { + _this.props.parent.activateOneOf(option.idx); + }; + return _this; + } + DiscriminatorDropdown.prototype.sortOptions = function (options, enumValues) { + if (enumValues.length === 0) { + return; + } + var enumOrder = {}; + enumValues.forEach(function (enumItem, idx) { + enumOrder[enumItem] = idx; + }); + options.sort(function (a, b) { + return enumOrder[a.value] > enumOrder[b.value] ? 1 : -1; + }); + }; + DiscriminatorDropdown.prototype.render = function () { + var _a = this.props, parent = _a.parent, enumValues = _a.enumValues; + if (parent.oneOf === undefined) { + return null; + } + var options = parent.oneOf.map(function (subSchema, idx) { + return { + value: subSchema.title, + idx: idx + }; + }); + this.sortOptions(options, enumValues); + return external_react_["createElement"](StyledDropdown, { value: options[parent.activeOneOf].value, options: options, onChange: this.changeActiveChild }); + }; + DiscriminatorDropdown = Object(external_tslib_["__decorate"])([ + external_mobx_react_["observer"] + ], DiscriminatorDropdown); + return DiscriminatorDropdown; +}(external_react_["Component"])); + + +// CONCATENATED MODULE: ./src/components/Schema/ObjectSchema.tsx + + + + + + + + +var ObjectSchema_ObjectSchema = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(ObjectSchema, _super); + function ObjectSchema() { + return _super !== null && _super.apply(this, arguments) || this; + } + Object.defineProperty(ObjectSchema.prototype, "parentSchema", { + get: function () { + return this.props.discriminator.parentSchema; + }, + enumerable: false, + configurable: true + }); + ObjectSchema.prototype.render = function () { + var _this = this; + var _a = this.props, _b = _a.schema.fields, fields = _b === void 0 ? [] : _b, showTitle = _a.showTitle, discriminator = _a.discriminator; + var needFilter = this.props.skipReadOnly || this.props.skipWriteOnly; + var filteredFields = needFilter ? fields.filter(function (item) { + return !(_this.props.skipReadOnly && item.schema.readOnly || _this.props.skipWriteOnly && item.schema.writeOnly); + }) : fields; + var expandByDefault = this.context.expandSingleSchemaField && filteredFields.length === 1; + var expandAllFields = this.context.expandAllSchemaFields; + return external_react_["createElement"](PropertiesTable, null, + showTitle && external_react_["createElement"](PropertiesTableCaption, null, this.props.schema.title), + external_react_["createElement"]("tbody", null, mapWithLast(filteredFields, function (field, isLast) { + return external_react_["createElement"](Field_Field, { key: field.name, isLast: isLast, field: field, expandByDefault: expandByDefault, expandAllFields: expandAllFields, renderDiscriminatorSwitch: discriminator && discriminator.fieldName === field.name && (function () { return external_react_["createElement"](DiscriminatorDropdown_DiscriminatorDropdown, { parent: _this.parentSchema, enumValues: field.schema.enum }); }) || undefined, className: field.expanded ? 'expanded' : undefined, showExamples: false, skipReadOnly: _this.props.skipReadOnly, skipWriteOnly: _this.props.skipWriteOnly, showTitle: _this.props.showTitle }); + }))); + }; + ObjectSchema.contextType = OptionsContext; + ObjectSchema = Object(external_tslib_["__decorate"])([ + external_mobx_react_["observer"] + ], ObjectSchema); + return ObjectSchema; +}(external_react_["Component"])); + + +// CONCATENATED MODULE: ./src/components/Schema/OneOfSchema.tsx + + + + + +var OneOfSchema_OneOfButton = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(OneOfButton, _super); + function OneOfButton() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.activateOneOf = function () { + _this.props.schema.activateOneOf(_this.props.idx); + }; + return _this; + } + OneOfButton.prototype.render = function () { + var _a = this.props, idx = _a.idx, schema = _a.schema, subSchema = _a.subSchema; + return external_react_["createElement"](schema_OneOfButton, { active: idx === schema.activeOneOf, onClick: this.activateOneOf }, subSchema.title || subSchema.typePrefix + subSchema.displayType); + }; + OneOfButton = Object(external_tslib_["__decorate"])([ + external_mobx_react_["observer"] + ], OneOfButton); + return OneOfButton; +}(external_react_["Component"])); + +var OneOfSchema_OneOfSchema = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(OneOfSchema, _super); + function OneOfSchema() { + return _super !== null && _super.apply(this, arguments) || this; + } + OneOfSchema.prototype.render = function () { + var _a = this.props, oneOf = _a.schema.oneOf, schema = _a.schema; + if (oneOf === undefined) { + return null; + } + return external_react_["createElement"]("div", null, + external_react_["createElement"](OneOfLabel, null, + " ", + schema.oneOfType, + " "), + external_react_["createElement"](OneOfList, null, oneOf.map(function (subSchema, idx) { return external_react_["createElement"](OneOfSchema_OneOfButton, { key: subSchema.pointer, schema: schema, subSchema: subSchema, idx: idx }); })), + external_react_["createElement"](Schema_Schema, Object(external_tslib_["__assign"])({}, this.props, { schema: oneOf[schema.activeOneOf] }))); + }; + OneOfSchema = Object(external_tslib_["__decorate"])([ + external_mobx_react_["observer"] + ], OneOfSchema); + return OneOfSchema; +}(external_react_["Component"])); + + +// CONCATENATED MODULE: ./src/components/Schema/Schema.tsx + + + + + + + + + +var Schema_Schema = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(Schema, _super); + function Schema() { + return _super !== null && _super.apply(this, arguments) || this; + } + Schema.prototype.render = function () { + var schema = this.props.schema; + if (!schema) { + return external_react_["createElement"]("em", null, " Schema not provided "); + } + var type = schema.type, oneOf = schema.oneOf, discriminatorProp = schema.discriminatorProp, isCircular = schema.isCircular; + if (isCircular) { + return external_react_["createElement"]("div", null, + external_react_["createElement"](TypeName, null, schema.displayType), + schema.title && external_react_["createElement"](TypeTitle, null, + " ", + schema.title, + " "), + external_react_["createElement"](RecursiveLabel, null, + " ", + l('recursive'), + " ")); + } + if (discriminatorProp !== undefined) { + if (!oneOf || !oneOf.length) { + console.warn("Looks like you are using discriminator wrong: you don't have any definition inherited from the " + schema.title); + return null; + } + return external_react_["createElement"](ObjectSchema_ObjectSchema, Object(external_tslib_["__assign"])({}, Object(external_tslib_["__assign"])(Object(external_tslib_["__assign"])({}, this.props), { schema: oneOf[schema.activeOneOf] }), { discriminator: { + fieldName: discriminatorProp, + parentSchema: schema + } })); + } + if (oneOf !== undefined) { + return external_react_["createElement"](OneOfSchema_OneOfSchema, Object(external_tslib_["__assign"])({ schema: schema }, this.props)); + } + switch (type) { + case 'object': + return external_react_["createElement"](ObjectSchema_ObjectSchema, Object(external_tslib_["__assign"])({}, this.props)); + case 'array': + return external_react_["createElement"](ArraySchema_ArraySchema, Object(external_tslib_["__assign"])({}, this.props)); + } // TODO: maybe adjust FieldDetails to accept schema + var field = { + schema: schema, + name: '', + required: false, + description: schema.description, + externalDocs: schema.externalDocs, + deprecated: false, + toggle: function () { return null; }, + expanded: false + }; // cast needed for hot-loader to not fail + return external_react_["createElement"]("div", null, + external_react_["createElement"](FieldDetails_FieldDetails, { field: field })); + }; + Schema = Object(external_tslib_["__decorate"])([ + external_mobx_react_["observer"] + ], Schema); + return Schema; +}(external_react_["Component"])); + + +// CONCATENATED MODULE: ./src/components/Schema/index.ts + + + + + + +// CONCATENATED MODULE: ./src/components/SchemaDefinition/SchemaDefinition.tsx + + + + + + + + + +var SchemaDefinition_SchemaDefinition = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(SchemaDefinition, _super); + function SchemaDefinition() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.renderDropdown = function (props) { + return external_react_["createElement"](DropdownOrLabel, Object(external_tslib_["__assign"])({ Label: MimeLabel, Dropdown: InvertedSimpleDropdown }, props)); + }; + return _this; + } + SchemaDefinition.getMediaType = function (schemaRef, exampleRef) { + if (!schemaRef) { + return {}; + } + var info = { + schema: { + $ref: schemaRef + } + }; + if (exampleRef) { + info.examples = { + example: { + $ref: exampleRef + } + }; + } + return info; + }; + Object.defineProperty(SchemaDefinition.prototype, "mediaModel", { + get: function () { + var _a = this.props, parser = _a.parser, schemaRef = _a.schemaRef, exampleRef = _a.exampleRef, options = _a.options; + if (!this._mediaModel) { + this._mediaModel = new MediaType_MediaTypeModel(parser, 'json', false, SchemaDefinition.getMediaType(schemaRef, exampleRef), options); + } + return this._mediaModel; + }, + enumerable: false, + configurable: true + }); + SchemaDefinition.prototype.render = function () { + var _a = this.props, _b = _a.showReadOnly, showReadOnly = _b === void 0 ? true : _b, _c = _a.showWriteOnly, showWriteOnly = _c === void 0 ? false : _c; + return external_react_["createElement"](Section, null, + external_react_["createElement"](Row, null, + external_react_["createElement"](MiddlePanel, null, + external_react_["createElement"](Schema_Schema, { skipWriteOnly: !showWriteOnly, skipReadOnly: !showReadOnly, schema: this.mediaModel.schema })), + external_react_["createElement"](DarkRightPanel, null, + external_react_["createElement"](MediaSamplesWrap, null, + external_react_["createElement"](MediaTypeSamples_MediaTypeSamples, { renderDropdown: this.renderDropdown, mediaType: this.mediaModel }))))); + }; + return SchemaDefinition; +}(external_react_["PureComponent"])); + +var MediaSamplesWrap = styled_components.div(SchemaDefinition_templateObject_1 || (SchemaDefinition_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n background: ", ";\n & > div,\n & > pre {\n padding: ", "px;\n margin: 0;\n }\n\n & > div > pre {\n padding: 0;\n }\n"], ["\n background: ", + ";\n & > div,\n & > pre {\n padding: ", "px;\n margin: 0;\n }\n\n & > div > pre {\n padding: 0;\n }\n"])), function (_a) { + var theme = _a.theme; + return theme.codeBlock.backgroundColor; +}, function (props) { return props.theme.spacing.unit * 4; }); +var SchemaDefinition_templateObject_1; + +// CONCATENATED MODULE: ./src/components/SecuritySchemes/SecuritySchemes.tsx + + + + + + +var AUTH_TYPES = { + oauth2: 'OAuth2', + apiKey: 'API Key', + http: 'HTTP', + openIdConnect: 'Open ID Connect' +}; +var SecuritySchemes_OAuthFlow = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(OAuthFlow, _super); + function OAuthFlow() { + return _super !== null && _super.apply(this, arguments) || this; + } + OAuthFlow.prototype.render = function () { + var _a = this.props, type = _a.type, flow = _a.flow; + return external_react_["createElement"]("tr", null, + external_react_["createElement"]("th", null, + " ", + type, + " OAuth Flow "), + external_react_["createElement"]("td", null, + type === 'implicit' || type === 'authorizationCode' ? external_react_["createElement"]("div", null, + external_react_["createElement"]("strong", null, " Authorization URL: "), + flow.authorizationUrl) : null, + type === 'password' || type === 'clientCredentials' || type === 'authorizationCode' ? external_react_["createElement"]("div", null, + external_react_["createElement"]("strong", null, " Token URL: "), + flow.tokenUrl) : null, + flow.refreshUrl && external_react_["createElement"]("div", null, + external_react_["createElement"]("strong", null, " Refresh URL: "), + flow.refreshUrl), + external_react_["createElement"]("div", null, + external_react_["createElement"]("strong", null, " Scopes: ")), + external_react_["createElement"]("ul", null, Object.keys(flow.scopes || {}).map(function (scope) { return external_react_["createElement"]("li", { key: scope }, + external_react_["createElement"]("code", null, scope), + " - ", + external_react_["createElement"](Markdown_Markdown, { inline: true, source: flow.scopes[scope] || '' })); })))); + }; + return OAuthFlow; +}(external_react_["PureComponent"])); + +var SecuritySchemes_SecurityDefs = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(SecurityDefs, _super); + function SecurityDefs() { + return _super !== null && _super.apply(this, arguments) || this; + } + SecurityDefs.prototype.render = function () { + return this.props.securitySchemes.schemes.map(function (scheme) { return external_react_["createElement"](Section, { id: scheme.sectionId, key: scheme.id }, + external_react_["createElement"](Row, null, + external_react_["createElement"](MiddlePanel, null, + external_react_["createElement"](H2, null, + external_react_["createElement"](ShareLink, { to: scheme.sectionId }), + scheme.id), + external_react_["createElement"](Markdown_Markdown, { source: scheme.description || '' }), + external_react_["createElement"](StyledMarkdownBlock, null, + external_react_["createElement"]("table", { className: "security-details" }, + external_react_["createElement"]("tbody", null, + external_react_["createElement"]("tr", null, + external_react_["createElement"]("th", null, " Security Scheme Type "), + external_react_["createElement"]("td", null, + " ", + AUTH_TYPES[scheme.type] || scheme.type, + " ")), + scheme.apiKey ? external_react_["createElement"]("tr", null, + external_react_["createElement"]("th", null, + " ", + titleize(scheme.apiKey.in || ''), + " parameter name:"), + external_react_["createElement"]("td", null, + " ", + scheme.apiKey.name, + " ")) : scheme.http ? [external_react_["createElement"]("tr", { key: "scheme" }, + external_react_["createElement"]("th", null, " HTTP Authorization Scheme "), + external_react_["createElement"]("td", null, + " ", + scheme.http.scheme, + " ")), scheme.http.scheme === 'bearer' && scheme.http.bearerFormat && external_react_["createElement"]("tr", { key: "bearer" }, + external_react_["createElement"]("th", null, " Bearer format "), + external_react_["createElement"]("td", null, + " \"", + scheme.http.bearerFormat, + "\" "))] : scheme.openId ? external_react_["createElement"]("tr", null, + external_react_["createElement"]("th", null, " Connect URL "), + external_react_["createElement"]("td", null, + external_react_["createElement"]("a", { target: "_blank", rel: "noopener noreferrer", href: scheme.openId.connectUrl }, scheme.openId.connectUrl))) : scheme.flows ? Object.keys(scheme.flows).map(function (type) { return external_react_["createElement"](SecuritySchemes_OAuthFlow, { key: type, type: type, flow: scheme.flows[type] }); }) : null)))))); }); + }; + return SecurityDefs; +}(external_react_["PureComponent"])); + + +// CONCATENATED MODULE: ./src/services/AppStore.ts +var AppStore_a; + + + + + + + + + + + + + + +function createStore(spec, specUrl, options, markdownIndex) { + if (options === void 0) { options = {}; } + return Object(external_tslib_["__awaiter"])(this, void 0, void 0, function () { + var resolvedSpec; + return Object(external_tslib_["__generator"])(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, loadAndBundleSpec(spec || specUrl)]; + case 1: + resolvedSpec = _a.sent(); + return [2 /*return*/, new AppStore_AppStore(resolvedSpec, specUrl, options, true, markdownIndex)]; + } + }); + }); +} +var AppStore_AppStore = /** @class */ (function () { + function AppStore(spec, specUrl, options, createSearchIndex, markdownIndex) { + var _this = this; + if (options === void 0) { options = {}; } + if (createSearchIndex === void 0) { createSearchIndex = true; } + this.marker = new MarkerService_MarkerService(); + this.disposer = null; + this.rawOptions = options; + this.options = new RedocNormalizedOptions_RedocNormalizedOptions(options, DEFAULT_OPTIONS); + this.scroll = new ScrollService_ScrollService(this.options); // update position statically based on hash (in case of SSR) + MenuStore_MenuStore.updateOnHistory(HistoryService_history.currentId, this.scroll); + this.spec = new SpecStore_SpecStore(spec, specUrl, this.options); + this.menu = new MenuStore_MenuStore(this.spec, this.scroll, HistoryService_history, markdownIndex); + this.markdownIndex = markdownIndex; + if (!this.options.disableSearch) { + this.search = new SearchStore_SearchStore(); + if (createSearchIndex) { + this.search.indexItems(this.menu.items); + } + this.disposer = Object(external_mobx_["observe"])(this.menu, 'activeItemIdx', function (change) { + _this.updateMarkOnMenu(change.newValue); + }); + } + } + /** + * deserialize store + * **SUPER HACKY AND NOT OPTIMAL IMPLEMENTATION** + */ + // TODO: + AppStore.fromJS = function (state, markdownIndex) { + var inst = new AppStore(state.spec.data, state.spec.url, state.options, false, markdownIndex); + inst.menu.activeItemIdx = state.menu.activeItemIdx || 0; + inst.menu.activate(inst.menu.flatItems[inst.menu.activeItemIdx]); + if (!inst.options.disableSearch) { + inst.search.load(state.searchIndex); + } + return inst; + }; + AppStore.prototype.onDidMount = function () { + this.menu.updateOnHistory(); + this.updateMarkOnMenu(this.menu.activeItemIdx); + }; + AppStore.prototype.dispose = function () { + this.scroll.dispose(); + this.menu.dispose(); + if (this.search) { + this.search.dispose(); + } + if (this.disposer != null) { + this.disposer(); + } + }; + /** + * serializes store + * **SUPER HACKY AND NOT OPTIMAL IMPLEMENTATION** + */ + // TODO: improve + AppStore.prototype.toJS = function () { + return Object(external_tslib_["__awaiter"])(this, void 0, void 0, function () { + var _a, _b; + return Object(external_tslib_["__generator"])(this, function (_c) { + switch (_c.label) { + case 0: + _a = { + menu: { + activeItemIdx: this.menu.activeItemIdx + }, + spec: { + url: this.spec.parser.specUrl || null, + data: this.spec.parser.spec + } + }; + if (!this.search) return [3 /*break*/, 2]; + return [4 /*yield*/, this.search.toJS()]; + case 1: + _b = _c.sent(); + return [3 /*break*/, 3]; + case 2: + _b = undefined; + _c.label = 3; + case 3: return [2 /*return*/, (_a.searchIndex = _b, + _a.options = this.rawOptions, + _a.markdownIndex = this.markdownIndex, + _a)]; + } + }); + }); + }; + AppStore.prototype.updateMarkOnMenu = function (idx) { + var start = Math.max(0, idx); + var end = Math.min(this.menu.flatItems.length, start + 5); + var elements = []; + for (var i = start; i < end; i++) { + var elem = this.menu.getElementAt(i); + if (!elem) { + continue; + } + elements.push(elem); + } + if (idx === -1 && IS_BROWSER) { + var $description = document.querySelector('[data-role="redoc-description"]'); + if ($description) + elements.push($description); + } + this.marker.addOnly(elements); + this.marker.mark(); + }; + return AppStore; +}()); + +var DEFAULT_OPTIONS = { + allowedMdComponents: (AppStore_a = {}, + AppStore_a[SECURITY_DEFINITIONS_COMPONENT_NAME] = { + component: SecuritySchemes_SecurityDefs, + propsSelector: function (store) { return ({ + securitySchemes: store.spec.securitySchemes + }); } + }, + AppStore_a[SECURITY_DEFINITIONS_JSX_NAME] = { + component: SecuritySchemes_SecurityDefs, + propsSelector: function (store) { return ({ + securitySchemes: store.spec.securitySchemes + }); } + }, + AppStore_a[SCHEMA_DEFINITION_JSX_NAME] = { + component: SchemaDefinition_SchemaDefinition, + propsSelector: function (store) { return ({ + parser: store.spec.parser, + options: store.options + }); } + }, + AppStore_a) +}; + +// CONCATENATED MODULE: ./src/services/index.ts + + + + + + + + + + + + + + +// CONCATENATED MODULE: ./src/components/ApiInfo/styled.elements.ts + + + +var delimiterWidth = 15; +var ApiInfoWrap = MiddlePanel; +var ApiHeader = styled_components(H1)(ApiInfo_styled_elements_templateObject_1 || (ApiInfo_styled_elements_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n margin-top: 0;\n margin-bottom: 0.5em;\n\n ", ";\n"], ["\n margin-top: 0;\n margin-bottom: 0.5em;\n\n ", ";\n"])), extensionsHook('ApiHeader')); +var DownloadButton = styled_components.a(ApiInfo_styled_elements_templateObject_2 || (ApiInfo_styled_elements_templateObject_2 = Object(external_tslib_["__makeTemplateObject"])(["\n border: 1px solid ", ";\n color: ", ";\n font-weight: normal;\n margin-left: 0.5em;\n padding: 4px 8px 4px;\n display: inline-block;\n text-decoration: none;\n cursor: pointer;\n\n ", ";\n"], ["\n border: 1px solid ", ";\n color: ", ";\n font-weight: normal;\n margin-left: 0.5em;\n padding: 4px 8px 4px;\n display: inline-block;\n text-decoration: none;\n cursor: pointer;\n\n ", ";\n"])), function (props) { return props.theme.colors.primary.main; }, function (props) { return props.theme.colors.primary.main; }, extensionsHook('DownloadButton')); +var InfoSpan = styled_components.span(ApiInfo_styled_elements_templateObject_3 || (ApiInfo_styled_elements_templateObject_3 = Object(external_tslib_["__makeTemplateObject"])(["\n &::before {\n content: '|';\n display: inline-block;\n opacity: 0.5;\n width: ", "px;\n text-align: center;\n }\n\n &:last-child::after {\n display: none;\n }\n"], ["\n &::before {\n content: '|';\n display: inline-block;\n opacity: 0.5;\n width: ", "px;\n text-align: center;\n }\n\n &:last-child::after {\n display: none;\n }\n"])), delimiterWidth); +var InfoSpanBoxWrap = styled_components.div(ApiInfo_styled_elements_templateObject_4 || (ApiInfo_styled_elements_templateObject_4 = Object(external_tslib_["__makeTemplateObject"])(["\n overflow: hidden;\n"], ["\n overflow: hidden;\n"]))); +var InfoSpanBox = styled_components.div(ApiInfo_styled_elements_templateObject_5 || (ApiInfo_styled_elements_templateObject_5 = Object(external_tslib_["__makeTemplateObject"])(["\n display: flex;\n flex-wrap: wrap;\n // hide separator on new lines: idea from https://stackoverflow.com/a/31732902/1749888\n margin-left: -", "px;\n"], ["\n display: flex;\n flex-wrap: wrap;\n // hide separator on new lines: idea from https://stackoverflow.com/a/31732902/1749888\n margin-left: -", "px;\n"])), delimiterWidth); +var ApiInfo_styled_elements_templateObject_1, ApiInfo_styled_elements_templateObject_2, ApiInfo_styled_elements_templateObject_3, ApiInfo_styled_elements_templateObject_4, ApiInfo_styled_elements_templateObject_5; + +// CONCATENATED MODULE: ./src/components/ApiInfo/ApiInfo.tsx + + + + + + + + +var ApiInfo_ApiInfo = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(ApiInfo, _super); + function ApiInfo() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.handleDownloadClick = function (e) { + if (!e.target.href) { + e.target.href = _this.props.store.spec.info.downloadLink; + } + }; + return _this; + } + ApiInfo.prototype.render = function () { + var store = this.props.store; + var _a = store.spec, info = _a.info, externalDocs = _a.externalDocs; + var hideDownloadButton = store.options.hideDownloadButton; + var downloadFilename = info.downloadFileName; + var downloadLink = info.downloadLink; + var license = info.license && external_react_["createElement"](InfoSpan, null, + "License: ", + external_react_["createElement"]("a", { href: info.license.url }, info.license.name)) || null; + var website = info.contact && info.contact.url && external_react_["createElement"](InfoSpan, null, + "URL: ", + external_react_["createElement"]("a", { href: info.contact.url }, info.contact.url)) || null; + var email = info.contact && info.contact.email && external_react_["createElement"](InfoSpan, null, + info.contact.name || 'E-mail', + ":", + ' ', + external_react_["createElement"]("a", { href: 'mailto:' + info.contact.email }, info.contact.email)) || null; + var terms = info.termsOfService && external_react_["createElement"](InfoSpan, null, + external_react_["createElement"]("a", { href: info.termsOfService }, "Terms of Service")) || null; + var version = info.version && external_react_["createElement"]("span", null, + "(", + info.version, + ")") || null; + return external_react_["createElement"](Section, null, + external_react_["createElement"](Row, null, + external_react_["createElement"](MiddlePanel, { className: "api-info" }, + external_react_["createElement"](ApiHeader, null, + info.title, + " ", + version), + !hideDownloadButton && external_react_["createElement"]("p", null, + "Download OpenAPI specification:", + external_react_["createElement"](DownloadButton, { download: downloadFilename || true, target: "_blank", href: downloadLink, onClick: this.handleDownloadClick }, "Download")), + external_react_["createElement"](StyledMarkdownBlock, null, (info.license || info.contact || info.termsOfService) && external_react_["createElement"](InfoSpanBoxWrap, null, + external_react_["createElement"](InfoSpanBox, null, + email, + " ", + website, + " ", + license, + " ", + terms)) || null), + external_react_["createElement"](Markdown_Markdown, { source: store.spec.info.description, "data-role": "redoc-description" }), + externalDocs && external_react_["createElement"](ExternalDocumentation_ExternalDocumentation, { externalDocs: externalDocs })))); + }; + ApiInfo = Object(external_tslib_["__decorate"])([ + external_mobx_react_["observer"] + ], ApiInfo); + return ApiInfo; +}(external_react_["Component"])); + + +// CONCATENATED MODULE: ./src/components/ApiInfo/index.ts + + +// CONCATENATED MODULE: ./src/components/ApiLogo/styled.elements.tsx + + + +var LogoImgEl = styled_components.img(ApiLogo_styled_elements_templateObject_1 || (ApiLogo_styled_elements_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n max-height: ", ";\n max-width: ", ";\n padding: ", ";\n width: 100%;\n display: block;\n"], ["\n max-height: ", ";\n max-width: ", ";\n padding: ", ";\n width: 100%;\n display: block;\n"])), function (props) { return props.theme.logo.maxHeight; }, function (props) { return props.theme.logo.maxWidth; }, function (props) { return props.theme.logo.gutter; }); +var LogoWrap = styled_components.div(ApiLogo_styled_elements_templateObject_2 || (ApiLogo_styled_elements_templateObject_2 = Object(external_tslib_["__makeTemplateObject"])(["\n text-align: center;\n"], ["\n text-align: center;\n"]))); +var styled_elements_Link = styled_components.a(ApiLogo_styled_elements_templateObject_3 || (ApiLogo_styled_elements_templateObject_3 = Object(external_tslib_["__makeTemplateObject"])(["\n display: inline-block;\n"], ["\n display: inline-block;\n"]))); +var styled_elements_LinkWrap = function (url) { return function (Component) { return external_react_["createElement"](styled_elements_Link, { href: url }, Component); }; }; +var ApiLogo_styled_elements_templateObject_1, ApiLogo_styled_elements_templateObject_2, ApiLogo_styled_elements_templateObject_3; + +// CONCATENATED MODULE: ./src/components/ApiLogo/ApiLogo.tsx + + + + +var ApiLogo_ApiLogo = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(ApiLogo, _super); + function ApiLogo() { + return _super !== null && _super.apply(this, arguments) || this; + } + ApiLogo.prototype.render = function () { + var info = this.props.info; + var logoInfo = info['x-logo']; + if (!logoInfo || !logoInfo.url) { + return null; + } + var logoHref = logoInfo.href || info.contact && info.contact.url; // Use the english word logo if no alt text is provided + var altText = logoInfo.altText ? logoInfo.altText : 'logo'; + var logo = external_react_["createElement"](LogoImgEl, { src: logoInfo.url, alt: altText }); + return external_react_["createElement"](LogoWrap, { style: { + backgroundColor: logoInfo.backgroundColor + } }, logoHref ? styled_elements_LinkWrap(logoHref)(logo) : logo); + }; + ApiLogo = Object(external_tslib_["__decorate"])([ + external_mobx_react_["observer"] + ], ApiLogo); + return ApiLogo; +}(external_react_["Component"])); + + +// CONCATENATED MODULE: ./src/components/Markdown/AdvancedMarkdown.tsx + + + + + + +var AdvancedMarkdown_AdvancedMarkdown = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(AdvancedMarkdown, _super); + function AdvancedMarkdown() { + return _super !== null && _super.apply(this, arguments) || this; + } + AdvancedMarkdown.prototype.render = function () { + var _this = this; + return external_react_["createElement"](OptionsConsumer, null, function (options) { return external_react_["createElement"](Consumer, null, function (store) { return _this.renderWithOptionsAndStore(options, store); }); }); + }; + AdvancedMarkdown.prototype.renderWithOptionsAndStore = function (options, store) { + var _a = this.props, source = _a.source, _b = _a.htmlWrap, htmlWrap = _b === void 0 ? function (i) { return i; } : _b; + if (!store) { + throw new Error('When using components in markdown, store prop must be provided'); + } + var renderer = new MarkdownRenderer_MarkdownRenderer(options); + var parts = renderer.renderMdWithComponents(source); + if (!parts.length) { + return null; + } + return parts.map(function (part, idx) { + if (typeof part === 'string') { + return external_react_["cloneElement"](htmlWrap(external_react_["createElement"](SanitizedMarkdownHTML, { html: part, inline: false, compact: false })), { + key: idx + }); + } + return external_react_["createElement"](part.component, Object(external_tslib_["__assign"])({ key: idx }, Object(external_tslib_["__assign"])(Object(external_tslib_["__assign"])({}, part.props), part.propsSelector(store)))); + }); + }; + return AdvancedMarkdown; +}(external_react_["Component"])); + + +// EXTERNAL MODULE: external "classnames" +var external_classnames_ = __webpack_require__(43); + +// CONCATENATED MODULE: ./src/components/SideMenu/styled.elements.ts + + + + + +var OperationBadge = styled_components.span.attrs(function (props) { return ({ + className: "operation-type " + props.type +}); })(SideMenu_styled_elements_templateObject_1 || (SideMenu_styled_elements_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n width: 32px;\n display: inline-block;\n height: ", ";\n line-height: ", ";\n background-color: #333;\n border-radius: 3px;\n background-repeat: no-repeat;\n background-position: 6px 4px;\n font-size: 7px;\n font-family: Verdana; // web-safe\n color: white;\n text-transform: uppercase;\n text-align: center;\n font-weight: bold;\n vertical-align: middle;\n margin-right: 6px;\n margin-top: 2px;\n\n &.get {\n background-color: ", ";\n }\n\n &.post {\n background-color: ", ";\n }\n\n &.put {\n background-color: ", ";\n }\n\n &.options {\n background-color: ", ";\n }\n\n &.patch {\n background-color: ", ";\n }\n\n &.delete {\n background-color: ", ";\n }\n\n &.basic {\n background-color: ", ";\n }\n\n &.link {\n background-color: ", ";\n }\n\n &.head {\n background-color: ", ";\n }\n\n &.hook {\n background-color: ", ";\n }\n"], ["\n width: 32px;\n display: inline-block;\n height: ", ";\n line-height: ", ";\n background-color: #333;\n border-radius: 3px;\n background-repeat: no-repeat;\n background-position: 6px 4px;\n font-size: 7px;\n font-family: Verdana; // web-safe\n color: white;\n text-transform: uppercase;\n text-align: center;\n font-weight: bold;\n vertical-align: middle;\n margin-right: 6px;\n margin-top: 2px;\n\n &.get {\n background-color: ", ";\n }\n\n &.post {\n background-color: ", ";\n }\n\n &.put {\n background-color: ", ";\n }\n\n &.options {\n background-color: ", ";\n }\n\n &.patch {\n background-color: ", ";\n }\n\n &.delete {\n background-color: ", ";\n }\n\n &.basic {\n background-color: ", ";\n }\n\n &.link {\n background-color: ", ";\n }\n\n &.head {\n background-color: ", ";\n }\n\n &.hook {\n background-color: ", ";\n }\n"])), function (props) { return props.theme.typography.code.fontSize; }, function (props) { return props.theme.typography.code.fontSize; }, function (props) { return props.theme.colors.http.get; }, function (props) { return props.theme.colors.http.post; }, function (props) { return props.theme.colors.http.put; }, function (props) { return props.theme.colors.http.options; }, function (props) { return props.theme.colors.http.patch; }, function (props) { return props.theme.colors.http.delete; }, function (props) { return props.theme.colors.http.basic; }, function (props) { return props.theme.colors.http.link; }, function (props) { return props.theme.colors.http.head; }, function (props) { return props.theme.colors.primary.main; }); +function menuItemActiveBg(depth, _a) { + var theme = _a.theme; + if (depth > 1) { + return Object(external_polished_["darken"])(0.1, theme.sidebar.backgroundColor); + } + else if (depth === 1) { + return Object(external_polished_["darken"])(0.05, theme.sidebar.backgroundColor); + } + else { + return ''; + } +} +var MenuItemUl = styled_components.ul(SideMenu_styled_elements_templateObject_2 || (SideMenu_styled_elements_templateObject_2 = Object(external_tslib_["__makeTemplateObject"])(["\n margin: 0;\n padding: 0;\n\n & & {\n font-size: 0.929em;\n }\n\n ", ";\n"], ["\n margin: 0;\n padding: 0;\n\n & & {\n font-size: 0.929em;\n }\n\n ", ";\n"])), function (props) { return props.expanded ? '' : 'display: none;'; }); +var MenuItemLi = styled_components.li(SideMenu_styled_elements_templateObject_3 || (SideMenu_styled_elements_templateObject_3 = Object(external_tslib_["__makeTemplateObject"])(["\n list-style: none inside none;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 0;\n ", ";\n"], ["\n list-style: none inside none;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 0;\n ", ";\n"])), function (props) { return props.depth === 0 ? 'margin-top: 15px' : ''; }); +var menuItemDepth = { + 0: css(SideMenu_styled_elements_templateObject_4 || (SideMenu_styled_elements_templateObject_4 = Object(external_tslib_["__makeTemplateObject"])(["\n opacity: 0.7;\n text-transform: ", ";\n font-size: 0.8em;\n padding-bottom: 0;\n cursor: default;\n color: ", ";\n "], ["\n opacity: 0.7;\n text-transform: ", + ";\n font-size: 0.8em;\n padding-bottom: 0;\n cursor: default;\n color: ", ";\n "])), function (_a) { + var theme = _a.theme; + return theme.sidebar.groupItems.textTransform; + }, function (props) { return props.theme.sidebar.textColor; }), + 1: css(SideMenu_styled_elements_templateObject_5 || (SideMenu_styled_elements_templateObject_5 = Object(external_tslib_["__makeTemplateObject"])(["\n font-size: 0.929em;\n text-transform: ", ";\n font-weight: ", ";\n font-size: ", ";\n color: ", ";\n\n &:hover {\n color: ", ";\n }\n "], ["\n font-size: 0.929em;\n text-transform: ", + ";\n font-weight: ", + ";\n font-size: ", + ";\n color: ", + ";\n\n &:hover {\n color: ", ";\n }\n "])), function (_a) { + var theme = _a.theme; + return theme.sidebar.level1Items.textTransform; + }, function (_a) { + var theme = _a.theme; + return theme.sidebar.level1Items.fw; + }, function (_a) { + var theme = _a.theme; + return theme.sidebar.level1Items.fontSize; + }, function (_a) { + var theme = _a.theme; + return theme.sidebar.level1Items.color; + }, function (props) { return props.theme.sidebar.activeTextColor; }), + 2: css(styled_elements_templateObject_6 || (styled_elements_templateObject_6 = Object(external_tslib_["__makeTemplateObject"])(["\n color: ", ";\n font-size: ", ";\n "], ["\n color: ", + ";\n font-size: ", + ";\n "])), function (_a) { + var theme = _a.theme; + return theme.sidebar.level1Items.color; + }, function (_a) { + var theme = _a.theme; + return theme.sidebar.level2Items.fontSize; + }) +}; +var MenuItemLabel = styled_components.label.attrs(function (props) { return ({ + role: 'menuitem', + className: external_classnames_('-depth' + props.depth, { + active: props.active + }) +}); })(styled_elements_templateObject_7 || (styled_elements_templateObject_7 = Object(external_tslib_["__makeTemplateObject"])(["\n cursor: pointer;\n color: ", ";\n margin: 0;\n padding: 12.5px ", ";\n ", "\n display: flex;\n justify-content: space-between;\n font-family: ", ";\n ", ";\n background-color: ", ";\n\n ", ";\n\n &:hover {\n background-color: ", ";\n }\n\n ", " {\n height: ", ";\n width: ", ";\n polygon {\n fill: ", ";\n }\n }\n"], ["\n cursor: pointer;\n color: ", ";\n margin: 0;\n padding: 12.5px ", ";\n ", + "\n display: flex;\n justify-content: space-between;\n font-family: ", ";\n ", ";\n background-color: ", ";\n\n ", ";\n\n &:hover {\n background-color: ", ";\n }\n\n ", " {\n height: ", + ";\n width: ", + ";\n polygon {\n fill: ", + ";\n }\n }\n"])), function (props) { return props.active ? props.theme.sidebar.activeTextColor : props.theme.sidebar.textColor; }, function (props) { return !props.depth || props.depth === 0 ? props.theme.spacing.unit * 2 + "px" : props.depth + "rem"; }, function (_a) { + var depth = _a.depth, type = _a.type, theme = _a.theme; + return type === 'section' && depth > 1 && 'padding-left: ' + theme.spacing.unit * 8 + 'px;' || ''; +}, function (props) { return props.theme.typography.headings.fontFamily; }, function (props) { return menuItemDepth[props.depth]; }, function (props) { return props.active ? menuItemActiveBg(props.depth, props) : ''; }, function (props) { return props.deprecated && deprecatedCss || ''; }, function (props) { return menuItemActiveBg(props.depth, props); }, ShelfIcon, function (_a) { + var theme = _a.theme; + return theme.sidebar.arrow.size; +}, function (_a) { + var theme = _a.theme; + return theme.sidebar.arrow.size; +}, function (_a) { + var theme = _a.theme; + return theme.sidebar.arrow.color; +}); +var MenuItemTitle = styled_components.span(styled_elements_templateObject_8 || (styled_elements_templateObject_8 = Object(external_tslib_["__makeTemplateObject"])(["\n display: inline-block;\n vertical-align: middle;\n width: ", ";\n overflow: hidden;\n text-overflow: ellipsis;\n"], ["\n display: inline-block;\n vertical-align: middle;\n width: ", ";\n overflow: hidden;\n text-overflow: ellipsis;\n"])), function (props) { return props.width ? props.width : 'auto'; }); +var RedocAttribution = styled_components.div(styled_elements_templateObject_9 || (styled_elements_templateObject_9 = Object(external_tslib_["__makeTemplateObject"])(["\n ", ";\n"], ["\n ", + ";\n"])), function (_a) { + var theme = _a.theme; + return "\n font-size: 0.8em;\n margin-top: " + theme.spacing.unit * 2 + "px;\n padding: 0 " + theme.spacing.unit * 4 + "px;\n text-align: left;\n\n opacity: 0.7;\n\n a,\n a:visited,\n a:hover {\n color: " + theme.sidebar.textColor + " !important;\n border-top: 1px solid " + Object(external_polished_["darken"])(0.1, theme.sidebar.backgroundColor) + ";\n padding: " + theme.spacing.unit + "px 0;\n display: block;\n }\n"; +}); +var SideMenu_styled_elements_templateObject_1, SideMenu_styled_elements_templateObject_2, SideMenu_styled_elements_templateObject_3, SideMenu_styled_elements_templateObject_4, SideMenu_styled_elements_templateObject_5, styled_elements_templateObject_6, styled_elements_templateObject_7, styled_elements_templateObject_8, styled_elements_templateObject_9; + +// CONCATENATED MODULE: ./src/components/Callbacks/CallbackTitle.tsx + + + + + + + + + +var CallbackTitle_CallbackTitle = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(CallbackTitle, _super); + function CallbackTitle() { + return _super !== null && _super.apply(this, arguments) || this; + } + CallbackTitle.prototype.render = function () { + var _a = this.props, name = _a.name, opened = _a.opened, className = _a.className, onClick = _a.onClick, httpVerb = _a.httpVerb, deprecated = _a.deprecated; + return external_react_["createElement"](CallbackTitleWrapper, { className: className, onClick: onClick || undefined }, + external_react_["createElement"](OperationBadgeStyled, { type: httpVerb }, shortenHTTPVerb(httpVerb)), + external_react_["createElement"](ShelfIcon, { size: '1.5em', direction: opened ? 'down' : 'right', float: 'left' }), + external_react_["createElement"](CallbackName, { deprecated: deprecated }, name), + deprecated ? external_react_["createElement"](Badge, { type: "warning" }, + " ", + l('deprecated'), + " ") : null); + }; + return CallbackTitle; +}(external_react_["PureComponent"])); + +var CallbackTitleWrapper = styled_components.div(CallbackTitle_templateObject_1 || (CallbackTitle_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n & > * {\n vertical-align: middle;\n }\n\n ", " {\n polygon {\n fill: ", ";\n }\n }\n"], ["\n & > * {\n vertical-align: middle;\n }\n\n ", " {\n polygon {\n fill: ", + ";\n }\n }\n"])), ShelfIcon, function (_a) { + var theme = _a.theme; + return Object(external_polished_["darken"])(theme.colors.tonalOffset, theme.colors.gray[100]); +}); +var CallbackName = styled_components.span(CallbackTitle_templateObject_2 || (CallbackTitle_templateObject_2 = Object(external_tslib_["__makeTemplateObject"])(["\n text-decoration: ", ";\n margin-right: 8px;\n"], ["\n text-decoration: ", ";\n margin-right: 8px;\n"])), function (props) { return props.deprecated ? 'line-through' : 'none'; }); +var OperationBadgeStyled = styled_components(OperationBadge)(CallbackTitle_templateObject_3 || (CallbackTitle_templateObject_3 = Object(external_tslib_["__makeTemplateObject"])(["\n margin: 0px 5px 0px 0px;\n"], ["\n margin: 0px 5px 0px 0px;\n"]))); +var CallbackTitle_templateObject_1, CallbackTitle_templateObject_2, CallbackTitle_templateObject_3; + +// CONCATENATED MODULE: ./src/components/Callbacks/styled.elements.ts + + + +var StyledCallbackTitle = styled_components(CallbackTitle_CallbackTitle)(Callbacks_styled_elements_templateObject_1 || (Callbacks_styled_elements_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n padding: 10px;\n border-radius: 2px;\n margin-bottom: 4px;\n line-height: 1.5em;\n background-color: ", ";\n cursor: pointer;\n"], ["\n padding: 10px;\n border-radius: 2px;\n margin-bottom: 4px;\n line-height: 1.5em;\n background-color: ", + ";\n cursor: pointer;\n"])), function (_a) { + var theme = _a.theme; + return theme.colors.gray[100]; +}); +var CallbackDetailsWrap = styled_components.div(Callbacks_styled_elements_templateObject_2 || (Callbacks_styled_elements_templateObject_2 = Object(external_tslib_["__makeTemplateObject"])(["\n padding: 10px 25px;\n background-color: ", ";\n margin-bottom: 5px;\n margin-top: 5px;\n"], ["\n padding: 10px 25px;\n background-color: ", + ";\n margin-bottom: 5px;\n margin-top: 5px;\n"])), function (_a) { + var theme = _a.theme; + return theme.colors.gray[50]; +}); +var Callbacks_styled_elements_templateObject_1, Callbacks_styled_elements_templateObject_2; + +// CONCATENATED MODULE: ./src/components/SelectOnClick/SelectOnClick.tsx + + + +var SelectOnClick_SelectOnClick = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(SelectOnClick, _super); + function SelectOnClick() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.selectElement = function () { + ClipboardService.selectElement(_this.child); + }; + return _this; + } + SelectOnClick.prototype.render = function () { + var _this = this; + var children = this.props.children; + return external_react_["createElement"]("div", { ref: function (el) { return _this.child = el; }, onClick: this.selectElement, onFocus: this.selectElement, tabIndex: 0, role: "button" }, children); + }; + return SelectOnClick; +}(external_react_["PureComponent"])); + + +// CONCATENATED MODULE: ./src/components/Endpoint/styled.elements.ts + + +var OperationEndpointWrap = styled_components.div(Endpoint_styled_elements_templateObject_1 || (Endpoint_styled_elements_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n cursor: pointer;\n position: relative;\n margin-bottom: 5px;\n"], ["\n cursor: pointer;\n position: relative;\n margin-bottom: 5px;\n"]))); +var ServerRelativeURL = styled_components.span(Endpoint_styled_elements_templateObject_2 || (Endpoint_styled_elements_templateObject_2 = Object(external_tslib_["__makeTemplateObject"])(["\n font-family: ", ";\n margin-left: 10px;\n flex: 1;\n overflow-x: hidden;\n text-overflow: ellipsis;\n"], ["\n font-family: ", ";\n margin-left: 10px;\n flex: 1;\n overflow-x: hidden;\n text-overflow: ellipsis;\n"])), function (props) { return props.theme.typography.code.fontFamily; }); +var EndpointInfo = styled_components.button(Endpoint_styled_elements_templateObject_3 || (Endpoint_styled_elements_templateObject_3 = Object(external_tslib_["__makeTemplateObject"])(["\n outline: 0;\n color: inherit;\n width: 100%;\n text-align: left;\n cursor: pointer;\n padding: 10px 30px 10px ", ";\n border-radius: ", ";\n background-color: ", ";\n display: flex;\n white-space: nowrap;\n align-items: center;\n border: ", ";\n border-bottom: ", ";\n transition: border-color 0.25s ease;\n\n ", "\n\n .", " {\n color: ", "\n }\n &:focus {\n box-shadow: inset 0 2px 2px rgba(0, 0, 0, 0.45), 0 2px 0 rgba(128, 128, 128, 0.25);\n }\n"], ["\n outline: 0;\n color: inherit;\n width: 100%;\n text-align: left;\n cursor: pointer;\n padding: 10px 30px 10px ", ";\n border-radius: ", ";\n background-color: ", ";\n display: flex;\n white-space: nowrap;\n align-items: center;\n border: ", ";\n border-bottom: ", ";\n transition: border-color 0.25s ease;\n\n ", "\n\n .", " {\n color: ", "\n }\n &:focus {\n box-shadow: inset 0 2px 2px rgba(0, 0, 0, 0.45), 0 2px 0 rgba(128, 128, 128, 0.25);\n }\n"])), function (props) { return props.inverted ? '10px' : '20px'; }, function (props) { return props.inverted ? '0' : '4px 4px 0 0'; }, function (props) { return props.inverted ? 'transparent' : props.theme.codeBlock.backgroundColor; }, function (props) { return props.inverted ? '0' : '1px solid transparent'; }, function (props) { return props.inverted ? '1px solid #ccc' : '0'; }, function (props) { return props.expanded && !props.inverted && "border-color: " + props.theme.colors.border.dark + ";" || ''; }, ServerRelativeURL, function (props) { return props.inverted ? props.theme.colors.text.primary : '#ffffff'; }); +var HttpVerb = styled_components.span.attrs(function (props) { return ({ + className: "http-verb " + props.type +}); })(Endpoint_styled_elements_templateObject_4 || (Endpoint_styled_elements_templateObject_4 = Object(external_tslib_["__makeTemplateObject"])(["\n font-size: ", ";\n line-height: ", ";\n background-color: ", ";\n color: #ffffff;\n padding: ", ";\n text-transform: uppercase;\n font-family: ", ";\n margin: 0;\n"], ["\n font-size: ", ";\n line-height: ", ";\n background-color: ", ";\n color: #ffffff;\n padding: ", ";\n text-transform: uppercase;\n font-family: ", ";\n margin: 0;\n"])), function (props) { return props.compact ? '0.8em' : '0.929em'; }, function (props) { return props.compact ? '18px' : '20px'; }, function (props) { return props.theme.colors.http[props.type] || '#999999'; }, function (props) { return props.compact ? '2px 8px' : '3px 10px'; }, function (props) { return props.theme.typography.headings.fontFamily; }); +var ServersOverlay = styled_components.div(Endpoint_styled_elements_templateObject_5 || (Endpoint_styled_elements_templateObject_5 = Object(external_tslib_["__makeTemplateObject"])(["\n position: absolute;\n width: 100%;\n z-index: 100;\n background: #fafafa;\n color: #263238;\n box-sizing: border-box;\n box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.33);\n overflow: hidden;\n border-bottom-left-radius: 4px;\n border-bottom-right-radius: 4px;\n transition: all 0.25s ease;\n visibility: hidden;\n ", "\n"], ["\n position: absolute;\n width: 100%;\n z-index: 100;\n background: #fafafa;\n color: #263238;\n box-sizing: border-box;\n box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.33);\n overflow: hidden;\n border-bottom-left-radius: 4px;\n border-bottom-right-radius: 4px;\n transition: all 0.25s ease;\n visibility: hidden;\n ", "\n"])), function (props) { return props.expanded ? 'visibility: visible;' : 'transform: translateY(-50%) scaleY(0);'; }); +var ServerItem = styled_components.div(Endpoint_styled_elements_templateObject_6 || (Endpoint_styled_elements_templateObject_6 = Object(external_tslib_["__makeTemplateObject"])(["\n padding: 10px;\n"], ["\n padding: 10px;\n"]))); +var ServerUrl = styled_components.div(Endpoint_styled_elements_templateObject_7 || (Endpoint_styled_elements_templateObject_7 = Object(external_tslib_["__makeTemplateObject"])(["\n padding: 5px;\n border: 1px solid #ccc;\n background: #fff;\n word-break: break-all;\n color: ", ";\n > span {\n color: ", ";\n }\n"], ["\n padding: 5px;\n border: 1px solid #ccc;\n background: #fff;\n word-break: break-all;\n color: ", ";\n > span {\n color: ", ";\n }\n"])), function (props) { return props.theme.colors.primary.main; }, function (props) { return props.theme.colors.text.primary; }); +var Endpoint_styled_elements_templateObject_1, Endpoint_styled_elements_templateObject_2, Endpoint_styled_elements_templateObject_3, Endpoint_styled_elements_templateObject_4, Endpoint_styled_elements_templateObject_5, Endpoint_styled_elements_templateObject_6, Endpoint_styled_elements_templateObject_7; + +// CONCATENATED MODULE: ./src/components/Endpoint/Endpoint.tsx + + + + + + + + +var Endpoint_Endpoint = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(Endpoint, _super); + function Endpoint(props) { + var _this = _super.call(this, props) || this; + _this.toggle = function () { + _this.setState({ + expanded: !_this.state.expanded + }); + }; + _this.state = { + expanded: false + }; + return _this; + } + Endpoint.prototype.render = function () { + var _this = this; + var _a = this.props, operation = _a.operation, inverted = _a.inverted, hideHostname = _a.hideHostname; + var expanded = this.state.expanded; // TODO: highlight server variables, e.g. https://{user}.test.com + return external_react_["createElement"](OptionsContext.Consumer, null, function (options) { return external_react_["createElement"](OperationEndpointWrap, null, + external_react_["createElement"](EndpointInfo, { onClick: _this.toggle, expanded: expanded, inverted: inverted }, + external_react_["createElement"](HttpVerb, { type: operation.httpVerb, compact: _this.props.compact }, operation.httpVerb), + external_react_["createElement"](ServerRelativeURL, null, operation.path), + external_react_["createElement"](ShelfIcon, { float: 'right', color: inverted ? 'black' : 'white', size: '20px', direction: expanded ? 'up' : 'down', style: { + marginRight: '-25px' + } })), + external_react_["createElement"](ServersOverlay, { expanded: expanded, "aria-hidden": !expanded }, operation.servers.map(function (server) { + var normalizedUrl = options.expandDefaultServerVariables ? expandDefaultServerVariables(server.url, server.variables) : server.url; + return external_react_["createElement"](ServerItem, { key: normalizedUrl }, + external_react_["createElement"](Markdown_Markdown, { source: server.description || '', compact: true }), + external_react_["createElement"](SelectOnClick_SelectOnClick, null, + external_react_["createElement"](ServerUrl, null, + external_react_["createElement"]("span", null, hideHostname || options.hideHostname ? getBasePath(normalizedUrl) : normalizedUrl), + operation.path))); + }))); }); + }; + return Endpoint; +}(external_react_["Component"])); + + +// CONCATENATED MODULE: ./src/components/Parameters/ParametersGroup.tsx + + + + + + +var ParametersGroup_ParametersGroup = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(ParametersGroup, _super); + function ParametersGroup() { + return _super !== null && _super.apply(this, arguments) || this; + } + ParametersGroup.prototype.render = function () { + var _a = this.props, place = _a.place, parameters = _a.parameters; + if (!parameters || !parameters.length) { + return null; + } + return external_react_["createElement"]("div", { key: place }, + external_react_["createElement"](UnderlinedHeader, null, + place, + " Parameters"), + external_react_["createElement"](PropertiesTable, null, + external_react_["createElement"]("tbody", null, mapWithLast(parameters, function (field, isLast) { return external_react_["createElement"](Field_Field, { key: field.name, isLast: isLast, field: field, showExamples: true }); })))); + }; + return ParametersGroup; +}(external_react_["PureComponent"])); + + +// CONCATENATED MODULE: ./src/components/MediaTypeSwitch/MediaTypesSwitch.tsx + + + + +var MediaTypesSwitch_MediaTypesSwitch = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(MediaTypesSwitch, _super); + function MediaTypesSwitch() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.switchMedia = function (_a) { + var idx = _a.idx; + if (_this.props.content) { + _this.props.content.activate(idx); + } + }; + return _this; + } + MediaTypesSwitch.prototype.render = function () { + var _this = this; + var content = this.props.content; + if (!content || !content.mediaTypes || !content.mediaTypes.length) { + return null; + } + var activeMimeIdx = content.activeMimeIdx; + var options = content.mediaTypes.map(function (mime, idx) { + return { + value: mime.name, + idx: idx + }; + }); + var Wrapper = function (_a) { + var children = _a.children; + return _this.props.withLabel ? external_react_["createElement"](DropdownWrapper, null, + external_react_["createElement"](DropdownLabel, null, "Content type"), + children) : children; + }; + return external_react_["createElement"](external_react_["Fragment"], null, + external_react_["createElement"](Wrapper, null, this.props.renderDropdown({ + value: options[activeMimeIdx].value, + options: options, + onChange: this.switchMedia, + ariaLabel: 'Content type' + })), + this.props.children(content.active)); + }; + MediaTypesSwitch = Object(external_tslib_["__decorate"])([ + external_mobx_react_["observer"] + ], MediaTypesSwitch); + return MediaTypesSwitch; +}(external_react_["Component"])); + + +// CONCATENATED MODULE: ./src/components/Parameters/Parameters.tsx + + + + + + + + +function safePush(obj, prop, item) { + if (!obj[prop]) { + obj[prop] = []; + } + obj[prop].push(item); +} +var PARAM_PLACES = ['path', 'query', 'cookie', 'header']; +var Parameters_Parameters = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(Parameters, _super); + function Parameters() { + return _super !== null && _super.apply(this, arguments) || this; + } + Parameters.prototype.orderParams = function (params) { + var res = {}; + params.forEach(function (param) { + safePush(res, param.in, param); + }); + return res; + }; + Parameters.prototype.render = function () { + var _a = this.props, body = _a.body, _b = _a.parameters, parameters = _b === void 0 ? [] : _b; + if (body === undefined && parameters === undefined) { + return null; + } + var paramsMap = this.orderParams(parameters); + var paramsPlaces = parameters.length > 0 ? PARAM_PLACES : []; + var bodyContent = body && body.content; + var bodyDescription = body && body.description; + return external_react_["createElement"](external_react_["Fragment"], null, + paramsPlaces.map(function (place) { return external_react_["createElement"](ParametersGroup_ParametersGroup, { key: place, place: place, parameters: paramsMap[place] }); }), + bodyContent && external_react_["createElement"](BodyContent, { content: bodyContent, description: bodyDescription })); + }; + return Parameters; +}(external_react_["PureComponent"])); + +function DropdownWithinHeader(props) { + return external_react_["createElement"](UnderlinedHeader, { key: "header" }, + "Request Body schema: ", + external_react_["createElement"](DropdownOrLabel, Object(external_tslib_["__assign"])({}, props))); +} +function BodyContent(props) { + var content = props.content, description = props.description; + return external_react_["createElement"](MediaTypesSwitch_MediaTypesSwitch, { content: content, renderDropdown: DropdownWithinHeader }, function (_a) { + var schema = _a.schema; + return external_react_["createElement"](external_react_["Fragment"], null, + description !== undefined && external_react_["createElement"](Markdown_Markdown, { source: description }), + external_react_["createElement"](Schema_Schema, { skipReadOnly: true, key: "schema", schema: schema })); + }); +} + +// CONCATENATED MODULE: ./src/components/Responses/ResponseTitle.tsx + + + + +var ResponseTitle_ResponseTitle = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(ResponseTitle, _super); + function ResponseTitle() { + return _super !== null && _super.apply(this, arguments) || this; + } + ResponseTitle.prototype.render = function () { + var _a = this.props, title = _a.title, type = _a.type, empty = _a.empty, code = _a.code, opened = _a.opened, className = _a.className, onClick = _a.onClick; + return external_react_["createElement"]("button", { className: className, onClick: !empty && onClick || undefined, "aria-expanded": opened, disabled: empty }, + !empty && external_react_["createElement"](ShelfIcon, { size: '1.5em', color: type, direction: opened ? 'down' : 'right', float: 'left' }), + external_react_["createElement"]("strong", null, + code, + " "), + external_react_["createElement"](Markdown_Markdown, { compact: true, inline: true, source: title })); + }; + return ResponseTitle; +}(external_react_["PureComponent"])); + + +// CONCATENATED MODULE: ./src/components/Responses/styled.elements.ts + +// import { transparentize } from 'polished'; + + + +var StyledResponseTitle = styled_components(ResponseTitle_ResponseTitle)(Responses_styled_elements_templateObject_1 || (Responses_styled_elements_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n display: block;\n border: 0;\n width: 100%;\n text-align: left;\n padding: 10px;\n border-radius: 2px;\n margin-bottom: 4px;\n line-height: 1.5em;\n background-color: #f2f2f2;\n cursor: pointer;\n\n color: ", ";\n background-color: ", ";\n &:focus {\n outline: auto;\n outline-color: ", ";\n }\n ", ";\n"], ["\n display: block;\n border: 0;\n width: 100%;\n text-align: left;\n padding: 10px;\n border-radius: 2px;\n margin-bottom: 4px;\n line-height: 1.5em;\n background-color: #f2f2f2;\n cursor: pointer;\n\n color: ", ";\n background-color: ", ";\n &:focus {\n outline: auto;\n outline-color: ", ";\n }\n ", + ";\n"])), function (props) { return props.theme.colors.responses[props.type].color; }, function (props) { return props.theme.colors.responses[props.type].backgroundColor; }, function (props) { return props.theme.colors.responses[props.type].color; }, function (props) { return props.empty && "\ncursor: default;\n&::before {\n content: \"\u2014\";\n font-weight: bold;\n width: 1.5em;\n text-align: center;\n display: inline-block;\n}\n&:focus {\n outline: 0;\n}\n" || ''; }); +var ResponseDetailsWrap = styled_components.div(Responses_styled_elements_templateObject_2 || (Responses_styled_elements_templateObject_2 = Object(external_tslib_["__makeTemplateObject"])(["\n padding: 10px;\n"], ["\n padding: 10px;\n"]))); +var HeadersCaption = styled_components(UnderlinedHeader.withComponent('caption'))(Responses_styled_elements_templateObject_3 || (Responses_styled_elements_templateObject_3 = Object(external_tslib_["__makeTemplateObject"])(["\n text-align: left;\n margin-top: 1em;\n caption-side: top;\n"], ["\n text-align: left;\n margin-top: 1em;\n caption-side: top;\n"]))); +var Responses_styled_elements_templateObject_1, Responses_styled_elements_templateObject_2, Responses_styled_elements_templateObject_3; + +// CONCATENATED MODULE: ./src/components/Responses/ResponseHeaders.tsx + + + + + + +var ResponseHeaders_ResponseHeaders = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(ResponseHeaders, _super); + function ResponseHeaders() { + return _super !== null && _super.apply(this, arguments) || this; + } + ResponseHeaders.prototype.render = function () { + var headers = this.props.headers; + if (headers === undefined || headers.length === 0) { + return null; + } + return external_react_["createElement"](PropertiesTable, null, + external_react_["createElement"](HeadersCaption, null, " Response Headers "), + external_react_["createElement"]("tbody", null, mapWithLast(headers, function (header, isLast) { return external_react_["createElement"](Field_Field, { isLast: isLast, key: header.name, field: header, showExamples: true }); }))); + }; + return ResponseHeaders; +}(external_react_["PureComponent"])); + + +// CONCATENATED MODULE: ./src/components/Responses/ResponseDetails.tsx + + + + + + + + +var ResponseDetails_ResponseDetails = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(ResponseDetails, _super); + function ResponseDetails() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.renderDropdown = function (props) { + return external_react_["createElement"](UnderlinedHeader, { key: "header" }, + "Response Schema: ", + external_react_["createElement"](DropdownOrLabel, Object(external_tslib_["__assign"])({}, props))); + }; + return _this; + } + ResponseDetails.prototype.render = function () { + var _a = this.props.response, description = _a.description, headers = _a.headers, content = _a.content; + return external_react_["createElement"](external_react_["Fragment"], null, + description && external_react_["createElement"](Markdown_Markdown, { source: description }), + external_react_["createElement"](ResponseHeaders_ResponseHeaders, { headers: headers }), + external_react_["createElement"](MediaTypesSwitch_MediaTypesSwitch, { content: content, renderDropdown: this.renderDropdown }, function (_a) { + var schema = _a.schema; + return external_react_["createElement"](Schema_Schema, { skipWriteOnly: true, key: "schema", schema: schema }); + })); + }; + return ResponseDetails; +}(external_react_["PureComponent"])); + + +// CONCATENATED MODULE: ./src/components/Responses/Response.tsx + + + + + +var Response_ResponseView = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(ResponseView, _super); + function ResponseView() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.toggle = function () { + _this.props.response.toggle(); + }; + return _this; + } + ResponseView.prototype.render = function () { + var _a = this.props.response, headers = _a.headers, type = _a.type, summary = _a.summary, description = _a.description, code = _a.code, expanded = _a.expanded, content = _a.content; + var mimes = content === undefined ? [] : content.mediaTypes.filter(function (mime) { return mime.schema !== undefined; }); + var empty = headers.length === 0 && mimes.length === 0 && !description; + return external_react_["createElement"]("div", null, + external_react_["createElement"](StyledResponseTitle, { onClick: this.toggle, type: type, empty: empty, title: summary || '', code: code, opened: expanded }), + expanded && !empty && external_react_["createElement"](ResponseDetailsWrap, null, + external_react_["createElement"](ResponseDetails_ResponseDetails, { response: this.props.response }))); + }; + ResponseView = Object(external_tslib_["__decorate"])([ + external_mobx_react_["observer"] + ], ResponseView); + return ResponseView; +}(external_react_["Component"])); + + +// CONCATENATED MODULE: ./src/components/Responses/ResponsesList.tsx + + + + +var ResponsesHeader = styled_components.h3(ResponsesList_templateObject_1 || (ResponsesList_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n font-size: 1.3em;\n padding: 0.2em 0;\n margin: 3em 0 1.1em;\n color: ", ";\n font-weight: normal;\n"], ["\n font-size: 1.3em;\n padding: 0.2em 0;\n margin: 3em 0 1.1em;\n color: ", + ";\n font-weight: normal;\n"])), function (_a) { + var theme = _a.theme; + return theme.colors.text.primary; +}); +var ResponsesList_ResponsesList = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(ResponsesList, _super); + function ResponsesList() { + return _super !== null && _super.apply(this, arguments) || this; + } + ResponsesList.prototype.render = function () { + var _a = this.props, responses = _a.responses, isCallback = _a.isCallback; + if (!responses || responses.length === 0) { + return null; + } + return external_react_["createElement"]("div", null, + external_react_["createElement"](ResponsesHeader, null, isCallback ? 'Callback responses' : 'Responses'), + responses.map(function (response) { + return external_react_["createElement"](Response_ResponseView, { key: response.code, response: response }); + })); + }; + return ResponsesList; +}(external_react_["PureComponent"])); + +var ResponsesList_templateObject_1; + +// CONCATENATED MODULE: ./src/components/SecurityRequirement/SecurityRequirement.tsx + +// import { transparentize } from 'polished'; + + + + +var ScopeName = styled_components.code(SecurityRequirement_templateObject_1 || (SecurityRequirement_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n font-size: ", ";\n font-family: ", ";\n border: 1px solid ", ";\n margin: 0 3px;\n padding: 0.2em;\n display: inline-block;\n line-height: 1;\n\n &:after {\n content: ',';\n }\n &:last-child:after {\n content: none;\n }\n"], ["\n font-size: ", ";\n font-family: ", ";\n border: 1px solid ", + ";\n margin: 0 3px;\n padding: 0.2em;\n display: inline-block;\n line-height: 1;\n\n &:after {\n content: ',';\n }\n &:last-child:after {\n content: none;\n }\n"])), function (props) { return props.theme.typography.code.fontSize; }, function (props) { return props.theme.typography.code.fontFamily; }, function (_a) { + var theme = _a.theme; + return theme.colors.border.dark; +}); +var SecurityRequirementAndWrap = styled_components.span(SecurityRequirement_templateObject_2 || (SecurityRequirement_templateObject_2 = Object(external_tslib_["__makeTemplateObject"])(["\n &:after {\n content: ' AND ';\n font-weight: bold;\n }\n\n &:last-child:after {\n content: none;\n }\n\n ", ";\n"], ["\n &:after {\n content: ' AND ';\n font-weight: bold;\n }\n\n &:last-child:after {\n content: none;\n }\n\n ", ";\n"])), linksCss); +var SecurityRequirementOrWrap = styled_components.span(SecurityRequirement_templateObject_3 || (SecurityRequirement_templateObject_3 = Object(external_tslib_["__makeTemplateObject"])(["\n &:before {\n content: '( ';\n font-weight: bold;\n }\n &:after {\n content: ' ) OR ';\n font-weight: bold;\n }\n &:last-child:after {\n content: ' )';\n }\n\n &:only-child:before,\n &:only-child:after {\n content: none;\n }\n\n ", ";\n"], ["\n &:before {\n content: '( ';\n font-weight: bold;\n }\n &:after {\n content: ' ) OR ';\n font-weight: bold;\n }\n &:last-child:after {\n content: ' )';\n }\n\n &:only-child:before,\n &:only-child:after {\n content: none;\n }\n\n ", ";\n"])), linksCss); +var SecurityRequirement_SecurityRequirement = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(SecurityRequirement, _super); + function SecurityRequirement() { + return _super !== null && _super.apply(this, arguments) || this; + } + SecurityRequirement.prototype.render = function () { + var security = this.props.security; + return external_react_["createElement"](SecurityRequirementOrWrap, null, security.schemes.map(function (scheme) { + return external_react_["createElement"](SecurityRequirementAndWrap, { key: scheme.id }, + external_react_["createElement"](linkify_Link, { to: scheme.sectionId }, scheme.id), + scheme.scopes.length > 0 && ' (', + scheme.scopes.map(function (scope) { return external_react_["createElement"](ScopeName, { key: scope }, scope); }), + scheme.scopes.length > 0 && ') '); + })); + }; + return SecurityRequirement; +}(external_react_["PureComponent"])); + +var AuthHeaderColumn = styled_components.div(SecurityRequirement_templateObject_4 || (SecurityRequirement_templateObject_4 = Object(external_tslib_["__makeTemplateObject"])(["\n flex: 1;\n"], ["\n flex: 1;\n"]))); +var SecuritiesColumn = styled_components.div(SecurityRequirement_templateObject_5 || (SecurityRequirement_templateObject_5 = Object(external_tslib_["__makeTemplateObject"])(["\n width: ", ";\n"], ["\n width: ", ";\n"])), function (props) { return props.theme.schema.defaultDetailsWidth; }); +var AuthHeader = styled_components(UnderlinedHeader)(SecurityRequirement_templateObject_6 || (SecurityRequirement_templateObject_6 = Object(external_tslib_["__makeTemplateObject"])(["\n display: inline-block;\n margin: 0;\n"], ["\n display: inline-block;\n margin: 0;\n"]))); +var SecurityRequirement_Wrap = styled_components.div(SecurityRequirement_templateObject_7 || (SecurityRequirement_templateObject_7 = Object(external_tslib_["__makeTemplateObject"])(["\n width: 100%;\n display: flex;\n margin: 1em 0;\n"], ["\n width: 100%;\n display: flex;\n margin: 1em 0;\n"]))); +var SecurityRequirement_SecurityRequirements = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(SecurityRequirements, _super); + function SecurityRequirements() { + return _super !== null && _super.apply(this, arguments) || this; + } + SecurityRequirements.prototype.render = function () { + var securities = this.props.securities; + if (!securities.length) { + return null; + } + return external_react_["createElement"](SecurityRequirement_Wrap, null, + external_react_["createElement"](AuthHeaderColumn, null, + external_react_["createElement"](AuthHeader, null, "Authorizations: ")), + external_react_["createElement"](SecuritiesColumn, null, securities.map(function (security, idx) { return external_react_["createElement"](SecurityRequirement_SecurityRequirement, { key: idx, security: security }); }))); + }; + return SecurityRequirements; +}(external_react_["PureComponent"])); + +var SecurityRequirement_templateObject_1, SecurityRequirement_templateObject_2, SecurityRequirement_templateObject_3, SecurityRequirement_templateObject_4, SecurityRequirement_templateObject_5, SecurityRequirement_templateObject_6, SecurityRequirement_templateObject_7; + +// CONCATENATED MODULE: ./src/components/Callbacks/CallbackDetails.tsx + + + + + + + + + + + + +var CallbackDetails_CallbackDetails = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(CallbackDetails, _super); + function CallbackDetails() { + return _super !== null && _super.apply(this, arguments) || this; + } + CallbackDetails.prototype.render = function () { + var operation = this.props.operation; + var description = operation.description, externalDocs = operation.externalDocs; + var hasDescription = !!(description || externalDocs); + return external_react_["createElement"](CallbackDetailsWrap, null, + hasDescription && external_react_["createElement"](Description, null, + description !== undefined && external_react_["createElement"](Markdown_Markdown, { source: description }), + externalDocs && external_react_["createElement"](ExternalDocumentation_ExternalDocumentation, { externalDocs: externalDocs })), + external_react_["createElement"](Endpoint_Endpoint, { operation: this.props.operation, inverted: true, compact: true }), + external_react_["createElement"](Extensions_Extensions, { extensions: operation.extensions }), + external_react_["createElement"](SecurityRequirement_SecurityRequirements, { securities: operation.security }), + external_react_["createElement"](Parameters_Parameters, { parameters: operation.parameters, body: operation.requestBody }), + external_react_["createElement"](ResponsesList_ResponsesList, { responses: operation.responses, isCallback: operation.isCallback })); + }; + CallbackDetails = Object(external_tslib_["__decorate"])([ + external_mobx_react_["observer"] + ], CallbackDetails); + return CallbackDetails; +}(external_react_["Component"])); + +var Description = styled_components.div(CallbackDetails_templateObject_1 || (CallbackDetails_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n margin-bottom: ", "px;\n"], ["\n margin-bottom: ", + "px;\n"])), function (_a) { + var theme = _a.theme; + return theme.spacing.unit * 3; +}); +var CallbackDetails_templateObject_1; + +// CONCATENATED MODULE: ./src/components/Callbacks/CallbackOperation.tsx + + + + + +var CallbackOperation_CallbackOperation = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(CallbackOperation, _super); + function CallbackOperation() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.toggle = function () { + _this.props.callbackOperation.toggle(); + }; + return _this; + } + CallbackOperation.prototype.render = function () { + var _a = this.props.callbackOperation, name = _a.name, expanded = _a.expanded, httpVerb = _a.httpVerb, deprecated = _a.deprecated; + return external_react_["createElement"](external_react_["Fragment"], null, + external_react_["createElement"](StyledCallbackTitle, { onClick: this.toggle, name: name, opened: expanded, httpVerb: httpVerb, deprecated: deprecated }), + expanded && external_react_["createElement"](CallbackDetails_CallbackDetails, { operation: this.props.callbackOperation })); + }; + CallbackOperation = Object(external_tslib_["__decorate"])([ + external_mobx_react_["observer"] + ], CallbackOperation); + return CallbackOperation; +}(external_react_["Component"])); + + +// CONCATENATED MODULE: ./src/components/Callbacks/CallbacksList.tsx + + + + +var CallbacksList_CallbacksList = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(CallbacksList, _super); + function CallbacksList() { + return _super !== null && _super.apply(this, arguments) || this; + } + CallbacksList.prototype.render = function () { + var callbacks = this.props.callbacks; + if (!callbacks || callbacks.length === 0) { + return null; + } + return external_react_["createElement"]("div", null, + external_react_["createElement"](CallbacksHeader, null, " Callbacks "), + callbacks.map(function (callback) { + return callback.operations.map(function (operation, index) { + return external_react_["createElement"](CallbackOperation_CallbackOperation, { key: callback.name + "_" + index, callbackOperation: operation }); + }); + })); + }; + return CallbacksList; +}(external_react_["PureComponent"])); + +var CallbacksHeader = styled_components.h3(CallbacksList_templateObject_1 || (CallbacksList_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n font-size: 1.3em;\n padding: 0.2em 0;\n margin: 3em 0 1.1em;\n color: ", ";\n font-weight: normal;\n"], ["\n font-size: 1.3em;\n padding: 0.2em 0;\n margin: 3em 0 1.1em;\n color: ", + ";\n font-weight: normal;\n"])), function (_a) { + var theme = _a.theme; + return theme.colors.text.primary; +}); +var CallbacksList_templateObject_1; + +// CONCATENATED MODULE: ./src/components/Callbacks/index.ts + + + + +// CONCATENATED MODULE: ./src/components/GenericChildrenSwitcher/GenericChildrenSwitcher.tsx + + + + +/** + * TODO: Refactor this component: + * Implement rendering dropdown/label directly in this component + * Accept as a parameter mapper-function for building dropdown option labels + */ +var GenericChildrenSwitcher_GenericChildrenSwitcher = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(GenericChildrenSwitcher, _super); + function GenericChildrenSwitcher(props) { + var _this = _super.call(this, props) || this; + _this.switchItem = function (_a) { + var idx = _a.idx; + if (_this.props.items) { + _this.setState({ + activeItemIdx: idx + }); + } + }; + _this.state = { + activeItemIdx: 0 + }; + return _this; + } + GenericChildrenSwitcher.prototype.render = function () { + var _this = this; + var items = this.props.items; + if (!items || !items.length) { + return null; + } + var Wrapper = function (_a) { + var children = _a.children; + return _this.props.label ? external_react_["createElement"](DropdownWrapper, null, + external_react_["createElement"](DropdownLabel, null, _this.props.label), + children) : children; + }; + return external_react_["createElement"](external_react_["Fragment"], null, + external_react_["createElement"](Wrapper, null, this.props.renderDropdown({ + value: this.props.options[this.state.activeItemIdx].value, + options: this.props.options, + onChange: this.switchItem, + ariaLabel: this.props.label || 'Callback' + })), + this.props.children(items[this.state.activeItemIdx])); + }; + GenericChildrenSwitcher = Object(external_tslib_["__decorate"])([ + external_mobx_react_["observer"] + ], GenericChildrenSwitcher); + return GenericChildrenSwitcher; +}(external_react_["Component"])); + + +// CONCATENATED MODULE: ./src/components/PayloadSamples/PayloadSamples.tsx + + + + + + + +var PayloadSamples_PayloadSamples = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(PayloadSamples, _super); + function PayloadSamples() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.renderDropdown = function (props) { + return external_react_["createElement"](DropdownOrLabel, Object(external_tslib_["__assign"])({ Label: styled_elements_MimeLabel, Dropdown: InvertedSimpleDropdown }, props)); + }; + return _this; + } + PayloadSamples.prototype.render = function () { + var _this = this; + var mimeContent = this.props.content; + if (mimeContent === undefined) { + return null; + } + return external_react_["createElement"](MediaTypesSwitch_MediaTypesSwitch, { content: mimeContent, renderDropdown: this.renderDropdown, withLabel: true }, function (mediaType) { return external_react_["createElement"](MediaTypeSamples_MediaTypeSamples, { key: "samples", mediaType: mediaType, renderDropdown: _this.renderDropdown }); }); + }; + PayloadSamples = Object(external_tslib_["__decorate"])([ + external_mobx_react_["observer"] + ], PayloadSamples); + return PayloadSamples; +}(external_react_["Component"])); + + +// CONCATENATED MODULE: ./src/components/CallbackSamples/CallbackReqSamples.tsx + + + + + +var CallbackReqSamples_CallbackPayloadSample = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(CallbackPayloadSample, _super); + function CallbackPayloadSample() { + return _super !== null && _super.apply(this, arguments) || this; + } + CallbackPayloadSample.prototype.render = function () { + var payloadSample = this.props.callback.codeSamples.find(function (sample) { return isPayloadSample(sample); }); + if (!payloadSample) { + return null; + } + return external_react_["createElement"](PayloadSampleWrapper, null, + external_react_["createElement"](PayloadSamples_PayloadSamples, { content: payloadSample.requestBodyContent })); + }; + return CallbackPayloadSample; +}(external_react_["Component"])); + +var PayloadSampleWrapper = styled_components.div(CallbackReqSamples_templateObject_1 || (CallbackReqSamples_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n margin-top: 15px;\n"], ["\n margin-top: 15px;\n"]))); +var CallbackReqSamples_templateObject_1; + +// CONCATENATED MODULE: ./src/components/CallbackSamples/CallbackSamples.tsx + + + + + + + + + + +var CallbackSamples_CallbackSamples = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(CallbackSamples, _super); + function CallbackSamples() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.renderDropdown = function (props) { + return external_react_["createElement"](DropdownOrLabel, Object(external_tslib_["__assign"])({ Label: styled_elements_MimeLabel, Dropdown: InvertedSimpleDropdown }, props)); + }; + return _this; + } + CallbackSamples.prototype.render = function () { + var _this = this; + var callbacks = this.props.callbacks; + if (!callbacks || callbacks.length === 0) { + return null; + } + var operations = callbacks.map(function (callback) { return callback.operations.map(function (operation) { return operation; }); }).reduce(function (a, b) { return a.concat(b); }, []); + var hasSamples = operations.some(function (operation) { return operation.codeSamples.length > 0; }); + if (!hasSamples) { + return null; + } + var dropdownOptions = operations.map(function (callback, idx) { + return { + value: callback.httpVerb.toUpperCase() + ": " + callback.name, + idx: idx + }; + }); + return external_react_["createElement"]("div", null, + external_react_["createElement"](RightPanelHeader, null, " Callback payload samples "), + external_react_["createElement"](CallbackSamples_SamplesWrapper, null, + external_react_["createElement"](GenericChildrenSwitcher_GenericChildrenSwitcher, { items: operations, renderDropdown: this.renderDropdown, label: 'Callback', options: dropdownOptions }, function (callback) { return external_react_["createElement"](CallbackReqSamples_CallbackPayloadSample, { key: "callbackPayloadSample", callback: callback, renderDropdown: _this.renderDropdown }); }))); + }; + CallbackSamples.contextType = OptionsContext; + CallbackSamples = Object(external_tslib_["__decorate"])([ + external_mobx_react_["observer"] + ], CallbackSamples); + return CallbackSamples; +}(external_react_["Component"])); + +var CallbackSamples_SamplesWrapper = styled_components.div(CallbackSamples_templateObject_1 || (CallbackSamples_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n background: ", ";\n padding: ", "px;\n"], ["\n background: ", + ";\n padding: ", "px;\n"])), function (_a) { + var theme = _a.theme; + return theme.codeBlock.backgroundColor; +}, function (props) { return props.theme.spacing.unit * 4; }); +var CallbackSamples_templateObject_1; + +// CONCATENATED MODULE: ./src/components/RequestSamples/RequestSamples.tsx + + + + + + + + +var RequestSamples_RequestSamples = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(RequestSamples, _super); + function RequestSamples() { + return _super !== null && _super.apply(this, arguments) || this; + } + RequestSamples.prototype.render = function () { + var operation = this.props.operation; + var samples = operation.codeSamples; + var hasSamples = samples.length > 0; + var hideTabList = samples.length === 1 ? this.context.hideSingleRequestSampleTab : false; + return hasSamples && external_react_["createElement"]("div", null, + external_react_["createElement"](RightPanelHeader, null, " Request samples "), + external_react_["createElement"](Tabs, { defaultIndex: 0 }, + external_react_["createElement"](external_react_tabs_["TabList"], { hidden: hideTabList }, samples.map(function (sample) { return external_react_["createElement"](external_react_tabs_["Tab"], { key: sample.lang + '_' + (sample.label || '') }, sample.label !== undefined ? sample.label : sample.lang); })), + samples.map(function (sample) { return external_react_["createElement"](external_react_tabs_["TabPanel"], { key: sample.lang + '_' + (sample.label || '') }, isPayloadSample(sample) ? external_react_["createElement"]("div", null, + external_react_["createElement"](PayloadSamples_PayloadSamples, { content: sample.requestBodyContent })) : external_react_["createElement"](SourceCode_SourceCodeWithCopy, { lang: sample.lang, source: sample.source })); }))) || null; + }; + RequestSamples.contextType = OptionsContext; + RequestSamples = Object(external_tslib_["__decorate"])([ + external_mobx_react_["observer"] + ], RequestSamples); + return RequestSamples; +}(external_react_["Component"])); + + +// CONCATENATED MODULE: ./src/components/ResponseSamples/ResponseSamples.tsx + + + + + +var ResponseSamples_ResponseSamples = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(ResponseSamples, _super); + function ResponseSamples() { + return _super !== null && _super.apply(this, arguments) || this; + } + ResponseSamples.prototype.render = function () { + var operation = this.props.operation; + var responses = operation.responses.filter(function (response) { + return response.content && response.content.hasSample; + }); + return responses.length > 0 && external_react_["createElement"]("div", null, + external_react_["createElement"](RightPanelHeader, null, " Response samples "), + external_react_["createElement"](Tabs, { defaultIndex: 0 }, + external_react_["createElement"](external_react_tabs_["TabList"], null, responses.map(function (response) { return external_react_["createElement"](external_react_tabs_["Tab"], { className: 'tab-' + response.type, key: response.code }, response.code); })), + responses.map(function (response) { return external_react_["createElement"](external_react_tabs_["TabPanel"], { key: response.code }, + external_react_["createElement"]("div", null, + external_react_["createElement"](PayloadSamples_PayloadSamples, { content: response.content }))); }))) || null; + }; + ResponseSamples = Object(external_tslib_["__decorate"])([ + external_mobx_react_["observer"] + ], ResponseSamples); + return ResponseSamples; +}(external_react_["Component"])); + + +// CONCATENATED MODULE: ./src/components/Operation/Operation.tsx + + + + + + + + + + + + + + + + + + +var OperationRow = styled_components(Row)(Operation_templateObject_1 || (Operation_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n backface-visibility: hidden;\n contain: content;\n overflow: hidden;\n"], ["\n backface-visibility: hidden;\n contain: content;\n overflow: hidden;\n"]))); +var Operation_Description = styled_components.div(Operation_templateObject_2 || (Operation_templateObject_2 = Object(external_tslib_["__makeTemplateObject"])(["\n margin-bottom: ", "px;\n"], ["\n margin-bottom: ", + "px;\n"])), function (_a) { + var theme = _a.theme; + return theme.spacing.unit * 6; +}); +var Operation_Operation = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(Operation, _super); + function Operation() { + return _super !== null && _super.apply(this, arguments) || this; + } + Operation.prototype.render = function () { + var operation = this.props.operation; + var summary = operation.name, description = operation.description, deprecated = operation.deprecated, externalDocs = operation.externalDocs, isWebhook = operation.isWebhook; + var hasDescription = !!(description || externalDocs); + return external_react_["createElement"](OptionsContext.Consumer, null, function (options) { return external_react_["createElement"](OperationRow, null, + external_react_["createElement"](MiddlePanel, null, + external_react_["createElement"](H2, null, + external_react_["createElement"](ShareLink, { to: operation.id }), + summary, + " ", + deprecated && external_react_["createElement"](Badge, { type: "warning" }, " Deprecated "), + isWebhook && external_react_["createElement"](Badge, { type: "primary" }, " Webhook ")), + options.pathInMiddlePanel && !isWebhook && external_react_["createElement"](Endpoint_Endpoint, { operation: operation, inverted: true }), + hasDescription && external_react_["createElement"](Operation_Description, null, + description !== undefined && external_react_["createElement"](Markdown_Markdown, { source: description }), + externalDocs && external_react_["createElement"](ExternalDocumentation_ExternalDocumentation, { externalDocs: externalDocs })), + external_react_["createElement"](Extensions_Extensions, { extensions: operation.extensions }), + external_react_["createElement"](SecurityRequirement_SecurityRequirements, { securities: operation.security }), + external_react_["createElement"](Parameters_Parameters, { parameters: operation.parameters, body: operation.requestBody }), + external_react_["createElement"](ResponsesList_ResponsesList, { responses: operation.responses }), + external_react_["createElement"](CallbacksList_CallbacksList, { callbacks: operation.callbacks })), + external_react_["createElement"](DarkRightPanel, null, + !options.pathInMiddlePanel && !isWebhook && external_react_["createElement"](Endpoint_Endpoint, { operation: operation }), + external_react_["createElement"](RequestSamples_RequestSamples, { operation: operation }), + external_react_["createElement"](ResponseSamples_ResponseSamples, { operation: operation }), + external_react_["createElement"](CallbackSamples_CallbackSamples, { callbacks: operation.callbacks }))); }); + }; + Operation = Object(external_tslib_["__decorate"])([ + external_mobx_react_["observer"] + ], Operation); + return Operation; +}(external_react_["Component"])); + +var Operation_templateObject_1, Operation_templateObject_2; + +// CONCATENATED MODULE: ./src/components/ContentItems/ContentItems.tsx + + + + + + + +var ContentItems_ContentItems = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(ContentItems, _super); + function ContentItems() { + return _super !== null && _super.apply(this, arguments) || this; + } + ContentItems.prototype.render = function () { + var items = this.props.items; + if (items.length === 0) { + return null; + } + return items.filter(function (item) { return item.type !== 'extra'; }).map(function (item) { + return external_react_["createElement"](ContentItems_ContentItem, { key: item.id, item: item }); + }); + }; + ContentItems = Object(external_tslib_["__decorate"])([ + external_mobx_react_["observer"] + ], ContentItems); + return ContentItems; +}(external_react_["Component"])); + +var ContentItems_ContentItem = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(ContentItem, _super); + function ContentItem() { + return _super !== null && _super.apply(this, arguments) || this; + } + ContentItem.prototype.render = function () { + var item = this.props.item; + var content; + var type = item.type; + switch (type) { + case 'group': + content = null; + break; + case 'tag': + case 'section': + content = external_react_["createElement"](ContentItems_SectionItem, Object(external_tslib_["__assign"])({}, this.props)); + break; + case 'operation': + content = external_react_["createElement"](ContentItems_OperationItem, { item: item }); + break; + default: + content = external_react_["createElement"](ContentItems_SectionItem, Object(external_tslib_["__assign"])({}, this.props)); + } + return external_react_["createElement"](external_react_["Fragment"], null, + content && external_react_["createElement"](Section, { id: item.id, underlined: item.type === 'operation' }, content), + item.items && external_react_["createElement"](ContentItems_ContentItems, { items: item.items })); + }; + ContentItem = Object(external_tslib_["__decorate"])([ + external_mobx_react_["observer"] + ], ContentItem); + return ContentItem; +}(external_react_["Component"])); + +var middlePanelWrap = function (component) { return external_react_["createElement"](MiddlePanel, { compact: true }, component); }; +var ContentItems_SectionItem = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(SectionItem, _super); + function SectionItem() { + return _super !== null && _super.apply(this, arguments) || this; + } + SectionItem.prototype.render = function () { + var _a = this.props.item, name = _a.name, description = _a.description, externalDocs = _a.externalDocs, level = _a.level; + var Header = level === 2 ? H2 : H1; + return external_react_["createElement"](external_react_["Fragment"], null, + external_react_["createElement"](Row, null, + external_react_["createElement"](MiddlePanel, { compact: false }, + external_react_["createElement"](Header, null, + external_react_["createElement"](ShareLink, { to: this.props.item.id }), + name))), + external_react_["createElement"](AdvancedMarkdown_AdvancedMarkdown, { source: description || '', htmlWrap: middlePanelWrap }), + externalDocs && external_react_["createElement"](Row, null, + external_react_["createElement"](MiddlePanel, null, + external_react_["createElement"](ExternalDocumentation_ExternalDocumentation, { externalDocs: externalDocs })))); + }; + SectionItem = Object(external_tslib_["__decorate"])([ + external_mobx_react_["observer"] + ], SectionItem); + return SectionItem; +}(external_react_["Component"])); + +var ContentItems_OperationItem = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(OperationItem, _super); + function OperationItem() { + return _super !== null && _super.apply(this, arguments) || this; + } + OperationItem.prototype.render = function () { + return external_react_["createElement"](Operation_Operation, { operation: this.props.item }); + }; + OperationItem = Object(external_tslib_["__decorate"])([ + external_mobx_react_["observer"] + ], OperationItem); + return OperationItem; +}(external_react_["Component"])); + + +// CONCATENATED MODULE: ./src/components/SideMenu/MenuItem.tsx + +// import { observe } from 'mobx'; + + + + + + + + +var MenuItem_MenuItem = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(MenuItem, _super); + function MenuItem() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.ref = external_react_["createRef"](); + _this.activate = function (evt) { + _this.props.onActivate(_this.props.item); + evt.stopPropagation(); + }; + return _this; + } + MenuItem.prototype.componentDidMount = function () { + this.scrollIntoViewIfActive(); + }; + MenuItem.prototype.componentDidUpdate = function () { + this.scrollIntoViewIfActive(); + }; + MenuItem.prototype.scrollIntoViewIfActive = function () { + if (this.props.item.active && this.ref.current) { + this.ref.current.scrollIntoViewIfNeeded(); + } + }; + MenuItem.prototype.render = function () { + var _a = this.props, item = _a.item, withoutChildren = _a.withoutChildren; + var hideShelfIcon = this.context.hideShelfIcon; + return external_react_["createElement"](MenuItemLi, { onClick: this.activate, depth: item.depth, "data-item-id": item.id }, + item.type === 'operation' ? external_react_["createElement"](MenuItem_OperationMenuItemContent, Object(external_tslib_["__assign"])({}, this.props, { item: item })) : external_react_["createElement"](MenuItemLabel, { depth: item.depth, active: item.active, type: item.type, ref: this.ref }, + external_react_["createElement"](MenuItemTitle, { title: item.name }, + item.name, + this.props.children), + !hideShelfIcon && item.depth > 0 && item.items.length > 0 && external_react_["createElement"](ShelfIcon, { float: 'right', direction: item.expanded ? 'down' : 'right' }) || null), + !withoutChildren && item.items && item.items.length > 0 && external_react_["createElement"](MenuItems_MenuItems, { expanded: item.expanded, items: item.items, onActivate: this.props.onActivate })); + }; + MenuItem.contextType = OptionsContext; + MenuItem = Object(external_tslib_["__decorate"])([ + external_mobx_react_["observer"] + ], MenuItem); + return MenuItem; +}(external_react_["Component"])); + +var MenuItem_OperationMenuItemContent = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(OperationMenuItemContent, _super); + function OperationMenuItemContent() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.ref = external_react_["createRef"](); + return _this; + } + OperationMenuItemContent.prototype.componentDidUpdate = function () { + if (this.props.item.active && this.ref.current) { + this.ref.current.scrollIntoViewIfNeeded(); + } + }; + OperationMenuItemContent.prototype.render = function () { + var item = this.props.item; + var hideHttpVerbsMenu = this.context.hideHttpVerbs; + return external_react_["createElement"](MenuItemLabel, { depth: item.depth, active: item.active, deprecated: item.deprecated, ref: this.ref }, + item.isWebhook ? external_react_["createElement"](OperationBadge, { type: "hook" }, l('webhook')) : !hideHttpVerbsMenu && external_react_["createElement"](OperationBadge, { type: item.httpVerb }, shortenHTTPVerb(item.httpVerb)), + external_react_["createElement"](MenuItemTitle, { width: "calc(100% - 38px)" }, + item.name, + this.props.children)); + }; + OperationMenuItemContent.contextType = OptionsContext; + OperationMenuItemContent = Object(external_tslib_["__decorate"])([ + external_mobx_react_["observer"] + ], OperationMenuItemContent); + return OperationMenuItemContent; +}(external_react_["Component"])); + + +// CONCATENATED MODULE: ./src/components/SideMenu/MenuItems.tsx + + + + + + +var MenuItems_MenuItems = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(MenuItems, _super); + function MenuItems() { + return _super !== null && _super.apply(this, arguments) || this; + } + MenuItems.prototype.render = function () { + var _this = this; + var _a = this.props, items = _a.items, root = _a.root, className = _a.className, extra = _a.extra; + var expanded = this.props.expanded == null ? true : this.props.expanded; + return external_react_["createElement"](MenuItemUl, Object(external_tslib_["__assign"])({ className: className, style: this.props.style, expanded: expanded }, root ? { + role: 'navigation' + } : {}), + extra && extra.map(function (headline, ids) { return external_react_["createElement"](MenuItem_MenuItem, { key: ids, item: new ExtraContent_ExtraContent({ + id: headline.id, + name: headline.text, + depth: headline.depth + }), onActivate: _this.props.onActivate }); }), + items.map(function (item, idx) { return external_react_["createElement"](MenuItem_MenuItem, { key: idx, item: item, onActivate: _this.props.onActivate }); })); + }; + MenuItems = Object(external_tslib_["__decorate"])([ + external_mobx_react_["observer"] + ], MenuItems); + return MenuItems; +}(external_react_["Component"])); + + +// CONCATENATED MODULE: ./src/components/SideMenu/SideMenu.tsx + + + + + + + +var SideMenu_SideMenu = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(SideMenu, _super); + function SideMenu() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.activate = function (item) { + if (item && item.active && _this.context.menuToggle) { + return item.expanded ? item.collapse() : item.expand(); + } + _this.props.menu.activateAndScroll(item, true); + setTimeout(function () { + if (_this._updateScroll) { + _this._updateScroll(); + } + }); + }; + _this.saveScrollUpdate = function (upd) { + _this._updateScroll = upd; + }; + return _this; + } + SideMenu.prototype.render = function () { + var store = this.props.menu; + return external_react_["createElement"](PerfectScrollbarWrap, { updateFn: this.saveScrollUpdate, className: this.props.className, options: { + wheelPropagation: false + } }, + external_react_["createElement"](MenuItems_MenuItems, { items: store.items, extra: this.props.extra, onActivate: this.activate, root: true }), + external_react_["createElement"](RedocAttribution, null, + external_react_["createElement"]("a", { target: "_blank", rel: "noopener noreferrer", href: "https://github.com/Redocly/redoc" }, "Documentation Powered by ReDoc"))); + }; + SideMenu.contextType = OptionsContext; + SideMenu = Object(external_tslib_["__decorate"])([ + external_mobx_react_["observer"] + ], SideMenu); + return SideMenu; +}(external_react_["Component"])); + + +// CONCATENATED MODULE: ./src/components/StickySidebar/ChevronSvg.tsx + + + +var AnimatedChevronButton = function (_a) { + var open = _a.open; + var iconOffset = open ? 8 : -4; + return external_react_["createElement"](ChevronContainer, null, + external_react_["createElement"](ChevronSvg, { size: 15, style: { + transform: "translate(2px, " + iconOffset + "px) rotate(180deg)", + transition: 'transform 0.2s ease' + } }), + external_react_["createElement"](ChevronSvg, { size: 15, style: { + transform: "translate(2px, " + (0 - iconOffset) + "px)", + transition: 'transform 0.2s ease' + } })); +}; // adapted from reactjs.org +var ChevronSvg = function (_a) { + var _b = _a.size, size = _b === void 0 ? 10 : _b, _c = _a.className, className = _c === void 0 ? '' : _c, style = _a.style; + return external_react_["createElement"]("svg", { className: className, style: style || {}, viewBox: "0 0 926.23699 573.74994", version: "1.1", x: "0px", y: "0px", width: size, height: size }, + external_react_["createElement"]("g", { transform: "translate(904.92214,-879.1482)" }, + external_react_["createElement"]("path", { d: "\n m -673.67664,1221.6502 -231.2455,-231.24803 55.6165,\n -55.627 c 30.5891,-30.59485 56.1806,-55.627 56.8701,-55.627 0.6894,\n 0 79.8637,78.60862 175.9427,174.68583 l 174.6892,174.6858 174.6892,\n -174.6858 c 96.079,-96.07721 175.253196,-174.68583 175.942696,\n -174.68583 0.6895,0 26.281,25.03215 56.8701,\n 55.627 l 55.6165,55.627 -231.245496,231.24803 c -127.185,127.1864\n -231.5279,231.248 -231.873,231.248 -0.3451,0 -104.688,\n -104.0616 -231.873,-231.248 z\n ", fill: "currentColor" }))); +}; +var ChevronContainer = styled_components.div(ChevronSvg_templateObject_1 || (ChevronSvg_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n user-select: none;\n width: 20px;\n height: 20px;\n align-self: center;\n display: flex;\n flex-direction: column;\n color: ", ";\n"], ["\n user-select: none;\n width: 20px;\n height: 20px;\n align-self: center;\n display: flex;\n flex-direction: column;\n color: ", ";\n"])), function (props) { return props.theme.colors.primary.main; }); +var ChevronSvg_templateObject_1; + +// CONCATENATED MODULE: ./src/components/StickySidebar/StickyResponsiveSidebar.tsx + + + + + + + + +var Stickyfill; +if (IS_BROWSER) { + Stickyfill = __webpack_require__(82); +} +var stickyfill = Stickyfill && Stickyfill(); +var StyledStickySidebar = styled_components.div(StickyResponsiveSidebar_templateObject_2 || (StickyResponsiveSidebar_templateObject_2 = Object(external_tslib_["__makeTemplateObject"])(["\n width: ", ";\n background-color: ", ";\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n backface-visibility: hidden;\n /* contain: strict; TODO: breaks layout since Chrome 80*/\n\n height: 100vh;\n position: sticky;\n position: -webkit-sticky;\n top: 0;\n\n ", ";\n\n @media print {\n display: none;\n }\n"], ["\n width: ", ";\n background-color: ", ";\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n backface-visibility: hidden;\n /* contain: strict; TODO: breaks layout since Chrome 80*/\n\n height: 100vh;\n position: sticky;\n position: -webkit-sticky;\n top: 0;\n\n ", + ";\n\n @media print {\n display: none;\n }\n"])), function (props) { return props.theme.sidebar.width; }, function (props) { return props.theme.sidebar.backgroundColor; }, media.lessThan('small')(StickyResponsiveSidebar_templateObject_1 || (StickyResponsiveSidebar_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n position: fixed;\n z-index: 20;\n width: 100%;\n background: ", ";\n display: ", ";\n "], ["\n position: fixed;\n z-index: 20;\n width: 100%;\n background: ", + ";\n display: ", ";\n "])), function (_a) { + var theme = _a.theme; + return theme.sidebar.backgroundColor; +}, function (props) { return props.open ? 'flex' : 'none'; })); +var FloatingButton = styled_components.div(StickyResponsiveSidebar_templateObject_4 || (StickyResponsiveSidebar_templateObject_4 = Object(external_tslib_["__makeTemplateObject"])(["\n outline: none;\n user-select: none;\n background-color: #f2f2f2;\n color: ", ";\n display: none;\n cursor: pointer;\n position: fixed;\n right: 20px;\n z-index: 100;\n border-radius: 50%;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.3);\n ", ";\n\n bottom: 44px;\n\n width: 60px;\n height: 60px;\n padding: 0 20px;\n\n @media print {\n display: none;\n }\n"], ["\n outline: none;\n user-select: none;\n background-color: #f2f2f2;\n color: ", ";\n display: none;\n cursor: pointer;\n position: fixed;\n right: 20px;\n z-index: 100;\n border-radius: 50%;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.3);\n ", + ";\n\n bottom: 44px;\n\n width: 60px;\n height: 60px;\n padding: 0 20px;\n\n @media print {\n display: none;\n }\n"])), function (props) { return props.theme.colors.primary.main; }, media.lessThan('small')(StickyResponsiveSidebar_templateObject_3 || (StickyResponsiveSidebar_templateObject_3 = Object(external_tslib_["__makeTemplateObject"])(["\n display: flex;\n "], ["\n display: flex;\n "])))); +var StickyResponsiveSidebar_StickyResponsiveSidebar = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(StickyResponsiveSidebar, _super); + function StickyResponsiveSidebar() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.state = { + offsetTop: '0px' + }; + _this.toggleNavMenu = function () { + _this.props.menu.toggleSidebar(); + }; + return _this; + } + StickyResponsiveSidebar.prototype.componentDidMount = function () { + if (stickyfill) { + stickyfill.add(this.stickyElement); + } // rerender when hydrating from SSR + // see https://github.com/facebook/react/issues/8017#issuecomment-256351955 + this.setState({ + offsetTop: this.getScrollYOffset(this.context) + }); + }; + StickyResponsiveSidebar.prototype.componentWillUnmount = function () { + if (stickyfill) { + stickyfill.remove(this.stickyElement); + } + }; + StickyResponsiveSidebar.prototype.getScrollYOffset = function (options) { + var top; + if (this.props.scrollYOffset !== undefined) { + top = RedocNormalizedOptions_RedocNormalizedOptions.normalizeScrollYOffset(this.props.scrollYOffset)(); + } + else { + top = options.scrollYOffset(); + } + return top + 'px'; + }; + StickyResponsiveSidebar.prototype.render = function () { + var _this = this; + var open = this.props.menu.sideBarOpened; + var top = this.state.offsetTop; + return external_react_["createElement"](external_react_["Fragment"], null, + external_react_["createElement"](StyledStickySidebar, { open: open, className: this.props.className, style: { + top: top, + height: "calc(100vh - " + top + ")" + }, ref: function (el) { + _this.stickyElement = el; + } }, this.props.children), + external_react_["createElement"](FloatingButton, { onClick: this.toggleNavMenu }, + external_react_["createElement"](AnimatedChevronButton, { open: open }))); + }; + StickyResponsiveSidebar.contextType = OptionsContext; + StickyResponsiveSidebar = Object(external_tslib_["__decorate"])([ + external_mobx_react_["observer"] + ], StickyResponsiveSidebar); + return StickyResponsiveSidebar; +}(external_react_["Component"])); + +var StickyResponsiveSidebar_templateObject_1, StickyResponsiveSidebar_templateObject_2, StickyResponsiveSidebar_templateObject_3, StickyResponsiveSidebar_templateObject_4; + +// CONCATENATED MODULE: ./src/components/Redoc/styled.elements.tsx + + +var RedocWrap = styled_components.div(Redoc_styled_elements_templateObject_1 || (Redoc_styled_elements_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n ", ";\n"], ["\n ", + ";\n"])), function (_a) { + var theme = _a.theme; + return "\n font-family: " + theme.typography.fontFamily + ";\n font-size: " + theme.typography.fontSize + ";\n font-weight: " + theme.typography.fontWeightRegular + ";\n line-height: " + theme.typography.lineHeight + ";\n color: " + theme.colors.text.primary + ";\n display: flex;\n position: relative;\n text-align: left;\n\n -webkit-font-smoothing: " + theme.typography.smoothing + ";\n font-smoothing: " + theme.typography.smoothing + ";\n " + (theme.typography.optimizeSpeed && 'text-rendering: optimizeSpeed !important' || '') + ";\n\n tap-highlight-color: rgba(0, 0, 0, 0);\n text-size-adjust: 100%;\n\n * {\n box-sizing: border-box;\n -webkit-tap-highlight-color: rgba(255, 255, 255, 0);\n }\n"; +}); +var ApiContentWrap = styled_components.div(Redoc_styled_elements_templateObject_3 || (Redoc_styled_elements_templateObject_3 = Object(external_tslib_["__makeTemplateObject"])(["\n z-index: 1;\n position: relative;\n overflow: hidden;\n width: calc(100% - ", ");\n ", ";\n\n contain: layout;\n"], ["\n z-index: 1;\n position: relative;\n overflow: hidden;\n width: calc(100% - ", ");\n ", + ";\n\n contain: layout;\n"])), function (props) { return props.theme.sidebar.width; }, media.lessThan('small', true)(Redoc_styled_elements_templateObject_2 || (Redoc_styled_elements_templateObject_2 = Object(external_tslib_["__makeTemplateObject"])(["\n width: 100%;\n "], ["\n width: 100%;\n "])))); +var BackgroundStub = styled_components.div(Redoc_styled_elements_templateObject_5 || (Redoc_styled_elements_templateObject_5 = Object(external_tslib_["__makeTemplateObject"])(["\n background: ", ";\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n width: ", ";\n ", ";\n"], ["\n background: ", + ";\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n width: ", + ";\n ", + ";\n"])), function (_a) { + var theme = _a.theme; + return theme.rightPanel.backgroundColor; +}, function (_a) { + var theme = _a.theme; + if (theme.rightPanel.width.endsWith('%')) { + var percents = parseInt(theme.rightPanel.width, 10); + return "calc((100% - " + theme.sidebar.width + ") * " + percents / 100 + ")"; + } + else { + return theme.rightPanel.width; + } +}, media.lessThan('medium', true)(Redoc_styled_elements_templateObject_4 || (Redoc_styled_elements_templateObject_4 = Object(external_tslib_["__makeTemplateObject"])(["\n display: none;\n "], ["\n display: none;\n "])))); +var Redoc_styled_elements_templateObject_1, Redoc_styled_elements_templateObject_2, Redoc_styled_elements_templateObject_3, Redoc_styled_elements_templateObject_4, Redoc_styled_elements_templateObject_5; + +// CONCATENATED MODULE: ./src/components/SearchBox/styled.elements.tsx + + + + + +var SearchWrap = styled_components.div(SearchBox_styled_elements_templateObject_1 || (SearchBox_styled_elements_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n padding: 5px 0;\n"], ["\n padding: 5px 0;\n"]))); +var SearchInput = styled_components.input.attrs(function () { return ({ + className: 'search-input' +}); })(SearchBox_styled_elements_templateObject_2 || (SearchBox_styled_elements_templateObject_2 = Object(external_tslib_["__makeTemplateObject"])(["\n width: calc(100% - ", "px);\n box-sizing: border-box;\n margin: 0 ", "px;\n padding: 5px ", "px 5px\n ", "px;\n border: 0;\n border-bottom: 1px solid\n ", ";\n font-family: ", ";\n font-weight: bold;\n font-size: 13px;\n color: ", ";\n background-color: transparent;\n outline: none;\n"], ["\n width: calc(100% - ", "px);\n box-sizing: border-box;\n margin: 0 ", "px;\n padding: 5px ", "px 5px\n ", "px;\n border: 0;\n border-bottom: 1px solid\n ", + ";\n font-family: ", + ";\n font-weight: bold;\n font-size: 13px;\n color: ", ";\n background-color: transparent;\n outline: none;\n"])), function (props) { return props.theme.spacing.unit * 8; }, function (props) { return props.theme.spacing.unit * 4; }, function (props) { return props.theme.spacing.unit * 2; }, function (props) { return props.theme.spacing.unit * 4; }, function (_a) { + var theme = _a.theme; + return (Object(external_polished_["getLuminance"])(theme.sidebar.backgroundColor) > 0.5 ? external_polished_["darken"] : external_polished_["lighten"])(0.1, theme.sidebar.backgroundColor); +}, function (_a) { + var theme = _a.theme; + return theme.typography.fontFamily; +}, function (props) { return props.theme.sidebar.textColor; }); +var SearchIcon = styled_components(function (props) { return external_react_["createElement"]("svg", { className: props.className, version: "1.1", viewBox: "0 0 1000 1000", x: "0px", xmlns: "http://www.w3.org/2000/svg", y: "0px" }, + external_react_["createElement"]("path", { d: "M968.2,849.4L667.3,549c83.9-136.5,66.7-317.4-51.7-435.6C477.1-25,252.5-25,113.9,113.4c-138.5,138.3-138.5,362.6,0,501C219.2,730.1,413.2,743,547.6,666.5l301.9,301.4c43.6,43.6,76.9,14.9,104.2-12.4C981,928.3,1011.8,893,968.2,849.4z M524.5,522c-88.9,88.7-233,88.7-321.8,0c-88.9-88.7-88.9-232.6,0-321.3c88.9-88.7,233-88.7,321.8,0C613.4,289.4,613.4,433.3,524.5,522z" })); }).attrs({ + className: 'search-icon' +})(SearchBox_styled_elements_templateObject_3 || (SearchBox_styled_elements_templateObject_3 = Object(external_tslib_["__makeTemplateObject"])(["\n position: absolute;\n left: ", "px;\n height: 1.8em;\n width: 0.9em;\n\n path {\n fill: ", ";\n }\n"], ["\n position: absolute;\n left: ", "px;\n height: 1.8em;\n width: 0.9em;\n\n path {\n fill: ", ";\n }\n"])), function (props) { return props.theme.spacing.unit * 4; }, function (props) { return props.theme.sidebar.textColor; }); +var SearchResultsBox = styled_components.div(SearchBox_styled_elements_templateObject_4 || (SearchBox_styled_elements_templateObject_4 = Object(external_tslib_["__makeTemplateObject"])(["\n padding: ", "px 0;\n background-color: ", "};\n color: ", ";\n min-height: 150px;\n max-height: 250px;\n border-top: ", "};\n border-bottom: ", "};\n margin-top: 10px;\n line-height: 1.4;\n font-size: 0.9em;\n\n ", " {\n padding-top: 6px;\n padding-bottom: 6px;\n\n &:hover,\n &.active {\n background-color: ", ";\n }\n\n > svg {\n display: none;\n }\n }\n"], ["\n padding: ", "px 0;\n background-color: ", + "};\n color: ", ";\n min-height: 150px;\n max-height: 250px;\n border-top: ", + "};\n border-bottom: ", + "};\n margin-top: 10px;\n line-height: 1.4;\n font-size: 0.9em;\n\n ", " {\n padding-top: 6px;\n padding-bottom: 6px;\n\n &:hover,\n &.active {\n background-color: ", + ";\n }\n\n > svg {\n display: none;\n }\n }\n"])), function (props) { return props.theme.spacing.unit; }, function (_a) { + var theme = _a.theme; + return Object(external_polished_["darken"])(0.05, theme.sidebar.backgroundColor); +}, function (props) { return props.theme.sidebar.textColor; }, function (_a) { + var theme = _a.theme; + return Object(external_polished_["darken"])(0.1, theme.sidebar.backgroundColor); +}, function (_a) { + var theme = _a.theme; + return Object(external_polished_["darken"])(0.1, theme.sidebar.backgroundColor); +}, MenuItemLabel, function (_a) { + var theme = _a.theme; + return Object(external_polished_["darken"])(0.1, theme.sidebar.backgroundColor); +}); +var ClearIcon = styled_components.i(SearchBox_styled_elements_templateObject_5 || (SearchBox_styled_elements_templateObject_5 = Object(external_tslib_["__makeTemplateObject"])(["\n position: absolute;\n display: inline-block;\n width: ", "px;\n text-align: center;\n right: ", "px;\n line-height: 2em;\n vertical-align: middle;\n margin-right: 2px;\n cursor: pointer;\n font-style: normal;\n color: '#666';\n"], ["\n position: absolute;\n display: inline-block;\n width: ", "px;\n text-align: center;\n right: ", "px;\n line-height: 2em;\n vertical-align: middle;\n margin-right: 2px;\n cursor: pointer;\n font-style: normal;\n color: '#666';\n"])), function (props) { return props.theme.spacing.unit * 2; }, function (props) { return props.theme.spacing.unit * 4; }); +var SearchBox_styled_elements_templateObject_1, SearchBox_styled_elements_templateObject_2, SearchBox_styled_elements_templateObject_3, SearchBox_styled_elements_templateObject_4, SearchBox_styled_elements_templateObject_5; + +// CONCATENATED MODULE: ./src/components/SearchBox/SearchBox.tsx + + + + + + +var SearchBox_SearchBox = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(SearchBox, _super); + function SearchBox(props) { + var _this = _super.call(this, props) || this; + _this.activeItemRef = null; + _this.clear = function () { + _this.setState({ + results: [], + term: '', + activeItemIdx: -1 + }); + _this.props.marker.unmark(); + }; + _this.handleKeyDown = function (event) { + if (event.keyCode === 27) { + // ESQ + _this.clear(); + } + if (event.keyCode === 40) { + // Arrow down + _this.setState({ + activeItemIdx: Math.min(_this.state.activeItemIdx + 1, _this.state.results.length - 1) + }); + event.preventDefault(); + } + if (event.keyCode === 38) { + // Arrow up + _this.setState({ + activeItemIdx: Math.max(0, _this.state.activeItemIdx - 1) + }); + event.preventDefault(); + } + if (event.keyCode === 13) { + // enter + var activeResult = _this.state.results[_this.state.activeItemIdx]; + if (activeResult) { + var item = _this.props.getItemById(activeResult.meta); + if (item) { + _this.props.onActivate(item); + } + } + } + }; + _this.search = function (event) { + var q = event.target.value; + if (q.length < 3) { + _this.clearResults(q); + return; + } + _this.setState({ + term: q + }, function () { return _this.searchCallback(_this.state.term); }); + }; + _this.state = { + results: [], + term: '', + activeItemIdx: -1 + }; + return _this; + } + SearchBox.prototype.clearResults = function (term) { + this.setState({ + results: [], + term: term + }); + this.props.marker.unmark(); + }; + SearchBox.prototype.setResults = function (results, term) { + this.setState({ + results: results + }); + this.props.marker.mark(term); + }; + SearchBox.prototype.searchCallback = function (searchTerm) { + var _this = this; + this.props.search.search(searchTerm).then(function (res) { + _this.setResults(res, searchTerm); + }); + }; + SearchBox.prototype.render = function () { + var _this = this; + var activeItemIdx = this.state.activeItemIdx; + var results = this.state.results.map(function (res) { return ({ + item: _this.props.getItemById(res.meta), + score: res.score + }); }); + results.sort(function (a, b) { return b.score - a.score; }); + return external_react_["createElement"](SearchWrap, { role: "search" }, + this.state.term && external_react_["createElement"](ClearIcon, { onClick: this.clear }, "\u00D7"), + external_react_["createElement"](SearchIcon, null), + external_react_["createElement"](SearchInput, { value: this.state.term, onKeyDown: this.handleKeyDown, placeholder: "Search...", type: "text", onChange: this.search }), + results.length > 0 && external_react_["createElement"](PerfectScrollbarWrap, { options: { + wheelPropagation: false + } }, + external_react_["createElement"](SearchResultsBox, { "data-role": "search:results" }, results.map(function (res, idx) { return external_react_["createElement"](MenuItem_MenuItem, { item: Object.create(res.item, { + active: { + value: idx === activeItemIdx + } + }), onActivate: _this.props.onActivate, withoutChildren: true, key: res.item.id, "data-role": "search:result" }); })))); + }; + Object(external_tslib_["__decorate"])([ + external_decko_["bind"], + Object(external_decko_["debounce"])(400) + ], SearchBox.prototype, "searchCallback", null); + return SearchBox; +}(external_react_["PureComponent"])); + + +// EXTERNAL MODULE: external "prism-react-renderer" +var external_prism_react_renderer_ = __webpack_require__(26); +var external_prism_react_renderer_default = /*#__PURE__*/__webpack_require__.n(external_prism_react_renderer_); + +// CONCATENATED MODULE: ./src/markdown/code/Highlighter/index.tsx + + + + +var OverflowHighlighter = styled_components.pre(Highlighter_templateObject_1 || (Highlighter_templateObject_1 = Object(external_tslib_["__makeTemplateObject"])(["\n overflow-x: scroll;\n"], ["\n overflow-x: scroll;\n"]))); +var Highlighter = function (_a) { + var children = _a.children, className = _a.className; + console.log('className', className); + var language = className ? className.replace(/language-/, '').trim() : 'bash'; + if (!children) { + return null; + } + return external_react_["createElement"](external_prism_react_renderer_default.a, Object(external_tslib_["__assign"])({}, external_prism_react_renderer_["defaultProps"], { code: children.toString(), language: language }), function (_a) { + var className = _a.className, style = _a.style, tokens = _a.tokens, getLineProps = _a.getLineProps, getTokenProps = _a.getTokenProps; + return external_react_["createElement"](OverflowHighlighter, { className: className, style: Object(external_tslib_["__assign"])(Object(external_tslib_["__assign"])({}, style), { padding: '20px' }) }, tokens.map(function (line, i) { return external_react_["createElement"]("div", Object(external_tslib_["__assign"])({ key: i }, getLineProps({ + line: line, + key: i + })), line.map(function (token, key) { return external_react_["createElement"]("span", Object(external_tslib_["__assign"])({ key: key }, getTokenProps({ + token: token, + key: key + }))); })); })); + }); +}; +/* harmony default export */ var code_Highlighter = (Highlighter); +var Highlighter_templateObject_1; + +// CONCATENATED MODULE: ./src/markdown/components.tsx + + + + +var H1Comp = function (_a) { + var children = _a.children, props = Object(external_tslib_["__rest"])(_a, ["children"]); + return external_react_["createElement"](H1, { id: props.id }, + external_react_["createElement"](ShareLink, { to: props.id }), + children); +}; +var H2Comp = function (_a) { + var children = _a.children, props = Object(external_tslib_["__rest"])(_a, ["children"]); + return external_react_["createElement"](H2, { id: props.id }, + external_react_["createElement"](ShareLink, { to: props.id }), + children); +}; +var components_Wrapper = function (_a) { + var children = _a.children; + var getSections = function (children) { + var currentSection = []; + var currentId = null; + var currentCodeBlocks = []; + var result = []; + children.forEach(function (child) { + var type = child.props.mdxType; + if (['h1', 'h2', 'h3', 'h4', 'h5'].includes(type)) { + if (currentSection.length > 0) { + result.push({ + id: currentId, + middle: currentSection, + right: currentCodeBlocks + }); + } + currentId = child.props.id; + currentSection = []; + currentCodeBlocks = []; + } + if (['code', 'pre', 'blockquote'].includes(type)) { + currentCodeBlocks.push(child); + } + else { + currentSection.push(child); + } + }); + if (currentSection.length > 0) { + result.push({ + id: currentId, + middle: currentSection, + right: currentCodeBlocks + }); + } + return result; + }; + var sections = getSections(children); + console.log('sections', sections); + return external_react_["createElement"](external_react_["Fragment"], null, sections.map(function (section) { return external_react_["createElement"](Section, { key: "resection-" + section.id, id: section.id }, + external_react_["createElement"](Row, { id: section.id }, + section.middle && external_react_["createElement"](MiddlePanel, null, section.middle), + section.right && external_react_["createElement"](DarkRightPanel, null, section.right))); })); +}; +/* harmony default export */ var markdown_components = ({ + code: code_Highlighter, + h1: H1Comp, + h2: H2Comp, + table: PropertiesTable, + wrapper: components_Wrapper +}); + +// CONCATENATED MODULE: ./src/components/Redoc/Redoc.tsx + + + + + + + + + + + + + + + + +var Redoc_Redoc = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(Redoc, _super); + function Redoc() { + return _super !== null && _super.apply(this, arguments) || this; + } + Redoc.prototype.componentDidMount = function () { + this.props.store.onDidMount(); + }; + Redoc.prototype.componentWillUnmount = function () { + this.props.store.dispose(); + }; + Redoc.prototype.render = function () { + var _a = this.props.store, spec = _a.spec, menu = _a.menu, options = _a.options, search = _a.search, marker = _a.marker, markdownIndex = _a.markdownIndex; + var store = this.props.store; + console.log('components', markdown_components); + return external_react_["createElement"](ThemeProvider, { theme: options.theme }, + external_react_["createElement"](Provider, { value: this.props.store }, + external_react_["createElement"](OptionsProvider, { value: options }, + external_react_["createElement"](react_["MDXProvider"], { components: markdown_components }, + external_react_["createElement"](RedocWrap, { className: "redoc-wrap" }, + external_react_["createElement"](StickyResponsiveSidebar_StickyResponsiveSidebar, { menu: menu, className: "menu-content" }, + external_react_["createElement"](ApiLogo_ApiLogo, { info: spec.info }), + !options.disableSearch && external_react_["createElement"](SearchBox_SearchBox, { search: search, marker: marker, getItemById: menu.getItemById, onActivate: menu.activateAndScroll }) || null, + external_react_["createElement"](SideMenu_SideMenu, { menu: menu })), + external_react_["createElement"](ApiContentWrap, { className: "api-content" }, + external_react_["createElement"](ApiInfo_ApiInfo, { store: store }), + markdownIndex && markdownIndex.components.map(function (MDXComponent, idx) { + return external_react_["createElement"](MDXComponent, { key: "mdxsection-" + idx }); + }), + external_react_["createElement"](ContentItems_ContentItems, { items: menu.items })), + external_react_["createElement"](BackgroundStub, null)))))); + }; + Redoc.propTypes = { + store: external_prop_types_["instanceOf"](AppStore_AppStore).isRequired + }; + return Redoc; +}(external_react_["Component"])); + + +// CONCATENATED MODULE: ./src/components/RedocStandalone.tsx + + + + + + + + +var RedocStandalone_RedocStandalone = /** @class */ (function (_super) { + Object(external_tslib_["__extends"])(RedocStandalone, _super); + function RedocStandalone() { + return _super !== null && _super.apply(this, arguments) || this; + } + RedocStandalone.prototype.render = function () { + var _a = this.props, spec = _a.spec, specUrl = _a.specUrl, _b = _a.options, options = _b === void 0 ? {} : _b, onLoaded = _a.onLoaded; + var hideLoading = options.hideLoading !== undefined; + var normalizedOpts = new RedocNormalizedOptions_RedocNormalizedOptions(options); + return external_react_["createElement"](ErrorBoundary_ErrorBoundary, null, + external_react_["createElement"](StoreBuilder_StoreBuilder, { spec: spec, specUrl: specUrl, options: options, onLoaded: onLoaded }, function (_a) { + var loading = _a.loading, store = _a.store; + return !loading ? external_react_["createElement"](Redoc_Redoc, { store: store }) : hideLoading ? null : external_react_["createElement"](Loading_Loading, { color: normalizedOpts.theme.colors.primary.main }); + })); + }; + RedocStandalone.propTypes = { + spec: function (props, _, componentName) { + if (!props.spec && !props.specUrl) { + return new Error("One of props 'spec' or 'specUrl' was not specified in '" + componentName + "'."); + } + return null; + }, + specUrl: function (props, _, componentName) { + if (!props.spec && !props.specUrl) { + return new Error("One of props 'spec' or 'specUrl' was not specified in '" + componentName + "'."); + } + return null; + }, + options: external_prop_types_["any"], + onLoaded: external_prop_types_["any"] + }; + return RedocStandalone; +}(external_react_["PureComponent"])); + + +// CONCATENATED MODULE: ./src/components/JsonViewer/index.tsx + + +// CONCATENATED MODULE: ./src/components/SideMenu/index.ts + + + + + +// CONCATENATED MODULE: ./src/components/index.ts + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +// CONCATENATED MODULE: ./src/markdown/index.tsx + +var TocPlugin = __webpack_require__(83); +var loadMarkdownIndexFromComponents = function (mdxComponents) { + var components = mdxComponents.map(function (sect) { return sect.default; }); + var headings = mdxComponents.reduce(function (acc, section) { return Object(external_tslib_["__spreadArrays"])(acc, section.headings); }, []); + return { + components: components, + headings: headings + }; +}; +/* harmony default export */ var markdown = ({ + remarkPlugins: [TocPlugin] +}); + +// CONCATENATED MODULE: ./src/index.ts + + + + + + + + + +/***/ }) +/******/ ]); +}); +//# sourceMappingURL=redoc.lib.js.map \ No newline at end of file diff --git a/bundles/redoc.lib.js.map b/bundles/redoc.lib.js.map new file mode 100644 index 00000000..5ead53f7 --- /dev/null +++ b/bundles/redoc.lib.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack://Redoc/webpack/universalModuleDefinition","webpack://Redoc/webpack/bootstrap","webpack://Redoc/external \"react\"","webpack://Redoc/external \"tslib\"","webpack://Redoc/external \"polished\"","webpack://Redoc/external \"mobx-react\"","webpack://Redoc/external \"mobx\"","webpack://Redoc/external \"url\"","webpack://Redoc/external \"json-pointer\"","webpack://Redoc/external \"lunr\"","webpack://Redoc/external \"decko\"","webpack://Redoc/external \"react-tabs\"","webpack://Redoc/external \"prismjs\"","webpack://Redoc/(webpack)/buildin/global.js","webpack://Redoc/external \"prop-types\"","webpack://Redoc/external \"marked\"","webpack://Redoc/./node_modules/process/browser.js","webpack://Redoc/external \"undefined\"","webpack://Redoc/./node_modules/reftools/lib/jptr.js","webpack://Redoc/./node_modules/reftools/lib/clone.js","webpack://Redoc/./node_modules/path-browserify/index.js","webpack://Redoc/external \"eventemitter3\"","webpack://Redoc/external \"url-template\"","webpack://Redoc/./node_modules/reftools/lib/isref.js","webpack://Redoc/./node_modules/reftools/lib/recurse.js","webpack://Redoc/external \"mark.js\"","webpack://Redoc/external \"openapi-sampler\"","webpack://Redoc/external \"perfect-scrollbar\"","webpack://Redoc/external \"prism-react-renderer\"","webpack://Redoc/./node_modules/oas-kit-common/index.js","webpack://Redoc/./node_modules/buffer/index.js","webpack://Redoc/./node_modules/stream-http/lib/capability.js","webpack://Redoc/external \"inherits\"","webpack://Redoc/./node_modules/stream-http/lib/response.js","webpack://Redoc/external \"readable-stream\"","webpack://Redoc/./src/services/SearchWorker.worker.ts","webpack://Redoc/external \"slugify\"","webpack://Redoc/external \"styled-components\"","webpack://Redoc/external \"@mdx-js/react\"","webpack://Redoc/external \"json-schema-ref-parser\"","webpack://Redoc/./node_modules/swagger2openapi/index.js","webpack://Redoc/./node_modules/memoize-one/dist/memoize-one.cjs.js","webpack://Redoc/external \"react-dropdown-aria\"","webpack://Redoc/external \"dompurify\"","webpack://Redoc/external \"classnames\"","webpack://Redoc/external \"call-me-maybe\"","webpack://Redoc/./node_modules/oas-resolver/index.js","webpack://Redoc/./node_modules/reftools/lib/dereference.js","webpack://Redoc/external \"fast-safe-stringify\"","webpack://Redoc/./node_modules/oas-schema-walker/index.js","webpack://Redoc/./node_modules/swagger2openapi/lib/statusCodes.js","webpack://Redoc/./node_modules/stream-http/index.js","webpack://Redoc/./node_modules/stream-http/lib/request.js","webpack://Redoc/external \"base64-js\"","webpack://Redoc/external \"ieee754\"","webpack://Redoc/external \"isarray\"","webpack://Redoc/external \"to-arraybuffer\"","webpack://Redoc/external \"xtend\"","webpack://Redoc/external \"builtin-status-codes\"","webpack://Redoc/external \"prismjs/components/prism-bash.js\"","webpack://Redoc/external \"prismjs/components/prism-c.js\"","webpack://Redoc/external \"prismjs/components/prism-clike.js\"","webpack://Redoc/external \"prismjs/components/prism-coffeescript.js\"","webpack://Redoc/external \"prismjs/components/prism-cpp.js\"","webpack://Redoc/external \"prismjs/components/prism-csharp.js\"","webpack://Redoc/external \"prismjs/components/prism-go.js\"","webpack://Redoc/external \"prismjs/components/prism-http.js\"","webpack://Redoc/external \"prismjs/components/prism-java.js\"","webpack://Redoc/external \"prismjs/components/prism-lua.js\"","webpack://Redoc/external \"prismjs/components/prism-markup-templating.js\"","webpack://Redoc/external \"prismjs/components/prism-markup.js\"","webpack://Redoc/external \"prismjs/components/prism-objectivec.js\"","webpack://Redoc/external \"prismjs/components/prism-perl.js\"","webpack://Redoc/external \"prismjs/components/prism-php.js\"","webpack://Redoc/external \"prismjs/components/prism-python.js\"","webpack://Redoc/external \"prismjs/components/prism-ruby.js\"","webpack://Redoc/external \"prismjs/components/prism-scala.js\"","webpack://Redoc/external \"prismjs/components/prism-sql.js\"","webpack://Redoc/external \"prismjs/components/prism-swift.js\"","webpack://Redoc/./src/services/SearchWorker.worker.ts?cf07","webpack://Redoc/./node_modules/workerize-loader/src/rpc-wrapper.js","webpack://Redoc/external \"core-js/es/promise\"","webpack://Redoc/external \"stickyfill\"","webpack://Redoc/./src/markdown/plugins/export-toc.ts","webpack://Redoc/external \"unist-util-visit\"","webpack://Redoc/./src/theme.ts","webpack://Redoc/./src/utils/dom.ts","webpack://Redoc/./src/utils/helpers.ts","webpack://Redoc/./src/services/Labels.ts","webpack://Redoc/./src/services/RedocNormalizedOptions.ts","webpack://Redoc/./src/styled-components.ts","webpack://Redoc/./src/components/ErrorBoundary.tsx","webpack://Redoc/./src/components/Loading/Spinner.svg.tsx","webpack://Redoc/./src/components/Loading/Loading.tsx","webpack://Redoc/./src/components/OptionsProvider.ts","webpack://Redoc/./src/utils/loadAndBundleSpec.ts","webpack://Redoc/./src/utils/JsonPointer.ts","webpack://Redoc/./src/utils/openapi.ts","webpack://Redoc/./src/utils/highlight.ts","webpack://Redoc/./src/utils/decorators.ts","webpack://Redoc/./src/utils/debug.ts","webpack://Redoc/./src/utils/memoize.ts","webpack://Redoc/./src/utils/index.ts","webpack://Redoc/./src/services/HistoryService.ts","webpack://Redoc/./src/services/MarkerService.ts","webpack://Redoc/./src/services/MarkdownRenderer.ts","webpack://Redoc/./src/services/models/ApiInfo.ts","webpack://Redoc/./src/services/models/SecurityRequirement.ts","webpack://Redoc/./src/services/models/Callback.ts","webpack://Redoc/./src/services/models/Schema.ts","webpack://Redoc/./src/services/models/Field.ts","webpack://Redoc/./src/services/models/Example.ts","webpack://Redoc/./src/services/models/MediaType.ts","webpack://Redoc/./src/services/models/MediaContent.ts","webpack://Redoc/./src/services/models/RequestBody.ts","webpack://Redoc/./src/services/models/Response.ts","webpack://Redoc/./src/services/models/Operation.ts","webpack://Redoc/./src/services/models/Webhook.ts","webpack://Redoc/./src/services/models/SecuritySchemes.ts","webpack://Redoc/./src/services/OpenAPIParser.ts","webpack://Redoc/./src/services/SpecStore.ts","webpack://Redoc/./src/services/models/ExtraContent.ts","webpack://Redoc/./src/services/models/Group.model.ts","webpack://Redoc/./src/services/models/index.ts","webpack://Redoc/./src/services/MenuBuilder.ts","webpack://Redoc/./src/services/MenuStore.ts","webpack://Redoc/./src/services/ScrollService.ts","webpack://Redoc/./src/services/SearchStore.ts","webpack://Redoc/./src/common-elements/panels.ts","webpack://Redoc/./src/common-elements/headers.ts","webpack://Redoc/./src/components/StoreBuilder.ts","webpack://Redoc/./src/common-elements/linkify.tsx","webpack://Redoc/./src/common-elements/shelfs.tsx","webpack://Redoc/./src/common-elements/mixins.ts","webpack://Redoc/./src/common-elements/fields-layout.ts","webpack://Redoc/./src/common-elements/schema.ts","webpack://Redoc/./src/common-elements/dropdown.ts","webpack://Redoc/./src/common-elements/tabs.ts","webpack://Redoc/./src/common-elements/PrismDiv.tsx","webpack://Redoc/./src/common-elements/samples.tsx","webpack://Redoc/./src/common-elements/perfect-scrollbar.tsx","webpack://Redoc/./src/common-elements/flex.ts","webpack://Redoc/./src/common-elements/index.ts","webpack://Redoc/./src/components/DropdownOrLabel/DropdownOrLabel.tsx","webpack://Redoc/./src/components/Markdown/styled.elements.tsx","webpack://Redoc/./src/components/Markdown/SanitizedMdBlock.tsx","webpack://Redoc/./src/components/Markdown/Markdown.tsx","webpack://Redoc/./src/common-elements/Tooltip.tsx","webpack://Redoc/./src/services/ClipboardService.ts","webpack://Redoc/./src/common-elements/CopyButtonWrapper.tsx","webpack://Redoc/./src/utils/jsonToHtml.ts","webpack://Redoc/./src/components/JsonViewer/style.ts","webpack://Redoc/./src/components/JsonViewer/JsonViewer.tsx","webpack://Redoc/./src/components/SourceCode/SourceCode.tsx","webpack://Redoc/./src/components/PayloadSamples/ExampleValue.tsx","webpack://Redoc/./src/components/PayloadSamples/exernalExampleHook.ts","webpack://Redoc/./src/components/PayloadSamples/Example.tsx","webpack://Redoc/./src/components/PayloadSamples/styled.elements.ts","webpack://Redoc/./src/components/PayloadSamples/MediaTypeSamples.tsx","webpack://Redoc/./src/common-elements/fields.ts","webpack://Redoc/./src/components/ExternalDocumentation/ExternalDocumentation.tsx","webpack://Redoc/./src/components/Fields/EnumValues.tsx","webpack://Redoc/./src/components/Fields/Extensions.tsx","webpack://Redoc/./src/components/Fields/FieldContstraints.tsx","webpack://Redoc/./src/components/Fields/FieldDetail.tsx","webpack://Redoc/./src/components/Fields/FieldDetails.tsx","webpack://Redoc/./src/components/Schema/ArraySchema.tsx","webpack://Redoc/./src/components/Fields/Field.tsx","webpack://Redoc/./src/components/Schema/DiscriminatorDropdown.tsx","webpack://Redoc/./src/components/Schema/ObjectSchema.tsx","webpack://Redoc/./src/components/Schema/OneOfSchema.tsx","webpack://Redoc/./src/components/Schema/Schema.tsx","webpack://Redoc/./src/components/Schema/index.ts","webpack://Redoc/./src/components/SchemaDefinition/SchemaDefinition.tsx","webpack://Redoc/./src/components/SecuritySchemes/SecuritySchemes.tsx","webpack://Redoc/./src/services/AppStore.ts","webpack://Redoc/./src/services/index.ts","webpack://Redoc/./src/components/ApiInfo/styled.elements.ts","webpack://Redoc/./src/components/ApiInfo/ApiInfo.tsx","webpack://Redoc/./src/components/ApiInfo/index.ts","webpack://Redoc/./src/components/ApiLogo/styled.elements.tsx","webpack://Redoc/./src/components/ApiLogo/ApiLogo.tsx","webpack://Redoc/./src/components/Markdown/AdvancedMarkdown.tsx","webpack://Redoc/./src/components/SideMenu/styled.elements.ts","webpack://Redoc/./src/components/Callbacks/CallbackTitle.tsx","webpack://Redoc/./src/components/Callbacks/styled.elements.ts","webpack://Redoc/./src/components/SelectOnClick/SelectOnClick.tsx","webpack://Redoc/./src/components/Endpoint/styled.elements.ts","webpack://Redoc/./src/components/Endpoint/Endpoint.tsx","webpack://Redoc/./src/components/Parameters/ParametersGroup.tsx","webpack://Redoc/./src/components/MediaTypeSwitch/MediaTypesSwitch.tsx","webpack://Redoc/./src/components/Parameters/Parameters.tsx","webpack://Redoc/./src/components/Responses/ResponseTitle.tsx","webpack://Redoc/./src/components/Responses/styled.elements.ts","webpack://Redoc/./src/components/Responses/ResponseHeaders.tsx","webpack://Redoc/./src/components/Responses/ResponseDetails.tsx","webpack://Redoc/./src/components/Responses/Response.tsx","webpack://Redoc/./src/components/Responses/ResponsesList.tsx","webpack://Redoc/./src/components/SecurityRequirement/SecurityRequirement.tsx","webpack://Redoc/./src/components/Callbacks/CallbackDetails.tsx","webpack://Redoc/./src/components/Callbacks/CallbackOperation.tsx","webpack://Redoc/./src/components/Callbacks/CallbacksList.tsx","webpack://Redoc/./src/components/Callbacks/index.ts","webpack://Redoc/./src/components/GenericChildrenSwitcher/GenericChildrenSwitcher.tsx","webpack://Redoc/./src/components/PayloadSamples/PayloadSamples.tsx","webpack://Redoc/./src/components/CallbackSamples/CallbackReqSamples.tsx","webpack://Redoc/./src/components/CallbackSamples/CallbackSamples.tsx","webpack://Redoc/./src/components/RequestSamples/RequestSamples.tsx","webpack://Redoc/./src/components/ResponseSamples/ResponseSamples.tsx","webpack://Redoc/./src/components/Operation/Operation.tsx","webpack://Redoc/./src/components/ContentItems/ContentItems.tsx","webpack://Redoc/./src/components/SideMenu/MenuItem.tsx","webpack://Redoc/./src/components/SideMenu/MenuItems.tsx","webpack://Redoc/./src/components/SideMenu/SideMenu.tsx","webpack://Redoc/./src/components/StickySidebar/ChevronSvg.tsx","webpack://Redoc/./src/components/StickySidebar/StickyResponsiveSidebar.tsx","webpack://Redoc/./src/components/Redoc/styled.elements.tsx","webpack://Redoc/./src/components/SearchBox/styled.elements.tsx","webpack://Redoc/./src/components/SearchBox/SearchBox.tsx","webpack://Redoc/./src/markdown/code/Highlighter/index.tsx","webpack://Redoc/./src/markdown/components.tsx","webpack://Redoc/./src/components/Redoc/Redoc.tsx","webpack://Redoc/./src/components/RedocStandalone.tsx","webpack://Redoc/./src/components/JsonViewer/index.tsx","webpack://Redoc/./src/components/SideMenu/index.ts","webpack://Redoc/./src/components/index.ts","webpack://Redoc/./src/markdown/index.tsx","webpack://Redoc/./src/index.ts"],"names":["addMethods","worker","methods","c","callbacks","addEventListener","e","d","data","type","id","f","error","Object","assign","Error","message","result","evt","document","createEvent","initEvent","method","params","dispatchEvent","forEach","Promise","a","b","postMessage"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;QCVA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;AClFA,kC;;;;;;ACAA,kC;;;;;;ACAA,qC;;;;;;ACAA,uC;;;;;;ACAA,iC;;;;;;ACAA,gC;;;;;;ACAA,yC;;;;;;ACAA,iC;;;;;;ACAA,kC;;;;;;ACAA,uC;;;;;;ACAA,oC;;;;;;ACAA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;ACnBA,uC;;;;;;ACAA,mC;;;;;;ACAA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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AEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,oBAAoB;AAC9B;AACA;;AAEA;AACA,UAAU,UAAU;AACpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,sBAAsB;AACrD;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,2BAA2B,QAAQ;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,eAAe;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;AAClC;AACA;AA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AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,uCAAuC,SAAS;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD,EAAE;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,wBAAwB,QAAQ;AAChC;AACA,qBAAqB,eAAe;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA,GAAG;AACH;AACA,eAAe,SAAS;AACxB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,YAAY;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;AC5vDA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;;;;;;;ACxEA,qC;;;;;;ACAA,gFAAiB,mBAAO,CAAC,EAAc;AACvC,eAAe,mBAAO,CAAC,EAAU;AACjC,aAAa,mBAAO,CAAC,EAAiB;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA,MAAM;AACN,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI,aAAa;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,wCAAwC,eAAe,IAAI;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA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mBAAO,CAAC,EAAO;AAC5B,kBAAkB,mBAAO,CAAC,EAAsB;AAChD,UAAU,mBAAO,CAAC,CAAK;;AAEvB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;;;;;;;ACpFA,gFAAiB,mBAAO,CAAC,EAAc;AACvC,eAAe,mBAAO,CAAC,EAAU;AACjC,eAAe,mBAAO,CAAC,EAAY;AACnC,aAAa,mBAAO,CAAC,EAAiB;AACtC,oBAAoB,mBAAO,CAAC,EAAgB;;AAE5C;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,IAAI;AACJ,2CAA2C;AAC3C,IAAI;AACJ,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,GAAG;AACH;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oCAAoC;;AAEpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtUA,sC;;;;;;ACAA,oC;;;;;;ACAA,oC;;;;;;ACAA,2C;;;;;;ACAA,kC;;;;;;ACAA,iD;;;;;;;;;;;;ACAA,6D;;;;;;ACAA,0D;;;;;;ACAA,8D;;;;;;ACAA,qE;;;;;;ACAA,4D;;;;;;ACAA,+D;;;;;;ACAA,2D;;;;;;ACAA,6D;;;;;;ACAA,6D;;;;;;ACAA,4D;;;;;;AC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","file":"redoc.lib.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Redoc\"] = factory();\n\telse\n\t\troot[\"Redoc\"] = factory();\n})(this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 85);\n","module.exports = require(\"react\");","module.exports = require(\"tslib\");","module.exports = require(\"polished\");","module.exports = require(\"mobx-react\");","module.exports = require(\"mobx\");","module.exports = require(\"url\");","module.exports = require(\"json-pointer\");","module.exports = require(\"lunr\");","module.exports = require(\"decko\");","module.exports = require(\"react-tabs\");","module.exports = require(\"prismjs\");","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\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\nmodule.exports = g;\n","module.exports = require(\"prop-types\");","module.exports = require(\"marked\");","// shim for using process in browser\nvar process = module.exports = {};\n\n// 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\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\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 try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\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}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\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\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","module.exports = undefined;","'use strict';\n\n/**\n* escapes JSON Pointer using ~0 for ~ and ~1 for /\n* @param s the string to escape\n* @return the escaped string\n*/\nfunction jpescape(s) {\n return s.replace(/\\~/g, '~0').replace(/\\//g, '~1');\n}\n\n/**\n* unescapes JSON Pointer using ~0 for ~ and ~1 for /\n* @param s the string to unescape\n* @return the unescaped string\n*/\nfunction jpunescape(s) {\n return s.replace(/\\~1/g, '/').replace(/~0/g, '~');\n}\n\n// JSON Pointer specification: http://tools.ietf.org/html/rfc6901\n\n/**\n* from obj, return the property with a JSON Pointer prop, optionally setting it\n* to newValue\n* @param obj the object to point into\n* @param prop the JSON Pointer or JSON Reference\n* @param newValue optional value to set the property to\n* @return the found property, or false\n*/\nfunction jptr(obj, prop, newValue) {\n if (typeof obj === 'undefined') return false;\n if (!prop || typeof prop !== 'string' || (prop === '#')) return (typeof newValue !== 'undefined' ? newValue : obj);\n\n if (prop.indexOf('#')>=0) {\n let parts = prop.split('#');\n let uri = parts[0];\n if (uri) return false; // we do internal resolution only\n prop = parts[1];\n prop = decodeURIComponent(prop.slice(1).split('+').join(' '));\n }\n if (prop.startsWith('/')) prop = prop.slice(1);\n\n let components = prop.split('/');\n for (let i=0;i 0) ? components[i-1] : ''; // backtrack to indexed property name\n }\n\n if ((index != -1) || obj.hasOwnProperty(components[i])) {\n if (index >= 0) {\n if (setAndLast) {\n obj[index] = newValue;\n }\n obj = obj[index];\n }\n else if (index === -2) {\n if (setAndLast) {\n if (Array.isArray(obj)) {\n obj.push(newValue);\n }\n return newValue;\n }\n else return undefined;\n }\n else {\n if (setAndLast) {\n obj[components[i]] = newValue;\n }\n obj = obj[components[i]];\n }\n }\n else {\n if ((typeof newValue !== 'undefined') && (typeof obj === 'object') &&\n (!Array.isArray(obj))) {\n obj[components[i]] = (setAndLast ? newValue : ((components[i+1] === '0' || components[i+1] === '-') ? [] : {}));\n obj = obj[components[i]];\n }\n else return false;\n }\n }\n return obj;\n}\n\nmodule.exports = {\n jptr : jptr,\n jpescape : jpescape,\n jpunescape : jpunescape\n};\n","'use strict';\n\n/**\n* a collection of cloning functions\n*/\n\n/**\n* a no-op placeholder which returns the given object unchanged\n* useful for when a clone function needs to be passed but cloning is not\n* required\n* @param obj the input object\n* @return the input object, unchanged\n*/\nfunction nop(obj) {\n return obj;\n}\n\n/**\n* clones the given object using JSON.parse and JSON.stringify\n* @param obj the object to clone\n* @return the cloned object\n*/\nfunction clone(obj) {\n return JSON.parse(JSON.stringify(obj));\n}\n\n/**\n* clones the given object's properties shallowly, ignores properties from prototype\n* @param obj the object to clone\n* @return the cloned object\n*/\nfunction shallowClone(obj) {\n let result = {};\n for (let p in obj) {\n if (obj.hasOwnProperty(p)) {\n result[p] = obj[p];\n }\n }\n return result;\n}\n\n/**\n* clones the given object's properties deeply, ignores properties from prototype\n* @param obj the object to clone\n* @return the cloned object\n*/\nfunction deepClone(obj) {\n let result = Array.isArray(obj) ? [] : {};\n for (let p in obj) {\n if (obj.hasOwnProperty(p) || Array.isArray(obj)) {\n result[p] = (typeof obj[p] === 'object') ? deepClone(obj[p]) : obj[p];\n }\n }\n return result;\n}\n\n/**\n* clones the given object's properties shallowly, using Object.assign\n* @param obj the object to clone\n* @return the cloned object\n*/\nfunction fastClone(obj) {\n return Object.assign({},obj);\n}\n\n/**\n* Source: stackoverflow http://bit.ly/2A1Kha6\n*/\n\nfunction circularClone(obj, hash) {\n if (!hash) hash = new WeakMap();\n // Do not try to clone primitives or functions\n if (Object(obj) !== obj || obj instanceof Function) return obj;\n if (hash.has(obj)) return hash.get(obj); // Cyclic reference\n try { // Try to run constructor (without arguments, as we don't know them)\n var result = new obj.constructor();\n } catch(e) { // Constructor failed, create object without running the constructor\n result = Object.create(Object.getPrototypeOf(obj));\n }\n // Optional: support for some standard constructors (extend as desired)\n /*if (obj instanceof Map)\n Array.from(obj, ([key, val]) => result.set(circularClone(key, hash),\n circularClone(val, hash)) );\n else if (obj instanceof Set)\n Array.from(obj, (key) => result.add(circularClone(key, hash)) );\n */\n // Register in hash\n hash.set(obj, result);\n // Clone and assign enumerable own properties recursively\n return Object.assign(result, ...Object.keys(obj).map (\n key => ({ [key]: circularClone(obj[key], hash) }) ));\n}\n\nmodule.exports = {\n nop : nop,\n clone : clone,\n shallowClone : shallowClone,\n deepClone : deepClone,\n fastClone : fastClone,\n circularClone : circularClone\n};\n\n","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n\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\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)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\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 }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// path.resolve([from ...], to)\n// posix version\nexports.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();\n\n // Skip empty and invalid entries\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 }\n\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\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexports.normalize = function(path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexports.isAbsolute = function(path) {\n return path.charAt(0) === '/';\n};\n\n// posix version\nexports.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 return p;\n }).join('/'));\n};\n\n\n// path.relative(from, to)\n// posix version\nexports.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 for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\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\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\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 for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n}\n\n// Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\nexports.basename = function (path, ext) {\n var f = basename(path);\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n};\n\nfunction filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b'\n ? function (str, start, len) { 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;\n","module.exports = require(\"eventemitter3\");","module.exports = require(\"url-template\");","'use strict';\n\nfunction isRef(obj,key) {\n return ((key === '$ref') && (!!obj && typeof obj[key] === 'string'));\n}\n\nmodule.exports = {\n isRef: isRef\n};\n\n","'use strict';\n\nconst jpescape = require('./jptr.js').jpescape;\n\nfunction defaultState() {\n return {\n path: '#',\n depth: 0,\n pkey: '',\n parent: {},\n payload: {},\n seen: new WeakMap(),\n identity: false,\n identityDetection: false\n };\n}\n\n/**\n* recurses through the properties of an object, given an optional starting state\n* anything you pass in state.payload is passed to the callback each time\n* @param object the object to recurse through\n* @param state optional starting state, can be set to null or {}\n* @param callback the function which receives object,key,state on each property\n*/\nfunction recurse(object, state, callback) {\n if (!state) state = {depth:0};\n if (!state.depth) {\n state = Object.assign({},defaultState(),state);\n }\n if (typeof object !== 'object') return;\n let oPath = state.path;\n for (let key in object) {\n state.key = key;\n state.path = state.path + '/' + encodeURIComponent(jpescape(key));\n state.identityPath = state.seen.get(object[key]);\n state.identity = (typeof state.identityPath !== 'undefined');\n if (object.hasOwnProperty(key)) {\n callback(object, key, state);\n }\n if ((typeof object[key] === 'object') && (!state.identity)) {\n if (state.identityDetection && !Array.isArray(object[key]) && object[key] !== null) {\n state.seen.set(object[key],state.path);\n }\n let newState = {};\n newState.parent = object;\n newState.path = state.path;\n newState.depth = state.depth ? state.depth+1 : 1;\n newState.pkey = key;\n newState.payload = state.payload;\n newState.seen = state.seen;\n newState.identity = false;\n newState.identityDetection = state.identityDetection;\n recurse(object[key], newState, callback);\n }\n state.path = oPath;\n }\n}\n\nmodule.exports = {\n recurse : recurse\n};\n\n","module.exports = require(\"mark.js\");","module.exports = require(\"openapi-sampler\");","module.exports = require(\"perfect-scrollbar\");","module.exports = require(\"prism-react-renderer\");","'use strict';\n\nconst sjs = require('fast-safe-stringify');\n\nconst colour = process.env.NODE_DISABLE_COLORS ?\n { red: '', yellow: '', green: '', normal: '' } :\n { red: '\\x1b[31m', yellow: '\\x1b[33;1m', green: '\\x1b[32m', normal: '\\x1b[0m' };\n\nfunction uniqueOnly(value, index, self) {\n return self.indexOf(value) === index;\n}\n\nfunction hasDuplicates(array) {\n return (new Set(array)).size !== array.length;\n}\n\nfunction allSame(array) {\n return (new Set(array)).size <= 1;\n}\n\nfunction deepEquals(obj1, obj2) {\n function _equals(obj1, obj2) {\n return sjs.stringify(obj1) === sjs.stringify(Object.assign({}, obj1, obj2));\n }\n return _equals(obj1, obj2) && _equals(obj2, obj1);\n}\n\nfunction compressArray(arr) {\n let result = [];\n for (let candidate of arr) {\n let dupe = result.find(function(e,i,a){\n return deepEquals(e,candidate);\n });\n if (!dupe) result.push(candidate);\n }\n return result;\n}\n\nfunction distinctArray(arr) {\n return (arr.length === compressArray(arr).length);\n}\n\nfunction firstDupe(arr) {\n return arr.find(function(e,i,a){\n return arr.indexOf(e)\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\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 */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\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\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\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 that.length = length\n }\n\n return that\n}\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\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction 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/**\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 **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n 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\nfunction 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\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\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'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.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 */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction 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\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\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction 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 return that\n}\n\nfunction 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' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\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\nfunction 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 ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.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\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\nBuffer.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 default:\n return false\n }\n}\n\nBuffer.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 if (length === undefined) {\n length = 0\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 for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\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 if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\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 }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\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}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\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 return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\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 return this\n}\n\nBuffer.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\nBuffer.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\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.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 if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\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 if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\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}\n\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\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\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 byteOffset = +byteOffset // Coerce to Number.\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 }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\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 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 if (Buffer.TYPED_ARRAY_SUPPORT &&\n 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 return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction 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 if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\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 if (dir) {\n var foundIndex = -1\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 for (i = byteOffset; i >= 0; i--) {\n var found = true\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 if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\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 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 return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.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\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\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\n var loweredCase = false\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\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction 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\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 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 break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\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 if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\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}\n\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\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction 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 return ret\n}\n\nfunction 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 return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.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\n var newBuf\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 for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction 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\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.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\nBuffer.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\nBuffer.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\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.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\nBuffer.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\nBuffer.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\nBuffer.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\nfunction 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\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\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 while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\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 while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.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\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\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)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.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 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 return offset + 2\n}\n\nBuffer.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 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 return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\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\nBuffer.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 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 return offset + 4\n}\n\nBuffer.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 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 return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\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 while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\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 while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.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\nBuffer.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 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 return offset + 2\n}\n\nBuffer.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 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 return offset + 2\n}\n\nBuffer.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 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 return offset + 4\n}\n\nBuffer.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 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 return offset + 4\n}\n\nfunction 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\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.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\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\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')\n\n // Are we oob?\n if (end > this.length) end = this.length\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(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.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 if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\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 }\n\n // Invalid ranges are not set to a default, so can range check early.\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\n if (!val) val = 0\n\n var i\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)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction 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, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction 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)\n\n // is surrogate component\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 }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\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\n\n // encode utf8\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(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\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 return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\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\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction 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 return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","exports.fetch = isFunction(global.fetch) && isFunction(global.ReadableStream)\n\nexports.writableStream = isFunction(global.WritableStream)\n\nexports.abortController = isFunction(global.AbortController)\n\nexports.blobConstructor = false\ntry {\n\tnew Blob([new ArrayBuffer(1)])\n\texports.blobConstructor = true\n} catch (e) {}\n\n// The xhr request to example.com may violate some restrictive CSP configurations,\n// so if we're running in a browser that supports `fetch`, avoid calling getXHR()\n// and assume support for certain features below.\nvar xhr\nfunction getXHR () {\n\t// Cache the xhr value\n\tif (xhr !== undefined) return xhr\n\n\tif (global.XMLHttpRequest) {\n\t\txhr = new global.XMLHttpRequest()\n\t\t// If XDomainRequest is available (ie only, where xhr might not work\n\t\t// cross domain), use the page location. Otherwise use example.com\n\t\t// Note: this doesn't actually make an http request.\n\t\ttry {\n\t\t\txhr.open('GET', global.XDomainRequest ? '/' : 'https://example.com')\n\t\t} catch(e) {\n\t\t\txhr = null\n\t\t}\n\t} else {\n\t\t// Service workers don't have XHR\n\t\txhr = null\n\t}\n\treturn xhr\n}\n\nfunction checkTypeSupport (type) {\n\tvar xhr = getXHR()\n\tif (!xhr) return false\n\ttry {\n\t\txhr.responseType = type\n\t\treturn xhr.responseType === type\n\t} catch (e) {}\n\treturn false\n}\n\n// For some strange reason, Safari 7.0 reports typeof global.ArrayBuffer === 'object'.\n// Safari 7.1 appears to have fixed this bug.\nvar haveArrayBuffer = typeof global.ArrayBuffer !== 'undefined'\nvar haveSlice = haveArrayBuffer && isFunction(global.ArrayBuffer.prototype.slice)\n\n// If fetch is supported, then arraybuffer will be supported too. Skip calling\n// checkTypeSupport(), since that calls getXHR().\nexports.arraybuffer = exports.fetch || (haveArrayBuffer && checkTypeSupport('arraybuffer'))\n\n// These next two tests unavoidably show warnings in Chrome. Since fetch will always\n// be used if it's available, just return false for these to avoid the warnings.\nexports.msstream = !exports.fetch && haveSlice && checkTypeSupport('ms-stream')\nexports.mozchunkedarraybuffer = !exports.fetch && haveArrayBuffer &&\n\tcheckTypeSupport('moz-chunked-arraybuffer')\n\n// If fetch is supported, then overrideMimeType will be supported too. Skip calling\n// getXHR().\nexports.overrideMimeType = exports.fetch || (getXHR() ? isFunction(getXHR().overrideMimeType) : false)\n\nexports.vbArray = isFunction(global.VBArray)\n\nfunction isFunction (value) {\n\treturn typeof value === 'function'\n}\n\nxhr = null // Help gc\n","module.exports = require(\"inherits\");","var capability = require('./capability')\nvar inherits = require('inherits')\nvar stream = require('readable-stream')\n\nvar rStates = exports.readyStates = {\n\tUNSENT: 0,\n\tOPENED: 1,\n\tHEADERS_RECEIVED: 2,\n\tLOADING: 3,\n\tDONE: 4\n}\n\nvar IncomingMessage = exports.IncomingMessage = function (xhr, response, mode, fetchTimer) {\n\tvar self = this\n\tstream.Readable.call(self)\n\n\tself._mode = mode\n\tself.headers = {}\n\tself.rawHeaders = []\n\tself.trailers = {}\n\tself.rawTrailers = []\n\n\t// Fake the 'close' event, but only once 'end' fires\n\tself.on('end', function () {\n\t\t// The nextTick is necessary to prevent the 'request' module from causing an infinite loop\n\t\tprocess.nextTick(function () {\n\t\t\tself.emit('close')\n\t\t})\n\t})\n\n\tif (mode === 'fetch') {\n\t\tself._fetchResponse = response\n\n\t\tself.url = response.url\n\t\tself.statusCode = response.status\n\t\tself.statusMessage = response.statusText\n\t\t\n\t\tresponse.headers.forEach(function (header, key){\n\t\t\tself.headers[key.toLowerCase()] = header\n\t\t\tself.rawHeaders.push(key, header)\n\t\t})\n\n\t\tif (capability.writableStream) {\n\t\t\tvar writable = new WritableStream({\n\t\t\t\twrite: function (chunk) {\n\t\t\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\t\t\tif (self._destroyed) {\n\t\t\t\t\t\t\treject()\n\t\t\t\t\t\t} else if(self.push(new Buffer(chunk))) {\n\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself._resumeFetch = resolve\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t\tclose: function () {\n\t\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.push(null)\n\t\t\t\t},\n\t\t\t\tabort: function (err) {\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\ttry {\n\t\t\t\tresponse.body.pipeTo(writable).catch(function (err) {\n\t\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t})\n\t\t\t\treturn\n\t\t\t} catch (e) {} // pipeTo method isn't defined. Can't find a better way to feature test this\n\t\t}\n\t\t// fallback for when writableStream or pipeTo aren't available\n\t\tvar reader = response.body.getReader()\n\t\tfunction read () {\n\t\t\treader.read().then(function (result) {\n\t\t\t\tif (self._destroyed)\n\t\t\t\t\treturn\n\t\t\t\tif (result.done) {\n\t\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\t\tself.push(null)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tself.push(new Buffer(result.value))\n\t\t\t\tread()\n\t\t\t}).catch(function (err) {\n\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\tif (!self._destroyed)\n\t\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t}\n\t\tread()\n\t} else {\n\t\tself._xhr = xhr\n\t\tself._pos = 0\n\n\t\tself.url = xhr.responseURL\n\t\tself.statusCode = xhr.status\n\t\tself.statusMessage = xhr.statusText\n\t\tvar headers = xhr.getAllResponseHeaders().split(/\\r?\\n/)\n\t\theaders.forEach(function (header) {\n\t\t\tvar matches = header.match(/^([^:]+):\\s*(.*)/)\n\t\t\tif (matches) {\n\t\t\t\tvar key = matches[1].toLowerCase()\n\t\t\t\tif (key === 'set-cookie') {\n\t\t\t\t\tif (self.headers[key] === undefined) {\n\t\t\t\t\t\tself.headers[key] = []\n\t\t\t\t\t}\n\t\t\t\t\tself.headers[key].push(matches[2])\n\t\t\t\t} else if (self.headers[key] !== undefined) {\n\t\t\t\t\tself.headers[key] += ', ' + matches[2]\n\t\t\t\t} else {\n\t\t\t\t\tself.headers[key] = matches[2]\n\t\t\t\t}\n\t\t\t\tself.rawHeaders.push(matches[1], matches[2])\n\t\t\t}\n\t\t})\n\n\t\tself._charset = 'x-user-defined'\n\t\tif (!capability.overrideMimeType) {\n\t\t\tvar mimeType = self.rawHeaders['mime-type']\n\t\t\tif (mimeType) {\n\t\t\t\tvar charsetMatch = mimeType.match(/;\\s*charset=([^;])(;|$)/)\n\t\t\t\tif (charsetMatch) {\n\t\t\t\t\tself._charset = charsetMatch[1].toLowerCase()\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!self._charset)\n\t\t\t\tself._charset = 'utf-8' // best guess\n\t\t}\n\t}\n}\n\ninherits(IncomingMessage, stream.Readable)\n\nIncomingMessage.prototype._read = function () {\n\tvar self = this\n\n\tvar resolve = self._resumeFetch\n\tif (resolve) {\n\t\tself._resumeFetch = null\n\t\tresolve()\n\t}\n}\n\nIncomingMessage.prototype._onXHRProgress = function () {\n\tvar self = this\n\n\tvar xhr = self._xhr\n\n\tvar response = null\n\tswitch (self._mode) {\n\t\tcase 'text:vbarray': // For IE9\n\t\t\tif (xhr.readyState !== rStates.DONE)\n\t\t\t\tbreak\n\t\t\ttry {\n\t\t\t\t// This fails in IE8\n\t\t\t\tresponse = new global.VBArray(xhr.responseBody).toArray()\n\t\t\t} catch (e) {}\n\t\t\tif (response !== null) {\n\t\t\t\tself.push(new Buffer(response))\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// Falls through in IE8\t\n\t\tcase 'text':\n\t\t\ttry { // This will fail when readyState = 3 in IE9. Switch mode and wait for readyState = 4\n\t\t\t\tresponse = xhr.responseText\n\t\t\t} catch (e) {\n\t\t\t\tself._mode = 'text:vbarray'\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif (response.length > self._pos) {\n\t\t\t\tvar newData = response.substr(self._pos)\n\t\t\t\tif (self._charset === 'x-user-defined') {\n\t\t\t\t\tvar buffer = new Buffer(newData.length)\n\t\t\t\t\tfor (var i = 0; i < newData.length; i++)\n\t\t\t\t\t\tbuffer[i] = newData.charCodeAt(i) & 0xff\n\n\t\t\t\t\tself.push(buffer)\n\t\t\t\t} else {\n\t\t\t\t\tself.push(newData, self._charset)\n\t\t\t\t}\n\t\t\t\tself._pos = response.length\n\t\t\t}\n\t\t\tbreak\n\t\tcase 'arraybuffer':\n\t\t\tif (xhr.readyState !== rStates.DONE || !xhr.response)\n\t\t\t\tbreak\n\t\t\tresponse = xhr.response\n\t\t\tself.push(new Buffer(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'moz-chunked-arraybuffer': // take whole\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING || !response)\n\t\t\t\tbreak\n\t\t\tself.push(new Buffer(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'ms-stream':\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING)\n\t\t\t\tbreak\n\t\t\tvar reader = new global.MSStreamReader()\n\t\t\treader.onprogress = function () {\n\t\t\t\tif (reader.result.byteLength > self._pos) {\n\t\t\t\t\tself.push(new Buffer(new Uint8Array(reader.result.slice(self._pos))))\n\t\t\t\t\tself._pos = reader.result.byteLength\n\t\t\t\t}\n\t\t\t}\n\t\t\treader.onload = function () {\n\t\t\t\tself.push(null)\n\t\t\t}\n\t\t\t// reader.onerror = ??? // TODO: this\n\t\t\treader.readAsArrayBuffer(response)\n\t\t\tbreak\n\t}\n\n\t// The ms-stream case handles end separately in reader.onload()\n\tif (self._xhr.readyState === rStates.DONE && self._mode !== 'ms-stream') {\n\t\tself.push(null)\n\t}\n}\n","module.exports = require(\"readable-stream\");","import * as lunr from 'lunr';\n\ntry {\n // tslint:disable-next-line\n require('core-js/es/promise'); // bundle into worker\n\n} catch (_) {// nope\n}\n/* just for better typings */\n\n\nexport default class Worker {\n add: typeof add = add;\n done = done;\n search: typeof search = search;\n toJS = toJS;\n load = load;\n dispose = dispose;\n}\nexport interface SearchDocument {\n title: string;\n description: string;\n id: string;\n}\nexport interface SearchResult {\n meta: T;\n score: number;\n}\nlet store: any[] = [];\nlunr.tokenizer.separator = /\\s+/;\nlet builder: lunr.Builder;\nlet resolveIndex: (v: lunr.Index) => void;\nlet index: Promise;\n\nfunction initEmpty() {\n builder = new lunr.Builder();\n builder.field('title');\n builder.field('description');\n builder.ref('ref');\n builder.pipeline.add(lunr.trimmer, lunr.stopWordFilter, lunr.stemmer);\n index = new Promise(resolve => {\n resolveIndex = resolve;\n });\n}\n\ninitEmpty();\n\nconst expandTerm = term => '*' + lunr.stemmer(new lunr.Token(term, {})) + '*';\n\nexport function add(title: string, description: string, meta?: T) {\n const ref = store.push(meta) - 1;\n const item = {\n title: title.toLowerCase(),\n description: description.toLowerCase(),\n ref\n };\n builder.add(item);\n}\nexport async function done() {\n resolveIndex(builder.build());\n}\nexport async function toJS() {\n return {\n store,\n index: (await index).toJSON()\n };\n}\nexport async function load(state: any) {\n store = state.store;\n resolveIndex(lunr.Index.load(state.index));\n}\nexport async function dispose() {\n store = [];\n initEmpty();\n}\nexport async function search(q: string, limit = 0): Promise>> {\n if (q.trim().length === 0) {\n return [];\n }\n\n let searchResults = (await index).query(t => {\n q.trim().toLowerCase().split(/\\s+/).forEach(term => {\n const exp = expandTerm(term);\n t.term(exp, {});\n });\n });\n\n if (limit > 0) {\n searchResults = searchResults.slice(0, limit);\n }\n\n return searchResults.map(res => ({\n meta: store[res.ref],\n score: res.score\n }));\n}","module.exports = require(\"slugify\");","module.exports = require(\"styled-components\");","module.exports = require(\"@mdx-js/react\");","module.exports = require(\"json-schema-ref-parser\");","// @ts-check\n'use strict';\n\nconst fs = require('fs');\nconst url = require('url');\nconst pathlib = require('path');\n\nconst maybe = require('call-me-maybe');\nconst fetch = require('node-fetch-h2');\nconst yaml = require('yaml');\n\nconst jptr = require('reftools/lib/jptr.js');\nconst resolveInternal = jptr.jptr;\nconst isRef = require('reftools/lib/isref.js').isRef;\nconst clone = require('reftools/lib/clone.js').clone;\nconst cclone = require('reftools/lib/clone.js').circularClone;\nconst recurse = require('reftools/lib/recurse.js').recurse;\nconst resolver = require('oas-resolver');\nconst sw = require('oas-schema-walker');\nconst common = require('oas-kit-common');\n\nconst statusCodes = require('./lib/statusCodes.js').statusCodes;\n\nconst ourVersion = require('./package.json').version;\n\n// TODO handle specification-extensions with plugins?\n\nconst targetVersion = '3.0.0';\nlet componentNames; // initialised in main\n\nclass S2OError extends Error {\n constructor(message) {\n super(message);\n this.name = 'S2OError';\n }\n}\n\nfunction throwError(message, options) {\n let err = new S2OError(message);\n err.options = options;\n if (options.promise) {\n options.promise.reject(err);\n }\n else {\n throw err;\n }\n}\n\nfunction throwOrWarn(message, container, options) {\n if (options.warnOnly) {\n container[options.warnProperty||'x-s2o-warning'] = message;\n }\n else {\n throwError(message, options);\n }\n}\n\nfunction fixUpSubSchema(schema,parent,options) {\n if (schema.nullable) options.patches++;\n if (schema.discriminator && typeof schema.discriminator === 'string') {\n schema.discriminator = { propertyName: schema.discriminator };\n }\n if (schema.items && Array.isArray(schema.items)) {\n if (schema.items.length === 0) {\n schema.items = {};\n }\n else if (schema.items.length === 1) {\n schema.items = schema.items[0];\n }\n else schema.items = { anyOf: schema.items };\n }\n\n if (schema.type && Array.isArray(schema.type)) {\n if (options.patch) {\n options.patches++;\n if (schema.type.length === 0) {\n delete schema.type;\n }\n else {\n if (!schema.oneOf) schema.oneOf = [];\n for (let type of schema.type) {\n let newSchema = {};\n if (type === 'null') {\n schema.nullable = true;\n }\n else {\n newSchema.type = type;\n for (let prop of common.arrayProperties) {\n if (typeof schema.prop !== 'undefined') {\n newSchema[prop] = schema[prop];\n delete schema[prop];\n }\n }\n }\n if (newSchema.type) {\n schema.oneOf.push(newSchema);\n }\n }\n delete schema.type;\n if (schema.oneOf.length === 0) {\n delete schema.oneOf; // means was just null => nullable\n }\n else if (schema.oneOf.length < 2) {\n schema.type = schema.oneOf[0].type;\n if (Object.keys(schema.oneOf[0]).length > 1) {\n throwOrWarn('Lost properties from oneOf',schema,options);\n }\n delete schema.oneOf;\n }\n }\n // do not else this\n if (schema.type && Array.isArray(schema.type) && schema.type.length === 1) {\n schema.type = schema.type[0];\n }\n }\n else {\n throwError('(Patchable) schema type must not be an array', options);\n }\n }\n\n if (schema.type && schema.type === 'null') {\n delete schema.type;\n schema.nullable = true;\n }\n if ((schema.type === 'array') && (!schema.items)) {\n schema.items = {};\n }\n if (typeof schema.required === 'boolean') {\n if (schema.required && schema.name) {\n if (typeof parent.required === 'undefined') {\n parent.required = [];\n }\n if (Array.isArray(parent.required)) parent.required.push(schema.name);\n }\n delete schema.required;\n }\n\n // TODO if we have a nested properties (object inside an object) and the\n // *parent* type is not set, force it to object\n // TODO if default is set but type is not set, force type to typeof default\n\n if (schema.xml && typeof schema.xml.namespace === 'string') {\n if (!schema.xml.namespace) delete schema.xml.namespace;\n }\n}\n\nfunction fixUpSubSchemaExtensions(schema,parent) {\n if (schema[\"x-required\"] && Array.isArray(schema[\"x-required\"])) {\n if (!schema.required) schema.required = [];\n schema.required = schema.required.concat(schema[\"x-required\"]);\n delete schema[\"x-required\"];\n }\n if (schema[\"x-anyOf\"]) {\n schema.anyOf = schema[\"x-anyOf\"];\n delete schema[\"x-anyOf\"];\n }\n if (schema[\"x-oneOf\"]) {\n schema.oneOf = schema[\"x-oneOf\"];\n delete schema[\"x-oneOf\"];\n }\n if (schema[\"x-not\"]) {\n schema.not = schema[\"x-not\"];\n delete schema[\"x-not\"];\n }\n if (typeof schema[\"x-nullable\"] === 'boolean') {\n schema.nullable = schema[\"x-nullable\"];\n delete schema[\"x-nullable\"];\n }\n if ((typeof schema[\"x-discriminator\"] === 'object') && (typeof schema[\"x-discriminator\"].propertyName === 'string')) {\n schema.discriminator = schema[\"x-discriminator\"];\n delete schema[\"x-discriminator\"];\n for (let entry in schema.discriminator.mapping) {\n let schemaOrRef = schema.discriminator.mapping[entry];\n if (schemaOrRef.startsWith('#/definitions/')) {\n schema.discriminator.mapping[entry] = schemaOrRef.replace('#/definitions/','#/components/schemas/');\n }\n }\n }\n}\n\nfunction fixUpSchema(schema,options) {\n sw.walkSchema(schema,{},{},function(schema,parent,state){\n fixUpSubSchemaExtensions(schema,parent);\n fixUpSubSchema(schema,parent,options);\n });\n}\n\nfunction getMiroComponentName(ref) {\n if (ref.indexOf('#')>=0) {\n ref = ref.split('#')[1].split('/').pop();\n }\n else {\n ref = ref.split('/').pop().split('.')[0];\n }\n return encodeURIComponent(common.sanitise(ref));\n}\n\nfunction fixupRefs(obj, key, state) {\n let options = state.payload.options;\n if (isRef(obj,key)) {\n if (obj[key].startsWith('#/components/')) {\n // no-op\n }\n else if (obj[key] === '#/consumes') {\n // people are *so* creative\n delete obj[key];\n state.parent[state.pkey] = clone(options.openapi.consumes);\n }\n else if (obj[key] === '#/produces') {\n // and by creative, I mean devious\n delete obj[key];\n state.parent[state.pkey] = clone(options.openapi.produces);\n }\n else if (obj[key].startsWith('#/definitions/')) {\n //only the first part of a schema component name must be sanitised\n let keys = obj[key].replace('#/definitions/', '').split('/');\n const ref = jptr.jpunescape(keys[0]);\n\n let newKey = componentNames.schemas[decodeURIComponent(ref)]; // lookup, resolves a $ref\n if (newKey) {\n keys[0] = newKey;\n }\n else {\n throwOrWarn('Could not resolve reference '+obj[key],obj,options);\n }\n obj[key] = '#/components/schemas/' + keys.join('/');\n }\n else if (obj[key].startsWith('#/parameters/')) {\n // for extensions like Apigee's x-templates\n obj[key] = '#/components/parameters/' + common.sanitise(obj[key].replace('#/parameters/', ''));\n }\n else if (obj[key].startsWith('#/responses/')) {\n // for extensions like Apigee's x-templates\n obj[key] = '#/components/responses/' + common.sanitise(obj[key].replace('#/responses/', ''));\n }\n else if (obj[key].startsWith('#')) {\n // fixes up direct $refs or those created by resolvers\n let target = clone(jptr.jptr(options.openapi,obj[key]));\n if (target === false) throwOrWarn('direct $ref not found '+obj[key],obj,options)\n else if (options.refmap[obj[key]]) {\n obj[key] = options.refmap[obj[key]];\n }\n else {\n // we use a heuristic to determine what kind of thing is being referenced\n let oldRef = obj[key];\n oldRef = oldRef.replace('/properties/headers/','');\n oldRef = oldRef.replace('/properties/responses/','');\n oldRef = oldRef.replace('/properties/parameters/','');\n oldRef = oldRef.replace('/properties/schemas/','');\n let type = 'schemas';\n let schemaIndex = oldRef.lastIndexOf('/schema');\n type = (oldRef.indexOf('/headers/')>schemaIndex) ? 'headers' :\n ((oldRef.indexOf('/responses/')>schemaIndex) ? 'responses' :\n ((oldRef.indexOf('/example')>schemaIndex) ? 'examples' :\n ((oldRef.indexOf('/x-')>schemaIndex) ? 'extensions' :\n ((oldRef.indexOf('/parameters/')>schemaIndex) ? 'parameters' : 'schemas'))));\n\n // non-body/form parameters have not moved in the overall structure (like responses)\n // but extracting the requestBodies can cause the *number* of parameters to change\n\n if (type === 'schemas') {\n fixUpSchema(target,options);\n }\n\n if ((type !== 'responses') && (type !== 'extensions')) {\n let prefix = type.substr(0,type.length-1);\n if ((prefix === 'parameter') && target.name && (target.name === common.sanitise(target.name))) {\n prefix = encodeURIComponent(target.name);\n }\n\n let suffix = 1;\n if (obj['x-miro']) {\n prefix = getMiroComponentName(obj['x-miro']);\n suffix = '';\n }\n\n while (jptr.jptr(options.openapi,'#/components/'+type+'/'+prefix+suffix)) {\n suffix = (suffix === '' ? 2 : ++suffix);\n }\n\n let newRef = '#/components/'+type+'/'+prefix+suffix;\n let refSuffix = '';\n\n if (type === 'examples') {\n target = { value: target };\n refSuffix = '/value';\n }\n\n jptr.jptr(options.openapi,newRef,target);\n options.refmap[obj[key]] = newRef+refSuffix;\n obj[key] = newRef+refSuffix;\n }\n }\n }\n\n delete obj['x-miro'];\n // do this last - rework cases where $ref object has sibling properties\n if (Object.keys(obj).length > 1) {\n const tmpRef = obj[key];\n const inSchema = state.path.indexOf('/schema') >= 0; // not perfect, but in the absence of a reasonably-sized and complete OAS 2.0 parser...\n if (options.refSiblings === 'preserve') {\n // no-op\n }\n else if (inSchema && (options.refSiblings === 'allOf')) {\n delete obj.$ref;\n state.parent[state.pkey] = { allOf: [ { $ref: tmpRef }, obj ]};\n }\n else { // remove, or not 'preserve' and not in a schema\n state.parent[state.pkey] = { $ref: tmpRef };\n }\n }\n\n }\n if ((key === 'x-ms-odata') && (typeof obj[key] === 'string') && (obj[key].startsWith('#/'))) {\n let keys = obj[key].replace('#/definitions/', '').replace('#/components/schemas/','').split('/');\n let newKey = componentNames.schemas[decodeURIComponent(keys[0])]; // lookup, resolves a $ref\n if (newKey) {\n keys[0] = newKey;\n }\n else {\n throwOrWarn('Could not resolve reference '+obj[key],obj,options);\n }\n obj[key] = '#/components/schemas/' + keys.join('/');\n }\n}\n\n/*\n* This has to happen as a separate pass because multiple $refs may point\n* through elements of the same path\n*/\nfunction dedupeRefs(openapi, options) {\n for (let ref in options.refmap) {\n jptr.jptr(openapi,ref,{ $ref: options.refmap[ref] });\n }\n}\n\nfunction processSecurity(securityObject) {\n for (let s in securityObject) {\n for (let k in securityObject[s]) {\n let sname = common.sanitise(k);\n if (k != sname) {\n securityObject[s][sname] = securityObject[s][k];\n delete securityObject[s][k];\n }\n }\n }\n}\n\nfunction processSecurityScheme(scheme, options) {\n if (scheme.type === 'basic') {\n scheme.type = 'http';\n scheme.scheme = 'basic';\n }\n if (scheme.type === 'oauth2') {\n let flow = {};\n let flowName = scheme.flow;\n if (scheme.flow === 'application') flowName = 'clientCredentials';\n if (scheme.flow === 'accessCode') flowName = 'authorizationCode';\n if (typeof scheme.authorizationUrl !== 'undefined') flow.authorizationUrl = scheme.authorizationUrl.split('?')[0].trim() || '/';\n if (typeof scheme.tokenUrl === 'string') flow.tokenUrl = scheme.tokenUrl.split('?')[0].trim() || '/';\n flow.scopes = scheme.scopes || {};\n scheme.flows = {};\n scheme.flows[flowName] = flow;\n delete scheme.flow;\n delete scheme.authorizationUrl;\n delete scheme.tokenUrl;\n delete scheme.scopes;\n if (typeof scheme.name !== 'undefined') {\n if (options.patch) {\n options.patches++;\n delete scheme.name;\n }\n else {\n throwError('(Patchable) oauth2 securitySchemes should not have name property', options);\n }\n }\n }\n}\n\nfunction keepParameters(value) {\n return (value && !value[\"x-s2o-delete\"]);\n}\n\nfunction processHeader(header, options) {\n if (header.$ref) {\n header.$ref = header.$ref.replace('#/responses/', '#/components/responses/');\n }\n else {\n if (header.type && !header.schema) {\n header.schema = {};\n }\n if (header.type) header.schema.type = header.type;\n if (header.items && header.items.type !== 'array') {\n if (header.items.collectionFormat !== header.collectionFormat) {\n throwOrWarn('Nested collectionFormats are not supported', header, options);\n }\n delete header.items.collectionFormat;\n }\n if (header.type === 'array') {\n if (header.collectionFormat === 'ssv') {\n throwOrWarn('collectionFormat:ssv is no longer supported for headers', header, options); // not lossless\n }\n else if (header.collectionFormat === 'pipes') {\n throwOrWarn('collectionFormat:pipes is no longer supported for headers', header, options); // not lossless\n }\n else if (header.collectionFormat === 'multi') {\n header.explode = true;\n }\n else if (header.collectionFormat === 'tsv') {\n throwOrWarn('collectionFormat:tsv is no longer supported', header, options); // not lossless\n header[\"x-collectionFormat\"] = 'tsv';\n }\n else { // 'csv'\n header.style = 'simple';\n }\n delete header.collectionFormat;\n }\n else if (header.collectionFormat) {\n if (options.patch) {\n options.patches++;\n delete header.collectionFormat;\n }\n else {\n throwError('(Patchable) collectionFormat is only applicable to header.type array', options);\n }\n }\n delete header.type;\n for (let prop of common.parameterTypeProperties) {\n if (typeof header[prop] !== 'undefined') {\n header.schema[prop] = header[prop];\n delete header[prop];\n }\n }\n for (let prop of common.arrayProperties) {\n if (typeof header[prop] !== 'undefined') {\n header.schema[prop] = header[prop];\n delete header[prop];\n }\n }\n }\n}\n\nfunction fixParamRef(param, options) {\n if (param.$ref.indexOf('#/parameters/') >= 0) {\n let refComponents = param.$ref.split('#/parameters/');\n param.$ref = refComponents[0] + '#/components/parameters/' + common.sanitise(refComponents[1]);\n }\n if (param.$ref.indexOf('#/definitions/') >= 0) {\n throwOrWarn('Definition used as parameter', param, options);\n }\n}\n\nfunction attachRequestBody(op,options) {\n let newOp = {};\n for (let key of Object.keys(op)) {\n newOp[key] = op[key];\n if (key === 'parameters') {\n newOp.requestBody = {};\n if (options.rbname) newOp[options.rbname] = '';\n }\n }\n newOp.requestBody = {}; // just in case there are no parameters\n return newOp;\n}\n\n/**\n * @returns op, as it may have changed\n */\nfunction processParameter(param, op, path, method, index, openapi, options) {\n let result = {};\n let singularRequestBody = true;\n let originalType;\n\n if (op && op.consumes && (typeof op.consumes === 'string')) {\n if (options.patch) {\n options.patches++;\n op.consumes = [op.consumes];\n }\n else {\n return throwError('(Patchable) operation.consumes must be an array', options);\n }\n }\n if (!Array.isArray(openapi.consumes)) delete openapi.consumes;\n let consumes = ((op ? op.consumes : null) || (openapi.consumes || [])).filter(common.uniqueOnly);\n\n if (param && param.$ref && (typeof param.$ref === 'string')) {\n // if we still have a ref here, it must be an internal one\n fixParamRef(param, options);\n let ptr = decodeURIComponent(param.$ref.replace('#/components/parameters/', ''));\n let rbody = false;\n let target = openapi.components.parameters[ptr]; // resolves a $ref, must have been sanitised already\n\n if (((!target) || (target[\"x-s2o-delete\"])) && param.$ref.startsWith('#/')) {\n // if it's gone, chances are it's a requestBody component now unless spec was broken\n param[\"x-s2o-delete\"] = true;\n rbody = true;\n }\n\n // shared formData parameters from swagger or path level could be used in any combination.\n // we dereference all op.requestBody's then hash them and pull out common ones later\n\n if (rbody) {\n let ref = param.$ref;\n let newParam = resolveInternal(openapi, param.$ref);\n if (!newParam && ref.startsWith('#/')) {\n throwOrWarn('Could not resolve reference ' + ref, param, options);\n }\n else {\n if (newParam) param = newParam; // preserve reference\n }\n }\n }\n\n if (param && (param.name || param.in)) { // if it's a real parameter OR we've dereferenced it\n\n if (typeof param['x-deprecated'] === 'boolean') {\n param.deprecated = param['x-deprecated'];\n delete param['x-deprecated'];\n }\n\n if (typeof param['x-example'] !== 'undefined') {\n param.example = param['x-example'];\n delete param['x-example'];\n }\n\n if ((param.in != 'body') && (!param.type)) {\n if (options.patch) {\n options.patches++;\n param.type = 'string';\n }\n else {\n throwError('(Patchable) parameter.type is mandatory for non-body parameters', options);\n }\n }\n if (param.type && typeof param.type === 'object' && param.type.$ref) {\n // $ref anywhere sensibility\n param.type = resolveInternal(openapi, param.type.$ref);\n }\n if (param.type === 'file') {\n param['x-s2o-originalType'] = param.type;\n originalType = param.type;\n }\n if (param.description && typeof param.description === 'object' && param.description.$ref) {\n // $ref anywhere sensibility\n param.description = resolveInternal(openapi, param.description.$ref);\n }\n if (param.description === null) delete param.description;\n\n let oldCollectionFormat = param.collectionFormat;\n if ((param.type === 'array') && !oldCollectionFormat) {\n oldCollectionFormat = 'csv';\n }\n if (oldCollectionFormat) {\n if (param.type != 'array') {\n if (options.patch) {\n options.patches++;\n delete param.collectionFormat;\n }\n else {\n throwError('(Patchable) collectionFormat is only applicable to param.type array', options);\n }\n }\n if ((oldCollectionFormat === 'csv') && ((param.in === 'query') || (param.in === 'cookie'))) {\n param.style = 'form';\n param.explode = false;\n }\n if ((oldCollectionFormat === 'csv') && ((param.in === 'path') || (param.in === 'header'))) {\n param.style = 'simple';\n }\n if (oldCollectionFormat === 'ssv') {\n if (param.in === 'query') {\n param.style = 'spaceDelimited';\n }\n else {\n throwOrWarn('collectionFormat:ssv is no longer supported except for in:query parameters', param, options); // not lossless\n }\n }\n if (oldCollectionFormat === 'pipes') {\n if (param.in === 'query') {\n param.style = 'pipeDelimited';\n }\n else {\n throwOrWarn('collectionFormat:pipes is no longer supported except for in:query parameters', param, options); // not lossless\n }\n }\n if (oldCollectionFormat === 'multi') {\n param.explode = true;\n }\n if (oldCollectionFormat === 'tsv') {\n throwOrWarn('collectionFormat:tsv is no longer supported', param, options); // not lossless\n param[\"x-collectionFormat\"] = 'tsv';\n }\n delete param.collectionFormat;\n }\n\n if (param.type && (param.type != 'object') && (param.type != 'body') && (param.in != 'formData')) {\n if (param.items && param.schema) {\n throwOrWarn('parameter has array,items and schema', param, options);\n }\n else {\n if (param.schema) options.patches++; // already present\n if ((!param.schema) || (typeof param.schema !== 'object')) param.schema = {};\n param.schema.type = param.type;\n if (param.items) {\n param.schema.items = param.items;\n delete param.items;\n recurse(param.schema.items, null, function (obj, key, state) {\n if ((key === 'collectionFormat') && (typeof obj[key] === 'string')) {\n if (oldCollectionFormat && obj[key] !== oldCollectionFormat) {\n throwOrWarn('Nested collectionFormats are not supported', param, options);\n }\n delete obj[key]; // not lossless\n }\n // items in 2.0 was a subset of the JSON-Schema items\n // object, it gets fixed up below\n });\n }\n for (let prop of common.parameterTypeProperties) {\n if (typeof param[prop] !== 'undefined') param.schema[prop] = param[prop];\n delete param[prop];\n }\n }\n }\n\n if (param.schema) {\n fixUpSchema(param.schema,options);\n }\n\n if (param[\"x-ms-skip-url-encoding\"]) {\n if (param.in === 'query') { // might be in:path, not allowed in OAS3\n param.allowReserved = true;\n delete param[\"x-ms-skip-url-encoding\"];\n }\n }\n }\n\n if (param && param.in === 'formData') {\n // convert to requestBody component\n singularRequestBody = false;\n result.content = {};\n let contentType = 'application/x-www-form-urlencoded';\n if ((consumes.length) && (consumes.indexOf('multipart/form-data') >= 0)) {\n contentType = 'multipart/form-data';\n }\n\n result.content[contentType] = {};\n if (param.schema) {\n result.content[contentType].schema = param.schema;\n if (param.schema.$ref) {\n result['x-s2o-name'] = decodeURIComponent(param.schema.$ref.replace('#/components/schemas/', ''));\n }\n }\n else {\n result.content[contentType].schema = {};\n result.content[contentType].schema.type = 'object';\n result.content[contentType].schema.properties = {};\n result.content[contentType].schema.properties[param.name] = {};\n let schema = result.content[contentType].schema;\n let target = result.content[contentType].schema.properties[param.name];\n if (param.description) target.description = param.description;\n if (param.example) target.example = param.example;\n if (param.type) target.type = param.type;\n\n for (let prop of common.parameterTypeProperties) {\n if (typeof param[prop] !== 'undefined') target[prop] = param[prop];\n }\n if (param.required === true) {\n if (!schema.required) schema.required = [];\n schema.required.push(param.name);\n result.required = true;\n }\n if (typeof param.default !== 'undefined') target.default = param.default;\n if (target.properties) target.properties = param.properties;\n if (param.allOf) target.allOf = param.allOf; // new are anyOf, oneOf, not\n if ((param.type === 'array') && (param.items)) {\n target.items = param.items;\n if (target.items.collectionFormat) delete target.items.collectionFormat;\n }\n if ((originalType === 'file') || (param['x-s2o-originalType'] === 'file')) {\n target.type = 'string';\n target.format = 'binary';\n }\n\n // Copy any extensions on the form param to the target schema property.\n copyExtensions(param, target);\n }\n }\n else if (param && param.type === 'file') {\n // convert to requestBody\n if (param.required) result.required = param.required;\n result.content = {};\n result.content[\"application/octet-stream\"] = {};\n result.content[\"application/octet-stream\"].schema = {};\n result.content[\"application/octet-stream\"].schema.type = 'string';\n result.content[\"application/octet-stream\"].schema.format = 'binary';\n copyExtensions(param, result);\n }\n if (param && param.in === 'body') {\n result.content = {};\n if (param.name) result['x-s2o-name'] = (op && op.operationId ? common.sanitiseAll(op.operationId) : '') + ('_' + param.name).toCamelCase();\n if (param.description) result.description = param.description;\n if (param.required) result.required = param.required;\n\n // Set the \"request body name\" extension on the operation if requested.\n if (op && options.rbname && param.name) {\n op[options.rbname] = param.name;\n }\n if (param.schema && param.schema.$ref) {\n result['x-s2o-name'] = decodeURIComponent(param.schema.$ref.replace('#/components/schemas/', ''));\n }\n else if (param.schema && (param.schema.type === 'array') && param.schema.items && param.schema.items.$ref) {\n result['x-s2o-name'] = decodeURIComponent(param.schema.items.$ref.replace('#/components/schemas/', '')) + 'Array';\n }\n\n if (!consumes.length) {\n consumes.push('application/json'); // TODO verify default\n }\n\n for (let mimetype of consumes) {\n result.content[mimetype] = {};\n result.content[mimetype].schema = clone(param.schema || {});\n fixUpSchema(result.content[mimetype].schema,options);\n }\n\n // Copy any extensions from the original parameter to the new requestBody\n copyExtensions(param, result);\n }\n\n if (Object.keys(result).length > 0) {\n param[\"x-s2o-delete\"] = true;\n // work out where to attach the requestBody\n if (op) {\n if (op.requestBody && singularRequestBody) {\n op.requestBody[\"x-s2o-overloaded\"] = true;\n let opId = op.operationId || index;\n\n throwOrWarn('Operation ' + opId + ' has multiple requestBodies', op, options);\n }\n else {\n if (!op.requestBody) {\n op = path[method] = attachRequestBody(op,options); // make sure we have one\n }\n if ((op.requestBody.content && op.requestBody.content[\"multipart/form-data\"])\n && (op.requestBody.content[\"multipart/form-data\"].schema) && (op.requestBody.content[\"multipart/form-data\"].schema.properties) && (result.content[\"multipart/form-data\"]) && (result.content[\"multipart/form-data\"].schema) && (result.content[\"multipart/form-data\"].schema.properties)) {\n op.requestBody.content[\"multipart/form-data\"].schema.properties =\n Object.assign(op.requestBody.content[\"multipart/form-data\"].schema.properties, result.content[\"multipart/form-data\"].schema.properties);\n op.requestBody.content[\"multipart/form-data\"].schema.required = (op.requestBody.content[\"multipart/form-data\"].schema.required || []).concat(result.content[\"multipart/form-data\"].schema.required||[]);\n if (!op.requestBody.content[\"multipart/form-data\"].schema.required.length) {\n delete op.requestBody.content[\"multipart/form-data\"].schema.required;\n }\n }\n else if ((op.requestBody.content && op.requestBody.content[\"application/x-www-form-urlencoded\"] && op.requestBody.content[\"application/x-www-form-urlencoded\"].schema && op.requestBody.content[\"application/x-www-form-urlencoded\"].schema.properties)\n && result.content[\"application/x-www-form-urlencoded\"] && result.content[\"application/x-www-form-urlencoded\"].schema && result.content[\"application/x-www-form-urlencoded\"].schema.properties) {\n op.requestBody.content[\"application/x-www-form-urlencoded\"].schema.properties =\n Object.assign(op.requestBody.content[\"application/x-www-form-urlencoded\"].schema.properties, result.content[\"application/x-www-form-urlencoded\"].schema.properties);\n op.requestBody.content[\"application/x-www-form-urlencoded\"].schema.required = (op.requestBody.content[\"application/x-www-form-urlencoded\"].schema.required || []).concat(result.content[\"application/x-www-form-urlencoded\"].schema.required||[]);\n if (!op.requestBody.content[\"application/x-www-form-urlencoded\"].schema.required.length) {\n delete op.requestBody.content[\"application/x-www-form-urlencoded\"].schema.required;\n }\n }\n else {\n op.requestBody = Object.assign(op.requestBody, result);\n if (!op.requestBody['x-s2o-name']) {\n if (op.requestBody.schema && op.requestBody.schema.$ref) {\n op.requestBody['x-s2o-name'] = decodeURIComponent(op.requestBody.schema.$ref.replace('#/components/schemas/', '')).split('/').join('');\n }\n else if (op.operationId) {\n op.requestBody['x-s2o-name'] = common.sanitiseAll(op.operationId);\n }\n }\n }\n }\n }\n }\n\n // tidy up\n if (param && !param['x-s2o-delete']) {\n delete param.type;\n for (let prop of common.parameterTypeProperties) {\n delete param[prop];\n }\n\n if ((param.in === 'path') && ((typeof param.required === 'undefined') || (param.required !== true))) {\n if (options.patch) {\n options.patches++;\n param.required = true;\n }\n else {\n throwError('(Patchable) path parameters must be required:true ['+param.name+' in '+index+']', options);\n }\n }\n }\n\n return op;\n}\n\nfunction copyExtensions(src, tgt) {\n for (let prop in src) {\n if (prop.startsWith('x-') && !prop.startsWith('x-s2o')) {\n tgt[prop] = src[prop];\n }\n }\n}\n\nfunction processResponse(response, name, op, openapi, options) {\n if (!response) return false;\n if (response.$ref && (typeof response.$ref === 'string')) {\n if (response.$ref.indexOf('#/definitions/') >= 0) {\n //response.$ref = '#/components/schemas/'+common.sanitise(response.$ref.replace('#/definitions/',''));\n throwOrWarn('definition used as response: ' + response.$ref, response, options);\n }\n else {\n if (response.$ref.startsWith('#/responses/')) {\n response.$ref = '#/components/responses/' + common.sanitise(decodeURIComponent(response.$ref.replace('#/responses/', '')));\n }\n }\n }\n else {\n if ((typeof response.description === 'undefined') || (response.description === null)\n || ((response.description === '') && options.patch)) {\n if (options.patch) {\n if ((typeof response === 'object') && (!Array.isArray(response))) {\n options.patches++;\n response.description = (statusCodes[response] || '');\n }\n }\n else {\n throwError('(Patchable) response.description is mandatory', options);\n }\n }\n if (typeof response.schema !== 'undefined') {\n\n fixUpSchema(response.schema,options);\n\n if (response.schema.$ref && (typeof response.schema.$ref === 'string') && response.schema.$ref.startsWith('#/responses/')) {\n response.schema.$ref = '#/components/responses/' + common.sanitise(decodeURIComponent(response.schema.$ref.replace('#/responses/', '')));\n }\n\n if (op && op.produces && (typeof op.produces === 'string')) {\n if (options.patch) {\n options.patches++;\n op.produces = [op.produces];\n }\n else {\n return throwError('(Patchable) operation.produces must be an array', options);\n }\n }\n if (openapi.produces && !Array.isArray(openapi.produces)) delete openapi.produces;\n\n let produces = ((op ? op.produces : null) || (openapi.produces || [])).filter(common.uniqueOnly);\n if (!produces.length) produces.push('*/*'); // TODO verify default\n\n response.content = {};\n for (let mimetype of produces) {\n response.content[mimetype] = {};\n response.content[mimetype].schema = clone(response.schema);\n if (response.examples && response.examples[mimetype]) {\n let example = {};\n example.value = response.examples[mimetype];\n response.content[mimetype].examples = {};\n response.content[mimetype].examples.response = example;\n delete response.examples[mimetype];\n }\n if (response.content[mimetype].schema.type === 'file') {\n response.content[mimetype].schema = { type: 'string', format: 'binary' };\n }\n }\n delete response.schema;\n }\n // examples for content-types not listed in produces\n for (let mimetype in response.examples) {\n if (!response.content) response.content = {};\n if (!response.content[mimetype]) response.content[mimetype] = {};\n response.content[mimetype].examples = {};\n response.content[mimetype].examples.response = {};\n response.content[mimetype].examples.response.value = response.examples[mimetype];\n }\n delete response.examples;\n\n if (response.headers) {\n for (let h in response.headers) {\n if (h.toLowerCase() === 'status code') {\n if (options.patch) {\n options.patches++;\n delete response.headers[h];\n }\n else {\n throwError('(Patchable) \"Status Code\" is not a valid header', options);\n }\n }\n else {\n processHeader(response.headers[h], options);\n }\n }\n }\n }\n}\n\nfunction processPaths(container, containerName, options, requestBodyCache, openapi) {\n for (let p in container) {\n let path = container[p];\n // path.$ref is external only\n if (path && (path['x-trace']) && (typeof path['x-trace'] === 'object')) {\n path.trace = path['x-trace'];\n delete path['x-trace'];\n }\n if (path && (path['x-summary']) && (typeof path['x-summary'] === 'string')) {\n path.summary = path['x-summary'];\n delete path['x-summary'];\n }\n if (path && (path['x-description']) && (typeof path['x-description'] === 'string')) {\n path.description = path['x-description'];\n delete path['x-description'];\n }\n if (path && (path['x-servers']) && (Array.isArray(path['x-servers']))) {\n path.servers = path['x-servers'];\n delete path['x-servers'];\n }\n for (let method in path) {\n if ((common.httpMethods.indexOf(method) >= 0) || (method === 'x-amazon-apigateway-any-method')) {\n let op = path[method];\n\n if (op && op.parameters && Array.isArray(op.parameters)) {\n if (path.parameters) {\n for (let param of path.parameters) {\n if (typeof param.$ref === 'string') {\n fixParamRef(param, options);\n param = resolveInternal(openapi, param.$ref);\n }\n let match = op.parameters.find(function (e, i, a) {\n return ((e.name === param.name) && (e.in === param.in));\n });\n\n if (!match && ((param.in === 'formData') || (param.in === 'body') || (param.type === 'file'))) {\n op = processParameter(param, op, path, method, p, openapi, options);\n if (options.rbname && op[options.rbname] === '') {\n delete op[options.rbname];\n }\n }\n }\n }\n for (let param of op.parameters) {\n op = processParameter(param, op, path, method, method + ':' + p, openapi, options);\n }\n if (options.rbname && op[options.rbname] === '') {\n delete op[options.rbname];\n }\n if (!options.debug) {\n if (op.parameters) op.parameters = op.parameters.filter(keepParameters);\n }\n }\n\n if (op && op.security) processSecurity(op.security);\n\n //don't need to remove requestBody for non-supported ops as they \"SHALL be ignored\"\n\n // responses\n if (typeof op === 'object') {\n if (!op.responses) {\n let defaultResp = {};\n defaultResp.description = 'Default response';\n op.responses = { default: defaultResp };\n }\n for (let r in op.responses) {\n let response = op.responses[r];\n processResponse(response, r, op, openapi, options);\n }\n }\n\n if (op && (op['x-servers']) && (Array.isArray(op['x-servers']))) {\n op.servers = op['x-servers'];\n delete op['x-servers'];\n } else if (op && op.schemes && op.schemes.length) {\n for (let scheme of op.schemes) {\n if ((!openapi.schemes) || (openapi.schemes.indexOf(scheme) < 0)) {\n if (!op.servers) {\n op.servers = [];\n }\n if (Array.isArray(openapi.servers)) {\n for (let server of openapi.servers) {\n let newServer = clone(server);\n let serverUrl = url.parse(newServer.url);\n serverUrl.protocol = scheme;\n newServer.url = serverUrl.format();\n op.servers.push(newServer);\n }\n }\n }\n }\n }\n\n if (options.debug) {\n op[\"x-s2o-consumes\"] = op.consumes || [];\n op[\"x-s2o-produces\"] = op.produces || [];\n }\n if (op) {\n delete op.consumes;\n delete op.produces;\n delete op.schemes;\n\n if (op[\"x-ms-examples\"]) {\n for (let e in op[\"x-ms-examples\"]) {\n let example = op[\"x-ms-examples\"][e];\n let se = common.sanitiseAll(e);\n if (example.parameters) {\n for (let p in example.parameters) {\n let value = example.parameters[p];\n for (let param of (op.parameters||[]).concat(path.parameters||[])) {\n if (param.$ref) {\n param = jptr.jptr(openapi,param.$ref);\n }\n if ((param.name === p) && (!param.example)) {\n if (!param.examples) {\n param.examples = {};\n }\n param.examples[e] = {value: value};\n }\n }\n }\n }\n if (example.responses) {\n for (let r in example.responses) {\n if (example.responses[r].headers) {\n for (let h in example.responses[r].headers) {\n let value = example.responses[r].headers[h];\n for (let rh in op.responses[r].headers) {\n if (rh === h) {\n let header = op.responses[r].headers[rh];\n header.example = value;\n }\n }\n }\n }\n if (example.responses[r].body) {\n openapi.components.examples[se] = { value: clone(example.responses[r].body) };\n if (op.responses[r] && op.responses[r].content) {\n for (let ct in op.responses[r].content) {\n let contentType = op.responses[r].content[ct];\n if (!contentType.examples) {\n contentType.examples = {};\n }\n contentType.examples[e] = { $ref: '#/components/examples/'+se };\n }\n }\n }\n\n }\n }\n }\n delete op[\"x-ms-examples\"];\n }\n\n if (op.parameters && op.parameters.length === 0) delete op.parameters;\n if (op.requestBody) {\n let effectiveOperationId = op.operationId ? common.sanitiseAll(op.operationId) : common.sanitiseAll(method + p).toCamelCase();\n let rbName = common.sanitise(op.requestBody['x-s2o-name'] || effectiveOperationId || '');\n delete op.requestBody['x-s2o-name'];\n let rbStr = JSON.stringify(op.requestBody);\n let rbHash = common.hash(rbStr);\n if (!requestBodyCache[rbHash]) {\n let entry = {};\n entry.name = rbName;\n entry.body = op.requestBody;\n entry.refs = [];\n requestBodyCache[rbHash] = entry;\n }\n let ptr = '#/'+containerName+'/'+encodeURIComponent(jptr.jpescape(p))+'/'+method+'/requestBody';\n requestBodyCache[rbHash].refs.push(ptr);\n }\n }\n\n }\n }\n if (path && path.parameters) {\n for (let p2 in path.parameters) {\n let param = path.parameters[p2];\n processParameter(param, null, path, null, p, openapi, options); // index here is the path string\n }\n if (!options.debug && Array.isArray(path.parameters)) {\n path.parameters = path.parameters.filter(keepParameters);\n }\n }\n }\n}\n\nfunction main(openapi, options) {\n\n let requestBodyCache = {};\n componentNames = { schemas: {} };\n\n if (openapi.security) processSecurity(openapi.security);\n\n for (let s in openapi.components.securitySchemes) {\n let sname = common.sanitise(s);\n if (s != sname) {\n if (openapi.components.securitySchemes[sname]) {\n throwError('Duplicate sanitised securityScheme name ' + sname, options);\n }\n openapi.components.securitySchemes[sname] = openapi.components.securitySchemes[s];\n delete openapi.components.securitySchemes[s];\n }\n processSecurityScheme(openapi.components.securitySchemes[sname], options);\n }\n\n for (let s in openapi.components.schemas) {\n let sname = common.sanitiseAll(s);\n let suffix = '';\n if (s != sname) {\n while (openapi.components.schemas[sname + suffix]) {\n // @ts-ignore\n suffix = (suffix ? ++suffix : 2);\n }\n openapi.components.schemas[sname + suffix] = openapi.components.schemas[s];\n delete openapi.components.schemas[s];\n }\n componentNames.schemas[s] = sname + suffix;\n fixUpSchema(openapi.components.schemas[sname+suffix],options)\n }\n\n // fix all $refs to their new locations (and potentially new names)\n options.refmap = {};\n recurse(openapi, { payload: { options: options } }, fixupRefs);\n dedupeRefs(openapi,options);\n\n for (let p in openapi.components.parameters) {\n let sname = common.sanitise(p);\n if (p != sname) {\n if (openapi.components.parameters[sname]) {\n throwError('Duplicate sanitised parameter name ' + sname, options);\n }\n openapi.components.parameters[sname] = openapi.components.parameters[p];\n delete openapi.components.parameters[p];\n }\n let param = openapi.components.parameters[sname];\n processParameter(param, null, null, null, sname, openapi, options);\n }\n\n for (let r in openapi.components.responses) {\n let sname = common.sanitise(r);\n if (r != sname) {\n if (openapi.components.responses[sname]) {\n throwError('Duplicate sanitised response name ' + sname, options);\n }\n openapi.components.responses[sname] = openapi.components.responses[r];\n delete openapi.components.responses[r];\n }\n let response = openapi.components.responses[sname];\n processResponse(response, sname, null, openapi, options);\n if (response.headers) {\n for (let h in response.headers) {\n if (h.toLowerCase() === 'status code') {\n if (options.patch) {\n options.patches++;\n delete response.headers[h];\n }\n else {\n throwError('(Patchable) \"Status Code\" is not a valid header', options);\n }\n }\n else {\n processHeader(response.headers[h], options);\n }\n }\n }\n }\n\n for (let r in openapi.components.requestBodies) { // converted ones\n let rb = openapi.components.requestBodies[r];\n let rbStr = JSON.stringify(rb);\n let rbHash = common.hash(rbStr);\n let entry = {};\n entry.name = r;\n entry.body = rb;\n entry.refs = [];\n requestBodyCache[rbHash] = entry;\n }\n\n processPaths(openapi.paths, 'paths', options, requestBodyCache, openapi);\n if (openapi[\"x-ms-paths\"]) {\n processPaths(openapi[\"x-ms-paths\"], 'x-ms-paths', options, requestBodyCache, openapi);\n }\n\n if (!options.debug) {\n for (let p in openapi.components.parameters) {\n let param = openapi.components.parameters[p];\n if (param[\"x-s2o-delete\"]) {\n delete openapi.components.parameters[p];\n }\n }\n }\n\n if (options.debug) {\n openapi[\"x-s2o-consumes\"] = openapi.consumes || [];\n openapi[\"x-s2o-produces\"] = openapi.produces || [];\n }\n delete openapi.consumes;\n delete openapi.produces;\n delete openapi.schemes;\n\n let rbNamesGenerated = [];\n\n openapi.components.requestBodies = {}; // for now as we've dereffed them\n\n if (!options.resolveInternal) {\n let counter = 1;\n for (let e in requestBodyCache) {\n let entry = requestBodyCache[e];\n if (entry.refs.length > 1) {\n // create a shared requestBody\n let suffix = '';\n if (!entry.name) {\n entry.name = 'requestBody';\n // @ts-ignore\n suffix = counter++;\n }\n while (rbNamesGenerated.indexOf(entry.name + suffix) >= 0) {\n // @ts-ignore - this can happen if descriptions are not exactly the same (e.g. bitbucket)\n suffix = (suffix ? ++suffix : 2);\n }\n entry.name = entry.name + suffix;\n rbNamesGenerated.push(entry.name);\n openapi.components.requestBodies[entry.name] = clone(entry.body);\n for (let r in entry.refs) {\n let ref = {};\n ref.$ref = '#/components/requestBodies/' + entry.name;\n jptr.jptr(openapi,entry.refs[r],ref);\n }\n }\n }\n }\n\n if (openapi.components.responses && Object.keys(openapi.components.responses).length === 0) {\n delete openapi.components.responses;\n }\n if (openapi.components.parameters && Object.keys(openapi.components.parameters).length === 0) {\n delete openapi.components.parameters;\n }\n if (openapi.components.examples && Object.keys(openapi.components.examples).length === 0) {\n delete openapi.components.examples;\n }\n if (openapi.components.requestBodies && Object.keys(openapi.components.requestBodies).length === 0) {\n delete openapi.components.requestBodies;\n }\n if (openapi.components.securitySchemes && Object.keys(openapi.components.securitySchemes).length === 0) {\n delete openapi.components.securitySchemes;\n }\n if (openapi.components.headers && Object.keys(openapi.components.headers).length === 0) {\n delete openapi.components.headers;\n }\n if (openapi.components.schemas && Object.keys(openapi.components.schemas).length === 0) {\n delete openapi.components.schemas;\n }\n if (openapi.components && Object.keys(openapi.components).length === 0) {\n delete openapi.components;\n }\n\n return openapi;\n}\n\nfunction extractServerParameters(server) {\n if (!server || !server.url || (typeof server.url !== 'string')) return server;\n server.url = server.url.split('{{').join('{');\n server.url = server.url.split('}}').join('}');\n server.url.replace(/\\{(.+?)\\}/g, function (match, group1) { // TODO extend to :parameters (not port)?\n if (!server.variables) {\n server.variables = {};\n }\n server.variables[group1] = { default: 'unknown' };\n });\n return server;\n}\n\nfunction fixInfo(openapi, options, reject) {\n if ((typeof openapi.info === 'undefined') || (openapi.info === null)) {\n if (options.patch) {\n options.patches++;\n openapi.info = { version: '', title: '' };\n }\n else {\n return reject(new S2OError('(Patchable) info object is mandatory'));\n }\n }\n if ((typeof openapi.info !== 'object') || (Array.isArray(openapi.info))) {\n return reject(new S2OError('info must be an object'));\n }\n if ((typeof openapi.info.title === 'undefined') || (openapi.info.title === null)) {\n if (options.patch) {\n options.patches++;\n openapi.info.title = '';\n }\n else {\n return reject(new S2OError('(Patchable) info.title cannot be null'));\n }\n }\n if ((typeof openapi.info.version === 'undefined') || (openapi.info.version === null)) {\n if (options.patch) {\n options.patches++;\n openapi.info.version = '';\n }\n else {\n return reject(new S2OError('(Patchable) info.version cannot be null'));\n }\n }\n if (typeof openapi.info.version !== 'string') {\n if (options.patch) {\n options.patches++;\n openapi.info.version = openapi.info.version.toString();\n }\n else {\n return reject(new S2OError('(Patchable) info.version must be a string'));\n }\n }\n if (typeof openapi.info.logo !== 'undefined') {\n if (options.patch) {\n options.patches++;\n openapi.info['x-logo'] = openapi.info.logo;\n delete openapi.info.logo;\n }\n else return reject(new S2OError('(Patchable) info should not have logo property'));\n }\n if (typeof openapi.info.termsOfService !== 'undefined') {\n if (openapi.info.termsOfService === null) {\n if (options.patch) {\n options.patches++;\n openapi.info.termsOfService = '';\n }\n else {\n return reject(new S2OError('(Patchable) info.termsOfService cannot be null'));\n }\n }\n if (url.URL && options.whatwg) {\n try {\n url.URL.parse(openapi.info.termsOfService);\n }\n catch (ex) {\n if (options.patch) {\n options.patches++;\n delete openapi.info.termsOfService;\n }\n else return reject(new S2OError('(Patchable) info.termsOfService must be a URL'));\n }\n }\n }\n}\n\nfunction fixPaths(openapi, options, reject) {\n if (typeof openapi.paths === 'undefined') {\n if (options.patch) {\n options.patches++;\n openapi.paths = {};\n }\n else {\n return reject(new S2OError('(Patchable) paths object is mandatory'));\n }\n }\n}\n\nfunction detectObjectReferences(obj, options) {\n const seen = new WeakSet();\n recurse(obj, {identityDetection:true}, function (obj, key, state) {\n if ((typeof obj[key] === 'object') && (obj[key] !== null)) {\n if (seen.has(obj[key])) {\n if (options.anchors) {\n obj[key] = clone(obj[key]);\n }\n else {\n throwError('YAML anchor or merge key at '+state.path, options);\n }\n }\n else {\n seen.add(obj[key]);\n }\n }\n });\n}\n\nfunction convertObj(swagger, options, callback) {\n return maybe(callback, new Promise(function (resolve, reject) {\n if (!swagger) swagger = {};\n options.original = swagger;\n if (!options.text) options.text = yaml.stringify(swagger);\n options.externals = [];\n options.externalRefs = {};\n options.rewriteRefs = true; // avoids stack explosions\n options.preserveMiro = true;\n options.promise = {};\n options.promise.resolve = resolve;\n options.promise.reject = reject;\n options.patches = 0;\n if (!options.cache) options.cache = {};\n if (options.source) options.cache[options.source] = options.original;\n\n detectObjectReferences(swagger, options);\n\n if (swagger.openapi && (typeof swagger.openapi === 'string') && swagger.openapi.startsWith('3.')) {\n options.openapi = cclone(swagger);\n fixInfo(options.openapi, options, reject);\n fixPaths(options.openapi, options, reject);\n\n resolver.optionalResolve(options) // is a no-op if options.resolve is not set\n .then(function(){\n if (options.direct) {\n return resolve(options.openapi);\n }\n else {\n return resolve(options);\n }\n })\n .catch(function(ex){\n console.warn(ex);\n reject(ex);\n });\n return; // we should have resolved or rejected by now\n }\n\n if ((!swagger.swagger) || (swagger.swagger != \"2.0\")) {\n return reject(new S2OError('Unsupported swagger/OpenAPI version: ' + (swagger.openapi ? swagger.openapi : swagger.swagger)));\n }\n\n let openapi = options.openapi = {};\n openapi.openapi = (typeof options.targetVersion === 'string' && options.targetVersion.startsWith('3.')) ? options.targetVersion : targetVersion; // semver\n\n if (options.origin) {\n if (!openapi[\"x-origin\"]) {\n openapi[\"x-origin\"] = [];\n }\n let origin = {};\n origin.url = options.source||options.origin;\n origin.format = 'swagger';\n origin.version = swagger.swagger;\n origin.converter = {};\n origin.converter.url = 'https://github.com/mermade/oas-kit';\n origin.converter.version = ourVersion;\n openapi[\"x-origin\"].push(origin);\n }\n\n // we want the new and existing properties to appear in a sensible order. Not guaranteed\n openapi = Object.assign(openapi, cclone(swagger));\n delete openapi.swagger;\n recurse(openapi, {}, function(obj, key, state){\n if ((obj[key] === null) && (!key.startsWith('x-')) && key !== 'default' && (state.path.indexOf('/example') < 0)) delete obj[key]; // this saves *so* much grief later\n });\n\n if (swagger.host) {\n for (let s of (Array.isArray(swagger.schemes) ? swagger.schemes : [''])) {\n let server = {};\n server.url = (s ? s+':' : '') + '//' + swagger.host + (swagger.basePath ? swagger.basePath : '');\n extractServerParameters(server);\n if (!openapi.servers) openapi.servers = [];\n openapi.servers.push(server);\n }\n }\n else if (swagger.basePath) {\n let server = {};\n server.url = swagger.basePath;\n extractServerParameters(server);\n if (!openapi.servers) openapi.servers = [];\n openapi.servers.push(server);\n }\n delete openapi.host;\n delete openapi.basePath;\n\n if (openapi['x-servers'] && Array.isArray(openapi['x-servers'])) {\n openapi.servers = openapi['x-servers'];\n delete openapi['x-servers'];\n }\n\n // TODO APIMatic extensions (x-server-configuration) ?\n\n if (swagger['x-ms-parameterized-host']) {\n let xMsPHost = swagger['x-ms-parameterized-host'];\n let server = {};\n server.url = xMsPHost.hostTemplate + (swagger.basePath ? swagger.basePath : '');\n server.variables = {};\n for (let msp in xMsPHost.parameters) {\n let param = xMsPHost.parameters[msp];\n if (param.$ref) {\n param = clone(resolveInternal(openapi, param.$ref));\n }\n if (!msp.startsWith('x-')) {\n delete param.required; // all true\n delete param.type; // all strings\n delete param.in; // all 'host'\n if (typeof param.default === 'undefined') {\n if (param.enum) {\n param.default = param.enum[0];\n }\n else {\n param.default = '';\n }\n }\n server.variables[param.name] = param;\n delete param.name;\n }\n }\n if (!openapi.servers) openapi.servers = [];\n if (xMsPHost.useSchemePrefix === false) {\n // The server URL already includes a protocol scheme\n openapi.servers.push(server);\n } else {\n // Define this server once for each given protocol scheme\n swagger.schemes.forEach((scheme) => {\n openapi.servers.push(\n Object.assign({}, server, { url: scheme + '://' + server.url })\n )\n });\n }\n delete openapi['x-ms-parameterized-host'];\n }\n\n fixInfo(openapi, options, reject);\n fixPaths(openapi, options, reject);\n\n if (typeof openapi.consumes === 'string') {\n openapi.consumes = [openapi.consumes];\n }\n if (typeof openapi.produces === 'string') {\n openapi.produces = [openapi.produces];\n }\n\n openapi.components = {};\n if (openapi['x-callbacks']) {\n openapi.components.callbacks = openapi['x-callbacks'];\n delete openapi['x-callbacks'];\n }\n openapi.components.examples = {};\n openapi.components.headers = {};\n if (openapi['x-links']) {\n openapi.components.links = openapi['x-links'];\n delete openapi['x-links'];\n }\n openapi.components.parameters = openapi.parameters || {};\n openapi.components.responses = openapi.responses || {};\n openapi.components.requestBodies = {};\n openapi.components.securitySchemes = openapi.securityDefinitions || {};\n openapi.components.schemas = openapi.definitions || {};\n delete openapi.definitions;\n delete openapi.responses;\n delete openapi.parameters;\n delete openapi.securityDefinitions;\n\n resolver.optionalResolve(options) // is a no-op if options.resolve is not set\n .then(function(){\n main(options.openapi, options);\n if (options.direct) {\n resolve(options.openapi);\n }\n else {\n resolve(options);\n }\n })\n .catch(function(ex){\n console.warn(ex);\n reject(ex);\n });\n\n }));\n}\n\nfunction convertStr(str, options, callback) {\n return maybe(callback, new Promise(function (resolve, reject) {\n let obj = null;\n let error = null;\n try {\n obj = JSON.parse(str);\n options.text = JSON.stringify(obj,null,2);\n }\n catch (ex) {\n error = ex;\n try {\n obj = yaml.parse(str, { schema: 'core', prettyErrors: true });\n options.sourceYaml = true;\n options.text = str;\n }\n catch (ex) {\n error = ex;\n }\n }\n if (obj) {\n convertObj(obj, options)\n .then(options => resolve(options))\n .catch(ex => reject(ex));\n }\n else {\n reject(new S2OError(error ? error.message : 'Could not parse string'));\n }\n }));\n}\n\nfunction convertUrl(url, options, callback) {\n return maybe(callback, new Promise(function (resolve, reject) {\n options.origin = true;\n if (!options.source) {\n options.source = url;\n }\n if (options.verbose) {\n console.warn('GET ' + url);\n }\n if (!options.fetch) {\n options.fetch = fetch;\n }\n const fetchOptions = Object.assign({}, options.fetchOptions, {agent:options.agent});\n options.fetch(url, fetchOptions).then(function (res) {\n if (res.status !== 200) throw new S2OError(`Received status code ${res.status}: ${url}`);\n return res.text();\n }).then(function (body) {\n convertStr(body, options)\n .then(options => resolve(options))\n .catch(ex => reject(ex));\n }).catch(function (err) {\n reject(err);\n });\n }));\n}\n\nfunction convertFile(filename, options, callback) {\n return maybe(callback, new Promise(function (resolve, reject) {\n fs.readFile(filename, options.encoding || 'utf8', function (err, s) {\n if (err) {\n reject(err);\n }\n else {\n options.sourceFile = filename;\n convertStr(s, options)\n .then(options => resolve(options))\n .catch(ex => reject(ex));\n }\n });\n }));\n}\n\nfunction convertStream(readable, options, callback) {\n return maybe(callback, new Promise(function (resolve, reject) {\n let data = '';\n readable.on('data', function (chunk) {\n data += chunk;\n })\n .on('end', function () {\n convertStr(data, options)\n .then(options => resolve(options))\n .catch(ex => reject(ex));\n });\n }));\n}\n\nmodule.exports = {\n S2OError: S2OError,\n targetVersion: targetVersion,\n convert: convertObj,\n convertObj: convertObj,\n convertUrl: convertUrl,\n convertStr: convertStr,\n convertFile: convertFile,\n convertStream: convertStream\n};\n","'use strict';\n\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (newInputs[i] !== lastInputs[i]) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) { isEqual = areInputsEqual; }\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n }\n return memoized;\n}\n\nmodule.exports = memoizeOne;\n","module.exports = require(\"react-dropdown-aria\");","module.exports = require(\"dompurify\");","module.exports = require(\"classnames\");","module.exports = require(\"call-me-maybe\");","'use strict';\n\nconst fs = require('fs');\nconst path = require('path');\nconst url = require('url');\n\nconst fetch = require('node-fetch-h2');\nconst yaml = require('yaml');\n\nconst jptr = require('reftools/lib/jptr.js').jptr;\nconst recurse = require('reftools/lib/recurse.js').recurse;\nconst clone = require('reftools/lib/clone.js').clone;\nconst deRef = require('reftools/lib/dereference.js').dereference;\nconst isRef = require('reftools/lib/isref.js').isRef;\nconst common = require('oas-kit-common');\n\nfunction unique(arr) {\n return [... new Set(arr)];\n}\n\nfunction readFileAsync(filename, encoding) {\n return new Promise(function (resolve, reject) {\n fs.readFile(filename, encoding, function (err, data) {\n if (err)\n reject(err);\n else\n resolve(data);\n });\n });\n}\n\nfunction resolveAllFragment(obj, context, src, parentPath, base, options) {\n\n let attachPoint = options.externalRefs[src+parentPath].paths[0];\n\n let baseUrl = url.parse(base);\n let seen = {}; // seen is indexed by the $ref value and contains path replacements\n let changes = 1;\n while (changes) {\n changes = 0;\n recurse(obj, {identityDetection:true}, function (obj, key, state) {\n if (isRef(obj, key)) {\n if (obj[key].startsWith('#')) {\n if (!seen[obj[key]] && !obj.$fixed) {\n let target = clone(jptr(context, obj[key]));\n if (options.verbose>1) console.warn((target === false ? common.colour.red : common.colour.green)+'Fragment resolution', obj[key], common.colour.normal);\n /*\n ResolutionCase:A is where there is a local reference in an externally\n referenced document, and we have not seen it before. The reference\n is replaced by a copy of the data pointed to, which may be outside this fragment\n but within the context of the external document\n */\n if (target === false) {\n state.parent[state.pkey] = {}; /* case:A(2) where the resolution fails */\n if (options.fatal) {\n let ex = new Error('Fragment $ref resolution failed '+obj[key]);\n if (options.promise) options.promise.reject(ex)\n else throw(ex);\n }\n }\n else {\n changes++;\n state.parent[state.pkey] = target;\n seen[obj[key]] = state.path.replace('/%24ref','');\n }\n }\n else {\n if (!obj.$fixed) {\n let newRef = (attachPoint+'/'+seen[obj[key]]).split('/#/').join('/');\n state.parent[state.pkey] = { $ref: newRef, 'x-miro': obj[key], $fixed: true };\n if (options.verbose>1) console.warn('Replacing with',newRef);\n changes++;\n }\n /*\n ResolutionCase:B is where there is a local reference in an externally\n referenced document, and we have seen this reference before and resolved it.\n We create a new object containing the (immutable) $ref string\n */\n }\n }\n else if (baseUrl.protocol) {\n let newRef = url.resolve(base,obj[key]).toString();\n if (options.verbose>1) console.warn(common.colour.yellow+'Rewriting external url ref',obj[key],'as',newRef,common.colour.normal);\n obj['x-miro'] = obj[key];\n obj[key] = newRef;\n }\n else if (!obj['x-miro']) {\n let newRef = url.resolve(base,obj[key]).toString();\n if (options.verbose>1) console.warn(common.colour.yellow+'Rewriting external ref',obj[key],'as',newRef,common.colour.normal);\n obj['x-miro'] = obj[key]; // we use x-miro as a flag so we don't do this > once\n obj[key] = newRef;\n }\n }\n });\n }\n\n recurse(obj,{},function(obj,key,state){\n if (isRef(obj, key)) {\n if (typeof obj.$fixed !== 'undefined') delete obj.$fixed;\n }\n });\n\n if (options.verbose>1) console.warn('Finished fragment resolution');\n return obj;\n}\n\nfunction filterData(data, options) {\n if (!options.filters || !options.filters.length) return data;\n for (let filter of options.filters) {\n data = filter(data, options);\n }\n return data;\n}\n\nfunction testProtocol(input, backup) {\n if (input && input.length > 2) return input;\n if (backup && backup.length > 2) return backup;\n return 'file:';\n}\n\nfunction resolveExternal(root, pointer, options, callback) {\n var u = url.parse(options.source);\n var base = options.source.split('\\\\').join('/').split('/');\n let doc = base.pop(); // drop the actual filename\n if (!doc) base.pop(); // in case it ended with a /\n let fragment = '';\n let fnComponents = pointer.split('#');\n if (fnComponents.length > 1) {\n fragment = '#' + fnComponents[1];\n pointer = fnComponents[0];\n }\n base = base.join('/');\n\n let u2 = url.parse(pointer);\n let effectiveProtocol = testProtocol(u2.protocol, u.protocol);\n\n let target;\n if (effectiveProtocol === 'file:') {\n target = path.resolve(base ? base + '/' : '', pointer);\n }\n else {\n target = url.resolve(base ? base + '/' : '', pointer);\n }\n\n if (options.cache[target]) {\n if (options.verbose) console.warn('CACHED', target, fragment);\n /*\n resolutionSource:A this is where we have cached the externally-referenced document from a\n file, http or custom handler\n */\n let context = clone(options.cache[target]);\n let data = options.externalRef = context;\n if (fragment) {\n data = jptr(data, fragment);\n if (data === false) {\n data = {}; // case:A(2) where the resolution fails\n if (options.fatal) {\n let ex = new Error('Cached $ref resolution failed '+target+fragment);\n if (options.promise) options.promise.reject(ex)\n else throw(ex);\n }\n }\n }\n data = resolveAllFragment(data, context, pointer, fragment, target, options);\n data = filterData(data, options);\n callback(clone(data), target, options);\n return Promise.resolve(data);\n }\n\n if (options.verbose) console.warn('GET', target, fragment);\n\n if (options.handlers && options.handlers[effectiveProtocol]) {\n return options.handlers[effectiveProtocol](base, pointer, fragment, options)\n .then(function (data) {\n options.externalRef = data;\n data = filterData(data, options);\n options.cache[target] = data;\n callback(data, target, options);\n return data;\n })\n .catch(function(ex){\n if (options.verbose) console.warn(ex);\n throw(ex);\n });\n }\n else if (effectiveProtocol && effectiveProtocol.startsWith('http')) {\n const fetchOptions = Object.assign({}, options.fetchOptions, { agent: options.agent });\n return options.fetch(target, fetchOptions)\n .then(function (res) {\n if (res.status !== 200) throw new Error(`Received status code ${res.status}: ${target}`);\n return res.text();\n })\n .then(function (data) {\n try {\n let context = yaml.parse(data, { schema:'core', prettyErrors: true });\n data = options.externalRef = context;\n options.cache[target] = clone(data);\n /* resolutionSource:B, from the network, data is fresh, but we clone it into the cache */\n if (fragment) {\n data = jptr(data, fragment);\n if (data === false) {\n data = {}; /* case:B(2) where the resolution fails */\n if (options.fatal) {\n let ex = new Error('Remote $ref resolution failed '+target+fragment);\n if (options.promise) options.promise.reject(ex)\n else throw(ex);\n }\n }\n }\n data = resolveAllFragment(data, context, pointer, fragment, target, options);\n data = filterData(data, options);\n }\n catch (ex) {\n if (options.verbose) console.warn(ex);\n if (options.promise && options.fatal) options.promise.reject(ex)\n else throw(ex);\n }\n callback(data, target, options);\n return data;\n })\n .catch(function (err) {\n if (options.verbose) console.warn(err);\n options.cache[target] = {};\n if (options.promise && options.fatal) options.promise.reject(err)\n else throw(err);\n });\n }\n else {\n return readFileAsync(target, options.encoding || 'utf8')\n .then(function (data) {\n try {\n let context = yaml.parse(data, { schema:'core', prettyErrors: true });\n data = options.externalRef = context;\n /*\n resolutionSource:C from a file, data is fresh but we clone it into the cache\n */\n options.cache[target] = clone(data);\n if (fragment) {\n data = jptr(data, fragment);\n if (data === false) {\n data = {}; /* case:C(2) where the resolution fails */\n if (options.fatal) {\n let ex = new Error('File $ref resolution failed '+target+fragment);\n if (options.promise) options.promise.reject(ex)\n else throw(ex);\n }\n }\n }\n data = resolveAllFragment(data, context, pointer, fragment, target, options);\n data = filterData(data, options);\n }\n catch (ex) {\n if (options.verbose) console.warn(ex);\n if (options.promise && options.fatal) options.promise.reject(ex)\n else throw(ex);\n }\n callback(data, target, options);\n return data;\n })\n .catch(function(err){\n if (options.verbose) console.warn(err);\n if (options.promise && options.fatal) options.promise.reject(err)\n else throw(err);\n });\n }\n}\n\nfunction scanExternalRefs(options) {\n return new Promise(function (res, rej) {\n\n function inner(obj,key,state){\n if (obj[key] && isRef(obj[key],'$ref')) {\n let $ref = obj[key].$ref;\n if (!$ref.startsWith('#')) { // is external\n\n let $extra = '';\n\n if (!refs[$ref]) {\n let potential = Object.keys(refs).find(function(e,i,a){\n return $ref.startsWith(e+'/');\n });\n if (potential) {\n if (options.verbose) console.warn('Found potential subschema at',potential);\n $extra = '/'+($ref.split('#')[1]||'').replace(potential.split('#')[1]||'');\n $extra = $extra.split('/undefined').join(''); // FIXME\n $ref = potential;\n }\n }\n\n if (!refs[$ref]) {\n refs[$ref] = { resolved: false, paths: [], extras:{}, description: obj[key].description };\n }\n if (refs[$ref].resolved) {\n if (options.rewriteRefs) {\n // we've already seen it\n let newRef = refs[$ref].resolvedAt;\n if (options.verbose>1) console.warn('Rewriting ref', $ref, newRef);\n obj[key]['x-miro'] = $ref;\n obj[key].$ref = newRef+$extra; // resolutionCase:C (new string)\n }\n else {\n obj[key] = clone(refs[$ref].data); // resolutionCase:D (cloned:yes)\n }\n }\n else {\n refs[$ref].paths.push(state.path);\n refs[$ref].extras[state.path] = $extra;\n }\n }\n }\n }\n\n let refs = options.externalRefs;\n\n if ((options.resolver.depth>0) && (options.source === options.resolver.base)) {\n // we only need to do any of this when called directly on pass #1\n return res(refs);\n }\n\n recurse(options.openapi.definitions, {identityDetection: true, path: '#/definitions'}, inner);\n recurse(options.openapi.components, {identityDetection: true, path: '#/components'}, inner);\n recurse(options.openapi, {identityDetection: true}, inner);\n\n res(refs);\n });\n}\n\nfunction findExternalRefs(options) {\n return new Promise(function (res, rej) {\n\n scanExternalRefs(options)\n .then(function (refs) {\n for (let ref in refs) {\n\n if (!refs[ref].resolved) {\n let depth = options.resolver.depth;\n if (depth>0) depth++;\n options.resolver.actions[depth].push(function () {\n return resolveExternal(options.openapi, ref, options, function (data, source, options) {\n if (!refs[ref].resolved) {\n let external = {};\n external.context = refs[ref];\n external.$ref = ref;\n external.original = clone(data);\n external.updated = data;\n external.source = source;\n options.externals.push(external);\n refs[ref].resolved = true;\n }\n\n let localOptions = Object.assign({}, options, { source: '',\n resolver: {actions: options.resolver.actions,\n depth: options.resolver.actions.length-1, base: options.resolver.base } });\n if (options.patch && refs[ref].description && !data.description &&\n (typeof data === 'object')) {\n data.description = refs[ref].description;\n }\n refs[ref].data = data;\n\n // sorting $refs by length causes bugs (due to overlapping regions?)\n let pointers = unique(refs[ref].paths);\n pointers = pointers.sort(function(a,b){\n const aComp = (a.startsWith('#/components/') || a.startsWith('#/definitions/'));\n const bComp = (b.startsWith('#/components/') || b.startsWith('#/definitions/'));\n if (aComp && !bComp) return -1;\n if (bComp && !aComp) return +1;\n return 0;\n });\n\n for (let ptr of pointers) {\n // shared x-ms-examples $refs confuse the fixupRefs heuristic in index.js\n if (refs[ref].resolvedAt && (ptr !== refs[ref].resolvedAt) && (ptr.indexOf('x-ms-examples/')<0)) {\n if (options.verbose>1) console.warn('Creating pointer to data at', ptr);\n jptr(options.openapi, ptr, { $ref: refs[ref].resolvedAt+refs[ref].extras[ptr], 'x-miro': ref+refs[ref].extras[ptr] }); // resolutionCase:E (new object)\n }\n else {\n if (refs[ref].resolvedAt) {\n if (options.verbose>1) console.warn('Avoiding circular reference');\n }\n else {\n refs[ref].resolvedAt = ptr;\n if (options.verbose>1) console.warn('Creating initial clone of data at', ptr);\n }\n let cdata = clone(data);\n jptr(options.openapi, ptr, cdata); // resolutionCase:F (cloned:yes)\n }\n }\n if (options.resolver.actions[localOptions.resolver.depth].length === 0) {\n //options.resolver.actions[localOptions.resolver.depth].push(function () { return scanExternalRefs(localOptions) });\n options.resolver.actions[localOptions.resolver.depth].push(function () { return findExternalRefs(localOptions) }); // findExternalRefs calls scanExternalRefs\n }\n });\n });\n }\n }\n })\n .catch(function(ex){\n if (options.verbose) console.warn(ex);\n rej(ex);\n });\n\n let result = {options:options};\n result.actions = options.resolver.actions[options.resolver.depth];\n res(result);\n });\n}\n\nconst serial = funcs =>\n funcs.reduce((promise, func) =>\n promise.then(result => func().then(Array.prototype.concat.bind(result))), Promise.resolve([]));\n\nfunction loopReferences(options, res, rej) {\n options.resolver.actions.push([]);\n findExternalRefs(options)\n .then(function (data) {\n serial(data.actions)\n .then(function () {\n if (options.resolver.depth>=options.resolver.actions.length) {\n console.warn('Ran off the end of resolver actions');\n return res(true);\n } else {\n options.resolver.depth++;\n if (options.resolver.actions[options.resolver.depth].length) {\n setTimeout(function () {\n loopReferences(data.options, res, rej);\n }, 0);\n }\n else {\n if (options.verbose>1) console.warn(common.colour.yellow+'Finished external resolution!',common.colour.normal);\n if (options.resolveInternal) {\n if (options.verbose>1) console.warn(common.colour.yellow+'Starting internal resolution!',common.colour.normal);\n options.openapi = deRef(options.openapi,options.original,{verbose:options.verbose-1});\n if (options.verbose>1) console.warn(common.colour.yellow+'Finished internal resolution!',common.colour.normal);\n }\n recurse(options.openapi,{},function(obj,key,state){\n if (isRef(obj, key)) {\n if (!options.preserveMiro) delete obj['x-miro'];\n }\n });\n res(options);\n }\n }\n })\n .catch(function (ex) {\n if (options.verbose) console.warn(ex);\n rej(ex);\n });\n })\n .catch(function(ex){\n if (options.verbose) console.warn(ex);\n rej(ex);\n });\n}\n\nfunction setupOptions(options) {\n if (!options.cache) options.cache = {};\n if (!options.fetch) options.fetch = fetch;\n\n if (options.source) {\n let srcUrl = url.parse(options.source);\n if (!srcUrl.protocol || srcUrl.protocol.length <= 2) { // windows drive-letters\n options.source = path.resolve(options.source);\n }\n }\n\n if (!options.externals) options.externals = [];\n if (!options.externalRefs) options.externalRefs = {};\n options.rewriteRefs = true;\n options.resolver = {};\n options.resolver.depth = 0;\n options.resolver.base = options.source;\n options.resolver.actions = [[]];\n}\n\n/** compatibility function for swagger2openapi */\nfunction optionalResolve(options) {\n setupOptions(options);\n return new Promise(function (res, rej) {\n if (options.resolve)\n loopReferences(options, res, rej)\n else\n res(options);\n });\n}\n\nfunction resolve(openapi,source,options) {\n if (!options) options = {};\n options.openapi = openapi;\n options.source = source;\n options.resolve = true;\n setupOptions(options);\n return new Promise(function (res, rej) {\n loopReferences(options, res, rej)\n });\n}\n\nmodule.exports = {\n optionalResolve: optionalResolve,\n resolve: resolve\n};\n\n","'use strict';\n\nconst recurse = require('./recurse.js').recurse;\nconst clone = require('./clone.js').shallowClone;\nconst jptr = require('./jptr.js').jptr;\nconst isRef = require('./isref.js').isRef;\n\nvar getLogger = function (options) {\n if (options && options.verbose) {\n return {\n warn: function() {\n var args = Array.prototype.slice.call(arguments);\n console.warn.apply(console, args);\n }\n }\n }\n else {\n return {\n warn: function() {\n //nop\n }\n }\n }\n}\n\n/**\n* dereferences the given object\n* @param o the object to dereference\n* @definitions a source of definitions to reference\n* @options optional settings (used recursively)\n* @return the dereferenced object\n*/\nfunction dereference(o,definitions,options) {\n if (!options) options = {};\n if (!options.cache) options.cache = {};\n if (!options.state) options.state = {};\n options.state.identityDetection = true;\n // options.depth allows us to limit cloning to the first invocation\n options.depth = (options.depth ? options.depth+1 : 1);\n let obj = (options.depth > 1 ? o : clone(o));\n let container = { data: obj };\n let defs = (options.depth > 1 ? definitions : clone(definitions));\n // options.master is the top level object, regardless of depth\n if (!options.master) options.master = obj;\n\n let logger = getLogger(options);\n\n let changes = 1;\n while (changes > 0) {\n changes = 0;\n recurse(container,options.state,function(obj,key,state){\n if (isRef(obj,key)) {\n let $ref = obj[key]; // immutable\n changes++;\n if (!options.cache[$ref]) {\n let entry = {};\n entry.path = state.path.split('/$ref')[0];\n entry.key = $ref;\n logger.warn('Dereffing %s at %s',$ref,entry.path);\n entry.source = defs;\n entry.data = jptr(entry.source,entry.key);\n if (entry.data === false) {\n entry.data = jptr(options.master,entry.key);\n entry.source = options.master;\n }\n if (entry.data === false) {\n logger.warn('Missing $ref target',entry.key);\n }\n options.cache[$ref] = entry;\n entry.data = state.parent[state.pkey] = dereference(jptr(entry.source,entry.key),entry.source,options);\n if ((options.$ref) && (typeof state.parent[state.pkey] === 'object')) state.parent[state.pkey][options.$ref] = $ref;\n entry.resolved = true;\n }\n else {\n let entry = options.cache[$ref];\n if (entry.resolved) {\n // we have already seen and resolved this reference\n logger.warn('Patching %s for %s',$ref,entry.path);\n state.parent[state.pkey] = entry.data;\n if ((options.$ref) && (typeof state.parent[state.pkey] === 'object')) state.parent[state.pkey][options.$ref] = $ref;\n }\n else if ($ref === entry.path) {\n // reference to itself, throw\n throw new Error(`Tight circle at ${entry.path}`);\n }\n else {\n // we're dealing with a circular reference here\n logger.warn('Unresolved ref');\n state.parent[state.pkey] = jptr(entry.source,entry.path);\n if (state.parent[state.pkey] === false) {\n state.parent[state.pkey] = jptr(entry.source,entry.key);\n }\n if ((options.$ref) && (typeof state.parent[state.pkey] === 'object')) state.parent[options.$ref] = $ref;\n }\n }\n }\n });\n }\n return container.data;\n}\n\nmodule.exports = {\n dereference : dereference\n};\n\n","module.exports = require(\"fast-safe-stringify\");","'use strict';\n\n/**\n* functions to walk an OpenAPI schema object and traverse all subschemas\n* calling a callback function on each one\n*/\n\n/**\n* obtains the default starting state for the `state` object used\n* by walkSchema\n* @return the state object suitable for use in walkSchema\n*/\nfunction getDefaultState() {\n return { depth: 0, seen: new WeakMap(), top: true, combine: false, allowRefSiblings: false };\n}\n\n/**\n* begins the walk of a schema object\n* @param parent the parent schema, if any. Use empty object if none\n* @param state the initial starting state of the walker, usually obtained from `getDefaultState`. Use empty object to auto-initialise\n* @param callback a function taking a schema, parent and state to be called on this and all subschemas\n* @return the schema object\n*/\nfunction walkSchema(schema, parent, state, callback) {\n\n if (typeof state.depth === 'undefined') state = getDefaultState();\n if ((schema === null) || (typeof schema === 'undefined')) return schema;\n if (typeof schema.$ref !== 'undefined') {\n let temp = {$ref:schema.$ref};\n if (state.allowRefSiblings && schema.description) {\n temp.description = schema.description;\n }\n callback(temp,parent,state);\n return temp; // all other properties SHALL be ignored\n }\n\n if (state.combine) {\n if (schema.allOf && Array.isArray(schema.allOf) && schema.allOf.length === 1) {\n schema = Object.assign({},schema.allOf[0],schema);\n delete schema.allOf;\n }\n if (schema.anyOf && Array.isArray(schema.anyOf) && schema.anyOf.length === 1) {\n schema = Object.assign({},schema.anyOf[0],schema);\n delete schema.anyOf;\n }\n if (schema.oneOf && Array.isArray(schema.oneOf) && schema.oneOf.length === 1) {\n schema = Object.assign({},schema.oneOf[0],schema);\n delete schema.oneOf;\n }\n }\n\n callback(schema,parent,state);\n if (state.seen.has(schema)) {\n return schema;\n }\n //else\n if ((typeof schema === 'object') && (schema !== null)) state.seen.set(schema,true);\n state.top = false;\n state.depth++;\n\n if (typeof schema.items !== 'undefined') {\n state.property = 'items';\n walkSchema(schema.items,schema,state,callback);\n }\n if (schema.additionalItems) {\n if (typeof schema.additionalItems === 'object') {\n state.property = 'additionalItems';\n walkSchema(schema.additionalItems,schema,state,callback);\n }\n }\n if (schema.additionalProperties) {\n if (typeof schema.additionalProperties === 'object') {\n state.property = 'additionalProperties';\n walkSchema(schema.additionalProperties,schema,state,callback);\n }\n }\n if (schema.properties) {\n for (let prop in schema.properties) {\n let subSchema = schema.properties[prop];\n state.property = 'properties/'+prop;\n walkSchema(subSchema,schema,state,callback);\n }\n }\n if (schema.patternProperties) {\n for (let prop in schema.patternProperties) {\n let subSchema = schema.patternProperties[prop];\n state.property = 'patternProperties/'+prop;\n walkSchema(subSchema,schema,state,callback);\n }\n }\n if (schema.allOf) {\n for (let index in schema.allOf) {\n let subSchema = schema.allOf[index];\n state.property = 'allOf/'+index;\n walkSchema(subSchema,schema,state,callback);\n }\n }\n if (schema.anyOf) {\n for (let index in schema.anyOf) {\n let subSchema = schema.anyOf[index];\n state.property = 'anyOf/'+index;\n walkSchema(subSchema,schema,state,callback);\n }\n }\n if (schema.oneOf) {\n for (let index in schema.oneOf) {\n let subSchema = schema.oneOf[index];\n state.property = 'oneOf/'+index;\n walkSchema(subSchema,schema,state,callback);\n }\n }\n if (schema.not) {\n state.property = 'not';\n walkSchema(schema.not,schema,state,callback);\n }\n state.depth--;\n return schema;\n}\n\nmodule.exports = {\n getDefaultState: getDefaultState,\n walkSchema: walkSchema\n};\n\n","'use strict';\n\nconst http = require('http');\n\nconst ours = {\n \"default\": \"Default response\",\n \"1XX\": \"Informational\",\n \"103\": \"Early hints\", // not in Node < 10\n \"2XX\": \"Successful\",\n \"3XX\": \"Redirection\",\n \"4XX\": \"Client Error\",\n \"5XX\": \"Server Error\",\n \"7XX\": \"Developer Error\" // April fools RFC\n};\n\nmodule.exports = {\n statusCodes: Object.assign({},ours,http.STATUS_CODES)\n};\n\n","var ClientRequest = require('./lib/request')\nvar response = require('./lib/response')\nvar extend = require('xtend')\nvar statusCodes = require('builtin-status-codes')\nvar url = require('url')\n\nvar http = exports\n\nhttp.request = function (opts, cb) {\n\tif (typeof opts === 'string')\n\t\topts = url.parse(opts)\n\telse\n\t\topts = extend(opts)\n\n\t// Normally, the page is loaded from http or https, so not specifying a protocol\n\t// will result in a (valid) protocol-relative url. However, this won't work if\n\t// the protocol is something else, like 'file:'\n\tvar defaultProtocol = global.location.protocol.search(/^https?:$/) === -1 ? 'http:' : ''\n\n\tvar protocol = opts.protocol || defaultProtocol\n\tvar host = opts.hostname || opts.host\n\tvar port = opts.port\n\tvar path = opts.path || '/'\n\n\t// Necessary for IPv6 addresses\n\tif (host && host.indexOf(':') !== -1)\n\t\thost = '[' + host + ']'\n\n\t// This may be a relative url. The browser should always be able to interpret it correctly.\n\topts.url = (host ? (protocol + '//' + host) : '') + (port ? ':' + port : '') + path\n\topts.method = (opts.method || 'GET').toUpperCase()\n\topts.headers = opts.headers || {}\n\n\t// Also valid opts.auth, opts.mode\n\n\tvar req = new ClientRequest(opts)\n\tif (cb)\n\t\treq.on('response', cb)\n\treturn req\n}\n\nhttp.get = function get (opts, cb) {\n\tvar req = http.request(opts, cb)\n\treq.end()\n\treturn req\n}\n\nhttp.ClientRequest = ClientRequest\nhttp.IncomingMessage = response.IncomingMessage\n\nhttp.Agent = function () {}\nhttp.Agent.defaultMaxSockets = 4\n\nhttp.globalAgent = new http.Agent()\n\nhttp.STATUS_CODES = statusCodes\n\nhttp.METHODS = [\n\t'CHECKOUT',\n\t'CONNECT',\n\t'COPY',\n\t'DELETE',\n\t'GET',\n\t'HEAD',\n\t'LOCK',\n\t'M-SEARCH',\n\t'MERGE',\n\t'MKACTIVITY',\n\t'MKCOL',\n\t'MOVE',\n\t'NOTIFY',\n\t'OPTIONS',\n\t'PATCH',\n\t'POST',\n\t'PROPFIND',\n\t'PROPPATCH',\n\t'PURGE',\n\t'PUT',\n\t'REPORT',\n\t'SEARCH',\n\t'SUBSCRIBE',\n\t'TRACE',\n\t'UNLOCK',\n\t'UNSUBSCRIBE'\n]","var capability = require('./capability')\nvar inherits = require('inherits')\nvar response = require('./response')\nvar stream = require('readable-stream')\nvar toArrayBuffer = require('to-arraybuffer')\n\nvar IncomingMessage = response.IncomingMessage\nvar rStates = response.readyStates\n\nfunction decideMode (preferBinary, useFetch) {\n\tif (capability.fetch && useFetch) {\n\t\treturn 'fetch'\n\t} else if (capability.mozchunkedarraybuffer) {\n\t\treturn 'moz-chunked-arraybuffer'\n\t} else if (capability.msstream) {\n\t\treturn 'ms-stream'\n\t} else if (capability.arraybuffer && preferBinary) {\n\t\treturn 'arraybuffer'\n\t} else if (capability.vbArray && preferBinary) {\n\t\treturn 'text:vbarray'\n\t} else {\n\t\treturn 'text'\n\t}\n}\n\nvar ClientRequest = module.exports = function (opts) {\n\tvar self = this\n\tstream.Writable.call(self)\n\n\tself._opts = opts\n\tself._body = []\n\tself._headers = {}\n\tif (opts.auth)\n\t\tself.setHeader('Authorization', 'Basic ' + new Buffer(opts.auth).toString('base64'))\n\tObject.keys(opts.headers).forEach(function (name) {\n\t\tself.setHeader(name, opts.headers[name])\n\t})\n\n\tvar preferBinary\n\tvar useFetch = true\n\tif (opts.mode === 'disable-fetch' || ('requestTimeout' in opts && !capability.abortController)) {\n\t\t// If the use of XHR should be preferred. Not typically needed.\n\t\tuseFetch = false\n\t\tpreferBinary = true\n\t} else if (opts.mode === 'prefer-streaming') {\n\t\t// If streaming is a high priority but binary compatibility and\n\t\t// the accuracy of the 'content-type' header aren't\n\t\tpreferBinary = false\n\t} else if (opts.mode === 'allow-wrong-content-type') {\n\t\t// If streaming is more important than preserving the 'content-type' header\n\t\tpreferBinary = !capability.overrideMimeType\n\t} else if (!opts.mode || opts.mode === 'default' || opts.mode === 'prefer-fast') {\n\t\t// Use binary if text streaming may corrupt data or the content-type header, or for speed\n\t\tpreferBinary = true\n\t} else {\n\t\tthrow new Error('Invalid value for opts.mode')\n\t}\n\tself._mode = decideMode(preferBinary, useFetch)\n\tself._fetchTimer = null\n\n\tself.on('finish', function () {\n\t\tself._onFinish()\n\t})\n}\n\ninherits(ClientRequest, stream.Writable)\n\nClientRequest.prototype.setHeader = function (name, value) {\n\tvar self = this\n\tvar lowerName = name.toLowerCase()\n\t// This check is not necessary, but it prevents warnings from browsers about setting unsafe\n\t// headers. To be honest I'm not entirely sure hiding these warnings is a good thing, but\n\t// http-browserify did it, so I will too.\n\tif (unsafeHeaders.indexOf(lowerName) !== -1)\n\t\treturn\n\n\tself._headers[lowerName] = {\n\t\tname: name,\n\t\tvalue: value\n\t}\n}\n\nClientRequest.prototype.getHeader = function (name) {\n\tvar header = this._headers[name.toLowerCase()]\n\tif (header)\n\t\treturn header.value\n\treturn null\n}\n\nClientRequest.prototype.removeHeader = function (name) {\n\tvar self = this\n\tdelete self._headers[name.toLowerCase()]\n}\n\nClientRequest.prototype._onFinish = function () {\n\tvar self = this\n\n\tif (self._destroyed)\n\t\treturn\n\tvar opts = self._opts\n\n\tvar headersObj = self._headers\n\tvar body = null\n\tif (opts.method !== 'GET' && opts.method !== 'HEAD') {\n\t\tif (capability.arraybuffer) {\n\t\t\tbody = toArrayBuffer(Buffer.concat(self._body))\n\t\t} else if (capability.blobConstructor) {\n\t\t\tbody = new global.Blob(self._body.map(function (buffer) {\n\t\t\t\treturn toArrayBuffer(buffer)\n\t\t\t}), {\n\t\t\t\ttype: (headersObj['content-type'] || {}).value || ''\n\t\t\t})\n\t\t} else {\n\t\t\t// get utf8 string\n\t\t\tbody = Buffer.concat(self._body).toString()\n\t\t}\n\t}\n\n\t// create flattened list of headers\n\tvar headersList = []\n\tObject.keys(headersObj).forEach(function (keyName) {\n\t\tvar name = headersObj[keyName].name\n\t\tvar value = headersObj[keyName].value\n\t\tif (Array.isArray(value)) {\n\t\t\tvalue.forEach(function (v) {\n\t\t\t\theadersList.push([name, v])\n\t\t\t})\n\t\t} else {\n\t\t\theadersList.push([name, value])\n\t\t}\n\t})\n\n\tif (self._mode === 'fetch') {\n\t\tvar signal = null\n\t\tvar fetchTimer = null\n\t\tif (capability.abortController) {\n\t\t\tvar controller = new AbortController()\n\t\t\tsignal = controller.signal\n\t\t\tself._fetchAbortController = controller\n\n\t\t\tif ('requestTimeout' in opts && opts.requestTimeout !== 0) {\n\t\t\t\tself._fetchTimer = global.setTimeout(function () {\n\t\t\t\t\tself.emit('requestTimeout')\n\t\t\t\t\tif (self._fetchAbortController)\n\t\t\t\t\t\tself._fetchAbortController.abort()\n\t\t\t\t}, opts.requestTimeout)\n\t\t\t}\n\t\t}\n\n\t\tglobal.fetch(self._opts.url, {\n\t\t\tmethod: self._opts.method,\n\t\t\theaders: headersList,\n\t\t\tbody: body || undefined,\n\t\t\tmode: 'cors',\n\t\t\tcredentials: opts.withCredentials ? 'include' : 'same-origin',\n\t\t\tsignal: signal\n\t\t}).then(function (response) {\n\t\t\tself._fetchResponse = response\n\t\t\tself._connect()\n\t\t}, function (reason) {\n\t\t\tglobal.clearTimeout(self._fetchTimer)\n\t\t\tif (!self._destroyed)\n\t\t\t\tself.emit('error', reason)\n\t\t})\n\t} else {\n\t\tvar xhr = self._xhr = new global.XMLHttpRequest()\n\t\ttry {\n\t\t\txhr.open(self._opts.method, self._opts.url, true)\n\t\t} catch (err) {\n\t\t\tprocess.nextTick(function () {\n\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\n\t\t// Can't set responseType on really old browsers\n\t\tif ('responseType' in xhr)\n\t\t\txhr.responseType = self._mode.split(':')[0]\n\n\t\tif ('withCredentials' in xhr)\n\t\t\txhr.withCredentials = !!opts.withCredentials\n\n\t\tif (self._mode === 'text' && 'overrideMimeType' in xhr)\n\t\t\txhr.overrideMimeType('text/plain; charset=x-user-defined')\n\n\t\tif ('requestTimeout' in opts) {\n\t\t\txhr.timeout = opts.requestTimeout\n\t\t\txhr.ontimeout = function () {\n\t\t\t\tself.emit('requestTimeout')\n\t\t\t}\n\t\t}\n\n\t\theadersList.forEach(function (header) {\n\t\t\txhr.setRequestHeader(header[0], header[1])\n\t\t})\n\n\t\tself._response = null\n\t\txhr.onreadystatechange = function () {\n\t\t\tswitch (xhr.readyState) {\n\t\t\t\tcase rStates.LOADING:\n\t\t\t\tcase rStates.DONE:\n\t\t\t\t\tself._onXHRProgress()\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// Necessary for streaming in Firefox, since xhr.response is ONLY defined\n\t\t// in onprogress, not in onreadystatechange with xhr.readyState = 3\n\t\tif (self._mode === 'moz-chunked-arraybuffer') {\n\t\t\txhr.onprogress = function () {\n\t\t\t\tself._onXHRProgress()\n\t\t\t}\n\t\t}\n\n\t\txhr.onerror = function () {\n\t\t\tif (self._destroyed)\n\t\t\t\treturn\n\t\t\tself.emit('error', new Error('XHR error'))\n\t\t}\n\n\t\ttry {\n\t\t\txhr.send(body)\n\t\t} catch (err) {\n\t\t\tprocess.nextTick(function () {\n\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\t}\n}\n\n/**\n * Checks if xhr.status is readable and non-zero, indicating no error.\n * Even though the spec says it should be available in readyState 3,\n * accessing it throws an exception in IE8\n */\nfunction statusValid (xhr) {\n\ttry {\n\t\tvar status = xhr.status\n\t\treturn (status !== null && status !== 0)\n\t} catch (e) {\n\t\treturn false\n\t}\n}\n\nClientRequest.prototype._onXHRProgress = function () {\n\tvar self = this\n\n\tif (!statusValid(self._xhr) || self._destroyed)\n\t\treturn\n\n\tif (!self._response)\n\t\tself._connect()\n\n\tself._response._onXHRProgress()\n}\n\nClientRequest.prototype._connect = function () {\n\tvar self = this\n\n\tif (self._destroyed)\n\t\treturn\n\n\tself._response = new IncomingMessage(self._xhr, self._fetchResponse, self._mode, self._fetchTimer)\n\tself._response.on('error', function(err) {\n\t\tself.emit('error', err)\n\t})\n\n\tself.emit('response', self._response)\n}\n\nClientRequest.prototype._write = function (chunk, encoding, cb) {\n\tvar self = this\n\n\tself._body.push(chunk)\n\tcb()\n}\n\nClientRequest.prototype.abort = ClientRequest.prototype.destroy = function () {\n\tvar self = this\n\tself._destroyed = true\n\tglobal.clearTimeout(self._fetchTimer)\n\tif (self._response)\n\t\tself._response._destroyed = true\n\tif (self._xhr)\n\t\tself._xhr.abort()\n\telse if (self._fetchAbortController)\n\t\tself._fetchAbortController.abort()\n}\n\nClientRequest.prototype.end = function (data, encoding, cb) {\n\tvar self = this\n\tif (typeof data === 'function') {\n\t\tcb = data\n\t\tdata = undefined\n\t}\n\n\tstream.Writable.prototype.end.call(self, data, encoding, cb)\n}\n\nClientRequest.prototype.flushHeaders = function () {}\nClientRequest.prototype.setTimeout = function () {}\nClientRequest.prototype.setNoDelay = function () {}\nClientRequest.prototype.setSocketKeepAlive = function () {}\n\n// Taken from http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader%28%29-method\nvar unsafeHeaders = [\n\t'accept-charset',\n\t'accept-encoding',\n\t'access-control-request-headers',\n\t'access-control-request-method',\n\t'connection',\n\t'content-length',\n\t'cookie',\n\t'cookie2',\n\t'date',\n\t'dnt',\n\t'expect',\n\t'host',\n\t'keep-alive',\n\t'origin',\n\t'referer',\n\t'te',\n\t'trailer',\n\t'transfer-encoding',\n\t'upgrade',\n\t'via'\n]\n","module.exports = require(\"base64-js\");","module.exports = require(\"ieee754\");","module.exports = require(\"isarray\");","module.exports = require(\"to-arraybuffer\");","module.exports = require(\"xtend\");","module.exports = require(\"builtin-status-codes\");","module.exports = require(\"prismjs/components/prism-bash.js\");","module.exports = require(\"prismjs/components/prism-c.js\");","module.exports = require(\"prismjs/components/prism-clike.js\");","module.exports = require(\"prismjs/components/prism-coffeescript.js\");","module.exports = require(\"prismjs/components/prism-cpp.js\");","module.exports = require(\"prismjs/components/prism-csharp.js\");","module.exports = require(\"prismjs/components/prism-go.js\");","module.exports = require(\"prismjs/components/prism-http.js\");","module.exports = require(\"prismjs/components/prism-java.js\");","module.exports = require(\"prismjs/components/prism-lua.js\");","module.exports = require(\"prismjs/components/prism-markup-templating.js\");","module.exports = require(\"prismjs/components/prism-markup.js\");","module.exports = require(\"prismjs/components/prism-objectivec.js\");","module.exports = require(\"prismjs/components/prism-perl.js\");","module.exports = require(\"prismjs/components/prism-php.js\");","module.exports = require(\"prismjs/components/prism-python.js\");","module.exports = require(\"prismjs/components/prism-ruby.js\");","module.exports = require(\"prismjs/components/prism-scala.js\");","module.exports = require(\"prismjs/components/prism-sql.js\");","module.exports = require(\"prismjs/components/prism-swift.js\");","\n\t\t\t\tvar addMethods = require(\"../../node_modules/workerize-loader/dist/rpc-wrapper.js\")\n\t\t\t\tvar methods = [\"add\",\"done\",\"toJS\",\"load\",\"dispose\",\"search\"]\n\t\t\t\tmodule.exports = function() {\n\t\t\t\t\tvar w = new Worker(URL.createObjectURL(new Blob([\"/*!\\n * ReDoc - OpenAPI/Swagger-generated API Reference Documentation\\n * -------------------------------------------------------------\\n * Version: \\\"2.0.0-rc.37\\\"\\n * Repo: https://github.com/Redocly/redoc\\n */\\n/******/ (function(modules) { // webpackBootstrap\\n/******/ \\t// The module cache\\n/******/ \\tvar installedModules = {};\\n/******/\\n/******/ \\t// The require function\\n/******/ \\tfunction __webpack_require__(moduleId) {\\n/******/\\n/******/ \\t\\t// Check if module is in cache\\n/******/ \\t\\tif(installedModules[moduleId]) {\\n/******/ \\t\\t\\treturn installedModules[moduleId].exports;\\n/******/ \\t\\t}\\n/******/ \\t\\t// Create a new module (and put it into the cache)\\n/******/ \\t\\tvar module = installedModules[moduleId] = {\\n/******/ \\t\\t\\ti: moduleId,\\n/******/ \\t\\t\\tl: false,\\n/******/ \\t\\t\\texports: {}\\n/******/ \\t\\t};\\n/******/\\n/******/ \\t\\t// Execute the module function\\n/******/ \\t\\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\\n/******/\\n/******/ \\t\\t// Flag the module as loaded\\n/******/ \\t\\tmodule.l = true;\\n/******/\\n/******/ \\t\\t// Return the exports of the module\\n/******/ \\t\\treturn module.exports;\\n/******/ \\t}\\n/******/\\n/******/\\n/******/ \\t// expose the modules object (__webpack_modules__)\\n/******/ \\t__webpack_require__.m = modules;\\n/******/\\n/******/ \\t// expose the module cache\\n/******/ \\t__webpack_require__.c = installedModules;\\n/******/\\n/******/ \\t// define getter function for harmony exports\\n/******/ \\t__webpack_require__.d = function(exports, name, getter) {\\n/******/ \\t\\tif(!__webpack_require__.o(exports, name)) {\\n/******/ \\t\\t\\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\\n/******/ \\t\\t}\\n/******/ \\t};\\n/******/\\n/******/ \\t// define __esModule on exports\\n/******/ \\t__webpack_require__.r = function(exports) {\\n/******/ \\t\\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\\n/******/ \\t\\t\\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\\n/******/ \\t\\t}\\n/******/ \\t\\tObject.defineProperty(exports, '__esModule', { value: true });\\n/******/ \\t};\\n/******/\\n/******/ \\t// create a fake namespace object\\n/******/ \\t// mode & 1: value is a module id, require it\\n/******/ \\t// mode & 2: merge all properties of value into the ns\\n/******/ \\t// mode & 4: return value when already ns object\\n/******/ \\t// mode & 8|1: behave like require\\n/******/ \\t__webpack_require__.t = function(value, mode) {\\n/******/ \\t\\tif(mode & 1) value = __webpack_require__(value);\\n/******/ \\t\\tif(mode & 8) return value;\\n/******/ \\t\\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\\n/******/ \\t\\tvar ns = Object.create(null);\\n/******/ \\t\\t__webpack_require__.r(ns);\\n/******/ \\t\\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\\n/******/ \\t\\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\\n/******/ \\t\\treturn ns;\\n/******/ \\t};\\n/******/\\n/******/ \\t// getDefaultExport function for compatibility with non-harmony modules\\n/******/ \\t__webpack_require__.n = function(module) {\\n/******/ \\t\\tvar getter = module && module.__esModule ?\\n/******/ \\t\\t\\tfunction getDefault() { return module['default']; } :\\n/******/ \\t\\t\\tfunction getModuleExports() { return module; };\\n/******/ \\t\\t__webpack_require__.d(getter, 'a', getter);\\n/******/ \\t\\treturn getter;\\n/******/ \\t};\\n/******/\\n/******/ \\t// Object.prototype.hasOwnProperty.call\\n/******/ \\t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\\n/******/\\n/******/ \\t// __webpack_public_path__\\n/******/ \\t__webpack_require__.p = \\\"\\\";\\n/******/\\n/******/\\n/******/ \\t// Load entry module and return exports\\n/******/ \\treturn __webpack_require__(__webpack_require__.s = 97);\\n/******/ })\\n/************************************************************************/\\n/******/ ([\\n/* 0 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n/* WEBPACK VAR INJECTION */(function(global) {var check = function (it) {\\n return it && it.Math == Math && it;\\n};\\n\\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\\nmodule.exports =\\n // eslint-disable-next-line no-undef\\n check(typeof globalThis == 'object' && globalThis) ||\\n check(typeof window == 'object' && window) ||\\n check(typeof self == 'object' && self) ||\\n check(typeof global == 'object' && global) ||\\n // eslint-disable-next-line no-new-func\\n Function('return this')();\\n\\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(59)))\\n\\n/***/ }),\\n/* 1 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar shared = __webpack_require__(32);\\nvar has = __webpack_require__(3);\\nvar uid = __webpack_require__(36);\\nvar NATIVE_SYMBOL = __webpack_require__(37);\\nvar USE_SYMBOL_AS_UID = __webpack_require__(60);\\n\\nvar WellKnownSymbolsStore = shared('wks');\\nvar Symbol = global.Symbol;\\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\\n\\nmodule.exports = function (name) {\\n if (!has(WellKnownSymbolsStore, name)) {\\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\\n } return WellKnownSymbolsStore[name];\\n};\\n\\n\\n/***/ }),\\n/* 2 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar isObject = __webpack_require__(7);\\n\\nmodule.exports = function (it) {\\n if (!isObject(it)) {\\n throw TypeError(String(it) + ' is not an object');\\n } return it;\\n};\\n\\n\\n/***/ }),\\n/* 3 */\\n/***/ (function(module, exports) {\\n\\nvar hasOwnProperty = {}.hasOwnProperty;\\n\\nmodule.exports = function (it, key) {\\n return hasOwnProperty.call(it, key);\\n};\\n\\n\\n/***/ }),\\n/* 4 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\\n * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.8\\n * Copyright (C) 2019 Oliver Nightingale\\n * @license MIT\\n */\\n\\n;(function(){\\n\\n/**\\n * A convenience function for configuring and constructing\\n * a new lunr Index.\\n *\\n * A lunr.Builder instance is created and the pipeline setup\\n * with a trimmer, stop word filter and stemmer.\\n *\\n * This builder object is yielded to the configuration function\\n * that is passed as a parameter, allowing the list of fields\\n * and other builder parameters to be customised.\\n *\\n * All documents _must_ be added within the passed config function.\\n *\\n * @example\\n * var idx = lunr(function () {\\n * this.field('title')\\n * this.field('body')\\n * this.ref('id')\\n *\\n * documents.forEach(function (doc) {\\n * this.add(doc)\\n * }, this)\\n * })\\n *\\n * @see {@link lunr.Builder}\\n * @see {@link lunr.Pipeline}\\n * @see {@link lunr.trimmer}\\n * @see {@link lunr.stopWordFilter}\\n * @see {@link lunr.stemmer}\\n * @namespace {function} lunr\\n */\\nvar lunr = function (config) {\\n var builder = new lunr.Builder\\n\\n builder.pipeline.add(\\n lunr.trimmer,\\n lunr.stopWordFilter,\\n lunr.stemmer\\n )\\n\\n builder.searchPipeline.add(\\n lunr.stemmer\\n )\\n\\n config.call(builder, builder)\\n return builder.build()\\n}\\n\\nlunr.version = \\\"2.3.8\\\"\\n/*!\\n * lunr.utils\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * A namespace containing utils for the rest of the lunr library\\n * @namespace lunr.utils\\n */\\nlunr.utils = {}\\n\\n/**\\n * Print a warning message to the console.\\n *\\n * @param {String} message The message to be printed.\\n * @memberOf lunr.utils\\n * @function\\n */\\nlunr.utils.warn = (function (global) {\\n /* eslint-disable no-console */\\n return function (message) {\\n if (global.console && console.warn) {\\n console.warn(message)\\n }\\n }\\n /* eslint-enable no-console */\\n})(this)\\n\\n/**\\n * Convert an object to a string.\\n *\\n * In the case of `null` and `undefined` the function returns\\n * the empty string, in all other cases the result of calling\\n * `toString` on the passed object is returned.\\n *\\n * @param {Any} obj The object to convert to a string.\\n * @return {String} string representation of the passed object.\\n * @memberOf lunr.utils\\n */\\nlunr.utils.asString = function (obj) {\\n if (obj === void 0 || obj === null) {\\n return \\\"\\\"\\n } else {\\n return obj.toString()\\n }\\n}\\n\\n/**\\n * Clones an object.\\n *\\n * Will create a copy of an existing object such that any mutations\\n * on the copy cannot affect the original.\\n *\\n * Only shallow objects are supported, passing a nested object to this\\n * function will cause a TypeError.\\n *\\n * Objects with primitives, and arrays of primitives are supported.\\n *\\n * @param {Object} obj The object to clone.\\n * @return {Object} a clone of the passed object.\\n * @throws {TypeError} when a nested object is passed.\\n * @memberOf Utils\\n */\\nlunr.utils.clone = function (obj) {\\n if (obj === null || obj === undefined) {\\n return obj\\n }\\n\\n var clone = Object.create(null),\\n keys = Object.keys(obj)\\n\\n for (var i = 0; i < keys.length; i++) {\\n var key = keys[i],\\n val = obj[key]\\n\\n if (Array.isArray(val)) {\\n clone[key] = val.slice()\\n continue\\n }\\n\\n if (typeof val === 'string' ||\\n typeof val === 'number' ||\\n typeof val === 'boolean') {\\n clone[key] = val\\n continue\\n }\\n\\n throw new TypeError(\\\"clone is not deep and does not support nested objects\\\")\\n }\\n\\n return clone\\n}\\nlunr.FieldRef = function (docRef, fieldName, stringValue) {\\n this.docRef = docRef\\n this.fieldName = fieldName\\n this._stringValue = stringValue\\n}\\n\\nlunr.FieldRef.joiner = \\\"/\\\"\\n\\nlunr.FieldRef.fromString = function (s) {\\n var n = s.indexOf(lunr.FieldRef.joiner)\\n\\n if (n === -1) {\\n throw \\\"malformed field ref string\\\"\\n }\\n\\n var fieldRef = s.slice(0, n),\\n docRef = s.slice(n + 1)\\n\\n return new lunr.FieldRef (docRef, fieldRef, s)\\n}\\n\\nlunr.FieldRef.prototype.toString = function () {\\n if (this._stringValue == undefined) {\\n this._stringValue = this.fieldName + lunr.FieldRef.joiner + this.docRef\\n }\\n\\n return this._stringValue\\n}\\n/*!\\n * lunr.Set\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * A lunr set.\\n *\\n * @constructor\\n */\\nlunr.Set = function (elements) {\\n this.elements = Object.create(null)\\n\\n if (elements) {\\n this.length = elements.length\\n\\n for (var i = 0; i < this.length; i++) {\\n this.elements[elements[i]] = true\\n }\\n } else {\\n this.length = 0\\n }\\n}\\n\\n/**\\n * A complete set that contains all elements.\\n *\\n * @static\\n * @readonly\\n * @type {lunr.Set}\\n */\\nlunr.Set.complete = {\\n intersect: function (other) {\\n return other\\n },\\n\\n union: function (other) {\\n return other\\n },\\n\\n contains: function () {\\n return true\\n }\\n}\\n\\n/**\\n * An empty set that contains no elements.\\n *\\n * @static\\n * @readonly\\n * @type {lunr.Set}\\n */\\nlunr.Set.empty = {\\n intersect: function () {\\n return this\\n },\\n\\n union: function (other) {\\n return other\\n },\\n\\n contains: function () {\\n return false\\n }\\n}\\n\\n/**\\n * Returns true if this set contains the specified object.\\n *\\n * @param {object} object - Object whose presence in this set is to be tested.\\n * @returns {boolean} - True if this set contains the specified object.\\n */\\nlunr.Set.prototype.contains = function (object) {\\n return !!this.elements[object]\\n}\\n\\n/**\\n * Returns a new set containing only the elements that are present in both\\n * this set and the specified set.\\n *\\n * @param {lunr.Set} other - set to intersect with this set.\\n * @returns {lunr.Set} a new set that is the intersection of this and the specified set.\\n */\\n\\nlunr.Set.prototype.intersect = function (other) {\\n var a, b, elements, intersection = []\\n\\n if (other === lunr.Set.complete) {\\n return this\\n }\\n\\n if (other === lunr.Set.empty) {\\n return other\\n }\\n\\n if (this.length < other.length) {\\n a = this\\n b = other\\n } else {\\n a = other\\n b = this\\n }\\n\\n elements = Object.keys(a.elements)\\n\\n for (var i = 0; i < elements.length; i++) {\\n var element = elements[i]\\n if (element in b.elements) {\\n intersection.push(element)\\n }\\n }\\n\\n return new lunr.Set (intersection)\\n}\\n\\n/**\\n * Returns a new set combining the elements of this and the specified set.\\n *\\n * @param {lunr.Set} other - set to union with this set.\\n * @return {lunr.Set} a new set that is the union of this and the specified set.\\n */\\n\\nlunr.Set.prototype.union = function (other) {\\n if (other === lunr.Set.complete) {\\n return lunr.Set.complete\\n }\\n\\n if (other === lunr.Set.empty) {\\n return this\\n }\\n\\n return new lunr.Set(Object.keys(this.elements).concat(Object.keys(other.elements)))\\n}\\n/**\\n * A function to calculate the inverse document frequency for\\n * a posting. This is shared between the builder and the index\\n *\\n * @private\\n * @param {object} posting - The posting for a given term\\n * @param {number} documentCount - The total number of documents.\\n */\\nlunr.idf = function (posting, documentCount) {\\n var documentsWithTerm = 0\\n\\n for (var fieldName in posting) {\\n if (fieldName == '_index') continue // Ignore the term index, its not a field\\n documentsWithTerm += Object.keys(posting[fieldName]).length\\n }\\n\\n var x = (documentCount - documentsWithTerm + 0.5) / (documentsWithTerm + 0.5)\\n\\n return Math.log(1 + Math.abs(x))\\n}\\n\\n/**\\n * A token wraps a string representation of a token\\n * as it is passed through the text processing pipeline.\\n *\\n * @constructor\\n * @param {string} [str=''] - The string token being wrapped.\\n * @param {object} [metadata={}] - Metadata associated with this token.\\n */\\nlunr.Token = function (str, metadata) {\\n this.str = str || \\\"\\\"\\n this.metadata = metadata || {}\\n}\\n\\n/**\\n * Returns the token string that is being wrapped by this object.\\n *\\n * @returns {string}\\n */\\nlunr.Token.prototype.toString = function () {\\n return this.str\\n}\\n\\n/**\\n * A token update function is used when updating or optionally\\n * when cloning a token.\\n *\\n * @callback lunr.Token~updateFunction\\n * @param {string} str - The string representation of the token.\\n * @param {Object} metadata - All metadata associated with this token.\\n */\\n\\n/**\\n * Applies the given function to the wrapped string token.\\n *\\n * @example\\n * token.update(function (str, metadata) {\\n * return str.toUpperCase()\\n * })\\n *\\n * @param {lunr.Token~updateFunction} fn - A function to apply to the token string.\\n * @returns {lunr.Token}\\n */\\nlunr.Token.prototype.update = function (fn) {\\n this.str = fn(this.str, this.metadata)\\n return this\\n}\\n\\n/**\\n * Creates a clone of this token. Optionally a function can be\\n * applied to the cloned token.\\n *\\n * @param {lunr.Token~updateFunction} [fn] - An optional function to apply to the cloned token.\\n * @returns {lunr.Token}\\n */\\nlunr.Token.prototype.clone = function (fn) {\\n fn = fn || function (s) { return s }\\n return new lunr.Token (fn(this.str, this.metadata), this.metadata)\\n}\\n/*!\\n * lunr.tokenizer\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * A function for splitting a string into tokens ready to be inserted into\\n * the search index. Uses `lunr.tokenizer.separator` to split strings, change\\n * the value of this property to change how strings are split into tokens.\\n *\\n * This tokenizer will convert its parameter to a string by calling `toString` and\\n * then will split this string on the character in `lunr.tokenizer.separator`.\\n * Arrays will have their elements converted to strings and wrapped in a lunr.Token.\\n *\\n * Optional metadata can be passed to the tokenizer, this metadata will be cloned and\\n * added as metadata to every token that is created from the object to be tokenized.\\n *\\n * @static\\n * @param {?(string|object|object[])} obj - The object to convert into tokens\\n * @param {?object} metadata - Optional metadata to associate with every token\\n * @returns {lunr.Token[]}\\n * @see {@link lunr.Pipeline}\\n */\\nlunr.tokenizer = function (obj, metadata) {\\n if (obj == null || obj == undefined) {\\n return []\\n }\\n\\n if (Array.isArray(obj)) {\\n return obj.map(function (t) {\\n return new lunr.Token(\\n lunr.utils.asString(t).toLowerCase(),\\n lunr.utils.clone(metadata)\\n )\\n })\\n }\\n\\n var str = obj.toString().toLowerCase(),\\n len = str.length,\\n tokens = []\\n\\n for (var sliceEnd = 0, sliceStart = 0; sliceEnd <= len; sliceEnd++) {\\n var char = str.charAt(sliceEnd),\\n sliceLength = sliceEnd - sliceStart\\n\\n if ((char.match(lunr.tokenizer.separator) || sliceEnd == len)) {\\n\\n if (sliceLength > 0) {\\n var tokenMetadata = lunr.utils.clone(metadata) || {}\\n tokenMetadata[\\\"position\\\"] = [sliceStart, sliceLength]\\n tokenMetadata[\\\"index\\\"] = tokens.length\\n\\n tokens.push(\\n new lunr.Token (\\n str.slice(sliceStart, sliceEnd),\\n tokenMetadata\\n )\\n )\\n }\\n\\n sliceStart = sliceEnd + 1\\n }\\n\\n }\\n\\n return tokens\\n}\\n\\n/**\\n * The separator used to split a string into tokens. Override this property to change the behaviour of\\n * `lunr.tokenizer` behaviour when tokenizing strings. By default this splits on whitespace and hyphens.\\n *\\n * @static\\n * @see lunr.tokenizer\\n */\\nlunr.tokenizer.separator = /[\\\\s\\\\-]+/\\n/*!\\n * lunr.Pipeline\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * lunr.Pipelines maintain an ordered list of functions to be applied to all\\n * tokens in documents entering the search index and queries being ran against\\n * the index.\\n *\\n * An instance of lunr.Index created with the lunr shortcut will contain a\\n * pipeline with a stop word filter and an English language stemmer. Extra\\n * functions can be added before or after either of these functions or these\\n * default functions can be removed.\\n *\\n * When run the pipeline will call each function in turn, passing a token, the\\n * index of that token in the original list of all tokens and finally a list of\\n * all the original tokens.\\n *\\n * The output of functions in the pipeline will be passed to the next function\\n * in the pipeline. To exclude a token from entering the index the function\\n * should return undefined, the rest of the pipeline will not be called with\\n * this token.\\n *\\n * For serialisation of pipelines to work, all functions used in an instance of\\n * a pipeline should be registered with lunr.Pipeline. Registered functions can\\n * then be loaded. If trying to load a serialised pipeline that uses functions\\n * that are not registered an error will be thrown.\\n *\\n * If not planning on serialising the pipeline then registering pipeline functions\\n * is not necessary.\\n *\\n * @constructor\\n */\\nlunr.Pipeline = function () {\\n this._stack = []\\n}\\n\\nlunr.Pipeline.registeredFunctions = Object.create(null)\\n\\n/**\\n * A pipeline function maps lunr.Token to lunr.Token. A lunr.Token contains the token\\n * string as well as all known metadata. A pipeline function can mutate the token string\\n * or mutate (or add) metadata for a given token.\\n *\\n * A pipeline function can indicate that the passed token should be discarded by returning\\n * null, undefined or an empty string. This token will not be passed to any downstream pipeline\\n * functions and will not be added to the index.\\n *\\n * Multiple tokens can be returned by returning an array of tokens. Each token will be passed\\n * to any downstream pipeline functions and all will returned tokens will be added to the index.\\n *\\n * Any number of pipeline functions may be chained together using a lunr.Pipeline.\\n *\\n * @interface lunr.PipelineFunction\\n * @param {lunr.Token} token - A token from the document being processed.\\n * @param {number} i - The index of this token in the complete list of tokens for this document/field.\\n * @param {lunr.Token[]} tokens - All tokens for this document/field.\\n * @returns {(?lunr.Token|lunr.Token[])}\\n */\\n\\n/**\\n * Register a function with the pipeline.\\n *\\n * Functions that are used in the pipeline should be registered if the pipeline\\n * needs to be serialised, or a serialised pipeline needs to be loaded.\\n *\\n * Registering a function does not add it to a pipeline, functions must still be\\n * added to instances of the pipeline for them to be used when running a pipeline.\\n *\\n * @param {lunr.PipelineFunction} fn - The function to check for.\\n * @param {String} label - The label to register this function with\\n */\\nlunr.Pipeline.registerFunction = function (fn, label) {\\n if (label in this.registeredFunctions) {\\n lunr.utils.warn('Overwriting existing registered function: ' + label)\\n }\\n\\n fn.label = label\\n lunr.Pipeline.registeredFunctions[fn.label] = fn\\n}\\n\\n/**\\n * Warns if the function is not registered as a Pipeline function.\\n *\\n * @param {lunr.PipelineFunction} fn - The function to check for.\\n * @private\\n */\\nlunr.Pipeline.warnIfFunctionNotRegistered = function (fn) {\\n var isRegistered = fn.label && (fn.label in this.registeredFunctions)\\n\\n if (!isRegistered) {\\n lunr.utils.warn('Function is not registered with pipeline. This may cause problems when serialising the index.\\\\n', fn)\\n }\\n}\\n\\n/**\\n * Loads a previously serialised pipeline.\\n *\\n * All functions to be loaded must already be registered with lunr.Pipeline.\\n * If any function from the serialised data has not been registered then an\\n * error will be thrown.\\n *\\n * @param {Object} serialised - The serialised pipeline to load.\\n * @returns {lunr.Pipeline}\\n */\\nlunr.Pipeline.load = function (serialised) {\\n var pipeline = new lunr.Pipeline\\n\\n serialised.forEach(function (fnName) {\\n var fn = lunr.Pipeline.registeredFunctions[fnName]\\n\\n if (fn) {\\n pipeline.add(fn)\\n } else {\\n throw new Error('Cannot load unregistered function: ' + fnName)\\n }\\n })\\n\\n return pipeline\\n}\\n\\n/**\\n * Adds new functions to the end of the pipeline.\\n *\\n * Logs a warning if the function has not been registered.\\n *\\n * @param {lunr.PipelineFunction[]} functions - Any number of functions to add to the pipeline.\\n */\\nlunr.Pipeline.prototype.add = function () {\\n var fns = Array.prototype.slice.call(arguments)\\n\\n fns.forEach(function (fn) {\\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\\n this._stack.push(fn)\\n }, this)\\n}\\n\\n/**\\n * Adds a single function after a function that already exists in the\\n * pipeline.\\n *\\n * Logs a warning if the function has not been registered.\\n *\\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\\n */\\nlunr.Pipeline.prototype.after = function (existingFn, newFn) {\\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\\n\\n var pos = this._stack.indexOf(existingFn)\\n if (pos == -1) {\\n throw new Error('Cannot find existingFn')\\n }\\n\\n pos = pos + 1\\n this._stack.splice(pos, 0, newFn)\\n}\\n\\n/**\\n * Adds a single function before a function that already exists in the\\n * pipeline.\\n *\\n * Logs a warning if the function has not been registered.\\n *\\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\\n */\\nlunr.Pipeline.prototype.before = function (existingFn, newFn) {\\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\\n\\n var pos = this._stack.indexOf(existingFn)\\n if (pos == -1) {\\n throw new Error('Cannot find existingFn')\\n }\\n\\n this._stack.splice(pos, 0, newFn)\\n}\\n\\n/**\\n * Removes a function from the pipeline.\\n *\\n * @param {lunr.PipelineFunction} fn The function to remove from the pipeline.\\n */\\nlunr.Pipeline.prototype.remove = function (fn) {\\n var pos = this._stack.indexOf(fn)\\n if (pos == -1) {\\n return\\n }\\n\\n this._stack.splice(pos, 1)\\n}\\n\\n/**\\n * Runs the current list of functions that make up the pipeline against the\\n * passed tokens.\\n *\\n * @param {Array} tokens The tokens to run through the pipeline.\\n * @returns {Array}\\n */\\nlunr.Pipeline.prototype.run = function (tokens) {\\n var stackLength = this._stack.length\\n\\n for (var i = 0; i < stackLength; i++) {\\n var fn = this._stack[i]\\n var memo = []\\n\\n for (var j = 0; j < tokens.length; j++) {\\n var result = fn(tokens[j], j, tokens)\\n\\n if (result === null || result === void 0 || result === '') continue\\n\\n if (Array.isArray(result)) {\\n for (var k = 0; k < result.length; k++) {\\n memo.push(result[k])\\n }\\n } else {\\n memo.push(result)\\n }\\n }\\n\\n tokens = memo\\n }\\n\\n return tokens\\n}\\n\\n/**\\n * Convenience method for passing a string through a pipeline and getting\\n * strings out. This method takes care of wrapping the passed string in a\\n * token and mapping the resulting tokens back to strings.\\n *\\n * @param {string} str - The string to pass through the pipeline.\\n * @param {?object} metadata - Optional metadata to associate with the token\\n * passed to the pipeline.\\n * @returns {string[]}\\n */\\nlunr.Pipeline.prototype.runString = function (str, metadata) {\\n var token = new lunr.Token (str, metadata)\\n\\n return this.run([token]).map(function (t) {\\n return t.toString()\\n })\\n}\\n\\n/**\\n * Resets the pipeline by removing any existing processors.\\n *\\n */\\nlunr.Pipeline.prototype.reset = function () {\\n this._stack = []\\n}\\n\\n/**\\n * Returns a representation of the pipeline ready for serialisation.\\n *\\n * Logs a warning if the function has not been registered.\\n *\\n * @returns {Array}\\n */\\nlunr.Pipeline.prototype.toJSON = function () {\\n return this._stack.map(function (fn) {\\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\\n\\n return fn.label\\n })\\n}\\n/*!\\n * lunr.Vector\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * A vector is used to construct the vector space of documents and queries. These\\n * vectors support operations to determine the similarity between two documents or\\n * a document and a query.\\n *\\n * Normally no parameters are required for initializing a vector, but in the case of\\n * loading a previously dumped vector the raw elements can be provided to the constructor.\\n *\\n * For performance reasons vectors are implemented with a flat array, where an elements\\n * index is immediately followed by its value. E.g. [index, value, index, value]. This\\n * allows the underlying array to be as sparse as possible and still offer decent\\n * performance when being used for vector calculations.\\n *\\n * @constructor\\n * @param {Number[]} [elements] - The flat list of element index and element value pairs.\\n */\\nlunr.Vector = function (elements) {\\n this._magnitude = 0\\n this.elements = elements || []\\n}\\n\\n\\n/**\\n * Calculates the position within the vector to insert a given index.\\n *\\n * This is used internally by insert and upsert. If there are duplicate indexes then\\n * the position is returned as if the value for that index were to be updated, but it\\n * is the callers responsibility to check whether there is a duplicate at that index\\n *\\n * @param {Number} insertIdx - The index at which the element should be inserted.\\n * @returns {Number}\\n */\\nlunr.Vector.prototype.positionForIndex = function (index) {\\n // For an empty vector the tuple can be inserted at the beginning\\n if (this.elements.length == 0) {\\n return 0\\n }\\n\\n var start = 0,\\n end = this.elements.length / 2,\\n sliceLength = end - start,\\n pivotPoint = Math.floor(sliceLength / 2),\\n pivotIndex = this.elements[pivotPoint * 2]\\n\\n while (sliceLength > 1) {\\n if (pivotIndex < index) {\\n start = pivotPoint\\n }\\n\\n if (pivotIndex > index) {\\n end = pivotPoint\\n }\\n\\n if (pivotIndex == index) {\\n break\\n }\\n\\n sliceLength = end - start\\n pivotPoint = start + Math.floor(sliceLength / 2)\\n pivotIndex = this.elements[pivotPoint * 2]\\n }\\n\\n if (pivotIndex == index) {\\n return pivotPoint * 2\\n }\\n\\n if (pivotIndex > index) {\\n return pivotPoint * 2\\n }\\n\\n if (pivotIndex < index) {\\n return (pivotPoint + 1) * 2\\n }\\n}\\n\\n/**\\n * Inserts an element at an index within the vector.\\n *\\n * Does not allow duplicates, will throw an error if there is already an entry\\n * for this index.\\n *\\n * @param {Number} insertIdx - The index at which the element should be inserted.\\n * @param {Number} val - The value to be inserted into the vector.\\n */\\nlunr.Vector.prototype.insert = function (insertIdx, val) {\\n this.upsert(insertIdx, val, function () {\\n throw \\\"duplicate index\\\"\\n })\\n}\\n\\n/**\\n * Inserts or updates an existing index within the vector.\\n *\\n * @param {Number} insertIdx - The index at which the element should be inserted.\\n * @param {Number} val - The value to be inserted into the vector.\\n * @param {function} fn - A function that is called for updates, the existing value and the\\n * requested value are passed as arguments\\n */\\nlunr.Vector.prototype.upsert = function (insertIdx, val, fn) {\\n this._magnitude = 0\\n var position = this.positionForIndex(insertIdx)\\n\\n if (this.elements[position] == insertIdx) {\\n this.elements[position + 1] = fn(this.elements[position + 1], val)\\n } else {\\n this.elements.splice(position, 0, insertIdx, val)\\n }\\n}\\n\\n/**\\n * Calculates the magnitude of this vector.\\n *\\n * @returns {Number}\\n */\\nlunr.Vector.prototype.magnitude = function () {\\n if (this._magnitude) return this._magnitude\\n\\n var sumOfSquares = 0,\\n elementsLength = this.elements.length\\n\\n for (var i = 1; i < elementsLength; i += 2) {\\n var val = this.elements[i]\\n sumOfSquares += val * val\\n }\\n\\n return this._magnitude = Math.sqrt(sumOfSquares)\\n}\\n\\n/**\\n * Calculates the dot product of this vector and another vector.\\n *\\n * @param {lunr.Vector} otherVector - The vector to compute the dot product with.\\n * @returns {Number}\\n */\\nlunr.Vector.prototype.dot = function (otherVector) {\\n var dotProduct = 0,\\n a = this.elements, b = otherVector.elements,\\n aLen = a.length, bLen = b.length,\\n aVal = 0, bVal = 0,\\n i = 0, j = 0\\n\\n while (i < aLen && j < bLen) {\\n aVal = a[i], bVal = b[j]\\n if (aVal < bVal) {\\n i += 2\\n } else if (aVal > bVal) {\\n j += 2\\n } else if (aVal == bVal) {\\n dotProduct += a[i + 1] * b[j + 1]\\n i += 2\\n j += 2\\n }\\n }\\n\\n return dotProduct\\n}\\n\\n/**\\n * Calculates the similarity between this vector and another vector.\\n *\\n * @param {lunr.Vector} otherVector - The other vector to calculate the\\n * similarity with.\\n * @returns {Number}\\n */\\nlunr.Vector.prototype.similarity = function (otherVector) {\\n return this.dot(otherVector) / this.magnitude() || 0\\n}\\n\\n/**\\n * Converts the vector to an array of the elements within the vector.\\n *\\n * @returns {Number[]}\\n */\\nlunr.Vector.prototype.toArray = function () {\\n var output = new Array (this.elements.length / 2)\\n\\n for (var i = 1, j = 0; i < this.elements.length; i += 2, j++) {\\n output[j] = this.elements[i]\\n }\\n\\n return output\\n}\\n\\n/**\\n * A JSON serializable representation of the vector.\\n *\\n * @returns {Number[]}\\n */\\nlunr.Vector.prototype.toJSON = function () {\\n return this.elements\\n}\\n/* eslint-disable */\\n/*!\\n * lunr.stemmer\\n * Copyright (C) 2019 Oliver Nightingale\\n * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt\\n */\\n\\n/**\\n * lunr.stemmer is an english language stemmer, this is a JavaScript\\n * implementation of the PorterStemmer taken from http://tartarus.org/~martin\\n *\\n * @static\\n * @implements {lunr.PipelineFunction}\\n * @param {lunr.Token} token - The string to stem\\n * @returns {lunr.Token}\\n * @see {@link lunr.Pipeline}\\n * @function\\n */\\nlunr.stemmer = (function(){\\n var step2list = {\\n \\\"ational\\\" : \\\"ate\\\",\\n \\\"tional\\\" : \\\"tion\\\",\\n \\\"enci\\\" : \\\"ence\\\",\\n \\\"anci\\\" : \\\"ance\\\",\\n \\\"izer\\\" : \\\"ize\\\",\\n \\\"bli\\\" : \\\"ble\\\",\\n \\\"alli\\\" : \\\"al\\\",\\n \\\"entli\\\" : \\\"ent\\\",\\n \\\"eli\\\" : \\\"e\\\",\\n \\\"ousli\\\" : \\\"ous\\\",\\n \\\"ization\\\" : \\\"ize\\\",\\n \\\"ation\\\" : \\\"ate\\\",\\n \\\"ator\\\" : \\\"ate\\\",\\n \\\"alism\\\" : \\\"al\\\",\\n \\\"iveness\\\" : \\\"ive\\\",\\n \\\"fulness\\\" : \\\"ful\\\",\\n \\\"ousness\\\" : \\\"ous\\\",\\n \\\"aliti\\\" : \\\"al\\\",\\n \\\"iviti\\\" : \\\"ive\\\",\\n \\\"biliti\\\" : \\\"ble\\\",\\n \\\"logi\\\" : \\\"log\\\"\\n },\\n\\n step3list = {\\n \\\"icate\\\" : \\\"ic\\\",\\n \\\"ative\\\" : \\\"\\\",\\n \\\"alize\\\" : \\\"al\\\",\\n \\\"iciti\\\" : \\\"ic\\\",\\n \\\"ical\\\" : \\\"ic\\\",\\n \\\"ful\\\" : \\\"\\\",\\n \\\"ness\\\" : \\\"\\\"\\n },\\n\\n c = \\\"[^aeiou]\\\", // consonant\\n v = \\\"[aeiouy]\\\", // vowel\\n C = c + \\\"[^aeiouy]*\\\", // consonant sequence\\n V = v + \\\"[aeiou]*\\\", // vowel sequence\\n\\n mgr0 = \\\"^(\\\" + C + \\\")?\\\" + V + C, // [C]VC... is m>0\\n meq1 = \\\"^(\\\" + C + \\\")?\\\" + V + C + \\\"(\\\" + V + \\\")?$\\\", // [C]VC[V] is m=1\\n mgr1 = \\\"^(\\\" + C + \\\")?\\\" + V + C + V + C, // [C]VCVC... is m>1\\n s_v = \\\"^(\\\" + C + \\\")?\\\" + v; // vowel in stem\\n\\n var re_mgr0 = new RegExp(mgr0);\\n var re_mgr1 = new RegExp(mgr1);\\n var re_meq1 = new RegExp(meq1);\\n var re_s_v = new RegExp(s_v);\\n\\n var re_1a = /^(.+?)(ss|i)es$/;\\n var re2_1a = /^(.+?)([^s])s$/;\\n var re_1b = /^(.+?)eed$/;\\n var re2_1b = /^(.+?)(ed|ing)$/;\\n var re_1b_2 = /.$/;\\n var re2_1b_2 = /(at|bl|iz)$/;\\n var re3_1b_2 = new RegExp(\\\"([^aeiouylsz])\\\\\\\\1$\\\");\\n var re4_1b_2 = new RegExp(\\\"^\\\" + C + v + \\\"[^aeiouwxy]$\\\");\\n\\n var re_1c = /^(.+?[^aeiou])y$/;\\n var re_2 = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;\\n\\n var re_3 = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;\\n\\n var re_4 = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;\\n var re2_4 = /^(.+?)(s|t)(ion)$/;\\n\\n var re_5 = /^(.+?)e$/;\\n var re_5_1 = /ll$/;\\n var re3_5 = new RegExp(\\\"^\\\" + C + v + \\\"[^aeiouwxy]$\\\");\\n\\n var porterStemmer = function porterStemmer(w) {\\n var stem,\\n suffix,\\n firstch,\\n re,\\n re2,\\n re3,\\n re4;\\n\\n if (w.length < 3) { return w; }\\n\\n firstch = w.substr(0,1);\\n if (firstch == \\\"y\\\") {\\n w = firstch.toUpperCase() + w.substr(1);\\n }\\n\\n // Step 1a\\n re = re_1a\\n re2 = re2_1a;\\n\\n if (re.test(w)) { w = w.replace(re,\\\"$1$2\\\"); }\\n else if (re2.test(w)) { w = w.replace(re2,\\\"$1$2\\\"); }\\n\\n // Step 1b\\n re = re_1b;\\n re2 = re2_1b;\\n if (re.test(w)) {\\n var fp = re.exec(w);\\n re = re_mgr0;\\n if (re.test(fp[1])) {\\n re = re_1b_2;\\n w = w.replace(re,\\\"\\\");\\n }\\n } else if (re2.test(w)) {\\n var fp = re2.exec(w);\\n stem = fp[1];\\n re2 = re_s_v;\\n if (re2.test(stem)) {\\n w = stem;\\n re2 = re2_1b_2;\\n re3 = re3_1b_2;\\n re4 = re4_1b_2;\\n if (re2.test(w)) { w = w + \\\"e\\\"; }\\n else if (re3.test(w)) { re = re_1b_2; w = w.replace(re,\\\"\\\"); }\\n else if (re4.test(w)) { w = w + \\\"e\\\"; }\\n }\\n }\\n\\n // Step 1c - replace suffix y or Y by i if preceded by a non-vowel which is not the first letter of the word (so cry -> cri, by -> by, say -> say)\\n re = re_1c;\\n if (re.test(w)) {\\n var fp = re.exec(w);\\n stem = fp[1];\\n w = stem + \\\"i\\\";\\n }\\n\\n // Step 2\\n re = re_2;\\n if (re.test(w)) {\\n var fp = re.exec(w);\\n stem = fp[1];\\n suffix = fp[2];\\n re = re_mgr0;\\n if (re.test(stem)) {\\n w = stem + step2list[suffix];\\n }\\n }\\n\\n // Step 3\\n re = re_3;\\n if (re.test(w)) {\\n var fp = re.exec(w);\\n stem = fp[1];\\n suffix = fp[2];\\n re = re_mgr0;\\n if (re.test(stem)) {\\n w = stem + step3list[suffix];\\n }\\n }\\n\\n // Step 4\\n re = re_4;\\n re2 = re2_4;\\n if (re.test(w)) {\\n var fp = re.exec(w);\\n stem = fp[1];\\n re = re_mgr1;\\n if (re.test(stem)) {\\n w = stem;\\n }\\n } else if (re2.test(w)) {\\n var fp = re2.exec(w);\\n stem = fp[1] + fp[2];\\n re2 = re_mgr1;\\n if (re2.test(stem)) {\\n w = stem;\\n }\\n }\\n\\n // Step 5\\n re = re_5;\\n if (re.test(w)) {\\n var fp = re.exec(w);\\n stem = fp[1];\\n re = re_mgr1;\\n re2 = re_meq1;\\n re3 = re3_5;\\n if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) {\\n w = stem;\\n }\\n }\\n\\n re = re_5_1;\\n re2 = re_mgr1;\\n if (re.test(w) && re2.test(w)) {\\n re = re_1b_2;\\n w = w.replace(re,\\\"\\\");\\n }\\n\\n // and turn initial Y back to y\\n\\n if (firstch == \\\"y\\\") {\\n w = firstch.toLowerCase() + w.substr(1);\\n }\\n\\n return w;\\n };\\n\\n return function (token) {\\n return token.update(porterStemmer);\\n }\\n})();\\n\\nlunr.Pipeline.registerFunction(lunr.stemmer, 'stemmer')\\n/*!\\n * lunr.stopWordFilter\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * lunr.generateStopWordFilter builds a stopWordFilter function from the provided\\n * list of stop words.\\n *\\n * The built in lunr.stopWordFilter is built using this generator and can be used\\n * to generate custom stopWordFilters for applications or non English languages.\\n *\\n * @function\\n * @param {Array} token The token to pass through the filter\\n * @returns {lunr.PipelineFunction}\\n * @see lunr.Pipeline\\n * @see lunr.stopWordFilter\\n */\\nlunr.generateStopWordFilter = function (stopWords) {\\n var words = stopWords.reduce(function (memo, stopWord) {\\n memo[stopWord] = stopWord\\n return memo\\n }, {})\\n\\n return function (token) {\\n if (token && words[token.toString()] !== token.toString()) return token\\n }\\n}\\n\\n/**\\n * lunr.stopWordFilter is an English language stop word list filter, any words\\n * contained in the list will not be passed through the filter.\\n *\\n * This is intended to be used in the Pipeline. If the token does not pass the\\n * filter then undefined will be returned.\\n *\\n * @function\\n * @implements {lunr.PipelineFunction}\\n * @params {lunr.Token} token - A token to check for being a stop word.\\n * @returns {lunr.Token}\\n * @see {@link lunr.Pipeline}\\n */\\nlunr.stopWordFilter = lunr.generateStopWordFilter([\\n 'a',\\n 'able',\\n 'about',\\n 'across',\\n 'after',\\n 'all',\\n 'almost',\\n 'also',\\n 'am',\\n 'among',\\n 'an',\\n 'and',\\n 'any',\\n 'are',\\n 'as',\\n 'at',\\n 'be',\\n 'because',\\n 'been',\\n 'but',\\n 'by',\\n 'can',\\n 'cannot',\\n 'could',\\n 'dear',\\n 'did',\\n 'do',\\n 'does',\\n 'either',\\n 'else',\\n 'ever',\\n 'every',\\n 'for',\\n 'from',\\n 'get',\\n 'got',\\n 'had',\\n 'has',\\n 'have',\\n 'he',\\n 'her',\\n 'hers',\\n 'him',\\n 'his',\\n 'how',\\n 'however',\\n 'i',\\n 'if',\\n 'in',\\n 'into',\\n 'is',\\n 'it',\\n 'its',\\n 'just',\\n 'least',\\n 'let',\\n 'like',\\n 'likely',\\n 'may',\\n 'me',\\n 'might',\\n 'most',\\n 'must',\\n 'my',\\n 'neither',\\n 'no',\\n 'nor',\\n 'not',\\n 'of',\\n 'off',\\n 'often',\\n 'on',\\n 'only',\\n 'or',\\n 'other',\\n 'our',\\n 'own',\\n 'rather',\\n 'said',\\n 'say',\\n 'says',\\n 'she',\\n 'should',\\n 'since',\\n 'so',\\n 'some',\\n 'than',\\n 'that',\\n 'the',\\n 'their',\\n 'them',\\n 'then',\\n 'there',\\n 'these',\\n 'they',\\n 'this',\\n 'tis',\\n 'to',\\n 'too',\\n 'twas',\\n 'us',\\n 'wants',\\n 'was',\\n 'we',\\n 'were',\\n 'what',\\n 'when',\\n 'where',\\n 'which',\\n 'while',\\n 'who',\\n 'whom',\\n 'why',\\n 'will',\\n 'with',\\n 'would',\\n 'yet',\\n 'you',\\n 'your'\\n])\\n\\nlunr.Pipeline.registerFunction(lunr.stopWordFilter, 'stopWordFilter')\\n/*!\\n * lunr.trimmer\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * lunr.trimmer is a pipeline function for trimming non word\\n * characters from the beginning and end of tokens before they\\n * enter the index.\\n *\\n * This implementation may not work correctly for non latin\\n * characters and should either be removed or adapted for use\\n * with languages with non-latin characters.\\n *\\n * @static\\n * @implements {lunr.PipelineFunction}\\n * @param {lunr.Token} token The token to pass through the filter\\n * @returns {lunr.Token}\\n * @see lunr.Pipeline\\n */\\nlunr.trimmer = function (token) {\\n return token.update(function (s) {\\n return s.replace(/^\\\\W+/, '').replace(/\\\\W+$/, '')\\n })\\n}\\n\\nlunr.Pipeline.registerFunction(lunr.trimmer, 'trimmer')\\n/*!\\n * lunr.TokenSet\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * A token set is used to store the unique list of all tokens\\n * within an index. Token sets are also used to represent an\\n * incoming query to the index, this query token set and index\\n * token set are then intersected to find which tokens to look\\n * up in the inverted index.\\n *\\n * A token set can hold multiple tokens, as in the case of the\\n * index token set, or it can hold a single token as in the\\n * case of a simple query token set.\\n *\\n * Additionally token sets are used to perform wildcard matching.\\n * Leading, contained and trailing wildcards are supported, and\\n * from this edit distance matching can also be provided.\\n *\\n * Token sets are implemented as a minimal finite state automata,\\n * where both common prefixes and suffixes are shared between tokens.\\n * This helps to reduce the space used for storing the token set.\\n *\\n * @constructor\\n */\\nlunr.TokenSet = function () {\\n this.final = false\\n this.edges = {}\\n this.id = lunr.TokenSet._nextId\\n lunr.TokenSet._nextId += 1\\n}\\n\\n/**\\n * Keeps track of the next, auto increment, identifier to assign\\n * to a new tokenSet.\\n *\\n * TokenSets require a unique identifier to be correctly minimised.\\n *\\n * @private\\n */\\nlunr.TokenSet._nextId = 1\\n\\n/**\\n * Creates a TokenSet instance from the given sorted array of words.\\n *\\n * @param {String[]} arr - A sorted array of strings to create the set from.\\n * @returns {lunr.TokenSet}\\n * @throws Will throw an error if the input array is not sorted.\\n */\\nlunr.TokenSet.fromArray = function (arr) {\\n var builder = new lunr.TokenSet.Builder\\n\\n for (var i = 0, len = arr.length; i < len; i++) {\\n builder.insert(arr[i])\\n }\\n\\n builder.finish()\\n return builder.root\\n}\\n\\n/**\\n * Creates a token set from a query clause.\\n *\\n * @private\\n * @param {Object} clause - A single clause from lunr.Query.\\n * @param {string} clause.term - The query clause term.\\n * @param {number} [clause.editDistance] - The optional edit distance for the term.\\n * @returns {lunr.TokenSet}\\n */\\nlunr.TokenSet.fromClause = function (clause) {\\n if ('editDistance' in clause) {\\n return lunr.TokenSet.fromFuzzyString(clause.term, clause.editDistance)\\n } else {\\n return lunr.TokenSet.fromString(clause.term)\\n }\\n}\\n\\n/**\\n * Creates a token set representing a single string with a specified\\n * edit distance.\\n *\\n * Insertions, deletions, substitutions and transpositions are each\\n * treated as an edit distance of 1.\\n *\\n * Increasing the allowed edit distance will have a dramatic impact\\n * on the performance of both creating and intersecting these TokenSets.\\n * It is advised to keep the edit distance less than 3.\\n *\\n * @param {string} str - The string to create the token set from.\\n * @param {number} editDistance - The allowed edit distance to match.\\n * @returns {lunr.Vector}\\n */\\nlunr.TokenSet.fromFuzzyString = function (str, editDistance) {\\n var root = new lunr.TokenSet\\n\\n var stack = [{\\n node: root,\\n editsRemaining: editDistance,\\n str: str\\n }]\\n\\n while (stack.length) {\\n var frame = stack.pop()\\n\\n // no edit\\n if (frame.str.length > 0) {\\n var char = frame.str.charAt(0),\\n noEditNode\\n\\n if (char in frame.node.edges) {\\n noEditNode = frame.node.edges[char]\\n } else {\\n noEditNode = new lunr.TokenSet\\n frame.node.edges[char] = noEditNode\\n }\\n\\n if (frame.str.length == 1) {\\n noEditNode.final = true\\n }\\n\\n stack.push({\\n node: noEditNode,\\n editsRemaining: frame.editsRemaining,\\n str: frame.str.slice(1)\\n })\\n }\\n\\n if (frame.editsRemaining == 0) {\\n continue\\n }\\n\\n // insertion\\n if (\\\"*\\\" in frame.node.edges) {\\n var insertionNode = frame.node.edges[\\\"*\\\"]\\n } else {\\n var insertionNode = new lunr.TokenSet\\n frame.node.edges[\\\"*\\\"] = insertionNode\\n }\\n\\n if (frame.str.length == 0) {\\n insertionNode.final = true\\n }\\n\\n stack.push({\\n node: insertionNode,\\n editsRemaining: frame.editsRemaining - 1,\\n str: frame.str\\n })\\n\\n // deletion\\n // can only do a deletion if we have enough edits remaining\\n // and if there are characters left to delete in the string\\n if (frame.str.length > 1) {\\n stack.push({\\n node: frame.node,\\n editsRemaining: frame.editsRemaining - 1,\\n str: frame.str.slice(1)\\n })\\n }\\n\\n // deletion\\n // just removing the last character from the str\\n if (frame.str.length == 1) {\\n frame.node.final = true\\n }\\n\\n // substitution\\n // can only do a substitution if we have enough edits remaining\\n // and if there are characters left to substitute\\n if (frame.str.length >= 1) {\\n if (\\\"*\\\" in frame.node.edges) {\\n var substitutionNode = frame.node.edges[\\\"*\\\"]\\n } else {\\n var substitutionNode = new lunr.TokenSet\\n frame.node.edges[\\\"*\\\"] = substitutionNode\\n }\\n\\n if (frame.str.length == 1) {\\n substitutionNode.final = true\\n }\\n\\n stack.push({\\n node: substitutionNode,\\n editsRemaining: frame.editsRemaining - 1,\\n str: frame.str.slice(1)\\n })\\n }\\n\\n // transposition\\n // can only do a transposition if there are edits remaining\\n // and there are enough characters to transpose\\n if (frame.str.length > 1) {\\n var charA = frame.str.charAt(0),\\n charB = frame.str.charAt(1),\\n transposeNode\\n\\n if (charB in frame.node.edges) {\\n transposeNode = frame.node.edges[charB]\\n } else {\\n transposeNode = new lunr.TokenSet\\n frame.node.edges[charB] = transposeNode\\n }\\n\\n if (frame.str.length == 1) {\\n transposeNode.final = true\\n }\\n\\n stack.push({\\n node: transposeNode,\\n editsRemaining: frame.editsRemaining - 1,\\n str: charA + frame.str.slice(2)\\n })\\n }\\n }\\n\\n return root\\n}\\n\\n/**\\n * Creates a TokenSet from a string.\\n *\\n * The string may contain one or more wildcard characters (*)\\n * that will allow wildcard matching when intersecting with\\n * another TokenSet.\\n *\\n * @param {string} str - The string to create a TokenSet from.\\n * @returns {lunr.TokenSet}\\n */\\nlunr.TokenSet.fromString = function (str) {\\n var node = new lunr.TokenSet,\\n root = node\\n\\n /*\\n * Iterates through all characters within the passed string\\n * appending a node for each character.\\n *\\n * When a wildcard character is found then a self\\n * referencing edge is introduced to continually match\\n * any number of any characters.\\n */\\n for (var i = 0, len = str.length; i < len; i++) {\\n var char = str[i],\\n final = (i == len - 1)\\n\\n if (char == \\\"*\\\") {\\n node.edges[char] = node\\n node.final = final\\n\\n } else {\\n var next = new lunr.TokenSet\\n next.final = final\\n\\n node.edges[char] = next\\n node = next\\n }\\n }\\n\\n return root\\n}\\n\\n/**\\n * Converts this TokenSet into an array of strings\\n * contained within the TokenSet.\\n *\\n * This is not intended to be used on a TokenSet that\\n * contains wildcards, in these cases the results are\\n * undefined and are likely to cause an infinite loop.\\n *\\n * @returns {string[]}\\n */\\nlunr.TokenSet.prototype.toArray = function () {\\n var words = []\\n\\n var stack = [{\\n prefix: \\\"\\\",\\n node: this\\n }]\\n\\n while (stack.length) {\\n var frame = stack.pop(),\\n edges = Object.keys(frame.node.edges),\\n len = edges.length\\n\\n if (frame.node.final) {\\n /* In Safari, at this point the prefix is sometimes corrupted, see:\\n * https://github.com/olivernn/lunr.js/issues/279 Calling any\\n * String.prototype method forces Safari to \\\"cast\\\" this string to what\\n * it's supposed to be, fixing the bug. */\\n frame.prefix.charAt(0)\\n words.push(frame.prefix)\\n }\\n\\n for (var i = 0; i < len; i++) {\\n var edge = edges[i]\\n\\n stack.push({\\n prefix: frame.prefix.concat(edge),\\n node: frame.node.edges[edge]\\n })\\n }\\n }\\n\\n return words\\n}\\n\\n/**\\n * Generates a string representation of a TokenSet.\\n *\\n * This is intended to allow TokenSets to be used as keys\\n * in objects, largely to aid the construction and minimisation\\n * of a TokenSet. As such it is not designed to be a human\\n * friendly representation of the TokenSet.\\n *\\n * @returns {string}\\n */\\nlunr.TokenSet.prototype.toString = function () {\\n // NOTE: Using Object.keys here as this.edges is very likely\\n // to enter 'hash-mode' with many keys being added\\n //\\n // avoiding a for-in loop here as it leads to the function\\n // being de-optimised (at least in V8). From some simple\\n // benchmarks the performance is comparable, but allowing\\n // V8 to optimize may mean easy performance wins in the future.\\n\\n if (this._str) {\\n return this._str\\n }\\n\\n var str = this.final ? '1' : '0',\\n labels = Object.keys(this.edges).sort(),\\n len = labels.length\\n\\n for (var i = 0; i < len; i++) {\\n var label = labels[i],\\n node = this.edges[label]\\n\\n str = str + label + node.id\\n }\\n\\n return str\\n}\\n\\n/**\\n * Returns a new TokenSet that is the intersection of\\n * this TokenSet and the passed TokenSet.\\n *\\n * This intersection will take into account any wildcards\\n * contained within the TokenSet.\\n *\\n * @param {lunr.TokenSet} b - An other TokenSet to intersect with.\\n * @returns {lunr.TokenSet}\\n */\\nlunr.TokenSet.prototype.intersect = function (b) {\\n var output = new lunr.TokenSet,\\n frame = undefined\\n\\n var stack = [{\\n qNode: b,\\n output: output,\\n node: this\\n }]\\n\\n while (stack.length) {\\n frame = stack.pop()\\n\\n // NOTE: As with the #toString method, we are using\\n // Object.keys and a for loop instead of a for-in loop\\n // as both of these objects enter 'hash' mode, causing\\n // the function to be de-optimised in V8\\n var qEdges = Object.keys(frame.qNode.edges),\\n qLen = qEdges.length,\\n nEdges = Object.keys(frame.node.edges),\\n nLen = nEdges.length\\n\\n for (var q = 0; q < qLen; q++) {\\n var qEdge = qEdges[q]\\n\\n for (var n = 0; n < nLen; n++) {\\n var nEdge = nEdges[n]\\n\\n if (nEdge == qEdge || qEdge == '*') {\\n var node = frame.node.edges[nEdge],\\n qNode = frame.qNode.edges[qEdge],\\n final = node.final && qNode.final,\\n next = undefined\\n\\n if (nEdge in frame.output.edges) {\\n // an edge already exists for this character\\n // no need to create a new node, just set the finality\\n // bit unless this node is already final\\n next = frame.output.edges[nEdge]\\n next.final = next.final || final\\n\\n } else {\\n // no edge exists yet, must create one\\n // set the finality bit and insert it\\n // into the output\\n next = new lunr.TokenSet\\n next.final = final\\n frame.output.edges[nEdge] = next\\n }\\n\\n stack.push({\\n qNode: qNode,\\n output: next,\\n node: node\\n })\\n }\\n }\\n }\\n }\\n\\n return output\\n}\\nlunr.TokenSet.Builder = function () {\\n this.previousWord = \\\"\\\"\\n this.root = new lunr.TokenSet\\n this.uncheckedNodes = []\\n this.minimizedNodes = {}\\n}\\n\\nlunr.TokenSet.Builder.prototype.insert = function (word) {\\n var node,\\n commonPrefix = 0\\n\\n if (word < this.previousWord) {\\n throw new Error (\\\"Out of order word insertion\\\")\\n }\\n\\n for (var i = 0; i < word.length && i < this.previousWord.length; i++) {\\n if (word[i] != this.previousWord[i]) break\\n commonPrefix++\\n }\\n\\n this.minimize(commonPrefix)\\n\\n if (this.uncheckedNodes.length == 0) {\\n node = this.root\\n } else {\\n node = this.uncheckedNodes[this.uncheckedNodes.length - 1].child\\n }\\n\\n for (var i = commonPrefix; i < word.length; i++) {\\n var nextNode = new lunr.TokenSet,\\n char = word[i]\\n\\n node.edges[char] = nextNode\\n\\n this.uncheckedNodes.push({\\n parent: node,\\n char: char,\\n child: nextNode\\n })\\n\\n node = nextNode\\n }\\n\\n node.final = true\\n this.previousWord = word\\n}\\n\\nlunr.TokenSet.Builder.prototype.finish = function () {\\n this.minimize(0)\\n}\\n\\nlunr.TokenSet.Builder.prototype.minimize = function (downTo) {\\n for (var i = this.uncheckedNodes.length - 1; i >= downTo; i--) {\\n var node = this.uncheckedNodes[i],\\n childKey = node.child.toString()\\n\\n if (childKey in this.minimizedNodes) {\\n node.parent.edges[node.char] = this.minimizedNodes[childKey]\\n } else {\\n // Cache the key for this node since\\n // we know it can't change anymore\\n node.child._str = childKey\\n\\n this.minimizedNodes[childKey] = node.child\\n }\\n\\n this.uncheckedNodes.pop()\\n }\\n}\\n/*!\\n * lunr.Index\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * An index contains the built index of all documents and provides a query interface\\n * to the index.\\n *\\n * Usually instances of lunr.Index will not be created using this constructor, instead\\n * lunr.Builder should be used to construct new indexes, or lunr.Index.load should be\\n * used to load previously built and serialized indexes.\\n *\\n * @constructor\\n * @param {Object} attrs - The attributes of the built search index.\\n * @param {Object} attrs.invertedIndex - An index of term/field to document reference.\\n * @param {Object} attrs.fieldVectors - Field vectors\\n * @param {lunr.TokenSet} attrs.tokenSet - An set of all corpus tokens.\\n * @param {string[]} attrs.fields - The names of indexed document fields.\\n * @param {lunr.Pipeline} attrs.pipeline - The pipeline to use for search terms.\\n */\\nlunr.Index = function (attrs) {\\n this.invertedIndex = attrs.invertedIndex\\n this.fieldVectors = attrs.fieldVectors\\n this.tokenSet = attrs.tokenSet\\n this.fields = attrs.fields\\n this.pipeline = attrs.pipeline\\n}\\n\\n/**\\n * A result contains details of a document matching a search query.\\n * @typedef {Object} lunr.Index~Result\\n * @property {string} ref - The reference of the document this result represents.\\n * @property {number} score - A number between 0 and 1 representing how similar this document is to the query.\\n * @property {lunr.MatchData} matchData - Contains metadata about this match including which term(s) caused the match.\\n */\\n\\n/**\\n * Although lunr provides the ability to create queries using lunr.Query, it also provides a simple\\n * query language which itself is parsed into an instance of lunr.Query.\\n *\\n * For programmatically building queries it is advised to directly use lunr.Query, the query language\\n * is best used for human entered text rather than program generated text.\\n *\\n * At its simplest queries can just be a single term, e.g. `hello`, multiple terms are also supported\\n * and will be combined with OR, e.g `hello world` will match documents that contain either 'hello'\\n * or 'world', though those that contain both will rank higher in the results.\\n *\\n * Wildcards can be included in terms to match one or more unspecified characters, these wildcards can\\n * be inserted anywhere within the term, and more than one wildcard can exist in a single term. Adding\\n * wildcards will increase the number of documents that will be found but can also have a negative\\n * impact on query performance, especially with wildcards at the beginning of a term.\\n *\\n * Terms can be restricted to specific fields, e.g. `title:hello`, only documents with the term\\n * hello in the title field will match this query. Using a field not present in the index will lead\\n * to an error being thrown.\\n *\\n * Modifiers can also be added to terms, lunr supports edit distance and boost modifiers on terms. A term\\n * boost will make documents matching that term score higher, e.g. `foo^5`. Edit distance is also supported\\n * to provide fuzzy matching, e.g. 'hello~2' will match documents with hello with an edit distance of 2.\\n * Avoid large values for edit distance to improve query performance.\\n *\\n * Each term also supports a presence modifier. By default a term's presence in document is optional, however\\n * this can be changed to either required or prohibited. For a term's presence to be required in a document the\\n * term should be prefixed with a '+', e.g. `+foo bar` is a search for documents that must contain 'foo' and\\n * optionally contain 'bar'. Conversely a leading '-' sets the terms presence to prohibited, i.e. it must not\\n * appear in a document, e.g. `-foo bar` is a search for documents that do not contain 'foo' but may contain 'bar'.\\n *\\n * To escape special characters the backslash character '\\\\' can be used, this allows searches to include\\n * characters that would normally be considered modifiers, e.g. `foo\\\\~2` will search for a term \\\"foo~2\\\" instead\\n * of attempting to apply a boost of 2 to the search term \\\"foo\\\".\\n *\\n * @typedef {string} lunr.Index~QueryString\\n * @example Simple single term query\\n * hello\\n * @example Multiple term query\\n * hello world\\n * @example term scoped to a field\\n * title:hello\\n * @example term with a boost of 10\\n * hello^10\\n * @example term with an edit distance of 2\\n * hello~2\\n * @example terms with presence modifiers\\n * -foo +bar baz\\n */\\n\\n/**\\n * Performs a search against the index using lunr query syntax.\\n *\\n * Results will be returned sorted by their score, the most relevant results\\n * will be returned first. For details on how the score is calculated, please see\\n * the {@link https://lunrjs.com/guides/searching.html#scoring|guide}.\\n *\\n * For more programmatic querying use lunr.Index#query.\\n *\\n * @param {lunr.Index~QueryString} queryString - A string containing a lunr query.\\n * @throws {lunr.QueryParseError} If the passed query string cannot be parsed.\\n * @returns {lunr.Index~Result[]}\\n */\\nlunr.Index.prototype.search = function (queryString) {\\n return this.query(function (query) {\\n var parser = new lunr.QueryParser(queryString, query)\\n parser.parse()\\n })\\n}\\n\\n/**\\n * A query builder callback provides a query object to be used to express\\n * the query to perform on the index.\\n *\\n * @callback lunr.Index~queryBuilder\\n * @param {lunr.Query} query - The query object to build up.\\n * @this lunr.Query\\n */\\n\\n/**\\n * Performs a query against the index using the yielded lunr.Query object.\\n *\\n * If performing programmatic queries against the index, this method is preferred\\n * over lunr.Index#search so as to avoid the additional query parsing overhead.\\n *\\n * A query object is yielded to the supplied function which should be used to\\n * express the query to be run against the index.\\n *\\n * Note that although this function takes a callback parameter it is _not_ an\\n * asynchronous operation, the callback is just yielded a query object to be\\n * customized.\\n *\\n * @param {lunr.Index~queryBuilder} fn - A function that is used to build the query.\\n * @returns {lunr.Index~Result[]}\\n */\\nlunr.Index.prototype.query = function (fn) {\\n // for each query clause\\n // * process terms\\n // * expand terms from token set\\n // * find matching documents and metadata\\n // * get document vectors\\n // * score documents\\n\\n var query = new lunr.Query(this.fields),\\n matchingFields = Object.create(null),\\n queryVectors = Object.create(null),\\n termFieldCache = Object.create(null),\\n requiredMatches = Object.create(null),\\n prohibitedMatches = Object.create(null)\\n\\n /*\\n * To support field level boosts a query vector is created per\\n * field. An empty vector is eagerly created to support negated\\n * queries.\\n */\\n for (var i = 0; i < this.fields.length; i++) {\\n queryVectors[this.fields[i]] = new lunr.Vector\\n }\\n\\n fn.call(query, query)\\n\\n for (var i = 0; i < query.clauses.length; i++) {\\n /*\\n * Unless the pipeline has been disabled for this term, which is\\n * the case for terms with wildcards, we need to pass the clause\\n * term through the search pipeline. A pipeline returns an array\\n * of processed terms. Pipeline functions may expand the passed\\n * term, which means we may end up performing multiple index lookups\\n * for a single query term.\\n */\\n var clause = query.clauses[i],\\n terms = null,\\n clauseMatches = lunr.Set.complete\\n\\n if (clause.usePipeline) {\\n terms = this.pipeline.runString(clause.term, {\\n fields: clause.fields\\n })\\n } else {\\n terms = [clause.term]\\n }\\n\\n for (var m = 0; m < terms.length; m++) {\\n var term = terms[m]\\n\\n /*\\n * Each term returned from the pipeline needs to use the same query\\n * clause object, e.g. the same boost and or edit distance. The\\n * simplest way to do this is to re-use the clause object but mutate\\n * its term property.\\n */\\n clause.term = term\\n\\n /*\\n * From the term in the clause we create a token set which will then\\n * be used to intersect the indexes token set to get a list of terms\\n * to lookup in the inverted index\\n */\\n var termTokenSet = lunr.TokenSet.fromClause(clause),\\n expandedTerms = this.tokenSet.intersect(termTokenSet).toArray()\\n\\n /*\\n * If a term marked as required does not exist in the tokenSet it is\\n * impossible for the search to return any matches. We set all the field\\n * scoped required matches set to empty and stop examining any further\\n * clauses.\\n */\\n if (expandedTerms.length === 0 && clause.presence === lunr.Query.presence.REQUIRED) {\\n for (var k = 0; k < clause.fields.length; k++) {\\n var field = clause.fields[k]\\n requiredMatches[field] = lunr.Set.empty\\n }\\n\\n break\\n }\\n\\n for (var j = 0; j < expandedTerms.length; j++) {\\n /*\\n * For each term get the posting and termIndex, this is required for\\n * building the query vector.\\n */\\n var expandedTerm = expandedTerms[j],\\n posting = this.invertedIndex[expandedTerm],\\n termIndex = posting._index\\n\\n for (var k = 0; k < clause.fields.length; k++) {\\n /*\\n * For each field that this query term is scoped by (by default\\n * all fields are in scope) we need to get all the document refs\\n * that have this term in that field.\\n *\\n * The posting is the entry in the invertedIndex for the matching\\n * term from above.\\n */\\n var field = clause.fields[k],\\n fieldPosting = posting[field],\\n matchingDocumentRefs = Object.keys(fieldPosting),\\n termField = expandedTerm + \\\"/\\\" + field,\\n matchingDocumentsSet = new lunr.Set(matchingDocumentRefs)\\n\\n /*\\n * if the presence of this term is required ensure that the matching\\n * documents are added to the set of required matches for this clause.\\n *\\n */\\n if (clause.presence == lunr.Query.presence.REQUIRED) {\\n clauseMatches = clauseMatches.union(matchingDocumentsSet)\\n\\n if (requiredMatches[field] === undefined) {\\n requiredMatches[field] = lunr.Set.complete\\n }\\n }\\n\\n /*\\n * if the presence of this term is prohibited ensure that the matching\\n * documents are added to the set of prohibited matches for this field,\\n * creating that set if it does not yet exist.\\n */\\n if (clause.presence == lunr.Query.presence.PROHIBITED) {\\n if (prohibitedMatches[field] === undefined) {\\n prohibitedMatches[field] = lunr.Set.empty\\n }\\n\\n prohibitedMatches[field] = prohibitedMatches[field].union(matchingDocumentsSet)\\n\\n /*\\n * Prohibited matches should not be part of the query vector used for\\n * similarity scoring and no metadata should be extracted so we continue\\n * to the next field\\n */\\n continue\\n }\\n\\n /*\\n * The query field vector is populated using the termIndex found for\\n * the term and a unit value with the appropriate boost applied.\\n * Using upsert because there could already be an entry in the vector\\n * for the term we are working with. In that case we just add the scores\\n * together.\\n */\\n queryVectors[field].upsert(termIndex, clause.boost, function (a, b) { return a + b })\\n\\n /**\\n * If we've already seen this term, field combo then we've already collected\\n * the matching documents and metadata, no need to go through all that again\\n */\\n if (termFieldCache[termField]) {\\n continue\\n }\\n\\n for (var l = 0; l < matchingDocumentRefs.length; l++) {\\n /*\\n * All metadata for this term/field/document triple\\n * are then extracted and collected into an instance\\n * of lunr.MatchData ready to be returned in the query\\n * results\\n */\\n var matchingDocumentRef = matchingDocumentRefs[l],\\n matchingFieldRef = new lunr.FieldRef (matchingDocumentRef, field),\\n metadata = fieldPosting[matchingDocumentRef],\\n fieldMatch\\n\\n if ((fieldMatch = matchingFields[matchingFieldRef]) === undefined) {\\n matchingFields[matchingFieldRef] = new lunr.MatchData (expandedTerm, field, metadata)\\n } else {\\n fieldMatch.add(expandedTerm, field, metadata)\\n }\\n\\n }\\n\\n termFieldCache[termField] = true\\n }\\n }\\n }\\n\\n /**\\n * If the presence was required we need to update the requiredMatches field sets.\\n * We do this after all fields for the term have collected their matches because\\n * the clause terms presence is required in _any_ of the fields not _all_ of the\\n * fields.\\n */\\n if (clause.presence === lunr.Query.presence.REQUIRED) {\\n for (var k = 0; k < clause.fields.length; k++) {\\n var field = clause.fields[k]\\n requiredMatches[field] = requiredMatches[field].intersect(clauseMatches)\\n }\\n }\\n }\\n\\n /**\\n * Need to combine the field scoped required and prohibited\\n * matching documents into a global set of required and prohibited\\n * matches\\n */\\n var allRequiredMatches = lunr.Set.complete,\\n allProhibitedMatches = lunr.Set.empty\\n\\n for (var i = 0; i < this.fields.length; i++) {\\n var field = this.fields[i]\\n\\n if (requiredMatches[field]) {\\n allRequiredMatches = allRequiredMatches.intersect(requiredMatches[field])\\n }\\n\\n if (prohibitedMatches[field]) {\\n allProhibitedMatches = allProhibitedMatches.union(prohibitedMatches[field])\\n }\\n }\\n\\n var matchingFieldRefs = Object.keys(matchingFields),\\n results = [],\\n matches = Object.create(null)\\n\\n /*\\n * If the query is negated (contains only prohibited terms)\\n * we need to get _all_ fieldRefs currently existing in the\\n * index. This is only done when we know that the query is\\n * entirely prohibited terms to avoid any cost of getting all\\n * fieldRefs unnecessarily.\\n *\\n * Additionally, blank MatchData must be created to correctly\\n * populate the results.\\n */\\n if (query.isNegated()) {\\n matchingFieldRefs = Object.keys(this.fieldVectors)\\n\\n for (var i = 0; i < matchingFieldRefs.length; i++) {\\n var matchingFieldRef = matchingFieldRefs[i]\\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRef)\\n matchingFields[matchingFieldRef] = new lunr.MatchData\\n }\\n }\\n\\n for (var i = 0; i < matchingFieldRefs.length; i++) {\\n /*\\n * Currently we have document fields that match the query, but we\\n * need to return documents. The matchData and scores are combined\\n * from multiple fields belonging to the same document.\\n *\\n * Scores are calculated by field, using the query vectors created\\n * above, and combined into a final document score using addition.\\n */\\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRefs[i]),\\n docRef = fieldRef.docRef\\n\\n if (!allRequiredMatches.contains(docRef)) {\\n continue\\n }\\n\\n if (allProhibitedMatches.contains(docRef)) {\\n continue\\n }\\n\\n var fieldVector = this.fieldVectors[fieldRef],\\n score = queryVectors[fieldRef.fieldName].similarity(fieldVector),\\n docMatch\\n\\n if ((docMatch = matches[docRef]) !== undefined) {\\n docMatch.score += score\\n docMatch.matchData.combine(matchingFields[fieldRef])\\n } else {\\n var match = {\\n ref: docRef,\\n score: score,\\n matchData: matchingFields[fieldRef]\\n }\\n matches[docRef] = match\\n results.push(match)\\n }\\n }\\n\\n /*\\n * Sort the results objects by score, highest first.\\n */\\n return results.sort(function (a, b) {\\n return b.score - a.score\\n })\\n}\\n\\n/**\\n * Prepares the index for JSON serialization.\\n *\\n * The schema for this JSON blob will be described in a\\n * separate JSON schema file.\\n *\\n * @returns {Object}\\n */\\nlunr.Index.prototype.toJSON = function () {\\n var invertedIndex = Object.keys(this.invertedIndex)\\n .sort()\\n .map(function (term) {\\n return [term, this.invertedIndex[term]]\\n }, this)\\n\\n var fieldVectors = Object.keys(this.fieldVectors)\\n .map(function (ref) {\\n return [ref, this.fieldVectors[ref].toJSON()]\\n }, this)\\n\\n return {\\n version: lunr.version,\\n fields: this.fields,\\n fieldVectors: fieldVectors,\\n invertedIndex: invertedIndex,\\n pipeline: this.pipeline.toJSON()\\n }\\n}\\n\\n/**\\n * Loads a previously serialized lunr.Index\\n *\\n * @param {Object} serializedIndex - A previously serialized lunr.Index\\n * @returns {lunr.Index}\\n */\\nlunr.Index.load = function (serializedIndex) {\\n var attrs = {},\\n fieldVectors = {},\\n serializedVectors = serializedIndex.fieldVectors,\\n invertedIndex = Object.create(null),\\n serializedInvertedIndex = serializedIndex.invertedIndex,\\n tokenSetBuilder = new lunr.TokenSet.Builder,\\n pipeline = lunr.Pipeline.load(serializedIndex.pipeline)\\n\\n if (serializedIndex.version != lunr.version) {\\n lunr.utils.warn(\\\"Version mismatch when loading serialised index. Current version of lunr '\\\" + lunr.version + \\\"' does not match serialized index '\\\" + serializedIndex.version + \\\"'\\\")\\n }\\n\\n for (var i = 0; i < serializedVectors.length; i++) {\\n var tuple = serializedVectors[i],\\n ref = tuple[0],\\n elements = tuple[1]\\n\\n fieldVectors[ref] = new lunr.Vector(elements)\\n }\\n\\n for (var i = 0; i < serializedInvertedIndex.length; i++) {\\n var tuple = serializedInvertedIndex[i],\\n term = tuple[0],\\n posting = tuple[1]\\n\\n tokenSetBuilder.insert(term)\\n invertedIndex[term] = posting\\n }\\n\\n tokenSetBuilder.finish()\\n\\n attrs.fields = serializedIndex.fields\\n\\n attrs.fieldVectors = fieldVectors\\n attrs.invertedIndex = invertedIndex\\n attrs.tokenSet = tokenSetBuilder.root\\n attrs.pipeline = pipeline\\n\\n return new lunr.Index(attrs)\\n}\\n/*!\\n * lunr.Builder\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * lunr.Builder performs indexing on a set of documents and\\n * returns instances of lunr.Index ready for querying.\\n *\\n * All configuration of the index is done via the builder, the\\n * fields to index, the document reference, the text processing\\n * pipeline and document scoring parameters are all set on the\\n * builder before indexing.\\n *\\n * @constructor\\n * @property {string} _ref - Internal reference to the document reference field.\\n * @property {string[]} _fields - Internal reference to the document fields to index.\\n * @property {object} invertedIndex - The inverted index maps terms to document fields.\\n * @property {object} documentTermFrequencies - Keeps track of document term frequencies.\\n * @property {object} documentLengths - Keeps track of the length of documents added to the index.\\n * @property {lunr.tokenizer} tokenizer - Function for splitting strings into tokens for indexing.\\n * @property {lunr.Pipeline} pipeline - The pipeline performs text processing on tokens before indexing.\\n * @property {lunr.Pipeline} searchPipeline - A pipeline for processing search terms before querying the index.\\n * @property {number} documentCount - Keeps track of the total number of documents indexed.\\n * @property {number} _b - A parameter to control field length normalization, setting this to 0 disabled normalization, 1 fully normalizes field lengths, the default value is 0.75.\\n * @property {number} _k1 - A parameter to control how quickly an increase in term frequency results in term frequency saturation, the default value is 1.2.\\n * @property {number} termIndex - A counter incremented for each unique term, used to identify a terms position in the vector space.\\n * @property {array} metadataWhitelist - A list of metadata keys that have been whitelisted for entry in the index.\\n */\\nlunr.Builder = function () {\\n this._ref = \\\"id\\\"\\n this._fields = Object.create(null)\\n this._documents = Object.create(null)\\n this.invertedIndex = Object.create(null)\\n this.fieldTermFrequencies = {}\\n this.fieldLengths = {}\\n this.tokenizer = lunr.tokenizer\\n this.pipeline = new lunr.Pipeline\\n this.searchPipeline = new lunr.Pipeline\\n this.documentCount = 0\\n this._b = 0.75\\n this._k1 = 1.2\\n this.termIndex = 0\\n this.metadataWhitelist = []\\n}\\n\\n/**\\n * Sets the document field used as the document reference. Every document must have this field.\\n * The type of this field in the document should be a string, if it is not a string it will be\\n * coerced into a string by calling toString.\\n *\\n * The default ref is 'id'.\\n *\\n * The ref should _not_ be changed during indexing, it should be set before any documents are\\n * added to the index. Changing it during indexing can lead to inconsistent results.\\n *\\n * @param {string} ref - The name of the reference field in the document.\\n */\\nlunr.Builder.prototype.ref = function (ref) {\\n this._ref = ref\\n}\\n\\n/**\\n * A function that is used to extract a field from a document.\\n *\\n * Lunr expects a field to be at the top level of a document, if however the field\\n * is deeply nested within a document an extractor function can be used to extract\\n * the right field for indexing.\\n *\\n * @callback fieldExtractor\\n * @param {object} doc - The document being added to the index.\\n * @returns {?(string|object|object[])} obj - The object that will be indexed for this field.\\n * @example Extracting a nested field\\n * function (doc) { return doc.nested.field }\\n */\\n\\n/**\\n * Adds a field to the list of document fields that will be indexed. Every document being\\n * indexed should have this field. Null values for this field in indexed documents will\\n * not cause errors but will limit the chance of that document being retrieved by searches.\\n *\\n * All fields should be added before adding documents to the index. Adding fields after\\n * a document has been indexed will have no effect on already indexed documents.\\n *\\n * Fields can be boosted at build time. This allows terms within that field to have more\\n * importance when ranking search results. Use a field boost to specify that matches within\\n * one field are more important than other fields.\\n *\\n * @param {string} fieldName - The name of a field to index in all documents.\\n * @param {object} attributes - Optional attributes associated with this field.\\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this field.\\n * @param {fieldExtractor} [attributes.extractor] - Function to extract a field from a document.\\n * @throws {RangeError} fieldName cannot contain unsupported characters '/'\\n */\\nlunr.Builder.prototype.field = function (fieldName, attributes) {\\n if (/\\\\//.test(fieldName)) {\\n throw new RangeError (\\\"Field '\\\" + fieldName + \\\"' contains illegal character '/'\\\")\\n }\\n\\n this._fields[fieldName] = attributes || {}\\n}\\n\\n/**\\n * A parameter to tune the amount of field length normalisation that is applied when\\n * calculating relevance scores. A value of 0 will completely disable any normalisation\\n * and a value of 1 will fully normalise field lengths. The default is 0.75. Values of b\\n * will be clamped to the range 0 - 1.\\n *\\n * @param {number} number - The value to set for this tuning parameter.\\n */\\nlunr.Builder.prototype.b = function (number) {\\n if (number < 0) {\\n this._b = 0\\n } else if (number > 1) {\\n this._b = 1\\n } else {\\n this._b = number\\n }\\n}\\n\\n/**\\n * A parameter that controls the speed at which a rise in term frequency results in term\\n * frequency saturation. The default value is 1.2. Setting this to a higher value will give\\n * slower saturation levels, a lower value will result in quicker saturation.\\n *\\n * @param {number} number - The value to set for this tuning parameter.\\n */\\nlunr.Builder.prototype.k1 = function (number) {\\n this._k1 = number\\n}\\n\\n/**\\n * Adds a document to the index.\\n *\\n * Before adding fields to the index the index should have been fully setup, with the document\\n * ref and all fields to index already having been specified.\\n *\\n * The document must have a field name as specified by the ref (by default this is 'id') and\\n * it should have all fields defined for indexing, though null or undefined values will not\\n * cause errors.\\n *\\n * Entire documents can be boosted at build time. Applying a boost to a document indicates that\\n * this document should rank higher in search results than other documents.\\n *\\n * @param {object} doc - The document to add to the index.\\n * @param {object} attributes - Optional attributes associated with this document.\\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this document.\\n */\\nlunr.Builder.prototype.add = function (doc, attributes) {\\n var docRef = doc[this._ref],\\n fields = Object.keys(this._fields)\\n\\n this._documents[docRef] = attributes || {}\\n this.documentCount += 1\\n\\n for (var i = 0; i < fields.length; i++) {\\n var fieldName = fields[i],\\n extractor = this._fields[fieldName].extractor,\\n field = extractor ? extractor(doc) : doc[fieldName],\\n tokens = this.tokenizer(field, {\\n fields: [fieldName]\\n }),\\n terms = this.pipeline.run(tokens),\\n fieldRef = new lunr.FieldRef (docRef, fieldName),\\n fieldTerms = Object.create(null)\\n\\n this.fieldTermFrequencies[fieldRef] = fieldTerms\\n this.fieldLengths[fieldRef] = 0\\n\\n // store the length of this field for this document\\n this.fieldLengths[fieldRef] += terms.length\\n\\n // calculate term frequencies for this field\\n for (var j = 0; j < terms.length; j++) {\\n var term = terms[j]\\n\\n if (fieldTerms[term] == undefined) {\\n fieldTerms[term] = 0\\n }\\n\\n fieldTerms[term] += 1\\n\\n // add to inverted index\\n // create an initial posting if one doesn't exist\\n if (this.invertedIndex[term] == undefined) {\\n var posting = Object.create(null)\\n posting[\\\"_index\\\"] = this.termIndex\\n this.termIndex += 1\\n\\n for (var k = 0; k < fields.length; k++) {\\n posting[fields[k]] = Object.create(null)\\n }\\n\\n this.invertedIndex[term] = posting\\n }\\n\\n // add an entry for this term/fieldName/docRef to the invertedIndex\\n if (this.invertedIndex[term][fieldName][docRef] == undefined) {\\n this.invertedIndex[term][fieldName][docRef] = Object.create(null)\\n }\\n\\n // store all whitelisted metadata about this token in the\\n // inverted index\\n for (var l = 0; l < this.metadataWhitelist.length; l++) {\\n var metadataKey = this.metadataWhitelist[l],\\n metadata = term.metadata[metadataKey]\\n\\n if (this.invertedIndex[term][fieldName][docRef][metadataKey] == undefined) {\\n this.invertedIndex[term][fieldName][docRef][metadataKey] = []\\n }\\n\\n this.invertedIndex[term][fieldName][docRef][metadataKey].push(metadata)\\n }\\n }\\n\\n }\\n}\\n\\n/**\\n * Calculates the average document length for this index\\n *\\n * @private\\n */\\nlunr.Builder.prototype.calculateAverageFieldLengths = function () {\\n\\n var fieldRefs = Object.keys(this.fieldLengths),\\n numberOfFields = fieldRefs.length,\\n accumulator = {},\\n documentsWithField = {}\\n\\n for (var i = 0; i < numberOfFields; i++) {\\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\\n field = fieldRef.fieldName\\n\\n documentsWithField[field] || (documentsWithField[field] = 0)\\n documentsWithField[field] += 1\\n\\n accumulator[field] || (accumulator[field] = 0)\\n accumulator[field] += this.fieldLengths[fieldRef]\\n }\\n\\n var fields = Object.keys(this._fields)\\n\\n for (var i = 0; i < fields.length; i++) {\\n var fieldName = fields[i]\\n accumulator[fieldName] = accumulator[fieldName] / documentsWithField[fieldName]\\n }\\n\\n this.averageFieldLength = accumulator\\n}\\n\\n/**\\n * Builds a vector space model of every document using lunr.Vector\\n *\\n * @private\\n */\\nlunr.Builder.prototype.createFieldVectors = function () {\\n var fieldVectors = {},\\n fieldRefs = Object.keys(this.fieldTermFrequencies),\\n fieldRefsLength = fieldRefs.length,\\n termIdfCache = Object.create(null)\\n\\n for (var i = 0; i < fieldRefsLength; i++) {\\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\\n fieldName = fieldRef.fieldName,\\n fieldLength = this.fieldLengths[fieldRef],\\n fieldVector = new lunr.Vector,\\n termFrequencies = this.fieldTermFrequencies[fieldRef],\\n terms = Object.keys(termFrequencies),\\n termsLength = terms.length\\n\\n\\n var fieldBoost = this._fields[fieldName].boost || 1,\\n docBoost = this._documents[fieldRef.docRef].boost || 1\\n\\n for (var j = 0; j < termsLength; j++) {\\n var term = terms[j],\\n tf = termFrequencies[term],\\n termIndex = this.invertedIndex[term]._index,\\n idf, score, scoreWithPrecision\\n\\n if (termIdfCache[term] === undefined) {\\n idf = lunr.idf(this.invertedIndex[term], this.documentCount)\\n termIdfCache[term] = idf\\n } else {\\n idf = termIdfCache[term]\\n }\\n\\n score = idf * ((this._k1 + 1) * tf) / (this._k1 * (1 - this._b + this._b * (fieldLength / this.averageFieldLength[fieldName])) + tf)\\n score *= fieldBoost\\n score *= docBoost\\n scoreWithPrecision = Math.round(score * 1000) / 1000\\n // Converts 1.23456789 to 1.234.\\n // Reducing the precision so that the vectors take up less\\n // space when serialised. Doing it now so that they behave\\n // the same before and after serialisation. Also, this is\\n // the fastest approach to reducing a number's precision in\\n // JavaScript.\\n\\n fieldVector.insert(termIndex, scoreWithPrecision)\\n }\\n\\n fieldVectors[fieldRef] = fieldVector\\n }\\n\\n this.fieldVectors = fieldVectors\\n}\\n\\n/**\\n * Creates a token set of all tokens in the index using lunr.TokenSet\\n *\\n * @private\\n */\\nlunr.Builder.prototype.createTokenSet = function () {\\n this.tokenSet = lunr.TokenSet.fromArray(\\n Object.keys(this.invertedIndex).sort()\\n )\\n}\\n\\n/**\\n * Builds the index, creating an instance of lunr.Index.\\n *\\n * This completes the indexing process and should only be called\\n * once all documents have been added to the index.\\n *\\n * @returns {lunr.Index}\\n */\\nlunr.Builder.prototype.build = function () {\\n this.calculateAverageFieldLengths()\\n this.createFieldVectors()\\n this.createTokenSet()\\n\\n return new lunr.Index({\\n invertedIndex: this.invertedIndex,\\n fieldVectors: this.fieldVectors,\\n tokenSet: this.tokenSet,\\n fields: Object.keys(this._fields),\\n pipeline: this.searchPipeline\\n })\\n}\\n\\n/**\\n * Applies a plugin to the index builder.\\n *\\n * A plugin is a function that is called with the index builder as its context.\\n * Plugins can be used to customise or extend the behaviour of the index\\n * in some way. A plugin is just a function, that encapsulated the custom\\n * behaviour that should be applied when building the index.\\n *\\n * The plugin function will be called with the index builder as its argument, additional\\n * arguments can also be passed when calling use. The function will be called\\n * with the index builder as its context.\\n *\\n * @param {Function} plugin The plugin to apply.\\n */\\nlunr.Builder.prototype.use = function (fn) {\\n var args = Array.prototype.slice.call(arguments, 1)\\n args.unshift(this)\\n fn.apply(this, args)\\n}\\n/**\\n * Contains and collects metadata about a matching document.\\n * A single instance of lunr.MatchData is returned as part of every\\n * lunr.Index~Result.\\n *\\n * @constructor\\n * @param {string} term - The term this match data is associated with\\n * @param {string} field - The field in which the term was found\\n * @param {object} metadata - The metadata recorded about this term in this field\\n * @property {object} metadata - A cloned collection of metadata associated with this document.\\n * @see {@link lunr.Index~Result}\\n */\\nlunr.MatchData = function (term, field, metadata) {\\n var clonedMetadata = Object.create(null),\\n metadataKeys = Object.keys(metadata || {})\\n\\n // Cloning the metadata to prevent the original\\n // being mutated during match data combination.\\n // Metadata is kept in an array within the inverted\\n // index so cloning the data can be done with\\n // Array#slice\\n for (var i = 0; i < metadataKeys.length; i++) {\\n var key = metadataKeys[i]\\n clonedMetadata[key] = metadata[key].slice()\\n }\\n\\n this.metadata = Object.create(null)\\n\\n if (term !== undefined) {\\n this.metadata[term] = Object.create(null)\\n this.metadata[term][field] = clonedMetadata\\n }\\n}\\n\\n/**\\n * An instance of lunr.MatchData will be created for every term that matches a\\n * document. However only one instance is required in a lunr.Index~Result. This\\n * method combines metadata from another instance of lunr.MatchData with this\\n * objects metadata.\\n *\\n * @param {lunr.MatchData} otherMatchData - Another instance of match data to merge with this one.\\n * @see {@link lunr.Index~Result}\\n */\\nlunr.MatchData.prototype.combine = function (otherMatchData) {\\n var terms = Object.keys(otherMatchData.metadata)\\n\\n for (var i = 0; i < terms.length; i++) {\\n var term = terms[i],\\n fields = Object.keys(otherMatchData.metadata[term])\\n\\n if (this.metadata[term] == undefined) {\\n this.metadata[term] = Object.create(null)\\n }\\n\\n for (var j = 0; j < fields.length; j++) {\\n var field = fields[j],\\n keys = Object.keys(otherMatchData.metadata[term][field])\\n\\n if (this.metadata[term][field] == undefined) {\\n this.metadata[term][field] = Object.create(null)\\n }\\n\\n for (var k = 0; k < keys.length; k++) {\\n var key = keys[k]\\n\\n if (this.metadata[term][field][key] == undefined) {\\n this.metadata[term][field][key] = otherMatchData.metadata[term][field][key]\\n } else {\\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(otherMatchData.metadata[term][field][key])\\n }\\n\\n }\\n }\\n }\\n}\\n\\n/**\\n * Add metadata for a term/field pair to this instance of match data.\\n *\\n * @param {string} term - The term this match data is associated with\\n * @param {string} field - The field in which the term was found\\n * @param {object} metadata - The metadata recorded about this term in this field\\n */\\nlunr.MatchData.prototype.add = function (term, field, metadata) {\\n if (!(term in this.metadata)) {\\n this.metadata[term] = Object.create(null)\\n this.metadata[term][field] = metadata\\n return\\n }\\n\\n if (!(field in this.metadata[term])) {\\n this.metadata[term][field] = metadata\\n return\\n }\\n\\n var metadataKeys = Object.keys(metadata)\\n\\n for (var i = 0; i < metadataKeys.length; i++) {\\n var key = metadataKeys[i]\\n\\n if (key in this.metadata[term][field]) {\\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(metadata[key])\\n } else {\\n this.metadata[term][field][key] = metadata[key]\\n }\\n }\\n}\\n/**\\n * A lunr.Query provides a programmatic way of defining queries to be performed\\n * against a {@link lunr.Index}.\\n *\\n * Prefer constructing a lunr.Query using the {@link lunr.Index#query} method\\n * so the query object is pre-initialized with the right index fields.\\n *\\n * @constructor\\n * @property {lunr.Query~Clause[]} clauses - An array of query clauses.\\n * @property {string[]} allFields - An array of all available fields in a lunr.Index.\\n */\\nlunr.Query = function (allFields) {\\n this.clauses = []\\n this.allFields = allFields\\n}\\n\\n/**\\n * Constants for indicating what kind of automatic wildcard insertion will be used when constructing a query clause.\\n *\\n * This allows wildcards to be added to the beginning and end of a term without having to manually do any string\\n * concatenation.\\n *\\n * The wildcard constants can be bitwise combined to select both leading and trailing wildcards.\\n *\\n * @constant\\n * @default\\n * @property {number} wildcard.NONE - The term will have no wildcards inserted, this is the default behaviour\\n * @property {number} wildcard.LEADING - Prepend the term with a wildcard, unless a leading wildcard already exists\\n * @property {number} wildcard.TRAILING - Append a wildcard to the term, unless a trailing wildcard already exists\\n * @see lunr.Query~Clause\\n * @see lunr.Query#clause\\n * @see lunr.Query#term\\n * @example query term with trailing wildcard\\n * query.term('foo', { wildcard: lunr.Query.wildcard.TRAILING })\\n * @example query term with leading and trailing wildcard\\n * query.term('foo', {\\n * wildcard: lunr.Query.wildcard.LEADING | lunr.Query.wildcard.TRAILING\\n * })\\n */\\n\\nlunr.Query.wildcard = new String (\\\"*\\\")\\nlunr.Query.wildcard.NONE = 0\\nlunr.Query.wildcard.LEADING = 1\\nlunr.Query.wildcard.TRAILING = 2\\n\\n/**\\n * Constants for indicating what kind of presence a term must have in matching documents.\\n *\\n * @constant\\n * @enum {number}\\n * @see lunr.Query~Clause\\n * @see lunr.Query#clause\\n * @see lunr.Query#term\\n * @example query term with required presence\\n * query.term('foo', { presence: lunr.Query.presence.REQUIRED })\\n */\\nlunr.Query.presence = {\\n /**\\n * Term's presence in a document is optional, this is the default value.\\n */\\n OPTIONAL: 1,\\n\\n /**\\n * Term's presence in a document is required, documents that do not contain\\n * this term will not be returned.\\n */\\n REQUIRED: 2,\\n\\n /**\\n * Term's presence in a document is prohibited, documents that do contain\\n * this term will not be returned.\\n */\\n PROHIBITED: 3\\n}\\n\\n/**\\n * A single clause in a {@link lunr.Query} contains a term and details on how to\\n * match that term against a {@link lunr.Index}.\\n *\\n * @typedef {Object} lunr.Query~Clause\\n * @property {string[]} fields - The fields in an index this clause should be matched against.\\n * @property {number} [boost=1] - Any boost that should be applied when matching this clause.\\n * @property {number} [editDistance] - Whether the term should have fuzzy matching applied, and how fuzzy the match should be.\\n * @property {boolean} [usePipeline] - Whether the term should be passed through the search pipeline.\\n * @property {number} [wildcard=lunr.Query.wildcard.NONE] - Whether the term should have wildcards appended or prepended.\\n * @property {number} [presence=lunr.Query.presence.OPTIONAL] - The terms presence in any matching documents.\\n */\\n\\n/**\\n * Adds a {@link lunr.Query~Clause} to this query.\\n *\\n * Unless the clause contains the fields to be matched all fields will be matched. In addition\\n * a default boost of 1 is applied to the clause.\\n *\\n * @param {lunr.Query~Clause} clause - The clause to add to this query.\\n * @see lunr.Query~Clause\\n * @returns {lunr.Query}\\n */\\nlunr.Query.prototype.clause = function (clause) {\\n if (!('fields' in clause)) {\\n clause.fields = this.allFields\\n }\\n\\n if (!('boost' in clause)) {\\n clause.boost = 1\\n }\\n\\n if (!('usePipeline' in clause)) {\\n clause.usePipeline = true\\n }\\n\\n if (!('wildcard' in clause)) {\\n clause.wildcard = lunr.Query.wildcard.NONE\\n }\\n\\n if ((clause.wildcard & lunr.Query.wildcard.LEADING) && (clause.term.charAt(0) != lunr.Query.wildcard)) {\\n clause.term = \\\"*\\\" + clause.term\\n }\\n\\n if ((clause.wildcard & lunr.Query.wildcard.TRAILING) && (clause.term.slice(-1) != lunr.Query.wildcard)) {\\n clause.term = \\\"\\\" + clause.term + \\\"*\\\"\\n }\\n\\n if (!('presence' in clause)) {\\n clause.presence = lunr.Query.presence.OPTIONAL\\n }\\n\\n this.clauses.push(clause)\\n\\n return this\\n}\\n\\n/**\\n * A negated query is one in which every clause has a presence of\\n * prohibited. These queries require some special processing to return\\n * the expected results.\\n *\\n * @returns boolean\\n */\\nlunr.Query.prototype.isNegated = function () {\\n for (var i = 0; i < this.clauses.length; i++) {\\n if (this.clauses[i].presence != lunr.Query.presence.PROHIBITED) {\\n return false\\n }\\n }\\n\\n return true\\n}\\n\\n/**\\n * Adds a term to the current query, under the covers this will create a {@link lunr.Query~Clause}\\n * to the list of clauses that make up this query.\\n *\\n * The term is used as is, i.e. no tokenization will be performed by this method. Instead conversion\\n * to a token or token-like string should be done before calling this method.\\n *\\n * The term will be converted to a string by calling `toString`. Multiple terms can be passed as an\\n * array, each term in the array will share the same options.\\n *\\n * @param {object|object[]} term - The term(s) to add to the query.\\n * @param {object} [options] - Any additional properties to add to the query clause.\\n * @returns {lunr.Query}\\n * @see lunr.Query#clause\\n * @see lunr.Query~Clause\\n * @example adding a single term to a query\\n * query.term(\\\"foo\\\")\\n * @example adding a single term to a query and specifying search fields, term boost and automatic trailing wildcard\\n * query.term(\\\"foo\\\", {\\n * fields: [\\\"title\\\"],\\n * boost: 10,\\n * wildcard: lunr.Query.wildcard.TRAILING\\n * })\\n * @example using lunr.tokenizer to convert a string to tokens before using them as terms\\n * query.term(lunr.tokenizer(\\\"foo bar\\\"))\\n */\\nlunr.Query.prototype.term = function (term, options) {\\n if (Array.isArray(term)) {\\n term.forEach(function (t) { this.term(t, lunr.utils.clone(options)) }, this)\\n return this\\n }\\n\\n var clause = options || {}\\n clause.term = term.toString()\\n\\n this.clause(clause)\\n\\n return this\\n}\\nlunr.QueryParseError = function (message, start, end) {\\n this.name = \\\"QueryParseError\\\"\\n this.message = message\\n this.start = start\\n this.end = end\\n}\\n\\nlunr.QueryParseError.prototype = new Error\\nlunr.QueryLexer = function (str) {\\n this.lexemes = []\\n this.str = str\\n this.length = str.length\\n this.pos = 0\\n this.start = 0\\n this.escapeCharPositions = []\\n}\\n\\nlunr.QueryLexer.prototype.run = function () {\\n var state = lunr.QueryLexer.lexText\\n\\n while (state) {\\n state = state(this)\\n }\\n}\\n\\nlunr.QueryLexer.prototype.sliceString = function () {\\n var subSlices = [],\\n sliceStart = this.start,\\n sliceEnd = this.pos\\n\\n for (var i = 0; i < this.escapeCharPositions.length; i++) {\\n sliceEnd = this.escapeCharPositions[i]\\n subSlices.push(this.str.slice(sliceStart, sliceEnd))\\n sliceStart = sliceEnd + 1\\n }\\n\\n subSlices.push(this.str.slice(sliceStart, this.pos))\\n this.escapeCharPositions.length = 0\\n\\n return subSlices.join('')\\n}\\n\\nlunr.QueryLexer.prototype.emit = function (type) {\\n this.lexemes.push({\\n type: type,\\n str: this.sliceString(),\\n start: this.start,\\n end: this.pos\\n })\\n\\n this.start = this.pos\\n}\\n\\nlunr.QueryLexer.prototype.escapeCharacter = function () {\\n this.escapeCharPositions.push(this.pos - 1)\\n this.pos += 1\\n}\\n\\nlunr.QueryLexer.prototype.next = function () {\\n if (this.pos >= this.length) {\\n return lunr.QueryLexer.EOS\\n }\\n\\n var char = this.str.charAt(this.pos)\\n this.pos += 1\\n return char\\n}\\n\\nlunr.QueryLexer.prototype.width = function () {\\n return this.pos - this.start\\n}\\n\\nlunr.QueryLexer.prototype.ignore = function () {\\n if (this.start == this.pos) {\\n this.pos += 1\\n }\\n\\n this.start = this.pos\\n}\\n\\nlunr.QueryLexer.prototype.backup = function () {\\n this.pos -= 1\\n}\\n\\nlunr.QueryLexer.prototype.acceptDigitRun = function () {\\n var char, charCode\\n\\n do {\\n char = this.next()\\n charCode = char.charCodeAt(0)\\n } while (charCode > 47 && charCode < 58)\\n\\n if (char != lunr.QueryLexer.EOS) {\\n this.backup()\\n }\\n}\\n\\nlunr.QueryLexer.prototype.more = function () {\\n return this.pos < this.length\\n}\\n\\nlunr.QueryLexer.EOS = 'EOS'\\nlunr.QueryLexer.FIELD = 'FIELD'\\nlunr.QueryLexer.TERM = 'TERM'\\nlunr.QueryLexer.EDIT_DISTANCE = 'EDIT_DISTANCE'\\nlunr.QueryLexer.BOOST = 'BOOST'\\nlunr.QueryLexer.PRESENCE = 'PRESENCE'\\n\\nlunr.QueryLexer.lexField = function (lexer) {\\n lexer.backup()\\n lexer.emit(lunr.QueryLexer.FIELD)\\n lexer.ignore()\\n return lunr.QueryLexer.lexText\\n}\\n\\nlunr.QueryLexer.lexTerm = function (lexer) {\\n if (lexer.width() > 1) {\\n lexer.backup()\\n lexer.emit(lunr.QueryLexer.TERM)\\n }\\n\\n lexer.ignore()\\n\\n if (lexer.more()) {\\n return lunr.QueryLexer.lexText\\n }\\n}\\n\\nlunr.QueryLexer.lexEditDistance = function (lexer) {\\n lexer.ignore()\\n lexer.acceptDigitRun()\\n lexer.emit(lunr.QueryLexer.EDIT_DISTANCE)\\n return lunr.QueryLexer.lexText\\n}\\n\\nlunr.QueryLexer.lexBoost = function (lexer) {\\n lexer.ignore()\\n lexer.acceptDigitRun()\\n lexer.emit(lunr.QueryLexer.BOOST)\\n return lunr.QueryLexer.lexText\\n}\\n\\nlunr.QueryLexer.lexEOS = function (lexer) {\\n if (lexer.width() > 0) {\\n lexer.emit(lunr.QueryLexer.TERM)\\n }\\n}\\n\\n// This matches the separator used when tokenising fields\\n// within a document. These should match otherwise it is\\n// not possible to search for some tokens within a document.\\n//\\n// It is possible for the user to change the separator on the\\n// tokenizer so it _might_ clash with any other of the special\\n// characters already used within the search string, e.g. :.\\n//\\n// This means that it is possible to change the separator in\\n// such a way that makes some words unsearchable using a search\\n// string.\\nlunr.QueryLexer.termSeparator = lunr.tokenizer.separator\\n\\nlunr.QueryLexer.lexText = function (lexer) {\\n while (true) {\\n var char = lexer.next()\\n\\n if (char == lunr.QueryLexer.EOS) {\\n return lunr.QueryLexer.lexEOS\\n }\\n\\n // Escape character is '\\\\'\\n if (char.charCodeAt(0) == 92) {\\n lexer.escapeCharacter()\\n continue\\n }\\n\\n if (char == \\\":\\\") {\\n return lunr.QueryLexer.lexField\\n }\\n\\n if (char == \\\"~\\\") {\\n lexer.backup()\\n if (lexer.width() > 0) {\\n lexer.emit(lunr.QueryLexer.TERM)\\n }\\n return lunr.QueryLexer.lexEditDistance\\n }\\n\\n if (char == \\\"^\\\") {\\n lexer.backup()\\n if (lexer.width() > 0) {\\n lexer.emit(lunr.QueryLexer.TERM)\\n }\\n return lunr.QueryLexer.lexBoost\\n }\\n\\n // \\\"+\\\" indicates term presence is required\\n // checking for length to ensure that only\\n // leading \\\"+\\\" are considered\\n if (char == \\\"+\\\" && lexer.width() === 1) {\\n lexer.emit(lunr.QueryLexer.PRESENCE)\\n return lunr.QueryLexer.lexText\\n }\\n\\n // \\\"-\\\" indicates term presence is prohibited\\n // checking for length to ensure that only\\n // leading \\\"-\\\" are considered\\n if (char == \\\"-\\\" && lexer.width() === 1) {\\n lexer.emit(lunr.QueryLexer.PRESENCE)\\n return lunr.QueryLexer.lexText\\n }\\n\\n if (char.match(lunr.QueryLexer.termSeparator)) {\\n return lunr.QueryLexer.lexTerm\\n }\\n }\\n}\\n\\nlunr.QueryParser = function (str, query) {\\n this.lexer = new lunr.QueryLexer (str)\\n this.query = query\\n this.currentClause = {}\\n this.lexemeIdx = 0\\n}\\n\\nlunr.QueryParser.prototype.parse = function () {\\n this.lexer.run()\\n this.lexemes = this.lexer.lexemes\\n\\n var state = lunr.QueryParser.parseClause\\n\\n while (state) {\\n state = state(this)\\n }\\n\\n return this.query\\n}\\n\\nlunr.QueryParser.prototype.peekLexeme = function () {\\n return this.lexemes[this.lexemeIdx]\\n}\\n\\nlunr.QueryParser.prototype.consumeLexeme = function () {\\n var lexeme = this.peekLexeme()\\n this.lexemeIdx += 1\\n return lexeme\\n}\\n\\nlunr.QueryParser.prototype.nextClause = function () {\\n var completedClause = this.currentClause\\n this.query.clause(completedClause)\\n this.currentClause = {}\\n}\\n\\nlunr.QueryParser.parseClause = function (parser) {\\n var lexeme = parser.peekLexeme()\\n\\n if (lexeme == undefined) {\\n return\\n }\\n\\n switch (lexeme.type) {\\n case lunr.QueryLexer.PRESENCE:\\n return lunr.QueryParser.parsePresence\\n case lunr.QueryLexer.FIELD:\\n return lunr.QueryParser.parseField\\n case lunr.QueryLexer.TERM:\\n return lunr.QueryParser.parseTerm\\n default:\\n var errorMessage = \\\"expected either a field or a term, found \\\" + lexeme.type\\n\\n if (lexeme.str.length >= 1) {\\n errorMessage += \\\" with value '\\\" + lexeme.str + \\\"'\\\"\\n }\\n\\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\\n }\\n}\\n\\nlunr.QueryParser.parsePresence = function (parser) {\\n var lexeme = parser.consumeLexeme()\\n\\n if (lexeme == undefined) {\\n return\\n }\\n\\n switch (lexeme.str) {\\n case \\\"-\\\":\\n parser.currentClause.presence = lunr.Query.presence.PROHIBITED\\n break\\n case \\\"+\\\":\\n parser.currentClause.presence = lunr.Query.presence.REQUIRED\\n break\\n default:\\n var errorMessage = \\\"unrecognised presence operator'\\\" + lexeme.str + \\\"'\\\"\\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\\n }\\n\\n var nextLexeme = parser.peekLexeme()\\n\\n if (nextLexeme == undefined) {\\n var errorMessage = \\\"expecting term or field, found nothing\\\"\\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\\n }\\n\\n switch (nextLexeme.type) {\\n case lunr.QueryLexer.FIELD:\\n return lunr.QueryParser.parseField\\n case lunr.QueryLexer.TERM:\\n return lunr.QueryParser.parseTerm\\n default:\\n var errorMessage = \\\"expecting term or field, found '\\\" + nextLexeme.type + \\\"'\\\"\\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\\n }\\n}\\n\\nlunr.QueryParser.parseField = function (parser) {\\n var lexeme = parser.consumeLexeme()\\n\\n if (lexeme == undefined) {\\n return\\n }\\n\\n if (parser.query.allFields.indexOf(lexeme.str) == -1) {\\n var possibleFields = parser.query.allFields.map(function (f) { return \\\"'\\\" + f + \\\"'\\\" }).join(', '),\\n errorMessage = \\\"unrecognised field '\\\" + lexeme.str + \\\"', possible fields: \\\" + possibleFields\\n\\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\\n }\\n\\n parser.currentClause.fields = [lexeme.str]\\n\\n var nextLexeme = parser.peekLexeme()\\n\\n if (nextLexeme == undefined) {\\n var errorMessage = \\\"expecting term, found nothing\\\"\\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\\n }\\n\\n switch (nextLexeme.type) {\\n case lunr.QueryLexer.TERM:\\n return lunr.QueryParser.parseTerm\\n default:\\n var errorMessage = \\\"expecting term, found '\\\" + nextLexeme.type + \\\"'\\\"\\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\\n }\\n}\\n\\nlunr.QueryParser.parseTerm = function (parser) {\\n var lexeme = parser.consumeLexeme()\\n\\n if (lexeme == undefined) {\\n return\\n }\\n\\n parser.currentClause.term = lexeme.str.toLowerCase()\\n\\n if (lexeme.str.indexOf(\\\"*\\\") != -1) {\\n parser.currentClause.usePipeline = false\\n }\\n\\n var nextLexeme = parser.peekLexeme()\\n\\n if (nextLexeme == undefined) {\\n parser.nextClause()\\n return\\n }\\n\\n switch (nextLexeme.type) {\\n case lunr.QueryLexer.TERM:\\n parser.nextClause()\\n return lunr.QueryParser.parseTerm\\n case lunr.QueryLexer.FIELD:\\n parser.nextClause()\\n return lunr.QueryParser.parseField\\n case lunr.QueryLexer.EDIT_DISTANCE:\\n return lunr.QueryParser.parseEditDistance\\n case lunr.QueryLexer.BOOST:\\n return lunr.QueryParser.parseBoost\\n case lunr.QueryLexer.PRESENCE:\\n parser.nextClause()\\n return lunr.QueryParser.parsePresence\\n default:\\n var errorMessage = \\\"Unexpected lexeme type '\\\" + nextLexeme.type + \\\"'\\\"\\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\\n }\\n}\\n\\nlunr.QueryParser.parseEditDistance = function (parser) {\\n var lexeme = parser.consumeLexeme()\\n\\n if (lexeme == undefined) {\\n return\\n }\\n\\n var editDistance = parseInt(lexeme.str, 10)\\n\\n if (isNaN(editDistance)) {\\n var errorMessage = \\\"edit distance must be numeric\\\"\\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\\n }\\n\\n parser.currentClause.editDistance = editDistance\\n\\n var nextLexeme = parser.peekLexeme()\\n\\n if (nextLexeme == undefined) {\\n parser.nextClause()\\n return\\n }\\n\\n switch (nextLexeme.type) {\\n case lunr.QueryLexer.TERM:\\n parser.nextClause()\\n return lunr.QueryParser.parseTerm\\n case lunr.QueryLexer.FIELD:\\n parser.nextClause()\\n return lunr.QueryParser.parseField\\n case lunr.QueryLexer.EDIT_DISTANCE:\\n return lunr.QueryParser.parseEditDistance\\n case lunr.QueryLexer.BOOST:\\n return lunr.QueryParser.parseBoost\\n case lunr.QueryLexer.PRESENCE:\\n parser.nextClause()\\n return lunr.QueryParser.parsePresence\\n default:\\n var errorMessage = \\\"Unexpected lexeme type '\\\" + nextLexeme.type + \\\"'\\\"\\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\\n }\\n}\\n\\nlunr.QueryParser.parseBoost = function (parser) {\\n var lexeme = parser.consumeLexeme()\\n\\n if (lexeme == undefined) {\\n return\\n }\\n\\n var boost = parseInt(lexeme.str, 10)\\n\\n if (isNaN(boost)) {\\n var errorMessage = \\\"boost must be numeric\\\"\\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\\n }\\n\\n parser.currentClause.boost = boost\\n\\n var nextLexeme = parser.peekLexeme()\\n\\n if (nextLexeme == undefined) {\\n parser.nextClause()\\n return\\n }\\n\\n switch (nextLexeme.type) {\\n case lunr.QueryLexer.TERM:\\n parser.nextClause()\\n return lunr.QueryParser.parseTerm\\n case lunr.QueryLexer.FIELD:\\n parser.nextClause()\\n return lunr.QueryParser.parseField\\n case lunr.QueryLexer.EDIT_DISTANCE:\\n return lunr.QueryParser.parseEditDistance\\n case lunr.QueryLexer.BOOST:\\n return lunr.QueryParser.parseBoost\\n case lunr.QueryLexer.PRESENCE:\\n parser.nextClause()\\n return lunr.QueryParser.parsePresence\\n default:\\n var errorMessage = \\\"Unexpected lexeme type '\\\" + nextLexeme.type + \\\"'\\\"\\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\\n }\\n}\\n\\n /**\\n * export the module via AMD, CommonJS or as a browser global\\n * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js\\n */\\n ;(function (root, factory) {\\n if (true) {\\n // AMD. Register as an anonymous module.\\n !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\\n\\t\\t\\t\\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\\n\\t\\t\\t\\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\\n\\t\\t\\t\\t__WEBPACK_AMD_DEFINE_FACTORY__),\\n\\t\\t\\t\\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))\\n } else {}\\n }(this, function () {\\n /**\\n * Just return a value to define the module export.\\n * This example returns an object, but the module\\n * can return a function as the exported value.\\n */\\n return lunr\\n }))\\n})();\\n\\n\\n/***/ }),\\n/* 5 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = function (exec) {\\n try {\\n return !!exec();\\n } catch (error) {\\n return true;\\n }\\n};\\n\\n\\n/***/ }),\\n/* 6 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar DESCRIPTORS = __webpack_require__(8);\\nvar definePropertyModule = __webpack_require__(9);\\nvar createPropertyDescriptor = __webpack_require__(22);\\n\\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\\n} : function (object, key, value) {\\n object[key] = value;\\n return object;\\n};\\n\\n\\n/***/ }),\\n/* 7 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = function (it) {\\n return typeof it === 'object' ? it !== null : typeof it === 'function';\\n};\\n\\n\\n/***/ }),\\n/* 8 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar fails = __webpack_require__(5);\\n\\n// Thank's IE8 for his funny defineProperty\\nmodule.exports = !fails(function () {\\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\\n});\\n\\n\\n/***/ }),\\n/* 9 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar DESCRIPTORS = __webpack_require__(8);\\nvar IE8_DOM_DEFINE = __webpack_require__(34);\\nvar anObject = __webpack_require__(2);\\nvar toPrimitive = __webpack_require__(35);\\n\\nvar nativeDefineProperty = Object.defineProperty;\\n\\n// `Object.defineProperty` method\\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\\n anObject(O);\\n P = toPrimitive(P, true);\\n anObject(Attributes);\\n if (IE8_DOM_DEFINE) try {\\n return nativeDefineProperty(O, P, Attributes);\\n } catch (error) { /* empty */ }\\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\\n if ('value' in Attributes) O[P] = Attributes.value;\\n return O;\\n};\\n\\n\\n/***/ }),\\n/* 10 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar createNonEnumerableProperty = __webpack_require__(6);\\nvar has = __webpack_require__(3);\\nvar setGlobal = __webpack_require__(20);\\nvar inspectSource = __webpack_require__(23);\\nvar InternalStateModule = __webpack_require__(16);\\n\\nvar getInternalState = InternalStateModule.get;\\nvar enforceInternalState = InternalStateModule.enforce;\\nvar TEMPLATE = String(String).split('String');\\n\\n(module.exports = function (O, key, value, options) {\\n var unsafe = options ? !!options.unsafe : false;\\n var simple = options ? !!options.enumerable : false;\\n var noTargetGet = options ? !!options.noTargetGet : false;\\n if (typeof value == 'function') {\\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\\n }\\n if (O === global) {\\n if (simple) O[key] = value;\\n else setGlobal(key, value);\\n return;\\n } else if (!unsafe) {\\n delete O[key];\\n } else if (!noTargetGet && O[key]) {\\n simple = true;\\n }\\n if (simple) O[key] = value;\\n else createNonEnumerableProperty(O, key, value);\\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\\n})(Function.prototype, 'toString', function toString() {\\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\\n});\\n\\n\\n/***/ }),\\n/* 11 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar path = __webpack_require__(40);\\nvar global = __webpack_require__(0);\\n\\nvar aFunction = function (variable) {\\n return typeof variable == 'function' ? variable : undefined;\\n};\\n\\nmodule.exports = function (namespace, method) {\\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\\n};\\n\\n\\n/***/ }),\\n/* 12 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = false;\\n\\n\\n/***/ }),\\n/* 13 */\\n/***/ (function(module, exports) {\\n\\nvar toString = {}.toString;\\n\\nmodule.exports = function (it) {\\n return toString.call(it).slice(8, -1);\\n};\\n\\n\\n/***/ }),\\n/* 14 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = {};\\n\\n\\n/***/ }),\\n/* 15 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = function (it) {\\n if (typeof it != 'function') {\\n throw TypeError(String(it) + ' is not a function');\\n } return it;\\n};\\n\\n\\n/***/ }),\\n/* 16 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar NATIVE_WEAK_MAP = __webpack_require__(61);\\nvar global = __webpack_require__(0);\\nvar isObject = __webpack_require__(7);\\nvar createNonEnumerableProperty = __webpack_require__(6);\\nvar objectHas = __webpack_require__(3);\\nvar sharedKey = __webpack_require__(24);\\nvar hiddenKeys = __webpack_require__(25);\\n\\nvar WeakMap = global.WeakMap;\\nvar set, get, has;\\n\\nvar enforce = function (it) {\\n return has(it) ? get(it) : set(it, {});\\n};\\n\\nvar getterFor = function (TYPE) {\\n return function (it) {\\n var state;\\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\\n } return state;\\n };\\n};\\n\\nif (NATIVE_WEAK_MAP) {\\n var store = new WeakMap();\\n var wmget = store.get;\\n var wmhas = store.has;\\n var wmset = store.set;\\n set = function (it, metadata) {\\n wmset.call(store, it, metadata);\\n return metadata;\\n };\\n get = function (it) {\\n return wmget.call(store, it) || {};\\n };\\n has = function (it) {\\n return wmhas.call(store, it);\\n };\\n} else {\\n var STATE = sharedKey('state');\\n hiddenKeys[STATE] = true;\\n set = function (it, metadata) {\\n createNonEnumerableProperty(it, STATE, metadata);\\n return metadata;\\n };\\n get = function (it) {\\n return objectHas(it, STATE) ? it[STATE] : {};\\n };\\n has = function (it) {\\n return objectHas(it, STATE);\\n };\\n}\\n\\nmodule.exports = {\\n set: set,\\n get: get,\\n has: has,\\n enforce: enforce,\\n getterFor: getterFor\\n};\\n\\n\\n/***/ }),\\n/* 17 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar getOwnPropertyDescriptor = __webpack_require__(28).f;\\nvar createNonEnumerableProperty = __webpack_require__(6);\\nvar redefine = __webpack_require__(10);\\nvar setGlobal = __webpack_require__(20);\\nvar copyConstructorProperties = __webpack_require__(67);\\nvar isForced = __webpack_require__(43);\\n\\n/*\\n options.target - name of the target object\\n options.global - target is the global object\\n options.stat - export as static methods of target\\n options.proto - export as prototype methods of target\\n options.real - real prototype method for the `pure` version\\n options.forced - export even if the native feature is available\\n options.bind - bind methods to the target, required for the `pure` version\\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\\n options.sham - add a flag to not completely full polyfills\\n options.enumerable - export as enumerable property\\n options.noTargetGet - prevent calling a getter on target\\n*/\\nmodule.exports = function (options, source) {\\n var TARGET = options.target;\\n var GLOBAL = options.global;\\n var STATIC = options.stat;\\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\\n if (GLOBAL) {\\n target = global;\\n } else if (STATIC) {\\n target = global[TARGET] || setGlobal(TARGET, {});\\n } else {\\n target = (global[TARGET] || {}).prototype;\\n }\\n if (target) for (key in source) {\\n sourceProperty = source[key];\\n if (options.noTargetGet) {\\n descriptor = getOwnPropertyDescriptor(target, key);\\n targetProperty = descriptor && descriptor.value;\\n } else targetProperty = target[key];\\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\\n // contained in target\\n if (!FORCED && targetProperty !== undefined) {\\n if (typeof sourceProperty === typeof targetProperty) continue;\\n copyConstructorProperties(sourceProperty, targetProperty);\\n }\\n // add a flag to not completely full polyfills\\n if (options.sham || (targetProperty && targetProperty.sham)) {\\n createNonEnumerableProperty(sourceProperty, 'sham', true);\\n }\\n // extend global\\n redefine(target, key, sourceProperty, options);\\n }\\n};\\n\\n\\n/***/ }),\\n/* 18 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n// toObject with fallback for non-array-like ES3 strings\\nvar IndexedObject = __webpack_require__(66);\\nvar requireObjectCoercible = __webpack_require__(27);\\n\\nmodule.exports = function (it) {\\n return IndexedObject(requireObjectCoercible(it));\\n};\\n\\n\\n/***/ }),\\n/* 19 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar wellKnownSymbol = __webpack_require__(1);\\n\\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\\nvar test = {};\\n\\ntest[TO_STRING_TAG] = 'z';\\n\\nmodule.exports = String(test) === '[object z]';\\n\\n\\n/***/ }),\\n/* 20 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar createNonEnumerableProperty = __webpack_require__(6);\\n\\nmodule.exports = function (key, value) {\\n try {\\n createNonEnumerableProperty(global, key, value);\\n } catch (error) {\\n global[key] = value;\\n } return value;\\n};\\n\\n\\n/***/ }),\\n/* 21 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar isObject = __webpack_require__(7);\\n\\nvar document = global.document;\\n// typeof document.createElement is 'object' in old IE\\nvar EXISTS = isObject(document) && isObject(document.createElement);\\n\\nmodule.exports = function (it) {\\n return EXISTS ? document.createElement(it) : {};\\n};\\n\\n\\n/***/ }),\\n/* 22 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = function (bitmap, value) {\\n return {\\n enumerable: !(bitmap & 1),\\n configurable: !(bitmap & 2),\\n writable: !(bitmap & 4),\\n value: value\\n };\\n};\\n\\n\\n/***/ }),\\n/* 23 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar store = __webpack_require__(33);\\n\\nvar functionToString = Function.toString;\\n\\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\\nif (typeof store.inspectSource != 'function') {\\n store.inspectSource = function (it) {\\n return functionToString.call(it);\\n };\\n}\\n\\nmodule.exports = store.inspectSource;\\n\\n\\n/***/ }),\\n/* 24 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar shared = __webpack_require__(32);\\nvar uid = __webpack_require__(36);\\n\\nvar keys = shared('keys');\\n\\nmodule.exports = function (key) {\\n return keys[key] || (keys[key] = uid(key));\\n};\\n\\n\\n/***/ }),\\n/* 25 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = {};\\n\\n\\n/***/ }),\\n/* 26 */\\n/***/ (function(module, exports) {\\n\\nvar ceil = Math.ceil;\\nvar floor = Math.floor;\\n\\n// `ToInteger` abstract operation\\n// https://tc39.github.io/ecma262/#sec-tointeger\\nmodule.exports = function (argument) {\\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\\n};\\n\\n\\n/***/ }),\\n/* 27 */\\n/***/ (function(module, exports) {\\n\\n// `RequireObjectCoercible` abstract operation\\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\\nmodule.exports = function (it) {\\n if (it == undefined) throw TypeError(\\\"Can't call method on \\\" + it);\\n return it;\\n};\\n\\n\\n/***/ }),\\n/* 28 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar DESCRIPTORS = __webpack_require__(8);\\nvar propertyIsEnumerableModule = __webpack_require__(65);\\nvar createPropertyDescriptor = __webpack_require__(22);\\nvar toIndexedObject = __webpack_require__(18);\\nvar toPrimitive = __webpack_require__(35);\\nvar has = __webpack_require__(3);\\nvar IE8_DOM_DEFINE = __webpack_require__(34);\\n\\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\\n\\n// `Object.getOwnPropertyDescriptor` method\\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\\n O = toIndexedObject(O);\\n P = toPrimitive(P, true);\\n if (IE8_DOM_DEFINE) try {\\n return nativeGetOwnPropertyDescriptor(O, P);\\n } catch (error) { /* empty */ }\\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\\n};\\n\\n\\n/***/ }),\\n/* 29 */\\n/***/ (function(module, exports) {\\n\\n// IE8- don't enum bug keys\\nmodule.exports = [\\n 'constructor',\\n 'hasOwnProperty',\\n 'isPrototypeOf',\\n 'propertyIsEnumerable',\\n 'toLocaleString',\\n 'toString',\\n 'valueOf'\\n];\\n\\n\\n/***/ }),\\n/* 30 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar defineProperty = __webpack_require__(9).f;\\nvar has = __webpack_require__(3);\\nvar wellKnownSymbol = __webpack_require__(1);\\n\\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\\n\\nmodule.exports = function (it, TAG, STATIC) {\\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\\n }\\n};\\n\\n\\n/***/ }),\\n/* 31 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar aFunction = __webpack_require__(15);\\n\\nvar PromiseCapability = function (C) {\\n var resolve, reject;\\n this.promise = new C(function ($$resolve, $$reject) {\\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\\n resolve = $$resolve;\\n reject = $$reject;\\n });\\n this.resolve = aFunction(resolve);\\n this.reject = aFunction(reject);\\n};\\n\\n// 25.4.1.5 NewPromiseCapability(C)\\nmodule.exports.f = function (C) {\\n return new PromiseCapability(C);\\n};\\n\\n\\n/***/ }),\\n/* 32 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar IS_PURE = __webpack_require__(12);\\nvar store = __webpack_require__(33);\\n\\n(module.exports = function (key, value) {\\n return store[key] || (store[key] = value !== undefined ? value : {});\\n})('versions', []).push({\\n version: '3.6.5',\\n mode: IS_PURE ? 'pure' : 'global',\\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\\n});\\n\\n\\n/***/ }),\\n/* 33 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar setGlobal = __webpack_require__(20);\\n\\nvar SHARED = '__core-js_shared__';\\nvar store = global[SHARED] || setGlobal(SHARED, {});\\n\\nmodule.exports = store;\\n\\n\\n/***/ }),\\n/* 34 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar DESCRIPTORS = __webpack_require__(8);\\nvar fails = __webpack_require__(5);\\nvar createElement = __webpack_require__(21);\\n\\n// Thank's IE8 for his funny defineProperty\\nmodule.exports = !DESCRIPTORS && !fails(function () {\\n return Object.defineProperty(createElement('div'), 'a', {\\n get: function () { return 7; }\\n }).a != 7;\\n});\\n\\n\\n/***/ }),\\n/* 35 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar isObject = __webpack_require__(7);\\n\\n// `ToPrimitive` abstract operation\\n// https://tc39.github.io/ecma262/#sec-toprimitive\\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\\n// and the second argument - flag - preferred type is a string\\nmodule.exports = function (input, PREFERRED_STRING) {\\n if (!isObject(input)) return input;\\n var fn, val;\\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\\n throw TypeError(\\\"Can't convert object to primitive value\\\");\\n};\\n\\n\\n/***/ }),\\n/* 36 */\\n/***/ (function(module, exports) {\\n\\nvar id = 0;\\nvar postfix = Math.random();\\n\\nmodule.exports = function (key) {\\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\\n};\\n\\n\\n/***/ }),\\n/* 37 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar fails = __webpack_require__(5);\\n\\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\\n // Chrome 38 Symbol has incorrect toString conversion\\n // eslint-disable-next-line no-undef\\n return !String(Symbol());\\n});\\n\\n\\n/***/ }),\\n/* 38 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(19);\\nvar classofRaw = __webpack_require__(13);\\nvar wellKnownSymbol = __webpack_require__(1);\\n\\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\\n// ES3 wrong here\\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\\n\\n// fallback for IE11 Script Access Denied error\\nvar tryGet = function (it, key) {\\n try {\\n return it[key];\\n } catch (error) { /* empty */ }\\n};\\n\\n// getting tag from ES6+ `Object.prototype.toString`\\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\\n var O, tag, result;\\n return it === undefined ? 'Undefined' : it === null ? 'Null'\\n // @@toStringTag case\\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\\n // builtinTag case\\n : CORRECT_ARGUMENTS ? classofRaw(O)\\n // ES3 arguments fallback\\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\\n};\\n\\n\\n/***/ }),\\n/* 39 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar $ = __webpack_require__(17);\\nvar createIteratorConstructor = __webpack_require__(73);\\nvar getPrototypeOf = __webpack_require__(45);\\nvar setPrototypeOf = __webpack_require__(78);\\nvar setToStringTag = __webpack_require__(30);\\nvar createNonEnumerableProperty = __webpack_require__(6);\\nvar redefine = __webpack_require__(10);\\nvar wellKnownSymbol = __webpack_require__(1);\\nvar IS_PURE = __webpack_require__(12);\\nvar Iterators = __webpack_require__(14);\\nvar IteratorsCore = __webpack_require__(44);\\n\\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\\nvar ITERATOR = wellKnownSymbol('iterator');\\nvar KEYS = 'keys';\\nvar VALUES = 'values';\\nvar ENTRIES = 'entries';\\n\\nvar returnThis = function () { return this; };\\n\\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\\n createIteratorConstructor(IteratorConstructor, NAME, next);\\n\\n var getIterationMethod = function (KIND) {\\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\\n switch (KIND) {\\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\\n } return function () { return new IteratorConstructor(this); };\\n };\\n\\n var TO_STRING_TAG = NAME + ' Iterator';\\n var INCORRECT_VALUES_NAME = false;\\n var IterablePrototype = Iterable.prototype;\\n var nativeIterator = IterablePrototype[ITERATOR]\\n || IterablePrototype['@@iterator']\\n || DEFAULT && IterablePrototype[DEFAULT];\\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\\n var CurrentIteratorPrototype, methods, KEY;\\n\\n // fix native\\n if (anyNativeIterator) {\\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\\n if (setPrototypeOf) {\\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\\n }\\n }\\n // Set @@toStringTag to native iterators\\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\\n }\\n }\\n\\n // fix Array#{values, @@iterator}.name in V8 / FF\\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\\n INCORRECT_VALUES_NAME = true;\\n defaultIterator = function values() { return nativeIterator.call(this); };\\n }\\n\\n // define iterator\\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\\n }\\n Iterators[NAME] = defaultIterator;\\n\\n // export additional methods\\n if (DEFAULT) {\\n methods = {\\n values: getIterationMethod(VALUES),\\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\\n entries: getIterationMethod(ENTRIES)\\n };\\n if (FORCED) for (KEY in methods) {\\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\\n redefine(IterablePrototype, KEY, methods[KEY]);\\n }\\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\\n }\\n\\n return methods;\\n};\\n\\n\\n/***/ }),\\n/* 40 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\n\\nmodule.exports = global;\\n\\n\\n/***/ }),\\n/* 41 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar has = __webpack_require__(3);\\nvar toIndexedObject = __webpack_require__(18);\\nvar indexOf = __webpack_require__(70).indexOf;\\nvar hiddenKeys = __webpack_require__(25);\\n\\nmodule.exports = function (object, names) {\\n var O = toIndexedObject(object);\\n var i = 0;\\n var result = [];\\n var key;\\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\\n // Don't enum bug & hidden keys\\n while (names.length > i) if (has(O, key = names[i++])) {\\n ~indexOf(result, key) || result.push(key);\\n }\\n return result;\\n};\\n\\n\\n/***/ }),\\n/* 42 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar toInteger = __webpack_require__(26);\\n\\nvar min = Math.min;\\n\\n// `ToLength` abstract operation\\n// https://tc39.github.io/ecma262/#sec-tolength\\nmodule.exports = function (argument) {\\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\\n};\\n\\n\\n/***/ }),\\n/* 43 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar fails = __webpack_require__(5);\\n\\nvar replacement = /#|\\\\.prototype\\\\./;\\n\\nvar isForced = function (feature, detection) {\\n var value = data[normalize(feature)];\\n return value == POLYFILL ? true\\n : value == NATIVE ? false\\n : typeof detection == 'function' ? fails(detection)\\n : !!detection;\\n};\\n\\nvar normalize = isForced.normalize = function (string) {\\n return String(string).replace(replacement, '.').toLowerCase();\\n};\\n\\nvar data = isForced.data = {};\\nvar NATIVE = isForced.NATIVE = 'N';\\nvar POLYFILL = isForced.POLYFILL = 'P';\\n\\nmodule.exports = isForced;\\n\\n\\n/***/ }),\\n/* 44 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar getPrototypeOf = __webpack_require__(45);\\nvar createNonEnumerableProperty = __webpack_require__(6);\\nvar has = __webpack_require__(3);\\nvar wellKnownSymbol = __webpack_require__(1);\\nvar IS_PURE = __webpack_require__(12);\\n\\nvar ITERATOR = wellKnownSymbol('iterator');\\nvar BUGGY_SAFARI_ITERATORS = false;\\n\\nvar returnThis = function () { return this; };\\n\\n// `%IteratorPrototype%` object\\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\\n\\nif ([].keys) {\\n arrayIterator = [].keys();\\n // Safari 8 has buggy iterators w/o `next`\\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\\n else {\\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\\n }\\n}\\n\\nif (IteratorPrototype == undefined) IteratorPrototype = {};\\n\\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {\\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\\n}\\n\\nmodule.exports = {\\n IteratorPrototype: IteratorPrototype,\\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\\n};\\n\\n\\n/***/ }),\\n/* 45 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar has = __webpack_require__(3);\\nvar toObject = __webpack_require__(74);\\nvar sharedKey = __webpack_require__(24);\\nvar CORRECT_PROTOTYPE_GETTER = __webpack_require__(75);\\n\\nvar IE_PROTO = sharedKey('IE_PROTO');\\nvar ObjectPrototype = Object.prototype;\\n\\n// `Object.getPrototypeOf` method\\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\\n O = toObject(O);\\n if (has(O, IE_PROTO)) return O[IE_PROTO];\\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\\n return O.constructor.prototype;\\n } return O instanceof Object ? ObjectPrototype : null;\\n};\\n\\n\\n/***/ }),\\n/* 46 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar anObject = __webpack_require__(2);\\nvar defineProperties = __webpack_require__(76);\\nvar enumBugKeys = __webpack_require__(29);\\nvar hiddenKeys = __webpack_require__(25);\\nvar html = __webpack_require__(47);\\nvar documentCreateElement = __webpack_require__(21);\\nvar sharedKey = __webpack_require__(24);\\n\\nvar GT = '>';\\nvar LT = '<';\\nvar PROTOTYPE = 'prototype';\\nvar SCRIPT = 'script';\\nvar IE_PROTO = sharedKey('IE_PROTO');\\n\\nvar EmptyConstructor = function () { /* empty */ };\\n\\nvar scriptTag = function (content) {\\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\\n};\\n\\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\\n activeXDocument.write(scriptTag(''));\\n activeXDocument.close();\\n var temp = activeXDocument.parentWindow.Object;\\n activeXDocument = null; // avoid memory leak\\n return temp;\\n};\\n\\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\\nvar NullProtoObjectViaIFrame = function () {\\n // Thrash, waste and sodomy: IE GC bug\\n var iframe = documentCreateElement('iframe');\\n var JS = 'java' + SCRIPT + ':';\\n var iframeDocument;\\n iframe.style.display = 'none';\\n html.appendChild(iframe);\\n // https://github.com/zloirock/core-js/issues/475\\n iframe.src = String(JS);\\n iframeDocument = iframe.contentWindow.document;\\n iframeDocument.open();\\n iframeDocument.write(scriptTag('document.F=Object'));\\n iframeDocument.close();\\n return iframeDocument.F;\\n};\\n\\n// Check for document.domain and active x support\\n// No need to use active x approach when document.domain is not set\\n// see https://github.com/es-shims/es5-shim/issues/150\\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\\n// avoid IE GC bug\\nvar activeXDocument;\\nvar NullProtoObject = function () {\\n try {\\n /* global ActiveXObject */\\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\\n } catch (error) { /* ignore */ }\\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\\n var length = enumBugKeys.length;\\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\\n return NullProtoObject();\\n};\\n\\nhiddenKeys[IE_PROTO] = true;\\n\\n// `Object.create` method\\n// https://tc39.github.io/ecma262/#sec-object.create\\nmodule.exports = Object.create || function create(O, Properties) {\\n var result;\\n if (O !== null) {\\n EmptyConstructor[PROTOTYPE] = anObject(O);\\n result = new EmptyConstructor();\\n EmptyConstructor[PROTOTYPE] = null;\\n // add \\\"__proto__\\\" for Object.getPrototypeOf polyfill\\n result[IE_PROTO] = O;\\n } else result = NullProtoObject();\\n return Properties === undefined ? result : defineProperties(result, Properties);\\n};\\n\\n\\n/***/ }),\\n/* 47 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar getBuiltIn = __webpack_require__(11);\\n\\nmodule.exports = getBuiltIn('document', 'documentElement');\\n\\n\\n/***/ }),\\n/* 48 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\n\\nmodule.exports = global.Promise;\\n\\n\\n/***/ }),\\n/* 49 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar anObject = __webpack_require__(2);\\nvar isArrayIteratorMethod = __webpack_require__(88);\\nvar toLength = __webpack_require__(42);\\nvar bind = __webpack_require__(50);\\nvar getIteratorMethod = __webpack_require__(89);\\nvar callWithSafeIterationClosing = __webpack_require__(90);\\n\\nvar Result = function (stopped, result) {\\n this.stopped = stopped;\\n this.result = result;\\n};\\n\\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\\n var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\\n var iterator, iterFn, index, length, result, next, step;\\n\\n if (IS_ITERATOR) {\\n iterator = iterable;\\n } else {\\n iterFn = getIteratorMethod(iterable);\\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\\n // optimisation for array iterators\\n if (isArrayIteratorMethod(iterFn)) {\\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\\n result = AS_ENTRIES\\n ? boundFunction(anObject(step = iterable[index])[0], step[1])\\n : boundFunction(iterable[index]);\\n if (result && result instanceof Result) return result;\\n } return new Result(false);\\n }\\n iterator = iterFn.call(iterable);\\n }\\n\\n next = iterator.next;\\n while (!(step = next.call(iterator)).done) {\\n result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\\n if (typeof result == 'object' && result && result instanceof Result) return result;\\n } return new Result(false);\\n};\\n\\niterate.stop = function (result) {\\n return new Result(true, result);\\n};\\n\\n\\n/***/ }),\\n/* 50 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar aFunction = __webpack_require__(15);\\n\\n// optional / simple context binding\\nmodule.exports = function (fn, that, length) {\\n aFunction(fn);\\n if (that === undefined) return fn;\\n switch (length) {\\n case 0: return function () {\\n return fn.call(that);\\n };\\n case 1: return function (a) {\\n return fn.call(that, a);\\n };\\n case 2: return function (a, b) {\\n return fn.call(that, a, b);\\n };\\n case 3: return function (a, b, c) {\\n return fn.call(that, a, b, c);\\n };\\n }\\n return function (/* ...args */) {\\n return fn.apply(that, arguments);\\n };\\n};\\n\\n\\n/***/ }),\\n/* 51 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar anObject = __webpack_require__(2);\\nvar aFunction = __webpack_require__(15);\\nvar wellKnownSymbol = __webpack_require__(1);\\n\\nvar SPECIES = wellKnownSymbol('species');\\n\\n// `SpeciesConstructor` abstract operation\\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\\nmodule.exports = function (O, defaultConstructor) {\\n var C = anObject(O).constructor;\\n var S;\\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\\n};\\n\\n\\n/***/ }),\\n/* 52 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar fails = __webpack_require__(5);\\nvar classof = __webpack_require__(13);\\nvar bind = __webpack_require__(50);\\nvar html = __webpack_require__(47);\\nvar createElement = __webpack_require__(21);\\nvar IS_IOS = __webpack_require__(53);\\n\\nvar location = global.location;\\nvar set = global.setImmediate;\\nvar clear = global.clearImmediate;\\nvar process = global.process;\\nvar MessageChannel = global.MessageChannel;\\nvar Dispatch = global.Dispatch;\\nvar counter = 0;\\nvar queue = {};\\nvar ONREADYSTATECHANGE = 'onreadystatechange';\\nvar defer, channel, port;\\n\\nvar run = function (id) {\\n // eslint-disable-next-line no-prototype-builtins\\n if (queue.hasOwnProperty(id)) {\\n var fn = queue[id];\\n delete queue[id];\\n fn();\\n }\\n};\\n\\nvar runner = function (id) {\\n return function () {\\n run(id);\\n };\\n};\\n\\nvar listener = function (event) {\\n run(event.data);\\n};\\n\\nvar post = function (id) {\\n // old engines have not location.origin\\n global.postMessage(id + '', location.protocol + '//' + location.host);\\n};\\n\\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\\nif (!set || !clear) {\\n set = function setImmediate(fn) {\\n var args = [];\\n var i = 1;\\n while (arguments.length > i) args.push(arguments[i++]);\\n queue[++counter] = function () {\\n // eslint-disable-next-line no-new-func\\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\\n };\\n defer(counter);\\n return counter;\\n };\\n clear = function clearImmediate(id) {\\n delete queue[id];\\n };\\n // Node.js 0.8-\\n if (classof(process) == 'process') {\\n defer = function (id) {\\n process.nextTick(runner(id));\\n };\\n // Sphere (JS game engine) Dispatch API\\n } else if (Dispatch && Dispatch.now) {\\n defer = function (id) {\\n Dispatch.now(runner(id));\\n };\\n // Browsers with MessageChannel, includes WebWorkers\\n // except iOS - https://github.com/zloirock/core-js/issues/624\\n } else if (MessageChannel && !IS_IOS) {\\n channel = new MessageChannel();\\n port = channel.port2;\\n channel.port1.onmessage = listener;\\n defer = bind(port.postMessage, port, 1);\\n // Browsers with postMessage, skip WebWorkers\\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\\n } else if (\\n global.addEventListener &&\\n typeof postMessage == 'function' &&\\n !global.importScripts &&\\n !fails(post) &&\\n location.protocol !== 'file:'\\n ) {\\n defer = post;\\n global.addEventListener('message', listener, false);\\n // IE8-\\n } else if (ONREADYSTATECHANGE in createElement('script')) {\\n defer = function (id) {\\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\\n html.removeChild(this);\\n run(id);\\n };\\n };\\n // Rest old browsers\\n } else {\\n defer = function (id) {\\n setTimeout(runner(id), 0);\\n };\\n }\\n}\\n\\nmodule.exports = {\\n set: set,\\n clear: clear\\n};\\n\\n\\n/***/ }),\\n/* 53 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar userAgent = __webpack_require__(54);\\n\\nmodule.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);\\n\\n\\n/***/ }),\\n/* 54 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar getBuiltIn = __webpack_require__(11);\\n\\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\\n\\n\\n/***/ }),\\n/* 55 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar anObject = __webpack_require__(2);\\nvar isObject = __webpack_require__(7);\\nvar newPromiseCapability = __webpack_require__(31);\\n\\nmodule.exports = function (C, x) {\\n anObject(C);\\n if (isObject(x) && x.constructor === C) return x;\\n var promiseCapability = newPromiseCapability.f(C);\\n var resolve = promiseCapability.resolve;\\n resolve(x);\\n return promiseCapability.promise;\\n};\\n\\n\\n/***/ }),\\n/* 56 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = function (exec) {\\n try {\\n return { error: false, value: exec() };\\n } catch (error) {\\n return { error: true, value: error };\\n }\\n};\\n\\n\\n/***/ }),\\n/* 57 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n__webpack_require__(58);\\n__webpack_require__(63);\\n__webpack_require__(80);\\n__webpack_require__(84);\\n__webpack_require__(95);\\n__webpack_require__(96);\\nvar path = __webpack_require__(40);\\n\\nmodule.exports = path.Promise;\\n\\n\\n/***/ }),\\n/* 58 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(19);\\nvar redefine = __webpack_require__(10);\\nvar toString = __webpack_require__(62);\\n\\n// `Object.prototype.toString` method\\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\\nif (!TO_STRING_TAG_SUPPORT) {\\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\\n}\\n\\n\\n/***/ }),\\n/* 59 */\\n/***/ (function(module, exports) {\\n\\nvar g;\\n\\n// This works in non-strict mode\\ng = (function() {\\n\\treturn this;\\n})();\\n\\ntry {\\n\\t// This works if eval is allowed (see CSP)\\n\\tg = g || new Function(\\\"return this\\\")();\\n} catch (e) {\\n\\t// This works if the window reference is available\\n\\tif (typeof window === \\\"object\\\") g = window;\\n}\\n\\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\\nmodule.exports = g;\\n\\n\\n/***/ }),\\n/* 60 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar NATIVE_SYMBOL = __webpack_require__(37);\\n\\nmodule.exports = NATIVE_SYMBOL\\n // eslint-disable-next-line no-undef\\n && !Symbol.sham\\n // eslint-disable-next-line no-undef\\n && typeof Symbol.iterator == 'symbol';\\n\\n\\n/***/ }),\\n/* 61 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar inspectSource = __webpack_require__(23);\\n\\nvar WeakMap = global.WeakMap;\\n\\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\\n\\n\\n/***/ }),\\n/* 62 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(19);\\nvar classof = __webpack_require__(38);\\n\\n// `Object.prototype.toString` method implementation\\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\\n return '[object ' + classof(this) + ']';\\n};\\n\\n\\n/***/ }),\\n/* 63 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar charAt = __webpack_require__(64).charAt;\\nvar InternalStateModule = __webpack_require__(16);\\nvar defineIterator = __webpack_require__(39);\\n\\nvar STRING_ITERATOR = 'String Iterator';\\nvar setInternalState = InternalStateModule.set;\\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\\n\\n// `String.prototype[@@iterator]` method\\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\\ndefineIterator(String, 'String', function (iterated) {\\n setInternalState(this, {\\n type: STRING_ITERATOR,\\n string: String(iterated),\\n index: 0\\n });\\n// `%StringIteratorPrototype%.next` method\\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\\n}, function next() {\\n var state = getInternalState(this);\\n var string = state.string;\\n var index = state.index;\\n var point;\\n if (index >= string.length) return { value: undefined, done: true };\\n point = charAt(string, index);\\n state.index += point.length;\\n return { value: point, done: false };\\n});\\n\\n\\n/***/ }),\\n/* 64 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar toInteger = __webpack_require__(26);\\nvar requireObjectCoercible = __webpack_require__(27);\\n\\n// `String.prototype.{ codePointAt, at }` methods implementation\\nvar createMethod = function (CONVERT_TO_STRING) {\\n return function ($this, pos) {\\n var S = String(requireObjectCoercible($this));\\n var position = toInteger(pos);\\n var size = S.length;\\n var first, second;\\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\\n first = S.charCodeAt(position);\\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\\n ? CONVERT_TO_STRING ? S.charAt(position) : first\\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\\n };\\n};\\n\\nmodule.exports = {\\n // `String.prototype.codePointAt` method\\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\\n codeAt: createMethod(false),\\n // `String.prototype.at` method\\n // https://github.com/mathiasbynens/String.prototype.at\\n charAt: createMethod(true)\\n};\\n\\n\\n/***/ }),\\n/* 65 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\\n\\n// Nashorn ~ JDK8 bug\\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\\n\\n// `Object.prototype.propertyIsEnumerable` method implementation\\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\\n var descriptor = getOwnPropertyDescriptor(this, V);\\n return !!descriptor && descriptor.enumerable;\\n} : nativePropertyIsEnumerable;\\n\\n\\n/***/ }),\\n/* 66 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar fails = __webpack_require__(5);\\nvar classof = __webpack_require__(13);\\n\\nvar split = ''.split;\\n\\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\\nmodule.exports = fails(function () {\\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\\n // eslint-disable-next-line no-prototype-builtins\\n return !Object('z').propertyIsEnumerable(0);\\n}) ? function (it) {\\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\\n} : Object;\\n\\n\\n/***/ }),\\n/* 67 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar has = __webpack_require__(3);\\nvar ownKeys = __webpack_require__(68);\\nvar getOwnPropertyDescriptorModule = __webpack_require__(28);\\nvar definePropertyModule = __webpack_require__(9);\\n\\nmodule.exports = function (target, source) {\\n var keys = ownKeys(source);\\n var defineProperty = definePropertyModule.f;\\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\\n for (var i = 0; i < keys.length; i++) {\\n var key = keys[i];\\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\\n }\\n};\\n\\n\\n/***/ }),\\n/* 68 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar getBuiltIn = __webpack_require__(11);\\nvar getOwnPropertyNamesModule = __webpack_require__(69);\\nvar getOwnPropertySymbolsModule = __webpack_require__(72);\\nvar anObject = __webpack_require__(2);\\n\\n// all object keys, includes non-enumerable and symbols\\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\\n var keys = getOwnPropertyNamesModule.f(anObject(it));\\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\\n};\\n\\n\\n/***/ }),\\n/* 69 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar internalObjectKeys = __webpack_require__(41);\\nvar enumBugKeys = __webpack_require__(29);\\n\\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\\n\\n// `Object.getOwnPropertyNames` method\\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\\n return internalObjectKeys(O, hiddenKeys);\\n};\\n\\n\\n/***/ }),\\n/* 70 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar toIndexedObject = __webpack_require__(18);\\nvar toLength = __webpack_require__(42);\\nvar toAbsoluteIndex = __webpack_require__(71);\\n\\n// `Array.prototype.{ indexOf, includes }` methods implementation\\nvar createMethod = function (IS_INCLUDES) {\\n return function ($this, el, fromIndex) {\\n var O = toIndexedObject($this);\\n var length = toLength(O.length);\\n var index = toAbsoluteIndex(fromIndex, length);\\n var value;\\n // Array#includes uses SameValueZero equality algorithm\\n // eslint-disable-next-line no-self-compare\\n if (IS_INCLUDES && el != el) while (length > index) {\\n value = O[index++];\\n // eslint-disable-next-line no-self-compare\\n if (value != value) return true;\\n // Array#indexOf ignores holes, Array#includes - not\\n } else for (;length > index; index++) {\\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\\n } return !IS_INCLUDES && -1;\\n };\\n};\\n\\nmodule.exports = {\\n // `Array.prototype.includes` method\\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\\n includes: createMethod(true),\\n // `Array.prototype.indexOf` method\\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\\n indexOf: createMethod(false)\\n};\\n\\n\\n/***/ }),\\n/* 71 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar toInteger = __webpack_require__(26);\\n\\nvar max = Math.max;\\nvar min = Math.min;\\n\\n// Helper for a popular repeating case of the spec:\\n// Let integer be ? ToInteger(index).\\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\\nmodule.exports = function (index, length) {\\n var integer = toInteger(index);\\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\\n};\\n\\n\\n/***/ }),\\n/* 72 */\\n/***/ (function(module, exports) {\\n\\nexports.f = Object.getOwnPropertySymbols;\\n\\n\\n/***/ }),\\n/* 73 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar IteratorPrototype = __webpack_require__(44).IteratorPrototype;\\nvar create = __webpack_require__(46);\\nvar createPropertyDescriptor = __webpack_require__(22);\\nvar setToStringTag = __webpack_require__(30);\\nvar Iterators = __webpack_require__(14);\\n\\nvar returnThis = function () { return this; };\\n\\nmodule.exports = function (IteratorConstructor, NAME, next) {\\n var TO_STRING_TAG = NAME + ' Iterator';\\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\\n Iterators[TO_STRING_TAG] = returnThis;\\n return IteratorConstructor;\\n};\\n\\n\\n/***/ }),\\n/* 74 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar requireObjectCoercible = __webpack_require__(27);\\n\\n// `ToObject` abstract operation\\n// https://tc39.github.io/ecma262/#sec-toobject\\nmodule.exports = function (argument) {\\n return Object(requireObjectCoercible(argument));\\n};\\n\\n\\n/***/ }),\\n/* 75 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar fails = __webpack_require__(5);\\n\\nmodule.exports = !fails(function () {\\n function F() { /* empty */ }\\n F.prototype.constructor = null;\\n return Object.getPrototypeOf(new F()) !== F.prototype;\\n});\\n\\n\\n/***/ }),\\n/* 76 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar DESCRIPTORS = __webpack_require__(8);\\nvar definePropertyModule = __webpack_require__(9);\\nvar anObject = __webpack_require__(2);\\nvar objectKeys = __webpack_require__(77);\\n\\n// `Object.defineProperties` method\\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\\n anObject(O);\\n var keys = objectKeys(Properties);\\n var length = keys.length;\\n var index = 0;\\n var key;\\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\\n return O;\\n};\\n\\n\\n/***/ }),\\n/* 77 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar internalObjectKeys = __webpack_require__(41);\\nvar enumBugKeys = __webpack_require__(29);\\n\\n// `Object.keys` method\\n// https://tc39.github.io/ecma262/#sec-object.keys\\nmodule.exports = Object.keys || function keys(O) {\\n return internalObjectKeys(O, enumBugKeys);\\n};\\n\\n\\n/***/ }),\\n/* 78 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar anObject = __webpack_require__(2);\\nvar aPossiblePrototype = __webpack_require__(79);\\n\\n// `Object.setPrototypeOf` method\\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\\n// Works with __proto__ only. Old v8 can't work with null proto objects.\\n/* eslint-disable no-proto */\\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\\n var CORRECT_SETTER = false;\\n var test = {};\\n var setter;\\n try {\\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\\n setter.call(test, []);\\n CORRECT_SETTER = test instanceof Array;\\n } catch (error) { /* empty */ }\\n return function setPrototypeOf(O, proto) {\\n anObject(O);\\n aPossiblePrototype(proto);\\n if (CORRECT_SETTER) setter.call(O, proto);\\n else O.__proto__ = proto;\\n return O;\\n };\\n}() : undefined);\\n\\n\\n/***/ }),\\n/* 79 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar isObject = __webpack_require__(7);\\n\\nmodule.exports = function (it) {\\n if (!isObject(it) && it !== null) {\\n throw TypeError(\\\"Can't set \\\" + String(it) + ' as a prototype');\\n } return it;\\n};\\n\\n\\n/***/ }),\\n/* 80 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar DOMIterables = __webpack_require__(81);\\nvar ArrayIteratorMethods = __webpack_require__(82);\\nvar createNonEnumerableProperty = __webpack_require__(6);\\nvar wellKnownSymbol = __webpack_require__(1);\\n\\nvar ITERATOR = wellKnownSymbol('iterator');\\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\\nvar ArrayValues = ArrayIteratorMethods.values;\\n\\nfor (var COLLECTION_NAME in DOMIterables) {\\n var Collection = global[COLLECTION_NAME];\\n var CollectionPrototype = Collection && Collection.prototype;\\n if (CollectionPrototype) {\\n // some Chrome versions have non-configurable methods on DOMTokenList\\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\\n } catch (error) {\\n CollectionPrototype[ITERATOR] = ArrayValues;\\n }\\n if (!CollectionPrototype[TO_STRING_TAG]) {\\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\\n }\\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\\n // some Chrome versions have non-configurable methods on DOMTokenList\\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\\n } catch (error) {\\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\\n }\\n }\\n }\\n}\\n\\n\\n/***/ }),\\n/* 81 */\\n/***/ (function(module, exports) {\\n\\n// iterable DOM collections\\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\\nmodule.exports = {\\n CSSRuleList: 0,\\n CSSStyleDeclaration: 0,\\n CSSValueList: 0,\\n ClientRectList: 0,\\n DOMRectList: 0,\\n DOMStringList: 0,\\n DOMTokenList: 1,\\n DataTransferItemList: 0,\\n FileList: 0,\\n HTMLAllCollection: 0,\\n HTMLCollection: 0,\\n HTMLFormElement: 0,\\n HTMLSelectElement: 0,\\n MediaList: 0,\\n MimeTypeArray: 0,\\n NamedNodeMap: 0,\\n NodeList: 1,\\n PaintRequestList: 0,\\n Plugin: 0,\\n PluginArray: 0,\\n SVGLengthList: 0,\\n SVGNumberList: 0,\\n SVGPathSegList: 0,\\n SVGPointList: 0,\\n SVGStringList: 0,\\n SVGTransformList: 0,\\n SourceBufferList: 0,\\n StyleSheetList: 0,\\n TextTrackCueList: 0,\\n TextTrackList: 0,\\n TouchList: 0\\n};\\n\\n\\n/***/ }),\\n/* 82 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar toIndexedObject = __webpack_require__(18);\\nvar addToUnscopables = __webpack_require__(83);\\nvar Iterators = __webpack_require__(14);\\nvar InternalStateModule = __webpack_require__(16);\\nvar defineIterator = __webpack_require__(39);\\n\\nvar ARRAY_ITERATOR = 'Array Iterator';\\nvar setInternalState = InternalStateModule.set;\\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\\n\\n// `Array.prototype.entries` method\\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\\n// `Array.prototype.keys` method\\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\\n// `Array.prototype.values` method\\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\\n// `Array.prototype[@@iterator]` method\\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\\n// `CreateArrayIterator` internal method\\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\\n setInternalState(this, {\\n type: ARRAY_ITERATOR,\\n target: toIndexedObject(iterated), // target\\n index: 0, // next index\\n kind: kind // kind\\n });\\n// `%ArrayIteratorPrototype%.next` method\\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\\n}, function () {\\n var state = getInternalState(this);\\n var target = state.target;\\n var kind = state.kind;\\n var index = state.index++;\\n if (!target || index >= target.length) {\\n state.target = undefined;\\n return { value: undefined, done: true };\\n }\\n if (kind == 'keys') return { value: index, done: false };\\n if (kind == 'values') return { value: target[index], done: false };\\n return { value: [index, target[index]], done: false };\\n}, 'values');\\n\\n// argumentsList[@@iterator] is %ArrayProto_values%\\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\\nIterators.Arguments = Iterators.Array;\\n\\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\\naddToUnscopables('keys');\\naddToUnscopables('values');\\naddToUnscopables('entries');\\n\\n\\n/***/ }),\\n/* 83 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar wellKnownSymbol = __webpack_require__(1);\\nvar create = __webpack_require__(46);\\nvar definePropertyModule = __webpack_require__(9);\\n\\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\\nvar ArrayPrototype = Array.prototype;\\n\\n// Array.prototype[@@unscopables]\\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\\n configurable: true,\\n value: create(null)\\n });\\n}\\n\\n// add a key to Array.prototype[@@unscopables]\\nmodule.exports = function (key) {\\n ArrayPrototype[UNSCOPABLES][key] = true;\\n};\\n\\n\\n/***/ }),\\n/* 84 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar $ = __webpack_require__(17);\\nvar IS_PURE = __webpack_require__(12);\\nvar global = __webpack_require__(0);\\nvar getBuiltIn = __webpack_require__(11);\\nvar NativePromise = __webpack_require__(48);\\nvar redefine = __webpack_require__(10);\\nvar redefineAll = __webpack_require__(85);\\nvar setToStringTag = __webpack_require__(30);\\nvar setSpecies = __webpack_require__(86);\\nvar isObject = __webpack_require__(7);\\nvar aFunction = __webpack_require__(15);\\nvar anInstance = __webpack_require__(87);\\nvar classof = __webpack_require__(13);\\nvar inspectSource = __webpack_require__(23);\\nvar iterate = __webpack_require__(49);\\nvar checkCorrectnessOfIteration = __webpack_require__(91);\\nvar speciesConstructor = __webpack_require__(51);\\nvar task = __webpack_require__(52).set;\\nvar microtask = __webpack_require__(92);\\nvar promiseResolve = __webpack_require__(55);\\nvar hostReportErrors = __webpack_require__(93);\\nvar newPromiseCapabilityModule = __webpack_require__(31);\\nvar perform = __webpack_require__(56);\\nvar InternalStateModule = __webpack_require__(16);\\nvar isForced = __webpack_require__(43);\\nvar wellKnownSymbol = __webpack_require__(1);\\nvar V8_VERSION = __webpack_require__(94);\\n\\nvar SPECIES = wellKnownSymbol('species');\\nvar PROMISE = 'Promise';\\nvar getInternalState = InternalStateModule.get;\\nvar setInternalState = InternalStateModule.set;\\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\\nvar PromiseConstructor = NativePromise;\\nvar TypeError = global.TypeError;\\nvar document = global.document;\\nvar process = global.process;\\nvar $fetch = getBuiltIn('fetch');\\nvar newPromiseCapability = newPromiseCapabilityModule.f;\\nvar newGenericPromiseCapability = newPromiseCapability;\\nvar IS_NODE = classof(process) == 'process';\\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\\nvar UNHANDLED_REJECTION = 'unhandledrejection';\\nvar REJECTION_HANDLED = 'rejectionhandled';\\nvar PENDING = 0;\\nvar FULFILLED = 1;\\nvar REJECTED = 2;\\nvar HANDLED = 1;\\nvar UNHANDLED = 2;\\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\\n\\nvar FORCED = isForced(PROMISE, function () {\\n var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\\n if (!GLOBAL_CORE_JS_PROMISE) {\\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\\n // We can't detect it synchronously, so just check versions\\n if (V8_VERSION === 66) return true;\\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\\n if (!IS_NODE && typeof PromiseRejectionEvent != 'function') return true;\\n }\\n // We need Promise#finally in the pure version for preventing prototype pollution\\n if (IS_PURE && !PromiseConstructor.prototype['finally']) return true;\\n // We can't use @@species feature detection in V8 since it causes\\n // deoptimization and performance degradation\\n // https://github.com/zloirock/core-js/issues/679\\n if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\\n // Detect correctness of subclassing with @@species support\\n var promise = PromiseConstructor.resolve(1);\\n var FakePromise = function (exec) {\\n exec(function () { /* empty */ }, function () { /* empty */ });\\n };\\n var constructor = promise.constructor = {};\\n constructor[SPECIES] = FakePromise;\\n return !(promise.then(function () { /* empty */ }) instanceof FakePromise);\\n});\\n\\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\\n});\\n\\n// helpers\\nvar isThenable = function (it) {\\n var then;\\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\\n};\\n\\nvar notify = function (promise, state, isReject) {\\n if (state.notified) return;\\n state.notified = true;\\n var chain = state.reactions;\\n microtask(function () {\\n var value = state.value;\\n var ok = state.state == FULFILLED;\\n var index = 0;\\n // variable length - can't use forEach\\n while (chain.length > index) {\\n var reaction = chain[index++];\\n var handler = ok ? reaction.ok : reaction.fail;\\n var resolve = reaction.resolve;\\n var reject = reaction.reject;\\n var domain = reaction.domain;\\n var result, then, exited;\\n try {\\n if (handler) {\\n if (!ok) {\\n if (state.rejection === UNHANDLED) onHandleUnhandled(promise, state);\\n state.rejection = HANDLED;\\n }\\n if (handler === true) result = value;\\n else {\\n if (domain) domain.enter();\\n result = handler(value); // can throw\\n if (domain) {\\n domain.exit();\\n exited = true;\\n }\\n }\\n if (result === reaction.promise) {\\n reject(TypeError('Promise-chain cycle'));\\n } else if (then = isThenable(result)) {\\n then.call(result, resolve, reject);\\n } else resolve(result);\\n } else reject(value);\\n } catch (error) {\\n if (domain && !exited) domain.exit();\\n reject(error);\\n }\\n }\\n state.reactions = [];\\n state.notified = false;\\n if (isReject && !state.rejection) onUnhandled(promise, state);\\n });\\n};\\n\\nvar dispatchEvent = function (name, promise, reason) {\\n var event, handler;\\n if (DISPATCH_EVENT) {\\n event = document.createEvent('Event');\\n event.promise = promise;\\n event.reason = reason;\\n event.initEvent(name, false, true);\\n global.dispatchEvent(event);\\n } else event = { promise: promise, reason: reason };\\n if (handler = global['on' + name]) handler(event);\\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\\n};\\n\\nvar onUnhandled = function (promise, state) {\\n task.call(global, function () {\\n var value = state.value;\\n var IS_UNHANDLED = isUnhandled(state);\\n var result;\\n if (IS_UNHANDLED) {\\n result = perform(function () {\\n if (IS_NODE) {\\n process.emit('unhandledRejection', value, promise);\\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\\n });\\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\\n if (result.error) throw result.value;\\n }\\n });\\n};\\n\\nvar isUnhandled = function (state) {\\n return state.rejection !== HANDLED && !state.parent;\\n};\\n\\nvar onHandleUnhandled = function (promise, state) {\\n task.call(global, function () {\\n if (IS_NODE) {\\n process.emit('rejectionHandled', promise);\\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\\n });\\n};\\n\\nvar bind = function (fn, promise, state, unwrap) {\\n return function (value) {\\n fn(promise, state, value, unwrap);\\n };\\n};\\n\\nvar internalReject = function (promise, state, value, unwrap) {\\n if (state.done) return;\\n state.done = true;\\n if (unwrap) state = unwrap;\\n state.value = value;\\n state.state = REJECTED;\\n notify(promise, state, true);\\n};\\n\\nvar internalResolve = function (promise, state, value, unwrap) {\\n if (state.done) return;\\n state.done = true;\\n if (unwrap) state = unwrap;\\n try {\\n if (promise === value) throw TypeError(\\\"Promise can't be resolved itself\\\");\\n var then = isThenable(value);\\n if (then) {\\n microtask(function () {\\n var wrapper = { done: false };\\n try {\\n then.call(value,\\n bind(internalResolve, promise, wrapper, state),\\n bind(internalReject, promise, wrapper, state)\\n );\\n } catch (error) {\\n internalReject(promise, wrapper, error, state);\\n }\\n });\\n } else {\\n state.value = value;\\n state.state = FULFILLED;\\n notify(promise, state, false);\\n }\\n } catch (error) {\\n internalReject(promise, { done: false }, error, state);\\n }\\n};\\n\\n// constructor polyfill\\nif (FORCED) {\\n // 25.4.3.1 Promise(executor)\\n PromiseConstructor = function Promise(executor) {\\n anInstance(this, PromiseConstructor, PROMISE);\\n aFunction(executor);\\n Internal.call(this);\\n var state = getInternalState(this);\\n try {\\n executor(bind(internalResolve, this, state), bind(internalReject, this, state));\\n } catch (error) {\\n internalReject(this, state, error);\\n }\\n };\\n // eslint-disable-next-line no-unused-vars\\n Internal = function Promise(executor) {\\n setInternalState(this, {\\n type: PROMISE,\\n done: false,\\n notified: false,\\n parent: false,\\n reactions: [],\\n rejection: false,\\n state: PENDING,\\n value: undefined\\n });\\n };\\n Internal.prototype = redefineAll(PromiseConstructor.prototype, {\\n // `Promise.prototype.then` method\\n // https://tc39.github.io/ecma262/#sec-promise.prototype.then\\n then: function then(onFulfilled, onRejected) {\\n var state = getInternalPromiseState(this);\\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\\n reaction.fail = typeof onRejected == 'function' && onRejected;\\n reaction.domain = IS_NODE ? process.domain : undefined;\\n state.parent = true;\\n state.reactions.push(reaction);\\n if (state.state != PENDING) notify(this, state, false);\\n return reaction.promise;\\n },\\n // `Promise.prototype.catch` method\\n // https://tc39.github.io/ecma262/#sec-promise.prototype.catch\\n 'catch': function (onRejected) {\\n return this.then(undefined, onRejected);\\n }\\n });\\n OwnPromiseCapability = function () {\\n var promise = new Internal();\\n var state = getInternalState(promise);\\n this.promise = promise;\\n this.resolve = bind(internalResolve, promise, state);\\n this.reject = bind(internalReject, promise, state);\\n };\\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\\n return C === PromiseConstructor || C === PromiseWrapper\\n ? new OwnPromiseCapability(C)\\n : newGenericPromiseCapability(C);\\n };\\n\\n if (!IS_PURE && typeof NativePromise == 'function') {\\n nativeThen = NativePromise.prototype.then;\\n\\n // wrap native Promise#then for native async functions\\n redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\\n var that = this;\\n return new PromiseConstructor(function (resolve, reject) {\\n nativeThen.call(that, resolve, reject);\\n }).then(onFulfilled, onRejected);\\n // https://github.com/zloirock/core-js/issues/640\\n }, { unsafe: true });\\n\\n // wrap fetch result\\n if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\\n // eslint-disable-next-line no-unused-vars\\n fetch: function fetch(input /* , init */) {\\n return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\\n }\\n });\\n }\\n}\\n\\n$({ global: true, wrap: true, forced: FORCED }, {\\n Promise: PromiseConstructor\\n});\\n\\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\\nsetSpecies(PROMISE);\\n\\nPromiseWrapper = getBuiltIn(PROMISE);\\n\\n// statics\\n$({ target: PROMISE, stat: true, forced: FORCED }, {\\n // `Promise.reject` method\\n // https://tc39.github.io/ecma262/#sec-promise.reject\\n reject: function reject(r) {\\n var capability = newPromiseCapability(this);\\n capability.reject.call(undefined, r);\\n return capability.promise;\\n }\\n});\\n\\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\\n // `Promise.resolve` method\\n // https://tc39.github.io/ecma262/#sec-promise.resolve\\n resolve: function resolve(x) {\\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\\n }\\n});\\n\\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\\n // `Promise.all` method\\n // https://tc39.github.io/ecma262/#sec-promise.all\\n all: function all(iterable) {\\n var C = this;\\n var capability = newPromiseCapability(C);\\n var resolve = capability.resolve;\\n var reject = capability.reject;\\n var result = perform(function () {\\n var $promiseResolve = aFunction(C.resolve);\\n var values = [];\\n var counter = 0;\\n var remaining = 1;\\n iterate(iterable, function (promise) {\\n var index = counter++;\\n var alreadyCalled = false;\\n values.push(undefined);\\n remaining++;\\n $promiseResolve.call(C, promise).then(function (value) {\\n if (alreadyCalled) return;\\n alreadyCalled = true;\\n values[index] = value;\\n --remaining || resolve(values);\\n }, reject);\\n });\\n --remaining || resolve(values);\\n });\\n if (result.error) reject(result.value);\\n return capability.promise;\\n },\\n // `Promise.race` method\\n // https://tc39.github.io/ecma262/#sec-promise.race\\n race: function race(iterable) {\\n var C = this;\\n var capability = newPromiseCapability(C);\\n var reject = capability.reject;\\n var result = perform(function () {\\n var $promiseResolve = aFunction(C.resolve);\\n iterate(iterable, function (promise) {\\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\\n });\\n });\\n if (result.error) reject(result.value);\\n return capability.promise;\\n }\\n});\\n\\n\\n/***/ }),\\n/* 85 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar redefine = __webpack_require__(10);\\n\\nmodule.exports = function (target, src, options) {\\n for (var key in src) redefine(target, key, src[key], options);\\n return target;\\n};\\n\\n\\n/***/ }),\\n/* 86 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar getBuiltIn = __webpack_require__(11);\\nvar definePropertyModule = __webpack_require__(9);\\nvar wellKnownSymbol = __webpack_require__(1);\\nvar DESCRIPTORS = __webpack_require__(8);\\n\\nvar SPECIES = wellKnownSymbol('species');\\n\\nmodule.exports = function (CONSTRUCTOR_NAME) {\\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\\n var defineProperty = definePropertyModule.f;\\n\\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\\n defineProperty(Constructor, SPECIES, {\\n configurable: true,\\n get: function () { return this; }\\n });\\n }\\n};\\n\\n\\n/***/ }),\\n/* 87 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = function (it, Constructor, name) {\\n if (!(it instanceof Constructor)) {\\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\\n } return it;\\n};\\n\\n\\n/***/ }),\\n/* 88 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar wellKnownSymbol = __webpack_require__(1);\\nvar Iterators = __webpack_require__(14);\\n\\nvar ITERATOR = wellKnownSymbol('iterator');\\nvar ArrayPrototype = Array.prototype;\\n\\n// check on default Array iterator\\nmodule.exports = function (it) {\\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\\n};\\n\\n\\n/***/ }),\\n/* 89 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar classof = __webpack_require__(38);\\nvar Iterators = __webpack_require__(14);\\nvar wellKnownSymbol = __webpack_require__(1);\\n\\nvar ITERATOR = wellKnownSymbol('iterator');\\n\\nmodule.exports = function (it) {\\n if (it != undefined) return it[ITERATOR]\\n || it['@@iterator']\\n || Iterators[classof(it)];\\n};\\n\\n\\n/***/ }),\\n/* 90 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar anObject = __webpack_require__(2);\\n\\n// call something on iterator step with safe closing on error\\nmodule.exports = function (iterator, fn, value, ENTRIES) {\\n try {\\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\\n // 7.4.6 IteratorClose(iterator, completion)\\n } catch (error) {\\n var returnMethod = iterator['return'];\\n if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\\n throw error;\\n }\\n};\\n\\n\\n/***/ }),\\n/* 91 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar wellKnownSymbol = __webpack_require__(1);\\n\\nvar ITERATOR = wellKnownSymbol('iterator');\\nvar SAFE_CLOSING = false;\\n\\ntry {\\n var called = 0;\\n var iteratorWithReturn = {\\n next: function () {\\n return { done: !!called++ };\\n },\\n 'return': function () {\\n SAFE_CLOSING = true;\\n }\\n };\\n iteratorWithReturn[ITERATOR] = function () {\\n return this;\\n };\\n // eslint-disable-next-line no-throw-literal\\n Array.from(iteratorWithReturn, function () { throw 2; });\\n} catch (error) { /* empty */ }\\n\\nmodule.exports = function (exec, SKIP_CLOSING) {\\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\\n var ITERATION_SUPPORT = false;\\n try {\\n var object = {};\\n object[ITERATOR] = function () {\\n return {\\n next: function () {\\n return { done: ITERATION_SUPPORT = true };\\n }\\n };\\n };\\n exec(object);\\n } catch (error) { /* empty */ }\\n return ITERATION_SUPPORT;\\n};\\n\\n\\n/***/ }),\\n/* 92 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar getOwnPropertyDescriptor = __webpack_require__(28).f;\\nvar classof = __webpack_require__(13);\\nvar macrotask = __webpack_require__(52).set;\\nvar IS_IOS = __webpack_require__(53);\\n\\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\\nvar process = global.process;\\nvar Promise = global.Promise;\\nvar IS_NODE = classof(process) == 'process';\\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\\n\\nvar flush, head, last, notify, toggle, node, promise, then;\\n\\n// modern engines have queueMicrotask method\\nif (!queueMicrotask) {\\n flush = function () {\\n var parent, fn;\\n if (IS_NODE && (parent = process.domain)) parent.exit();\\n while (head) {\\n fn = head.fn;\\n head = head.next;\\n try {\\n fn();\\n } catch (error) {\\n if (head) notify();\\n else last = undefined;\\n throw error;\\n }\\n } last = undefined;\\n if (parent) parent.enter();\\n };\\n\\n // Node.js\\n if (IS_NODE) {\\n notify = function () {\\n process.nextTick(flush);\\n };\\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\\n } else if (MutationObserver && !IS_IOS) {\\n toggle = true;\\n node = document.createTextNode('');\\n new MutationObserver(flush).observe(node, { characterData: true });\\n notify = function () {\\n node.data = toggle = !toggle;\\n };\\n // environments with maybe non-completely correct, but existent Promise\\n } else if (Promise && Promise.resolve) {\\n // Promise.resolve without an argument throws an error in LG WebOS 2\\n promise = Promise.resolve(undefined);\\n then = promise.then;\\n notify = function () {\\n then.call(promise, flush);\\n };\\n // for other environments - macrotask based on:\\n // - setImmediate\\n // - MessageChannel\\n // - window.postMessag\\n // - onreadystatechange\\n // - setTimeout\\n } else {\\n notify = function () {\\n // strange IE + webpack dev server bug - use .call(global)\\n macrotask.call(global, flush);\\n };\\n }\\n}\\n\\nmodule.exports = queueMicrotask || function (fn) {\\n var task = { fn: fn, next: undefined };\\n if (last) last.next = task;\\n if (!head) {\\n head = task;\\n notify();\\n } last = task;\\n};\\n\\n\\n/***/ }),\\n/* 93 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\n\\nmodule.exports = function (a, b) {\\n var console = global.console;\\n if (console && console.error) {\\n arguments.length === 1 ? console.error(a) : console.error(a, b);\\n }\\n};\\n\\n\\n/***/ }),\\n/* 94 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar userAgent = __webpack_require__(54);\\n\\nvar process = global.process;\\nvar versions = process && process.versions;\\nvar v8 = versions && versions.v8;\\nvar match, version;\\n\\nif (v8) {\\n match = v8.split('.');\\n version = match[0] + match[1];\\n} else if (userAgent) {\\n match = userAgent.match(/Edge\\\\/(\\\\d+)/);\\n if (!match || match[1] >= 74) {\\n match = userAgent.match(/Chrome\\\\/(\\\\d+)/);\\n if (match) version = match[1];\\n }\\n}\\n\\nmodule.exports = version && +version;\\n\\n\\n/***/ }),\\n/* 95 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar $ = __webpack_require__(17);\\nvar aFunction = __webpack_require__(15);\\nvar newPromiseCapabilityModule = __webpack_require__(31);\\nvar perform = __webpack_require__(56);\\nvar iterate = __webpack_require__(49);\\n\\n// `Promise.allSettled` method\\n// https://github.com/tc39/proposal-promise-allSettled\\n$({ target: 'Promise', stat: true }, {\\n allSettled: function allSettled(iterable) {\\n var C = this;\\n var capability = newPromiseCapabilityModule.f(C);\\n var resolve = capability.resolve;\\n var reject = capability.reject;\\n var result = perform(function () {\\n var promiseResolve = aFunction(C.resolve);\\n var values = [];\\n var counter = 0;\\n var remaining = 1;\\n iterate(iterable, function (promise) {\\n var index = counter++;\\n var alreadyCalled = false;\\n values.push(undefined);\\n remaining++;\\n promiseResolve.call(C, promise).then(function (value) {\\n if (alreadyCalled) return;\\n alreadyCalled = true;\\n values[index] = { status: 'fulfilled', value: value };\\n --remaining || resolve(values);\\n }, function (e) {\\n if (alreadyCalled) return;\\n alreadyCalled = true;\\n values[index] = { status: 'rejected', reason: e };\\n --remaining || resolve(values);\\n });\\n });\\n --remaining || resolve(values);\\n });\\n if (result.error) reject(result.value);\\n return capability.promise;\\n }\\n});\\n\\n\\n/***/ }),\\n/* 96 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar $ = __webpack_require__(17);\\nvar IS_PURE = __webpack_require__(12);\\nvar NativePromise = __webpack_require__(48);\\nvar fails = __webpack_require__(5);\\nvar getBuiltIn = __webpack_require__(11);\\nvar speciesConstructor = __webpack_require__(51);\\nvar promiseResolve = __webpack_require__(55);\\nvar redefine = __webpack_require__(10);\\n\\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\\nvar NON_GENERIC = !!NativePromise && fails(function () {\\n NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\\n});\\n\\n// `Promise.prototype.finally` method\\n// https://tc39.github.io/ecma262/#sec-promise.prototype.finally\\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\\n 'finally': function (onFinally) {\\n var C = speciesConstructor(this, getBuiltIn('Promise'));\\n var isFunction = typeof onFinally == 'function';\\n return this.then(\\n isFunction ? function (x) {\\n return promiseResolve(C, onFinally()).then(function () { return x; });\\n } : onFinally,\\n isFunction ? function (e) {\\n return promiseResolve(C, onFinally()).then(function () { throw e; });\\n } : onFinally\\n );\\n }\\n});\\n\\n// patch native Promise.prototype for native async functions\\nif (!IS_PURE && typeof NativePromise == 'function' && !NativePromise.prototype['finally']) {\\n redefine(NativePromise.prototype, 'finally', getBuiltIn('Promise').prototype['finally']);\\n}\\n\\n\\n/***/ }),\\n/* 97 */\\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n// ESM COMPAT FLAG\\n__webpack_require__.r(__webpack_exports__);\\n\\n// EXPORTS\\n__webpack_require__.d(__webpack_exports__, \\\"add\\\", function() { return /* binding */ add; });\\n__webpack_require__.d(__webpack_exports__, \\\"done\\\", function() { return /* binding */ done; });\\n__webpack_require__.d(__webpack_exports__, \\\"toJS\\\", function() { return /* binding */ toJS; });\\n__webpack_require__.d(__webpack_exports__, \\\"load\\\", function() { return /* binding */ load; });\\n__webpack_require__.d(__webpack_exports__, \\\"dispose\\\", function() { return /* binding */ dispose; });\\n__webpack_require__.d(__webpack_exports__, \\\"search\\\", function() { return /* binding */ search; });\\n\\n// CONCATENATED MODULE: ./node_modules/tslib/tslib.es6.js\\n/*! *****************************************************************************\\r\\nCopyright (c) Microsoft Corporation.\\r\\n\\r\\nPermission to use, copy, modify, and/or distribute this software for any\\r\\npurpose with or without fee is hereby granted.\\r\\n\\r\\nTHE SOFTWARE IS PROVIDED \\\"AS IS\\\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\\r\\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\\r\\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\\r\\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\\r\\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\\r\\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\\r\\nPERFORMANCE OF THIS SOFTWARE.\\r\\n***************************************************************************** */\\r\\n/* global Reflect, Promise */\\r\\n\\r\\nvar extendStatics = function(d, b) {\\r\\n extendStatics = Object.setPrototypeOf ||\\r\\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\\r\\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\\r\\n return extendStatics(d, b);\\r\\n};\\r\\n\\r\\nfunction __extends(d, b) {\\r\\n extendStatics(d, b);\\r\\n function __() { this.constructor = d; }\\r\\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\\r\\n}\\r\\n\\r\\nvar __assign = function() {\\r\\n __assign = Object.assign || function __assign(t) {\\r\\n for (var s, i = 1, n = arguments.length; i < n; i++) {\\r\\n s = arguments[i];\\r\\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\\r\\n }\\r\\n return t;\\r\\n }\\r\\n return __assign.apply(this, arguments);\\r\\n}\\r\\n\\r\\nfunction __rest(s, e) {\\r\\n var t = {};\\r\\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\\r\\n t[p] = s[p];\\r\\n if (s != null && typeof Object.getOwnPropertySymbols === \\\"function\\\")\\r\\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\\r\\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\\r\\n t[p[i]] = s[p[i]];\\r\\n }\\r\\n return t;\\r\\n}\\r\\n\\r\\nfunction __decorate(decorators, target, key, desc) {\\r\\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\\r\\n if (typeof Reflect === \\\"object\\\" && typeof Reflect.decorate === \\\"function\\\") r = Reflect.decorate(decorators, target, key, desc);\\r\\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\\r\\n return c > 3 && r && Object.defineProperty(target, key, r), r;\\r\\n}\\r\\n\\r\\nfunction __param(paramIndex, decorator) {\\r\\n return function (target, key) { decorator(target, key, paramIndex); }\\r\\n}\\r\\n\\r\\nfunction __metadata(metadataKey, metadataValue) {\\r\\n if (typeof Reflect === \\\"object\\\" && typeof Reflect.metadata === \\\"function\\\") return Reflect.metadata(metadataKey, metadataValue);\\r\\n}\\r\\n\\r\\nfunction __awaiter(thisArg, _arguments, P, generator) {\\r\\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\\r\\n return new (P || (P = Promise))(function (resolve, reject) {\\r\\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\\r\\n function rejected(value) { try { step(generator[\\\"throw\\\"](value)); } catch (e) { reject(e); } }\\r\\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\\r\\n step((generator = generator.apply(thisArg, _arguments || [])).next());\\r\\n });\\r\\n}\\r\\n\\r\\nfunction __generator(thisArg, body) {\\r\\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\\r\\n return g = { next: verb(0), \\\"throw\\\": verb(1), \\\"return\\\": verb(2) }, typeof Symbol === \\\"function\\\" && (g[Symbol.iterator] = function() { return this; }), g;\\r\\n function verb(n) { return function (v) { return step([n, v]); }; }\\r\\n function step(op) {\\r\\n if (f) throw new TypeError(\\\"Generator is already executing.\\\");\\r\\n while (_) try {\\r\\n if (f = 1, y && (t = op[0] & 2 ? y[\\\"return\\\"] : op[0] ? y[\\\"throw\\\"] || ((t = y[\\\"return\\\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\\r\\n if (y = 0, t) op = [op[0] & 2, t.value];\\r\\n switch (op[0]) {\\r\\n case 0: case 1: t = op; break;\\r\\n case 4: _.label++; return { value: op[1], done: false };\\r\\n case 5: _.label++; y = op[1]; op = [0]; continue;\\r\\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\\r\\n default:\\r\\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\\r\\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\\r\\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\\r\\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\\r\\n if (t[2]) _.ops.pop();\\r\\n _.trys.pop(); continue;\\r\\n }\\r\\n op = body.call(thisArg, _);\\r\\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\\r\\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\\r\\n }\\r\\n}\\r\\n\\r\\nvar __createBinding = Object.create ? (function(o, m, k, k2) {\\r\\n if (k2 === undefined) k2 = k;\\r\\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\\r\\n}) : (function(o, m, k, k2) {\\r\\n if (k2 === undefined) k2 = k;\\r\\n o[k2] = m[k];\\r\\n});\\r\\n\\r\\nfunction __exportStar(m, exports) {\\r\\n for (var p in m) if (p !== \\\"default\\\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\\r\\n}\\r\\n\\r\\nfunction __values(o) {\\r\\n var s = typeof Symbol === \\\"function\\\" && Symbol.iterator, m = s && o[s], i = 0;\\r\\n if (m) return m.call(o);\\r\\n if (o && typeof o.length === \\\"number\\\") return {\\r\\n next: function () {\\r\\n if (o && i >= o.length) o = void 0;\\r\\n return { value: o && o[i++], done: !o };\\r\\n }\\r\\n };\\r\\n throw new TypeError(s ? \\\"Object is not iterable.\\\" : \\\"Symbol.iterator is not defined.\\\");\\r\\n}\\r\\n\\r\\nfunction __read(o, n) {\\r\\n var m = typeof Symbol === \\\"function\\\" && o[Symbol.iterator];\\r\\n if (!m) return o;\\r\\n var i = m.call(o), r, ar = [], e;\\r\\n try {\\r\\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\\r\\n }\\r\\n catch (error) { e = { error: error }; }\\r\\n finally {\\r\\n try {\\r\\n if (r && !r.done && (m = i[\\\"return\\\"])) m.call(i);\\r\\n }\\r\\n finally { if (e) throw e.error; }\\r\\n }\\r\\n return ar;\\r\\n}\\r\\n\\r\\nfunction __spread() {\\r\\n for (var ar = [], i = 0; i < arguments.length; i++)\\r\\n ar = ar.concat(__read(arguments[i]));\\r\\n return ar;\\r\\n}\\r\\n\\r\\nfunction __spreadArrays() {\\r\\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\\r\\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\\r\\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\\r\\n r[k] = a[j];\\r\\n return r;\\r\\n};\\r\\n\\r\\nfunction __await(v) {\\r\\n return this instanceof __await ? (this.v = v, this) : new __await(v);\\r\\n}\\r\\n\\r\\nfunction __asyncGenerator(thisArg, _arguments, generator) {\\r\\n if (!Symbol.asyncIterator) throw new TypeError(\\\"Symbol.asyncIterator is not defined.\\\");\\r\\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\\r\\n return i = {}, verb(\\\"next\\\"), verb(\\\"throw\\\"), verb(\\\"return\\\"), i[Symbol.asyncIterator] = function () { return this; }, i;\\r\\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\\r\\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\\r\\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\\r\\n function fulfill(value) { resume(\\\"next\\\", value); }\\r\\n function reject(value) { resume(\\\"throw\\\", value); }\\r\\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\\r\\n}\\r\\n\\r\\nfunction __asyncDelegator(o) {\\r\\n var i, p;\\r\\n return i = {}, verb(\\\"next\\\"), verb(\\\"throw\\\", function (e) { throw e; }), verb(\\\"return\\\"), i[Symbol.iterator] = function () { return this; }, i;\\r\\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \\\"return\\\" } : f ? f(v) : v; } : f; }\\r\\n}\\r\\n\\r\\nfunction __asyncValues(o) {\\r\\n if (!Symbol.asyncIterator) throw new TypeError(\\\"Symbol.asyncIterator is not defined.\\\");\\r\\n var m = o[Symbol.asyncIterator], i;\\r\\n return m ? m.call(o) : (o = typeof __values === \\\"function\\\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\\\"next\\\"), verb(\\\"throw\\\"), verb(\\\"return\\\"), i[Symbol.asyncIterator] = function () { return this; }, i);\\r\\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\\r\\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\\r\\n}\\r\\n\\r\\nfunction __makeTemplateObject(cooked, raw) {\\r\\n if (Object.defineProperty) { Object.defineProperty(cooked, \\\"raw\\\", { value: raw }); } else { cooked.raw = raw; }\\r\\n return cooked;\\r\\n};\\r\\n\\r\\nvar __setModuleDefault = Object.create ? (function(o, v) {\\r\\n Object.defineProperty(o, \\\"default\\\", { enumerable: true, value: v });\\r\\n}) : function(o, v) {\\r\\n o[\\\"default\\\"] = v;\\r\\n};\\r\\n\\r\\nfunction __importStar(mod) {\\r\\n if (mod && mod.__esModule) return mod;\\r\\n var result = {};\\r\\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\\r\\n __setModuleDefault(result, mod);\\r\\n return result;\\r\\n}\\r\\n\\r\\nfunction __importDefault(mod) {\\r\\n return (mod && mod.__esModule) ? mod : { default: mod };\\r\\n}\\r\\n\\r\\nfunction __classPrivateFieldGet(receiver, privateMap) {\\r\\n if (!privateMap.has(receiver)) {\\r\\n throw new TypeError(\\\"attempted to get private field on non-instance\\\");\\r\\n }\\r\\n return privateMap.get(receiver);\\r\\n}\\r\\n\\r\\nfunction __classPrivateFieldSet(receiver, privateMap, value) {\\r\\n if (!privateMap.has(receiver)) {\\r\\n throw new TypeError(\\\"attempted to set private field on non-instance\\\");\\r\\n }\\r\\n privateMap.set(receiver, value);\\r\\n return value;\\r\\n}\\r\\n\\n// EXTERNAL MODULE: ./node_modules/lunr/lunr.js\\nvar lunr = __webpack_require__(4);\\n\\n// CONCATENATED MODULE: ./node_modules/workerize-loader/dist/rpc-worker-loader.js!./node_modules/ts-loader??ref--5-0!./node_modules/babel-loader/lib??ref--5-1!./src/services/SearchWorker.worker.ts\\n\\n\\ntry {\\n // tslint:disable-next-line\\n __webpack_require__(57); // bundle into worker\\n}\\ncatch (_) { // nope\\n}\\n/* just for better typings */\\nvar Worker = /** @class */ (function () {\\n function Worker() {\\n this.add = add;\\n this.done = done;\\n this.search = search;\\n this.toJS = toJS;\\n this.load = load;\\n this.dispose = dispose;\\n }\\n return Worker;\\n}());\\n/* harmony default export */ var SearchWorker_worker = __webpack_exports__[\\\"default\\\"] = (Worker);\\nvar store = [];\\nlunr[\\\"tokenizer\\\"].separator = /\\\\s+/;\\nvar builder;\\nvar resolveIndex;\\nvar index;\\nfunction initEmpty() {\\n builder = new lunr[\\\"Builder\\\"]();\\n builder.field('title');\\n builder.field('description');\\n builder.ref('ref');\\n builder.pipeline.add(lunr[\\\"trimmer\\\"], lunr[\\\"stopWordFilter\\\"], lunr[\\\"stemmer\\\"]);\\n index = new Promise(function (resolve) {\\n resolveIndex = resolve;\\n });\\n}\\ninitEmpty();\\nvar expandTerm = function (term) { return '*' + lunr[\\\"stemmer\\\"](new lunr[\\\"Token\\\"](term, {})) + '*'; };\\nfunction add(title, description, meta) {\\n var ref = store.push(meta) - 1;\\n var item = {\\n title: title.toLowerCase(),\\n description: description.toLowerCase(),\\n ref: ref\\n };\\n builder.add(item);\\n}\\nfunction done() {\\n return __awaiter(this, void 0, void 0, function () {\\n return __generator(this, function (_a) {\\n resolveIndex(builder.build());\\n return [2 /*return*/];\\n });\\n });\\n}\\nfunction toJS() {\\n return __awaiter(this, void 0, void 0, function () {\\n var _a;\\n return __generator(this, function (_b) {\\n switch (_b.label) {\\n case 0:\\n _a = {\\n store: store\\n };\\n return [4 /*yield*/, index];\\n case 1: return [2 /*return*/, (_a.index = (_b.sent()).toJSON(),\\n _a)];\\n }\\n });\\n });\\n}\\nfunction load(state) {\\n return __awaiter(this, void 0, void 0, function () {\\n return __generator(this, function (_a) {\\n store = state.store;\\n resolveIndex(lunr[\\\"Index\\\"].load(state.index));\\n return [2 /*return*/];\\n });\\n });\\n}\\nfunction dispose() {\\n return __awaiter(this, void 0, void 0, function () {\\n return __generator(this, function (_a) {\\n store = [];\\n initEmpty();\\n return [2 /*return*/];\\n });\\n });\\n}\\nfunction search(q, limit) {\\n if (limit === void 0) { limit = 0; }\\n return __awaiter(this, void 0, void 0, function () {\\n var searchResults;\\n return __generator(this, function (_a) {\\n switch (_a.label) {\\n case 0:\\n if (q.trim().length === 0) {\\n return [2 /*return*/, []];\\n }\\n return [4 /*yield*/, index];\\n case 1:\\n searchResults = (_a.sent()).query(function (t) {\\n q.trim().toLowerCase().split(/\\\\s+/).forEach(function (term) {\\n var exp = expandTerm(term);\\n t.term(exp, {});\\n });\\n });\\n if (limit > 0) {\\n searchResults = searchResults.slice(0, limit);\\n }\\n return [2 /*return*/, searchResults.map(function (res) { return ({\\n meta: store[res.ref],\\n score: res.score\\n }); })];\\n }\\n });\\n });\\n}\\n\\naddEventListener('message', function (e) {var _e$data = e.data,type = _e$data.type,method = _e$data.method,id = _e$data.id,params = _e$data.params,f,p;if (type === 'RPC' && method) {if (f = __webpack_exports__[method]) {p = Promise.resolve().then(function () {return f.apply(__webpack_exports__, params);});} else {p = Promise.reject('No such method');}p.then(function (result) {postMessage({type: 'RPC',id: id,result: result});}).catch(function (e) {var error = {message: e};if (e.stack) {error.message = e.message;error.stack = e.stack;error.name = e.name;}postMessage({type: 'RPC',id: id,error: error});});}});postMessage({type: 'RPC',method: 'ready'});\\n\\n/***/ })\\n/******/ ]);\\n//# sourceMappingURL=95952f773ec942db46dc.worker.js.map\"])), { name: \"[hash].worker.js\" })\n\t\t\t\t\taddMethods(w, methods)\n\t\t\t\t\t\n\t\t\t\t\treturn w\n\t\t\t\t}\n\t\t\t","export default function addMethods(worker, methods) {\n\tlet c = 0;\n\tlet callbacks = {};\n\tworker.addEventListener('message', (e) => {\n\t\tlet d = e.data;\n\t\tif (d.type!=='RPC') return;\n\t\tif (d.id) {\n\t\t\tlet f = callbacks[d.id];\n\t\t\tif (f) {\n\t\t\t\tdelete callbacks[d.id];\n\t\t\t\tif (d.error) {\n\t\t\t\t\tf[1](Object.assign(Error(d.error.message), d.error));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tf[0](d.result);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tlet evt = document.createEvent('Event');\n\t\t\tevt.initEvent(d.method, false, false);\n\t\t\tevt.data = d.params;\n\t\t\tworker.dispatchEvent(evt);\n\t\t}\n\t});\n\tmethods.forEach( method => {\n\t\tworker[method] = (...params) => new Promise( (a, b) => {\n\t\t\tlet id = ++c;\n\t\t\tcallbacks[id] = [a, b];\n\t\t\tworker.postMessage({ type: 'RPC', id, method, params });\n\t\t});\n\t});\n}\n","module.exports = require(\"core-js/es/promise\");","module.exports = require(\"stickyfill\");","'use strict';\n\nconst visit = require('unist-util-visit');\n\nmodule.exports = slug;\n\nfunction slug() {\n return transformer;\n} // Patch slugs on heading nodes.\n\n\nfunction transformer(ast) {\n const headlines: any[] = [];\n visit(ast, 'heading', visitor);\n\n function visitor(node) {\n const data = node.data || (node.data = {});\n const props = data.hProperties || (data.hProperties = {});\n const sectionId = `section/${data.id}`;\n data.id = sectionId;\n props.id = sectionId;\n visit(node, 'text', textNode => {\n headlines.push({\n depth: node.depth,\n id: data.id,\n text: textNode.value\n });\n });\n }\n\n const value = `export const headings = ${JSON.stringify(headlines)};`;\n const meta = {\n default: false,\n type: 'export',\n value\n };\n ast.children.splice(0, 0, meta);\n}","module.exports = require(\"unist-util-visit\");","import { darken, desaturate, lighten, readableColor, transparentize } from 'polished';\nconst defaultTheme: ThemeInterface = {\n spacing: {\n unit: 5,\n sectionHorizontal: ({\n spacing\n }) => spacing.unit * 8,\n sectionVertical: ({\n spacing\n }) => spacing.unit * 8\n },\n breakpoints: {\n small: '50rem',\n medium: '75rem',\n large: '105rem'\n },\n colors: {\n tonalOffset: 0.3,\n primary: {\n main: '#32329f',\n light: ({\n colors\n }) => lighten(colors.tonalOffset, colors.primary.main),\n dark: ({\n colors\n }) => darken(colors.tonalOffset, colors.primary.main),\n contrastText: ({\n colors\n }) => readableColor(colors.primary.main)\n },\n success: {\n main: '#1d8127',\n light: ({\n colors\n }) => lighten(colors.tonalOffset * 2, colors.success.main),\n dark: ({\n colors\n }) => darken(colors.tonalOffset, colors.success.main),\n contrastText: ({\n colors\n }) => readableColor(colors.success.main)\n },\n warning: {\n main: '#ffa500',\n light: ({\n colors\n }) => lighten(colors.tonalOffset, colors.warning.main),\n dark: ({\n colors\n }) => darken(colors.tonalOffset, colors.warning.main),\n contrastText: '#ffffff'\n },\n error: {\n main: '#d41f1c',\n light: ({\n colors\n }) => lighten(colors.tonalOffset, colors.error.main),\n dark: ({\n colors\n }) => darken(colors.tonalOffset, colors.error.main),\n contrastText: ({\n colors\n }) => readableColor(colors.error.main)\n },\n gray: {\n 50: '#FAFAFA',\n 100: '#F5F5F5'\n },\n text: {\n primary: '#333333',\n secondary: ({\n colors\n }) => lighten(colors.tonalOffset, colors.text.primary)\n },\n border: {\n dark: 'rgba(0,0,0, 0.1)',\n light: '#ffffff'\n },\n responses: {\n success: {\n color: ({\n colors\n }) => colors.success.main,\n backgroundColor: ({\n colors\n }) => transparentize(0.93, colors.success.main)\n },\n error: {\n color: ({\n colors\n }) => colors.error.main,\n backgroundColor: ({\n colors\n }) => transparentize(0.93, colors.error.main)\n },\n redirect: {\n color: ({\n colors\n }) => colors.warning.main,\n backgroundColor: ({\n colors\n }) => transparentize(0.9, colors.responses.redirect.color)\n },\n info: {\n color: '#87ceeb',\n backgroundColor: ({\n colors\n }) => transparentize(0.9, colors.responses.info.color)\n }\n },\n http: {\n get: '#6bbd5b',\n post: '#248fb2',\n put: '#9b708b',\n options: '#d3ca12',\n patch: '#e09d43',\n delete: '#e27a7a',\n basic: '#999',\n link: '#31bbb6',\n head: '#c167e4'\n }\n },\n schema: {\n linesColor: theme => lighten(theme.colors.tonalOffset, desaturate(theme.colors.tonalOffset, theme.colors.primary.main)),\n defaultDetailsWidth: '75%',\n typeNameColor: theme => theme.colors.text.secondary,\n typeTitleColor: theme => theme.schema.typeNameColor,\n requireLabelColor: theme => theme.colors.error.main,\n labelsTextSize: '0.9em',\n nestingSpacing: '1em',\n nestedBackground: '#fafafa',\n arrow: {\n size: '1.1em',\n color: theme => theme.colors.text.secondary\n }\n },\n typography: {\n fontSize: '14px',\n lineHeight: '1.5em',\n fontWeightRegular: '400',\n fontWeightBold: '600',\n fontWeightLight: '300',\n fontFamily: 'Roboto, sans-serif',\n smoothing: 'antialiased',\n optimizeSpeed: true,\n headings: {\n fontFamily: 'Montserrat, sans-serif',\n fontWeight: '400',\n lineHeight: '1.6em'\n },\n code: {\n fontSize: '13px',\n fontFamily: 'Courier, monospace',\n lineHeight: ({\n typography\n }) => typography.lineHeight,\n fontWeight: ({\n typography\n }) => typography.fontWeightRegular,\n color: '#e53935',\n backgroundColor: 'rgba(38, 50, 56, 0.05)',\n wrap: false\n },\n links: {\n color: ({\n colors\n }) => colors.primary.main,\n visited: ({\n typography\n }) => typography.links.color,\n hover: ({\n typography\n }) => lighten(0.2, typography.links.color)\n }\n },\n sidebar: {\n width: '260px',\n backgroundColor: '#fafafa',\n textColor: '#333333',\n activeTextColor: theme => theme.sidebar.textColor !== defaultTheme.sidebar!.textColor ? theme.sidebar.textColor : theme.colors.primary.main,\n groupItems: {\n textTransform: 'uppercase'\n },\n level1Items: {\n color: '#3C3C3C',\n textTransform: 'none',\n fw: 600,\n fontSize: '1rem'\n },\n level2Items: {\n fw: 500,\n color: '#3C3C3C',\n fontSize: '.95rem'\n },\n arrow: {\n size: '1.5em',\n color: theme => theme.sidebar.textColor\n }\n },\n logo: {\n maxHeight: ({\n sidebar\n }) => sidebar.width,\n maxWidth: ({\n sidebar\n }) => sidebar.width,\n gutter: '2px'\n },\n rightPanel: {\n backgroundColor: '#263238',\n width: '40%',\n textColor: '#ffffff'\n },\n codeBlock: {\n backgroundColor: ({\n rightPanel\n }) => darken(0.1, rightPanel.backgroundColor)\n }\n};\nexport default defaultTheme;\nexport function resolveTheme(theme: ThemeInterface): ResolvedThemeInterface {\n const resolvedValues = {};\n let counter = 0;\n\n const setProxy = (obj, path: string) => {\n Object.keys(obj).forEach(k => {\n const currentPath = (path ? path + '.' : '') + k;\n const val = obj[k];\n\n if (typeof val === 'function') {\n Object.defineProperty(obj, k, {\n get() {\n if (!resolvedValues[currentPath]) {\n counter++;\n\n if (counter > 1000) {\n throw new Error(`Theme probably contains circular dependency at ${currentPath}: ${val.toString()}`);\n }\n\n resolvedValues[currentPath] = val(theme);\n }\n\n return resolvedValues[currentPath];\n },\n\n enumerable: true\n });\n } else if (typeof val === 'object') {\n setProxy(val, currentPath);\n }\n });\n };\n\n setProxy(theme, '');\n return JSON.parse(JSON.stringify(theme));\n}\nexport interface ColorSetting {\n main: string;\n light: string;\n dark: string;\n contrastText: string;\n}\nexport interface HTTPResponseColos {\n color: string;\n backgroundColor: string;\n}\nexport interface FontSettings {\n fontSize: string;\n fontWeight: string;\n fontFamily: string;\n lineHeight: string;\n color: string;\n}\nexport interface ResolvedThemeInterface {\n spacing: {\n unit: number;\n sectionHorizontal: number;\n sectionVertical: number;\n };\n breakpoints: {\n small: string;\n medium: string;\n large: string;\n };\n colors: {\n tonalOffset: number;\n primary: ColorSetting;\n success: ColorSetting;\n warning: ColorSetting;\n error: ColorSetting;\n gray: {\n 50: string;\n 100: string;\n };\n border: {\n light: string;\n dark: string;\n };\n text: {\n primary: string;\n secondary: string;\n };\n responses: {\n success: HTTPResponseColos;\n error: HTTPResponseColos;\n redirect: HTTPResponseColos;\n info: HTTPResponseColos;\n };\n http: {\n get: string;\n post: string;\n put: string;\n options: string;\n patch: string;\n delete: string;\n basic: string;\n link: string;\n head: string;\n };\n };\n schema: {\n linesColor: string;\n defaultDetailsWidth: string;\n typeNameColor: string;\n typeTitleColor: string;\n requireLabelColor: string;\n labelsTextSize: string;\n nestingSpacing: string;\n nestedBackground: string;\n arrow: {\n size: string;\n color: string;\n };\n };\n typography: {\n fontSize: string;\n lineHeight: string;\n fontWeightLight: string;\n fontWeightRegular: string;\n fontWeightBold: string;\n fontFamily: string;\n smoothing: string;\n optimizeSpeed: boolean;\n code: FontSettings & {\n backgroundColor: string;\n wrap: boolean;\n };\n headings: {\n fontFamily: string;\n fontWeight: string;\n lineHeight: string;\n };\n links: {\n color: string;\n visited: string;\n hover: string;\n };\n };\n sidebar: {\n width: string;\n backgroundColor: string;\n textColor: string;\n activeTextColor: string;\n groupItems: {\n textTransform: string;\n };\n level1Items: {\n color: string;\n fw: number;\n textTransform: string;\n fontSize: string;\n };\n level2Items: {\n color: string;\n fw: number;\n textTransform: string;\n fontSize: string;\n };\n arrow: {\n size: string;\n color: string;\n };\n };\n logo: {\n maxHeight: string;\n maxWidth: string;\n gutter: string;\n };\n rightPanel: {\n backgroundColor: string;\n textColor: string;\n width: string;\n };\n codeBlock: {\n backgroundColor: string;\n };\n extensionsHook?: (name: string, props: any) => string;\n}\nexport type primitive = string | number | boolean | undefined | null;\nexport type AdvancedThemeDeep = T extends primitive ? T | ((theme: ResolvedThemeInterface) => T) : AdvancedThemeObject;\nexport type AdvancedThemeObject = { [P in keyof T]?: AdvancedThemeDeep };\nexport type ThemeInterface = AdvancedThemeObject;","export const IS_BROWSER = typeof window !== 'undefined' && 'HTMLElement' in window;\nexport function querySelector(selector: string): Element | null {\n if (typeof document !== 'undefined') {\n return document.querySelector(selector);\n }\n\n return null;\n}\n/**\n * Drop everything inside <...> (i.e., tags/elements), and keep the text.\n * Unlike browser innerText, this removes newlines; it also doesn't handle\n * un-encoded `<` or `>` characters very well, so don't feed it malformed HTML\n */\n\nexport function html2Str(html: string): string {\n return html.split(/<[^>]+>/).map(chunk => {\n return chunk.trim();\n }).filter(trimmedChunk => {\n return trimmedChunk.length > 0;\n }).join(' ');\n} // scrollIntoViewIfNeeded polyfill\n\nif (typeof Element !== 'undefined' && !(Element as any).prototype.scrollIntoViewIfNeeded) {\n (Element as any).prototype.scrollIntoViewIfNeeded = function (centerIfNeeded) {\n centerIfNeeded = arguments.length === 0 ? true : !!centerIfNeeded;\n const parent = this.parentNode;\n const parentComputedStyle = window.getComputedStyle(parent, undefined);\n const parentBorderTopWidth = parseInt(parentComputedStyle.getPropertyValue('border-top-width'), 10);\n const parentBorderLeftWidth = parseInt(parentComputedStyle.getPropertyValue('border-left-width'), 10);\n const overTop = this.offsetTop - parent.offsetTop < parent.scrollTop;\n const overBottom = this.offsetTop - parent.offsetTop + this.clientHeight - parentBorderTopWidth > parent.scrollTop + parent.clientHeight;\n const overLeft = this.offsetLeft - parent.offsetLeft < parent.scrollLeft;\n const overRight = this.offsetLeft - parent.offsetLeft + this.clientWidth - parentBorderLeftWidth > parent.scrollLeft + parent.clientWidth;\n const alignWithTop = overTop && !overBottom;\n\n if ((overTop || overBottom) && centerIfNeeded) {\n parent.scrollTop = this.offsetTop - parent.offsetTop - parent.clientHeight / 2 - parentBorderTopWidth + this.clientHeight / 2;\n }\n\n if ((overLeft || overRight) && centerIfNeeded) {\n parent.scrollLeft = this.offsetLeft - parent.offsetLeft - parent.clientWidth / 2 - parentBorderLeftWidth + this.clientWidth / 2;\n }\n\n if ((overTop || overBottom || overLeft || overRight) && !centerIfNeeded) {\n this.scrollIntoView(alignWithTop);\n }\n };\n}","import slugify from 'slugify';\nimport { format, parse } from 'url';\n/**\n * Maps over array passing `isLast` bool to iterator as the second argument\n */\n\nexport function mapWithLast(array: T[], iteratee: (item: T, isLast: boolean) => P) {\n const res: P[] = [];\n\n for (let i = 0; i < array.length - 1; i++) {\n res.push(iteratee(array[i], false));\n }\n\n if (array.length !== 0) {\n res.push(iteratee(array[array.length - 1], true));\n }\n\n return res;\n}\n/**\n * Creates an object with the same keys as object and values generated by running each\n * own enumerable string keyed property of object thru iteratee.\n * The iteratee is invoked with three arguments: (value, key, object).\n *\n * @param object the object to iterate over\n * @param iteratee the function invoked per iteration.\n */\n\nexport function mapValues(object: Record, iteratee: (val: T, key: string, obj: Record) => P): Record {\n const res: {\n [key: string]: P;\n } = {};\n\n for (const key in object) {\n if (object.hasOwnProperty(key)) {\n res[key] = iteratee(object[key], key, object);\n }\n }\n\n return res;\n}\n/**\n * flattens collection using `prop` field as a children\n * @param collectionItems collection items\n * @param prop item property with child elements\n */\n\nexport function flattenByProp(collectionItems: T[], prop: P): T[] {\n const res: T[] = [];\n\n const iterate = (items: T[]) => {\n for (const item of items) {\n res.push(item);\n\n if (item[prop]) {\n iterate(((item[prop] as any) as T[]));\n }\n }\n };\n\n iterate(collectionItems);\n return res;\n}\nexport function stripTrailingSlash(path: string): string {\n if (path.endsWith('/')) {\n return path.substring(0, path.length - 1);\n }\n\n return path;\n}\nexport function isNumeric(n: any): n is number {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}\nexport function appendToMdHeading(md: string, heading: string, content: string) {\n // if heading is already in md and append to the end of it\n const testRegex = new RegExp(`(^|\\\\n)#\\\\s?${heading}\\\\s*\\\\n`, 'i');\n const replaceRegex = new RegExp(`((\\\\n|^)#\\\\s*${heading}\\\\s*(\\\\n|$)(?:.|\\\\n)*?)(\\\\n#|$)`, 'i');\n\n if (testRegex.test(md)) {\n return md.replace(replaceRegex, `$1\\n\\n${content}\\n$4`);\n } else {\n // else append heading itself\n const br = md === '' || md.endsWith('\\n\\n') ? '' : md.endsWith('\\n') ? '\\n' : '\\n\\n';\n return `${md}${br}# ${heading}\\n\\n${content}`;\n }\n} // credits https://stackoverflow.com/a/46973278/1749888\n\nexport const mergeObjects = (target: any, ...sources: any[]): any => {\n if (!sources.length) {\n return target;\n }\n\n const source = sources.shift();\n\n if (source === undefined) {\n return target;\n }\n\n if (isMergebleObject(target) && isMergebleObject(source)) {\n Object.keys(source).forEach((key: string) => {\n if (isMergebleObject(source[key])) {\n if (!target[key]) {\n target[key] = {};\n }\n\n mergeObjects(target[key], source[key]);\n } else {\n target[key] = source[key];\n }\n });\n }\n\n return mergeObjects(target, ...sources);\n};\n\nconst isObject = (item: any): boolean => {\n return item !== null && typeof item === 'object';\n};\n\nconst isMergebleObject = (item): boolean => {\n return isObject(item) && !Array.isArray(item);\n};\n/**\n * slugify() returns empty string when failed to slugify.\n * so try to return minimum slugified-string with failed one which keeps original value\n * the regex codes are referenced with https://gist.github.com/mathewbyrne/1280286\n */\n\n\nexport function safeSlugify(value: string): string {\n return slugify(value) || value.toString().toLowerCase().replace(/\\s+/g, '-') // Replace spaces with -\n .replace(/&/g, '-and-') // Replace & with 'and'\n .replace(/\\--+/g, '-') // Replace multiple - with single -\n .replace(/^-+/, '') // Trim - from start of text\n .replace(/-+$/, ''); // Trim - from end of text\n}\nexport function isAbsoluteUrl(url: string) {\n return /(?:^[a-z][a-z0-9+.-]*:|\\/\\/)/i.test(url);\n}\n/**\n * simple resolve URL which doesn't break on strings with url fragments\n * e.g. resolveUrl('http://test.com:{port}', 'path') results in http://test.com:{port}/path\n */\n\nexport function resolveUrl(url: string, to: string) {\n let res;\n\n if (to.startsWith('//')) {\n const {\n protocol: specProtocol\n } = parse(url);\n res = `${specProtocol || 'https:'}${to}`;\n } else if (isAbsoluteUrl(to)) {\n res = to;\n } else if (!to.startsWith('/')) {\n res = stripTrailingSlash(url) + '/' + to;\n } else {\n const urlObj = parse(url);\n res = format({ ...urlObj,\n pathname: to\n });\n }\n\n return stripTrailingSlash(res);\n}\nexport function getBasePath(serverUrl: string): string {\n try {\n return parseURL(serverUrl).pathname;\n } catch (e) {\n // when using with redoc-cli serverUrl can be empty resulting in crash\n return serverUrl;\n }\n}\nexport function titleize(text: string) {\n return text.charAt(0).toUpperCase() + text.slice(1);\n}\nexport function removeQueryString(serverUrl: string): string {\n try {\n const url = parseURL(serverUrl);\n url.search = '';\n return url.toString();\n } catch (e) {\n // when using with redoc-cli serverUrl can be empty resulting in crash\n return serverUrl;\n }\n}\n\nfunction parseURL(url: string) {\n if (typeof URL === 'undefined') {\n // node\n return new (require('url').URL)(url);\n } else {\n return new URL(url);\n }\n}\n\nexport function unescapeHTMLChars(str: string): string {\n return str.replace(/&#(\\d+);/g, (_m, code) => String.fromCharCode(parseInt(code, 10))).replace(/&/g, '&');\n}","export interface LabelsConfig {\n enum: string;\n enumSingleValue: string;\n enumArray: string;\n default: string;\n deprecated: string;\n example: string;\n nullable: string;\n recursive: string;\n arrayOf: string;\n webhook: string;\n}\nexport type LabelsConfigRaw = Partial;\nconst labels: LabelsConfig = {\n enum: 'Enum',\n enumSingleValue: 'Value',\n enumArray: 'Items',\n default: 'Default',\n deprecated: 'Deprecated',\n example: 'Example',\n nullable: 'Nullable',\n recursive: 'Recursive',\n arrayOf: 'Array of ',\n webhook: 'Event'\n};\nexport function setRedocLabels(_labels?: LabelsConfigRaw) {\n Object.assign(labels, _labels);\n}\nexport function l(key: keyof LabelsConfig, idx?: number): string {\n const label = labels[key];\n\n if (idx !== undefined) {\n return label[idx];\n }\n\n return label;\n}","import defaultTheme, { ResolvedThemeInterface, resolveTheme, ThemeInterface } from '../theme';\nimport { querySelector } from '../utils/dom';\nimport { isNumeric, mergeObjects } from '../utils/helpers';\nimport { LabelsConfigRaw, setRedocLabels } from './Labels';\nimport { MDXComponentMeta } from './MarkdownRenderer';\nexport interface RedocRawOptions {\n theme?: ThemeInterface;\n scrollYOffset?: number | string | (() => number);\n hideHostname?: boolean | string;\n expandResponses?: string | 'all';\n requiredPropsFirst?: boolean | string;\n sortPropsAlphabetically?: boolean | string;\n sortEnumValuesAlphabetically?: boolean | string;\n noAutoAuth?: boolean | string;\n nativeScrollbars?: boolean | string;\n pathInMiddlePanel?: boolean | string;\n untrustedSpec?: boolean | string;\n hideLoading?: boolean | string;\n hideDownloadButton?: boolean | string;\n disableSearch?: boolean | string;\n onlyRequiredInSamples?: boolean | string;\n showExtensions?: boolean | string | string[];\n hideSingleRequestSampleTab?: boolean | string;\n menuToggle?: boolean | string;\n jsonSampleExpandLevel?: number | string | 'all';\n hideSchemaTitles?: boolean | string;\n simpleOneOfTypeLabel?: boolean | string;\n payloadSampleIdx?: number;\n expandSingleSchemaField?: boolean | string;\n expandAllSchemaFields?: boolean | string;\n hideShelfIcon?: boolean | string;\n hideHttpVerbs?: boolean | string;\n unstable_ignoreMimeParameters?: boolean;\n allowedMdComponents?: Record;\n labels?: LabelsConfigRaw;\n enumSkipQuotes?: boolean | string;\n expandDefaultServerVariables?: boolean;\n maxDisplayedEnumValues?: number;\n}\n\nfunction argValueToBoolean(val?: string | boolean, defaultValue?: boolean): boolean {\n if (val === undefined) {\n return defaultValue || false;\n }\n\n if (typeof val === 'string') {\n return val === 'false' ? false : true;\n }\n\n return val;\n}\n\nfunction argValueToNumber(value: number | string | undefined): number | undefined {\n if (typeof value === 'string') {\n return parseInt(value, 10);\n }\n\n if (typeof value === 'number') {\n return value;\n }\n}\n\nexport class RedocNormalizedOptions {\n static normalizeExpandResponses(value: RedocRawOptions['expandResponses']) {\n if (value === 'all') {\n return 'all';\n }\n\n if (typeof value === 'string') {\n const res = {};\n value.split(',').forEach(code => {\n res[code.trim()] = true;\n });\n return res;\n } else if (value !== undefined) {\n console.warn(`expandResponses must be a string but received value \"${value}\" of type ${typeof value}`);\n }\n\n return {};\n }\n\n static normalizeHideHostname(value: RedocRawOptions['hideHostname']): boolean {\n return !!value;\n }\n\n static normalizeScrollYOffset(value: RedocRawOptions['scrollYOffset']): () => number {\n // just number is not valid selector and leads to crash so checking if isNumeric here\n if (typeof value === 'string' && !isNumeric(value)) {\n const el = querySelector(value);\n\n if (!el) {\n console.warn('scrollYOffset value is a selector to non-existing element. Using offset 0 by default');\n }\n\n const bottom = el && el.getBoundingClientRect().bottom || 0;\n return () => bottom;\n } else if (typeof value === 'number' || isNumeric(value)) {\n return () => typeof value === 'number' ? value : parseFloat(value);\n } else if (typeof value === 'function') {\n return () => {\n const res = value();\n\n if (typeof res !== 'number') {\n console.warn(`scrollYOffset should return number but returned value \"${res}\" of type ${typeof res}`);\n }\n\n return res;\n };\n } else if (value !== undefined) {\n console.warn('Wrong value for scrollYOffset ReDoc option: should be string, number or function');\n }\n\n return () => 0;\n }\n\n static normalizeShowExtensions(value: RedocRawOptions['showExtensions']): string[] | boolean {\n if (typeof value === 'undefined') {\n return false;\n }\n\n if (value === '') {\n return true;\n }\n\n if (typeof value !== 'string') {\n return value;\n }\n\n switch (value) {\n case 'true':\n return true;\n\n case 'false':\n return false;\n\n default:\n return value.split(',').map(ext => ext.trim());\n }\n }\n\n static normalizePayloadSampleIdx(value: RedocRawOptions['payloadSampleIdx']): number {\n if (typeof value === 'number') {\n return Math.max(0, value); // always greater or equal than 0\n }\n\n if (typeof value === 'string') {\n return isFinite(value) ? parseInt(value, 10) : 0;\n }\n\n return 0;\n }\n\n private static normalizeJsonSampleExpandLevel(level?: number | string | 'all'): number {\n if (level === 'all') {\n return +Infinity;\n }\n\n if (!isNaN(Number(level))) {\n return Math.ceil(Number(level));\n }\n\n return 2;\n }\n\n theme: ResolvedThemeInterface;\n scrollYOffset: () => number;\n hideHostname: boolean;\n expandResponses: {\n [code: string]: boolean;\n } | 'all';\n requiredPropsFirst: boolean;\n sortPropsAlphabetically: boolean;\n sortEnumValuesAlphabetically: boolean;\n noAutoAuth: boolean;\n nativeScrollbars: boolean;\n pathInMiddlePanel: boolean;\n untrustedSpec: boolean;\n hideDownloadButton: boolean;\n disableSearch: boolean;\n onlyRequiredInSamples: boolean;\n showExtensions: boolean | string[];\n hideSingleRequestSampleTab: boolean;\n menuToggle: boolean;\n jsonSampleExpandLevel: number;\n enumSkipQuotes: boolean;\n hideSchemaTitles: boolean;\n simpleOneOfTypeLabel: boolean;\n payloadSampleIdx: number;\n expandSingleSchemaField: boolean;\n expandAllSchemaFields: boolean;\n hideShelfIcon: boolean;\n hideHttpVerbs: boolean;\n /* tslint:disable-next-line */\n\n unstable_ignoreMimeParameters: boolean;\n allowedMdComponents: Record;\n expandDefaultServerVariables: boolean;\n maxDisplayedEnumValues?: number;\n\n constructor(raw: RedocRawOptions, defaults: RedocRawOptions = {}) {\n raw = { ...defaults,\n ...raw\n };\n const hook = raw.theme && raw.theme.extensionsHook; // migrate from old theme\n\n if ((raw.theme as any)?.menu && !raw.theme?.sidebar) {\n console.warn('Theme setting \"menu\" is deprecated. Rename to \"sidebar\"');\n raw.theme!.sidebar = (raw.theme as any).menu;\n }\n\n if ((raw.theme as any)?.codeSample && !raw.theme?.codeBlock) {\n console.warn('Theme setting \"codeSample\" is deprecated. Rename to \"codeBlock\"');\n raw.theme!.codeBlock = (raw.theme as any).codeSample;\n }\n\n this.theme = resolveTheme(mergeObjects(({} as any), defaultTheme, { ...raw.theme,\n extensionsHook: undefined\n }));\n this.theme.extensionsHook = (hook as any); // do not support dynamic labels changes. Labels should be configured before\n\n setRedocLabels(raw.labels);\n this.scrollYOffset = RedocNormalizedOptions.normalizeScrollYOffset(raw.scrollYOffset);\n this.hideHostname = RedocNormalizedOptions.normalizeHideHostname(raw.hideHostname);\n this.expandResponses = RedocNormalizedOptions.normalizeExpandResponses(raw.expandResponses);\n this.requiredPropsFirst = argValueToBoolean(raw.requiredPropsFirst);\n this.sortPropsAlphabetically = argValueToBoolean(raw.sortPropsAlphabetically);\n this.sortEnumValuesAlphabetically = argValueToBoolean(raw.sortEnumValuesAlphabetically);\n this.noAutoAuth = argValueToBoolean(raw.noAutoAuth);\n this.nativeScrollbars = argValueToBoolean(raw.nativeScrollbars);\n this.pathInMiddlePanel = argValueToBoolean(raw.pathInMiddlePanel);\n this.untrustedSpec = argValueToBoolean(raw.untrustedSpec);\n this.hideDownloadButton = argValueToBoolean(raw.hideDownloadButton);\n this.disableSearch = argValueToBoolean(raw.disableSearch);\n this.onlyRequiredInSamples = argValueToBoolean(raw.onlyRequiredInSamples);\n this.showExtensions = RedocNormalizedOptions.normalizeShowExtensions(raw.showExtensions);\n this.hideSingleRequestSampleTab = argValueToBoolean(raw.hideSingleRequestSampleTab);\n this.menuToggle = argValueToBoolean(raw.menuToggle, true);\n this.jsonSampleExpandLevel = RedocNormalizedOptions.normalizeJsonSampleExpandLevel(raw.jsonSampleExpandLevel);\n this.enumSkipQuotes = argValueToBoolean(raw.enumSkipQuotes);\n this.hideSchemaTitles = argValueToBoolean(raw.hideSchemaTitles);\n this.simpleOneOfTypeLabel = argValueToBoolean(raw.simpleOneOfTypeLabel);\n this.payloadSampleIdx = RedocNormalizedOptions.normalizePayloadSampleIdx(raw.payloadSampleIdx);\n this.expandSingleSchemaField = argValueToBoolean(raw.expandSingleSchemaField);\n this.expandAllSchemaFields = argValueToBoolean(raw.expandAllSchemaFields);\n this.hideShelfIcon = argValueToBoolean(raw.hideShelfIcon);\n this.hideHttpVerbs = argValueToBoolean(raw.hideHttpVerbs);\n this.unstable_ignoreMimeParameters = argValueToBoolean(raw.unstable_ignoreMimeParameters);\n this.allowedMdComponents = raw.allowedMdComponents || {};\n this.expandDefaultServerVariables = argValueToBoolean(raw.expandDefaultServerVariables);\n this.maxDisplayedEnumValues = argValueToNumber(raw.maxDisplayedEnumValues);\n }\n\n}","import * as styledComponents from 'styled-components';\nimport { ResolvedThemeInterface } from './theme';\nexport { ResolvedThemeInterface };\nconst {\n default: styled,\n css,\n createGlobalStyle,\n keyframes,\n ThemeProvider\n} = (styledComponents as styledComponents.ThemedStyledComponentsModule);\nexport const media = {\n lessThan(breakpoint, print?: boolean) {\n return (...args) => css`\n @media ${print ? 'print, ' : ''} screen and (max-width: ${props => props.theme.breakpoints[breakpoint]}) {\n ${(css as any)(...args)};\n }\n `;\n },\n\n greaterThan(breakpoint) {\n return (...args) => css`\n @media (min-width: ${props => props.theme.breakpoints[breakpoint]}) {\n ${(css as any)(...args)};\n }\n `;\n },\n\n between(firstBreakpoint, secondBreakpoint) {\n return (...args) => css`\n @media (min-width: ${props => props.theme.breakpoints[firstBreakpoint]}) and (max-width: ${props => props.theme.breakpoints[secondBreakpoint]}) {\n ${(css as any)(...args)};\n }\n `;\n }\n\n};\nexport { css, createGlobalStyle, keyframes, ThemeProvider };\nexport default styled;\nexport function extensionsHook(styledName: string) {\n return props => {\n if (!props.theme.extensionsHook) {\n return;\n }\n\n return props.theme.extensionsHook(styledName, props);\n };\n}","import * as React from 'react';\nimport styled from '../styled-components';\nconst ErrorWrapper = styled.div`\n padding: 20px;\n color: red;\n`;\nexport class ErrorBoundary extends React.Component, {\n error?: Error;\n}> {\n constructor(props) {\n super(props);\n this.state = {\n error: undefined\n };\n }\n\n componentDidCatch(error) {\n this.setState({\n error\n });\n return false;\n }\n\n render() {\n if (this.state.error) {\n return \n

Something went wrong...

\n {this.state.error.message} \n

\n

\n Stack trace\n
{this.state.error.stack}
\n
\n

\n ReDoc Version: {__REDOC_VERSION__}
\n Commit: {__REDOC_REVISION__}\n
;\n }\n\n return React.Children.only(this.props.children);\n }\n\n}","import * as React from 'react';\nimport styled, { keyframes } from '../../styled-components';\n\nconst _Spinner = (props: {\n className?: string;\n color: string;\n}) => \n \n \n \n \n \n \n \n \n ;\n\nconst rotate = keyframes`\n 0% {\n transform: rotate(0deg); }\n 100% {\n transform: rotate(360deg);\n }\n`;\nexport const Spinner = styled(_Spinner)`\n animation: 2s ${rotate} linear infinite;\n width: 50px;\n height: 50px;\n content: '';\n display: inline-block;\n margin-left: -25px;\n\n path {\n fill: ${props => props.color};\n }\n`;","import * as React from 'react';\nimport styled from '../../styled-components';\nimport { Spinner } from './Spinner.svg';\nconst LoadingMessage = styled.div<{\n color: string;\n}>`\n font-family: helvetica, sans;\n width: 100%;\n text-align: center;\n font-size: 25px;\n margin: 30px 0 20px 0;\n color: ${props => props.color};\n`;\nexport interface LoadingProps {\n color: string;\n}\nexport class Loading extends React.PureComponent {\n render() {\n return
\n Loading ...\n \n
;\n }\n\n}","import * as React from 'react';\nimport { RedocNormalizedOptions } from '../services/RedocNormalizedOptions';\nexport const OptionsContext = React.createContext(new RedocNormalizedOptions({}));\nexport const OptionsProvider = OptionsContext.Provider;\nexport const OptionsConsumer = OptionsContext.Consumer;","import * as JsonSchemaRefParser from 'json-schema-ref-parser';\n/* tslint:disable-next-line:no-implicit-dependencies */\n\nimport { convertObj } from 'swagger2openapi';\nimport { OpenAPISpec } from '../types';\nexport async function loadAndBundleSpec(specUrlOrObject: object | string): Promise {\n const parser = new JsonSchemaRefParser();\n const spec = (await parser.bundle(specUrlOrObject, ({\n resolve: {\n http: {\n withCredentials: false\n }\n }\n } as object)) as any);\n\n if (spec.swagger !== undefined) {\n return convertSwagger2OpenAPI(spec);\n } else {\n return spec;\n }\n}\nexport function convertSwagger2OpenAPI(spec: any): Promise {\n console.warn('[ReDoc Compatibility mode]: Converting OpenAPI 2.0 to OpenAPI 3.0');\n return new Promise((resolve, reject) => convertObj(spec, {\n patch: true,\n warnOnly: true,\n text: '{}',\n anchors: true\n }, (err, res) => {\n // TODO: log any warnings\n if (err) {\n return reject(err);\n }\n\n resolve(res && (res.openapi as any));\n }));\n}","'use strict';\n\nimport * as JsonPointerLib from 'json-pointer';\nconst origParse = JsonPointerLib.parse;\n/**\n * Wrapper for JsonPointer. Provides common operations\n */\n\nexport class JsonPointer {\n /**\n * returns last JsonPointer token\n * if level > 1 returns levels last (second last/third last)\n * @example\n * // returns subpath\n * JsonPointerHelper.baseName('/path/0/subpath')\n * // returns foo\n * JsonPointerHelper.baseName('/path/foo/subpath', 2)\n */\n static baseName(pointer, level = 1) {\n const tokens = JsonPointer.parse(pointer);\n return tokens[tokens.length - level];\n }\n /**\n * returns dirname of pointer\n * if level > 1 returns corresponding dirname in the hierarchy\n * @example\n * // returns /path/0\n * JsonPointerHelper.dirName('/path/0/subpath')\n * // returns /path\n * JsonPointerHelper.dirName('/path/foo/subpath', 2)\n */\n\n\n static dirName(pointer, level = 1) {\n const tokens = JsonPointer.parse(pointer);\n return JsonPointerLib.compile(tokens.slice(0, tokens.length - level));\n }\n /**\n * returns relative path tokens\n * @example\n * // returns ['subpath']\n * JsonPointerHelper.relative('/path/0', '/path/0/subpath')\n * // returns ['foo', 'subpath']\n * JsonPointerHelper.relative('/path', '/path/foo/subpath')\n */\n\n\n static relative(from, to): string[] {\n const fromTokens = JsonPointer.parse(from);\n const toTokens = JsonPointer.parse(to);\n return toTokens.slice(fromTokens.length);\n }\n /**\n * overridden JsonPointer original parse to take care of prefixing '#' symbol\n * that is not valid JsonPointer\n */\n\n\n static parse(pointer) {\n let ptr = pointer;\n\n if (ptr.charAt(0) === '#') {\n ptr = ptr.substring(1);\n }\n\n return origParse(ptr);\n }\n /**\n * Creates a JSON pointer path, by joining one or more tokens to a base path.\n *\n * @param {string} base - The base path\n * @param {string|string[]} tokens - The token(s) to append (e.g. [\"name\", \"first\"])\n * @returns {string}\n */\n\n\n static join(base, tokens) {\n // TODO: optimize\n const baseTokens = JsonPointer.parse(base);\n const resTokens = baseTokens.concat(tokens);\n return JsonPointerLib.compile(resTokens);\n }\n\n static get(object: object, pointer: string) {\n return JsonPointerLib.get(object, pointer);\n }\n\n static compile(tokens: string[]) {\n return JsonPointerLib.compile(tokens);\n }\n\n static escape(pointer: string) {\n return JsonPointerLib.escape(pointer);\n }\n\n}\n(JsonPointerLib as any).parse = JsonPointer.parse;\nObject.assign(JsonPointer, JsonPointerLib);\nexport default JsonPointer;","import { dirname } from 'path';\nimport * as URLtemplate from 'url-template';\nimport { FieldModel } from '../services/models';\nimport { OpenAPIParser } from '../services/OpenAPIParser';\nimport { OpenAPIEncoding, OpenAPIMediaType, OpenAPIOperation, OpenAPIParameter, OpenAPIParameterStyle, OpenAPISchema, OpenAPIServer, Referenced } from '../types';\nimport { isNumeric, removeQueryString, resolveUrl } from './helpers';\n\nfunction isWildcardStatusCode(statusCode: string | number): statusCode is string {\n return typeof statusCode === 'string' && /\\dxx/i.test(statusCode);\n}\n\nexport function isStatusCode(statusCode: string) {\n return statusCode === 'default' || isNumeric(statusCode) || isWildcardStatusCode(statusCode);\n}\nexport function getStatusCodeType(statusCode: string | number, defaultAsError = false): string {\n if (statusCode === 'default') {\n return defaultAsError ? 'error' : 'success';\n }\n\n let code = typeof statusCode === 'string' ? parseInt(statusCode, 10) : statusCode;\n\n if (isWildcardStatusCode(statusCode)) {\n code *= 100; // parseInt('2xx') parses to 2\n }\n\n if (code < 100 || code > 599) {\n throw new Error('invalid HTTP code');\n }\n\n let res = 'success';\n\n if (code >= 300 && code < 400) {\n res = 'redirect';\n } else if (code >= 400) {\n res = 'error';\n } else if (code < 200) {\n res = 'info';\n }\n\n return res;\n}\nconst operationNames = {\n get: true,\n post: true,\n put: true,\n head: true,\n patch: true,\n delete: true,\n options: true\n};\nexport function isOperationName(key: string): boolean {\n return key in operationNames;\n}\nexport function getOperationSummary(operation: OpenAPIOperation): string {\n return operation.summary || operation.operationId || operation.description && operation.description.substring(0, 50) || '';\n}\nconst schemaKeywordTypes = {\n multipleOf: 'number',\n maximum: 'number',\n exclusiveMaximum: 'number',\n minimum: 'number',\n exclusiveMinimum: 'number',\n maxLength: 'string',\n minLength: 'string',\n pattern: 'string',\n items: 'array',\n maxItems: 'array',\n minItems: 'array',\n uniqueItems: 'array',\n maxProperties: 'object',\n minProperties: 'object',\n required: 'object',\n additionalProperties: 'object',\n properties: 'object'\n};\nexport function detectType(schema: OpenAPISchema): string {\n if (schema.type !== undefined) {\n return schema.type;\n }\n\n const keywords = Object.keys(schemaKeywordTypes);\n\n for (const keyword of keywords) {\n const type = schemaKeywordTypes[keyword];\n\n if (schema[keyword] !== undefined) {\n return type;\n }\n }\n\n return 'any';\n}\nexport function isPrimitiveType(schema: OpenAPISchema, type: string | undefined = schema.type) {\n if (schema.oneOf !== undefined || schema.anyOf !== undefined) {\n return false;\n }\n\n if (type === 'object') {\n return schema.properties !== undefined ? Object.keys(schema.properties).length === 0 : schema.additionalProperties === undefined;\n }\n\n if (type === 'array') {\n if (schema.items === undefined) {\n return true;\n }\n\n return false;\n }\n\n return true;\n}\nexport function isJsonLike(contentType: string): boolean {\n return contentType.search(/json/i) !== -1;\n}\nexport function isFormUrlEncoded(contentType: string): boolean {\n return contentType === 'application/x-www-form-urlencoded';\n}\n\nfunction delimitedEncodeField(fieldVal: any, fieldName: string, delimiter: string): string {\n if (Array.isArray(fieldVal)) {\n return fieldVal.map(v => v.toString()).join(delimiter);\n } else if (typeof fieldVal === 'object') {\n return Object.keys(fieldVal).map(k => `${k}${delimiter}${fieldVal[k]}`).join(delimiter);\n } else {\n return fieldName + '=' + fieldVal.toString();\n }\n}\n\nfunction deepObjectEncodeField(fieldVal: any, fieldName: string): string {\n if (Array.isArray(fieldVal)) {\n console.warn('deepObject style cannot be used with array value:' + fieldVal.toString());\n return '';\n } else if (typeof fieldVal === 'object') {\n return Object.keys(fieldVal).map(k => `${fieldName}[${k}]=${fieldVal[k]}`).join('&');\n } else {\n console.warn('deepObject style cannot be used with non-object value:' + fieldVal.toString());\n return '';\n }\n}\n\nfunction serializeFormValue(name: string, explode: boolean, value: any) {\n // Use RFC6570 safe name ([a-zA-Z0-9_]) and replace with our name later\n // e.g. URI.template doesn't parse names with hyphen (-) which are valid query param names\n const safeName = '__redoc_param_name__';\n const suffix = explode ? '*' : '';\n const template = URLtemplate.parse(`{?${safeName}${suffix}}`);\n return template.expand({\n [safeName]: value\n }).substring(1).replace(/__redoc_param_name__/g, name);\n}\n/*\n * Should be used only for url-form-encoded body payloads\n * To be used for parameters should be extended with other style values\n */\n\n\nexport function urlFormEncodePayload(payload: object, encoding: {\n [field: string]: OpenAPIEncoding;\n} = {}) {\n if (Array.isArray(payload)) {\n throw new Error('Payload must have fields: ' + payload.toString());\n } else {\n return Object.keys(payload).map(fieldName => {\n const fieldVal = payload[fieldName];\n const {\n style = 'form',\n explode = true\n } = encoding[fieldName] || {};\n\n switch (style) {\n case 'form':\n return serializeFormValue(fieldName, explode, fieldVal);\n\n case 'spaceDelimited':\n return delimitedEncodeField(fieldVal, fieldName, '%20');\n\n case 'pipeDelimited':\n return delimitedEncodeField(fieldVal, fieldName, '|');\n\n case 'deepObject':\n return deepObjectEncodeField(fieldVal, fieldName);\n\n default:\n // TODO implement rest of styles for path parameters\n console.warn('Incorrect or unsupported encoding style: ' + style);\n return '';\n }\n }).join('&');\n }\n}\n\nfunction serializePathParameter(name: string, style: OpenAPIParameterStyle, explode: boolean, value: any): string {\n const suffix = explode ? '*' : '';\n let prefix = '';\n\n if (style === 'label') {\n prefix = '.';\n } else if (style === 'matrix') {\n prefix = ';';\n } // Use RFC6570 safe name ([a-zA-Z0-9_]) and replace with our name later\n // e.g. URI.template doesn't parse names with hyphen (-) which are valid query param names\n\n\n const safeName = '__redoc_param_name__';\n const template = URLtemplate.parse(`{${prefix}${safeName}${suffix}}`);\n return template.expand({\n [safeName]: value\n }).replace(/__redoc_param_name__/g, name);\n}\n\nfunction serializeQueryParameter(name: string, style: OpenAPIParameterStyle, explode: boolean, value: any): string {\n switch (style) {\n case 'form':\n return serializeFormValue(name, explode, value);\n\n case 'spaceDelimited':\n if (!Array.isArray(value)) {\n console.warn('The style spaceDelimited is only applicable to arrays');\n return '';\n }\n\n if (explode) {\n return serializeFormValue(name, explode, value);\n }\n\n return `${name}=${value.join('%20')}`;\n\n case 'pipeDelimited':\n if (!Array.isArray(value)) {\n console.warn('The style pipeDelimited is only applicable to arrays');\n return '';\n }\n\n if (explode) {\n return serializeFormValue(name, explode, value);\n }\n\n return `${name}=${value.join('|')}`;\n\n case 'deepObject':\n if (!explode || Array.isArray(value) || typeof value !== 'object') {\n console.warn('The style deepObject is only applicable for objects with explode=true');\n return '';\n }\n\n return deepObjectEncodeField(value, name);\n\n default:\n console.warn('Unexpected style for query: ' + style);\n return '';\n }\n}\n\nfunction serializeHeaderParameter(style: OpenAPIParameterStyle, explode: boolean, value: any): string {\n switch (style) {\n case 'simple':\n const suffix = explode ? '*' : ''; // name is not important here, so use RFC6570 safe name ([a-zA-Z0-9_])\n\n const name = '__redoc_param_name__';\n const template = URLtemplate.parse(`{${name}${suffix}}`);\n return decodeURIComponent(template.expand({\n [name]: value\n }));\n\n default:\n console.warn('Unexpected style for header: ' + style);\n return '';\n }\n}\n\nfunction serializeCookieParameter(name: string, style: OpenAPIParameterStyle, explode: boolean, value: any): string {\n switch (style) {\n case 'form':\n return serializeFormValue(name, explode, value);\n\n default:\n console.warn('Unexpected style for cookie: ' + style);\n return '';\n }\n}\n\nexport function serializeParameterValueWithMime(value: any, mime: string): string {\n if (isJsonLike(mime)) {\n return JSON.stringify(value);\n } else {\n console.warn(`Parameter serialization as ${mime} is not supported`);\n return '';\n }\n}\nexport function serializeParameterValue(parameter: OpenAPIParameter & {\n serializationMime?: string;\n}, value: any): string {\n const {\n name,\n style,\n explode = false,\n serializationMime\n } = parameter;\n\n if (serializationMime) {\n switch (parameter.in) {\n case 'path':\n case 'header':\n return serializeParameterValueWithMime(value, serializationMime);\n\n case 'cookie':\n case 'query':\n return `${name}=${serializeParameterValueWithMime(value, serializationMime)}`;\n\n default:\n console.warn('Unexpected parameter location: ' + parameter.in);\n return '';\n }\n }\n\n if (!style) {\n console.warn(`Missing style attribute or content for parameter ${name}`);\n return '';\n }\n\n switch (parameter.in) {\n case 'path':\n return serializePathParameter(name, style, explode, value);\n\n case 'query':\n return serializeQueryParameter(name, style, explode, value);\n\n case 'header':\n return serializeHeaderParameter(style, explode, value);\n\n case 'cookie':\n return serializeCookieParameter(name, style, explode, value);\n\n default:\n console.warn('Unexpected parameter location: ' + parameter.in);\n return '';\n }\n}\nexport function langFromMime(contentType: string): string {\n if (contentType.search(/xml/i) !== -1) {\n return 'xml';\n }\n\n return 'clike';\n}\nexport function isNamedDefinition(pointer?: string): boolean {\n return /^#\\/components\\/schemas\\/[^\\/]+$/.test(pointer || '');\n}\n\nfunction humanizeMultipleOfConstraint(multipleOf: number | undefined): string | undefined {\n if (multipleOf === undefined) {\n return;\n }\n\n const strigifiedMultipleOf = multipleOf.toString(10);\n\n if (!/^0\\.0*1$/.test(strigifiedMultipleOf)) {\n return `multiple of ${strigifiedMultipleOf}`;\n }\n\n return `decimal places <= ${strigifiedMultipleOf.split('.')[1].length}`;\n}\n\nfunction humanizeRangeConstraint(description: string, min: number | undefined, max: number | undefined): string | undefined {\n let stringRange;\n\n if (min !== undefined && max !== undefined) {\n if (min === max) {\n stringRange = `${min} ${description}`;\n } else {\n stringRange = `[ ${min} .. ${max} ] ${description}`;\n }\n } else if (max !== undefined) {\n stringRange = `<= ${max} ${description}`;\n } else if (min !== undefined) {\n if (min === 1) {\n stringRange = 'non-empty';\n } else {\n stringRange = `>= ${min} ${description}`;\n }\n }\n\n return stringRange;\n}\n\nexport function humanizeConstraints(schema: OpenAPISchema): string[] {\n const res: string[] = [];\n const stringRange = humanizeRangeConstraint('characters', schema.minLength, schema.maxLength);\n\n if (stringRange !== undefined) {\n res.push(stringRange);\n }\n\n const arrayRange = humanizeRangeConstraint('items', schema.minItems, schema.maxItems);\n\n if (arrayRange !== undefined) {\n res.push(arrayRange);\n }\n\n const multipleOfConstraint = humanizeMultipleOfConstraint(schema.multipleOf);\n\n if (multipleOfConstraint !== undefined) {\n res.push(multipleOfConstraint);\n }\n\n let numberRange;\n\n if (schema.minimum !== undefined && schema.maximum !== undefined) {\n numberRange = schema.exclusiveMinimum ? '( ' : '[ ';\n numberRange += schema.minimum;\n numberRange += ' .. ';\n numberRange += schema.maximum;\n numberRange += schema.exclusiveMaximum ? ' )' : ' ]';\n } else if (schema.maximum !== undefined) {\n numberRange = schema.exclusiveMaximum ? '< ' : '<= ';\n numberRange += schema.maximum;\n } else if (schema.minimum !== undefined) {\n numberRange = schema.exclusiveMinimum ? '> ' : '>= ';\n numberRange += schema.minimum;\n }\n\n if (numberRange !== undefined) {\n res.push(numberRange);\n }\n\n return res;\n}\nexport function sortByRequired(fields: FieldModel[], order: string[] = []) {\n const unrequiredFields: FieldModel[] = [];\n const orderedFields: FieldModel[] = [];\n const unorderedFields: FieldModel[] = [];\n fields.forEach(field => {\n if (field.required) {\n order.includes(field.name) ? orderedFields.push(field) : unorderedFields.push(field);\n } else {\n unrequiredFields.push(field);\n }\n });\n orderedFields.sort((a, b) => order.indexOf(a.name) - order.indexOf(b.name));\n return [...orderedFields, ...unorderedFields, ...unrequiredFields];\n}\nexport function sortByField(fields: FieldModel[], param: keyof Pick) {\n return [...fields].sort((a, b) => {\n return a[param].localeCompare(b[param]);\n });\n}\nexport function mergeParams(parser: OpenAPIParser, pathParams: Array> = [], operationParams: Array> = []): Array> {\n const operationParamNames = {};\n operationParams.forEach(param => {\n param = parser.shalowDeref(param);\n operationParamNames[param.name + '_' + param.in] = true;\n }); // filter out path params overridden by operation ones with the same name\n\n pathParams = pathParams.filter(param => {\n param = parser.shalowDeref(param);\n return !operationParamNames[param.name + '_' + param.in];\n });\n return pathParams.concat(operationParams);\n}\nexport function mergeSimilarMediaTypes(types: Record): Record {\n const mergedTypes = {};\n Object.keys(types).forEach(name => {\n const mime = types[name]; // ignore content type parameters (e.g. charset) and merge\n\n const normalizedMimeName = name.split(';')[0].trim();\n\n if (!mergedTypes[normalizedMimeName]) {\n mergedTypes[normalizedMimeName] = mime;\n return;\n }\n\n mergedTypes[normalizedMimeName] = { ...mergedTypes[normalizedMimeName],\n ...mime\n };\n });\n return mergedTypes;\n}\nexport function expandDefaultServerVariables(url: string, variables: object = {}) {\n return url.replace(/(?:{)([\\w-.]+)(?:})/g, (match, name) => variables[name] && variables[name].default || match);\n}\nexport function normalizeServers(specUrl: string | undefined | null, servers: OpenAPIServer[]): OpenAPIServer[] {\n const getHref = () => {\n return '';\n };\n\n const baseUrl = !specUrl ? removeQueryString(getHref()) : dirname(specUrl);\n\n if (servers.length === 0) {\n // Behaviour defined in OpenAPI spec: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#openapi-object\n servers = [{\n url: '/'\n }];\n }\n\n function normalizeUrl(url: string): string {\n return resolveUrl(baseUrl, url);\n }\n\n return servers.map(server => {\n return { ...server,\n url: normalizeUrl(server.url),\n description: server.description || ''\n };\n });\n}\nexport const SECURITY_DEFINITIONS_COMPONENT_NAME = 'security-definitions';\nexport const SECURITY_DEFINITIONS_JSX_NAME = 'SecurityDefinitions';\nexport const SCHEMA_DEFINITION_JSX_NAME = 'SchemaDefinition';\nexport let SECURITY_SCHEMES_SECTION_PREFIX = 'section/Authentication/';\nexport function setSecuritySchemePrefix(prefix: string) {\n SECURITY_SCHEMES_SECTION_PREFIX = prefix;\n}\nexport const shortenHTTPVerb = verb => ({\n delete: 'del',\n options: 'opts'\n})[verb] || verb;\nexport function isRedocExtension(key: string): boolean {\n const redocExtensions = {\n 'x-circular-ref': true,\n 'x-code-samples': true,\n // deprecated\n 'x-codeSamples': true,\n 'x-displayName': true,\n 'x-examples': true,\n 'x-ignoredHeaderParameters': true,\n 'x-logo': true,\n 'x-nullable': true,\n 'x-servers': true,\n 'x-tagGroups': true,\n 'x-traitTag': true,\n 'x-additionalPropertiesName': true,\n 'x-explicitMappingOnly': true\n };\n return key in redocExtensions;\n}\nexport function extractExtensions(obj: object, showExtensions: string[] | true): Record {\n return Object.keys(obj).filter(key => {\n if (showExtensions === true) {\n return key.startsWith('x-') && !isRedocExtension(key);\n }\n\n return key.startsWith('x-') && showExtensions.indexOf(key) > -1;\n }).reduce((acc, key) => {\n acc[key] = obj[key];\n return acc;\n }, {});\n}\nexport function pluralizeType(displayType: string): string {\n return displayType.split(' or ').map(type => type.replace(/^(string|object|number|integer|array|boolean)s?( ?.*)/, '$1s$2')).join(' or ');\n}","import * as Prism from 'prismjs';\nimport 'prismjs/components/prism-bash.js';\nimport 'prismjs/components/prism-c.js';\nimport 'prismjs/components/prism-clike.js';\nimport 'prismjs/components/prism-coffeescript.js';\nimport 'prismjs/components/prism-cpp.js';\nimport 'prismjs/components/prism-csharp.js';\nimport 'prismjs/components/prism-go.js';\nimport 'prismjs/components/prism-http.js';\nimport 'prismjs/components/prism-java.js';\nimport 'prismjs/components/prism-lua.js';\nimport 'prismjs/components/prism-markup-templating.js'; // dep of php\n\nimport 'prismjs/components/prism-markup.js'; // xml\n\nimport 'prismjs/components/prism-objectivec.js';\nimport 'prismjs/components/prism-perl.js';\nimport 'prismjs/components/prism-php.js';\nimport 'prismjs/components/prism-python.js';\nimport 'prismjs/components/prism-ruby.js';\nimport 'prismjs/components/prism-scala.js';\nimport 'prismjs/components/prism-sql.js';\nimport 'prismjs/components/prism-swift.js';\nconst DEFAULT_LANG = 'clike';\nPrism.languages.insertBefore('javascript', 'string', ({\n 'property string': {\n pattern: /([{,]\\s*)\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?=\\s*:)/i,\n lookbehind: true\n }\n} as any), (undefined as any));\nPrism.languages.insertBefore('javascript', 'punctuation', {\n property: {\n pattern: /([{,]\\s*)[a-z]\\w*(?=\\s*:)/i,\n lookbehind: true\n }\n}, (undefined as any));\n/**\n * map language names to Prism.js names\n */\n\nexport function mapLang(lang: string): string {\n return {\n json: 'js',\n 'c++': 'cpp',\n 'c#': 'csharp',\n 'objective-c': 'objectivec',\n shell: 'bash',\n viml: 'vim'\n }[lang] || DEFAULT_LANG;\n}\n/**\n * Highlight source code string using Prism.js\n * @param source source code to highlight\n * @param lang highlight language\n * @return highlighted source code as **html string**\n */\n\nexport function highlight(source: string, lang: string = DEFAULT_LANG): string {\n lang = lang.toLowerCase();\n let grammar = Prism.languages[lang];\n\n if (!grammar) {\n grammar = Prism.languages[mapLang(lang)];\n }\n\n return Prism.highlight(source, grammar, lang);\n}","function throttle(func, wait) {\n let context;\n let args;\n let result;\n let timeout: any = null;\n let previous = 0;\n\n const later = () => {\n previous = new Date().getTime();\n timeout = null;\n result = func.apply(context, args);\n\n if (!timeout) {\n context = args = null;\n }\n };\n\n return function () {\n const now = new Date().getTime();\n const remaining = wait - (now - previous);\n context = this; // eslint-disable-next-line prefer-rest-params\n\n args = arguments;\n\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n\n previous = now;\n result = func.apply(context, args);\n\n if (!timeout) {\n context = args = null;\n }\n } else if (!timeout) {\n timeout = setTimeout(later, remaining);\n }\n\n return result;\n };\n}\n\nexport function Throttle(delay: number) {\n return (_, _2, desc: PropertyDescriptor) => {\n desc.value = throttle(desc.value, delay);\n };\n}","export function debugTime(label: string) {\n if (process.env.NODE_ENV !== 'production') {\n console.time(label);\n }\n}\nexport function debugTimeEnd(label: string) {\n if (process.env.NODE_ENV !== 'production') {\n console.timeEnd(label);\n }\n}","// source: https://github.com/andreypopp/memoize-decorator\nconst SENTINEL = {};\nexport function memoize(target: any, name: string, descriptor: TypedPropertyDescriptor) {\n if (typeof descriptor.value === 'function') {\n return ((_memoizeMethod(target, name, descriptor) as any) as TypedPropertyDescriptor);\n } else if (typeof descriptor.get === 'function') {\n return (_memoizeGetter(target, name, descriptor) as TypedPropertyDescriptor);\n } else {\n throw new Error('@memoize decorator can be applied to methods or getters, got ' + String(descriptor.value) + ' instead');\n }\n}\n\nfunction _memoizeGetter(target: any, name: string, descriptor: PropertyDescriptor) {\n const memoizedName = `_memoized_${name}`;\n const get = descriptor.get!;\n target[memoizedName] = SENTINEL;\n return { ...descriptor,\n\n get() {\n if (this[memoizedName] === SENTINEL) {\n this[memoizedName] = get.call(this);\n }\n\n return this[memoizedName];\n }\n\n };\n}\n\nfunction _memoizeMethod(target: any, name: string, descriptor: TypedPropertyDescriptor) {\n if (!descriptor.value || (descriptor.value as any).length > 0) {\n throw new Error('@memoize decorator can only be applied to methods of zero arguments');\n }\n\n const memoizedName = `_memoized_${name}`;\n const value = descriptor.value;\n target[memoizedName] = SENTINEL;\n return { ...descriptor,\n\n value() {\n if (this[memoizedName] === SENTINEL) {\n this[memoizedName] = (value as any).call(this);\n }\n\n return (this[memoizedName] as any);\n }\n\n };\n}","export * from './JsonPointer';\nexport * from './openapi';\nexport * from './helpers';\nexport * from './highlight';\nexport * from './loadAndBundleSpec';\nexport * from './dom';\nexport * from './decorators';\nexport * from './debug';\nexport * from './memoize';","import { bind, debounce } from 'decko';\nimport { EventEmitter } from 'eventemitter3';\nimport { IS_BROWSER } from '../utils/';\nconst EVENT = 'hashchange';\nexport class HistoryService {\n private _emiter;\n\n constructor() {\n this._emiter = new EventEmitter();\n this.bind();\n }\n\n get currentId(): string {\n return IS_BROWSER ? decodeURIComponent(window.location.hash.substring(1)) : '';\n }\n\n linkForId(id: string) {\n if (!id) {\n return '';\n }\n\n return '#' + id;\n }\n\n subscribe(cb): () => void {\n const emmiter = this._emiter.addListener(EVENT, cb);\n\n return () => emmiter.removeListener(EVENT, cb);\n }\n\n emit = () => {\n this._emiter.emit(EVENT, this.currentId);\n };\n\n bind() {\n if (IS_BROWSER) {\n window.addEventListener('hashchange', this.emit, false);\n }\n }\n\n dispose() {\n if (IS_BROWSER) {\n window.removeEventListener('hashchange', this.emit);\n }\n }\n\n @bind\n @debounce\n replace(id: string | null, rewriteHistory: boolean = false) {\n if (!IS_BROWSER) {\n return;\n }\n\n if (id == null || id === this.currentId) {\n return;\n }\n\n if (rewriteHistory) {\n window.history.replaceState(null, '', window.location.href.split('#')[0] + this.linkForId(id));\n return;\n }\n\n window.history.pushState(null, '', window.location.href.split('#')[0] + this.linkForId(id));\n this.emit();\n }\n\n}\nexport const history = new HistoryService();\n\nif (module.hot) {\n module.hot.dispose(() => {\n history.dispose();\n });\n}","import * as Mark from 'mark.js';\nexport class MarkerService {\n map: Map = new Map();\n private prevTerm: string = '';\n\n add(el: HTMLElement) {\n this.map.set(el, new Mark(el));\n }\n\n delete(el: Element) {\n this.map.delete(el);\n }\n\n addOnly(elements: Element[]) {\n this.map.forEach((inst, elem) => {\n if (elements.indexOf(elem) === -1) {\n inst.unmark();\n this.map.delete(elem);\n }\n });\n\n for (const el of elements) {\n if (!this.map.has(el)) {\n this.map.set(el, new Mark((el as HTMLElement)));\n }\n }\n }\n\n clearAll() {\n this.unmark();\n this.map.clear();\n }\n\n mark(term?: string) {\n if (!term && !this.prevTerm) {\n return;\n }\n\n this.map.forEach(val => {\n val.unmark();\n val.mark(term || this.prevTerm);\n });\n this.prevTerm = term || this.prevTerm;\n }\n\n unmark() {\n this.map.forEach(val => val.unmark());\n this.prevTerm = '';\n }\n\n}","import * as marked from 'marked';\nimport { highlight, safeSlugify, unescapeHTMLChars } from '../utils';\nimport { AppStore } from './AppStore';\nimport { RedocNormalizedOptions } from './RedocNormalizedOptions';\nconst renderer = new marked.Renderer();\nmarked.setOptions({\n renderer,\n highlight: (str, lang) => {\n return highlight(str, lang);\n }\n});\nexport const LEGACY_REGEXP = '^ {0,3}\\\\s*$'; // prettier-ignore\n\nexport const MDX_COMPONENT_REGEXP = '(?:^ {0,3}<({component})([\\\\s\\\\S]*?)>([\\\\s\\\\S]*?)' // with children\n+ '|^ {0,3}<({component})([\\\\s\\\\S]*?)(?:/>|\\\\n{2,}))'; // self-closing\n\nexport const COMPONENT_REGEXP = '(?:' + LEGACY_REGEXP + '|' + MDX_COMPONENT_REGEXP + ')';\nexport interface MDXComponentMeta {\n component: React.ComponentType;\n propsSelector: (store?: AppStore) => any;\n props?: object;\n}\nexport interface MarkdownHeading {\n id: string;\n name: string;\n level: number;\n items?: MarkdownHeading[];\n description?: string;\n}\nexport function buildComponentComment(name: string) {\n return ``;\n}\nexport class MarkdownRenderer {\n static containsComponent(rawText: string, componentName: string) {\n const compRegexp = new RegExp(COMPONENT_REGEXP.replace(/{component}/g, componentName), 'gmi');\n return compRegexp.test(rawText);\n }\n\n static getTextBeforeHading(md: string, heading: string): string {\n const headingLinePos = md.search(new RegExp(`^##?\\\\s+${heading}`, 'm'));\n\n if (headingLinePos > -1) {\n return md.substring(0, headingLinePos);\n }\n\n return md;\n }\n\n headings: MarkdownHeading[] = [];\n currentTopHeading: MarkdownHeading;\n private headingEnhanceRenderer: marked.Renderer;\n private originalHeadingRule: typeof marked.Renderer.prototype.heading;\n\n constructor(public options?: RedocNormalizedOptions) {\n this.headingEnhanceRenderer = new marked.Renderer();\n this.originalHeadingRule = this.headingEnhanceRenderer.heading.bind(this.headingEnhanceRenderer);\n this.headingEnhanceRenderer.heading = this.headingRule;\n }\n\n saveHeading(name: string, level: number, container: MarkdownHeading[] = this.headings, parentId?: string): MarkdownHeading {\n name = unescapeHTMLChars(name);\n const item = {\n id: parentId ? `${parentId}/${safeSlugify(name)}` : `section/${safeSlugify(name)}`,\n name,\n level,\n items: []\n };\n container.push(item);\n return item;\n }\n\n flattenHeadings(container?: MarkdownHeading[]): MarkdownHeading[] {\n if (container === undefined) {\n return [];\n }\n\n const res: MarkdownHeading[] = [];\n\n for (const heading of container) {\n res.push(heading);\n res.push(...this.flattenHeadings(heading.items));\n }\n\n return res;\n }\n\n attachHeadingsDescriptions(rawText: string) {\n const buildRegexp = (heading: MarkdownHeading) => {\n return new RegExp(`##?\\\\s+${heading.name.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&')}`);\n };\n\n const flatHeadings = this.flattenHeadings(this.headings);\n\n if (flatHeadings.length < 1) {\n return;\n }\n\n let prevHeading = flatHeadings[0];\n let prevRegexp = buildRegexp(prevHeading);\n let prevPos = rawText.search(prevRegexp);\n\n for (let i = 1; i < flatHeadings.length; i++) {\n const heading = flatHeadings[i];\n const regexp = buildRegexp(heading);\n const currentPos = rawText.substr(prevPos + 1).search(regexp) + prevPos + 1;\n prevHeading.description = rawText.substring(prevPos, currentPos).replace(prevRegexp, '').trim();\n prevHeading = heading;\n prevRegexp = regexp;\n prevPos = currentPos;\n }\n\n prevHeading.description = rawText.substring(prevPos).replace(prevRegexp, '').trim();\n }\n\n headingRule = (text: string, level: 1 | 2 | 3 | 4 | 5 | 6, raw: string, slugger: marked.Slugger) => {\n if (level === 1) {\n this.currentTopHeading = this.saveHeading(text, level);\n } else if (level === 2) {\n this.saveHeading(text, level, this.currentTopHeading && this.currentTopHeading.items, this.currentTopHeading && this.currentTopHeading.id);\n }\n\n return this.originalHeadingRule(text, level, raw, slugger);\n };\n\n renderMd(rawText: string, extractHeadings: boolean = false): string {\n const opts = extractHeadings ? {\n renderer: this.headingEnhanceRenderer\n } : undefined;\n const res = marked(rawText.toString(), opts);\n return res;\n }\n\n extractHeadings(rawText: string): MarkdownHeading[] {\n this.renderMd(rawText, true);\n this.attachHeadingsDescriptions(rawText);\n const res = this.headings;\n this.headings = [];\n return res;\n } // regexp-based 👎: remark is slow and too big so for now using marked + regexps soup\n\n\n renderMdWithComponents(rawText: string): Array {\n const components = this.options && this.options.allowedMdComponents;\n\n if (!components || Object.keys(components).length === 0) {\n return [this.renderMd(rawText)];\n }\n\n const names = Object.keys(components).join('|');\n const componentsRegexp = new RegExp(COMPONENT_REGEXP.replace(/{component}/g, names), 'mig');\n const htmlParts: string[] = [];\n const componentDefs: MDXComponentMeta[] = [];\n let match = componentsRegexp.exec(rawText);\n let lasxtIdx = 0;\n\n while (match) {\n htmlParts.push(rawText.substring(lasxtIdx, match.index));\n lasxtIdx = componentsRegexp.lastIndex;\n const compName = match[1] || match[2] || match[5];\n const componentMeta = components[compName];\n const props = match[3] || match[6];\n const children = match[4];\n\n if (componentMeta) {\n componentDefs.push({\n component: componentMeta.component,\n propsSelector: componentMeta.propsSelector,\n props: { ...parseProps(props),\n ...componentMeta.props,\n children\n }\n });\n }\n\n match = componentsRegexp.exec(rawText);\n }\n\n htmlParts.push(rawText.substring(lasxtIdx));\n const res: any[] = [];\n\n for (let i = 0; i < htmlParts.length; i++) {\n const htmlPart = htmlParts[i];\n\n if (htmlPart) {\n res.push(this.renderMd(htmlPart));\n }\n\n if (componentDefs[i]) {\n res.push(componentDefs[i]);\n }\n }\n\n return res;\n }\n\n}\n\nfunction parseProps(props: string): object {\n if (!props) {\n return {};\n }\n\n const regex = /([\\w-]+)\\s*=\\s*(?:{([^}]+?)}|\"([^\"]+?)\")/gim;\n const parsed = {};\n let match; // tslint:disable-next-line\n\n while ((match = regex.exec(props)) !== null) {\n if (match[3]) {\n // string prop match (in double quotes)\n parsed[match[1]] = match[3];\n } else if (match[2]) {\n // jsx prop match (in curly braces)\n let val;\n\n try {\n val = JSON.parse(match[2]);\n } catch (e) {\n /* noop */\n }\n\n parsed[match[1]] = val;\n }\n }\n\n return parsed;\n}","import { OpenAPIContact, OpenAPIInfo, OpenAPILicense } from '../../types';\nimport { IS_BROWSER } from '../../utils/';\nimport { OpenAPIParser } from '../OpenAPIParser';\nexport class ApiInfoModel implements OpenAPIInfo {\n title: string;\n version: string;\n description: string;\n termsOfService?: string;\n contact?: OpenAPIContact;\n license?: OpenAPILicense;\n downloadLink?: string;\n downloadFileName?: string;\n\n constructor(private parser: OpenAPIParser) {\n Object.assign(this, parser.spec.info);\n this.description = parser.spec.info.description || '';\n const firstHeadingLinePos = this.description.search(/^##?\\s+/m);\n\n if (firstHeadingLinePos > -1) {\n this.description = this.description.substring(0, firstHeadingLinePos);\n }\n\n this.downloadLink = this.getDownloadLink();\n this.downloadFileName = this.getDownloadFileName();\n }\n\n private getDownloadLink(): string | undefined {\n if (this.parser.specUrl) {\n return this.parser.specUrl;\n }\n\n if (IS_BROWSER && window.Blob && window.URL && window.URL.createObjectURL) {\n const blob = new Blob([JSON.stringify(this.parser.spec, null, 2)], {\n type: 'application/json'\n });\n return window.URL.createObjectURL(blob);\n }\n }\n\n private getDownloadFileName(): string | undefined {\n if (!this.parser.specUrl) {\n return 'swagger.json';\n }\n\n return undefined;\n }\n\n}","import { OpenAPISecurityRequirement, OpenAPISecurityScheme } from '../../types';\nimport { SECURITY_SCHEMES_SECTION_PREFIX } from '../../utils/openapi';\nimport { OpenAPIParser } from '../OpenAPIParser';\nexport interface SecurityScheme extends OpenAPISecurityScheme {\n id: string;\n sectionId: string;\n scopes: string[];\n}\nexport class SecurityRequirementModel {\n schemes: SecurityScheme[];\n\n constructor(requirement: OpenAPISecurityRequirement, parser: OpenAPIParser) {\n const schemes = parser.spec.components && parser.spec.components.securitySchemes || {};\n this.schemes = (Object.keys(requirement || {}).map(id => {\n const scheme = parser.deref(schemes[id]);\n const scopes = requirement[id] || [];\n\n if (!scheme) {\n console.warn(`Non existing security scheme referenced: ${id}. Skipping`);\n return undefined;\n }\n\n return { ...scheme,\n id,\n sectionId: SECURITY_SCHEMES_SECTION_PREFIX + id,\n scopes\n };\n }).filter(scheme => scheme !== undefined) as SecurityScheme[]);\n }\n\n}","import { action, observable } from 'mobx';\nimport { OpenAPICallback, Referenced } from '../../types';\nimport { isOperationName, JsonPointer } from '../../utils';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { OperationModel } from './Operation';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\nexport class CallbackModel {\n @observable\n expanded: boolean;\n name: string;\n operations: OperationModel[] = [];\n\n constructor(parser: OpenAPIParser, name: string, infoOrRef: Referenced, pointer: string, options: RedocNormalizedOptions) {\n this.name = name;\n const paths = parser.deref(infoOrRef);\n parser.exitRef(infoOrRef);\n\n for (const pathName of Object.keys(paths)) {\n const path = paths[pathName];\n const operations = Object.keys(path).filter(isOperationName);\n\n for (const operationName of operations) {\n const operationInfo = path[operationName];\n const operation = new OperationModel(parser, { ...operationInfo,\n pathName,\n pointer: JsonPointer.compile([pointer, name, pathName, operationName]),\n httpVerb: operationName,\n pathParameters: path.parameters || [],\n pathServers: path.servers\n }, undefined, options, true);\n this.operations.push(operation);\n }\n }\n }\n\n @action\n toggle() {\n this.expanded = !this.expanded;\n }\n\n}","import { action, observable } from 'mobx';\nimport { OpenAPIExternalDocumentation, OpenAPISchema, Referenced } from '../../types';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\nimport { FieldModel } from './Field';\nimport { MergedOpenAPISchema } from '../';\nimport { detectType, extractExtensions, humanizeConstraints, isNamedDefinition, isPrimitiveType, JsonPointer, pluralizeType, sortByField, sortByRequired } from '../../utils/';\nimport { l } from '../Labels'; // TODO: refactor this model, maybe use getters instead of copying all the values\n\nexport class SchemaModel {\n pointer: string;\n type: string;\n displayType: string;\n typePrefix: string = '';\n title: string;\n description: string;\n externalDocs?: OpenAPIExternalDocumentation;\n isPrimitive: boolean;\n isCircular: boolean = false;\n format?: string;\n displayFormat?: string;\n nullable: boolean;\n deprecated: boolean;\n pattern?: string;\n example?: any;\n enum: any[];\n default?: any;\n readOnly: boolean;\n writeOnly: boolean;\n constraints: string[];\n fields?: FieldModel[];\n items?: SchemaModel;\n oneOf?: SchemaModel[];\n oneOfType: string;\n discriminatorProp: string;\n @observable\n activeOneOf: number = 0;\n rawSchema: OpenAPISchema;\n schema: MergedOpenAPISchema;\n extensions?: Record;\n /**\n * @param isChild if schema discriminator Child\n * When true forces dereferencing in allOfs even if circular\n */\n\n constructor(parser: OpenAPIParser, schemaOrRef: Referenced, pointer: string, private options: RedocNormalizedOptions, isChild: boolean = false) {\n this.pointer = schemaOrRef.$ref || pointer || '';\n this.rawSchema = parser.deref(schemaOrRef);\n this.schema = parser.mergeAllOf(this.rawSchema, this.pointer, isChild);\n this.init(parser, isChild);\n parser.exitRef(schemaOrRef);\n parser.exitParents(this.schema);\n\n if (options.showExtensions) {\n this.extensions = extractExtensions(this.schema, options.showExtensions);\n }\n }\n /**\n * Set specified alternative schema as active\n * @param idx oneOf index\n */\n\n\n @action\n activateOneOf(idx: number) {\n this.activeOneOf = idx;\n }\n\n init(parser: OpenAPIParser, isChild: boolean) {\n const schema = this.schema;\n this.isCircular = schema['x-circular-ref'];\n this.title = schema.title || isNamedDefinition(this.pointer) && JsonPointer.baseName(this.pointer) || '';\n this.description = schema.description || '';\n this.type = schema.type || detectType(schema);\n this.format = schema.format;\n this.nullable = !!schema.nullable;\n this.enum = schema.enum || [];\n this.example = schema.example;\n this.deprecated = !!schema.deprecated;\n this.pattern = schema.pattern;\n this.externalDocs = schema.externalDocs;\n this.constraints = humanizeConstraints(schema);\n this.displayType = this.type;\n this.displayFormat = this.format;\n this.isPrimitive = isPrimitiveType(schema, this.type);\n this.default = schema.default;\n this.readOnly = !!schema.readOnly;\n this.writeOnly = !!schema.writeOnly;\n\n if (this.isCircular) {\n return;\n }\n\n if (!isChild && getDiscriminator(schema) !== undefined) {\n this.initDiscriminator(schema, parser);\n return;\n } else if (isChild && Array.isArray(schema.oneOf) && schema.oneOf.find(s => s.$ref === this.pointer)) {\n // we hit allOf of the schema with the parent discriminator\n delete schema.oneOf;\n }\n\n if (schema.oneOf !== undefined) {\n this.initOneOf(schema.oneOf, parser);\n this.oneOfType = 'One of';\n\n if (schema.anyOf !== undefined) {\n console.warn(`oneOf and anyOf are not supported on the same level. Skipping anyOf at ${this.pointer}`);\n }\n\n return;\n }\n\n if (schema.anyOf !== undefined) {\n this.initOneOf(schema.anyOf, parser);\n this.oneOfType = 'Any of';\n return;\n }\n\n if (this.type === 'object') {\n this.fields = buildFields(parser, schema, this.pointer, this.options);\n } else if (this.type === 'array' && schema.items) {\n this.items = new SchemaModel(parser, schema.items, this.pointer + '/items', this.options);\n this.displayType = pluralizeType(this.items.displayType);\n this.displayFormat = this.items.format;\n this.typePrefix = this.items.typePrefix + l('arrayOf');\n this.title = this.title || this.items.title;\n this.isPrimitive = this.items.isPrimitive;\n\n if (this.example === undefined && this.items.example !== undefined) {\n this.example = [this.items.example];\n }\n\n if (this.items.isPrimitive) {\n this.enum = this.items.enum;\n }\n }\n\n if (this.enum.length && this.options.sortEnumValuesAlphabetically) {\n this.enum.sort();\n }\n }\n\n private initOneOf(oneOf: OpenAPISchema[], parser: OpenAPIParser) {\n this.oneOf = oneOf!.map((variant, idx) => {\n const derefVariant = parser.deref(variant);\n const merged = parser.mergeAllOf(derefVariant, this.pointer + '/oneOf/' + idx); // try to infer title\n\n const title = isNamedDefinition(variant.$ref) && !merged.title ? JsonPointer.baseName(variant.$ref) : merged.title;\n const schema = new SchemaModel(parser, ( // merge base schema into each of oneOf's subschemas\n { // variant may already have allOf so merge it to not get overwritten\n ...merged,\n title,\n allOf: [{ ...this.schema,\n oneOf: undefined,\n anyOf: undefined\n }]\n } as OpenAPISchema), this.pointer + '/oneOf/' + idx, this.options);\n parser.exitRef(variant); // each oneOf should be independent so exiting all the parent refs\n // otherwise it will cause false-positive recursive detection\n\n parser.exitParents(merged);\n return schema;\n });\n\n if (this.options.simpleOneOfTypeLabel) {\n const types = collectUniqueOneOfTypesDeep(this);\n this.displayType = types.join(' or ');\n } else {\n this.displayType = this.oneOf.map(schema => {\n let name = schema.typePrefix + (schema.title ? `${schema.title} (${schema.displayType})` : schema.displayType);\n\n if (name.indexOf(' or ') > -1) {\n name = `(${name})`;\n }\n\n return name;\n }).join(' or ');\n }\n }\n\n private initDiscriminator(schema: OpenAPISchema & {\n parentRefs?: string[];\n }, parser: OpenAPIParser) {\n const discriminator = getDiscriminator(schema)!;\n this.discriminatorProp = discriminator.propertyName;\n const implicitInversedMapping = parser.findDerived([...(schema.parentRefs || []), this.pointer]);\n\n if (schema.oneOf) {\n for (const variant of schema.oneOf) {\n if (variant.$ref === undefined) {\n continue;\n }\n\n const name = JsonPointer.baseName(variant.$ref);\n implicitInversedMapping[variant.$ref] = name;\n }\n }\n\n const mapping = discriminator.mapping || {}; // Defines if the mapping is exhaustive. This avoids having references\n // that overlap with the mapping entries\n\n let isLimitedToMapping = discriminator['x-explicitMappingOnly'] || false; // if there are no mappings, assume non-exhaustive\n\n if (Object.keys(mapping).length === 0) {\n isLimitedToMapping = false;\n }\n\n const explicitInversedMapping = {};\n\n for (const name in mapping) {\n const $ref = mapping[name];\n\n if (Array.isArray(explicitInversedMapping[$ref])) {\n explicitInversedMapping[$ref].push(name);\n } else {\n // overrides implicit mapping here\n explicitInversedMapping[$ref] = [name];\n }\n }\n\n const inversedMapping = isLimitedToMapping ? { ...explicitInversedMapping\n } : { ...implicitInversedMapping,\n ...explicitInversedMapping\n };\n let refs: Array<{\n $ref;\n name;\n }> = [];\n\n for (const $ref of Object.keys(inversedMapping)) {\n const names = inversedMapping[$ref];\n\n if (Array.isArray(names)) {\n for (const name of names) {\n refs.push({\n $ref,\n name\n });\n }\n } else {\n refs.push({\n $ref,\n name: names\n });\n }\n } // Make the listing respects the mapping\n // in case a mapping is defined, the user usually wants to have the order shown\n // as it was defined in the yaml. This will sort the names given the provided\n // mapping (if provided).\n // The logic is:\n // - If a name is among the mapping, promote it to first\n // - Names among the mapping are sorted by their order in the mapping\n // - Names outside the mapping are sorted alphabetically\n\n\n const names = Object.keys(mapping);\n\n if (names.length !== 0) {\n refs = refs.sort((left, right) => {\n const indexLeft = names.indexOf(left.name);\n const indexRight = names.indexOf(right.name);\n\n if (indexLeft < 0 && indexRight < 0) {\n // out of mapping, order by name\n return left.name.localeCompare(right.name);\n } else if (indexLeft < 0) {\n // the right is found, so mapping wins\n return 1;\n } else if (indexRight < 0) {\n // left wins as it's in mapping\n return -1;\n } else {\n return indexLeft - indexRight;\n }\n });\n }\n\n this.oneOf = refs.map(({\n $ref,\n name\n }) => {\n const innerSchema = new SchemaModel(parser, parser.byRef($ref)!, $ref, this.options, true);\n innerSchema.title = name;\n return innerSchema;\n });\n }\n\n}\n\nfunction buildFields(parser: OpenAPIParser, schema: OpenAPISchema, $ref: string, options: RedocNormalizedOptions): FieldModel[] {\n const props = schema.properties || {};\n const additionalProps = schema.additionalProperties;\n const defaults = schema.default || {};\n let fields = Object.keys(props || []).map(fieldName => {\n let field = props[fieldName];\n\n if (!field) {\n console.warn(`Field \"${fieldName}\" is invalid, skipping.\\n Field must be an object but got ${typeof field} at \"${$ref}\"`);\n field = {};\n }\n\n const required = schema.required === undefined ? false : schema.required.indexOf(fieldName) > -1;\n return new FieldModel(parser, {\n name: fieldName,\n required,\n schema: { ...field,\n default: field.default === undefined ? defaults[fieldName] : field.default\n }\n }, $ref + '/properties/' + fieldName, options);\n });\n\n if (options.sortPropsAlphabetically) {\n fields = sortByField(fields, 'name');\n }\n\n if (options.requiredPropsFirst) {\n // if not sort alphabetically sort in the order from required keyword\n fields = sortByRequired(fields, !options.sortPropsAlphabetically ? schema.required : undefined);\n }\n\n if (typeof additionalProps === 'object' || additionalProps === true) {\n fields.push(new FieldModel(parser, {\n name: (typeof additionalProps === 'object' ? additionalProps['x-additionalPropertiesName'] || 'property name' : 'property name').concat('*'),\n required: false,\n schema: additionalProps === true ? {} : additionalProps,\n kind: 'additionalProperties'\n }, $ref + '/additionalProperties', options));\n }\n\n return fields;\n}\n\nfunction getDiscriminator(schema: OpenAPISchema): OpenAPISchema['discriminator'] {\n return schema.discriminator || schema['x-discriminator'];\n}\n\nfunction collectUniqueOneOfTypesDeep(schema: SchemaModel) {\n const uniqueTypes = new Set();\n\n function crawl(schema: SchemaModel) {\n for (const oneOfType of schema.oneOf || []) {\n if (oneOfType.oneOf) {\n crawl(oneOfType);\n continue;\n }\n\n if (oneOfType.type) {\n uniqueTypes.add(oneOfType.type);\n }\n }\n }\n\n crawl(schema);\n return Array.from(uniqueTypes.values());\n}","import { action, observable } from 'mobx';\nimport { OpenAPIParameter, OpenAPIParameterLocation, OpenAPIParameterStyle, Referenced } from '../../types';\nimport { extractExtensions } from '../../utils/openapi';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\nimport { SchemaModel } from './Schema';\nconst DEFAULT_SERIALIZATION: Record = {\n path: {\n style: 'simple',\n explode: false\n },\n query: {\n style: 'form',\n explode: true\n },\n header: {\n style: 'simple',\n explode: false\n },\n cookie: {\n style: 'form',\n explode: true\n }\n};\n/**\n * Field or Parameter model ready to be used by components\n */\n\nexport class FieldModel {\n @observable\n expanded: boolean | undefined;\n schema: SchemaModel;\n name: string;\n required: boolean;\n description: string;\n example?: string;\n deprecated: boolean;\n in?: OpenAPIParameterLocation;\n kind: string;\n extensions?: Record;\n explode: boolean;\n expandAll: boolean;\n style?: OpenAPIParameterStyle;\n serializationMime?: string;\n\n constructor(parser: OpenAPIParser, infoOrRef: Referenced & {\n name?: string;\n kind?: string;\n }, pointer: string, options: RedocNormalizedOptions) {\n const info = parser.deref(infoOrRef);\n this.kind = infoOrRef.kind || 'field';\n this.name = infoOrRef.name || info.name;\n this.in = info.in;\n this.required = !!info.required;\n let fieldSchema = info.schema;\n let serializationMime = '';\n\n if (!fieldSchema && info.in && info.content) {\n serializationMime = Object.keys(info.content)[0];\n fieldSchema = info.content[serializationMime] && info.content[serializationMime].schema;\n }\n\n this.schema = new SchemaModel(parser, fieldSchema || {}, pointer, options);\n this.description = info.description === undefined ? this.schema.description || '' : info.description;\n this.example = info.example || this.schema.example;\n\n if (serializationMime) {\n this.serializationMime = serializationMime;\n } else if (info.style) {\n this.style = info.style;\n } else if (this.in) {\n this.style = DEFAULT_SERIALIZATION[this.in].style;\n }\n\n if (info.explode === undefined && this.in) {\n this.explode = DEFAULT_SERIALIZATION[this.in].explode;\n } else {\n this.explode = !!info.explode;\n }\n\n this.deprecated = info.deprecated === undefined ? !!this.schema.deprecated : info.deprecated;\n parser.exitRef(infoOrRef);\n\n if (options.showExtensions) {\n this.extensions = extractExtensions(info, options.showExtensions);\n }\n }\n\n @action\n toggle() {\n this.expanded = !this.expanded;\n }\n\n}","import { resolve as urlResolve } from 'url';\nimport { OpenAPIEncoding, OpenAPIExample, Referenced } from '../../types';\nimport { isFormUrlEncoded, isJsonLike, urlFormEncodePayload } from '../../utils/openapi';\nimport { OpenAPIParser } from '../OpenAPIParser';\nconst externalExamplesCache: {\n [url: string]: Promise;\n} = {};\nexport class ExampleModel {\n value: any;\n summary?: string;\n description?: string;\n externalValueUrl?: string;\n\n constructor(parser: OpenAPIParser, infoOrRef: Referenced, public mime: string, encoding?: {\n [field: string]: OpenAPIEncoding;\n }) {\n const example = parser.deref(infoOrRef);\n this.value = example.value;\n this.summary = example.summary;\n this.description = example.description;\n\n if (example.externalValue) {\n this.externalValueUrl = urlResolve(parser.specUrl || '', example.externalValue);\n }\n\n parser.exitRef(infoOrRef);\n\n if (isFormUrlEncoded(mime) && this.value && typeof this.value === 'object') {\n this.value = urlFormEncodePayload(this.value, encoding);\n }\n }\n\n getExternalValue(mimeType: string): Promise {\n if (!this.externalValueUrl) {\n return Promise.resolve(undefined);\n }\n\n if (externalExamplesCache[this.externalValueUrl]) {\n return externalExamplesCache[this.externalValueUrl];\n }\n\n externalExamplesCache[this.externalValueUrl] = fetch(this.externalValueUrl).then(res => {\n return res.text().then(txt => {\n if (!res.ok) {\n return Promise.reject(new Error(txt));\n }\n\n if (isJsonLike(mimeType)) {\n try {\n return JSON.parse(txt);\n } catch (e) {\n return txt;\n }\n } else {\n return txt;\n }\n });\n });\n return externalExamplesCache[this.externalValueUrl];\n }\n\n}","import * as Sampler from 'openapi-sampler';\nimport { OpenAPIMediaType } from '../../types';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\nimport { SchemaModel } from './Schema';\nimport { isJsonLike, mapValues } from '../../utils';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { ExampleModel } from './Example';\nexport class MediaTypeModel {\n examples?: {\n [name: string]: ExampleModel;\n };\n schema?: SchemaModel;\n name: string;\n isRequestType: boolean;\n onlyRequiredInSamples: boolean;\n /**\n * @param isRequestType needed to know if skipe RO/RW fields in objects\n */\n\n constructor(parser: OpenAPIParser, name: string, isRequestType: boolean, info: OpenAPIMediaType, options: RedocNormalizedOptions) {\n this.name = name;\n this.isRequestType = isRequestType;\n this.schema = info.schema && new SchemaModel(parser, info.schema, '', options);\n this.onlyRequiredInSamples = options.onlyRequiredInSamples;\n\n if (info.examples !== undefined) {\n this.examples = mapValues(info.examples, example => new ExampleModel(parser, example, name, info.encoding));\n } else if (info.example !== undefined) {\n this.examples = {\n default: new ExampleModel(parser, {\n value: parser.shalowDeref(info.example)\n }, name, info.encoding)\n };\n } else if (isJsonLike(name)) {\n this.generateExample(parser, info);\n }\n }\n\n generateExample(parser: OpenAPIParser, info: OpenAPIMediaType) {\n const samplerOptions = {\n skipReadOnly: this.isRequestType,\n skipNonRequired: this.isRequestType && this.onlyRequiredInSamples,\n skipWriteOnly: !this.isRequestType\n };\n\n if (this.schema && this.schema.oneOf) {\n this.examples = {};\n\n for (const subSchema of this.schema.oneOf) {\n const sample = Sampler.sample(subSchema.rawSchema, samplerOptions, parser.spec);\n\n if (this.schema.discriminatorProp && typeof sample === 'object' && sample) {\n sample[this.schema.discriminatorProp] = subSchema.title;\n }\n\n this.examples[subSchema.title] = new ExampleModel(parser, {\n value: sample\n }, this.name, info.encoding);\n }\n } else if (this.schema) {\n this.examples = {\n default: new ExampleModel(parser, {\n value: Sampler.sample(info.schema, samplerOptions, parser.spec)\n }, this.name, info.encoding)\n };\n }\n }\n\n}","import { action, computed, observable } from 'mobx';\nimport { OpenAPIMediaType } from '../../types';\nimport { MediaTypeModel } from './MediaType';\nimport { mergeSimilarMediaTypes } from '../../utils';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\n/**\n * MediaContent model ready to be sued by React components\n * Contains multiple MediaTypes and keeps track of the currently active one\n */\n\nexport class MediaContentModel {\n mediaTypes: MediaTypeModel[];\n @observable\n activeMimeIdx = 0;\n /**\n * @param isRequestType needed to know if skipe RO/RW fields in objects\n */\n\n constructor(parser: OpenAPIParser, info: Record, public isRequestType: boolean, options: RedocNormalizedOptions) {\n if (options.unstable_ignoreMimeParameters) {\n info = mergeSimilarMediaTypes(info);\n }\n\n this.mediaTypes = Object.keys(info).map(name => {\n const mime = info[name]; // reset deref cache just in case something is left there\n\n parser.resetVisited();\n return new MediaTypeModel(parser, name, isRequestType, mime, options);\n });\n }\n /**\n * Set active media type by index\n * @param idx media type index\n */\n\n\n @action\n activate(idx: number) {\n this.activeMimeIdx = idx;\n }\n\n @computed\n get active() {\n return this.mediaTypes[this.activeMimeIdx];\n }\n\n get hasSample(): boolean {\n return this.mediaTypes.filter(mime => !!mime.examples).length > 0;\n }\n\n}","import { OpenAPIRequestBody, Referenced } from '../../types';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\nimport { MediaContentModel } from './MediaContent';\nexport class RequestBodyModel {\n description: string;\n required: boolean;\n content?: MediaContentModel;\n\n constructor(parser: OpenAPIParser, infoOrRef: Referenced, options: RedocNormalizedOptions) {\n const info = parser.deref(infoOrRef);\n this.description = info.description || '';\n this.required = !!info.required;\n parser.exitRef(infoOrRef);\n\n if (info.content !== undefined) {\n this.content = new MediaContentModel(parser, info.content, true, options);\n }\n }\n\n}","import { action, observable } from 'mobx';\nimport { OpenAPIResponse, Referenced } from '../../types';\nimport { getStatusCodeType } from '../../utils';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\nimport { FieldModel } from './Field';\nimport { MediaContentModel } from './MediaContent';\nexport class ResponseModel {\n @observable\n expanded: boolean;\n content?: MediaContentModel;\n code: string;\n summary: string;\n description: string;\n type: string;\n headers: FieldModel[] = [];\n\n constructor(parser: OpenAPIParser, code: string, defaultAsError: boolean, infoOrRef: Referenced, options: RedocNormalizedOptions) {\n this.expanded = options.expandResponses === 'all' || options.expandResponses[code];\n const info = parser.deref(infoOrRef);\n parser.exitRef(infoOrRef);\n this.code = code;\n\n if (info.content !== undefined) {\n this.content = new MediaContentModel(parser, info.content, false, options);\n }\n\n if (info['x-summary'] !== undefined) {\n this.summary = info['x-summary'];\n this.description = info.description || '';\n } else {\n this.summary = info.description || '';\n this.description = '';\n }\n\n this.type = getStatusCodeType(code, defaultAsError);\n const headers = info.headers;\n\n if (headers !== undefined) {\n this.headers = Object.keys(headers).map(name => {\n const header = headers[name];\n return new FieldModel(parser, { ...header,\n name\n }, '', options);\n });\n }\n }\n\n @action\n toggle() {\n this.expanded = !this.expanded;\n }\n\n}","import { action, observable } from 'mobx';\nimport { IMenuItem } from '../MenuStore';\nimport { GroupModel } from './Group.model';\nimport { SecurityRequirementModel } from './SecurityRequirement';\nimport { OpenAPIExternalDocumentation, OpenAPIServer, OpenAPIXCodeSample } from '../../types';\nimport { extractExtensions, getOperationSummary, getStatusCodeType, isStatusCode, memoize, mergeParams, normalizeServers, sortByField, sortByRequired } from '../../utils';\nimport { ContentItemModel, ExtendedOpenAPIOperation } from '../MenuBuilder';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\nimport { CallbackModel } from './Callback';\nimport { FieldModel } from './Field';\nimport { MediaContentModel } from './MediaContent';\nimport { RequestBodyModel } from './RequestBody';\nimport { ResponseModel } from './Response';\nexport interface XPayloadSample {\n lang: 'payload';\n label: string;\n requestBodyContent: MediaContentModel;\n source: string;\n}\nexport function isPayloadSample(sample: XPayloadSample | OpenAPIXCodeSample): sample is XPayloadSample {\n return sample.lang === 'payload' && (sample as any).requestBodyContent;\n}\nlet isCodeSamplesWarningPrinted = false;\n/**\n * Operation model ready to be used by components\n */\n\nexport class OperationModel implements IMenuItem {\n //#region IMenuItem fields\n id: string;\n absoluteIdx?: number;\n name: string;\n description?: string;\n type = ('operation' as const);\n parent?: GroupModel;\n externalDocs?: OpenAPIExternalDocumentation;\n items: ContentItemModel[] = [];\n depth: number;\n @observable\n ready?: boolean = true;\n @observable\n active: boolean = false;\n @observable\n expanded: boolean = false; //#endregion\n\n pointer: string;\n operationId?: string;\n httpVerb: string;\n deprecated: boolean;\n path: string;\n servers: OpenAPIServer[];\n security: SecurityRequirementModel[];\n extensions: Record;\n isCallback: boolean;\n isWebhook: boolean;\n\n constructor(private parser: OpenAPIParser, private operationSpec: ExtendedOpenAPIOperation, parent: GroupModel | undefined, private options: RedocNormalizedOptions, isCallback: boolean = false) {\n this.pointer = operationSpec.pointer;\n this.description = operationSpec.description;\n this.parent = parent;\n this.externalDocs = operationSpec.externalDocs;\n this.deprecated = !!operationSpec.deprecated;\n this.httpVerb = operationSpec.httpVerb;\n this.deprecated = !!operationSpec.deprecated;\n this.operationId = operationSpec.operationId;\n this.path = operationSpec.pathName;\n this.isCallback = isCallback;\n this.isWebhook = !!operationSpec.isWebhook;\n this.name = getOperationSummary(operationSpec);\n\n if (this.isCallback) {\n // NOTE: Callbacks by default should not inherit the specification's global `security` definition.\n // Can be defined individually per-callback in the specification. Defaults to none.\n this.security = (operationSpec.security || []).map(security => new SecurityRequirementModel(security, parser)); // TODO: update getting pathInfo for overriding servers on path level\n\n this.servers = normalizeServers('', operationSpec.servers || operationSpec.pathServers || []);\n } else {\n this.id = operationSpec.operationId !== undefined ? 'operation/' + operationSpec.operationId : parent !== undefined ? parent.id + this.pointer : this.pointer;\n this.security = (operationSpec.security || parser.spec.security || []).map(security => new SecurityRequirementModel(security, parser));\n this.servers = normalizeServers(parser.specUrl, operationSpec.servers || operationSpec.pathServers || parser.spec.servers || []);\n }\n\n if (options.showExtensions) {\n this.extensions = extractExtensions(operationSpec, options.showExtensions);\n }\n }\n /**\n * set operation as active (used by side menu)\n */\n\n\n @action\n activate() {\n this.active = true;\n }\n /**\n * set operation as inactive (used by side menu)\n */\n\n\n @action\n deactivate() {\n this.active = false;\n }\n /**\n * Toggle expansion in middle panel (for callbacks, which are operations)\n */\n\n\n @action\n toggle() {\n this.expanded = !this.expanded;\n }\n\n expand() {\n if (this.parent) {\n this.parent.expand();\n }\n }\n\n collapse() {\n /* do nothing */\n }\n\n @memoize\n get requestBody() {\n return this.operationSpec.requestBody && new RequestBodyModel(this.parser, this.operationSpec.requestBody, this.options);\n }\n\n @memoize\n get codeSamples() {\n let samples: Array = this.operationSpec['x-codeSamples'] || this.operationSpec['x-code-samples'] || [];\n\n if (this.operationSpec['x-code-samples'] && !isCodeSamplesWarningPrinted) {\n isCodeSamplesWarningPrinted = true;\n console.warn('\"x-code-samples\" is deprecated. Use \"x-codeSamples\" instead');\n }\n\n const requestBodyContent = this.requestBody && this.requestBody.content;\n\n if (requestBodyContent && requestBodyContent.hasSample) {\n const insertInx = Math.min(samples.length, this.options.payloadSampleIdx);\n samples = [...samples.slice(0, insertInx), {\n lang: 'payload',\n label: 'Payload',\n source: '',\n requestBodyContent\n }, ...samples.slice(insertInx)];\n }\n\n return samples;\n }\n\n @memoize\n get parameters() {\n const _parameters = mergeParams(this.parser, this.operationSpec.pathParameters, this.operationSpec.parameters // TODO: fix pointer\n ).map(paramOrRef => new FieldModel(this.parser, paramOrRef, this.pointer, this.options));\n\n if (this.options.sortPropsAlphabetically) {\n return sortByField(_parameters, 'name');\n }\n\n if (this.options.requiredPropsFirst) {\n return sortByRequired(_parameters);\n }\n\n return _parameters;\n }\n\n @memoize\n get responses() {\n let hasSuccessResponses = false;\n return Object.keys(this.operationSpec.responses || []).filter(code => {\n if (code === 'default') {\n return true;\n }\n\n if (getStatusCodeType(code) === 'success') {\n hasSuccessResponses = true;\n }\n\n return isStatusCode(code);\n }) // filter out other props (e.g. x-props)\n .map(code => {\n return new ResponseModel(this.parser, code, hasSuccessResponses, this.operationSpec.responses[code], this.options);\n });\n }\n\n @memoize\n get callbacks() {\n return Object.keys(this.operationSpec.callbacks || []).map(callbackEventName => {\n return new CallbackModel(this.parser, callbackEventName, this.operationSpec.callbacks![callbackEventName], this.pointer, this.options);\n });\n }\n\n}","import { OpenAPIPath, Referenced } from '../../types';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { OperationModel } from './Operation';\nimport { isOperationName } from '../..';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\nexport class WebhookModel {\n operations: OperationModel[] = [];\n\n constructor(parser: OpenAPIParser, options: RedocNormalizedOptions, infoOrRef?: Referenced) {\n const webhooks = parser.deref(infoOrRef || {});\n parser.exitRef(infoOrRef);\n\n for (const webhookName of Object.keys(webhooks)) {\n const webhook = webhooks[webhookName];\n const operations = Object.keys(webhook).filter(isOperationName);\n\n for (const operationName of operations) {\n const operationInfo = webhook[operationName];\n const operation = new OperationModel(parser, { ...operationInfo,\n httpVerb: operationName\n }, undefined, options, false);\n this.operations.push(operation);\n }\n }\n }\n\n}","import { OpenAPISecurityScheme, Referenced } from '../../types';\nimport { SECURITY_SCHEMES_SECTION_PREFIX } from '../../utils/openapi';\nimport { OpenAPIParser } from '../OpenAPIParser';\nexport class SecuritySchemeModel {\n id: string;\n sectionId: string;\n type: OpenAPISecurityScheme['type'];\n description: string;\n apiKey?: {\n name: string;\n in: OpenAPISecurityScheme['in'];\n };\n http?: {\n scheme: string;\n bearerFormat?: string;\n };\n flows: OpenAPISecurityScheme['flows'];\n openId?: {\n connectUrl: string;\n };\n\n constructor(parser: OpenAPIParser, id: string, scheme: Referenced) {\n const info = parser.deref(scheme);\n this.id = id;\n this.sectionId = SECURITY_SCHEMES_SECTION_PREFIX + id;\n this.type = info.type;\n this.description = info.description || '';\n\n if (info.type === 'apiKey') {\n this.apiKey = {\n name: info.name!,\n in: info.in\n };\n }\n\n if (info.type === 'http') {\n this.http = {\n scheme: info.scheme!,\n bearerFormat: info.bearerFormat\n };\n }\n\n if (info.type === 'openIdConnect') {\n this.openId = {\n connectUrl: info.openIdConnectUrl!\n };\n }\n\n if (info.type === 'oauth2' && info.flows) {\n this.flows = info.flows;\n }\n }\n\n}\nexport class SecuritySchemesModel {\n schemes: SecuritySchemeModel[];\n\n constructor(parser: OpenAPIParser) {\n const schemes = parser.spec.components && parser.spec.components.securitySchemes || {};\n this.schemes = Object.keys(schemes).map(name => new SecuritySchemeModel(parser, name, schemes[name]));\n }\n\n}","import { resolve as urlResolve } from 'url';\nimport { OpenAPIRef, OpenAPISchema, OpenAPISpec, Referenced } from '../types';\nimport { appendToMdHeading } from '../utils/';\nimport { JsonPointer } from '../utils/JsonPointer';\nimport { isNamedDefinition, SECURITY_DEFINITIONS_COMPONENT_NAME, SECURITY_DEFINITIONS_JSX_NAME } from '../utils/openapi';\nimport { buildComponentComment, MarkdownRenderer } from './MarkdownRenderer';\nimport { RedocNormalizedOptions } from './RedocNormalizedOptions';\nexport type MergedOpenAPISchema = OpenAPISchema & {\n parentRefs?: string[];\n};\n/**\n * Helper class to keep track of visited references to avoid\n * endless recursion because of circular refs\n */\n\nclass RefCounter {\n _counter = {};\n\n reset(): void {\n this._counter = {};\n }\n\n visit(ref: string): void {\n this._counter[ref] = this._counter[ref] ? this._counter[ref] + 1 : 1;\n }\n\n exit(ref: string): void {\n this._counter[ref] = this._counter[ref] && this._counter[ref] - 1;\n }\n\n visited(ref: string): boolean {\n return !!this._counter[ref];\n }\n\n}\n/**\n * Loads and keeps spec. Provides raw spec operations\n */\n\n\nexport class OpenAPIParser {\n specUrl?: string | null;\n spec: OpenAPISpec;\n mergeRefs: Set;\n private _refCounter: RefCounter = new RefCounter();\n\n constructor(spec: OpenAPISpec, specUrl?: string | null, private options: RedocNormalizedOptions = new RedocNormalizedOptions({})) {\n this.validate(spec);\n this.preprocess(spec);\n this.spec = spec;\n this.mergeRefs = new Set();\n const href = '';\n\n if (typeof specUrl === 'string') {\n this.specUrl = urlResolve(href, specUrl);\n }\n }\n\n validate(spec: any) {\n if (spec.openapi === undefined) {\n throw new Error('Document must be valid OpenAPI 3.0.0 definition');\n }\n }\n\n preprocess(spec: OpenAPISpec) {\n if (!this.options.noAutoAuth && spec.info && spec.components && spec.components.securitySchemes) {\n // Automatically inject Authentication section with SecurityDefinitions component\n const description = spec.info.description || '';\n\n if (!MarkdownRenderer.containsComponent(description, SECURITY_DEFINITIONS_COMPONENT_NAME) && !MarkdownRenderer.containsComponent(description, SECURITY_DEFINITIONS_JSX_NAME)) {\n const comment = buildComponentComment(SECURITY_DEFINITIONS_COMPONENT_NAME);\n spec.info.description = appendToMdHeading(description, 'Authentication', comment);\n }\n }\n }\n /**\n * get spec part by JsonPointer ($ref)\n */\n\n\n byRef = (ref: string): T | undefined => {\n let res;\n\n if (!this.spec) {\n return;\n }\n\n if (ref.charAt(0) !== '#') {\n ref = '#' + ref;\n }\n\n ref = decodeURIComponent(ref);\n\n try {\n res = JsonPointer.get(this.spec, ref);\n } catch (e) {// do nothing\n }\n\n return res || {};\n };\n /**\n * checks if the object is OpenAPI reference (contains $ref property)\n */\n\n isRef(obj: any): obj is OpenAPIRef {\n if (!obj) {\n return false;\n }\n\n return obj.$ref !== undefined && obj.$ref !== null;\n }\n /**\n * resets visited endpoints. should be run after\n */\n\n\n resetVisited() {\n if (process.env.NODE_ENV !== 'production') {\n // check in dev mode\n for (const k in this._refCounter._counter) {\n if (this._refCounter._counter[k] > 0) {\n console.warn('Not exited reference: ' + k);\n }\n }\n }\n\n this._refCounter = new RefCounter();\n }\n\n exitRef(ref: Referenced) {\n if (!this.isRef(ref)) {\n return;\n }\n\n this._refCounter.exit(ref.$ref);\n }\n /**\n * Resolve given reference object or return as is if it is not a reference\n * @param obj object to dereference\n * @param forceCircular whether to dereference even if it is circular ref\n */\n\n\n deref(obj: OpenAPIRef | T, forceCircular = false): T {\n if (this.isRef(obj)) {\n const resolved = this.byRef(obj.$ref)!;\n\n const visited = this._refCounter.visited(obj.$ref);\n\n this._refCounter.visit(obj.$ref);\n\n if (visited && !forceCircular) {\n // circular reference detected\n // tslint:disable-next-line\n return Object.assign({}, resolved, {\n 'x-circular-ref': true\n });\n } // deref again in case one more $ref is here\n\n\n if (this.isRef(resolved)) {\n const res = this.deref(resolved);\n this.exitRef(resolved);\n return res;\n }\n\n return resolved;\n }\n\n return obj;\n }\n\n shalowDeref(obj: OpenAPIRef | T): T {\n if (this.isRef(obj)) {\n return this.byRef(obj.$ref)!;\n }\n\n return obj;\n }\n /**\n * Merge allOf constraints.\n * @param schema schema with allOF\n * @param $ref pointer of the schema\n * @param forceCircular whether to dereference children even if it is a circular ref\n */\n\n\n mergeAllOf(schema: OpenAPISchema, $ref?: string, forceCircular: boolean = false, used$Refs = new Set()): MergedOpenAPISchema {\n if ($ref) {\n used$Refs.add($ref);\n }\n\n schema = this.hoistOneOfs(schema);\n\n if (schema.allOf === undefined) {\n return schema;\n }\n\n let receiver: MergedOpenAPISchema = { ...schema,\n allOf: undefined,\n parentRefs: [],\n title: schema.title || (isNamedDefinition($ref) ? JsonPointer.baseName($ref) : undefined)\n }; // avoid mutating inner objects\n\n if (receiver.properties !== undefined && typeof receiver.properties === 'object') {\n receiver.properties = { ...receiver.properties\n };\n }\n\n if (receiver.items !== undefined && typeof receiver.items === 'object') {\n receiver.items = { ...receiver.items\n };\n }\n\n const allOfSchemas = (schema.allOf.map(subSchema => {\n if (subSchema && subSchema.$ref && used$Refs.has(subSchema.$ref)) {\n return undefined;\n }\n\n const resolved = this.deref(subSchema, forceCircular);\n const subRef = subSchema.$ref || undefined;\n const subMerged = this.mergeAllOf(resolved, subRef, forceCircular, used$Refs);\n receiver.parentRefs!.push(...(subMerged.parentRefs || []));\n return {\n $ref: subRef,\n schema: subMerged\n };\n }).filter(child => child !== undefined) as Array<{\n $ref: string | undefined;\n schema: MergedOpenAPISchema;\n }>);\n\n for (const {\n $ref: subSchemaRef,\n schema: subSchema\n } of allOfSchemas) {\n if (receiver.type !== subSchema.type && receiver.type !== undefined && subSchema.type !== undefined) {\n console.warn(`Incompatible types in allOf at \"${$ref}\": \"${receiver.type}\" and \"${subSchema.type}\"`);\n }\n\n if (subSchema.type !== undefined) {\n receiver.type = subSchema.type;\n }\n\n if (subSchema.properties !== undefined) {\n receiver.properties = receiver.properties || {};\n\n for (const prop in subSchema.properties) {\n if (!receiver.properties[prop]) {\n receiver.properties[prop] = subSchema.properties[prop];\n } else {\n // merge inner properties\n receiver.properties[prop] = this.mergeAllOf({\n allOf: [receiver.properties[prop], subSchema.properties[prop]]\n }, $ref + '/properties/' + prop);\n }\n }\n }\n\n if (subSchema.items !== undefined) {\n receiver.items = receiver.items || {}; // merge inner properties\n\n receiver.items = this.mergeAllOf({\n allOf: [receiver.items, subSchema.items]\n }, $ref + '/items');\n }\n\n if (subSchema.required !== undefined) {\n receiver.required = (receiver.required || []).concat(subSchema.required);\n } // merge rest of constraints\n // TODO: do more intelligent merge\n\n\n receiver = { ...subSchema,\n ...receiver\n };\n\n if (subSchemaRef) {\n receiver.parentRefs!.push(subSchemaRef);\n\n if (receiver.title === undefined && isNamedDefinition(subSchemaRef)) {// this is not so correct behaviour. commented out for now\n // ref: https://github.com/Redocly/redoc/issues/601\n // receiver.title = JsonPointer.baseName(subSchemaRef);\n }\n }\n }\n\n return receiver;\n }\n /**\n * Find all derived definitions among #/components/schemas from any of $refs\n * returns map of definition pointer to definition name\n * @param $refs array of references to find derived from\n */\n\n\n findDerived($refs: string[]): Record {\n const res: Record = {};\n const schemas = this.spec.components && this.spec.components.schemas || {};\n\n for (const defName in schemas) {\n const def = this.deref(schemas[defName]);\n\n if (def.allOf !== undefined && def.allOf.find(obj => obj.$ref !== undefined && $refs.indexOf(obj.$ref) > -1)) {\n res['#/components/schemas/' + defName] = [def['x-discriminator-value'] || defName];\n }\n }\n\n return res;\n }\n\n exitParents(shema: MergedOpenAPISchema) {\n for (const parent$ref of shema.parentRefs || []) {\n this.exitRef({\n $ref: parent$ref\n });\n }\n }\n\n private hoistOneOfs(schema: OpenAPISchema) {\n if (schema.allOf === undefined) {\n return schema;\n }\n\n const allOf = schema.allOf;\n\n for (let i = 0; i < allOf.length; i++) {\n const sub = allOf[i];\n\n if (Array.isArray(sub.oneOf)) {\n const beforeAllOf = allOf.slice(0, i);\n const afterAllOf = allOf.slice(i + 1);\n return {\n oneOf: sub.oneOf.map(part => {\n const merged = this.mergeAllOf({\n allOf: [...beforeAllOf, part, ...afterAllOf]\n }); // each oneOf should be independent so exiting all the parent refs\n // otherwise it will cause false-positive recursive detection\n\n this.exitParents(merged);\n return merged;\n })\n };\n }\n }\n\n return schema;\n }\n\n}","import { OpenAPIExternalDocumentation, OpenAPISpec } from '../types';\nimport { ContentItemModel, MenuBuilder } from './MenuBuilder';\nimport { ApiInfoModel } from './models/ApiInfo';\nimport { WebhookModel } from './models/Webhook';\nimport { SecuritySchemesModel } from './models/SecuritySchemes';\nimport { OpenAPIParser } from './OpenAPIParser';\nimport { RedocNormalizedOptions } from './RedocNormalizedOptions';\n/**\n * Store that contains all the specification related information in the form of tree\n */\n\nexport class SpecStore {\n parser: OpenAPIParser;\n info: ApiInfoModel;\n externalDocs?: OpenAPIExternalDocumentation;\n contentItems: ContentItemModel[];\n securitySchemes: SecuritySchemesModel;\n webhooks?: WebhookModel;\n\n constructor(spec: OpenAPISpec, specUrl: string | undefined | null, private options: RedocNormalizedOptions) {\n this.parser = new OpenAPIParser(spec, specUrl, options);\n this.info = new ApiInfoModel(this.parser);\n this.externalDocs = this.parser.spec.externalDocs;\n this.contentItems = MenuBuilder.buildStructure(this.parser, this.options);\n this.securitySchemes = new SecuritySchemesModel(this.parser);\n this.webhooks = new WebhookModel(this.parser, options, this.parser.spec['x-webhooks']);\n }\n\n}","import { action, observable } from 'mobx';\nimport { ContentItemModel } from '..';\nimport { OpenAPIExternalDocumentation } from '../../types';\nimport { IMenuItem } from '../MenuStore';\nexport class ExtraContent implements IMenuItem {\n //#region IMenuItem fields\n id: string;\n absoluteIdx?: number;\n name: string;\n description?: string;\n type = ('extra' as const);\n content: JSX.Element;\n items: ContentItemModel[] = [];\n parent?: ExtraContent;\n externalDocs?: OpenAPIExternalDocumentation;\n @observable\n active: boolean = false;\n @observable\n expanded: boolean = false;\n depth: number;\n level: number;\n\n constructor({\n id,\n name,\n depth\n }) {\n this.id = id;\n this.name = name;\n this.depth = depth;\n }\n /**\n * set operation as active (used by side menu)\n */\n\n\n @action\n activate() {\n this.active = true;\n }\n /**\n * set operation as inactive (used by side menu)\n */\n\n\n @action\n deactivate() {\n this.active = false;\n }\n\n expand() {\n if (this.parent) {\n this.parent.expand();\n }\n }\n\n collapse() {\n /* do nothing */\n }\n\n}","import { action, observable } from 'mobx';\nimport { OpenAPIExternalDocumentation, OpenAPITag } from '../../types';\nimport { safeSlugify } from '../../utils';\nimport { MarkdownHeading, MarkdownRenderer } from '../MarkdownRenderer';\nimport { ContentItemModel } from '../MenuBuilder';\nimport { IMenuItem, MenuItemGroupType } from '../MenuStore';\n/**\n * Operations Group model ready to be used by components\n */\n\nexport class GroupModel implements IMenuItem {\n //#region IMenuItem fields\n id: string;\n absoluteIdx?: number;\n name: string;\n description?: string;\n type: MenuItemGroupType;\n items: ContentItemModel[] = [];\n parent?: GroupModel;\n externalDocs?: OpenAPIExternalDocumentation;\n @observable\n active: boolean = false;\n @observable\n expanded: boolean = false;\n depth: number;\n level: number; //#endregion\n\n constructor(type: MenuItemGroupType, tagOrGroup: OpenAPITag | MarkdownHeading, parent?: GroupModel) {\n // markdown headings already have ids calculated as they are needed for heading anchors\n this.id = (tagOrGroup as MarkdownHeading).id || type + '/' + safeSlugify(tagOrGroup.name);\n this.type = type;\n this.name = tagOrGroup['x-displayName'] || tagOrGroup.name;\n this.level = (tagOrGroup as MarkdownHeading).level || 1; // remove sections from markdown, same as in ApiInfo\n\n this.description = tagOrGroup.description || '';\n const items = (tagOrGroup as MarkdownHeading).items;\n\n if (items && items.length) {\n this.description = MarkdownRenderer.getTextBeforeHading(this.description, items[0].name);\n }\n\n this.parent = parent;\n this.externalDocs = (tagOrGroup as OpenAPITag).externalDocs; // groups are active (expanded) by default\n\n if (this.type === 'group') {\n this.expanded = true;\n }\n }\n\n @action\n activate() {\n this.active = true;\n }\n\n @action\n expand() {\n if (this.parent) {\n this.parent.expand();\n }\n\n this.expanded = true;\n }\n\n @action\n collapse() {\n // disallow collapsing groups\n if (this.type === 'group') {\n return;\n }\n\n this.expanded = false;\n }\n\n @action\n deactivate() {\n this.active = false;\n }\n\n}","export * from '../SpecStore';\nexport * from './ApiInfo';\nexport * from './Callback';\nexport * from './Example';\nexport * from './ExtraContent';\nexport * from './Field';\nexport * from './Group.model';\nexport * from './MediaContent';\nexport * from './MediaType';\nexport * from './Operation';\nexport * from './RequestBody';\nexport * from './Response';\nexport * from './Schema';\nexport * from './SecuritySchemes';","import { OpenAPIOperation, OpenAPIParameter, OpenAPISpec, OpenAPITag, Referenced, OpenAPIServer, OpenAPIPaths } from '../types';\nimport { isOperationName, SECURITY_DEFINITIONS_COMPONENT_NAME, setSecuritySchemePrefix, JsonPointer } from '../utils';\nimport { MarkdownRenderer } from './MarkdownRenderer';\nimport { GroupModel, OperationModel } from './models';\nimport { OpenAPIParser } from './OpenAPIParser';\nimport { RedocNormalizedOptions } from './RedocNormalizedOptions';\nexport type TagInfo = OpenAPITag & {\n operations: ExtendedOpenAPIOperation[];\n used?: boolean;\n};\nexport type ExtendedOpenAPIOperation = {\n pointer: string;\n pathName: string;\n httpVerb: string;\n pathParameters: Array>;\n pathServers: Array | undefined;\n isWebhook: boolean;\n} & OpenAPIOperation;\nexport type TagsInfoMap = Record;\nexport interface TagGroup {\n name: string;\n tags: string[];\n}\nexport const GROUP_DEPTH = 0;\nexport type ContentItemModel = GroupModel | OperationModel;\nexport class MenuBuilder {\n /**\n * Builds page content structure based on tags\n */\n static buildStructure(parser: OpenAPIParser, options: RedocNormalizedOptions): ContentItemModel[] {\n const spec = parser.spec;\n const items: ContentItemModel[] = [];\n const tagsMap = MenuBuilder.getTagsWithOperations(spec);\n items.push(...MenuBuilder.addMarkdownItems(spec.info.description || '', undefined, 1, options));\n\n if (spec['x-tagGroups'] && spec['x-tagGroups'].length > 0) {\n items.push(...MenuBuilder.getTagGroupsItems(parser, undefined, spec['x-tagGroups'], tagsMap, options));\n } else {\n items.push(...MenuBuilder.getTagsItems(parser, tagsMap, undefined, undefined, options));\n }\n\n return items;\n }\n /**\n * extracts items from markdown description\n * @param description - markdown source\n */\n\n\n static addMarkdownItems(description: string, parent: GroupModel | undefined, initialDepth: number, options: RedocNormalizedOptions): ContentItemModel[] {\n const renderer = new MarkdownRenderer(options);\n const headings = renderer.extractHeadings(description || '');\n\n if (headings.length && parent && parent.description) {\n parent.description = MarkdownRenderer.getTextBeforeHading(parent.description, headings[0].name);\n }\n\n const mapHeadingsDeep = (_parent, items, depth = 1) => items.map(heading => {\n const group = new GroupModel('section', heading, _parent);\n group.depth = depth;\n\n if (heading.items) {\n group.items = mapHeadingsDeep(group, heading.items, depth + 1);\n }\n\n if (MarkdownRenderer.containsComponent(group.description || '', SECURITY_DEFINITIONS_COMPONENT_NAME)) {\n setSecuritySchemePrefix(group.id + '/');\n }\n\n return group;\n });\n\n return mapHeadingsDeep(parent, headings, initialDepth);\n }\n /**\n * Returns array of OperationsGroup items for the tag groups (x-tagGroups vendor extension)\n * @param tags value of `x-tagGroups` vendor extension\n */\n\n\n static getTagGroupsItems(parser: OpenAPIParser, parent: GroupModel | undefined, groups: TagGroup[], tags: TagsInfoMap, options: RedocNormalizedOptions): GroupModel[] {\n const res: GroupModel[] = [];\n\n for (const group of groups) {\n const item = new GroupModel('group', group, parent);\n item.depth = GROUP_DEPTH;\n item.items = MenuBuilder.getTagsItems(parser, tags, item, group, options);\n res.push(item);\n } // TODO checkAllTagsUsedInGroups\n\n\n return res;\n }\n /**\n * Returns array of OperationsGroup items for the tags of the group or for all tags\n * @param tagsMap tags info returned from `getTagsWithOperations`\n * @param parent parent item\n * @param group group which this tag belongs to. if not provided gets all tags\n */\n\n\n static getTagsItems(parser: OpenAPIParser, tagsMap: TagsInfoMap, parent: GroupModel | undefined, group: TagGroup | undefined, options: RedocNormalizedOptions): ContentItemModel[] {\n let tagNames;\n\n if (group === undefined) {\n tagNames = Object.keys(tagsMap); // all tags\n } else {\n tagNames = group.tags;\n }\n\n const tags = tagNames.map(tagName => {\n if (!tagsMap[tagName]) {\n console.warn(`Non-existing tag \"${tagName}\" is added to the group \"${group!.name}\"`);\n return null;\n }\n\n tagsMap[tagName].used = true;\n return tagsMap[tagName];\n });\n const res: Array = [];\n\n for (const tag of tags) {\n if (!tag) {\n continue;\n }\n\n const item = new GroupModel('tag', tag, parent);\n item.depth = GROUP_DEPTH + 1; // don't put empty tag into content, instead put its operations\n\n if (tag.name === '') {\n const items = [...MenuBuilder.addMarkdownItems(tag.description || '', item, item.depth + 1, options), ...this.getOperationsItems(parser, undefined, tag, item.depth + 1, options)];\n res.push(...items);\n continue;\n }\n\n item.items = [...MenuBuilder.addMarkdownItems(tag.description || '', item, item.depth + 1, options), ...this.getOperationsItems(parser, item, tag, item.depth + 1, options)];\n res.push(item);\n }\n\n return res;\n }\n /**\n * Returns array of Operation items for the tag\n * @param parent parent OperationsGroup\n * @param tag tag info returned from `getTagsWithOperations`\n * @param depth items depth\n */\n\n\n static getOperationsItems(parser: OpenAPIParser, parent: GroupModel | undefined, tag: TagInfo, depth: number, options: RedocNormalizedOptions): OperationModel[] {\n if (tag.operations.length === 0) {\n return [];\n }\n\n const res: OperationModel[] = [];\n\n for (const operationInfo of tag.operations) {\n const operation = new OperationModel(parser, operationInfo, parent, options);\n operation.depth = depth;\n res.push(operation);\n }\n\n return res;\n }\n /**\n * collects tags and maps each tag to list of operations belonging to this tag\n */\n\n\n static getTagsWithOperations(spec: OpenAPISpec): TagsInfoMap {\n const tags: TagsInfoMap = {};\n\n for (const tag of spec.tags || []) {\n tags[tag.name] = { ...tag,\n operations: []\n };\n }\n\n getTags(spec.paths);\n\n if (spec['x-webhooks']) {\n getTags(spec['x-webhooks'], true);\n }\n\n function getTags(paths: OpenAPIPaths, isWebhook?: boolean) {\n for (const pathName of Object.keys(paths)) {\n const path = paths[pathName];\n const operations = Object.keys(path).filter(isOperationName);\n\n for (const operationName of operations) {\n const operationInfo = path[operationName];\n let operationTags = operationInfo.tags;\n\n if (!operationTags || !operationTags.length) {\n // empty tag\n operationTags = [''];\n }\n\n for (const tagName of operationTags) {\n let tag = tags[tagName];\n\n if (tag === undefined) {\n tag = {\n name: tagName,\n operations: []\n };\n tags[tagName] = tag;\n }\n\n if (tag['x-traitTag']) {\n continue;\n }\n\n tag.operations.push({ ...operationInfo,\n pathName,\n pointer: JsonPointer.compile(['paths', pathName, operationName]),\n httpVerb: operationName,\n pathParameters: path.parameters || [],\n pathServers: path.servers,\n isWebhook: !!isWebhook\n });\n }\n }\n }\n }\n\n return tags;\n }\n\n}","import { action, observable } from 'mobx';\nimport { flattenByProp, SECURITY_SCHEMES_SECTION_PREFIX } from '../utils';\nimport { querySelector } from '../utils/dom';\nimport { history as historyInst, HistoryService } from './HistoryService';\nimport { GROUP_DEPTH } from './MenuBuilder';\nimport { SpecStore } from './models';\nimport { ScrollService } from './ScrollService';\nimport { ExtraContent } from './models/ExtraContent';\nimport { MarkdownIndex } from '../markdown';\nexport type MenuItemGroupType = 'group' | 'tag' | 'section' | 'extra';\nexport type MenuItemType = MenuItemGroupType | 'operation';\n/** Generic interface for MenuItems */\n\nexport interface IMenuItem {\n id: string;\n absoluteIdx?: number;\n name: string;\n description?: string;\n depth: number;\n active: boolean;\n expanded: boolean;\n items: IMenuItem[];\n parent?: IMenuItem;\n deprecated?: boolean;\n type: MenuItemType;\n deactivate(): void;\n activate(): void;\n collapse(): void;\n expand(): void;\n}\nexport const SECTION_ATTR = 'data-section-id';\n/**\n * Stores all side-menu related information\n */\n\nexport class MenuStore {\n /**\n * Statically try update scroll position\n * Used before hydrating from server-side rendered html to scroll page faster\n */\n static updateOnHistory(id: string = historyInst.currentId, scroll: ScrollService) {\n if (!id) {\n return;\n }\n\n scroll.scrollIntoViewBySelector(`[${SECTION_ATTR}=\"${id}\"]`);\n }\n /**\n * active item absolute index (when flattened). -1 means nothing is selected\n */\n\n\n @observable\n activeItemIdx: number = -1;\n /**\n * whether sidebar with menu is opened or not\n */\n\n @observable\n sideBarOpened: boolean = false;\n items: IMenuItem[];\n flatItems: IMenuItem[];\n /**\n * cached flattened menu items to support absolute indexing\n */\n\n private _unsubscribe: () => void;\n private _hashUnsubscribe: () => void;\n /**\n *\n * @param spec [SpecStore](#SpecStore) which contains page content structure\n * @param scroll scroll service instance used by this menu\n */\n\n constructor(spec: SpecStore, public scroll: ScrollService, public history: HistoryService, markdownIndex?: MarkdownIndex) {\n const {\n headings: extraHeadings\n } = markdownIndex || {};\n const extraItems = extraHeadings ? extraHeadings.map(({\n id,\n text,\n depth\n }) => new ExtraContent({\n id,\n name: text,\n depth\n })) : [];\n this.items = [...extraItems, ...spec.contentItems];\n this.flatItems = flattenByProp(this.items || [], 'items');\n this.flatItems.forEach((item, idx) => item.absoluteIdx = idx);\n this.subscribe();\n }\n\n subscribe() {\n this._unsubscribe = this.scroll.subscribe(this.updateOnScroll);\n this._hashUnsubscribe = this.history.subscribe(this.updateOnHistory);\n }\n\n @action\n toggleSidebar() {\n this.sideBarOpened = this.sideBarOpened ? false : true;\n }\n\n @action\n closeSidebar() {\n this.sideBarOpened = false;\n }\n /**\n * update active items on scroll\n * @param isScrolledDown whether last scroll was downside\n */\n\n\n updateOnScroll = (isScrolledDown: boolean): void => {\n const step = isScrolledDown ? 1 : -1;\n let itemIdx = this.activeItemIdx;\n\n while (true) {\n if (itemIdx === -1 && !isScrolledDown) {\n break;\n }\n\n if (itemIdx >= this.flatItems.length - 1 && isScrolledDown) {\n break;\n }\n\n if (isScrolledDown) {\n const el = this.getElementAtOrFirstChild(itemIdx + 1);\n\n if (this.scroll.isElementBellow(el)) {\n break;\n }\n } else {\n const el = this.getElementAt(itemIdx);\n\n if (this.scroll.isElementAbove(el)) {\n break;\n }\n }\n\n itemIdx += step;\n }\n\n this.activate(this.flatItems[itemIdx], true, true);\n };\n /**\n * update active items on hash change\n * @param id current hash\n */\n\n updateOnHistory = (id: string = this.history.currentId) => {\n if (!id) {\n return;\n }\n\n let item: IMenuItem | undefined;\n item = this.flatItems.find(i => i.id === id);\n\n if (item) {\n this.activateAndScroll(item, false);\n } else {\n if (id.startsWith(SECURITY_SCHEMES_SECTION_PREFIX)) {\n item = this.flatItems.find(i => SECURITY_SCHEMES_SECTION_PREFIX.startsWith(i.id));\n this.activate(item);\n }\n\n this.scroll.scrollIntoViewBySelector(`[${SECTION_ATTR}=\"${id}\"]`);\n }\n };\n /**\n * get section/operation DOM Node related to the item or null if it doesn't exist\n * @param idx item absolute index\n */\n\n getElementAt(idx: number): Element | null {\n const item = this.flatItems[idx];\n return item && querySelector(`[${SECTION_ATTR}=\"${item.id}\"]`) || null;\n }\n /**\n * get section/operation DOM Node related to the item or if it is group item, returns first item of the group\n * @param idx item absolute index\n */\n\n\n getElementAtOrFirstChild(idx: number): Element | null {\n let item = this.flatItems[idx];\n\n if (item && item.type === 'group') {\n item = item.items[0];\n }\n\n return item && querySelector(`[${SECTION_ATTR}=\"${item.id}\"]`) || null;\n }\n /**\n * current active item\n */\n\n\n get activeItem(): IMenuItem {\n return this.flatItems[this.activeItemIdx] || undefined;\n }\n\n getItemById = (id: string) => {\n return this.flatItems.find(item => item.id === id);\n };\n /**\n * activate menu item\n * @param item item to activate\n * @param updateLocation [true] whether to update location\n * @param rewriteHistory [false] whether to rewrite browser history (do not create new entry)\n */\n\n @action\n activate(item: IMenuItem | undefined, updateLocation: boolean = true, rewriteHistory: boolean = false) {\n if ((this.activeItem && this.activeItem.id) === (item && item.id)) {\n return;\n }\n\n if (item && item.type === 'group') {\n return;\n }\n\n this.deactivate(this.activeItem);\n\n if (!item) {\n this.history.replace('', rewriteHistory);\n return;\n } // do not allow activating group items\n // TODO: control over options\n\n\n if (item.depth <= GROUP_DEPTH) {\n return;\n }\n\n this.activeItemIdx = item.absoluteIdx!;\n\n if (updateLocation) {\n this.history.replace(item.id, rewriteHistory);\n }\n\n item.activate();\n item.expand();\n }\n /**\n * makes item and all the parents not active\n * @param item item to deactivate\n */\n\n\n deactivate(item: IMenuItem | undefined) {\n if (item === undefined) {\n return;\n }\n\n item.deactivate();\n\n while (item !== undefined) {\n item.collapse();\n item = item.parent;\n }\n }\n /**\n * activate menu item and scroll to it\n * @see MenuStore.activate\n */\n\n\n @action.bound\n activateAndScroll(item: IMenuItem | undefined, updateLocation?: boolean, rewriteHistory?: boolean) {\n // item here can be a copy from search results so find corresponding item from menu\n const menuItem = item && this.getItemById(item.id) || item;\n this.activate(menuItem, updateLocation, rewriteHistory);\n this.scrollToActive();\n\n if (!menuItem || !menuItem.items.length) {\n this.closeSidebar();\n }\n }\n /**\n * scrolls to active section\n */\n\n\n scrollToActive(): void {\n this.scroll.scrollIntoView(this.getElementAt(this.activeItemIdx));\n }\n\n dispose() {\n this._unsubscribe();\n\n this._hashUnsubscribe();\n }\n\n}","import { bind } from 'decko';\nimport * as EventEmitter from 'eventemitter3';\nimport { IS_BROWSER, querySelector, Throttle } from '../utils';\nimport { RedocNormalizedOptions } from './RedocNormalizedOptions';\nconst EVENT = 'scroll';\nexport class ScrollService {\n private _scrollParent: Window | HTMLElement | undefined;\n private _emiter: EventEmitter;\n private _prevOffsetY = 0;\n\n constructor(private options: RedocNormalizedOptions) {\n this._scrollParent = IS_BROWSER ? window : undefined;\n this._emiter = new EventEmitter();\n this.bind();\n }\n\n bind() {\n this._prevOffsetY = this.scrollY();\n\n if (this._scrollParent) {\n this._scrollParent.addEventListener('scroll', this.handleScroll);\n }\n }\n\n dispose() {\n if (this._scrollParent) {\n this._scrollParent.removeEventListener('scroll', this.handleScroll);\n }\n\n this._emiter.removeAllListeners(EVENT);\n }\n\n scrollY(): number {\n if (typeof HTMLElement !== 'undefined' && this._scrollParent instanceof HTMLElement) {\n return this._scrollParent.scrollTop;\n } else if (this._scrollParent !== undefined) {\n return (this._scrollParent as Window).pageYOffset;\n } else {\n return 0;\n }\n }\n\n isElementBellow(el: Element | null) {\n if (el === null) {\n return;\n }\n\n return el.getBoundingClientRect().top > this.options.scrollYOffset();\n }\n\n isElementAbove(el: Element | null) {\n if (el === null) {\n return;\n }\n\n const top = el.getBoundingClientRect().top;\n return (top > 0 ? Math.floor(top) : Math.ceil(top)) <= this.options.scrollYOffset();\n }\n\n subscribe(cb): () => void {\n const emmiter = this._emiter.addListener(EVENT, cb);\n\n return () => emmiter.removeListener(EVENT, cb);\n }\n\n scrollIntoView(element: Element | null) {\n if (element === null) {\n return;\n }\n\n element.scrollIntoView();\n\n if (this._scrollParent && this._scrollParent.scrollBy) {\n // adding 1 account rounding errors in case scrollYOffset is float-number\n (this._scrollParent.scrollBy as any)(0, -this.options.scrollYOffset() + 1);\n }\n }\n\n scrollIntoViewBySelector(selector: string) {\n const element = querySelector(selector);\n this.scrollIntoView(element);\n }\n\n @bind\n @Throttle(100)\n handleScroll() {\n const scrollY = this.scrollY();\n const isScrolledDown = scrollY - this._prevOffsetY > 0;\n this._prevOffsetY = this.scrollY();\n\n this._emiter.emit(EVENT, isScrolledDown);\n }\n\n}","import { IS_BROWSER } from '../utils/';\nimport { IMenuItem } from './MenuStore';\nimport { OperationModel } from './models';\nimport Worker from './SearchWorker.worker';\n\nfunction getWorker() {\n let worker: new () => Worker;\n\n if (IS_BROWSER) {\n try {\n // tslint:disable-next-line\n worker = require('workerize-loader?inline&fallback=false!./SearchWorker.worker');\n } catch (e) {\n worker = require('./SearchWorker.worker').default;\n }\n } else {\n worker = require('./SearchWorker.worker').default;\n }\n\n return new worker();\n}\n\nexport class SearchStore {\n searchWorker = getWorker();\n\n indexItems(groups: Array) {\n const recurse = items => {\n items.forEach(group => {\n if (group.type !== 'group') {\n this.add(group.name, group.description || '', group.id);\n }\n\n recurse(group.items);\n });\n };\n\n recurse(groups);\n this.searchWorker.done();\n }\n\n add(title: string, body: string, meta?: T) {\n this.searchWorker.add(title, body, meta);\n }\n\n dispose() {\n (this.searchWorker as any).terminate();\n (this.searchWorker as any).dispose();\n }\n\n search(q: string) {\n return this.searchWorker.search(q);\n }\n\n async toJS() {\n return this.searchWorker.toJS();\n }\n\n load(state: any) {\n this.searchWorker.load(state);\n }\n\n}","import { SECTION_ATTR } from '../services/MenuStore';\nimport styled, { media } from '../styled-components';\nexport const MiddlePanel = styled.div<{\n compact?: boolean;\n}>`\n width: calc(100% - ${props => props.theme.rightPanel.width});\n padding: 0 ${props => props.theme.spacing.sectionHorizontal}px;\n\n ${({\n compact,\n theme\n}) => media.lessThan('medium', true)`\n width: 100%;\n padding: ${`${compact ? 0 : theme.spacing.sectionVertical}px ${theme.spacing.sectionHorizontal}px`};\n `};\n`;\nexport const Section = styled.div.attrs(props => ({\n [SECTION_ATTR]: props.id\n}))<{\n underlined?: boolean;\n}>`\n padding: ${props => props.theme.spacing.sectionVertical}px 0;\n\n &:last-child {\n min-height: calc(100vh + 1px);\n }\n\n & > &:last-child {\n min-height: initial;\n }\n\n ${media.lessThan('medium', true)`\n padding: 0;\n `}\n ${(props: any) => props.underlined && `\n position: relative;\n\n &:not(:last-of-type):after {\n position: absolute;\n bottom: 0;\n width: 100%;\n display: block;\n content: '';\n border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n }\n ` || ''}\n`;\nexport const RightPanel = styled.div`\n width: ${props => props.theme.rightPanel.width};\n color: ${({\n theme\n}) => theme.rightPanel.textColor};\n background-color: ${props => props.theme.rightPanel.backgroundColor};\n padding: 0 ${props => props.theme.spacing.sectionHorizontal}px;\n\n ${media.lessThan('medium', true)`\n width: 100%;\n padding: ${props => `${props.theme.spacing.sectionVertical}px ${props.theme.spacing.sectionHorizontal}px`};\n `};\n`;\nexport const DarkRightPanel = styled(RightPanel)`\n background-color: ${props => props.theme.rightPanel.backgroundColor};\n`;\nexport const Row = styled.div`\n display: flex;\n width: 100%;\n padding: 0;\n\n ${media.lessThan('medium', true)`\n flex-direction: column;\n `};\n`;","import styled, { css, extensionsHook } from '../styled-components';\nconst headerFontSize = {\n 1: '1.85714em',\n 2: '1.57143em',\n 3: '1.27em'\n};\nexport const headerCommonMixin = level => css`\n font-family: ${({\n theme\n}) => theme.typography.headings.fontFamily};\n font-weight: ${({\n theme\n}) => theme.typography.headings.fontWeight};\n font-size: ${headerFontSize[level]};\n line-height: ${({\n theme\n}) => theme.typography.headings.lineHeight};\n`;\nexport const H1 = styled.h1`\n ${headerCommonMixin(1)};\n color: ${({\n theme\n}) => theme.colors.primary.main};\n\n ${extensionsHook('H1')};\n`;\nexport const H2 = styled.h2`\n ${headerCommonMixin(2)};\n color: black;\n\n ${extensionsHook('H2')};\n`;\nexport const H3 = styled.h2`\n ${headerCommonMixin(3)};\n color: black;\n\n ${extensionsHook('H3')};\n`;\nexport const RightPanelHeader = styled.h3`\n color: ${({\n theme\n}) => theme.rightPanel.textColor};\n\n ${extensionsHook('RightPanelHeader')};\n`;\nexport const UnderlinedHeader = styled.h5`\n border-bottom: 1px solid rgba(38, 50, 56, 0.3);\n margin: 1em 0 1em 0;\n color: rgba(38, 50, 56, 0.5);\n font-weight: normal;\n text-transform: uppercase;\n font-size: 0.929em;\n line-height: 20px;\n\n ${extensionsHook('UnderlinedHeader')};\n`;","import * as memoize from 'memoize-one/dist/memoize-one.cjs'; // fixme: https://github.com/alexreardon/memoize-one/issues/37\n\nimport { Component, createContext } from 'react';\nimport { AppStore } from '../services/';\nimport { RedocRawOptions } from '../services/RedocNormalizedOptions';\nimport { loadAndBundleSpec } from '../utils';\nexport interface StoreBuilderProps {\n specUrl?: string;\n spec?: object;\n store?: AppStore;\n options?: RedocRawOptions;\n onLoaded?: (e?: Error) => void;\n children: (props: {\n loading: boolean;\n store?: AppStore;\n }) => any;\n}\nexport interface StoreBuilderState {\n error?: Error;\n loading: boolean;\n resolvedSpec?: any;\n prevSpec?: any;\n prevSpecUrl?: string;\n}\nconst {\n Provider,\n Consumer\n} = createContext(undefined);\nexport { Provider as StoreProvider, Consumer as StoreConsumer };\nexport class StoreBuilder extends Component {\n static getDerivedStateFromProps(nextProps: StoreBuilderProps, prevState: StoreBuilderState) {\n if (nextProps.specUrl !== prevState.prevSpecUrl || nextProps.spec !== prevState.prevSpec) {\n return {\n loading: true,\n resolvedSpec: null,\n prevSpec: nextProps.spec,\n prevSpecUrl: nextProps.specUrl\n };\n }\n\n return null;\n }\n\n state: StoreBuilderState = {\n loading: true,\n resolvedSpec: null\n };\n\n @memoize\n makeStore(spec, specUrl, options) {\n if (!spec) {\n return undefined;\n }\n\n try {\n return new AppStore(spec, specUrl, options);\n } catch (e) {\n if (this.props.onLoaded) {\n this.props.onLoaded(e);\n }\n\n throw e;\n }\n }\n\n componentDidMount() {\n this.load();\n }\n\n componentDidUpdate() {\n if (this.state.resolvedSpec === null) {\n this.load();\n } else if (!this.state.loading && this.props.onLoaded) {\n // may run multiple time\n this.props.onLoaded();\n }\n }\n\n async load() {\n const {\n specUrl,\n spec\n } = this.props;\n\n try {\n const resolvedSpec = await loadAndBundleSpec(spec || specUrl!);\n this.setState({\n resolvedSpec,\n loading: false\n });\n } catch (e) {\n if (this.props.onLoaded) {\n this.props.onLoaded(e);\n }\n\n this.setState({\n error: e\n });\n }\n }\n\n render() {\n if (this.state.error) {\n throw this.state.error;\n }\n\n const {\n specUrl,\n options\n } = this.props;\n const {\n loading,\n resolvedSpec\n } = this.state;\n return this.props.children({\n loading,\n store: this.makeStore(resolvedSpec, specUrl, options)\n });\n }\n\n}","import * as React from 'react';\nimport { StoreConsumer } from '../components/StoreBuilder';\nimport styled, { css } from '../styled-components';\nimport { HistoryService } from '../services'; // tslint:disable-next-line\n\nexport const linkifyMixin = className => css`\n ${className} {\n cursor: pointer;\n margin-left: -20px;\n padding: 0;\n line-height: 1;\n width: 20px;\n display: inline-block;\n outline: 0;\n }\n ${className}:before {\n content: '';\n width: 15px;\n height: 15px;\n background-size: contain;\n background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMCIgeT0iMCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA1MTIgNTEyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48cGF0aCBmaWxsPSIjMDEwMTAxIiBkPSJNNDU5LjcgMjMzLjRsLTkwLjUgOTAuNWMtNTAgNTAtMTMxIDUwLTE4MSAwIC03LjktNy44LTE0LTE2LjctMTkuNC0yNS44bDQyLjEtNDIuMWMyLTIgNC41LTMuMiA2LjgtNC41IDIuOSA5LjkgOCAxOS4zIDE1LjggMjcuMiAyNSAyNSA2NS42IDI0LjkgOTAuNSAwbDkwLjUtOTAuNWMyNS0yNSAyNS02NS42IDAtOTAuNSAtMjQuOS0yNS02NS41LTI1LTkwLjUgMGwtMzIuMiAzMi4yYy0yNi4xLTEwLjItNTQuMi0xMi45LTgxLjYtOC45bDY4LjYtNjguNmM1MC01MCAxMzEtNTAgMTgxIDBDNTA5LjYgMTAyLjMgNTA5LjYgMTgzLjQgNDU5LjcgMjMzLjR6TTIyMC4zIDM4Mi4ybC0zMi4yIDMyLjJjLTI1IDI0LjktNjUuNiAyNC45LTkwLjUgMCAtMjUtMjUtMjUtNjUuNiAwLTkwLjVsOTAuNS05MC41YzI1LTI1IDY1LjUtMjUgOTAuNSAwIDcuOCA3LjggMTIuOSAxNy4yIDE1LjggMjcuMSAyLjQtMS40IDQuOC0yLjUgNi44LTQuNWw0Mi4xLTQyYy01LjQtOS4yLTExLjYtMTgtMTkuNC0yNS44IC01MC01MC0xMzEtNTAtMTgxIDBsLTkwLjUgOTAuNWMtNTAgNTAtNTAgMTMxIDAgMTgxIDUwIDUwIDEzMSA1MCAxODEgMGw2OC42LTY4LjZDMjc0LjYgMzk1LjEgMjQ2LjQgMzkyLjMgMjIwLjMgMzgyLjJ6Ii8+PC9zdmc+Cg==');\n opacity: 0.5;\n visibility: hidden;\n display: inline-block;\n vertical-align: middle;\n }\n\n h1:hover > ${className}::before, h2:hover > ${className}::before, ${className}:hover::before {\n visibility: visible;\n }\n`;\n\nconst isModifiedEvent = event => !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n\nexport class Link extends React.Component<{\n to: string;\n className?: string;\n children?: any;\n}> {\n navigate = (history: HistoryService, event) => {\n if (!event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n history.replace(this.props.to);\n }\n };\n\n render() {\n return \n {store => \n {this.props.children}\n }\n ;\n }\n\n}\nconst StyledShareLink = styled(Link)`\n ${linkifyMixin('&')};\n`;\nexport function ShareLink(props: {\n to: string;\n}) {\n return ;\n}","import * as React from 'react';\nimport styled from '../styled-components';\nconst directionMap = {\n left: '90deg',\n right: '-90deg',\n up: '-180deg',\n down: '0'\n};\n\nclass IntShelfIcon extends React.PureComponent<{\n className?: string;\n float?: 'left' | 'right';\n size?: string;\n color?: string;\n direction: 'left' | 'right' | 'up' | 'down';\n style?: React.CSSProperties;\n}> {\n render() {\n return \n \n ;\n }\n\n}\n\nexport const ShelfIcon = styled(IntShelfIcon)`\n height: ${props => props.size || '18px'};\n width: ${props => props.size || '18px'};\n vertical-align: middle;\n float: ${props => props.float || ''};\n transition: transform 0.2s ease-out;\n transform: rotateZ(${props => directionMap[props.direction || 'down']});\n\n polygon {\n fill: ${props => props.color && props.theme.colors[props.color] && props.theme.colors[props.color].main || props.color};\n }\n`;\nexport const Badge = styled.span<{\n type: string;\n}>`\n display: inline-block;\n padding: 2px 8px;\n margin: 0;\n background-color: ${props => props.theme.colors[props.type].main};\n color: ${props => props.theme.colors[props.type].contrastText};\n font-size: ${props => props.theme.typography.code.fontSize};\n vertical-align: middle;\n line-height: 1.6;\n border-radius: 4px;\n font-weight: ${({\n theme\n}) => theme.typography.fontWeightBold};\n font-size: 12px;\n + span[type] {\n margin-left: 4px;\n }\n`;","import { css } from '../styled-components';\nexport const deprecatedCss = css`\n text-decoration: line-through;\n color: #bdccd3;\n`;","// import { transparentize } from 'polished';\nimport styled, { extensionsHook } from '../styled-components';\nimport { deprecatedCss } from './mixins';\nexport const PropertiesTableCaption = styled.caption`\n text-align: right;\n font-size: 0.9em;\n font-weight: normal;\n color: ${props => props.theme.colors.text.secondary};\n`;\nexport const PropertyCell = styled.td<{\n kind?: string;\n}>`\n border-left: 1px solid ${props => props.theme.schema.linesColor};\n box-sizing: border-box;\n position: relative;\n padding: 10px 10px 10px 0;\n\n tr:first-of-type > &,\n tr.last > & {\n border-left-width: 0;\n background-position: top left;\n background-repeat: no-repeat;\n background-size: 1px 100%;\n }\n\n tr:first-of-type > & {\n background-image: linear-gradient(\n to bottom,\n transparent 0%,\n transparent 22px,\n ${props => props.theme.schema.linesColor} 22px,\n ${props => props.theme.schema.linesColor} 100%\n );\n }\n\n tr.last > & {\n background-image: linear-gradient(\n to bottom,\n ${props => props.theme.schema.linesColor} 0%,\n ${props => props.theme.schema.linesColor} 22px,\n transparent 22px,\n transparent 100%\n );\n }\n\n tr.last + tr > & {\n border-left-color: transparent;\n }\n\n tr.last:first-child > & {\n background: none;\n border-left-color: transparent;\n }\n`;\nexport const PropertyCellWithInner = styled(PropertyCell)`\n padding: 0;\n`;\nexport const PropertyNameCell = styled(PropertyCell)`\n vertical-align: top;\n line-height: 20px;\n white-space: nowrap;\n font-size: 13px;\n font-family: ${props => props.theme.typography.code.fontFamily};\n\n &.deprecated {\n ${deprecatedCss};\n }\n\n ${({\n kind\n}) => kind !== 'field' ? 'font-style: italic' : ''};\n\n ${extensionsHook('PropertyNameCell')};\n`;\nexport const PropertyDetailsCell = styled.td`\n border-bottom: 1px solid #9fb4be;\n padding: 10px 0;\n width: ${props => props.theme.schema.defaultDetailsWidth};\n box-sizing: border-box;\n\n tr.expanded & {\n border-bottom: none;\n }\n`;\nexport const PropertyBullet = styled.span`\n color: ${props => props.theme.schema.linesColor};\n font-family: ${props => props.theme.typography.code.fontFamily};\n margin-right: 10px;\n\n &::before {\n content: '';\n display: inline-block;\n vertical-align: middle;\n width: 10px;\n height: 1px;\n background: ${props => props.theme.schema.linesColor};\n }\n\n &::after {\n content: '';\n display: inline-block;\n vertical-align: middle;\n width: 1px;\n background: ${props => props.theme.schema.linesColor};\n height: 7px;\n }\n`;\nexport const InnerPropertiesWrap = styled.div`\n padding: ${({\n theme\n}) => theme.schema.nestingSpacing};\n`;\nexport const PropertiesTable = styled.table`\n border-collapse: separate;\n border-radius: 3px;\n font-size: ${props => props.theme.typography.fontSize};\n\n border-spacing: 0;\n width: 100%;\n\n > tr {\n vertical-align: middle;\n }\n\n &\n ${InnerPropertiesWrap},\n &\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap},\n &\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap} {\n margin: ${({\n theme\n}) => theme.schema.nestingSpacing};\n margin-right: 0;\n background: ${({\n theme\n}) => theme.schema.nestedBackground};\n }\n\n &\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap},\n &\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap},\n &\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap} {\n background: #ffffff;\n }\n`;","import styled from '../styled-components';\nimport { darken } from 'polished';\nexport const OneOfList = styled.div`\n margin: 0 0 3px 0;\n display: inline-block;\n`;\nexport const OneOfLabel = styled.span`\n font-size: 0.9em;\n margin-right: 10px;\n color: ${props => props.theme.colors.primary.main};\n font-family: ${props => props.theme.typography.headings.fontFamily};\n}\n`;\nexport const OneOfButton = styled.button<{\n active: boolean;\n}>`\n display: inline-block;\n margin-right: 10px;\n margin-bottom: 5px;\n font-size: 0.8em;\n cursor: pointer;\n border: 1px solid ${props => props.theme.colors.primary.main};\n padding: 2px 10px;\n line-height: 1.5em;\n outline: none;\n &:focus {\n box-shadow: 0 0 0 1px ${props => props.theme.colors.primary.main};\n }\n\n ${props => {\n if (props.active) {\n return `\n color: white;\n background-color: ${props.theme.colors.primary.main};\n &:focus {\n box-shadow: none;\n background-color: ${darken(0.15, props.theme.colors.primary.main)};\n }\n `;\n } else {\n return `\n color: ${props.theme.colors.primary.main};\n background-color: white;\n `;\n }\n}}\n`;\nexport const ArrayOpenningLabel = styled.div`\n font-size: 0.9em;\n font-family: ${props => props.theme.typography.code.fontFamily};\n &::after {\n content: ' [';\n }\n`;\nexport const ArrayClosingLabel = styled.div`\n font-size: 0.9em;\n font-family: ${props => props.theme.typography.code.fontFamily};\n &::after {\n content: ']';\n }\n`;","import Dropdown from 'react-dropdown-aria';\nimport styled from '../styled-components';\nexport interface DropdownOption {\n idx: number;\n value: string;\n}\nexport interface DropdownProps {\n options: DropdownOption[];\n value: string;\n onChange: (option: DropdownOption) => void;\n ariaLabel: string;\n}\nexport const StyledDropdown = styled(Dropdown)`\n && {\n box-sizing: border-box;\n min-width: 100px;\n outline: none;\n display: inline-block;\n border-radius: 2px;\n border: 1px solid rgba(38, 50, 56, 0.5);\n vertical-align: bottom;\n padding: 2px 0px 2px 6px;\n position: relative;\n width: auto;\n background: white;\n color: #263238;\n font-family: ${props => props.theme.typography.headings.fontFamily};\n font-size: 0.929em;\n line-height: 1.5em;\n cursor: pointer;\n transition: border 0.25s ease, color 0.25s ease, box-shadow 0.25s ease;\n &:hover,\n &:focus-within {\n border: 1px solid ${props => props.theme.colors.primary.main};\n color: ${props => props.theme.colors.primary.main};\n box-shadow: 0px 0px 0px 1px ${props => props.theme.colors.primary.main};\n }\n .dropdown-selector {\n display: inline-flex;\n padding: 0;\n height: auto;\n padding-right: 20px;\n position: relative;\n margin-bottom: 5px;\n }\n .dropdown-selector-value {\n font-family: ${props => props.theme.typography.headings.fontFamily};\n position: relative;\n font-size: 0.929em;\n width: 100%;\n line-height: 1;\n vertical-align: middle;\n color: #263238;\n left: 0;\n transition: color 0.25s ease, text-shadow 0.25s ease;\n }\n .dropdown-arrow {\n position: absolute;\n right: 3px;\n top: 50%;\n transform: translateY(-50%);\n border-color: ${props => props.theme.colors.primary.main} transparent transparent;\n border-style: solid;\n border-width: 0.35em 0.35em 0;\n width: 0;\n svg {\n display: none;\n }\n }\n\n .dropdown-selector-content {\n position: absolute;\n margin-top: 2px;\n left: -2px;\n right: 0;\n\n z-index: 10;\n min-width: 100px;\n\n background: white;\n border: 1px solid rgba(38, 50, 56, 0.2);\n box-shadow: 0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.08);\n\n max-height: 220px;\n overflow: auto;\n }\n\n .dropdown-option {\n font-size: 0.9em;\n color: #263238;\n cursor: pointer;\n padding: 0.4em;\n\n &[aria-selected='true'] {\n background-color: rgba(0, 0, 0, 0.05);\n }\n\n &:hover {\n background-color: rgba(38, 50, 56, 0.12);\n }\n }\n input {\n cursor: pointer;\n height: 1px;\n }\n }\n`;\nexport const SimpleDropdown = styled(StyledDropdown)`\n && {\n margin-left: 10px;\n text-transform: none;\n font-size: 0.969em;\n\n font-size: 1em;\n border: none;\n padding: 0 1.2em 0 0;\n background: transparent;\n\n &:hover,\n &:focus-within {\n border: none;\n box-shadow: none;\n .dropdown-selector-value {\n color: ${props => props.theme.colors.primary.main};\n text-shadow: 0px 0px 0px ${props => props.theme.colors.primary.main};\n }\n }\n }\n`;\nexport const MimeLabel = styled.span`\n margin-left: 10px;\n text-transform: none;\n font-size: 0.929em;\n color: black;\n`;","import { darken } from 'polished';\nimport { Tabs as ReactTabs } from 'react-tabs';\nimport styled from '../styled-components';\nexport { Tab, TabList, TabPanel } from 'react-tabs';\nexport const Tabs = styled(ReactTabs)`\n > ul {\n list-style: none;\n padding: 0;\n margin: 0;\n margin: 0 -5px;\n\n > li {\n padding: 5px 10px;\n display: inline-block;\n\n background-color: ${({\n theme\n}) => theme.codeBlock.backgroundColor};\n border-bottom: 1px solid rgba(0, 0, 0, 0.5);\n cursor: pointer;\n text-align: center;\n outline: none;\n color: ${({\n theme\n}) => darken(theme.colors.tonalOffset, theme.rightPanel.textColor)};\n margin: 0\n ${({\n theme\n}) => `${theme.spacing.unit}px ${theme.spacing.unit}px ${theme.spacing.unit}px`};\n border: 1px solid ${({\n theme\n}) => darken(0.05, theme.codeBlock.backgroundColor)};\n border-radius: 5px;\n min-width: 60px;\n font-size: 0.9em;\n font-weight: bold;\n\n &.react-tabs__tab--selected {\n color: ${props => props.theme.colors.text.primary};\n background: ${({\n theme\n}) => theme.rightPanel.textColor};\n &:focus {\n outline: auto;\n }\n }\n\n &:only-child {\n flex: none;\n min-width: 100px;\n }\n\n &.tab-success {\n color: ${props => props.theme.colors.responses.success.color};\n }\n\n &.tab-redirect {\n color: ${props => props.theme.colors.responses.redirect.color};\n }\n\n &.tab-info {\n color: ${props => props.theme.colors.responses.info.color};\n }\n\n &.tab-error {\n color: ${props => props.theme.colors.responses.error.color};\n }\n }\n }\n > .react-tabs__tab-panel {\n background: ${({\n theme\n}) => theme.codeBlock.backgroundColor};\n & > div,\n & > pre {\n padding: ${props => props.theme.spacing.unit * 4}px;\n margin: 0;\n }\n\n & > div > pre {\n padding: 0;\n }\n }\n`;\nexport const SmallTabs = styled(Tabs)`\n > ul {\n display: block;\n > li {\n padding: 2px 5px;\n min-width: auto;\n margin: 0 15px 0 0;\n font-size: 13px;\n font-weight: normal;\n border-bottom: 1px dashed;\n color: ${({\n theme\n}) => darken(theme.colors.tonalOffset, theme.rightPanel.textColor)};\n border-radius: 0;\n background: none;\n\n &:last-child {\n margin-right: 0;\n }\n\n &.react-tabs__tab--selected {\n color: ${({\n theme\n}) => theme.rightPanel.textColor};\n background: none;\n }\n }\n }\n > .react-tabs__tab-panel {\n & > div,\n & > pre {\n padding: ${props => props.theme.spacing.unit * 2}px 0;\n }\n }\n`;","import styled, { extensionsHook } from '../styled-components';\nexport const PrismDiv = styled.div`\n /**\n * Based on prism-dark.css\n */\n\n code[class*='language-'],\n pre[class*='language-'] {\n /* color: white;\n background: none; */\n text-shadow: 0 -0.1em 0.2em black;\n text-align: left;\n white-space: pre;\n word-spacing: normal;\n word-break: normal;\n word-wrap: normal;\n line-height: 1.5;\n\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n\n -webkit-hyphens: none;\n -moz-hyphens: none;\n -ms-hyphens: none;\n hyphens: none;\n }\n\n @media print {\n code[class*='language-'],\n pre[class*='language-'] {\n text-shadow: none;\n }\n }\n\n /* Code blocks */\n pre[class*='language-'] {\n padding: 1em;\n margin: 0.5em 0;\n overflow: auto;\n }\n\n .token.comment,\n .token.prolog,\n .token.doctype,\n .token.cdata {\n color: hsl(30, 20%, 50%);\n }\n\n .token.punctuation {\n opacity: 0.7;\n }\n\n .namespace {\n opacity: 0.7;\n }\n\n .token.property,\n .token.tag,\n .token.number,\n .token.constant,\n .token.symbol {\n color: #4a8bb3;\n }\n\n .token.boolean {\n color: firebrick;\n }\n\n .token.selector,\n .token.attr-name,\n .token.string,\n .token.char,\n .token.builtin,\n .token.inserted {\n color: #a0fbaa;\n & + a,\n & + a:visited {\n color: #4ed2ba;\n text-decoration: underline;\n }\n }\n\n .token.property.string {\n color: white;\n }\n\n .token.operator,\n .token.entity,\n .token.url,\n .token.variable {\n color: hsl(40, 90%, 60%);\n }\n\n .token.atrule,\n .token.attr-value,\n .token.keyword {\n color: hsl(350, 40%, 70%);\n }\n\n .token.regex,\n .token.important {\n color: #e90;\n }\n\n .token.important,\n .token.bold {\n font-weight: bold;\n }\n .token.italic {\n font-style: italic;\n }\n\n .token.entity {\n cursor: help;\n }\n\n .token.deleted {\n color: red;\n }\n\n ${extensionsHook('Prism')};\n`;","import styled from '../styled-components';\nimport { PrismDiv } from './PrismDiv';\nexport const SampleControls = styled.div`\n opacity: 0.4;\n transition: opacity 0.3s ease;\n text-align: right;\n &:focus-within {\n opacity: 1;\n }\n > button {\n background-color: transparent;\n border: 0;\n color: inherit;\n padding: 2px 10px;\n font-family: ${({\n theme\n}) => theme.typography.fontFamily};\n font-size: ${({\n theme\n}) => theme.typography.fontSize};\n line-height: ${({\n theme\n}) => theme.typography.lineHeight};\n cursor: pointer;\n outline: 0;\n\n :hover,\n :focus {\n background: rgba(255, 255, 255, 0.1);\n }\n }\n`;\nexport const SampleControlsWrap = styled.div`\n &:hover ${SampleControls} {\n opacity: 1;\n }\n`;\nexport const StyledPre = styled(PrismDiv.withComponent('pre'))`\n font-family: ${props => props.theme.typography.code.fontFamily};\n font-size: ${props => props.theme.typography.code.fontSize};\n overflow-x: auto;\n margin: 0;\n\n white-space: ${({\n theme\n}) => theme.typography.code.wrap ? 'pre-wrap' : 'pre'};\n`;","import * as React from 'react';\nimport PerfectScrollbarType, * as PerfectScrollbarNamespace from 'perfect-scrollbar';\nimport { OptionsContext } from '../components/OptionsProvider';\nimport styled from '../styled-components';\n/*\n * perfect scrollbar umd bundle uses exports assignment while module uses default export\n * so when bundled with webpack default export works but with jest it crashes\n * That's why the following ugly fix is required\n */\n\nconst PerfectScrollbarConstructor = PerfectScrollbarNamespace.default || ((PerfectScrollbarNamespace as any) as PerfectScrollbarType); // const PSStyling = createGlobalStyle`${require('perfect-scrollbar/css/perfect-scrollbar.css').toString()}`;\n\nconst StyledScrollWrapper = styled.div`\n position: relative;\n`;\nexport interface PerfectScrollbarProps {\n options?: PerfectScrollbarType.Options;\n className?: string;\n updateFn?: (fn) => void;\n}\nexport class PerfectScrollbar extends React.Component {\n private _container: HTMLElement;\n private inst: PerfectScrollbarType;\n\n componentDidMount() {\n const offset = this._container.parentElement && this._container.parentElement.scrollTop || 0;\n this.inst = new PerfectScrollbarConstructor(this._container, this.props.options || {});\n\n if (this._container.scrollTo) {\n this._container.scrollTo(0, offset);\n }\n }\n\n componentDidUpdate() {\n this.inst.update();\n }\n\n componentWillUnmount() {\n this.inst.destroy();\n }\n\n handleRef = ref => {\n this._container = ref;\n };\n\n render() {\n const {\n children,\n className,\n updateFn\n } = this.props;\n\n if (updateFn) {\n updateFn(this.componentDidUpdate.bind(this));\n }\n\n return <>\n {\n /* */\n }\n \n {children}\n \n ;\n }\n\n}\nexport function PerfectScrollbarWrap(props: PerfectScrollbarProps & {\n children: JSX.Element[] | JSX.Element;\n}) {\n return \n {options => !options.nativeScrollbars ? {props.children} :
\n {props.children}\n
}\n
;\n}","import styled from '../styled-components';\ntype FlexProps = {\n justifyContent?: string;\n};\nexport const Flex = styled.div.attrs((props: FlexProps) => ({\n justifyContent: props.justifyContent\n}))`\n display: flex;\n justify-content: ${props => props.justifyContent};\n width: 100%;\n`;\nexport const HFlex = styled(Flex)`\n flex-direction: row;\n`;\nexport const VFlex = styled(Flex)`\n flex-direction: column;\n`;","export * from './panels';\nexport * from './headers';\nexport * from './linkify';\nexport * from './shelfs';\nexport * from './fields-layout';\nexport * from './schema';\nexport * from './dropdown';\nexport * from './mixins';\nexport * from './tabs';\nexport * from './samples';\nexport * from './perfect-scrollbar';\nexport * as Flex from './flex';","import * as React from 'react';\nimport { DropdownProps, MimeLabel, SimpleDropdown } from '../../common-elements/dropdown';\nexport interface DropdownOrLabelProps extends DropdownProps {\n Label?: React.ComponentClass;\n Dropdown?: React.ComponentClass;\n}\nexport function DropdownOrLabel(props: DropdownOrLabelProps): JSX.Element {\n const {\n Label = MimeLabel,\n Dropdown = SimpleDropdown\n } = props;\n\n if (props.options.length === 1) {\n return ;\n }\n\n return ;\n}","import { headerCommonMixin, linkifyMixin } from '../../common-elements';\nimport { PrismDiv } from '../../common-elements/PrismDiv';\nimport styled, { css, extensionsHook, ResolvedThemeInterface } from '../../styled-components';\nimport { StyledComponent } from 'styled-components';\nexport const linksCss = css`\n a {\n text-decoration: none;\n color: ${props => props.theme.typography.links.color};\n\n &:visited {\n color: ${props => props.theme.typography.links.visited};\n }\n\n &:hover {\n color: ${props => props.theme.typography.links.hover};\n }\n }\n`;\nexport const StyledMarkdownBlock = styled((PrismDiv as StyledComponent<'div', ResolvedThemeInterface, {\n compact?: boolean;\n inline?: boolean;\n}>))`\n\n font-family: ${props => props.theme.typography.fontFamily};\n font-weight: ${props => props.theme.typography.fontWeightRegular};\n line-height: ${props => props.theme.typography.lineHeight};\n\n p {\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n ${({\n compact\n}) => compact && `\n p:first-child {\n margin-top: 0;\n }\n p:last-child {\n margin-bottom: 0;\n }\n `}\n\n ${({\n inline\n}) => inline && ` p {\n display: inline-block;\n }`}\n\n h1 {\n ${headerCommonMixin(1)};\n color: ${props => props.theme.colors.primary.main};\n margin-top: 0;\n }\n\n h2 {\n ${headerCommonMixin(2)};\n color: ${props => props.theme.colors.text.primary};\n }\n\n code {\n color: ${({\n theme\n}) => theme.typography.code.color};\n background-color: ${({\n theme\n}) => theme.typography.code.backgroundColor};\n\n font-family: ${props => props.theme.typography.code.fontFamily};\n border-radius: 2px;\n border: 1px solid rgba(38, 50, 56, 0.1);\n padding: 0 ${({\n theme\n}) => theme.spacing.unit}px;\n font-size: ${props => props.theme.typography.code.fontSize};\n font-weight: ${({\n theme\n}) => theme.typography.code.fontWeight};\n\n word-break: break-word;\n }\n\n pre {\n font-family: ${props => props.theme.typography.code.fontFamily};\n white-space:${({\n theme\n}) => theme.typography.code.wrap ? 'pre-wrap' : 'pre'};\n background-color: ${({\n theme\n}) => theme.codeBlock.backgroundColor};\n color: white;\n padding: ${props => props.theme.spacing.unit * 4}px;\n overflow-x: auto;\n line-height: normal;\n border-radius: 0px\n border: 1px solid rgba(38, 50, 56, 0.1);\n\n code {\n background-color: transparent;\n color: white;\n padding: 0;\n\n &:before,\n &:after {\n content: none;\n }\n }\n }\n\n blockquote {\n margin: 0;\n margin-bottom: 1em;\n padding: 0 15px;\n color: #777;\n border-left: 4px solid #ddd;\n }\n\n img {\n max-width: 100%;\n box-sizing: content-box;\n }\n\n ul,\n ol {\n padding-left: 2em;\n margin: 0;\n margin-bottom: 1em;\n\n ul, ol {\n margin-bottom: 0;\n margin-top: 0;\n }\n }\n\n table {\n display: block;\n width: 100%;\n overflow: auto;\n word-break: normal;\n word-break: keep-all;\n border-collapse: collapse;\n border-spacing: 0;\n margin-top: 1.5em;\n margin-bottom: 1.5em;\n }\n\n table tr {\n background-color: #fff;\n border-top: 1px solid #ccc;\n\n &:nth-child(2n) {\n background-color: ${({\n theme\n}) => theme.schema.nestedBackground};\n }\n }\n\n table th,\n table td {\n padding: 6px 13px;\n border: 1px solid #ddd;\n }\n\n table th {\n text-align: left;\n font-weight: bold;\n }\n\n ${linkifyMixin('.share-link')};\n\n ${linksCss}\n\n ${extensionsHook('Markdown')};\n`;","import * as DOMPurify from 'dompurify';\nimport * as React from 'react';\nimport { OptionsConsumer } from '../OptionsProvider';\nimport { StylingMarkdownProps } from './Markdown';\nimport { StyledMarkdownBlock } from './styled.elements';\nconst StyledMarkdownSpan = StyledMarkdownBlock.withComponent('span');\n\nconst sanitize = (untrustedSpec, html) => untrustedSpec ? DOMPurify.sanitize(html) : html;\n\nexport function SanitizedMarkdownHTML(props: StylingMarkdownProps & {\n html: string;\n className?: string;\n 'data-role'?: string;\n}) {\n const Wrap = props.inline ? StyledMarkdownSpan : StyledMarkdownBlock;\n return \n {options => }\n ;\n}","import * as React from 'react';\nimport { MarkdownRenderer } from '../../services';\nimport { SanitizedMarkdownHTML } from './SanitizedMdBlock';\nexport interface StylingMarkdownProps {\n compact?: boolean;\n inline?: boolean;\n}\nexport interface BaseMarkdownProps {\n sanitize?: boolean;\n source: string;\n}\nexport type MarkdownProps = BaseMarkdownProps & StylingMarkdownProps & {\n source: string;\n className?: string;\n 'data-role'?: string;\n};\nexport class Markdown extends React.Component {\n render() {\n const {\n source,\n inline,\n compact,\n className,\n 'data-role': dataRole\n } = this.props;\n const renderer = new MarkdownRenderer();\n return ;\n }\n\n}","import * as React from 'react';\nimport styled from '../styled-components';\nconst Wrapper = styled.div`\n position: relative;\n`;\nconst Tip = styled.div`\n position: absolute;\n min-width: 80px;\n max-width: 500px;\n background: #fff;\n bottom: 100%;\n left: 50%;\n margin-bottom: 10px;\n transform: translateX(-50%);\n\n border-radius: 4px;\n padding: 0.3em 0.6em;\n text-align: center;\n box-shadow: 0px 0px 5px 0px rgba(204, 204, 204, 1);\n`;\nconst Content = styled.div`\n background: #fff;\n color: #000;\n display: inline;\n font-size: 0.85em;\n white-space: nowrap;\n`;\nconst Arrow = styled.div`\n position: absolute;\n width: 0;\n height: 0;\n bottom: -5px;\n left: 50%;\n margin-left: -5px;\n border-left: solid transparent 5px;\n border-right: solid transparent 5px;\n border-top: solid #fff 5px;\n`;\nconst Gap = styled.div`\n position: absolute;\n width: 100%;\n height: 20px;\n bottom: -20px;\n`;\nexport interface TooltipProps {\n open: boolean;\n title: string;\n}\nexport class Tooltip extends React.Component {\n render() {\n const {\n open,\n title,\n children\n } = this.props;\n return \n {children}\n {open && \n {title}\n \n \n }\n ;\n }\n\n}","const isSupported = typeof document !== 'undefined' && document.queryCommandSupported && document.queryCommandSupported('copy');\nexport class ClipboardService {\n static isSupported(): boolean {\n return isSupported;\n }\n\n static selectElement(element: any): void {\n let range;\n let selection;\n\n if ((document.body as any).createTextRange) {\n range = (document.body as any).createTextRange();\n range.moveToElementText(element);\n range.select();\n } else if (document.createRange && window.getSelection) {\n selection = window.getSelection();\n range = document.createRange();\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n }\n\n static deselect(): void {\n if ((document as any).selection) {\n (document as any).selection.empty();\n } else if (window.getSelection) {\n const selection = window.getSelection();\n\n if (selection) {\n selection.removeAllRanges();\n }\n }\n }\n\n static copySelected(): boolean {\n let result;\n\n try {\n result = document.execCommand('copy');\n } catch (err) {\n result = false;\n }\n\n return result;\n }\n\n static copyElement(element: any): boolean {\n ClipboardService.selectElement(element);\n const res = ClipboardService.copySelected();\n\n if (res) {\n ClipboardService.deselect();\n }\n\n return res;\n }\n\n static copyCustom(text: string): boolean {\n const textArea = document.createElement('textarea');\n textArea.style.position = 'fixed';\n textArea.style.top = '0';\n textArea.style.left = '0'; // Ensure it has a small width and height. Setting to 1px / 1em\n // doesn't work as this gives a negative w/h on some browsers.\n\n textArea.style.width = '2em';\n textArea.style.height = '2em'; // We don't need padding, reducing the size if it does flash render.\n\n textArea.style.padding = '0'; // Clean up any borders.\n\n textArea.style.border = 'none';\n textArea.style.outline = 'none';\n textArea.style.boxShadow = 'none'; // Avoid flash of white box if rendered for any reason.\n\n textArea.style.background = 'transparent';\n textArea.value = text;\n document.body.appendChild(textArea);\n textArea.select();\n const res = ClipboardService.copySelected();\n document.body.removeChild(textArea);\n return res;\n }\n\n}","import * as React from 'react';\nimport { Tooltip } from '../common-elements/Tooltip';\nimport { ClipboardService } from '../services/ClipboardService';\nexport interface CopyButtonWrapperProps {\n data: any;\n children: (props: {\n renderCopyButton: () => React.ReactNode;\n }) => React.ReactNode;\n}\nexport class CopyButtonWrapper extends React.PureComponent {\n constructor(props) {\n super(props);\n this.state = {\n tooltipShown: false\n };\n }\n\n render() {\n return this.props.children({\n renderCopyButton: this.renderCopyButton\n });\n }\n\n copy = () => {\n const content = typeof this.props.data === 'string' ? this.props.data : JSON.stringify(this.props.data, null, 2);\n ClipboardService.copyCustom(content);\n this.showTooltip();\n };\n renderCopyButton = () => {\n return ;\n };\n\n showTooltip() {\n this.setState({\n tooltipShown: true\n });\n setTimeout(() => {\n this.setState({\n tooltipShown: false\n });\n }, 1500);\n }\n\n}","let level = 1;\nexport function jsonToHTML(json, maxExpandLevel) {\n level = 1;\n let output = '';\n output += '
';\n output += '';\n output += valueToHTML(json, maxExpandLevel);\n output += '';\n output += '
';\n return output;\n}\n\nfunction htmlEncode(t) {\n return t !== undefined ? t.toString().replace(/&/g, '&').replace(/\"/g, '"').replace(//g, '>') : '';\n}\n\nfunction stringifyStringLiteral(str: string) {\n return JSON.stringify(str).slice(1, -1);\n}\n\nfunction decorateWithSpan(value, className) {\n return '' + htmlEncode(value) + '';\n}\n\nfunction punctuation(val) {\n return '' + val + '';\n}\n\nfunction valueToHTML(value, maxExpandLevel: number) {\n const valueType = typeof value;\n let output = '';\n\n if (value === undefined || value === null) {\n output += decorateWithSpan('null', 'token keyword');\n } else if (value && value.constructor === Array) {\n level++;\n output += arrayToHTML(value, maxExpandLevel);\n level--;\n } else if (value && value.constructor === Date) {\n output += decorateWithSpan('\"' + value.toISOString() + '\"', 'token string');\n } else if (valueType === 'object') {\n level++;\n output += objectToHTML(value, maxExpandLevel);\n level--;\n } else if (valueType === 'number') {\n output += decorateWithSpan(value, 'token number');\n } else if (valueType === 'string') {\n if (/^(http|https):\\/\\/[^\\s]+$/.test(value)) {\n output += decorateWithSpan('\"', 'token string') + '' + htmlEncode(stringifyStringLiteral(value)) + '' + decorateWithSpan('\"', 'token string');\n } else {\n output += decorateWithSpan('\"' + stringifyStringLiteral(value) + '\"', 'token string');\n }\n } else if (valueType === 'boolean') {\n output += decorateWithSpan(value, 'token boolean');\n }\n\n return output;\n}\n\nfunction arrayToHTML(json, maxExpandLevel: number) {\n const collapsed = level > maxExpandLevel ? 'collapsed' : '';\n let output = `
${punctuation('[')}
    `;\n let hasContents = false;\n const length = json.length;\n\n for (let i = 0; i < length; i++) {\n hasContents = true;\n output += '
  • ';\n output += valueToHTML(json[i], maxExpandLevel);\n\n if (i < length - 1) {\n output += ',';\n }\n\n output += '
  • ';\n }\n\n output += `
${punctuation(']')}`;\n\n if (!hasContents) {\n output = punctuation('[ ]');\n }\n\n return output;\n}\n\nfunction objectToHTML(json, maxExpandLevel: number) {\n const collapsed = level > maxExpandLevel ? 'collapsed' : '';\n const keys = Object.keys(json);\n const length = keys.length;\n let output = `
${punctuation('{')}
    `;\n let hasContents = false;\n\n for (let i = 0; i < length; i++) {\n const key = keys[i];\n hasContents = true;\n output += '
  • ';\n output += '\"' + htmlEncode(key) + '\": ';\n output += valueToHTML(json[key], maxExpandLevel);\n\n if (i < length - 1) {\n output += punctuation(',');\n }\n\n output += '
  • ';\n }\n\n output += `
${punctuation('}')}`;\n\n if (!hasContents) {\n output = punctuation('{ }');\n }\n\n return output;\n}","import { css } from '../../styled-components';\nexport const jsonStyles = css`\n .redoc-json > .collapser {\n display: none;\n }\n\n font-family: ${props => props.theme.typography.code.fontFamily};\n font-size: ${props => props.theme.typography.code.fontSize};\n\n white-space: ${({\n theme\n}) => theme.typography.code.wrap ? 'pre-wrap' : 'pre'};\n contain: content;\n overflow-x: auto;\n\n .callback-function {\n color: gray;\n }\n\n .collapser:after {\n content: '-';\n cursor: pointer;\n }\n\n .collapsed > .collapser:after {\n content: '+';\n cursor: pointer;\n }\n\n .ellipsis:after {\n content: ' … ';\n }\n\n .collapsible {\n margin-left: 2em;\n }\n\n .hoverable {\n padding-top: 1px;\n padding-bottom: 1px;\n padding-left: 2px;\n padding-right: 2px;\n border-radius: 2px;\n }\n\n .hovered {\n background-color: rgba(235, 238, 249, 1);\n }\n\n .collapser {\n padding-right: 6px;\n padding-left: 6px;\n }\n\n ul {\n list-style-type: none;\n padding: 0px;\n margin: 0px 0px 0px 26px;\n }\n\n li {\n position: relative;\n display: block;\n }\n\n .hoverable {\n display: inline-block;\n }\n\n .selected {\n outline-style: solid;\n outline-width: 1px;\n outline-style: dotted;\n }\n\n .collapsed > .collapsible {\n display: none;\n }\n\n .ellipsis {\n display: none;\n }\n\n .collapsed > .ellipsis {\n display: inherit;\n }\n\n .collapser {\n position: absolute;\n top: 1px;\n left: -1.5em;\n cursor: default;\n user-select: none;\n -webkit-user-select: none;\n }\n`;","import * as React from 'react';\nimport styled from '../../styled-components';\nimport { SampleControls } from '../../common-elements';\nimport { CopyButtonWrapper } from '../../common-elements/CopyButtonWrapper';\nimport { PrismDiv } from '../../common-elements/PrismDiv';\nimport { jsonToHTML } from '../../utils/jsonToHtml';\nimport { OptionsContext } from '../OptionsProvider';\nimport { jsonStyles } from './style';\nexport interface JsonProps {\n data: any;\n className?: string;\n}\nconst JsonViewerWrap = styled.div`\n &:hover > ${SampleControls} {\n opacity: 1;\n }\n`;\n\nclass Json extends React.PureComponent {\n node: HTMLDivElement;\n\n render() {\n return {this.renderInner};\n }\n\n renderInner = ({\n renderCopyButton\n }) => \n \n {renderCopyButton()}\n \n \n \n \n {options => this.node = node!} dangerouslySetInnerHTML={{\n __html: jsonToHTML(this.props.data, options.jsonSampleExpandLevel)\n }} />}\n \n ;\n expandAll = () => {\n const elements = this.node.getElementsByClassName('collapsible');\n\n for (const collapsed of Array.prototype.slice.call(elements)) {\n (collapsed.parentNode as Element)!.classList.remove('collapsed');\n }\n };\n collapseAll = () => {\n const elements = this.node.getElementsByClassName('collapsible'); // skip first item to avoid collapsing whole object/array\n\n const elementsArr = Array.prototype.slice.call(elements, 1);\n\n for (const expanded of elementsArr) {\n (expanded.parentNode as Element)!.classList.add('collapsed');\n }\n };\n clickListener = (event: MouseEvent) => {\n let collapsed;\n const target = (event.target as HTMLElement);\n\n if (target.className === 'collapser') {\n collapsed = target.parentElement!.getElementsByClassName('collapsible')[0];\n\n if (collapsed.parentElement.classList.contains('collapsed')) {\n collapsed.parentElement.classList.remove('collapsed');\n } else {\n collapsed.parentElement.classList.add('collapsed');\n }\n }\n };\n\n componentDidMount() {\n this.node!.addEventListener('click', this.clickListener);\n }\n\n componentWillUnmount() {\n this.node!.removeEventListener('click', this.clickListener);\n }\n\n}\n\nexport const JsonViewer = styled(Json)`\n ${jsonStyles};\n`;","import * as React from 'react';\nimport { highlight } from '../../utils';\nimport { SampleControls, SampleControlsWrap, StyledPre } from '../../common-elements';\nimport { CopyButtonWrapper } from '../../common-elements/CopyButtonWrapper';\nexport interface SourceCodeProps {\n source: string;\n lang: string;\n}\nexport class SourceCode extends React.PureComponent {\n render() {\n const {\n source,\n lang\n } = this.props;\n return ;\n }\n\n}\nexport class SourceCodeWithCopy extends React.PureComponent {\n render() {\n return \n {({\n renderCopyButton\n }) => \n {renderCopyButton()}\n \n }\n ;\n }\n\n}","import * as React from 'react';\nimport { isJsonLike, langFromMime } from '../../utils/openapi';\nimport { JsonViewer } from '../JsonViewer/JsonViewer';\nimport { SourceCodeWithCopy } from '../SourceCode/SourceCode';\nexport interface ExampleValueProps {\n value: any;\n mimeType: string;\n}\nexport function ExampleValue({\n value,\n mimeType\n}: ExampleValueProps) {\n if (isJsonLike(mimeType)) {\n return ;\n } else {\n if (typeof value === 'object') {\n // just in case example was cached as json but used as non-json\n value = JSON.stringify(value, null, 2);\n }\n\n return ;\n }\n}","import { useEffect, useRef, useState } from 'react';\nimport { ExampleModel } from '../../services/models/Example';\nexport function useExternalExample(example: ExampleModel, mimeType: string) {\n const [, setIsLoading] = useState(true); // to trigger component reload\n\n const value = useRef(undefined);\n const prevRef = useRef(undefined);\n\n if (prevRef.current !== example) {\n value.current = undefined;\n }\n\n prevRef.current = example;\n useEffect(() => {\n const load = async () => {\n setIsLoading(true);\n\n try {\n value.current = await example.getExternalValue(mimeType);\n } catch (e) {\n value.current = e;\n }\n\n setIsLoading(false);\n };\n\n load();\n }, [example, mimeType]);\n return value.current;\n}","import * as React from 'react';\nimport { StyledPre } from '../../common-elements/samples';\nimport { ExampleModel } from '../../services/models';\nimport { ExampleValue } from './ExampleValue';\nimport { useExternalExample } from './exernalExampleHook';\nexport interface ExampleProps {\n example: ExampleModel;\n mimeType: string;\n}\nexport function Example({\n example,\n mimeType\n}: ExampleProps) {\n if (example.value === undefined && example.externalValueUrl) {\n return ;\n } else {\n return ;\n }\n}\nexport function ExternalExample({\n example,\n mimeType\n}: ExampleProps) {\n const value = useExternalExample(example, mimeType);\n\n if (value === undefined) {\n return Loading...;\n }\n\n if (value instanceof Error) {\n return \n Error loading external example:
\n \n {example.externalValueUrl}\n \n
;\n }\n\n return ;\n}","import { transparentize } from 'polished';\nimport styled from '../../styled-components';\nimport { StyledDropdown } from '../../common-elements';\nexport const MimeLabel = styled.div`\n padding: 0.9em;\n background-color: ${({\n theme\n}) => transparentize(0.6, theme.rightPanel.backgroundColor)};\n margin: 0 0 10px 0;\n display: block;\n font-family: ${({\n theme\n}) => theme.typography.headings.fontFamily};\n font-size: 0.929em;\n line-height: 1.5em;\n`;\nexport const DropdownLabel = styled.span`\n font-family: ${({\n theme\n}) => theme.typography.headings.fontFamily};\n font-size: 12px;\n position: absolute;\n z-index: 1;\n top: -11px;\n left: 12px;\n font-weight: ${({\n theme\n}) => theme.typography.fontWeightBold};\n color: ${({\n theme\n}) => transparentize(0.6, theme.rightPanel.textColor)};\n`;\nexport const DropdownWrapper = styled.div`\n position: relative;\n`;\nexport const InvertedSimpleDropdown = styled(StyledDropdown)`\n && {\n margin-left: 10px;\n text-transform: none;\n font-size: 0.929em;\n margin: 0 0 10px 0;\n display: block;\n background-color: ${({\n theme\n}) => transparentize(0.6, theme.rightPanel.backgroundColor)};\n font-size: 1em;\n border: none;\n padding: 0.9em 1.6em 0.9em 0.9em;\n box-shadow: none;\n &:hover,\n &:focus-within {\n border: none;\n box-shadow: none;\n }\n &:focus-within {\n background-color: ${({\n theme\n}) => transparentize(0.3, theme.rightPanel.backgroundColor)};\n }\n\n .dropdown-arrow {\n border-top-color: ${({\n theme\n}) => theme.rightPanel.textColor};\n }\n .dropdown-selector-value {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n color: ${({\n theme\n}) => theme.rightPanel.textColor};\n }\n\n .dropdown-selector-content {\n margin: 0;\n margin-top: 2px;\n .dropdown-option {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n }\n }\n }\n`;\nexport const NoSampleLabel = styled.div`\n font-family: ${props => props.theme.typography.code.fontFamily};\n font-size: 12px;\n color: #ee807f;\n`;","import * as React from 'react';\nimport styled from '../../styled-components';\nimport { DropdownProps } from '../../common-elements';\nimport { MediaTypeModel } from '../../services/models';\nimport { Markdown } from '../Markdown/Markdown';\nimport { Example } from './Example';\nimport { DropdownLabel, DropdownWrapper, NoSampleLabel } from './styled.elements';\nexport interface PayloadSamplesProps {\n mediaType: MediaTypeModel;\n renderDropdown: (props: DropdownProps) => JSX.Element;\n}\ninterface MediaTypeSamplesState {\n activeIdx: number;\n}\nexport class MediaTypeSamples extends React.Component {\n state = {\n activeIdx: 0\n };\n switchMedia = ({\n idx\n }) => {\n this.setState({\n activeIdx: idx\n });\n };\n\n render() {\n const {\n activeIdx\n } = this.state;\n const examples = this.props.mediaType.examples || {};\n const mimeType = this.props.mediaType.name;\n const noSample = No sample;\n const examplesNames = Object.keys(examples);\n\n if (examplesNames.length === 0) {\n return noSample;\n }\n\n if (examplesNames.length > 1) {\n const options = examplesNames.map((name, idx) => {\n return {\n value: examples[name].summary || name,\n idx\n };\n });\n const example = examples[examplesNames[activeIdx]];\n const description = example.description;\n return \n \n Example\n {this.props.renderDropdown({\n value: options[activeIdx].value,\n options,\n onChange: this.switchMedia,\n ariaLabel: 'Example'\n })}\n \n
\n {description && }\n \n
\n
;\n } else {\n const example = examples[examplesNames[0]];\n return \n {example.description && }\n \n ;\n }\n }\n\n}\nconst SamplesWrapper = styled.div`\n margin-top: 15px;\n`;","import { transparentize } from 'polished';\nimport styled, { extensionsHook } from '../styled-components';\nimport { PropertyNameCell } from './fields-layout';\nimport { ShelfIcon } from './shelfs';\nexport const ClickablePropertyNameCell = styled(PropertyNameCell)`\n button {\n background-color: transparent;\n border: 0;\n outline: 0;\n font-size: 13px;\n font-family: ${props => props.theme.typography.code.fontFamily};\n cursor: pointer;\n padding: 0;\n color: ${props => props.theme.colors.text.primary};\n &:focus {\n font-weight: ${({\n theme\n}) => theme.typography.fontWeightBold};\n }\n }\n ${ShelfIcon} {\n height: ${({\n theme\n}) => theme.schema.arrow.size};\n width: ${({\n theme\n}) => theme.schema.arrow.size};\n polygon {\n fill: ${({\n theme\n}) => theme.schema.arrow.color};\n }\n }\n`;\nexport const FieldLabel = styled.span`\n vertical-align: middle;\n font-size: ${({\n theme\n}) => theme.typography.code.fontSize};\n line-height: 20px;\n`;\nexport const TypePrefix = styled(FieldLabel)`\n color: ${props => transparentize(0.2, props.theme.schema.typeNameColor)};\n`;\nexport const TypeName = styled(FieldLabel)`\n color: ${props => props.theme.schema.typeNameColor};\n`;\nexport const TypeTitle = styled(FieldLabel)`\n color: ${props => props.theme.schema.typeTitleColor};\n word-break: break-word;\n`;\nexport const TypeFormat = TypeName;\nexport const RequiredLabel = styled(FieldLabel.withComponent('div'))`\n color: ${props => props.theme.schema.requireLabelColor};\n font-size: ${props => props.theme.schema.labelsTextSize};\n font-weight: normal;\n margin-left: 20px;\n line-height: 1;\n`;\nexport const RecursiveLabel = styled(FieldLabel)`\n color: ${({\n theme\n}) => theme.colors.warning.main};\n font-size: 13px;\n`;\nexport const NullableLabel = styled(FieldLabel)`\n color: #3195a6;\n font-size: 13px;\n`;\nexport const PatternLabel = styled(FieldLabel)`\n color: #3195a6;\n &::before,\n &::after {\n font-weight: bold;\n }\n`;\nexport const ExampleValue = styled(FieldLabel)`\n border-radius: 2px;\n ${({\n theme\n}) => `\n background-color: ${transparentize(0.95, theme.colors.text.primary)};\n color: ${transparentize(0.1, theme.colors.text.primary)};\n\n padding: 0 ${theme.spacing.unit}px;\n border: 1px solid ${transparentize(0.9, theme.colors.text.primary)};\n font-family: ${theme.typography.code.fontFamily};\n}`};\n & + & {\n margin-left: 0;\n }\n ${extensionsHook('ExampleValue')};\n`;\nexport const ExtensionValue = styled(ExampleValue)``;\nexport const ConstraintItem = styled(FieldLabel)`\n border-radius: 2px;\n ${({\n theme\n}) => `\n background-color: ${transparentize(0.95, theme.colors.primary.light)};\n color: ${transparentize(0.1, theme.colors.primary.main)};\n\n margin: 0 ${theme.spacing.unit}px;\n padding: 0 ${theme.spacing.unit}px;\n border: 1px solid ${transparentize(0.9, theme.colors.primary.main)};\n font-family: ${theme.typography.code.fontFamily};\n}`};\n & + & {\n margin-left: 0;\n }\n ${extensionsHook('ConstraintItem')};\n`;","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport styled from '../../styled-components';\nimport { OpenAPIExternalDocumentation } from '../../types';\nimport { linksCss } from '../Markdown/styled.elements';\nconst LinkWrap = styled.div<{\n compact?: boolean;\n}>`\n ${linksCss};\n ${({\n compact\n}) => !compact ? 'margin: 1em 0' : ''}\n`;\n@observer\nexport class ExternalDocumentation extends React.Component<{\n externalDocs: OpenAPIExternalDocumentation;\n compact?: boolean;\n}> {\n render() {\n const {\n externalDocs\n } = this.props;\n\n if (!externalDocs || !externalDocs.url) {\n return null;\n }\n\n return \n {externalDocs.description || externalDocs.url}\n ;\n }\n\n}","import * as React from 'react';\nimport { ExampleValue, FieldLabel } from '../../common-elements/fields';\nimport { l } from '../../services/Labels';\nimport { OptionsContext } from '../OptionsProvider';\nimport styled from '../../styled-components';\nimport { RedocRawOptions } from '../../services/RedocNormalizedOptions';\nexport interface EnumValuesProps {\n values: string[];\n type: string;\n}\nexport interface EnumValuesState {\n collapsed: boolean;\n}\nexport class EnumValues extends React.PureComponent {\n state: EnumValuesState = {\n collapsed: true\n };\n static contextType = OptionsContext;\n\n private toggle() {\n this.setState({\n collapsed: !this.state.collapsed\n });\n }\n\n render() {\n const {\n values,\n type\n } = this.props;\n const {\n collapsed\n } = this.state; // TODO: provide context interface in more elegant way\n\n const {\n enumSkipQuotes,\n maxDisplayedEnumValues\n } = (this.context as RedocRawOptions);\n\n if (!values.length) {\n return null;\n }\n\n const displayedItems = this.state.collapsed && maxDisplayedEnumValues ? values.slice(0, maxDisplayedEnumValues) : values;\n const showToggleButton = maxDisplayedEnumValues ? values.length > maxDisplayedEnumValues : false;\n const toggleButtonText = maxDisplayedEnumValues ? collapsed ? `… ${values.length - maxDisplayedEnumValues} more` : 'Hide' : '';\n return
\n \n {type === 'array' ? l('enumArray') : ''}{' '}\n {values.length === 1 ? l('enumSingleValue') : l('enum')}:\n {' '}\n {displayedItems.map((value, idx) => {\n const exampleValue = enumSkipQuotes ? value : JSON.stringify(value);\n return \n {exampleValue}{' '}\n ;\n })}\n {showToggleButton ? {\n this.toggle();\n }}>\n {toggleButtonText}\n : null}\n
;\n }\n\n}\nconst ToggleButton = styled.span`\n color: ${props => props.theme.colors.primary.main};\n vertical-align: middle;\n font-size: 13px;\n line-height: 20px;\n padding: 0 5px;\n cursor: pointer;\n`;","import * as React from 'react';\nimport { ExtensionValue, FieldLabel } from '../../common-elements/fields';\nimport styled from '../../styled-components';\nimport { OptionsContext } from '../OptionsProvider';\nimport { StyledMarkdownBlock } from '../Markdown/styled.elements';\nconst Extension = styled(StyledMarkdownBlock)`\n margin: 2px 0;\n`;\nexport interface ExtensionsProps {\n extensions: {\n [k: string]: any;\n };\n}\nexport class Extensions extends React.PureComponent {\n render() {\n const exts = this.props.extensions;\n return \n {options => <>\n {options.showExtensions && Object.keys(exts).map(key => \n {key.substring(2)}: {' '}\n \n {typeof exts[key] === 'string' ? exts[key] : JSON.stringify(exts[key])}\n \n )}\n }\n ;\n }\n\n}","import * as React from 'react';\nimport { ConstraintItem } from '../../common-elements/fields';\nexport interface ConstraintsViewProps {\n constraints: string[];\n}\nexport class ConstraintsView extends React.PureComponent {\n render() {\n if (this.props.constraints.length === 0) {\n return null;\n }\n\n return \n {' '}\n {this.props.constraints.map(constraint => {constraint} )}\n ;\n }\n\n}","import * as React from 'react';\nimport { ExampleValue, FieldLabel } from '../../common-elements/fields';\nexport interface FieldDetailProps {\n value?: any;\n label: string;\n raw?: boolean;\n}\nexport class FieldDetail extends React.PureComponent {\n render() {\n if (this.props.value === undefined) {\n return null;\n }\n\n const value = this.props.raw ? this.props.value : JSON.stringify(this.props.value);\n return
\n {this.props.label} {value}\n
;\n }\n\n}","import * as React from 'react';\nimport { NullableLabel, PatternLabel, RecursiveLabel, TypeFormat, TypeName, TypePrefix, TypeTitle } from '../../common-elements/fields';\nimport { serializeParameterValue } from '../../utils/openapi';\nimport { ExternalDocumentation } from '../ExternalDocumentation/ExternalDocumentation';\nimport { Markdown } from '../Markdown/Markdown';\nimport { EnumValues } from './EnumValues';\nimport { Extensions } from './Extensions';\nimport { FieldProps } from './Field';\nimport { ConstraintsView } from './FieldContstraints';\nimport { FieldDetail } from './FieldDetail';\nimport { Badge } from '../../common-elements/';\nimport { l } from '../../services/Labels';\nimport { OptionsContext } from '../OptionsProvider';\nconst MAX_PATTERN_LENGTH = 45;\nexport class FieldDetails extends React.PureComponent {\n static contextType = OptionsContext;\n\n render() {\n const {\n showExamples,\n field,\n renderDiscriminatorSwitch\n } = this.props;\n const {\n enumSkipQuotes,\n hideSchemaTitles\n } = this.context;\n const {\n schema,\n description,\n example,\n deprecated\n } = field;\n const rawDefault = !!enumSkipQuotes || field.in === 'header'; // having quotes around header field default values is confusing and inappropriate\n\n let exampleField: JSX.Element | null = null;\n\n if (showExamples && example !== undefined) {\n const label = l('example') + ':';\n\n if (field.in && (field.style || field.serializationMime)) {\n // decode for better readability in examples: see https://github.com/Redocly/redoc/issues/1138\n const serializedValue = decodeURIComponent(serializeParameterValue(field, example));\n exampleField = ;\n } else {\n exampleField = ;\n }\n }\n\n return
\n
\n {schema.typePrefix}\n {schema.displayType}\n {schema.displayFormat && \n {' '}\n <\n {schema.displayFormat}\n >{' '}\n }\n {schema.title && !hideSchemaTitles && ({schema.title}) }\n \n {schema.nullable && {l('nullable')} }\n {schema.pattern && schema.pattern.length < MAX_PATTERN_LENGTH && {schema.pattern} }\n {schema.isCircular && {l('recursive')} }\n
\n {deprecated &&
\n {l('deprecated')} \n
}\n \n {!renderDiscriminatorSwitch && }{' '}\n {exampleField}\n {}\n
\n \n
\n {schema.externalDocs && }\n {renderDiscriminatorSwitch && renderDiscriminatorSwitch(this.props) || null}\n
;\n }\n\n}","import * as React from 'react';\nimport { Schema, SchemaProps } from './Schema';\nimport { ArrayClosingLabel, ArrayOpenningLabel } from '../../common-elements';\nimport styled from '../../styled-components';\nimport { humanizeConstraints } from \"../../utils\";\nconst PaddedSchema = styled.div`\n padding-left: ${({\n theme\n}) => theme.spacing.unit * 2}px;\n`;\nexport class ArraySchema extends React.PureComponent {\n render() {\n const itemsSchema = this.props.schema.items!;\n\n const itemConstraintSchema = (min: number | undefined = undefined, max: number | undefined = undefined) => ({\n type: 'array',\n minItems: min,\n maxItems: max\n });\n\n const minMaxItems = humanizeConstraints(itemConstraintSchema(itemsSchema.schema.minItems, itemsSchema.schema.maxItems));\n return
\n Array ({minMaxItems})\n \n \n \n \n
;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { ClickablePropertyNameCell, RequiredLabel } from '../../common-elements/fields';\nimport { FieldDetails } from './FieldDetails';\nimport { InnerPropertiesWrap, PropertyBullet, PropertyCellWithInner, PropertyDetailsCell, PropertyNameCell } from '../../common-elements/fields-layout';\nimport { ShelfIcon } from '../../common-elements/';\nimport { FieldModel } from '../../services/models';\nimport { Schema, SchemaOptions } from '../Schema/Schema';\nexport interface FieldProps extends SchemaOptions {\n className?: string;\n isLast?: boolean;\n showExamples?: boolean;\n field: FieldModel;\n expandByDefault?: boolean;\n expandAllFields?: boolean;\n renderDiscriminatorSwitch?: (opts: FieldProps) => JSX.Element;\n}\n@observer\nexport class Field extends React.Component {\n toggle = () => {\n if (this.props.field.expanded === undefined && !this.props.field.expandAll && this.props.expandByDefault) {\n this.props.field.expanded = false;\n } else {\n this.props.field.toggle();\n }\n };\n handleKeyPress = e => {\n if (e.key === 'Enter') {\n e.preventDefault();\n this.toggle();\n }\n };\n\n render() {\n const {\n className,\n field,\n isLast,\n expandByDefault,\n expandAllFields\n } = this.props;\n const {\n name,\n deprecated,\n required,\n kind\n } = field;\n const withSubSchema = !field.schema.isPrimitive && !field.schema.isCircular;\n const expandChildren = field.expandAll === undefined ? expandAllFields : field.expandAll;\n const expanded = field.expanded === undefined ? expandChildren || expandByDefault : field.expanded;\n const paramName = withSubSchema ? \n \n \n {required && required }\n : \n \n {name}\n {required && required }\n ;\n return <>\n \n {paramName}\n \n \n \n \n {expanded && withSubSchema && \n \n \n \n \n \n }\n ;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { DropdownOption, StyledDropdown } from '../../common-elements/dropdown';\nimport { SchemaModel } from '../../services/models';\n@observer\nexport class DiscriminatorDropdown extends React.Component<{\n parent: SchemaModel;\n enumValues: string[];\n}> {\n sortOptions(options: DropdownOption[], enumValues: string[]): void {\n if (enumValues.length === 0) {\n return;\n }\n\n const enumOrder = {};\n enumValues.forEach((enumItem, idx) => {\n enumOrder[enumItem] = idx;\n });\n options.sort((a, b) => {\n return enumOrder[a.value] > enumOrder[b.value] ? 1 : -1;\n });\n }\n\n render() {\n const {\n parent,\n enumValues\n } = this.props;\n\n if (parent.oneOf === undefined) {\n return null;\n }\n\n const options = parent.oneOf.map((subSchema, idx) => {\n return {\n value: subSchema.title,\n idx\n };\n });\n this.sortOptions(options, enumValues);\n return ;\n }\n\n changeActiveChild = (option: DropdownOption) => {\n this.props.parent.activateOneOf(option.idx);\n };\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { SchemaModel } from '../../services/models';\nimport { PropertiesTable, PropertiesTableCaption } from '../../common-elements/fields-layout';\nimport { Field } from '../Fields/Field';\nimport { DiscriminatorDropdown } from './DiscriminatorDropdown';\nimport { SchemaProps } from './Schema';\nimport { mapWithLast } from '../../utils';\nimport { OptionsContext } from '../OptionsProvider';\nexport interface ObjectSchemaProps extends SchemaProps {\n discriminator?: {\n fieldName: string;\n parentSchema: SchemaModel;\n };\n}\n@observer\nexport class ObjectSchema extends React.Component {\n static contextType = OptionsContext;\n\n get parentSchema() {\n return this.props.discriminator!.parentSchema;\n }\n\n render() {\n const {\n schema: {\n fields = []\n },\n showTitle,\n discriminator\n } = this.props;\n const needFilter = this.props.skipReadOnly || this.props.skipWriteOnly;\n const filteredFields = needFilter ? fields.filter(item => {\n return !(this.props.skipReadOnly && item.schema.readOnly || this.props.skipWriteOnly && item.schema.writeOnly);\n }) : fields;\n const expandByDefault = this.context.expandSingleSchemaField && filteredFields.length === 1;\n const expandAllFields = this.context.expandAllSchemaFields;\n return \n {showTitle && {this.props.schema.title}}\n \n {mapWithLast(filteredFields, (field, isLast) => {\n return ) || undefined} className={field.expanded ? 'expanded' : undefined} showExamples={false} skipReadOnly={this.props.skipReadOnly} skipWriteOnly={this.props.skipWriteOnly} showTitle={this.props.showTitle} />;\n })}\n \n ;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { OneOfButton as StyledOneOfButton, OneOfLabel, OneOfList } from '../../common-elements/schema';\nimport { SchemaModel } from '../../services/models';\nimport { Schema, SchemaProps } from './Schema';\nexport interface OneOfButtonProps {\n subSchema: SchemaModel;\n idx: number;\n schema: SchemaModel;\n}\n@observer\nexport class OneOfButton extends React.Component {\n render() {\n const {\n idx,\n schema,\n subSchema\n } = this.props;\n return \n {subSchema.title || subSchema.typePrefix + subSchema.displayType}\n ;\n }\n\n activateOneOf = () => {\n this.props.schema.activateOneOf(this.props.idx);\n };\n}\n@observer\nexport class OneOfSchema extends React.Component {\n render() {\n const {\n schema: {\n oneOf\n },\n schema\n } = this.props;\n\n if (oneOf === undefined) {\n return null;\n }\n\n return
\n {schema.oneOfType} \n \n {oneOf.map((subSchema, idx) => )}\n \n \n
;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { RecursiveLabel, TypeName, TypeTitle } from '../../common-elements/fields';\nimport { FieldDetails } from '../Fields/FieldDetails';\nimport { FieldModel, SchemaModel } from '../../services/models';\nimport { ArraySchema } from './ArraySchema';\nimport { ObjectSchema } from './ObjectSchema';\nimport { OneOfSchema } from './OneOfSchema';\nimport { l } from '../../services/Labels';\nexport interface SchemaOptions {\n expandAllFields?: boolean | string;\n showTitle?: boolean;\n skipReadOnly?: boolean;\n skipWriteOnly?: boolean;\n}\nexport interface SchemaProps extends SchemaOptions {\n schema: SchemaModel;\n}\n@observer\nexport class Schema extends React.Component> {\n render() {\n const {\n schema\n } = this.props;\n\n if (!schema) {\n return Schema not provided ;\n }\n\n const {\n type,\n oneOf,\n discriminatorProp,\n isCircular\n } = schema;\n\n if (isCircular) {\n return
\n {schema.displayType}\n {schema.title && {schema.title} }\n {l('recursive')} \n
;\n }\n\n if (discriminatorProp !== undefined) {\n if (!oneOf || !oneOf.length) {\n console.warn(`Looks like you are using discriminator wrong: you don't have any definition inherited from the ${schema.title}`);\n return null;\n }\n\n return ;\n }\n\n if (oneOf !== undefined) {\n return ;\n }\n\n switch (type) {\n case 'object':\n return ;\n\n case 'array':\n return ;\n } // TODO: maybe adjust FieldDetails to accept schema\n\n\n const field = (({\n schema,\n name: '',\n required: false,\n description: schema.description,\n externalDocs: schema.externalDocs,\n deprecated: false,\n toggle: () => null,\n expanded: false\n } as any) as FieldModel); // cast needed for hot-loader to not fail\n\n return
\n \n
;\n }\n\n}","export * from './Schema';\nexport * from './ObjectSchema';\nexport * from './OneOfSchema';\nexport * from './ArraySchema';\nexport * from './DiscriminatorDropdown';","import * as React from 'react';\nimport { DarkRightPanel, MiddlePanel, MimeLabel, Row, Section } from '../../common-elements';\nimport { MediaTypeModel, OpenAPIParser, RedocNormalizedOptions } from '../../services';\nimport styled from '../../styled-components';\nimport { OpenAPIMediaType } from '../../types';\nimport { DropdownOrLabel } from '../DropdownOrLabel/DropdownOrLabel';\nimport { MediaTypeSamples } from '../PayloadSamples/MediaTypeSamples';\nimport { InvertedSimpleDropdown } from '../PayloadSamples/styled.elements';\nimport { Schema } from '../Schema';\nexport interface ObjectDescriptionProps {\n schemaRef: string;\n exampleRef?: string;\n showReadOnly?: boolean;\n showWriteOnly?: boolean;\n parser: OpenAPIParser;\n options: RedocNormalizedOptions;\n}\nexport class SchemaDefinition extends React.PureComponent {\n private static getMediaType(schemaRef: string, exampleRef?: string): OpenAPIMediaType {\n if (!schemaRef) {\n return {};\n }\n\n const info: OpenAPIMediaType = {\n schema: {\n $ref: schemaRef\n }\n };\n\n if (exampleRef) {\n info.examples = {\n example: {\n $ref: exampleRef\n }\n };\n }\n\n return info;\n }\n\n private _mediaModel: MediaTypeModel;\n\n private get mediaModel() {\n const {\n parser,\n schemaRef,\n exampleRef,\n options\n } = this.props;\n\n if (!this._mediaModel) {\n this._mediaModel = new MediaTypeModel(parser, 'json', false, SchemaDefinition.getMediaType(schemaRef, exampleRef), options);\n }\n\n return this._mediaModel;\n }\n\n render() {\n const {\n showReadOnly = true,\n showWriteOnly = false\n } = this.props;\n return
\n \n \n \n \n \n \n \n \n \n \n
;\n }\n\n private renderDropdown = props => {\n return ;\n };\n}\nconst MediaSamplesWrap = styled.div`\n background: ${({\n theme\n}) => theme.codeBlock.backgroundColor};\n & > div,\n & > pre {\n padding: ${props => props.theme.spacing.unit * 4}px;\n margin: 0;\n }\n\n & > div > pre {\n padding: 0;\n }\n`;","import * as React from 'react';\nimport { SecuritySchemesModel } from '../../services/models';\nimport { H2, MiddlePanel, Row, Section, ShareLink } from '../../common-elements';\nimport { OpenAPISecurityScheme } from '../../types';\nimport { titleize } from '../../utils/helpers';\nimport { Markdown } from '../Markdown/Markdown';\nimport { StyledMarkdownBlock } from '../Markdown/styled.elements';\nconst AUTH_TYPES = {\n oauth2: 'OAuth2',\n apiKey: 'API Key',\n http: 'HTTP',\n openIdConnect: 'Open ID Connect'\n};\nexport interface OAuthFlowProps {\n type: string;\n flow: OpenAPISecurityScheme['flows'][keyof OpenAPISecurityScheme['flows']];\n}\nexport class OAuthFlow extends React.PureComponent {\n render() {\n const {\n type,\n flow\n } = this.props;\n return \n {type} OAuth Flow \n \n {type === 'implicit' || type === 'authorizationCode' ?
\n Authorization URL: \n {(flow as any).authorizationUrl}\n
: null}\n {type === 'password' || type === 'clientCredentials' || type === 'authorizationCode' ?
\n Token URL: \n {(flow as any).tokenUrl}\n
: null}\n {flow!.refreshUrl &&
\n Refresh URL: \n {flow!.refreshUrl}\n
}\n
\n Scopes: \n
\n
    \n {Object.keys(flow!.scopes || {}).map(scope =>
  • \n {scope} - \n
  • )}\n
\n \n ;\n }\n\n}\nexport interface SecurityDefsProps {\n securitySchemes: SecuritySchemesModel;\n}\nexport class SecurityDefs extends React.PureComponent {\n render() {\n return this.props.securitySchemes.schemes.map(scheme =>
\n \n \n

\n \n {scheme.id}\n

\n \n \n \n \n \n \n \n \n {scheme.apiKey ? \n \n \n : scheme.http ? [\n \n \n , scheme.http.scheme === 'bearer' && scheme.http.bearerFormat && \n \n \n ] : scheme.openId ? \n \n \n : scheme.flows ? Object.keys(scheme.flows).map(type => ) : null}\n \n
Security Scheme Type {AUTH_TYPES[scheme.type] || scheme.type}
{titleize(scheme.apiKey.in || '')} parameter name: {scheme.apiKey.name}
HTTP Authorization Scheme {scheme.http.scheme}
Bearer format "{scheme.http.bearerFormat}"
Connect URL \n \n {scheme.openId.connectUrl}\n \n
\n
\n
\n
\n
);\n }\n\n}","import { Lambda, observe } from 'mobx';\nimport { OpenAPISpec } from '../types';\nimport { loadAndBundleSpec } from '../utils/loadAndBundleSpec';\nimport { history } from './HistoryService';\nimport { MarkerService } from './MarkerService';\nimport { MenuStore } from './MenuStore';\nimport { SpecStore } from './models';\nimport { RedocNormalizedOptions, RedocRawOptions } from './RedocNormalizedOptions';\nimport { ScrollService } from './ScrollService';\nimport { SearchStore } from './SearchStore';\nimport { SchemaDefinition } from '../components/SchemaDefinition/SchemaDefinition';\nimport { SecurityDefs } from '../components/SecuritySchemes/SecuritySchemes';\nimport { SCHEMA_DEFINITION_JSX_NAME, SECURITY_DEFINITIONS_COMPONENT_NAME, SECURITY_DEFINITIONS_JSX_NAME } from '../utils/openapi';\nimport { IS_BROWSER } from '../utils';\nimport { MarkdownIndex } from '../markdown';\nexport interface StoreState {\n menu: {\n activeItemIdx: number;\n };\n spec: {\n url?: string | null;\n data: any;\n };\n searchIndex: any;\n options: RedocRawOptions;\n markdownIndex?: MarkdownIndex;\n}\nexport async function createStore(spec: object, specUrl: string | undefined | null, options: RedocRawOptions = {}, markdownIndex?: MarkdownIndex) {\n const resolvedSpec = await loadAndBundleSpec(spec || specUrl);\n return new AppStore(resolvedSpec, specUrl, options, true, markdownIndex);\n}\nexport class AppStore {\n /**\n * deserialize store\n * **SUPER HACKY AND NOT OPTIMAL IMPLEMENTATION**\n */\n // TODO:\n static fromJS(state: StoreState, markdownIndex?: MarkdownIndex): AppStore {\n const inst = new AppStore(state.spec.data, state.spec.url, state.options, false, markdownIndex);\n inst.menu.activeItemIdx = state.menu.activeItemIdx || 0;\n inst.menu.activate(inst.menu.flatItems[inst.menu.activeItemIdx]);\n\n if (!inst.options.disableSearch) {\n inst.search!.load(state.searchIndex);\n }\n\n return inst;\n }\n\n menu: MenuStore;\n spec: SpecStore;\n rawOptions: RedocRawOptions;\n options: RedocNormalizedOptions;\n search?: SearchStore;\n marker = new MarkerService();\n markdownIndex?: MarkdownIndex;\n private scroll: ScrollService;\n private disposer: Lambda | null = null;\n\n constructor(spec: OpenAPISpec, specUrl?: string | null, options: RedocRawOptions = {}, createSearchIndex: boolean = true, markdownIndex?: MarkdownIndex) {\n this.rawOptions = options;\n this.options = new RedocNormalizedOptions(options, DEFAULT_OPTIONS);\n this.scroll = new ScrollService(this.options); // update position statically based on hash (in case of SSR)\n\n MenuStore.updateOnHistory(history.currentId, this.scroll);\n this.spec = new SpecStore(spec, specUrl, this.options);\n this.menu = new MenuStore(this.spec, this.scroll, history, markdownIndex);\n this.markdownIndex = markdownIndex;\n\n if (!this.options.disableSearch) {\n this.search = new SearchStore();\n\n if (createSearchIndex) {\n this.search.indexItems(this.menu.items);\n }\n\n this.disposer = observe(this.menu, 'activeItemIdx', change => {\n this.updateMarkOnMenu((change.newValue as number));\n });\n }\n }\n\n onDidMount() {\n this.menu.updateOnHistory();\n this.updateMarkOnMenu(this.menu.activeItemIdx);\n }\n\n dispose() {\n this.scroll.dispose();\n this.menu.dispose();\n\n if (this.search) {\n this.search.dispose();\n }\n\n if (this.disposer != null) {\n this.disposer();\n }\n }\n /**\n * serializes store\n * **SUPER HACKY AND NOT OPTIMAL IMPLEMENTATION**\n */\n // TODO: improve\n\n\n async toJS(): Promise {\n return {\n menu: {\n activeItemIdx: this.menu.activeItemIdx\n },\n spec: {\n url: this.spec.parser.specUrl || null,\n data: this.spec.parser.spec\n },\n searchIndex: this.search ? await this.search.toJS() : undefined,\n options: this.rawOptions,\n markdownIndex: this.markdownIndex\n };\n }\n\n private updateMarkOnMenu(idx: number) {\n const start = Math.max(0, idx);\n const end = Math.min(this.menu.flatItems.length, start + 5);\n const elements: Element[] = [];\n\n for (let i = start; i < end; i++) {\n const elem = this.menu.getElementAt(i);\n\n if (!elem) {\n continue;\n }\n\n elements.push(elem);\n }\n\n if (idx === -1 && IS_BROWSER) {\n const $description = document.querySelector('[data-role=\"redoc-description\"]');\n if ($description) elements.push($description);\n }\n\n this.marker.addOnly(elements);\n this.marker.mark();\n }\n\n}\nconst DEFAULT_OPTIONS: RedocRawOptions = {\n allowedMdComponents: {\n [SECURITY_DEFINITIONS_COMPONENT_NAME]: {\n component: SecurityDefs,\n propsSelector: (store: AppStore) => ({\n securitySchemes: store.spec.securitySchemes\n })\n },\n [SECURITY_DEFINITIONS_JSX_NAME]: {\n component: SecurityDefs,\n propsSelector: (store: AppStore) => ({\n securitySchemes: store.spec.securitySchemes\n })\n },\n [SCHEMA_DEFINITION_JSX_NAME]: {\n component: SchemaDefinition,\n propsSelector: (store: AppStore) => ({\n parser: store.spec.parser,\n options: store.options\n })\n }\n }\n};","export * from './AppStore';\nexport * from './OpenAPIParser';\nexport * from './MarkdownRenderer';\nexport * from './MenuStore';\nexport * from './ScrollService';\nexport * from './SpecStore';\nexport * from './ClipboardService';\nexport * from './HistoryService';\nexport * from './models';\nexport * from './RedocNormalizedOptions';\nexport * from './MenuBuilder';\nexport * from './SearchStore';\nexport * from './MarkerService';","import { H1, MiddlePanel } from '../../common-elements';\nimport styled, { extensionsHook } from '../../styled-components';\nconst delimiterWidth = 15;\nexport const ApiInfoWrap = MiddlePanel;\nexport const ApiHeader = styled(H1)`\n margin-top: 0;\n margin-bottom: 0.5em;\n\n ${extensionsHook('ApiHeader')};\n`;\nexport const DownloadButton = styled.a`\n border: 1px solid ${props => props.theme.colors.primary.main};\n color: ${props => props.theme.colors.primary.main};\n font-weight: normal;\n margin-left: 0.5em;\n padding: 4px 8px 4px;\n display: inline-block;\n text-decoration: none;\n cursor: pointer;\n\n ${extensionsHook('DownloadButton')};\n`;\nexport const InfoSpan = styled.span`\n &::before {\n content: '|';\n display: inline-block;\n opacity: 0.5;\n width: ${delimiterWidth}px;\n text-align: center;\n }\n\n &:last-child::after {\n display: none;\n }\n`;\nexport const InfoSpanBoxWrap = styled.div`\n overflow: hidden;\n`;\nexport const InfoSpanBox = styled.div`\n display: flex;\n flex-wrap: wrap;\n // hide separator on new lines: idea from https://stackoverflow.com/a/31732902/1749888\n margin-left: -${delimiterWidth}px;\n`;","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { AppStore } from '../../services/AppStore';\nimport { MiddlePanel, Row, Section } from '../../common-elements/';\nimport { ExternalDocumentation } from '../ExternalDocumentation/ExternalDocumentation';\nimport { Markdown } from '../Markdown/Markdown';\nimport { StyledMarkdownBlock } from '../Markdown/styled.elements';\nimport { ApiHeader, DownloadButton, InfoSpan, InfoSpanBox, InfoSpanBoxWrap } from './styled.elements';\nexport interface ApiInfoProps {\n store: AppStore;\n}\n@observer\nexport class ApiInfo extends React.Component {\n handleDownloadClick = e => {\n if (!e.target.href) {\n e.target.href = this.props.store.spec.info.downloadLink;\n }\n };\n\n render() {\n const {\n store\n } = this.props;\n const {\n info,\n externalDocs\n } = store.spec;\n const hideDownloadButton = store.options.hideDownloadButton;\n const downloadFilename = info.downloadFileName;\n const downloadLink = info.downloadLink;\n const license = info.license && \n License: {info.license.name}\n || null;\n const website = info.contact && info.contact.url && \n URL: {info.contact.url}\n || null;\n const email = info.contact && info.contact.email && \n {info.contact.name || 'E-mail'}:{' '}\n {info.contact.email}\n || null;\n const terms = info.termsOfService && \n Terms of Service\n || null;\n const version = info.version && ({info.version}) || null;\n return
\n \n \n \n {info.title} {version}\n \n {!hideDownloadButton &&

\n Download OpenAPI specification:\n \n Download\n \n

}\n \n {(info.license || info.contact || info.termsOfService) && \n \n {email} {website} {license} {terms}\n \n || null}\n \n \n {externalDocs && }\n
\n
\n
;\n }\n\n}","export { ApiInfo } from './ApiInfo';","import * as React from 'react';\nimport styled from '../../styled-components';\nexport const LogoImgEl = styled.img`\n max-height: ${props => props.theme.logo.maxHeight};\n max-width: ${props => props.theme.logo.maxWidth};\n padding: ${props => props.theme.logo.gutter};\n width: 100%;\n display: block;\n`;\nexport const LogoWrap = styled.div`\n text-align: center;\n`;\nconst Link = styled.a`\n display: inline-block;\n`;\nexport const LinkWrap = url => Component => {Component};","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { OpenAPIInfo } from '../../types';\nimport { LinkWrap, LogoImgEl, LogoWrap } from './styled.elements';\n@observer\nexport class ApiLogo extends React.Component<{\n info: OpenAPIInfo;\n}> {\n render() {\n const {\n info\n } = this.props;\n const logoInfo = info['x-logo'];\n\n if (!logoInfo || !logoInfo.url) {\n return null;\n }\n\n const logoHref = logoInfo.href || info.contact && info.contact.url; // Use the english word logo if no alt text is provided\n\n const altText = logoInfo.altText ? logoInfo.altText : 'logo';\n const logo = ;\n return \n {logoHref ? LinkWrap(logoHref)(logo) : logo}\n ;\n }\n\n}","import * as React from 'react';\nimport { AppStore, MarkdownRenderer, RedocNormalizedOptions } from '../../services';\nimport { BaseMarkdownProps } from './Markdown';\nimport { SanitizedMarkdownHTML } from './SanitizedMdBlock';\nimport { OptionsConsumer } from '../OptionsProvider';\nimport { StoreConsumer } from '../StoreBuilder';\nexport interface AdvancedMarkdownProps extends BaseMarkdownProps {\n htmlWrap?: (part: JSX.Element) => JSX.Element;\n}\nexport class AdvancedMarkdown extends React.Component {\n render() {\n return \n {options => {store => this.renderWithOptionsAndStore(options, store)}}\n ;\n }\n\n renderWithOptionsAndStore(options: RedocNormalizedOptions, store?: AppStore) {\n const {\n source,\n htmlWrap = i => i\n } = this.props;\n\n if (!store) {\n throw new Error('When using components in markdown, store prop must be provided');\n }\n\n const renderer = new MarkdownRenderer(options);\n const parts = renderer.renderMdWithComponents(source);\n\n if (!parts.length) {\n return null;\n }\n\n return parts.map((part, idx) => {\n if (typeof part === 'string') {\n return React.cloneElement(htmlWrap(), {\n key: idx\n });\n }\n\n return ;\n });\n }\n\n}","import * as classnames from 'classnames';\nimport { darken } from 'polished';\nimport { deprecatedCss, ShelfIcon } from '../../common-elements';\nimport styled, { css, ResolvedThemeInterface } from '../../styled-components';\nexport const OperationBadge = styled.span.attrs((props: {\n type: string;\n}) => ({\n className: `operation-type ${props.type}`\n}))<{\n type: string;\n}>`\n width: 32px;\n display: inline-block;\n height: ${props => props.theme.typography.code.fontSize};\n line-height: ${props => props.theme.typography.code.fontSize};\n background-color: #333;\n border-radius: 3px;\n background-repeat: no-repeat;\n background-position: 6px 4px;\n font-size: 7px;\n font-family: Verdana; // web-safe\n color: white;\n text-transform: uppercase;\n text-align: center;\n font-weight: bold;\n vertical-align: middle;\n margin-right: 6px;\n margin-top: 2px;\n\n &.get {\n background-color: ${props => props.theme.colors.http.get};\n }\n\n &.post {\n background-color: ${props => props.theme.colors.http.post};\n }\n\n &.put {\n background-color: ${props => props.theme.colors.http.put};\n }\n\n &.options {\n background-color: ${props => props.theme.colors.http.options};\n }\n\n &.patch {\n background-color: ${props => props.theme.colors.http.patch};\n }\n\n &.delete {\n background-color: ${props => props.theme.colors.http.delete};\n }\n\n &.basic {\n background-color: ${props => props.theme.colors.http.basic};\n }\n\n &.link {\n background-color: ${props => props.theme.colors.http.link};\n }\n\n &.head {\n background-color: ${props => props.theme.colors.http.head};\n }\n\n &.hook {\n background-color: ${props => props.theme.colors.primary.main};\n }\n`;\n\nfunction menuItemActiveBg(depth, {\n theme\n}: {\n theme: ResolvedThemeInterface;\n}): string {\n if (depth > 1) {\n return darken(0.1, theme.sidebar.backgroundColor);\n } else if (depth === 1) {\n return darken(0.05, theme.sidebar.backgroundColor);\n } else {\n return '';\n }\n}\n\nexport const MenuItemUl = styled.ul<{\n expanded: boolean;\n}>`\n margin: 0;\n padding: 0;\n\n & & {\n font-size: 0.929em;\n }\n\n ${props => props.expanded ? '' : 'display: none;'};\n`;\nexport const MenuItemLi = styled.li<{\n depth: number;\n}>`\n list-style: none inside none;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 0;\n ${props => props.depth === 0 ? 'margin-top: 15px' : ''};\n`;\nexport const menuItemDepth = {\n 0: css`\n opacity: 0.7;\n text-transform: ${({\n theme\n }) => theme.sidebar.groupItems.textTransform};\n font-size: 0.8em;\n padding-bottom: 0;\n cursor: default;\n color: ${props => props.theme.sidebar.textColor};\n `,\n 1: css`\n font-size: 0.929em;\n text-transform: ${({\n theme\n }) => theme.sidebar.level1Items.textTransform};\n font-weight: ${({\n theme\n }) => theme.sidebar.level1Items.fw};\n font-size: ${({\n theme\n }) => theme.sidebar.level1Items.fontSize};\n color: ${({\n theme\n }) => theme.sidebar.level1Items.color};\n\n &:hover {\n color: ${props => props.theme.sidebar.activeTextColor};\n }\n `,\n 2: css`\n color: ${({\n theme\n }) => theme.sidebar.level1Items.color};\n font-size: ${({\n theme\n }) => theme.sidebar.level2Items.fontSize};\n `\n};\nexport interface MenuItemLabelType {\n depth: number;\n active: boolean;\n deprecated?: boolean;\n type?: string;\n}\nexport const MenuItemLabel = styled.label.attrs((props: MenuItemLabelType) => ({\n role: 'menuitem',\n className: classnames('-depth' + props.depth, {\n active: props.active\n })\n}))`\n cursor: pointer;\n color: ${props => props.active ? props.theme.sidebar.activeTextColor : props.theme.sidebar.textColor};\n margin: 0;\n padding: 12.5px ${props => !props.depth || props.depth === 0 ? `${props.theme.spacing.unit * 2}px` : `${props.depth}rem`};\n ${({\n depth,\n type,\n theme\n}) => type === 'section' && depth > 1 && 'padding-left: ' + theme.spacing.unit * 8 + 'px;' || ''}\n display: flex;\n justify-content: space-between;\n font-family: ${props => props.theme.typography.headings.fontFamily};\n ${props => menuItemDepth[props.depth]};\n background-color: ${props => props.active ? menuItemActiveBg(props.depth, props) : ''};\n\n ${props => props.deprecated && deprecatedCss || ''};\n\n &:hover {\n background-color: ${props => menuItemActiveBg(props.depth, props)};\n }\n\n ${ShelfIcon} {\n height: ${({\n theme\n}) => theme.sidebar.arrow.size};\n width: ${({\n theme\n}) => theme.sidebar.arrow.size};\n polygon {\n fill: ${({\n theme\n}) => theme.sidebar.arrow.color};\n }\n }\n`;\nexport const MenuItemTitle = styled.span<{\n width?: string;\n}>`\n display: inline-block;\n vertical-align: middle;\n width: ${props => props.width ? props.width : 'auto'};\n overflow: hidden;\n text-overflow: ellipsis;\n`;\nexport const RedocAttribution = styled.div`\n ${({\n theme\n}) => `\n font-size: 0.8em;\n margin-top: ${theme.spacing.unit * 2}px;\n padding: 0 ${theme.spacing.unit * 4}px;\n text-align: left;\n\n opacity: 0.7;\n\n a,\n a:visited,\n a:hover {\n color: ${theme.sidebar.textColor} !important;\n border-top: 1px solid ${darken(0.1, theme.sidebar.backgroundColor)};\n padding: ${theme.spacing.unit}px 0;\n display: block;\n }\n`};\n`;","import * as React from 'react';\nimport { darken } from 'polished';\nimport { ShelfIcon } from '../../common-elements';\nimport { OperationBadge } from '../SideMenu/styled.elements';\nimport { shortenHTTPVerb } from '../../utils/openapi';\nimport styled from '../../styled-components';\nimport { Badge } from '../../common-elements/';\nimport { l } from '../../services/Labels';\nexport interface CallbackTitleProps {\n name: string;\n opened?: boolean;\n httpVerb: string;\n deprecated?: boolean;\n className?: string;\n onClick?: () => void;\n}\nexport class CallbackTitle extends React.PureComponent {\n render() {\n const {\n name,\n opened,\n className,\n onClick,\n httpVerb,\n deprecated\n } = this.props;\n return \n {shortenHTTPVerb(httpVerb)}\n \n {name}\n {deprecated ? {l('deprecated')} : null}\n ;\n }\n\n}\nconst CallbackTitleWrapper = styled.div`\n & > * {\n vertical-align: middle;\n }\n\n ${ShelfIcon} {\n polygon {\n fill: ${({\n theme\n}) => darken(theme.colors.tonalOffset, theme.colors.gray[100])};\n }\n }\n`;\nconst CallbackName = styled.span<{\n deprecated?: boolean;\n}>`\n text-decoration: ${props => props.deprecated ? 'line-through' : 'none'};\n margin-right: 8px;\n`;\nconst OperationBadgeStyled = styled(OperationBadge)`\n margin: 0px 5px 0px 0px;\n`;","import styled from '../../styled-components';\nimport { CallbackTitle } from './CallbackTitle';\nexport const StyledCallbackTitle = styled(CallbackTitle)`\n padding: 10px;\n border-radius: 2px;\n margin-bottom: 4px;\n line-height: 1.5em;\n background-color: ${({\n theme\n}) => theme.colors.gray[100]};\n cursor: pointer;\n`;\nexport const CallbackDetailsWrap = styled.div`\n padding: 10px 25px;\n background-color: ${({\n theme\n}) => theme.colors.gray[50]};\n margin-bottom: 5px;\n margin-top: 5px;\n`;","import * as React from 'react';\nimport { ClipboardService } from '../../services';\nexport class SelectOnClick extends React.PureComponent {\n private child: HTMLDivElement | null;\n selectElement = () => {\n ClipboardService.selectElement(this.child);\n };\n\n render() {\n const {\n children\n } = this.props;\n return
this.child = (el as HTMLDivElement)} onClick={this.selectElement} onFocus={this.selectElement} tabIndex={0} role=\"button\">\n {children}\n
;\n }\n\n}","import styled from '../../styled-components';\nexport const OperationEndpointWrap = styled.div`\n cursor: pointer;\n position: relative;\n margin-bottom: 5px;\n`;\nexport const ServerRelativeURL = styled.span`\n font-family: ${props => props.theme.typography.code.fontFamily};\n margin-left: 10px;\n flex: 1;\n overflow-x: hidden;\n text-overflow: ellipsis;\n`;\nexport const EndpointInfo = styled.button<{\n expanded?: boolean;\n inverted?: boolean;\n}>`\n outline: 0;\n color: inherit;\n width: 100%;\n text-align: left;\n cursor: pointer;\n padding: 10px 30px 10px ${props => props.inverted ? '10px' : '20px'};\n border-radius: ${props => props.inverted ? '0' : '4px 4px 0 0'};\n background-color: ${props => props.inverted ? 'transparent' : props.theme.codeBlock.backgroundColor};\n display: flex;\n white-space: nowrap;\n align-items: center;\n border: ${props => props.inverted ? '0' : '1px solid transparent'};\n border-bottom: ${props => props.inverted ? '1px solid #ccc' : '0'};\n transition: border-color 0.25s ease;\n\n ${props => props.expanded && !props.inverted && `border-color: ${props.theme.colors.border.dark};` || ''}\n\n .${ServerRelativeURL} {\n color: ${props => props.inverted ? props.theme.colors.text.primary : '#ffffff'}\n }\n &:focus {\n box-shadow: inset 0 2px 2px rgba(0, 0, 0, 0.45), 0 2px 0 rgba(128, 128, 128, 0.25);\n }\n`;\nexport const HttpVerb = styled.span.attrs((props: {\n type: string;\n compact?: boolean;\n}) => ({\n className: `http-verb ${props.type}`\n}))<{\n type: string;\n compact?: boolean;\n}>`\n font-size: ${props => props.compact ? '0.8em' : '0.929em'};\n line-height: ${props => props.compact ? '18px' : '20px'};\n background-color: ${props => props.theme.colors.http[props.type] || '#999999'};\n color: #ffffff;\n padding: ${props => props.compact ? '2px 8px' : '3px 10px'};\n text-transform: uppercase;\n font-family: ${props => props.theme.typography.headings.fontFamily};\n margin: 0;\n`;\nexport const ServersOverlay = styled.div<{\n expanded: boolean;\n}>`\n position: absolute;\n width: 100%;\n z-index: 100;\n background: #fafafa;\n color: #263238;\n box-sizing: border-box;\n box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.33);\n overflow: hidden;\n border-bottom-left-radius: 4px;\n border-bottom-right-radius: 4px;\n transition: all 0.25s ease;\n visibility: hidden;\n ${props => props.expanded ? 'visibility: visible;' : 'transform: translateY(-50%) scaleY(0);'}\n`;\nexport const ServerItem = styled.div`\n padding: 10px;\n`;\nexport const ServerUrl = styled.div`\n padding: 5px;\n border: 1px solid #ccc;\n background: #fff;\n word-break: break-all;\n color: ${props => props.theme.colors.primary.main};\n > span {\n color: ${props => props.theme.colors.text.primary};\n }\n`;","import * as React from 'react';\nimport { ShelfIcon } from '../../common-elements';\nimport { OperationModel } from '../../services';\nimport { Markdown } from '../Markdown/Markdown';\nimport { OptionsContext } from '../OptionsProvider';\nimport { SelectOnClick } from '../SelectOnClick/SelectOnClick';\nimport { expandDefaultServerVariables, getBasePath } from '../../utils';\nimport { EndpointInfo, HttpVerb, OperationEndpointWrap, ServerItem, ServerRelativeURL, ServersOverlay, ServerUrl } from './styled.elements';\nexport interface EndpointProps {\n operation: OperationModel;\n hideHostname?: boolean;\n inverted?: boolean;\n compact?: boolean;\n}\nexport interface EndpointState {\n expanded: boolean;\n}\nexport class Endpoint extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n expanded: false\n };\n }\n\n toggle = () => {\n this.setState({\n expanded: !this.state.expanded\n });\n };\n\n render() {\n const {\n operation,\n inverted,\n hideHostname\n } = this.props;\n const {\n expanded\n } = this.state; // TODO: highlight server variables, e.g. https://{user}.test.com\n\n return \n {options => \n \n \n {operation.httpVerb}\n \n {operation.path}\n \n \n \n {operation.servers.map(server => {\n const normalizedUrl = options.expandDefaultServerVariables ? expandDefaultServerVariables(server.url, server.variables) : server.url;\n return \n \n \n \n \n {hideHostname || options.hideHostname ? getBasePath(normalizedUrl) : normalizedUrl}\n \n {operation.path}\n \n \n ;\n })}\n \n }\n ;\n }\n\n}","import * as React from 'react';\nimport { UnderlinedHeader } from '../../common-elements';\nimport { PropertiesTable } from '../../common-elements/fields-layout';\nimport { FieldModel } from '../../services/models';\nimport { Field } from '../Fields/Field';\nimport { mapWithLast } from '../../utils';\nexport interface ParametersGroupProps {\n place: string;\n parameters: FieldModel[];\n}\nexport class ParametersGroup extends React.PureComponent {\n render() {\n const {\n place,\n parameters\n } = this.props;\n\n if (!parameters || !parameters.length) {\n return null;\n }\n\n return
\n {place} Parameters\n \n \n {mapWithLast(parameters, (field, isLast) => )}\n \n \n
;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { DropdownProps } from '../../common-elements/dropdown';\nimport { MediaContentModel, MediaTypeModel, SchemaModel } from '../../services/models';\nimport { DropdownLabel, DropdownWrapper } from '../PayloadSamples/styled.elements';\nexport interface MediaTypeChildProps {\n schema: SchemaModel;\n mime?: string;\n}\nexport interface MediaTypesSwitchProps {\n content?: MediaContentModel;\n withLabel?: boolean;\n renderDropdown: (props: DropdownProps) => JSX.Element;\n children: (activeMime: MediaTypeModel) => JSX.Element;\n}\n@observer\nexport class MediaTypesSwitch extends React.Component {\n switchMedia = ({\n idx\n }) => {\n if (this.props.content) {\n this.props.content.activate(idx);\n }\n };\n\n render() {\n const {\n content\n } = this.props;\n\n if (!content || !content.mediaTypes || !content.mediaTypes.length) {\n return null;\n }\n\n const activeMimeIdx = content.activeMimeIdx;\n const options = content.mediaTypes.map((mime, idx) => {\n return {\n value: mime.name,\n idx\n };\n });\n\n const Wrapper = ({\n children\n }) => this.props.withLabel ? \n Content type\n {children}\n : children;\n\n return <>\n \n {this.props.renderDropdown({\n value: options[activeMimeIdx].value,\n options,\n onChange: this.switchMedia,\n ariaLabel: 'Content type'\n })}\n \n {this.props.children(content.active)}\n ;\n }\n\n}","import * as React from 'react';\nimport { DropdownOrLabel } from '../DropdownOrLabel/DropdownOrLabel';\nimport { ParametersGroup } from './ParametersGroup';\nimport { UnderlinedHeader } from '../../common-elements';\nimport { MediaContentModel } from '../../services';\nimport { FieldModel, RequestBodyModel } from '../../services/models';\nimport { MediaTypesSwitch } from '../MediaTypeSwitch/MediaTypesSwitch';\nimport { Schema } from '../Schema';\nimport { Markdown } from '../Markdown/Markdown';\n\nfunction safePush(obj, prop, item) {\n if (!obj[prop]) {\n obj[prop] = [];\n }\n\n obj[prop].push(item);\n}\n\nexport interface ParametersProps {\n parameters?: FieldModel[];\n body?: RequestBodyModel;\n}\nconst PARAM_PLACES = ['path', 'query', 'cookie', 'header'];\nexport class Parameters extends React.PureComponent {\n orderParams(params: FieldModel[]): Record {\n const res = {};\n params.forEach(param => {\n safePush(res, param.in, param);\n });\n return res;\n }\n\n render() {\n const {\n body,\n parameters = []\n } = this.props;\n\n if (body === undefined && parameters === undefined) {\n return null;\n }\n\n const paramsMap = this.orderParams(parameters);\n const paramsPlaces = parameters.length > 0 ? PARAM_PLACES : [];\n const bodyContent = body && body.content;\n const bodyDescription = body && body.description;\n return <>\n {paramsPlaces.map(place => )}\n {bodyContent && }\n ;\n }\n\n}\n\nfunction DropdownWithinHeader(props) {\n return \n Request Body schema: \n ;\n}\n\nexport function BodyContent(props: {\n content: MediaContentModel;\n description?: string;\n}): JSX.Element {\n const {\n content,\n description\n } = props;\n return \n {({\n schema\n }) => {\n return <>\n {description !== undefined && }\n \n ;\n }}\n ;\n}","import * as React from 'react';\nimport { ShelfIcon } from '../../common-elements';\nimport { Markdown } from '../Markdown/Markdown';\nexport interface ResponseTitleProps {\n code: string;\n title: string;\n type: string;\n empty?: boolean;\n opened?: boolean;\n className?: string;\n onClick?: () => void;\n}\nexport class ResponseTitle extends React.PureComponent {\n render() {\n const {\n title,\n type,\n empty,\n code,\n opened,\n className,\n onClick\n } = this.props;\n return ;\n }\n\n}","// import { transparentize } from 'polished';\nimport { UnderlinedHeader } from '../../common-elements';\nimport styled from '../../styled-components';\nimport { ResponseTitle } from './ResponseTitle';\nexport const StyledResponseTitle = styled(ResponseTitle)`\n display: block;\n border: 0;\n width: 100%;\n text-align: left;\n padding: 10px;\n border-radius: 2px;\n margin-bottom: 4px;\n line-height: 1.5em;\n background-color: #f2f2f2;\n cursor: pointer;\n\n color: ${props => props.theme.colors.responses[props.type].color};\n background-color: ${props => props.theme.colors.responses[props.type].backgroundColor};\n &:focus {\n outline: auto;\n outline-color: ${props => props.theme.colors.responses[props.type].color};\n }\n ${props => props.empty && `\ncursor: default;\n&::before {\n content: \"—\";\n font-weight: bold;\n width: 1.5em;\n text-align: center;\n display: inline-block;\n}\n&:focus {\n outline: 0;\n}\n` || ''};\n`;\nexport const ResponseDetailsWrap = styled.div`\n padding: 10px;\n`;\nexport const HeadersCaption = styled(UnderlinedHeader.withComponent('caption'))`\n text-align: left;\n margin-top: 1em;\n caption-side: top;\n`;","import * as React from 'react';\nimport { PropertiesTable } from '../../common-elements/fields-layout';\nimport { FieldModel } from '../../services/models';\nimport { mapWithLast } from '../../utils';\nimport { Field } from '../Fields/Field';\nimport { HeadersCaption } from './styled.elements';\nexport interface ResponseHeadersProps {\n headers?: FieldModel[];\n}\nexport class ResponseHeaders extends React.PureComponent {\n render() {\n const {\n headers\n } = this.props;\n\n if (headers === undefined || headers.length === 0) {\n return null;\n }\n\n return \n Response Headers \n \n {mapWithLast(headers, (header, isLast) => )}\n \n ;\n }\n\n}","import * as React from 'react';\nimport { ResponseModel } from '../../services/models';\nimport { UnderlinedHeader } from '../../common-elements';\nimport { DropdownOrLabel } from '../DropdownOrLabel/DropdownOrLabel';\nimport { MediaTypesSwitch } from '../MediaTypeSwitch/MediaTypesSwitch';\nimport { Schema } from '../Schema';\nimport { Markdown } from '../Markdown/Markdown';\nimport { ResponseHeaders } from './ResponseHeaders';\nexport class ResponseDetails extends React.PureComponent<{\n response: ResponseModel;\n}> {\n render() {\n const {\n description,\n headers,\n content\n } = this.props.response;\n return <>\n {description && }\n \n \n {({\n schema\n }) => {\n return ;\n }}\n \n ;\n }\n\n private renderDropdown = props => {\n return \n Response Schema: \n ;\n };\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { ResponseModel } from '../../services/models';\nimport { ResponseDetails } from './ResponseDetails';\nimport { ResponseDetailsWrap, StyledResponseTitle } from './styled.elements';\n@observer\nexport class ResponseView extends React.Component<{\n response: ResponseModel;\n}> {\n toggle = () => {\n this.props.response.toggle();\n };\n\n render() {\n const {\n headers,\n type,\n summary,\n description,\n code,\n expanded,\n content\n } = this.props.response;\n const mimes = content === undefined ? [] : content.mediaTypes.filter(mime => mime.schema !== undefined);\n const empty = headers.length === 0 && mimes.length === 0 && !description;\n return
\n \n {expanded && !empty && \n \n }\n
;\n }\n\n}","import * as React from 'react';\nimport { ResponseModel } from '../../services/models';\nimport styled from '../../styled-components';\nimport { ResponseView } from './Response';\nconst ResponsesHeader = styled.h3`\n font-size: 1.3em;\n padding: 0.2em 0;\n margin: 3em 0 1.1em;\n color: ${({\n theme\n}) => theme.colors.text.primary};\n font-weight: normal;\n`;\nexport interface ResponseListProps {\n responses: ResponseModel[];\n isCallback?: boolean;\n}\nexport class ResponsesList extends React.PureComponent {\n render() {\n const {\n responses,\n isCallback\n } = this.props;\n\n if (!responses || responses.length === 0) {\n return null;\n }\n\n return
\n {isCallback ? 'Callback responses' : 'Responses'}\n {responses.map(response => {\n return ;\n })}\n
;\n }\n\n}","// import { transparentize } from 'polished';\nimport * as React from 'react';\nimport styled from '../../styled-components';\nimport { Link, UnderlinedHeader } from '../../common-elements/';\nimport { SecurityRequirementModel } from '../../services/models/SecurityRequirement';\nimport { linksCss } from '../Markdown/styled.elements';\nconst ScopeName = styled.code`\n font-size: ${props => props.theme.typography.code.fontSize};\n font-family: ${props => props.theme.typography.code.fontFamily};\n border: 1px solid ${({\n theme\n}) => theme.colors.border.dark};\n margin: 0 3px;\n padding: 0.2em;\n display: inline-block;\n line-height: 1;\n\n &:after {\n content: ',';\n }\n &:last-child:after {\n content: none;\n }\n`;\nconst SecurityRequirementAndWrap = styled.span`\n &:after {\n content: ' AND ';\n font-weight: bold;\n }\n\n &:last-child:after {\n content: none;\n }\n\n ${linksCss};\n`;\nconst SecurityRequirementOrWrap = styled.span`\n &:before {\n content: '( ';\n font-weight: bold;\n }\n &:after {\n content: ' ) OR ';\n font-weight: bold;\n }\n &:last-child:after {\n content: ' )';\n }\n\n &:only-child:before,\n &:only-child:after {\n content: none;\n }\n\n ${linksCss};\n`;\nexport interface SecurityRequirementProps {\n security: SecurityRequirementModel;\n}\nexport class SecurityRequirement extends React.PureComponent {\n render() {\n const security = this.props.security;\n return \n {security.schemes.map(scheme => {\n return \n {scheme.id}\n {scheme.scopes.length > 0 && ' ('}\n {scheme.scopes.map(scope => {scope})}\n {scheme.scopes.length > 0 && ') '}\n ;\n })}\n ;\n }\n\n}\nconst AuthHeaderColumn = styled.div`\n flex: 1;\n`;\nconst SecuritiesColumn = styled.div`\n width: ${props => props.theme.schema.defaultDetailsWidth};\n`;\nconst AuthHeader = styled(UnderlinedHeader)`\n display: inline-block;\n margin: 0;\n`;\nconst Wrap = styled.div`\n width: 100%;\n display: flex;\n margin: 1em 0;\n`;\nexport interface SecurityRequirementsProps {\n securities: SecurityRequirementModel[];\n}\nexport class SecurityRequirements extends React.PureComponent {\n render() {\n const securities = this.props.securities;\n\n if (!securities.length) {\n return null;\n }\n\n return \n \n Authorizations: \n \n \n {securities.map((security, idx) => )}\n \n ;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { OperationModel } from '../../services/models';\nimport styled from '../../styled-components';\nimport { Endpoint } from '../Endpoint/Endpoint';\nimport { ExternalDocumentation } from '../ExternalDocumentation/ExternalDocumentation';\nimport { Extensions } from '../Fields/Extensions';\nimport { Markdown } from '../Markdown/Markdown';\nimport { Parameters } from '../Parameters/Parameters';\nimport { ResponsesList } from '../Responses/ResponsesList';\nimport { SecurityRequirements } from '../SecurityRequirement/SecurityRequirement';\nimport { CallbackDetailsWrap } from './styled.elements';\nexport interface CallbackDetailsProps {\n operation: OperationModel;\n}\n@observer\nexport class CallbackDetails extends React.Component {\n render() {\n const {\n operation\n } = this.props;\n const {\n description,\n externalDocs\n } = operation;\n const hasDescription = !!(description || externalDocs);\n return \n {hasDescription && \n {description !== undefined && }\n {externalDocs && }\n }\n \n \n \n \n \n ;\n }\n\n}\nconst Description = styled.div`\n margin-bottom: ${({\n theme\n}) => theme.spacing.unit * 3}px;\n`;","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { OperationModel } from '../../services/models';\nimport { StyledCallbackTitle } from './styled.elements';\nimport { CallbackDetails } from './CallbackDetails';\n@observer\nexport class CallbackOperation extends React.Component<{\n callbackOperation: OperationModel;\n}> {\n toggle = () => {\n this.props.callbackOperation.toggle();\n };\n\n render() {\n const {\n name,\n expanded,\n httpVerb,\n deprecated\n } = this.props.callbackOperation;\n return <>\n \n {expanded && }\n ;\n }\n\n}","import * as React from 'react';\nimport { CallbackModel } from '../../services/models';\nimport styled from '../../styled-components';\nimport { CallbackOperation } from './CallbackOperation';\nexport interface CallbacksListProps {\n callbacks: CallbackModel[];\n}\nexport class CallbacksList extends React.PureComponent {\n render() {\n const {\n callbacks\n } = this.props;\n\n if (!callbacks || callbacks.length === 0) {\n return null;\n }\n\n return
\n Callbacks \n {callbacks.map(callback => {\n return callback.operations.map((operation, index) => {\n return ;\n });\n })}\n
;\n }\n\n}\nconst CallbacksHeader = styled.h3`\n font-size: 1.3em;\n padding: 0.2em 0;\n margin: 3em 0 1.1em;\n color: ${({\n theme\n}) => theme.colors.text.primary};\n font-weight: normal;\n`;","export * from './CallbackOperation';\nexport * from './CallbackTitle';\nexport * from './CallbacksList';","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { DropdownProps, DropdownOption } from '../../common-elements/dropdown';\nimport { DropdownLabel, DropdownWrapper } from '../PayloadSamples/styled.elements';\nexport interface GenericChildrenSwitcherProps {\n items?: T[];\n options: DropdownOption[];\n label?: string;\n renderDropdown: (props: DropdownProps) => JSX.Element;\n children: (activeItem: T) => JSX.Element;\n}\nexport interface GenericChildrenSwitcherState {\n activeItemIdx: number;\n}\n/**\n * TODO: Refactor this component:\n * Implement rendering dropdown/label directly in this component\n * Accept as a parameter mapper-function for building dropdown option labels\n */\n\n@observer\nexport class GenericChildrenSwitcher extends React.Component, GenericChildrenSwitcherState> {\n constructor(props) {\n super(props);\n this.state = {\n activeItemIdx: 0\n };\n }\n\n switchItem = ({\n idx\n }) => {\n if (this.props.items) {\n this.setState({\n activeItemIdx: idx\n });\n }\n };\n\n render() {\n const {\n items\n } = this.props;\n\n if (!items || !items.length) {\n return null;\n }\n\n const Wrapper = ({\n children\n }) => this.props.label ? \n {this.props.label}\n {children}\n : children;\n\n return <>\n \n {this.props.renderDropdown({\n value: this.props.options[this.state.activeItemIdx].value,\n options: this.props.options,\n onChange: this.switchItem,\n ariaLabel: this.props.label || 'Callback'\n })}\n \n\n {this.props.children(items[this.state.activeItemIdx])}\n ;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { MediaTypeSamples } from './MediaTypeSamples';\nimport { MediaContentModel } from '../../services/models';\nimport { DropdownOrLabel } from '../DropdownOrLabel/DropdownOrLabel';\nimport { MediaTypesSwitch } from '../MediaTypeSwitch/MediaTypesSwitch';\nimport { InvertedSimpleDropdown, MimeLabel } from './styled.elements';\nexport interface PayloadSamplesProps {\n content: MediaContentModel;\n}\n@observer\nexport class PayloadSamples extends React.Component {\n render() {\n const mimeContent = this.props.content;\n\n if (mimeContent === undefined) {\n return null;\n }\n\n return \n {mediaType => }\n ;\n }\n\n private renderDropdown = props => {\n return ;\n };\n}","import * as React from 'react';\nimport styled from '../../styled-components';\nimport { DropdownProps } from '../../common-elements';\nimport { PayloadSamples } from '../PayloadSamples/PayloadSamples';\nimport { OperationModel } from '../../services/models';\nimport { XPayloadSample } from '../../services/models/Operation';\nimport { isPayloadSample } from '../../services';\nexport interface PayloadSampleProps {\n callback: OperationModel;\n renderDropdown: (props: DropdownProps) => JSX.Element;\n}\nexport class CallbackPayloadSample extends React.Component {\n render() {\n const payloadSample = (this.props.callback.codeSamples.find(sample => isPayloadSample(sample)) as XPayloadSample | undefined);\n\n if (!payloadSample) {\n return null;\n }\n\n return \n \n ;\n }\n\n}\nexport const PayloadSampleWrapper = styled.div`\n margin-top: 15px;\n`;","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport styled from '../../styled-components';\nimport { RightPanelHeader } from '../../common-elements';\nimport { RedocNormalizedOptions } from '../../services';\nimport { CallbackModel } from '../../services/models';\nimport { OptionsContext } from '../OptionsProvider';\nimport { GenericChildrenSwitcher } from '../GenericChildrenSwitcher/GenericChildrenSwitcher';\nimport { DropdownOrLabel } from '../DropdownOrLabel/DropdownOrLabel';\nimport { InvertedSimpleDropdown, MimeLabel } from '../PayloadSamples/styled.elements';\nimport { CallbackPayloadSample } from './CallbackReqSamples';\nexport interface CallbackSamplesProps {\n callbacks: CallbackModel[];\n}\n@observer\nexport class CallbackSamples extends React.Component {\n static contextType = OptionsContext;\n context: RedocNormalizedOptions;\n private renderDropdown = props => {\n return ;\n };\n\n render() {\n const {\n callbacks\n } = this.props;\n\n if (!callbacks || callbacks.length === 0) {\n return null;\n }\n\n const operations = callbacks.map(callback => callback.operations.map(operation => operation)).reduce((a, b) => a.concat(b), []);\n const hasSamples = operations.some(operation => operation.codeSamples.length > 0);\n\n if (!hasSamples) {\n return null;\n }\n\n const dropdownOptions = operations.map((callback, idx) => {\n return {\n value: `${callback.httpVerb.toUpperCase()}: ${callback.name}`,\n idx\n };\n });\n return
\n Callback payload samples \n\n \n \n {callback => }\n \n \n
;\n }\n\n}\nexport const SamplesWrapper = styled.div`\n background: ${({\n theme\n}) => theme.codeBlock.backgroundColor};\n padding: ${props => props.theme.spacing.unit * 4}px;\n`;","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { isPayloadSample, OperationModel, RedocNormalizedOptions } from '../../services';\nimport { PayloadSamples } from '../PayloadSamples/PayloadSamples';\nimport { SourceCodeWithCopy } from '../SourceCode/SourceCode';\nimport { RightPanelHeader, Tab, TabList, TabPanel, Tabs } from '../../common-elements';\nimport { OptionsContext } from '../OptionsProvider';\nexport interface RequestSamplesProps {\n operation: OperationModel;\n}\n@observer\nexport class RequestSamples extends React.Component {\n static contextType = OptionsContext;\n context: RedocNormalizedOptions;\n operation: OperationModel;\n\n render() {\n const {\n operation\n } = this.props;\n const samples = operation.codeSamples;\n const hasSamples = samples.length > 0;\n const hideTabList = samples.length === 1 ? this.context.hideSingleRequestSampleTab : false;\n return hasSamples &&
\n Request samples \n\n \n \n {samples.map(sample => \n {isPayloadSample(sample) ?
\n \n
: }\n
)}\n
\n
|| null;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { OperationModel } from '../../services/models';\nimport { RightPanelHeader, Tab, TabList, TabPanel, Tabs } from '../../common-elements';\nimport { PayloadSamples } from '../PayloadSamples/PayloadSamples';\nexport interface ResponseSamplesProps {\n operation: OperationModel;\n}\n@observer\nexport class ResponseSamples extends React.Component {\n operation: OperationModel;\n\n render() {\n const {\n operation\n } = this.props;\n const responses = operation.responses.filter(response => {\n return response.content && response.content.hasSample;\n });\n return responses.length > 0 &&
\n Response samples \n\n \n \n {responses.map(response => \n {response.code}\n )}\n \n {responses.map(response => \n
\n \n
\n
)}\n
\n
|| null;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { Badge, DarkRightPanel, H2, MiddlePanel, Row } from '../../common-elements';\nimport { ShareLink } from '../../common-elements/linkify';\nimport { OperationModel } from '../../services/models';\nimport styled from '../../styled-components';\nimport { CallbacksList } from '../Callbacks';\nimport { CallbackSamples } from '../CallbackSamples/CallbackSamples';\nimport { Endpoint } from '../Endpoint/Endpoint';\nimport { ExternalDocumentation } from '../ExternalDocumentation/ExternalDocumentation';\nimport { Extensions } from '../Fields/Extensions';\nimport { Markdown } from '../Markdown/Markdown';\nimport { OptionsContext } from '../OptionsProvider';\nimport { Parameters } from '../Parameters/Parameters';\nimport { RequestSamples } from '../RequestSamples/RequestSamples';\nimport { ResponsesList } from '../Responses/ResponsesList';\nimport { ResponseSamples } from '../ResponseSamples/ResponseSamples';\nimport { SecurityRequirements } from '../SecurityRequirement/SecurityRequirement';\nconst OperationRow = styled(Row)`\n backface-visibility: hidden;\n contain: content;\n overflow: hidden;\n`;\nconst Description = styled.div`\n margin-bottom: ${({\n theme\n}) => theme.spacing.unit * 6}px;\n`;\nexport interface OperationProps {\n operation: OperationModel;\n}\n@observer\nexport class Operation extends React.Component {\n render() {\n const {\n operation\n } = this.props;\n const {\n name: summary,\n description,\n deprecated,\n externalDocs,\n isWebhook\n } = operation;\n const hasDescription = !!(description || externalDocs);\n return \n {options => \n \n

\n \n {summary} {deprecated && Deprecated }\n {isWebhook && Webhook }\n

\n {options.pathInMiddlePanel && !isWebhook && }\n {hasDescription && \n {description !== undefined && }\n {externalDocs && }\n }\n \n \n \n \n \n
\n \n {!options.pathInMiddlePanel && !isWebhook && }\n \n \n \n \n
}\n
;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { ExternalDocumentation } from '../ExternalDocumentation/ExternalDocumentation';\nimport { AdvancedMarkdown } from '../Markdown/AdvancedMarkdown';\nimport { H1, H2, MiddlePanel, Row, Section, ShareLink } from '../../common-elements';\nimport { ContentItemModel } from '../../services/MenuBuilder';\nimport { GroupModel, OperationModel } from '../../services/models';\nimport { Operation } from '../Operation/Operation';\n@observer\nexport class ContentItems extends React.Component<{\n items: ContentItemModel[];\n}> {\n render() {\n const items = this.props.items;\n\n if (items.length === 0) {\n return null;\n }\n\n return items.filter(item => item.type !== 'extra').map(item => {\n return ;\n });\n }\n\n}\nexport interface ContentItemProps {\n item: ContentItemModel;\n}\n@observer\nexport class ContentItem extends React.Component {\n render() {\n const item = this.props.item;\n let content;\n const {\n type\n } = item;\n\n switch (type) {\n case 'group':\n content = null;\n break;\n\n case 'tag':\n case 'section':\n content = ;\n break;\n\n case 'operation':\n content = ;\n break;\n\n default:\n content = ;\n }\n\n return <>\n {content &&
\n {content}\n
}\n {item.items && }\n ;\n }\n\n}\n\nconst middlePanelWrap = component => {component};\n\n@observer\nexport class SectionItem extends React.Component {\n render() {\n const {\n name,\n description,\n externalDocs,\n level\n } = (this.props.item as GroupModel);\n const Header = level === 2 ? H2 : H1;\n return <>\n \n \n
\n \n {name}\n
\n
\n
\n \n {externalDocs && \n \n \n \n }\n ;\n }\n\n}\n@observer\nexport class OperationItem extends React.Component<{\n item: OperationModel;\n}> {\n render() {\n return ;\n }\n\n}","// import { observe } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { ShelfIcon } from '../../common-elements/shelfs';\nimport { IMenuItem, OperationModel } from '../../services';\nimport { shortenHTTPVerb } from '../../utils/openapi';\nimport { MenuItems } from './MenuItems';\nimport { MenuItemLabel, MenuItemLi, MenuItemTitle, OperationBadge } from './styled.elements';\nimport { l } from '../../services/Labels';\nimport { OptionsContext } from '../OptionsProvider';\nexport interface MenuItemProps {\n item: IMenuItem;\n onActivate?: (item: IMenuItem) => void;\n withoutChildren?: boolean;\n}\n@observer\nexport class MenuItem extends React.Component {\n static contextType = OptionsContext;\n ref = React.createRef();\n activate = (evt: React.MouseEvent) => {\n this.props.onActivate!(this.props.item);\n evt.stopPropagation();\n };\n\n componentDidMount() {\n this.scrollIntoViewIfActive();\n }\n\n componentDidUpdate() {\n this.scrollIntoViewIfActive();\n }\n\n scrollIntoViewIfActive() {\n if (this.props.item.active && this.ref.current) {\n this.ref.current.scrollIntoViewIfNeeded();\n }\n }\n\n render() {\n const {\n item,\n withoutChildren\n } = this.props;\n const hideShelfIcon = this.context.hideShelfIcon;\n return \n {item.type === 'operation' ? : \n \n {item.name}\n {this.props.children}\n \n {!hideShelfIcon && item.depth > 0 && item.items.length > 0 && || null}\n }\n {!withoutChildren && item.items && item.items.length > 0 && }\n ;\n }\n\n}\nexport interface OperationMenuItemContentProps {\n item: OperationModel;\n}\n@observer\nexport class OperationMenuItemContent extends React.Component {\n static contextType = OptionsContext;\n ref = React.createRef();\n\n componentDidUpdate() {\n if (this.props.item.active && this.ref.current) {\n this.ref.current.scrollIntoViewIfNeeded();\n }\n }\n\n render() {\n const {\n item\n } = this.props;\n const hideHttpVerbsMenu = this.context.hideHttpVerbs;\n return \n {item.isWebhook ? {l('webhook')} : !hideHttpVerbsMenu && {shortenHTTPVerb(item.httpVerb)}}\n \n {item.name}\n {this.props.children}\n \n ;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { IMenuItem } from '../../services';\nimport { ExtraContent } from '../../services/models/ExtraContent';\nimport { MenuItem } from './MenuItem';\nimport { MenuItemUl } from './styled.elements';\nexport interface MenuItemsProps {\n items: IMenuItem[];\n expanded?: boolean;\n onActivate?: (item: IMenuItem) => void;\n style?: React.CSSProperties;\n root?: boolean;\n extra?: any;\n className?: string;\n}\n@observer\nexport class MenuItems extends React.Component {\n render() {\n const {\n items,\n root,\n className,\n extra\n } = this.props;\n const expanded = this.props.expanded == null ? true : this.props.expanded;\n return \n {extra && extra.map((headline, ids) => )}\n {items.map((item, idx) => )}\n ;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { IMenuItem, MenuStore } from '../../services/MenuStore';\nimport { OptionsContext } from '../OptionsProvider';\nimport { MenuItems } from './MenuItems';\nimport { PerfectScrollbarWrap } from '../../common-elements/perfect-scrollbar';\nimport { RedocAttribution } from './styled.elements';\n@observer\nexport class SideMenu extends React.Component<{\n menu: MenuStore;\n className?: string;\n extra?: any;\n}> {\n static contextType = OptionsContext;\n private _updateScroll?: () => void;\n\n render() {\n const store = this.props.menu;\n return \n \n \n \n Documentation Powered by ReDoc\n \n \n ;\n }\n\n activate = (item: IMenuItem) => {\n if (item && item.active && this.context.menuToggle) {\n return item.expanded ? item.collapse() : item.expand();\n }\n\n this.props.menu.activateAndScroll(item, true);\n setTimeout(() => {\n if (this._updateScroll) {\n this._updateScroll();\n }\n });\n };\n private saveScrollUpdate = upd => {\n this._updateScroll = upd;\n };\n}","import * as React from 'react';\nimport styled from '../../styled-components';\nexport const AnimatedChevronButton = ({\n open\n}: {\n open: boolean;\n}) => {\n const iconOffset = open ? 8 : -4;\n return \n \n \n ;\n}; // adapted from reactjs.org\n\nconst ChevronSvg = ({\n size = 10,\n className = '',\n style\n}) => \n \n \n \n ;\n\nconst ChevronContainer = styled.div`\n user-select: none;\n width: 20px;\n height: 20px;\n align-self: center;\n display: flex;\n flex-direction: column;\n color: ${props => props.theme.colors.primary.main};\n`;","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { MenuStore } from '../../services/MenuStore';\nimport { RedocNormalizedOptions, RedocRawOptions } from '../../services/RedocNormalizedOptions';\nimport styled, { media } from '../../styled-components';\nimport { IS_BROWSER } from '../../utils/index';\nimport { OptionsContext } from '../OptionsProvider';\nimport { AnimatedChevronButton } from './ChevronSvg';\nlet Stickyfill;\n\nif (IS_BROWSER) {\n Stickyfill = require('stickyfill');\n}\n\nexport interface StickySidebarProps {\n className?: string;\n scrollYOffset?: RedocRawOptions['scrollYOffset']; // passed directly or via context\n\n menu: MenuStore;\n}\nexport interface StickySidebarState {\n offsetTop?: string;\n}\nconst stickyfill = Stickyfill && Stickyfill();\nconst StyledStickySidebar = styled.div<{\n open?: boolean;\n}>`\n width: ${props => props.theme.sidebar.width};\n background-color: ${props => props.theme.sidebar.backgroundColor};\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n backface-visibility: hidden;\n /* contain: strict; TODO: breaks layout since Chrome 80*/\n\n height: 100vh;\n position: sticky;\n position: -webkit-sticky;\n top: 0;\n\n ${media.lessThan('small')`\n position: fixed;\n z-index: 20;\n width: 100%;\n background: ${({\n theme\n}) => theme.sidebar.backgroundColor};\n display: ${props => props.open ? 'flex' : 'none'};\n `};\n\n @media print {\n display: none;\n }\n`;\nconst FloatingButton = styled.div`\n outline: none;\n user-select: none;\n background-color: #f2f2f2;\n color: ${props => props.theme.colors.primary.main};\n display: none;\n cursor: pointer;\n position: fixed;\n right: 20px;\n z-index: 100;\n border-radius: 50%;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.3);\n ${media.lessThan('small')`\n display: flex;\n `};\n\n bottom: 44px;\n\n width: 60px;\n height: 60px;\n padding: 0 20px;\n\n @media print {\n display: none;\n }\n`;\n@observer\nexport class StickyResponsiveSidebar extends React.Component {\n static contextType = OptionsContext;\n context!: React.ContextType;\n state: StickySidebarState = {\n offsetTop: '0px'\n };\n stickyElement: Element;\n\n componentDidMount() {\n if (stickyfill) {\n stickyfill.add(this.stickyElement);\n } // rerender when hydrating from SSR\n // see https://github.com/facebook/react/issues/8017#issuecomment-256351955\n\n\n this.setState({\n offsetTop: this.getScrollYOffset(this.context)\n });\n }\n\n componentWillUnmount() {\n if (stickyfill) {\n stickyfill.remove(this.stickyElement);\n }\n }\n\n getScrollYOffset(options: RedocNormalizedOptions) {\n let top;\n\n if (this.props.scrollYOffset !== undefined) {\n top = RedocNormalizedOptions.normalizeScrollYOffset(this.props.scrollYOffset)();\n } else {\n top = options.scrollYOffset();\n }\n\n return top + 'px';\n }\n\n render() {\n const open = this.props.menu.sideBarOpened;\n const top = this.state.offsetTop;\n return <>\n {\n this.stickyElement = (el as any);\n }}>\n {this.props.children}\n \n \n \n \n ;\n }\n\n private toggleNavMenu = () => {\n this.props.menu.toggleSidebar();\n };\n}","import styled, { media } from '../../styled-components';\nexport const RedocWrap = styled.div`\n ${({\n theme\n}) => `\n font-family: ${theme.typography.fontFamily};\n font-size: ${theme.typography.fontSize};\n font-weight: ${theme.typography.fontWeightRegular};\n line-height: ${theme.typography.lineHeight};\n color: ${theme.colors.text.primary};\n display: flex;\n position: relative;\n text-align: left;\n\n -webkit-font-smoothing: ${theme.typography.smoothing};\n font-smoothing: ${theme.typography.smoothing};\n ${theme.typography.optimizeSpeed && 'text-rendering: optimizeSpeed !important' || ''};\n\n tap-highlight-color: rgba(0, 0, 0, 0);\n text-size-adjust: 100%;\n\n * {\n box-sizing: border-box;\n -webkit-tap-highlight-color: rgba(255, 255, 255, 0);\n }\n`};\n`;\nexport const ApiContentWrap = styled.div`\n z-index: 1;\n position: relative;\n overflow: hidden;\n width: calc(100% - ${props => props.theme.sidebar.width});\n ${media.lessThan('small', true)`\n width: 100%;\n `};\n\n contain: layout;\n`;\nexport const BackgroundStub = styled.div`\n background: ${({\n theme\n}) => theme.rightPanel.backgroundColor};\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n width: ${({\n theme\n}) => {\n if (theme.rightPanel.width.endsWith('%')) {\n const percents = parseInt(theme.rightPanel.width, 10);\n return `calc((100% - ${theme.sidebar.width}) * ${percents / 100})`;\n } else {\n return theme.rightPanel.width;\n }\n}};\n ${media.lessThan('medium', true)`\n display: none;\n `};\n`;","import * as React from 'react';\nimport { darken, getLuminance, lighten } from 'polished';\nimport styled from '../../styled-components';\nimport { MenuItemLabel } from '../SideMenu/styled.elements';\nexport const SearchWrap = styled.div`\n padding: 5px 0;\n`;\nexport const SearchInput = styled.input.attrs(() => ({\n className: 'search-input'\n}))`\n width: calc(100% - ${props => props.theme.spacing.unit * 8}px);\n box-sizing: border-box;\n margin: 0 ${props => props.theme.spacing.unit * 4}px;\n padding: 5px ${props => props.theme.spacing.unit * 2}px 5px\n ${props => props.theme.spacing.unit * 4}px;\n border: 0;\n border-bottom: 1px solid\n ${({\n theme\n}) => (getLuminance(theme.sidebar.backgroundColor) > 0.5 ? darken : lighten)(0.1, theme.sidebar.backgroundColor)};\n font-family: ${({\n theme\n}) => theme.typography.fontFamily};\n font-weight: bold;\n font-size: 13px;\n color: ${props => props.theme.sidebar.textColor};\n background-color: transparent;\n outline: none;\n`;\nexport const SearchIcon = styled((props: {\n className?: string;\n}) => \n \n ).attrs({\n className: 'search-icon'\n})`\n position: absolute;\n left: ${props => props.theme.spacing.unit * 4}px;\n height: 1.8em;\n width: 0.9em;\n\n path {\n fill: ${props => props.theme.sidebar.textColor};\n }\n`;\nexport const SearchResultsBox = styled.div`\n padding: ${props => props.theme.spacing.unit}px 0;\n background-color: ${({\n theme\n}) => darken(0.05, theme.sidebar.backgroundColor)}};\n color: ${props => props.theme.sidebar.textColor};\n min-height: 150px;\n max-height: 250px;\n border-top: ${({\n theme\n}) => darken(0.1, theme.sidebar.backgroundColor)}};\n border-bottom: ${({\n theme\n}) => darken(0.1, theme.sidebar.backgroundColor)}};\n margin-top: 10px;\n line-height: 1.4;\n font-size: 0.9em;\n\n ${MenuItemLabel} {\n padding-top: 6px;\n padding-bottom: 6px;\n\n &:hover,\n &.active {\n background-color: ${({\n theme\n}) => darken(0.1, theme.sidebar.backgroundColor)};\n }\n\n > svg {\n display: none;\n }\n }\n`;\nexport const ClearIcon = styled.i`\n position: absolute;\n display: inline-block;\n width: ${props => props.theme.spacing.unit * 2}px;\n text-align: center;\n right: ${props => props.theme.spacing.unit * 4}px;\n line-height: 2em;\n vertical-align: middle;\n margin-right: 2px;\n cursor: pointer;\n font-style: normal;\n color: '#666';\n`;","import * as React from 'react';\nimport { IMenuItem } from '../../services/MenuStore';\nimport { SearchStore } from '../../services/SearchStore';\nimport { MenuItem } from '../SideMenu/MenuItem';\nimport { MarkerService } from '../../services/MarkerService';\nimport { SearchResult } from '../../services/SearchWorker.worker';\nimport { bind, debounce } from 'decko';\nimport { PerfectScrollbarWrap } from '../../common-elements/perfect-scrollbar';\nimport { ClearIcon, SearchIcon, SearchInput, SearchResultsBox, SearchWrap } from './styled.elements';\nexport interface SearchBoxProps {\n search: SearchStore;\n marker: MarkerService;\n getItemById: (id: string) => IMenuItem | undefined;\n onActivate: (item: IMenuItem) => void;\n className?: string;\n}\nexport interface SearchBoxState {\n results: SearchResult[];\n term: string;\n activeItemIdx: number;\n}\nexport class SearchBox extends React.PureComponent {\n activeItemRef: MenuItem | null = null;\n\n constructor(props) {\n super(props);\n this.state = {\n results: [],\n term: '',\n activeItemIdx: -1\n };\n }\n\n clearResults(term: string) {\n this.setState({\n results: [],\n term\n });\n this.props.marker.unmark();\n }\n\n clear = () => {\n this.setState({\n results: [],\n term: '',\n activeItemIdx: -1\n });\n this.props.marker.unmark();\n };\n handleKeyDown = (event: React.KeyboardEvent) => {\n if (event.keyCode === 27) {\n // ESQ\n this.clear();\n }\n\n if (event.keyCode === 40) {\n // Arrow down\n this.setState({\n activeItemIdx: Math.min(this.state.activeItemIdx + 1, this.state.results.length - 1)\n });\n event.preventDefault();\n }\n\n if (event.keyCode === 38) {\n // Arrow up\n this.setState({\n activeItemIdx: Math.max(0, this.state.activeItemIdx - 1)\n });\n event.preventDefault();\n }\n\n if (event.keyCode === 13) {\n // enter\n const activeResult = this.state.results[this.state.activeItemIdx];\n\n if (activeResult) {\n const item = this.props.getItemById(activeResult.meta);\n\n if (item) {\n this.props.onActivate(item);\n }\n }\n }\n };\n\n setResults(results: SearchResult[], term: string) {\n this.setState({\n results\n });\n this.props.marker.mark(term);\n }\n\n @bind\n @debounce(400)\n searchCallback(searchTerm: string) {\n this.props.search.search(searchTerm).then(res => {\n this.setResults(res, searchTerm);\n });\n }\n\n search = (event: React.ChangeEvent) => {\n const q = event.target.value;\n\n if (q.length < 3) {\n this.clearResults(q);\n return;\n }\n\n this.setState({\n term: q\n }, () => this.searchCallback(this.state.term));\n };\n\n render() {\n const {\n activeItemIdx\n } = this.state;\n const results = this.state.results.map(res => ({\n item: this.props.getItemById(res.meta)!,\n score: res.score\n }));\n results.sort((a, b) => b.score - a.score);\n return \n {this.state.term && ×}\n \n \n {results.length > 0 && \n \n {results.map((res, idx) => )}\n \n }\n ;\n }\n\n}","import * as React from 'react';\nimport Highlight, { defaultProps, Language } from 'prism-react-renderer';\nimport styled from '../../../styled-components';\ntype Props = {\n className: string;\n style: any;\n componentId?: string;\n};\nconst OverflowHighlighter = styled.pre`\n overflow-x: scroll;\n`;\n\nconst Highlighter: React.FC = ({\n children,\n className\n}) => {\n console.log('className', className);\n const language = className ? className.replace(/language-/, '').trim() : 'bash';\n\n if (!children) {\n return null;\n }\n\n return \n {({\n className,\n style,\n tokens,\n getLineProps,\n getTokenProps\n }) => \n {tokens.map((line, i) =>
\n {line.map((token, key) => )}\n
)}\n
}\n
;\n};\n\nexport default Highlighter;","import * as React from 'react';\nimport { DarkRightPanel, H1, H2, MiddlePanel, PropertiesTable, Row, Section, ShareLink } from '../common-elements';\nimport Highlighter from './code/Highlighter';\n\nconst H1Comp = ({\n children,\n ...props\n}) => {\n return

\n \n {children}\n

;\n};\n\nconst H2Comp = ({\n children,\n ...props\n}) =>

\n \n {children}\n

;\n\nconst Wrapper = ({\n children\n}) => {\n const getSections = children => {\n let currentSection: any[] = [];\n let currentId: number | null = null;\n let currentCodeBlocks: any[] = [];\n const result: any[] = [];\n children.forEach(child => {\n const type = child.props.mdxType;\n\n if (['h1', 'h2', 'h3', 'h4', 'h5'].includes(type)) {\n if (currentSection.length > 0) {\n result.push({\n id: currentId,\n middle: currentSection,\n right: currentCodeBlocks\n });\n }\n\n currentId = child.props.id;\n currentSection = [];\n currentCodeBlocks = [];\n }\n\n if (['code', 'pre', 'blockquote'].includes(type)) {\n currentCodeBlocks.push(child);\n } else {\n currentSection.push(child);\n }\n });\n\n if (currentSection.length > 0) {\n result.push({\n id: currentId,\n middle: currentSection,\n right: currentCodeBlocks\n });\n }\n\n return result;\n };\n\n const sections = getSections(children);\n console.log('sections', sections);\n return <>\n {sections.map(section =>
\n \n {section.middle && {section.middle}}\n {section.right && {section.right}}\n \n
)}\n ;\n};\n\nexport default {\n code: Highlighter,\n h1: H1Comp,\n h2: H2Comp,\n table: PropertiesTable,\n wrapper: Wrapper\n};","import * as PropTypes from 'prop-types';\nimport * as React from 'react';\nimport { MDXProvider } from '@mdx-js/react';\nimport { ThemeProvider } from '../../styled-components';\nimport { OptionsProvider } from '../OptionsProvider';\nimport { AppStore } from '../../services';\nimport { ApiInfo } from '../ApiInfo/';\nimport { ApiLogo } from '../ApiLogo/ApiLogo';\nimport { ContentItems } from '../ContentItems/ContentItems';\nimport { SideMenu } from '../SideMenu/SideMenu';\nimport { StickyResponsiveSidebar } from '../StickySidebar/StickyResponsiveSidebar';\nimport { ApiContentWrap, BackgroundStub, RedocWrap } from './styled.elements';\nimport { SearchBox } from '../SearchBox/SearchBox';\nimport { StoreProvider } from '../StoreBuilder';\nimport components from '../../markdown/components';\nexport interface RedocProps {\n store: AppStore;\n}\nexport class Redoc extends React.Component {\n static propTypes = {\n store: PropTypes.instanceOf(AppStore).isRequired\n };\n\n componentDidMount() {\n this.props.store.onDidMount();\n }\n\n componentWillUnmount() {\n this.props.store.dispose();\n }\n\n render() {\n const {\n store: {\n spec,\n menu,\n options,\n search,\n marker,\n markdownIndex\n }\n } = this.props;\n const store = this.props.store;\n console.log('components', components);\n return \n \n \n \n \n \n \n {!options.disableSearch && || null}\n \n \n \n \n {markdownIndex && markdownIndex.components.map((MDXComponent, idx) => {\n return ;\n })}\n \n \n \n \n \n \n \n ;\n }\n\n}","import * as PropTypes from 'prop-types';\nimport * as React from 'react';\nimport { RedocNormalizedOptions, RedocRawOptions } from '../services/RedocNormalizedOptions';\nimport { ErrorBoundary } from './ErrorBoundary';\nimport { Loading } from './Loading/Loading';\nimport { Redoc } from './Redoc/Redoc';\nimport { StoreBuilder } from './StoreBuilder';\nimport { MarkdownIndex } from '../markdown';\nexport interface RedocStandaloneProps {\n spec?: object;\n specUrl?: string;\n options?: RedocRawOptions;\n markdownIndex?: MarkdownIndex;\n onLoaded?: (e?: Error) => any;\n}\nexport class RedocStandalone extends React.PureComponent {\n static propTypes = {\n spec: (props, _, componentName) => {\n if (!props.spec && !props.specUrl) {\n return new Error(`One of props 'spec' or 'specUrl' was not specified in '${componentName}'.`);\n }\n\n return null;\n },\n specUrl: (props, _, componentName) => {\n if (!props.spec && !props.specUrl) {\n return new Error(`One of props 'spec' or 'specUrl' was not specified in '${componentName}'.`);\n }\n\n return null;\n },\n options: PropTypes.any,\n onLoaded: PropTypes.any\n };\n\n render() {\n const {\n spec,\n specUrl,\n options = {},\n onLoaded\n } = this.props;\n const hideLoading = options.hideLoading !== undefined;\n const normalizedOpts = new RedocNormalizedOptions(options);\n return \n \n {({\n loading,\n store\n }) => !loading ? : hideLoading ? null : }\n \n ;\n }\n\n}","export * from './JsonViewer';","export * from './MenuItem';\nexport * from './MenuItems';\nexport * from './SideMenu';\nexport * from './styled.elements';","export * from './RedocStandalone';\nexport * from './Redoc/Redoc';\nexport * from './ApiInfo/ApiInfo';\nexport * from './ApiLogo/ApiLogo';\nexport * from './ContentItems/ContentItems';\nexport { ApiContentWrap, BackgroundStub, RedocWrap } from './Redoc/styled.elements';\nexport * from './Schema/';\nexport * from './SearchBox/SearchBox';\nexport * from './Operation/Operation';\nexport * from './Loading/Loading';\nexport * from './JsonViewer';\nexport * from './Markdown/Markdown';\nexport { StyledMarkdownBlock } from './Markdown/styled.elements';\nexport * from './SecuritySchemes/SecuritySchemes';\nexport * from './Responses/Response';\nexport * from './Responses/ResponseDetails';\nexport * from './Responses/ResponseHeaders';\nexport * from './Responses/ResponsesList';\nexport * from './Responses/ResponseTitle';\nexport * from './ResponseSamples/ResponseSamples';\nexport * from './PayloadSamples/PayloadSamples';\nexport * from './MediaTypeSwitch/MediaTypesSwitch';\nexport * from './Parameters/Parameters';\nexport * from './PayloadSamples/Example';\nexport * from './ErrorBoundary';\nexport * from './StoreBuilder';\nexport * from './OptionsProvider';\nexport * from './SideMenu/';\nexport * from './StickySidebar/StickyResponsiveSidebar';\nexport * from './SearchBox/SearchBox';\nexport * from './SchemaDefinition/SchemaDefinition';\nexport * from './SourceCode/SourceCode';","const TocPlugin = require('./plugins/export-toc');\n\ntype Header = {\n depth: number;\n id: number;\n text: string;\n};\nexport type MarkdownDocument = {\n component: (props: any) => JSX.Element;\n headings: Header[];\n};\nexport type MarkdownIndex = {\n components: ((props: any) => JSX.Element)[];\n headings: Header[];\n};\nexport const loadMarkdownIndexFromComponents = mdxComponents => {\n const components = mdxComponents.map(sect => sect.default);\n const headings = mdxComponents.reduce((acc, section) => [...acc, ...section.headings], []);\n return {\n components,\n headings\n };\n};\nexport default {\n remarkPlugins: [TocPlugin]\n};","export * from './components';\nexport { MiddlePanel, Row, RightPanel, Section, Flex } from './common-elements/';\nexport { OpenAPIEncoding } from './types';\nexport * from './services';\nexport * from './utils';\nexport * from './styled-components';\nexport { default as styled } from './styled-components';\nexport * from './markdown';"],"sourceRoot":""} \ No newline at end of file diff --git a/bundles/redoc.standalone.js b/bundles/redoc.standalone.js new file mode 100644 index 00000000..ffede066 --- /dev/null +++ b/bundles/redoc.standalone.js @@ -0,0 +1,110 @@ +/*! + * ReDoc - OpenAPI/Swagger-generated API Reference Documentation + * ------------------------------------------------------------- + * Version: "2.0.0-rc.37" + * Repo: https://github.com/Redocly/redoc + */ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("null"),function(){try{return require("esprima")}catch(e){}}()):"function"==typeof define&&define.amd?define(["null","esprima"],t):"object"==typeof exports?exports.Redoc=t(require("null"),function(){try{return require("esprima")}catch(e){}}()):e.Redoc=t(e.null,e.esprima)}(this,(function(e,t){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=159)}([function(e,t,n){"use strict";e.exports=n(223)},function(e,t,n){"use strict";n.r(t),n.d(t,"__extends",(function(){return o})),n.d(t,"__assign",(function(){return i})),n.d(t,"__rest",(function(){return a})),n.d(t,"__decorate",(function(){return s})),n.d(t,"__param",(function(){return l})),n.d(t,"__metadata",(function(){return c})),n.d(t,"__awaiter",(function(){return u})),n.d(t,"__generator",(function(){return p})),n.d(t,"__createBinding",(function(){return f})),n.d(t,"__exportStar",(function(){return d})),n.d(t,"__values",(function(){return h})),n.d(t,"__read",(function(){return m})),n.d(t,"__spread",(function(){return g})),n.d(t,"__spreadArrays",(function(){return y})),n.d(t,"__await",(function(){return v})),n.d(t,"__asyncGenerator",(function(){return b})),n.d(t,"__asyncDelegator",(function(){return w})),n.d(t,"__asyncValues",(function(){return x})),n.d(t,"__makeTemplateObject",(function(){return k})),n.d(t,"__importStar",(function(){return O})),n.d(t,"__importDefault",(function(){return S})),n.d(t,"__classPrivateFieldGet",(function(){return _})),n.d(t,"__classPrivateFieldSet",(function(){return T})); +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ +var r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function o(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var i=function(){return(i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}function l(e,t){return function(n,r){t(n,r,e)}}function c(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function u(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{l(r.next(e))}catch(e){i(e)}}function s(e){try{l(r.throw(e))}catch(e){i(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))}function p(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function m(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a}function g(){for(var e=[],t=0;t1||s(e,t)}))})}function s(e,t){try{(n=o[e](t)).value instanceof v?Promise.resolve(n.value.v).then(l,c):u(i[0][2],n)}catch(e){u(i[0][3],e)}var n}function l(e){s("next",e)}function c(e){s("throw",e)}function u(e,t){e(t),i.shift(),i.length&&s(i[0][0],i[0][1])}}function w(e){var t,n;return t={},r("next"),r("throw",(function(e){throw e})),r("return"),t[Symbol.iterator]=function(){return this},t;function r(r,o){t[r]=e[r]?function(t){return(n=!n)?{value:v(e[r](t)),done:"return"===r}:o?o(t):t}:o}}function x(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=h(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise((function(r,o){(function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)})(r,o,(t=e[n](t)).done,t.value)}))}}}function k(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var E=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t};function O(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&f(t,e,n);return E(t,e),t}function S(e){return e&&e.__esModule?e:{default:e}}function _(e,t){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return t.get(e)}function T(e,t,n){if(!t.has(e))throw new TypeError("attempted to set private field on non-instance");return t.set(e,n),n}},function(e,t,n){"use strict";(function(e,r){n.d(t,"a",(function(){return S})),n.d(t,"b",(function(){return Fe})),n.d(t,"c",(function(){return be})),n.d(t,"d",(function(){return fe})),n.d(t,"e",(function(){return pe})),n.d(t,"f",(function(){return Ge})),n.d(t,"g",(function(){return te})),n.d(t,"h",(function(){return nt})),n.d(t,"i",(function(){return A})),n.d(t,"j",(function(){return at})),n.d(t,"k",(function(){return It})),n.d(t,"l",(function(){return Nt})),n.d(t,"m",(function(){return qt})),n.d(t,"n",(function(){return Q})),n.d(t,"o",(function(){return pt})),n.d(t,"p",(function(){return Qe})),n.d(t,"q",(function(){return qe})),n.d(t,"r",(function(){return dt})),n.d(t,"s",(function(){return le})); +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. All rights reserved. +Licensed under the Apache License, Version 2.0 (the "License"); you may not use +this file except in compliance with the License. You may obtain a copy of the +License at http://www.apache.org/licenses/LICENSE-2.0 + +THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED +WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, +MERCHANTABLITY OR NON-INFRINGEMENT. + +See the Apache Version 2.0 License for specific language governing permissions +and limitations under the License. +***************************************************************************** */ +var o=function(e,t){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};var i=function(){return(i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}}function s(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a}function l(){for(var e=[],t=0;t2&&X("box");var n=$(t);return new ke(e,Y(n),n.name,!0,n.equals)},array:function(e,t){arguments.length>2&&X("array");var n=$(t);return St(e,Y(n),n.name)},map:function(e,t){arguments.length>2&&X("map");var n=$(t);return new Pt(e,Y(n),n.name)},set:function(e,t){arguments.length>2&&X("set");var n=$(t);return new Mt(e,Y(n),n.name)},object:function(e,t,n){"string"==typeof arguments[1]&&X("object");var r=$(n);if(!1===r.proxy)return rt({},e,t,r);var o=ot(r),i=rt({},void 0,void 0,r),a=yt(i);return it(a,e,t,o),a},ref:W,shallow:q,deep:H,struct:V},Q=function(e,t,n){if("string"==typeof arguments[1]||"symbol"==typeof arguments[1])return H.apply(null,arguments);if(ut(e))return e;var r=y(e)?Q.object(e,t,n):Array.isArray(e)?Q.array(e,t):w(e)?Q.map(e,t):x(e)?Q.set(e,t):e;if(r!==e)return r;f(!1)};function X(e){f("Expected one or two arguments to observable."+e+". Did you accidentally try to use observable."+e+" as decorator?")}Object.keys(G).forEach((function(e){return Q[e]=G[e]}));var K,Z,J=M(!1,(function(e,t,n,r,o){var a=n.get,s=n.set,l=o[0]||{};zt(e).addComputedProp(e,t,i({get:a,set:s,context:e},l))})),ee=J({equals:j.structural}),te=function(e,t,n){if("string"==typeof t)return J.apply(null,arguments);if(null!==e&&"object"==typeof e&&1===arguments.length)return J.apply(null,arguments);var r="object"==typeof t?t:{};return r.get=e,r.set="function"==typeof t?t:r.set,r.name=r.name||e.name||"",new Ee(r)};te.struct=ee,function(e){e[e.NOT_TRACKING=-1]="NOT_TRACKING",e[e.UP_TO_DATE=0]="UP_TO_DATE",e[e.POSSIBLY_STALE=1]="POSSIBLY_STALE",e[e.STALE=2]="STALE"}(K||(K={})),function(e){e[e.NONE=0]="NONE",e[e.LOG=1]="LOG",e[e.BREAK=2]="BREAK"}(Z||(Z={}));var ne=function(e){this.cause=e};function re(e){return e instanceof ne}function oe(e){switch(e.dependenciesState){case K.UP_TO_DATE:return!1;case K.NOT_TRACKING:case K.STALE:return!0;case K.POSSIBLY_STALE:for(var t=pe(!0),n=ce(),r=e.observing,o=r.length,i=0;i0;Ie.computationDepth>0&&t&&f(!1),Ie.allowStateChanges||!t&&"strict"!==Ie.enforceActions||f(!1)}function ae(e,t,n){var r=pe(!0);de(e),e.newObserving=new Array(e.observing.length+100),e.unboundDepsCount=0,e.runId=++Ie.runId;var o,i=Ie.trackingDerivation;if(Ie.trackingDerivation=e,!0===Ie.disableErrorBoundaries)o=t.call(n);else try{o=t.call(n)}catch(e){o=new ne(e)}return Ie.trackingDerivation=i,function(e){for(var t=e.observing,n=e.observing=e.newObserving,r=K.UP_TO_DATE,o=0,i=e.unboundDepsCount,a=0;ar&&(r=s.dependenciesState)}n.length=o,e.newObserving=null,i=t.length;for(;i--;){0===(s=t[i]).diffValue&&Re(s,e),s.diffValue=0}for(;o--;){var s;1===(s=n[o]).diffValue&&(s.diffValue=0,Ce(s,e))}r!==K.UP_TO_DATE&&(e.dependenciesState=r,e.onBecomeStale())}(e),fe(r),o}function se(e){var t=e.observing;e.observing=[];for(var n=t.length;n--;)Re(t[n],e);e.dependenciesState=K.NOT_TRACKING}function le(e){var t=ce();try{return e()}finally{ue(t)}}function ce(){var e=Ie.trackingDerivation;return Ie.trackingDerivation=null,e}function ue(e){Ie.trackingDerivation=e}function pe(e){var t=Ie.allowStateReads;return Ie.allowStateReads=e,t}function fe(e){Ie.allowStateReads=e}function de(e){if(e.dependenciesState!==K.UP_TO_DATE){e.dependenciesState=K.UP_TO_DATE;for(var t=e.observing,n=t.length;n--;)t[n].lowestObserverState=K.UP_TO_DATE}}var he=0,me=1,ge=Object.getOwnPropertyDescriptor((function(){}),"name");ge&&ge.configurable;function ye(e,t,n){var r=function(){return ve(e,t,n||this,arguments)};return r.isMobxAction=!0,r}function ve(e,t,n,r){var o=function(e,t,n){var r=0;var o=ce();Ne();var i=we(!0),a=pe(!0),s={prevDerivation:o,prevAllowStateChanges:i,prevAllowStateReads:a,notifySpy:!1,startTime:r,actionId:me++,parentActionId:he};return he=s.actionId,s}();try{return t.apply(n,r)}catch(e){throw o.error=e,e}finally{!function(e){he!==e.actionId&&f("invalid action stack. did you forget to finish an action?");he=e.parentActionId,void 0!==e.error&&(Ie.suppressReactionErrors=!0);xe(e.prevAllowStateChanges),fe(e.prevAllowStateReads),Le(),ue(e.prevDerivation),e.notifySpy&&!1;Ie.suppressReactionErrors=!1}(o)}}function be(e,t){var n,r=we(e);try{n=t()}finally{xe(r)}return n}function we(e){var t=Ie.allowStateChanges;return Ie.allowStateChanges=e,t}function xe(e){Ie.allowStateChanges=e}var ke=function(e){function t(t,n,r,o,i){void 0===r&&(r="ObservableValue@"+p()),void 0===o&&(o=!0),void 0===i&&(i=j.default);var a=e.call(this,r)||this;return a.enhancer=n,a.name=r,a.equals=i,a.hasUnreportedChange=!1,a.value=n(t,void 0,r),a}return function(e,t){function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}(t,e),t.prototype.dehanceValue=function(e){return void 0!==this.dehancer?this.dehancer(e):e},t.prototype.set=function(e){this.value;if((e=this.prepareNewValue(e))!==Ie.UNCHANGED){0,this.setNewValue(e)}},t.prototype.prepareNewValue=function(e){if(ie(this),vt(this)){var t=wt(this,{object:this,type:"update",newValue:e});if(!t)return Ie.UNCHANGED;e=t.newValue}return e=this.enhancer(e,this.value,this.name),this.equals(this.value,e)?Ie.UNCHANGED:e},t.prototype.setNewValue=function(e){var t=this.value;this.value=e,this.reportChanged(),xt(this)&&Et(this,{type:"update",object:this,newValue:e,oldValue:t})},t.prototype.get=function(){return this.reportObserved(),this.dehanceValue(this.value)},t.prototype.intercept=function(e){return bt(this,e)},t.prototype.observe=function(e,t){return t&&e({object:this,type:"update",newValue:this.value,oldValue:void 0}),kt(this,e)},t.prototype.toJSON=function(){return this.get()},t.prototype.toString=function(){return this.name+"["+this.value+"]"},t.prototype.valueOf=function(){return O(this.get())},t.prototype[Symbol.toPrimitive]=function(){return this.valueOf()},t}(_),Ee=(b("ObservableValue",ke),function(){function e(e){this.dependenciesState=K.NOT_TRACKING,this.observing=[],this.newObserving=null,this.isBeingObserved=!1,this.isPendingUnobservation=!1,this.observers=new Set,this.diffValue=0,this.runId=0,this.lastAccessedBy=0,this.lowestObserverState=K.UP_TO_DATE,this.unboundDepsCount=0,this.__mapid="#"+p(),this.value=new ne(null),this.isComputing=!1,this.isRunningSetter=!1,this.isTracing=Z.NONE,d(e.get,"missing option for computed: get"),this.derivation=e.get,this.name=e.name||"ComputedValue@"+p(),e.set&&(this.setter=ye(this.name+"-setter",e.set)),this.equals=e.equals||(e.compareStructural||e.struct?j.structural:j.default),this.scope=e.context,this.requiresReaction=!!e.requiresReaction,this.keepAlive=!!e.keepAlive}return e.prototype.onBecomeStale=function(){!function(e){if(e.lowestObserverState!==K.UP_TO_DATE)return;e.lowestObserverState=K.POSSIBLY_STALE,e.observers.forEach((function(t){t.dependenciesState===K.UP_TO_DATE&&(t.dependenciesState=K.POSSIBLY_STALE,t.isTracing!==Z.NONE&&De(t,e),t.onBecomeStale())}))}(this)},e.prototype.onBecomeObserved=function(){this.onBecomeObservedListeners&&this.onBecomeObservedListeners.forEach((function(e){return e()}))},e.prototype.onBecomeUnobserved=function(){this.onBecomeUnobservedListeners&&this.onBecomeUnobservedListeners.forEach((function(e){return e()}))},e.prototype.get=function(){this.isComputing&&f("Cycle detected in computation "+this.name+": "+this.derivation),0!==Ie.inBatch||0!==this.observers.size||this.keepAlive?(Me(this),oe(this)&&this.trackAndCompute()&&function(e){if(e.lowestObserverState===K.STALE)return;e.lowestObserverState=K.STALE,e.observers.forEach((function(t){t.dependenciesState===K.POSSIBLY_STALE?t.dependenciesState=K.STALE:t.dependenciesState===K.UP_TO_DATE&&(e.lowestObserverState=K.UP_TO_DATE)}))}(this)):oe(this)&&(this.warnAboutUntrackedRead(),Ne(),this.value=this.computeValue(!1),Le());var e=this.value;if(re(e))throw e.cause;return e},e.prototype.peek=function(){var e=this.computeValue(!1);if(re(e))throw e.cause;return e},e.prototype.set=function(e){if(this.setter){d(!this.isRunningSetter,"The setter of computed value '"+this.name+"' is trying to update itself. Did you intend to update an _observable_ value, instead of the computed property?"),this.isRunningSetter=!0;try{this.setter.call(this.scope,e)}finally{this.isRunningSetter=!1}}else d(!1,!1)},e.prototype.trackAndCompute=function(){var e=this.value,t=this.dependenciesState===K.NOT_TRACKING,n=this.computeValue(!0),r=t||re(e)||re(n)||!this.equals(e,n);return r&&(this.value=n),r},e.prototype.computeValue=function(e){var t;if(this.isComputing=!0,Ie.computationDepth++,e)t=ae(this,this.derivation,this.scope);else if(!0===Ie.disableErrorBoundaries)t=this.derivation.call(this.scope);else try{t=this.derivation.call(this.scope)}catch(e){t=new ne(e)}return Ie.computationDepth--,this.isComputing=!1,t},e.prototype.suspend=function(){this.keepAlive||(se(this),this.value=void 0)},e.prototype.observe=function(e,t){var n=this,r=!0,o=void 0;return Ke((function(){var i=n.get();if(!r||t){var a=ce();e({type:"update",object:n,newValue:i,oldValue:o}),ue(a)}r=!1,o=i}))},e.prototype.warnAboutUntrackedRead=function(){},e.prototype.toJSON=function(){return this.get()},e.prototype.toString=function(){return this.name+"["+this.derivation.toString()+"]"},e.prototype.valueOf=function(){return O(this.get())},e.prototype[Symbol.toPrimitive]=function(){return this.valueOf()},e}()),Oe=b("ComputedValue",Ee),Se=function(){this.version=5,this.UNCHANGED={},this.trackingDerivation=null,this.computationDepth=0,this.runId=0,this.mobxGuid=0,this.inBatch=0,this.pendingUnobservations=[],this.pendingReactions=[],this.isRunningReactions=!1,this.allowStateChanges=!0,this.allowStateReads=!0,this.enforceActions=!1,this.spyListeners=[],this.globalReactionErrorHandlers=[],this.computedRequiresReaction=!1,this.reactionRequiresObservable=!1,this.observableRequiresReaction=!1,this.computedConfigurable=!1,this.disableErrorBoundaries=!1,this.suppressReactionErrors=!1},_e={};function Te(){return"undefined"!=typeof window?window:void 0!==r?r:"undefined"!=typeof self?self:_e}var Ae=!0,je=!1,Ie=function(){var e=Te();return e.__mobxInstanceCount>0&&!e.__mobxGlobals&&(Ae=!1),e.__mobxGlobals&&e.__mobxGlobals.version!==(new Se).version&&(Ae=!1),Ae?e.__mobxGlobals?(e.__mobxInstanceCount+=1,e.__mobxGlobals.UNCHANGED||(e.__mobxGlobals.UNCHANGED={}),e.__mobxGlobals):(e.__mobxInstanceCount=1,e.__mobxGlobals=new Se):(setTimeout((function(){je||f("There are multiple, different versions of MobX active. Make sure MobX is loaded only once or use `configure({ isolateGlobalState: true })`")}),1),new Se)}();function Ce(e,t){e.observers.add(t),e.lowestObserverState>t.dependenciesState&&(e.lowestObserverState=t.dependenciesState)}function Re(e,t){e.observers.delete(t),0===e.observers.size&&Pe(e)}function Pe(e){!1===e.isPendingUnobservation&&(e.isPendingUnobservation=!0,Ie.pendingUnobservations.push(e))}function Ne(){Ie.inBatch++}function Le(){if(0==--Ie.inBatch){Ue();for(var e=Ie.pendingUnobservations,t=0;t0&&Pe(e),!1)}function De(e,t){if(console.log("[mobx.trace] '"+e.name+"' is invalidated due to a change in: '"+t.name+"'"),e.isTracing===Z.BREAK){var n=[];!function e(t,n,r){if(n.length>=1e3)return void n.push("(and many more)");n.push(""+new Array(r).join("\t")+t.name),t.dependencies&&t.dependencies.forEach((function(t){return e(t,n,r+1)}))}(at(e),n,1),new Function("debugger;\n/*\nTracing '"+e.name+"'\n\nYou are entering this break point because derivation '"+e.name+"' is being traced and '"+t.name+"' is now forcing it to update.\nJust follow the stacktrace you should now see in the devtools to see precisely what piece of your code is causing this update\nThe stackframe you are looking for is at least ~6-8 stack-frames up.\n\n"+(e instanceof Ee?e.derivation.toString().replace(/[*]\//g,"/"):"")+"\n\nThe dependencies for this derivation are:\n\n"+n.join("\n")+"\n*/\n ")()}}var Fe=function(){function e(e,t,n,r){void 0===e&&(e="Reaction@"+p()),void 0===r&&(r=!1),this.name=e,this.onInvalidate=t,this.errorHandler=n,this.requiresObservable=r,this.observing=[],this.newObserving=[],this.dependenciesState=K.NOT_TRACKING,this.diffValue=0,this.runId=0,this.unboundDepsCount=0,this.__mapid="#"+p(),this.isDisposed=!1,this._isScheduled=!1,this._isTrackPending=!1,this._isRunning=!1,this.isTracing=Z.NONE}return e.prototype.onBecomeStale=function(){this.schedule()},e.prototype.schedule=function(){this._isScheduled||(this._isScheduled=!0,Ie.pendingReactions.push(this),Ue())},e.prototype.isScheduled=function(){return this._isScheduled},e.prototype.runReaction=function(){if(!this.isDisposed){if(Ne(),this._isScheduled=!1,oe(this)){this._isTrackPending=!0;try{this.onInvalidate(),this._isTrackPending}catch(e){this.reportExceptionInDerivation(e)}}Le()}},e.prototype.track=function(e){if(!this.isDisposed){Ne();0,this._isRunning=!0;var t=ae(this,e,void 0);this._isRunning=!1,this._isTrackPending=!1,this.isDisposed&&se(this),re(t)&&this.reportExceptionInDerivation(t.cause),Le()}},e.prototype.reportExceptionInDerivation=function(e){var t=this;if(this.errorHandler)this.errorHandler(e,this);else{if(Ie.disableErrorBoundaries)throw e;var n="[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '"+this+"'";Ie.suppressReactionErrors?console.warn("[mobx] (error in reaction '"+this.name+"' suppressed, fix error of causing action below)"):console.error(n,e),Ie.globalReactionErrorHandlers.forEach((function(n){return n(e,t)}))}},e.prototype.dispose=function(){this.isDisposed||(this.isDisposed=!0,this._isRunning||(Ne(),se(this),Le()))},e.prototype.getDisposer=function(){var e=this.dispose.bind(this);return e[S]=this,e},e.prototype.toString=function(){return"Reaction["+this.name+"]"},e.prototype.trace=function(e){void 0===e&&(e=!1),function(){for(var e=[],t=0;t0||Ie.isRunningReactions||ze(Be)}function Be(){Ie.isRunningReactions=!0;for(var e=Ie.pendingReactions,t=0;e.length>0;){100==++t&&(console.error("Reaction doesn't converge to a stable state after 100 iterations. Probably there is a cycle in the reactive function: "+e[0]),e.splice(0));for(var n=e.splice(0),r=0,o=n.length;r",e):2===arguments.length&&"function"==typeof t?ye(e,t):1===arguments.length&&"string"==typeof e?Ve(e):!0!==r?Ve(t).apply(null,arguments):void v(e,t,ye(e.name||t,n.value,this))};function Qe(e,t){"string"==typeof e||e.name;return ve(0,"function"==typeof e?e:t,this,void 0)}function Xe(e,t,n){v(e,t,ye(t,n.bind(e)))}function Ke(e,t){void 0===t&&(t=u);var n,r=t&&t.name||e.name||"Autorun@"+p();if(!t.scheduler&&!t.delay)n=new Fe(r,(function(){this.track(a)}),t.onError,t.requiresObservable);else{var o=Je(t),i=!1;n=new Fe(r,(function(){i||(i=!0,o((function(){i=!1,n.isDisposed||n.track(a)})))}),t.onError,t.requiresObservable)}function a(){e(n)}return n.schedule(),n.getDisposer()}Ge.bound=function(e,t,n,r){return!0===r?(Xe(e,t,n.value),null):n?{configurable:!0,enumerable:!1,get:function(){return Xe(this,t,n.value||n.initializer.call(this)),this[t]},set:We}:{enumerable:!1,configurable:!0,set:function(e){Xe(this,t,e)},get:function(){}}};var Ze=function(e){return e()};function Je(e){return e.scheduler?e.scheduler:e.delay?function(t){return setTimeout(t,e.delay)}:Ze}function et(e,t,n){return tt("onBecomeUnobserved",e,t,n)}function tt(e,t,n,r){var o="function"==typeof r?Wt(t,n):Wt(t),i="function"==typeof r?r:n,a=e+"Listeners";return o[a]?o[a].add(i):o[a]=new Set([i]),"function"!=typeof o[e]?f(!1):function(){var e=o[a];e&&(e.delete(i),0===e.size&&delete o[a])}}function nt(e){var t=e.enforceActions,n=e.computedRequiresReaction,r=e.computedConfigurable,o=e.disableErrorBoundaries,i=e.reactionScheduler,a=e.reactionRequiresObservable,s=e.observableRequiresReaction;if(!0===e.isolateGlobalState&&((Ie.pendingReactions.length||Ie.inBatch||Ie.isRunningReactions)&&f("isolateGlobalState should be called before MobX is running any reactions"),je=!0,Ae&&(0==--Te().__mobxInstanceCount&&(Te().__mobxGlobals=void 0),Ie=new Se)),void 0!==t){var l=void 0;switch(t){case!0:case"observed":l=!0;break;case!1:case"never":l=!1;break;case"strict":case"always":l="strict";break;default:f("Invalid value for 'enforceActions': '"+t+"', expected 'never', 'always' or 'observed'")}Ie.enforceActions=l,Ie.allowStateChanges=!0!==l&&"strict"!==l}void 0!==n&&(Ie.computedRequiresReaction=!!n),void 0!==a&&(Ie.reactionRequiresObservable=!!a),void 0!==s&&(Ie.observableRequiresReaction=!!s,Ie.allowStateReads=!Ie.observableRequiresReaction),void 0!==r&&(Ie.computedConfigurable=!!r),void 0!==o&&(!0===o&&console.warn("WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled."),Ie.disableErrorBoundaries=!!o),i&&He(i)}function rt(e,t,n,r){var o=ot(r=$(r));return L(e),zt(e,r.name,o.enhancer),t&&it(e,t,n,o),e}function ot(e){return e.defaultDecorator||(!1===e.deep?W:H)}function it(e,t,n,r){var o,i;Ne();try{var s=k(t);try{for(var l=a(s),c=l.next();!c.done;c=l.next()){var u=c.value,p=Object.getOwnPropertyDescriptor(t,u);0;var f=(n&&u in n?n[u]:p.get?J:r)(e,u,p,!0);f&&Object.defineProperty(e,u,f)}}catch(e){o={error:e}}finally{try{c&&!c.done&&(i=l.return)&&i.call(l)}finally{if(o)throw o.error}}}finally{Le()}}function at(e,t){return st(Wt(e,t))}function st(e){var t,n,r={name:e.name};return e.observing&&e.observing.length>0&&(r.dependencies=(t=e.observing,n=[],t.forEach((function(e){-1===n.indexOf(e)&&n.push(e)})),n).map(st)),r}function lt(){this.message="FLOW_CANCELLED"}function ct(e,t){return null!=e&&(void 0!==t?!!qt(e)&&e[S].values.has(t):qt(e)||!!e[S]||T(e)||$e(e)||Oe(e))}function ut(e){return 1!==arguments.length&&f(!1),ct(e)}function pt(e,t,n,r){return"function"==typeof n?function(e,t,n,r){return Vt(e,t).observe(n,r)}(e,t,n,r):function(e,t,n){return Vt(e).observe(t,n)}(e,t,n)}lt.prototype=Object.create(Error.prototype);function ft(e){switch(e.length){case 0:return Ie.trackingDerivation;case 1:return Wt(e[0]);case 2:return Wt(e[0],e[1])}}function dt(e,t){void 0===t&&(t=void 0),Ne();try{return e.apply(t)}finally{Le()}}function ht(e){return e[S]}function mt(e){return"string"==typeof e||"number"==typeof e||"symbol"==typeof e}var gt={has:function(e,t){if(t===S||"constructor"===t||t===I)return!0;var n=ht(e);return mt(t)?n.has(t):t in e},get:function(e,t){if(t===S||"constructor"===t||t===I)return e[t];var n=ht(e),r=n.values.get(t);if(r instanceof _){var o=r.get();return void 0===o&&n.has(t),o}return mt(t)&&n.has(t),e[t]},set:function(e,t,n){return!!mt(t)&&(function e(t,n,r){if(2!==arguments.length||Dt(t))if(qt(t)){var o=t[S],i=o.values.get(n);i?o.write(n,r):o.addObservableProp(n,r,o.defaultEnhancer)}else if(Nt(t))t.set(n,r);else if(Dt(t))t.add(n);else{if(!It(t))return f(!1);"number"!=typeof n&&(n=parseInt(n,10)),d(n>=0,"Not a valid index: '"+n+"'"),Ne(),n>=t.length&&(t.length=n+1),t[n]=r,Le()}else{Ne();var a=n;try{for(var s in a)e(t,s,a[s])}finally{Le()}}}(e,t,n),!0)},deleteProperty:function(e,t){return!!mt(t)&&(ht(e).remove(t),!0)},ownKeys:function(e){return ht(e).keysAtom.reportObserved(),Reflect.ownKeys(e)},preventExtensions:function(e){return f("Dynamic observable objects cannot be frozen"),!1}};function yt(e){var t=new Proxy(e,gt);return e[S].proxy=t,t}function vt(e){return void 0!==e.interceptors&&e.interceptors.length>0}function bt(e,t){var n=e.interceptors||(e.interceptors=[]);return n.push(t),h((function(){var e=n.indexOf(t);-1!==e&&n.splice(e,1)}))}function wt(e,t){var n=ce();try{for(var r=l(e.interceptors||[]),o=0,i=r.length;o0}function kt(e,t){var n=e.changeListeners||(e.changeListeners=[]);return n.push(t),h((function(){var e=n.indexOf(t);-1!==e&&n.splice(e,1)}))}function Et(e,t){var n=ce(),r=e.changeListeners;if(r){for(var o=0,i=(r=r.slice()).length;o0?e.map(this.dehancer):e},e.prototype.intercept=function(e){return bt(this,e)},e.prototype.observe=function(e,t){return void 0===t&&(t=!1),t&&e({object:this.proxy,type:"splice",index:0,added:this.values.slice(),addedCount:this.values.length,removed:[],removedCount:0}),kt(this,e)},e.prototype.getArrayLength=function(){return this.atom.reportObserved(),this.values.length},e.prototype.setArrayLength=function(e){if("number"!=typeof e||e<0)throw new Error("[mobx.array] Out of range: "+e);var t=this.values.length;if(e!==t)if(e>t){for(var n=new Array(e-t),r=0;ro?e=o:e<0&&(e=Math.max(0,o+e)),t=1===arguments.length?o-e:null==t?0:Math.max(0,Math.min(t,o-e)),void 0===n&&(n=c),vt(this)){var i=wt(this,{object:this.proxy,type:"splice",index:e,removedCount:t,added:n});if(!i)return c;t=i.removedCount,n=i.added}n=0===n.length?n:n.map((function(e){return r.enhancer(e,void 0)}));var a=this.spliceItemsIntoValues(e,t,n);return 0===t&&0===n.length||this.notifyArraySplice(e,n,a),this.dehanceValues(a)},e.prototype.spliceItemsIntoValues=function(e,t,n){var r;if(n.length<1e4)return(r=this.values).splice.apply(r,l([e,t],n));var o=this.values.slice(e,e+t);return this.values=this.values.slice(0,e).concat(n,this.values.slice(e+t)),o},e.prototype.notifyArrayChildUpdate=function(e,t,n){var r=!this.owned&&!1,o=xt(this),i=o||r?{object:this.proxy,type:"update",index:e,newValue:t,oldValue:n}:null;this.atom.reportChanged(),o&&Et(this,i)},e.prototype.notifyArraySplice=function(e,t,n){var r=!this.owned&&!1,o=xt(this),i=o||r?{object:this.proxy,type:"splice",index:e,removed:n,added:t,removedCount:n.length,addedCount:t.length}:null;this.atom.reportChanged(),o&&Et(this,i)},e}(),Tt={intercept:function(e){return this[S].intercept(e)},observe:function(e,t){return void 0===t&&(t=!1),this[S].observe(e,t)},clear:function(){return this.splice(0)},replace:function(e){var t=this[S];return t.spliceWithArray(0,t.values.length,e)},toJS:function(){return this.slice()},toJSON:function(){return this.toJS()},splice:function(e,t){for(var n=[],r=2;r-1&&(this.splice(n,1),!0)},get:function(e){var t=this[S];if(t){if(e=0&&r++}t=Qt(t),n=Qt(n);var l="[object Array]"===s;if(!l){if("object"!=typeof t||"object"!=typeof n)return!1;var c=t.constructor,u=n.constructor;if(c!==u&&!("function"==typeof c&&c instanceof c&&"function"==typeof u&&u instanceof u)&&"constructor"in t&&"constructor"in n)return!1}if(0===r)return!1;r<0&&(r=-1);i=i||[];var p=(o=o||[]).length;for(;p--;)if(o[p]===t)return i[p]===n;if(o.push(t),i.push(n),l){if((p=t.length)!==n.length)return!1;for(;p--;)if(!e(t[p],n[p],r-1,o,i))return!1}else{var f=Object.keys(t),d=void 0;if(p=f.length,Object.keys(n).length!==p)return!1;for(;p--;)if(d=f[p],!Xt(n,d)||!e(t[d],n[d],r-1,o,i))return!1}return o.pop(),i.pop(),!0}(e,t,n)}function Qt(e){return It(e)?e.slice():w(e)||Nt(e)||x(e)||Dt(e)?Array.from(e.entries()):e}function Xt(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Kt(e){return e[Symbol.iterator]=Zt,e}function Zt(){return this}if("undefined"==typeof Proxy||"undefined"==typeof Symbol)throw new Error("[mobx] MobX 5+ requires Proxy and Symbol objects. If your environment doesn't support Symbol or Proxy objects, please downgrade to MobX 4. For React Native Android, consider upgrading JSCore.");"object"==typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__&&__MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({spy:qe,extras:{getDebugName:function(e,t){return(void 0!==t?Wt(e,t):qt(e)||Nt(e)||Dt(e)?Vt(e):Wt(e)).name}},$mobx:S})}).call(this,n(13),n(5))},function(e,t,n){(function(t){var n=function(e){return e&&e.Math==Math&&e};e.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof t&&t)||Function("return this")()}).call(this,n(5))},function(e,t,n){var r=n(3),o=n(68),i=n(11),a=n(50),s=n(71),l=n(100),c=o("wks"),u=r.Symbol,p=l?u:u&&u.withoutSetter||a;e.exports=function(e){return i(c,e)||(s&&i(u,e)?c[e]=u[e]:c[e]=p("Symbol."+e)),c[e]}},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){"use strict";var r=n(54),o=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],i=["scalar","sequence","mapping"];e.exports=function(e,t){var n,a;if(t=t||{},Object.keys(t).forEach((function(t){if(-1===o.indexOf(t))throw new r('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')})),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=(n=t.styleAliases||null,a={},null!==n&&Object.keys(n).forEach((function(e){n[e].forEach((function(t){a[String(t)]=e}))})),a),-1===i.indexOf(this.kind))throw new r('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}},function(e,t,n){"use strict";(function(e){n.d(t,"a",(function(){return x})),n.d(t,"b",(function(){return s})),n.d(t,"c",(function(){return b}));var r=n(2),o=n(0),i=n.n(o);if(!o.useState)throw new Error("mobx-react-lite requires React with Hooks support");if(!r.q)throw new Error("mobx-react-lite requires mobx at least version 4 to be available");var a=!1;function s(){return a}function l(){return(l=Object.assign||function(e){for(var t=1;t=n.cleanAt&&(n.reaction.dispose(),t.current=null,d.delete(t))})),d.size>0&&h()}var g={};function y(e){return"observer"+e}function v(e,t,n){if(void 0===t&&(t="observed"),void 0===n&&(n=g),s())return e();var o,a=(n.useForceUpdate||c)(),l=i.a.useRef(null);if(!l.current){var p=new r.b(y(t),(function(){m.mounted?a():(p.dispose(),l.current=null)})),m=function(e){return{cleanAt:Date.now()+f,reaction:e}}(p);l.current=m,o=l,d.add(o),h()}var v,b,w=l.current.reaction;if(i.a.useDebugValue(w,u),i.a.useEffect((function(){var e;return e=l,d.delete(e),l.current?l.current.mounted=!0:(l.current={reaction:new r.b(y(t),(function(){a()})),cleanAt:1/0},a()),function(){l.current.reaction.dispose(),l.current=null}}),[]),w.track((function(){try{v=e()}catch(e){b=e}})),b)throw b;return v}function b(e,t){if(s())return e;var n,r,i,a=l({forwardRef:!1},t),c=e.displayName||e.name,u=function(t,n){return v((function(){return e(t,n)}),c)};return u.displayName=c,n=a.forwardRef?Object(o.memo)(Object(o.forwardRef)(u)):Object(o.memo)(u),r=e,i=n,Object.keys(r).forEach((function(e){w[e]||Object.defineProperty(i,e,Object.getOwnPropertyDescriptor(r,e))})),n.displayName=c,n}var w={$$typeof:!0,render:!0,compare:!0,type:!0};function x(e){var t=e.children,n=e.render,r=t||n;return"function"!=typeof r?null:v(r)}function k(e,t,n,r,o){var i="children"===t?"render":"children",a="function"==typeof e[t],s="function"==typeof e[i];return a&&s?new Error("MobX Observer: Do not use children and render in the same time in`"+n):a||s?null:new Error("Invalid prop `"+o+"` of type `"+typeof e[t]+"` supplied to `"+n+"`, expected `function`.")}x.propTypes={children:k,render:k},x.displayName="Observer"}).call(this,n(5))},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){"use strict";var r=n(229),o=n(231);function i(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}t.parse=b,t.resolve=function(e,t){return b(e,!1,!0).resolve(t)},t.resolveObject=function(e,t){return e?b(e,!1,!0).resolveObject(t):t},t.format=function(e){o.isString(e)&&(e=b(e));return e instanceof i?e.format():i.prototype.format.call(e)},t.Url=i;var a=/^([a-z0-9.+-]+:)/i,s=/:[0-9]*$/,l=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,c=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),u=["'"].concat(c),p=["%","/","?",";","#"].concat(u),f=["/","?","#"],d=/^[+a-z0-9A-Z_-]{0,63}$/,h=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,m={javascript:!0,"javascript:":!0},g={javascript:!0,"javascript:":!0},y={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},v=n(232);function b(e,t,n){if(e&&o.isObject(e)&&e instanceof i)return e;var r=new i;return r.parse(e,t,n),r}i.prototype.parse=function(e,t,n){if(!o.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var i=e.indexOf("?"),s=-1!==i&&i127?P+="x":P+=R[N];if(!P.match(d)){var M=I.slice(0,T),D=I.slice(T+1),F=R.match(h);F&&(M.push(F[1]),D.unshift(F[2])),D.length&&(b="/"+D.join(".")+b),this.hostname=M.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),j||(this.hostname=r.toASCII(this.hostname));var z=this.port?":"+this.port:"",U=this.hostname||"";this.host=U+z,this.href+=this.host,j&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==b[0]&&(b="/"+b))}if(!m[k])for(T=0,C=u.length;T0)&&n.host.split("@"))&&(n.auth=j.shift(),n.host=n.hostname=j.shift());return n.search=e.search,n.query=e.query,o.isNull(n.pathname)&&o.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.href=n.format(),n}if(!E.length)return n.pathname=null,n.search?n.path="/"+n.search:n.path=null,n.href=n.format(),n;for(var S=E.slice(-1)[0],_=(n.host||e.host||E.length>1)&&("."===S||".."===S)||""===S,T=0,A=E.length;A>=0;A--)"."===(S=E[A])?E.splice(A,1):".."===S?(E.splice(A,1),T++):T&&(E.splice(A,1),T--);if(!x&&!k)for(;T--;T)E.unshift("..");!x||""===E[0]||E[0]&&"/"===E[0].charAt(0)||E.unshift(""),_&&"/"!==E.join("/").substr(-1)&&E.push("");var j,I=""===E[0]||E[0]&&"/"===E[0].charAt(0);O&&(n.hostname=n.host=I?"":E.length?E.shift():"",(j=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=j.shift(),n.host=n.hostname=j.shift()));return(x=x||n.host&&E.length)&&!I&&E.unshift(""),E.length?n.pathname=E.join("/"):(n.pathname=null,n.path=null),o.isNull(n.pathname)&&o.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.auth=e.auth||n.auth,n.slashes=n.slashes||e.slashes,n.href=n.format(),n},i.prototype.parseHost=function(){var e=this.host,t=s.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t,n){var r=n(34),o=n(11),i=n(126),a=n(15).f;e.exports=function(e){var t=r.Symbol||(r.Symbol={});o(t,e)||a(t,e,{value:i.f(e)})}},function(e,t){var n,r,o=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function s(e){if(n===setTimeout)return setTimeout(e,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:i}catch(e){n=i}try{r="function"==typeof clearTimeout?clearTimeout:a}catch(e){r=a}}();var l,c=[],u=!1,p=-1;function f(){u&&l&&(u=!1,l.length?c=l.concat(c):p=-1,c.length&&d())}function d(){if(!u){var e=s(f);u=!0;for(var t=c.length;t;){for(l=c,c=[];++p1)for(var n=1;n + * @license MIT + */ +var r=n(236),o=n(237),i=n(128);function a(){return l.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(a()=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function h(e,t){if(l.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return U(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return B(e).length;default:if(r)return U(e).length;t=(""+t).toLowerCase(),r=!0}}function m(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return j(this,t,n);case"utf8":case"utf-8":return _(this,t,n);case"ascii":return T(this,t,n);case"latin1":case"binary":return A(this,t,n);case"base64":return S(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function g(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function y(e,t,n,r,o){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof t&&(t=l.from(t,r)),l.isBuffer(t))return 0===t.length?-1:v(e,t,n,r,o);if("number"==typeof t)return t&=255,l.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):v(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function v(e,t,n,r,o){var i,a=1,s=e.length,l=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,l/=2,n/=2}function c(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){var u=-1;for(i=n;is&&(n=s-l),i=n;i>=0;i--){for(var p=!0,f=0;fo&&(r=o):r=o;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var a=0;a>8,o=n%256,i.push(o),i.push(r);return i}(t,e.length-n),e,n,r)}function S(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function _(e,t,n){n=Math.min(e.length,n);for(var r=[],o=t;o239?4:c>223?3:c>191?2:1;if(o+p<=n)switch(p){case 1:c<128&&(u=c);break;case 2:128==(192&(i=e[o+1]))&&(l=(31&c)<<6|63&i)>127&&(u=l);break;case 3:i=e[o+1],a=e[o+2],128==(192&i)&&128==(192&a)&&(l=(15&c)<<12|(63&i)<<6|63&a)>2047&&(l<55296||l>57343)&&(u=l);break;case 4:i=e[o+1],a=e[o+2],s=e[o+3],128==(192&i)&&128==(192&a)&&128==(192&s)&&(l=(15&c)<<18|(63&i)<<12|(63&a)<<6|63&s)>65535&&l<1114112&&(u=l)}null===u?(u=65533,p=1):u>65535&&(u-=65536,r.push(u>>>10&1023|55296),u=56320|1023&u),r.push(u),o+=p}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},l.prototype.compare=function(e,t,n,r,o){if(!l.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0),s=Math.min(i,a),c=this.slice(r,o),u=e.slice(t,n),p=0;po)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return b(this,e,t,n);case"utf8":case"utf-8":return w(this,e,t,n);case"ascii":return x(this,e,t,n);case"latin1":case"binary":return k(this,e,t,n);case"base64":return E(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},l.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function T(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;or)&&(n=r);for(var o="",i=t;in)throw new RangeError("Trying to access beyond buffer length")}function R(e,t,n,r,o,i){if(!l.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function P(e,t,n,r){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-n,2);o>>8*(r?o:1-o)}function N(e,t,n,r){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-n,4);o>>8*(r?o:3-o)&255}function L(e,t,n,r,o,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function M(e,t,n,r,i){return i||L(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function D(e,t,n,r,i){return i||L(e,0,n,8),o.write(e,t,n,r,52,8),n+8}l.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(o*=256);)r+=this[e+--t]*o;return r},l.prototype.readUInt8=function(e,t){return t||C(e,1,this.length),this[e]},l.prototype.readUInt16LE=function(e,t){return t||C(e,2,this.length),this[e]|this[e+1]<<8},l.prototype.readUInt16BE=function(e,t){return t||C(e,2,this.length),this[e]<<8|this[e+1]},l.prototype.readUInt32LE=function(e,t){return t||C(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},l.prototype.readUInt32BE=function(e,t){return t||C(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},l.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||C(e,t,this.length);for(var r=this[e],o=1,i=0;++i=(o*=128)&&(r-=Math.pow(2,8*t)),r},l.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||C(e,t,this.length);for(var r=t,o=1,i=this[e+--r];r>0&&(o*=256);)i+=this[e+--r]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},l.prototype.readInt8=function(e,t){return t||C(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},l.prototype.readInt16LE=function(e,t){t||C(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},l.prototype.readInt16BE=function(e,t){t||C(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},l.prototype.readInt32LE=function(e,t){return t||C(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},l.prototype.readInt32BE=function(e,t){return t||C(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},l.prototype.readFloatLE=function(e,t){return t||C(e,4,this.length),o.read(this,e,!0,23,4)},l.prototype.readFloatBE=function(e,t){return t||C(e,4,this.length),o.read(this,e,!1,23,4)},l.prototype.readDoubleLE=function(e,t){return t||C(e,8,this.length),o.read(this,e,!0,52,8)},l.prototype.readDoubleBE=function(e,t){return t||C(e,8,this.length),o.read(this,e,!1,52,8)},l.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||R(this,e,t,n,Math.pow(2,8*n)-1,0);var o=1,i=0;for(this[t]=255&e;++i=0&&(i*=256);)this[t+o]=e/i&255;return t+n},l.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||R(this,e,t,1,255,0),l.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},l.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||R(this,e,t,2,65535,0),l.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):P(this,e,t,!0),t+2},l.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||R(this,e,t,2,65535,0),l.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):P(this,e,t,!1),t+2},l.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||R(this,e,t,4,4294967295,0),l.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):N(this,e,t,!0),t+4},l.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||R(this,e,t,4,4294967295,0),l.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):N(this,e,t,!1),t+4},l.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);R(this,e,t,n,o-1,-o)}var i=0,a=1,s=0;for(this[t]=255&e;++i>0)-s&255;return t+n},l.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);R(this,e,t,n,o-1,-o)}var i=n-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},l.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||R(this,e,t,1,127,-128),l.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},l.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||R(this,e,t,2,32767,-32768),l.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):P(this,e,t,!0),t+2},l.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||R(this,e,t,2,32767,-32768),l.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):P(this,e,t,!1),t+2},l.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||R(this,e,t,4,2147483647,-2147483648),l.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):N(this,e,t,!0),t+4},l.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||R(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),l.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):N(this,e,t,!1),t+4},l.prototype.writeFloatLE=function(e,t,n){return M(this,e,t,!0,n)},l.prototype.writeFloatBE=function(e,t,n){return M(this,e,t,!1,n)},l.prototype.writeDoubleLE=function(e,t,n){return D(this,e,t,!0,n)},l.prototype.writeDoubleBE=function(e,t,n){return D(this,e,t,!1,n)},l.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--o)e[o+t]=this[o+n];else if(i<1e3||!l.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function B(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(F,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function $(e,t,n,r){for(var o=0;o=t.length||o>=e.length);++o)t[o+n]=e[o];return o}}).call(this,n(5))},function(e,t,n){var r=n(17),o=n(99),i=n(18),a=n(49),s=Object.defineProperty;t.f=r?s:function(e,t,n){if(i(e),t=a(t,!0),i(n),o)try{return s(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(e[t]=n.value),e}},function(e,t,n){var r=n(3),o=n(32).f,i=n(22),a=n(23),s=n(69),l=n(103),c=n(80);e.exports=function(e,t){var n,u,p,f,d,h=e.target,m=e.global,g=e.stat;if(n=m?r:g?r[h]||s(h,{}):(r[h]||{}).prototype)for(u in t){if(f=t[u],p=e.noTargetGet?(d=o(n,u))&&d.value:n[u],!c(m?u:h+(g?".":"#")+u,e.forced)&&void 0!==p){if(typeof f==typeof p)continue;l(f,p)}(e.sham||p&&p.sham)&&i(f,"sham",!0),a(n,u,f,e)}}},function(e,t,n){var r=n(8);e.exports=!r((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},function(e,t,n){var r=n(9);e.exports=function(e){if(!r(e))throw TypeError(String(e)+" is not an object");return e}},function(e,t,n){e.exports=n(227)()},function(e,t,n){"use strict";var r=n(292);function o(e,t,n){if(3===arguments.length)return o.set(e,t,n);if(2===arguments.length)return o.get(e,t);var r=o.bind(o,e);for(var i in o)o.hasOwnProperty(i)&&(r[i]=o[i].bind(r,e));return r}e.exports=o,o.get=function(e,t){for(var n=Array.isArray(t)?t:o.parse(t),r=0;r=0?e.substr(t).toLowerCase():""},t.getHash=function(e){var t=e.indexOf("#");return t>=0?e.substr(t):"#"},t.stripHash=function(e){var t=e.indexOf("#");return t>=0&&(e=e.substr(0,t)),e},t.isHttp=function(e){var t=s.getProtocol(e);return"http"===t||"https"===t||void 0===t&&r.browser},t.isFileSystemPath=function(e){if(r.browser)return!1;var t=s.getProtocol(e);return void 0===t||"file"===t},t.fromFileSystemPath=function(e){o&&(e=e.replace(/\\/g,"/")),e=encodeURI(e);for(var t=0;t2?r:e).apply(void 0,o)}}e.memoize=a,e.debounce=s,e.bind=l,e.default={memoize:a,debounce:s,bind:l}})?r.apply(t,o):r)||(e.exports=i)},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,n){var r=n(34),o=n(3),i=function(e){return"function"==typeof e?e:void 0};e.exports=function(e,t){return arguments.length<2?i(r[e])||i(o[e]):r[e]&&r[e][t]||o[e]&&o[e][t]}},function(e,t,n){var r=n(15).f,o=n(11),i=n(4)("toStringTag");e.exports=function(e,t,n){e&&!o(e=n?e:e.prototype,i)&&r(e,i,{configurable:!0,value:t})}},function(e,t,n){"use strict";var r=n(262),o=Array.prototype.slice,i=["name","message","stack"],a=["name","message","description","number","code","fileName","lineNumber","columnNumber","sourceURL","line","column","stack"];function s(t){return function(n,r,i,a){var s=[],p="";"string"==typeof n?(s=o.call(arguments),n=r=void 0):"string"==typeof r?(s=o.call(arguments,1),r=void 0):"string"==typeof i&&(s=o.call(arguments,2)),s.length>0&&(p=e.exports.formatter.apply(null,s)),n&&n.message&&(p+=(p?" \n":"")+n.message);var f=new t(p);return l(f,n),c(f),u(f,r),f}}function l(e,t){!function(e,t){!function(e){if(!m)return!1;var t=Object.getOwnPropertyDescriptor(e,"stack");if(!t)return!1;return"function"==typeof t.get}(e)?e.stack=t?d(e.stack,t.stack):h(e.stack):t?function(e,t){var n=Object.getOwnPropertyDescriptor(e,"stack");Object.defineProperty(e,"stack",{get:function(){return d(n.get.apply(e),t.stack)},enumerable:!1,configurable:!0})}(e,t):(n=e,r=Object.getOwnPropertyDescriptor(n,"stack"),Object.defineProperty(n,"stack",{get:function(){return h(r.get.apply(n))},enumerable:!1,configurable:!0}));var n,r}(e,t),u(e,t)}function c(e){e.toJSON=p,e.inspect=f}function u(e,t){if(t&&"object"==typeof t)for(var n=Object.keys(t),r=0;r=0))try{e[o]=t[o]}catch(e){}}}function p(){var e={},t=Object.keys(this);t=t.concat(a);for(var n=0;n=0)return t.splice(n,1),t.join("\n")}return e}}e.exports=s(Error),e.exports.error=s(Error),e.exports.eval=s(EvalError),e.exports.range=s(RangeError),e.exports.reference=s(ReferenceError),e.exports.syntax=s(SyntaxError),e.exports.type=s(TypeError),e.exports.uri=s(URIError),e.exports.formatter=r;var m=!(!Object.getOwnPropertyDescriptor||!Object.defineProperty||"undefined"!=typeof navigator&&/Android/.test(navigator.userAgent))},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}},function(e,t,n){var r,o,i,a=n(162),s=n(3),l=n(9),c=n(22),u=n(11),p=n(51),f=n(40),d=s.WeakMap;if(a){var h=new d,m=h.get,g=h.has,y=h.set;r=function(e,t){return y.call(h,e,t),t},o=function(e){return m.call(h,e)||{}},i=function(e){return g.call(h,e)}}else{var v=p("state");f[v]=!0,r=function(e,t){return c(e,v,t),t},o=function(e){return u(e,v)?e[v]:{}},i=function(e){return u(e,v)}}e.exports={set:r,get:o,has:i,enforce:function(e){return i(e)?o(e):r(e,{})},getterFor:function(e){return function(t){var n;if(!l(t)||(n=o(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}}}},function(e,t,n){var r=n(17),o=n(75),i=n(39),a=n(33),s=n(49),l=n(11),c=n(99),u=Object.getOwnPropertyDescriptor;t.f=r?u:function(e,t){if(e=a(e),t=s(t,!0),c)try{return u(e,t)}catch(e){}if(l(e,t))return i(!o.f.call(e,t),e[t])}},function(e,t,n){var r=n(76),o=n(41);e.exports=function(e){return r(o(e))}},function(e,t,n){var r=n(3);e.exports=r},function(e,t,n){var r=n(73),o=Math.min;e.exports=function(e){return e>0?o(r(e),9007199254740991):0}},function(e,t,n){"use strict";var r=n(46),o=n(54),i=n(6);function a(e,t,n){var r=[];return e.include.forEach((function(e){n=a(e,t,n)})),e[t].forEach((function(e){n.forEach((function(t,n){t.tag===e.tag&&t.kind===e.kind&&r.push(n)})),n.push(e)})),n.filter((function(e,t){return-1===r.indexOf(t)}))}function s(e){this.include=e.include||[],this.implicit=e.implicit||[],this.explicit=e.explicit||[],this.implicit.forEach((function(e){if(e.loadKind&&"scalar"!==e.loadKind)throw new o("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")})),this.compiledImplicit=a(this,"implicit",[]),this.compiledExplicit=a(this,"explicit",[]),this.compiledTypeMap=function(){var e,t,n={scalar:{},sequence:{},mapping:{},fallback:{}};function r(e){n[e.kind][e.tag]=n.fallback[e.tag]=e}for(e=0,t=arguments.length;et.length)return;if(!(O instanceof o)){var S=1;if(v&&k!=n.tail.prev){if(m.lastIndex=E,!(I=m.exec(t)))break;var _=I.index+(y&&I[1]?I[1].length:0),T=I.index+I[0].length,A=E;for(A+=k.value.length;_>=A;)k=k.next,A+=k.value.length;if(A-=k.value.length,E=A,k.value instanceof o)continue;for(var j=k;j!==n.tail&&(A1&&e(t,n,i,k.prev,E,!0,f+","+h),u)break}else if(u)break}}}}}(e,c,t,c.head,0),function(e){var t=[],n=e.head.next;for(;n!==e.tail;)t.push(n.value),n=n.next;return t}(c)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var o,i=0;o=n[i++];)o(t)}},Token:o};function o(e,t,n,r,o){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length,this.greedy=!!o}function i(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function a(e,t,n){var r=t.next,o={value:n,prev:t,next:r};return t.next=o,r.prev=o,e.length++,o}function s(e,t,n){for(var r=t.next,o=0;o"+i.content+""},!e.document)return e.addEventListener?(r.disableWorkerMessageHandler||e.addEventListener("message",(function(t){var n=JSON.parse(t.data),o=n.language,i=n.code,a=n.immediateClose;e.postMessage(r.highlight(i,r.languages[o],o)),a&&e.close()}),!1),r):r;var l=r.util.currentScript();function c(){r.manual||r.highlightAll()}if(l&&(r.filename=l.src,l.hasAttribute("data-manual")&&(r.manual=!0)),!r.manual){var u=document.readyState;"loading"===u||"interactive"===u&&l&&l.defer?document.addEventListener("DOMContentLoaded",c):window.requestAnimationFrame?window.requestAnimationFrame(c):window.setTimeout(c,16)}return r}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{});e.exports&&(e.exports=n),void 0!==t&&(t.Prism=n),n.languages.markup={comment://,prolog:/<\?[\s\S]+?\?>/,doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:(?!)*\]\s*)?>/i,greedy:!0},cdata://i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/i,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/i,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/i,inside:{punctuation:[/^=/,{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:/&#?[\da-z]{1,8};/i},n.languages.markup.tag.inside["attr-value"].inside.entity=n.languages.markup.entity,n.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(n.languages.markup.tag,"addInlined",{value:function(e,t){var r={};r["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:n.languages[t]},r.cdata=/^$/i;var o={"included-cdata":{pattern://i,inside:r}};o["language-"+t]={pattern:/[\s\S]+/,inside:n.languages[t]};var i={};i[e]={pattern:RegExp(/(<__[\s\S]*?>)(?:\s*|[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:o},n.languages.insertBefore("markup","cdata",i)}}),n.languages.xml=n.languages.extend("markup",{}),n.languages.html=n.languages.markup,n.languages.mathml=n.languages.markup,n.languages.svg=n.languages.markup,function(e){var t=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-]+[\s\S]*?(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\((?!\s*\))\s*)(?:[^()]|\((?:[^()]|\([^()]*\))*\))+?(?=\s*\))/,lookbehind:!0,alias:"selector"}}},url:{pattern:RegExp("url\\((?:"+t.source+"|[^\n\r()]*)\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/}},selector:RegExp("[^{}\\s](?:[^{};\"']|"+t.source+")*?(?=\\s*\\{)"),string:{pattern:t,greedy:!0},property:/[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i,important:/!important\b/i,function:/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),e.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i,inside:{"attr-name":{pattern:/^\s*style/i,inside:n.tag.inside},punctuation:/^\s*=\s*['"]|['"]\s*$/,"attr-value":{pattern:/.+/i,inside:e.languages.css}},alias:"language-css"}},n.tag))}(n),n.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|interface|extends|implements|trait|instanceof|new)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,function:/\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},n.languages.javascript=n.languages.extend("clike",{"class-name":[n.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])[_$A-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\.(?:prototype|constructor))/,lookbehind:!0}],keyword:[{pattern:/((?:^|})\s*)(?:catch|finally)\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],number:/\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/,function:/#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,operator:/--|\+\+|\*\*=?|=>|&&|\|\||[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?[.?]?|[~:]/}),n.languages.javascript["class-name"][0].pattern=/(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/,n.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[gimyus]{0,6}(?=(?:\s|\/\*[\s\S]*?\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0},"function-variable":{pattern:/#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)?\s*\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\))/,lookbehind:!0,inside:n.languages.javascript},{pattern:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=>)/i,inside:n.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*=>)/,lookbehind:!0,inside:n.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\s*)\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*\{)/,lookbehind:!0,inside:n.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),n.languages.insertBefore("javascript","string",{"template-string":{pattern:/`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}|(?!\${)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\${|}$/,alias:"punctuation"},rest:n.languages.javascript}},string:/[\s\S]+/}}}),n.languages.markup&&n.languages.markup.tag.addInlined("script","javascript"),n.languages.js=n.languages.javascript,"undefined"!=typeof self&&self.Prism&&self.document&&document.querySelector&&(self.Prism.fileHighlight=function(e){e=e||document;var t={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"};Array.prototype.slice.call(e.querySelectorAll("pre[data-src]")).forEach((function(e){if(!e.hasAttribute("data-src-loaded")){for(var r,o=e.getAttribute("data-src"),i=e,a=/\blang(?:uage)?-([\w-]+)\b/i;i&&!a.test(i.className);)i=i.parentNode;if(i&&(r=(e.className.match(a)||[,""])[1]),!r){var s=(o.match(/\.(\w+)$/)||[,""])[1];r=t[s]||s}var l=document.createElement("code");l.className="language-"+r,e.textContent="",l.textContent="Loading…",e.appendChild(l);var c=new XMLHttpRequest;c.open("GET",o,!0),c.onreadystatechange=function(){4==c.readyState&&(c.status<400&&c.responseText?(l.textContent=c.responseText,n.highlightElement(l),e.setAttribute("data-src-loaded","")):c.status>=400?l.textContent="✖ Error "+c.status+" while fetching file: "+c.statusText:l.textContent="✖ Error: File does not exist or is empty")},c.send(null)}}))},document.addEventListener("DOMContentLoaded",(function(){self.Prism.fileHighlight()})))}).call(this,n(5))},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t){e.exports={}},function(e,t){e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},function(e,t,n){var r=n(41);e.exports=function(e){return Object(r(e))}},function(e,t){e.exports={}},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e}},function(e,t,n){var r=n(44);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,o){return e.call(t,n,r,o)}}return function(){return e.apply(t,arguments)}}},function(e,t,n){"use strict";function r(e){return null==e}e.exports.isNothing=r,e.exports.isObject=function(e){return"object"==typeof e&&null!==e},e.exports.toArray=function(e){return Array.isArray(e)?e:r(e)?[]:[e]},e.exports.repeat=function(e,t){var n,r="";for(n=0;n ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3})(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:"^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?\\?>\\n*|\\n*|\\n*|)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$))",def:/^ {0,3}\[(label)\]: *\n? *]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,nptable:g,table:g,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html)[^\n]+)*)/,text:/^[^\n]+/};function r(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||k.defaults,this.rules=n.normal,this.options.pedantic?this.rules=n.pedantic:this.options.gfm&&(this.rules=n.gfm)}n._label=/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,n._title=/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/,n.def=f(n.def).replace("label",n._label).replace("title",n._title).getRegex(),n.bullet=/(?:[*+-]|\d{1,9}\.)/,n.item=/^( *)(bull) ?[^\n]*(?:\n(?!\1bull ?)[^\n]*)*/,n.item=f(n.item,"gm").replace(/bull/g,n.bullet).getRegex(),n.list=f(n.list).replace(/bull/g,n.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+n.def.source+")").getRegex(),n._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",n._comment=//,n.html=f(n.html,"i").replace("comment",n._comment).replace("tag",n._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),n.paragraph=f(n._paragraph).replace("hr",n.hr).replace("heading"," {0,3}#{1,6} +").replace("|lheading","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}|~{3,})[^`\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|!--)").replace("tag",n._tag).getRegex(),n.blockquote=f(n.blockquote).replace("paragraph",n.paragraph).getRegex(),n.normal=y({},n),n.gfm=y({},n.normal,{nptable:/^ *([^|\n ].*\|.*)\n *([-:]+ *\|[-| :]*)(?:\n((?:.*[^>\n ].*(?:\n|$))*)\n*|$)/,table:/^ *\|(.+)\n *\|?( *[-:]+[-| :]*)(?:\n((?: *[^>\n ].*(?:\n|$))*)\n*|$)/}),n.pedantic=y({},n.normal,{html:f("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",n._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *(?:#+ *)?(?:\n+|$)/,fences:g,paragraph:f(n.normal._paragraph).replace("hr",n.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",n.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()}),r.rules=n,r.lex=function(e,t){return new r(t).lex(e)},r.prototype.lex=function(e){return e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g," ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n"),this.token(e,!0)},r.prototype.token=function(e,t){var r,o,i,a,s,l,c,p,f,d,h,m,g,y,w,x;for(e=e.replace(/^ +$/gm,"");e;)if((i=this.rules.newline.exec(e))&&(e=e.substring(i[0].length),i[0].length>1&&this.tokens.push({type:"space"})),i=this.rules.code.exec(e)){var k=this.tokens[this.tokens.length-1];e=e.substring(i[0].length),k&&"paragraph"===k.type?k.text+="\n"+i[0].trimRight():(i=i[0].replace(/^ {4}/gm,""),this.tokens.push({type:"code",codeBlockStyle:"indented",text:this.options.pedantic?i:b(i,"\n")}))}else if(i=this.rules.fences.exec(e))e=e.substring(i[0].length),this.tokens.push({type:"code",lang:i[2]?i[2].trim():i[2],text:i[3]||""});else if(i=this.rules.heading.exec(e))e=e.substring(i[0].length),this.tokens.push({type:"heading",depth:i[1].length,text:i[2]});else if((i=this.rules.nptable.exec(e))&&(l={type:"table",header:v(i[1].replace(/^ *| *\| *$/g,"")),align:i[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:i[3]?i[3].replace(/\n$/,"").split("\n"):[]}).header.length===l.align.length){for(e=e.substring(i[0].length),h=0;h ?/gm,""),this.token(i,t),this.tokens.push({type:"blockquote_end"});else if(i=this.rules.list.exec(e)){for(e=e.substring(i[0].length),c={type:"list_start",ordered:y=(a=i[2]).length>1,start:y?+a:"",loose:!1},this.tokens.push(c),p=[],r=!1,g=(i=i[0].match(this.rules.item)).length,h=0;h1?1===s.length:s.length>1||this.options.smartLists&&s!==a)&&(e=i.slice(h+1).join("\n")+e,h=g-1)),o=r||/\n\n(?!\s*$)/.test(l),h!==g-1&&(r="\n"===l.charAt(l.length-1),o||(o=r)),o&&(c.loose=!0),x=void 0,(w=/^\[[ xX]\] /.test(l))&&(x=" "!==l[1],l=l.replace(/^\[[ xX]\] +/,"")),f={type:"list_item_start",task:w,checked:x,loose:o},p.push(f),this.tokens.push(f),this.token(l,!1),this.tokens.push({type:"list_item_end"});if(c.loose)for(g=p.length,h=0;h?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:g,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,nolink:/^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,strong:/^__([^\s_])__(?!_)|^\*\*([^\s*])\*\*(?!\*)|^__([^\s][\s\S]*?[^\s])__(?!_)|^\*\*([^\s][\s\S]*?[^\s])\*\*(?!\*)/,em:/^_([^\s_])_(?!_)|^\*([^\s*<\[])\*(?!\*)|^_([^\s<][\s\S]*?[^\s_])_(?!_|[^\spunctuation])|^_([^\s_<][\s\S]*?[^\s])_(?!_|[^\spunctuation])|^\*([^\s<"][\s\S]*?[^\s\*])\*(?!\*|[^\spunctuation])|^\*([^\s*"<\[][\s\S]*?[^\s])\*(?!\*)/,code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:g,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\?@\\[^_{|}~",o.em=f(o.em).replace(/punctuation/g,o._punctuation).getRegex(),o._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,o._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,o._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,o.autolink=f(o.autolink).replace("scheme",o._scheme).replace("email",o._email).getRegex(),o._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,o.tag=f(o.tag).replace("comment",n._comment).replace("attribute",o._attribute).getRegex(),o._label=/(?:\[[^\[\]]*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,o._href=/<(?:\\[<>]?|[^\s<>\\])*>|[^\s\x00-\x1f]*/,o._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,o.link=f(o.link).replace("label",o._label).replace("href",o._href).replace("title",o._title).getRegex(),o.reflink=f(o.reflink).replace("label",o._label).getRegex(),o.normal=y({},o),o.pedantic=y({},o.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/,link:f(/^!?\[(label)\]\((.*?)\)/).replace("label",o._label).getRegex(),reflink:f(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",o._label).getRegex()}),o.gfm=y({},o.normal,{escape:f(o.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^~+(?=\S)([\s\S]*?\S)~+/,text:/^(`+|[^`])(?:[\s\S]*?(?:(?=[\\/i.test(a[0])&&(this.inLink=!1),!this.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(a[0])?this.inRawBlock=!0:this.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(a[0])&&(this.inRawBlock=!1),e=e.substring(a[0].length),l+=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(a[0]):u(a[0]):a[0];else if(a=this.rules.link.exec(e)){var c=w(a[2],"()");if(c>-1){var p=4+a[1].length+c;a[2]=a[2].substring(0,c),a[0]=a[0].substring(0,p).trim(),a[3]=""}e=e.substring(a[0].length),this.inLink=!0,r=a[2],this.options.pedantic?(t=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(r))?(r=t[1],o=t[3]):o="":o=a[3]?a[3].slice(1,-1):"",r=r.trim().replace(/^<([\s\S]*)>$/,"$1"),l+=this.outputLink(a,{href:i.escapes(r),title:i.escapes(o)}),this.inLink=!1}else if((a=this.rules.reflink.exec(e))||(a=this.rules.nolink.exec(e))){if(e=e.substring(a[0].length),t=(a[2]||a[1]).replace(/\s+/g," "),!(t=this.links[t.toLowerCase()])||!t.href){l+=a[0].charAt(0),e=a[0].substring(1)+e;continue}this.inLink=!0,l+=this.outputLink(a,t),this.inLink=!1}else if(a=this.rules.strong.exec(e))e=e.substring(a[0].length),l+=this.renderer.strong(this.output(a[4]||a[3]||a[2]||a[1]));else if(a=this.rules.em.exec(e))e=e.substring(a[0].length),l+=this.renderer.em(this.output(a[6]||a[5]||a[4]||a[3]||a[2]||a[1]));else if(a=this.rules.code.exec(e))e=e.substring(a[0].length),l+=this.renderer.codespan(u(a[2].trim(),!0));else if(a=this.rules.br.exec(e))e=e.substring(a[0].length),l+=this.renderer.br();else if(a=this.rules.del.exec(e))e=e.substring(a[0].length),l+=this.renderer.del(this.output(a[1]));else if(a=this.rules.autolink.exec(e))e=e.substring(a[0].length),r="@"===a[2]?"mailto:"+(n=u(this.mangle(a[1]))):n=u(a[1]),l+=this.renderer.link(r,null,n);else if(this.inLink||!(a=this.rules.url.exec(e))){if(a=this.rules.text.exec(e))e=e.substring(a[0].length),this.inRawBlock?l+=this.renderer.text(this.options.sanitize?this.options.sanitizer?this.options.sanitizer(a[0]):u(a[0]):a[0]):l+=this.renderer.text(u(this.smartypants(a[0])));else if(e)throw new Error("Infinite loop on byte: "+e.charCodeAt(0))}else{if("@"===a[2])r="mailto:"+(n=u(a[0]));else{do{s=a[0],a[0]=this.rules._backpedal.exec(a[0])[0]}while(s!==a[0]);n=u(a[0]),r="www."===a[1]?"http://"+n:n}e=e.substring(a[0].length),l+=this.renderer.link(r,null,n)}return l},i.escapes=function(e){return e?e.replace(i.rules._escapes,"$1"):e},i.prototype.outputLink=function(e,t){var n=t.href,r=t.title?u(t.title):null;return"!"!==e[0].charAt(0)?this.renderer.link(n,r,this.output(e[1])):this.renderer.image(n,r,u(e[1]))},i.prototype.smartypants=function(e){return this.options.smartypants?e.replace(/---/g,"—").replace(/--/g,"–").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…"):e},i.prototype.mangle=function(e){if(!this.options.mangle)return e;for(var t,n="",r=e.length,o=0;o.5&&(t="x"+t.toString(16)),n+="&#"+t+";";return n},a.prototype.code=function(e,t,n){var r=(t||"").match(/\S*/)[0];if(this.options.highlight){var o=this.options.highlight(e,r);null!=o&&o!==e&&(n=!0,e=o)}return r?'
'+(n?e:u(e,!0))+"
\n":"
"+(n?e:u(e,!0))+"
"},a.prototype.blockquote=function(e){return"
\n"+e+"
\n"},a.prototype.html=function(e){return e},a.prototype.heading=function(e,t,n,r){return this.options.headerIds?"'+e+"\n":""+e+"\n"},a.prototype.hr=function(){return this.options.xhtml?"
\n":"
\n"},a.prototype.list=function(e,t,n){var r=t?"ol":"ul";return"<"+r+(t&&1!==n?' start="'+n+'"':"")+">\n"+e+"\n"},a.prototype.listitem=function(e){return"
  • "+e+"
  • \n"},a.prototype.checkbox=function(e){return" "},a.prototype.paragraph=function(e){return"

    "+e+"

    \n"},a.prototype.table=function(e,t){return t&&(t=""+t+""),"\n\n"+e+"\n"+t+"
    \n"},a.prototype.tablerow=function(e){return"\n"+e+"\n"},a.prototype.tablecell=function(e,t){var n=t.header?"th":"td";return(t.align?"<"+n+' align="'+t.align+'">':"<"+n+">")+e+"\n"},a.prototype.strong=function(e){return""+e+""},a.prototype.em=function(e){return""+e+""},a.prototype.codespan=function(e){return""+e+""},a.prototype.br=function(){return this.options.xhtml?"
    ":"
    "},a.prototype.del=function(e){return""+e+""},a.prototype.link=function(e,t,n){if(null===(e=d(this.options.sanitize,this.options.baseUrl,e)))return n;var r='"},a.prototype.image=function(e,t,n){if(null===(e=d(this.options.sanitize,this.options.baseUrl,e)))return n;var r=''+n+'":">"},a.prototype.text=function(e){return e},s.prototype.strong=s.prototype.em=s.prototype.codespan=s.prototype.del=s.prototype.text=function(e){return e},s.prototype.link=s.prototype.image=function(e,t,n){return""+n},s.prototype.br=function(){return""},l.parse=function(e,t){return new l(t).parse(e)},l.prototype.parse=function(e){this.inline=new i(e.links,this.options),this.inlineText=new i(e.links,y({},this.options,{renderer:new s})),this.tokens=e.reverse();for(var t="";this.next();)t+=this.tok();return t},l.prototype.next=function(){return this.token=this.tokens.pop(),this.token},l.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0},l.prototype.parseText=function(){for(var e=this.token.text;"text"===this.peek().type;)e+="\n"+this.next().text;return this.inline.output(e)},l.prototype.tok=function(){switch(this.token.type){case"space":return"";case"hr":return this.renderer.hr();case"heading":return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,p(this.inlineText.output(this.token.text)),this.slugger);case"code":return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);case"table":var e,t,n,r,o="",i="";for(n="",e=0;e?@[\]^`{|}~]/g,"").replace(/\s/g,"-");if(this.seen.hasOwnProperty(t)){var n=t;do{this.seen[n]++,t=n+"-"+this.seen[n]}while(this.seen.hasOwnProperty(t))}return this.seen[t]=0,t},u.escapeTest=/[&<>"']/,u.escapeReplace=/[&<>"']/g,u.replacements={"&":"&","<":"<",">":">",'"':""","'":"'"},u.escapeTestNoEncode=/[<>"']|&(?!#?\w+;)/,u.escapeReplaceNoEncode=/[<>"']|&(?!#?\w+;)/g;var h={},m=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function g(){}function y(e){for(var t,n,r=1;r=0&&"\\"===n[o];)r=!r;return r?"|":" |"})).split(/ \|/),r=0;if(n.length>t)n.splice(t);else for(;n.lengthAn error occurred:

    "+u(e.message+"",!0)+"
    ";throw e}}g.exec=g,k.options=k.setOptions=function(e){return y(k.defaults,e),k},k.getDefaults=function(){return{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:new a,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,xhtml:!1}},k.defaults=k.getDefaults(),k.Parser=l,k.parser=l.parse,k.Renderer=a,k.TextRenderer=s,k.Lexer=r,k.lexer=r.lex,k.InlineLexer=i,k.inlineLexer=i.output,k.Slugger=c,k.parse=k,e.exports=k}(this||"undefined"!=typeof window&&window)}).call(this,n(5))},function(e,t,n){var r=n(9);e.exports=function(e,t){if(!r(e))return e;var n,o;if(t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;if("function"==typeof(n=e.valueOf)&&!r(o=n.call(e)))return o;if(!t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;throw TypeError("Can't convert object to primitive value")}},function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++n+r).toString(36)}},function(e,t,n){var r=n(68),o=n(50),i=r("keys");e.exports=function(e){return i[e]||(i[e]=o(e))}},function(e,t,n){var r,o=n(18),i=n(170),a=n(78),s=n(40),l=n(107),c=n(70),u=n(51),p=u("IE_PROTO"),f=function(){},d=function(e){return"