{"version":3,"sources":["webpack://typescriptlang-org/./src/components/SuppressWhenTouch.tsx","webpack://typescriptlang-org/./src/components/devNav.tsx","webpack://typescriptlang-org/./src/lib/isTouchDevice.ts","webpack://typescriptlang-org/../node_modules/gatsby/node_modules/babel-loader/lib/node_modules/shiki/dist/index.esm.js","webpack://typescriptlang-org/../node_modules/gatsby/node_modules/babel-loader/lib/node_modules/shiki-twoslash/node_modules/@typescript/vfs/dist/vfs.esm.js","webpack://typescriptlang-org/../node_modules/gatsby/node_modules/babel-loader/lib/node_modules/shiki-twoslash/node_modules/@typescript/twoslash/dist/twoslash.esm.js","webpack://typescriptlang-org/../node_modules/gatsby/node_modules/babel-loader/lib/node_modules/shiki-twoslash/dist/shiki-twoslash.esm.js","webpack://typescriptlang-org/./src/pages/dev/twoslash.tsx","webpack://typescriptlang-org/../node_modules/gatsby/node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack://typescriptlang-org/../node_modules/gatsby/node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack://typescriptlang-org/../node_modules/gatsby/node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack://typescriptlang-org/../node_modules/gatsby/node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://typescriptlang-org/../node_modules/gatsby/node_modules/@babel/runtime/helpers/createClass.js","webpack://typescriptlang-org/../node_modules/gatsby/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack://typescriptlang-org/../node_modules/gatsby/node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack://typescriptlang-org/../node_modules/gatsby/node_modules/@babel/runtime/helpers/slicedToArray.js","webpack://typescriptlang-org/../node_modules/gatsby/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack://typescriptlang-org/../node_modules/gatsby/node_modules/babel-loader/lib/node_modules/onigasm/lib/OnigRegExp.js","webpack://typescriptlang-org/../node_modules/gatsby/node_modules/babel-loader/lib/node_modules/onigasm/lib/OnigScanner.js","webpack://typescriptlang-org/../node_modules/gatsby/node_modules/babel-loader/lib/node_modules/onigasm/lib/OnigString.js","webpack://typescriptlang-org/../node_modules/gatsby/node_modules/babel-loader/lib/node_modules/onigasm/lib/index.js","webpack://typescriptlang-org/../node_modules/gatsby/node_modules/babel-loader/lib/node_modules/onigasm/lib/onigasm.js","webpack://typescriptlang-org/../node_modules/gatsby/node_modules/babel-loader/lib/node_modules/onigasm/lib/onigasmH.js","webpack://typescriptlang-org/../node_modules/gatsby/node_modules/babel-loader/lib/node_modules/onigasm/node_modules/lru-cache/index.js","webpack://typescriptlang-org/../node_modules/gatsby/node_modules/babel-loader/lib/node_modules/path-browserify/index.js","webpack://typescriptlang-org/../node_modules/gatsby/node_modules/babel-loader/lib/node_modules/vscode-textmate/release/main.js","webpack://typescriptlang-org/../node_modules/gatsby/node_modules/babel-loader/lib/node_modules/yallist/iterator.js","webpack://typescriptlang-org/../node_modules/gatsby/node_modules/babel-loader/lib/node_modules/yallist/yallist.js","webpack://typescriptlang-org//var/www/html/typescriptweb/TypeScript-website/node_modules/shiki-twoslash/node_modules/@typescript/twoslash/dist|sync|/^.*th$/"],"names":["SuppressWhenTouch","children","hideOnTouch","useEffect","isTouchDevice","suppressible","document","getElementById","firstChild","removeChild","h4","createElement","textContent","p","appendChild","id","DevNav","props","isActive","str","active","toLowerCase","className","style","display","href","withPrefix","hasTouchScreen","navigator","maxTouchPoints","msMaxTouchPoints","mQ","window","matchMedia","media","matches","UA","userAgent","test","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","minLen","_arrayLikeToArray","n","Object","prototype","toString","call","slice","constructor","name","from","_unsupportedIterableToArray","length","i","F","s","done","value","e","_e2","f","TypeError","err","normalCompletion","didErr","step","next","_e3","return","arr","len","arr2","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","_isNativeReflectConstruct","result","Super","NewTarget","this","arguments","apply","trimEndSlash","endsWith","trimStartDot","startsWith","dirname","parts","split","join","_len","_key","map","isBrowser","fetch","CDN_ROOT","_resolvePath","filepath","console","warn","concat","path","isAbsolute","resolve","_fetchAssets","_x","_fetchAssets2","_callee7","fs","_context7","prev","then","r","text","abrupt","sent","promises","readFile","stop","_fetchJSONAssets","_x2","_fetchJSONAssets2","_callee8","_context8","t0","JSON","t1","parse","fetchTheme","_x3","_fetchTheme","_callee9","themePath","theme","shikiTheme","includedTheme","_context9","toShikiTheme","include","settings","bg","rawTheme","assign","_a","_b","_c","_d","_e","_f","fg","tokenColors","globalSetting","find","scope","undefined","foreground","background","colors","type","VSCODE_FALLBACK_EDITOR_FG","VSCODE_FALLBACK_EDITOR_BG","getThemeDefaultColors","unshift","Registry","hasLocalStorage","localStorage","error","hasProcess","process","getItem","DEBUG","log","_getPrototypeOf","setPrototypeOf","getPrototypeOf","__proto__","_setPrototypeOf","_construct","Parent","args","Class","a","push","instance","Function","bind","_wrapNativeSuper","_cache","Map","fn","indexOf","has","get","set","Wrapper","create","enumerable","writable","configurable","Error","arrow","flipped","rotation","htmlAttrReplacer","replace","htmlAttrUnReplacer","replaceTripleArrow","html","shouldBeHighlightable","highlight","keys","key","includes","isNaN","parseInt","shouldHighlightLine","lines","_key$split","first","last","lastIndex","line","preOpenerFromRenderingOptsWithExtras","opts","meta","classes","classList","themeName","title","filter","trim","attributes","entries","entry","_ref","plainTextRenderer","code","options","langId","twoslashRenderer","twoslash","hasHighlight","hl","errorsGroupedByLine","groupBy","errors","staticQuickInfosGroupedByLine","staticQuickInfos","q","queriesGroupedByLine","queries","filePos","forEach","l","lspValues","prefix","tokenPos","token","targetedQueryWord","tokenContent","findTokenFunc","start","character","content","errorsInToken","lspResponsesInToken","queriesInToken","response","_targetedQueryWord","allTokensByStart","sort","ranges","targetedWord","tag","x","makeTagFromRange","close","lsp","underLineTargetedWord","b","precedenceOf","cmp","begin","end","cursor","nest","data","stack","top","shift","substring","some","stringify","table","chr","stripHTML","createHighlightedString","range","kind","lspText","includeJSDocInHover","docs","color","messages","renderedMessage","codes","query","queryTextWithPrefix","halfWayAcrossTheTargetedWord","repeat","completions","lis","c","completionsPrefix","localeCompare","_query$completionsPre","_c$kindModifiers","after","substr","kindModifiers","offset","padStart","addTryButton","playgroundLink","playgroundURL","tags","t","annotation","pop","info","arrowRotation","textRotation","arrowSVG","htmlForTags","list","keyGetter","item","collection","defaultShikiRenderer","hiClass","tsconfig","compilerOptions","allowJs","allowSyntheticDefaultImports","allowUmdGlobalAccess","allowUnreachableCode","allowUnusedLabels","alwaysStrict","assumeChangesOnlyAffectDirectDependencies","baseUrl","charset","checkJs","clean","composite","declaration","declarationDir","declarationMap","diagnostics","disableFilenameBasedTypeAcquisition","disableReferencedProjectLoad","disableSizeLimit","disableSolutionSearching","disableSourceOfProjectReferenceRedirect","downlevelIteration","emitBOM","emitDeclarationOnly","emitDecoratorMetadata","enable","esModuleInterop","exactOptionalPropertyTypes","exclude","excludeDirectories","excludeFiles","experimentalDecorators","explainFiles","extendedDiagnostics","fallbackPolling","files","force","forceConsistentCasingInFileNames","generateCpuProfile","importHelpers","importsNotUsedAsValues","incremental","inlineSourceMap","inlineSources","isolatedModules","jsx","jsxFactory","jsxFragmentFactory","jsxImportSource","keyofStringsOnly","lib","listEmittedFiles","listFiles","locale","mapRoot","maxNodeModuleJsDepth","module","moduleResolution","newLine","noEmit","noEmitHelpers","noEmitOnError","noErrorTruncation","noFallthroughCasesInSwitch","noImplicitAny","noImplicitOverride","noImplicitReturns","noImplicitThis","noImplicitUseStrict","noLib","noPropertyAccessFromIndexSignature","noResolve","noStrictGenericChecks","noUncheckedIndexedAccess","noUnusedLocals","noUnusedParameters","out","outDir","outFile","paths","plugins","preserveConstEnums","preserveSymlinks","preserveWatchOutput","pretty","reactNamespace","references","removeComments","resolveJsonModule","rootDir","rootDirs","skipDefaultLibCheck","skipLibCheck","sourceMap","sourceRoot","strict","strictBindCallApply","strictFunctionTypes","strictNullChecks","strictPropertyInitialization","stripInternal","suppressExcessPropertyErrors","suppressImplicitAnyIndexErrors","synchronousWatchDirectory","target","traceResolution","tsBuildInfoFile","typeAcquisition","typeRoots","types","useDefineForClassFields","useUnknownInCatchVariables","verbose","watchDirectory","watchFile","tsconfigJSONRenderer","explanation","scopes","scopeName","tokenIsJSONKey","isKeyInTSConfig","oneliner","renderers","Index","getLoaderScript","src","async","onload","sandboxRoot","getPlaygroundUrls","re","global","require","config","vs","sandbox","ignoreDuplicateModules","main","ts","sandboxEnv","_ts","parentNode","createTypeScriptSandbox","codeSamples","domID","supportTwoslashCompilerOptions","editor","focus","createDefaultMapFromCDN","lzstring","mapWithLibFiles","runTwoslash","newContent","getText","newResults","twoslasher","tsModule","lzstringModule","fsMap","codeAsFakeShikiTokens","results","innerHTML","innerText","extension","failure","header","opener","message","debouncedTwoslash","debounce","onDidChangeModelContent","setTimeout","querySelectorAll","button","remove","codeElement","monaco","colorize","tabSize","newHTML","body","description","lang","marginTop","paddingTop","maxWidth","flex","blurb","role","height","onClick","contains","setText","paddingLeft","borderLeft","position","overflow","Intl","exports","__esModule","asyncGeneratorStep","gen","reject","_next","_throw","arg","Promise","self","Constructor","_defineProperties","descriptor","defineProperty","protoProps","staticProps","_i","_s","_arr","_n","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","arrayLikeToArray","_classCallCheck","_createClass","OnigScanner_1","OnigRegExp","source","scanner","default","string","startPosition","match","findNextMatchSync","captureIndicesForMatch","callback","searchSync","testSync","capture","captureIndices","convertToString","_slicedToArray","LRUCache","onigasmH_1","OnigString_1","mallocAndWriteString","ptr","onigasmH","_malloc","utf8Bytes","HEAPU8","convertUTF8BytesFromPtrToString","chars","cache","dispose","regexTPtrsPtr","regexTPtrs","_disposeCompiledPatterns","patterns","errMessage","_getLastError","_free","max","OnigScanner","sources","convertToNumber","onigNativeInfo","regexTAddrRecieverPtr","pattern","patternStrPtr","_compilePattern","regexTAddress","HEAP32","Uint8Array","Uint32Array","buffer","onigString","strPtr","resultInfoReceiverPtr","_findBestMatch","convertUtf16OffsetToUtf8","_errMessage","_Uint32Array","HEAPU32","_Uint32Array2","bestPatternIdx","encodedResultBeginAddress","encodedResultLength","encodedResult","captureIdx","index","hasMultiByteCharacters","convertUtf8OffsetToUtf16","isFinite","Math","OnigString","_this","_utf8Bytes","_utf8Indexes","encode","utf8Indexes","utf8Offset","utf8OffsetMap","_mappingTableStartOffset","array","low","high","mid","floor","findFirstInSorted","utf16Offset","utf8Array","utf16OffsetToUtf8","mappingTableStartOffset","createOffsetTable","startOffset","maxUtf8Len","Uint16Array","u8view","ptrHead","codepoint","charCodeAt","d","bytesRequiredToEncode","temp","utf8","loadWASM","Onigasm","currentScript","Module","moduleOverrides","hasOwnProperty","readBinary","arguments_","ENVIRONMENT_IS_WEB","ENVIRONMENT_IS_WORKER","ENVIRONMENT_IS_SHELL","scriptDirectory","locateFile","read","readbuffer","assert","scriptArgs","quit","status","print","printErr","wasmBinary","wasmMemory","setTempRet0","WebAssembly","wasmTable","Table","ABORT","condition","abort","getCFunc","ident","func","ccall","returnType","argTypes","toC","ret","stringToUTF8","stackAlloc","writeArrayToMemory","cArgs","converter","stackSave","UTF8ToString","convertReturnValue","stackRestore","UTF8Decoder","TextDecoder","UTF8ArrayToString","u8Array","idx","maxBytesToRead","endIdx","endPtr","subarray","decode","u0","u1","u2","String","fromCharCode","ch","stringToUTF8Array","outU8Array","outIdx","maxBytesToWrite","startIdx","u","outPtr","HEAP8","WASM_PAGE_SIZE","alignUp","multiple","updateGlobalBufferAndViews","buf","Int8Array","Int16Array","Int32Array","Float32Array","Float64Array","DYNAMIC_BASE","DYNAMICTOP_PTR","INITIAL_TOTAL_MEMORY","callRuntimeCallbacks","callbacks","Memory","byteLength","__ATPRERUN__","__ATINIT__","__ATMAIN__","__ATPOSTRUN__","preRun","addOnPreRun","initRuntime","preMain","postRun","addOnPostRun","cb","abs","ceil","min","runDependencies","runDependencyWatcher","dependenciesFulfilled","addRunDependency","removeRunDependency","clearInterval","what","RuntimeError","dataURIPrefix","isDataURI","filename","wasmBinaryFile","getBinary","getBinaryPromise","credentials","catch","createWasm","asmLibraryArg","receiveInstance","receiveInstantiatedSource","output","instantiateArrayBuffer","receiver","binary","instantiate","reason","instantiateStreaming","instantiateAsync","_abort","_emscripten_get_heap_size","_emscripten_get_sbrk_ptr","_emscripten_memcpy_big","dest","num","emscripten_realloc_buffer","size","grow","_emscripten_resize_heap","requestedSize","oldSize","PAGE_MULTIPLE","LIMIT","newSize","___wasm_call_ctors","SYSCALLS","buffers","printChar","stream","curr","varargs","getStr","get64","getZero","_fd_close","fd","FS","ErrnoError","errno","_fd_seek","offset_low","offset_high","whence","newOffset","_fd_write","iov","iovcnt","pnum","j","_setTempRet0","$i","asm","calledRun","run","doRun","old","runCaller","_regeneratorRuntime","_asyncToGenerator","OnigasmModuleFactory","initModule","_initModule","mark","_callee","bytes","wrap","_context","_console","instantiateWasm","imports","successCallback","moduleH","isInitialized","_loadWASM","_callee2","arrayBuffer","_context2","ArrayBuffer","Yallist","MAX","LENGTH","LENGTH_CALCULATOR","ALLOW_STALE","MAX_AGE","DISPOSE","NO_DISPOSE_ON_SET","LRU_LIST","CACHE","UPDATE_AGE_ON_GET","naiveLength","Infinity","lc","stale","maxAge","noDisposeOnSet","updateAgeOnGet","reset","mL","allowStale","mA","lC","hit","thisp","walker","tail","forEachStep","head","toArray","k","_this2","_this3","isStale","v","now","h","Date","_del","Entry","_get","node","expiresAt","_this4","doUse","unshiftNode","diff","delete","removeNode","assertPath","normalizeStringPosix","allowAboveRoot","res","lastSegmentLength","lastSlash","dots","lastSlashIndex","lastIndexOf","posix","cwd","resolvedPath","resolvedAbsolute","normalize","trailingSeparator","joined","relative","to","fromStart","fromEnd","fromLen","toStart","toLen","lastCommonSep","fromCode","_makeLong","hasRoot","matchedSlash","basename","ext","extIdx","firstNonSlashEnd","extname","startDot","startPart","preDotState","format","pathObject","sep","dir","root","base","_format","delimiter","win32","m","toStringTag","performance","createGrammar","FullScopeDependency","toKey","PartialScopeDependency","full","partial","visitedRule","Set","_seenFull","_seenPartial","add","repository","mergeObjects","g","charAt","_","y","injections","every","createMatchers","RuleFactory","getCompiledRuleId","matcher","ruleId","grammar","priority","ScopeDependencyCollector","collectSpecificDependencies","collectDependencies","languageId","tokenType","themeData","ScopeMetadata","_initialLanguage","_themeProvider","_defaultMetaData","getDefaults","_embeddedLanguages","_escapeRegExpCharacters","_embeddedLanguagesRegex","reverse","RegExp","onDidChangeTheme","getDefaultMetadata","getMetadataForScope","_NULL_SCOPE_METADATA","_doGetMetadataForScope","_scopeToLanguage","_toStandardTokenType","themeMatch","STANDARD_TOKEN_TYPE_REGEXP","_scopeMetadataProvider","_onigLib","_rootId","_lastRuleId","_ruleId2desc","_includedGrammars","_grammarRepository","_grammar","C","_injections","_tokenTypeMatchers","createOnigScanner","createOnigString","getInjections","getExternalGrammar","injectionSelector","registerRule","getRule","lookup","$base","tokenizeLine","_tokenize","tokens","lineTokens","getResult","ruleStack","lineLength","tokenizeLine2","getBinaryResult","$self","I","NULL","P","fontStyle","getName","mergeMetadata","T","S","clone","$vscodeTextmateLocation","w","endPos","produceFromScopes","produce","retokenizeCapturedWithRuleId","contentNameScopesList","getContentName","A","rules","debugRegExps","R","compile","endRule","DebugFlags","InDebugMode","debugName","matchedRuleId","Number","MAX_VALUE","generateScopes","priorityMatch","beginRuleCapturedEOL","BeginWhileRule","rule","compileWhile","debugWhileRegExp","whileCaptures","linePos","anchorPosition","isFirstLine","debugEndRegExp","setContentNameScopesList","nameScopesList","endCaptures","getAnchorPos","getEnterPos","BeginEndRule","debugBeginRegExp","beginCaptures","endHasBackReferences","setEndRule","getEndWithResolvedBackReferences","hasSameRuleAs","whileHasBackReferences","getWhileWithResolvedBackReferences","debugMatchRegExp","captures","safePop","Grammar","toBinaryStr","printMetadata","getLanguageId","getTokenType","getFontStyle","getForeground","getBackground","StackElementMetadata","parent","metadata","_equals","equals","_matchesScope","_matches","parentScopes","_push","_generateScopes","ScopeListElement","depth","_enterPos","_anchorPos","_structuralEquals","_reset","_writeString","StackElement","LocalStackElement","_emitBinaryTokens","_tokenTypeOverrides","_lineText","_tokens","_binaryTokens","_lastTokenEndIndex","L","startIndex","endIndex","hasCaptures","replaceCaptures","toUpperCase","RegexSource","env","VSCODE_TEXTMATE_DEBUG","__awaiter","throw","__generator","label","trys","ops","_options","_syncRegistry","SyncRegistry","Theme","createFromRawTheme","colorMap","onigLib","_ensureGrammarCache","setTheme","getColorMap","loadGrammarWithEmbeddedLanguages","loadGrammarWithConfiguration","embeddedLanguages","_loadGrammar","tokenTypes","loadGrammar","_doLoadSingleGrammar","addGrammar","_loadSingleGrammar","_collectDependenciesForDep","all","grammarForScopeName","INITIAL","parseRawGrammar","_theme","_grammars","_rawGrammars","_injectionGrammars","_onigLibPromise","_r","__extends","CompiledRule","$location","_name","_nameIsCapturing","_contentName","_contentNameIsCapturing","Rule","collectPatternsRecursive","CaptureRule","hasAnchor","_anchorCache","_buildAnchorCache","hasBackReferences","setSource","resolveBackReferences","A0_G0","A0_G1","A1_G0","A1_G1","resolveAnchors","RegExpSource","_items","_hasAnchors","_cached","_disposeCaches","_resolveAnchors","RegExpSourceList","_match","_cachedCompiledPatterns","MatchRule","hasMissingPatterns","IncludeOnlyRule","_begin","_end","applyEndPatternLast","_while","_cachedCompiledWhilePatterns","createCaptureRule","_compileCaptures","contentName","_compilePatterns","while","exec","clearTimeout","fun","nextTick","browser","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","chdir","umask","parseWithLocation","char","M","G","D","N","E","isClosed","fromCodePoint","O","parseFloat","pos","toLocation","_r2","getId","insert","ParsedThemeRule","parseTheme","_lastColorId","_id2color","_color2id","_isFrozen","ColorMap","_colorMap","_root","_defaults","createFromParsedTheme","strcmp","strArrCmp","scopeDepth","cloneArr","acceptOverwrite","ThemeTrieElementRule","_mainRule","_rulesWithParentScopes","_children","_sortBySpecificity","_cmpBySpecificity","_doInsertHere","ThemeTrieElement","inserted","Node","pushNode","forEachReverse","getReverse","mapReverse","reduce","initial","acc","reduceReverse","toArrayReverse","sliceReverse","splice","deleteCount","er","webpackEmptyContext","req"],"mappings":"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","file":"component---src-pages-dev-twoslash-tsx-f19bda52e4d00dcd782b.js","sourcesContent":["import React, { useEffect } from \"react\"\nimport { isTouchDevice } from \"../lib/isTouchDevice\"\n\n/**\n * A React component which will remove its children (at runtime!)\n * from the hierarchy if we're on a touch device\n */\nexport const SuppressWhenTouch = ({ children, hideOnTouch }: any) => {\n\n useEffect(() => {\n if (isTouchDevice()) {\n // It's touch, so let's kill the content in the child and \n // replace it with a message that this section isn't good for mobile\n const suppressible = document.getElementById(\"touch-suppressible\")!\n while (suppressible.firstChild) {\n suppressible.removeChild(suppressible.firstChild)\n }\n\n if (hideOnTouch) return\n\n const h4 = document.createElement(\"h4\")\n h4.textContent = \"Section best on a computer\"\n\n const p = document.createElement(\"p\")\n p.textContent = \"This part of the site does not run well on a touch-oriented browser. We recommend switching to a computer to carry on.\"\n\n suppressible.appendChild(h4)\n suppressible.appendChild(p)\n }\n\n }, [])\n return (\n
\n {children}\n
)\n}\n","import * as React from \"react\"\nimport { withPrefix } from \"gatsby\"\n\ninterface DevNavProps {\n active?: string\n}\n\nexport const DevNav = (props: DevNavProps) => {\n const isActive = (str) =>\n props.active && props.active.toLowerCase() === str ? \"active\" : \"\"\n\n return \n}\n","/** Based on https://developer.mozilla.org/docs/Web/HTTP/Browser_detection_using_the_user_agent */\nexport function isTouchDevice() {\n var hasTouchScreen = false\n if (\"maxTouchPoints\" in navigator) {\n hasTouchScreen = navigator.maxTouchPoints > 0\n } else if (\"msMaxTouchPoints\" in navigator) {\n // @ts-ignore\n hasTouchScreen = navigator.msMaxTouchPoints > 0\n } else {\n var mQ =\n typeof window !== \"undefined\" &&\n \"matchMedia\" in window &&\n matchMedia(\"(pointer:coarse)\")\n if (mQ && mQ.media === \"(pointer:coarse)\") {\n hasTouchScreen = !!mQ.matches\n } else if (\"orientation\" in window) {\n hasTouchScreen = true // deprecated, but good fallback\n } else {\n // Only as a last resort, fall back to user agent sniffing\n // @ts-ignore\n var UA = navigator.userAgent\n hasTouchScreen =\n /\\b(BlackBerry|webOS|iPhone|IEMobile)\\b/i.test(UA) ||\n /\\b(Android|Windows Phone|iPad|iPod)\\b/i.test(UA)\n }\n }\n return hasTouchScreen\n}\n","import _inherits from \"/var/www/html/typescriptweb/TypeScript-website/node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/typescriptweb/TypeScript-website/node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/typescriptweb/TypeScript-website/node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _classCallCheck from \"/var/www/html/typescriptweb/TypeScript-website/node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/typescriptweb/TypeScript-website/node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/createClass\";\nimport _asyncToGenerator from \"/var/www/html/typescriptweb/TypeScript-website/node_modules/gatsby/node_modules/@babel/runtime/helpers/esm/asyncToGenerator\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport _regeneratorRuntime from \"/var/www/html/typescriptweb/TypeScript-website/node_modules/gatsby/node_modules/@babel/runtime/regenerator\";\nimport { loadWASM, OnigScanner, OnigString } from 'onigasm';\nimport { Registry as Registry$1 } from 'vscode-textmate';\nvar themes = ['dark-plus', 'github-dark', 'github-light', 'light-plus', 'material-theme-darker', 'material-theme-default', 'material-theme-lighter', 'material-theme-ocean', 'material-theme-palenight', 'min-dark', 'min-light', 'monokai', 'nord', 'slack-theme-dark-mode', 'slack-theme-ochin', 'solarized-dark', 'solarized-light'];\nvar languages = [{\n id: 'abap',\n scopeName: 'source.abap',\n path: 'abap.tmLanguage.json'\n}, {\n id: 'actionscript-3',\n scopeName: 'source.actionscript.3',\n path: 'actionscript-3.tmLanguage.json'\n}, {\n id: 'ada',\n scopeName: 'source.ada',\n path: 'ada.tmLanguage.json'\n}, {\n id: 'apex',\n scopeName: 'source.apex',\n path: 'apex.tmLanguage.json'\n}, {\n id: 'applescript',\n scopeName: 'source.applescript',\n path: 'applescript.tmLanguage.json'\n}, {\n id: 'asm',\n scopeName: 'source.asm.x86_64',\n path: 'asm.tmLanguage.json'\n}, {\n id: 'asp-net-razor',\n scopeName: 'text.aspnetcorerazor',\n path: 'asp-net-razor.tmLanguage.json'\n}, {\n id: 'awk',\n scopeName: 'source.awk',\n path: 'awk.tmLanguage.json'\n}, {\n id: 'bat',\n scopeName: 'source.batchfile',\n path: 'bat.tmLanguage.json',\n aliases: ['batch']\n}, {\n id: 'c',\n scopeName: 'source.c',\n path: 'c.tmLanguage.json'\n}, {\n id: 'clojure',\n scopeName: 'source.clojure',\n path: 'clojure.tmLanguage.json',\n aliases: ['clj']\n}, {\n id: 'cobol',\n scopeName: 'source.cobol',\n path: 'cobol.tmLanguage.json'\n}, {\n id: 'coffee',\n scopeName: 'source.coffee',\n path: 'coffee.tmLanguage.json'\n}, {\n id: 'cpp.embedded.macro',\n scopeName: 'source.cpp.embedded.macro',\n path: 'cpp.embedded.macro.tmLanguage.json'\n}, {\n id: 'cpp',\n scopeName: 'source.cpp',\n path: 'cpp.tmLanguage.json'\n}, {\n id: 'crystal',\n scopeName: 'source.crystal',\n path: 'crystal.tmLanguage.json'\n}, {\n id: 'csharp',\n scopeName: 'source.cs',\n path: 'csharp.tmLanguage.json',\n aliases: ['c#']\n}, {\n id: 'css',\n scopeName: 'source.css',\n path: 'css.tmLanguage.json'\n}, {\n id: 'd',\n scopeName: 'source.d',\n path: 'd.tmLanguage.json'\n}, {\n id: 'dart',\n scopeName: 'source.dart',\n path: 'dart.tmLanguage.json'\n}, {\n id: 'diff',\n scopeName: 'source.diff',\n path: 'diff.tmLanguage.json'\n}, {\n id: 'dockerfile',\n scopeName: 'source.dockerfile',\n path: 'dockerfile.tmLanguage.json'\n}, {\n id: 'elixir',\n scopeName: 'source.elixir',\n path: 'elixir.tmLanguage.json'\n}, {\n id: 'elm',\n scopeName: 'source.elm',\n path: 'elm.tmLanguage.json'\n}, {\n id: 'erlang',\n scopeName: 'source.erlang',\n path: 'erlang.tmLanguage.json'\n}, {\n id: 'fsharp',\n scopeName: 'source.fsharp',\n path: 'fsharp.tmLanguage.json',\n aliases: ['f#']\n}, {\n id: 'git-commit',\n scopeName: 'text.git-commit',\n path: 'git-commit.tmLanguage.json'\n}, {\n id: 'git-rebase',\n scopeName: 'text.git-rebase',\n path: 'git-rebase.tmLanguage.json'\n}, {\n id: 'gnuplot',\n scopeName: 'source.gnuplot',\n path: 'gnuplot.tmLanguage.json'\n}, {\n id: 'go',\n scopeName: 'source.go',\n path: 'go.tmLanguage.json'\n}, {\n id: 'graphql',\n scopeName: 'source.graphql',\n path: 'graphql.tmLanguage.json'\n}, {\n id: 'groovy',\n scopeName: 'source.groovy',\n path: 'groovy.tmLanguage.json'\n}, {\n id: 'hack',\n scopeName: 'source.hack',\n path: 'hack.tmLanguage.json'\n}, {\n id: 'haml',\n scopeName: 'text.haml',\n path: 'haml.tmLanguage.json'\n}, {\n id: 'handlebars',\n scopeName: 'text.html.handlebars',\n path: 'handlebars.tmLanguage.json',\n aliases: ['hbs']\n}, {\n id: 'haskell',\n scopeName: 'source.haskell',\n path: 'haskell.tmLanguage.json'\n}, {\n id: 'hcl',\n scopeName: 'source.hcl',\n path: 'hcl.tmLanguage.json'\n}, {\n id: 'hlsl',\n scopeName: 'source.hlsl',\n path: 'hlsl.tmLanguage.json'\n}, {\n id: 'html-ruby-erb',\n scopeName: 'text.html.erb',\n path: 'html-ruby-erb.tmLanguage.json',\n aliases: ['erb']\n}, {\n id: 'html',\n scopeName: 'text.html.basic',\n path: 'html.tmLanguage.json'\n}, {\n id: 'ini',\n scopeName: 'source.ini',\n path: 'ini.tmLanguage.json'\n}, {\n id: 'java',\n scopeName: 'source.java',\n path: 'java.tmLanguage.json'\n}, {\n id: 'javascript',\n scopeName: 'source.js',\n path: 'javascript.tmLanguage.json',\n aliases: ['js']\n}, {\n id: 'jinja-html',\n scopeName: 'text.html.jinja',\n path: 'jinja-html.tmLanguage.json'\n}, {\n id: 'jinja',\n scopeName: 'source.jinja',\n path: 'jinja.tmLanguage.json'\n}, {\n id: 'json',\n scopeName: 'source.json',\n path: 'json.tmLanguage.json'\n}, {\n id: 'jsonc',\n scopeName: 'source.json.comments',\n path: 'jsonc.tmLanguage.json'\n}, {\n id: 'jsonnet',\n scopeName: 'source.jsonnet',\n path: 'jsonnet.tmLanguage.json'\n}, {\n id: 'jsx',\n scopeName: 'documentation.injection.js.jsx',\n path: 'jsx.tmLanguage.json'\n}, {\n id: 'julia',\n scopeName: 'source.julia',\n path: 'julia.tmLanguage.json'\n}, {\n id: 'kotlin',\n scopeName: 'source.kotlin',\n path: 'kotlin.tmLanguage.json'\n}, {\n id: 'latex',\n scopeName: 'text.tex.latex',\n path: 'latex.tmLanguage.json',\n aliases: ['tex']\n}, {\n id: 'less',\n scopeName: 'source.css.less',\n path: 'less.tmLanguage.json'\n}, {\n id: 'lisp',\n scopeName: 'source.lisp',\n path: 'lisp.tmLanguage.json'\n}, {\n id: 'logo',\n scopeName: 'source.logo',\n path: 'logo.tmLanguage.json'\n}, {\n id: 'lua',\n scopeName: 'source.lua',\n path: 'lua.tmLanguage.json'\n}, {\n id: 'makefile',\n scopeName: 'source.makefile',\n path: 'makefile.tmLanguage.json'\n}, {\n id: 'markdown',\n scopeName: 'text.html.markdown',\n path: 'markdown.tmLanguage.json',\n aliases: ['md']\n}, {\n id: 'matlab',\n scopeName: 'source.matlab',\n path: 'matlab.tmLanguage.json'\n}, {\n id: 'mdx',\n scopeName: 'text.html.markdown.jsx',\n path: 'mdx.tmLanguage.json'\n}, {\n id: 'nix',\n scopeName: 'source.nix',\n path: 'nix.tmLanguage.json'\n}, {\n id: 'objective-c',\n scopeName: 'source.objcpp',\n path: 'objective-c.tmLanguage.json',\n aliases: ['objc']\n}, {\n id: 'ocaml',\n scopeName: 'source.ocaml',\n path: 'ocaml.tmLanguage.json'\n}, {\n id: 'pascal',\n scopeName: 'source.pascal',\n path: 'pascal.tmLanguage.json'\n}, {\n id: 'perl',\n scopeName: 'source.perl',\n path: 'perl.tmLanguage.json'\n}, {\n id: 'perl6',\n scopeName: 'source.perl.6',\n path: 'perl6.tmLanguage.json'\n}, {\n id: 'php-html',\n scopeName: 'text.html.php',\n path: 'php-html.tmLanguage.json'\n}, {\n id: 'php',\n scopeName: 'source.php',\n path: 'php.tmLanguage.json'\n}, {\n id: 'pls',\n scopeName: 'source.plsql.oracle',\n path: 'pls.tmLanguage.json'\n}, {\n id: 'postcss',\n scopeName: 'source.css.postcss',\n path: 'postcss.tmLanguage.json'\n}, {\n id: 'powershell',\n scopeName: 'source.powershell',\n path: 'powershell.tmLanguage.json',\n aliases: ['ps', 'ps1']\n}, {\n id: 'prolog',\n scopeName: 'source.prolog',\n path: 'prolog.tmLanguage.json'\n}, {\n id: 'pug',\n scopeName: 'text.pug',\n path: 'pug.tmLanguage.json',\n aliases: ['jade']\n}, {\n id: 'puppet',\n scopeName: 'source.puppet',\n path: 'puppet.tmLanguage.json'\n}, {\n id: 'purescript',\n scopeName: 'source.purescript',\n path: 'purescript.tmLanguage.json'\n}, {\n id: 'python',\n scopeName: 'source.python',\n path: 'python.tmLanguage.json',\n aliases: ['py']\n}, {\n id: 'r',\n scopeName: 'source.r',\n path: 'r.tmLanguage.json'\n}, {\n id: 'razor',\n scopeName: 'text.html.cshtml',\n path: 'razor.tmLanguage.json'\n}, {\n id: 'ruby',\n scopeName: 'source.ruby',\n path: 'ruby.tmLanguage.json',\n aliases: ['rb']\n}, {\n id: 'rust',\n scopeName: 'source.rust',\n path: 'rust.tmLanguage.json'\n}, {\n id: 'sas',\n scopeName: 'source.sas',\n path: 'sas.tmLanguage.json'\n}, {\n id: 'sass',\n scopeName: 'source.sass',\n path: 'sass.tmLanguage.json'\n}, {\n id: 'scala',\n scopeName: 'source.scala',\n path: 'scala.tmLanguage.json'\n}, {\n id: 'scheme',\n scopeName: 'source.scheme',\n path: 'scheme.tmLanguage.json'\n}, {\n id: 'scss',\n scopeName: 'source.css.scss',\n path: 'scss.tmLanguage.json'\n}, {\n id: 'shaderlab',\n scopeName: 'source.shaderlab',\n path: 'shaderlab.tmLanguage.json',\n aliases: ['shader']\n}, {\n id: 'shellscript',\n scopeName: 'source.shell',\n path: 'shellscript.tmLanguage.json',\n aliases: ['shell', 'bash', 'sh', 'zsh']\n}, {\n id: 'smalltalk',\n scopeName: 'source.smalltalk',\n path: 'smalltalk.tmLanguage.json'\n}, {\n id: 'sql',\n scopeName: 'source.sql',\n path: 'sql.tmLanguage.json'\n}, {\n id: 'ssh-config',\n scopeName: 'source.ssh-config',\n path: 'ssh-config.tmLanguage.json'\n}, {\n id: 'stylus',\n scopeName: 'source.stylus',\n path: 'stylus.tmLanguage.json',\n aliases: ['styl']\n}, {\n id: 'swift',\n scopeName: 'source.swift',\n path: 'swift.tmLanguage.json'\n}, {\n id: 'tcl',\n scopeName: 'source.tcl',\n path: 'tcl.tmLanguage.json'\n}, {\n id: 'toml',\n scopeName: 'source.toml',\n path: 'toml.tmLanguage.json'\n}, {\n id: 'ts',\n scopeName: 'documentation.injection.ts',\n path: 'ts.tmLanguage.json'\n}, {\n id: 'tsx',\n scopeName: 'source.tsx',\n path: 'tsx.tmLanguage.json'\n}, {\n id: 'typescript',\n scopeName: 'source.ts',\n path: 'typescript.tmLanguage.json',\n aliases: ['ts']\n}, {\n id: 'vb',\n scopeName: 'source.asp.vb.net',\n path: 'vb.tmLanguage.json',\n aliases: ['cmd']\n}, {\n id: 'viml',\n scopeName: 'source.viml',\n path: 'viml.tmLanguage.json'\n}, {\n id: 'vue-html',\n scopeName: 'text.html.vue-html',\n path: 'vue-html.tmLanguage.json'\n}, {\n id: 'vue',\n scopeName: 'source.vue',\n path: 'vue.tmLanguage.json'\n}, {\n id: 'wasm',\n scopeName: 'source.wat',\n path: 'wasm.tmLanguage.json'\n}, {\n id: 'xml',\n scopeName: 'text.xml',\n path: 'xml.tmLanguage.json'\n}, {\n id: 'xsl',\n scopeName: 'text.xml.xsl',\n path: 'xsl.tmLanguage.json'\n}, {\n id: 'yaml',\n scopeName: 'source.yaml',\n path: 'yaml.tmLanguage.json'\n}, {\n id: '文言',\n scopeName: 'source.wenyan',\n path: '文言.tmLanguage.json',\n aliases: ['wenyan']\n}];\n\nfunction trimEndSlash(str) {\n if (str.endsWith('/') || str.endsWith('\\\\')) return str.slice(0, -1);\n return str;\n}\n\nfunction trimStartDot(str) {\n if (str.startsWith('./')) return str.slice(2);\n return str;\n}\n\nfunction dirname(str) {\n var parts = str.split(/[\\/\\\\]/g);\n return parts[parts.length - 2];\n}\n\nfunction join() {\n for (var _len = arguments.length, parts = new Array(_len), _key = 0; _key < _len; _key++) {\n parts[_key] = arguments[_key];\n }\n\n return parts.map(trimEndSlash).map(trimStartDot).join('/');\n}\n\nvar isBrowser = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof fetch !== 'undefined'; // to be replaced by rollup\n\nvar CDN_ROOT = '';\nvar ONIGASM_WASM = '';\n/**\r\n * Set the route for loading the assets\r\n * URL should end with `/`\r\n *\r\n * For example:\r\n * ```ts\r\n * setCDN('https://unpkg.com/shiki/') // use unpkg\r\n * setCDN('/assets/shiki/') // serve by yourself\r\n * ```\r\n */\n\nfunction setCDN(root) {\n CDN_ROOT = root;\n}\n/**\r\n * Explicitly set the source for loading the OnigasmWASM\r\n *\r\n * Accepts Url or ArrayBuffer\r\n */\n\n\nfunction setOnigasmWASM(path) {\n ONIGASM_WASM = path;\n}\n\nvar _onigasmPromise = null;\n\nfunction getOnigasm() {\n return _getOnigasm.apply(this, arguments);\n}\n\nfunction _getOnigasm() {\n _getOnigasm = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6() {\n var loader, path, onigasmPath, fs, wasmBin;\n return _regeneratorRuntime.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n if (!_onigasmPromise) {\n if (isBrowser) {\n loader = loadWASM(ONIGASM_WASM || _resolvePath('dist/onigasm.wasm'));\n } else {\n path = require('path');\n onigasmPath = path.join(require.resolve('onigasm'), '../onigasm.wasm');\n fs = require('fs');\n wasmBin = fs.readFileSync(onigasmPath).buffer;\n loader = loadWASM(wasmBin);\n }\n\n _onigasmPromise = loader.then(function () {\n return {\n createOnigScanner: function createOnigScanner(patterns) {\n return new OnigScanner(patterns);\n },\n createOnigString: function createOnigString(s) {\n return new OnigString(s);\n }\n };\n });\n }\n\n return _context6.abrupt(\"return\", _onigasmPromise);\n\n case 2:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6);\n }));\n return _getOnigasm.apply(this, arguments);\n}\n\nfunction _resolvePath(filepath) {\n if (isBrowser) {\n if (!CDN_ROOT) {\n console.warn('[Shiki] no CDN provider found, use `setCDN()` to specify the CDN for loading the resources before calling `getHighlighter()`');\n }\n\n return \"\".concat(CDN_ROOT).concat(filepath);\n } else {\n var path = require('path');\n\n if (path.isAbsolute(filepath)) {\n return filepath;\n } else {\n return path.resolve(__dirname, '..', filepath);\n }\n }\n}\n/**\r\n * @param filepath assert path related to ./packages/shiki\r\n */\n\n\nfunction _fetchAssets(_x) {\n return _fetchAssets2.apply(this, arguments);\n}\n\nfunction _fetchAssets2() {\n _fetchAssets2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7(filepath) {\n var path, fs;\n return _regeneratorRuntime.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n path = _resolvePath(filepath);\n\n if (!isBrowser) {\n _context7.next = 7;\n break;\n }\n\n _context7.next = 4;\n return fetch(path).then(function (r) {\n return r.text();\n });\n\n case 4:\n return _context7.abrupt(\"return\", _context7.sent);\n\n case 7:\n fs = require('fs');\n _context7.next = 10;\n return fs.promises.readFile(path, 'utf-8');\n\n case 10:\n return _context7.abrupt(\"return\", _context7.sent);\n\n case 11:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7);\n }));\n return _fetchAssets2.apply(this, arguments);\n}\n\nfunction _fetchJSONAssets(_x2) {\n return _fetchJSONAssets2.apply(this, arguments);\n}\n/**\r\n * @param themePath related path to theme.json\r\n */\n\n\nfunction _fetchJSONAssets2() {\n _fetchJSONAssets2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee8(filepath) {\n return _regeneratorRuntime.wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n _context8.t0 = JSON;\n _context8.next = 3;\n return _fetchAssets(filepath);\n\n case 3:\n _context8.t1 = _context8.sent;\n return _context8.abrupt(\"return\", _context8.t0.parse.call(_context8.t0, _context8.t1));\n\n case 5:\n case \"end\":\n return _context8.stop();\n }\n }\n }, _callee8);\n }));\n return _fetchJSONAssets2.apply(this, arguments);\n}\n\nfunction fetchTheme(_x3) {\n return _fetchTheme.apply(this, arguments);\n}\n\nfunction _fetchTheme() {\n _fetchTheme = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee9(themePath) {\n var theme, shikiTheme, includedTheme;\n return _regeneratorRuntime.wrap(function _callee9$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n _context9.next = 2;\n return _fetchJSONAssets(themePath);\n\n case 2:\n theme = _context9.sent;\n shikiTheme = toShikiTheme(theme);\n\n if (!shikiTheme.include) {\n _context9.next = 10;\n break;\n }\n\n _context9.next = 7;\n return fetchTheme(join(dirname(themePath), shikiTheme.include));\n\n case 7:\n includedTheme = _context9.sent;\n\n if (includedTheme.settings) {\n shikiTheme.settings = shikiTheme.settings.concat(includedTheme.settings);\n }\n\n if (includedTheme.bg && !shikiTheme.bg) {\n shikiTheme.bg = includedTheme.bg;\n }\n\n case 10:\n return _context9.abrupt(\"return\", shikiTheme);\n\n case 11:\n case \"end\":\n return _context9.stop();\n }\n }\n }, _callee9);\n }));\n return _fetchTheme.apply(this, arguments);\n}\n\nfunction fetchGrammar(_x4) {\n return _fetchGrammar.apply(this, arguments);\n}\n\nfunction _fetchGrammar() {\n _fetchGrammar = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee10(filepath) {\n var content;\n return _regeneratorRuntime.wrap(function _callee10$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n _context10.next = 2;\n return _fetchAssets(filepath);\n\n case 2:\n content = _context10.sent;\n return _context10.abrupt(\"return\", JSON.parse(content));\n\n case 4:\n case \"end\":\n return _context10.stop();\n }\n }\n }, _callee10);\n }));\n return _fetchGrammar.apply(this, arguments);\n}\n\nfunction repairTheme(theme) {\n // Has the default no-scope setting with fallback colors\n if (theme.settings[0].settings && !theme.settings[0].scope) {\n return;\n } // Push a no-scope setting with fallback colors\n\n\n theme.settings.unshift({\n settings: {\n foreground: theme.fg,\n background: theme.bg\n }\n });\n}\n\nfunction toShikiTheme(rawTheme) {\n var shikiTheme = Object.assign(Object.assign({}, rawTheme), getThemeDefaultColors(rawTheme));\n\n if (rawTheme.include) {\n shikiTheme.include = rawTheme.include;\n }\n\n if (rawTheme.tokenColors) {\n shikiTheme.settings = rawTheme.tokenColors;\n }\n\n repairTheme(shikiTheme);\n return shikiTheme;\n}\n/**\r\n * https://github.com/microsoft/vscode/blob/f7f05dee53fb33fe023db2e06e30a89d3094488f/src/vs/platform/theme/common/colorRegistry.ts#L258-L268\r\n */\n\n\nvar VSCODE_FALLBACK_EDITOR_FG = {\n light: '#333333',\n dark: '#bbbbbb'\n};\nvar VSCODE_FALLBACK_EDITOR_BG = {\n light: '#fffffe',\n dark: '#1e1e1e'\n};\n\nfunction getThemeDefaultColors(theme) {\n var _a, _b, _c, _d, _e, _f;\n\n var fg, bg;\n /**\r\n * First try:\r\n * Theme might contain a global `tokenColor` without `name` or `scope`\r\n * Used as default value for foreground/background\r\n */\n\n var settings = theme.settings ? theme.settings : theme.tokenColors;\n var globalSetting = settings ? settings.find(function (s) {\n return !s.name && !s.scope;\n }) : undefined;\n\n if ((_a = globalSetting === null || globalSetting === void 0 ? void 0 : globalSetting.settings) === null || _a === void 0 ? void 0 : _a.foreground) {\n fg = globalSetting.settings.foreground;\n }\n\n if ((_b = globalSetting === null || globalSetting === void 0 ? void 0 : globalSetting.settings) === null || _b === void 0 ? void 0 : _b.background) {\n bg = globalSetting.settings.background;\n }\n /**\r\n * Second try:\r\n * If there's no global `tokenColor` without `name` or `scope`\r\n * Use `editor.foreground` and `editor.background`\r\n */\n\n\n if (!fg && ((_d = (_c = theme) === null || _c === void 0 ? void 0 : _c.colors) === null || _d === void 0 ? void 0 : _d['editor.foreground'])) {\n fg = theme.colors['editor.foreground'];\n }\n\n if (!bg && ((_f = (_e = theme) === null || _e === void 0 ? void 0 : _e.colors) === null || _f === void 0 ? void 0 : _f['editor.background'])) {\n bg = theme.colors['editor.background'];\n }\n /**\r\n * Last try:\r\n * If there's no fg/bg color specified in theme, use default\r\n */\n\n\n if (!fg) {\n fg = theme.type === 'light' ? VSCODE_FALLBACK_EDITOR_FG.light : VSCODE_FALLBACK_EDITOR_FG.dark;\n }\n\n if (!bg) {\n bg = theme.type === 'light' ? VSCODE_FALLBACK_EDITOR_BG.light : VSCODE_FALLBACK_EDITOR_BG.dark;\n }\n\n return {\n fg: fg,\n bg: bg\n };\n}\n/*---------------------------------------------------------\r\n * Copyright (C) Microsoft Corporation. All rights reserved.\r\n *--------------------------------------------------------*/\n\n\nvar Resolver = /*#__PURE__*/function () {\n function Resolver(onigLibPromise, onigLibName) {\n _classCallCheck(this, Resolver);\n\n this.languagesPath = 'languages/';\n this.languageMap = {};\n this.scopeToLangMap = {};\n this._onigLibPromise = onigLibPromise;\n this._onigLibName = onigLibName;\n }\n\n _createClass(Resolver, [{\n key: \"onigLib\",\n get: function get() {\n return this._onigLibPromise;\n }\n }, {\n key: \"getOnigLibName\",\n value: function getOnigLibName() {\n return this._onigLibName;\n }\n }, {\n key: \"getLangRegistration\",\n value: function getLangRegistration(langIdOrAlias) {\n return this.languageMap[langIdOrAlias];\n }\n }, {\n key: \"loadGrammar\",\n value: function () {\n var _loadGrammar = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(scopeName) {\n var lang, g;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n lang = this.scopeToLangMap[scopeName];\n\n if (lang) {\n _context.next = 3;\n break;\n }\n\n return _context.abrupt(\"return\", null);\n\n case 3:\n if (!lang.grammar) {\n _context.next = 5;\n break;\n }\n\n return _context.abrupt(\"return\", lang.grammar);\n\n case 5:\n _context.next = 7;\n return fetchGrammar(languages.includes(lang) ? \"\".concat(this.languagesPath).concat(lang.path) : lang.path);\n\n case 7:\n g = _context.sent;\n lang.grammar = g;\n return _context.abrupt(\"return\", g);\n\n case 10:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function loadGrammar(_x5) {\n return _loadGrammar.apply(this, arguments);\n }\n\n return loadGrammar;\n }()\n }, {\n key: \"addLanguage\",\n value: function addLanguage(l) {\n var _this = this;\n\n this.languageMap[l.id] = l;\n\n if (l.aliases) {\n l.aliases.forEach(function (a) {\n _this.languageMap[a] = l;\n });\n }\n\n this.scopeToLangMap[l.scopeName] = l;\n }\n }]);\n\n return Resolver;\n}();\n\nvar StackElementMetadata = /*#__PURE__*/function () {\n function StackElementMetadata() {\n _classCallCheck(this, StackElementMetadata);\n }\n\n _createClass(StackElementMetadata, null, [{\n key: \"toBinaryStr\",\n value: function toBinaryStr(metadata) {\n var r = metadata.toString(2);\n\n while (r.length < 32) {\n r = '0' + r;\n }\n\n return r;\n }\n }, {\n key: \"printMetadata\",\n value: function printMetadata(metadata) {\n var languageId = StackElementMetadata.getLanguageId(metadata);\n var tokenType = StackElementMetadata.getTokenType(metadata);\n var fontStyle = StackElementMetadata.getFontStyle(metadata);\n var foreground = StackElementMetadata.getForeground(metadata);\n var background = StackElementMetadata.getBackground(metadata);\n console.log({\n languageId: languageId,\n tokenType: tokenType,\n fontStyle: fontStyle,\n foreground: foreground,\n background: background\n });\n }\n }, {\n key: \"getLanguageId\",\n value: function getLanguageId(metadata) {\n return (metadata & 255\n /* LANGUAGEID_MASK */\n ) >>> 0\n /* LANGUAGEID_OFFSET */\n ;\n }\n }, {\n key: \"getTokenType\",\n value: function getTokenType(metadata) {\n return (metadata & 1792\n /* TOKEN_TYPE_MASK */\n ) >>> 8\n /* TOKEN_TYPE_OFFSET */\n ;\n }\n }, {\n key: \"getFontStyle\",\n value: function getFontStyle(metadata) {\n return (metadata & 14336\n /* FONT_STYLE_MASK */\n ) >>> 11\n /* FONT_STYLE_OFFSET */\n ;\n }\n }, {\n key: \"getForeground\",\n value: function getForeground(metadata) {\n return (metadata & 8372224\n /* FOREGROUND_MASK */\n ) >>> 14\n /* FOREGROUND_OFFSET */\n ;\n }\n }, {\n key: \"getBackground\",\n value: function getBackground(metadata) {\n return (metadata & 4286578688\n /* BACKGROUND_MASK */\n ) >>> 23\n /* BACKGROUND_OFFSET */\n ;\n }\n }, {\n key: \"set\",\n value: function set(metadata, languageId, tokenType, fontStyle, foreground, background) {\n var _languageId = StackElementMetadata.getLanguageId(metadata);\n\n var _tokenType = StackElementMetadata.getTokenType(metadata);\n\n var _fontStyle = StackElementMetadata.getFontStyle(metadata);\n\n var _foreground = StackElementMetadata.getForeground(metadata);\n\n var _background = StackElementMetadata.getBackground(metadata);\n\n if (languageId !== 0) {\n _languageId = languageId;\n }\n\n if (tokenType !== 0\n /* Other */\n ) {\n _tokenType = tokenType === 8\n /* MetaEmbedded */\n ? 0\n /* Other */\n : tokenType;\n }\n\n if (fontStyle !== -1\n /* NotSet */\n ) {\n _fontStyle = fontStyle;\n }\n\n if (foreground !== 0) {\n _foreground = foreground;\n }\n\n if (background !== 0) {\n _background = background;\n }\n\n return (_languageId << 0\n /* LANGUAGEID_OFFSET */\n | _tokenType << 8\n /* TOKEN_TYPE_OFFSET */\n | _fontStyle << 11\n /* FONT_STYLE_OFFSET */\n | _foreground << 14\n /* FOREGROUND_OFFSET */\n | _background << 23\n /* BACKGROUND_OFFSET */\n ) >>> 0;\n }\n }]);\n\n return StackElementMetadata;\n}();\n/*---------------------------------------------------------\r\n * Copyright (C) Microsoft Corporation. All rights reserved.\r\n *--------------------------------------------------------*/\n\n\nfunction tokenizeWithTheme(theme, colorMap, fileContents, grammar, options) {\n var lines = fileContents.split(/\\r\\n|\\r|\\n/);\n var ruleStack = null;\n var actual = [];\n var final = [];\n\n for (var i = 0, len = lines.length; i < len; i++) {\n var line = lines[i];\n\n if (line === '') {\n actual = [];\n final.push([]);\n continue;\n }\n\n var resultWithScopes = grammar.tokenizeLine(line, ruleStack);\n var tokensWithScopes = resultWithScopes.tokens;\n var result = grammar.tokenizeLine2(line, ruleStack);\n var tokensLength = result.tokens.length / 2;\n var tokensWithScopesIndex = 0;\n\n for (var j = 0; j < tokensLength; j++) {\n var startIndex = result.tokens[2 * j];\n var nextStartIndex = j + 1 < tokensLength ? result.tokens[2 * j + 2] : line.length;\n\n if (startIndex === nextStartIndex) {\n continue;\n }\n\n var metadata = result.tokens[2 * j + 1];\n var foreground = StackElementMetadata.getForeground(metadata);\n var foregroundColor = colorMap[foreground];\n var explanation = [];\n\n if (options.includeExplanation) {\n var offset = 0;\n\n while (startIndex + offset < nextStartIndex) {\n var tokenWithScopes = tokensWithScopes[tokensWithScopesIndex];\n var tokenWithScopesText = line.substring(tokenWithScopes.startIndex, tokenWithScopes.endIndex);\n offset += tokenWithScopesText.length;\n explanation.push({\n content: tokenWithScopesText,\n scopes: explainThemeScopes(theme, tokenWithScopes.scopes)\n });\n tokensWithScopesIndex++;\n }\n }\n\n actual.push({\n content: line.substring(startIndex, nextStartIndex),\n color: foregroundColor,\n explanation: explanation\n });\n }\n\n final.push(actual);\n actual = [];\n ruleStack = result.ruleStack;\n }\n\n return final;\n}\n\nfunction explainThemeScopes(theme, scopes) {\n var result = [];\n\n for (var i = 0, len = scopes.length; i < len; i++) {\n var parentScopes = scopes.slice(0, i);\n var scope = scopes[i];\n result[i] = {\n scopeName: scope,\n themeMatches: explainThemeScope(theme, scope, parentScopes)\n };\n }\n\n return result;\n}\n\nfunction matchesOne(selector, scope) {\n var selectorPrefix = selector + '.';\n\n if (selector === scope || scope.substring(0, selectorPrefix.length) === selectorPrefix) {\n return true;\n }\n\n return false;\n}\n\nfunction matches(selector, selectorParentScopes, scope, parentScopes) {\n if (!matchesOne(selector, scope)) {\n return false;\n }\n\n var selectorParentIndex = selectorParentScopes.length - 1;\n var parentIndex = parentScopes.length - 1;\n\n while (selectorParentIndex >= 0 && parentIndex >= 0) {\n if (matchesOne(selectorParentScopes[selectorParentIndex], parentScopes[parentIndex])) {\n selectorParentIndex--;\n }\n\n parentIndex--;\n }\n\n if (selectorParentIndex === -1) {\n return true;\n }\n\n return false;\n}\n\nfunction explainThemeScope(theme, scope, parentScopes) {\n var result = [],\n resultLen = 0;\n\n for (var i = 0, len = theme.settings.length; i < len; i++) {\n var setting = theme.settings[i];\n var selectors = void 0;\n\n if (typeof setting.scope === 'string') {\n selectors = setting.scope.split(/,/).map(function (scope) {\n return scope.trim();\n });\n } else if (Array.isArray(setting.scope)) {\n selectors = setting.scope;\n } else {\n continue;\n }\n\n for (var j = 0, lenJ = selectors.length; j < lenJ; j++) {\n var rawSelector = selectors[j];\n var rawSelectorPieces = rawSelector.split(/ /);\n var selector = rawSelectorPieces[rawSelectorPieces.length - 1];\n var selectorParentScopes = rawSelectorPieces.slice(0, rawSelectorPieces.length - 1);\n\n if (matches(selector, selectorParentScopes, scope, parentScopes)) {\n // match!\n result[resultLen++] = setting; // break the loop\n\n j = lenJ;\n }\n }\n }\n\n return result;\n}\n\nfunction renderToHtml(lines) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var bg = options.bg || '#fff';\n var html = '';\n html += \"
\");\n\n  if (options.langId) {\n    html += \"
\".concat(options.langId, \"
\");\n }\n\n html += \"\";\n lines.forEach(function (l) {\n html += \"\";\n l.forEach(function (token) {\n html += \"\").concat(escapeHtml(token.content), \"\");\n });\n html += \"\\n\";\n });\n html = html.replace(/\\n*$/, ''); // Get rid of final new lines\n\n html += \"
\";\n return html;\n}\n\nvar htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n};\n\nfunction escapeHtml(html) {\n return html.replace(/[&<>\"']/g, function (chr) {\n return htmlEscapes[chr];\n });\n}\n\nvar Registry = /*#__PURE__*/function (_Registry$) {\n _inherits(Registry, _Registry$);\n\n var _super = _createSuper(Registry);\n\n function Registry(_resolver) {\n var _this2;\n\n _classCallCheck(this, Registry);\n\n _this2 = _super.call(this, _resolver);\n _this2._resolver = _resolver;\n _this2.themesPath = 'themes/';\n _this2._resolvedThemes = {};\n _this2._resolvedGammer = {};\n return _this2;\n }\n\n _createClass(Registry, [{\n key: \"getTheme\",\n value: function getTheme(theme) {\n if (typeof theme === 'string') {\n return this._resolvedThemes[theme];\n } else {\n return theme;\n }\n }\n }, {\n key: \"loadTheme\",\n value: function () {\n var _loadTheme = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(theme) {\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (!(typeof theme === 'string')) {\n _context2.next = 8;\n break;\n }\n\n if (this._resolvedThemes[theme]) {\n _context2.next = 5;\n break;\n }\n\n _context2.next = 4;\n return fetchTheme(\"\".concat(this.themesPath).concat(theme, \".json\"));\n\n case 4:\n this._resolvedThemes[theme] = _context2.sent;\n\n case 5:\n return _context2.abrupt(\"return\", this._resolvedThemes[theme]);\n\n case 8:\n theme = toShikiTheme(theme);\n\n if (theme.name) {\n this._resolvedThemes[theme.name] = theme;\n }\n\n return _context2.abrupt(\"return\", theme);\n\n case 11:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function loadTheme(_x6) {\n return _loadTheme.apply(this, arguments);\n }\n\n return loadTheme;\n }()\n }, {\n key: \"loadThemes\",\n value: function () {\n var _loadThemes = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(themes) {\n var _this3 = this;\n\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return Promise.all(themes.map(function (theme) {\n return _this3.loadTheme(theme);\n }));\n\n case 2:\n return _context3.abrupt(\"return\", _context3.sent);\n\n case 3:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }));\n\n function loadThemes(_x7) {\n return _loadThemes.apply(this, arguments);\n }\n\n return loadThemes;\n }()\n }, {\n key: \"getGrammer\",\n value: function getGrammer(name) {\n return this._resolvedGammer[name];\n }\n }, {\n key: \"loadLanguage\",\n value: function () {\n var _loadLanguage = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(lang) {\n var _this4 = this;\n\n var g;\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n _context4.next = 2;\n return this.loadGrammar(lang.scopeName);\n\n case 2:\n g = _context4.sent;\n this._resolvedGammer[lang.id] = g;\n\n if (lang.aliases) {\n lang.aliases.forEach(function (la) {\n _this4._resolvedGammer[la] = g;\n });\n }\n\n case 5:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n\n function loadLanguage(_x8) {\n return _loadLanguage.apply(this, arguments);\n }\n\n return loadLanguage;\n }()\n }, {\n key: \"loadLanguages\",\n value: function () {\n var _loadLanguages = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(langs) {\n var _iterator, _step, lang, _iterator2, _step2, _lang2;\n\n return _regeneratorRuntime.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n _iterator = _createForOfIteratorHelper(langs);\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n lang = _step.value;\n\n this._resolver.addLanguage(lang);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n _iterator2 = _createForOfIteratorHelper(langs);\n _context5.prev = 3;\n\n _iterator2.s();\n\n case 5:\n if ((_step2 = _iterator2.n()).done) {\n _context5.next = 11;\n break;\n }\n\n _lang2 = _step2.value;\n _context5.next = 9;\n return this.loadLanguage(_lang2);\n\n case 9:\n _context5.next = 5;\n break;\n\n case 11:\n _context5.next = 16;\n break;\n\n case 13:\n _context5.prev = 13;\n _context5.t0 = _context5[\"catch\"](3);\n\n _iterator2.e(_context5.t0);\n\n case 16:\n _context5.prev = 16;\n\n _iterator2.f();\n\n return _context5.finish(16);\n\n case 19:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5, this, [[3, 13, 16, 19]]);\n }));\n\n function loadLanguages(_x9) {\n return _loadLanguages.apply(this, arguments);\n }\n\n return loadLanguages;\n }()\n }]);\n\n return Registry;\n}(Registry$1);\n\nfunction resolveLang(lang) {\n return typeof lang === 'string' ? languages.find(function (l) {\n var _a;\n\n return l.id === lang || ((_a = l.aliases) === null || _a === void 0 ? void 0 : _a.includes(lang));\n }) : lang;\n}\n\nfunction resolveOptions(options) {\n var _a;\n\n var _languages = languages;\n\n var _themes = options.themes || [];\n\n if ((_a = options.langs) === null || _a === void 0 ? void 0 : _a.length) {\n _languages = options.langs.map(resolveLang);\n }\n\n if (options.theme) {\n _themes.unshift(options.theme);\n }\n\n if (!_themes.length) {\n _themes = ['nord'];\n }\n\n return {\n _languages: _languages,\n _themes: _themes\n };\n}\n\nfunction getHighlighter(_x10) {\n return _getHighlighter.apply(this, arguments);\n}\n\nfunction _getHighlighter() {\n _getHighlighter = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee13(options) {\n var _a, _b, _resolveOptions, _languages, _themes, _resolver, _registry, themes, _defaultTheme, getTheme, getGrammer, codeToThemedTokens, codeToHtml, loadTheme, _loadTheme2, loadLanguage, _loadLanguage2, getBackgroundColor, getForegroundColor;\n\n return _regeneratorRuntime.wrap(function _callee13$(_context13) {\n while (1) {\n switch (_context13.prev = _context13.next) {\n case 0:\n getForegroundColor = function _getForegroundColor(theme) {\n var _getTheme4 = getTheme(theme),\n _theme = _getTheme4._theme;\n\n return _theme.fg;\n };\n\n getBackgroundColor = function _getBackgroundColor(theme) {\n var _getTheme3 = getTheme(theme),\n _theme = _getTheme3._theme;\n\n return _theme.bg;\n };\n\n _loadLanguage2 = function _loadLanguage4() {\n _loadLanguage2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee12(lang) {\n var _lang;\n\n return _regeneratorRuntime.wrap(function _callee12$(_context12) {\n while (1) {\n switch (_context12.prev = _context12.next) {\n case 0:\n _lang = resolveLang(lang);\n\n _resolver.addLanguage(_lang);\n\n _context12.next = 4;\n return _registry.loadLanguage(_lang);\n\n case 4:\n case \"end\":\n return _context12.stop();\n }\n }\n }, _callee12);\n }));\n return _loadLanguage2.apply(this, arguments);\n };\n\n loadLanguage = function _loadLanguage3(_x12) {\n return _loadLanguage2.apply(this, arguments);\n };\n\n _loadTheme2 = function _loadTheme4() {\n _loadTheme2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee11(theme) {\n return _regeneratorRuntime.wrap(function _callee11$(_context11) {\n while (1) {\n switch (_context11.prev = _context11.next) {\n case 0:\n _context11.next = 2;\n return _registry.loadTheme(theme);\n\n case 2:\n case \"end\":\n return _context11.stop();\n }\n }\n }, _callee11);\n }));\n return _loadTheme2.apply(this, arguments);\n };\n\n loadTheme = function _loadTheme3(_x11) {\n return _loadTheme2.apply(this, arguments);\n };\n\n codeToHtml = function _codeToHtml(code) {\n var lang = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'text';\n var theme = arguments.length > 2 ? arguments[2] : undefined;\n var tokens = codeToThemedTokens(code, lang, theme, {\n includeExplanation: false\n });\n\n var _getTheme2 = getTheme(theme),\n _theme = _getTheme2._theme;\n\n return renderToHtml(tokens, {\n fg: _theme.fg,\n bg: _theme.bg\n });\n };\n\n codeToThemedTokens = function _codeToThemedTokens(code) {\n var lang = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'text';\n var theme = arguments.length > 2 ? arguments[2] : undefined;\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n includeExplanation: true\n };\n\n if (isPlaintext(lang)) {\n return [[{\n content: code\n }]];\n }\n\n var _getGrammer = getGrammer(lang),\n _grammer = _getGrammer._grammer;\n\n var _getTheme = getTheme(theme),\n _theme = _getTheme._theme,\n _colorMap = _getTheme._colorMap;\n\n return tokenizeWithTheme(_theme, _colorMap, code, _grammer, options);\n };\n\n getGrammer = function _getGrammer2(lang) {\n var _grammer = _registry.getGrammer(lang);\n\n if (!_grammer) {\n throw Error(\"No language registration for \".concat(lang));\n }\n\n return {\n _grammer: _grammer\n };\n };\n\n getTheme = function _getTheme5(theme) {\n var _theme = theme ? _registry.getTheme(theme) : _defaultTheme;\n\n if (!_theme) {\n throw Error(\"No theme registration for \".concat(theme));\n }\n\n _registry.setTheme(_theme);\n\n var _colorMap = _registry.getColorMap();\n\n return {\n _theme: _theme,\n _colorMap: _colorMap\n };\n };\n\n _resolveOptions = resolveOptions(options), _languages = _resolveOptions._languages, _themes = _resolveOptions._themes;\n _resolver = new Resolver(getOnigasm(), 'onigasm');\n _registry = new Registry(_resolver);\n _context13.next = 15;\n return _registry.loadThemes(_themes);\n\n case 15:\n themes = _context13.sent;\n _defaultTheme = themes[0];\n _context13.next = 19;\n return _registry.loadLanguages(_languages);\n\n case 19:\n if ((_a = options.paths) === null || _a === void 0 ? void 0 : _a.themes) {\n _registry.themesPath = options.paths.themes;\n }\n\n if ((_b = options.paths) === null || _b === void 0 ? void 0 : _b.languages) {\n _resolver.languagesPath = options.paths.languages;\n }\n\n return _context13.abrupt(\"return\", {\n codeToThemedTokens: codeToThemedTokens,\n codeToHtml: codeToHtml,\n loadTheme: loadTheme,\n loadLanguage: loadLanguage,\n getBackgroundColor: getBackgroundColor,\n getForegroundColor: getForegroundColor\n });\n\n case 22:\n case \"end\":\n return _context13.stop();\n }\n }\n }, _callee13);\n }));\n return _getHighlighter.apply(this, arguments);\n}\n\nfunction isPlaintext(lang) {\n return !lang || ['plaintext', 'txt', 'text'].includes(lang);\n}\n\nexport { languages as BUNDLED_LANGUAGES, themes as BUNDLED_THEMES, getHighlighter, fetchTheme as loadTheme, renderToHtml, setCDN, setOnigasmWASM };","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar hasLocalStorage = false;\n\ntry {\n hasLocalStorage = typeof localStorage !== \"undefined\";\n} catch (error) {}\n\nvar hasProcess = typeof process !== \"undefined\";\nvar shouldDebug = hasLocalStorage && /*#__PURE__*/localStorage.getItem(\"DEBUG\") || hasProcess && process.env.DEBUG;\nvar debugLog = shouldDebug ? console.log : function (_message) {\n return \"\";\n};\n/**\r\n * Makes a virtual copy of the TypeScript environment. This is the main API you want to be using with\r\n * @typescript/vfs. A lot of the other exposed functions are used by this function to get set up.\r\n *\r\n * @param sys an object which conforms to the TS Sys (a shim over read/write access to the fs)\r\n * @param rootFiles a list of files which are considered inside the project\r\n * @param ts a copy pf the TypeScript module\r\n * @param compilerOptions the options for this compiler run\r\n * @param customTransformers custom transformers for this compiler run\r\n */\n\nfunction createVirtualTypeScriptEnvironment(sys, rootFiles, ts, compilerOptions, customTransformers) {\n if (compilerOptions === void 0) {\n compilerOptions = {};\n }\n\n var mergedCompilerOpts = _extends({}, defaultCompilerOptions(ts), compilerOptions);\n\n var _createVirtualLanguag = createVirtualLanguageServiceHost(sys, rootFiles, mergedCompilerOpts, ts, customTransformers),\n languageServiceHost = _createVirtualLanguag.languageServiceHost,\n _updateFile = _createVirtualLanguag.updateFile;\n\n var languageService = ts.createLanguageService(languageServiceHost);\n var diagnostics = languageService.getCompilerOptionsDiagnostics();\n\n if (diagnostics.length) {\n var compilerHost = createVirtualCompilerHost(sys, compilerOptions, ts);\n throw new Error(ts.formatDiagnostics(diagnostics, compilerHost.compilerHost));\n }\n\n return {\n // @ts-ignore\n name: \"vfs\",\n sys: sys,\n languageService: languageService,\n getSourceFile: function getSourceFile(fileName) {\n var _languageService$getP;\n\n return (_languageService$getP = languageService.getProgram()) == null ? void 0 : _languageService$getP.getSourceFile(fileName);\n },\n createFile: function createFile(fileName, content) {\n _updateFile(ts.createSourceFile(fileName, content, mergedCompilerOpts.target, false));\n },\n updateFile: function updateFile(fileName, content, optPrevTextSpan) {\n var prevSourceFile = languageService.getProgram().getSourceFile(fileName);\n\n if (!prevSourceFile) {\n throw new Error(\"Did not find a source file for \" + fileName);\n }\n\n var prevFullContents = prevSourceFile.text; // TODO: Validate if the default text span has a fencepost error?\n\n var prevTextSpan = optPrevTextSpan != null ? optPrevTextSpan : ts.createTextSpan(0, prevFullContents.length);\n var newText = prevFullContents.slice(0, prevTextSpan.start) + content + prevFullContents.slice(prevTextSpan.start + prevTextSpan.length);\n var newSourceFile = ts.updateSourceFile(prevSourceFile, newText, {\n span: prevTextSpan,\n newLength: content.length\n });\n\n _updateFile(newSourceFile);\n }\n };\n}\n/**\r\n * Grab the list of lib files for a particular target, will return a bit more than necessary (by including\r\n * the dom) but that's OK\r\n *\r\n * @param target The compiler settings target baseline\r\n * @param ts A copy of the TypeScript module\r\n */\n\n\nvar knownLibFilesForCompilerOptions = function knownLibFilesForCompilerOptions(compilerOptions, ts) {\n var target = compilerOptions.target || ts.ScriptTarget.ES5;\n var lib = compilerOptions.lib || [];\n var files = [\"lib.d.ts\", \"lib.dom.d.ts\", \"lib.dom.iterable.d.ts\", \"lib.webworker.d.ts\", \"lib.webworker.importscripts.d.ts\", \"lib.scripthost.d.ts\", \"lib.es5.d.ts\", \"lib.es6.d.ts\", \"lib.es2015.collection.d.ts\", \"lib.es2015.core.d.ts\", \"lib.es2015.d.ts\", \"lib.es2015.generator.d.ts\", \"lib.es2015.iterable.d.ts\", \"lib.es2015.promise.d.ts\", \"lib.es2015.proxy.d.ts\", \"lib.es2015.reflect.d.ts\", \"lib.es2015.symbol.d.ts\", \"lib.es2015.symbol.wellknown.d.ts\", \"lib.es2016.array.include.d.ts\", \"lib.es2016.d.ts\", \"lib.es2016.full.d.ts\", \"lib.es2017.d.ts\", \"lib.es2017.full.d.ts\", \"lib.es2017.intl.d.ts\", \"lib.es2017.object.d.ts\", \"lib.es2017.sharedmemory.d.ts\", \"lib.es2017.string.d.ts\", \"lib.es2017.typedarrays.d.ts\", \"lib.es2018.asyncgenerator.d.ts\", \"lib.es2018.asynciterable.d.ts\", \"lib.es2018.d.ts\", \"lib.es2018.full.d.ts\", \"lib.es2018.intl.d.ts\", \"lib.es2018.promise.d.ts\", \"lib.es2018.regexp.d.ts\", \"lib.es2019.array.d.ts\", \"lib.es2019.d.ts\", \"lib.es2019.full.d.ts\", \"lib.es2019.object.d.ts\", \"lib.es2019.string.d.ts\", \"lib.es2019.symbol.d.ts\", \"lib.es2020.d.ts\", \"lib.es2020.full.d.ts\", \"lib.es2020.string.d.ts\", \"lib.es2020.symbol.wellknown.d.ts\", \"lib.es2020.bigint.d.ts\", \"lib.es2020.promise.d.ts\", \"lib.es2020.sharedmemory.d.ts\", \"lib.es2020.intl.d.ts\", \"lib.esnext.array.d.ts\", \"lib.esnext.asynciterable.d.ts\", \"lib.esnext.bigint.d.ts\", \"lib.esnext.d.ts\", \"lib.esnext.full.d.ts\", \"lib.esnext.intl.d.ts\", \"lib.esnext.symbol.d.ts\"];\n var targetToCut = ts.ScriptTarget[target];\n var matches = files.filter(function (f) {\n return f.startsWith(\"lib.\" + targetToCut.toLowerCase());\n });\n var targetCutIndex = files.indexOf(matches.pop());\n\n var getMax = function getMax(array) {\n return array && array.length ? array.reduce(function (max, current) {\n return current > max ? current : max;\n }) : undefined;\n }; // Find the index for everything in\n\n\n var indexesForCutting = lib.map(function (lib) {\n var matches = files.filter(function (f) {\n return f.startsWith(\"lib.\" + lib.toLowerCase());\n });\n if (matches.length === 0) return 0;\n var cutIndex = files.indexOf(matches.pop());\n return cutIndex;\n });\n var libCutIndex = getMax(indexesForCutting) || 0;\n var finalCutIndex = Math.max(targetCutIndex, libCutIndex);\n return files.slice(0, finalCutIndex + 1);\n};\n/**\r\n * Sets up a Map with lib contents by grabbing the necessary files from\r\n * the local copy of typescript via the file system.\r\n */\n\n\nvar createDefaultMapFromNodeModules = function createDefaultMapFromNodeModules(compilerOptions, ts) {\n var tsModule = ts || require(\"typescript\");\n\n var path = require(\"path\");\n\n var fs = require(\"fs\");\n\n var getLib = function getLib(name) {\n var lib = path.dirname(require.resolve(\"typescript\"));\n return fs.readFileSync(path.join(lib, name), \"utf8\");\n };\n\n var libs = knownLibFilesForCompilerOptions(compilerOptions, tsModule);\n var fsMap = new Map();\n libs.forEach(function (lib) {\n fsMap.set(\"/\" + lib, getLib(lib));\n });\n return fsMap;\n};\n/**\r\n * Adds recursively files from the FS into the map based on the folder\r\n */\n\n\nvar addAllFilesFromFolder = function addAllFilesFromFolder(map, workingDir) {\n var path = require(\"path\");\n\n var fs = require(\"fs\");\n\n var walk = function walk(dir) {\n var results = [];\n var list = fs.readdirSync(dir);\n list.forEach(function (file) {\n file = path.join(dir, file);\n var stat = fs.statSync(file);\n\n if (stat && stat.isDirectory()) {\n /* Recurse into a subdirectory */\n results = results.concat(walk(file));\n } else {\n /* Is a file */\n results.push(file);\n }\n });\n return results;\n };\n\n var allFiles = walk(workingDir);\n allFiles.forEach(function (lib) {\n var fsPath = \"/node_modules/@types\" + lib.replace(workingDir, \"\");\n var content = fs.readFileSync(lib, \"utf8\");\n var validExtensions = [\".ts\", \".tsx\"];\n\n if (validExtensions.includes(path.extname(fsPath))) {\n map.set(fsPath, content);\n }\n });\n};\n/** Adds all files from node_modules/@types into the FS Map */\n\n\nvar addFilesForTypesIntoFolder = function addFilesForTypesIntoFolder(map) {\n return addAllFilesFromFolder(map, \"node_modules/@types\");\n};\n/**\r\n * Create a virtual FS Map with the lib files from a particular TypeScript\r\n * version based on the target, Always includes dom ATM.\r\n *\r\n * @param options The compiler target, which dictates the libs to set up\r\n * @param version the versions of TypeScript which are supported\r\n * @param cache should the values be stored in local storage\r\n * @param ts a copy of the typescript import\r\n * @param lzstring an optional copy of the lz-string import\r\n * @param fetcher an optional replacement for the global fetch function (tests mainly)\r\n * @param storer an optional replacement for the localStorage global (tests mainly)\r\n */\n\n\nvar createDefaultMapFromCDN = function createDefaultMapFromCDN(options, version, cache, ts, lzstring, fetcher, storer) {\n var fetchlike = fetcher || fetch;\n var storelike = storer || localStorage;\n var fsMap = new Map();\n var files = knownLibFilesForCompilerOptions(options, ts);\n var prefix = \"https://typescript.azureedge.net/cdn/\" + version + \"/typescript/lib/\";\n\n function zip(str) {\n return lzstring ? lzstring.compressToUTF16(str) : str;\n }\n\n function unzip(str) {\n return lzstring ? lzstring.decompressFromUTF16(str) : str;\n } // Map the known libs to a node fetch promise, then return the contents\n\n\n function uncached() {\n return Promise.all(files.map(function (lib) {\n return fetchlike(prefix + lib).then(function (resp) {\n return resp.text();\n });\n })).then(function (contents) {\n contents.forEach(function (text, index) {\n return fsMap.set(\"/\" + files[index], text);\n });\n });\n } // A localstorage and lzzip aware version of the lib files\n\n\n function cached() {\n var keys = Object.keys(localStorage);\n keys.forEach(function (key) {\n // Remove anything which isn't from this version\n if (key.startsWith(\"ts-lib-\") && !key.startsWith(\"ts-lib-\" + version)) {\n storelike.removeItem(key);\n }\n });\n return Promise.all(files.map(function (lib) {\n var cacheKey = \"ts-lib-\" + version + \"-\" + lib;\n var content = storelike.getItem(cacheKey);\n\n if (!content) {\n // Make the API call and store the text concent in the cache\n return fetchlike(prefix + lib).then(function (resp) {\n return resp.text();\n }).then(function (t) {\n storelike.setItem(cacheKey, zip(t));\n return t;\n });\n } else {\n return Promise.resolve(unzip(content));\n }\n })).then(function (contents) {\n contents.forEach(function (text, index) {\n var name = \"/\" + files[index];\n fsMap.set(name, text);\n });\n });\n }\n\n var func = cache ? cached : uncached;\n return func().then(function () {\n return fsMap;\n });\n};\n\nfunction notImplemented(methodName) {\n throw new Error(\"Method '\" + methodName + \"' is not implemented.\");\n}\n\nfunction audit(name, fn) {\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var res = fn.apply(void 0, args);\n var smallres = typeof res === \"string\" ? res.slice(0, 80) + \"...\" : res;\n debugLog.apply(void 0, [\"> \" + name].concat(args));\n debugLog(\"< \" + smallres);\n return res;\n };\n}\n/** The default compiler options if TypeScript could ever change the compiler options */\n\n\nvar defaultCompilerOptions = function defaultCompilerOptions(ts) {\n return _extends({}, ts.getDefaultCompilerOptions(), {\n jsx: ts.JsxEmit.React,\n strict: true,\n esModuleInterop: true,\n module: ts.ModuleKind.ESNext,\n suppressOutputPathCheck: true,\n skipLibCheck: true,\n skipDefaultLibCheck: true,\n moduleResolution: ts.ModuleResolutionKind.NodeJs\n });\n}; // \"/DOM.d.ts\" => \"/lib.dom.d.ts\"\n\n\nvar libize = function libize(path) {\n return path.replace(\"/\", \"/lib.\").toLowerCase();\n};\n/**\r\n * Creates an in-memory System object which can be used in a TypeScript program, this\r\n * is what provides read/write aspects of the virtual fs\r\n */\n\n\nfunction createSystem(files) {\n return {\n args: [],\n createDirectory: function createDirectory() {\n return notImplemented(\"createDirectory\");\n },\n // TODO: could make a real file tree\n directoryExists: audit(\"directoryExists\", function (directory) {\n return Array.from(files.keys()).some(function (path) {\n return path.startsWith(directory);\n });\n }),\n exit: function exit() {\n return notImplemented(\"exit\");\n },\n fileExists: audit(\"fileExists\", function (fileName) {\n return files.has(fileName) || files.has(libize(fileName));\n }),\n getCurrentDirectory: function getCurrentDirectory() {\n return \"/\";\n },\n getDirectories: function getDirectories() {\n return [];\n },\n getExecutingFilePath: function getExecutingFilePath() {\n return notImplemented(\"getExecutingFilePath\");\n },\n readDirectory: audit(\"readDirectory\", function (directory) {\n return directory === \"/\" ? Array.from(files.keys()) : [];\n }),\n readFile: audit(\"readFile\", function (fileName) {\n return files.get(fileName) || files.get(libize(fileName));\n }),\n resolvePath: function resolvePath(path) {\n return path;\n },\n newLine: \"\\n\",\n useCaseSensitiveFileNames: true,\n write: function write() {\n return notImplemented(\"write\");\n },\n writeFile: function writeFile(fileName, contents) {\n files.set(fileName, contents);\n }\n };\n}\n/**\r\n * Creates a file-system backed System object which can be used in a TypeScript program, you provide\r\n * a set of virtual files which are prioritised over the FS versions, then a path to the root of your\r\n * project (basically the folder your node_modules lives)\r\n */\n\n\nfunction createFSBackedSystem(files, _projectRoot, ts) {\n // We need to make an isolated folder for the tsconfig, but also need to be able to resolve the\n // existing node_modules structures going back through the history\n var root = _projectRoot + \"/vfs\";\n\n var path = require(\"path\"); // The default System in TypeScript\n\n\n var nodeSys = ts.sys;\n var tsLib = path.dirname(require.resolve(\"typescript\"));\n return {\n // @ts-ignore\n name: \"fs-vfs\",\n root: root,\n args: [],\n createDirectory: function createDirectory() {\n return notImplemented(\"createDirectory\");\n },\n // TODO: could make a real file tree\n directoryExists: audit(\"directoryExists\", function (directory) {\n return Array.from(files.keys()).some(function (path) {\n return path.startsWith(directory);\n }) || nodeSys.directoryExists(directory);\n }),\n exit: nodeSys.exit,\n fileExists: audit(\"fileExists\", function (fileName) {\n if (files.has(fileName)) return true; // Don't let other tsconfigs end up touching the vfs\n\n if (fileName.includes(\"tsconfig.json\") || fileName.includes(\"tsconfig.json\")) return false;\n\n if (fileName.startsWith(\"/lib\")) {\n var tsLibName = tsLib + \"/\" + fileName.replace(\"/\", \"\");\n return nodeSys.fileExists(tsLibName);\n }\n\n return nodeSys.fileExists(fileName);\n }),\n getCurrentDirectory: function getCurrentDirectory() {\n return root;\n },\n getDirectories: nodeSys.getDirectories,\n getExecutingFilePath: function getExecutingFilePath() {\n return notImplemented(\"getExecutingFilePath\");\n },\n readDirectory: audit(\"readDirectory\", function () {\n if ((arguments.length <= 0 ? undefined : arguments[0]) === \"/\") {\n return Array.from(files.keys());\n } else {\n return nodeSys.readDirectory.apply(nodeSys, arguments);\n }\n }),\n readFile: audit(\"readFile\", function (fileName) {\n if (files.has(fileName)) return files.get(fileName);\n\n if (fileName.startsWith(\"/lib\")) {\n var tsLibName = tsLib + \"/\" + fileName.replace(\"/\", \"\");\n var result = nodeSys.readFile(tsLibName);\n\n if (!result) {\n var libs = nodeSys.readDirectory(tsLib);\n throw new Error(\"TSVFS: A request was made for \" + tsLibName + \" but there wasn't a file found in the file map. You likely have a mismatch in the compiler options for the CDN download vs the compiler program. Existing Libs: \" + libs + \".\");\n }\n\n return result;\n }\n\n return nodeSys.readFile(fileName);\n }),\n resolvePath: function resolvePath(path) {\n if (files.has(path)) return path;\n return nodeSys.resolvePath(path);\n },\n newLine: \"\\n\",\n useCaseSensitiveFileNames: true,\n write: function write() {\n return notImplemented(\"write\");\n },\n writeFile: function writeFile(fileName, contents) {\n files.set(fileName, contents);\n }\n };\n}\n/**\r\n * Creates an in-memory CompilerHost -which is essentially an extra wrapper to System\r\n * which works with TypeScript objects - returns both a compiler host, and a way to add new SourceFile\r\n * instances to the in-memory file system.\r\n */\n\n\nfunction createVirtualCompilerHost(sys, compilerOptions, ts) {\n var sourceFiles = new Map();\n\n var save = function save(sourceFile) {\n sourceFiles.set(sourceFile.fileName, sourceFile);\n return sourceFile;\n };\n\n var vHost = {\n compilerHost: _extends({}, sys, {\n getCanonicalFileName: function getCanonicalFileName(fileName) {\n return fileName;\n },\n getDefaultLibFileName: function getDefaultLibFileName() {\n return \"/\" + ts.getDefaultLibFileName(compilerOptions);\n },\n // getDefaultLibLocation: () => '/',\n getDirectories: function getDirectories() {\n return [];\n },\n getNewLine: function getNewLine() {\n return sys.newLine;\n },\n getSourceFile: function getSourceFile(fileName) {\n return sourceFiles.get(fileName) || save(ts.createSourceFile(fileName, sys.readFile(fileName), compilerOptions.target || defaultCompilerOptions(ts).target, false));\n },\n useCaseSensitiveFileNames: function useCaseSensitiveFileNames() {\n return sys.useCaseSensitiveFileNames;\n }\n }),\n updateFile: function updateFile(sourceFile) {\n var alreadyExists = sourceFiles.has(sourceFile.fileName);\n sys.writeFile(sourceFile.fileName, sourceFile.text);\n sourceFiles.set(sourceFile.fileName, sourceFile);\n return alreadyExists;\n }\n };\n return vHost;\n}\n/**\r\n * Creates an object which can host a language service against the virtual file-system\r\n */\n\n\nfunction createVirtualLanguageServiceHost(sys, rootFiles, compilerOptions, ts, customTransformers) {\n var fileNames = [].concat(rootFiles);\n\n var _createVirtualCompile = createVirtualCompilerHost(sys, compilerOptions, ts),\n compilerHost = _createVirtualCompile.compilerHost,\n _updateFile2 = _createVirtualCompile.updateFile;\n\n var fileVersions = new Map();\n var projectVersion = 0;\n\n var languageServiceHost = _extends({}, compilerHost, {\n getProjectVersion: function getProjectVersion() {\n return projectVersion.toString();\n },\n getCompilationSettings: function getCompilationSettings() {\n return compilerOptions;\n },\n getCustomTransformers: function getCustomTransformers() {\n return customTransformers;\n },\n getScriptFileNames: function getScriptFileNames() {\n return fileNames;\n },\n getScriptSnapshot: function getScriptSnapshot(fileName) {\n var contents = sys.readFile(fileName);\n\n if (contents) {\n return ts.ScriptSnapshot.fromString(contents);\n }\n\n return;\n },\n getScriptVersion: function getScriptVersion(fileName) {\n return fileVersions.get(fileName) || \"0\";\n },\n writeFile: sys.writeFile\n });\n\n var lsHost = {\n languageServiceHost: languageServiceHost,\n updateFile: function updateFile(sourceFile) {\n projectVersion++;\n fileVersions.set(sourceFile.fileName, projectVersion.toString());\n\n if (!fileNames.includes(sourceFile.fileName)) {\n fileNames.push(sourceFile.fileName);\n }\n\n _updateFile2(sourceFile);\n }\n };\n return lsHost;\n}\n\nexport { addAllFilesFromFolder, addFilesForTypesIntoFolder, createDefaultMapFromCDN, createDefaultMapFromNodeModules, createFSBackedSystem, createSystem, createVirtualCompilerHost, createVirtualLanguageServiceHost, createVirtualTypeScriptEnvironment, knownLibFilesForCompilerOptions };","import { createSystem, createFSBackedSystem, createVirtualTypeScriptEnvironment } from '@typescript/vfs';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n it = o[Symbol.iterator]();\n return it.next.bind(it);\n}\n\nfunction parsePrimitive(value, type) {\n switch (type) {\n case \"number\":\n return +value;\n\n case \"string\":\n return value;\n\n case \"boolean\":\n return value.toLowerCase() === \"true\" || value.length === 0;\n }\n\n throw new TwoslashError(\"Unknown primitive value in compiler flag\", \"The only recognized primitives are number, string and boolean. Got \" + type + \" with \" + value + \".\", \"This is likely a typo.\");\n}\n\nfunction cleanMarkdownEscaped(code) {\n code = code.replace(/¨D/g, \"$\");\n code = code.replace(/¨T/g, \"~\");\n return code;\n}\n\nfunction typesToExtension(types) {\n var map = {\n js: \"js\",\n javascript: \"js\",\n ts: \"ts\",\n typescript: \"ts\",\n tsx: \"tsx\",\n jsx: \"jsx\",\n json: \"json\",\n jsn: \"json\"\n };\n if (map[types]) return map[types];\n throw new TwoslashError(\"Unknown TypeScript extension given to Twoslash\", \"Received \" + types + \" but Twoslash only accepts: \" + Object.keys(map) + \" \", \"\");\n}\n\nfunction getIdentifierTextSpans(ts, sourceFile) {\n var textSpans = [];\n checkChildren(sourceFile);\n return textSpans;\n\n function checkChildren(node) {\n ts.forEachChild(node, function (child) {\n if (ts.isIdentifier(child)) {\n var start = child.getStart(sourceFile, false);\n textSpans.push({\n span: ts.createTextSpan(start, child.end - start),\n text: child.getText(sourceFile)\n });\n }\n\n checkChildren(child);\n });\n }\n}\n/** Came from https://ourcodeworld.com/articles/read/223/how-to-retrieve-the-closest-word-in-a-string-with-a-given-index-in-javascript */\n\n\nfunction getClosestWord(str, pos) {\n // Make copies\n str = String(str);\n pos = Number(pos) >>> 0; // Search for the word's beginning and end.\n\n var left = str.slice(0, pos + 1).search(/\\S+$/),\n right = str.slice(pos).search(/\\s/); // The last word in the string is a special case.\n\n if (right < 0) {\n return {\n word: str.slice(left),\n startPos: left\n };\n } // Return the word, using the located bounds to extract it from the string.\n\n\n return {\n word: str.slice(left, right + pos),\n startPos: left\n };\n}\n/** To ensure that errors are matched up right */\n\n\nfunction validateCodeForErrors(relevantErrors, handbookOptions, extension, originalCode, vfsRoot) {\n var inErrsButNotFoundInTheHeader = relevantErrors.filter(function (e) {\n return !handbookOptions.errors.includes(e.code);\n });\n var errorsFound = Array.from(new Set(inErrsButNotFoundInTheHeader.map(function (e) {\n return e.code;\n }))).join(\" \");\n\n if (inErrsButNotFoundInTheHeader.length) {\n var errorsToShow = new Set(relevantErrors.map(function (e) {\n return e.code;\n }));\n var codeToAdd = \"// @errors: \" + Array.from(errorsToShow).join(\" \");\n var missing = handbookOptions.errors.length ? \"\\nThe existing annotation specified \" + handbookOptions.errors.join(\" \") : \"\\nExpected: \" + codeToAdd; // These get filled by below\n\n var filesToErrors = {};\n var noFiles = [];\n inErrsButNotFoundInTheHeader.forEach(function (d) {\n var _d$file;\n\n var fileRef = ((_d$file = d.file) == null ? void 0 : _d$file.fileName) && d.file.fileName.replace(vfsRoot, \"\");\n if (!fileRef) noFiles.push(d);else {\n var existing = filesToErrors[fileRef];\n if (existing) existing.push(d);else filesToErrors[fileRef] = [d];\n }\n });\n\n var showDiagnostics = function showDiagnostics(title, diags) {\n return title + \"\\n \" + diags.map(function (e) {\n var msg = typeof e.messageText === \"string\" ? e.messageText : e.messageText.messageText;\n return \"[\" + e.code + \"] \" + e.start + \" - \" + msg;\n }).join(\"\\n \");\n };\n\n var innerDiags = [];\n\n if (noFiles.length) {\n innerDiags.push(showDiagnostics(\"Ambient Errors\", noFiles));\n }\n\n Object.keys(filesToErrors).forEach(function (filepath) {\n innerDiags.push(showDiagnostics(filepath, filesToErrors[filepath]));\n });\n var allMessages = innerDiags.join(\"\\n\\n\");\n var newErr = new TwoslashError(\"Errors were thrown in the sample, but not included in an errors tag\", \"These errors were not marked as being expected: \" + errorsFound + \". \" + missing, \"Compiler Errors:\\n\\n\" + allMessages);\n newErr.code = \"## Code\\n\\n'''\" + extension + \"\\n\" + originalCode + \"\\n'''\";\n throw newErr;\n }\n}\n/** Mainly to warn myself, I've lost a good few minutes to this before */\n\n\nfunction validateInput(code) {\n if (code.includes(\"// @errors \")) {\n throw new TwoslashError(\"You have '// @errors ' (with a space)\", \"You want '// @errors: ' (with a colon)\", \"This is a pretty common typo\");\n }\n\n if (code.includes(\"// @filename \")) {\n throw new TwoslashError(\"You have '// @filename ' (with a space)\", \"You want '// @filename: ' (with a colon)\", \"This is a pretty common typo\");\n }\n}\n\nvar hasLocalStorage = false;\n\ntry {\n hasLocalStorage = typeof localStorage !== \"undefined\";\n} catch (error) {}\n\nvar hasProcess = typeof process !== \"undefined\";\nvar shouldDebug = hasLocalStorage && /*#__PURE__*/localStorage.getItem(\"DEBUG\") || hasProcess && process.env.DEBUG;\nvar log = shouldDebug ? console.log : function (_message) {\n return \"\";\n};\n\nvar TwoslashError = /*#__PURE__*/function (_Error) {\n _inheritsLoose(TwoslashError, _Error);\n\n function TwoslashError(title, description, recommendation, code) {\n var _this;\n\n var message = \"\\n## \" + title + \"\\n\\n\" + description + \"\\n\";\n\n if (recommendation) {\n message += \"\\n\" + recommendation;\n }\n\n if (code) {\n message += \"\\n\" + code;\n }\n\n _this = _Error.call(this, message) || this;\n _this.title = void 0;\n _this.description = void 0;\n _this.recommendation = void 0;\n _this.code = void 0;\n _this.title = title;\n _this.description = description;\n _this.recommendation = recommendation;\n _this.code = code;\n return _this;\n }\n\n return TwoslashError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nfunction filterHighlightLines(codeLines) {\n var highlights = [];\n var queries = [];\n var nextContentOffset = 0;\n var contentOffset = 0;\n var removedLines = 0;\n\n var _loop = function _loop(_i) {\n var line = codeLines[_i];\n\n var moveForward = function moveForward() {\n contentOffset = nextContentOffset;\n nextContentOffset += line.length + 1;\n };\n\n var stripLine = function stripLine(logDesc) {\n log(\"Removing line \" + _i + \" for \" + logDesc);\n removedLines++;\n codeLines.splice(_i, 1);\n _i--;\n }; // We only need to run regexes over lines with comments\n\n\n if (!line.includes(\"//\")) {\n moveForward();\n } else {\n var highlightMatch = /^\\s*\\/\\/\\s*\\^+( .+)?$/.exec(line);\n var queryMatch = /^\\s*\\/\\/\\s*\\^\\?\\s*$/.exec(line); // https://regex101.com/r/2yDsRk/1\n\n var removePrettierIgnoreMatch = /^\\s*\\/\\/ prettier-ignore$/.exec(line);\n var completionsQuery = /^\\s*\\/\\/\\s*\\^\\|$/.exec(line);\n\n if (queryMatch !== null) {\n var start = line.indexOf(\"^\");\n queries.push({\n kind: \"query\",\n offset: start,\n text: undefined,\n docs: undefined,\n line: _i + removedLines - 1\n });\n stripLine(\"having a query\");\n } else if (highlightMatch !== null) {\n var _start = line.indexOf(\"^\");\n\n var length = line.lastIndexOf(\"^\") - _start + 1;\n var position = contentOffset + _start;\n var description = highlightMatch[1] ? highlightMatch[1].trim() : \"\";\n highlights.push({\n kind: \"highlight\",\n position: position,\n length: length,\n description: description,\n line: _i\n });\n stripLine(\"having a highlight\");\n } else if (removePrettierIgnoreMatch !== null) {\n stripLine(\"being a prettier ignore\");\n } else if (completionsQuery !== null) {\n var _start2 = line.indexOf(\"^\"); // prettier-ignore\n\n\n queries.push({\n kind: \"completion\",\n offset: _start2,\n text: undefined,\n docs: undefined,\n line: _i + removedLines - 1\n });\n stripLine(\"having a completion query\");\n } else {\n moveForward();\n }\n }\n\n i = _i;\n };\n\n for (var i = 0; i < codeLines.length; i++) {\n _loop(i);\n }\n\n return {\n highlights: highlights,\n queries: queries\n };\n}\n\nfunction getOptionValueFromMap(name, key, optMap) {\n var result = optMap.get(key.toLowerCase());\n log(\"Get \" + name + \" mapped option: \" + key + \" => \" + result);\n\n if (result === undefined) {\n var keys = Array.from(optMap.keys());\n throw new TwoslashError(\"Invalid inline compiler value\", \"Got \" + key + \" for \" + name + \" but it is not a supported value by the TS compiler.\", \"Allowed values: \" + keys.join(\",\"));\n }\n\n return result;\n}\n\nfunction setOption(name, value, opts, ts) {\n log(\"Setting \" + name + \" to \" + value);\n\n var _loop2 = function _loop2() {\n var opt = _step.value;\n\n if (opt.name.toLowerCase() === name.toLowerCase()) {\n switch (opt.type) {\n case \"number\":\n case \"string\":\n case \"boolean\":\n opts[opt.name] = parsePrimitive(value, opt.type);\n break;\n\n case \"list\":\n var elementType = opt.element.type;\n var strings = value.split(\",\");\n\n if (typeof elementType === \"string\") {\n opts[opt.name] = strings.map(function (v) {\n return parsePrimitive(v, elementType);\n });\n } else {\n opts[opt.name] = strings.map(function (v) {\n return getOptionValueFromMap(opt.name, v, elementType);\n });\n }\n\n break;\n\n default:\n // It's a map!\n var optMap = opt.type;\n opts[opt.name] = getOptionValueFromMap(opt.name, value, optMap);\n break;\n }\n\n return {\n v: void 0\n };\n }\n };\n\n for (var _iterator = _createForOfIteratorHelperLoose(ts.optionDeclarations), _step; !(_step = _iterator()).done;) {\n var _ret = _loop2();\n\n if (typeof _ret === \"object\") return _ret.v;\n }\n\n throw new TwoslashError(\"Invalid inline compiler flag\", \"There isn't a TypeScript compiler flag called '\" + name + \"'.\", \"This is likely a typo, you can check all the compiler flags in the TSConfig reference, or check the additional Twoslash flags in the npm page for @typescript/twoslash.\");\n}\n\nvar booleanConfigRegexp = /^\\/\\/\\s?@(\\w+)$/; // https://regex101.com/r/8B2Wwh/1\n\nvar valuedConfigRegexp = /^\\/\\/\\s?@(\\w+):\\s?(.+)$/;\n\nfunction filterCompilerOptions(codeLines, defaultCompilerOptions, ts) {\n var options = _extends({}, defaultCompilerOptions);\n\n for (var _i2 = 0; _i2 < codeLines.length;) {\n var match = void 0;\n\n if (match = booleanConfigRegexp.exec(codeLines[_i2])) {\n options[match[1]] = true;\n setOption(match[1], \"true\", options, ts);\n } else if (match = valuedConfigRegexp.exec(codeLines[_i2])) {\n // Skip a filename tag, which should propagate through this stage\n if (match[1] === \"filename\") {\n _i2++;\n continue;\n }\n\n setOption(match[1], match[2], options, ts);\n } else {\n _i2++;\n continue;\n }\n\n codeLines.splice(_i2, 1);\n }\n\n return options;\n}\n\nfunction filterCustomTags(codeLines, customTags) {\n var tags = [];\n\n for (var _i3 = 0; _i3 < codeLines.length;) {\n var match = void 0;\n\n if (match = valuedConfigRegexp.exec(codeLines[_i3])) {\n if (customTags.includes(match[1])) {\n tags.push({\n name: match[1],\n line: _i3,\n annotation: codeLines[_i3].split(\"@\" + match[1] + \": \")[1]\n });\n codeLines.splice(_i3, 1);\n }\n }\n\n _i3++;\n }\n\n return tags;\n} // Keys in this object are used to filter out handbook options\n// before compiler options are set.\n\n\nvar defaultHandbookOptions = {\n errors: [],\n noErrors: false,\n showEmit: false,\n showEmittedFile: undefined,\n noStaticSemanticInfo: false,\n emit: false,\n noErrorValidation: false\n};\n\nfunction filterHandbookOptions(codeLines) {\n var options = _extends({}, defaultHandbookOptions);\n\n for (var _i4 = 0; _i4 < codeLines.length; _i4++) {\n var match = void 0;\n\n if (match = booleanConfigRegexp.exec(codeLines[_i4])) {\n if (match[1] in options) {\n options[match[1]] = true;\n log(\"Setting options.\" + match[1] + \" to true\");\n codeLines.splice(_i4, 1);\n _i4--;\n }\n } else if (match = valuedConfigRegexp.exec(codeLines[_i4])) {\n if (match[1] in options) {\n options[match[1]] = match[2];\n log(\"Setting options.\" + match[1] + \" to \" + match[2]);\n codeLines.splice(_i4, 1);\n _i4--;\n }\n }\n } // Edge case the errors object to turn it into a string array\n\n\n if (\"errors\" in options && typeof options.errors === \"string\") {\n options.errors = options.errors.split(\" \").map(Number);\n log(\"Setting options.error to \", options.errors);\n }\n\n return options;\n}\n/**\r\n * Runs the checker against a TypeScript/JavaScript code sample returning potentially\r\n * difference code, and a set of annotations around how it works.\r\n *\r\n * @param code The twoslash markup'd code\r\n * @param extension For example: \"ts\", \"tsx\", \"typescript\", \"javascript\" or \"js\".\r\n * @param options Additional options for twoslash\r\n */\n\n\nfunction twoslasher(code, extension, options) {\n var _options$tsModule, _options$lzstringModu, _options$defaultCompi;\n\n if (options === void 0) {\n options = {};\n }\n\n var ts = (_options$tsModule = options.tsModule) != null ? _options$tsModule : require(\"typescript\");\n var lzstring = (_options$lzstringModu = options.lzstringModule) != null ? _options$lzstringModu : require(\"lz-string\");\n var originalCode = code;\n var safeExtension = typesToExtension(extension);\n var defaultFileName = \"index.\" + safeExtension;\n log(\"\\n\\nLooking at code: \\n```\" + safeExtension + \"\\n\" + code + \"\\n```\\n\");\n\n var defaultCompilerOptions = _extends({\n strict: true,\n target: ts.ScriptTarget.ES2016,\n allowJs: true\n }, (_options$defaultCompi = options.defaultCompilerOptions) != null ? _options$defaultCompi : {});\n\n validateInput(code);\n code = cleanMarkdownEscaped(code); // NOTE: codeLines is mutated by the below functions:\n\n var codeLines = code.split(/\\r\\n?|\\n/g);\n var tags = options.customTags ? filterCustomTags(codeLines, options.customTags) : [];\n\n var handbookOptions = _extends({}, filterHandbookOptions(codeLines), options.defaultOptions);\n\n var compilerOptions = filterCompilerOptions(codeLines, defaultCompilerOptions, ts); // Handle special casing the lookup for when using jsx preserve which creates .jsx files\n\n if (!handbookOptions.showEmittedFile) {\n handbookOptions.showEmittedFile = compilerOptions.jsx && compilerOptions.jsx === ts.JsxEmit.Preserve ? \"index.jsx\" : \"index.js\";\n }\n\n var getRoot = function getRoot() {\n var pa = \"pa\";\n\n var path = require(pa + \"th\");\n\n var rootPath = options.vfsRoot || process.cwd();\n return rootPath.split(path.sep).join(path.posix.sep);\n }; // In a browser we want to DI everything, in node we can use local infra\n\n\n var useFS = !!options.fsMap;\n var vfs = useFS && options.fsMap ? options.fsMap : new Map();\n var system = useFS ? createSystem(vfs) : createFSBackedSystem(vfs, getRoot(), ts);\n var fsRoot = useFS ? \"/\" : getRoot() + \"/\";\n var env = createVirtualTypeScriptEnvironment(system, [], ts, compilerOptions, options.customTransformers);\n var ls = env.languageService;\n code = codeLines.join(\"\\n\");\n var partialQueries = [];\n var queries = [];\n var highlights = [];\n var nameContent = splitTwoslashCodeInfoFiles(code, defaultFileName, fsRoot);\n var sourceFiles = [\"js\", \"jsx\", \"ts\", \"tsx\"];\n /** All of the referenced files in the markup */\n\n var filenames = nameContent.map(function (nc) {\n return nc[0];\n });\n\n var _loop3 = function _loop3() {\n var file = _step2.value;\n var filename = file[0],\n codeLines = file[1];\n var filetype = filename.split(\".\").pop() || \"\"; // Only run the LSP-y things on source files\n\n var allowJSON = compilerOptions.resolveJsonModule && filetype === \"json\";\n\n if (!sourceFiles.includes(filetype) && !allowJSON) {\n return \"continue\";\n } // Create the file in the vfs\n\n\n var newFileCode = codeLines.join(\"\\n\");\n env.createFile(filename, newFileCode);\n var updates = filterHighlightLines(codeLines);\n highlights = highlights.concat(updates.highlights); // ------ Do the LSP lookup for the queries\n\n var lspedQueries = updates.queries.map(function (q, i) {\n var sourceFile = env.getSourceFile(filename);\n var position = ts.getPositionOfLineAndCharacter(sourceFile, q.line, q.offset);\n\n switch (q.kind) {\n case \"query\":\n {\n var quickInfo = ls.getQuickInfoAtPosition(filename, position); // prettier-ignore\n\n var text;\n var docs;\n\n if (quickInfo && quickInfo.displayParts) {\n text = quickInfo.displayParts.map(function (dp) {\n return dp.text;\n }).join(\"\");\n docs = quickInfo.documentation ? quickInfo.documentation.map(function (d) {\n return d.text;\n }).join(\"
\") : undefined;\n } else {\n throw new TwoslashError(\"Invalid QuickInfo query\", \"The request on line \" + q.line + \" in \" + filename + \" for quickinfo via ^? returned no from the compiler.\", \"This is likely that the x positioning is off.\");\n }\n\n var queryResult = {\n kind: \"query\",\n text: text,\n docs: docs,\n line: q.line - i,\n offset: q.offset,\n file: filename\n };\n return queryResult;\n }\n\n case \"completion\":\n {\n var completions = ls.getCompletionsAtPosition(filename, position - 1, {});\n\n if (!completions && !handbookOptions.noErrorValidation) {\n throw new TwoslashError(\"Invalid completion query\", \"The request on line \" + q.line + \" in \" + filename + \" for completions via ^| returned no completions from the compiler.\", \"This is likely that the positioning is off.\");\n }\n\n var word = getClosestWord(sourceFile.text, position - 1);\n var prefix = sourceFile.text.slice(word.startPos, position);\n var lastDot = prefix.split(\".\").pop() || \"\";\n var _queryResult = {\n kind: \"completions\",\n completions: (completions == null ? void 0 : completions.entries) || [],\n completionPrefix: lastDot,\n line: q.line - i,\n offset: q.offset,\n file: filename\n };\n return _queryResult;\n }\n }\n });\n partialQueries = partialQueries.concat(lspedQueries); // Sets the file in the compiler as being without the comments\n\n var newEditedFileCode = codeLines.join(\"\\n\");\n env.updateFile(filename, newEditedFileCode);\n };\n\n for (var _iterator2 = _createForOfIteratorHelperLoose(nameContent), _step2; !(_step2 = _iterator2()).done;) {\n var _ret2 = _loop3();\n\n if (_ret2 === \"continue\") continue;\n } // We need to also strip the highlights + queries from the main file which is shown to people\n\n\n var allCodeLines = code.split(/\\r\\n?|\\n/g);\n filterHighlightLines(allCodeLines);\n code = allCodeLines.join(\"\\n\"); // Lets fs changes propagate back up to the fsMap\n\n if (handbookOptions.emit) {\n filenames.forEach(function (f) {\n var filetype = f.split(\".\").pop() || \"\";\n if (!sourceFiles.includes(filetype)) return;\n var output = ls.getEmitOutput(f);\n output.outputFiles.forEach(function (output) {\n system.writeFile(output.name, output.text);\n });\n });\n } // Code should now be safe to compile, so we're going to split it into different files\n\n\n var errs = []; // Let because of a filter when cutting\n\n var staticQuickInfos = []; // Iterate through the declared files and grab errors and LSP quickinfos\n // const declaredFiles = Object.keys(fileMap)\n\n filenames.forEach(function (file) {\n var filetype = file.split(\".\").pop() || \"\"; // Only run the LSP-y things on source files\n\n if (!sourceFiles.includes(filetype)) {\n return;\n }\n\n if (!handbookOptions.noErrors) {\n errs = errs.concat(ls.getSemanticDiagnostics(file), ls.getSyntacticDiagnostics(file));\n }\n\n var source = env.sys.readFile(file);\n var sourceFile = env.getSourceFile(file);\n\n if (!sourceFile) {\n throw new TwoslashError(\"Could not find a TypeScript sourcefile for '\" + file + \"' in the Twoslash vfs\", \"It's a little hard to provide useful advice on this error. Maybe you imported something which the compiler doesn't think is a source file?\", \"\");\n } // Get all of the interesting quick info popover\n\n\n if (!handbookOptions.showEmit) {\n var fileContentStartIndexInModifiedFile = code.indexOf(source) == -1 ? 0 : code.indexOf(source);\n var linesAbove = code.slice(0, fileContentStartIndexInModifiedFile).split(\"\\n\").length - 1; // Get all interesting identifiers in the file, so we can show hover info for it\n\n var identifiers = handbookOptions.noStaticSemanticInfo ? [] : getIdentifierTextSpans(ts, sourceFile);\n\n for (var _iterator3 = _createForOfIteratorHelperLoose(identifiers), _step3; !(_step3 = _iterator3()).done;) {\n var identifier = _step3.value;\n var span = identifier.span;\n var quickInfo = ls.getQuickInfoAtPosition(file, span.start);\n\n if (quickInfo && quickInfo.displayParts) {\n var text = quickInfo.displayParts.map(function (dp) {\n return dp.text;\n }).join(\"\");\n var targetString = identifier.text;\n var docs = quickInfo.documentation ? quickInfo.documentation.map(function (d) {\n return d.text;\n }).join(\"\\n\") : undefined; // Get the position of the\n\n var position = span.start + fileContentStartIndexInModifiedFile; // Use TypeScript to pull out line/char from the original code at the position + any previous offset\n\n var burnerSourceFile = ts.createSourceFile(\"_.ts\", code, ts.ScriptTarget.ES2015);\n\n var _ts$getLineAndCharact = ts.getLineAndCharacterOfPosition(burnerSourceFile, position),\n line = _ts$getLineAndCharact.line,\n character = _ts$getLineAndCharact.character;\n\n staticQuickInfos.push({\n text: text,\n docs: docs,\n start: position,\n length: span.length,\n line: line,\n character: character,\n targetString: targetString\n });\n }\n } // Offset the queries for this file because they are based on the line for that one\n // specific file, and not the global twoslash document. This has to be done here because\n // in the above loops, the code for queries/highlights/etc hasn't been stripped yet.\n\n\n partialQueries.filter(function (q) {\n return q.file === file;\n }).forEach(function (q) {\n var pos = ts.getPositionOfLineAndCharacter(sourceFile, q.line, q.offset) + fileContentStartIndexInModifiedFile;\n\n switch (q.kind) {\n case \"query\":\n {\n queries.push({\n docs: q.docs,\n kind: \"query\",\n start: pos + fileContentStartIndexInModifiedFile,\n length: q.text.length,\n text: q.text,\n offset: q.offset,\n line: q.line + linesAbove + 1\n });\n break;\n }\n\n case \"completions\":\n {\n queries.push({\n completions: q.completions,\n kind: \"completions\",\n start: pos + fileContentStartIndexInModifiedFile,\n completionsPrefix: q.completionPrefix,\n length: 1,\n offset: q.offset,\n line: q.line + linesAbove + 1\n });\n }\n }\n });\n }\n });\n var relevantErrors = errs.filter(function (e) {\n return e.file && filenames.includes(e.file.fileName);\n }); // A validator that error codes are mentioned, so we can know if something has broken in the future\n\n if (!handbookOptions.noErrorValidation && relevantErrors.length) {\n validateCodeForErrors(relevantErrors, handbookOptions, extension, originalCode, fsRoot);\n }\n\n var errors = []; // We can't pass the ts.DiagnosticResult out directly (it can't be JSON.stringified)\n\n for (var _iterator4 = _createForOfIteratorHelperLoose(relevantErrors), _step4; !(_step4 = _iterator4()).done;) {\n var err = _step4.value;\n var codeWhereErrorLives = env.sys.readFile(err.file.fileName);\n var fileContentStartIndexInModifiedFile = code.indexOf(codeWhereErrorLives);\n var renderedMessage = ts.flattenDiagnosticMessageText(err.messageText, \"\\n\");\n var id = \"err-\" + err.code + \"-\" + err.start + \"-\" + err.length;\n\n var _ts$getLineAndCharact2 = ts.getLineAndCharacterOfPosition(err.file, err.start),\n line = _ts$getLineAndCharact2.line,\n character = _ts$getLineAndCharact2.character;\n\n errors.push({\n category: err.category,\n code: err.code,\n length: err.length,\n start: err.start ? err.start + fileContentStartIndexInModifiedFile : undefined,\n line: line,\n character: character,\n renderedMessage: renderedMessage,\n id: id\n });\n } // Handle emitting files\n\n\n if (handbookOptions.showEmit) {\n // Get the file which created the file we want to show:\n var emitFilename = handbookOptions.showEmittedFile || defaultFileName;\n var emitSourceFilename = fsRoot + emitFilename.replace(\".jsx\", \"\").replace(\".js\", \"\").replace(\".d.ts\", \"\").replace(\".map\", \"\");\n var emitSource = filenames.find(function (f) {\n return f === emitSourceFilename + \".ts\" || f === emitSourceFilename + \".tsx\";\n });\n\n if (!emitSource && !compilerOptions.outFile) {\n var allFiles = filenames.join(\", \"); // prettier-ignore\n\n throw new TwoslashError(\"Could not find source file to show the emit for\", \"Cannot find the corresponding **source** file \" + emitFilename + \" for completions via ^| returned no quickinfo from the compiler.\", \"Looked for: \" + emitSourceFilename + \" in the vfs - which contains: \" + allFiles);\n } // Allow outfile, in which case you need any file.\n\n\n if (compilerOptions.outFile) {\n emitSource = filenames[0];\n }\n\n var output = ls.getEmitOutput(emitSource);\n var file = output.outputFiles.find(function (o) {\n return o.name === fsRoot + handbookOptions.showEmittedFile || o.name === handbookOptions.showEmittedFile;\n });\n\n if (!file) {\n var _allFiles = output.outputFiles.map(function (o) {\n return o.name;\n }).join(\", \");\n\n throw new TwoslashError(\"Cannot find the output file in the Twoslash VFS\", \"Looking for \" + handbookOptions.showEmittedFile + \" in the Twoslash vfs after compiling\", \"Looked for\\\" \" + (fsRoot + handbookOptions.showEmittedFile) + \" in the vfs - which contains \" + _allFiles + \".\");\n }\n\n code = file.text;\n extension = file.name.split(\".\").pop(); // Remove highlights and queries, because it won't work across transpiles,\n // though I guess source-mapping could handle the transition\n\n highlights = [];\n partialQueries = [];\n staticQuickInfos = [];\n }\n\n var zippedCode = lzstring.compressToEncodedURIComponent(originalCode);\n var playgroundURL = \"https://www.typescriptlang.org/play/#code/\" + zippedCode; // Cutting happens last, and it means editing the lines and character index of all\n // the type annotations which are attached to a location\n\n var cutString = \"// ---cut---\\n\";\n\n if (code.includes(cutString)) {\n // Get the place it is, then find the end and the start of the next line\n var cutIndex = code.indexOf(cutString) + cutString.length;\n var lineOffset = code.substr(0, cutIndex).split(\"\\n\").length - 1; // Kills the code shown\n\n code = code.split(cutString).pop(); // For any type of metadata shipped, it will need to be shifted to\n // fit in with the new positions after the cut\n\n staticQuickInfos.forEach(function (info) {\n info.start -= cutIndex;\n info.line -= lineOffset;\n });\n staticQuickInfos = staticQuickInfos.filter(function (s) {\n return s.start > -1;\n });\n errors.forEach(function (err) {\n if (err.start) err.start -= cutIndex;\n if (err.line) err.line -= lineOffset;\n });\n errors = errors.filter(function (e) {\n return e.start && e.start > -1;\n });\n highlights.forEach(function (highlight) {\n highlight.position -= cutIndex;\n highlight.line -= lineOffset;\n });\n highlights = highlights.filter(function (e) {\n return e.position > -1;\n });\n queries.forEach(function (q) {\n return q.line -= lineOffset;\n });\n queries = queries.filter(function (q) {\n return q.line > -1;\n });\n tags.forEach(function (q) {\n return q.line -= lineOffset;\n });\n tags = tags.filter(function (q) {\n return q.line > -1;\n });\n }\n\n return {\n code: code,\n extension: extension,\n highlights: highlights,\n queries: queries,\n staticQuickInfos: staticQuickInfos,\n errors: errors,\n playgroundURL: playgroundURL,\n tags: tags\n };\n}\n\nvar splitTwoslashCodeInfoFiles = function splitTwoslashCodeInfoFiles(code, defaultFileName, root) {\n var lines = code.split(/\\r\\n?|\\n/g);\n var nameForFile = code.includes(\"@filename: \" + defaultFileName) ? \"global.ts\" : defaultFileName;\n var currentFileContent = [];\n var fileMap = [];\n\n for (var _iterator5 = _createForOfIteratorHelperLoose(lines), _step5; !(_step5 = _iterator5()).done;) {\n var line = _step5.value;\n\n if (line.includes(\"// @filename: \")) {\n fileMap.push([root + nameForFile, currentFileContent]);\n nameForFile = line.split(\"// @filename: \")[1].trim();\n currentFileContent = [];\n } else {\n currentFileContent.push(line);\n }\n }\n\n fileMap.push([root + nameForFile, currentFileContent]); // Basically, strip these:\n // [\"index.ts\", []]\n // [\"index.ts\", [\"\"]]\n\n var nameContent = fileMap.filter(function (n) {\n return n[1].length > 0 && (n[1].length > 1 || n[1][0] !== \"\");\n });\n return nameContent;\n};\n\nexport { TwoslashError, twoslasher };","import { getHighlighter } from 'shiki';\nimport { twoslasher } from '@typescript/twoslash';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar htmlForTags = function htmlForTags(tags) {\n var html = \"\";\n tags.forEach(function (t) {\n if (t.name === \"annotate\" && t.annotation) {\n var meta = t.annotation.split(\" - \");\n var text = meta.pop();\n var info = (meta[0] || \"\").trim();\n var flipped = info.includes(\"right\");\n var arrowRotation = info.split(\" \")[1] || flipped ? \"310\" : \"56\";\n var textRotation = info.split(\" \")[2] || \"0\";\n var arrowSVG = arrow({\n flipped: flipped,\n rotation: arrowRotation\n });\n html += \"\\n
\\n \" + arrowSVG + \"\\n

\" + text + \"

\\n
\";\n }\n });\n return html;\n};\n\nvar arrow = function arrow(style) {\n var leftInner = \"M27 39C26.5 32.7511 21.9 17.5173 7.5 6.57333M16.5 4.04L0.999999 0.999998C3.16667 4.88444 7.5 13.16 7.5 15.1867\";\n var rightInner = \"M1 39C1.5 32.7511 6.1 17.5173 20.5 6.57333M11.5 4.04L27 0.999998C24.8333 4.88444 20.5 13.16 20.5 15.1867\";\n var inner = style.flipped ? leftInner : rightInner;\n return \"\\n \\n\";\n};\n/**\r\n * We're given the text which lives inside the token, and this function will\r\n * annotate it with twoslash metadata\r\n */\n\n\nfunction createHighlightedString(ranges, text, targetedWord) {\n if (targetedWord === void 0) {\n targetedWord = \"\";\n } // Why the weird chars? We need to make sure that generic syntax isn't\n // interpreted as html tags - to do that we need to switch out < to < - *but*\n // making that transition changes the indexes because it's gone from 1 char to 4 chars\n //\n // So, use an obscure character to indicate a real < for HTML, then switch it after\n\n\n var tag = function tag(x) {\n return \"\\u21CD\" + x + \"\\u21CF\";\n };\n\n var makeTagFromRange = function makeTagFromRange(r, close) {\n switch (r.classes) {\n case \"lsp\":\n // The LSP response lives inside a dom attribute, which _can_ have < inside it, so switch them ahead of time.\n var lsp = htmlAttrReplacer(r.lsp || \"\");\n var underLineTargetedWord = r.lsp === targetedWord ? \"style=⇯border-bottom: solid 2px lightgrey;⇯\" : \"\";\n return close ? tag(\"/data-lsp\") : tag(\"data-lsp lsp=\\xBF\" + lsp + \"\\xBF \" + underLineTargetedWord);\n\n case \"query\":\n return tag((close ? \"/\" : \"\") + \"data-highlight\");\n // handle both unknown and err variant as error-tag\n // case \"err\": is not required, just to be useful for others\n\n case \"err\":\n default:\n return tag((close ? \"/\" : \"\") + \"data-err\");\n }\n };\n\n ranges.sort(function (a, b) {\n // Order of precedence\n // if two same offset meet, the lsp will be put as innermost than err and query\n var precedenceOf = function precedenceOf(x) {\n return [\"err\", \"query\", \"lsp\"].indexOf(x != null ? x : \"\");\n };\n\n var cmp = 0; // Can be desugared into,\n // 1. compare based on smaller begin, !(cmp) means if it's 0 then\n // 2. compare based on bigger end, ^ same thing again then\n // 3. compare based on higher precedence\n // && is so that if a step made cmp to something other than 0, it stops\n\n /***1*/\n\n !(cmp = a.begin - b.begin) &&\n /*2*/\n !(cmp = b.end - a.end) &&\n /*3*/\n !(cmp = precedenceOf(a.classes) - precedenceOf(b.classes));\n return cmp;\n }); // `Array.sort` works in place\n // Marks how much of the text has been put into the output/html\n\n var cursor = 0; // should be maximum of O(n) where n is length of ranges\n\n var nest = function nest(data) {\n var stack = \"\";\n var top = data.shift(); // I have made sure data can't be empty\n // parse from cursor to top.begin to make sure\n // strings on the way are parsed\n\n stack += text.substring(cursor, top.begin);\n cursor = top.begin; // open tag\n\n stack += makeTagFromRange(top); // if the data still have an element that's in the top's range\n\n if (data.some(function (x) {\n return x.begin < top.end;\n })) {\n stack += nest(data);\n } else {\n // othewise slice the text and set cursor\n stack += text.substring(top.begin, top.end);\n cursor = top.end;\n } // close tag\n\n\n stack += makeTagFromRange(top, true); // if the tag is complete but still have some data left in the range\n\n if (data.length !== 0) {\n stack += nest(data);\n }\n\n return stack;\n }; // cloned because I don't feel comfortable modifying this as a side-effect from recursion\n\n\n var data = JSON.parse(JSON.stringify(ranges));\n var html = nest(data) + text.substring(cursor); // nested + leftover texts\n\n return htmlAttrUnReplacer(replaceTripleArrow(stripHTML(html)));\n} // HTML attributes have different rules,\n\n\nvar htmlAttrReplacer = function htmlAttrReplacer(str) {\n return str.replace(/\"/g, \"⃟\");\n};\n\nvar htmlAttrUnReplacer = function htmlAttrUnReplacer(str) {\n return str.replace(/⃟/g, '\"');\n}; // Inline strings which are shown at HTML level\n\n\nvar subTripleArrow = function subTripleArrow(str) {\n return str.replace(//g, \"⇏\").replace(/'/g, \"⇯\");\n};\n\nvar replaceTripleArrow = function replaceTripleArrow(str) {\n return str.replace(/⇍/g, \"<\").replace(/⇏/g, \">\").replace(/⇯/g, \"'\").replace(/¿/g, \"'\");\n};\n\nvar replaceTripleArrowEncoded = function replaceTripleArrowEncoded(str) {\n return str.replace(/⇍/g, \"<\").replace(/⇏/g, \">\").replace(/⇯/g, \"'\");\n};\n\nfunction stripHTML(text) {\n var table = {\n \"<\": \"lt\",\n '\"': \"quot\",\n \"'\": \"apos\",\n \"&\": \"amp\",\n \"\\r\": \"#13\",\n \"\\n\": \"#10\"\n };\n return text.toString().replace(/[<\"'\\r\\n&]/g, function (chr) {\n return \"&\" + table[chr] + \";\";\n });\n}\n\nfunction escapeHtml(html) {\n return html.replace(//g, \">\");\n}\n/** Does anything in the object imply that we should highlight any lines? */\n\n\nvar shouldBeHighlightable = function shouldBeHighlightable(highlight) {\n return !!Object.keys(highlight || {}).find(function (key) {\n if (key.includes(\"-\")) return true;\n if (!isNaN(parseInt(key))) return true;\n return false;\n });\n};\n/** Returns a func for figuring out if this line should be highlighted */\n\n\nvar shouldHighlightLine = function shouldHighlightLine(highlight) {\n var lines = [];\n Object.keys(highlight || {}).find(function (key) {\n if (!isNaN(parseInt(key))) lines.push(parseInt(key));\n\n if (key.includes(\"-\")) {\n var _key$split = key.split(\"-\"),\n first = _key$split[0],\n last = _key$split[1];\n\n var lastIndex = parseInt(last) + 1;\n\n for (var i = parseInt(first); i < lastIndex; i++) {\n lines.push(i);\n }\n }\n });\n return function (line) {\n return lines.includes(line);\n };\n};\n/** A func for setting a consistent
 */\n\n\nvar preOpenerFromRenderingOptsWithExtras = function preOpenerFromRenderingOptsWithExtras(opts, meta, classes) {\n  var bg = opts.bg || \"#fff\";\n  var fg = opts.fg || \"black\";\n  var theme = opts.themeName || \"\"; // shiki + `class` from fence + with-title if title exists + classes\n\n  var classList = [\"shiki\", theme, meta[\"class\"], meta.title ? \"with-title\" : \"\"].concat(classes || []).filter(Boolean).join(\" \").trim();\n  var attributes = Object.entries(meta).filter(function (entry) {\n    // exclude types other than string, number, boolean\n    // exclude keys class, twoslash\n    // exclude falsy booleans\n    return [\"string\", \"number\", \"boolean\"].includes(typeof entry[1]) && ![\"class\", \"twoslash\"].includes(entry[0]) && entry[1] !== false;\n  }).map(function (_ref) {\n    var key = _ref[0],\n        value = _ref[1];\n    return key + \"=\\\"\" + value + \"\\\"\";\n  }).join(\" \").trim(); // prettier-ignore\n\n  return \"
\";\n};\n/** You don't have a language which shiki twoslash can handle, make a DOM compatible version  */\n\n\nfunction plainTextRenderer(code, options, meta) {\n  var html = \"\";\n  html += preOpenerFromRenderingOptsWithExtras(options, meta, []);\n\n  if (meta.title) {\n    html += \"
\" + meta.title + \"
\";\n }\n\n if (options.langId) {\n html += \"
\" + options.langId + \"
\";\n }\n\n html += \"
\";\n html += escapeHtml(code);\n html = html.replace(/\\n*$/, \"\"); // Get rid of final new lines\n\n html += \"
\";\n return html;\n} // What we're trying to do is merge two sets of information into a single tree for HTML\n// 1: Syntax highlight info from shiki\n// 2: Twoslash metadata like errors, identifiers etc\n// Because shiki gives use a set of lines to work from, then the first thing which happens\n// is converting twoslash data into the same format.\n// Things which make it hard:\n//\n// - Twoslash results can be cut, so sometimes there is edge cases between twoslash results\n// - Twoslash results can be multi-file\n// - the DOM requires a flattened graph of html elements (e.g. spans can' be interspersed)\n//\n\n\nfunction twoslashRenderer(lines, options, twoslash, meta) {\n var html = \"\";\n var hasHighlight = meta.highlight && shouldBeHighlightable(meta.highlight);\n var hl = shouldHighlightLine(meta.highlight);\n html += preOpenerFromRenderingOptsWithExtras(options, meta, [\"twoslash\", \"lsp\"]);\n\n if (meta.title) {\n html += \"
\" + meta.title + \"
\";\n }\n\n if (options.langId) {\n html += \"
\" + options.langId + \"
\";\n }\n\n html += \"
\";\n var errorsGroupedByLine = groupBy(twoslash.errors, function (e) {\n return e.line;\n }) || new Map();\n var staticQuickInfosGroupedByLine = groupBy(twoslash.staticQuickInfos, function (q) {\n return q.line;\n }) || new Map(); // A query is always about the line above it!\n\n var queriesGroupedByLine = groupBy(twoslash.queries, function (q) {\n return q.line - 1;\n }) || new Map();\n /**\r\n * This is the index of the original twoslash code reference, it is not\r\n * related to the HTML output\r\n */\n\n var filePos = 0;\n lines.forEach(function (l, i) {\n var errors = errorsGroupedByLine.get(i) || [];\n var lspValues = staticQuickInfosGroupedByLine.get(i) || [];\n var queries = queriesGroupedByLine.get(i) || [];\n var hiClass = hasHighlight ? hl(i) ? \" highlight\" : \" dim\" : \"\";\n var prefix = \"
\";\n\n if (l.length === 0 && i === 0) {\n // Skip the first newline if it's blank\n filePos += 1;\n } else if (l.length === 0) {\n var emptyLine = prefix + \" 
\";\n html += emptyLine;\n filePos += 1;\n } else {\n html += prefix; // Keep track of the position of the current token in a line so we can match it up to the\n // errors and lang serv identifiers\n\n var tokenPos = 0;\n l.forEach(function (token) {\n var targetedQueryWord;\n var tokenContent = \"\"; // Underlining particular words\n\n var findTokenFunc = function findTokenFunc(start) {\n return function (e) {\n return start <= e.character && start + token.content.length >= e.character + e.length;\n };\n };\n\n var errorsInToken = errors.filter(findTokenFunc(tokenPos));\n var lspResponsesInToken = lspValues.filter(findTokenFunc(tokenPos));\n var queriesInToken = queries.filter(findTokenFunc(tokenPos)); // Does this line have a word targeted by a query?\n\n targetedQueryWord = targetedQueryWord || lspResponsesInToken.find(function (response) {\n return response.text === (queries.length && queries[0].text);\n });\n var allTokens = [].concat(errorsInToken, lspResponsesInToken, queriesInToken);\n var allTokensByStart = allTokens.sort(function (l, r) {\n return (l.start || 0) - (r.start || 0);\n });\n\n if (allTokensByStart.length) {\n var _targetedQueryWord;\n\n var ranges = allTokensByStart.map(function (token) {\n var range = {\n begin: token.start - filePos,\n end: token.start + token.length - filePos\n }; // prettier-ignore\n\n if (\"renderedMessage\" in token) range.classes = \"err\";\n if (\"kind\" in token) range.classes = token.kind;\n\n if (\"targetString\" in token) {\n range.classes = \"lsp\";\n var lspText = options.includeJSDocInHover && token.docs ? token.docs + \"\\n\\n\" + token.text : token.text;\n range[\"lsp\"] = lspText;\n }\n\n return range;\n });\n tokenContent += createHighlightedString(ranges, token.content, (_targetedQueryWord = targetedQueryWord) == null ? void 0 : _targetedQueryWord.text);\n } else {\n tokenContent += subTripleArrow(token.content);\n }\n\n html += \"\" + tokenContent + \"\";\n tokenPos += token.content.length;\n filePos += token.content.length;\n });\n html += \"
\"; // This is the \\n which the represents\n\n filePos += 1;\n } // Adding error messages to the line after\n\n\n if (errors.length) {\n var messages = errors.map(function (e) {\n return escapeHtml(e.renderedMessage);\n }).join(\"
\");\n var codes = errors.map(function (e) {\n return e.code;\n }).join(\"
\");\n html += \"\" + messages + \"\" + codes + \"\";\n html += \"\" + messages + \"\";\n } // Add queries to the next line\n\n\n if (queries.length) {\n queries.forEach(function (query) {\n // This is used to wrap popovers and completions to improve styling options for users.\n html += \"
\";\n\n switch (query.kind) {\n case \"query\":\n {\n var queryTextWithPrefix = escapeHtml(query.text);\n\n var _lspValues = staticQuickInfosGroupedByLine.get(i) || [];\n\n var targetedWord = _lspValues.find(function (response) {\n return response.text === (queries.length && queries[0].text);\n });\n\n var halfWayAcrossTheTargetedWord = (targetedWord && targetedWord.character + (targetedWord == null ? void 0 : targetedWord.length) / 2) - 1 || 0;\n html += \"\" + \" \".repeat(halfWayAcrossTheTargetedWord) + \"\" + (\"
\" + queryTextWithPrefix + \"
\");\n break;\n }\n\n case \"completions\":\n {\n if (!query.completions) {\n html += \"\" + (\"//\" + \"\".padStart(query.offset - 2) + \"^ - No completions found\") + \"\";\n } else {\n var prefixed = query.completions.filter(function (c) {\n return c.name.startsWith(query.completionsPrefix || \"____\");\n });\n var lis = prefixed.sort(function (l, r) {\n return l.name.localeCompare(r.name);\n }).map(function (c) {\n var _query$completionsPre, _c$kindModifiers;\n\n var after = c.name.substr(((_query$completionsPre = query.completionsPrefix) == null ? void 0 : _query$completionsPre.length) || 0);\n var name = \"\" + (query.completionsPrefix || \"\") + \"\" + after + \"\";\n var isDeprecated = (_c$kindModifiers = c.kindModifiers) == null ? void 0 : _c$kindModifiers.split(\",\").includes(\"deprecated\");\n var liClass = isDeprecated ? \"deprecated\" : \"\";\n return \"
  • \" + name + \"
  • \";\n }).join(\"\");\n html += \" \".repeat(query.offset) + \"\";\n }\n }\n }\n\n html += \"
    \";\n });\n }\n });\n html = replaceTripleArrowEncoded(html.replace(/\\n*$/, \"\")); // Get rid of final new lines\n\n if (options.addTryButton) {\n var playgroundLink = \"Try\";\n html += \"
    \" + playgroundLink;\n } else {\n html += \"\";\n } // Attach annotations which live above of the code\n\n\n if (twoslash.tags && twoslash.tags.length) {\n html += htmlForTags(twoslash.tags);\n }\n\n html += \"
    \";\n return html;\n}\n/** Returns a map where all the keys are the value in keyGetter */\n\n\nfunction groupBy(list, keyGetter) {\n var map = new Map();\n list.forEach(function (item) {\n var key = keyGetter(item);\n var collection = map.get(key);\n\n if (!collection) {\n map.set(key, [item]);\n } else {\n collection.push(item);\n }\n });\n return map;\n}\n\nfunction defaultShikiRenderer(lines, options, meta) {\n var html = \"\";\n var hasHighlight = meta.highlight && shouldBeHighlightable(meta.highlight);\n var hl = shouldHighlightLine(meta.highlight);\n html += preOpenerFromRenderingOptsWithExtras(options, meta, []);\n\n if (meta.title) {\n html += \"
    \" + meta.title + \"
    \";\n }\n\n if (options.langId) {\n html += \"
    \" + options.langId + \"
    \";\n }\n\n html += \"
    \";\n lines.forEach(function (l, i) {\n if (l.length === 0) {\n html += \"
    \";\n } else {\n var hiClass = hasHighlight ? hl(i) ? \" highlight\" : \" dim\" : \"\";\n var prefix = \"
    \";\n html += prefix;\n l.forEach(function (token) {\n html += \"\" + escapeHtml(token.content) + \"\";\n });\n html += \"
    \";\n }\n });\n html = html.replace(/\\n*$/, \"\"); // Get rid of final new lines\n\n html += \"
    \";\n return html;\n}\n\nvar tsconfig = {\n compilerOptions: \"The set of compiler options for your project\",\n allowJs: \"Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files.\",\n allowSyntheticDefaultImports: \"Allow 'import x from y' when a module doesn't have a default export.\",\n allowUmdGlobalAccess: \"Allow accessing UMD globals from modules.\",\n allowUnreachableCode: \"Disable error reporting for unreachable code.\",\n allowUnusedLabels: \"Disable error reporting for unused labels.\",\n alwaysStrict: \"Ensure 'use strict' is always emitted.\",\n assumeChangesOnlyAffectDirectDependencies: \"Have recompiles in projects that use `incremental` and `watch` mode assume that changes within a file will only affect files directly depending on it.\",\n baseUrl: \"Specify the base directory to resolve non-relative module names.\",\n charset: \"No longer supported. In early versions, manually set the text encoding for reading files.\",\n checkJs: \"Enable error reporting in type-checked JavaScript files.\",\n clean: \"Delete the outputs of all projects.\",\n composite: \"Enable constraints that allow a TypeScript project to be used with project references.\",\n declaration: \"Generate .d.ts files from TypeScript and JavaScript files in your project.\",\n declarationDir: \"Specify the output directory for generated declaration files.\",\n declarationMap: \"Create sourcemaps for d.ts files.\",\n diagnostics: \"Output compiler performance information after building.\",\n disableFilenameBasedTypeAcquisition: \"Disables inference for type acquisition by looking at filenames in a project.\",\n disableReferencedProjectLoad: \"Reduce the number of projects loaded automatically by TypeScript.\",\n disableSizeLimit: \"Remove the 20mb cap on total source code size for JavaScript files in the TypeScript language server.\",\n disableSolutionSearching: \"Opt a project out of multi-project reference checking when editing.\",\n disableSourceOfProjectReferenceRedirect: \"Disable preferring source files instead of declaration files when referencing composite projects\",\n downlevelIteration: \"Emit more compliant, but verbose and less performant JavaScript for iteration.\",\n emitBOM: \"Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files.\",\n emitDeclarationOnly: \"Only output d.ts files and not JavaScript files.\",\n emitDecoratorMetadata: \"Emit design-type metadata for decorated declarations in source files.\",\n enable: \"Disable the type acquisition for JavaScript projects\",\n esModuleInterop: \"Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility.\",\n exactOptionalPropertyTypes: \"Differentiate between undefined and not present when type checking\",\n exclude: \"Filters results from the `include` option.\",\n excludeDirectories: \"Remove a list of directories from the watch process.\",\n excludeFiles: \"Remove a list of files from the watch mode's processing.\",\n experimentalDecorators: \"Enable experimental support for TC39 stage 2 draft decorators.\",\n explainFiles: \"Print files read during the compilation including why it was included.\",\n extendedDiagnostics: \"Output more detailed compiler performance information after building.\",\n \"extends\": \"Specify one or more path or node module references to base configuration files from which settings are inherited.\",\n fallbackPolling: \"Specify what approach the watcher should use if the system runs out of native file watchers.\",\n files: \"Include a list of files. This does not support glob patterns, as opposed to `include`.\",\n force: \"Build all projects, including those that appear to be up to date\",\n forceConsistentCasingInFileNames: \"Ensure that casing is correct in imports.\",\n generateCpuProfile: \"Emit a v8 CPU profile of the compiler run for debugging.\",\n importHelpers: \"Allow importing helper functions from tslib once per project, instead of including them per-file.\",\n importsNotUsedAsValues: \"Specify emit/checking behavior for imports that are only used for types.\",\n include: \"Specify a list of glob patterns that match files to be included in compilation.\",\n incremental: \"Save .tsbuildinfo files to allow for incremental compilation of projects.\",\n inlineSourceMap: \"Include sourcemap files inside the emitted JavaScript.\",\n inlineSources: \"Include source code in the sourcemaps inside the emitted JavaScript.\",\n isolatedModules: \"Ensure that each file can be safely transpiled without relying on other imports.\",\n jsx: \"Specify what JSX code is generated.\",\n jsxFactory: \"Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'\",\n jsxFragmentFactory: \"Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'.\",\n jsxImportSource: \"Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.`\",\n keyofStringsOnly: \"Make keyof only return strings instead of string, numbers or symbols. Legacy option.\",\n lib: \"Specify a set of bundled library declaration files that describe the target runtime environment.\",\n listEmittedFiles: \"Print the names of emitted files after a compilation.\",\n listFiles: \"Print all of the files read during the compilation.\",\n locale: \"Set the language of the messaging from TypeScript. This does not affect emit.\",\n mapRoot: \"Specify the location where debugger should locate map files instead of generated locations.\",\n maxNodeModuleJsDepth: \"Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`.\",\n module: \"Specify what module code is generated.\",\n moduleResolution: \"Specify how TypeScript looks up a file from a given module specifier.\",\n newLine: \"Set the newline character for emitting files.\",\n noEmit: \"Disable emitting file from a compilation.\",\n noEmitHelpers: \"Disable generating custom helper functions like `__extends` in compiled output.\",\n noEmitOnError: \"Disable emitting files if any type checking errors are reported.\",\n noErrorTruncation: \"Disable truncating types in error messages.\",\n noFallthroughCasesInSwitch: \"Enable error reporting for fallthrough cases in switch statements.\",\n noImplicitAny: \"Enable error reporting for expressions and declarations with an implied `any` type..\",\n noImplicitOverride: \"Ensure overriding members in derived classes are marked with an override modifier.\",\n noImplicitReturns: \"Enable error reporting for codepaths that do not explicitly return in a function.\",\n noImplicitThis: \"Enable error reporting when `this` is given the type `any`.\",\n noImplicitUseStrict: \"Disable adding 'use strict' directives in emitted JavaScript files.\",\n noLib: \"Disable including any library files, including the default lib.d.ts.\",\n noPropertyAccessFromIndexSignature: \"Enforces using indexed accessors for keys declared using an indexed type\",\n noResolve: \"Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project.\",\n noStrictGenericChecks: \"Disable strict checking of generic signatures in function types.\",\n noUncheckedIndexedAccess: \"Add `undefined` to a type when accessed using an index.\",\n noUnusedLocals: \"Enable error reporting when a local variables aren't read.\",\n noUnusedParameters: \"Raise an error when a function parameter isn't read\",\n out: \"Deprecated setting. Use `outFile` instead.\",\n outDir: \"Specify an output folder for all emitted files.\",\n outFile: \"Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output.\",\n paths: \"Specify a set of entries that re-map imports to additional lookup locations.\",\n plugins: \"Specify a list of language service plugins to include.\",\n preserveConstEnums: \"Disable erasing `const enum` declarations in generated code.\",\n preserveSymlinks: \"Disable resolving symlinks to their realpath. This correlates to the same flag in node.\",\n preserveWatchOutput: \"Disable wiping the console in watch mode\",\n pretty: \"Enable color and formatting in output to make compiler errors easier to read\",\n reactNamespace: \"Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit.\",\n references: \"Specify an array of objects that specify paths for projects. Used in project references.\",\n removeComments: \"Disable emitting comments.\",\n resolveJsonModule: \"Enable importing .json files\",\n rootDir: \"Specify the root folder within your source files.\",\n rootDirs: \"Allow multiple folders to be treated as one when resolving modules.\",\n skipDefaultLibCheck: \"Skip type checking .d.ts files that are included with TypeScript.\",\n skipLibCheck: \"Skip type checking all .d.ts files.\",\n sourceMap: \"Create source map files for emitted JavaScript files.\",\n sourceRoot: \"Specify the root path for debuggers to find the reference source code.\",\n strict: \"Enable all strict type checking options.\",\n strictBindCallApply: \"Check that the arguments for `bind`, `call`, and `apply` methods match the original function.\",\n strictFunctionTypes: \"When assigning functions, check to ensure parameters and the return values are subtype-compatible.\",\n strictNullChecks: \"When type checking, take into account `null` and `undefined`.\",\n strictPropertyInitialization: \"Check for class properties that are declared but not set in the constructor.\",\n stripInternal: \"Disable emitting declarations that have `@internal` in their JSDoc comments.\",\n suppressExcessPropertyErrors: \"Disable reporting of excess property errors during the creation of object literals.\",\n suppressImplicitAnyIndexErrors: \"Suppress `noImplicitAny` errors when indexing objects that lack index signatures.\",\n synchronousWatchDirectory: \"Synchronously call callbacks and update the state of directory watchers on platforms that don`t support recursive watching natively.\",\n target: \"Set the JavaScript language version for emitted JavaScript and include compatible library declarations.\",\n traceResolution: \"Log paths used during the `moduleResolution` process.\",\n tsBuildInfoFile: \"Specify the folder for .tsbuildinfo incremental compilation files.\",\n typeAcquisition: \"Specify options for automatic acquisition of declaration files.\",\n typeRoots: \"Specify multiple folders that act like `./node_modules/@types`.\",\n types: \"Specify type package names to be included without being referenced in a source file.\",\n useDefineForClassFields: \"Emit ECMAScript-standard-compliant class fields.\",\n useUnknownInCatchVariables: \"Default catch clause variables as `unknown` instead of `any`.\",\n verbose: \"Enable verbose logging\",\n watchDirectory: \"Specify how directories are watched on systems that lack recursive file-watching functionality.\",\n watchFile: \"Specify how the TypeScript watch mode works.\"\n};\n/** Uses tmLanguage scopes to determine what the content of the token is */\n\nvar tokenIsJSONKey = function tokenIsJSONKey(token) {\n if (!token.explanation) return false;\n return token.explanation.find(function (e) {\n return e.scopes.find(function (s) {\n return s.scopeName.includes(\"support.type.property-name\");\n });\n });\n};\n/** Can you look up the token in the tsconfig reference? */\n\n\nvar isKeyInTSConfig = function isKeyInTSConfig(token) {\n if (token.content === '\"') return;\n var name = token.content.slice(1, token.content.length - 1);\n return name in tsconfig;\n};\n/**\r\n * Renders a TSConfig JSON object with additional LSP-ish information\r\n * @param lines the result of shiki highlighting\r\n * @param options shiki display options\r\n */\n\n\nfunction tsconfigJSONRenderer(lines, options, meta) {\n var html = \"\";\n html += preOpenerFromRenderingOptsWithExtras(options, meta, [\"tsconfig\", \"lsp\"]);\n\n if (meta.title) {\n html += \"
    \" + meta.title + \"
    \";\n }\n\n if (options.langId) {\n html += \"
    \" + options.langId + \"
    \";\n }\n\n html += \"
    \";\n lines.forEach(function (l) {\n if (l.length === 0) {\n html += \"
    \";\n } else {\n html += \"
    \";\n l.forEach(function (token) {\n // This means we're looking at a token which could be '\"module\"', '\"', '\"compilerOptions\"' etc\n if (tokenIsJSONKey(token) && isKeyInTSConfig(token)) {\n var key = token.content.slice(1, token.content.length - 1);\n var oneliner = tsconfig[key]; // prettier-ignore\n\n html += \"\\\"\\\"\";\n } else {\n html += \"\" + escapeHtml(token.content) + \"\";\n }\n });\n html += \"
    \";\n }\n });\n html = html.replace(/\\n*$/, \"\"); // Get rid of final new lines\n\n html += \"
    \";\n return html;\n}\n/**\r\n * This gets filled in by the promise below, then should\r\n * hopefully be more or less synchronous access by each parse\r\n * of the highlighter\r\n */\n\n\nvar storedHighlighter = null;\n/**\r\n * Creates a *cached singleton* Shiki highlighter, this is an async call because of the call to WASM to get\r\n * the regex parser set up.\r\n *\r\n * In other functions, passing a the result of this highlighter function is kind of optional but it's the author's\r\n * opinion that you should be in control of the highlighter, and not this library.\r\n *\r\n */\n\nvar createShikiHighlighter = function createShikiHighlighter(options) {\n if (storedHighlighter) return Promise.resolve(storedHighlighter);\n return getHighlighter(options).then(function (newHighlighter) {\n storedHighlighter = newHighlighter;\n return storedHighlighter;\n });\n};\n/**\r\n * Renders a code sample to HTML, automatically taking into account:\r\n *\r\n * - rendering overrides for twoslash and tsconfig\r\n * - whether the language exists in shiki\r\n *\r\n * @param code the source code to render\r\n * @param lang the language to use in highlighting\r\n * @param info additional metadata which lives after the code-fence lang (e.g. [\"twoslash\"])\r\n * @param shikiOptions user settings\r\n * @param highlighter optional, but you should use it, highlighter\r\n * @param twoslash optional, but required when info contains 'twoslash' as a string\r\n */\n\n\nvar renderCodeToHTML = function renderCodeToHTML(code, lang, meta, shikiOptions, highlighter, twoslash) {\n if (!highlighter && !storedHighlighter) {\n throw new Error(\"The highlighter object hasn't been initialised via `setupHighLighter` yet in shiki-twoslash\");\n } // Shiki does know the lang, so tokenize\n\n\n var renderHighlighter = highlighter || storedHighlighter;\n\n var renderOpts = _extends({\n fg: renderHighlighter.getForegroundColor(),\n bg: renderHighlighter.getBackgroundColor()\n }, shikiOptions);\n\n var tokens;\n\n try {\n // I'm a little unsure about why we need this, perhaps the jsx language\n // upstream in shiki is broken?\n var tmpLang = lang === \"jsx\" ? \"tsx\" : lang;\n tokens = renderHighlighter.codeToThemedTokens(code, tmpLang);\n } catch (error) {\n // Shiki doesn't know this lang, so render it as plain text, but\n // also add a note at the end as a HTML comment\n var note = \"\";\n return plainTextRenderer(code, renderOpts, meta) + note;\n } // Twoslash specific renderer\n\n\n if (lang && meta.twoslash && twoslash) {\n return twoslashRenderer(tokens, _extends({}, renderOpts, {\n langId: lang\n }), twoslash, meta);\n } // TSConfig renderer\n\n\n if (lang && lang.startsWith(\"json\") && meta.tsconfig) {\n return tsconfigJSONRenderer(tokens, renderOpts, meta);\n } // Otherwise just the normal shiki renderer\n\n\n return defaultShikiRenderer(tokens, _extends({}, renderOpts, {\n langId: lang\n }), meta);\n};\n/**\r\n * Runs Twoslash over the code passed in with a particular language as the default file.\r\n */\n\n\nvar runTwoSlash = function runTwoSlash(input, lang, settings) {\n if (settings === void 0) {\n settings = {};\n }\n\n var code = input; // Shiki doesn't handle a few filetype mappings, so do that ahead of time. Oddly enough, this also\n // gets re-done at remark-shiki level\n\n var replacer = {\n json5: \"json\",\n yml: \"yaml\"\n }; // @ts-ignore\n\n if (replacer[lang]) lang = replacer[lang];\n var hasReactImport = /^import\\s+React(?:.*)\\s+from\\s+('|\")react\\1/gm; // Add react import to code samples indicating they're needing react.\n\n if ([\"tsx\", \"jsx\"].includes(lang) && !settings.disableImplicitReactImport && !hasReactImport.test(code)) {\n var reactImport = \"import React from 'react'\\n\";\n var cutString = \"// ---cut---\\n\"; // ^ cutString taken directly from\n // https://github.com/microsoft/TypeScript-Website/blob/0c8d98a69d520365c1909d536fa1323f03a8438c/packages/ts-twoslasher/src/index.ts#L694\n\n if (code.includes(cutString)) {\n code = code.split(cutString).map(function (item, index) {\n return index == 0 ? reactImport.concat(item) : item;\n }).join(cutString);\n } else {\n code = [reactImport, cutString, code].join(\"\");\n }\n }\n\n settings.customTags = [\"annotate\"];\n var results = twoslasher(code, lang, settings);\n return results;\n};\n/** Set of renderers if you want to explicitly call one instead of using renderCodeToHTML */\n\n\nvar renderers = {\n plainTextRenderer: plainTextRenderer,\n defaultShikiRenderer: defaultShikiRenderer,\n twoslashRenderer: twoslashRenderer,\n tsconfigJSONRenderer: tsconfigJSONRenderer\n};\nexport { createShikiHighlighter, renderCodeToHTML, renderers, runTwoSlash };","import React, { useEffect } from \"react\"\nimport { Layout } from \"../../components/layout\"\nimport { withPrefix } from \"gatsby\"\nimport { twoslasher } from \"@typescript/twoslash\"\nimport { createDefaultMapFromCDN } from \"@typescript/vfs\"\nimport { renderers } from \"shiki-twoslash\"\nimport { debounce } from \"ts-debounce\"\n\nimport \"./dev.scss\"\nimport { Intl } from \"../../components/Intl\"\nimport { DevNav } from \"../../components/devNav\"\nimport { isTouchDevice } from \"../../lib/isTouchDevice\"\nimport { SuppressWhenTouch } from \"../../components/SuppressWhenTouch\"\nimport { getPlaygroundUrls } from \"../../lib/playgroundURLs\"\n\n/** Note: to run all the web infra in debug, run:\n localStorage.debug = '*'\n\n to remove logging: localStorage.debug = undefined\n */\n\ntype Props = {}\n\nconst Index: React.FC = props => {\n useEffect(() => {\n // No monaco for touch\n if (isTouchDevice()) {\n return\n }\n\n const getLoaderScript = document.createElement(\"script\")\n getLoaderScript.src = withPrefix(\"/js/vs.loader.js\")\n getLoaderScript.async = true\n getLoaderScript.onload = () => {\n // Allow prod/staging builds to set a custom commit prefix to bust caches\n const {sandboxRoot} = getPlaygroundUrls()\n \n // @ts-ignore\n const re: any = global.require\n\n re.config({\n paths: {\n vs: \"https://typescript.azureedge.net/cdn/4.0.5/monaco/min/vs\",\n sandbox: sandboxRoot,\n },\n ignoreDuplicateModules: [\"vs/editor/editor.main\"],\n })\n\n re(\n [\n \"vs/editor/editor.main\",\n \"vs/language/typescript/tsWorker\",\n \"sandbox/index\",\n ],\n async (\n main: typeof import(\"monaco-editor\"),\n ts: typeof import(\"typescript\"),\n sandboxEnv: typeof import(\"@typescript/sandbox\")\n ) => {\n // This triggers making \"ts\" available in the global scope\n re([\"vs/language/typescript/lib/typescriptServices\"], async _ts => {\n const ts = (global as any).ts\n const isOK = main && ts && sandboxEnv\n\n if (isOK) {\n document\n .getElementById(\"loader\")!\n .parentNode?.removeChild(document.getElementById(\"loader\")!)\n } else {\n console.error(\n \"Error: main\",\n !!main,\n \"ts\",\n !!ts,\n \"sandbox\",\n !!sandboxEnv\n )\n }\n\n document.getElementById(\"monaco-editor-embed\")!.style.display =\n \"block\"\n const sandbox = await sandboxEnv.createTypeScriptSandbox(\n {\n text: codeSamples[0].code,\n compilerOptions: {},\n domID: \"monaco-editor-embed\",\n supportTwoslashCompilerOptions: true,\n },\n main,\n ts\n )\n sandbox.editor.focus()\n\n // @ts-ignore\n window.sandbox = sandbox\n\n const mapWithLibFiles = await createDefaultMapFromCDN(\n { target: 3 },\n \"3.7.3\",\n true,\n ts,\n sandbox.lzstring as any\n )\n\n const runTwoslash = () => {\n const newContent = sandbox.getText()\n mapWithLibFiles.set(\"index.ts\", newContent)\n\n try {\n const newResults = twoslasher(newContent, \"tsx\", {\n tsModule: ts,\n lzstringModule: sandbox.lzstring as any,\n fsMap: mapWithLibFiles,\n })\n const codeAsFakeShikiTokens = newResults.code\n .split(\"\\n\")\n .map(line => [{ content: line }])\n const html = renderers.twoslashRenderer(\n codeAsFakeShikiTokens,\n {},\n // This is a hack because @typescript/twoslash gets released separately from remark-shiki-twoslash\n newResults as any,\n {}\n )\n\n const results = document.getElementById(\"twoslash-results\")!\n\n document.getElementById(\"twoslash-failure\")!.style.display =\n \"none\"\n document.getElementById(\"twoslash-results\")!.innerHTML = html\n\n // Remove all the kids\n while (results.firstChild) {\n results.removeChild(results.firstChild)\n }\n\n const p = document.createElement(\"p\")\n p.innerText = newResults.extension\n p.className = \"extension\"\n\n const code = document.createElement(\"div\")\n code.innerHTML = html\n\n const a = document.createElement(\"a\")\n a.innerText = \"Playground\"\n a.href = newResults.playgroundURL\n\n results.appendChild(p)\n results.appendChild(code)\n results.appendChild(a)\n } catch (error) {\n const err = error as Error\n const failure = document.getElementById(\"twoslash-failure\")\n\n if (!failure) return\n failure.style.display = \"block\"\n\n while (failure.firstChild) {\n failure.removeChild(failure.firstChild)\n }\n\n const content = document.createElement(\"div\")\n content.className = \"err-content\"\n\n const header = document.createElement(\"h3\")\n header.textContent = \"Exception Raised\"\n\n const text = document.createElement(\"p\")\n const opener = err.name.startsWith(\"Error\")\n ? err.name.split(\"Error\")[1]\n : err.name\n text.textContent = opener + err.message.split(\"## Code\")[0]\n\n content.appendChild(header)\n content.appendChild(text)\n failure.appendChild(content)\n\n console.log(error)\n }\n }\n\n const debouncedTwoslash = debounce(runTwoslash, 500)\n sandbox.editor.onDidChangeModelContent(debouncedTwoslash)\n runTwoslash()\n\n setTimeout(() => {\n document\n .querySelectorAll(\"#example-buttons .disabled\")\n .forEach(button => {\n button.classList.remove(\"disabled\")\n })\n\n document.querySelectorAll(\".html-code\").forEach(codeElement => {\n sandbox.monaco.editor\n .colorize(codeElement.textContent || \"\", \"html\", {\n tabSize: 2,\n })\n .then(newHTML => {\n codeElement.innerHTML = newHTML\n })\n })\n\n document.querySelectorAll(\".ts-code\").forEach(codeElement => {\n sandbox.monaco.editor\n .colorize(codeElement.textContent || \"\", \"typescript\", {\n tabSize: 2,\n })\n .then(newHTML => {\n codeElement.innerHTML = newHTML\n })\n })\n }, 300)\n })\n }\n )\n }\n\n document.body.appendChild(getLoaderScript)\n }, [])\n\n return (\n <>\n \n
    \n \n
    \n
    \n
    \n

    TypeScript Twoslash

    \n

    \n A markup format for TypeScript code, ideal for creating\n self-contained code samples which let the TypeScript compiler\n do the extra leg-work.\n

    \n

    If you know TypeScript, you basically know twoslash.

    \n

    \n Twoslash adds the ability to declare tsconfig options inline,\n split a sample into multiple files and a few other useful\n commands. You can see the full API{\" \"}\n \n inside the README\n \n

    \n
    \n
    \n

    The Twoslash markup language helps with:

    \n
      \n
    • \n Enforcing accurate errors from a TypeScript code sample, and\n leaving the messaging to the compiler\n
    • \n
    • Splitting a code sample to hide distracting code
    • \n
    • \n Declaratively highlighting symbols in your code sample\n
    • \n
    • \n Replacing code with the results of transpilation to\n different files, or ancillary files like .d.ts or .map files\n
    • \n
    • Handle multi-file imports in a single code sample
    • \n
    • Creating a playground link for the code
    • \n
    \n
    \n
    \n
    \n\n \n
    \n \n

    Markup

    \n

    {codeSamples[0].blurb}

    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n Downloading Sandbox...\n

    \n
    \n \n
    \n {codeSamples.map(code => {\n const setExample = e => {\n if (e.target.classList.contains(\"disabled\")) return\n\n document.getElementById(\"exampleBlurb\")!.innerText =\n code.blurb\n // @ts-ignore\n window.sandbox.setText(code.code)\n }\n return (\n
    \n {code.name}\n
    \n )\n })}\n
    \n
    \n
    \n\n \n \n

    Results

    \n\n
    \n
    \n \n
    \n
    \n\n
    \n

    Usage

    \n

    \n Twoslash's usage guide is available on the npm README at{\" \"}\n \n @typescript/twoslash\n \n .\n

    \n
    \n
    \n \n \n )\n}\n\nexport default (props: Props) => (\n \n \n \n)\n\n// prettier-ignore\nconst codeSamples = [\n {\n name: \"Highlights runtime types\",\n blurb: \"See how TS Twoslash will grab the highlight information for identifiers in your code\",\n code: `// @errors: 2532\ndeclare const quantumString: string | undefined;\n\n// Right now this string is in two states, hover below to see\nquantumString\n \nif (quantumString) {\n // However, in here we now have a different type\n // you can verify by hovering below\n quantumString.length;\n}\n `\n },\n {\n name: \"Show Errors\",\n blurb: \"Twoslash will help highlight compiler error messages\",\n code: `// @errors: 7006\nfunction fn(s) {\n console.log(s.subtr(3))\n}\n\nfn(42)`\n }, {\n name: \"Set Compiler Flags\",\n blurb: \"You can define compiler flags inline in a code sample which are removed from the output\",\n code: `// @noImplicitAny: false\n// This will not throw because of the noImplicitAny\nfunction fn(s) {\n console.log(s.subtr(3))\n}\n\nfn(42);`\n }, {\n name: \"Trims code\",\n blurb: \"You can write code to help it compile in the sample which is hidden in the output\",\n code: `interface IdLabel {id: number, /* some fields */ }\ninterface NameLabel {name: string, /* other fields */ }\ntype NameOrId = T extends number ? IdLabel : NameLabel;\n// This comment should not be included\n\n// ---cut---\nfunction createLabel(idOrName: T): NameOrId {\n throw \"unimplemented\"\n}\n\nlet a = createLabel(\"typescript\");`\n },\n {\n name: \"Show the JS\",\n blurb: \"Use @showEmit to show the JS files\",\n code: `// @showEmit\nexport function getStringLength(value: string) {\n return value\n}\n`},\n {\n name: \"Show the DTS\",\n blurb: \"Use @showEmittedFile to set the d.ts file to be the result code\",\n code: `// @declaration: true\n// @showEmit\n// @showEmittedFile: index.d.ts\n/**\n * Gets the length of a string\n * @param value a string\n */\nexport function getStringLength(value: string) {\n return value\n}\n`},\n {\n name: \"Highlights\",\n blurb: \"Highlight some code in the editor\",\n code: `function greet(person: string, date: Date) {\n console.log(\\`Hello \\${person}, today is \\${date.toDateString()}!\\`);\n}\n\ngreet(\"Maddison\", new Date());\n// ^^^^^^^^^^\n`\n }\n]\n","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableRest = require(\"./nonIterableRest.js\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","\"use strict\";\n\nvar _classCallCheck = require(\"/var/www/html/typescriptweb/TypeScript-website/node_modules/gatsby/node_modules/@babel/runtime/helpers/classCallCheck\");\n\nvar _createClass = require(\"/var/www/html/typescriptweb/TypeScript-website/node_modules/gatsby/node_modules/@babel/runtime/helpers/createClass\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar OnigScanner_1 = require(\"./OnigScanner\");\n\nvar OnigRegExp = /*#__PURE__*/function () {\n /**\n * Create a new regex with the given pattern\n * @param source A string pattern\n */\n function OnigRegExp(source) {\n _classCallCheck(this, OnigRegExp);\n\n this.source = source;\n\n try {\n this.scanner = new OnigScanner_1.default([this.source]);\n } catch (error) {// doesn't make much sense, but this to pass atom/node-oniguruam tests\n }\n }\n /**\n * Synchronously search the string for a match starting at the given position\n * @param string The string to search\n * @param startPosition The optional position to start the search at, defaults to `0`\n */\n\n\n _createClass(OnigRegExp, [{\n key: \"searchSync\",\n value: function searchSync(string, startPosition) {\n var match;\n\n if (startPosition == null) {\n startPosition = 0;\n }\n\n match = this.scanner.findNextMatchSync(string, startPosition);\n return this.captureIndicesForMatch(string, match);\n }\n /**\n * Search the string for a match starting at the given position\n * @param string The string to search\n * @param startPosition The optional position to start the search at, defaults to `0`\n * @param callback The `(error, match)` function to call when done, match will be null if no matches were found. match will be an array of objects for each matched group on a successful search\n */\n\n }, {\n key: \"search\",\n value: function search(string, startPosition, callback) {\n if (startPosition == null) {\n startPosition = 0;\n }\n\n if (typeof startPosition === 'function') {\n callback = startPosition;\n startPosition = 0;\n }\n\n try {\n var ret = this.searchSync(string, startPosition);\n callback(null, ret);\n } catch (error) {\n callback(error);\n }\n }\n /**\n * Synchronously test if this regular expression matches the given string\n * @param string The string to test against\n */\n\n }, {\n key: \"testSync\",\n value: function testSync(string) {\n if (typeof this.source === 'boolean' || typeof string === 'boolean') {\n return this.source === string;\n }\n\n return this.searchSync(string) != null;\n }\n /**\n * Test if this regular expression matches the given string\n * @param string The string to test against\n * @param callback The (error, matches) function to call when done, matches will be true if at least one match is found, false otherwise\n */\n\n }, {\n key: \"test\",\n value: function test(string, callback) {\n if (typeof callback !== 'function') {\n callback = function callback() {};\n }\n\n try {\n callback(null, this.testSync(string));\n } catch (error) {\n callback(error);\n }\n }\n }, {\n key: \"captureIndicesForMatch\",\n value: function captureIndicesForMatch(string, match) {\n if (match != null) {\n var captureIndices = match.captureIndices;\n var capture;\n string = this.scanner.convertToString(string);\n\n for (var i = 0; i < captureIndices.length; i++) {\n capture = captureIndices[i];\n capture.match = string.slice(capture.start, capture.end);\n }\n\n return captureIndices;\n } else {\n return null;\n }\n }\n }]);\n\n return OnigRegExp;\n}();\n\nexports.default = OnigRegExp;","\"use strict\";\n\nvar _slicedToArray = require(\"/var/www/html/typescriptweb/TypeScript-website/node_modules/gatsby/node_modules/@babel/runtime/helpers/slicedToArray\");\n\nvar _classCallCheck = require(\"/var/www/html/typescriptweb/TypeScript-website/node_modules/gatsby/node_modules/@babel/runtime/helpers/classCallCheck\");\n\nvar _createClass = require(\"/var/www/html/typescriptweb/TypeScript-website/node_modules/gatsby/node_modules/@babel/runtime/helpers/createClass\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar LRUCache = require(\"lru-cache\");\n\nvar onigasmH_1 = require(\"./onigasmH\");\n\nvar OnigString_1 = require(\"./OnigString\");\n/**\n * Allocates space on the heap and copies the string bytes on to it\n * @param str\n * @returns pointer to the first byte's address on heap\n */\n\n\nfunction mallocAndWriteString(str) {\n var ptr = onigasmH_1.onigasmH._malloc(str.utf8Bytes.length);\n\n onigasmH_1.onigasmH.HEAPU8.set(str.utf8Bytes, ptr);\n return ptr;\n}\n\nfunction convertUTF8BytesFromPtrToString(ptr) {\n var chars = [];\n var i = 0;\n\n while (onigasmH_1.onigasmH.HEAPU8[ptr] !== 0x00) {\n chars[i++] = onigasmH_1.onigasmH.HEAPU8[ptr++];\n }\n\n return chars.join();\n}\n\nvar cache = new LRUCache({\n dispose: function dispose(scanner, info) {\n var regexTPtrsPtr = onigasmH_1.onigasmH._malloc(info.regexTPtrs.length);\n\n onigasmH_1.onigasmH.HEAPU8.set(info.regexTPtrs, regexTPtrsPtr);\n\n var status = onigasmH_1.onigasmH._disposeCompiledPatterns(regexTPtrsPtr, scanner.patterns.length);\n\n if (status !== 0) {\n var errMessage = convertUTF8BytesFromPtrToString(onigasmH_1.onigasmH._getLastError());\n throw new Error(errMessage);\n }\n\n onigasmH_1.onigasmH._free(regexTPtrsPtr);\n },\n max: 1000\n});\n\nvar OnigScanner = /*#__PURE__*/function () {\n /**\n * Create a new scanner with the given patterns\n * @param patterns An array of string patterns\n */\n function OnigScanner(patterns) {\n _classCallCheck(this, OnigScanner);\n\n if (onigasmH_1.onigasmH === null) {\n throw new Error(\"Onigasm has not been initialized, call loadWASM from 'onigasm' exports before using any other API\");\n }\n\n for (var i = 0; i < patterns.length; i++) {\n var pattern = patterns[i];\n\n if (typeof pattern !== 'string') {\n throw new TypeError(\"First parameter to OnigScanner constructor must be array of (pattern) strings\");\n }\n }\n\n this.sources = patterns.slice();\n }\n\n _createClass(OnigScanner, [{\n key: \"patterns\",\n get: function get() {\n return this.sources.slice();\n }\n /**\n * Find the next match from a given position\n * @param string The string to search\n * @param startPosition The optional position to start at, defaults to 0\n * @param callback The (error, match) function to call when done, match will null when there is no match\n */\n\n }, {\n key: \"findNextMatch\",\n value: function findNextMatch(string, startPosition, callback) {\n if (startPosition == null) {\n startPosition = 0;\n }\n\n if (typeof startPosition === 'function') {\n callback = startPosition;\n startPosition = 0;\n }\n\n try {\n var match = this.findNextMatchSync(string, startPosition);\n callback(null, match);\n } catch (error) {\n callback(error);\n }\n }\n /**\n * Find the next match from a given position\n * @param string The string to search\n * @param startPosition The optional position to start at, defaults to 0\n */\n\n }, {\n key: \"findNextMatchSync\",\n value: function findNextMatchSync(string, startPosition) {\n if (startPosition == null) {\n startPosition = 0;\n }\n\n startPosition = this.convertToNumber(startPosition);\n var onigNativeInfo = cache.get(this);\n var status = 0;\n\n if (!onigNativeInfo) {\n var regexTAddrRecieverPtr = onigasmH_1.onigasmH._malloc(4);\n\n var regexTPtrs = [];\n\n for (var i = 0; i < this.sources.length; i++) {\n var pattern = this.sources[i];\n var patternStrPtr = mallocAndWriteString(new OnigString_1.default(pattern));\n status = onigasmH_1.onigasmH._compilePattern(patternStrPtr, regexTAddrRecieverPtr);\n\n if (status !== 0) {\n var errMessage = convertUTF8BytesFromPtrToString(onigasmH_1.onigasmH._getLastError());\n throw new Error(errMessage);\n }\n\n var regexTAddress = onigasmH_1.onigasmH.HEAP32[regexTAddrRecieverPtr / 4];\n regexTPtrs.push(regexTAddress);\n\n onigasmH_1.onigasmH._free(patternStrPtr);\n }\n\n onigNativeInfo = {\n regexTPtrs: new Uint8Array(Uint32Array.from(regexTPtrs).buffer)\n };\n\n onigasmH_1.onigasmH._free(regexTAddrRecieverPtr);\n\n cache.set(this, onigNativeInfo);\n }\n\n var onigString = string instanceof OnigString_1.default ? string : new OnigString_1.default(this.convertToString(string));\n var strPtr = mallocAndWriteString(onigString);\n\n var resultInfoReceiverPtr = onigasmH_1.onigasmH._malloc(8);\n\n var regexTPtrsPtr = onigasmH_1.onigasmH._malloc(onigNativeInfo.regexTPtrs.length);\n\n onigasmH_1.onigasmH.HEAPU8.set(onigNativeInfo.regexTPtrs, regexTPtrsPtr);\n status = onigasmH_1.onigasmH._findBestMatch( // regex_t **patterns\n regexTPtrsPtr, // int patternCount\n this.sources.length, // UChar *utf8String\n strPtr, // int strLen\n onigString.utf8Bytes.length - 1, // int startOffset\n onigString.convertUtf16OffsetToUtf8(startPosition), // int *resultInfo\n resultInfoReceiverPtr);\n\n if (status !== 0) {\n var _errMessage = convertUTF8BytesFromPtrToString(onigasmH_1.onigasmH._getLastError());\n\n throw new Error(_errMessage);\n }\n\n var _Uint32Array = new Uint32Array(onigasmH_1.onigasmH.HEAPU32.buffer, resultInfoReceiverPtr, 3),\n _Uint32Array2 = _slicedToArray(_Uint32Array, 3),\n // The index of pattern which matched the string at least offset from 0 (start)\n bestPatternIdx = _Uint32Array2[0],\n // Begin address of capture info encoded as pairs\n // like [start, end, start, end, start, end, ...]\n // - first start-end pair is entire match (index 0 and 1)\n // - subsequent pairs are capture groups (2, 3 = first capture group, 4, 5 = second capture group and so on)\n encodedResultBeginAddress = _Uint32Array2[1],\n // Length of the [start, end, ...] sequence so we know how much memory to read (will always be 0 or multiple of 2)\n encodedResultLength = _Uint32Array2[2];\n\n onigasmH_1.onigasmH._free(strPtr);\n\n onigasmH_1.onigasmH._free(resultInfoReceiverPtr);\n\n onigasmH_1.onigasmH._free(regexTPtrsPtr);\n\n if (encodedResultLength > 0) {\n var encodedResult = new Uint32Array(onigasmH_1.onigasmH.HEAPU32.buffer, encodedResultBeginAddress, encodedResultLength);\n var captureIndices = [];\n var _i = 0;\n var captureIdx = 0;\n\n while (_i < encodedResultLength) {\n var index = captureIdx++;\n var start = encodedResult[_i++];\n var end = encodedResult[_i++];\n\n if (onigString.hasMultiByteCharacters) {\n start = onigString.convertUtf8OffsetToUtf16(start);\n end = onigString.convertUtf8OffsetToUtf16(end);\n }\n\n captureIndices.push({\n end: end,\n index: index,\n length: end - start,\n start: start\n });\n }\n\n onigasmH_1.onigasmH._free(encodedResultBeginAddress);\n\n return {\n captureIndices: captureIndices,\n index: bestPatternIdx,\n scanner: this\n };\n }\n\n return null;\n }\n }, {\n key: \"convertToString\",\n value: function convertToString(value) {\n if (value === undefined) {\n return 'undefined';\n }\n\n if (value === null) {\n return 'null';\n }\n\n if (value instanceof OnigString_1.default) {\n return value.content;\n }\n\n return value.toString();\n }\n }, {\n key: \"convertToNumber\",\n value: function convertToNumber(value) {\n value = parseInt(value, 10);\n\n if (!isFinite(value)) {\n value = 0;\n }\n\n value = Math.max(value, 0);\n return value;\n }\n }]);\n\n return OnigScanner;\n}();\n\nexports.OnigScanner = OnigScanner;\nexports.default = OnigScanner;","\"use strict\";\n\nvar _classCallCheck = require(\"/var/www/html/typescriptweb/TypeScript-website/node_modules/gatsby/node_modules/@babel/runtime/helpers/classCallCheck\");\n\nvar _createClass = require(\"/var/www/html/typescriptweb/TypeScript-website/node_modules/gatsby/node_modules/@babel/runtime/helpers/createClass\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar OnigString = /*#__PURE__*/function () {\n function OnigString(content) {\n var _this = this;\n\n _classCallCheck(this, OnigString);\n\n this.substring = function (start, end) {\n return _this.source.substring(start, end);\n };\n\n this.toString = function (start, end) {\n return _this.source;\n };\n\n if (typeof content !== 'string') {\n throw new TypeError('Argument must be a string');\n }\n\n this.source = content;\n this._utf8Bytes = null;\n this._utf8Indexes = null;\n }\n\n _createClass(OnigString, [{\n key: \"utf8Bytes\",\n get: function get() {\n if (!this._utf8Bytes) {\n this.encode();\n }\n\n return this._utf8Bytes;\n }\n /**\n * Returns `null` if all utf8 offsets match utf-16 offset (content has no multi byte characters)\n */\n\n }, {\n key: \"utf8Indexes\",\n get: function get() {\n if (!this._utf8Bytes) {\n this.encode();\n }\n\n return this._utf8Indexes;\n }\n }, {\n key: \"content\",\n get: function get() {\n return this.source;\n }\n }, {\n key: \"length\",\n get: function get() {\n return this.source.length;\n }\n }, {\n key: \"hasMultiByteCharacters\",\n get: function get() {\n return this.utf8Indexes !== null;\n }\n }, {\n key: \"convertUtf8OffsetToUtf16\",\n value: function convertUtf8OffsetToUtf16(utf8Offset) {\n if (utf8Offset < 0) {\n return 0;\n }\n\n var utf8Array = this._utf8Bytes;\n\n if (utf8Offset >= utf8Array.length - 1) {\n return this.source.length;\n }\n\n var utf8OffsetMap = this.utf8Indexes;\n\n if (utf8OffsetMap && utf8Offset >= this._mappingTableStartOffset) {\n return findFirstInSorted(utf8OffsetMap, utf8Offset - this._mappingTableStartOffset) + this._mappingTableStartOffset;\n }\n\n return utf8Offset;\n }\n }, {\n key: \"convertUtf16OffsetToUtf8\",\n value: function convertUtf16OffsetToUtf8(utf16Offset) {\n if (utf16Offset < 0) {\n return 0;\n }\n\n var utf8Array = this._utf8Bytes;\n\n if (utf16Offset >= this.source.length) {\n return utf8Array.length - 1;\n }\n\n var utf8OffsetMap = this.utf8Indexes;\n\n if (utf8OffsetMap && utf16Offset >= this._mappingTableStartOffset) {\n return utf8OffsetMap[utf16Offset - this._mappingTableStartOffset] + this._mappingTableStartOffset;\n }\n\n return utf16Offset;\n }\n }, {\n key: \"encode\",\n value: function encode() {\n var str = this.source;\n var n = str.length;\n var utf16OffsetToUtf8;\n var utf8Offset = 0;\n var mappingTableStartOffset = 0;\n\n function createOffsetTable(startOffset) {\n var maxUtf8Len = (n - startOffset) * 3;\n\n if (maxUtf8Len <= 0xff) {\n utf16OffsetToUtf8 = new Uint8Array(n - startOffset);\n } else if (maxUtf8Len <= 0xffff) {\n utf16OffsetToUtf8 = new Uint16Array(n - startOffset);\n } else {\n utf16OffsetToUtf8 = new Uint32Array(n - startOffset);\n }\n\n mappingTableStartOffset = startOffset;\n utf16OffsetToUtf8[utf8Offset++] = 0;\n }\n\n var u8view = new Uint8Array(n * 3 +\n /* alloc max now, trim later*/\n 1\n /** null termination character */\n );\n var ptrHead = 0;\n var i = 0; // for some reason, v8 is faster with str.length than using a variable (might be illusion)\n\n while (i < str.length) {\n var codepoint = void 0;\n var c = str.charCodeAt(i);\n\n if (utf16OffsetToUtf8) {\n utf16OffsetToUtf8[utf8Offset++] = ptrHead - mappingTableStartOffset;\n }\n\n if (c < 0xD800 || c > 0xDFFF) {\n codepoint = c;\n } else if (c >= 0xDC00) {\n codepoint = 0xFFFD;\n } else {\n if (i === n - 1) {\n codepoint = 0xFFFD;\n } else {\n var d = str.charCodeAt(i + 1);\n\n if (0xDC00 <= d && d <= 0xDFFF) {\n if (!utf16OffsetToUtf8) {\n createOffsetTable(i);\n }\n\n var a = c & 0x3FF;\n var b = d & 0x3FF;\n codepoint = 0x10000 + (a << 10) + b;\n i += 1;\n utf16OffsetToUtf8[utf8Offset++] = ptrHead - mappingTableStartOffset;\n } else {\n codepoint = 0xFFFD;\n }\n }\n }\n\n var bytesRequiredToEncode = void 0;\n var offset = void 0;\n\n if (codepoint <= 0x7F) {\n bytesRequiredToEncode = 1;\n offset = 0;\n } else if (codepoint <= 0x07FF) {\n bytesRequiredToEncode = 2;\n offset = 0xC0;\n } else if (codepoint <= 0xFFFF) {\n bytesRequiredToEncode = 3;\n offset = 0xE0;\n } else {\n bytesRequiredToEncode = 4;\n offset = 0xF0;\n }\n\n if (bytesRequiredToEncode === 1) {\n u8view[ptrHead++] = codepoint;\n } else {\n if (!utf16OffsetToUtf8) {\n createOffsetTable(ptrHead);\n }\n\n u8view[ptrHead++] = (codepoint >> 6 * --bytesRequiredToEncode) + offset;\n\n while (bytesRequiredToEncode > 0) {\n var temp = codepoint >> 6 * (bytesRequiredToEncode - 1);\n u8view[ptrHead++] = 0x80 | temp & 0x3F;\n bytesRequiredToEncode -= 1;\n }\n }\n\n i += 1;\n }\n\n var utf8 = u8view.slice(0, ptrHead + 1);\n utf8[ptrHead] = 0x00;\n this._utf8Bytes = utf8;\n\n if (utf16OffsetToUtf8) {\n // set if UTF-16 surrogate chars or multi-byte characters found\n this._utf8Indexes = utf16OffsetToUtf8;\n this._mappingTableStartOffset = mappingTableStartOffset;\n }\n }\n }]);\n\n return OnigString;\n}();\n\nfunction findFirstInSorted(array, i) {\n var low = 0;\n var high = array.length;\n\n if (high === 0) {\n return 0; // no children\n }\n\n while (low < high) {\n var mid = Math.floor((low + high) / 2);\n\n if (array[mid] >= i) {\n high = mid;\n } else {\n low = mid + 1;\n }\n } // low is on the index of the first value >= i or array.length. Decrement low until we find array[low] <= i\n\n\n while (low > 0 && (low >= array.length || array[low] > i)) {\n low--;\n } // check whether we are on the second index of a utf-16 surrogate char. If so, go to the first index.\n\n\n if (low > 0 && array[low] === array[low - 1]) {\n low--;\n }\n\n return low;\n}\n\nexports.default = OnigString;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar onigasmH_1 = require(\"./onigasmH\");\n\nexports.loadWASM = onigasmH_1.loadWASM;\n\nvar OnigRegExp_1 = require(\"./OnigRegExp\");\n\nexports.OnigRegExp = OnigRegExp_1.default;\n\nvar OnigScanner_1 = require(\"./OnigScanner\");\n\nexports.OnigScanner = OnigScanner_1.default;\n\nvar OnigString_1 = require(\"./OnigString\");\n\nexports.OnigString = OnigString_1.default;","var Onigasm = function () {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n\n return function (Onigasm) {\n Onigasm = Onigasm || {};\n var Module = typeof Onigasm !== \"undefined\" ? Onigasm : {};\n var moduleOverrides = {};\n var key;\n\n for (key in Module) {\n if (Module.hasOwnProperty(key)) {\n moduleOverrides[key] = Module[key];\n }\n }\n\n var arguments_ = [];\n var thisProgram = \"./this.program\";\n\n var quit_ = function quit_(status, toThrow) {\n throw toThrow;\n };\n\n var ENVIRONMENT_IS_WEB = false;\n var ENVIRONMENT_IS_WORKER = false;\n var ENVIRONMENT_IS_NODE = false;\n var ENVIRONMENT_IS_SHELL = true;\n var scriptDirectory = \"\";\n\n function locateFile(path) {\n if (Module[\"locateFile\"]) {\n return Module[\"locateFile\"](path, scriptDirectory);\n }\n\n return scriptDirectory + path;\n }\n\n var read_, readBinary;\n\n if (ENVIRONMENT_IS_SHELL) {\n if (typeof read != \"undefined\") {\n read_ = function shell_read(f) {\n return read(f);\n };\n }\n\n readBinary = function readBinary(f) {\n var data;\n\n if (typeof readbuffer === \"function\") {\n return new Uint8Array(readbuffer(f));\n }\n\n data = read(f, \"binary\");\n assert(typeof data === \"object\");\n return data;\n };\n\n if (typeof scriptArgs != \"undefined\") {\n arguments_ = scriptArgs;\n } else if (typeof arguments != \"undefined\") {\n arguments_ = arguments;\n }\n\n if (typeof quit === \"function\") {\n quit_ = function quit_(status) {\n quit(status);\n };\n }\n\n if (typeof print !== \"undefined\") {\n if (typeof console === \"undefined\") console = {};\n console.log = print;\n console.warn = console.error = typeof printErr !== \"undefined\" ? printErr : print;\n }\n } else {}\n\n var out = Module[\"print\"] || console.log.bind(console);\n var err = Module[\"printErr\"] || console.warn.bind(console);\n\n for (key in moduleOverrides) {\n if (moduleOverrides.hasOwnProperty(key)) {\n Module[key] = moduleOverrides[key];\n }\n }\n\n moduleOverrides = null;\n if (Module[\"arguments\"]) arguments_ = Module[\"arguments\"];\n if (Module[\"thisProgram\"]) thisProgram = Module[\"thisProgram\"];\n if (Module[\"quit\"]) quit_ = Module[\"quit\"];\n var STACK_ALIGN = 16;\n\n function dynamicAlloc(size) {\n var ret = HEAP32[DYNAMICTOP_PTR >> 2];\n var end = ret + size + 15 & -16;\n\n if (end > _emscripten_get_heap_size()) {\n abort();\n }\n\n HEAP32[DYNAMICTOP_PTR >> 2] = end;\n return ret;\n }\n\n function getNativeTypeSize(type) {\n switch (type) {\n case \"i1\":\n case \"i8\":\n return 1;\n\n case \"i16\":\n return 2;\n\n case \"i32\":\n return 4;\n\n case \"i64\":\n return 8;\n\n case \"float\":\n return 4;\n\n case \"double\":\n return 8;\n\n default:\n {\n if (type[type.length - 1] === \"*\") {\n return 4;\n } else if (type[0] === \"i\") {\n var bits = parseInt(type.substr(1));\n assert(bits % 8 === 0, \"getNativeTypeSize invalid bits \" + bits + \", type \" + type);\n return bits / 8;\n } else {\n return 0;\n }\n }\n }\n }\n\n function warnOnce(text) {\n if (!warnOnce.shown) warnOnce.shown = {};\n\n if (!warnOnce.shown[text]) {\n warnOnce.shown[text] = 1;\n err(text);\n }\n }\n\n function convertJsFunctionToWasm(func, sig) {\n var typeSection = [1, 0, 1, 96];\n var sigRet = sig.slice(0, 1);\n var sigParam = sig.slice(1);\n var typeCodes = {\n \"i\": 127,\n \"j\": 126,\n \"f\": 125,\n \"d\": 124\n };\n typeSection.push(sigParam.length);\n\n for (var i = 0; i < sigParam.length; ++i) {\n typeSection.push(typeCodes[sigParam[i]]);\n }\n\n if (sigRet == \"v\") {\n typeSection.push(0);\n } else {\n typeSection = typeSection.concat([1, typeCodes[sigRet]]);\n }\n\n typeSection[1] = typeSection.length - 2;\n var bytes = new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0].concat(typeSection, [2, 7, 1, 1, 101, 1, 102, 0, 0, 7, 5, 1, 1, 102, 0, 0]));\n var module = new WebAssembly.Module(bytes);\n var instance = new WebAssembly.Instance(module, {\n e: {\n f: func\n }\n });\n var wrappedFunc = instance.exports.f;\n return wrappedFunc;\n }\n\n function addFunctionWasm(func, sig) {\n var table = wasmTable;\n var ret = table.length;\n\n try {\n table.grow(1);\n } catch (err) {\n if (!err instanceof RangeError) {\n throw err;\n }\n\n throw \"Unable to grow wasm table. Use a higher value for RESERVED_FUNCTION_POINTERS or set ALLOW_TABLE_GROWTH.\";\n }\n\n try {\n table.set(ret, func);\n } catch (err) {\n if (!err instanceof TypeError) {\n throw err;\n }\n\n assert(typeof sig !== \"undefined\", \"Missing signature argument to addFunction\");\n var wrapped = convertJsFunctionToWasm(func, sig);\n table.set(ret, wrapped);\n }\n\n return ret;\n }\n\n function removeFunctionWasm(index) {}\n\n var funcWrappers = {};\n\n function dynCall(sig, ptr, args) {\n if (args && args.length) {\n return Module[\"dynCall_\" + sig].apply(null, [ptr].concat(args));\n } else {\n return Module[\"dynCall_\" + sig].call(null, ptr);\n }\n }\n\n var tempRet0 = 0;\n\n var setTempRet0 = function setTempRet0(value) {\n tempRet0 = value;\n };\n\n var wasmBinary;\n if (Module[\"wasmBinary\"]) wasmBinary = Module[\"wasmBinary\"];\n var noExitRuntime;\n if (Module[\"noExitRuntime\"]) noExitRuntime = Module[\"noExitRuntime\"];\n\n if (typeof WebAssembly !== \"object\") {\n err(\"no native wasm support detected\");\n }\n\n function setValue(ptr, value, type, noSafe) {\n type = type || \"i8\";\n if (type.charAt(type.length - 1) === \"*\") type = \"i32\";\n\n switch (type) {\n case \"i1\":\n HEAP8[ptr >> 0] = value;\n break;\n\n case \"i8\":\n HEAP8[ptr >> 0] = value;\n break;\n\n case \"i16\":\n HEAP16[ptr >> 1] = value;\n break;\n\n case \"i32\":\n HEAP32[ptr >> 2] = value;\n break;\n\n case \"i64\":\n tempI64 = [value >>> 0, (tempDouble = value, +Math_abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math_min(+Math_floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[ptr >> 2] = tempI64[0], HEAP32[ptr + 4 >> 2] = tempI64[1];\n break;\n\n case \"float\":\n HEAPF32[ptr >> 2] = value;\n break;\n\n case \"double\":\n HEAPF64[ptr >> 3] = value;\n break;\n\n default:\n abort(\"invalid type for setValue: \" + type);\n }\n }\n\n var wasmMemory;\n var wasmTable = new WebAssembly.Table({\n \"initial\": 244,\n \"maximum\": 244 + 0,\n \"element\": \"anyfunc\"\n });\n var ABORT = false;\n var EXITSTATUS = 0;\n\n function assert(condition, text) {\n if (!condition) {\n abort(\"Assertion failed: \" + text);\n }\n }\n\n function getCFunc(ident) {\n var func = Module[\"_\" + ident];\n assert(func, \"Cannot call unknown function \" + ident + \", make sure it is exported\");\n return func;\n }\n\n function ccall(ident, returnType, argTypes, args, opts) {\n var toC = {\n \"string\": function string(str) {\n var ret = 0;\n\n if (str !== null && str !== undefined && str !== 0) {\n var len = (str.length << 2) + 1;\n ret = stackAlloc(len);\n stringToUTF8(str, ret, len);\n }\n\n return ret;\n },\n \"array\": function array(arr) {\n var ret = stackAlloc(arr.length);\n writeArrayToMemory(arr, ret);\n return ret;\n }\n };\n\n function convertReturnValue(ret) {\n if (returnType === \"string\") return UTF8ToString(ret);\n if (returnType === \"boolean\") return Boolean(ret);\n return ret;\n }\n\n var func = getCFunc(ident);\n var cArgs = [];\n var stack = 0;\n\n if (args) {\n for (var i = 0; i < args.length; i++) {\n var converter = toC[argTypes[i]];\n\n if (converter) {\n if (stack === 0) stack = stackSave();\n cArgs[i] = converter(args[i]);\n } else {\n cArgs[i] = args[i];\n }\n }\n }\n\n var ret = func.apply(null, cArgs);\n ret = convertReturnValue(ret);\n if (stack !== 0) stackRestore(stack);\n return ret;\n }\n\n var ALLOC_NONE = 3;\n var UTF8Decoder = typeof TextDecoder !== \"undefined\" ? new TextDecoder(\"utf8\") : undefined;\n\n function UTF8ArrayToString(u8Array, idx, maxBytesToRead) {\n var endIdx = idx + maxBytesToRead;\n var endPtr = idx;\n\n while (u8Array[endPtr] && !(endPtr >= endIdx)) {\n ++endPtr;\n }\n\n if (endPtr - idx > 16 && u8Array.subarray && UTF8Decoder) {\n return UTF8Decoder.decode(u8Array.subarray(idx, endPtr));\n } else {\n var str = \"\";\n\n while (idx < endPtr) {\n var u0 = u8Array[idx++];\n\n if (!(u0 & 128)) {\n str += String.fromCharCode(u0);\n continue;\n }\n\n var u1 = u8Array[idx++] & 63;\n\n if ((u0 & 224) == 192) {\n str += String.fromCharCode((u0 & 31) << 6 | u1);\n continue;\n }\n\n var u2 = u8Array[idx++] & 63;\n\n if ((u0 & 240) == 224) {\n u0 = (u0 & 15) << 12 | u1 << 6 | u2;\n } else {\n u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | u8Array[idx++] & 63;\n }\n\n if (u0 < 65536) {\n str += String.fromCharCode(u0);\n } else {\n var ch = u0 - 65536;\n str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);\n }\n }\n }\n\n return str;\n }\n\n function UTF8ToString(ptr, maxBytesToRead) {\n return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : \"\";\n }\n\n function stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) {\n if (!(maxBytesToWrite > 0)) return 0;\n var startIdx = outIdx;\n var endIdx = outIdx + maxBytesToWrite - 1;\n\n for (var i = 0; i < str.length; ++i) {\n var u = str.charCodeAt(i);\n\n if (u >= 55296 && u <= 57343) {\n var u1 = str.charCodeAt(++i);\n u = 65536 + ((u & 1023) << 10) | u1 & 1023;\n }\n\n if (u <= 127) {\n if (outIdx >= endIdx) break;\n outU8Array[outIdx++] = u;\n } else if (u <= 2047) {\n if (outIdx + 1 >= endIdx) break;\n outU8Array[outIdx++] = 192 | u >> 6;\n outU8Array[outIdx++] = 128 | u & 63;\n } else if (u <= 65535) {\n if (outIdx + 2 >= endIdx) break;\n outU8Array[outIdx++] = 224 | u >> 12;\n outU8Array[outIdx++] = 128 | u >> 6 & 63;\n outU8Array[outIdx++] = 128 | u & 63;\n } else {\n if (outIdx + 3 >= endIdx) break;\n outU8Array[outIdx++] = 240 | u >> 18;\n outU8Array[outIdx++] = 128 | u >> 12 & 63;\n outU8Array[outIdx++] = 128 | u >> 6 & 63;\n outU8Array[outIdx++] = 128 | u & 63;\n }\n }\n\n outU8Array[outIdx] = 0;\n return outIdx - startIdx;\n }\n\n function stringToUTF8(str, outPtr, maxBytesToWrite) {\n return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);\n }\n\n function lengthBytesUTF8(str) {\n var len = 0;\n\n for (var i = 0; i < str.length; ++i) {\n var u = str.charCodeAt(i);\n if (u >= 55296 && u <= 57343) u = 65536 + ((u & 1023) << 10) | str.charCodeAt(++i) & 1023;\n if (u <= 127) ++len;else if (u <= 2047) len += 2;else if (u <= 65535) len += 3;else len += 4;\n }\n\n return len;\n }\n\n var UTF16Decoder = typeof TextDecoder !== \"undefined\" ? new TextDecoder(\"utf-16le\") : undefined;\n\n function writeArrayToMemory(array, buffer) {\n HEAP8.set(array, buffer);\n }\n\n function writeAsciiToMemory(str, buffer, dontAddNull) {\n for (var i = 0; i < str.length; ++i) {\n HEAP8[buffer++ >> 0] = str.charCodeAt(i);\n }\n\n if (!dontAddNull) HEAP8[buffer >> 0] = 0;\n }\n\n var WASM_PAGE_SIZE = 65536;\n\n function alignUp(x, multiple) {\n if (x % multiple > 0) {\n x += multiple - x % multiple;\n }\n\n return x;\n }\n\n var buffer, HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;\n\n function updateGlobalBufferAndViews(buf) {\n buffer = buf;\n Module[\"HEAP8\"] = HEAP8 = new Int8Array(buf);\n Module[\"HEAP16\"] = HEAP16 = new Int16Array(buf);\n Module[\"HEAP32\"] = HEAP32 = new Int32Array(buf);\n Module[\"HEAPU8\"] = HEAPU8 = new Uint8Array(buf);\n Module[\"HEAPU16\"] = HEAPU16 = new Uint16Array(buf);\n Module[\"HEAPU32\"] = HEAPU32 = new Uint32Array(buf);\n Module[\"HEAPF32\"] = HEAPF32 = new Float32Array(buf);\n Module[\"HEAPF64\"] = HEAPF64 = new Float64Array(buf);\n }\n\n var STACK_BASE = 5507664,\n DYNAMIC_BASE = 5507664,\n DYNAMICTOP_PTR = 264624;\n var INITIAL_TOTAL_MEMORY = Module[\"TOTAL_MEMORY\"] || 157286400;\n\n if (Module[\"wasmMemory\"]) {\n wasmMemory = Module[\"wasmMemory\"];\n } else {\n wasmMemory = new WebAssembly.Memory({\n \"initial\": INITIAL_TOTAL_MEMORY / WASM_PAGE_SIZE\n });\n }\n\n if (wasmMemory) {\n buffer = wasmMemory.buffer;\n }\n\n INITIAL_TOTAL_MEMORY = buffer.byteLength;\n updateGlobalBufferAndViews(buffer);\n HEAP32[DYNAMICTOP_PTR >> 2] = DYNAMIC_BASE;\n\n function callRuntimeCallbacks(callbacks) {\n while (callbacks.length > 0) {\n var callback = callbacks.shift();\n\n if (typeof callback == \"function\") {\n callback();\n continue;\n }\n\n var func = callback.func;\n\n if (typeof func === \"number\") {\n if (callback.arg === undefined) {\n Module[\"dynCall_v\"](func);\n } else {\n Module[\"dynCall_vi\"](func, callback.arg);\n }\n } else {\n func(callback.arg === undefined ? null : callback.arg);\n }\n }\n }\n\n var __ATPRERUN__ = [];\n var __ATINIT__ = [];\n var __ATMAIN__ = [];\n var __ATPOSTRUN__ = [];\n var runtimeInitialized = false;\n var runtimeExited = false;\n\n function preRun() {\n if (Module[\"preRun\"]) {\n if (typeof Module[\"preRun\"] == \"function\") Module[\"preRun\"] = [Module[\"preRun\"]];\n\n while (Module[\"preRun\"].length) {\n addOnPreRun(Module[\"preRun\"].shift());\n }\n }\n\n callRuntimeCallbacks(__ATPRERUN__);\n }\n\n function initRuntime() {\n runtimeInitialized = true;\n callRuntimeCallbacks(__ATINIT__);\n }\n\n function preMain() {\n callRuntimeCallbacks(__ATMAIN__);\n }\n\n function exitRuntime() {\n runtimeExited = true;\n }\n\n function postRun() {\n if (Module[\"postRun\"]) {\n if (typeof Module[\"postRun\"] == \"function\") Module[\"postRun\"] = [Module[\"postRun\"]];\n\n while (Module[\"postRun\"].length) {\n addOnPostRun(Module[\"postRun\"].shift());\n }\n }\n\n callRuntimeCallbacks(__ATPOSTRUN__);\n }\n\n function addOnPreRun(cb) {\n __ATPRERUN__.unshift(cb);\n }\n\n function addOnPostRun(cb) {\n __ATPOSTRUN__.unshift(cb);\n }\n\n var Math_abs = Math.abs;\n var Math_ceil = Math.ceil;\n var Math_floor = Math.floor;\n var Math_min = Math.min;\n var runDependencies = 0;\n var runDependencyWatcher = null;\n var dependenciesFulfilled = null;\n\n function addRunDependency(id) {\n runDependencies++;\n\n if (Module[\"monitorRunDependencies\"]) {\n Module[\"monitorRunDependencies\"](runDependencies);\n }\n }\n\n function removeRunDependency(id) {\n runDependencies--;\n\n if (Module[\"monitorRunDependencies\"]) {\n Module[\"monitorRunDependencies\"](runDependencies);\n }\n\n if (runDependencies == 0) {\n if (runDependencyWatcher !== null) {\n clearInterval(runDependencyWatcher);\n runDependencyWatcher = null;\n }\n\n if (dependenciesFulfilled) {\n var callback = dependenciesFulfilled;\n dependenciesFulfilled = null;\n callback();\n }\n }\n }\n\n Module[\"preloadedImages\"] = {};\n Module[\"preloadedAudios\"] = {};\n\n function abort(what) {\n if (Module[\"onAbort\"]) {\n Module[\"onAbort\"](what);\n }\n\n what += \"\";\n out(what);\n err(what);\n ABORT = true;\n EXITSTATUS = 1;\n what = \"abort(\" + what + \"). Build with -s ASSERTIONS=1 for more info.\";\n throw new WebAssembly.RuntimeError(what);\n }\n\n var dataURIPrefix = \"data:application/octet-stream;base64,\";\n\n function isDataURI(filename) {\n return String.prototype.startsWith ? filename.startsWith(dataURIPrefix) : filename.indexOf(dataURIPrefix) === 0;\n }\n\n var wasmBinaryFile = \"onigasm.wasm\";\n\n if (!isDataURI(wasmBinaryFile)) {\n wasmBinaryFile = locateFile(wasmBinaryFile);\n }\n\n function getBinary() {\n try {\n if (wasmBinary) {\n return new Uint8Array(wasmBinary);\n }\n\n if (readBinary) {\n return readBinary(wasmBinaryFile);\n } else {\n throw \"both async and sync fetching of the wasm failed\";\n }\n } catch (err) {\n abort(err);\n }\n }\n\n function getBinaryPromise() {\n if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) && typeof fetch === \"function\") {\n return fetch(wasmBinaryFile, {\n credentials: \"same-origin\"\n }).then(function (response) {\n if (!response[\"ok\"]) {\n throw \"failed to load wasm binary file at '\" + wasmBinaryFile + \"'\";\n }\n\n return response[\"arrayBuffer\"]();\n }).catch(function () {\n return getBinary();\n });\n }\n\n return new Promise(function (resolve, reject) {\n resolve(getBinary());\n });\n }\n\n function createWasm() {\n var info = {\n \"env\": asmLibraryArg,\n \"wasi_unstable\": asmLibraryArg\n };\n\n function receiveInstance(instance, module) {\n var exports = instance.exports;\n Module[\"asm\"] = exports;\n removeRunDependency(\"wasm-instantiate\");\n }\n\n addRunDependency(\"wasm-instantiate\");\n\n function receiveInstantiatedSource(output) {\n receiveInstance(output[\"instance\"]);\n }\n\n function instantiateArrayBuffer(receiver) {\n return getBinaryPromise().then(function (binary) {\n return WebAssembly.instantiate(binary, info);\n }).then(receiver, function (reason) {\n err(\"failed to asynchronously prepare wasm: \" + reason);\n abort(reason);\n });\n }\n\n function instantiateAsync() {\n if (!wasmBinary && typeof WebAssembly.instantiateStreaming === \"function\" && !isDataURI(wasmBinaryFile) && typeof fetch === \"function\") {\n fetch(wasmBinaryFile, {\n credentials: \"same-origin\"\n }).then(function (response) {\n var result = WebAssembly.instantiateStreaming(response, info);\n return result.then(receiveInstantiatedSource, function (reason) {\n err(\"wasm streaming compile failed: \" + reason);\n err(\"falling back to ArrayBuffer instantiation\");\n instantiateArrayBuffer(receiveInstantiatedSource);\n });\n });\n } else {\n return instantiateArrayBuffer(receiveInstantiatedSource);\n }\n }\n\n if (Module[\"instantiateWasm\"]) {\n try {\n var exports = Module[\"instantiateWasm\"](info, receiveInstance);\n return exports;\n } catch (e) {\n err(\"Module.instantiateWasm callback failed with error: \" + e);\n return false;\n }\n }\n\n instantiateAsync();\n return {};\n }\n\n var tempDouble;\n var tempI64;\n\n __ATINIT__.push({\n func: function func() {\n ___wasm_call_ctors();\n }\n });\n\n function demangle(func) {\n var __cxa_demangle_func = Module[\"___cxa_demangle\"] || Module[\"__cxa_demangle\"];\n\n assert(__cxa_demangle_func);\n\n try {\n var s = func;\n if (s.startsWith(\"__Z\")) s = s.substr(1);\n var len = lengthBytesUTF8(s) + 1;\n\n var buf = _malloc(len);\n\n stringToUTF8(s, buf, len);\n\n var status = _malloc(4);\n\n var ret = __cxa_demangle_func(buf, 0, 0, status);\n\n if (HEAP32[status >> 2] === 0 && ret) {\n return UTF8ToString(ret);\n }\n } catch (e) {} finally {\n if (buf) _free(buf);\n if (status) _free(status);\n if (ret) _free(ret);\n }\n\n return func;\n }\n\n function demangleAll(text) {\n var regex = /\\b_Z[\\w\\d_]+/g;\n return text.replace(regex, function (x) {\n var y = demangle(x);\n return x === y ? x : y + \" [\" + x + \"]\";\n });\n }\n\n function jsStackTrace() {\n var err = new Error();\n\n if (!err.stack) {\n try {\n throw new Error(0);\n } catch (e) {\n err = e;\n }\n\n if (!err.stack) {\n return \"(no stack trace available)\";\n }\n }\n\n return err.stack.toString();\n }\n\n function _abort() {\n abort();\n }\n\n function _emscripten_get_heap_size() {\n return HEAP8.length;\n }\n\n function _emscripten_get_sbrk_ptr() {\n return 264624;\n }\n\n function _emscripten_memcpy_big(dest, src, num) {\n HEAPU8.set(HEAPU8.subarray(src, src + num), dest);\n }\n\n function emscripten_realloc_buffer(size) {\n try {\n wasmMemory.grow(size - buffer.byteLength + 65535 >> 16);\n updateGlobalBufferAndViews(wasmMemory.buffer);\n return 1;\n } catch (e) {}\n }\n\n function _emscripten_resize_heap(requestedSize) {\n var oldSize = _emscripten_get_heap_size();\n\n var PAGE_MULTIPLE = 65536;\n var LIMIT = 2147483648 - PAGE_MULTIPLE;\n\n if (requestedSize > LIMIT) {\n return false;\n }\n\n var MIN_TOTAL_MEMORY = 16777216;\n var newSize = Math.max(oldSize, MIN_TOTAL_MEMORY);\n\n while (newSize < requestedSize) {\n if (newSize <= 536870912) {\n newSize = alignUp(2 * newSize, PAGE_MULTIPLE);\n } else {\n newSize = Math.min(alignUp((3 * newSize + 2147483648) / 4, PAGE_MULTIPLE), LIMIT);\n }\n }\n\n var replacement = emscripten_realloc_buffer(newSize);\n\n if (!replacement) {\n return false;\n }\n\n return true;\n }\n\n var PATH = {\n splitPath: function splitPath(filename) {\n var splitPathRe = /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;\n return splitPathRe.exec(filename).slice(1);\n },\n normalizeArray: function normalizeArray(parts, allowAboveRoot) {\n var up = 0;\n\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n\n if (last === \".\") {\n parts.splice(i, 1);\n } else if (last === \"..\") {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n if (allowAboveRoot) {\n for (; up; up--) {\n parts.unshift(\"..\");\n }\n }\n\n return parts;\n },\n normalize: function normalize(path) {\n var isAbsolute = path.charAt(0) === \"/\",\n trailingSlash = path.substr(-1) === \"/\";\n path = PATH.normalizeArray(path.split(\"/\").filter(function (p) {\n return !!p;\n }), !isAbsolute).join(\"/\");\n\n if (!path && !isAbsolute) {\n path = \".\";\n }\n\n if (path && trailingSlash) {\n path += \"/\";\n }\n\n return (isAbsolute ? \"/\" : \"\") + path;\n },\n dirname: function dirname(path) {\n var result = PATH.splitPath(path),\n root = result[0],\n dir = result[1];\n\n if (!root && !dir) {\n return \".\";\n }\n\n if (dir) {\n dir = dir.substr(0, dir.length - 1);\n }\n\n return root + dir;\n },\n basename: function basename(path) {\n if (path === \"/\") return \"/\";\n var lastSlash = path.lastIndexOf(\"/\");\n if (lastSlash === -1) return path;\n return path.substr(lastSlash + 1);\n },\n extname: function extname(path) {\n return PATH.splitPath(path)[3];\n },\n join: function join() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return PATH.normalize(paths.join(\"/\"));\n },\n join2: function join2(l, r) {\n return PATH.normalize(l + \"/\" + r);\n }\n };\n var SYSCALLS = {\n buffers: [null, [], []],\n printChar: function printChar(stream, curr) {\n var buffer = SYSCALLS.buffers[stream];\n\n if (curr === 0 || curr === 10) {\n (stream === 1 ? out : err)(UTF8ArrayToString(buffer, 0));\n buffer.length = 0;\n } else {\n buffer.push(curr);\n }\n },\n varargs: 0,\n get: function get(varargs) {\n SYSCALLS.varargs += 4;\n var ret = HEAP32[SYSCALLS.varargs - 4 >> 2];\n return ret;\n },\n getStr: function getStr() {\n var ret = UTF8ToString(SYSCALLS.get());\n return ret;\n },\n get64: function get64() {\n var low = SYSCALLS.get(),\n high = SYSCALLS.get();\n return low;\n },\n getZero: function getZero() {\n SYSCALLS.get();\n }\n };\n\n function _fd_close(fd) {\n try {\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return e.errno;\n }\n }\n\n function _fd_seek(fd, offset_low, offset_high, whence, newOffset) {\n try {\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return e.errno;\n }\n }\n\n function _fd_write(fd, iov, iovcnt, pnum) {\n try {\n var num = 0;\n\n for (var i = 0; i < iovcnt; i++) {\n var ptr = HEAP32[iov + i * 8 >> 2];\n var len = HEAP32[iov + (i * 8 + 4) >> 2];\n\n for (var j = 0; j < len; j++) {\n SYSCALLS.printChar(fd, HEAPU8[ptr + j]);\n }\n\n num += len;\n }\n\n HEAP32[pnum >> 2] = num;\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return e.errno;\n }\n }\n\n function _setTempRet0($i) {\n setTempRet0($i | 0);\n }\n\n var ASSERTIONS = false;\n var asmLibraryArg = {\n \"abort\": _abort,\n \"emscripten_get_sbrk_ptr\": _emscripten_get_sbrk_ptr,\n \"emscripten_memcpy_big\": _emscripten_memcpy_big,\n \"emscripten_resize_heap\": _emscripten_resize_heap,\n \"fd_close\": _fd_close,\n \"fd_seek\": _fd_seek,\n \"fd_write\": _fd_write,\n \"memory\": wasmMemory,\n \"setTempRet0\": _setTempRet0,\n \"table\": wasmTable\n };\n var asm = createWasm();\n Module[\"asm\"] = asm;\n\n var ___wasm_call_ctors = Module[\"___wasm_call_ctors\"] = function () {\n return Module[\"asm\"][\"__wasm_call_ctors\"].apply(null, arguments);\n };\n\n var _malloc = Module[\"_malloc\"] = function () {\n return Module[\"asm\"][\"malloc\"].apply(null, arguments);\n };\n\n var _free = Module[\"_free\"] = function () {\n return Module[\"asm\"][\"free\"].apply(null, arguments);\n };\n\n var _getLastError = Module[\"_getLastError\"] = function () {\n return Module[\"asm\"][\"getLastError\"].apply(null, arguments);\n };\n\n var _compilePattern = Module[\"_compilePattern\"] = function () {\n return Module[\"asm\"][\"compilePattern\"].apply(null, arguments);\n };\n\n var _disposeCompiledPatterns = Module[\"_disposeCompiledPatterns\"] = function () {\n return Module[\"asm\"][\"disposeCompiledPatterns\"].apply(null, arguments);\n };\n\n var _findBestMatch = Module[\"_findBestMatch\"] = function () {\n return Module[\"asm\"][\"findBestMatch\"].apply(null, arguments);\n };\n\n var ___cxa_demangle = Module[\"___cxa_demangle\"] = function () {\n return Module[\"asm\"][\"__cxa_demangle\"].apply(null, arguments);\n };\n\n var _setThrew = Module[\"_setThrew\"] = function () {\n return Module[\"asm\"][\"setThrew\"].apply(null, arguments);\n };\n\n var stackSave = Module[\"stackSave\"] = function () {\n return Module[\"asm\"][\"stackSave\"].apply(null, arguments);\n };\n\n var stackAlloc = Module[\"stackAlloc\"] = function () {\n return Module[\"asm\"][\"stackAlloc\"].apply(null, arguments);\n };\n\n var stackRestore = Module[\"stackRestore\"] = function () {\n return Module[\"asm\"][\"stackRestore\"].apply(null, arguments);\n };\n\n var __growWasmMemory = Module[\"__growWasmMemory\"] = function () {\n return Module[\"asm\"][\"__growWasmMemory\"].apply(null, arguments);\n };\n\n var dynCall_vi = Module[\"dynCall_vi\"] = function () {\n return Module[\"asm\"][\"dynCall_vi\"].apply(null, arguments);\n };\n\n var dynCall_iiii = Module[\"dynCall_iiii\"] = function () {\n return Module[\"asm\"][\"dynCall_iiii\"].apply(null, arguments);\n };\n\n var dynCall_iiiii = Module[\"dynCall_iiiii\"] = function () {\n return Module[\"asm\"][\"dynCall_iiiii\"].apply(null, arguments);\n };\n\n var dynCall_iii = Module[\"dynCall_iii\"] = function () {\n return Module[\"asm\"][\"dynCall_iii\"].apply(null, arguments);\n };\n\n var dynCall_iidiiii = Module[\"dynCall_iidiiii\"] = function () {\n return Module[\"asm\"][\"dynCall_iidiiii\"].apply(null, arguments);\n };\n\n var dynCall_vii = Module[\"dynCall_vii\"] = function () {\n return Module[\"asm\"][\"dynCall_vii\"].apply(null, arguments);\n };\n\n var dynCall_ii = Module[\"dynCall_ii\"] = function () {\n return Module[\"asm\"][\"dynCall_ii\"].apply(null, arguments);\n };\n\n var dynCall_i = Module[\"dynCall_i\"] = function () {\n return Module[\"asm\"][\"dynCall_i\"].apply(null, arguments);\n };\n\n var dynCall_v = Module[\"dynCall_v\"] = function () {\n return Module[\"asm\"][\"dynCall_v\"].apply(null, arguments);\n };\n\n var dynCall_viiiiii = Module[\"dynCall_viiiiii\"] = function () {\n return Module[\"asm\"][\"dynCall_viiiiii\"].apply(null, arguments);\n };\n\n var dynCall_viiiii = Module[\"dynCall_viiiii\"] = function () {\n return Module[\"asm\"][\"dynCall_viiiii\"].apply(null, arguments);\n };\n\n var dynCall_viiii = Module[\"dynCall_viiii\"] = function () {\n return Module[\"asm\"][\"dynCall_viiii\"].apply(null, arguments);\n };\n\n var dynCall_jiji = Module[\"dynCall_jiji\"] = function () {\n return Module[\"asm\"][\"dynCall_jiji\"].apply(null, arguments);\n };\n\n Module[\"asm\"] = asm;\n Module[\"ccall\"] = ccall;\n var calledRun;\n\n Module[\"then\"] = function (func) {\n if (calledRun) {\n func(Module);\n } else {\n var old = Module[\"onRuntimeInitialized\"];\n\n Module[\"onRuntimeInitialized\"] = function () {\n if (old) old();\n func(Module);\n };\n }\n\n return Module;\n };\n\n function ExitStatus(status) {\n this.name = \"ExitStatus\";\n this.message = \"Program terminated with exit(\" + status + \")\";\n this.status = status;\n }\n\n dependenciesFulfilled = function runCaller() {\n if (!calledRun) run();\n if (!calledRun) dependenciesFulfilled = runCaller;\n };\n\n function run(args) {\n args = args || arguments_;\n\n if (runDependencies > 0) {\n return;\n }\n\n preRun();\n if (runDependencies > 0) return;\n\n function doRun() {\n if (calledRun) return;\n calledRun = true;\n if (ABORT) return;\n initRuntime();\n preMain();\n if (Module[\"onRuntimeInitialized\"]) Module[\"onRuntimeInitialized\"]();\n postRun();\n }\n\n if (Module[\"setStatus\"]) {\n Module[\"setStatus\"](\"Running...\");\n setTimeout(function () {\n setTimeout(function () {\n Module[\"setStatus\"](\"\");\n }, 1);\n doRun();\n }, 1);\n } else {\n doRun();\n }\n }\n\n Module[\"run\"] = run;\n\n if (Module[\"preInit\"]) {\n if (typeof Module[\"preInit\"] == \"function\") Module[\"preInit\"] = [Module[\"preInit\"]];\n\n while (Module[\"preInit\"].length > 0) {\n Module[\"preInit\"].pop()();\n }\n }\n\n noExitRuntime = true;\n run();\n return Onigasm;\n };\n}();\n\nif (typeof exports === 'object' && typeof module === 'object') module.exports = Onigasm;else if (typeof define === 'function' && define['amd']) define([], function () {\n return Onigasm;\n});else if (typeof exports === 'object') exports[\"Onigasm\"] = Onigasm;","\"use strict\";\n\nvar _regeneratorRuntime = require(\"/var/www/html/typescriptweb/TypeScript-website/node_modules/gatsby/node_modules/@babel/runtime/regenerator\");\n\nvar _asyncToGenerator = require(\"/var/www/html/typescriptweb/TypeScript-website/node_modules/gatsby/node_modules/@babel/runtime/helpers/asyncToGenerator\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar OnigasmModuleFactory = require('./onigasm.js'\n/** when TS is compiled to JS, this will mean `lib/onigasm.js` (emitted by `emcc`) */\n);\n\nfunction initModule(_x) {\n return _initModule.apply(this, arguments);\n}\n\nfunction _initModule() {\n _initModule = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(bytes) {\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", new Promise(function (resolve, reject) {\n var _console = console,\n log = _console.log,\n warn = _console.warn,\n error = _console.error;\n OnigasmModuleFactory({\n instantiateWasm: function instantiateWasm(imports, successCallback) {\n WebAssembly.instantiate(bytes, imports).then(function (output) {\n successCallback(output.instance);\n }).catch(function (e) {\n throw e;\n });\n return {};\n }\n }).then(function (moduleH) {\n exports.onigasmH = moduleH;\n resolve();\n });\n\n if (typeof print !== 'undefined') {\n // can be removed when https://github.com/emscripten-core/emscripten/issues/9829 is fixed.\n // tslint:disable-next-line:no-console\n console.log = log; // tslint:disable-next-line:no-console\n\n // tslint:disable-next-line:no-console\n console.error = error; // tslint:disable-next-line:no-console\n\n // tslint:disable-next-line:no-console\n console.warn = warn;\n }\n }));\n\n case 1:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n return _initModule.apply(this, arguments);\n}\n\nvar isInitialized = false;\n/**\n * Mount the .wasm file that will act as library's \"backend\"\n * @param data Path to .wasm file or it's ArrayBuffer\n */\n\nfunction loadWASM(_x2) {\n return _loadWASM.apply(this, arguments);\n}\n\nfunction _loadWASM() {\n _loadWASM = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(data) {\n var arrayBuffer;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (!isInitialized) {\n _context2.next = 2;\n break;\n }\n\n throw new Error(\"Onigasm#init has been called and was succesful, subsequent calls are not allowed once initialized\");\n\n case 2:\n if (!(typeof data === 'string')) {\n _context2.next = 12;\n break;\n }\n\n _context2.next = 5;\n return fetch(data);\n\n case 5:\n _context2.next = 7;\n return _context2.sent.arrayBuffer();\n\n case 7:\n arrayBuffer = _context2.sent;\n _context2.next = 10;\n return initModule(arrayBuffer);\n\n case 10:\n _context2.next = 18;\n break;\n\n case 12:\n if (!(data instanceof ArrayBuffer)) {\n _context2.next = 17;\n break;\n }\n\n _context2.next = 15;\n return initModule(data);\n\n case 15:\n _context2.next = 18;\n break;\n\n case 17:\n throw new TypeError(\"Expected a string (URL of .wasm file) or ArrayBuffer (.wasm file itself) as first parameter\");\n\n case 18:\n isInitialized = true;\n\n case 19:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n return _loadWASM.apply(this, arguments);\n}\n\nexports.loadWASM = loadWASM;","'use strict'; // A linked list to keep track of recently-used-ness\n\nvar _classCallCheck = require(\"/var/www/html/typescriptweb/TypeScript-website/node_modules/gatsby/node_modules/@babel/runtime/helpers/classCallCheck\");\n\nvar _createClass = require(\"/var/www/html/typescriptweb/TypeScript-website/node_modules/gatsby/node_modules/@babel/runtime/helpers/createClass\");\n\nvar Yallist = require('yallist');\n\nvar MAX = Symbol('max');\nvar LENGTH = Symbol('length');\nvar LENGTH_CALCULATOR = Symbol('lengthCalculator');\nvar ALLOW_STALE = Symbol('allowStale');\nvar MAX_AGE = Symbol('maxAge');\nvar DISPOSE = Symbol('dispose');\nvar NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet');\nvar LRU_LIST = Symbol('lruList');\nvar CACHE = Symbol('cache');\nvar UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet');\n\nvar naiveLength = function naiveLength() {\n return 1;\n}; // lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest. the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node. This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\n\n\nvar LRUCache = /*#__PURE__*/function () {\n function LRUCache(options) {\n _classCallCheck(this, LRUCache);\n\n if (typeof options === 'number') options = {\n max: options\n };\n if (!options) options = {};\n if (options.max && (typeof options.max !== 'number' || options.max < 0)) throw new TypeError('max must be a non-negative number'); // Kind of weird to have a default max of Infinity, but oh well.\n\n var max = this[MAX] = options.max || Infinity;\n var lc = options.length || naiveLength;\n this[LENGTH_CALCULATOR] = typeof lc !== 'function' ? naiveLength : lc;\n this[ALLOW_STALE] = options.stale || false;\n if (options.maxAge && typeof options.maxAge !== 'number') throw new TypeError('maxAge must be a number');\n this[MAX_AGE] = options.maxAge || 0;\n this[DISPOSE] = options.dispose;\n this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false;\n this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false;\n this.reset();\n } // resize the cache when the max changes.\n\n\n _createClass(LRUCache, [{\n key: \"max\",\n get: function get() {\n return this[MAX];\n },\n set: function set(mL) {\n if (typeof mL !== 'number' || mL < 0) throw new TypeError('max must be a non-negative number');\n this[MAX] = mL || Infinity;\n trim(this);\n }\n }, {\n key: \"allowStale\",\n get: function get() {\n return this[ALLOW_STALE];\n },\n set: function set(allowStale) {\n this[ALLOW_STALE] = !!allowStale;\n }\n }, {\n key: \"maxAge\",\n get: function get() {\n return this[MAX_AGE];\n } // resize the cache when the lengthCalculator changes.\n ,\n set: function set(mA) {\n if (typeof mA !== 'number') throw new TypeError('maxAge must be a non-negative number');\n this[MAX_AGE] = mA;\n trim(this);\n }\n }, {\n key: \"lengthCalculator\",\n get: function get() {\n return this[LENGTH_CALCULATOR];\n },\n set: function set(lC) {\n var _this = this;\n\n if (typeof lC !== 'function') lC = naiveLength;\n\n if (lC !== this[LENGTH_CALCULATOR]) {\n this[LENGTH_CALCULATOR] = lC;\n this[LENGTH] = 0;\n this[LRU_LIST].forEach(function (hit) {\n hit.length = _this[LENGTH_CALCULATOR](hit.value, hit.key);\n _this[LENGTH] += hit.length;\n });\n }\n\n trim(this);\n }\n }, {\n key: \"length\",\n get: function get() {\n return this[LENGTH];\n }\n }, {\n key: \"itemCount\",\n get: function get() {\n return this[LRU_LIST].length;\n }\n }, {\n key: \"rforEach\",\n value: function rforEach(fn, thisp) {\n thisp = thisp || this;\n\n for (var walker = this[LRU_LIST].tail; walker !== null;) {\n var prev = walker.prev;\n forEachStep(this, fn, walker, thisp);\n walker = prev;\n }\n }\n }, {\n key: \"forEach\",\n value: function forEach(fn, thisp) {\n thisp = thisp || this;\n\n for (var walker = this[LRU_LIST].head; walker !== null;) {\n var next = walker.next;\n forEachStep(this, fn, walker, thisp);\n walker = next;\n }\n }\n }, {\n key: \"keys\",\n value: function keys() {\n return this[LRU_LIST].toArray().map(function (k) {\n return k.key;\n });\n }\n }, {\n key: \"values\",\n value: function values() {\n return this[LRU_LIST].toArray().map(function (k) {\n return k.value;\n });\n }\n }, {\n key: \"reset\",\n value: function reset() {\n var _this2 = this;\n\n if (this[DISPOSE] && this[LRU_LIST] && this[LRU_LIST].length) {\n this[LRU_LIST].forEach(function (hit) {\n return _this2[DISPOSE](hit.key, hit.value);\n });\n }\n\n this[CACHE] = new Map(); // hash of items by key\n\n this[LRU_LIST] = new Yallist(); // list of items in order of use recency\n\n this[LENGTH] = 0; // length of items in the list\n }\n }, {\n key: \"dump\",\n value: function dump() {\n var _this3 = this;\n\n return this[LRU_LIST].map(function (hit) {\n return isStale(_this3, hit) ? false : {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n };\n }).toArray().filter(function (h) {\n return h;\n });\n }\n }, {\n key: \"dumpLru\",\n value: function dumpLru() {\n return this[LRU_LIST];\n }\n }, {\n key: \"set\",\n value: function set(key, value, maxAge) {\n maxAge = maxAge || this[MAX_AGE];\n if (maxAge && typeof maxAge !== 'number') throw new TypeError('maxAge must be a number');\n var now = maxAge ? Date.now() : 0;\n var len = this[LENGTH_CALCULATOR](value, key);\n\n if (this[CACHE].has(key)) {\n if (len > this[MAX]) {\n _del(this, this[CACHE].get(key));\n\n return false;\n }\n\n var node = this[CACHE].get(key);\n var item = node.value; // dispose of the old one before overwriting\n // split out into 2 ifs for better coverage tracking\n\n if (this[DISPOSE]) {\n if (!this[NO_DISPOSE_ON_SET]) this[DISPOSE](key, item.value);\n }\n\n item.now = now;\n item.maxAge = maxAge;\n item.value = value;\n this[LENGTH] += len - item.length;\n item.length = len;\n this.get(key);\n trim(this);\n return true;\n }\n\n var hit = new Entry(key, value, len, now, maxAge); // oversized objects fall out of cache automatically.\n\n if (hit.length > this[MAX]) {\n if (this[DISPOSE]) this[DISPOSE](key, value);\n return false;\n }\n\n this[LENGTH] += hit.length;\n this[LRU_LIST].unshift(hit);\n this[CACHE].set(key, this[LRU_LIST].head);\n trim(this);\n return true;\n }\n }, {\n key: \"has\",\n value: function has(key) {\n if (!this[CACHE].has(key)) return false;\n var hit = this[CACHE].get(key).value;\n return !isStale(this, hit);\n }\n }, {\n key: \"get\",\n value: function get(key) {\n return _get(this, key, true);\n }\n }, {\n key: \"peek\",\n value: function peek(key) {\n return _get(this, key, false);\n }\n }, {\n key: \"pop\",\n value: function pop() {\n var node = this[LRU_LIST].tail;\n if (!node) return null;\n\n _del(this, node);\n\n return node.value;\n }\n }, {\n key: \"del\",\n value: function del(key) {\n _del(this, this[CACHE].get(key));\n }\n }, {\n key: \"load\",\n value: function load(arr) {\n // reset the cache\n this.reset();\n var now = Date.now(); // A previous serialized cache has the most recent items first\n\n for (var l = arr.length - 1; l >= 0; l--) {\n var hit = arr[l];\n var expiresAt = hit.e || 0;\n if (expiresAt === 0) // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v);else {\n var maxAge = expiresAt - now; // dont add already expired items\n\n if (maxAge > 0) {\n this.set(hit.k, hit.v, maxAge);\n }\n }\n }\n }\n }, {\n key: \"prune\",\n value: function prune() {\n var _this4 = this;\n\n this[CACHE].forEach(function (value, key) {\n return _get(_this4, key, false);\n });\n }\n }]);\n\n return LRUCache;\n}();\n\nvar _get = function _get(self, key, doUse) {\n var node = self[CACHE].get(key);\n\n if (node) {\n var hit = node.value;\n\n if (isStale(self, hit)) {\n _del(self, node);\n\n if (!self[ALLOW_STALE]) return undefined;\n } else {\n if (doUse) {\n if (self[UPDATE_AGE_ON_GET]) node.value.now = Date.now();\n self[LRU_LIST].unshiftNode(node);\n }\n }\n\n return hit.value;\n }\n};\n\nvar isStale = function isStale(self, hit) {\n if (!hit || !hit.maxAge && !self[MAX_AGE]) return false;\n var diff = Date.now() - hit.now;\n return hit.maxAge ? diff > hit.maxAge : self[MAX_AGE] && diff > self[MAX_AGE];\n};\n\nvar trim = function trim(self) {\n if (self[LENGTH] > self[MAX]) {\n for (var walker = self[LRU_LIST].tail; self[LENGTH] > self[MAX] && walker !== null;) {\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n var prev = walker.prev;\n\n _del(self, walker);\n\n walker = prev;\n }\n }\n};\n\nvar _del = function _del(self, node) {\n if (node) {\n var hit = node.value;\n if (self[DISPOSE]) self[DISPOSE](hit.key, hit.value);\n self[LENGTH] -= hit.length;\n self[CACHE].delete(hit.key);\n self[LRU_LIST].removeNode(node);\n }\n};\n\nvar Entry = function Entry(key, value, length, now, maxAge) {\n _classCallCheck(this, Entry);\n\n this.key = key;\n this.value = value;\n this.length = length;\n this.now = now;\n this.maxAge = maxAge || 0;\n};\n\nvar forEachStep = function forEachStep(self, fn, node, thisp) {\n var hit = node.value;\n\n if (isStale(self, hit)) {\n _del(self, node);\n\n if (!self[ALLOW_STALE]) hit = undefined;\n }\n\n if (hit) fn.call(thisp, hit.value, hit.key, self);\n};\n\nmodule.exports = LRUCache;","// 'path' module extracted from Node.js v8.11.1 (only the posix part)\n// transplited with Babel\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'use strict';\n\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError('Path must be a string. Received ' + JSON.stringify(path));\n }\n} // Resolves . and .. elements in a path with directory names\n\n\nfunction normalizeStringPosix(path, allowAboveRoot) {\n var res = '';\n var lastSegmentLength = 0;\n var lastSlash = -1;\n var dots = 0;\n var code;\n\n for (var i = 0; i <= path.length; ++i) {\n if (i < path.length) code = path.charCodeAt(i);else if (code === 47\n /*/*/\n ) break;else code = 47\n /*/*/\n ;\n\n if (code === 47\n /*/*/\n ) {\n if (lastSlash === i - 1 || dots === 1) {// NOOP\n } else if (lastSlash !== i - 1 && dots === 2) {\n if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46\n /*.*/\n || res.charCodeAt(res.length - 2) !== 46\n /*.*/\n ) {\n if (res.length > 2) {\n var lastSlashIndex = res.lastIndexOf('/');\n\n if (lastSlashIndex !== res.length - 1) {\n if (lastSlashIndex === -1) {\n res = '';\n lastSegmentLength = 0;\n } else {\n res = res.slice(0, lastSlashIndex);\n lastSegmentLength = res.length - 1 - res.lastIndexOf('/');\n }\n\n lastSlash = i;\n dots = 0;\n continue;\n }\n } else if (res.length === 2 || res.length === 1) {\n res = '';\n lastSegmentLength = 0;\n lastSlash = i;\n dots = 0;\n continue;\n }\n }\n\n if (allowAboveRoot) {\n if (res.length > 0) res += '/..';else res = '..';\n lastSegmentLength = 2;\n }\n } else {\n if (res.length > 0) res += '/' + path.slice(lastSlash + 1, i);else res = path.slice(lastSlash + 1, i);\n lastSegmentLength = i - lastSlash - 1;\n }\n\n lastSlash = i;\n dots = 0;\n } else if (code === 46\n /*.*/\n && dots !== -1) {\n ++dots;\n } else {\n dots = -1;\n }\n }\n\n return res;\n}\n\nfunction _format(sep, pathObject) {\n var dir = pathObject.dir || pathObject.root;\n var base = pathObject.base || (pathObject.name || '') + (pathObject.ext || '');\n\n if (!dir) {\n return base;\n }\n\n if (dir === pathObject.root) {\n return dir + base;\n }\n\n return dir + sep + base;\n}\n\nvar posix = {\n // path.resolve([from ...], to)\n resolve: function resolve() {\n var resolvedPath = '';\n var resolvedAbsolute = false;\n var cwd;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path;\n if (i >= 0) path = arguments[i];else {\n if (cwd === undefined) cwd = process.cwd();\n path = cwd;\n }\n assertPath(path); // Skip empty entries\n\n if (path.length === 0) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charCodeAt(0) === 47\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 // Normalize the path\n\n\n resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);\n\n if (resolvedAbsolute) {\n if (resolvedPath.length > 0) return '/' + resolvedPath;else return '/';\n } else if (resolvedPath.length > 0) {\n return resolvedPath;\n } else {\n return '.';\n }\n },\n normalize: function normalize(path) {\n assertPath(path);\n if (path.length === 0) return '.';\n var isAbsolute = path.charCodeAt(0) === 47\n /*/*/\n ;\n var trailingSeparator = path.charCodeAt(path.length - 1) === 47\n /*/*/\n ; // Normalize the path\n\n path = normalizeStringPosix(path, !isAbsolute);\n if (path.length === 0 && !isAbsolute) path = '.';\n if (path.length > 0 && trailingSeparator) path += '/';\n if (isAbsolute) return '/' + path;\n return path;\n },\n isAbsolute: function isAbsolute(path) {\n assertPath(path);\n return path.length > 0 && path.charCodeAt(0) === 47\n /*/*/\n ;\n },\n join: function join() {\n if (arguments.length === 0) return '.';\n var joined;\n\n for (var i = 0; i < arguments.length; ++i) {\n var arg = arguments[i];\n assertPath(arg);\n\n if (arg.length > 0) {\n if (joined === undefined) joined = arg;else joined += '/' + arg;\n }\n }\n\n if (joined === undefined) return '.';\n return posix.normalize(joined);\n },\n relative: function relative(from, to) {\n assertPath(from);\n assertPath(to);\n if (from === to) return '';\n from = posix.resolve(from);\n to = posix.resolve(to);\n if (from === to) return ''; // Trim any leading backslashes\n\n var fromStart = 1;\n\n for (; fromStart < from.length; ++fromStart) {\n if (from.charCodeAt(fromStart) !== 47\n /*/*/\n ) break;\n }\n\n var fromEnd = from.length;\n var fromLen = fromEnd - fromStart; // Trim any leading backslashes\n\n var toStart = 1;\n\n for (; toStart < to.length; ++toStart) {\n if (to.charCodeAt(toStart) !== 47\n /*/*/\n ) break;\n }\n\n var toEnd = to.length;\n var toLen = toEnd - toStart; // Compare paths to find the longest common path from root\n\n var length = fromLen < toLen ? fromLen : toLen;\n var lastCommonSep = -1;\n var i = 0;\n\n for (; i <= length; ++i) {\n if (i === length) {\n if (toLen > length) {\n if (to.charCodeAt(toStart + i) === 47\n /*/*/\n ) {\n // We get here if `from` is the exact base path for `to`.\n // For example: from='/foo/bar'; to='/foo/bar/baz'\n return to.slice(toStart + i + 1);\n } else if (i === 0) {\n // We get here if `from` is the root\n // For example: from='/'; to='/foo'\n return to.slice(toStart + i);\n }\n } else if (fromLen > length) {\n if (from.charCodeAt(fromStart + i) === 47\n /*/*/\n ) {\n // We get here if `to` is the exact base path for `from`.\n // For example: from='/foo/bar/baz'; to='/foo/bar'\n lastCommonSep = i;\n } else if (i === 0) {\n // We get here if `to` is the root.\n // For example: from='/foo'; to='/'\n lastCommonSep = 0;\n }\n }\n\n break;\n }\n\n var fromCode = from.charCodeAt(fromStart + i);\n var toCode = to.charCodeAt(toStart + i);\n if (fromCode !== toCode) break;else if (fromCode === 47\n /*/*/\n ) lastCommonSep = i;\n }\n\n var out = ''; // Generate the relative path based on the path difference between `to`\n // and `from`\n\n for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n if (i === fromEnd || from.charCodeAt(i) === 47\n /*/*/\n ) {\n if (out.length === 0) out += '..';else out += '/..';\n }\n } // Lastly, append the rest of the destination (`to`) path that comes after\n // the common path parts\n\n\n if (out.length > 0) return out + to.slice(toStart + lastCommonSep);else {\n toStart += lastCommonSep;\n if (to.charCodeAt(toStart) === 47\n /*/*/\n ) ++toStart;\n return to.slice(toStart);\n }\n },\n _makeLong: function _makeLong(path) {\n return path;\n },\n dirname: function dirname(path) {\n assertPath(path);\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47\n /*/*/\n ;\n var end = -1;\n var matchedSlash = true;\n\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\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) return '//';\n return path.slice(0, end);\n },\n basename: function basename(path, ext) {\n if (ext !== undefined && typeof ext !== 'string') throw new TypeError('\"ext\" argument must be a string');\n assertPath(path);\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n if (ext !== undefined && ext.length > 0 && ext.length <= path.length) {\n if (ext.length === path.length && ext === path) return '';\n var extIdx = ext.length - 1;\n var firstNonSlashEnd = -1;\n\n for (i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\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 {\n if (firstNonSlashEnd === -1) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching\n matchedSlash = false;\n firstNonSlashEnd = i + 1;\n }\n\n if (extIdx >= 0) {\n // Try to match the explicit extension\n if (code === ext.charCodeAt(extIdx)) {\n if (--extIdx === -1) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = i;\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIdx = -1;\n end = firstNonSlashEnd;\n }\n }\n }\n }\n\n if (start === end) end = firstNonSlashEnd;else if (end === -1) end = path.length;\n return path.slice(start, end);\n } else {\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47\n /*/*/\n ) {\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 extname: function extname(path) {\n assertPath(path);\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true; // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n\n var preDotState = 0;\n\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\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\n continue;\n }\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\n if (code === 46\n /*.*/\n ) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) 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 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n\n return path.slice(startDot, end);\n },\n format: function format(pathObject) {\n if (pathObject === null || typeof pathObject !== 'object') {\n throw new TypeError('The \"pathObject\" argument must be of type Object. Received type ' + typeof pathObject);\n }\n\n return _format('/', pathObject);\n },\n parse: function parse(path) {\n assertPath(path);\n var ret = {\n root: '',\n dir: '',\n base: '',\n ext: '',\n name: ''\n };\n if (path.length === 0) return ret;\n var code = path.charCodeAt(0);\n var isAbsolute = code === 47\n /*/*/\n ;\n var start;\n\n if (isAbsolute) {\n ret.root = '/';\n start = 1;\n } else {\n start = 0;\n }\n\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n var i = path.length - 1; // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n\n var preDotState = 0; // Get non-dir info\n\n for (; i >= start; --i) {\n code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\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\n continue;\n }\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\n if (code === 46\n /*.*/\n ) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) 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 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n if (end !== -1) {\n if (startPart === 0 && isAbsolute) ret.base = ret.name = path.slice(1, end);else ret.base = ret.name = path.slice(startPart, end);\n }\n } else {\n if (startPart === 0 && isAbsolute) {\n ret.name = path.slice(1, startDot);\n ret.base = path.slice(1, end);\n } else {\n ret.name = path.slice(startPart, startDot);\n ret.base = path.slice(startPart, end);\n }\n\n ret.ext = path.slice(startDot, end);\n }\n\n if (startPart > 0) ret.dir = path.slice(0, startPart - 1);else if (isAbsolute) ret.dir = '/';\n return ret;\n },\n sep: '/',\n delimiter: ':',\n win32: null,\n posix: null\n};\nposix.posix = posix;\nmodule.exports = posix;","!function (e, t) {\n \"object\" == typeof exports && \"object\" == typeof module ? module.exports = t() : \"function\" == typeof define && define.amd ? define([], t) : \"object\" == typeof exports ? exports.vscodetextmate = t() : e.vscodetextmate = t();\n}(this, function () {\n return function (e) {\n var t = {};\n\n function n(r) {\n if (t[r]) return t[r].exports;\n var i = t[r] = {\n i: r,\n l: !1,\n exports: {}\n };\n return e[r].call(i.exports, i, i.exports, n), i.l = !0, i.exports;\n }\n\n return n.m = e, n.c = t, n.d = function (e, t, r) {\n n.o(e, t) || Object.defineProperty(e, t, {\n enumerable: !0,\n get: r\n });\n }, n.r = function (e) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n }, n.t = function (e, t) {\n if (1 & t && (e = n(e)), 8 & t) return e;\n if (4 & t && \"object\" == typeof e && e && e.__esModule) return e;\n var r = Object.create(null);\n if (n.r(r), Object.defineProperty(r, \"default\", {\n enumerable: !0,\n value: e\n }), 2 & t && \"string\" != typeof e) for (var i in e) {\n n.d(r, i, function (t) {\n return e[t];\n }.bind(null, i));\n }\n return r;\n }, n.n = function (e) {\n var t = e && e.__esModule ? function () {\n return e.default;\n } : function () {\n return e;\n };\n return n.d(t, \"a\", t), t;\n }, n.o = function (e, t) {\n return Object.prototype.hasOwnProperty.call(e, t);\n }, n.p = \"\", n(n.s = 3);\n }([function (e, t, n) {\n \"use strict\";\n\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n });\n var r = n(1),\n i = n(5),\n o = n(6),\n s = n(2),\n a = \"undefined\" == typeof performance ? function () {\n return Date.now();\n } : function () {\n return performance.now();\n };\n\n t.createGrammar = function (e, t, n, r, i, o) {\n return new v(e, t, n, r, i, o);\n };\n\n var c = function c(e) {\n this.scopeName = e;\n };\n\n t.FullScopeDependency = c;\n\n var u = function () {\n function e(e, t) {\n this.scopeName = e, this.include = t;\n }\n\n return e.prototype.toKey = function () {\n return this.scopeName + \"#\" + this.include;\n }, e;\n }();\n\n t.PartialScopeDependency = u;\n\n var l = function () {\n function e() {\n this.full = [], this.partial = [], this.visitedRule = new Set(), this._seenFull = new Set(), this._seenPartial = new Set();\n }\n\n return e.prototype.add = function (e) {\n e instanceof c ? this._seenFull.has(e.scopeName) || (this._seenFull.add(e.scopeName), this.full.push(e)) : this._seenPartial.has(e.toKey()) || (this._seenPartial.add(e.toKey()), this.partial.push(e));\n }, e;\n }();\n\n function h(e, t, n, i, o) {\n for (var s = 0, a = i; s < a.length; s++) {\n var l = a[s];\n\n if (!e.visitedRule.has(l)) {\n e.visitedRule.add(l);\n var d = l.repository ? r.mergeObjects({}, o, l.repository) : o;\n Array.isArray(l.patterns) && h(e, t, n, l.patterns, d);\n var g = l.include;\n if (g) if (\"$base\" === g || g === t.scopeName) f(e, t, t);else if (\"$self\" === g || g === n.scopeName) f(e, t, n);else if (\"#\" === g.charAt(0)) p(e, t, n, g.substring(1), d);else {\n var m = g.indexOf(\"#\");\n\n if (m >= 0) {\n var _ = g.substring(0, m),\n y = g.substring(m + 1);\n\n _ === t.scopeName ? p(e, t, t, y, d) : _ === n.scopeName ? p(e, t, n, y, d) : e.add(new u(_, g.substring(m + 1)));\n } else e.add(new c(g));\n }\n }\n }\n }\n\n function p(e, t, n, r, i) {\n (void 0 === i && (i = n.repository), i && i[r]) && h(e, t, n, [i[r]], i);\n }\n\n function f(e, t, n) {\n if (n.patterns && Array.isArray(n.patterns) && h(e, t, n, n.patterns, n.repository), n.injections) {\n var r = [];\n\n for (var i in n.injections) {\n r.push(n.injections[i]);\n }\n\n h(e, t, n, r, n.repository);\n }\n }\n\n function d(e, t) {\n if (!e) return !1;\n if (e === t) return !0;\n var n = t.length;\n return e.length > n && e.substr(0, n) === t && \".\" === e[n];\n }\n\n function g(e, t) {\n if (t.length < e.length) return !1;\n var n = 0;\n return e.every(function (e) {\n for (var r = n; r < t.length; r++) {\n if (d(t[r], e)) return n = r + 1, !0;\n }\n\n return !1;\n });\n }\n\n function m(e, t, n, r, s) {\n for (var a = o.createMatchers(t, g), c = i.RuleFactory.getCompiledRuleId(n, r, s.repository), u = 0, l = a; u < l.length; u++) {\n var h = l[u];\n e.push({\n matcher: h.matcher,\n ruleId: c,\n grammar: s,\n priority: h.priority\n });\n }\n }\n\n t.ScopeDependencyCollector = l, t.collectSpecificDependencies = p, t.collectDependencies = f;\n\n var _ = function _(e, t, n, r) {\n this.scopeName = e, this.languageId = t, this.tokenType = n, this.themeData = r;\n };\n\n t.ScopeMetadata = _;\n\n var y = function () {\n function e(t, n, r) {\n if (this._initialLanguage = t, this._themeProvider = n, this._cache = new Map(), this._defaultMetaData = new _(\"\", this._initialLanguage, 0, [this._themeProvider.getDefaults()]), this._embeddedLanguages = Object.create(null), r) for (var i = Object.keys(r), o = 0, s = i.length; o < s; o++) {\n var a = i[o],\n c = r[a];\n \"number\" == typeof c && 0 !== c ? this._embeddedLanguages[a] = c : console.warn(\"Invalid embedded language found at scope \" + a + \": <<\" + c + \">>\");\n }\n var u = Object.keys(this._embeddedLanguages).map(function (t) {\n return e._escapeRegExpCharacters(t);\n });\n 0 === u.length ? this._embeddedLanguagesRegex = null : (u.sort(), u.reverse(), this._embeddedLanguagesRegex = new RegExp(\"^((\" + u.join(\")|(\") + \"))($|\\\\.)\", \"\"));\n }\n\n return e.prototype.onDidChangeTheme = function () {\n this._cache = new Map(), this._defaultMetaData = new _(\"\", this._initialLanguage, 0, [this._themeProvider.getDefaults()]);\n }, e.prototype.getDefaultMetadata = function () {\n return this._defaultMetaData;\n }, e._escapeRegExpCharacters = function (e) {\n return e.replace(/[\\-\\\\\\{\\}\\*\\+\\?\\|\\^\\$\\.\\,\\[\\]\\(\\)\\#\\s]/g, \"\\\\$&\");\n }, e.prototype.getMetadataForScope = function (t) {\n if (null === t) return e._NULL_SCOPE_METADATA;\n\n var n = this._cache.get(t);\n\n return n || (n = this._doGetMetadataForScope(t), this._cache.set(t, n), n);\n }, e.prototype._doGetMetadataForScope = function (e) {\n var t = this._scopeToLanguage(e),\n n = this._toStandardTokenType(e),\n r = this._themeProvider.themeMatch(e);\n\n return new _(e, t, n, r);\n }, e.prototype._scopeToLanguage = function (e) {\n if (!e) return 0;\n if (!this._embeddedLanguagesRegex) return 0;\n var t = e.match(this._embeddedLanguagesRegex);\n if (!t) return 0;\n var n = this._embeddedLanguages[t[1]] || 0;\n return n || 0;\n }, e.prototype._toStandardTokenType = function (t) {\n var n = t.match(e.STANDARD_TOKEN_TYPE_REGEXP);\n if (!n) return 0;\n\n switch (n[1]) {\n case \"comment\":\n return 1;\n\n case \"string\":\n return 2;\n\n case \"regex\":\n return 4;\n\n case \"meta.embedded\":\n return 8;\n }\n\n throw new Error(\"Unexpected match for standard token type!\");\n }, e._NULL_SCOPE_METADATA = new _(\"\", 0, 0, null), e.STANDARD_TOKEN_TYPE_REGEXP = /\\b(comment|string|regex|meta\\.embedded)\\b/, e;\n }(),\n v = function () {\n function e(e, t, n, r, i, s) {\n if (this._scopeMetadataProvider = new y(t, i, n), this._onigLib = s, this._rootId = -1, this._lastRuleId = 0, this._ruleId2desc = [null], this._includedGrammars = {}, this._grammarRepository = i, this._grammar = C(e, null), this._injections = null, this._tokenTypeMatchers = [], r) for (var a = 0, c = Object.keys(r); a < c.length; a++) {\n for (var u = c[a], l = 0, h = o.createMatchers(u, g); l < h.length; l++) {\n var p = h[l];\n\n this._tokenTypeMatchers.push({\n matcher: p.matcher,\n type: r[u]\n });\n }\n }\n }\n\n return e.prototype.dispose = function () {\n for (var e = 0, t = this._ruleId2desc; e < t.length; e++) {\n var n = t[e];\n n && n.dispose();\n }\n }, e.prototype.createOnigScanner = function (e) {\n return this._onigLib.createOnigScanner(e);\n }, e.prototype.createOnigString = function (e) {\n return this._onigLib.createOnigString(e);\n }, e.prototype.onDidChangeTheme = function () {\n this._scopeMetadataProvider.onDidChangeTheme();\n }, e.prototype.getMetadataForScope = function (e) {\n return this._scopeMetadataProvider.getMetadataForScope(e);\n }, e.prototype.getInjections = function () {\n var e = this;\n\n if (null === this._injections) {\n this._injections = [];\n var t = this._grammar.injections;\n if (t) for (var n in t) {\n m(this._injections, n, t[n], this, this._grammar);\n }\n\n if (this._grammarRepository) {\n var r = this._grammarRepository.injections(this._grammar.scopeName);\n\n r && r.forEach(function (t) {\n var n = e.getExternalGrammar(t);\n\n if (n) {\n var r = n.injectionSelector;\n r && m(e._injections, r, n, e, n);\n }\n });\n }\n\n this._injections.sort(function (e, t) {\n return e.priority - t.priority;\n });\n }\n\n return this._injections;\n }, e.prototype.registerRule = function (e) {\n var t = ++this._lastRuleId,\n n = e(t);\n return this._ruleId2desc[t] = n, n;\n }, e.prototype.getRule = function (e) {\n return this._ruleId2desc[e];\n }, e.prototype.getExternalGrammar = function (e, t) {\n if (this._includedGrammars[e]) return this._includedGrammars[e];\n\n if (this._grammarRepository) {\n var n = this._grammarRepository.lookup(e);\n\n if (n) return this._includedGrammars[e] = C(n, t && t.$base), this._includedGrammars[e];\n }\n\n return null;\n }, e.prototype.tokenizeLine = function (e, t) {\n var n = this._tokenize(e, t, !1);\n\n return {\n tokens: n.lineTokens.getResult(n.ruleStack, n.lineLength),\n ruleStack: n.ruleStack\n };\n }, e.prototype.tokenizeLine2 = function (e, t) {\n var n = this._tokenize(e, t, !0);\n\n return {\n tokens: n.lineTokens.getBinaryResult(n.ruleStack, n.lineLength),\n ruleStack: n.ruleStack\n };\n }, e.prototype._tokenize = function (e, t, n) {\n var r;\n if (-1 === this._rootId && (this._rootId = i.RuleFactory.getCompiledRuleId(this._grammar.repository.$self, this, this._grammar.repository)), t && t !== I.NULL) r = !1, t.reset();else {\n r = !0;\n\n var o = this._scopeMetadataProvider.getDefaultMetadata(),\n s = o.themeData[0],\n a = P.set(0, o.languageId, o.tokenType, s.fontStyle, s.foreground, s.background),\n c = this.getRule(this._rootId).getName(null, null),\n u = this._scopeMetadataProvider.getMetadataForScope(c),\n l = x.mergeMetadata(a, null, u),\n h = new x(null, null === c ? \"unknown\" : c, l);\n\n t = new I(null, this._rootId, -1, -1, !1, null, h, h);\n }\n e += \"\\n\";\n var p = this.createOnigString(e),\n f = p.content.length,\n d = new T(n, e, this._tokenTypeMatchers),\n g = S(this, p, r, 0, t, d, !0);\n return b(p), {\n lineLength: f,\n lineTokens: d,\n ruleStack: g\n };\n }, e;\n }();\n\n function b(e) {\n \"function\" == typeof e.dispose && e.dispose();\n }\n\n function C(e, t) {\n return (e = r.clone(e)).repository = e.repository || {}, e.repository.$self = {\n $vscodeTextmateLocation: e.$vscodeTextmateLocation,\n patterns: e.patterns,\n name: e.scopeName\n }, e.repository.$base = t || e.repository.$self, e;\n }\n\n function w(e, t, n, r, i, o, s) {\n if (0 !== o.length) {\n for (var a = t.content, c = Math.min(o.length, s.length), u = [], l = s[0].end, h = 0; h < c; h++) {\n var p = o[h];\n\n if (null !== p) {\n var f = s[h];\n\n if (0 !== f.length) {\n if (f.start > l) break;\n\n for (; u.length > 0 && u[u.length - 1].endPos <= f.start;) {\n i.produceFromScopes(u[u.length - 1].scopes, u[u.length - 1].endPos), u.pop();\n }\n\n if (u.length > 0 ? i.produceFromScopes(u[u.length - 1].scopes, f.start) : i.produce(r, f.start), p.retokenizeCapturedWithRuleId) {\n var d = p.getName(a, s),\n g = r.contentNameScopesList.push(e, d),\n m = p.getContentName(a, s),\n _ = g.push(e, m),\n y = r.push(p.retokenizeCapturedWithRuleId, f.start, -1, !1, null, g, _),\n v = e.createOnigString(a.substring(0, f.end));\n\n S(e, v, n && 0 === f.start, f.start, y, i, !1), b(v);\n } else {\n var C = p.getName(a, s);\n\n if (null !== C) {\n var w = (u.length > 0 ? u[u.length - 1].scopes : r.contentNameScopesList).push(e, C);\n u.push(new A(w, f.end));\n }\n }\n }\n }\n }\n\n for (; u.length > 0;) {\n i.produceFromScopes(u[u.length - 1].scopes, u[u.length - 1].endPos), u.pop();\n }\n }\n }\n\n function k(e) {\n for (var t = [], n = 0, r = e.rules.length; n < r; n++) {\n t.push(\" - \" + e.rules[n] + \": \" + e.debugRegExps[n]);\n }\n\n return t.join(\"\\n\");\n }\n\n function R(e, t, n, r, i, o) {\n var c = function (e, t, n, r, i, o) {\n var c = i.getRule(e),\n u = c.compile(e, i.endRule, n, r === o),\n l = 0;\n s.DebugFlags.InDebugMode && (l = a());\n var h = u.scanner.findNextMatchSync(t, r);\n\n if (s.DebugFlags.InDebugMode) {\n var p = a() - l;\n p > 5 && console.warn(\"Rule \" + c.debugName + \" (\" + c.id + \") matching took \" + p + \" against '\" + t + \"'\"), h && console.log(\"matched rule id: \" + u.rules[h.index] + \" from \" + h.captureIndices[0].start + \" to \" + h.captureIndices[0].end);\n }\n\n return h ? {\n captureIndices: h.captureIndices,\n matchedRuleId: u.rules[h.index]\n } : null;\n }(e, t, n, r, i, o),\n u = e.getInjections();\n\n if (0 === u.length) return c;\n\n var l = function (e, t, n, r, i, o, a) {\n for (var c, u = Number.MAX_VALUE, l = null, h = 0, p = o.contentNameScopesList.generateScopes(), f = 0, d = e.length; f < d; f++) {\n var g = e[f];\n\n if (g.matcher(p)) {\n var m = t.getRule(g.ruleId).compile(t, null, r, i === a),\n _ = m.scanner.findNextMatchSync(n, i);\n\n if (s.DebugFlags.InDebugMode && (console.log(\" scanning for injections\"), console.log(k(m))), _) {\n var y = _.captureIndices[0].start;\n if (!(y >= u) && (u = y, l = _.captureIndices, c = m.rules[_.index], h = g.priority, u === i)) break;\n }\n }\n }\n\n return l ? {\n priorityMatch: -1 === h,\n captureIndices: l,\n matchedRuleId: c\n } : null;\n }(u, e, t, n, r, i, o);\n\n if (!l) return c;\n if (!c) return l;\n var h = c.captureIndices[0].start,\n p = l.captureIndices[0].start;\n return p < h || l.priorityMatch && p === h ? l : c;\n }\n\n function S(e, t, n, r, o, a, c) {\n var u = t.content.length,\n l = !1,\n h = -1;\n\n if (c) {\n var p = function (e, t, n, r, o, a) {\n for (var c = o.beginRuleCapturedEOL ? 0 : -1, u = [], l = o; l; l = l.pop()) {\n var h = l.getRule(e);\n h instanceof i.BeginWhileRule && u.push({\n rule: h,\n stack: l\n });\n }\n\n for (var p = u.pop(); p; p = u.pop()) {\n var f = p.rule.compileWhile(e, p.stack.endRule, n, c === r),\n d = f.scanner.findNextMatchSync(t, r);\n\n if (s.DebugFlags.InDebugMode && (console.log(\" scanning for while rule\"), console.log(k(f))), !d) {\n s.DebugFlags.InDebugMode && console.log(\" popping \" + p.rule.debugName + \" - \" + p.rule.debugWhileRegExp), o = p.stack.pop();\n break;\n }\n\n if (-2 !== f.rules[d.index]) {\n o = p.stack.pop();\n break;\n }\n\n d.captureIndices && d.captureIndices.length && (a.produce(p.stack, d.captureIndices[0].start), w(e, t, n, p.stack, a, p.rule.whileCaptures, d.captureIndices), a.produce(p.stack, d.captureIndices[0].end), c = d.captureIndices[0].end, d.captureIndices[0].end > r && (r = d.captureIndices[0].end, n = !1));\n }\n\n return {\n stack: o,\n linePos: r,\n anchorPosition: c,\n isFirstLine: n\n };\n }(e, t, n, r, o, a);\n\n o = p.stack, r = p.linePos, n = p.isFirstLine, h = p.anchorPosition;\n }\n\n for (; !l;) {\n f();\n }\n\n function f() {\n s.DebugFlags.InDebugMode && (console.log(\"\"), console.log(\"@@scanNext \" + r + \": |\" + t.content.substr(r).replace(/\\n$/, \"\\\\n\") + \"|\"));\n var c = R(e, t, n, r, o, h);\n if (!c) return s.DebugFlags.InDebugMode && console.log(\" no more matches.\"), a.produce(o, u), void (l = !0);\n var p = c.captureIndices,\n f = c.matchedRuleId,\n d = !!(p && p.length > 0) && p[0].end > r;\n\n if (-1 === f) {\n var g = o.getRule(e);\n s.DebugFlags.InDebugMode && console.log(\" popping \" + g.debugName + \" - \" + g.debugEndRegExp), a.produce(o, p[0].start), o = o.setContentNameScopesList(o.nameScopesList), w(e, t, n, o, a, g.endCaptures, p), a.produce(o, p[0].end);\n var m = o;\n if (o = o.pop(), h = m.getAnchorPos(), !d && m.getEnterPos() === r) return s.DebugFlags.InDebugMode && console.error(\"[1] - Grammar is in an endless loop - Grammar pushed & popped a rule without advancing\"), o = m, a.produce(o, u), void (l = !0);\n } else {\n var _ = e.getRule(f);\n\n a.produce(o, p[0].start);\n\n var y = o,\n v = _.getName(t.content, p),\n b = o.contentNameScopesList.push(e, v);\n\n if (o = o.push(f, r, h, p[0].end === u, null, b, b), _ instanceof i.BeginEndRule) {\n var C = _;\n s.DebugFlags.InDebugMode && console.log(\" pushing \" + C.debugName + \" - \" + C.debugBeginRegExp), w(e, t, n, o, a, C.beginCaptures, p), a.produce(o, p[0].end), h = p[0].end;\n var k = C.getContentName(t.content, p),\n S = b.push(e, k);\n if (o = o.setContentNameScopesList(S), C.endHasBackReferences && (o = o.setEndRule(C.getEndWithResolvedBackReferences(t.content, p))), !d && y.hasSameRuleAs(o)) return s.DebugFlags.InDebugMode && console.error(\"[2] - Grammar is in an endless loop - Grammar pushed the same rule without advancing\"), o = o.pop(), a.produce(o, u), void (l = !0);\n } else if (_ instanceof i.BeginWhileRule) {\n C = _;\n s.DebugFlags.InDebugMode && console.log(\" pushing \" + C.debugName), w(e, t, n, o, a, C.beginCaptures, p), a.produce(o, p[0].end), h = p[0].end;\n k = C.getContentName(t.content, p), S = b.push(e, k);\n if (o = o.setContentNameScopesList(S), C.whileHasBackReferences && (o = o.setEndRule(C.getWhileWithResolvedBackReferences(t.content, p))), !d && y.hasSameRuleAs(o)) return s.DebugFlags.InDebugMode && console.error(\"[3] - Grammar is in an endless loop - Grammar pushed the same rule without advancing\"), o = o.pop(), a.produce(o, u), void (l = !0);\n } else {\n var P = _;\n if (s.DebugFlags.InDebugMode && console.log(\" matched \" + P.debugName + \" - \" + P.debugMatchRegExp), w(e, t, n, o, a, P.captures, p), a.produce(o, p[0].end), o = o.pop(), !d) return s.DebugFlags.InDebugMode && console.error(\"[4] - Grammar is in an endless loop - Grammar is not advancing, nor is it pushing/popping\"), o = o.safePop(), a.produce(o, u), void (l = !0);\n }\n }\n\n p[0].end > r && (r = p[0].end, n = !1);\n }\n\n return o;\n }\n\n t.Grammar = v;\n\n var P = function () {\n function e() {}\n\n return e.toBinaryStr = function (e) {\n for (var t = e.toString(2); t.length < 32;) {\n t = \"0\" + t;\n }\n\n return t;\n }, e.printMetadata = function (t) {\n var n = e.getLanguageId(t),\n r = e.getTokenType(t),\n i = e.getFontStyle(t),\n o = e.getForeground(t),\n s = e.getBackground(t);\n console.log({\n languageId: n,\n tokenType: r,\n fontStyle: i,\n foreground: o,\n background: s\n });\n }, e.getLanguageId = function (e) {\n return (255 & e) >>> 0;\n }, e.getTokenType = function (e) {\n return (1792 & e) >>> 8;\n }, e.getFontStyle = function (e) {\n return (14336 & e) >>> 11;\n }, e.getForeground = function (e) {\n return (8372224 & e) >>> 14;\n }, e.getBackground = function (e) {\n return (4286578688 & e) >>> 23;\n }, e.set = function (t, n, r, i, o, s) {\n var a = e.getLanguageId(t),\n c = e.getTokenType(t),\n u = e.getFontStyle(t),\n l = e.getForeground(t),\n h = e.getBackground(t);\n return 0 !== n && (a = n), 0 !== r && (c = 8 === r ? 0 : r), -1 !== i && (u = i), 0 !== o && (l = o), 0 !== s && (h = s), (a << 0 | c << 8 | u << 11 | l << 14 | h << 23) >>> 0;\n }, e;\n }();\n\n t.StackElementMetadata = P;\n\n var x = function () {\n function e(e, t, n) {\n this.parent = e, this.scope = t, this.metadata = n;\n }\n\n return e._equals = function (e, t) {\n for (;;) {\n if (e === t) return !0;\n if (!e && !t) return !0;\n if (!e || !t) return !1;\n if (e.scope !== t.scope || e.metadata !== t.metadata) return !1;\n e = e.parent, t = t.parent;\n }\n }, e.prototype.equals = function (t) {\n return e._equals(this, t);\n }, e._matchesScope = function (e, t, n) {\n return t === e || e.substring(0, n.length) === n;\n }, e._matches = function (e, t) {\n if (null === t) return !0;\n\n for (var n = t.length, r = 0, i = t[r], o = i + \".\"; e;) {\n if (this._matchesScope(e.scope, i, o)) {\n if (++r === n) return !0;\n o = (i = t[r]) + \".\";\n }\n\n e = e.parent;\n }\n\n return !1;\n }, e.mergeMetadata = function (e, t, n) {\n if (null === n) return e;\n var r = -1,\n i = 0,\n o = 0;\n if (null !== n.themeData) for (var s = 0, a = n.themeData.length; s < a; s++) {\n var c = n.themeData[s];\n\n if (this._matches(t, c.parentScopes)) {\n r = c.fontStyle, i = c.foreground, o = c.background;\n break;\n }\n }\n return P.set(e, n.languageId, n.tokenType, r, i, o);\n }, e._push = function (t, n, r) {\n for (var i = 0, o = r.length; i < o; i++) {\n var s = r[i],\n a = n.getMetadataForScope(s),\n c = e.mergeMetadata(t.metadata, t, a);\n t = new e(t, s, c);\n }\n\n return t;\n }, e.prototype.push = function (t, n) {\n return null === n ? this : n.indexOf(\" \") >= 0 ? e._push(this, t, n.split(/ /g)) : e._push(this, t, [n]);\n }, e._generateScopes = function (e) {\n for (var t = [], n = 0; e;) {\n t[n++] = e.scope, e = e.parent;\n }\n\n return t.reverse(), t;\n }, e.prototype.generateScopes = function () {\n return e._generateScopes(this);\n }, e;\n }();\n\n t.ScopeListElement = x;\n\n var I = function () {\n function e(e, t, n, r, i, o, s, a) {\n this.parent = e, this.depth = this.parent ? this.parent.depth + 1 : 1, this.ruleId = t, this._enterPos = n, this._anchorPos = r, this.beginRuleCapturedEOL = i, this.endRule = o, this.nameScopesList = s, this.contentNameScopesList = a;\n }\n\n return e._structuralEquals = function (e, t) {\n for (;;) {\n if (e === t) return !0;\n if (!e && !t) return !0;\n if (!e || !t) return !1;\n if (e.depth !== t.depth || e.ruleId !== t.ruleId || e.endRule !== t.endRule) return !1;\n e = e.parent, t = t.parent;\n }\n }, e._equals = function (e, t) {\n return e === t || !!this._structuralEquals(e, t) && e.contentNameScopesList.equals(t.contentNameScopesList);\n }, e.prototype.clone = function () {\n return this;\n }, e.prototype.equals = function (t) {\n return null !== t && e._equals(this, t);\n }, e._reset = function (e) {\n for (; e;) {\n e._enterPos = -1, e._anchorPos = -1, e = e.parent;\n }\n }, e.prototype.reset = function () {\n e._reset(this);\n }, e.prototype.pop = function () {\n return this.parent;\n }, e.prototype.safePop = function () {\n return this.parent ? this.parent : this;\n }, e.prototype.push = function (t, n, r, i, o, s, a) {\n return new e(this, t, n, r, i, o, s, a);\n }, e.prototype.getEnterPos = function () {\n return this._enterPos;\n }, e.prototype.getAnchorPos = function () {\n return this._anchorPos;\n }, e.prototype.getRule = function (e) {\n return e.getRule(this.ruleId);\n }, e.prototype._writeString = function (e, t) {\n return this.parent && (t = this.parent._writeString(e, t)), e[t++] = \"(\" + this.ruleId + \", TODO-\" + this.nameScopesList + \", TODO-\" + this.contentNameScopesList + \")\", t;\n }, e.prototype.toString = function () {\n var e = [];\n return this._writeString(e, 0), \"[\" + e.join(\",\") + \"]\";\n }, e.prototype.setContentNameScopesList = function (e) {\n return this.contentNameScopesList === e ? this : this.parent.push(this.ruleId, this._enterPos, this._anchorPos, this.beginRuleCapturedEOL, this.endRule, this.nameScopesList, e);\n }, e.prototype.setEndRule = function (t) {\n return this.endRule === t ? this : new e(this.parent, this.ruleId, this._enterPos, this._anchorPos, this.beginRuleCapturedEOL, t, this.nameScopesList, this.contentNameScopesList);\n }, e.prototype.hasSameRuleAs = function (e) {\n return this.ruleId === e.ruleId;\n }, e.NULL = new e(null, 0, 0, 0, !1, null, null, null), e;\n }();\n\n t.StackElement = I;\n\n var A = function A(e, t) {\n this.scopes = e, this.endPos = t;\n };\n\n t.LocalStackElement = A;\n\n var T = function () {\n function e(e, t, n) {\n this._emitBinaryTokens = e, this._tokenTypeOverrides = n, s.DebugFlags.InDebugMode ? this._lineText = t : this._lineText = null, this._tokens = [], this._binaryTokens = [], this._lastTokenEndIndex = 0;\n }\n\n return e.prototype.produce = function (e, t) {\n this.produceFromScopes(e.contentNameScopesList, t);\n }, e.prototype.produceFromScopes = function (e, t) {\n if (!(this._lastTokenEndIndex >= t)) {\n if (this._emitBinaryTokens) {\n for (var n = e.metadata, r = 0, i = this._tokenTypeOverrides; r < i.length; r++) {\n var o = i[r];\n o.matcher(e.generateScopes()) && (n = P.set(n, 0, L(o.type), -1, 0, 0));\n }\n\n return this._binaryTokens.length > 0 && this._binaryTokens[this._binaryTokens.length - 1] === n || (this._binaryTokens.push(this._lastTokenEndIndex), this._binaryTokens.push(n)), void (this._lastTokenEndIndex = t);\n }\n\n var a = e.generateScopes();\n\n if (s.DebugFlags.InDebugMode) {\n console.log(\" token: |\" + this._lineText.substring(this._lastTokenEndIndex, t).replace(/\\n$/, \"\\\\n\") + \"|\");\n\n for (var c = 0; c < a.length; c++) {\n console.log(\" * \" + a[c]);\n }\n }\n\n this._tokens.push({\n startIndex: this._lastTokenEndIndex,\n endIndex: t,\n scopes: a\n }), this._lastTokenEndIndex = t;\n }\n }, e.prototype.getResult = function (e, t) {\n return this._tokens.length > 0 && this._tokens[this._tokens.length - 1].startIndex === t - 1 && this._tokens.pop(), 0 === this._tokens.length && (this._lastTokenEndIndex = -1, this.produce(e, t), this._tokens[this._tokens.length - 1].startIndex = 0), this._tokens;\n }, e.prototype.getBinaryResult = function (e, t) {\n this._binaryTokens.length > 0 && this._binaryTokens[this._binaryTokens.length - 2] === t - 1 && (this._binaryTokens.pop(), this._binaryTokens.pop()), 0 === this._binaryTokens.length && (this._lastTokenEndIndex = -1, this.produce(e, t), this._binaryTokens[this._binaryTokens.length - 2] = 0);\n\n for (var n = new Uint32Array(this._binaryTokens.length), r = 0, i = this._binaryTokens.length; r < i; r++) {\n n[r] = this._binaryTokens[r];\n }\n\n return n;\n }, e;\n }();\n\n function L(e) {\n switch (e) {\n case 4:\n return 4;\n\n case 2:\n return 2;\n\n case 1:\n return 1;\n\n case 0:\n default:\n return 8;\n }\n }\n }, function (e, t, n) {\n \"use strict\";\n\n function r(e) {\n return Array.isArray(e) ? function (e) {\n for (var t = [], n = 0, i = e.length; n < i; n++) {\n t[n] = r(e[n]);\n }\n\n return t;\n }(e) : \"object\" == typeof e ? function (e) {\n var t = {};\n\n for (var n in e) {\n t[n] = r(e[n]);\n }\n\n return t;\n }(e) : e;\n }\n\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.clone = function (e) {\n return r(e);\n }, t.mergeObjects = function (e) {\n for (var t = [], n = 1; n < arguments.length; n++) {\n t[n - 1] = arguments[n];\n }\n\n return t.forEach(function (t) {\n for (var n in t) {\n e[n] = t[n];\n }\n }), e;\n }, t.basename = function e(t) {\n var n = ~t.lastIndexOf(\"/\") || ~t.lastIndexOf(\"\\\\\");\n return 0 === n ? t : ~n == t.length - 1 ? e(t.substring(0, t.length - 1)) : t.substr(1 + ~n);\n };\n\n var i = /\\$(\\d+)|\\${(\\d+):\\/(downcase|upcase)}/,\n o = function () {\n function e() {}\n\n return e.hasCaptures = function (e) {\n return null !== e && i.test(e);\n }, e.replaceCaptures = function (e, t, n) {\n return e.replace(i, function (e, r, i, o) {\n var s = n[parseInt(r || i, 10)];\n if (!s) return e;\n\n for (var a = t.substring(s.start, s.end); \".\" === a[0];) {\n a = a.substring(1);\n }\n\n switch (o) {\n case \"downcase\":\n return a.toLowerCase();\n\n case \"upcase\":\n return a.toUpperCase();\n\n default:\n return a;\n }\n });\n }, e;\n }();\n\n t.RegexSource = o;\n }, function (e, t, n) {\n \"use strict\";\n\n (function (e) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.DebugFlags = {\n InDebugMode: void 0 !== e && !!e.env.VSCODE_TEXTMATE_DEBUG\n };\n }).call(this, n(7));\n }, function (e, t, n) {\n \"use strict\";\n\n var r = this && this.__awaiter || function (e, t, n, r) {\n return new (n || (n = Promise))(function (i, o) {\n function s(e) {\n try {\n c(r.next(e));\n } catch (e) {\n o(e);\n }\n }\n\n function a(e) {\n try {\n c(r.throw(e));\n } catch (e) {\n o(e);\n }\n }\n\n function c(e) {\n var t;\n e.done ? i(e.value) : (t = e.value, t instanceof n ? t : new n(function (e) {\n e(t);\n })).then(s, a);\n }\n\n c((r = r.apply(e, t || [])).next());\n });\n },\n i = this && this.__generator || function (e, t) {\n var n,\n r,\n i,\n o,\n s = {\n label: 0,\n sent: function sent() {\n if (1 & i[0]) throw i[1];\n return i[1];\n },\n trys: [],\n ops: []\n };\n return o = {\n next: a(0),\n throw: a(1),\n return: a(2)\n }, \"function\" == typeof Symbol && (o[Symbol.iterator] = function () {\n return this;\n }), o;\n\n function a(o) {\n return function (a) {\n return function (o) {\n if (n) throw new TypeError(\"Generator is already executing.\");\n\n for (; s;) {\n try {\n if (n = 1, r && (i = 2 & o[0] ? r.return : o[0] ? r.throw || ((i = r.return) && i.call(r), 0) : r.next) && !(i = i.call(r, o[1])).done) return i;\n\n switch (r = 0, i && (o = [2 & o[0], i.value]), o[0]) {\n case 0:\n case 1:\n i = o;\n break;\n\n case 4:\n return s.label++, {\n value: o[1],\n done: !1\n };\n\n case 5:\n s.label++, r = o[1], o = [0];\n continue;\n\n case 7:\n o = s.ops.pop(), s.trys.pop();\n continue;\n\n default:\n if (!(i = s.trys, (i = i.length > 0 && i[i.length - 1]) || 6 !== o[0] && 2 !== o[0])) {\n s = 0;\n continue;\n }\n\n if (3 === o[0] && (!i || o[1] > i[0] && o[1] < i[3])) {\n s.label = o[1];\n break;\n }\n\n if (6 === o[0] && s.label < i[1]) {\n s.label = i[1], i = o;\n break;\n }\n\n if (i && s.label < i[2]) {\n s.label = i[2], s.ops.push(o);\n break;\n }\n\n i[2] && s.ops.pop(), s.trys.pop();\n continue;\n }\n\n o = t.call(e, s);\n } catch (e) {\n o = [6, e], r = 0;\n } finally {\n n = i = 0;\n }\n }\n\n if (5 & o[0]) throw o[1];\n return {\n value: o[0] ? o[1] : void 0,\n done: !0\n };\n }([o, a]);\n };\n }\n };\n\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n });\n\n var o = n(4),\n s = n(8),\n a = n(11),\n c = n(0),\n u = function () {\n function e(e) {\n this._options = e, this._syncRegistry = new o.SyncRegistry(a.Theme.createFromRawTheme(e.theme, e.colorMap), e.onigLib), this._ensureGrammarCache = new Map();\n }\n\n return e.prototype.dispose = function () {\n this._syncRegistry.dispose();\n }, e.prototype.setTheme = function (e, t) {\n this._syncRegistry.setTheme(a.Theme.createFromRawTheme(e, t));\n }, e.prototype.getColorMap = function () {\n return this._syncRegistry.getColorMap();\n }, e.prototype.loadGrammarWithEmbeddedLanguages = function (e, t, n) {\n return this.loadGrammarWithConfiguration(e, t, {\n embeddedLanguages: n\n });\n }, e.prototype.loadGrammarWithConfiguration = function (e, t, n) {\n return this._loadGrammar(e, t, n.embeddedLanguages, n.tokenTypes);\n }, e.prototype.loadGrammar = function (e) {\n return this._loadGrammar(e, 0, null, null);\n }, e.prototype._doLoadSingleGrammar = function (e) {\n return r(this, void 0, void 0, function () {\n var t, n;\n return i(this, function (r) {\n switch (r.label) {\n case 0:\n return [4, this._options.loadGrammar(e)];\n\n case 1:\n return (t = r.sent()) && (n = \"function\" == typeof this._options.getInjections ? this._options.getInjections(e) : void 0, this._syncRegistry.addGrammar(t, n)), [2];\n }\n });\n });\n }, e.prototype._loadSingleGrammar = function (e) {\n return r(this, void 0, void 0, function () {\n return i(this, function (t) {\n return this._ensureGrammarCache.has(e) || this._ensureGrammarCache.set(e, this._doLoadSingleGrammar(e)), [2, this._ensureGrammarCache.get(e)];\n });\n });\n }, e.prototype._collectDependenciesForDep = function (e, t, n) {\n var r = this._syncRegistry.lookup(n.scopeName);\n\n if (r) {\n n instanceof c.FullScopeDependency ? c.collectDependencies(t, this._syncRegistry.lookup(e), r) : c.collectSpecificDependencies(t, this._syncRegistry.lookup(e), r, n.include);\n\n var i = this._syncRegistry.injections(n.scopeName);\n\n if (i) for (var o = 0, s = i; o < s.length; o++) {\n var a = s[o];\n t.add(new c.FullScopeDependency(a));\n }\n } else if (n.scopeName === e) throw new Error(\"No grammar provided for <\" + e + \">\");\n }, e.prototype._loadGrammar = function (e, t, n, o) {\n return r(this, void 0, void 0, function () {\n var r,\n s,\n a,\n u,\n l,\n h,\n p,\n f,\n d,\n g,\n m,\n _,\n y = this;\n\n return i(this, function (i) {\n switch (i.label) {\n case 0:\n r = new Set(), s = new Set(), r.add(e), a = [new c.FullScopeDependency(e)], i.label = 1;\n\n case 1:\n return a.length > 0 ? (u = a, a = [], [4, Promise.all(u.map(function (e) {\n return y._loadSingleGrammar(e.scopeName);\n }))]) : [3, 3];\n\n case 2:\n for (i.sent(), l = new c.ScopeDependencyCollector(), h = 0, p = u; h < p.length; h++) {\n _ = p[h], this._collectDependenciesForDep(e, l, _);\n }\n\n for (f = 0, d = l.full; f < d.length; f++) {\n _ = d[f], r.has(_.scopeName) || (r.add(_.scopeName), a.push(_));\n }\n\n for (g = 0, m = l.partial; g < m.length; g++) {\n _ = m[g], r.has(_.scopeName) || s.has(_.toKey()) || (s.add(_.toKey()), a.push(_));\n }\n\n return [3, 1];\n\n case 3:\n return [2, this.grammarForScopeName(e, t, n, o)];\n }\n });\n });\n }, e.prototype.addGrammar = function (e, t, n, o) {\n return void 0 === t && (t = []), void 0 === n && (n = 0), void 0 === o && (o = null), r(this, void 0, void 0, function () {\n return i(this, function (r) {\n switch (r.label) {\n case 0:\n return this._syncRegistry.addGrammar(e, t), [4, this.grammarForScopeName(e.scopeName, n, o)];\n\n case 1:\n return [2, r.sent()];\n }\n });\n });\n }, e.prototype.grammarForScopeName = function (e, t, n, r) {\n return void 0 === t && (t = 0), void 0 === n && (n = null), void 0 === r && (r = null), this._syncRegistry.grammarForScopeName(e, t, n, r);\n }, e;\n }();\n\n t.Registry = u, t.INITIAL = c.StackElement.NULL, t.parseRawGrammar = s.parseRawGrammar;\n }, function (e, t, n) {\n \"use strict\";\n\n var r = this && this.__awaiter || function (e, t, n, r) {\n return new (n || (n = Promise))(function (i, o) {\n function s(e) {\n try {\n c(r.next(e));\n } catch (e) {\n o(e);\n }\n }\n\n function a(e) {\n try {\n c(r.throw(e));\n } catch (e) {\n o(e);\n }\n }\n\n function c(e) {\n var t;\n e.done ? i(e.value) : (t = e.value, t instanceof n ? t : new n(function (e) {\n e(t);\n })).then(s, a);\n }\n\n c((r = r.apply(e, t || [])).next());\n });\n },\n i = this && this.__generator || function (e, t) {\n var n,\n r,\n i,\n o,\n s = {\n label: 0,\n sent: function sent() {\n if (1 & i[0]) throw i[1];\n return i[1];\n },\n trys: [],\n ops: []\n };\n return o = {\n next: a(0),\n throw: a(1),\n return: a(2)\n }, \"function\" == typeof Symbol && (o[Symbol.iterator] = function () {\n return this;\n }), o;\n\n function a(o) {\n return function (a) {\n return function (o) {\n if (n) throw new TypeError(\"Generator is already executing.\");\n\n for (; s;) {\n try {\n if (n = 1, r && (i = 2 & o[0] ? r.return : o[0] ? r.throw || ((i = r.return) && i.call(r), 0) : r.next) && !(i = i.call(r, o[1])).done) return i;\n\n switch (r = 0, i && (o = [2 & o[0], i.value]), o[0]) {\n case 0:\n case 1:\n i = o;\n break;\n\n case 4:\n return s.label++, {\n value: o[1],\n done: !1\n };\n\n case 5:\n s.label++, r = o[1], o = [0];\n continue;\n\n case 7:\n o = s.ops.pop(), s.trys.pop();\n continue;\n\n default:\n if (!(i = s.trys, (i = i.length > 0 && i[i.length - 1]) || 6 !== o[0] && 2 !== o[0])) {\n s = 0;\n continue;\n }\n\n if (3 === o[0] && (!i || o[1] > i[0] && o[1] < i[3])) {\n s.label = o[1];\n break;\n }\n\n if (6 === o[0] && s.label < i[1]) {\n s.label = i[1], i = o;\n break;\n }\n\n if (i && s.label < i[2]) {\n s.label = i[2], s.ops.push(o);\n break;\n }\n\n i[2] && s.ops.pop(), s.trys.pop();\n continue;\n }\n\n o = t.call(e, s);\n } catch (e) {\n o = [6, e], r = 0;\n } finally {\n n = i = 0;\n }\n }\n\n if (5 & o[0]) throw o[1];\n return {\n value: o[0] ? o[1] : void 0,\n done: !0\n };\n }([o, a]);\n };\n }\n };\n\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n });\n\n var o = n(0),\n s = function () {\n function e(e, t) {\n this._theme = e, this._grammars = {}, this._rawGrammars = {}, this._injectionGrammars = {}, this._onigLibPromise = t;\n }\n\n return e.prototype.dispose = function () {\n for (var e in this._grammars) {\n this._grammars.hasOwnProperty(e) && this._grammars[e].dispose();\n }\n }, e.prototype.setTheme = function (e) {\n var t = this;\n this._theme = e, Object.keys(this._grammars).forEach(function (e) {\n t._grammars[e].onDidChangeTheme();\n });\n }, e.prototype.getColorMap = function () {\n return this._theme.getColorMap();\n }, e.prototype.addGrammar = function (e, t) {\n this._rawGrammars[e.scopeName] = e, t && (this._injectionGrammars[e.scopeName] = t);\n }, e.prototype.lookup = function (e) {\n return this._rawGrammars[e];\n }, e.prototype.injections = function (e) {\n return this._injectionGrammars[e];\n }, e.prototype.getDefaults = function () {\n return this._theme.getDefaults();\n }, e.prototype.themeMatch = function (e) {\n return this._theme.match(e);\n }, e.prototype.grammarForScopeName = function (e, t, n, s) {\n return r(this, void 0, void 0, function () {\n var r, a, c, u, l;\n return i(this, function (i) {\n switch (i.label) {\n case 0:\n return this._grammars[e] ? [3, 2] : (r = this._rawGrammars[e]) ? (a = this._grammars, c = e, u = o.createGrammar, l = [r, t, n, s, this], [4, this._onigLibPromise]) : [2, null];\n\n case 1:\n a[c] = u.apply(void 0, l.concat([i.sent()])), i.label = 2;\n\n case 2:\n return [2, this._grammars[e]];\n }\n });\n });\n }, e;\n }();\n\n t.SyncRegistry = s;\n }, function (e, t, n) {\n \"use strict\";\n\n var _r,\n i = this && this.__extends || (_r = function r(e, t) {\n return (_r = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (e, t) {\n e.__proto__ = t;\n } || function (e, t) {\n for (var n in t) {\n t.hasOwnProperty(n) && (e[n] = t[n]);\n }\n })(e, t);\n }, function (e, t) {\n function n() {\n this.constructor = e;\n }\n\n _r(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n());\n });\n\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n });\n\n var o = n(1),\n s = /\\\\(\\d+)/,\n a = /\\\\(\\d+)/g,\n c = function () {\n function e(e, t, n) {\n this.debugRegExps = t, this.rules = n, this.scanner = e.createOnigScanner(t);\n }\n\n return e.prototype.dispose = function () {\n \"function\" == typeof this.scanner.dispose && this.scanner.dispose();\n }, e;\n }();\n\n t.CompiledRule = c;\n\n var u = function () {\n function e(e, t, n, r) {\n this.$location = e, this.id = t, this._name = n || null, this._nameIsCapturing = o.RegexSource.hasCaptures(this._name), this._contentName = r || null, this._contentNameIsCapturing = o.RegexSource.hasCaptures(this._contentName);\n }\n\n return Object.defineProperty(e.prototype, \"debugName\", {\n get: function get() {\n var e = this.$location ? o.basename(this.$location.filename) + \":\" + this.$location.line : \"unknown\";\n return this.constructor.name + \"#\" + this.id + \" @ \" + e;\n },\n enumerable: !0,\n configurable: !0\n }), e.prototype.getName = function (e, t) {\n return this._nameIsCapturing && null !== this._name && null !== e && null !== t ? o.RegexSource.replaceCaptures(this._name, e, t) : this._name;\n }, e.prototype.getContentName = function (e, t) {\n return this._contentNameIsCapturing && null !== this._contentName ? o.RegexSource.replaceCaptures(this._contentName, e, t) : this._contentName;\n }, e;\n }();\n\n t.Rule = u;\n\n var l = function (e) {\n function t(t, n, r, i, o) {\n var s = e.call(this, t, n, r, i) || this;\n return s.retokenizeCapturedWithRuleId = o, s;\n }\n\n return i(t, e), t.prototype.dispose = function () {}, t.prototype.collectPatternsRecursive = function (e, t, n) {\n throw new Error(\"Not supported!\");\n }, t.prototype.compile = function (e, t, n, r) {\n throw new Error(\"Not supported!\");\n }, t;\n }(u);\n\n t.CaptureRule = l;\n\n var h = function () {\n function e(e, t, n) {\n if (void 0 === n && (n = !0), n) {\n if (e) {\n for (var r = e.length, i = 0, o = [], a = !1, c = 0; c < r; c++) {\n if (\"\\\\\" === e.charAt(c) && c + 1 < r) {\n var u = e.charAt(c + 1);\n \"z\" === u ? (o.push(e.substring(i, c)), o.push(\"$(?!\\\\n)(? o && (o = c);\n }\n\n for (var a = 0; a <= o; a++) {\n i[a] = null;\n }\n\n for (var s in t) {\n if (\"$vscodeTextmateLocation\" !== s) {\n var c = parseInt(s, 10),\n u = 0;\n t[s].patterns && (u = e.getCompiledRuleId(t[s], n, r)), i[c] = e.createCaptureRule(n, t[s].$vscodeTextmateLocation, t[s].name, t[s].contentName, u);\n }\n }\n }\n\n return i;\n }, e._compilePatterns = function (t, n, r) {\n var i = [];\n if (t) for (var o = 0, s = t.length; o < s; o++) {\n var a = t[o],\n c = -1;\n if (a.include) {\n if (\"#\" === a.include.charAt(0)) {\n var u = r[a.include.substr(1)];\n u && (c = e.getCompiledRuleId(u, n, r));\n } else if (\"$base\" === a.include || \"$self\" === a.include) c = e.getCompiledRuleId(r[a.include], n, r);else {\n var l = null,\n h = null,\n p = a.include.indexOf(\"#\");\n p >= 0 ? (l = a.include.substring(0, p), h = a.include.substring(p + 1)) : l = a.include;\n var f = n.getExternalGrammar(l, r);\n if (f) if (h) {\n var _ = f.repository[h];\n _ && (c = e.getCompiledRuleId(_, n, f.repository));\n } else c = e.getCompiledRuleId(f.repository.$self, n, f.repository);\n }\n } else c = e.getCompiledRuleId(a, n, r);\n\n if (-1 !== c) {\n var y = n.getRule(c),\n v = !1;\n if ((y instanceof d || y instanceof g || y instanceof m) && y.hasMissingPatterns && 0 === y.patterns.length && (v = !0), v) continue;\n i.push(c);\n }\n }\n return {\n patterns: i,\n hasMissingPatterns: (t ? t.length : 0) !== i.length\n };\n }, e;\n }();\n\n t.RuleFactory = _;\n }, function (e, t, n) {\n \"use strict\";\n\n function r(e) {\n return !!e && !!e.match(/[\\w\\.:]+/);\n }\n\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.createMatchers = function (e, t) {\n for (var n, i, o, s = [], a = (o = (i = /([LR]:|[\\w\\.:][\\w\\.:\\-]*|[\\,\\|\\-\\(\\)])/g).exec(n = e), {\n next: function next() {\n if (!o) return null;\n var e = o[0];\n return o = i.exec(n), e;\n }\n }), c = a.next(); null !== c;) {\n var u = 0;\n\n if (2 === c.length && \":\" === c.charAt(1)) {\n switch (c.charAt(0)) {\n case \"R\":\n u = 1;\n break;\n\n case \"L\":\n u = -1;\n break;\n\n default:\n console.log(\"Unknown priority \" + c + \" in scope selector\");\n }\n\n c = a.next();\n }\n\n var l = p();\n if (s.push({\n matcher: l,\n priority: u\n }), \",\" !== c) break;\n c = a.next();\n }\n\n return s;\n\n function h() {\n if (\"-\" === c) {\n c = a.next();\n var e = h();\n return function (t) {\n return !!e && !e(t);\n };\n }\n\n if (\"(\" === c) {\n c = a.next();\n\n var n = function () {\n var e = [],\n t = p();\n\n for (; t && (e.push(t), \"|\" === c || \",\" === c);) {\n do {\n c = a.next();\n } while (\"|\" === c || \",\" === c);\n\n t = p();\n }\n\n return function (t) {\n return e.some(function (e) {\n return e(t);\n });\n };\n }();\n\n return \")\" === c && (c = a.next()), n;\n }\n\n if (r(c)) {\n var i = [];\n\n do {\n i.push(c), c = a.next();\n } while (r(c));\n\n return function (e) {\n return t(i, e);\n };\n }\n\n return null;\n }\n\n function p() {\n for (var e = [], t = h(); t;) {\n e.push(t), t = h();\n }\n\n return function (t) {\n return e.every(function (e) {\n return e(t);\n });\n };\n }\n };\n }, function (e, t) {\n var n,\n r,\n i = e.exports = {};\n\n function o() {\n throw new Error(\"setTimeout has not been defined\");\n }\n\n function s() {\n throw new Error(\"clearTimeout has not been defined\");\n }\n\n function a(e) {\n if (n === setTimeout) return setTimeout(e, 0);\n if ((n === o || !n) && setTimeout) return n = setTimeout, setTimeout(e, 0);\n\n try {\n return n(e, 0);\n } catch (t) {\n try {\n return n.call(null, e, 0);\n } catch (t) {\n return n.call(this, e, 0);\n }\n }\n }\n\n !function () {\n try {\n n = \"function\" == typeof setTimeout ? setTimeout : o;\n } catch (e) {\n n = o;\n }\n\n try {\n r = \"function\" == typeof clearTimeout ? clearTimeout : s;\n } catch (e) {\n r = s;\n }\n }();\n var c,\n u = [],\n l = !1,\n h = -1;\n\n function p() {\n l && c && (l = !1, c.length ? u = c.concat(u) : h = -1, u.length && f());\n }\n\n function f() {\n if (!l) {\n var e = a(p);\n l = !0;\n\n for (var t = u.length; t;) {\n for (c = u, u = []; ++h < t;) {\n c && c[h].run();\n }\n\n h = -1, t = u.length;\n }\n\n c = null, l = !1, function (e) {\n if (r === clearTimeout) return clearTimeout(e);\n if ((r === s || !r) && clearTimeout) return r = clearTimeout, clearTimeout(e);\n\n try {\n r(e);\n } catch (t) {\n try {\n return r.call(null, e);\n } catch (t) {\n return r.call(this, e);\n }\n }\n }(e);\n }\n }\n\n function d(e, t) {\n this.fun = e, this.array = t;\n }\n\n function g() {}\n\n i.nextTick = function (e) {\n var t = new Array(arguments.length - 1);\n if (arguments.length > 1) for (var n = 1; n < arguments.length; n++) {\n t[n - 1] = arguments[n];\n }\n u.push(new d(e, t)), 1 !== u.length || l || a(f);\n }, d.prototype.run = function () {\n this.fun.apply(null, this.array);\n }, i.title = \"browser\", i.browser = !0, i.env = {}, i.argv = [], i.version = \"\", i.versions = {}, i.on = g, i.addListener = g, i.once = g, i.off = g, i.removeListener = g, i.removeAllListeners = g, i.emit = g, i.prependListener = g, i.prependOnceListener = g, i.listeners = function (e) {\n return [];\n }, i.binding = function (e) {\n throw new Error(\"process.binding is not supported\");\n }, i.cwd = function () {\n return \"/\";\n }, i.chdir = function (e) {\n throw new Error(\"process.chdir is not supported\");\n }, i.umask = function () {\n return 0;\n };\n }, function (e, t, n) {\n \"use strict\";\n\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n });\n var r = n(9),\n i = n(2),\n o = n(10);\n\n t.parseRawGrammar = function (e, t) {\n return void 0 === t && (t = null), null !== t && /\\.json$/.test(t) ? function (e, t) {\n if (i.DebugFlags.InDebugMode) return o.parse(e, t, !0);\n return JSON.parse(e);\n }(e, t) : function (e, t) {\n if (i.DebugFlags.InDebugMode) return r.parseWithLocation(e, t, \"$vscodeTextmateLocation\");\n return r.parse(e);\n }(e, t);\n };\n }, function (e, t, n) {\n \"use strict\";\n\n function r(e, t, n) {\n var r = e.length,\n i = 0,\n o = 1,\n s = 0;\n\n function a(t) {\n if (null === n) i += t;else for (; t > 0;) {\n 10 === e.charCodeAt(i) ? (i++, o++, s = 0) : (i++, s++), t--;\n }\n }\n\n function c(e) {\n null === n ? i = e : a(e - i);\n }\n\n function u() {\n for (; i < r;) {\n var t = e.charCodeAt(i);\n if (32 !== t && 9 !== t && 13 !== t && 10 !== t) break;\n a(1);\n }\n }\n\n function l(t) {\n return e.substr(i, t.length) === t && (a(t.length), !0);\n }\n\n function h(t) {\n var n = e.indexOf(t, i);\n c(-1 !== n ? n + t.length : r);\n }\n\n function p(t) {\n var n = e.indexOf(t, i);\n\n if (-1 !== n) {\n var o = e.substring(i, n);\n return c(n + t.length), o;\n }\n\n o = e.substr(i);\n return c(r), o;\n }\n\n r > 0 && 65279 === e.charCodeAt(0) && (i = 1);\n var f = 0,\n d = null,\n g = [],\n m = [],\n _ = null;\n\n function y(e, t) {\n g.push(f), m.push(d), f = e, d = t;\n }\n\n function v() {\n if (0 === g.length) return b(\"illegal state stack\");\n f = g.pop(), d = m.pop();\n }\n\n function b(t) {\n throw new Error(\"Near offset \" + i + \": \" + t + \" ~~~\" + e.substr(i, 50) + \"~~~\");\n }\n\n var C,\n w,\n k,\n R = function R() {\n if (null === _) return b(\"missing \");\n var e = {};\n null !== n && (e[n] = {\n filename: t,\n line: o,\n char: s\n }), d[_] = e, _ = null, y(1, e);\n },\n S = function S() {\n if (null === _) return b(\"missing \");\n var e = [];\n d[_] = e, _ = null, y(2, e);\n },\n P = function P() {\n var e = {};\n null !== n && (e[n] = {\n filename: t,\n line: o,\n char: s\n }), d.push(e), y(1, e);\n },\n x = function x() {\n var e = [];\n d.push(e), y(2, e);\n };\n\n function I() {\n if (1 !== f) return b(\"unexpected \");\n v();\n }\n\n function A() {\n return 1 === f || 2 !== f ? b(\"unexpected \") : void v();\n }\n\n function T(e) {\n if (1 === f) {\n if (null === _) return b(\"missing \");\n d[_] = e, _ = null;\n } else 2 === f ? d.push(e) : d = e;\n }\n\n function L(e) {\n if (isNaN(e)) return b(\"cannot parse float\");\n\n if (1 === f) {\n if (null === _) return b(\"missing \");\n d[_] = e, _ = null;\n } else 2 === f ? d.push(e) : d = e;\n }\n\n function M(e) {\n if (isNaN(e)) return b(\"cannot parse integer\");\n\n if (1 === f) {\n if (null === _) return b(\"missing \");\n d[_] = e, _ = null;\n } else 2 === f ? d.push(e) : d = e;\n }\n\n function G(e) {\n if (1 === f) {\n if (null === _) return b(\"missing \");\n d[_] = e, _ = null;\n } else 2 === f ? d.push(e) : d = e;\n }\n\n function D(e) {\n if (1 === f) {\n if (null === _) return b(\"missing \");\n d[_] = e, _ = null;\n } else 2 === f ? d.push(e) : d = e;\n }\n\n function N(e) {\n if (1 === f) {\n if (null === _) return b(\"missing \");\n d[_] = e, _ = null;\n } else 2 === f ? d.push(e) : d = e;\n }\n\n function E(e) {\n if (e.isClosed) return \"\";\n var t = p(\"\"), t.replace(/&#([0-9]+);/g, function (e, t) {\n return String.fromCodePoint(parseInt(t, 10));\n }).replace(/&#x([0-9a-f]+);/g, function (e, t) {\n return String.fromCodePoint(parseInt(t, 16));\n }).replace(/&|<|>|"|'/g, function (e) {\n switch (e) {\n case \"&\":\n return \"&\";\n\n case \"<\":\n return \"<\";\n\n case \">\":\n return \">\";\n\n case \""\":\n return '\"';\n\n case \"'\":\n return \"'\";\n }\n\n return e;\n });\n }\n\n for (; i < r && (u(), !(i >= r));) {\n var O = e.charCodeAt(i);\n if (a(1), 60 !== O) return b(\"expected <\");\n if (i >= r) return b(\"unexpected end of input\");\n var j = e.charCodeAt(i);\n if (63 !== j) {\n if (33 !== j) {\n if (47 === j) {\n if (a(1), u(), l(\"plist\")) {\n h(\">\");\n continue;\n }\n\n if (l(\"dict\")) {\n h(\">\"), I();\n continue;\n }\n\n if (l(\"array\")) {\n h(\">\"), A();\n continue;\n }\n\n return b(\"unexpected closed tag\");\n }\n\n var F = (w = void 0, k = void 0, w = p(\">\"), k = !1, 47 === w.charCodeAt(w.length - 1) && (k = !0, w = w.substring(0, w.length - 1)), {\n name: w.trim(),\n isClosed: k\n });\n\n switch (F.name) {\n case \"dict\":\n 1 === f ? R() : 2 === f ? P() : (d = {}, null !== n && (d[n] = {\n filename: t,\n line: o,\n char: s\n }), y(1, d)), F.isClosed && I();\n continue;\n\n case \"array\":\n 1 === f ? S() : 2 === f ? x() : y(2, d = []), F.isClosed && A();\n continue;\n\n case \"key\":\n C = E(F), 1 !== f ? b(\"unexpected \") : null !== _ ? b(\"too many \") : _ = C;\n continue;\n\n case \"string\":\n T(E(F));\n continue;\n\n case \"real\":\n L(parseFloat(E(F)));\n continue;\n\n case \"integer\":\n M(parseInt(E(F), 10));\n continue;\n\n case \"date\":\n G(new Date(E(F)));\n continue;\n\n case \"data\":\n D(E(F));\n continue;\n\n case \"true\":\n E(F), N(!0);\n continue;\n\n case \"false\":\n E(F), N(!1);\n continue;\n }\n\n if (!/^plist/.test(F.name)) return b(\"unexpected opened tag \" + F.name);\n } else {\n if (a(1), l(\"--\")) {\n h(\"--\\x3e\");\n continue;\n }\n\n h(\">\");\n }\n } else a(1), h(\"?>\");\n }\n\n return d;\n }\n\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.parseWithLocation = function (e, t, n) {\n return r(e, t, n);\n }, t.parse = function (e) {\n return r(e, null, null);\n };\n }, function (e, t, n) {\n \"use strict\";\n\n function r(e, t) {\n throw new Error(\"Near offset \" + e.pos + \": \" + t + \" ~~~\" + e.source.substr(e.pos, 50) + \"~~~\");\n }\n\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.parse = function (e, t, n) {\n var a = new i(e),\n c = new o(),\n u = 0,\n l = null,\n h = [],\n p = [];\n\n function f() {\n h.push(u), p.push(l);\n }\n\n function d() {\n u = h.pop(), l = p.pop();\n }\n\n function g(e) {\n r(a, e);\n }\n\n for (; s(a, c);) {\n if (0 === u) {\n if (null !== l && g(\"too many constructs in root\"), 3 === c.type) {\n l = {}, n && (l.$vscodeTextmateLocation = c.toLocation(t)), f(), u = 1;\n continue;\n }\n\n if (2 === c.type) {\n l = [], f(), u = 4;\n continue;\n }\n\n g(\"unexpected token in root\");\n }\n\n if (2 === u) {\n if (5 === c.type) {\n d();\n continue;\n }\n\n if (7 === c.type) {\n u = 3;\n continue;\n }\n\n g(\"expected , or }\");\n }\n\n if (1 === u || 3 === u) {\n if (1 === u && 5 === c.type) {\n d();\n continue;\n }\n\n if (1 === c.type) {\n var m = c.value;\n\n if (s(a, c) && 6 === c.type || g(\"expected colon\"), s(a, c) || g(\"expected value\"), u = 2, 1 === c.type) {\n l[m] = c.value;\n continue;\n }\n\n if (8 === c.type) {\n l[m] = null;\n continue;\n }\n\n if (9 === c.type) {\n l[m] = !0;\n continue;\n }\n\n if (10 === c.type) {\n l[m] = !1;\n continue;\n }\n\n if (11 === c.type) {\n l[m] = parseFloat(c.value);\n continue;\n }\n\n if (2 === c.type) {\n var _ = [];\n l[m] = _, f(), u = 4, l = _;\n continue;\n }\n\n if (3 === c.type) {\n var y = {};\n n && (y.$vscodeTextmateLocation = c.toLocation(t)), l[m] = y, f(), u = 1, l = y;\n continue;\n }\n }\n\n g(\"unexpected token in dict\");\n }\n\n if (5 === u) {\n if (4 === c.type) {\n d();\n continue;\n }\n\n if (7 === c.type) {\n u = 6;\n continue;\n }\n\n g(\"expected , or ]\");\n }\n\n if (4 === u || 6 === u) {\n if (4 === u && 4 === c.type) {\n d();\n continue;\n }\n\n if (u = 5, 1 === c.type) {\n l.push(c.value);\n continue;\n }\n\n if (8 === c.type) {\n l.push(null);\n continue;\n }\n\n if (9 === c.type) {\n l.push(!0);\n continue;\n }\n\n if (10 === c.type) {\n l.push(!1);\n continue;\n }\n\n if (11 === c.type) {\n l.push(parseFloat(c.value));\n continue;\n }\n\n if (2 === c.type) {\n _ = [];\n l.push(_), f(), u = 4, l = _;\n continue;\n }\n\n if (3 === c.type) {\n y = {};\n n && (y.$vscodeTextmateLocation = c.toLocation(t)), l.push(y), f(), u = 1, l = y;\n continue;\n }\n\n g(\"unexpected token in array\");\n }\n\n g(\"unknown state\");\n }\n\n return 0 !== p.length && g(\"unclosed constructs\"), l;\n };\n\n var i = function i(e) {\n this.source = e, this.pos = 0, this.len = e.length, this.line = 1, this.char = 0;\n },\n o = function () {\n function e() {\n this.value = null, this.type = 0, this.offset = -1, this.len = -1, this.line = -1, this.char = -1;\n }\n\n return e.prototype.toLocation = function (e) {\n return {\n filename: e,\n line: this.line,\n char: this.char\n };\n }, e;\n }();\n\n function s(e, t) {\n t.value = null, t.type = 0, t.offset = -1, t.len = -1, t.line = -1, t.char = -1;\n\n for (var n, i = e.source, o = e.pos, s = e.len, a = e.line, c = e.char;;) {\n if (o >= s) return !1;\n\n if (32 !== (n = i.charCodeAt(o)) && 9 !== n && 13 !== n) {\n if (10 !== n) break;\n o++, a++, c = 0;\n } else o++, c++;\n }\n\n if (t.offset = o, t.line = a, t.char = c, 34 === n) {\n for (t.type = 1, o++, c++;;) {\n if (o >= s) return !1;\n\n if (n = i.charCodeAt(o), o++, c++, 92 !== n) {\n if (34 === n) break;\n } else o++, c++;\n }\n\n t.value = i.substring(t.offset + 1, o - 1).replace(/\\\\u([0-9A-Fa-f]{4})/g, function (e, t) {\n return String.fromCodePoint(parseInt(t, 16));\n }).replace(/\\\\(.)/g, function (t, n) {\n switch (n) {\n case '\"':\n return '\"';\n\n case \"\\\\\":\n return \"\\\\\";\n\n case \"/\":\n return \"/\";\n\n case \"b\":\n return \"\\b\";\n\n case \"f\":\n return \"\\f\";\n\n case \"n\":\n return \"\\n\";\n\n case \"r\":\n return \"\\r\";\n\n case \"t\":\n return \"\\t\";\n\n default:\n r(e, \"invalid escape sequence\");\n }\n\n throw new Error(\"unreachable\");\n });\n } else if (91 === n) t.type = 2, o++, c++;else if (123 === n) t.type = 3, o++, c++;else if (93 === n) t.type = 4, o++, c++;else if (125 === n) t.type = 5, o++, c++;else if (58 === n) t.type = 6, o++, c++;else if (44 === n) t.type = 7, o++, c++;else if (110 === n) {\n if (t.type = 8, o++, c++, 117 !== (n = i.charCodeAt(o))) return !1;\n if (o++, c++, 108 !== (n = i.charCodeAt(o))) return !1;\n if (o++, c++, 108 !== (n = i.charCodeAt(o))) return !1;\n o++, c++;\n } else if (116 === n) {\n if (t.type = 9, o++, c++, 114 !== (n = i.charCodeAt(o))) return !1;\n if (o++, c++, 117 !== (n = i.charCodeAt(o))) return !1;\n if (o++, c++, 101 !== (n = i.charCodeAt(o))) return !1;\n o++, c++;\n } else if (102 === n) {\n if (t.type = 10, o++, c++, 97 !== (n = i.charCodeAt(o))) return !1;\n if (o++, c++, 108 !== (n = i.charCodeAt(o))) return !1;\n if (o++, c++, 115 !== (n = i.charCodeAt(o))) return !1;\n if (o++, c++, 101 !== (n = i.charCodeAt(o))) return !1;\n o++, c++;\n } else for (t.type = 11;;) {\n if (o >= s) return !1;\n if (!(46 === (n = i.charCodeAt(o)) || n >= 48 && n <= 57 || 101 === n || 69 === n || 45 === n || 43 === n)) break;\n o++, c++;\n }\n\n return t.len = o - t.offset, null === t.value && (t.value = i.substr(t.offset, t.len)), e.pos = o, e.line = a, e.char = c, !0;\n }\n }, function (e, t, n) {\n \"use strict\";\n\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n });\n\n var r = function r(e, t, n, _r2, i, o) {\n this.scope = e, this.parentScopes = t, this.index = n, this.fontStyle = _r2, this.foreground = i, this.background = o;\n };\n\n function i(e) {\n return !!/^#[0-9a-f]{6}$/i.test(e) || !!/^#[0-9a-f]{8}$/i.test(e) || !!/^#[0-9a-f]{3}$/i.test(e) || !!/^#[0-9a-f]{4}$/i.test(e);\n }\n\n function o(e) {\n if (!e) return [];\n if (!e.settings || !Array.isArray(e.settings)) return [];\n\n for (var t = e.settings, n = [], o = 0, s = 0, a = t.length; s < a; s++) {\n var c = t[s];\n\n if (c.settings) {\n var u = void 0;\n if (\"string\" == typeof c.scope) u = c.scope.replace(/^[,]+/, \"\").replace(/[,]+$/, \"\").split(\",\");else u = Array.isArray(c.scope) ? c.scope : [\"\"];\n var l = -1;\n\n if (\"string\" == typeof c.settings.fontStyle) {\n l = 0;\n\n for (var h = 0, p = (g = c.settings.fontStyle.split(\" \")).length; h < p; h++) {\n switch (g[h]) {\n case \"italic\":\n l |= 1;\n break;\n\n case \"bold\":\n l |= 2;\n break;\n\n case \"underline\":\n l |= 4;\n }\n }\n }\n\n var f = null;\n \"string\" == typeof c.settings.foreground && i(c.settings.foreground) && (f = c.settings.foreground);\n var d = null;\n \"string\" == typeof c.settings.background && i(c.settings.background) && (d = c.settings.background);\n\n for (h = 0, p = u.length; h < p; h++) {\n var g,\n m = (g = u[h].trim().split(\" \"))[g.length - 1],\n _ = null;\n g.length > 1 && (_ = g.slice(0, g.length - 1)).reverse(), n[o++] = new r(m, _, s, l, f, d);\n }\n }\n }\n\n return n;\n }\n\n function s(e, t) {\n e.sort(function (e, t) {\n var n = u(e.scope, t.scope);\n return 0 !== n || 0 !== (n = l(e.parentScopes, t.parentScopes)) ? n : e.index - t.index;\n });\n\n for (var n = 0, r = \"#000000\", i = \"#ffffff\"; e.length >= 1 && \"\" === e[0].scope;) {\n var o = e.shift();\n -1 !== o.fontStyle && (n = o.fontStyle), null !== o.foreground && (r = o.foreground), null !== o.background && (i = o.background);\n }\n\n for (var s = new a(t), f = new h(0, null, n, s.getId(r), s.getId(i)), d = new p(new h(0, null, -1, 0, 0), []), g = 0, m = e.length; g < m; g++) {\n var _ = e[g];\n d.insert(0, _.scope, _.parentScopes, _.fontStyle, s.getId(_.foreground), s.getId(_.background));\n }\n\n return new c(s, f, d);\n }\n\n t.ParsedThemeRule = r, t.parseTheme = o;\n\n var a = function () {\n function e(e) {\n if (this._lastColorId = 0, this._id2color = [], this._color2id = Object.create(null), Array.isArray(e)) {\n this._isFrozen = !0;\n\n for (var t = 0, n = e.length; t < n; t++) {\n this._color2id[e[t]] = t, this._id2color[t] = e[t];\n }\n } else this._isFrozen = !1;\n }\n\n return e.prototype.getId = function (e) {\n if (null === e) return 0;\n e = e.toUpperCase();\n var t = this._color2id[e];\n if (t) return t;\n if (this._isFrozen) throw new Error(\"Missing color in color map - \" + e);\n return t = ++this._lastColorId, this._color2id[e] = t, this._id2color[t] = e, t;\n }, e.prototype.getColorMap = function () {\n return this._id2color.slice(0);\n }, e;\n }();\n\n t.ColorMap = a;\n\n var c = function () {\n function e(e, t, n) {\n this._colorMap = e, this._root = n, this._defaults = t, this._cache = {};\n }\n\n return e.createFromRawTheme = function (e, t) {\n return this.createFromParsedTheme(o(e), t);\n }, e.createFromParsedTheme = function (e, t) {\n return s(e, t);\n }, e.prototype.getColorMap = function () {\n return this._colorMap.getColorMap();\n }, e.prototype.getDefaults = function () {\n return this._defaults;\n }, e.prototype.match = function (e) {\n return this._cache.hasOwnProperty(e) || (this._cache[e] = this._root.match(e)), this._cache[e];\n }, e;\n }();\n\n function u(e, t) {\n return e < t ? -1 : e > t ? 1 : 0;\n }\n\n function l(e, t) {\n if (null === e && null === t) return 0;\n if (!e) return -1;\n if (!t) return 1;\n var n = e.length,\n r = t.length;\n\n if (n === r) {\n for (var i = 0; i < n; i++) {\n var o = u(e[i], t[i]);\n if (0 !== o) return o;\n }\n\n return 0;\n }\n\n return n - r;\n }\n\n t.Theme = c, t.strcmp = u, t.strArrCmp = l;\n\n var h = function () {\n function e(e, t, n, r, i) {\n this.scopeDepth = e, this.parentScopes = t, this.fontStyle = n, this.foreground = r, this.background = i;\n }\n\n return e.prototype.clone = function () {\n return new e(this.scopeDepth, this.parentScopes, this.fontStyle, this.foreground, this.background);\n }, e.cloneArr = function (e) {\n for (var t = [], n = 0, r = e.length; n < r; n++) {\n t[n] = e[n].clone();\n }\n\n return t;\n }, e.prototype.acceptOverwrite = function (e, t, n, r) {\n this.scopeDepth > e ? console.log(\"how did this happen?\") : this.scopeDepth = e, -1 !== t && (this.fontStyle = t), 0 !== n && (this.foreground = n), 0 !== r && (this.background = r);\n }, e;\n }();\n\n t.ThemeTrieElementRule = h;\n\n var p = function () {\n function e(e, t, n) {\n void 0 === t && (t = []), void 0 === n && (n = {}), this._mainRule = e, this._rulesWithParentScopes = t, this._children = n;\n }\n\n return e._sortBySpecificity = function (e) {\n return 1 === e.length || e.sort(this._cmpBySpecificity), e;\n }, e._cmpBySpecificity = function (e, t) {\n if (e.scopeDepth === t.scopeDepth) {\n var n = e.parentScopes,\n r = t.parentScopes,\n i = null === n ? 0 : n.length,\n o = null === r ? 0 : r.length;\n if (i === o) for (var s = 0; s < i; s++) {\n var a = n[s].length,\n c = r[s].length;\n if (a !== c) return c - a;\n }\n return o - i;\n }\n\n return t.scopeDepth - e.scopeDepth;\n }, e.prototype.match = function (t) {\n if (\"\" === t) return e._sortBySpecificity([].concat(this._mainRule).concat(this._rulesWithParentScopes));\n var n,\n r,\n i = t.indexOf(\".\");\n return -1 === i ? (n = t, r = \"\") : (n = t.substring(0, i), r = t.substring(i + 1)), this._children.hasOwnProperty(n) ? this._children[n].match(r) : e._sortBySpecificity([].concat(this._mainRule).concat(this._rulesWithParentScopes));\n }, e.prototype.insert = function (t, n, r, i, o, s) {\n if (\"\" !== n) {\n var a,\n c,\n u,\n l = n.indexOf(\".\");\n -1 === l ? (a = n, c = \"\") : (a = n.substring(0, l), c = n.substring(l + 1)), this._children.hasOwnProperty(a) ? u = this._children[a] : (u = new e(this._mainRule.clone(), h.cloneArr(this._rulesWithParentScopes)), this._children[a] = u), u.insert(t + 1, c, r, i, o, s);\n } else this._doInsertHere(t, r, i, o, s);\n }, e.prototype._doInsertHere = function (e, t, n, r, i) {\n if (null !== t) {\n for (var o = 0, s = this._rulesWithParentScopes.length; o < s; o++) {\n var a = this._rulesWithParentScopes[o];\n if (0 === l(a.parentScopes, t)) return void a.acceptOverwrite(e, n, r, i);\n }\n\n -1 === n && (n = this._mainRule.fontStyle), 0 === r && (r = this._mainRule.foreground), 0 === i && (i = this._mainRule.background), this._rulesWithParentScopes.push(new h(e, t, n, r, i));\n } else this._mainRule.acceptOverwrite(e, n, r, i);\n }, e;\n }();\n\n t.ThemeTrieElement = p;\n }]);\n});","'use strict';\n\nvar _regeneratorRuntime = require(\"/var/www/html/typescriptweb/TypeScript-website/node_modules/gatsby/node_modules/@babel/runtime/regenerator\");\n\nmodule.exports = function (Yallist) {\n Yallist.prototype[Symbol.iterator] = /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var walker;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n walker = this.head;\n\n case 1:\n if (!walker) {\n _context.next = 7;\n break;\n }\n\n _context.next = 4;\n return walker.value;\n\n case 4:\n walker = walker.next;\n _context.next = 1;\n break;\n\n case 7:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n });\n};","'use strict';\n\nmodule.exports = Yallist;\nYallist.Node = Node;\nYallist.create = Yallist;\n\nfunction Yallist(list) {\n var self = this;\n\n if (!(self instanceof Yallist)) {\n self = new Yallist();\n }\n\n self.tail = null;\n self.head = null;\n self.length = 0;\n\n if (list && typeof list.forEach === 'function') {\n list.forEach(function (item) {\n self.push(item);\n });\n } else if (arguments.length > 0) {\n for (var i = 0, l = arguments.length; i < l; i++) {\n self.push(arguments[i]);\n }\n }\n\n return self;\n}\n\nYallist.prototype.removeNode = function (node) {\n if (node.list !== this) {\n throw new Error('removing node which does not belong to this list');\n }\n\n var next = node.next;\n var prev = node.prev;\n\n if (next) {\n next.prev = prev;\n }\n\n if (prev) {\n prev.next = next;\n }\n\n if (node === this.head) {\n this.head = next;\n }\n\n if (node === this.tail) {\n this.tail = prev;\n }\n\n node.list.length--;\n node.next = null;\n node.prev = null;\n node.list = null;\n return next;\n};\n\nYallist.prototype.unshiftNode = function (node) {\n if (node === this.head) {\n return;\n }\n\n if (node.list) {\n node.list.removeNode(node);\n }\n\n var head = this.head;\n node.list = this;\n node.next = head;\n\n if (head) {\n head.prev = node;\n }\n\n this.head = node;\n\n if (!this.tail) {\n this.tail = node;\n }\n\n this.length++;\n};\n\nYallist.prototype.pushNode = function (node) {\n if (node === this.tail) {\n return;\n }\n\n if (node.list) {\n node.list.removeNode(node);\n }\n\n var tail = this.tail;\n node.list = this;\n node.prev = tail;\n\n if (tail) {\n tail.next = node;\n }\n\n this.tail = node;\n\n if (!this.head) {\n this.head = node;\n }\n\n this.length++;\n};\n\nYallist.prototype.push = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n push(this, arguments[i]);\n }\n\n return this.length;\n};\n\nYallist.prototype.unshift = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n unshift(this, arguments[i]);\n }\n\n return this.length;\n};\n\nYallist.prototype.pop = function () {\n if (!this.tail) {\n return undefined;\n }\n\n var res = this.tail.value;\n this.tail = this.tail.prev;\n\n if (this.tail) {\n this.tail.next = null;\n } else {\n this.head = null;\n }\n\n this.length--;\n return res;\n};\n\nYallist.prototype.shift = function () {\n if (!this.head) {\n return undefined;\n }\n\n var res = this.head.value;\n this.head = this.head.next;\n\n if (this.head) {\n this.head.prev = null;\n } else {\n this.tail = null;\n }\n\n this.length--;\n return res;\n};\n\nYallist.prototype.forEach = function (fn, thisp) {\n thisp = thisp || this;\n\n for (var walker = this.head, i = 0; walker !== null; i++) {\n fn.call(thisp, walker.value, i, this);\n walker = walker.next;\n }\n};\n\nYallist.prototype.forEachReverse = function (fn, thisp) {\n thisp = thisp || this;\n\n for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {\n fn.call(thisp, walker.value, i, this);\n walker = walker.prev;\n }\n};\n\nYallist.prototype.get = function (n) {\n for (var i = 0, walker = this.head; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.next;\n }\n\n if (i === n && walker !== null) {\n return walker.value;\n }\n};\n\nYallist.prototype.getReverse = function (n) {\n for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.prev;\n }\n\n if (i === n && walker !== null) {\n return walker.value;\n }\n};\n\nYallist.prototype.map = function (fn, thisp) {\n thisp = thisp || this;\n var res = new Yallist();\n\n for (var walker = this.head; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this));\n walker = walker.next;\n }\n\n return res;\n};\n\nYallist.prototype.mapReverse = function (fn, thisp) {\n thisp = thisp || this;\n var res = new Yallist();\n\n for (var walker = this.tail; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this));\n walker = walker.prev;\n }\n\n return res;\n};\n\nYallist.prototype.reduce = function (fn, initial) {\n var acc;\n var walker = this.head;\n\n if (arguments.length > 1) {\n acc = initial;\n } else if (this.head) {\n walker = this.head.next;\n acc = this.head.value;\n } else {\n throw new TypeError('Reduce of empty list with no initial value');\n }\n\n for (var i = 0; walker !== null; i++) {\n acc = fn(acc, walker.value, i);\n walker = walker.next;\n }\n\n return acc;\n};\n\nYallist.prototype.reduceReverse = function (fn, initial) {\n var acc;\n var walker = this.tail;\n\n if (arguments.length > 1) {\n acc = initial;\n } else if (this.tail) {\n walker = this.tail.prev;\n acc = this.tail.value;\n } else {\n throw new TypeError('Reduce of empty list with no initial value');\n }\n\n for (var i = this.length - 1; walker !== null; i--) {\n acc = fn(acc, walker.value, i);\n walker = walker.prev;\n }\n\n return acc;\n};\n\nYallist.prototype.toArray = function () {\n var arr = new Array(this.length);\n\n for (var i = 0, walker = this.head; walker !== null; i++) {\n arr[i] = walker.value;\n walker = walker.next;\n }\n\n return arr;\n};\n\nYallist.prototype.toArrayReverse = function () {\n var arr = new Array(this.length);\n\n for (var i = 0, walker = this.tail; walker !== null; i++) {\n arr[i] = walker.value;\n walker = walker.prev;\n }\n\n return arr;\n};\n\nYallist.prototype.slice = function (from, to) {\n to = to || this.length;\n\n if (to < 0) {\n to += this.length;\n }\n\n from = from || 0;\n\n if (from < 0) {\n from += this.length;\n }\n\n var ret = new Yallist();\n\n if (to < from || to < 0) {\n return ret;\n }\n\n if (from < 0) {\n from = 0;\n }\n\n if (to > this.length) {\n to = this.length;\n }\n\n for (var i = 0, walker = this.head; walker !== null && i < from; i++) {\n walker = walker.next;\n }\n\n for (; walker !== null && i < to; i++, walker = walker.next) {\n ret.push(walker.value);\n }\n\n return ret;\n};\n\nYallist.prototype.sliceReverse = function (from, to) {\n to = to || this.length;\n\n if (to < 0) {\n to += this.length;\n }\n\n from = from || 0;\n\n if (from < 0) {\n from += this.length;\n }\n\n var ret = new Yallist();\n\n if (to < from || to < 0) {\n return ret;\n }\n\n if (from < 0) {\n from = 0;\n }\n\n if (to > this.length) {\n to = this.length;\n }\n\n for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {\n walker = walker.prev;\n }\n\n for (; walker !== null && i > from; i--, walker = walker.prev) {\n ret.push(walker.value);\n }\n\n return ret;\n};\n\nYallist.prototype.splice = function (start, deleteCount\n/*, ...nodes */\n) {\n if (start > this.length) {\n start = this.length - 1;\n }\n\n if (start < 0) {\n start = this.length + start;\n }\n\n for (var i = 0, walker = this.head; walker !== null && i < start; i++) {\n walker = walker.next;\n }\n\n var ret = [];\n\n for (var i = 0; walker && i < deleteCount; i++) {\n ret.push(walker.value);\n walker = this.removeNode(walker);\n }\n\n if (walker === null) {\n walker = this.tail;\n }\n\n if (walker !== this.head && walker !== this.tail) {\n walker = walker.prev;\n }\n\n for (var i = 2; i < arguments.length; i++) {\n walker = insert(this, walker, arguments[i]);\n }\n\n return ret;\n};\n\nYallist.prototype.reverse = function () {\n var head = this.head;\n var tail = this.tail;\n\n for (var walker = head; walker !== null; walker = walker.prev) {\n var p = walker.prev;\n walker.prev = walker.next;\n walker.next = p;\n }\n\n this.head = tail;\n this.tail = head;\n return this;\n};\n\nfunction insert(self, node, value) {\n var inserted = node === self.head ? new Node(value, null, node, self) : new Node(value, node, node.next, self);\n\n if (inserted.next === null) {\n self.tail = inserted;\n }\n\n if (inserted.prev === null) {\n self.head = inserted;\n }\n\n self.length++;\n return inserted;\n}\n\nfunction push(self, item) {\n self.tail = new Node(item, self.tail, null, self);\n\n if (!self.head) {\n self.head = self.tail;\n }\n\n self.length++;\n}\n\nfunction unshift(self, item) {\n self.head = new Node(item, null, self.head, self);\n\n if (!self.tail) {\n self.tail = self.head;\n }\n\n self.length++;\n}\n\nfunction Node(value, prev, next, list) {\n if (!(this instanceof Node)) {\n return new Node(value, prev, next, list);\n }\n\n this.list = list;\n this.value = value;\n\n if (prev) {\n prev.next = this;\n this.prev = prev;\n } else {\n this.prev = null;\n }\n\n if (next) {\n next.prev = this;\n this.next = next;\n } else {\n this.next = null;\n }\n}\n\ntry {\n // add if support for Symbol.iterator is present\n require('./iterator.js')(Yallist);\n} catch (er) {}","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nwebpackEmptyContext.id = 5015;\nmodule.exports = webpackEmptyContext;"],"sourceRoot":""}