{"version":3,"sources":["webpack://typescriptlang-org/./src/components/workbench/plugins/about.ts","webpack://typescriptlang-org/./src/components/workbench/plugins/debug.ts","webpack://typescriptlang-org/./src/components/workbench/plugins/assertions.ts","webpack://typescriptlang-org/./src/components/workbench/plugins/markdown.ts","webpack://typescriptlang-org/./src/components/workbench/plugins/docs.ts","webpack://typescriptlang-org/./src/pages/dev/bug-workbench.tsx"],"names":["intro","trim","why","how","cta","workbenchHelpPlugin","i","utils","id","displayName","didMount","sandbox","container","ds","createDesignSystem","title","p","workbenchDebugPlugin","pluginContainer","_sandbox","noResults","clear","getResults","results","dtsMap","subtitle","extension","code","staticQuickInfos","JSON","stringify","files","Array","from","keys","reverse","dtsFiles","forEach","filename","startsWith","push","replace","get","join","workbenchAssertionsPlugin","err","message","stack","_dtsMap","emitRequested","queries","length","errors","queriesAsDiags","map","t","msg","kind","text","completions","all","c","name","prefixed","filter","completionsPrefix","category","file","undefined","messageText","start","listDiags","getModel","errorsAsDiags","renderedMessage","e","workbenchMarkdownPlugin","render","button","label","onclick","navigator","clipboard","writeText","mdCode","url","document","location","href","getText","examples","issue","blurb","reference","content","tsconfigOptions","l","r","localeCompare","opt","includes","categoryID","oneliner","createElement","textContent","setText","appendChild","workbenchReferencePlugin","tabContainer","tabBar","createTabBar","tabs","tab","createTabButton","classList","remove","add","Play","props","createInternational","useIntl","Map","useEffect","window","react","React","reactDOM","ReactDOM","getLoaderScript","src","withPrefix","async","onload","params","URLSearchParams","search","tsVersionParam","fetch","cache","nightlyLookup","json","nightlyJSON","version","getPlaygroundUrls","sandboxRoot","playgroundRoot","playgroundWorker","re","global","require","config","paths","vs","ignoreDuplicateModules","main","tsWorker","playground","ts","getElementById","parentNode","removeChild","console","error","style","display","height","Math","max","innerHeight","round","getClientRects","top","createTypeScriptSandbox","localStorage","getItem","compilerOptions","domID","filetype","acquireTypes","supportTwoslashCompilerOptions","monacoSettings","fontFamily","fontLigatures","customTypeScriptWorkerPath","origin","sandboxEnv","playgroundConfig","lang","prefix","supportCustomPlugins","plugins","workbenchAboutPlugin","playgroundEnv","setupPlayground","createUtils","updateDTSEnv","opts","createDefaultMapFromCDN","lzstring","then","defaultMap","runTwoslash","setDidUpdateCompilerSettings","getCompilerOptions","debouncedTwoslash","debounce","editor","onDidChangeModelContent","currentTwoslashResults","currentDTSMap","isError","setDidUpdateTab","newPlugin","ext","filepath","split","twoslash","twoslasher","defaultOptions","noStaticSemanticInfo","emit","noErrorValidation","tsModule","lzstringModule","fsMap","currentPlugin","getCurrentPlugin","assertionCount","setNotifications","log","documentElement","contains","monaco","setTheme","focus","layout","body","description","className","paddingTop","marginTop","marginBottom","paddingBottom","role","aria-label","Intl","locale"],"mappings":"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","file":"component---src-pages-dev-bug-workbench-tsx-35ab985064d116145aa8.js","sourcesContent":["type Sandbox = import(\"@typescript/sandbox\").Sandbox\ntype Factory = import(\"../../../../static/js/playground\").PluginFactory\ntype PluginUtils = import(\"../../../../static/js/playground\").PluginUtils\n\nconst intro = `\nThe bug workbench uses Twoslash to help you create accurate bug reports. \nTwoslash is a markup format for TypeScript files which lets you highlight code, handle-multiple files and\nshow the files the TypeScript compiler creates.\n`.trim()\n\nconst why = `\nThe bug workbench lets you make reproductions of bugs which are trivial to verify against many different versions of TypeScript over time.\n`.trim()\n\nconst how = `\nA repro can highlight an issue in a few ways:\n
// ^?
to highlight how inference gives different results at different locations\",\n code: `// @noImplicitAny: false\n\ntype Entity = {\n someDate: Date | null;\n} & ({ id: string; } | { id: number; })\n\ntype RowRendererMeta// @[option]
comments inside the sample.\n// @strict: true
or // @strict: false
.: true
to get the same behavior.// @target: ES2015
// @target: 4
// @types: ['jest']
// @${opt.id}
// @filename: [path]
.\"\n )\n\n ds.code(\n `\n// @showEmit\n// @filename: index.ts\nimport {pi} from \"./utils\"\nconsole.log(pi)\n\n// @filename: utils.ts\nexport const pi = \"3.14\"\n`.trim()\n )\n\n const button = document.createElement(\"button\")\n button.textContent = \"See an Example\"\n button.onclick = () =>\n sandbox.setText(\n `\n// @filename: service.ts\nexport type Service = {\n id: string\n display: string\n}\n\n// @filename: app.ts\nimport type { Service } from \"./service\";\n// ^ - this error is OK\n\nconst myServices: Service[] = [\n { id: \"launch\", display: \"Launch\" },\n { id: \"lunch\", disply: \"Lunch\" },\n// ^ - this error is real but hidden\n// you can see it in 'Assertions'\n]\n `.trim()\n )\n container.appendChild(button)\n },\n },\n {\n name: \"Queries\",\n content: (sandbox, container, ds) => {\n ds.p(\n \"Twoslash supports making queries for what the type is at a particular location of code. It also is a specially crafted comment. \"\n )\n ds.code(\n `\nconst myExample = {\n hello: \"world\"\n}\n\nmyExample.hello;\n// ^?\n `.trim()\n )\n\n ds.p(\n \"You can use as many as you want of these, but you can only have one per line.\"\n )\n const button = document.createElement(\"button\")\n button.textContent = \"See an Example\"\n button.onclick = () =>\n sandbox.setText(\n `\nconst button = document.createElement(\"button\");\nbutton.textContent = \"See an Example\";\n\nbutton.onclick = () => {\n console.log(\"Example has been clicked\");\n button.disabled = true;\n// ^?\n}\n\ndocument.body.appendChild(button);\n// ^?\n `.trim()\n )\n container.appendChild(button)\n\n ds.p(\n \"The repro testing system will use these queries as an indicator of what has changed, so if you highlight a bug in inference then when it is fixed and the type has changed it will be raised.\"\n )\n },\n },\n {\n name: \"Emitter\",\n content: (sandbox, container, ds) => {\n ds.p(\n `\nThere are ways to have your test repro be about the output of running TypeScript. There are two comment types which can be used to highlight these files.\n// @showEmit
is a shortcut for showing the .js
file for a single file code sample:\n`.trim()\n )\n ds.code(\n `\n// @showEmit\nexport const helloWorld: string = \"Hi\"\n`.trim()\n )\n ds.p(\n `The long-form is // @showEmittedFile: [filename]
which allows for showing any emitted file`\n )\n ds.code(\n `\n// @declaration: true\n// @showEmit\n// @showEmittedFile: index.d.ts\n\nexport function getStringLength(value: string) {\n return value.length\n}\n`.trim()\n )\n ds.p(\"Multi-file seems to be buggy ATM, but this should work eventually:\")\n ds.code(\n `\n// @showEmit\n// @showEmittedFile: b.js\n\n// @filename: a.ts\nexport const helloWorld: string = \"Hi\"\n\n// @filename: b.ts\nconst abc = \"\"\n`.trim()\n )\n },\n },\n {\n name: \"Defaults\",\n content: (sandbox, container, ds) => {\n examples.forEach(e => {\n ds.p(\n \"The twoslash compiler only has a few changes from the default empty TSConfig \"\n )\n ds.code(`\n const defaultCompilerOptions: CompilerOptions = {\n strict: true,\n target: ts.ScriptTarget.ES2016,\n allowJs: true\n }\n`)\n })\n ds.p(\n \"You may need to undo strict
for some samples, but the others shouldn't affect most code repros.\"\n )\n },\n },\n {\n name: \"Examples\",\n content: (sandbox, container, ds) => {\n ds.p(\n \"Note: this section is tricky to document... These bugs may have been fixed since the docs were created. Consider theses as ideas in how to make repros rather than useful bug reproductions.\"\n )\n examples.forEach(e => {\n // prettier-ignore\n ds.subtitle(e.name + ` ${e.issue}`)\n ds.p(e.blurb)\n const button = document.createElement(\"button\")\n button.textContent = \"Show example\"\n button.onclick = () => sandbox.setText(e.code)\n container.appendChild(button)\n })\n },\n },\n]\n\nexport const workbenchReferencePlugin: Factory = (i, utils) => {\n return {\n id: \"ref\",\n displayName: \"Docs\",\n didMount: (sandbox, container) => {\n const ds = utils.createDesignSystem(container)\n\n const tabContainer = document.createElement(\"div\")\n const tabBar = ds.createTabBar()\n const tabs: HTMLElement[] = []\n\n reference.forEach((r, i) => {\n const tab = ds.createTabButton(r.name)\n tabs.push(tab)\n tab.onclick = () => {\n tabs.forEach(t => t.classList.remove(\"active\"))\n tab.classList.add(\"active\")\n\n const ds = utils.createDesignSystem(tabContainer)\n ds.clear()\n r.content(sandbox, tabContainer, ds)\n }\n tabBar.appendChild(tab)\n\n if (i === 0) tab.onclick({} as any)\n })\n\n container.appendChild(tabBar)\n container.appendChild(tabContainer)\n },\n }\n}\n","import React, { useEffect } from \"react\"\nimport ReactDOM from \"react-dom\"\nimport { Layout } from \"../../components/layout\"\nimport { withPrefix, graphql } from \"gatsby\"\nimport { debounce } from 'ts-debounce';\n\nimport \"../../templates/play.scss\"\n\nimport { useIntl } from \"react-intl\";\nimport { createInternational } from \"../../lib/createInternational\"\nimport { headCopy } from \"../../copy/en/head-seo\"\nimport { playCopy } from \"../../copy/en/playground\"\n\nimport { Intl } from \"../../components/Intl\"\n\nimport { workbenchHelpPlugin as workbenchAboutPlugin } from \"../../components/workbench/plugins/about\"\nimport { workbenchDebugPlugin } from \"../../components/workbench/plugins/debug\"\nimport { workbenchAssertionsPlugin } from \"../../components/workbench/plugins/assertions\"\nimport { workbenchMarkdownPlugin } from \"../../components/workbench/plugins/markdown\"\nimport { workbenchReferencePlugin } from \"../../components/workbench/plugins/docs\"\nimport { createDefaultMapFromCDN } from \"@typescript/vfs\"\nimport { twoslasher, TwoSlashReturn } from \"@typescript/twoslash\"\nimport { getPlaygroundUrls } from \"../../lib/playgroundURLs\";\n\ntype TwoSlashReturns = import(\"@typescript/twoslash\").TwoSlashReturn\n\ntype Props = {}\n\nconst Play: React.FC{i(\"play_downloading_typescript\")}
\n