UNPKG

ajv

Version:

Another JSON Schema Validator

3 lines 335 kB
/* regenerator 0.8.42: Source transformer enabling ECMAScript 6 generator functions (yield) in JavaScript-of-today (ES5) */ require=function e(t,n,r){function i(o,s){if(!n[o]){if(!t[o]){var l="function"==typeof require&&require;if(!s&&l)return l(o,!0);if(a)return a(o,!0);var u=new Error("Cannot find module '"+o+"'");throw u.code="MODULE_NOT_FOUND",u}var c=n[o]={exports:{}};t[o][0].call(c.exports,function(e){var n=t[o][1][e];return i(n?n:e)},c,c.exports,e,t,n,r)}return n[o].exports}for(var a="function"==typeof require&&require,o=0;o<r.length;o++)i(r[o]);return i}({1:[function(e,t,n){function r(e,t){"use strict";var n=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};i("string"==typeof e),i(n(t));for(var r=a(t,function(e,t){return e.start-t.start}),o=[],s=0,l=0;l<r.length;l++){var u=r[l];i(s<=u.start),i(u.start<=u.end),o.push(e.slice(s,u.start)),o.push(u.str),s=u.end}return s<e.length&&o.push(e.slice(s)),o.join("")}var i=e("assert"),a=e("stable");"undefined"!=typeof t&&"undefined"!=typeof t.exports&&(t.exports=r)},{assert:2,stable:86}],2:[function(e,t,n){function r(e,t){return d.isUndefined(t)?""+t:d.isNumber(t)&&!isFinite(t)?t.toString():d.isFunction(t)||d.isRegExp(t)?t.toString():t}function i(e,t){return d.isString(e)?e.length<t?e:e.slice(0,t):e}function a(e){return i(JSON.stringify(e.actual,r),128)+" "+e.operator+" "+i(JSON.stringify(e.expected,r),128)}function o(e,t,n,r,i){throw new y.AssertionError({message:n,actual:e,expected:t,operator:r,stackStartFunction:i})}function s(e,t){e||o(e,!0,t,"==",y.ok)}function l(e,t){if(e===t)return!0;if(d.isBuffer(e)&&d.isBuffer(t)){if(e.length!=t.length)return!1;for(var n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}return d.isDate(e)&&d.isDate(t)?e.getTime()===t.getTime():d.isRegExp(e)&&d.isRegExp(t)?e.source===t.source&&e.global===t.global&&e.multiline===t.multiline&&e.lastIndex===t.lastIndex&&e.ignoreCase===t.ignoreCase:d.isObject(e)||d.isObject(t)?c(e,t):e==t}function u(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function c(e,t){if(d.isNullOrUndefined(e)||d.isNullOrUndefined(t))return!1;if(e.prototype!==t.prototype)return!1;if(d.isPrimitive(e)||d.isPrimitive(t))return e===t;var n=u(e),r=u(t);if(n&&!r||!n&&r)return!1;if(n)return e=h.call(e),t=h.call(t),l(e,t);var i,a,o=g(e),s=g(t);if(o.length!=s.length)return!1;for(o.sort(),s.sort(),a=o.length-1;a>=0;a--)if(o[a]!=s[a])return!1;for(a=o.length-1;a>=0;a--)if(i=o[a],!l(e[i],t[i]))return!1;return!0}function p(e,t){return!(!e||!t)&&("[object RegExp]"==Object.prototype.toString.call(t)?t.test(e):e instanceof t||t.call({},e)===!0)}function f(e,t,n,r){var i;d.isString(n)&&(r=n,n=null);try{t()}catch(e){i=e}if(r=(n&&n.name?" ("+n.name+").":".")+(r?" "+r:"."),e&&!i&&o(i,n,"Missing expected exception"+r),!e&&p(i,n)&&o(i,n,"Got unwanted exception"+r),e&&i&&n&&!p(i,n)||!e&&i)throw i}var d=e("util/"),h=Array.prototype.slice,m=Object.prototype.hasOwnProperty,y=t.exports=s;y.AssertionError=function(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=a(this),this.generatedMessage=!0);var t=e.stackStartFunction||o;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var n=new Error;if(n.stack){var r=n.stack,i=t.name,s=r.indexOf("\n"+i);if(s>=0){var l=r.indexOf("\n",s+1);r=r.substring(l+1)}this.stack=r}}},d.inherits(y.AssertionError,Error),y.fail=o,y.ok=s,y.equal=function(e,t,n){e!=t&&o(e,t,n,"==",y.equal)},y.notEqual=function(e,t,n){e==t&&o(e,t,n,"!=",y.notEqual)},y.deepEqual=function(e,t,n){l(e,t)||o(e,t,n,"deepEqual",y.deepEqual)},y.notDeepEqual=function(e,t,n){l(e,t)&&o(e,t,n,"notDeepEqual",y.notDeepEqual)},y.strictEqual=function(e,t,n){e!==t&&o(e,t,n,"===",y.strictEqual)},y.notStrictEqual=function(e,t,n){e===t&&o(e,t,n,"!==",y.notStrictEqual)},y.throws=function(e,t,n){f.apply(this,[!0].concat(h.call(arguments)))},y.doesNotThrow=function(e,t){f.apply(this,[!1].concat(h.call(arguments)))},y.ifError=function(e){if(e)throw e};var g=Object.keys||function(e){var t=[];for(var n in e)m.call(e,n)&&t.push(n);return t}},{"util/":95}],3:[function(e,t,n){function r(e,t){"use strict";function n(e,t,o,s){if(e&&"string"==typeof e.type){var l=void 0;if(r&&(l=r(e,t,o,s)),l!==!1)for(var o in e)if(a?!a(o,e):"$"!==o[0]){var u=e[o];if(Array.isArray(u))for(var c=0;c<u.length;c++)n(u[c],e,o,c);else n(u,e,o)}i&&i(e,t,o,s)}}t=t||{};var r=t.pre,i=t.post,a=t.skipProperty;n(e,null)}"undefined"!=typeof t&&"undefined"!=typeof t.exports&&(t.exports=r)},{}],4:[function(e,t,n){e("./es7");var r=e("../lib/types"),i=e("../lib/shared").defaults,a=r.Type.def,o=r.Type.or;a("Noop").bases("Node").build(),a("DoExpression").bases("Expression").build("body").field("body",[a("Statement")]),a("Super").bases("Expression").build(),a("BindExpression").bases("Expression").build("object","callee").field("object",o(a("Expression"),null)).field("callee",a("Expression")),a("Decorator").bases("Node").build("expression").field("expression",a("Expression")),a("Property").field("decorators",o([a("Decorator")],null),i.null),a("MethodDefinition").field("decorators",o([a("Decorator")],null),i.null),a("MetaProperty").bases("Expression").build("meta","property").field("meta",a("Identifier")).field("property",a("Identifier")),a("ParenthesizedExpression").bases("Expression").build("expression").field("expression",a("Expression")),a("ImportSpecifier").bases("ModuleSpecifier").build("imported","local").field("imported",a("Identifier")),a("ImportDefaultSpecifier").bases("ModuleSpecifier").build("local"),a("ImportNamespaceSpecifier").bases("ModuleSpecifier").build("local"),a("ExportDefaultDeclaration").bases("Declaration").build("declaration").field("declaration",o(a("Declaration"),a("Expression"))),a("ExportNamedDeclaration").bases("Declaration").build("declaration","specifiers","source").field("declaration",o(a("Declaration"),null)).field("specifiers",[a("ExportSpecifier")],i.emptyArray).field("source",o(a("Literal"),null),i.null),a("ExportSpecifier").bases("ModuleSpecifier").build("local","exported").field("exported",a("Identifier")),a("ExportNamespaceSpecifier").bases("Specifier").build("exported").field("exported",a("Identifier")),a("ExportDefaultSpecifier").bases("Specifier").build("exported").field("exported",a("Identifier")),a("ExportAllDeclaration").bases("Declaration").build("exported","source").field("exported",o(a("Identifier"),null)).field("source",a("Literal")),a("CommentBlock").bases("Comment").build("value","leading","trailing"),a("CommentLine").bases("Comment").build("value","leading","trailing")},{"../lib/shared":17,"../lib/types":18,"./es7":8}],5:[function(e,t,n){var r=e("../lib/types"),i=r.Type,a=i.def,o=i.or,s=e("../lib/shared"),l=s.defaults,u=s.geq;a("Printable").field("loc",o(a("SourceLocation"),null),l.null,!0),a("Node").bases("Printable").field("type",String).field("comments",o([a("Comment")],null),l.null,!0),a("SourceLocation").build("start","end","source").field("start",a("Position")).field("end",a("Position")).field("source",o(String,null),l.null),a("Position").build("line","column").field("line",u(1)).field("column",u(0)),a("File").bases("Node").build("program").field("program",a("Program")),a("Program").bases("Node").build("body").field("body",[a("Statement")]),a("Function").bases("Node").field("id",o(a("Identifier"),null),l.null).field("params",[a("Pattern")]).field("body",a("BlockStatement")),a("Statement").bases("Node"),a("EmptyStatement").bases("Statement").build(),a("BlockStatement").bases("Statement").build("body").field("body",[a("Statement")]),a("ExpressionStatement").bases("Statement").build("expression").field("expression",a("Expression")),a("IfStatement").bases("Statement").build("test","consequent","alternate").field("test",a("Expression")).field("consequent",a("Statement")).field("alternate",o(a("Statement"),null),l.null),a("LabeledStatement").bases("Statement").build("label","body").field("label",a("Identifier")).field("body",a("Statement")),a("BreakStatement").bases("Statement").build("label").field("label",o(a("Identifier"),null),l.null),a("ContinueStatement").bases("Statement").build("label").field("label",o(a("Identifier"),null),l.null),a("WithStatement").bases("Statement").build("object","body").field("object",a("Expression")).field("body",a("Statement")),a("SwitchStatement").bases("Statement").build("discriminant","cases","lexical").field("discriminant",a("Expression")).field("cases",[a("SwitchCase")]).field("lexical",Boolean,l.false),a("ReturnStatement").bases("Statement").build("argument").field("argument",o(a("Expression"),null)),a("ThrowStatement").bases("Statement").build("argument").field("argument",a("Expression")),a("TryStatement").bases("Statement").build("block","handler","finalizer").field("block",a("BlockStatement")).field("handler",o(a("CatchClause"),null),function(){return this.handlers&&this.handlers[0]||null}).field("handlers",[a("CatchClause")],function(){return this.handler?[this.handler]:[]},!0).field("guardedHandlers",[a("CatchClause")],l.emptyArray).field("finalizer",o(a("BlockStatement"),null),l.null),a("CatchClause").bases("Node").build("param","guard","body").field("param",a("Pattern")).field("guard",o(a("Expression"),null),l.null).field("body",a("BlockStatement")),a("WhileStatement").bases("Statement").build("test","body").field("test",a("Expression")).field("body",a("Statement")),a("DoWhileStatement").bases("Statement").build("body","test").field("body",a("Statement")).field("test",a("Expression")),a("ForStatement").bases("Statement").build("init","test","update","body").field("init",o(a("VariableDeclaration"),a("Expression"),null)).field("test",o(a("Expression"),null)).field("update",o(a("Expression"),null)).field("body",a("Statement")),a("ForInStatement").bases("Statement").build("left","right","body").field("left",o(a("VariableDeclaration"),a("Expression"))).field("right",a("Expression")).field("body",a("Statement")),a("DebuggerStatement").bases("Statement").build(),a("Declaration").bases("Statement"),a("FunctionDeclaration").bases("Function","Declaration").build("id","params","body").field("id",a("Identifier")),a("FunctionExpression").bases("Function","Expression").build("id","params","body"),a("VariableDeclaration").bases("Declaration").build("kind","declarations").field("kind",o("var","let","const")).field("declarations",[a("VariableDeclarator")]),a("VariableDeclarator").bases("Node").build("id","init").field("id",a("Pattern")).field("init",o(a("Expression"),null)),a("Expression").bases("Node","Pattern"),a("ThisExpression").bases("Expression").build(),a("ArrayExpression").bases("Expression").build("elements").field("elements",[o(a("Expression"),null)]),a("ObjectExpression").bases("Expression").build("properties").field("properties",[a("Property")]),a("Property").bases("Node").build("kind","key","value").field("kind",o("init","get","set")).field("key",o(a("Literal"),a("Identifier"))).field("value",a("Expression")),a("SequenceExpression").bases("Expression").build("expressions").field("expressions",[a("Expression")]);var c=o("-","+","!","~","typeof","void","delete");a("UnaryExpression").bases("Expression").build("operator","argument","prefix").field("operator",c).field("argument",a("Expression")).field("prefix",Boolean,l.true);var p=o("==","!=","===","!==","<","<=",">",">=","<<",">>",">>>","+","-","*","/","%","&","|","^","in","instanceof","..");a("BinaryExpression").bases("Expression").build("operator","left","right").field("operator",p).field("left",a("Expression")).field("right",a("Expression"));var f=o("=","+=","-=","*=","/=","%=","<<=",">>=",">>>=","|=","^=","&=");a("AssignmentExpression").bases("Expression").build("operator","left","right").field("operator",f).field("left",a("Pattern")).field("right",a("Expression"));var d=o("++","--");a("UpdateExpression").bases("Expression").build("operator","argument","prefix").field("operator",d).field("argument",a("Expression")).field("prefix",Boolean);var h=o("||","&&");a("LogicalExpression").bases("Expression").build("operator","left","right").field("operator",h).field("left",a("Expression")).field("right",a("Expression")),a("ConditionalExpression").bases("Expression").build("test","consequent","alternate").field("test",a("Expression")).field("consequent",a("Expression")).field("alternate",a("Expression")),a("NewExpression").bases("Expression").build("callee","arguments").field("callee",a("Expression")).field("arguments",[a("Expression")]),a("CallExpression").bases("Expression").build("callee","arguments").field("callee",a("Expression")).field("arguments",[a("Expression")]),a("MemberExpression").bases("Expression").build("object","property","computed").field("object",a("Expression")).field("property",o(a("Identifier"),a("Expression"))).field("computed",Boolean,l.false),a("Pattern").bases("Node"),a("SwitchCase").bases("Node").build("test","consequent").field("test",o(a("Expression"),null)).field("consequent",[a("Statement")]),a("Identifier").bases("Node","Expression","Pattern").build("name").field("name",String),a("Literal").bases("Node","Expression").build("value").field("value",o(String,Boolean,null,Number,RegExp)).field("regex",o({pattern:String,flags:String},null),function(){if(this.value instanceof RegExp){var e="";return this.value.ignoreCase&&(e+="i"),this.value.multiline&&(e+="m"),this.value.global&&(e+="g"),{pattern:this.value.source,flags:e}}return null}),a("Comment").bases("Printable").field("value",String).field("leading",Boolean,l.true).field("trailing",Boolean,l.false)},{"../lib/shared":17,"../lib/types":18}],6:[function(e,t,n){e("./core");var r=e("../lib/types"),i=r.Type.def,a=r.Type.or;i("XMLDefaultDeclaration").bases("Declaration").field("namespace",i("Expression")),i("XMLAnyName").bases("Expression"),i("XMLQualifiedIdentifier").bases("Expression").field("left",a(i("Identifier"),i("XMLAnyName"))).field("right",a(i("Identifier"),i("Expression"))).field("computed",Boolean),i("XMLFunctionQualifiedIdentifier").bases("Expression").field("right",a(i("Identifier"),i("Expression"))).field("computed",Boolean),i("XMLAttributeSelector").bases("Expression").field("attribute",i("Expression")),i("XMLFilterExpression").bases("Expression").field("left",i("Expression")).field("right",i("Expression")),i("XMLElement").bases("XML","Expression").field("contents",[i("XML")]),i("XMLList").bases("XML","Expression").field("contents",[i("XML")]),i("XML").bases("Node"),i("XMLEscape").bases("XML").field("expression",i("Expression")),i("XMLText").bases("XML").field("text",String),i("XMLStartTag").bases("XML").field("contents",[i("XML")]),i("XMLEndTag").bases("XML").field("contents",[i("XML")]),i("XMLPointTag").bases("XML").field("contents",[i("XML")]),i("XMLName").bases("XML").field("contents",a(String,[i("XML")])),i("XMLAttribute").bases("XML").field("value",String),i("XMLCdata").bases("XML").field("contents",String),i("XMLComment").bases("XML").field("contents",String),i("XMLProcessingInstruction").bases("XML").field("target",String).field("contents",a(String,null))},{"../lib/types":18,"./core":5}],7:[function(e,t,n){e("./core");var r=e("../lib/types"),i=r.Type.def,a=r.Type.or,o=e("../lib/shared").defaults;i("Function").field("generator",Boolean,o.false).field("expression",Boolean,o.false).field("defaults",[a(i("Expression"),null)],o.emptyArray).field("rest",a(i("Identifier"),null),o.null),i("RestElement").bases("Pattern").build("argument").field("argument",i("Pattern")),i("SpreadElementPattern").bases("Pattern").build("argument").field("argument",i("Pattern")),i("FunctionDeclaration").build("id","params","body","generator","expression"),i("FunctionExpression").build("id","params","body","generator","expression"),i("ArrowFunctionExpression").bases("Function","Expression").build("params","body","expression").field("id",null,o.null).field("body",a(i("BlockStatement"),i("Expression"))).field("generator",!1,o.false),i("YieldExpression").bases("Expression").build("argument","delegate").field("argument",a(i("Expression"),null)).field("delegate",Boolean,o.false),i("GeneratorExpression").bases("Expression").build("body","blocks","filter").field("body",i("Expression")).field("blocks",[i("ComprehensionBlock")]).field("filter",a(i("Expression"),null)),i("ComprehensionExpression").bases("Expression").build("body","blocks","filter").field("body",i("Expression")).field("blocks",[i("ComprehensionBlock")]).field("filter",a(i("Expression"),null)),i("ComprehensionBlock").bases("Node").build("left","right","each").field("left",i("Pattern")).field("right",i("Expression")).field("each",Boolean),i("Property").field("key",a(i("Literal"),i("Identifier"),i("Expression"))).field("value",a(i("Expression"),i("Pattern"))).field("method",Boolean,o.false).field("shorthand",Boolean,o.false).field("computed",Boolean,o.false),i("PropertyPattern").bases("Pattern").build("key","pattern").field("key",a(i("Literal"),i("Identifier"),i("Expression"))).field("pattern",i("Pattern")).field("computed",Boolean,o.false),i("ObjectPattern").bases("Pattern").build("properties").field("properties",[a(i("PropertyPattern"),i("Property"))]),i("ArrayPattern").bases("Pattern").build("elements").field("elements",[a(i("Pattern"),null)]),i("MethodDefinition").bases("Declaration").build("kind","key","value","static").field("kind",a("constructor","method","get","set")).field("key",a(i("Literal"),i("Identifier"),i("Expression"))).field("value",i("Function")).field("computed",Boolean,o.false).field("static",Boolean,o.false),i("SpreadElement").bases("Node").build("argument").field("argument",i("Expression")),i("ArrayExpression").field("elements",[a(i("Expression"),i("SpreadElement"),i("RestElement"),null)]),i("NewExpression").field("arguments",[a(i("Expression"),i("SpreadElement"))]),i("CallExpression").field("arguments",[a(i("Expression"),i("SpreadElement"))]),i("AssignmentPattern").bases("Pattern").build("left","right").field("left",i("Pattern")).field("right",i("Expression"));var s=a(i("MethodDefinition"),i("VariableDeclarator"),i("ClassPropertyDefinition"),i("ClassProperty"));i("ClassProperty").bases("Declaration").build("key").field("key",a(i("Literal"),i("Identifier"),i("Expression"))).field("computed",Boolean,o.false),i("ClassPropertyDefinition").bases("Declaration").build("definition").field("definition",s),i("ClassBody").bases("Declaration").build("body").field("body",[s]),i("ClassDeclaration").bases("Declaration").build("id","body","superClass").field("id",a(i("Identifier"),null)).field("body",i("ClassBody")).field("superClass",a(i("Expression"),null),o.null),i("ClassExpression").bases("Expression").build("id","body","superClass").field("id",a(i("Identifier"),null),o.null).field("body",i("ClassBody")).field("superClass",a(i("Expression"),null),o.null).field("implements",[i("ClassImplements")],o.emptyArray),i("ClassImplements").bases("Node").build("id").field("id",i("Identifier")).field("superClass",a(i("Expression"),null),o.null),i("Specifier").bases("Node"),i("ModuleSpecifier").bases("Specifier").field("local",a(i("Identifier"),null),o.null).field("id",a(i("Identifier"),null),o.null).field("name",a(i("Identifier"),null),o.null),i("TaggedTemplateExpression").bases("Expression").build("tag","quasi").field("tag",i("Expression")).field("quasi",i("TemplateLiteral")),i("TemplateLiteral").bases("Expression").build("quasis","expressions").field("quasis",[i("TemplateElement")]).field("expressions",[i("Expression")]),i("TemplateElement").bases("Node").build("value","tail").field("value",{cooked:String,raw:String}).field("tail",Boolean)},{"../lib/shared":17,"../lib/types":18,"./core":5}],8:[function(e,t,n){e("./es6");var r=e("../lib/types"),i=r.Type.def,a=r.Type.or,o=(r.builtInTypes,e("../lib/shared").defaults);i("Function").field("async",Boolean,o.false),i("SpreadProperty").bases("Node").build("argument").field("argument",i("Expression")),i("ObjectExpression").field("properties",[a(i("Property"),i("SpreadProperty"))]),i("SpreadPropertyPattern").bases("Pattern").build("argument").field("argument",i("Pattern")),i("ObjectPattern").field("properties",[a(i("Property"),i("PropertyPattern"),i("SpreadPropertyPattern"))]),i("AwaitExpression").bases("Expression").build("argument","all").field("argument",a(i("Expression"),null)).field("all",Boolean,o.false)},{"../lib/shared":17,"../lib/types":18,"./es6":7}],9:[function(e,t,n){e("./es7");var r=e("../lib/types"),i=e("../lib/shared").defaults,a=r.Type.def,o=r.Type.or;a("VariableDeclaration").field("declarations",[o(a("VariableDeclarator"),a("Identifier"))]),a("Property").field("value",o(a("Expression"),a("Pattern"))),a("ArrayPattern").field("elements",[o(a("Pattern"),a("SpreadElement"),null)]),a("ObjectPattern").field("properties",[o(a("Property"),a("PropertyPattern"),a("SpreadPropertyPattern"),a("SpreadProperty"))]),a("ExportSpecifier").bases("ModuleSpecifier").build("id","name"),a("ExportBatchSpecifier").bases("Specifier").build(),a("ImportSpecifier").bases("ModuleSpecifier").build("id","name"),a("ImportNamespaceSpecifier").bases("ModuleSpecifier").build("id"),a("ImportDefaultSpecifier").bases("ModuleSpecifier").build("id"),a("ExportDeclaration").bases("Declaration").build("default","declaration","specifiers","source").field("default",Boolean).field("declaration",o(a("Declaration"),a("Expression"),null)).field("specifiers",[o(a("ExportSpecifier"),a("ExportBatchSpecifier"))],i.emptyArray).field("source",o(a("Literal"),null),i.null),a("ImportDeclaration").bases("Declaration").build("specifiers","source").field("specifiers",[o(a("ImportSpecifier"),a("ImportNamespaceSpecifier"),a("ImportDefaultSpecifier"))],i.emptyArray).field("source",a("Literal")),a("Block").bases("Comment").build("value","leading","trailing"),a("Line").bases("Comment").build("value","leading","trailing")},{"../lib/shared":17,"../lib/types":18,"./es7":8}],10:[function(e,t,n){e("./es7");var r=e("../lib/types"),i=r.Type.def,a=r.Type.or,o=e("../lib/shared").defaults;i("JSXAttribute").bases("Node").build("name","value").field("name",a(i("JSXIdentifier"),i("JSXNamespacedName"))).field("value",a(i("Literal"),i("JSXExpressionContainer"),null),o.null),i("JSXIdentifier").bases("Identifier").build("name").field("name",String),i("JSXNamespacedName").bases("Node").build("namespace","name").field("namespace",i("JSXIdentifier")).field("name",i("JSXIdentifier")),i("JSXMemberExpression").bases("MemberExpression").build("object","property").field("object",a(i("JSXIdentifier"),i("JSXMemberExpression"))).field("property",i("JSXIdentifier")).field("computed",Boolean,o.false);var s=a(i("JSXIdentifier"),i("JSXNamespacedName"),i("JSXMemberExpression"));i("JSXSpreadAttribute").bases("Node").build("argument").field("argument",i("Expression"));var l=[a(i("JSXAttribute"),i("JSXSpreadAttribute"))];i("JSXExpressionContainer").bases("Expression").build("expression").field("expression",i("Expression")),i("JSXElement").bases("Expression").build("openingElement","closingElement","children").field("openingElement",i("JSXOpeningElement")).field("closingElement",a(i("JSXClosingElement"),null),o.null).field("children",[a(i("JSXElement"),i("JSXExpressionContainer"),i("JSXText"),i("Literal"))],o.emptyArray).field("name",s,function(){return this.openingElement.name},!0).field("selfClosing",Boolean,function(){return this.openingElement.selfClosing},!0).field("attributes",l,function(){return this.openingElement.attributes},!0),i("JSXOpeningElement").bases("Node").build("name","attributes","selfClosing").field("name",s).field("attributes",l,o.emptyArray).field("selfClosing",Boolean,o.false),i("JSXClosingElement").bases("Node").build("name").field("name",s),i("JSXText").bases("Literal").build("value").field("value",String),i("JSXEmptyExpression").bases("Expression").build(),i("Type").bases("Node"),i("AnyTypeAnnotation").bases("Type").build(),i("MixedTypeAnnotation").bases("Type").build(),i("VoidTypeAnnotation").bases("Type").build(),i("NumberTypeAnnotation").bases("Type").build(),i("NumberLiteralTypeAnnotation").bases("Type").build("value","raw").field("value",Number).field("raw",String),i("StringTypeAnnotation").bases("Type").build(),i("StringLiteralTypeAnnotation").bases("Type").build("value","raw").field("value",String).field("raw",String),i("BooleanTypeAnnotation").bases("Type").build(),i("BooleanLiteralTypeAnnotation").bases("Type").build("value","raw").field("value",Boolean).field("raw",String),i("TypeAnnotation").bases("Node").build("typeAnnotation").field("typeAnnotation",i("Type")),i("NullableTypeAnnotation").bases("Type").build("typeAnnotation").field("typeAnnotation",i("Type")),i("FunctionTypeAnnotation").bases("Type").build("params","returnType","rest","typeParameters").field("params",[i("FunctionTypeParam")]).field("returnType",i("Type")).field("rest",a(i("FunctionTypeParam"),null)).field("typeParameters",a(i("TypeParameterDeclaration"),null)),i("FunctionTypeParam").bases("Node").build("name","typeAnnotation","optional").field("name",i("Identifier")).field("typeAnnotation",i("Type")).field("optional",Boolean),i("ArrayTypeAnnotation").bases("Type").build("elementType").field("elementType",i("Type")),i("ObjectTypeAnnotation").bases("Type").build("properties").field("properties",[i("ObjectTypeProperty")]).field("indexers",[i("ObjectTypeIndexer")],o.emptyArray).field("callProperties",[i("ObjectTypeCallProperty")],o.emptyArray),i("ObjectTypeProperty").bases("Node").build("key","value","optional").field("key",a(i("Literal"),i("Identifier"))).field("value",i("Type")).field("optional",Boolean),i("ObjectTypeIndexer").bases("Node").build("id","key","value").field("id",i("Identifier")).field("key",i("Type")).field("value",i("Type")),i("ObjectTypeCallProperty").bases("Node").build("value").field("value",i("FunctionTypeAnnotation")).field("static",Boolean,!1),i("QualifiedTypeIdentifier").bases("Node").build("qualification","id").field("qualification",a(i("Identifier"),i("QualifiedTypeIdentifier"))).field("id",i("Identifier")),i("GenericTypeAnnotation").bases("Type").build("id","typeParameters").field("id",a(i("Identifier"),i("QualifiedTypeIdentifier"))).field("typeParameters",a(i("TypeParameterInstantiation"),null)),i("MemberTypeAnnotation").bases("Type").build("object","property").field("object",i("Identifier")).field("property",a(i("MemberTypeAnnotation"),i("GenericTypeAnnotation"))),i("UnionTypeAnnotation").bases("Type").build("types").field("types",[i("Type")]),i("IntersectionTypeAnnotation").bases("Type").build("types").field("types",[i("Type")]),i("TypeofTypeAnnotation").bases("Type").build("argument").field("argument",i("Type")),i("Identifier").field("typeAnnotation",a(i("TypeAnnotation"),null),o.null),i("TypeParameterDeclaration").bases("Node").build("params").field("params",[i("Identifier")]),i("TypeParameterInstantiation").bases("Node").build("params").field("params",[i("Type")]),i("Function").field("returnType",a(i("TypeAnnotation"),null),o.null).field("typeParameters",a(i("TypeParameterDeclaration"),null),o.null),i("ClassProperty").build("key","value","typeAnnotation","static").field("value",a(i("Expression"),null)).field("typeAnnotation",a(i("TypeAnnotation"),null)).field("static",Boolean,o.false),i("ClassImplements").field("typeParameters",a(i("TypeParameterInstantiation"),null),o.null),i("InterfaceDeclaration").bases("Statement").build("id","body","extends").field("id",i("Identifier")).field("typeParameters",a(i("TypeParameterDeclaration"),null),o.null).field("body",i("ObjectTypeAnnotation")).field("extends",[i("InterfaceExtends")]),i("InterfaceExtends").bases("Node").build("id").field("id",i("Identifier")).field("typeParameters",a(i("TypeParameterInstantiation"),null)),i("TypeAlias").bases("Statement").build("id","typeParameters","right").field("id",i("Identifier")).field("typeParameters",a(i("TypeParameterDeclaration"),null)).field("right",i("Type")),i("TypeCastExpression").bases("Expression").build("expression","typeAnnotation").field("expression",i("Expression")).field("typeAnnotation",i("TypeAnnotation")),i("TupleTypeAnnotation").bases("Type").build("types").field("types",[i("Type")]),i("DeclareVariable").bases("Statement").build("id").field("id",i("Identifier")),i("DeclareFunction").bases("Statement").build("id").field("id",i("Identifier")),i("DeclareClass").bases("InterfaceDeclaration").build("id"),i("DeclareModule").bases("Statement").build("id","body").field("id",a(i("Identifier"),i("Literal"))).field("body",i("BlockStatement"))},{"../lib/shared":17,"../lib/types":18,"./es7":8}],11:[function(e,t,n){e("./core");var r=e("../lib/types"),i=r.Type.def,a=r.Type.or,o=e("../lib/shared"),s=o.geq,l=o.defaults;i("Function").field("body",a(i("BlockStatement"),i("Expression"))),i("ForInStatement").build("left","right","body","each").field("each",Boolean,l.false),i("ForOfStatement").bases("Statement").build("left","right","body").field("left",a(i("VariableDeclaration"),i("Expression"))).field("right",i("Expression")).field("body",i("Statement")),i("LetStatement").bases("Statement").build("head","body").field("head",[i("VariableDeclarator")]).field("body",i("Statement")),i("LetExpression").bases("Expression").build("head","body").field("head",[i("VariableDeclarator")]).field("body",i("Expression")),i("GraphExpression").bases("Expression").build("index","expression").field("index",s(0)).field("expression",i("Literal")),i("GraphIndexExpression").bases("Expression").build("index").field("index",s(0))},{"../lib/shared":17,"../lib/types":18,"./core":5}],12:[function(e,t,n){function r(e,t,n){return p.check(n)?n.length=0:n=null,a(e,t,n)}function i(e){return/[_$a-z][_$a-z0-9]*/i.test(e)?"."+e:"["+JSON.stringify(e)+"]"}function a(e,t,n){return e===t||(p.check(e)?o(e,t,n):f.check(e)?s(e,t,n):d.check(e)?d.check(t)&&+e===+t:h.check(e)?h.check(t)&&e.source===t.source&&e.global===t.global&&e.multiline===t.multiline&&e.ignoreCase===t.ignoreCase:e==t)}function o(e,t,n){p.assert(e);var r=e.length;if(!p.check(t)||t.length!==r)return n&&n.push("length"),!1;for(var i=0;i<r;++i){if(n&&n.push(i),i in e!=i in t)return!1;if(!a(e[i],t[i],n))return!1;if(n){var o=n.pop();if(o!==i)throw new Error(""+o)}}return!0}function s(e,t,n){if(f.assert(e),!f.check(t))return!1;if(e.type!==t.type)return n&&n.push("type"),!1;var r=u(e),i=r.length,o=u(t),s=o.length;if(i===s){for(var l=0;l<i;++l){var p=r[l],d=c(e,p),h=c(t,p);if(n&&n.push(p),!a(d,h,n))return!1;if(n){var y=n.pop();if(y!==p)throw new Error(""+y)}}return!0}if(!n)return!1;var g=Object.create(null);for(l=0;l<i;++l)g[r[l]]=!0;for(l=0;l<s;++l){if(p=o[l],!m.call(g,p))return n.push(p),!1;delete g[p]}for(p in g){n.push(p);break}return!1}var l=e("../main"),u=l.getFieldNames,c=l.getFieldValue,p=l.builtInTypes.array,f=l.builtInTypes.object,d=l.builtInTypes.Date,h=l.builtInTypes.RegExp,m=Object.prototype.hasOwnProperty;r.assert=function(e,t){var n=[];if(!r(e,t,n)){if(0!==n.length)throw new Error("Nodes differ in the following path: "+n.map(i).join(""));if(e!==t)throw new Error("Nodes must be equal")}},t.exports=r},{"../main":19}],13:[function(e,t,n){function r(e,t,n){if(!(this instanceof r))throw new Error("NodePath constructor cannot be invoked without 'new'");h.call(this,e,t,n)}function i(e){return c.BinaryExpression.check(e)||c.LogicalExpression.check(e)}function a(e){return!!c.CallExpression.check(e)||(d.check(e)?e.some(a):!!c.Node.check(e)&&u.someField(e,function(e,t){return a(t)}))}function o(e){for(var t,n;e.parent;e=e.parent){if(t=e.node,n=e.parent.node,c.BlockStatement.check(n)&&"body"===e.parent.name&&0===e.name){if(n.body[0]!==t)throw new Error("Nodes must be equal");return!0}if(c.ExpressionStatement.check(n)&&"expression"===e.name){if(n.expression!==t)throw new Error("Nodes must be equal");return!0}if(c.SequenceExpression.check(n)&&"expressions"===e.parent.name&&0===e.name){if(n.expressions[0]!==t)throw new Error("Nodes must be equal")}else if(c.CallExpression.check(n)&&"callee"===e.name){if(n.callee!==t)throw new Error("Nodes must be equal")}else if(c.MemberExpression.check(n)&&"object"===e.name){if(n.object!==t)throw new Error("Nodes must be equal")}else if(c.ConditionalExpression.check(n)&&"test"===e.name){if(n.test!==t)throw new Error("Nodes must be equal"); }else if(i(n)&&"left"===e.name){if(n.left!==t)throw new Error("Nodes must be equal")}else{if(!c.UnaryExpression.check(n)||n.prefix||"argument"!==e.name)return!1;if(n.argument!==t)throw new Error("Nodes must be equal")}}return!0}function s(e){if(c.VariableDeclaration.check(e.node)){var t=e.get("declarations").value;if(!t||0===t.length)return e.prune()}else if(c.ExpressionStatement.check(e.node)){if(!e.get("expression").value)return e.prune()}else c.IfStatement.check(e.node)&&l(e);return e}function l(e){var t=e.get("test").value,n=e.get("alternate").value,r=e.get("consequent").value;if(r||n){if(!r&&n){var i=p.unaryExpression("!",t,!0);c.UnaryExpression.check(t)&&"!"===t.operator&&(i=t.argument),e.get("test").replace(i),e.get("consequent").replace(n),e.get("alternate").replace()}}else{var a=p.expressionStatement(t);e.replace(a)}}var u=e("./types"),c=u.namedTypes,p=u.builders,f=u.builtInTypes.number,d=u.builtInTypes.array,h=e("./path"),m=e("./scope"),y=r.prototype=Object.create(h.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}});Object.defineProperties(y,{node:{get:function(){return Object.defineProperty(this,"node",{configurable:!0,value:this._computeNode()}),this.node}},parent:{get:function(){return Object.defineProperty(this,"parent",{configurable:!0,value:this._computeParent()}),this.parent}},scope:{get:function(){return Object.defineProperty(this,"scope",{configurable:!0,value:this._computeScope()}),this.scope}}}),y.replace=function(){return delete this.node,delete this.parent,delete this.scope,h.prototype.replace.apply(this,arguments)},y.prune=function(){var e=this.parent;return this.replace(),s(e)},y._computeNode=function(){var e=this.value;if(c.Node.check(e))return e;var t=this.parentPath;return t&&t.node||null},y._computeParent=function(){var e=this.value,t=this.parentPath;if(!c.Node.check(e)){for(;t&&!c.Node.check(t.value);)t=t.parentPath;t&&(t=t.parentPath)}for(;t&&!c.Node.check(t.value);)t=t.parentPath;return t||null},y._computeScope=function(){var e=this.value,t=this.parentPath,n=t&&t.scope;return c.Node.check(e)&&m.isEstablishedBy(e)&&(n=new m(this,n)),n||null},y.getValueProperty=function(e){return u.getFieldValue(this.value,e)},y.needsParens=function(e){var t=this.parentPath;if(!t)return!1;var n=this.value;if(!c.Expression.check(n))return!1;if("Identifier"===n.type)return!1;for(;!c.Node.check(t.value);)if(t=t.parentPath,!t)return!1;var r=t.value;switch(n.type){case"UnaryExpression":case"SpreadElement":case"SpreadProperty":return"MemberExpression"===r.type&&"object"===this.name&&r.object===n;case"BinaryExpression":case"LogicalExpression":switch(r.type){case"CallExpression":return"callee"===this.name&&r.callee===n;case"UnaryExpression":case"SpreadElement":case"SpreadProperty":return!0;case"MemberExpression":return"object"===this.name&&r.object===n;case"BinaryExpression":case"LogicalExpression":var i=r.operator,t=g[i],o=n.operator,s=g[o];if(t>s)return!0;if(t===s&&"right"===this.name){if(r.right!==n)throw new Error("Nodes must be equal");return!0}default:return!1}case"SequenceExpression":switch(r.type){case"ForStatement":return!1;case"ExpressionStatement":return"expression"!==this.name;default:return!0}case"YieldExpression":switch(r.type){case"BinaryExpression":case"LogicalExpression":case"UnaryExpression":case"SpreadElement":case"SpreadProperty":case"CallExpression":case"MemberExpression":case"NewExpression":case"ConditionalExpression":case"YieldExpression":return!0;default:return!1}case"Literal":return"MemberExpression"===r.type&&f.check(n.value)&&"object"===this.name&&r.object===n;case"AssignmentExpression":case"ConditionalExpression":switch(r.type){case"UnaryExpression":case"SpreadElement":case"SpreadProperty":case"BinaryExpression":case"LogicalExpression":return!0;case"CallExpression":return"callee"===this.name&&r.callee===n;case"ConditionalExpression":return"test"===this.name&&r.test===n;case"MemberExpression":return"object"===this.name&&r.object===n;default:return!1}default:if("NewExpression"===r.type&&"callee"===this.name&&r.callee===n)return a(n)}return!(e===!0||this.canBeFirstInStatement()||!this.firstInStatement())};var g={};[["||"],["&&"],["|"],["^"],["&"],["==","===","!=","!=="],["<",">","<=",">=","in","instanceof"],[">>","<<",">>>"],["+","-"],["*","/","%"]].forEach(function(e,t){e.forEach(function(e){g[e]=t})}),y.canBeFirstInStatement=function(){var e=this.node;return!c.FunctionExpression.check(e)&&!c.ObjectExpression.check(e)},y.firstInStatement=function(){return o(this)},t.exports=r},{"./path":15,"./scope":16,"./types":18}],14:[function(e,t,n){function r(){if(!(this instanceof r))throw new Error("PathVisitor constructor cannot be invoked without 'new'");this._reusableContextStack=[],this._methodNameTable=i(this),this._shouldVisitComments=h.call(this._methodNameTable,"Block")||h.call(this._methodNameTable,"Line"),this.Context=s(this),this._visiting=!1,this._changeReported=!1}function i(e){var t=Object.create(null);for(var n in e)/^visit[A-Z]/.test(n)&&(t[n.slice("visit".length)]=!0);for(var r=u.computeSupertypeLookupTable(t),i=Object.create(null),t=Object.keys(r),a=t.length,o=0;o<a;++o){var s=t[o];n="visit"+r[s],d.check(e[n])&&(i[s]=n)}return i}function a(e,t){for(var n in t)h.call(t,n)&&(e[n]=t[n]);return e}function o(e,t){if(!(e instanceof c))throw new Error("");if(!(t instanceof r))throw new Error("");var n=e.value;if(p.check(n))e.each(t.visitWithoutReset,t);else if(f.check(n)){var i=u.getFieldNames(n);t._shouldVisitComments&&n.comments&&i.indexOf("comments")<0&&i.push("comments");for(var a=i.length,o=[],s=0;s<a;++s){var l=i[s];h.call(n,l)||(n[l]=u.getFieldValue(n,l)),o.push(e.get(l))}for(var s=0;s<a;++s)t.visitWithoutReset(o[s])}else;return e.value}function s(e){function t(n){if(!(this instanceof t))throw new Error("");if(!(this instanceof r))throw new Error("");if(!(n instanceof c))throw new Error("");Object.defineProperty(this,"visitor",{value:e,writable:!1,enumerable:!0,configurable:!1}),this.currentPath=n,this.needToCallTraverse=!0,Object.seal(this)}if(!(e instanceof r))throw new Error("");var n=t.prototype=Object.create(e);return n.constructor=t,a(n,y),t}var l,u=e("./types"),c=e("./node-path"),p=(u.namedTypes.Printable,u.builtInTypes.array),f=u.builtInTypes.object,d=u.builtInTypes.function,h=Object.prototype.hasOwnProperty;r.fromMethodsObject=function(e){function t(){if(!(this instanceof t))throw new Error("Visitor constructor cannot be invoked without 'new'");r.call(this)}if(e instanceof r)return e;if(!f.check(e))return new r;var n=t.prototype=Object.create(m);return n.constructor=t,a(n,e),a(t,r),d.assert(t.fromMethodsObject),d.assert(t.visit),new t},r.visit=function(e,t){return r.fromMethodsObject(t).visit(e)};var m=r.prototype;m.visit=function(){if(this._visiting)throw new Error("Recursively calling visitor.visit(path) resets visitor state. Try this.visit(path) or this.traverse(path) instead.");this._visiting=!0,this._changeReported=!1,this._abortRequested=!1;for(var e=arguments.length,t=new Array(e),n=0;n<e;++n)t[n]=arguments[n];t[0]instanceof c||(t[0]=new c({root:t[0]}).get("root")),this.reset.apply(this,t);try{var r=this.visitWithoutReset(t[0]),i=!0}finally{if(this._visiting=!1,!i&&this._abortRequested)return t[0].value}return r},m.AbortRequest=function(){},m.abort=function(){var e=this;e._abortRequested=!0;var t=new e.AbortRequest;throw t.cancel=function(){e._abortRequested=!1},t},m.reset=function(e){},m.visitWithoutReset=function(e){if(this instanceof this.Context)return this.visitor.visitWithoutReset(e);if(!(e instanceof c))throw new Error("");var t=e.value,n=t&&"object"==typeof t&&"string"==typeof t.type&&this._methodNameTable[t.type];if(!n)return o(e,this);var r=this.acquireContext(e);try{return r.invokeVisitorMethod(n)}finally{this.releaseContext(r)}},m.acquireContext=function(e){return 0===this._reusableContextStack.length?new this.Context(e):this._reusableContextStack.pop().reset(e)},m.releaseContext=function(e){if(!(e instanceof this.Context))throw new Error("");this._reusableContextStack.push(e),e.currentPath=null},m.reportChanged=function(){this._changeReported=!0},m.wasChangeReported=function(){return this._changeReported};var y=Object.create(null);y.reset=function(e){if(!(this instanceof this.Context))throw new Error("");if(!(e instanceof c))throw new Error("");return this.currentPath=e,this.needToCallTraverse=!0,this},y.invokeVisitorMethod=function(e){if(!(this instanceof this.Context))throw new Error("");if(!(this.currentPath instanceof c))throw new Error("");var t=this.visitor[e].call(this,this.currentPath);if(t===!1?this.needToCallTraverse=!1:t!==l&&(this.currentPath=this.currentPath.replace(t)[0],this.needToCallTraverse&&this.traverse(this.currentPath)),this.needToCallTraverse!==!1)throw new Error("Must either call this.traverse or return false in "+e);var n=this.currentPath;return n&&n.value},y.traverse=function(e,t){if(!(this instanceof this.Context))throw new Error("");if(!(e instanceof c))throw new Error("");if(!(this.currentPath instanceof c))throw new Error("");return this.needToCallTraverse=!1,o(e,r.fromMethodsObject(t||this.visitor))},y.visit=function(e,t){if(!(this instanceof this.Context))throw new Error("");if(!(e instanceof c))throw new Error("");if(!(this.currentPath instanceof c))throw new Error("");return this.needToCallTraverse=!1,r.fromMethodsObject(t||this.visitor).visitWithoutReset(e)},y.reportChanged=function(){this.visitor.reportChanged()},y.abort=function(){this.needToCallTraverse=!1,this.visitor.abort()},t.exports=r},{"./node-path":13,"./types":18}],15:[function(e,t,n){function r(e,t,n){if(!(this instanceof r))throw new Error("Path constructor cannot be invoked without 'new'");if(t){if(!(t instanceof r))throw new Error("")}else t=null,n=null;this.value=e,this.parentPath=t,this.name=n,this.__childCache=null}function i(e){return e.__childCache||(e.__childCache=Object.create(null))}function a(e,t){var n=i(e),r=e.getValueProperty(t),a=n[t];return c.call(n,t)&&a.value===r||(a=n[t]=new e.constructor(r,e,t)),a}function o(){}function s(e,t,n,r){if(f.assert(e.value),0===t)return o;var a=e.value.length;if(a<1)return o;var s=arguments.length;2===s?(n=0,r=a):3===s?(n=Math.max(n,0),r=a):(n=Math.max(n,0),r=Math.min(r,a)),d.assert(n),d.assert(r);for(var l=Object.create(null),u=i(e),p=n;p<r;++p)if(c.call(e.value,p)){var h=e.get(p);if(h.name!==p)throw new Error("");var m=p+t;h.name=m,l[m]=h,delete u[p]}return delete u.length,function(){for(var t in l){var n=l[t];if(n.name!==+t)throw new Error("");u[t]=n,e.value[t]=n.value}}}function l(e){if(!(e instanceof r))throw new Error("");var t=e.parentPath;if(!t)return e;var n=t.value,a=i(t);if(n[e.name]===e.value)a[e.name]=e;else if(f.check(n)){var o=n.indexOf(e.value);o>=0&&(a[e.name=o]=e)}else n[e.name]=e.value,a[e.name]=e;if(n[e.name]!==e.value)throw new Error("");if(e.parentPath.get(e.name)!==e)throw new Error("");return e}var u=Object.prototype,c=u.hasOwnProperty,p=e("./types"),f=p.builtInTypes.array,d=p.builtInTypes.number,h=Array.prototype,m=(h.slice,h.map,r.prototype);m.getValueProperty=function(e){return this.value[e]},m.get=function(e){for(var t=this,n=arguments,r=n.length,i=0;i<r;++i)t=a(t,n[i]);return t},m.each=function(e,t){for(var n=[],r=this.value.length,i=0,i=0;i<r;++i)c.call(this.value,i)&&(n[i]=this.get(i));for(t=t||this,i=0;i<r;++i)c.call(n,i)&&e.call(t,n[i])},m.map=function(e,t){var n=[];return this.each(function(t){n.push(e.call(this,t))},t),n},m.filter=function(e,t){var n=[];return this.each(function(t){e.call(this,t)&&n.push(t)},t),n},m.shift=function(){var e=s(this,-1),t=this.value.shift();return e(),t},m.unshift=function(e){var t=s(this,arguments.length),n=this.value.unshift.apply(this.value,arguments);return t(),n},m.push=function(e){return f.assert(this.value),delete i(this).length,this.value.push.apply(this.value,arguments)},m.pop=function(){f.assert(this.value);var e=i(this);return delete e[this.value.length-1],delete e.length,this.value.pop()},m.insertAt=function(e,t){var n=arguments.length,r=s(this,n-1,e);if(r===o)return this;e=Math.max(e,0);for(var i=1;i<n;++i)this.value[e+i-1]=arguments[i];return r(),this},m.insertBefore=function(e){for(var t=this.parentPath,n=arguments.length,r=[this.name],i=0;i<n;++i)r.push(arguments[i]);return t.insertAt.apply(t,r)},m.insertAfter=function(e){for(var t=this.parentPath,n=arguments.length,r=[this.name+1],i=0;i<n;++i)r.push(arguments[i]);return t.insertAt.apply(t,r)},m.replace=function(e){var t=[],n=this.parentPath.value,r=i(this.parentPath),a=arguments.length;if(l(this),f.check(n)){for(var o=n.length,u=s(this.parentPath,a-1,this.name+1),c=[this.name,1],p=0;p<a;++p)c.push(arguments[p]);var d=n.splice.apply(n,c);if(d[0]!==this.value)throw new Error("");if(n.length!==o-1+a)throw new Error("");if(u(),0===a)delete this.value,delete r[this.name],this.__childCache=null;else{if(n[this.name]!==e)throw new Error("");for(this.value!==e&&(this.value=e,this.__childCache=null),p=0;p<a;++p)t.push(this.parentPath.get(this.name+p));if(t[0]!==this)throw new Error("")}}else if(1===a)this.value!==e&&(this.__childCache=null),this.value=n[this.name]=e,t.push(this);else{if(0!==a)throw new Error("Could not replace path");delete n[this.name],delete this.value,this.__childCache=null}return t},t.exports=r},{"./types":18}],16:[function(e,t,n){function r(t,n){if(!(this instanceof r))throw new Error("Scope constructor cannot be invoked without 'new'");if(!(t instanceof e("./node-path")))throw new Error("");g.assert(t.value);var i;if(n){if(!(n instanceof r))throw new Error("");i=n.depth+1}else n=null,i=0;Object.defineProperties(this,{path:{value:t},node:{value:t.value},isGlobal:{value:!n,enumerable:!0},depth:{value:i},parent:{value:n},bindings:{value:{}}})}function i(e,t){var n=e.value;g.assert(n),c.CatchClause.check(n)?s(e.get("param"),t):a(e,t)}function a(e,t){var n=e.value;e.parent&&c.FunctionExpression.check(e.parent.node)&&e.parent.node.id&&s(e.parent.get("id"),t),n&&(d.check(n)?e.each(function(e){o(e,t)}):c.Function.check(n)?(e.get("params").each(function(e){s(e,t)}),o(e.get("body"),t)):c.VariableDeclarator.check(n)?(s(e.get("id"),t),o(e.get("init"),t)):"ImportSpecifier"===n.type||"ImportNamespaceSpecifier"===n.type||"ImportDefaultSpecifier"===n.type?s(e.get(n.local?"local":n.name?"name":"id"),t):p.check(n)&&!f.check(n)&&l.eachField(n,function(n,r){var i=e.get(n);if(i.value!==r)throw new Error("");o(i,t)}))}function o(e,t){var n=e.value;if(!n||f.check(n));else if(c.FunctionDeclaration.check(n))s(e.get("id"),t);else if(c.ClassDeclaration&&c.ClassDeclaration.check(n))s(e.get("id"),t);else if(g.check(n)){if(c.CatchClause.check(n)){var r=n.param.name,i=h.call(t,r);a(e.get("body"),t),i||delete t[r]}}else a(e,t)}function s(e,t){var n=e.value;c.Pattern.assert(n),c.Identifier.check(n)?h.call(t,n.name)?t[n.name].push(e):t[n.name]=[e]:c.ObjectPattern&&c.ObjectPattern.check(n)?e.get("properties").each(function(e){var n=e.value;c.Pattern.check(n)?s(e,t):c.Property.check(n)?s(e.get("value"),t):c.SpreadProperty&&c.SpreadProperty.check(n)&&s(e.get("argument"),t)}):c.ArrayPattern&&c.ArrayPattern.check(n)?e.get("elements").each(function(e){var n=e.value;c.Pattern.check(n)?s(e,t):c.SpreadElement&&c.SpreadElement.check(n)&&s(e.get("argument"),t)}):c.PropertyPattern&&c.PropertyPattern.check(n)?s(e.get("pattern"),t):(c.SpreadElementPattern&&c.SpreadElementPattern.check(n)||c.SpreadPropertyPattern&&c.SpreadPropertyPattern.check(n))&&s(e.get("argument"),t)}var l=e("./types"),u=l.Type,c=l.namedTypes,p=c.Node,f=c.Expression,d=l.builtInTypes.array,h=Object.prototype.hasOwnProperty,m=l.builders,y=[c.Program,c.Function,c.CatchClause],g=u.or.apply(u,y);r.isEstablishedBy=function(e){return g.check(e)};var v=r.prototype;v.didScan=!1,v.declares=function(e){return this.scan(),h.call(this.bindings,e)},v.declareTemporary=function(e){if(e){if(!/^[a-z$_]/i.test(e))throw new Error("")}else e="t$";e+=this.depth.toString(36)+"$",this.scan();for(var t=0;this.declares(e+t);)++t;var n=e+t;return this.bindings[n]=l.builders.identifier(n)},v.injectTemporary=function(e,t){e||(e=this.declareTemporary());var n=this.path.get("body");return c.BlockStatement.check(n.value)&&(n=n.get("body")),n.unshift(m.variableDeclaration("var",[m.variableDeclarator(e,t||null)])),e},v.scan=function(e){if(e||!this.didScan){for(var t in this.bindings)delete this.bindings[t];i(this.path,this.bindings),this.didScan=!0}},v.getBindings=function(){return this.scan(),this.bindings},v.lookup=function(e){for(var t=this;t&&!t.declares(e);t=t.parent);return t},v.getGlobalScope=function(){for(var e=this;!e.isGlobal;)e=e.parent;return e},t.exports=r},{"./node-path":13,"./types":18}],17:[function(e,t,n){var r=e("../lib/types"),i=r.Type,a=r.builtInTypes,o=a.number;n.geq=function(e){return new i(function(t){return o.check(t)&&t>=e},o+" >= "+e)},n.defaults={null:function(){return null},emptyArray:function(){return[]},false:function(){return!1},true:function(){return!0},undefined:function(){}};var s=i.or(a.string,a.number,a.boolean,a.null,a.undefined);n.isPrimitive=new i(function(e){if(null===e)return!0;var t=typeof e;return!("object"===t||"function"===t)},s.toString())},{"../lib/types":18}],18:[function(e,t,n){function r(e,t){var n=this;if(!(n instanceof r))throw new Error("Type constructor cannot be invoked without 'new'");if(b.call(e)!==E)throw new Error(e+" is not a function");var i=b.call(t);if(i!==E&&i!==S)throw new Error(t+" is neither a function nor a string");Object.defineProperties(n,{name:{value:t},check:{value:function(t,r){var i=e.call(n,t,r);return!i&&r&&b.call(r)===E&&r(n,t),i}}})}function i(e){return _.check(e)?"{"+Object.keys(e).map(function(t){return t+": "+e[t]}).join(", ")+"}":P.check(e)?"["+e.map(i).join(", ")+"]":JSON.stringify(e)}function a(e,t){var n=b.call(e),i=new r(function(e){return b.call(e)===n},t);return A[t]=i,e&&"function"==typeof e.constructor&&(k.push(e.constructor),T.push(i)),i}function o(e,t){if(e instance