Socket
Socket
Sign inDemoInstall

@typescript/twoslash

Package Overview
Dependencies
Maintainers
9
Versions
40
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@typescript/twoslash - npm Package Compare versions

Comparing version 1.1.7 to 2.0.0

4

CHANGELOG.md

@@ -0,1 +1,5 @@

## 2.0.0
- Removes HTML encoding from the Twoslash error rendered results. It's really not the responsibility of Twoslash to do that. I'm classing this as a major semver as folks could be relying on this behavior (all the shiki-twoslash stuff does for example.)
## 1.1.1

@@ -2,0 +6,0 @@

161

dist/twoslash.cjs.development.js

@@ -25,5 +25,44 @@ 'use strict';

function escapeHtml(text) {
return text.replace(/</g, "&lt;");
function _unsupportedIterableToArray(o, minLen) {
if (!o) return;
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
var n = Object.prototype.toString.call(o).slice(8, -1);
if (n === "Object" && o.constructor) n = o.constructor.name;
if (n === "Map" || n === "Set") return Array.from(o);
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
}
function _arrayLikeToArray(arr, len) {
if (len == null || len > arr.length) len = arr.length;
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
return arr2;
}
function _createForOfIteratorHelperLoose(o, allowArrayLike) {
var it;
if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) {
if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
if (it) o = it;
var i = 0;
return function () {
if (i >= o.length) return {
done: true
};
return {
done: false,
value: o[i++]
};
};
}
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
it = o[Symbol.iterator]();
return it.next.bind(it);
}
function parsePrimitive(value, type) {

@@ -159,5 +198,3 @@ switch (type) {

var hasProcess = typeof process !== "undefined";
var shouldDebug = hasLocalStorage &&
/*#__PURE__*/
localStorage.getItem("DEBUG") || hasProcess && process.env.DEBUG;
var shouldDebug = hasLocalStorage && /*#__PURE__*/localStorage.getItem("DEBUG") || hasProcess && process.env.DEBUG;
var log = shouldDebug ? console.log : function (_message) {

@@ -271,13 +308,4 @@ return "";

var _loop2 = function _loop2() {
if (_isArray) {
if (_i2 >= _iterator.length) return "break";
_ref = _iterator[_i2++];
} else {
_i2 = _iterator.next();
if (_i2.done) return "break";
_ref = _i2.value;
}
var opt = _step.value;
var opt = _ref;
if (opt.name.toLowerCase() === name.toLowerCase()) {

@@ -320,8 +348,5 @@ switch (opt.type) {

for (var _iterator = ts.optionDeclarations, _isArray = Array.isArray(_iterator), _i2 = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
var _ref;
for (var _iterator = _createForOfIteratorHelperLoose(ts.optionDeclarations), _step; !(_step = _iterator()).done;) {
var _ret = _loop2();
if (_ret === "break") break;
if (typeof _ret === "object") return _ret.v;

@@ -340,12 +365,12 @@ }

for (var _i3 = 0; _i3 < codeLines.length;) {
for (var _i2 = 0; _i2 < codeLines.length;) {
var match = void 0;
if (match = booleanConfigRegexp.exec(codeLines[_i3])) {
if (match = booleanConfigRegexp.exec(codeLines[_i2])) {
options[match[1]] = true;
setOption(match[1], "true", options, ts);
} else if (match = valuedConfigRegexp.exec(codeLines[_i3])) {
} else if (match = valuedConfigRegexp.exec(codeLines[_i2])) {
// Skip a filename tag, which should propagate through this stage
if (match[1] === "filename") {
_i3++;
_i2++;
continue;

@@ -356,7 +381,7 @@ }

} else {
_i3++;
_i2++;
continue;
}
codeLines.splice(_i3, 1);
codeLines.splice(_i2, 1);
}

@@ -382,18 +407,18 @@

for (var _i4 = 0; _i4 < codeLines.length; _i4++) {
for (var _i3 = 0; _i3 < codeLines.length; _i3++) {
var match = void 0;
if (match = booleanConfigRegexp.exec(codeLines[_i4])) {
if (match = booleanConfigRegexp.exec(codeLines[_i3])) {
if (match[1] in options) {
options[match[1]] = true;
log("Setting options." + match[1] + " to true");
codeLines.splice(_i4, 1);
_i4--;
codeLines.splice(_i3, 1);
_i3--;
}
} else if (match = valuedConfigRegexp.exec(codeLines[_i4])) {
} else if (match = valuedConfigRegexp.exec(codeLines[_i3])) {
if (match[1] in options) {
options[match[1]] = match[2];
log("Setting options." + match[1] + " to " + match[2]);
codeLines.splice(_i4, 1);
_i4--;
codeLines.splice(_i3, 1);
_i3--;
}

@@ -455,4 +480,6 @@ }

var getRoot = function getRoot() {
var path = require("path");
var pa = "pa";
var path = require(pa + "th");
var rootPath = options.vfsRoot || process.cwd();

@@ -484,12 +511,3 @@ return rootPath.split(path.sep).join(path.posix.sep);

if (_isArray2) {
if (_i5 >= _iterator2.length) return "break";
_ref2 = _iterator2[_i5++];
} else {
_i5 = _iterator2.next();
if (_i5.done) return "break";
_ref2 = _i5.value;
}
var file = _ref2;
var file = _step2.value;
var filename = file[0],

@@ -520,4 +538,3 @@ codeLines = file[1];

{
var quickInfo = ls.getQuickInfoAtPosition(filename, position);
var token = ls.getDefinitionAtPosition(filename, position); // prettier-ignore
var quickInfo = ls.getQuickInfoAtPosition(filename, position); // prettier-ignore

@@ -527,3 +544,3 @@ var text = "Could not get LSP result: " + stringAroundIndex(env.getSourceFile(filename).text, position);

if (quickInfo && token && quickInfo.displayParts) {
if (quickInfo && quickInfo.displayParts) {
text = quickInfo.displayParts.map(function (dp) {

@@ -579,8 +596,5 @@ return dp.text;

for (var _iterator2 = nameContent, _isArray2 = Array.isArray(_iterator2), _i5 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
var _ref2;
for (var _iterator2 = _createForOfIteratorHelperLoose(nameContent), _step2; !(_step2 = _iterator2()).done;) {
var _ret2 = _loop3();
if (_ret2 === "break") break;
if (_ret2 === "continue") continue;

@@ -633,15 +647,4 @@ } // We need to also strip the highlights + queries from the main file which is shown to people

for (var _iterator3 = identifiers, _isArray3 = Array.isArray(_iterator3), _i6 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) {
var _ref3;
if (_isArray3) {
if (_i6 >= _iterator3.length) break;
_ref3 = _iterator3[_i6++];
} else {
_i6 = _iterator3.next();
if (_i6.done) break;
_ref3 = _i6.value;
}
var identifier = _ref3;
for (var _iterator3 = _createForOfIteratorHelperLoose(identifiers), _step3; !(_step3 = _iterator3()).done;) {
var identifier = _step3.value;
var span = identifier.span;

@@ -728,18 +731,7 @@ var quickInfo = ls.getQuickInfoAtPosition(file, span.start);

for (var _iterator4 = relevantErrors, _isArray4 = Array.isArray(_iterator4), _i7 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator]();;) {
var _ref4;
if (_isArray4) {
if (_i7 >= _iterator4.length) break;
_ref4 = _iterator4[_i7++];
} else {
_i7 = _iterator4.next();
if (_i7.done) break;
_ref4 = _i7.value;
}
var err = _ref4;
for (var _iterator4 = _createForOfIteratorHelperLoose(relevantErrors), _step4; !(_step4 = _iterator4()).done;) {
var err = _step4.value;
var codeWhereErrorLives = env.sys.readFile(err.file.fileName);
var fileContentStartIndexInModifiedFile = code.indexOf(codeWhereErrorLives);
var renderedMessage = escapeHtml(ts.flattenDiagnosticMessageText(err.messageText, "\n"));
var renderedMessage = ts.flattenDiagnosticMessageText(err.messageText, "\n");
var id = "err-" + err.code + "-" + err.start + "-" + err.length;

@@ -866,16 +858,5 @@

for (var _iterator5 = lines, _isArray5 = Array.isArray(_iterator5), _i8 = 0, _iterator5 = _isArray5 ? _iterator5 : _iterator5[Symbol.iterator]();;) {
var _ref5;
for (var _iterator5 = _createForOfIteratorHelperLoose(lines), _step5; !(_step5 = _iterator5()).done;) {
var line = _step5.value;
if (_isArray5) {
if (_i8 >= _iterator5.length) break;
_ref5 = _iterator5[_i8++];
} else {
_i8 = _iterator5.next();
if (_i8.done) break;
_ref5 = _i8.value;
}
var line = _ref5;
if (line.includes("// @filename: ")) {

@@ -882,0 +863,0 @@ fileMap.push([root + nameForFile, currentFileContent]);

@@ -1,2 +0,2 @@

"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@typescript/vfs");function t(){return(t=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function r(e,t){switch(t){case"number":return+e;case"string":return e;case"boolean":return"true"===e.toLowerCase()||0===e.length}throw new Error("Unknown primitive type "+t+" with - "+e)}var n=!1;try{n="undefined"!=typeof localStorage}catch(e){}var i="undefined"!=typeof process,o=n&&localStorage.getItem("DEBUG")||i&&process.env.DEBUG?console.log:function(e){return""};function s(e){for(var t=[],r=[],n=0,i=0,s=0,a=function(a){var c=e[a],f=function(){i=n,n+=c.length+1},u=function(t){o("Removing line "+a+" for "+t),s++,e.splice(a,1),a--};if(c.includes("//")){var p=/^\s*\/\/\s*\^+( .+)?$/.exec(c),d=/^\s*\/\/\s*\^\?\s*$/.exec(c),h=/^\s*\/\/ prettier-ignore$/.exec(c),g=/^\s*\/\/\s*\^\|$/.exec(c);if(null!==d){var v=c.indexOf("^");r.push({kind:"query",offset:v,text:void 0,docs:void 0,line:a+s-1}),u("having a query")}else if(null!==p){var m=c.indexOf("^"),x=c.lastIndexOf("^")-m+1,y=i+m,w=p[1]?p[1].trim():"";t.push({kind:"highlight",position:y,length:x,description:w,line:a}),u("having a highlight")}else if(null!==h)u("being a prettier ignore");else if(null!==g){var E=c.indexOf("^");r.push({kind:"completion",offset:E,text:void 0,docs:void 0,line:a+s-1}),u("having a completion query")}else f()}else f();l=a},l=0;l<e.length;l++)a(l);return{highlights:t,queries:r}}function a(e,t,r){var n=r.get(t.toLowerCase());if(o("Get "+e+" mapped option: "+t+" => "+n),void 0===n){var i=Array.from(r.keys());throw new Error("Invalid value "+t+" for "+e+". Allowed values: "+i.join(","))}return n}function l(e,t,n,i){o("Setting "+e+" to "+t);var s=function(){if(c){if(f>=l.length)return"break";u=l[f++]}else{if((f=l.next()).done)return"break";u=f.value}var i=u;if(i.name.toLowerCase()===e.toLowerCase()){switch(i.type){case"number":case"string":case"boolean":n[i.name]=r(t,i.type);break;case"list":var o=i.element.type,s=t.split(",");n[i.name]=s.map("string"==typeof o?function(e){return r(e,o)}:function(e){return a(i.name,e,o)});break;default:n[i.name]=a(i.name,t,i.type)}return{v:void 0}}},l=i.optionDeclarations,c=Array.isArray(l),f=0;for(l=c?l:l[Symbol.iterator]();;){var u,p=s();if("break"===p)break;if("object"==typeof p)return p.v}throw new Error("No compiler setting named '"+e+"' exists!")}var c=/^\/\/\s?@(\w+)$/,f=/^\/\/\s?@(\w+):\s?(.+)$/,u={errors:[],noErrors:!1,showEmit:!1,showEmittedFile:void 0,noStaticSemanticInfo:!1,emit:!1,noErrorValidation:!1};exports.twoslasher=function(r,n,i){var a,p,d;void 0===i&&(i={});var h=null!=(a=i.tsModule)?a:require("typescript"),g=null!=(p=i.lzstringModule)?p:require("lz-string"),v=r,m=function(e){switch(e){case"js":case"javascript":return"js";case"ts":case"typescript":return"ts";case"tsx":return"tsx";case"jsn":return"json"}throw new Error("Cannot handle the file extension:"+e)}(n),x="index."+m;o("\n\nLooking at code: \n```"+m+"\n"+r+"\n```\n");var y=t({strict:!0,target:h.ScriptTarget.ES2016,allowJs:!0},null!=(d=i.defaultCompilerOptions)?d:{});!function(e){if(e.includes("// @errors "))throw new Error("You have '@errors ' - you're missing the colon after errors");if(e.includes("// @filename "))throw new Error("You have '@filename ' - you're missing the colon after filename")}(r);var w=(r=function(e){return(e=e.replace(/¨D/g,"$")).replace(/¨T/g,"~")}(r)).split(/\r\n?|\n/g),E=t({},function(e){for(var r=t({},u),n=0;n<e.length;n++){var i=void 0;(i=c.exec(e[n]))?i[1]in r&&(r[i[1]]=!0,o("Setting options."+i[1]+" to true"),e.splice(n,1),n--):(i=f.exec(e[n]))&&i[1]in r&&(r[i[1]]=i[2],o("Setting options."+i[1]+" to "+i[2]),e.splice(n,1),n--)}return"errors"in r&&"string"==typeof r.errors&&(r.errors=r.errors.split(" ").map(Number),o("Setting options.error to ",r.errors)),r}(w),i.defaultOptions),b=function(e,r,n){for(var i=t({},r),o=0;o<e.length;){var s=void 0;if(s=c.exec(e[o]))i[s[1]]=!0,l(s[1],"true",i,n);else{if(!(s=f.exec(e[o]))){o++;continue}if("filename"===s[1]){o++;continue}l(s[1],s[2],i,n)}e.splice(o,1)}return i}(w,y,h);E.showEmittedFile||(E.showEmittedFile=b.jsx&&b.jsx===h.JsxEmit.Preserve?"index.jsx":"index.js");var S=function(){var e=require("path");return(i.vfsRoot||process.cwd()).split(e.sep).join(e.posix.sep)},k=!!i.fsMap,j=k&&i.fsMap?i.fsMap:new Map,F=k?e.createSystem(j):e.createFSBackedSystem(j,S(),h),P=k?"/":S()+"/",A=e.createVirtualTypeScriptEnvironment(F,[],h,b,i.customTransformers),O=A.languageService;r=w.join("\n");var C=[],T=[],q=[],L=function(e,t,r){var n=e.split(/\r\n?|\n/g),i=e.includes("@filename: "+t)?"global.ts":t,o=[],s=[],a=n,l=Array.isArray(a),c=0;for(a=l?a:a[Symbol.iterator]();;){var f;if(l){if(c>=a.length)break;f=a[c++]}else{if((c=a.next()).done)break;f=c.value}var u=f;u.includes("// @filename: ")?(s.push([r+i,o]),i=u.split("// @filename: ")[1].trim(),o=[]):o.push(u)}return s.push([r+i,o]),s.filter((function(e){return e[1].length>0&&(e[1].length>1||""!==e[1][0])}))}(r,x,P),I=["js","jsx","ts","tsx"],M=L.map((function(e){return e[0]})),D=function(){var e,t;if(N){if(U>=$.length)return"break";B=$[U++]}else{if((U=$.next()).done)return"break";B=U.value}var r=B[0],n=B[1],i=r.split(".").pop()||"",o=b.resolveJsonModule&&"json"===i;if(!I.includes(i)&&!o)return"continue";var a=n.join("\n");A.createFile(r,a);var l=s(n);(e=q).push.apply(e,l.highlights);var c=l.queries.map((function(e,t){var n,i,o=A.getSourceFile(r),s=h.getPositionOfLineAndCharacter(o,e.line,e.offset);switch(e.kind){case"query":var a=O.getQuickInfoAtPosition(r,s),l=O.getDefinitionAtPosition(r,s),c="Could not get LSP result: "+[(n=A.getSourceFile(r).text)[(i=s)-3],n[i-2],n[i-1],">",n[i],"<",n[i+1],n[i+2],n[i+3]].filter(Boolean).join(""),f=void 0;return a&&l&&a.displayParts&&(c=a.displayParts.map((function(e){return e.text})).join(""),f=a.documentation?a.documentation.map((function(e){return e.text})).join("<br/>"):void 0),{kind:"query",text:c,docs:f,line:e.line-t,offset:e.offset,file:r};case"completion":var u=O.getCompletionsAtPosition(r,s-1,{});if(!u&&!E.noErrorValidation)throw new Error("Twoslash: The ^| query at line "+e.line+" in "+r+" did not return any completions");var p=function(e,t){e=String(e),t=Number(t)>>>0;var r=e.slice(0,t+1).search(/\S+$/),n=e.slice(t).search(/\s/);return n<0?{word:e.slice(r),startPos:r}:{word:e.slice(r,n+t),startPos:r}}(o.text,s-1),d=o.text.slice(p.startPos,s).split(".").pop()||"";return{kind:"completions",completions:(null==u?void 0:u.entries)||[],completionPrefix:d,line:e.line-t,offset:e.offset,file:r}}}));(t=C).push.apply(t,c);var f=n.join("\n");A.updateFile(r,f)},$=L,N=Array.isArray($),U=0;for($=N?$:$[Symbol.iterator]();;){var B;if("break"===D())break}var R=r.split(/\r\n?|\n/g);s(R),r=R.join("\n"),E.emit&&M.forEach((function(e){var t=e.split(".").pop()||"";I.includes(t)&&O.getEmitOutput(e).outputFiles.forEach((function(e){F.writeFile(e.name,e.text)}))}));var V=[],G=[];M.forEach((function(e){var t=e.split(".").pop()||"";if(I.includes(t)){E.noErrors||(V.push.apply(V,O.getSemanticDiagnostics(e)),V.push.apply(V,O.getSyntacticDiagnostics(e)));var n=A.sys.readFile(e),i=A.getSourceFile(e);if(!i)throw new Error("No sourcefile found for "+e+" in twoslash");if(!E.showEmit){var o=-1==r.indexOf(n)?0:r.indexOf(n),s=r.slice(0,o).split("\n").length-1,a=E.noStaticSemanticInfo?[]:function(e,t){var r=[];return function n(i){e.forEachChild(i,(function(i){if(e.isIdentifier(i)){var o=i.getStart(t,!1);r.push({span:e.createTextSpan(o,i.end-o),text:i.getText(t)})}n(i)}))}(t),r}(h,i),l=Array.isArray(a),c=0;for(a=l?a:a[Symbol.iterator]();;){var f;if(l){if(c>=a.length)break;f=a[c++]}else{if((c=a.next()).done)break;f=c.value}var u=f,p=u.span,d=O.getQuickInfoAtPosition(e,p.start);if(d&&d.displayParts){var g=d.displayParts.map((function(e){return e.text})).join(""),v=u.text,m=d.documentation?d.documentation.map((function(e){return e.text})).join("\n"):void 0,x=p.start+o,y=h.createSourceFile("_.ts",r,h.ScriptTarget.ES2015),w=h.getLineAndCharacterOfPosition(y,x);G.push({text:g,docs:m,start:x,length:p.length,line:w.line,character:w.character,targetString:v})}}C.filter((function(t){return t.file===e})).forEach((function(e){var t=h.getPositionOfLineAndCharacter(i,e.line,e.offset)+o;switch(e.kind){case"query":T.push({docs:e.docs,kind:"query",start:t+o,length:e.text.length,text:e.text,offset:e.offset,line:e.line+s+1});break;case"completions":T.push({completions:e.completions,kind:"completions",start:t+o,completionsPrefix:e.completionPrefix,length:1,offset:e.offset,line:e.line+s+1})}}))}}}));var J=V.filter((function(e){return e.file&&M.includes(e.file.fileName)}));!E.noErrorValidation&&J.length&&function(e,t,r,n){var i=e.filter((function(e){return!t.errors.includes(e.code)})),o=i.map((function(e){return e.code})).join(" ");if(i.length){var s="// @errors: "+e.map((function(e){return e.code})).join(" "),a=t.errors.length?" - the annotation specified "+t.errors:"\n\nExpected:\n"+s,l=i.map((function(e){return"["+e.code+"] - "+("string"==typeof e.messageText?e.messageText:e.messageText.messageText)})).join("\n ");throw new Error("Errors were thrown in the sample, but not included in an errors tag: "+o+a+"\n\n "+l+"\n\n## Code\n\n'''"+r+"\n"+n+"\n'''")}}(J,E,n,v);var Q=[],_=J,z=Array.isArray(_),Y=0;for(_=z?_:_[Symbol.iterator]();;){var H;if(z){if(Y>=_.length)break;H=_[Y++]}else{if((Y=_.next()).done)break;H=Y.value}var K=H,W=A.sys.readFile(K.file.fileName),X=r.indexOf(W),Z=h.flattenDiagnosticMessageText(K.messageText,"\n").replace(/</g,"&lt;"),ee="err-"+K.code+"-"+K.start+"-"+K.length,te=h.getLineAndCharacterOfPosition(K.file,K.start);Q.push({category:K.category,code:K.code,length:K.length,start:K.start?K.start+X:void 0,line:te.line,character:te.character,renderedMessage:Z,id:ee})}if(E.showEmit){var re=E.showEmittedFile||x,ne=P+re.replace(".jsx","").replace(".js","").replace(".d.ts","").replace(".map",""),ie=M.find((function(e){return e===ne+".ts"||e===ne+".tsx"}));if(!ie&&!b.outFile){var oe=M.join(", ");throw new Error("Cannot find the corresponding **source** file for "+re+" (looking for: "+ne+" in the vfs) - in "+oe)}b.outFile&&(ie=M[0]);var se=O.getEmitOutput(ie),ae=se.outputFiles.find((function(e){return e.name===P+E.showEmittedFile||e.name===E.showEmittedFile}));if(!ae){var le=se.outputFiles.map((function(e){return e.name})).join(", ");throw new Error("Cannot find the file "+E.showEmittedFile+" (looking for: "+(P+E.showEmittedFile)+" in the vfs) - in "+le)}r=ae.text,n=ae.name.split(".").pop(),q=[],C=[],G=[]}var ce="https://www.typescriptlang.org/play/#code/"+g.compressToEncodedURIComponent(v),fe="// ---cut---\n";if(r.includes(fe)){var ue=r.indexOf(fe)+fe.length,pe=r.substr(0,ue).split("\n").length-1;r=r.split(fe).pop(),G.forEach((function(e){e.start-=ue,e.line-=pe})),G=G.filter((function(e){return e.start>-1})),Q.forEach((function(e){e.start&&(e.start-=ue),e.line&&(e.line-=pe)})),Q=Q.filter((function(e){return e.start&&e.start>-1})),q.forEach((function(e){e.position-=ue,e.line-=pe})),q=q.filter((function(e){return e.position>-1})),T.forEach((function(e){return e.line-=pe})),T=T.filter((function(e){return e.line>-1}))}return{code:r,extension:n,highlights:q,queries:T,staticQuickInfos:G,errors:Q,playgroundURL:ce}};
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@typescript/vfs");function t(){return(t=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function r(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return n(e,void 0);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,void 0):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var i=0;return function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}function i(e,t){switch(t){case"number":return+e;case"string":return e;case"boolean":return"true"===e.toLowerCase()||0===e.length}throw new Error("Unknown primitive type "+t+" with - "+e)}var o=!1;try{o="undefined"!=typeof localStorage}catch(e){}var s="undefined"!=typeof process,a=o&&localStorage.getItem("DEBUG")||s&&process.env.DEBUG?console.log:function(e){return""};function l(e){for(var t=[],n=[],r=0,i=0,o=0,s=function(s){var c=e[s],u=function(){i=r,r+=c.length+1},f=function(t){a("Removing line "+s+" for "+t),o++,e.splice(s,1),s--};if(c.includes("//")){var p=/^\s*\/\/\s*\^+( .+)?$/.exec(c),d=/^\s*\/\/\s*\^\?\s*$/.exec(c),h=/^\s*\/\/ prettier-ignore$/.exec(c),g=/^\s*\/\/\s*\^\|$/.exec(c);if(null!==d){var v=c.indexOf("^");n.push({kind:"query",offset:v,text:void 0,docs:void 0,line:s+o-1}),f("having a query")}else if(null!==p){var m=c.indexOf("^"),x=c.lastIndexOf("^")-m+1,y=i+m,w=p[1]?p[1].trim():"";t.push({kind:"highlight",position:y,length:x,description:w,line:s}),f("having a highlight")}else if(null!==h)f("being a prettier ignore");else if(null!==g){var E=c.indexOf("^");n.push({kind:"completion",offset:E,text:void 0,docs:void 0,line:s+o-1}),f("having a completion query")}else u()}else u();l=s},l=0;l<e.length;l++)s(l);return{highlights:t,queries:n}}function c(e,t,n){var r=n.get(t.toLowerCase());if(a("Get "+e+" mapped option: "+t+" => "+r),void 0===r){var i=Array.from(n.keys());throw new Error("Invalid value "+t+" for "+e+". Allowed values: "+i.join(","))}return r}function u(e,t,n,o){a("Setting "+e+" to "+t);for(var s,l=function(){var r=s.value;if(r.name.toLowerCase()===e.toLowerCase()){switch(r.type){case"number":case"string":case"boolean":n[r.name]=i(t,r.type);break;case"list":var o=r.element.type,a=t.split(",");n[r.name]=a.map("string"==typeof o?function(e){return i(e,o)}:function(e){return c(r.name,e,o)});break;default:n[r.name]=c(r.name,t,r.type)}return{v:void 0}}},u=r(o.optionDeclarations);!(s=u()).done;){var f=l();if("object"==typeof f)return f.v}throw new Error("No compiler setting named '"+e+"' exists!")}var f=/^\/\/\s?@(\w+)$/,p=/^\/\/\s?@(\w+):\s?(.+)$/,d={errors:[],noErrors:!1,showEmit:!1,showEmittedFile:void 0,noStaticSemanticInfo:!1,emit:!1,noErrorValidation:!1};exports.twoslasher=function(n,i,o){var s,c,h;void 0===o&&(o={});var g=null!=(s=o.tsModule)?s:require("typescript"),v=null!=(c=o.lzstringModule)?c:require("lz-string"),m=n,x=function(e){switch(e){case"js":case"javascript":return"js";case"ts":case"typescript":return"ts";case"tsx":return"tsx";case"jsn":return"json"}throw new Error("Cannot handle the file extension:"+e)}(i),y="index."+x;a("\n\nLooking at code: \n```"+x+"\n"+n+"\n```\n");var w=t({strict:!0,target:g.ScriptTarget.ES2016,allowJs:!0},null!=(h=o.defaultCompilerOptions)?h:{});!function(e){if(e.includes("// @errors "))throw new Error("You have '@errors ' - you're missing the colon after errors");if(e.includes("// @filename "))throw new Error("You have '@filename ' - you're missing the colon after filename")}(n);var E=(n=function(e){return(e=e.replace(/¨D/g,"$")).replace(/¨T/g,"~")}(n)).split(/\r\n?|\n/g),j=t({},function(e){for(var n=t({},d),r=0;r<e.length;r++){var i=void 0;(i=f.exec(e[r]))?i[1]in n&&(n[i[1]]=!0,a("Setting options."+i[1]+" to true"),e.splice(r,1),r--):(i=p.exec(e[r]))&&i[1]in n&&(n[i[1]]=i[2],a("Setting options."+i[1]+" to "+i[2]),e.splice(r,1),r--)}return"errors"in n&&"string"==typeof n.errors&&(n.errors=n.errors.split(" ").map(Number),a("Setting options.error to ",n.errors)),n}(E),o.defaultOptions),S=function(e,n,r){for(var i=t({},n),o=0;o<e.length;){var s=void 0;if(s=f.exec(e[o]))i[s[1]]=!0,u(s[1],"true",i,r);else{if(!(s=p.exec(e[o]))){o++;continue}if("filename"===s[1]){o++;continue}u(s[1],s[2],i,r)}e.splice(o,1)}return i}(E,w,g);j.showEmittedFile||(j.showEmittedFile=S.jsx&&S.jsx===g.JsxEmit.Preserve?"index.jsx":"index.js");var b=function(){var e=require("path");return(o.vfsRoot||process.cwd()).split(e.sep).join(e.posix.sep)},F=!!o.fsMap,O=F&&o.fsMap?o.fsMap:new Map,k=F?e.createSystem(O):e.createFSBackedSystem(O,b(),g),P=F?"/":b()+"/",C=e.createVirtualTypeScriptEnvironment(k,[],g,S,o.customTransformers),T=C.languageService;n=E.join("\n");for(var q,A=[],I=[],L=[],M=function(e,t,n){for(var i,o=e.split(/\r\n?|\n/g),s=e.includes("@filename: "+t)?"global.ts":t,a=[],l=[],c=r(o);!(i=c()).done;){var u=i.value;u.includes("// @filename: ")?(l.push([n+s,a]),s=u.split("// @filename: ")[1].trim(),a=[]):a.push(u)}return l.push([n+s,a]),l.filter((function(e){return e[1].length>0&&(e[1].length>1||""!==e[1][0])}))}(n,y,P),$=["js","jsx","ts","tsx"],D=M.map((function(e){return e[0]})),N=function(){var e,t,n=q.value,r=n[0],i=n[1],o=r.split(".").pop()||"",s=S.resolveJsonModule&&"json"===o;if(!$.includes(o)&&!s)return"continue";var a=i.join("\n");C.createFile(r,a);var c=l(i);(e=L).push.apply(e,c.highlights);var u=c.queries.map((function(e,t){var n,i,o=C.getSourceFile(r),s=g.getPositionOfLineAndCharacter(o,e.line,e.offset);switch(e.kind){case"query":var a=T.getQuickInfoAtPosition(r,s),l="Could not get LSP result: "+[(n=C.getSourceFile(r).text)[(i=s)-3],n[i-2],n[i-1],">",n[i],"<",n[i+1],n[i+2],n[i+3]].filter(Boolean).join(""),c=void 0;return a&&a.displayParts&&(l=a.displayParts.map((function(e){return e.text})).join(""),c=a.documentation?a.documentation.map((function(e){return e.text})).join("<br/>"):void 0),{kind:"query",text:l,docs:c,line:e.line-t,offset:e.offset,file:r};case"completion":var u=T.getCompletionsAtPosition(r,s-1,{});if(!u&&!j.noErrorValidation)throw new Error("Twoslash: The ^| query at line "+e.line+" in "+r+" did not return any completions");var f=function(e,t){e=String(e),t=Number(t)>>>0;var n=e.slice(0,t+1).search(/\S+$/),r=e.slice(t).search(/\s/);return r<0?{word:e.slice(n),startPos:n}:{word:e.slice(n,r+t),startPos:n}}(o.text,s-1),p=o.text.slice(f.startPos,s).split(".").pop()||"";return{kind:"completions",completions:(null==u?void 0:u.entries)||[],completionPrefix:p,line:e.line-t,offset:e.offset,file:r}}}));(t=A).push.apply(t,u);var f=i.join("\n");C.updateFile(r,f)},U=r(M);!(q=U()).done;)N();var B=n.split(/\r\n?|\n/g);l(B),n=B.join("\n"),j.emit&&D.forEach((function(e){var t=e.split(".").pop()||"";$.includes(t)&&T.getEmitOutput(e).outputFiles.forEach((function(e){k.writeFile(e.name,e.text)}))}));var R=[],V=[];D.forEach((function(e){var t=e.split(".").pop()||"";if($.includes(t)){j.noErrors||(R.push.apply(R,T.getSemanticDiagnostics(e)),R.push.apply(R,T.getSyntacticDiagnostics(e)));var i=C.sys.readFile(e),o=C.getSourceFile(e);if(!o)throw new Error("No sourcefile found for "+e+" in twoslash");if(!j.showEmit){for(var s,a=-1==n.indexOf(i)?0:n.indexOf(i),l=n.slice(0,a).split("\n").length-1,c=r(j.noStaticSemanticInfo?[]:function(e,t){var n=[];return function r(i){e.forEachChild(i,(function(i){if(e.isIdentifier(i)){var o=i.getStart(t,!1);n.push({span:e.createTextSpan(o,i.end-o),text:i.getText(t)})}r(i)}))}(t),n}(g,o));!(s=c()).done;){var u=s.value,f=u.span,p=T.getQuickInfoAtPosition(e,f.start);if(p&&p.displayParts){var d=p.displayParts.map((function(e){return e.text})).join(""),h=u.text,v=p.documentation?p.documentation.map((function(e){return e.text})).join("\n"):void 0,m=f.start+a,x=g.createSourceFile("_.ts",n,g.ScriptTarget.ES2015),y=g.getLineAndCharacterOfPosition(x,m);V.push({text:d,docs:v,start:m,length:f.length,line:y.line,character:y.character,targetString:h})}}A.filter((function(t){return t.file===e})).forEach((function(e){var t=g.getPositionOfLineAndCharacter(o,e.line,e.offset)+a;switch(e.kind){case"query":I.push({docs:e.docs,kind:"query",start:t+a,length:e.text.length,text:e.text,offset:e.offset,line:e.line+l+1});break;case"completions":I.push({completions:e.completions,kind:"completions",start:t+a,completionsPrefix:e.completionPrefix,length:1,offset:e.offset,line:e.line+l+1})}}))}}}));var G=R.filter((function(e){return e.file&&D.includes(e.file.fileName)}));!j.noErrorValidation&&G.length&&function(e,t,n,r){var i=e.filter((function(e){return!t.errors.includes(e.code)})),o=i.map((function(e){return e.code})).join(" ");if(i.length){var s="// @errors: "+e.map((function(e){return e.code})).join(" "),a=t.errors.length?" - the annotation specified "+t.errors:"\n\nExpected:\n"+s,l=i.map((function(e){return"["+e.code+"] - "+("string"==typeof e.messageText?e.messageText:e.messageText.messageText)})).join("\n ");throw new Error("Errors were thrown in the sample, but not included in an errors tag: "+o+a+"\n\n "+l+"\n\n## Code\n\n'''"+n+"\n"+r+"\n'''")}}(G,j,i,m);for(var J,Q=[],_=r(G);!(J=_()).done;){var z=J.value,Y=C.sys.readFile(z.file.fileName),H=n.indexOf(Y),K=g.flattenDiagnosticMessageText(z.messageText,"\n"),W="err-"+z.code+"-"+z.start+"-"+z.length,X=g.getLineAndCharacterOfPosition(z.file,z.start);Q.push({category:z.category,code:z.code,length:z.length,start:z.start?z.start+H:void 0,line:X.line,character:X.character,renderedMessage:K,id:W})}if(j.showEmit){var Z=j.showEmittedFile||y,ee=P+Z.replace(".jsx","").replace(".js","").replace(".d.ts","").replace(".map",""),te=D.find((function(e){return e===ee+".ts"||e===ee+".tsx"}));if(!te&&!S.outFile){var ne=D.join(", ");throw new Error("Cannot find the corresponding **source** file for "+Z+" (looking for: "+ee+" in the vfs) - in "+ne)}S.outFile&&(te=D[0]);var re=T.getEmitOutput(te),ie=re.outputFiles.find((function(e){return e.name===P+j.showEmittedFile||e.name===j.showEmittedFile}));if(!ie){var oe=re.outputFiles.map((function(e){return e.name})).join(", ");throw new Error("Cannot find the file "+j.showEmittedFile+" (looking for: "+(P+j.showEmittedFile)+" in the vfs) - in "+oe)}n=ie.text,i=ie.name.split(".").pop(),L=[],A=[],V=[]}var se="https://www.typescriptlang.org/play/#code/"+v.compressToEncodedURIComponent(m),ae="// ---cut---\n";if(n.includes(ae)){var le=n.indexOf(ae)+ae.length,ce=n.substr(0,le).split("\n").length-1;n=n.split(ae).pop(),V.forEach((function(e){e.start-=le,e.line-=ce})),V=V.filter((function(e){return e.start>-1})),Q.forEach((function(e){e.start&&(e.start-=le),e.line&&(e.line-=ce)})),Q=Q.filter((function(e){return e.start&&e.start>-1})),L.forEach((function(e){e.position-=le,e.line-=ce})),L=L.filter((function(e){return e.position>-1})),I.forEach((function(e){return e.line-=ce})),I=I.filter((function(e){return e.line>-1}))}return{code:n,extension:i,highlights:L,queries:I,staticQuickInfos:V,errors:Q,playgroundURL:se}};
//# sourceMappingURL=twoslash.cjs.production.min.js.map

@@ -21,5 +21,44 @@ import { createSystem, createFSBackedSystem, createVirtualTypeScriptEnvironment } from '@typescript/vfs';

function escapeHtml(text) {
return text.replace(/</g, "&lt;");
function _unsupportedIterableToArray(o, minLen) {
if (!o) return;
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
var n = Object.prototype.toString.call(o).slice(8, -1);
if (n === "Object" && o.constructor) n = o.constructor.name;
if (n === "Map" || n === "Set") return Array.from(o);
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
}
function _arrayLikeToArray(arr, len) {
if (len == null || len > arr.length) len = arr.length;
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
return arr2;
}
function _createForOfIteratorHelperLoose(o, allowArrayLike) {
var it;
if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) {
if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
if (it) o = it;
var i = 0;
return function () {
if (i >= o.length) return {
done: true
};
return {
done: false,
value: o[i++]
};
};
}
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
it = o[Symbol.iterator]();
return it.next.bind(it);
}
function parsePrimitive(value, type) {

@@ -155,5 +194,3 @@ switch (type) {

var hasProcess = typeof process !== "undefined";
var shouldDebug = hasLocalStorage &&
/*#__PURE__*/
localStorage.getItem("DEBUG") || hasProcess && process.env.DEBUG;
var shouldDebug = hasLocalStorage && /*#__PURE__*/localStorage.getItem("DEBUG") || hasProcess && process.env.DEBUG;
var log = shouldDebug ? console.log : function (_message) {

@@ -267,13 +304,4 @@ return "";

var _loop2 = function _loop2() {
if (_isArray) {
if (_i2 >= _iterator.length) return "break";
_ref = _iterator[_i2++];
} else {
_i2 = _iterator.next();
if (_i2.done) return "break";
_ref = _i2.value;
}
var opt = _step.value;
var opt = _ref;
if (opt.name.toLowerCase() === name.toLowerCase()) {

@@ -316,8 +344,5 @@ switch (opt.type) {

for (var _iterator = ts.optionDeclarations, _isArray = Array.isArray(_iterator), _i2 = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
var _ref;
for (var _iterator = _createForOfIteratorHelperLoose(ts.optionDeclarations), _step; !(_step = _iterator()).done;) {
var _ret = _loop2();
if (_ret === "break") break;
if (typeof _ret === "object") return _ret.v;

@@ -336,12 +361,12 @@ }

for (var _i3 = 0; _i3 < codeLines.length;) {
for (var _i2 = 0; _i2 < codeLines.length;) {
var match = void 0;
if (match = booleanConfigRegexp.exec(codeLines[_i3])) {
if (match = booleanConfigRegexp.exec(codeLines[_i2])) {
options[match[1]] = true;
setOption(match[1], "true", options, ts);
} else if (match = valuedConfigRegexp.exec(codeLines[_i3])) {
} else if (match = valuedConfigRegexp.exec(codeLines[_i2])) {
// Skip a filename tag, which should propagate through this stage
if (match[1] === "filename") {
_i3++;
_i2++;
continue;

@@ -352,7 +377,7 @@ }

} else {
_i3++;
_i2++;
continue;
}
codeLines.splice(_i3, 1);
codeLines.splice(_i2, 1);
}

@@ -378,18 +403,18 @@

for (var _i4 = 0; _i4 < codeLines.length; _i4++) {
for (var _i3 = 0; _i3 < codeLines.length; _i3++) {
var match = void 0;
if (match = booleanConfigRegexp.exec(codeLines[_i4])) {
if (match = booleanConfigRegexp.exec(codeLines[_i3])) {
if (match[1] in options) {
options[match[1]] = true;
log("Setting options." + match[1] + " to true");
codeLines.splice(_i4, 1);
_i4--;
codeLines.splice(_i3, 1);
_i3--;
}
} else if (match = valuedConfigRegexp.exec(codeLines[_i4])) {
} else if (match = valuedConfigRegexp.exec(codeLines[_i3])) {
if (match[1] in options) {
options[match[1]] = match[2];
log("Setting options." + match[1] + " to " + match[2]);
codeLines.splice(_i4, 1);
_i4--;
codeLines.splice(_i3, 1);
_i3--;
}

@@ -451,4 +476,6 @@ }

var getRoot = function getRoot() {
var path = require("path");
var pa = "pa";
var path = require(pa + "th");
var rootPath = options.vfsRoot || process.cwd();

@@ -480,12 +507,3 @@ return rootPath.split(path.sep).join(path.posix.sep);

if (_isArray2) {
if (_i5 >= _iterator2.length) return "break";
_ref2 = _iterator2[_i5++];
} else {
_i5 = _iterator2.next();
if (_i5.done) return "break";
_ref2 = _i5.value;
}
var file = _ref2;
var file = _step2.value;
var filename = file[0],

@@ -516,4 +534,3 @@ codeLines = file[1];

{
var quickInfo = ls.getQuickInfoAtPosition(filename, position);
var token = ls.getDefinitionAtPosition(filename, position); // prettier-ignore
var quickInfo = ls.getQuickInfoAtPosition(filename, position); // prettier-ignore

@@ -523,3 +540,3 @@ var text = "Could not get LSP result: " + stringAroundIndex(env.getSourceFile(filename).text, position);

if (quickInfo && token && quickInfo.displayParts) {
if (quickInfo && quickInfo.displayParts) {
text = quickInfo.displayParts.map(function (dp) {

@@ -575,8 +592,5 @@ return dp.text;

for (var _iterator2 = nameContent, _isArray2 = Array.isArray(_iterator2), _i5 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
var _ref2;
for (var _iterator2 = _createForOfIteratorHelperLoose(nameContent), _step2; !(_step2 = _iterator2()).done;) {
var _ret2 = _loop3();
if (_ret2 === "break") break;
if (_ret2 === "continue") continue;

@@ -629,15 +643,4 @@ } // We need to also strip the highlights + queries from the main file which is shown to people

for (var _iterator3 = identifiers, _isArray3 = Array.isArray(_iterator3), _i6 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) {
var _ref3;
if (_isArray3) {
if (_i6 >= _iterator3.length) break;
_ref3 = _iterator3[_i6++];
} else {
_i6 = _iterator3.next();
if (_i6.done) break;
_ref3 = _i6.value;
}
var identifier = _ref3;
for (var _iterator3 = _createForOfIteratorHelperLoose(identifiers), _step3; !(_step3 = _iterator3()).done;) {
var identifier = _step3.value;
var span = identifier.span;

@@ -724,18 +727,7 @@ var quickInfo = ls.getQuickInfoAtPosition(file, span.start);

for (var _iterator4 = relevantErrors, _isArray4 = Array.isArray(_iterator4), _i7 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator]();;) {
var _ref4;
if (_isArray4) {
if (_i7 >= _iterator4.length) break;
_ref4 = _iterator4[_i7++];
} else {
_i7 = _iterator4.next();
if (_i7.done) break;
_ref4 = _i7.value;
}
var err = _ref4;
for (var _iterator4 = _createForOfIteratorHelperLoose(relevantErrors), _step4; !(_step4 = _iterator4()).done;) {
var err = _step4.value;
var codeWhereErrorLives = env.sys.readFile(err.file.fileName);
var fileContentStartIndexInModifiedFile = code.indexOf(codeWhereErrorLives);
var renderedMessage = escapeHtml(ts.flattenDiagnosticMessageText(err.messageText, "\n"));
var renderedMessage = ts.flattenDiagnosticMessageText(err.messageText, "\n");
var id = "err-" + err.code + "-" + err.start + "-" + err.length;

@@ -862,16 +854,5 @@

for (var _iterator5 = lines, _isArray5 = Array.isArray(_iterator5), _i8 = 0, _iterator5 = _isArray5 ? _iterator5 : _iterator5[Symbol.iterator]();;) {
var _ref5;
for (var _iterator5 = _createForOfIteratorHelperLoose(lines), _step5; !(_step5 = _iterator5()).done;) {
var line = _step5.value;
if (_isArray5) {
if (_i8 >= _iterator5.length) break;
_ref5 = _iterator5[_i8++];
} else {
_i8 = _iterator5.next();
if (_i8.done) break;
_ref5 = _i8.value;
}
var line = _ref5;
if (line.includes("// @filename: ")) {

@@ -878,0 +859,0 @@ fileMap.push([root + nameForFile, currentFileContent]);

@@ -31,5 +31,44 @@

function escapeHtml(text) {
return text.replace(/</g, "&lt;");
function _unsupportedIterableToArray(o, minLen) {
if (!o) return;
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
var n = Object.prototype.toString.call(o).slice(8, -1);
if (n === "Object" && o.constructor) n = o.constructor.name;
if (n === "Map" || n === "Set") return Array.from(o);
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
}
function _arrayLikeToArray(arr, len) {
if (len == null || len > arr.length) len = arr.length;
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
return arr2;
}
function _createForOfIteratorHelperLoose(o, allowArrayLike) {
var it;
if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) {
if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
if (it) o = it;
var i = 0;
return function () {
if (i >= o.length) return {
done: true
};
return {
done: false,
value: o[i++]
};
};
}
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
it = o[Symbol.iterator]();
return it.next.bind(it);
}
function parsePrimitive(value, type) {

@@ -165,5 +204,3 @@ switch (type) {

var hasProcess = typeof process !== "undefined";
var shouldDebug = hasLocalStorage &&
/*#__PURE__*/
localStorage.getItem("DEBUG") || hasProcess && process.env.DEBUG;
var shouldDebug = hasLocalStorage && /*#__PURE__*/localStorage.getItem("DEBUG") || hasProcess && process.env.DEBUG;
var log = shouldDebug ? console.log : function (_message) {

@@ -277,13 +314,4 @@ return "";

var _loop2 = function _loop2() {
if (_isArray) {
if (_i2 >= _iterator.length) return "break";
_ref = _iterator[_i2++];
} else {
_i2 = _iterator.next();
if (_i2.done) return "break";
_ref = _i2.value;
}
var opt = _step.value;
var opt = _ref;
if (opt.name.toLowerCase() === name.toLowerCase()) {

@@ -326,8 +354,5 @@ switch (opt.type) {

for (var _iterator = ts.optionDeclarations, _isArray = Array.isArray(_iterator), _i2 = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
var _ref;
for (var _iterator = _createForOfIteratorHelperLoose(ts.optionDeclarations), _step; !(_step = _iterator()).done;) {
var _ret = _loop2();
if (_ret === "break") break;
if (typeof _ret === "object") return _ret.v;

@@ -346,12 +371,12 @@ }

for (var _i3 = 0; _i3 < codeLines.length;) {
for (var _i2 = 0; _i2 < codeLines.length;) {
var match = void 0;
if (match = booleanConfigRegexp.exec(codeLines[_i3])) {
if (match = booleanConfigRegexp.exec(codeLines[_i2])) {
options[match[1]] = true;
setOption(match[1], "true", options, ts);
} else if (match = valuedConfigRegexp.exec(codeLines[_i3])) {
} else if (match = valuedConfigRegexp.exec(codeLines[_i2])) {
// Skip a filename tag, which should propagate through this stage
if (match[1] === "filename") {
_i3++;
_i2++;
continue;

@@ -362,7 +387,7 @@ }

} else {
_i3++;
_i2++;
continue;
}
codeLines.splice(_i3, 1);
codeLines.splice(_i2, 1);
}

@@ -388,18 +413,18 @@

for (var _i4 = 0; _i4 < codeLines.length; _i4++) {
for (var _i3 = 0; _i3 < codeLines.length; _i3++) {
var match = void 0;
if (match = booleanConfigRegexp.exec(codeLines[_i4])) {
if (match = booleanConfigRegexp.exec(codeLines[_i3])) {
if (match[1] in options) {
options[match[1]] = true;
log("Setting options." + match[1] + " to true");
codeLines.splice(_i4, 1);
_i4--;
codeLines.splice(_i3, 1);
_i3--;
}
} else if (match = valuedConfigRegexp.exec(codeLines[_i4])) {
} else if (match = valuedConfigRegexp.exec(codeLines[_i3])) {
if (match[1] in options) {
options[match[1]] = match[2];
log("Setting options." + match[1] + " to " + match[2]);
codeLines.splice(_i4, 1);
_i4--;
codeLines.splice(_i3, 1);
_i3--;
}

@@ -461,4 +486,6 @@ }

var getRoot = function getRoot() {
var path = require("path");
var pa = "pa";
var path = require(pa + "th");
var rootPath = options.vfsRoot || process.cwd();

@@ -490,12 +517,3 @@ return rootPath.split(path.sep).join(path.posix.sep);

if (_isArray2) {
if (_i5 >= _iterator2.length) return "break";
_ref2 = _iterator2[_i5++];
} else {
_i5 = _iterator2.next();
if (_i5.done) return "break";
_ref2 = _i5.value;
}
var file = _ref2;
var file = _step2.value;
var filename = file[0],

@@ -526,4 +544,3 @@ codeLines = file[1];

{
var quickInfo = ls.getQuickInfoAtPosition(filename, position);
var token = ls.getDefinitionAtPosition(filename, position); // prettier-ignore
var quickInfo = ls.getQuickInfoAtPosition(filename, position); // prettier-ignore

@@ -533,3 +550,3 @@ var text = "Could not get LSP result: " + stringAroundIndex(env.getSourceFile(filename).text, position);

if (quickInfo && token && quickInfo.displayParts) {
if (quickInfo && quickInfo.displayParts) {
text = quickInfo.displayParts.map(function (dp) {

@@ -585,8 +602,5 @@ return dp.text;

for (var _iterator2 = nameContent, _isArray2 = Array.isArray(_iterator2), _i5 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
var _ref2;
for (var _iterator2 = _createForOfIteratorHelperLoose(nameContent), _step2; !(_step2 = _iterator2()).done;) {
var _ret2 = _loop3();
if (_ret2 === "break") break;
if (_ret2 === "continue") continue;

@@ -639,15 +653,4 @@ } // We need to also strip the highlights + queries from the main file which is shown to people

for (var _iterator3 = identifiers, _isArray3 = Array.isArray(_iterator3), _i6 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) {
var _ref3;
if (_isArray3) {
if (_i6 >= _iterator3.length) break;
_ref3 = _iterator3[_i6++];
} else {
_i6 = _iterator3.next();
if (_i6.done) break;
_ref3 = _i6.value;
}
var identifier = _ref3;
for (var _iterator3 = _createForOfIteratorHelperLoose(identifiers), _step3; !(_step3 = _iterator3()).done;) {
var identifier = _step3.value;
var span = identifier.span;

@@ -734,18 +737,7 @@ var quickInfo = ls.getQuickInfoAtPosition(file, span.start);

for (var _iterator4 = relevantErrors, _isArray4 = Array.isArray(_iterator4), _i7 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator]();;) {
var _ref4;
if (_isArray4) {
if (_i7 >= _iterator4.length) break;
_ref4 = _iterator4[_i7++];
} else {
_i7 = _iterator4.next();
if (_i7.done) break;
_ref4 = _i7.value;
}
var err = _ref4;
for (var _iterator4 = _createForOfIteratorHelperLoose(relevantErrors), _step4; !(_step4 = _iterator4()).done;) {
var err = _step4.value;
var codeWhereErrorLives = env.sys.readFile(err.file.fileName);
var fileContentStartIndexInModifiedFile = code.indexOf(codeWhereErrorLives);
var renderedMessage = escapeHtml(ts.flattenDiagnosticMessageText(err.messageText, "\n"));
var renderedMessage = ts.flattenDiagnosticMessageText(err.messageText, "\n");
var id = "err-" + err.code + "-" + err.start + "-" + err.length;

@@ -872,16 +864,5 @@

for (var _iterator5 = lines, _isArray5 = Array.isArray(_iterator5), _i8 = 0, _iterator5 = _isArray5 ? _iterator5 : _iterator5[Symbol.iterator]();;) {
var _ref5;
for (var _iterator5 = _createForOfIteratorHelperLoose(lines), _step5; !(_step5 = _iterator5()).done;) {
var line = _step5.value;
if (_isArray5) {
if (_i8 >= _iterator5.length) break;
_ref5 = _iterator5[_i8++];
} else {
_i8 = _iterator5.next();
if (_i8.done) break;
_ref5 = _i8.value;
}
var line = _ref5;
if (line.includes("// @filename: ")) {

@@ -888,0 +869,0 @@ fileMap.push([root + nameForFile, currentFileContent]);

{
"name": "@typescript/twoslash",
"version": "1.1.7",
"version": "2.0.0",
"license": "MIT",

@@ -5,0 +5,0 @@ "author": "TypeScript team",

@@ -505,2 +505,44 @@ # TypeScript TwoSlash

#### `errorsWithGenerics.ts`
```ts
// @errors: 2322
const a: Record<string, string> = {}
let b: Record<string, number> = {}
b = a
```
Turns to:
> ```ts
> const a: Record<string, string> = {}
> let b: Record<string, number> = {}
> b = a
> ```
> With:
> ```json
> {
> "code": "See above",
> "extension": "ts",
> "highlights": [],
> "queries": [],
> "staticQuickInfos": "[ 6 items ]",
> "errors": [
> {
> "category": 1,
> "code": 2322,
> "length": 1,
> "start": 72,
> "line": 2,
> "character": 0,
> "renderedMessage": "Type 'Record<string, string>' is not assignable to type 'Record<string, number>'.\n Index signatures are incompatible.\n Type 'string' is not assignable to type 'number'.",
> "id": "err-2322-72-1"
> }
> ],
> "playgroundURL": "https://www.typescriptlang.org/play/#code/PTAEAEFMCdoe2gZwFygEwGY1oFAGM4A7RAF1AENUAlSA6AEwB5ToBLQgcwBpQX2OAfKAC8oAN4BfHABtIZAEbVaCJn049CAVwC28mENGSc8kRRxA"
> }
> ```
#### `highlighting.ts`

@@ -507,0 +549,0 @@

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc