next-csrf
Version:
CSRF mitigation library for Next.js
1 lines • 312 kB
JavaScript
module.exports=function(e,t){"use strict";var r={};function __webpack_require__(t){if(r[t]){return r[t].exports}var i=r[t]={i:t,l:false,exports:{}};e[t].call(i.exports,i,i.exports,__webpack_require__);i.l=true;return i.exports}__webpack_require__.ab=__dirname+"/";function startup(){return __webpack_require__(419)}return startup()}({27:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:true});var r;(function(e){})(r=t.namedTypes||(t.namedTypes={}))},38:function(e,t,r){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});var n=i(r(286));var a=i(r(659));var s=i(r(563));var u=i(r(910));var l=i(r(914));var o=i(r(831));var c=i(r(278));var h=i(r(448));var f=i(r(850));var p=i(r(977));var d=r(27);t.namedTypes=d.namedTypes;var m=n.default([a.default,s.default,u.default,l.default,o.default,c.default,h.default,f.default,p.default]),v=m.astNodesAreEquivalent,y=m.builders,x=m.builtInTypes,E=m.defineMethod,S=m.eachField,D=m.finalize,b=m.getBuilderName,g=m.getFieldNames,C=m.getFieldValue,A=m.getSupertypeNames,T=m.namedTypes,F=m.NodePath,w=m.Path,P=m.PathVisitor,k=m.someField,B=m.Type,M=m.use,I=m.visit;t.astNodesAreEquivalent=v;t.builders=y;t.builtInTypes=x;t.defineMethod=E;t.eachField=S;t.finalize=D;t.getBuilderName=b;t.getFieldNames=g;t.getFieldValue=C;t.getSupertypeNames=A;t.NodePath=F;t.Path=w;t.PathVisitor=P;t.someField=k;t.Type=B;t.use=M;t.visit=I;Object.assign(d.namedTypes,T)},42:function(e,t,r){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(Object.hasOwnProperty.call(e,r))t[r]=e[r];t["default"]=e;return t};Object.defineProperty(t,"__esModule",{value:true});var a=i(r(357));var s=n(r(38));var u=s.namedTypes;var l=s.builtInTypes.array;var o=s.builtInTypes.object;var c=r(791);var h=r(715);var f=r(415);var p=f.makeUniqueKey();function getSortedChildNodes(e,t,r){if(!e){return}h.fixFaultyLocations(e,t);if(r){if(u.Node.check(e)&&u.SourceLocation.check(e.loc)){for(var i=r.length-1;i>=0;--i){if(h.comparePos(r[i].loc.end,e.loc.start)<=0){break}}r.splice(i+1,0,e);return}}else if(e[p]){return e[p]}var n;if(l.check(e)){n=Object.keys(e)}else if(o.check(e)){n=s.getFieldNames(e)}else{return}if(!r){Object.defineProperty(e,p,{value:r=[],enumerable:false})}for(var i=0,a=n.length;i<a;++i){getSortedChildNodes(e[n[i]],t,r)}return r}function decorateComment(e,t,r){var i=getSortedChildNodes(e,r);var n=0,a=i.length;while(n<a){var s=n+a>>1;var u=i[s];if(h.comparePos(u.loc.start,t.loc.start)<=0&&h.comparePos(t.loc.end,u.loc.end)<=0){decorateComment(t.enclosingNode=u,t,r);return}if(h.comparePos(u.loc.end,t.loc.start)<=0){var l=u;n=s+1;continue}if(h.comparePos(t.loc.end,u.loc.start)<=0){var o=u;a=s;continue}throw new Error("Comment location overlaps with node location")}if(l){t.precedingNode=l}if(o){t.followingNode=o}}function attach(e,t,r){if(!l.check(e)){return}var i=[];e.forEach(function(e){e.loc.lines=r;decorateComment(t,e,r);var n=e.precedingNode;var s=e.enclosingNode;var u=e.followingNode;if(n&&u){var l=i.length;if(l>0){var o=i[l-1];a.default.strictEqual(o.precedingNode===e.precedingNode,o.followingNode===e.followingNode);if(o.followingNode!==e.followingNode){breakTies(i,r)}}i.push(e)}else if(n){breakTies(i,r);addTrailingComment(n,e)}else if(u){breakTies(i,r);addLeadingComment(u,e)}else if(s){breakTies(i,r);addDanglingComment(s,e)}else{throw new Error("AST contains no nodes at all?")}});breakTies(i,r);e.forEach(function(e){delete e.precedingNode;delete e.enclosingNode;delete e.followingNode})}t.attach=attach;function breakTies(e,t){var r=e.length;if(r===0){return}var i=e[0].precedingNode;var n=e[0].followingNode;var s=n.loc.start;for(var u=r;u>0;--u){var l=e[u-1];a.default.strictEqual(l.precedingNode,i);a.default.strictEqual(l.followingNode,n);var o=t.sliceString(l.loc.end,s);if(/\S/.test(o)){break}s=l.loc.start}while(u<=r&&(l=e[u])&&(l.type==="Line"||l.type==="CommentLine")&&l.loc.start.column>n.loc.start.column){++u}e.forEach(function(e,t){if(t<u){addTrailingComment(i,e)}else{addLeadingComment(n,e)}});e.length=0}function addCommentHelper(e,t){var r=e.comments||(e.comments=[]);r.push(t)}function addLeadingComment(e,t){t.leading=true;t.trailing=false;addCommentHelper(e,t)}function addDanglingComment(e,t){t.leading=false;t.trailing=false;addCommentHelper(e,t)}function addTrailingComment(e,t){t.leading=false;t.trailing=true;addCommentHelper(e,t)}function printLeadingComment(e,t){var r=e.getValue();u.Comment.assert(r);var i=r.loc;var n=i&&i.lines;var a=[t(e)];if(r.trailing){a.push("\n")}else if(n instanceof c.Lines){var s=n.slice(i.end,n.skipSpaces(i.end)||n.lastPos());if(s.length===1){a.push(s)}else{a.push(new Array(s.length).join("\n"))}}else{a.push("\n")}return c.concat(a)}function printTrailingComment(e,t){var r=e.getValue(e);u.Comment.assert(r);var i=r.loc;var n=i&&i.lines;var a=[];if(n instanceof c.Lines){var s=n.skipSpaces(i.start,true)||n.firstPos();var l=n.slice(s,i.start);if(l.length===1){a.push(l)}else{a.push(new Array(l.length).join("\n"))}}a.push(t(e));return c.concat(a)}function printComments(e,t){var r=e.getValue();var i=t(e);var n=u.Node.check(r)&&s.getFieldValue(r,"comments");if(!n||n.length===0){return i}var a=[];var l=[i];e.each(function(e){var i=e.getValue();var n=s.getFieldValue(i,"leading");var o=s.getFieldValue(i,"trailing");if(n||o&&!(u.Statement.check(r)||i.type==="Block"||i.type==="CommentBlock")){a.push(printLeadingComment(e,t))}else if(o){l.push(printTrailingComment(e,t))}},"comments");a.push.apply(a,l);return c.concat(a)}t.printComments=printComments},64:function(e,t,r){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});var n=i(r(937));var a=i(r(93));var s=i(r(910));function default_1(e){e.use(s.default);var t=e.use(n.default);var r=e.use(a.default).defaults;var i=t.Type.def;var u=t.Type.or;i("Noop").bases("Statement").build();i("DoExpression").bases("Expression").build("body").field("body",[i("Statement")]);i("Super").bases("Expression").build();i("BindExpression").bases("Expression").build("object","callee").field("object",u(i("Expression"),null)).field("callee",i("Expression"));i("Decorator").bases("Node").build("expression").field("expression",i("Expression"));i("Property").field("decorators",u([i("Decorator")],null),r["null"]);i("MethodDefinition").field("decorators",u([i("Decorator")],null),r["null"]);i("MetaProperty").bases("Expression").build("meta","property").field("meta",i("Identifier")).field("property",i("Identifier"));i("ParenthesizedExpression").bases("Expression").build("expression").field("expression",i("Expression"));i("ImportSpecifier").bases("ModuleSpecifier").build("imported","local").field("imported",i("Identifier"));i("ImportDefaultSpecifier").bases("ModuleSpecifier").build("local");i("ImportNamespaceSpecifier").bases("ModuleSpecifier").build("local");i("ExportDefaultDeclaration").bases("Declaration").build("declaration").field("declaration",u(i("Declaration"),i("Expression")));i("ExportNamedDeclaration").bases("Declaration").build("declaration","specifiers","source").field("declaration",u(i("Declaration"),null)).field("specifiers",[i("ExportSpecifier")],r.emptyArray).field("source",u(i("Literal"),null),r["null"]);i("ExportSpecifier").bases("ModuleSpecifier").build("local","exported").field("exported",i("Identifier"));i("ExportNamespaceSpecifier").bases("Specifier").build("exported").field("exported",i("Identifier"));i("ExportDefaultSpecifier").bases("Specifier").build("exported").field("exported",i("Identifier"));i("ExportAllDeclaration").bases("Declaration").build("exported","source").field("exported",u(i("Identifier"),null)).field("source",i("Literal"));i("CommentBlock").bases("Comment").build("value","leading","trailing");i("CommentLine").bases("Comment").build("value","leading","trailing");i("Directive").bases("Node").build("value").field("value",i("DirectiveLiteral"));i("DirectiveLiteral").bases("Node","Expression").build("value").field("value",String,r["use strict"]);i("InterpreterDirective").bases("Node").build("value").field("value",String);i("BlockStatement").bases("Statement").build("body").field("body",[i("Statement")]).field("directives",[i("Directive")],r.emptyArray);i("Program").bases("Node").build("body").field("body",[i("Statement")]).field("directives",[i("Directive")],r.emptyArray).field("interpreter",u(i("InterpreterDirective"),null),r["null"]);i("StringLiteral").bases("Literal").build("value").field("value",String);i("NumericLiteral").bases("Literal").build("value").field("value",Number).field("raw",u(String,null),r["null"]).field("extra",{rawValue:Number,raw:String},function getDefault(){return{rawValue:this.value,raw:this.value+""}});i("BigIntLiteral").bases("Literal").build("value").field("value",u(String,Number)).field("extra",{rawValue:String,raw:String},function getDefault(){return{rawValue:String(this.value),raw:this.value+"n"}});i("NullLiteral").bases("Literal").build().field("value",null,r["null"]);i("BooleanLiteral").bases("Literal").build("value").field("value",Boolean);i("RegExpLiteral").bases("Literal").build("pattern","flags").field("pattern",String).field("flags",String).field("value",RegExp,function(){return new RegExp(this.pattern,this.flags)});var l=u(i("Property"),i("ObjectMethod"),i("ObjectProperty"),i("SpreadProperty"),i("SpreadElement"));i("ObjectExpression").bases("Expression").build("properties").field("properties",[l]);i("ObjectMethod").bases("Node","Function").build("kind","key","params","body","computed").field("kind",u("method","get","set")).field("key",u(i("Literal"),i("Identifier"),i("Expression"))).field("params",[i("Pattern")]).field("body",i("BlockStatement")).field("computed",Boolean,r["false"]).field("generator",Boolean,r["false"]).field("async",Boolean,r["false"]).field("accessibility",u(i("Literal"),null),r["null"]).field("decorators",u([i("Decorator")],null),r["null"]);i("ObjectProperty").bases("Node").build("key","value").field("key",u(i("Literal"),i("Identifier"),i("Expression"))).field("value",u(i("Expression"),i("Pattern"))).field("accessibility",u(i("Literal"),null),r["null"]).field("computed",Boolean,r["false"]);var o=u(i("MethodDefinition"),i("VariableDeclarator"),i("ClassPropertyDefinition"),i("ClassProperty"),i("ClassPrivateProperty"),i("ClassMethod"),i("ClassPrivateMethod"));i("ClassBody").bases("Declaration").build("body").field("body",[o]);i("ClassMethod").bases("Declaration","Function").build("kind","key","params","body","computed","static").field("key",u(i("Literal"),i("Identifier"),i("Expression")));i("ClassPrivateMethod").bases("Declaration","Function").build("key","params","body","kind","computed","static").field("key",i("PrivateName"));["ClassMethod","ClassPrivateMethod"].forEach(function(e){i(e).field("kind",u("get","set","method","constructor"),function(){return"method"}).field("body",i("BlockStatement")).field("computed",Boolean,r["false"]).field("static",u(Boolean,null),r["null"]).field("abstract",u(Boolean,null),r["null"]).field("access",u("public","private","protected",null),r["null"]).field("accessibility",u("public","private","protected",null),r["null"]).field("decorators",u([i("Decorator")],null),r["null"]).field("optional",u(Boolean,null),r["null"])});i("ClassPrivateProperty").bases("ClassProperty").build("key","value").field("key",i("PrivateName")).field("value",u(i("Expression"),null),r["null"]);i("PrivateName").bases("Expression","Pattern").build("id").field("id",i("Identifier"));var c=u(i("Property"),i("PropertyPattern"),i("SpreadPropertyPattern"),i("SpreadProperty"),i("ObjectProperty"),i("RestProperty"));i("ObjectPattern").bases("Pattern").build("properties").field("properties",[c]).field("decorators",u([i("Decorator")],null),r["null"]);i("SpreadProperty").bases("Node").build("argument").field("argument",i("Expression"));i("RestProperty").bases("Node").build("argument").field("argument",i("Expression"));i("ForAwaitStatement").bases("Statement").build("left","right","body").field("left",u(i("VariableDeclaration"),i("Expression"))).field("right",i("Expression")).field("body",i("Statement"));i("Import").bases("Expression").build()}t.default=default_1;e.exports=t["default"]},87:function(e){e.exports=require("os")},93:function(e,t,r){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});var n=i(r(937));function default_1(e){var t=e.use(n.default);var r=t.Type;var i=t.builtInTypes;var a=i.number;function geq(e){return r.from(function(t){return a.check(t)&&t>=e},a+" >= "+e)}var s={null:function(){return null},emptyArray:function(){return[]},false:function(){return false},true:function(){return true},undefined:function(){},"use strict":function(){return"use strict"}};var u=r.or(i.string,i.number,i.boolean,i.null,i.undefined);var l=r.from(function(e){if(e===null)return true;var t=typeof e;if(t==="object"||t==="function"){return false}return true},u.toString());return{geq:geq,defaults:s,isPrimitive:l}}t.default=default_1;e.exports=t["default"]},202:function(e,t,r){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});var n=i(r(937));var a=i(r(93));function default_1(e){var t=e.use(n.default);var r=t.Type.def;var i=t.Type.or;var s=e.use(a.default).defaults;var u=i(r("TypeAnnotation"),r("TSTypeAnnotation"),null);var l=i(r("TypeParameterDeclaration"),r("TSTypeParameterDeclaration"),null);r("Identifier").field("typeAnnotation",u,s["null"]);r("ObjectPattern").field("typeAnnotation",u,s["null"]);r("Function").field("returnType",u,s["null"]).field("typeParameters",l,s["null"]);r("ClassProperty").build("key","value","typeAnnotation","static").field("value",i(r("Expression"),null)).field("static",Boolean,s["false"]).field("typeAnnotation",u,s["null"]);["ClassDeclaration","ClassExpression"].forEach(function(e){r(e).field("typeParameters",l,s["null"]).field("superTypeParameters",i(r("TypeParameterInstantiation"),r("TSTypeParameterInstantiation"),null),s["null"]).field("implements",i([r("ClassImplements")],[r("TSExpressionWithTypeArguments")]),s.emptyArray)})}t.default=default_1;e.exports=t["default"]},241:function(e){e.exports=require("next/dist/compiled/source-map")},278:function(e,t,r){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});var n=i(r(910));var a=i(r(937));var s=i(r(93));function default_1(e){e.use(n.default);var t=e.use(a.default);var r=e.use(s.default).defaults;var i=t.Type.def;var u=t.Type.or;i("VariableDeclaration").field("declarations",[u(i("VariableDeclarator"),i("Identifier"))]);i("Property").field("value",u(i("Expression"),i("Pattern")));i("ArrayPattern").field("elements",[u(i("Pattern"),i("SpreadElement"),null)]);i("ObjectPattern").field("properties",[u(i("Property"),i("PropertyPattern"),i("SpreadPropertyPattern"),i("SpreadProperty"))]);i("ExportSpecifier").bases("ModuleSpecifier").build("id","name");i("ExportBatchSpecifier").bases("Specifier").build();i("ExportDeclaration").bases("Declaration").build("default","declaration","specifiers","source").field("default",Boolean).field("declaration",u(i("Declaration"),i("Expression"),null)).field("specifiers",[u(i("ExportSpecifier"),i("ExportBatchSpecifier"))],r.emptyArray).field("source",u(i("Literal"),null),r["null"]);i("Block").bases("Comment").build("value","leading","trailing");i("Line").bases("Comment").build("value","leading","trailing")}t.default=default_1;e.exports=t["default"]},286:function(e,t,r){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});var n=i(r(937));var a=i(r(577));var s=i(r(875));var u=i(r(333));var l=i(r(319));function default_1(e){var t=createFork();var r=t.use(n.default);e.forEach(t.use);r.finalize();var i=t.use(a.default);return{Type:r.Type,builtInTypes:r.builtInTypes,namedTypes:r.namedTypes,builders:r.builders,defineMethod:r.defineMethod,getFieldNames:r.getFieldNames,getFieldValue:r.getFieldValue,eachField:r.eachField,someField:r.someField,getSupertypeNames:r.getSupertypeNames,getBuilderName:r.getBuilderName,astNodesAreEquivalent:t.use(s.default),finalize:r.finalize,Path:t.use(u.default),NodePath:t.use(l.default),PathVisitor:i,use:t.use,visit:i.visit}}t.default=default_1;function createFork(){var e=[];var t=[];function use(i){var n=e.indexOf(i);if(n===-1){n=e.length;e.push(i);t[n]=i(r)}return t[n]}var r={use:use};return r}e.exports=t["default"]},319:function(e,t,r){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});var n=i(r(937));var a=i(r(333));var s=i(r(916));function nodePathPlugin(e){var t=e.use(n.default);var r=t.namedTypes;var i=t.builders;var u=t.builtInTypes.number;var l=t.builtInTypes.array;var o=e.use(a.default);var c=e.use(s.default);var h=function NodePath(e,t,r){if(!(this instanceof NodePath)){throw new Error("NodePath constructor cannot be invoked without 'new'")}o.call(this,e,t,r)};var f=h.prototype=Object.create(o.prototype,{constructor:{value:h,enumerable:false,writable:true,configurable:true}});Object.defineProperties(f,{node:{get:function(){Object.defineProperty(this,"node",{configurable:true,value:this._computeNode()});return this.node}},parent:{get:function(){Object.defineProperty(this,"parent",{configurable:true,value:this._computeParent()});return this.parent}},scope:{get:function(){Object.defineProperty(this,"scope",{configurable:true,value:this._computeScope()});return this.scope}}});f.replace=function(){delete this.node;delete this.parent;delete this.scope;return o.prototype.replace.apply(this,arguments)};f.prune=function(){var e=this.parent;this.replace();return cleanUpNodesAfterPrune(e)};f._computeNode=function(){var e=this.value;if(r.Node.check(e)){return e}var t=this.parentPath;return t&&t.node||null};f._computeParent=function(){var e=this.value;var t=this.parentPath;if(!r.Node.check(e)){while(t&&!r.Node.check(t.value)){t=t.parentPath}if(t){t=t.parentPath}}while(t&&!r.Node.check(t.value)){t=t.parentPath}return t||null};f._computeScope=function(){var e=this.value;var t=this.parentPath;var i=t&&t.scope;if(r.Node.check(e)&&c.isEstablishedBy(e)){i=new c(this,i)}return i||null};f.getValueProperty=function(e){return t.getFieldValue(this.value,e)};f.needsParens=function(e){var t=this.parentPath;if(!t){return false}var i=this.value;if(!r.Expression.check(i)){return false}if(i.type==="Identifier"){return false}while(!r.Node.check(t.value)){t=t.parentPath;if(!t){return false}}var n=t.value;switch(i.type){case"UnaryExpression":case"SpreadElement":case"SpreadProperty":return n.type==="MemberExpression"&&this.name==="object"&&n.object===i;case"BinaryExpression":case"LogicalExpression":switch(n.type){case"CallExpression":return this.name==="callee"&&n.callee===i;case"UnaryExpression":case"SpreadElement":case"SpreadProperty":return true;case"MemberExpression":return this.name==="object"&&n.object===i;case"BinaryExpression":case"LogicalExpression":{var a=i;var s=n.operator;var l=p[s];var o=a.operator;var c=p[o];if(l>c){return true}if(l===c&&this.name==="right"){if(n.right!==a){throw new Error("Nodes must be equal")}return true}}default:return false}case"SequenceExpression":switch(n.type){case"ForStatement":return false;case"ExpressionStatement":return this.name!=="expression";default:return true}case"YieldExpression":switch(n.type){case"BinaryExpression":case"LogicalExpression":case"UnaryExpression":case"SpreadElement":case"SpreadProperty":case"CallExpression":case"MemberExpression":case"NewExpression":case"ConditionalExpression":case"YieldExpression":return true;default:return false}case"Literal":return n.type==="MemberExpression"&&u.check(i.value)&&this.name==="object"&&n.object===i;case"AssignmentExpression":case"ConditionalExpression":switch(n.type){case"UnaryExpression":case"SpreadElement":case"SpreadProperty":case"BinaryExpression":case"LogicalExpression":return true;case"CallExpression":return this.name==="callee"&&n.callee===i;case"ConditionalExpression":return this.name==="test"&&n.test===i;case"MemberExpression":return this.name==="object"&&n.object===i;default:return false}default:if(n.type==="NewExpression"&&this.name==="callee"&&n.callee===i){return containsCallExpression(i)}}if(e!==true&&!this.canBeFirstInStatement()&&this.firstInStatement())return true;return false};function isBinary(e){return r.BinaryExpression.check(e)||r.LogicalExpression.check(e)}function isUnaryLike(e){return r.UnaryExpression.check(e)||r.SpreadElement&&r.SpreadElement.check(e)||r.SpreadProperty&&r.SpreadProperty.check(e)}var p={};[["||"],["&&"],["|"],["^"],["&"],["==","===","!=","!=="],["<",">","<=",">=","in","instanceof"],[">>","<<",">>>"],["+","-"],["*","/","%"]].forEach(function(e,t){e.forEach(function(e){p[e]=t})});function containsCallExpression(e){if(r.CallExpression.check(e)){return true}if(l.check(e)){return e.some(containsCallExpression)}if(r.Node.check(e)){return t.someField(e,function(e,t){return containsCallExpression(t)})}return false}f.canBeFirstInStatement=function(){var e=this.node;return!r.FunctionExpression.check(e)&&!r.ObjectExpression.check(e)};f.firstInStatement=function(){return firstInStatement(this)};function firstInStatement(e){for(var t,i;e.parent;e=e.parent){t=e.node;i=e.parent.node;if(r.BlockStatement.check(i)&&e.parent.name==="body"&&e.name===0){if(i.body[0]!==t){throw new Error("Nodes must be equal")}return true}if(r.ExpressionStatement.check(i)&&e.name==="expression"){if(i.expression!==t){throw new Error("Nodes must be equal")}return true}if(r.SequenceExpression.check(i)&&e.parent.name==="expressions"&&e.name===0){if(i.expressions[0]!==t){throw new Error("Nodes must be equal")}continue}if(r.CallExpression.check(i)&&e.name==="callee"){if(i.callee!==t){throw new Error("Nodes must be equal")}continue}if(r.MemberExpression.check(i)&&e.name==="object"){if(i.object!==t){throw new Error("Nodes must be equal")}continue}if(r.ConditionalExpression.check(i)&&e.name==="test"){if(i.test!==t){throw new Error("Nodes must be equal")}continue}if(isBinary(i)&&e.name==="left"){if(i.left!==t){throw new Error("Nodes must be equal")}continue}if(r.UnaryExpression.check(i)&&!i.prefix&&e.name==="argument"){if(i.argument!==t){throw new Error("Nodes must be equal")}continue}return false}return true}function cleanUpNodesAfterPrune(e){if(r.VariableDeclaration.check(e.node)){var t=e.get("declarations").value;if(!t||t.length===0){return e.prune()}}else if(r.ExpressionStatement.check(e.node)){if(!e.get("expression").value){return e.prune()}}else if(r.IfStatement.check(e.node)){cleanUpIfStatementAfterPrune(e)}return e}function cleanUpIfStatementAfterPrune(e){var t=e.get("test").value;var n=e.get("alternate").value;var a=e.get("consequent").value;if(!a&&!n){var s=i.expressionStatement(t);e.replace(s)}else if(!a&&n){var u=i.unaryExpression("!",t,true);if(r.UnaryExpression.check(t)&&t.operator==="!"){u=t.argument}e.get("test").replace(u);e.get("consequent").replace(n);e.get("alternate").replace()}}return h}t.default=nodePathPlugin;e.exports=t["default"]},333:function(e,t,r){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});var n=i(r(937));var a=Object.prototype;var s=a.hasOwnProperty;function pathPlugin(e){var t=e.use(n.default);var r=t.builtInTypes.array;var i=t.builtInTypes.number;var a=function Path(e,t,r){if(!(this instanceof Path)){throw new Error("Path constructor cannot be invoked without 'new'")}if(t){if(!(t instanceof Path)){throw new Error("")}}else{t=null;r=null}this.value=e;this.parentPath=t;this.name=r;this.__childCache=null};var u=a.prototype;function getChildCache(e){return e.__childCache||(e.__childCache=Object.create(null))}function getChildPath(e,t){var r=getChildCache(e);var i=e.getValueProperty(t);var n=r[t];if(!s.call(r,t)||n.value!==i){n=r[t]=new e.constructor(i,e,t)}return n}u.getValueProperty=function getValueProperty(e){return this.value[e]};u.get=function get(){var e=[];for(var t=0;t<arguments.length;t++){e[t]=arguments[t]}var r=this;var i=e.length;for(var n=0;n<i;++n){r=getChildPath(r,e[n])}return r};u.each=function each(e,t){var r=[];var i=this.value.length;var n=0;for(var n=0;n<i;++n){if(s.call(this.value,n)){r[n]=this.get(n)}}t=t||this;for(n=0;n<i;++n){if(s.call(r,n)){e.call(t,r[n])}}};u.map=function map(e,t){var r=[];this.each(function(t){r.push(e.call(this,t))},t);return r};u.filter=function filter(e,t){var r=[];this.each(function(t){if(e.call(this,t)){r.push(t)}},t);return r};function emptyMoves(){}function getMoves(e,t,n,a){r.assert(e.value);if(t===0){return emptyMoves}var u=e.value.length;if(u<1){return emptyMoves}var l=arguments.length;if(l===2){n=0;a=u}else if(l===3){n=Math.max(n,0);a=u}else{n=Math.max(n,0);a=Math.min(a,u)}i.assert(n);i.assert(a);var o=Object.create(null);var c=getChildCache(e);for(var h=n;h<a;++h){if(s.call(e.value,h)){var f=e.get(h);if(f.name!==h){throw new Error("")}var p=h+t;f.name=p;o[p]=f;delete c[h]}}delete c.length;return function(){for(var t in o){var r=o[t];if(r.name!==+t){throw new Error("")}c[t]=r;e.value[t]=r.value}}}u.shift=function shift(){var e=getMoves(this,-1);var t=this.value.shift();e();return t};u.unshift=function unshift(){var e=[];for(var t=0;t<arguments.length;t++){e[t]=arguments[t]}var r=getMoves(this,e.length);var i=this.value.unshift.apply(this.value,e);r();return i};u.push=function push(){var e=[];for(var t=0;t<arguments.length;t++){e[t]=arguments[t]}r.assert(this.value);delete getChildCache(this).length;return this.value.push.apply(this.value,e)};u.pop=function pop(){r.assert(this.value);var e=getChildCache(this);delete e[this.value.length-1];delete e.length;return this.value.pop()};u.insertAt=function insertAt(e){var t=arguments.length;var r=getMoves(this,t-1,e);if(r===emptyMoves&&t<=1){return this}e=Math.max(e,0);for(var i=1;i<t;++i){this.value[e+i-1]=arguments[i]}r();return this};u.insertBefore=function insertBefore(){var e=[];for(var t=0;t<arguments.length;t++){e[t]=arguments[t]}var r=this.parentPath;var i=e.length;var n=[this.name];for(var a=0;a<i;++a){n.push(e[a])}return r.insertAt.apply(r,n)};u.insertAfter=function insertAfter(){var e=[];for(var t=0;t<arguments.length;t++){e[t]=arguments[t]}var r=this.parentPath;var i=e.length;var n=[this.name+1];for(var a=0;a<i;++a){n.push(e[a])}return r.insertAt.apply(r,n)};function repairRelationshipWithParent(e){if(!(e instanceof a)){throw new Error("")}var t=e.parentPath;if(!t){return e}var i=t.value;var n=getChildCache(t);if(i[e.name]===e.value){n[e.name]=e}else if(r.check(i)){var s=i.indexOf(e.value);if(s>=0){n[e.name=s]=e}}else{i[e.name]=e.value;n[e.name]=e}if(i[e.name]!==e.value){throw new Error("")}if(e.parentPath.get(e.name)!==e){throw new Error("")}return e}u.replace=function replace(e){var t=[];var i=this.parentPath.value;var n=getChildCache(this.parentPath);var a=arguments.length;repairRelationshipWithParent(this);if(r.check(i)){var s=i.length;var u=getMoves(this.parentPath,a-1,this.name+1);var l=[this.name,1];for(var o=0;o<a;++o){l.push(arguments[o])}var c=i.splice.apply(i,l);if(c[0]!==this.value){throw new Error("")}if(i.length!==s-1+a){throw new Error("")}u();if(a===0){delete this.value;delete n[this.name];this.__childCache=null}else{if(i[this.name]!==e){throw new Error("")}if(this.value!==e){this.value=e;this.__childCache=null}for(o=0;o<a;++o){t.push(this.parentPath.get(this.name+o))}if(t[0]!==this){throw new Error("")}}}else if(a===1){if(this.value!==e){this.__childCache=null}this.value=i[this.name]=e;t.push(this)}else if(a===0){delete i[this.name];delete this.value;this.__childCache=null}else{throw new Error("Could not replace path")}return t};return a}t.default=pathPlugin;e.exports=t["default"]},345:function(e,t,r){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(Object.hasOwnProperty.call(e,r))t[r]=e[r];t["default"]=e;return t};Object.defineProperty(t,"__esModule",{value:true});var a=i(r(357));var s=r(42);var u=r(791);var l=r(764);var o=r(493);var c=n(r(38));var h=c.namedTypes;var f=c.builtInTypes.string;var p=c.builtInTypes.object;var d=i(r(497));var m=n(r(715));var v=function PrintResult(e,t){a.default.ok(this instanceof PrintResult);f.assert(e);this.code=e;if(t){p.assert(t);this.map=t}};var y=v.prototype;var x=false;y.toString=function(){if(!x){console.warn("Deprecation warning: recast.print now returns an object with "+"a .code property. You appear to be treating the object as a "+"string, which might still work but is strongly discouraged.");x=true}return this.code};var E=new v("");var S=function Printer(e){a.default.ok(this instanceof Printer);var t=e&&e.tabWidth;e=l.normalize(e);e.sourceFileName=null;function makePrintFunctionWith(e,t){e=Object.assign({},e,t);return function(t){return print(t,e)}}function print(r,i){a.default.ok(r instanceof d.default);i=i||{};if(i.includeComments){return s.printComments(r,makePrintFunctionWith(i,{includeComments:false}))}var n=e.tabWidth;if(!t){var u=r.getNode().loc;if(u&&u.lines&&u.lines.guessTabWidth){e.tabWidth=u.lines.guessTabWidth()}}var l=o.getReprinter(r);var c=l?l(print):genericPrint(r,e,i,makePrintFunctionWith(i,{includeComments:true,avoidRootParens:false}));e.tabWidth=n;return c}this.print=function(t){if(!t){return E}var r=print(d.default.from(t),{includeComments:true,avoidRootParens:false});return new v(r.toString(e),m.composeSourceMaps(e.inputSourceMap,r.getSourceMap(e.sourceMapName,e.sourceRoot)))};this.printGenerically=function(t){if(!t){return E}function printGenerically(t){return s.printComments(t,function(t){return genericPrint(t,e,{includeComments:true,avoidRootParens:false},printGenerically)})}var r=d.default.from(t);var i=e.reuseWhitespace;e.reuseWhitespace=false;var n=new v(printGenerically(r).toString(e));e.reuseWhitespace=i;return n}};t.Printer=S;function genericPrint(e,t,r,i){a.default.ok(e instanceof d.default);var n=e.getValue();var s=[];var l=genericPrintNoParens(e,t,i);if(!n||l.isEmpty()){return l}var o=false;var c=printDecorators(e,i);if(c.isEmpty()){if(!r.avoidRootParens){o=e.needsParens()}}else{s.push(c)}if(o){s.unshift("(")}s.push(l);if(o){s.push(")")}return u.concat(s)}function genericPrintNoParens(e,t,r){var i=e.getValue();if(!i){return u.fromString("")}if(typeof i==="string"){return u.fromString(i,t)}h.Printable.assert(i);var n=[];switch(i.type){case"File":return e.call(r,"program");case"Program":if(i.directives){e.each(function(e){n.push(r(e),";\n")},"directives")}if(i.interpreter){n.push(e.call(r,"interpreter"))}n.push(e.call(function(e){return printStatementSequence(e,t,r)},"body"));return u.concat(n);case"Noop":case"EmptyStatement":return u.fromString("");case"ExpressionStatement":return u.concat([e.call(r,"expression"),";"]);case"ParenthesizedExpression":return u.concat(["(",e.call(r,"expression"),")"]);case"BinaryExpression":case"LogicalExpression":case"AssignmentExpression":return u.fromString(" ").join([e.call(r,"left"),i.operator,e.call(r,"right")]);case"AssignmentPattern":return u.concat([e.call(r,"left")," = ",e.call(r,"right")]);case"MemberExpression":case"OptionalMemberExpression":n.push(e.call(r,"object"));var s=e.call(r,"property");var l=i.type==="OptionalMemberExpression"&&i.optional;if(i.computed){n.push(l?"?.[":"[",s,"]")}else{n.push(l?"?.":".",s)}return u.concat(n);case"MetaProperty":return u.concat([e.call(r,"meta"),".",e.call(r,"property")]);case"BindExpression":if(i.object){n.push(e.call(r,"object"))}n.push("::",e.call(r,"callee"));return u.concat(n);case"Path":return u.fromString(".").join(i.body);case"Identifier":return u.concat([u.fromString(i.name,t),i.optional?"?":"",e.call(r,"typeAnnotation")]);case"SpreadElement":case"SpreadElementPattern":case"RestProperty":case"SpreadProperty":case"SpreadPropertyPattern":case"ObjectTypeSpreadProperty":case"RestElement":return u.concat(["...",e.call(r,"argument"),e.call(r,"typeAnnotation")]);case"FunctionDeclaration":case"FunctionExpression":case"TSDeclareFunction":if(i.declare){n.push("declare ")}if(i.async){n.push("async ")}n.push("function");if(i.generator)n.push("*");if(i.id){n.push(" ",e.call(r,"id"),e.call(r,"typeParameters"))}else{if(i.typeParameters){n.push(e.call(r,"typeParameters"))}}n.push("(",printFunctionParams(e,t,r),")",e.call(r,"returnType"));if(i.body){n.push(" ",e.call(r,"body"))}return u.concat(n);case"ArrowFunctionExpression":if(i.async){n.push("async ")}if(i.typeParameters){n.push(e.call(r,"typeParameters"))}if(!t.arrowParensAlways&&i.params.length===1&&!i.rest&&i.params[0].type==="Identifier"&&!i.params[0].typeAnnotation&&!i.returnType){n.push(e.call(r,"params",0))}else{n.push("(",printFunctionParams(e,t,r),")",e.call(r,"returnType"))}n.push(" => ",e.call(r,"body"));return u.concat(n);case"MethodDefinition":return printMethod(e,t,r);case"YieldExpression":n.push("yield");if(i.delegate)n.push("*");if(i.argument)n.push(" ",e.call(r,"argument"));return u.concat(n);case"AwaitExpression":n.push("await");if(i.all)n.push("*");if(i.argument)n.push(" ",e.call(r,"argument"));return u.concat(n);case"ModuleDeclaration":n.push("module",e.call(r,"id"));if(i.source){a.default.ok(!i.body);n.push("from",e.call(r,"source"))}else{n.push(e.call(r,"body"))}return u.fromString(" ").join(n);case"ImportSpecifier":if(i.importKind&&i.importKind!=="value"){n.push(i.importKind+" ")}if(i.imported){n.push(e.call(r,"imported"));if(i.local&&i.local.name!==i.imported.name){n.push(" as ",e.call(r,"local"))}}else if(i.id){n.push(e.call(r,"id"));if(i.name){n.push(" as ",e.call(r,"name"))}}return u.concat(n);case"ExportSpecifier":if(i.local){n.push(e.call(r,"local"));if(i.exported&&i.exported.name!==i.local.name){n.push(" as ",e.call(r,"exported"))}}else if(i.id){n.push(e.call(r,"id"));if(i.name){n.push(" as ",e.call(r,"name"))}}return u.concat(n);case"ExportBatchSpecifier":return u.fromString("*");case"ImportNamespaceSpecifier":n.push("* as ");if(i.local){n.push(e.call(r,"local"))}else if(i.id){n.push(e.call(r,"id"))}return u.concat(n);case"ImportDefaultSpecifier":if(i.local){return e.call(r,"local")}return e.call(r,"id");case"TSExportAssignment":return u.concat(["export = ",e.call(r,"expression")]);case"ExportDeclaration":case"ExportDefaultDeclaration":case"ExportNamedDeclaration":return printExportDeclaration(e,t,r);case"ExportAllDeclaration":n.push("export *");if(i.exported){n.push(" as ",e.call(r,"exported"))}n.push(" from ",e.call(r,"source"),";");return u.concat(n);case"TSNamespaceExportDeclaration":n.push("export as namespace ",e.call(r,"id"));return maybeAddSemicolon(u.concat(n));case"ExportNamespaceSpecifier":return u.concat(["* as ",e.call(r,"exported")]);case"ExportDefaultSpecifier":return e.call(r,"exported");case"Import":return u.fromString("import",t);case"ImportDeclaration":{n.push("import ");if(i.importKind&&i.importKind!=="value"){n.push(i.importKind+" ")}if(i.specifiers&&i.specifiers.length>0){var o=[];var c=[];e.each(function(e){var t=e.getValue();if(t.type==="ImportSpecifier"){c.push(r(e))}else if(t.type==="ImportDefaultSpecifier"||t.type==="ImportNamespaceSpecifier"){o.push(r(e))}},"specifiers");o.forEach(function(e,t){if(t>0){n.push(", ")}n.push(e)});if(c.length>0){var f=u.fromString(", ").join(c);if(f.getLineLength(1)>t.wrapColumn){f=u.concat([u.fromString(",\n").join(c).indent(t.tabWidth),","])}if(o.length>0){n.push(", ")}if(f.length>1){n.push("{\n",f,"\n}")}else if(t.objectCurlySpacing){n.push("{ ",f," }")}else{n.push("{",f,"}")}}n.push(" from ")}n.push(e.call(r,"source"),";");return u.concat(n)}case"BlockStatement":var p=e.call(function(e){return printStatementSequence(e,t,r)},"body");if(p.isEmpty()){if(!i.directives||i.directives.length===0){return u.fromString("{}")}}n.push("{\n");if(i.directives){e.each(function(e){n.push(maybeAddSemicolon(r(e).indent(t.tabWidth)),i.directives.length>1||!p.isEmpty()?"\n":"")},"directives")}n.push(p.indent(t.tabWidth));n.push("\n}");return u.concat(n);case"ReturnStatement":n.push("return");if(i.argument){var d=e.call(r,"argument");if(d.startsWithComment()||d.length>1&&h.JSXElement&&h.JSXElement.check(i.argument)){n.push(" (\n",d.indent(t.tabWidth),"\n)")}else{n.push(" ",d)}}n.push(";");return u.concat(n);case"CallExpression":case"OptionalCallExpression":n.push(e.call(r,"callee"));if(i.typeParameters){n.push(e.call(r,"typeParameters"))}if(i.typeArguments){n.push(e.call(r,"typeArguments"))}if(i.type==="OptionalCallExpression"&&i.callee.type!=="OptionalMemberExpression"){n.push("?.")}n.push(printArgumentsList(e,t,r));return u.concat(n);case"ObjectExpression":case"ObjectPattern":case"ObjectTypeAnnotation":var v=false;var y=i.type==="ObjectTypeAnnotation";var x=t.flowObjectCommas?",":y?";":",";var E=[];if(y){E.push("indexers","callProperties");if(i.internalSlots!=null){E.push("internalSlots")}}E.push("properties");var S=0;E.forEach(function(e){S+=i[e].length});var D=y&&S===1||S===0;var b=i.exact?"{|":"{";var g=i.exact?"|}":"}";n.push(D?b:b+"\n");var C=n.length-1;var A=0;E.forEach(function(i){e.each(function(e){var i=r(e);if(!D){i=i.indent(t.tabWidth)}var a=!y&&i.length>1;if(a&&v){n.push("\n")}n.push(i);if(A<S-1){n.push(x+(a?"\n\n":"\n"));v=!a}else if(S!==1&&y){n.push(x)}else if(!D&&m.isTrailingCommaEnabled(t,"objects")){n.push(x)}A++},i)});if(i.inexact){var T=u.fromString("...",t);if(D){if(S>0){n.push(x," ")}n.push(T)}else{n.push("\n",T.indent(t.tabWidth))}}n.push(D?g:"\n"+g);if(A!==0&&D&&t.objectCurlySpacing){n[C]=b+" ";n[n.length-1]=" "+g}if(i.typeAnnotation){n.push(e.call(r,"typeAnnotation"))}return u.concat(n);case"PropertyPattern":return u.concat([e.call(r,"key"),": ",e.call(r,"pattern")]);case"ObjectProperty":case"Property":if(i.method||i.kind==="get"||i.kind==="set"){return printMethod(e,t,r)}if(i.shorthand&&i.value.type==="AssignmentPattern"){return e.call(r,"value")}var F=e.call(r,"key");if(i.computed){n.push("[",F,"]")}else{n.push(F)}if(!i.shorthand){n.push(": ",e.call(r,"value"))}return u.concat(n);case"ClassMethod":case"ObjectMethod":case"ClassPrivateMethod":case"TSDeclareMethod":return printMethod(e,t,r);case"PrivateName":return u.concat(["#",e.call(r,"id")]);case"Decorator":return u.concat(["@",e.call(r,"expression")]);case"ArrayExpression":case"ArrayPattern":var w=i.elements,S=w.length;var P=e.map(r,"elements");var k=u.fromString(", ").join(P);var D=k.getLineLength(1)<=t.wrapColumn;if(D){if(t.arrayBracketSpacing){n.push("[ ")}else{n.push("[")}}else{n.push("[\n")}e.each(function(e){var r=e.getName();var i=e.getValue();if(!i){n.push(",")}else{var a=P[r];if(D){if(r>0)n.push(" ")}else{a=a.indent(t.tabWidth)}n.push(a);if(r<S-1||!D&&m.isTrailingCommaEnabled(t,"arrays"))n.push(",");if(!D)n.push("\n")}},"elements");if(D&&t.arrayBracketSpacing){n.push(" ]")}else{n.push("]")}if(i.typeAnnotation){n.push(e.call(r,"typeAnnotation"))}return u.concat(n);case"SequenceExpression":return u.fromString(", ").join(e.map(r,"expressions"));case"ThisExpression":return u.fromString("this");case"Super":return u.fromString("super");case"NullLiteral":return u.fromString("null");case"RegExpLiteral":return u.fromString(i.extra.raw);case"BigIntLiteral":return u.fromString(i.value+"n");case"NumericLiteral":if(i.extra&&typeof i.extra.raw==="string"&&Number(i.extra.raw)===i.value){return u.fromString(i.extra.raw,t)}return u.fromString(i.value,t);case"BooleanLiteral":case"StringLiteral":case"Literal":if(typeof i.value==="number"&&typeof i.raw==="string"&&Number(i.raw)===i.value){return u.fromString(i.raw,t)}if(typeof i.value!=="string"){return u.fromString(i.value,t)}return u.fromString(nodeStr(i.value,t),t);case"Directive":return e.call(r,"value");case"DirectiveLiteral":return u.fromString(nodeStr(i.value,t));case"InterpreterDirective":return u.fromString("#!"+i.value+"\n",t);case"ModuleSpecifier":if(i.local){throw new Error("The ESTree ModuleSpecifier type should be abstract")}return u.fromString(nodeStr(i.value,t),t);case"UnaryExpression":n.push(i.operator);if(/[a-z]$/.test(i.operator))n.push(" ");n.push(e.call(r,"argument"));return u.concat(n);case"UpdateExpression":n.push(e.call(r,"argument"),i.operator);if(i.prefix)n.reverse();return u.concat(n);case"ConditionalExpression":return u.concat([e.call(r,"test")," ? ",e.call(r,"consequent")," : ",e.call(r,"alternate")]);case"NewExpression":n.push("new ",e.call(r,"callee"));if(i.typeParameters){n.push(e.call(r,"typeParameters"))}if(i.typeArguments){n.push(e.call(r,"typeArguments"))}var B=i.arguments;if(B){n.push(printArgumentsList(e,t,r))}return u.concat(n);case"VariableDeclaration":if(i.declare){n.push("declare ")}n.push(i.kind," ");var M=0;var P=e.map(function(e){var t=r(e);M=Math.max(t.length,M);return t},"declarations");if(M===1){n.push(u.fromString(", ").join(P))}else if(P.length>1){n.push(u.fromString(",\n").join(P).indentTail(i.kind.length+1))}else{n.push(P[0])}var I=e.getParentNode();if(!h.ForStatement.check(I)&&!h.ForInStatement.check(I)&&!(h.ForOfStatement&&h.ForOfStatement.check(I))&&!(h.ForAwaitStatement&&h.ForAwaitStatement.check(I))){n.push(";")}return u.concat(n);case"VariableDeclarator":return i.init?u.fromString(" = ").join([e.call(r,"id"),e.call(r,"init")]):e.call(r,"id");case"WithStatement":return u.concat(["with (",e.call(r,"object"),") ",e.call(r,"body")]);case"IfStatement":var N=adjustClause(e.call(r,"consequent"),t);n.push("if (",e.call(r,"test"),")",N);if(i.alternate)n.push(endsWithBrace(N)?" else":"\nelse",adjustClause(e.call(r,"alternate"),t));return u.concat(n);case"ForStatement":var O=e.call(r,"init"),j=O.length>1?";\n":"; ",X="for (",J=u.fromString(j).join([O,e.call(r,"test"),e.call(r,"update")]).indentTail(X.length),L=u.concat([X,J,")"]),z=adjustClause(e.call(r,"body"),t);n.push(L);if(L.length>1){n.push("\n");z=z.trimLeft()}n.push(z);return u.concat(n);case"WhileStatement":return u.concat(["while (",e.call(r,"test"),")",adjustClause(e.call(r,"body"),t)]);case"ForInStatement":return u.concat([i.each?"for each (":"for (",e.call(r,"left")," in ",e.call(r,"right"),")",adjustClause(e.call(r,"body"),t)]);case"ForOfStatement":case"ForAwaitStatement":n.push("for ");if(i.await||i.type==="ForAwaitStatement"){n.push("await ")}n.push("(",e.call(r,"left")," of ",e.call(r,"right"),")",adjustClause(e.call(r,"body"),t));return u.concat(n);case"DoWhileStatement":var U=u.concat(["do",adjustClause(e.call(r,"body"),t)]);n.push(U);if(endsWithBrace(U))n.push(" while");else n.push("\nwhile");n.push(" (",e.call(r,"test"),");");return u.concat(n);case"DoExpression":var R=e.call(function(e){return printStatementSequence(e,t,r)},"body");return u.concat(["do {\n",R.indent(t.tabWidth),"\n}"]);case"BreakStatement":n.push("break");if(i.label)n.push(" ",e.call(r,"label"));n.push(";");return u.concat(n);case"ContinueStatement":n.push("continue");if(i.label)n.push(" ",e.call(r,"label"));n.push(";");return u.concat(n);case"LabeledStatement":return u.concat([e.call(r,"label"),":\n",e.call(r,"body")]);case"TryStatement":n.push("try ",e.call(r,"block"));if(i.handler){n.push(" ",e.call(r,"handler"))}else if(i.handlers){e.each(function(e){n.push(" ",r(e))},"handlers")}if(i.finalizer){n.push(" finally ",e.call(r,"finalizer"))}return u.concat(n);case"CatchClause":n.push("catch ");if(i.param){n.push("(",e.call(r,"param"))}if(i.guard){n.push(" if ",e.call(r,"guard"))}if(i.param){n.push(") ")}n.push(e.call(r,"body"));return u.concat(n);case"ThrowStatement":return u.concat(["throw ",e.call(r,"argument"),";"]);case"SwitchStatement":return u.concat(["switch (",e.call(r,"discriminant"),") {\n",u.fromString("\n").join(e.map(r,"cases")),"\n}"]);case"SwitchCase":if(i.test)n.push("case ",e.call(r,"test"),":");else n.push("default:");if(i.consequent.length>0){n.push("\n",e.call(function(e){return printStatementSequence(e,t,r)},"consequent").indent(t.tabWidth))}return u.concat(n);case"DebuggerStatement":return u.fromString("debugger;");case"JSXAttribute":n.push(e.call(r,"name"));if(i.value)n.push("=",e.call(r,"value"));return u.concat(n);case"JSXIdentifier":return u.fromString(i.name,t);case"JSXNamespacedName":return u.fromString(":").join([e.call(r,"namespace"),e.call(r,"name")]);case"JSXMemberExpression":return u.fromString(".").join([e.call(r,"object"),e.call(r,"property")]);case"JSXSpreadAttribute":return u.concat(["{...",e.call(r,"argument"),"}"]);case"JSXSpreadChild":return u.concat(["{...",e.call(r,"expression"),"}"]);case"JSXExpressionContainer":return u.concat(["{",e.call(r,"expression"),"}"]);case"JSXElement":case"JSXFragment":var q="opening"+(i.type==="JSXElement"?"Element":"Fragment");var V="closing"+(i.type==="JSXElement"?"Element":"Fragment");var W=e.call(r,q);if(i[q].selfClosing){a.default.ok(!i[V],"unexpected "+V+" element in self-closing "+i.type);return W}var K=u.concat(e.map(function(e){var t=e.getValue();if(h.Literal.check(t)&&typeof t.value==="string"){if(/\S/.test(t.value)){return t.value.replace(/^\s+|\s+$/g,"")}else if(/\n/.test(t.value)){return"\n"}}return r(e)},"children")).indentTail(t.tabWidth);var H=e.call(r,V);return u.concat([W,K,H]);case"JSXOpeningElement":n.push("<",e.call(r,"name"));var Y=[];e.each(function(e){Y.push(" ",r(e))},"attributes");var G=u.concat(Y);var Q=G.length>1||G.getLineLength(1)>t.wrapColumn;if(Q){Y.forEach(function(e,t){if(e===" "){a.default.strictEqual(t%2,0);Y[t]="\n"}});G=u.concat(Y).indentTail(t.tabWidth)}n.push(G,i.selfClosing?" />":">");return u.concat(n);case"JSXClosingElement":return u.concat(["</",e.call(r,"name"),">"]);case"JSXOpeningFragment":return u.fromString("<>");case"JSXClosingFragment":return u.fromString("</>");case"JSXText":return u.fromString(i.value,t);case"JSXEmptyExpression":return u.fromString("");case"TypeAnnotatedIdentifier":return u.concat([e.call(r,"annotation")," ",e.call(r,"identifier")]);case"ClassBody":if(i.body.length===0){return u.fromString("{}")}return u.concat(["{\n",e.call(function(e){return printStatementSequence(e,t,r)},"body").indent(t.tabWidth),"\n}"]);case"ClassPropertyDefinition":n.push("static ",e.call(r,"definition"));if(!h.MethodDefinition.check(i.definition))n.push(";");return u.concat(n);case"ClassProperty":var $=i.accessibility||i.access;if(typeof $==="string"){n.push($," ")}if(i.static){n.push("static ")}if(i.abstract){n.push("abstract ")}if(i.readonly){n.push("readonly ")}var F=e.call(r,"key");if(i.computed){F=u.concat(["[",F,"]"])}if(i.variance){F=u.concat([printVariance(e,r),F])}n.push(F);if(i.optional){n.push("?")}if(i.typeAnnotation){n.push(e.call(r,"typeAnnotation"))}if(i.value){n.push(" = ",e.call(r,"value"))}n.push(";");return u.concat(n);case"ClassPrivateProperty":if(i.static){n.push("static ")}n.push(e.call(r,"key"));if(i.typeAnnotation){n.push(e.call(r,"typeAnnotation"))}if(i.value){n.push(" = ",e.call(r,"value"))}n.push(";");return u.concat(n);case"ClassDeclaration":case"ClassExpression":if(i.declare){n.push("declare ")}if(i.abstract){n.push("abstract ")}n.push("class");if(i.id){n.push(" ",e.call(r,"id"))}if(i.typeParameters){n.push(e.call(r,"typeParameters"))}if(i.superClass){n.push(" extends ",e.call(r,"superClass"),e.call(r,"superTypeParameters"))}if(i["implements"]&&i["implements"].length>0){n.push(" implements ",u.fromString(", ").join(e.map(r,"implements")))}n.push(" ",e.call(r,"body"));return u.concat(n);case"TemplateElement":return u.fromString(i.value.raw,t).lockIndentTail();case"TemplateLiteral":var Z=e.map(r,"expressions");n.push("`");e.each(function(e){var t=e.getName();n.push(r(e));if(t<Z.length){n.push("${",Z[t],"}")}},"quasis");n.push("`");return u.concat(n).lockIndentTail();case"TaggedTemplateExpression":return u.concat([e.call(r,"tag"),e.call(r,"quasi")]);case"Node":case"Printable":case"SourceLocation":case"Position":case"Statement":case"Function":case"Pattern":case"Expression":case"Declaration":case"Specifier":case"NamedSpecifier":case"Comment":case"Flow":case"FlowType":case"FlowPredicate":case"MemberTypeAnnotation":case"Type":case"TSHasOptionalTypeParameterInstantiation":case"TSHasOptionalTypeParameters":case"TSHasOptionalTypeAnnotation":throw new Error("unprintable type: "+JSON.stringify(i.type));case"CommentBlock":case"Block":return u.concat(["/*",u.fromString(i.value,t),"*/"]);case"CommentLine":case"Line":return u.concat(["//",u.fromString(i.value,t)]);case"TypeAnnotation":if(i.typeAnnotation){if(i.typeAnnotation.type!=="FunctionTypeAnnotation"){n.push(": ")}n.push(e.call(r,"typeAnnotation"));return u.concat(n)}return u.fromString("");case"ExistentialTypeParam":case"ExistsTypeAnnotation":return u.fromString("*",t);case"EmptyTypeAnnotation":return u.fromString("empty",t);case"AnyTypeAnnotation":return u.fromString("any",t);case"MixedTypeAnnotation":return u.fromString("mixed",t);case"ArrayTypeAnnotation":return u.concat([e.call(r,"elementType"),"[]"]);case"TupleTypeAnnotation":var P=e.map(r,"types");var k=u.fromString(", ").join(P);var D=k.getLineLength(1)<=t.wrapColumn;if(D){if(t.arrayBracketSpacing){n.push("[ ")}else{n.push("[")}}else{n.push("[\n")}e.each(function(e){var r=e.getName();var a=e.getValue();if(!a){n.push(",")}else{var s=P[r];if(D){if(r>0)n.push(" ")}else{s=s.indent(t.tabWidth)}n.push(s);if(r<i.types.length-1||!D&&m.isTrailingCommaEnabled(t,"arrays"))n.push(",");if(!D)n.push("\n")}},"types");if(D&&t.arrayBracketSpacing){n.push(" ]")}else{n.push("]")}return u.concat(n);case"BooleanTypeAnnotation":return u.fromString("boolean",t);case"BooleanLiteralTypeAnnotation":a.default.strictEqual(typeof i.value,"boolean");return u.fromString(""+i.value,t);case"InterfaceTypeAnnotation":n.push("interface");if(i.extends&&i.extends.length>0){n.push(" extends ",u.fromString(", ").join(e.map(r,"extends")))}n.push(" ",e.call(r,"body"));return u.concat(n);case"DeclareClass":return printFlowDeclaration(e,["class