{"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\n if (options.langId) {\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(\"\".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 += \"
\" + text + \"
\\n*/\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 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 += \"\";\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 += \"\";\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 html += escapeHtml(code);\n html = html.replace(/\\n*$/, \"\"); // Get rid of final new lines\n\n html += \"
\" + meta.title + \"\";\n }\n\n if (options.langId) {\n html += \"\" + options.langId + \"\";\n }\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 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 += \"
\");\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 }\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 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 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 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
\nIf 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
\nThe Twoslash markup language helps with:
\n{codeSamples[0].blurb}
\n\n Downloading Sandbox...\n
\n\n Twoslash's usage guide is available on the npm README at{\" \"}\n \n @typescript/twoslash
\n \n .\n