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
\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 * -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
\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
" + 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
\\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 }\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' ?