1 line
420 KiB
Plaintext
1 line
420 KiB
Plaintext
{"version":3,"sources":["../webpack/universalModuleDefinition","../webpack/bootstrap ae4bf11627133d1652a1","../nunjucks/src/lib.js","../nunjucks/src/object.js","../nunjucks/src/runtime.js","../nunjucks/src/nodes.js","../nunjucks/src/compiler.js","../nunjucks/src/loader.js","../nunjucks/src/environment.js","../nunjucks/src/parser.js","../nunjucks/src/lexer.js","../nunjucks/src/web-loaders.js","../nunjucks/index.js","../node_modules/asap/browser-asap.js","../node_modules/asap/browser-raw.js","../node_modules/webpack/buildin/global.js","../node_modules/a-sync-waterfall/index.js","../node_modules/webpack/node_modules/events/events.js","../nunjucks/src/transformer.js","../nunjucks/src/filters.js","../nunjucks/src/precompiled-loader.js","../nunjucks/src/tests.js","../nunjucks/src/globals.js","../nunjucks/src/express-app.js","../nunjucks/src/precompile.js","../nunjucks/src/precompile-global.js","../nunjucks/src/jinja-compat.js"],"names":["ArrayProto","Array","prototype","ObjProto","Object","escapeMap","escapeRegex","exports","module","hasOwnProp","obj","k","hasOwnProperty","call","lookupEscape","ch","_prettifyError","path","withInternals","err","Update","TemplateError","old","Error","message","name","lineno","colno","cause","setPrototypeOf","defineProperty","enumerable","writable","value","captureStackTrace","constructor","getStack","stackDescriptor","getOwnPropertyDescriptor","get","stack","firstUpdate","msg","create","escape","val","replace","isFunction","toString","isArray","isString","isObject","_prepareAttributeParts","attr","split","getAttrGetter","attribute","parts","attrGetter","item","_item","i","length","part","undefined","groupBy","throwOnUndefined","result","iterator","key","TypeError","push","toArray","slice","without","array","contains","arguments","index","indexOf","repeat","char_","n","str","each","func","context","forEach","l","map","results","asyncIter","arr","iter","cb","next","asyncFor","keys","keys_","len","searchElement","fromIndex","_entries","_values","extend","obj1","obj2","_assign","inOperator","_defineProperties","target","props","descriptor","configurable","_toPropertyKey","_createClass","Constructor","protoProps","staticProps","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","res","Number","_inheritsLoose","subClass","superClass","_setPrototypeOf","o","p","bind","__proto__","EventEmitter","require","lib","parentWrap","parent","prop","wrap","tmp","apply","extendClass","cls","subclass","_cls","Obj","init","_proto","EmitterObj","_EventEmitter","_this2","_this","_proto2","arrayFrom","from","supportsIterators","Frame","isolateWrites","variables","topLevel","set","resolveUp","frame","resolve","id","lookup","forWrite","pop","makeMacro","argNames","kwargNames","macro","_len","macroArgs","_key","argCount","numArgs","args","kwargs","getKeywordArgs","makeKeywordArgs","__keywords","isKeywordArgs","lastArg","SafeString","valueOf","copySafeness","dest","markSafe","type","wrapSafe","ret","suppressValue","autoescape","ensureDefined","memberLookup","_len2","_key2","callWrap","contextOrFrameLookup","handleError","error","asyncEach","dimen","iterCallback","asyncAll","finished","outputArr","done","output","join","fromIterator","_require","traverseAndCheck","Node","findAll","_Obj","_arguments","fields","field","NodeList","children","child","iterFields","_this3","Value","_Node","_Node2","nodes","addChild","node","Root","Literal","Group","ArrayNode","Pair","Dict","LookupVal","If","IfAsync","InlineIf","For","AsyncEach","AsyncAll","Macro","Caller","Import","FromImport","_Node3","_proto3","template","names","withContext","FunCall","Filter","FilterAsync","KeywordArgs","Block","Super","TemplateRef","Extends","Include","Set","Switch","Case","Output","Capture","TemplateData","UnaryOp","BinOp","In","Is","Or","And","Not","Add","Concat","Sub","Mul","Div","FloorDiv","Mod","Pow","Neg","Pos","Compare","CompareOperand","CallExtension","ext","contentArgs","extName","__name","CallExtensionAsync","print","indent","inline","lines","line","process","stdout","write","nl","printNodes","typename","fieldName","JSON","stringify","_ref","parser","transformer","_require2","_require3","compareOps","Compiler","templateName","codebuf","lastId","buffer","bufferStack","_scopeClosers","inBlock","fail","_pushBuffer","_tmpid","_emit","_popBuffer","code","_emitLine","_emitLines","_emitFuncBegin","_emitFuncEnd","noReturn","_closeScopeLevels","_addScopeLevel","_withScopedSyntax","_makeCallback","_templateName","_compileChildren","compile","_compileAggregate","startChar","endChar","_compileExpression","assertType","types","some","t","compileCallExtension","async","_this4","compileCallExtensionAsync","compileNodeList","compileLiteral","compileSymbol","v","compileGroup","compileArray","compileDict","compilePair","compileInlineIf","cond","body","else_","compileIn","left","right","compileIs","_binOpEmitter","compileOr","compileAnd","compileAdd","compileConcat","compileSub","compileMul","compileDiv","compileMod","compileNot","compileFloorDiv","compilePow","compileNeg","compilePos","compileCompare","_this5","expr","ops","op","compileLookupVal","_getNodeName","compileFunCall","compileFilter","compileFilterAsync","symbol","compileKeywordArgs","compileSet","_this6","ids","targets","charAt","compileSwitch","_this7","cases","c","default","compileIf","_this8","compileIfAsync","_emitLoopBindings","_this9","bindings","b","compileFor","_this10","u","tid","_node$name$children","_compileAsyncLoop","parallel","_this11","asyncMethod","arrayLen","buf","compileAsyncEach","compileAsyncAll","_compileMacro","_this12","funcId","keepFrame","realNames","concat","currFrame","pair","bufferId","compileMacro","compileCaller","_compileGetTemplate","eagerCompile","ignoreMissing","parentTemplateId","parentName","eagerCompileArg","ignoreMissingArg","compileImport","compileFromImport","_this13","importedId","nameNode","alias","compileBlock","compileSuper","blockName","compileExtends","compileInclude","id2","compileTemplateData","compileCapture","_this14","compileOutput","_this15","compileRoot","_this16","blockNames","blocks","block","tmpFrame","_compile","getCode","src","asyncFilters","extensions","opts","preprocessors","preprocess","filter","f","processedSrc","reduce","s","processor","transform","parse","_EmitterObj","Loader","to","dirname","isRelative","filename","asap","waterfall","compiler","filters","FileSystemLoader","WebLoader","PrecompiledLoader","tests","globals","globalRuntime","expressApp","callbackAsap","noopTmplSrc","root","env","runtime","e","Environment","loaders","dev","trimBlocks","lstripBlocks","window","nunjucksPrecompiled","unshift","_initLoaders","extensionsList","addFilter","_ref2","test","addTest","loader","cache","on","fullname","emit","source","invalidateCache","addExtension","extension","removeExtension","getExtension","hasExtension","addGlobal","getGlobal","wrapped","getFilter","getTest","resolveTemplate","getTemplate","that","tmpl","raw","Template","syncResult","createTemplate","info","newTmpl","noCache","handle","getSource","express","app","render","ctx","renderString","tasks","callback","forceAsync","Context","exported","addBlock","setVariable","getVariables","getBlock","getSuper","idx","blk","addExport","getExported","_Obj2","tmplProps","tmplStr","compiled","parentFrame","didError","rootRenderFunc","Function","_getBlocks","lexer","Parser","tokens","peeked","breakOnBlocks","dropLeadingWhitespace","nextToken","withWhitespace","tok","TOKEN_WHITESPACE","peekToken","pushToken","skip","expect","skipValue","skipSymbol","TOKEN_SYMBOL","advanceAfterBlockEnd","TOKEN_BLOCK_END","advanceAfterVariableEnd","TOKEN_VARIABLE_END","tags","VARIABLE_END","parseFor","forTok","endBlock","parsePrimary","TOKEN_COMMA","parseExpression","parseUntilBlocks","parseMacro","macroTok","parseSignature","parseCall","callTok","callerArgs","macroCall","callerName","callerNode","parseWithContext","parseImport","importTok","parseFrom","fromTok","nextTok","parseBlock","tag","parseExtends","tagName","parseInclude","parseIf","parseSet","TOKEN_OPERATOR","parseSwitch","switchStart","switchEnd","caseStart","caseDefault","defaultCase","col","parseStatement","parseRaw","parseFilterStatement","endTagName","rawBlockRegex","RegExp","rawLevel","matches","begun","_extractRegex","all","pre","backN","parsePostfix","TOKEN_LEFT_PAREN","TOKEN_LEFT_BRACKET","parseAggregate","parseInlineIf","parseOr","condNode","bodyNode","parseAnd","node2","parseNot","parseIn","parseIs","invert","parseCompare","not","parseConcat","parseAdd","TOKEN_TILDE","parseSub","parseMul","parseDiv","parseFloorDiv","parseMod","parsePow","parseUnary","noFilters","parseFilter","noPostfix","TOKEN_STRING","TOKEN_INT","parseInt","TOKEN_FLOAT","parseFloat","TOKEN_BOOLEAN","TOKEN_NONE","TOKEN_REGEX","flags","parseFilterName","parseFilterArgs","TOKEN_PIPE","filterTok","TOKEN_LEFT_CURLY","TOKEN_RIGHT_PAREN","TOKEN_RIGHT_BRACKET","TOKEN_RIGHT_CURLY","TOKEN_COLON","tolerant","noParens","checkComma","prev","parseNodes","TOKEN_DATA","data","nextVal","TOKEN_BLOCK_START","TOKEN_VARIABLE_START","VARIABLE_START","TOKEN_COMMENT","COMMENT_START","COMMENT_END","parseAsRoot","lex","whitespaceChars","delimChars","intChars","BLOCK_START","BLOCK_END","TOKEN_SPECIAL","token","Tokenizer","in_code","blockStart","blockEnd","variableStart","variableEnd","commentStart","commentEnd","cur","current","isFinished","_parseString","_extract","_extractString","forward","back","forwardN","regexBody","previous","POSSIBLE_FLAGS","regexFlags","isCurrentAFlag","complexOps","curComplex","_extractUntil","match","dec","beginChars","inComment","_matches","lastLine","delimiter","m","charString","_extractMatching","breakOnMatch","first","regex","currentStr","lastIndexOf","substr","_Loader","baseURL","useCache","fetch","content","status","url","ajax","XMLHttpRequest","loading","onreadystatechange","readyState","responseText","Date","getTime","open","send","precompile","installJinjaCompat","configure","templatesPath","TemplateLoader","watch","web","NodeResolveLoader","reset","precompileString","sym","gensym","mapCOW","walk","ast","depthFirst","astT","propsT","depthWalk","_liftFilters","walked","descNode","liftFilters","liftSuper","blockNode","hasSuper","convertStatements","cps","r","normalize","defaultValue","abs","Math","isNaN","num","batch","linecount","fillWith","capitalize","toLowerCase","toUpperCase","center","width","spaces","post","default_","def","bool","dictsort","caseSensitive","by","si","sort","t1","t2","a","dump","safe","forceescape","groupby","indentfirst","sp","del","last","lengthFilter","Map","size","list","lower","nl2br","random","floor","getSelectOrReject","expectedTestResult","testName","secondArg","examineTestResult","reject","rejectattr","select","selectattr","new_","maxCount","originalStr","nextIndex","pos","count","substring","reverse","round","precision","method","factor","pow","rounder","ceil","slices","sliceLength","extra","offset","start","end","currSlice","sum","sortFilter","reversed","caseSens","getAttribute","x","y","string","striptags","preserveLinebreaks","trimmedInput","trim","title","words","word","truncate","killwords","orig","upper","urlencode","enc","encodeURIComponent","keyvals","puncRe","emailRe","httpHttpsRe","wwwRe","tldRe","urlize","nofollow","Infinity","noFollowAttr","possibleUrl","shortUrl","wordcount","float","intFilter","doInt","base","int","d","compiledTemplates","precompiled","callable","defined","divisibleby","one","two","escaped","equalto","eq","sameas","even","falsy","ge","greaterthan","gt","le","lessthan","lt","ne","nullTest","null","number","odd","truthy","undefinedTest","iterable","mapping","cycler","items","joiner","sep","range","stop","step","NunjucksView","defaultEngine","extname","fs","precompileGlobal","patterns","pattern","wrapper","_precompile","pathStats","existsSync","statSync","templates","addTemplates","dir","readdirSync","file","filepath","subpath","stat","isDirectory","exclude","include","isFile","readFileSync","force","console","out","asFunction","installCompat","orig_contextOrFrameLookup","orig_memberLookup","orig_Compiler_assertType","orig_Parser_parseAggregate","uninstall","getTokensState","Slice","compileSlice","origState","errState","rethrow","isSlice","sliceLookup","ARRAY_MEMBERS","splice","append","element","remove","find","insert","elem","OBJECT_MEMBERS","values","has_key","popitem","setdefault","update","iteritems","itervalues","iterkeys"],"mappings":"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A,aAACrF,GAAG,EAAEoF,GAAG,EAAE7c,EAAE,EAAE;IACzB,IAAI,CAAC6Z,CAAC,EAAE;MACNoR,SAAS,EAAE;IACb;IAEA,OAAOpR,CAAC,CAACiD,YAAY,CAACrF,GAAG,EAAEoF,GAAG,EAAE7c,EAAE,CAAC;EACrC,CAAC;EACD+qB,UAAU,EAAGA,UAAU,GAAIA,UAAU,CAACA,UAAU,GAAG7sB,SAAS;EAC5DstB,gBAAgB,EAAGT,UAAU,GAAIA,UAAU,CAACS,gBAAgB,GAAGttB;AACjE,CAAC,C;;;;;;;ACvFY;;AAEb;AACA,cAAc,mBAAO,CAAC,EAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;;;;;;;ACjEA,8CAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,kBAAkB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9NA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;ACpBA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;;AAEA,MAAM,IAA2C;AACjD,IAAI,iCAAO,EAAE,mCAAE;AACf;AACA,KAAK;AAAA,oGAAC,CAAC;AACP,GAAG;AACH,+BAA+B;AAC/B,GAAG;AACH,kCAAkC;AAClC;AACA,CAAC;;;;;;;;AClFD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,sBAAsB;AACvC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA,iCAAiC,QAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;AACP;AACA,sCAAsC,QAAQ;AAC9C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;;AAEA;AACA,QAAQ,yBAAyB;AACjC;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,6DAA6D,aAAa;AAC1E;AACA,6DAA6D,aAAa;AAC1E;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,oCAAoC,aAAa;AACjD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH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","file":"nunjucks.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"nunjucks\"] = factory();\n\telse\n\t\troot[\"nunjucks\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 11);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap ae4bf11627133d1652a1","'use strict';\n\nvar ArrayProto = Array.prototype;\nvar ObjProto = Object.prototype;\n\nvar escapeMap = {\n '&': '&',\n '\"': '"',\n '\\'': ''',\n '<': '<',\n '>': '>',\n '\\\\': '\',\n};\n\nvar escapeRegex = /[&\"'<>\\\\]/g;\n\nvar exports = module.exports = {};\n\nfunction hasOwnProp(obj, k) {\n return ObjProto.hasOwnProperty.call(obj, k);\n}\n\nexports.hasOwnProp = hasOwnProp;\n\nfunction lookupEscape(ch) {\n return escapeMap[ch];\n}\n\nfunction _prettifyError(path, withInternals, err) {\n if (!err.Update) {\n // not one of ours, cast it\n err = new exports.TemplateError(err);\n }\n err.Update(path);\n\n // Unless they marked the dev flag, show them a trace from here\n if (!withInternals) {\n const old = err;\n err = new Error(old.message);\n err.name = old.name;\n }\n\n return err;\n}\n\nexports._prettifyError = _prettifyError;\n\nfunction TemplateError(message, lineno, colno) {\n var err;\n var cause;\n\n if (message instanceof Error) {\n cause = message;\n message = `${cause.name}: ${cause.message}`;\n }\n\n if (Object.setPrototypeOf) {\n err = new Error(message);\n Object.setPrototypeOf(err, TemplateError.prototype);\n } else {\n err = this;\n Object.defineProperty(err, 'message', {\n enumerable: false,\n writable: true,\n value: message,\n });\n }\n\n Object.defineProperty(err, 'name', {\n value: 'Template render error',\n });\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(err, this.constructor);\n }\n\n let getStack;\n\n if (cause) {\n const stackDescriptor = Object.getOwnPropertyDescriptor(cause, 'stack');\n getStack = stackDescriptor && (stackDescriptor.get || (() => stackDescriptor.value));\n if (!getStack) {\n getStack = () => cause.stack;\n }\n } else {\n const stack = (new Error(message)).stack;\n getStack = (() => stack);\n }\n\n Object.defineProperty(err, 'stack', {\n get: () => getStack.call(err),\n });\n\n Object.defineProperty(err, 'cause', {\n value: cause\n });\n\n err.lineno = lineno;\n err.colno = colno;\n err.firstUpdate = true;\n\n err.Update = function Update(path) {\n let msg = '(' + (path || 'unknown path') + ')';\n\n // only show lineno + colno next to path of template\n // where error occurred\n if (this.firstUpdate) {\n if (this.lineno && this.colno) {\n msg += ` [Line ${this.lineno}, Column ${this.colno}]`;\n } else if (this.lineno) {\n msg += ` [Line ${this.lineno}]`;\n }\n }\n\n msg += '\\n ';\n if (this.firstUpdate) {\n msg += ' ';\n }\n\n this.message = msg + (this.message || '');\n this.firstUpdate = false;\n return this;\n };\n\n return err;\n}\n\n\nif (Object.setPrototypeOf) {\n Object.setPrototypeOf(TemplateError.prototype, Error.prototype);\n} else {\n TemplateError.prototype = Object.create(Error.prototype, {\n constructor: {\n value: TemplateError,\n },\n });\n}\n\nexports.TemplateError = TemplateError;\n\nfunction escape(val) {\n return val.replace(escapeRegex, lookupEscape);\n}\n\nexports.escape = escape;\n\nfunction isFunction(obj) {\n return ObjProto.toString.call(obj) === '[object Function]';\n}\n\nexports.isFunction = isFunction;\n\nfunction isArray(obj) {\n return ObjProto.toString.call(obj) === '[object Array]';\n}\n\nexports.isArray = isArray;\n\nfunction isString(obj) {\n return ObjProto.toString.call(obj) === '[object String]';\n}\n\nexports.isString = isString;\n\nfunction isObject(obj) {\n return ObjProto.toString.call(obj) === '[object Object]';\n}\n\nexports.isObject = isObject;\n\n/**\n * @param {string|number} attr\n * @returns {(string|number)[]}\n * @private\n */\nfunction _prepareAttributeParts(attr) {\n if (!attr) {\n return [];\n }\n\n if (typeof attr === 'string') {\n return attr.split('.');\n }\n\n return [attr];\n}\n\n/**\n * @param {string} attribute Attribute value. Dots allowed.\n * @returns {function(Object): *}\n */\nfunction getAttrGetter(attribute) {\n const parts = _prepareAttributeParts(attribute);\n\n return function attrGetter(item) {\n let _item = item;\n\n for (let i = 0; i < parts.length; i++) {\n const part = parts[i];\n\n // If item is not an object, and we still got parts to handle, it means\n // that something goes wrong. Just roll out to undefined in that case.\n if (hasOwnProp(_item, part)) {\n _item = _item[part];\n } else {\n return undefined;\n }\n }\n\n return _item;\n };\n}\n\nexports.getAttrGetter = getAttrGetter;\n\nfunction groupBy(obj, val, throwOnUndefined) {\n const result = {};\n const iterator = isFunction(val) ? val : getAttrGetter(val);\n for (let i = 0; i < obj.length; i++) {\n const value = obj[i];\n const key = iterator(value, i);\n if (key === undefined && throwOnUndefined === true) {\n throw new TypeError(`groupby: attribute \"${val}\" resolved to undefined`);\n }\n (result[key] || (result[key] = [])).push(value);\n }\n return result;\n}\n\nexports.groupBy = groupBy;\n\nfunction toArray(obj) {\n return Array.prototype.slice.call(obj);\n}\n\nexports.toArray = toArray;\n\nfunction without(array) {\n const result = [];\n if (!array) {\n return result;\n }\n const length = array.length;\n const contains = toArray(arguments).slice(1);\n let index = -1;\n\n while (++index < length) {\n if (indexOf(contains, array[index]) === -1) {\n result.push(array[index]);\n }\n }\n return result;\n}\n\nexports.without = without;\n\nfunction repeat(char_, n) {\n var str = '';\n for (let i = 0; i < n; i++) {\n str += char_;\n }\n return str;\n}\n\nexports.repeat = repeat;\n\nfunction each(obj, func, context) {\n if (obj == null) {\n return;\n }\n\n if (ArrayProto.forEach && obj.forEach === ArrayProto.forEach) {\n obj.forEach(func, context);\n } else if (obj.length === +obj.length) {\n for (let i = 0, l = obj.length; i < l; i++) {\n func.call(context, obj[i], i, obj);\n }\n }\n}\n\nexports.each = each;\n\nfunction map(obj, func) {\n var results = [];\n if (obj == null) {\n return results;\n }\n\n if (ArrayProto.map && obj.map === ArrayProto.map) {\n return obj.map(func);\n }\n\n for (let i = 0; i < obj.length; i++) {\n results[results.length] = func(obj[i], i);\n }\n\n if (obj.length === +obj.length) {\n results.length = obj.length;\n }\n\n return results;\n}\n\nexports.map = map;\n\nfunction asyncIter(arr, iter, cb) {\n let i = -1;\n\n function next() {\n i++;\n\n if (i < arr.length) {\n iter(arr[i], i, next, cb);\n } else {\n cb();\n }\n }\n\n next();\n}\n\nexports.asyncIter = asyncIter;\n\nfunction asyncFor(obj, iter, cb) {\n const keys = keys_(obj || {});\n const len = keys.length;\n let i = -1;\n\n function next() {\n i++;\n const k = keys[i];\n\n if (i < len) {\n iter(k, obj[k], i, len, next);\n } else {\n cb();\n }\n }\n\n next();\n}\n\nexports.asyncFor = asyncFor;\n\nfunction indexOf(arr, searchElement, fromIndex) {\n return Array.prototype.indexOf.call(arr || [], searchElement, fromIndex);\n}\n\nexports.indexOf = indexOf;\n\nfunction keys_(obj) {\n /* eslint-disable no-restricted-syntax */\n const arr = [];\n for (let k in obj) {\n if (hasOwnProp(obj, k)) {\n arr.push(k);\n }\n }\n return arr;\n}\n\nexports.keys = keys_;\n\nfunction _entries(obj) {\n return keys_(obj).map((k) => [k, obj[k]]);\n}\n\nexports._entries = _entries;\n\nfunction _values(obj) {\n return keys_(obj).map((k) => obj[k]);\n}\n\nexports._values = _values;\n\nfunction extend(obj1, obj2) {\n obj1 = obj1 || {};\n keys_(obj2).forEach(k => {\n obj1[k] = obj2[k];\n });\n return obj1;\n}\n\nexports._assign = exports.extend = extend;\n\nfunction inOperator(key, val) {\n if (isArray(val) || isString(val)) {\n return val.indexOf(key) !== -1;\n } else if (isObject(val)) {\n return key in val;\n }\n throw new Error('Cannot use \"in\" operator to search for \"'\n + key + '\" in unexpected types.');\n}\n\nexports.inOperator = inOperator;\n\n\n\n// WEBPACK FOOTER //\n// ./nunjucks/src/lib.js","'use strict';\n\n// A simple class system, more documentation to come\nconst EventEmitter = require('events');\nconst lib = require('./lib');\n\nfunction parentWrap(parent, prop) {\n if (typeof parent !== 'function' || typeof prop !== 'function') {\n return prop;\n }\n return function wrap() {\n // Save the current parent method\n const tmp = this.parent;\n\n // Set parent to the previous method, call, and restore\n this.parent = parent;\n const res = prop.apply(this, arguments);\n this.parent = tmp;\n\n return res;\n };\n}\n\nfunction extendClass(cls, name, props) {\n props = props || {};\n\n lib.keys(props).forEach(k => {\n props[k] = parentWrap(cls.prototype[k], props[k]);\n });\n\n class subclass extends cls {\n get typename() {\n return name;\n }\n }\n\n lib._assign(subclass.prototype, props);\n\n return subclass;\n}\n\nclass Obj {\n constructor(...args) {\n // Unfortunately necessary for backwards compatibility\n this.init(...args);\n }\n\n init() {}\n\n get typename() {\n return this.constructor.name;\n }\n\n static extend(name, props) {\n if (typeof name === 'object') {\n props = name;\n name = 'anonymous';\n }\n return extendClass(this, name, props);\n }\n}\n\nclass EmitterObj extends EventEmitter {\n constructor(...args) {\n super();\n // Unfortunately necessary for backwards compatibility\n this.init(...args);\n }\n\n init() {}\n\n get typename() {\n return this.constructor.name;\n }\n\n static extend(name, props) {\n if (typeof name === 'object') {\n props = name;\n name = 'anonymous';\n }\n return extendClass(this, name, props);\n }\n}\n\nmodule.exports = { Obj, EmitterObj };\n\n\n\n// WEBPACK FOOTER //\n// ./nunjucks/src/object.js","'use strict';\n\nvar lib = require('./lib');\nvar arrayFrom = Array.from;\nvar supportsIterators = (\n typeof Symbol === 'function' && Symbol.iterator && typeof arrayFrom === 'function'\n);\n\n\n// Frames keep track of scoping both at compile-time and run-time so\n// we know how to access variables. Block tags can introduce special\n// variables, for example.\nclass Frame {\n constructor(parent, isolateWrites) {\n this.variables = Object.create(null);\n this.parent = parent;\n this.topLevel = false;\n // if this is true, writes (set) should never propagate upwards past\n // this frame to its parent (though reads may).\n this.isolateWrites = isolateWrites;\n }\n\n set(name, val, resolveUp) {\n // Allow variables with dots by automatically creating the\n // nested structure\n var parts = name.split('.');\n var obj = this.variables;\n var frame = this;\n\n if (resolveUp) {\n if ((frame = this.resolve(parts[0], true))) {\n frame.set(name, val);\n return;\n }\n }\n\n for (let i = 0; i < parts.length - 1; i++) {\n const id = parts[i];\n\n if (!obj[id]) {\n obj[id] = {};\n }\n obj = obj[id];\n }\n\n obj[parts[parts.length - 1]] = val;\n }\n\n get(name) {\n var val = this.variables[name];\n if (val !== undefined) {\n return val;\n }\n return null;\n }\n\n lookup(name) {\n var p = this.parent;\n var val = this.variables[name];\n if (val !== undefined) {\n return val;\n }\n return p && p.lookup(name);\n }\n\n resolve(name, forWrite) {\n var p = (forWrite && this.isolateWrites) ? undefined : this.parent;\n var val = this.variables[name];\n if (val !== undefined) {\n return this;\n }\n return p && p.resolve(name);\n }\n\n push(isolateWrites) {\n return new Frame(this, isolateWrites);\n }\n\n pop() {\n return this.parent;\n }\n}\n\nfunction makeMacro(argNames, kwargNames, func) {\n return function macro(...macroArgs) {\n var argCount = numArgs(macroArgs);\n var args;\n var kwargs = getKeywordArgs(macroArgs);\n\n if (argCount > argNames.length) {\n args = macroArgs.slice(0, argNames.length);\n\n // Positional arguments that should be passed in as\n // keyword arguments (essentially default values)\n macroArgs.slice(args.length, argCount).forEach((val, i) => {\n if (i < kwargNames.length) {\n kwargs[kwargNames[i]] = val;\n }\n });\n args.push(kwargs);\n } else if (argCount < argNames.length) {\n args = macroArgs.slice(0, argCount);\n\n for (let i = argCount; i < argNames.length; i++) {\n const arg = argNames[i];\n\n // Keyword arguments that should be passed as\n // positional arguments, i.e. the caller explicitly\n // used the name of a positional arg\n args.push(kwargs[arg]);\n delete kwargs[arg];\n }\n args.push(kwargs);\n } else {\n args = macroArgs;\n }\n\n return func.apply(this, args);\n };\n}\n\nfunction makeKeywordArgs(obj) {\n obj.__keywords = true;\n return obj;\n}\n\nfunction isKeywordArgs(obj) {\n return obj && Object.prototype.hasOwnProperty.call(obj, '__keywords');\n}\n\nfunction getKeywordArgs(args) {\n var len = args.length;\n if (len) {\n const lastArg = args[len - 1];\n if (isKeywordArgs(lastArg)) {\n return lastArg;\n }\n }\n return {};\n}\n\nfunction numArgs(args) {\n var len = args.length;\n if (len === 0) {\n return 0;\n }\n\n const lastArg = args[len - 1];\n if (isKeywordArgs(lastArg)) {\n return len - 1;\n } else {\n return len;\n }\n}\n\n// A SafeString object indicates that the string should not be\n// autoescaped. This happens magically because autoescaping only\n// occurs on primitive string objects.\nfunction SafeString(val) {\n if (typeof val !== 'string') {\n return val;\n }\n\n this.val = val;\n this.length = val.length;\n}\n\nSafeString.prototype = Object.create(String.prototype, {\n length: {\n writable: true,\n configurable: true,\n value: 0\n }\n});\nSafeString.prototype.valueOf = function valueOf() {\n return this.val;\n};\nSafeString.prototype.toString = function toString() {\n return this.val;\n};\n\nfunction copySafeness(dest, target) {\n if (dest instanceof SafeString) {\n return new SafeString(target);\n }\n return target.toString();\n}\n\nfunction markSafe(val) {\n var type = typeof val;\n\n if (type === 'string') {\n return new SafeString(val);\n } else if (type !== 'function') {\n return val;\n } else {\n return function wrapSafe(args) {\n var ret = val.apply(this, arguments);\n\n if (typeof ret === 'string') {\n return new SafeString(ret);\n }\n\n return ret;\n };\n }\n}\n\nfunction suppressValue(val, autoescape) {\n val = (val !== undefined && val !== null) ? val : '';\n\n if (autoescape && !(val instanceof SafeString)) {\n val = lib.escape(val.toString());\n }\n\n return val;\n}\n\nfunction ensureDefined(val, lineno, colno) {\n if (val === null || val === undefined) {\n throw new lib.TemplateError(\n 'attempted to output null or undefined value',\n lineno + 1,\n colno + 1\n );\n }\n return val;\n}\n\nfunction memberLookup(obj, val) {\n if (obj === undefined || obj === null) {\n return undefined;\n }\n\n if (typeof obj[val] === 'function') {\n return (...args) => obj[val].apply(obj, args);\n }\n\n return obj[val];\n}\n\nfunction callWrap(obj, name, context, args) {\n if (!obj) {\n throw new Error('Unable to call `' + name + '`, which is undefined or falsey');\n } else if (typeof obj !== 'function') {\n throw new Error('Unable to call `' + name + '`, which is not a function');\n }\n\n return obj.apply(context, args);\n}\n\nfunction contextOrFrameLookup(context, frame, name) {\n var val = frame.lookup(name);\n return (val !== undefined) ?\n val :\n context.lookup(name);\n}\n\nfunction handleError(error, lineno, colno) {\n if (error.lineno) {\n return error;\n } else {\n return new lib.TemplateError(error, lineno, colno);\n }\n}\n\nfunction asyncEach(arr, dimen, iter, cb) {\n if (lib.isArray(arr)) {\n const len = arr.length;\n\n lib.asyncIter(arr, function iterCallback(item, i, next) {\n switch (dimen) {\n case 1:\n iter(item, i, len, next);\n break;\n case 2:\n iter(item[0], item[1], i, len, next);\n break;\n case 3:\n iter(item[0], item[1], item[2], i, len, next);\n break;\n default:\n item.push(i, len, next);\n iter.apply(this, item);\n }\n }, cb);\n } else {\n lib.asyncFor(arr, function iterCallback(key, val, i, len, next) {\n iter(key, val, i, len, next);\n }, cb);\n }\n}\n\nfunction asyncAll(arr, dimen, func, cb) {\n var finished = 0;\n var len;\n var outputArr;\n\n function done(i, output) {\n finished++;\n outputArr[i] = output;\n\n if (finished === len) {\n cb(null, outputArr.join(''));\n }\n }\n\n if (lib.isArray(arr)) {\n len = arr.length;\n outputArr = new Array(len);\n\n if (len === 0) {\n cb(null, '');\n } else {\n for (let i = 0; i < arr.length; i++) {\n const item = arr[i];\n\n switch (dimen) {\n case 1:\n func(item, i, len, done);\n break;\n case 2:\n func(item[0], item[1], i, len, done);\n break;\n case 3:\n func(item[0], item[1], item[2], i, len, done);\n break;\n default:\n item.push(i, len, done);\n func.apply(this, item);\n }\n }\n }\n } else {\n const keys = lib.keys(arr || {});\n len = keys.length;\n outputArr = new Array(len);\n\n if (len === 0) {\n cb(null, '');\n } else {\n for (let i = 0; i < keys.length; i++) {\n const k = keys[i];\n func(k, arr[k], i, len, done);\n }\n }\n }\n}\n\nfunction fromIterator(arr) {\n if (typeof arr !== 'object' || arr === null || lib.isArray(arr)) {\n return arr;\n } else if (supportsIterators && Symbol.iterator in arr) {\n return arrayFrom(arr);\n } else {\n return arr;\n }\n}\n\nmodule.exports = {\n Frame: Frame,\n makeMacro: makeMacro,\n makeKeywordArgs: makeKeywordArgs,\n numArgs: numArgs,\n suppressValue: suppressValue,\n ensureDefined: ensureDefined,\n memberLookup: memberLookup,\n contextOrFrameLookup: contextOrFrameLookup,\n callWrap: callWrap,\n handleError: handleError,\n isArray: lib.isArray,\n keys: lib.keys,\n SafeString: SafeString,\n copySafeness: copySafeness,\n markSafe: markSafe,\n asyncEach: asyncEach,\n asyncAll: asyncAll,\n inOperator: lib.inOperator,\n fromIterator: fromIterator\n};\n\n\n\n// WEBPACK FOOTER //\n// ./nunjucks/src/runtime.js","'use strict';\n\nconst {Obj} = require('./object');\n\nfunction traverseAndCheck(obj, type, results) {\n if (obj instanceof type) {\n results.push(obj);\n }\n\n if (obj instanceof Node) {\n obj.findAll(type, results);\n }\n}\n\nclass Node extends Obj {\n init(lineno, colno, ...args) {\n this.lineno = lineno;\n this.colno = colno;\n\n this.fields.forEach((field, i) => {\n // The first two args are line/col numbers, so offset by 2\n var val = arguments[i + 2];\n\n // Fields should never be undefined, but null. It makes\n // testing easier to normalize values.\n if (val === undefined) {\n val = null;\n }\n\n this[field] = val;\n });\n }\n\n findAll(type, results) {\n results = results || [];\n\n if (this instanceof NodeList) {\n this.children.forEach(child => traverseAndCheck(child, type, results));\n } else {\n this.fields.forEach(field => traverseAndCheck(this[field], type, results));\n }\n\n return results;\n }\n\n iterFields(func) {\n this.fields.forEach((field) => {\n func(this[field], field);\n });\n }\n}\n\n// Abstract nodes\nclass Value extends Node {\n get typename() { return 'Value'; }\n get fields() {\n return ['value'];\n }\n}\n\n// Concrete nodes\nclass NodeList extends Node {\n get typename() { return 'NodeList'; }\n get fields() { return ['children']; }\n\n init(lineno, colno, nodes) {\n super.init(lineno, colno, nodes || []);\n }\n\n addChild(node) {\n this.children.push(node);\n }\n}\n\nconst Root = NodeList.extend('Root');\nconst Literal = Value.extend('Literal');\nconst Symbol = Value.extend('Symbol');\nconst Group = NodeList.extend('Group');\nconst ArrayNode = NodeList.extend('Array');\nconst Pair = Node.extend('Pair', { fields: ['key', 'value'] });\nconst Dict = NodeList.extend('Dict');\nconst LookupVal = Node.extend('LookupVal', { fields: ['target', 'val'] });\nconst If = Node.extend('If', { fields: ['cond', 'body', 'else_'] });\nconst IfAsync = If.extend('IfAsync');\nconst InlineIf = Node.extend('InlineIf', { fields: ['cond', 'body', 'else_'] });\nconst For = Node.extend('For', { fields: ['arr', 'name', 'body', 'else_'] });\nconst AsyncEach = For.extend('AsyncEach');\nconst AsyncAll = For.extend('AsyncAll');\nconst Macro = Node.extend('Macro', { fields: ['name', 'args', 'body'] });\nconst Caller = Macro.extend('Caller');\nconst Import = Node.extend('Import', { fields: ['template', 'target', 'withContext'] });\n\nclass FromImport extends Node {\n get typename() { return 'FromImport'; }\n get fields() { return ['template', 'names', 'withContext']; }\n\n init(lineno, colno, template, names, withContext) {\n super.init(lineno, colno, template, names || new NodeList(), withContext);\n }\n}\n\nconst FunCall = Node.extend('FunCall', { fields: ['name', 'args'] });\nconst Filter = FunCall.extend('Filter');\nconst FilterAsync = Filter.extend('FilterAsync', { fields: ['name', 'args', 'symbol'] });\nconst KeywordArgs = Dict.extend('KeywordArgs');\nconst Block = Node.extend('Block', { fields: ['name', 'body'] });\nconst Super = Node.extend('Super', { fields: ['blockName', 'symbol'] });\nconst TemplateRef = Node.extend('TemplateRef', { fields: ['template'] });\nconst Extends = TemplateRef.extend('Extends');\nconst Include = Node.extend('Include', { fields: ['template', 'ignoreMissing'] });\nconst Set = Node.extend('Set', { fields: ['targets', 'value'] });\nconst Switch = Node.extend('Switch', { fields: ['expr', 'cases', 'default'] });\nconst Case = Node.extend('Case', { fields: ['cond', 'body'] });\nconst Output = NodeList.extend('Output');\nconst Capture = Node.extend('Capture', { fields: ['body'] });\nconst TemplateData = Literal.extend('TemplateData');\nconst UnaryOp = Node.extend('UnaryOp', { fields: ['target'] });\nconst BinOp = Node.extend('BinOp', { fields: ['left', 'right'] });\nconst In = BinOp.extend('In');\nconst Is = BinOp.extend('Is');\nconst Or = BinOp.extend('Or');\nconst And = BinOp.extend('And');\nconst Not = UnaryOp.extend('Not');\nconst Add = BinOp.extend('Add');\nconst Concat = BinOp.extend('Concat');\nconst Sub = BinOp.extend('Sub');\nconst Mul = BinOp.extend('Mul');\nconst Div = BinOp.extend('Div');\nconst FloorDiv = BinOp.extend('FloorDiv');\nconst Mod = BinOp.extend('Mod');\nconst Pow = BinOp.extend('Pow');\nconst Neg = UnaryOp.extend('Neg');\nconst Pos = UnaryOp.extend('Pos');\nconst Compare = Node.extend('Compare', { fields: ['expr', 'ops'] });\nconst CompareOperand = Node.extend('CompareOperand', { fields: ['expr', 'type'] });\nconst CallExtension = Node.extend('CallExtension', {\n init(ext, prop, args, contentArgs) {\n this.parent();\n this.extName = ext.__name || ext;\n this.prop = prop;\n this.args = args || new NodeList();\n this.contentArgs = contentArgs || [];\n this.autoescape = ext.autoescape;\n },\n fields: ['extName', 'prop', 'args', 'contentArgs']\n});\nconst CallExtensionAsync = CallExtension.extend('CallExtensionAsync');\n\n// This is hacky, but this is just a debugging function anyway\nfunction print(str, indent, inline) {\n var lines = str.split('\\n');\n\n lines.forEach((line, i) => {\n if (line && ((inline && i > 0) || !inline)) {\n process.stdout.write((' ').repeat(indent));\n }\n const nl = (i === lines.length - 1) ? '' : '\\n';\n process.stdout.write(`${line}${nl}`);\n });\n}\n\n// Print the AST in a nicely formatted tree format for debuggin\nfunction printNodes(node, indent) {\n indent = indent || 0;\n\n print(node.typename + ': ', indent);\n\n if (node instanceof NodeList) {\n print('\\n');\n node.children.forEach((n) => {\n printNodes(n, indent + 2);\n });\n } else if (node instanceof CallExtension) {\n print(`${node.extName}.${node.prop}\\n`);\n\n if (node.args) {\n printNodes(node.args, indent + 2);\n }\n\n if (node.contentArgs) {\n node.contentArgs.forEach((n) => {\n printNodes(n, indent + 2);\n });\n }\n } else {\n let nodes = [];\n let props = null;\n\n node.iterFields((val, fieldName) => {\n if (val instanceof Node) {\n nodes.push([fieldName, val]);\n } else {\n props = props || {};\n props[fieldName] = val;\n }\n });\n\n if (props) {\n print(JSON.stringify(props, null, 2) + '\\n', null, true);\n } else {\n print('\\n');\n }\n\n nodes.forEach(([fieldName, n]) => {\n print(`[${fieldName}] =>`, indent + 2);\n printNodes(n, indent + 4);\n });\n }\n}\n\nmodule.exports = {\n Node: Node,\n Root: Root,\n NodeList: NodeList,\n Value: Value,\n Literal: Literal,\n Symbol: Symbol,\n Group: Group,\n Array: ArrayNode,\n Pair: Pair,\n Dict: Dict,\n Output: Output,\n Capture: Capture,\n TemplateData: TemplateData,\n If: If,\n IfAsync: IfAsync,\n InlineIf: InlineIf,\n For: For,\n AsyncEach: AsyncEach,\n AsyncAll: AsyncAll,\n Macro: Macro,\n Caller: Caller,\n Import: Import,\n FromImport: FromImport,\n FunCall: FunCall,\n Filter: Filter,\n FilterAsync: FilterAsync,\n KeywordArgs: KeywordArgs,\n Block: Block,\n Super: Super,\n Extends: Extends,\n Include: Include,\n Set: Set,\n Switch: Switch,\n Case: Case,\n LookupVal: LookupVal,\n BinOp: BinOp,\n In: In,\n Is: Is,\n Or: Or,\n And: And,\n Not: Not,\n Add: Add,\n Concat: Concat,\n Sub: Sub,\n Mul: Mul,\n Div: Div,\n FloorDiv: FloorDiv,\n Mod: Mod,\n Pow: Pow,\n Neg: Neg,\n Pos: Pos,\n Compare: Compare,\n CompareOperand: CompareOperand,\n\n CallExtension: CallExtension,\n CallExtensionAsync: CallExtensionAsync,\n\n printNodes: printNodes\n};\n\n\n\n// WEBPACK FOOTER //\n// ./nunjucks/src/nodes.js","'use strict';\n\nconst parser = require('./parser');\nconst transformer = require('./transformer');\nconst nodes = require('./nodes');\nconst {TemplateError} = require('./lib');\nconst {Frame} = require('./runtime');\nconst {Obj} = require('./object');\n\n// These are all the same for now, but shouldn't be passed straight\n// through\nconst compareOps = {\n '==': '==',\n '===': '===',\n '!=': '!=',\n '!==': '!==',\n '<': '<',\n '>': '>',\n '<=': '<=',\n '>=': '>='\n};\n\nclass Compiler extends Obj {\n init(templateName, throwOnUndefined) {\n this.templateName = templateName;\n this.codebuf = [];\n this.lastId = 0;\n this.buffer = null;\n this.bufferStack = [];\n this._scopeClosers = '';\n this.inBlock = false;\n this.throwOnUndefined = throwOnUndefined;\n }\n\n fail(msg, lineno, colno) {\n if (lineno !== undefined) {\n lineno += 1;\n }\n if (colno !== undefined) {\n colno += 1;\n }\n\n throw new TemplateError(msg, lineno, colno);\n }\n\n _pushBuffer() {\n const id = this._tmpid();\n this.bufferStack.push(this.buffer);\n this.buffer = id;\n this._emit(`var ${this.buffer} = \"\";`);\n return id;\n }\n\n _popBuffer() {\n this.buffer = this.bufferStack.pop();\n }\n\n _emit(code) {\n this.codebuf.push(code);\n }\n\n _emitLine(code) {\n this._emit(code + '\\n');\n }\n\n _emitLines(...lines) {\n lines.forEach((line) => this._emitLine(line));\n }\n\n _emitFuncBegin(node, name) {\n this.buffer = 'output';\n this._scopeClosers = '';\n this._emitLine(`function ${name}(env, context, frame, runtime, cb) {`);\n this._emitLine(`var lineno = ${node.lineno};`);\n this._emitLine(`var colno = ${node.colno};`);\n this._emitLine(`var ${this.buffer} = \"\";`);\n this._emitLine('try {');\n }\n\n _emitFuncEnd(noReturn) {\n if (!noReturn) {\n this._emitLine('cb(null, ' + this.buffer + ');');\n }\n\n this._closeScopeLevels();\n this._emitLine('} catch (e) {');\n this._emitLine(' cb(runtime.handleError(e, lineno, colno));');\n this._emitLine('}');\n this._emitLine('}');\n this.buffer = null;\n }\n\n _addScopeLevel() {\n this._scopeClosers += '})';\n }\n\n _closeScopeLevels() {\n this._emitLine(this._scopeClosers + ';');\n this._scopeClosers = '';\n }\n\n _withScopedSyntax(func) {\n var _scopeClosers = this._scopeClosers;\n this._scopeClosers = '';\n\n func.call(this);\n\n this._closeScopeLevels();\n this._scopeClosers = _scopeClosers;\n }\n\n _makeCallback(res) {\n var err = this._tmpid();\n\n return 'function(' + err + (res ? ',' + res : '') + ') {\\n' +\n 'if(' + err + ') { cb(' + err + '); return; }';\n }\n\n _tmpid() {\n this.lastId++;\n return 't_' + this.lastId;\n }\n\n _templateName() {\n return this.templateName == null ? 'undefined' : JSON.stringify(this.templateName);\n }\n\n _compileChildren(node, frame) {\n node.children.forEach((child) => {\n this.compile(child, frame);\n });\n }\n\n _compileAggregate(node, frame, startChar, endChar) {\n if (startChar) {\n this._emit(startChar);\n }\n\n node.children.forEach((child, i) => {\n if (i > 0) {\n this._emit(',');\n }\n\n this.compile(child, frame);\n });\n\n if (endChar) {\n this._emit(endChar);\n }\n }\n\n _compileExpression(node, frame) {\n // TODO: I'm not really sure if this type check is worth it or\n // not.\n this.assertType(\n node,\n nodes.Literal,\n nodes.Symbol,\n nodes.Group,\n nodes.Array,\n nodes.Dict,\n nodes.FunCall,\n nodes.Caller,\n nodes.Filter,\n nodes.LookupVal,\n nodes.Compare,\n nodes.InlineIf,\n nodes.In,\n nodes.Is,\n nodes.And,\n nodes.Or,\n nodes.Not,\n nodes.Add,\n nodes.Concat,\n nodes.Sub,\n nodes.Mul,\n nodes.Div,\n nodes.FloorDiv,\n nodes.Mod,\n nodes.Pow,\n nodes.Neg,\n nodes.Pos,\n nodes.Compare,\n nodes.NodeList\n );\n this.compile(node, frame);\n }\n\n assertType(node, ...types) {\n if (!types.some(t => node instanceof t)) {\n this.fail(`assertType: invalid type: ${node.typename}`, node.lineno, node.colno);\n }\n }\n\n compileCallExtension(node, frame, async) {\n var args = node.args;\n var contentArgs = node.contentArgs;\n var autoescape = typeof node.autoescape === 'boolean' ? node.autoescape : true;\n\n if (!async) {\n this._emit(`${this.buffer} += runtime.suppressValue(`);\n }\n\n this._emit(`env.getExtension(\"${node.extName}\")[\"${node.prop}\"](`);\n this._emit('context');\n\n if (args || contentArgs) {\n this._emit(',');\n }\n\n if (args) {\n if (!(args instanceof nodes.NodeList)) {\n this.fail('compileCallExtension: arguments must be a NodeList, ' +\n 'use `parser.parseSignature`');\n }\n\n args.children.forEach((arg, i) => {\n // Tag arguments are passed normally to the call. Note\n // that keyword arguments are turned into a single js\n // object as the last argument, if they exist.\n this._compileExpression(arg, frame);\n\n if (i !== args.children.length - 1 || contentArgs.length) {\n this._emit(',');\n }\n });\n }\n\n if (contentArgs.length) {\n contentArgs.forEach((arg, i) => {\n if (i > 0) {\n this._emit(',');\n }\n\n if (arg) {\n this._emitLine('function(cb) {');\n this._emitLine('if(!cb) { cb = function(err) { if(err) { throw err; }}}');\n const id = this._pushBuffer();\n\n this._withScopedSyntax(() => {\n this.compile(arg, frame);\n this._emitLine(`cb(null, ${id});`);\n });\n\n this._popBuffer();\n this._emitLine(`return ${id};`);\n this._emitLine('}');\n } else {\n this._emit('null');\n }\n });\n }\n\n if (async) {\n const res = this._tmpid();\n this._emitLine(', ' + this._makeCallback(res));\n this._emitLine(\n `${this.buffer} += runtime.suppressValue(${res}, ${autoescape} && env.opts.autoescape);`);\n this._addScopeLevel();\n } else {\n this._emit(')');\n this._emit(`, ${autoescape} && env.opts.autoescape);\\n`);\n }\n }\n\n compileCallExtensionAsync(node, frame) {\n this.compileCallExtension(node, frame, true);\n }\n\n compileNodeList(node, frame) {\n this._compileChildren(node, frame);\n }\n\n compileLiteral(node) {\n if (typeof node.value === 'string') {\n let val = node.value.replace(/\\\\/g, '\\\\\\\\');\n val = val.replace(/\"/g, '\\\\\"');\n val = val.replace(/\\n/g, '\\\\n');\n val = val.replace(/\\r/g, '\\\\r');\n val = val.replace(/\\t/g, '\\\\t');\n val = val.replace(/\\u2028/g, '\\\\u2028');\n this._emit(`\"${val}\"`);\n } else if (node.value === null) {\n this._emit('null');\n } else {\n this._emit(node.value.toString());\n }\n }\n\n compileSymbol(node, frame) {\n var name = node.value;\n var v = frame.lookup(name);\n\n if (v) {\n this._emit(v);\n } else {\n this._emit('runtime.contextOrFrameLookup(' +\n 'context, frame, \"' + name + '\")');\n }\n }\n\n compileGroup(node, frame) {\n this._compileAggregate(node, frame, '(', ')');\n }\n\n compileArray(node, frame) {\n this._compileAggregate(node, frame, '[', ']');\n }\n\n compileDict(node, frame) {\n this._compileAggregate(node, frame, '{', '}');\n }\n\n compilePair(node, frame) {\n var key = node.key;\n var val = node.value;\n\n if (key instanceof nodes.Symbol) {\n key = new nodes.Literal(key.lineno, key.colno, key.value);\n } else if (!(key instanceof nodes.Literal &&\n typeof key.value === 'string')) {\n this.fail('compilePair: Dict keys must be strings or names',\n key.lineno,\n key.colno);\n }\n\n this.compile(key, frame);\n this._emit(': ');\n this._compileExpression(val, frame);\n }\n\n compileInlineIf(node, frame) {\n this._emit('(');\n this.compile(node.cond, frame);\n this._emit('?');\n this.compile(node.body, frame);\n this._emit(':');\n if (node.else_ !== null) {\n this.compile(node.else_, frame);\n } else {\n this._emit('\"\"');\n }\n this._emit(')');\n }\n\n compileIn(node, frame) {\n this._emit('runtime.inOperator(');\n this.compile(node.left, frame);\n this._emit(',');\n this.compile(node.right, frame);\n this._emit(')');\n }\n\n compileIs(node, frame) {\n // first, we need to try to get the name of the test function, if it's a\n // callable (i.e., has args) and not a symbol.\n var right = node.right.name\n ? node.right.name.value\n // otherwise go with the symbol value\n : node.right.value;\n this._emit('env.getTest(\"' + right + '\").call(context, ');\n this.compile(node.left, frame);\n // compile the arguments for the callable if they exist\n if (node.right.args) {\n this._emit(',');\n this.compile(node.right.args, frame);\n }\n this._emit(') === true');\n }\n\n _binOpEmitter(node, frame, str) {\n this.compile(node.left, frame);\n this._emit(str);\n this.compile(node.right, frame);\n }\n\n // ensure concatenation instead of addition\n // by adding empty string in between\n compileOr(node, frame) {\n return this._binOpEmitter(node, frame, ' || ');\n }\n\n compileAnd(node, frame) {\n return this._binOpEmitter(node, frame, ' && ');\n }\n\n compileAdd(node, frame) {\n return this._binOpEmitter(node, frame, ' + ');\n }\n\n compileConcat(node, frame) {\n return this._binOpEmitter(node, frame, ' + \"\" + ');\n }\n\n compileSub(node, frame) {\n return this._binOpEmitter(node, frame, ' - ');\n }\n\n compileMul(node, frame) {\n return this._binOpEmitter(node, frame, ' * ');\n }\n\n compileDiv(node, frame) {\n return this._binOpEmitter(node, frame, ' / ');\n }\n\n compileMod(node, frame) {\n return this._binOpEmitter(node, frame, ' % ');\n }\n\n compileNot(node, frame) {\n this._emit('!');\n this.compile(node.target, frame);\n }\n\n compileFloorDiv(node, frame) {\n this._emit('Math.floor(');\n this.compile(node.left, frame);\n this._emit(' / ');\n this.compile(node.right, frame);\n this._emit(')');\n }\n\n compilePow(node, frame) {\n this._emit('Math.pow(');\n this.compile(node.left, frame);\n this._emit(', ');\n this.compile(node.right, frame);\n this._emit(')');\n }\n\n compileNeg(node, frame) {\n this._emit('-');\n this.compile(node.target, frame);\n }\n\n compilePos(node, frame) {\n this._emit('+');\n this.compile(node.target, frame);\n }\n\n compileCompare(node, frame) {\n this.compile(node.expr, frame);\n\n node.ops.forEach((op) => {\n this._emit(` ${compareOps[op.type]} `);\n this.compile(op.expr, frame);\n });\n }\n\n compileLookupVal(node, frame) {\n this._emit('runtime.memberLookup((');\n this._compileExpression(node.target, frame);\n this._emit('),');\n this._compileExpression(node.val, frame);\n this._emit(')');\n }\n\n _getNodeName(node) {\n switch (node.typename) {\n case 'Symbol':\n return node.value;\n case 'FunCall':\n return 'the return value of (' + this._getNodeName(node.name) + ')';\n case 'LookupVal':\n return this._getNodeName(node.target) + '[\"' +\n this._getNodeName(node.val) + '\"]';\n case 'Literal':\n return node.value.toString();\n default:\n return '--expression--';\n }\n }\n\n compileFunCall(node, frame) {\n // Keep track of line/col info at runtime by settings\n // variables within an expression. An expression in javascript\n // like (x, y, z) returns the last value, and x and y can be\n // anything\n this._emit('(lineno = ' + node.lineno +\n ', colno = ' + node.colno + ', ');\n\n this._emit('runtime.callWrap(');\n // Compile it as normal.\n this._compileExpression(node.name, frame);\n\n // Output the name of what we're calling so we can get friendly errors\n // if the lookup fails.\n this._emit(', \"' + this._getNodeName(node.name).replace(/\"/g, '\\\\\"') + '\", context, ');\n\n this._compileAggregate(node.args, frame, '[', '])');\n\n this._emit(')');\n }\n\n compileFilter(node, frame) {\n var name = node.name;\n this.assertType(name, nodes.Symbol);\n this._emit('env.getFilter(\"' + name.value + '\").call(context, ');\n this._compileAggregate(node.args, frame);\n this._emit(')');\n }\n\n compileFilterAsync(node, frame) {\n var name = node.name;\n var symbol = node.symbol.value;\n\n this.assertType(name, nodes.Symbol);\n\n frame.set(symbol, symbol);\n\n this._emit('env.getFilter(\"' + name.value + '\").call(context, ');\n this._compileAggregate(node.args, frame);\n this._emitLine(', ' + this._makeCallback(symbol));\n\n this._addScopeLevel();\n }\n\n compileKeywordArgs(node, frame) {\n this._emit('runtime.makeKeywordArgs(');\n this.compileDict(node, frame);\n this._emit(')');\n }\n\n compileSet(node, frame) {\n var ids = [];\n\n // Lookup the variable names for each identifier and create\n // new ones if necessary\n node.targets.forEach((target) => {\n var name = target.value;\n var id = frame.lookup(name);\n\n if (id === null || id === undefined) {\n id = this._tmpid();\n\n // Note: This relies on js allowing scope across\n // blocks, in case this is created inside an `if`\n this._emitLine('var ' + id + ';');\n }\n\n ids.push(id);\n });\n\n if (node.value) {\n this._emit(ids.join(' = ') + ' = ');\n this._compileExpression(node.value, frame);\n this._emitLine(';');\n } else {\n this._emit(ids.join(' = ') + ' = ');\n this.compile(node.body, frame);\n this._emitLine(';');\n }\n\n node.targets.forEach((target, i) => {\n var id = ids[i];\n var name = target.value;\n\n // We are running this for every var, but it's very\n // uncommon to assign to multiple vars anyway\n this._emitLine(`frame.set(\"${name}\", ${id}, true);`);\n\n this._emitLine('if(frame.topLevel) {');\n this._emitLine(`context.setVariable(\"${name}\", ${id});`);\n this._emitLine('}');\n\n if (name.charAt(0) !== '_') {\n this._emitLine('if(frame.topLevel) {');\n this._emitLine(`context.addExport(\"${name}\", ${id});`);\n this._emitLine('}');\n }\n });\n }\n\n compileSwitch(node, frame) {\n this._emit('switch (');\n this.compile(node.expr, frame);\n this._emit(') {');\n node.cases.forEach((c, i) => {\n this._emit('case ');\n this.compile(c.cond, frame);\n this._emit(': ');\n this.compile(c.body, frame);\n // preserve fall-throughs\n if (c.body.children.length) {\n this._emitLine('break;');\n }\n });\n if (node.default) {\n this._emit('default:');\n this.compile(node.default, frame);\n }\n this._emit('}');\n }\n\n compileIf(node, frame, async) {\n this._emit('if(');\n this._compileExpression(node.cond, frame);\n this._emitLine(') {');\n\n this._withScopedSyntax(() => {\n this.compile(node.body, frame);\n\n if (async) {\n this._emit('cb()');\n }\n });\n\n if (node.else_) {\n this._emitLine('}\\nelse {');\n\n this._withScopedSyntax(() => {\n this.compile(node.else_, frame);\n\n if (async) {\n this._emit('cb()');\n }\n });\n } else if (async) {\n this._emitLine('}\\nelse {');\n this._emit('cb()');\n }\n\n this._emitLine('}');\n }\n\n compileIfAsync(node, frame) {\n this._emit('(function(cb) {');\n this.compileIf(node, frame, true);\n this._emit('})(' + this._makeCallback());\n this._addScopeLevel();\n }\n\n _emitLoopBindings(node, arr, i, len) {\n const bindings = [\n {name: 'index', val: `${i} + 1`},\n {name: 'index0', val: i},\n {name: 'revindex', val: `${len} - ${i}`},\n {name: 'revindex0', val: `${len} - ${i} - 1`},\n {name: 'first', val: `${i} === 0`},\n {name: 'last', val: `${i} === ${len} - 1`},\n {name: 'length', val: len},\n ];\n\n bindings.forEach((b) => {\n this._emitLine(`frame.set(\"loop.${b.name}\", ${b.val});`);\n });\n }\n\n compileFor(node, frame) {\n // Some of this code is ugly, but it keeps the generated code\n // as fast as possible. ForAsync also shares some of this, but\n // not much.\n\n const i = this._tmpid();\n const len = this._tmpid();\n const arr = this._tmpid();\n frame = frame.push();\n\n this._emitLine('frame = frame.push();');\n\n this._emit(`var ${arr} = `);\n this._compileExpression(node.arr, frame);\n this._emitLine(';');\n\n this._emit(`if(${arr}) {`);\n this._emitLine(arr + ' = runtime.fromIterator(' + arr + ');');\n\n // If multiple names are passed, we need to bind them\n // appropriately\n if (node.name instanceof nodes.Array) {\n this._emitLine(`var ${i};`);\n\n // The object could be an arroy or object. Note that the\n // body of the loop is duplicated for each condition, but\n // we are optimizing for speed over size.\n this._emitLine(`if(runtime.isArray(${arr})) {`);\n this._emitLine(`var ${len} = ${arr}.length;`);\n this._emitLine(`for(${i}=0; ${i} < ${arr}.length; ${i}++) {`);\n\n // Bind each declared var\n node.name.children.forEach((child, u) => {\n var tid = this._tmpid();\n this._emitLine(`var ${tid} = ${arr}[${i}][${u}];`);\n this._emitLine(`frame.set(\"${child}\", ${arr}[${i}][${u}]);`);\n frame.set(node.name.children[u].value, tid);\n });\n\n this._emitLoopBindings(node, arr, i, len);\n this._withScopedSyntax(() => {\n this.compile(node.body, frame);\n });\n this._emitLine('}');\n\n this._emitLine('} else {');\n // Iterate over the key/values of an object\n const [key, val] = node.name.children;\n const k = this._tmpid();\n const v = this._tmpid();\n frame.set(key.value, k);\n frame.set(val.value, v);\n\n this._emitLine(`${i} = -1;`);\n this._emitLine(`var ${len} = runtime.keys(${arr}).length;`);\n this._emitLine(`for(var ${k} in ${arr}) {`);\n this._emitLine(`${i}++;`);\n this._emitLine(`var ${v} = ${arr}[${k}];`);\n this._emitLine(`frame.set(\"${key.value}\", ${k});`);\n this._emitLine(`frame.set(\"${val.value}\", ${v});`);\n\n this._emitLoopBindings(node, arr, i, len);\n this._withScopedSyntax(() => {\n this.compile(node.body, frame);\n });\n this._emitLine('}');\n\n this._emitLine('}');\n } else {\n // Generate a typical array iteration\n const v = this._tmpid();\n frame.set(node.name.value, v);\n\n this._emitLine(`var ${len} = ${arr}.length;`);\n this._emitLine(`for(var ${i}=0; ${i} < ${arr}.length; ${i}++) {`);\n this._emitLine(`var ${v} = ${arr}[${i}];`);\n this._emitLine(`frame.set(\"${node.name.value}\", ${v});`);\n\n this._emitLoopBindings(node, arr, i, len);\n\n this._withScopedSyntax(() => {\n this.compile(node.body, frame);\n });\n\n this._emitLine('}');\n }\n\n this._emitLine('}');\n if (node.else_) {\n this._emitLine('if (!' + len + ') {');\n this.compile(node.else_, frame);\n this._emitLine('}');\n }\n\n this._emitLine('frame = frame.pop();');\n }\n\n _compileAsyncLoop(node, frame, parallel) {\n // This shares some code with the For tag, but not enough to\n // worry about. This iterates across an object asynchronously,\n // but not in parallel.\n\n var i = this._tmpid();\n var len = this._tmpid();\n var arr = this._tmpid();\n var asyncMethod = parallel ? 'asyncAll' : 'asyncEach';\n frame = frame.push();\n\n this._emitLine('frame = frame.push();');\n\n this._emit('var ' + arr + ' = runtime.fromIterator(');\n this._compileExpression(node.arr, frame);\n this._emitLine(');');\n\n if (node.name instanceof nodes.Array) {\n const arrayLen = node.name.children.length;\n this._emit(`runtime.${asyncMethod}(${arr}, ${arrayLen}, function(`);\n\n node.name.children.forEach((name) => {\n this._emit(`${name.value},`);\n });\n\n this._emit(i + ',' + len + ',next) {');\n\n node.name.children.forEach((name) => {\n const id = name.value;\n frame.set(id, id);\n this._emitLine(`frame.set(\"${id}\", ${id});`);\n });\n } else {\n const id = node.name.value;\n this._emitLine(`runtime.${asyncMethod}(${arr}, 1, function(${id}, ${i}, ${len},next) {`);\n this._emitLine('frame.set(\"' + id + '\", ' + id + ');');\n frame.set(id, id);\n }\n\n this._emitLoopBindings(node, arr, i, len);\n\n this._withScopedSyntax(() => {\n let buf;\n if (parallel) {\n buf = this._pushBuffer();\n }\n\n this.compile(node.body, frame);\n this._emitLine('next(' + i + (buf ? ',' + buf : '') + ');');\n\n if (parallel) {\n this._popBuffer();\n }\n });\n\n const output = this._tmpid();\n this._emitLine('}, ' + this._makeCallback(output));\n this._addScopeLevel();\n\n if (parallel) {\n this._emitLine(this.buffer + ' += ' + output + ';');\n }\n\n if (node.else_) {\n this._emitLine('if (!' + arr + '.length) {');\n this.compile(node.else_, frame);\n this._emitLine('}');\n }\n\n this._emitLine('frame = frame.pop();');\n }\n\n compileAsyncEach(node, frame) {\n this._compileAsyncLoop(node, frame);\n }\n\n compileAsyncAll(node, frame) {\n this._compileAsyncLoop(node, frame, true);\n }\n\n _compileMacro(node, frame) {\n var args = [];\n var kwargs = null;\n var funcId = 'macro_' + this._tmpid();\n var keepFrame = (frame !== undefined);\n\n // Type check the definition of the args\n node.args.children.forEach((arg, i) => {\n if (i === node.args.children.length - 1 && arg instanceof nodes.Dict) {\n kwargs = arg;\n } else {\n this.assertType(arg, nodes.Symbol);\n args.push(arg);\n }\n });\n\n const realNames = [...args.map((n) => `l_${n.value}`), 'kwargs'];\n\n // Quoted argument names\n const argNames = args.map((n) => `\"${n.value}\"`);\n const kwargNames = ((kwargs && kwargs.children) || []).map((n) => `\"${n.key.value}\"`);\n\n // We pass a function to makeMacro which destructures the\n // arguments so support setting positional args with keywords\n // args and passing keyword args as positional args\n // (essentially default values). See runtime.js.\n let currFrame;\n if (keepFrame) {\n currFrame = frame.push(true);\n } else {\n currFrame = new Frame();\n }\n this._emitLines(\n `var ${funcId} = runtime.makeMacro(`,\n `[${argNames.join(', ')}], `,\n `[${kwargNames.join(', ')}], `,\n `function (${realNames.join(', ')}) {`,\n 'var callerFrame = frame;',\n 'frame = ' + ((keepFrame) ? 'frame.push(true);' : 'new runtime.Frame();'),\n 'kwargs = kwargs || {};',\n 'if (Object.prototype.hasOwnProperty.call(kwargs, \"caller\")) {',\n 'frame.set(\"caller\", kwargs.caller); }');\n\n // Expose the arguments to the template. Don't need to use\n // random names because the function\n // will create a new run-time scope for us\n args.forEach((arg) => {\n this._emitLine(`frame.set(\"${arg.value}\", l_${arg.value});`);\n currFrame.set(arg.value, `l_${arg.value}`);\n });\n\n // Expose the keyword arguments\n if (kwargs) {\n kwargs.children.forEach((pair) => {\n const name = pair.key.value;\n this._emit(`frame.set(\"${name}\", `);\n this._emit(`Object.prototype.hasOwnProperty.call(kwargs, \"${name}\")`);\n this._emit(` ? kwargs[\"${name}\"] : `);\n this._compileExpression(pair.value, currFrame);\n this._emit(');');\n });\n }\n\n const bufferId = this._pushBuffer();\n\n this._withScopedSyntax(() => {\n this.compile(node.body, currFrame);\n });\n\n this._emitLine('frame = ' + ((keepFrame) ? 'frame.pop();' : 'callerFrame;'));\n this._emitLine(`return new runtime.SafeString(${bufferId});`);\n this._emitLine('});');\n this._popBuffer();\n\n return funcId;\n }\n\n compileMacro(node, frame) {\n var funcId = this._compileMacro(node);\n\n // Expose the macro to the templates\n var name = node.name.value;\n frame.set(name, funcId);\n\n if (frame.parent) {\n this._emitLine(`frame.set(\"${name}\", ${funcId});`);\n } else {\n if (node.name.value.charAt(0) !== '_') {\n this._emitLine(`context.addExport(\"${name}\");`);\n }\n this._emitLine(`context.setVariable(\"${name}\", ${funcId});`);\n }\n }\n\n compileCaller(node, frame) {\n // basically an anonymous \"macro expression\"\n this._emit('(function (){');\n const funcId = this._compileMacro(node, frame);\n this._emit(`return ${funcId};})()`);\n }\n\n _compileGetTemplate(node, frame, eagerCompile, ignoreMissing) {\n const parentTemplateId = this._tmpid();\n const parentName = this._templateName();\n const cb = this._makeCallback(parentTemplateId);\n const eagerCompileArg = (eagerCompile) ? 'true' : 'false';\n const ignoreMissingArg = (ignoreMissing) ? 'true' : 'false';\n this._emit('env.getTemplate(');\n this._compileExpression(node.template, frame);\n this._emitLine(`, ${eagerCompileArg}, ${parentName}, ${ignoreMissingArg}, ${cb}`);\n return parentTemplateId;\n }\n\n compileImport(node, frame) {\n const target = node.target.value;\n const id = this._compileGetTemplate(node, frame, false, false);\n this._addScopeLevel();\n\n this._emitLine(id + '.getExported(' +\n (node.withContext ? 'context.getVariables(), frame, ' : '') +\n this._makeCallback(id));\n this._addScopeLevel();\n\n frame.set(target, id);\n\n if (frame.parent) {\n this._emitLine(`frame.set(\"${target}\", ${id});`);\n } else {\n this._emitLine(`context.setVariable(\"${target}\", ${id});`);\n }\n }\n\n compileFromImport(node, frame) {\n const importedId = this._compileGetTemplate(node, frame, false, false);\n this._addScopeLevel();\n\n this._emitLine(importedId + '.getExported(' +\n (node.withContext ? 'context.getVariables(), frame, ' : '') +\n this._makeCallback(importedId));\n this._addScopeLevel();\n\n node.names.children.forEach((nameNode) => {\n var name;\n var alias;\n var id = this._tmpid();\n\n if (nameNode instanceof nodes.Pair) {\n name = nameNode.key.value;\n alias = nameNode.value.value;\n } else {\n name = nameNode.value;\n alias = name;\n }\n\n this._emitLine(`if(Object.prototype.hasOwnProperty.call(${importedId}, \"${name}\")) {`);\n this._emitLine(`var ${id} = ${importedId}.${name};`);\n this._emitLine('} else {');\n this._emitLine(`cb(new Error(\"cannot import '${name}'\")); return;`);\n this._emitLine('}');\n\n frame.set(alias, id);\n\n if (frame.parent) {\n this._emitLine(`frame.set(\"${alias}\", ${id});`);\n } else {\n this._emitLine(`context.setVariable(\"${alias}\", ${id});`);\n }\n });\n }\n\n compileBlock(node) {\n var id = this._tmpid();\n\n // If we are executing outside a block (creating a top-level\n // block), we really don't want to execute its code because it\n // will execute twice: once when the child template runs and\n // again when the parent template runs. Note that blocks\n // within blocks will *always* execute immediately *and*\n // wherever else they are invoked (like used in a parent\n // template). This may have behavioral differences from jinja\n // because blocks can have side effects, but it seems like a\n // waste of performance to always execute huge top-level\n // blocks twice\n if (!this.inBlock) {\n this._emit('(parentTemplate ? function(e, c, f, r, cb) { cb(\"\"); } : ');\n }\n this._emit(`context.getBlock(\"${node.name.value}\")`);\n if (!this.inBlock) {\n this._emit(')');\n }\n this._emitLine('(env, context, frame, runtime, ' + this._makeCallback(id));\n this._emitLine(`${this.buffer} += ${id};`);\n this._addScopeLevel();\n }\n\n compileSuper(node, frame) {\n var name = node.blockName.value;\n var id = node.symbol.value;\n\n const cb = this._makeCallback(id);\n this._emitLine(`context.getSuper(env, \"${name}\", b_${name}, frame, runtime, ${cb}`);\n this._emitLine(`${id} = runtime.markSafe(${id});`);\n this._addScopeLevel();\n frame.set(id, id);\n }\n\n compileExtends(node, frame) {\n var k = this._tmpid();\n\n const parentTemplateId = this._compileGetTemplate(node, frame, true, false);\n\n // extends is a dynamic tag and can occur within a block like\n // `if`, so if this happens we need to capture the parent\n // template in the top-level scope\n this._emitLine(`parentTemplate = ${parentTemplateId}`);\n\n this._emitLine(`for(var ${k} in parentTemplate.blocks) {`);\n this._emitLine(`context.addBlock(${k}, parentTemplate.blocks[${k}]);`);\n this._emitLine('}');\n\n this._addScopeLevel();\n }\n\n compileInclude(node, frame) {\n this._emitLine('var tasks = [];');\n this._emitLine('tasks.push(');\n this._emitLine('function(callback) {');\n const id = this._compileGetTemplate(node, frame, false, node.ignoreMissing);\n this._emitLine(`callback(null,${id});});`);\n this._emitLine('});');\n\n const id2 = this._tmpid();\n this._emitLine('tasks.push(');\n this._emitLine('function(template, callback){');\n this._emitLine('template.render(context.getVariables(), frame, ' + this._makeCallback(id2));\n this._emitLine('callback(null,' + id2 + ');});');\n this._emitLine('});');\n\n this._emitLine('tasks.push(');\n this._emitLine('function(result, callback){');\n this._emitLine(`${this.buffer} += result;`);\n this._emitLine('callback(null);');\n this._emitLine('});');\n this._emitLine('env.waterfall(tasks, function(){');\n this._addScopeLevel();\n }\n\n compileTemplateData(node, frame) {\n this.compileLiteral(node, frame);\n }\n\n compileCapture(node, frame) {\n // we need to temporarily override the current buffer id as 'output'\n // so the set block writes to the capture output instead of the buffer\n var buffer = this.buffer;\n this.buffer = 'output';\n this._emitLine('(function() {');\n this._emitLine('var output = \"\";');\n this._withScopedSyntax(() => {\n this.compile(node.body, frame);\n });\n this._emitLine('return output;');\n this._emitLine('})()');\n // and of course, revert back to the old buffer id\n this.buffer = buffer;\n }\n\n compileOutput(node, frame) {\n const children = node.children;\n children.forEach(child => {\n // TemplateData is a special case because it is never\n // autoescaped, so simply output it for optimization\n if (child instanceof nodes.TemplateData) {\n if (child.value) {\n this._emit(`${this.buffer} += `);\n this.compileLiteral(child, frame);\n this._emitLine(';');\n }\n } else {\n this._emit(`${this.buffer} += runtime.suppressValue(`);\n if (this.throwOnUndefined) {\n this._emit('runtime.ensureDefined(');\n }\n this.compile(child, frame);\n if (this.throwOnUndefined) {\n this._emit(`,${node.lineno},${node.colno})`);\n }\n this._emit(', env.opts.autoescape);\\n');\n }\n });\n }\n\n compileRoot(node, frame) {\n if (frame) {\n this.fail('compileRoot: root node can\\'t have frame');\n }\n\n frame = new Frame();\n\n this._emitFuncBegin(node, 'root');\n this._emitLine('var parentTemplate = null;');\n this._compileChildren(node, frame);\n this._emitLine('if(parentTemplate) {');\n this._emitLine('parentTemplate.rootRenderFunc(env, context, frame, runtime, cb);');\n this._emitLine('} else {');\n this._emitLine(`cb(null, ${this.buffer});`);\n this._emitLine('}');\n this._emitFuncEnd(true);\n\n this.inBlock = true;\n\n const blockNames = [];\n\n const blocks = node.findAll(nodes.Block);\n\n blocks.forEach((block, i) => {\n const name = block.name.value;\n\n if (blockNames.indexOf(name) !== -1) {\n throw new Error(`Block \"${name}\" defined more than once.`);\n }\n blockNames.push(name);\n\n this._emitFuncBegin(block, `b_${name}`);\n\n const tmpFrame = new Frame();\n this._emitLine('var frame = frame.push(true);');\n this.compile(block.body, tmpFrame);\n this._emitFuncEnd();\n });\n\n this._emitLine('return {');\n\n blocks.forEach((block, i) => {\n const blockName = `b_${block.name.value}`;\n this._emitLine(`${blockName}: ${blockName},`);\n });\n\n this._emitLine('root: root\\n};');\n }\n\n compile(node, frame) {\n var _compile = this['compile' + node.typename];\n if (_compile) {\n _compile.call(this, node, frame);\n } else {\n this.fail(`compile: Cannot compile node: ${node.typename}`, node.lineno, node.colno);\n }\n }\n\n getCode() {\n return this.codebuf.join('');\n }\n}\n\nmodule.exports = {\n compile: function compile(src, asyncFilters, extensions, name, opts = {}) {\n const c = new Compiler(name, opts.throwOnUndefined);\n\n // Run the extension preprocessors against the source.\n const preprocessors = (extensions || []).map(ext => ext.preprocess).filter(f => !!f);\n\n const processedSrc = preprocessors.reduce((s, processor) => processor(s), src);\n\n c.compile(transformer.transform(\n parser.parse(processedSrc, extensions, opts),\n asyncFilters,\n name\n ));\n return c.getCode();\n },\n\n Compiler: Compiler\n};\n\n\n\n// WEBPACK FOOTER //\n// ./nunjucks/src/compiler.js","'use strict';\n\nconst path = require('path');\nconst {EmitterObj} = require('./object');\n\nmodule.exports = class Loader extends EmitterObj {\n resolve(from, to) {\n return path.resolve(path.dirname(from), to);\n }\n\n isRelative(filename) {\n return (filename.indexOf('./') === 0 || filename.indexOf('../') === 0);\n }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./nunjucks/src/loader.js","'use strict';\n\nconst asap = require('asap');\nconst waterfall = require('a-sync-waterfall');\nconst lib = require('./lib');\nconst compiler = require('./compiler');\nconst filters = require('./filters');\nconst {FileSystemLoader, WebLoader, PrecompiledLoader} = require('./loaders');\nconst tests = require('./tests');\nconst globals = require('./globals');\nconst {Obj, EmitterObj} = require('./object');\nconst globalRuntime = require('./runtime');\nconst {handleError, Frame} = globalRuntime;\nconst expressApp = require('./express-app');\n\n// If the user is using the async API, *always* call it\n// asynchronously even if the template was synchronous.\nfunction callbackAsap(cb, err, res) {\n asap(() => {\n cb(err, res);\n });\n}\n\n/**\n * A no-op template, for use with {% include ignore missing %}\n */\nconst noopTmplSrc = {\n type: 'code',\n obj: {\n root(env, context, frame, runtime, cb) {\n try {\n cb(null, '');\n } catch (e) {\n cb(handleError(e, null, null));\n }\n }\n }\n};\n\nclass Environment extends EmitterObj {\n init(loaders, opts) {\n // The dev flag determines the trace that'll be shown on errors.\n // If set to true, returns the full trace from the error point,\n // otherwise will return trace starting from Template.render\n // (the full trace from within nunjucks may confuse developers using\n // the library)\n // defaults to false\n opts = this.opts = opts || {};\n this.opts.dev = !!opts.dev;\n\n // The autoescape flag sets global autoescaping. If true,\n // every string variable will be escaped by default.\n // If false, strings can be manually escaped using the `escape` filter.\n // defaults to true\n this.opts.autoescape = opts.autoescape != null ? opts.autoescape : true;\n\n // If true, this will make the system throw errors if trying\n // to output a null or undefined value\n this.opts.throwOnUndefined = !!opts.throwOnUndefined;\n this.opts.trimBlocks = !!opts.trimBlocks;\n this.opts.lstripBlocks = !!opts.lstripBlocks;\n\n this.loaders = [];\n\n if (!loaders) {\n // The filesystem loader is only available server-side\n if (FileSystemLoader) {\n this.loaders = [new FileSystemLoader('views')];\n } else if (WebLoader) {\n this.loaders = [new WebLoader('/views')];\n }\n } else {\n this.loaders = lib.isArray(loaders) ? loaders : [loaders];\n }\n\n // It's easy to use precompiled templates: just include them\n // before you configure nunjucks and this will automatically\n // pick it up and use it\n if (typeof window !== 'undefined' && window.nunjucksPrecompiled) {\n this.loaders.unshift(\n new PrecompiledLoader(window.nunjucksPrecompiled)\n );\n }\n\n this._initLoaders();\n\n this.globals = globals();\n this.filters = {};\n this.tests = {};\n this.asyncFilters = [];\n this.extensions = {};\n this.extensionsList = [];\n\n lib._entries(filters).forEach(([name, filter]) => this.addFilter(name, filter));\n lib._entries(tests).forEach(([name, test]) => this.addTest(name, test));\n }\n\n _initLoaders() {\n this.loaders.forEach((loader) => {\n // Caching and cache busting\n loader.cache = {};\n if (typeof loader.on === 'function') {\n loader.on('update', (name, fullname) => {\n loader.cache[name] = null;\n this.emit('update', name, fullname, loader);\n });\n loader.on('load', (name, source) => {\n this.emit('load', name, source, loader);\n });\n }\n });\n }\n\n invalidateCache() {\n this.loaders.forEach((loader) => {\n loader.cache = {};\n });\n }\n\n addExtension(name, extension) {\n extension.__name = name;\n this.extensions[name] = extension;\n this.extensionsList.push(extension);\n return this;\n }\n\n removeExtension(name) {\n var extension = this.getExtension(name);\n if (!extension) {\n return;\n }\n\n this.extensionsList = lib.without(this.extensionsList, extension);\n delete this.extensions[name];\n }\n\n getExtension(name) {\n return this.extensions[name];\n }\n\n hasExtension(name) {\n return !!this.extensions[name];\n }\n\n addGlobal(name, value) {\n this.globals[name] = value;\n return this;\n }\n\n getGlobal(name) {\n if (typeof this.globals[name] === 'undefined') {\n throw new Error('global not found: ' + name);\n }\n return this.globals[name];\n }\n\n addFilter(name, func, async) {\n var wrapped = func;\n\n if (async) {\n this.asyncFilters.push(name);\n }\n this.filters[name] = wrapped;\n return this;\n }\n\n getFilter(name) {\n if (!this.filters[name]) {\n throw new Error('filter not found: ' + name);\n }\n return this.filters[name];\n }\n\n addTest(name, func) {\n this.tests[name] = func;\n return this;\n }\n\n getTest(name) {\n if (!this.tests[name]) {\n throw new Error('test not found: ' + name);\n }\n return this.tests[name];\n }\n\n resolveTemplate(loader, parentName, filename) {\n var isRelative = (loader.isRelative && parentName) ? loader.isRelative(filename) : false;\n return (isRelative && loader.resolve) ? loader.resolve(parentName, filename) : filename;\n }\n\n getTemplate(name, eagerCompile, parentName, ignoreMissing, cb) {\n var that = this;\n var tmpl = null;\n if (name && name.raw) {\n // this fixes autoescape for templates referenced in symbols\n name = name.raw;\n }\n\n if (lib.isFunction(parentName)) {\n cb = parentName;\n parentName = null;\n eagerCompile = eagerCompile || false;\n }\n\n if (lib.isFunction(eagerCompile)) {\n cb = eagerCompile;\n eagerCompile = false;\n }\n\n if (name instanceof Template) {\n tmpl = name;\n } else if (typeof name !== 'string') {\n throw new Error('template names must be a string: ' + name);\n } else {\n for (let i = 0; i < this.loaders.length; i++) {\n const loader = this.loaders[i];\n tmpl = loader.cache[this.resolveTemplate(loader, parentName, name)];\n if (tmpl) {\n break;\n }\n }\n }\n\n if (tmpl) {\n if (eagerCompile) {\n tmpl.compile();\n }\n\n if (cb) {\n cb(null, tmpl);\n return undefined;\n } else {\n return tmpl;\n }\n }\n let syncResult;\n\n const createTemplate = (err, info) => {\n if (!info && !err && !ignoreMissing) {\n err = new Error('template not found: ' + name);\n }\n\n if (err) {\n if (cb) {\n cb(err);\n return;\n } else {\n throw err;\n }\n }\n let newTmpl;\n if (!info) {\n newTmpl = new Template(noopTmplSrc, this, '', eagerCompile);\n } else {\n newTmpl = new Template(info.src, this, info.path, eagerCompile);\n if (!info.noCache) {\n info.loader.cache[name] = newTmpl;\n }\n }\n if (cb) {\n cb(null, newTmpl);\n } else {\n syncResult = newTmpl;\n }\n };\n\n lib.asyncIter(this.loaders, (loader, i, next, done) => {\n function handle(err, src) {\n if (err) {\n done(err);\n } else if (src) {\n src.loader = loader;\n done(null, src);\n } else {\n next();\n }\n }\n\n // Resolve name relative to parentName\n name = that.resolveTemplate(loader, parentName, name);\n\n if (loader.async) {\n loader.getSource(name, handle);\n } else {\n handle(null, loader.getSource(name));\n }\n }, createTemplate);\n\n return syncResult;\n }\n\n express(app) {\n return expressApp(this, app);\n }\n\n render(name, ctx, cb) {\n if (lib.isFunction(ctx)) {\n cb = ctx;\n ctx = null;\n }\n\n // We support a synchronous API to make it easier to migrate\n // existing code to async. This works because if you don't do\n // anything async work, the whole thing is actually run\n // synchronously.\n let syncResult = null;\n\n this.getTemplate(name, (err, tmpl) => {\n if (err && cb) {\n callbackAsap(cb, err);\n } else if (err) {\n throw err;\n } else {\n syncResult = tmpl.render(ctx, cb);\n }\n });\n\n return syncResult;\n }\n\n renderString(src, ctx, opts, cb) {\n if (lib.isFunction(opts)) {\n cb = opts;\n opts = {};\n }\n opts = opts || {};\n\n const tmpl = new Template(src, this, opts.path);\n return tmpl.render(ctx, cb);\n }\n\n waterfall(tasks, callback, forceAsync) {\n return waterfall(tasks, callback, forceAsync);\n }\n}\n\nclass Context extends Obj {\n init(ctx, blocks, env) {\n // Has to be tied to an environment so we can tap into its globals.\n this.env = env || new Environment();\n\n // Make a duplicate of ctx\n this.ctx = lib.extend({}, ctx);\n\n this.blocks = {};\n this.exported = [];\n\n lib.keys(blocks).forEach(name => {\n this.addBlock(name, blocks[name]);\n });\n }\n\n lookup(name) {\n // This is one of the most called functions, so optimize for\n // the typical case where the name isn't in the globals\n if (name in this.env.globals && !(name in this.ctx)) {\n return this.env.globals[name];\n } else {\n return this.ctx[name];\n }\n }\n\n setVariable(name, val) {\n this.ctx[name] = val;\n }\n\n getVariables() {\n return this.ctx;\n }\n\n addBlock(name, block) {\n this.blocks[name] = this.blocks[name] || [];\n this.blocks[name].push(block);\n return this;\n }\n\n getBlock(name) {\n if (!this.blocks[name]) {\n throw new Error('unknown block \"' + name + '\"');\n }\n\n return this.blocks[name][0];\n }\n\n getSuper(env, name, block, frame, runtime, cb) {\n var idx = lib.indexOf(this.blocks[name] || [], block);\n var blk = this.blocks[name][idx + 1];\n var context = this;\n\n if (idx === -1 || !blk) {\n throw new Error('no super block available for \"' + name + '\"');\n }\n\n blk(env, context, frame, runtime, cb);\n }\n\n addExport(name) {\n this.exported.push(name);\n }\n\n getExported() {\n var exported = {};\n this.exported.forEach((name) => {\n exported[name] = this.ctx[name];\n });\n return exported;\n }\n}\n\nclass Template extends Obj {\n init(src, env, path, eagerCompile) {\n this.env = env || new Environment();\n\n if (lib.isObject(src)) {\n switch (src.type) {\n case 'code':\n this.tmplProps = src.obj;\n break;\n case 'string':\n this.tmplStr = src.obj;\n break;\n default:\n throw new Error(\n `Unexpected template object type ${src.type}; expected 'code', or 'string'`);\n }\n } else if (lib.isString(src)) {\n this.tmplStr = src;\n } else {\n throw new Error('src must be a string or an object describing the source');\n }\n\n this.path = path;\n\n if (eagerCompile) {\n try {\n this._compile();\n } catch (err) {\n throw lib._prettifyError(this.path, this.env.opts.dev, err);\n }\n } else {\n this.compiled = false;\n }\n }\n\n render(ctx, parentFrame, cb) {\n if (typeof ctx === 'function') {\n cb = ctx;\n ctx = {};\n } else if (typeof parentFrame === 'function') {\n cb = parentFrame;\n parentFrame = null;\n }\n\n // If there is a parent frame, we are being called from internal\n // code of another template, and the internal system\n // depends on the sync/async nature of the parent template\n // to be inherited, so force an async callback\n const forceAsync = !parentFrame;\n\n // Catch compile errors for async rendering\n try {\n this.compile();\n } catch (e) {\n const err = lib._prettifyError(this.path, this.env.opts.dev, e);\n if (cb) {\n return callbackAsap(cb, err);\n } else {\n throw err;\n }\n }\n\n const context = new Context(ctx || {}, this.blocks, this.env);\n const frame = parentFrame ? parentFrame.push(true) : new Frame();\n frame.topLevel = true;\n let syncResult = null;\n let didError = false;\n\n this.rootRenderFunc(this.env, context, frame, globalRuntime, (err, res) => {\n // TODO: this is actually a bug in the compiled template (because waterfall\n // tasks are both not passing errors up the chain of callbacks AND are not\n // causing a return from the top-most render function). But fixing that\n // will require a more substantial change to the compiler.\n if (didError && cb && typeof res !== 'undefined') {\n // prevent multiple calls to cb\n return;\n }\n\n if (err) {\n err = lib._prettifyError(this.path, this.env.opts.dev, err);\n didError = true;\n }\n\n if (cb) {\n if (forceAsync) {\n callbackAsap(cb, err, res);\n } else {\n cb(err, res);\n }\n } else {\n if (err) {\n throw err;\n }\n syncResult = res;\n }\n });\n\n return syncResult;\n }\n\n\n getExported(ctx, parentFrame, cb) { // eslint-disable-line consistent-return\n if (typeof ctx === 'function') {\n cb = ctx;\n ctx = {};\n }\n\n if (typeof parentFrame === 'function') {\n cb = parentFrame;\n parentFrame = null;\n }\n\n // Catch compile errors for async rendering\n try {\n this.compile();\n } catch (e) {\n if (cb) {\n return cb(e);\n } else {\n throw e;\n }\n }\n\n const frame = parentFrame ? parentFrame.push() : new Frame();\n frame.topLevel = true;\n\n // Run the rootRenderFunc to populate the context with exported vars\n const context = new Context(ctx || {}, this.blocks, this.env);\n this.rootRenderFunc(this.env, context, frame, globalRuntime, (err) => {\n if (err) {\n cb(err, null);\n } else {\n cb(null, context.getExported());\n }\n });\n }\n\n compile() {\n if (!this.compiled) {\n this._compile();\n }\n }\n\n _compile() {\n var props;\n\n if (this.tmplProps) {\n props = this.tmplProps;\n } else {\n const source = compiler.compile(this.tmplStr,\n this.env.asyncFilters,\n this.env.extensionsList,\n this.path,\n this.env.opts);\n\n const func = new Function(source); // eslint-disable-line no-new-func\n props = func();\n }\n\n this.blocks = this._getBlocks(props);\n this.rootRenderFunc = props.root;\n this.compiled = true;\n }\n\n _getBlocks(props) {\n var blocks = {};\n\n lib.keys(props).forEach((k) => {\n if (k.slice(0, 2) === 'b_') {\n blocks[k.slice(2)] = props[k];\n }\n });\n\n return blocks;\n }\n}\n\nmodule.exports = {\n Environment: Environment,\n Template: Template\n};\n\n\n\n// WEBPACK FOOTER //\n// ./nunjucks/src/environment.js","'use strict';\n\nvar lexer = require('./lexer');\nvar nodes = require('./nodes');\nvar Obj = require('./object').Obj;\nvar lib = require('./lib');\n\nclass Parser extends Obj {\n init(tokens) {\n this.tokens = tokens;\n this.peeked = null;\n this.breakOnBlocks = null;\n this.dropLeadingWhitespace = false;\n\n this.extensions = [];\n }\n\n nextToken(withWhitespace) {\n var tok;\n\n if (this.peeked) {\n if (!withWhitespace && this.peeked.type === lexer.TOKEN_WHITESPACE) {\n this.peeked = null;\n } else {\n tok = this.peeked;\n this.peeked = null;\n return tok;\n }\n }\n\n tok = this.tokens.nextToken();\n\n if (!withWhitespace) {\n while (tok && tok.type === lexer.TOKEN_WHITESPACE) {\n tok = this.tokens.nextToken();\n }\n }\n\n return tok;\n }\n\n peekToken() {\n this.peeked = this.peeked || this.nextToken();\n return this.peeked;\n }\n\n pushToken(tok) {\n if (this.peeked) {\n throw new Error('pushToken: can only push one token on between reads');\n }\n this.peeked = tok;\n }\n\n error(msg, lineno, colno) {\n if (lineno === undefined || colno === undefined) {\n const tok = this.peekToken() || {};\n lineno = tok.lineno;\n colno = tok.colno;\n }\n if (lineno !== undefined) {\n lineno += 1;\n }\n if (colno !== undefined) {\n colno += 1;\n }\n return new lib.TemplateError(msg, lineno, colno);\n }\n\n fail(msg, lineno, colno) {\n throw this.error(msg, lineno, colno);\n }\n\n skip(type) {\n var tok = this.nextToken();\n if (!tok || tok.type !== type) {\n this.pushToken(tok);\n return false;\n }\n return true;\n }\n\n expect(type) {\n var tok = this.nextToken();\n if (tok.type !== type) {\n this.fail('expected ' + type + ', got ' + tok.type,\n tok.lineno,\n tok.colno);\n }\n return tok;\n }\n\n skipValue(type, val) {\n var tok = this.nextToken();\n if (!tok || tok.type !== type || tok.value !== val) {\n this.pushToken(tok);\n return false;\n }\n return true;\n }\n\n skipSymbol(val) {\n return this.skipValue(lexer.TOKEN_SYMBOL, val);\n }\n\n advanceAfterBlockEnd(name) {\n var tok;\n if (!name) {\n tok = this.peekToken();\n\n if (!tok) {\n this.fail('unexpected end of file');\n }\n\n if (tok.type !== lexer.TOKEN_SYMBOL) {\n this.fail('advanceAfterBlockEnd: expected symbol token or ' +\n 'explicit name to be passed');\n }\n\n name = this.nextToken().value;\n }\n\n tok = this.nextToken();\n\n if (tok && tok.type === lexer.TOKEN_BLOCK_END) {\n if (tok.value.charAt(0) === '-') {\n this.dropLeadingWhitespace = true;\n }\n } else {\n this.fail('expected block end in ' + name + ' statement');\n }\n\n return tok;\n }\n\n advanceAfterVariableEnd() {\n var tok = this.nextToken();\n\n if (tok && tok.type === lexer.TOKEN_VARIABLE_END) {\n this.dropLeadingWhitespace = tok.value.charAt(\n tok.value.length - this.tokens.tags.VARIABLE_END.length - 1\n ) === '-';\n } else {\n this.pushToken(tok);\n this.fail('expected variable end');\n }\n }\n\n parseFor() {\n var forTok = this.peekToken();\n var node;\n var endBlock;\n\n if (this.skipSymbol('for')) {\n node = new nodes.For(forTok.lineno, forTok.colno);\n endBlock = 'endfor';\n } else if (this.skipSymbol('asyncEach')) {\n node = new nodes.AsyncEach(forTok.lineno, forTok.colno);\n endBlock = 'endeach';\n } else if (this.skipSymbol('asyncAll')) {\n node = new nodes.AsyncAll(forTok.lineno, forTok.colno);\n endBlock = 'endall';\n } else {\n this.fail('parseFor: expected for{Async}', forTok.lineno, forTok.colno);\n }\n\n node.name = this.parsePrimary();\n\n if (!(node.name instanceof nodes.Symbol)) {\n this.fail('parseFor: variable name expected for loop');\n }\n\n const type = this.peekToken().type;\n if (type === lexer.TOKEN_COMMA) {\n // key/value iteration\n const key = node.name;\n node.name = new nodes.Array(key.lineno, key.colno);\n node.name.addChild(key);\n\n while (this.skip(lexer.TOKEN_COMMA)) {\n const prim = this.parsePrimary();\n node.name.addChild(prim);\n }\n }\n\n if (!this.skipSymbol('in')) {\n this.fail('parseFor: expected \"in\" keyword for loop',\n forTok.lineno,\n forTok.colno);\n }\n\n node.arr = this.parseExpression();\n this.advanceAfterBlockEnd(forTok.value);\n\n node.body = this.parseUntilBlocks(endBlock, 'else');\n\n if (this.skipSymbol('else')) {\n this.advanceAfterBlockEnd('else');\n node.else_ = this.parseUntilBlocks(endBlock);\n }\n\n this.advanceAfterBlockEnd();\n\n return node;\n }\n\n parseMacro() {\n const macroTok = this.peekToken();\n if (!this.skipSymbol('macro')) {\n this.fail('expected macro');\n }\n\n const name = this.parsePrimary(true);\n const args = this.parseSignature();\n const node = new nodes.Macro(macroTok.lineno, macroTok.colno, name, args);\n\n this.advanceAfterBlockEnd(macroTok.value);\n node.body = this.parseUntilBlocks('endmacro');\n this.advanceAfterBlockEnd();\n\n return node;\n }\n\n parseCall() {\n // a call block is parsed as a normal FunCall, but with an added\n // 'caller' kwarg which is a Caller node.\n var callTok = this.peekToken();\n if (!this.skipSymbol('call')) {\n this.fail('expected call');\n }\n\n const callerArgs = this.parseSignature(true) || new nodes.NodeList();\n const macroCall = this.parsePrimary();\n\n this.advanceAfterBlockEnd(callTok.value);\n const body = this.parseUntilBlocks('endcall');\n this.advanceAfterBlockEnd();\n\n const callerName = new nodes.Symbol(callTok.lineno,\n callTok.colno,\n 'caller');\n const callerNode = new nodes.Caller(callTok.lineno,\n callTok.colno,\n callerName,\n callerArgs,\n body);\n\n // add the additional caller kwarg, adding kwargs if necessary\n const args = macroCall.args.children;\n if (!(args[args.length - 1] instanceof nodes.KeywordArgs)) {\n args.push(new nodes.KeywordArgs());\n }\n const kwargs = args[args.length - 1];\n kwargs.addChild(new nodes.Pair(callTok.lineno,\n callTok.colno,\n callerName,\n callerNode));\n\n return new nodes.Output(callTok.lineno,\n callTok.colno,\n [macroCall]);\n }\n\n parseWithContext() {\n var tok = this.peekToken();\n\n var withContext = null;\n\n if (this.skipSymbol('with')) {\n withContext = true;\n } else if (this.skipSymbol('without')) {\n withContext = false;\n }\n\n if (withContext !== null) {\n if (!this.skipSymbol('context')) {\n this.fail('parseFrom: expected context after with/without',\n tok.lineno,\n tok.colno);\n }\n }\n\n return withContext;\n }\n\n parseImport() {\n var importTok = this.peekToken();\n if (!this.skipSymbol('import')) {\n this.fail('parseImport: expected import',\n importTok.lineno,\n importTok.colno);\n }\n\n const template = this.parseExpression();\n\n if (!this.skipSymbol('as')) {\n this.fail('parseImport: expected \"as\" keyword',\n importTok.lineno,\n importTok.colno);\n }\n\n const target = this.parseExpression();\n const withContext = this.parseWithContext();\n const node = new nodes.Import(importTok.lineno,\n importTok.colno,\n template,\n target,\n withContext);\n\n this.advanceAfterBlockEnd(importTok.value);\n\n return node;\n }\n\n parseFrom() {\n const fromTok = this.peekToken();\n if (!this.skipSymbol('from')) {\n this.fail('parseFrom: expected from');\n }\n\n const template = this.parseExpression();\n\n if (!this.skipSymbol('import')) {\n this.fail('parseFrom: expected import',\n fromTok.lineno,\n fromTok.colno);\n }\n\n const names = new nodes.NodeList();\n let withContext;\n\n while (1) { // eslint-disable-line no-constant-condition\n const nextTok = this.peekToken();\n if (nextTok.type === lexer.TOKEN_BLOCK_END) {\n if (!names.children.length) {\n this.fail('parseFrom: Expected at least one import name',\n fromTok.lineno,\n fromTok.colno);\n }\n\n // Since we are manually advancing past the block end,\n // need to keep track of whitespace control (normally\n // this is done in `advanceAfterBlockEnd`\n if (nextTok.value.charAt(0) === '-') {\n this.dropLeadingWhitespace = true;\n }\n\n this.nextToken();\n break;\n }\n\n if (names.children.length > 0 && !this.skip(lexer.TOKEN_COMMA)) {\n this.fail('parseFrom: expected comma',\n fromTok.lineno,\n fromTok.colno);\n }\n\n const name = this.parsePrimary();\n if (name.value.charAt(0) === '_') {\n this.fail('parseFrom: names starting with an underscore cannot be imported',\n name.lineno,\n name.colno);\n }\n\n if (this.skipSymbol('as')) {\n const alias = this.parsePrimary();\n names.addChild(new nodes.Pair(name.lineno,\n name.colno,\n name,\n alias));\n } else {\n names.addChild(name);\n }\n\n withContext = this.parseWithContext();\n }\n\n return new nodes.FromImport(fromTok.lineno,\n fromTok.colno,\n template,\n names,\n withContext);\n }\n\n parseBlock() {\n const tag = this.peekToken();\n if (!this.skipSymbol('block')) {\n this.fail('parseBlock: expected block', tag.lineno, tag.colno);\n }\n\n const node = new nodes.Block(tag.lineno, tag.colno);\n\n node.name = this.parsePrimary();\n if (!(node.name instanceof nodes.Symbol)) {\n this.fail('parseBlock: variable name expected',\n tag.lineno,\n tag.colno);\n }\n\n this.advanceAfterBlockEnd(tag.value);\n\n node.body = this.parseUntilBlocks('endblock');\n this.skipSymbol('endblock');\n this.skipSymbol(node.name.value);\n\n const tok = this.peekToken();\n if (!tok) {\n this.fail('parseBlock: expected endblock, got end of file');\n }\n\n this.advanceAfterBlockEnd(tok.value);\n\n return node;\n }\n\n parseExtends() {\n const tagName = 'extends';\n const tag = this.peekToken();\n if (!this.skipSymbol(tagName)) {\n this.fail('parseTemplateRef: expected ' + tagName);\n }\n\n const node = new nodes.Extends(tag.lineno, tag.colno);\n node.template = this.parseExpression();\n\n this.advanceAfterBlockEnd(tag.value);\n return node;\n }\n\n parseInclude() {\n const tagName = 'include';\n const tag = this.peekToken();\n if (!this.skipSymbol(tagName)) {\n this.fail('parseInclude: expected ' + tagName);\n }\n\n const node = new nodes.Include(tag.lineno, tag.colno);\n node.template = this.parseExpression();\n\n if (this.skipSymbol('ignore') && this.skipSymbol('missing')) {\n node.ignoreMissing = true;\n }\n\n this.advanceAfterBlockEnd(tag.value);\n return node;\n }\n\n parseIf() {\n const tag = this.peekToken();\n let node;\n\n if (this.skipSymbol('if') || this.skipSymbol('elif') || this.skipSymbol('elseif')) {\n node = new nodes.If(tag.lineno, tag.colno);\n } else if (this.skipSymbol('ifAsync')) {\n node = new nodes.IfAsync(tag.lineno, tag.colno);\n } else {\n this.fail('parseIf: expected if, elif, or elseif',\n tag.lineno,\n tag.colno);\n }\n\n node.cond = this.parseExpression();\n this.advanceAfterBlockEnd(tag.value);\n\n node.body = this.parseUntilBlocks('elif', 'elseif', 'else', 'endif');\n const tok = this.peekToken();\n\n switch (tok && tok.value) {\n case 'elseif':\n case 'elif':\n node.else_ = this.parseIf();\n break;\n case 'else':\n this.advanceAfterBlockEnd();\n node.else_ = this.parseUntilBlocks('endif');\n this.advanceAfterBlockEnd();\n break;\n case 'endif':\n node.else_ = null;\n this.advanceAfterBlockEnd();\n break;\n default:\n this.fail('parseIf: expected elif, else, or endif, got end of file');\n }\n\n return node;\n }\n\n parseSet() {\n const tag = this.peekToken();\n if (!this.skipSymbol('set')) {\n this.fail('parseSet: expected set', tag.lineno, tag.colno);\n }\n\n const node = new nodes.Set(tag.lineno, tag.colno, []);\n\n let target;\n while ((target = this.parsePrimary())) {\n node.targets.push(target);\n\n if (!this.skip(lexer.TOKEN_COMMA)) {\n break;\n }\n }\n\n if (!this.skipValue(lexer.TOKEN_OPERATOR, '=')) {\n if (!this.skip(lexer.TOKEN_BLOCK_END)) {\n this.fail('parseSet: expected = or block end in set tag',\n tag.lineno,\n tag.colno);\n } else {\n node.body = new nodes.Capture(\n tag.lineno,\n tag.colno,\n this.parseUntilBlocks('endset')\n );\n node.value = null;\n this.advanceAfterBlockEnd();\n }\n } else {\n node.value = this.parseExpression();\n this.advanceAfterBlockEnd(tag.value);\n }\n\n return node;\n }\n\n parseSwitch() {\n /*\n * Store the tag names in variables in case someone ever wants to\n * customize this.\n */\n const switchStart = 'switch';\n const switchEnd = 'endswitch';\n const caseStart = 'case';\n const caseDefault = 'default';\n\n // Get the switch tag.\n const tag = this.peekToken();\n\n // fail early if we get some unexpected tag.\n if (\n !this.skipSymbol(switchStart)\n && !this.skipSymbol(caseStart)\n && !this.skipSymbol(caseDefault)\n ) {\n this.fail('parseSwitch: expected \"switch,\" \"case\" or \"default\"', tag.lineno, tag.colno);\n }\n\n // parse the switch expression\n const expr = this.parseExpression();\n\n // advance until a start of a case, a default case or an endswitch.\n this.advanceAfterBlockEnd(switchStart);\n this.parseUntilBlocks(caseStart, caseDefault, switchEnd);\n\n // this is the first case. it could also be an endswitch, we'll check.\n let tok = this.peekToken();\n\n // create new variables for our cases and default case.\n const cases = [];\n let defaultCase;\n\n // while we're dealing with new cases nodes...\n do {\n // skip the start symbol and get the case expression\n this.skipSymbol(caseStart);\n const cond = this.parseExpression();\n this.advanceAfterBlockEnd(switchStart);\n // get the body of the case node and add it to the array of cases.\n const body = this.parseUntilBlocks(caseStart, caseDefault, switchEnd);\n cases.push(new nodes.Case(tok.line, tok.col, cond, body));\n // get our next case\n tok = this.peekToken();\n } while (tok && tok.value === caseStart);\n\n // we either have a default case or a switch end.\n switch (tok.value) {\n case caseDefault:\n this.advanceAfterBlockEnd();\n defaultCase = this.parseUntilBlocks(switchEnd);\n this.advanceAfterBlockEnd();\n break;\n case switchEnd:\n this.advanceAfterBlockEnd();\n break;\n default:\n // otherwise bail because EOF\n this.fail('parseSwitch: expected \"case,\" \"default\" or \"endswitch,\" got EOF.');\n }\n\n // and return the switch node.\n return new nodes.Switch(tag.lineno, tag.colno, expr, cases, defaultCase);\n }\n\n parseStatement() {\n var tok = this.peekToken();\n var node;\n\n if (tok.type !== lexer.TOKEN_SYMBOL) {\n this.fail('tag name expected', tok.lineno, tok.colno);\n }\n\n if (this.breakOnBlocks &&\n lib.indexOf(this.breakOnBlocks, tok.value) !== -1) {\n return null;\n }\n\n switch (tok.value) {\n case 'raw':\n return this.parseRaw();\n case 'verbatim':\n return this.parseRaw('verbatim');\n case 'if':\n case 'ifAsync':\n return this.parseIf();\n case 'for':\n case 'asyncEach':\n case 'asyncAll':\n return this.parseFor();\n case 'block':\n return this.parseBlock();\n case 'extends':\n return this.parseExtends();\n case 'include':\n return this.parseInclude();\n case 'set':\n return this.parseSet();\n case 'macro':\n return this.parseMacro();\n case 'call':\n return this.parseCall();\n case 'import':\n return this.parseImport();\n case 'from':\n return this.parseFrom();\n case 'filter':\n return this.parseFilterStatement();\n case 'switch':\n return this.parseSwitch();\n default:\n if (this.extensions.length) {\n for (let i = 0; i < this.extensions.length; i++) {\n const ext = this.extensions[i];\n if (lib.indexOf(ext.tags || [], tok.value) !== -1) {\n return ext.parse(this, nodes, lexer);\n }\n }\n }\n this.fail('unknown block tag: ' + tok.value, tok.lineno, tok.colno);\n }\n\n return node;\n }\n\n parseRaw(tagName) {\n tagName = tagName || 'raw';\n const endTagName = 'end' + tagName;\n // Look for upcoming raw blocks (ignore all other kinds of blocks)\n const rawBlockRegex = new RegExp('([\\\\s\\\\S]*?){%\\\\s*(' + tagName + '|' + endTagName + ')\\\\s*(?=%})%}');\n let rawLevel = 1;\n let str = '';\n let matches = null;\n\n // Skip opening raw token\n // Keep this token to track line and column numbers\n const begun = this.advanceAfterBlockEnd();\n\n // Exit when there's nothing to match\n // or when we've found the matching \"endraw\" block\n while ((matches = this.tokens._extractRegex(rawBlockRegex)) && rawLevel > 0) {\n const all = matches[0];\n const pre = matches[1];\n const blockName = matches[2];\n\n // Adjust rawlevel\n if (blockName === tagName) {\n rawLevel += 1;\n } else if (blockName === endTagName) {\n rawLevel -= 1;\n }\n\n // Add to str\n if (rawLevel === 0) {\n // We want to exclude the last \"endraw\"\n str += pre;\n // Move tokenizer to beginning of endraw block\n this.tokens.backN(all.length - pre.length);\n } else {\n str += all;\n }\n }\n\n return new nodes.Output(\n begun.lineno,\n begun.colno,\n [new nodes.TemplateData(begun.lineno, begun.colno, str)]\n );\n }\n\n parsePostfix(node) {\n let lookup;\n let tok = this.peekToken();\n\n while (tok) {\n if (tok.type === lexer.TOKEN_LEFT_PAREN) {\n // Function call\n node = new nodes.FunCall(tok.lineno,\n tok.colno,\n node,\n this.parseSignature());\n } else if (tok.type === lexer.TOKEN_LEFT_BRACKET) {\n // Reference\n lookup = this.parseAggregate();\n if (lookup.children.length > 1) {\n this.fail('invalid index');\n }\n\n node = new nodes.LookupVal(tok.lineno,\n tok.colno,\n node,\n lookup.children[0]);\n } else if (tok.type === lexer.TOKEN_OPERATOR && tok.value === '.') {\n // Reference\n this.nextToken();\n const val = this.nextToken();\n\n if (val.type !== lexer.TOKEN_SYMBOL) {\n this.fail('expected name as lookup value, got ' + val.value,\n val.lineno,\n val.colno);\n }\n\n // Make a literal string because it's not a variable\n // reference\n lookup = new nodes.Literal(val.lineno,\n val.colno,\n val.value);\n\n node = new nodes.LookupVal(tok.lineno,\n tok.colno,\n node,\n lookup);\n } else {\n break;\n }\n\n tok = this.peekToken();\n }\n\n return node;\n }\n\n parseExpression() {\n var node = this.parseInlineIf();\n return node;\n }\n\n parseInlineIf() {\n let node = this.parseOr();\n if (this.skipSymbol('if')) {\n const condNode = this.parseOr();\n const bodyNode = node;\n node = new nodes.InlineIf(node.lineno, node.colno);\n node.body = bodyNode;\n node.cond = condNode;\n if (this.skipSymbol('else')) {\n node.else_ = this.parseOr();\n } else {\n node.else_ = null;\n }\n }\n\n return node;\n }\n\n parseOr() {\n let node = this.parseAnd();\n while (this.skipSymbol('or')) {\n const node2 = this.parseAnd();\n node = new nodes.Or(node.lineno,\n node.colno,\n node,\n node2);\n }\n return node;\n }\n\n parseAnd() {\n let node = this.parseNot();\n while (this.skipSymbol('and')) {\n const node2 = this.parseNot();\n node = new nodes.And(node.lineno,\n node.colno,\n node,\n node2);\n }\n return node;\n }\n\n parseNot() {\n const tok = this.peekToken();\n if (this.skipSymbol('not')) {\n return new nodes.Not(tok.lineno,\n tok.colno,\n this.parseNot());\n }\n return this.parseIn();\n }\n\n parseIn() {\n let node = this.parseIs();\n while (1) { // eslint-disable-line no-constant-condition\n // check if the next token is 'not'\n const tok = this.nextToken();\n if (!tok) {\n break;\n }\n const invert = tok.type === lexer.TOKEN_SYMBOL && tok.value === 'not';\n // if it wasn't 'not', put it back\n if (!invert) {\n this.pushToken(tok);\n }\n if (this.skipSymbol('in')) {\n const node2 = this.parseIs();\n node = new nodes.In(node.lineno,\n node.colno,\n node,\n node2);\n if (invert) {\n node = new nodes.Not(node.lineno,\n node.colno,\n node);\n }\n } else {\n // if we'd found a 'not' but this wasn't an 'in', put back the 'not'\n if (invert) {\n this.pushToken(tok);\n }\n break;\n }\n }\n return node;\n }\n\n // I put this right after \"in\" in the operator precedence stack. That can\n // obviously be changed to be closer to Jinja.\n parseIs() {\n let node = this.parseCompare();\n // look for an is\n if (this.skipSymbol('is')) {\n // look for a not\n const not = this.skipSymbol('not');\n // get the next node\n const node2 = this.parseCompare();\n // create an Is node using the next node and the info from our Is node.\n node = new nodes.Is(node.lineno, node.colno, node, node2);\n // if we have a Not, create a Not node from our Is node.\n if (not) {\n node = new nodes.Not(node.lineno, node.colno, node);\n }\n }\n // return the node.\n return node;\n }\n\n parseCompare() {\n const compareOps = ['==', '===', '!=', '!==', '<', '>', '<=', '>='];\n const expr = this.parseConcat();\n const ops = [];\n\n while (1) { // eslint-disable-line no-constant-condition\n const tok = this.nextToken();\n\n if (!tok) {\n break;\n } else if (compareOps.indexOf(tok.value) !== -1) {\n ops.push(new nodes.CompareOperand(tok.lineno,\n tok.colno,\n this.parseConcat(),\n tok.value));\n } else {\n this.pushToken(tok);\n break;\n }\n }\n\n if (ops.length) {\n return new nodes.Compare(ops[0].lineno,\n ops[0].colno,\n expr,\n ops);\n } else {\n return expr;\n }\n }\n\n // finds the '~' for string concatenation\n parseConcat() {\n let node = this.parseAdd();\n while (this.skipValue(lexer.TOKEN_TILDE, '~')) {\n const node2 = this.parseAdd();\n node = new nodes.Concat(node.lineno,\n node.colno,\n node,\n node2);\n }\n return node;\n }\n\n parseAdd() {\n let node = this.parseSub();\n while (this.skipValue(lexer.TOKEN_OPERATOR, '+')) {\n const node2 = this.parseSub();\n node = new nodes.Add(node.lineno,\n node.colno,\n node,\n node2);\n }\n return node;\n }\n\n parseSub() {\n let node = this.parseMul();\n while (this.skipValue(lexer.TOKEN_OPERATOR, '-')) {\n const node2 = this.parseMul();\n node = new nodes.Sub(node.lineno,\n node.colno,\n node,\n node2);\n }\n return node;\n }\n\n parseMul() {\n let node = this.parseDiv();\n while (this.skipValue(lexer.TOKEN_OPERATOR, '*')) {\n const node2 = this.parseDiv();\n node = new nodes.Mul(node.lineno,\n node.colno,\n node,\n node2);\n }\n return node;\n }\n\n parseDiv() {\n let node = this.parseFloorDiv();\n while (this.skipValue(lexer.TOKEN_OPERATOR, '/')) {\n const node2 = this.parseFloorDiv();\n node = new nodes.Div(node.lineno,\n node.colno,\n node,\n node2);\n }\n return node;\n }\n\n parseFloorDiv() {\n let node = this.parseMod();\n while (this.skipValue(lexer.TOKEN_OPERATOR, '//')) {\n const node2 = this.parseMod();\n node = new nodes.FloorDiv(node.lineno,\n node.colno,\n node,\n node2);\n }\n return node;\n }\n\n parseMod() {\n let node = this.parsePow();\n while (this.skipValue(lexer.TOKEN_OPERATOR, '%')) {\n const node2 = this.parsePow();\n node = new nodes.Mod(node.lineno,\n node.colno,\n node,\n node2);\n }\n return node;\n }\n\n parsePow() {\n let node = this.parseUnary();\n while (this.skipValue(lexer.TOKEN_OPERATOR, '**')) {\n const node2 = this.parseUnary();\n node = new nodes.Pow(node.lineno,\n node.colno,\n node,\n node2);\n }\n return node;\n }\n\n parseUnary(noFilters) {\n const tok = this.peekToken();\n let node;\n\n if (this.skipValue(lexer.TOKEN_OPERATOR, '-')) {\n node = new nodes.Neg(tok.lineno,\n tok.colno,\n this.parseUnary(true));\n } else if (this.skipValue(lexer.TOKEN_OPERATOR, '+')) {\n node = new nodes.Pos(tok.lineno,\n tok.colno,\n this.parseUnary(true));\n } else {\n node = this.parsePrimary();\n }\n\n if (!noFilters) {\n node = this.parseFilter(node);\n }\n\n return node;\n }\n\n parsePrimary(noPostfix) {\n const tok = this.nextToken();\n let val;\n let node = null;\n\n if (!tok) {\n this.fail('expected expression, got end of file');\n } else if (tok.type === lexer.TOKEN_STRING) {\n val = tok.value;\n } else if (tok.type === lexer.TOKEN_INT) {\n val = parseInt(tok.value, 10);\n } else if (tok.type === lexer.TOKEN_FLOAT) {\n val = parseFloat(tok.value);\n } else if (tok.type === lexer.TOKEN_BOOLEAN) {\n if (tok.value === 'true') {\n val = true;\n } else if (tok.value === 'false') {\n val = false;\n } else {\n this.fail('invalid boolean: ' + tok.value,\n tok.lineno,\n tok.colno);\n }\n } else if (tok.type === lexer.TOKEN_NONE) {\n val = null;\n } else if (tok.type === lexer.TOKEN_REGEX) {\n val = new RegExp(tok.value.body, tok.value.flags);\n }\n\n if (val !== undefined) {\n node = new nodes.Literal(tok.lineno, tok.colno, val);\n } else if (tok.type === lexer.TOKEN_SYMBOL) {\n node = new nodes.Symbol(tok.lineno, tok.colno, tok.value);\n } else {\n // See if it's an aggregate type, we need to push the\n // current delimiter token back on\n this.pushToken(tok);\n node = this.parseAggregate();\n }\n\n if (!noPostfix) {\n node = this.parsePostfix(node);\n }\n\n if (node) {\n return node;\n } else {\n throw this.error(`unexpected token: ${tok.value}`, tok.lineno, tok.colno);\n }\n }\n\n parseFilterName() {\n const tok = this.expect(lexer.TOKEN_SYMBOL);\n let name = tok.value;\n\n while (this.skipValue(lexer.TOKEN_OPERATOR, '.')) {\n name += '.' + this.expect(lexer.TOKEN_SYMBOL).value;\n }\n\n return new nodes.Symbol(tok.lineno, tok.colno, name);\n }\n\n parseFilterArgs(node) {\n if (this.peekToken().type === lexer.TOKEN_LEFT_PAREN) {\n // Get a FunCall node and add the parameters to the\n // filter\n const call = this.parsePostfix(node);\n return call.args.children;\n }\n return [];\n }\n\n parseFilter(node) {\n while (this.skip(lexer.TOKEN_PIPE)) {\n const name = this.parseFilterName();\n\n node = new nodes.Filter(\n name.lineno,\n name.colno,\n name,\n new nodes.NodeList(\n name.lineno,\n name.colno,\n [node].concat(this.parseFilterArgs(node))\n )\n );\n }\n\n return node;\n }\n\n parseFilterStatement() {\n var filterTok = this.peekToken();\n if (!this.skipSymbol('filter')) {\n this.fail('parseFilterStatement: expected filter');\n }\n\n const name = this.parseFilterName();\n const args = this.parseFilterArgs(name);\n\n this.advanceAfterBlockEnd(filterTok.value);\n const body = new nodes.Capture(\n name.lineno,\n name.colno,\n this.parseUntilBlocks('endfilter')\n );\n this.advanceAfterBlockEnd();\n\n const node = new nodes.Filter(\n name.lineno,\n name.colno,\n name,\n new nodes.NodeList(\n name.lineno,\n name.colno,\n [body].concat(args)\n )\n );\n\n return new nodes.Output(\n name.lineno,\n name.colno,\n [node]\n );\n }\n\n parseAggregate() {\n var tok = this.nextToken();\n var node;\n\n switch (tok.type) {\n case lexer.TOKEN_LEFT_PAREN:\n node = new nodes.Group(tok.lineno, tok.colno);\n break;\n case lexer.TOKEN_LEFT_BRACKET:\n node = new nodes.Array(tok.lineno, tok.colno);\n break;\n case lexer.TOKEN_LEFT_CURLY:\n node = new nodes.Dict(tok.lineno, tok.colno);\n break;\n default:\n return null;\n }\n\n while (1) { // eslint-disable-line no-constant-condition\n const type = this.peekToken().type;\n if (type === lexer.TOKEN_RIGHT_PAREN ||\n type === lexer.TOKEN_RIGHT_BRACKET ||\n type === lexer.TOKEN_RIGHT_CURLY) {\n this.nextToken();\n break;\n }\n\n if (node.children.length > 0) {\n if (!this.skip(lexer.TOKEN_COMMA)) {\n this.fail('parseAggregate: expected comma after expression',\n tok.lineno,\n tok.colno);\n }\n }\n\n if (node instanceof nodes.Dict) {\n // TODO: check for errors\n const key = this.parsePrimary();\n\n // We expect a key/value pair for dicts, separated by a\n // colon\n if (!this.skip(lexer.TOKEN_COLON)) {\n this.fail('parseAggregate: expected colon after dict key',\n tok.lineno,\n tok.colno);\n }\n\n // TODO: check for errors\n const value = this.parseExpression();\n node.addChild(new nodes.Pair(key.lineno,\n key.colno,\n key,\n value));\n } else {\n // TODO: check for errors\n const expr = this.parseExpression();\n node.addChild(expr);\n }\n }\n\n return node;\n }\n\n parseSignature(tolerant, noParens) {\n let tok = this.peekToken();\n if (!noParens && tok.type !== lexer.TOKEN_LEFT_PAREN) {\n if (tolerant) {\n return null;\n } else {\n this.fail('expected arguments', tok.lineno, tok.colno);\n }\n }\n\n if (tok.type === lexer.TOKEN_LEFT_PAREN) {\n tok = this.nextToken();\n }\n\n const args = new nodes.NodeList(tok.lineno, tok.colno);\n const kwargs = new nodes.KeywordArgs(tok.lineno, tok.colno);\n let checkComma = false;\n\n while (1) { // eslint-disable-line no-constant-condition\n tok = this.peekToken();\n if (!noParens && tok.type === lexer.TOKEN_RIGHT_PAREN) {\n this.nextToken();\n break;\n } else if (noParens && tok.type === lexer.TOKEN_BLOCK_END) {\n break;\n }\n\n if (checkComma && !this.skip(lexer.TOKEN_COMMA)) {\n this.fail('parseSignature: expected comma after expression',\n tok.lineno,\n tok.colno);\n } else {\n const arg = this.parseExpression();\n\n if (this.skipValue(lexer.TOKEN_OPERATOR, '=')) {\n kwargs.addChild(\n new nodes.Pair(arg.lineno,\n arg.colno,\n arg,\n this.parseExpression())\n );\n } else {\n args.addChild(arg);\n }\n }\n\n checkComma = true;\n }\n\n if (kwargs.children.length) {\n args.addChild(kwargs);\n }\n\n return args;\n }\n\n parseUntilBlocks(...blockNames) {\n const prev = this.breakOnBlocks;\n this.breakOnBlocks = blockNames;\n\n const ret = this.parse();\n\n this.breakOnBlocks = prev;\n return ret;\n }\n\n parseNodes() {\n let tok;\n const buf = [];\n\n while ((tok = this.nextToken())) {\n if (tok.type === lexer.TOKEN_DATA) {\n let data = tok.value;\n const nextToken = this.peekToken();\n const nextVal = nextToken && nextToken.value;\n\n // If the last token has \"-\" we need to trim the\n // leading whitespace of the data. This is marked with\n // the `dropLeadingWhitespace` variable.\n if (this.dropLeadingWhitespace) {\n // TODO: this could be optimized (don't use regex)\n data = data.replace(/^\\s*/, '');\n this.dropLeadingWhitespace = false;\n }\n\n // Same for the succeeding block start token\n if (nextToken &&\n ((nextToken.type === lexer.TOKEN_BLOCK_START &&\n nextVal.charAt(nextVal.length - 1) === '-') ||\n (nextToken.type === lexer.TOKEN_VARIABLE_START &&\n nextVal.charAt(this.tokens.tags.VARIABLE_START.length)\n === '-') ||\n (nextToken.type === lexer.TOKEN_COMMENT &&\n nextVal.charAt(this.tokens.tags.COMMENT_START.length)\n === '-'))) {\n // TODO: this could be optimized (don't use regex)\n data = data.replace(/\\s*$/, '');\n }\n\n buf.push(new nodes.Output(tok.lineno,\n tok.colno,\n [new nodes.TemplateData(tok.lineno,\n tok.colno,\n data)]));\n } else if (tok.type === lexer.TOKEN_BLOCK_START) {\n this.dropLeadingWhitespace = false;\n const n = this.parseStatement();\n if (!n) {\n break;\n }\n buf.push(n);\n } else if (tok.type === lexer.TOKEN_VARIABLE_START) {\n const e = this.parseExpression();\n this.dropLeadingWhitespace = false;\n this.advanceAfterVariableEnd();\n buf.push(new nodes.Output(tok.lineno, tok.colno, [e]));\n } else if (tok.type === lexer.TOKEN_COMMENT) {\n this.dropLeadingWhitespace = tok.value.charAt(\n tok.value.length - this.tokens.tags.COMMENT_END.length - 1\n ) === '-';\n } else {\n // Ignore comments, otherwise this should be an error\n this.fail('Unexpected token at top-level: ' +\n tok.type, tok.lineno, tok.colno);\n }\n }\n\n return buf;\n }\n\n parse() {\n return new nodes.NodeList(0, 0, this.parseNodes());\n }\n\n parseAsRoot() {\n return new nodes.Root(0, 0, this.parseNodes());\n }\n}\n\n// var util = require('util');\n\n// var l = lexer.lex('{%- if x -%}\\n hello {% endif %}');\n// var t;\n// while((t = l.nextToken())) {\n// console.log(util.inspect(t));\n// }\n\n// var p = new Parser(lexer.lex('hello {% filter title %}' +\n// 'Hello madam how are you' +\n// '{% endfilter %}'));\n// var n = p.parseAsRoot();\n// nodes.printNodes(n);\n\nmodule.exports = {\n parse(src, extensions, opts) {\n var p = new Parser(lexer.lex(src, opts));\n if (extensions !== undefined) {\n p.extensions = extensions;\n }\n return p.parseAsRoot();\n },\n Parser: Parser\n};\n\n\n\n// WEBPACK FOOTER //\n// ./nunjucks/src/parser.js","'use strict';\n\nconst lib = require('./lib');\n\nlet whitespaceChars = ' \\n\\t\\r\\u00A0';\nlet delimChars = '()[]{}%*-+~/#,:|.<>=!';\nlet intChars = '0123456789';\n\nlet BLOCK_START = '{%';\nlet BLOCK_END = '%}';\nlet VARIABLE_START = '{{';\nlet VARIABLE_END = '}}';\nlet COMMENT_START = '{#';\nlet COMMENT_END = '#}';\n\nlet TOKEN_STRING = 'string';\nlet TOKEN_WHITESPACE = 'whitespace';\nlet TOKEN_DATA = 'data';\nlet TOKEN_BLOCK_START = 'block-start';\nlet TOKEN_BLOCK_END = 'block-end';\nlet TOKEN_VARIABLE_START = 'variable-start';\nlet TOKEN_VARIABLE_END = 'variable-end';\nlet TOKEN_COMMENT = 'comment';\nlet TOKEN_LEFT_PAREN = 'left-paren';\nlet TOKEN_RIGHT_PAREN = 'right-paren';\nlet TOKEN_LEFT_BRACKET = 'left-bracket';\nlet TOKEN_RIGHT_BRACKET = 'right-bracket';\nlet TOKEN_LEFT_CURLY = 'left-curly';\nlet TOKEN_RIGHT_CURLY = 'right-curly';\nlet TOKEN_OPERATOR = 'operator';\nlet TOKEN_COMMA = 'comma';\nlet TOKEN_COLON = 'colon';\nlet TOKEN_TILDE = 'tilde';\nlet TOKEN_PIPE = 'pipe';\nlet TOKEN_INT = 'int';\nlet TOKEN_FLOAT = 'float';\nlet TOKEN_BOOLEAN = 'boolean';\nlet TOKEN_NONE = 'none';\nlet TOKEN_SYMBOL = 'symbol';\nlet TOKEN_SPECIAL = 'special';\nlet TOKEN_REGEX = 'regex';\n\nfunction token(type, value, lineno, colno) {\n return {\n type: type,\n value: value,\n lineno: lineno,\n colno: colno\n };\n}\n\nclass Tokenizer {\n constructor(str, opts) {\n this.str = str;\n this.index = 0;\n this.len = str.length;\n this.lineno = 0;\n this.colno = 0;\n\n this.in_code = false;\n\n opts = opts || {};\n\n let tags = opts.tags || {};\n this.tags = {\n BLOCK_START: tags.blockStart || BLOCK_START,\n BLOCK_END: tags.blockEnd || BLOCK_END,\n VARIABLE_START: tags.variableStart || VARIABLE_START,\n VARIABLE_END: tags.variableEnd || VARIABLE_END,\n COMMENT_START: tags.commentStart || COMMENT_START,\n COMMENT_END: tags.commentEnd || COMMENT_END\n };\n\n this.trimBlocks = !!opts.trimBlocks;\n this.lstripBlocks = !!opts.lstripBlocks;\n }\n\n nextToken() {\n let lineno = this.lineno;\n let colno = this.colno;\n let tok;\n\n if (this.in_code) {\n // Otherwise, if we are in a block parse it as code\n let cur = this.current();\n\n if (this.isFinished()) {\n // We have nothing else to parse\n return null;\n } else if (cur === '\"' || cur === '\\'') {\n // We've hit a string\n return token(TOKEN_STRING, this._parseString(cur), lineno, colno);\n } else if ((tok = this._extract(whitespaceChars))) {\n // We hit some whitespace\n return token(TOKEN_WHITESPACE, tok, lineno, colno);\n } else if ((tok = this._extractString(this.tags.BLOCK_END)) ||\n (tok = this._extractString('-' + this.tags.BLOCK_END))) {\n // Special check for the block end tag\n //\n // It is a requirement that start and end tags are composed of\n // delimiter characters (%{}[] etc), and our code always\n // breaks on delimiters so we can assume the token parsing\n // doesn't consume these elsewhere\n this.in_code = false;\n if (this.trimBlocks) {\n cur = this.current();\n if (cur === '\\n') {\n // Skip newline\n this.forward();\n } else if (cur === '\\r') {\n // Skip CRLF newline\n this.forward();\n cur = this.current();\n if (cur === '\\n') {\n this.forward();\n } else {\n // Was not a CRLF, so go back\n this.back();\n }\n }\n }\n return token(TOKEN_BLOCK_END, tok, lineno, colno);\n } else if ((tok = this._extractString(this.tags.VARIABLE_END)) ||\n (tok = this._extractString('-' + this.tags.VARIABLE_END))) {\n // Special check for variable end tag (see above)\n this.in_code = false;\n return token(TOKEN_VARIABLE_END, tok, lineno, colno);\n } else if (cur === 'r' && this.str.charAt(this.index + 1) === '/') {\n // Skip past 'r/'.\n this.forwardN(2);\n\n // Extract until the end of the regex -- / ends it, \\/ does not.\n let regexBody = '';\n while (!this.isFinished()) {\n if (this.current() === '/' && this.previous() !== '\\\\') {\n this.forward();\n break;\n } else {\n regexBody += this.current();\n this.forward();\n }\n }\n\n // Check for flags.\n // The possible flags are according to https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/RegExp)\n let POSSIBLE_FLAGS = ['g', 'i', 'm', 'y'];\n let regexFlags = '';\n while (!this.isFinished()) {\n let isCurrentAFlag = POSSIBLE_FLAGS.indexOf(this.current()) !== -1;\n if (isCurrentAFlag) {\n regexFlags += this.current();\n this.forward();\n } else {\n break;\n }\n }\n\n return token(TOKEN_REGEX, {\n body: regexBody,\n flags: regexFlags\n }, lineno, colno);\n } else if (delimChars.indexOf(cur) !== -1) {\n // We've hit a delimiter (a special char like a bracket)\n this.forward();\n let complexOps = ['==', '===', '!=', '!==', '<=', '>=', '//', '**'];\n let curComplex = cur + this.current();\n let type;\n\n if (lib.indexOf(complexOps, curComplex) !== -1) {\n this.forward();\n cur = curComplex;\n\n // See if this is a strict equality/inequality comparator\n if (lib.indexOf(complexOps, curComplex + this.current()) !== -1) {\n cur = curComplex + this.current();\n this.forward();\n }\n }\n\n switch (cur) {\n case '(':\n type = TOKEN_LEFT_PAREN;\n break;\n case ')':\n type = TOKEN_RIGHT_PAREN;\n break;\n case '[':\n type = TOKEN_LEFT_BRACKET;\n break;\n case ']':\n type = TOKEN_RIGHT_BRACKET;\n break;\n case '{':\n type = TOKEN_LEFT_CURLY;\n break;\n case '}':\n type = TOKEN_RIGHT_CURLY;\n break;\n case ',':\n type = TOKEN_COMMA;\n break;\n case ':':\n type = TOKEN_COLON;\n break;\n case '~':\n type = TOKEN_TILDE;\n break;\n case '|':\n type = TOKEN_PIPE;\n break;\n default:\n type = TOKEN_OPERATOR;\n }\n\n return token(type, cur, lineno, colno);\n } else {\n // We are not at whitespace or a delimiter, so extract the\n // text and parse it\n tok = this._extractUntil(whitespaceChars + delimChars);\n\n if (tok.match(/^[-+]?[0-9]+$/)) {\n if (this.current() === '.') {\n this.forward();\n let dec = this._extract(intChars);\n return token(TOKEN_FLOAT, tok + '.' + dec, lineno, colno);\n } else {\n return token(TOKEN_INT, tok, lineno, colno);\n }\n } else if (tok.match(/^(true|false)$/)) {\n return token(TOKEN_BOOLEAN, tok, lineno, colno);\n } else if (tok === 'none') {\n return token(TOKEN_NONE, tok, lineno, colno);\n /*\n * Added to make the test `null is null` evaluate truthily.\n * Otherwise, Nunjucks will look up null in the context and\n * return `undefined`, which is not what we want. This *may* have\n * consequences is someone is using null in their templates as a\n * variable.\n */\n } else if (tok === 'null') {\n return token(TOKEN_NONE, tok, lineno, colno);\n } else if (tok) {\n return token(TOKEN_SYMBOL, tok, lineno, colno);\n } else {\n throw new Error('Unexpected value while parsing: ' + tok);\n }\n }\n } else {\n // Parse out the template text, breaking on tag\n // delimiters because we need to look for block/variable start\n // tags (don't use the full delimChars for optimization)\n let beginChars = (this.tags.BLOCK_START.charAt(0) +\n this.tags.VARIABLE_START.charAt(0) +\n this.tags.COMMENT_START.charAt(0) +\n this.tags.COMMENT_END.charAt(0));\n\n if (this.isFinished()) {\n return null;\n } else if ((tok = this._extractString(this.tags.BLOCK_START + '-')) ||\n (tok = this._extractString(this.tags.BLOCK_START))) {\n this.in_code = true;\n return token(TOKEN_BLOCK_START, tok, lineno, colno);\n } else if ((tok = this._extractString(this.tags.VARIABLE_START + '-')) ||\n (tok = this._extractString(this.tags.VARIABLE_START))) {\n this.in_code = true;\n return token(TOKEN_VARIABLE_START, tok, lineno, colno);\n } else {\n tok = '';\n let data;\n let inComment = false;\n\n if (this._matches(this.tags.COMMENT_START)) {\n inComment = true;\n tok = this._extractString(this.tags.COMMENT_START);\n }\n\n // Continually consume text, breaking on the tag delimiter\n // characters and checking to see if it's a start tag.\n //\n // We could hit the end of the template in the middle of\n // our looping, so check for the null return value from\n // _extractUntil\n while ((data = this._extractUntil(beginChars)) !== null) {\n tok += data;\n\n if ((this._matches(this.tags.BLOCK_START) ||\n this._matches(this.tags.VARIABLE_START) ||\n this._matches(this.tags.COMMENT_START)) &&\n !inComment) {\n if (this.lstripBlocks &&\n this._matches(this.tags.BLOCK_START) &&\n this.colno > 0 &&\n this.colno <= tok.length) {\n let lastLine = tok.slice(-this.colno);\n if (/^\\s+$/.test(lastLine)) {\n // Remove block leading whitespace from beginning of the string\n tok = tok.slice(0, -this.colno);\n if (!tok.length) {\n // All data removed, collapse to avoid unnecessary nodes\n // by returning next token (block start)\n return this.nextToken();\n }\n }\n }\n // If it is a start tag, stop looping\n break;\n } else if (this._matches(this.tags.COMMENT_END)) {\n if (!inComment) {\n throw new Error('unexpected end of comment');\n }\n tok += this._extractString(this.tags.COMMENT_END);\n break;\n } else {\n // It does not match any tag, so add the character and\n // carry on\n tok += this.current();\n this.forward();\n }\n }\n\n if (data === null && inComment) {\n throw new Error('expected end of comment, got end of file');\n }\n\n return token(inComment ? TOKEN_COMMENT : TOKEN_DATA,\n tok,\n lineno,\n colno);\n }\n }\n }\n\n _parseString(delimiter) {\n this.forward();\n\n let str = '';\n\n while (!this.isFinished() && this.current() !== delimiter) {\n let cur = this.current();\n\n if (cur === '\\\\') {\n this.forward();\n switch (this.current()) {\n case 'n':\n str += '\\n';\n break;\n case 't':\n str += '\\t';\n break;\n case 'r':\n str += '\\r';\n break;\n default:\n str += this.current();\n }\n this.forward();\n } else {\n str += cur;\n this.forward();\n }\n }\n\n this.forward();\n return str;\n }\n\n _matches(str) {\n if (this.index + str.length > this.len) {\n return null;\n }\n\n let m = this.str.slice(this.index, this.index + str.length);\n return m === str;\n }\n\n _extractString(str) {\n if (this._matches(str)) {\n this.forwardN(str.length);\n return str;\n }\n return null;\n }\n\n _extractUntil(charString) {\n // Extract all non-matching chars, with the default matching set\n // to everything\n return this._extractMatching(true, charString || '');\n }\n\n _extract(charString) {\n // Extract all matching chars (no default, so charString must be\n // explicit)\n return this._extractMatching(false, charString);\n }\n\n _extractMatching(breakOnMatch, charString) {\n // Pull out characters until a breaking char is hit.\n // If breakOnMatch is false, a non-matching char stops it.\n // If breakOnMatch is true, a matching char stops it.\n\n if (this.isFinished()) {\n return null;\n }\n\n let first = charString.indexOf(this.current());\n\n // Only proceed if the first character doesn't meet our condition\n if ((breakOnMatch && first === -1) ||\n (!breakOnMatch && first !== -1)) {\n let t = this.current();\n this.forward();\n\n // And pull out all the chars one at a time until we hit a\n // breaking char\n let idx = charString.indexOf(this.current());\n\n while (((breakOnMatch && idx === -1) ||\n (!breakOnMatch && idx !== -1)) && !this.isFinished()) {\n t += this.current();\n this.forward();\n\n idx = charString.indexOf(this.current());\n }\n\n return t;\n }\n\n return '';\n }\n\n _extractRegex(regex) {\n let matches = this.currentStr().match(regex);\n if (!matches) {\n return null;\n }\n\n // Move forward whatever was matched\n this.forwardN(matches[0].length);\n\n return matches;\n }\n\n isFinished() {\n return this.index >= this.len;\n }\n\n forwardN(n) {\n for (let i = 0; i < n; i++) {\n this.forward();\n }\n }\n\n forward() {\n this.index++;\n\n if (this.previous() === '\\n') {\n this.lineno++;\n this.colno = 0;\n } else {\n this.colno++;\n }\n }\n\n backN(n) {\n for (let i = 0; i < n; i++) {\n this.back();\n }\n }\n\n back() {\n this.index--;\n\n if (this.current() === '\\n') {\n this.lineno--;\n\n let idx = this.src.lastIndexOf('\\n', this.index - 1);\n if (idx === -1) {\n this.colno = this.index;\n } else {\n this.colno = this.index - idx;\n }\n } else {\n this.colno--;\n }\n }\n\n // current returns current character\n current() {\n if (!this.isFinished()) {\n return this.str.charAt(this.index);\n }\n return '';\n }\n\n // currentStr returns what's left of the unparsed string\n currentStr() {\n if (!this.isFinished()) {\n return this.str.substr(this.index);\n }\n return '';\n }\n\n previous() {\n return this.str.charAt(this.index - 1);\n }\n}\n\nmodule.exports = {\n lex(src, opts) {\n return new Tokenizer(src, opts);\n },\n\n TOKEN_STRING: TOKEN_STRING,\n TOKEN_WHITESPACE: TOKEN_WHITESPACE,\n TOKEN_DATA: TOKEN_DATA,\n TOKEN_BLOCK_START: TOKEN_BLOCK_START,\n TOKEN_BLOCK_END: TOKEN_BLOCK_END,\n TOKEN_VARIABLE_START: TOKEN_VARIABLE_START,\n TOKEN_VARIABLE_END: TOKEN_VARIABLE_END,\n TOKEN_COMMENT: TOKEN_COMMENT,\n TOKEN_LEFT_PAREN: TOKEN_LEFT_PAREN,\n TOKEN_RIGHT_PAREN: TOKEN_RIGHT_PAREN,\n TOKEN_LEFT_BRACKET: TOKEN_LEFT_BRACKET,\n TOKEN_RIGHT_BRACKET: TOKEN_RIGHT_BRACKET,\n TOKEN_LEFT_CURLY: TOKEN_LEFT_CURLY,\n TOKEN_RIGHT_CURLY: TOKEN_RIGHT_CURLY,\n TOKEN_OPERATOR: TOKEN_OPERATOR,\n TOKEN_COMMA: TOKEN_COMMA,\n TOKEN_COLON: TOKEN_COLON,\n TOKEN_TILDE: TOKEN_TILDE,\n TOKEN_PIPE: TOKEN_PIPE,\n TOKEN_INT: TOKEN_INT,\n TOKEN_FLOAT: TOKEN_FLOAT,\n TOKEN_BOOLEAN: TOKEN_BOOLEAN,\n TOKEN_NONE: TOKEN_NONE,\n TOKEN_SYMBOL: TOKEN_SYMBOL,\n TOKEN_SPECIAL: TOKEN_SPECIAL,\n TOKEN_REGEX: TOKEN_REGEX\n};\n\n\n\n// WEBPACK FOOTER //\n// ./nunjucks/src/lexer.js","'use strict';\n\nconst Loader = require('./loader');\nconst {PrecompiledLoader} = require('./precompiled-loader.js');\n\nclass WebLoader extends Loader {\n constructor(baseURL, opts) {\n super();\n this.baseURL = baseURL || '.';\n opts = opts || {};\n\n // By default, the cache is turned off because there's no way\n // to \"watch\" templates over HTTP, so they are re-downloaded\n // and compiled each time. (Remember, PRECOMPILE YOUR\n // TEMPLATES in production!)\n this.useCache = !!opts.useCache;\n\n // We default `async` to false so that the simple synchronous\n // API can be used when you aren't doing anything async in\n // your templates (which is most of the time). This performs a\n // sync ajax request, but that's ok because it should *only*\n // happen in development. PRECOMPILE YOUR TEMPLATES.\n this.async = !!opts.async;\n }\n\n resolve(from, to) {\n throw new Error('relative templates not support in the browser yet');\n }\n\n getSource(name, cb) {\n var useCache = this.useCache;\n var result;\n this.fetch(this.baseURL + '/' + name, (err, src) => {\n if (err) {\n if (cb) {\n cb(err.content);\n } else if (err.status === 404) {\n result = null;\n } else {\n throw err.content;\n }\n } else {\n result = {\n src: src,\n path: name,\n noCache: !useCache\n };\n this.emit('load', name, result);\n if (cb) {\n cb(null, result);\n }\n }\n });\n\n // if this WebLoader isn't running asynchronously, the\n // fetch above would actually run sync and we'll have a\n // result here\n return result;\n }\n\n fetch(url, cb) {\n // Only in the browser please\n if (typeof window === 'undefined') {\n throw new Error('WebLoader can only by used in a browser');\n }\n\n const ajax = new XMLHttpRequest();\n let loading = true;\n\n ajax.onreadystatechange = () => {\n if (ajax.readyState === 4 && loading) {\n loading = false;\n if (ajax.status === 0 || ajax.status === 200) {\n cb(null, ajax.responseText);\n } else {\n cb({\n status: ajax.status,\n content: ajax.responseText\n });\n }\n }\n };\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + 's=' +\n (new Date().getTime());\n\n ajax.open('GET', url, this.async);\n ajax.send();\n }\n}\n\nmodule.exports = {\n WebLoader: WebLoader,\n PrecompiledLoader: PrecompiledLoader\n};\n\n\n\n// WEBPACK FOOTER //\n// ./nunjucks/src/web-loaders.js","'use strict';\n\nconst lib = require('./src/lib');\nconst {Environment, Template} = require('./src/environment');\nconst Loader = require('./src/loader');\nconst loaders = require('./src/loaders');\nconst precompile = require('./src/precompile');\nconst compiler = require('./src/compiler');\nconst parser = require('./src/parser');\nconst lexer = require('./src/lexer');\nconst runtime = require('./src/runtime');\nconst nodes = require('./src/nodes');\nconst installJinjaCompat = require('./src/jinja-compat');\n\n// A single instance of an environment, since this is so commonly used\nlet e;\n\nfunction configure(templatesPath, opts) {\n opts = opts || {};\n if (lib.isObject(templatesPath)) {\n opts = templatesPath;\n templatesPath = null;\n }\n\n let TemplateLoader;\n if (loaders.FileSystemLoader) {\n TemplateLoader = new loaders.FileSystemLoader(templatesPath, {\n watch: opts.watch,\n noCache: opts.noCache\n });\n } else if (loaders.WebLoader) {\n TemplateLoader = new loaders.WebLoader(templatesPath, {\n useCache: opts.web && opts.web.useCache,\n async: opts.web && opts.web.async\n });\n }\n\n e = new Environment(TemplateLoader, opts);\n\n if (opts && opts.express) {\n e.express(opts.express);\n }\n\n return e;\n}\n\nmodule.exports = {\n Environment: Environment,\n Template: Template,\n Loader: Loader,\n FileSystemLoader: loaders.FileSystemLoader,\n NodeResolveLoader: loaders.NodeResolveLoader,\n PrecompiledLoader: loaders.PrecompiledLoader,\n WebLoader: loaders.WebLoader,\n compiler: compiler,\n parser: parser,\n lexer: lexer,\n runtime: runtime,\n lib: lib,\n nodes: nodes,\n installJinjaCompat: installJinjaCompat,\n configure: configure,\n reset() {\n e = undefined;\n },\n compile(src, env, path, eagerCompile) {\n if (!e) {\n configure();\n }\n return new Template(src, env, path, eagerCompile);\n },\n render(name, ctx, cb) {\n if (!e) {\n configure();\n }\n\n return e.render(name, ctx, cb);\n },\n renderString(src, ctx, cb) {\n if (!e) {\n configure();\n }\n\n return e.renderString(src, ctx, cb);\n },\n precompile: (precompile) ? precompile.precompile : undefined,\n precompileString: (precompile) ? precompile.precompileString : undefined,\n};\n\n\n\n// WEBPACK FOOTER //\n// ./nunjucks/index.js","\"use strict\";\n\n// rawAsap provides everything we need except exception management.\nvar rawAsap = require(\"./raw\");\n// RawTasks are recycled to reduce GC churn.\nvar freeTasks = [];\n// We queue errors to ensure they are thrown in right order (FIFO).\n// Array-as-queue is good enough here, since we are just dealing with exceptions.\nvar pendingErrors = [];\nvar requestErrorThrow = rawAsap.makeRequestCallFromTimer(throwFirstError);\n\nfunction throwFirstError() {\n if (pendingErrors.length) {\n throw pendingErrors.shift();\n }\n}\n\n/**\n * Calls a task as soon as possible after returning, in its own event, with priority\n * over other events like animation, reflow, and repaint. An error thrown from an\n * event will not interrupt, nor even substantially slow down the processing of\n * other events, but will be rather postponed to a lower priority event.\n * @param {{call}} task A callable object, typically a function that takes no\n * arguments.\n */\nmodule.exports = asap;\nfunction asap(task) {\n var rawTask;\n if (freeTasks.length) {\n rawTask = freeTasks.pop();\n } else {\n rawTask = new RawTask();\n }\n rawTask.task = task;\n rawAsap(rawTask);\n}\n\n// We wrap tasks with recyclable task objects. A task object implements\n// `call`, just like a function.\nfunction RawTask() {\n this.task = null;\n}\n\n// The sole purpose of wrapping the task is to catch the exception and recycle\n// the task object after its single use.\nRawTask.prototype.call = function () {\n try {\n this.task.call();\n } catch (error) {\n if (asap.onerror) {\n // This hook exists purely for testing purposes.\n // Its name will be periodically randomized to break any code that\n // depends on its existence.\n asap.onerror(error);\n } else {\n // In a web browser, exceptions are not fatal. However, to avoid\n // slowing down the queue of pending tasks, we rethrow the error in a\n // lower priority turn.\n pendingErrors.push(error);\n requestErrorThrow();\n }\n } finally {\n this.task = null;\n freeTasks[freeTasks.length] = this;\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/asap/browser-asap.js\n// module id = 12\n// module chunks = 0","\"use strict\";\n\n// Use the fastest means possible to execute a task in its own turn, with\n// priority over other events including IO, animation, reflow, and redraw\n// events in browsers.\n//\n// An exception thrown by a task will permanently interrupt the processing of\n// subsequent tasks. The higher level `asap` function ensures that if an\n// exception is thrown by a task, that the task queue will continue flushing as\n// soon as possible, but if you use `rawAsap` directly, you are responsible to\n// either ensure that no exceptions are thrown from your task, or to manually\n// call `rawAsap.requestFlush` if an exception is thrown.\nmodule.exports = rawAsap;\nfunction rawAsap(task) {\n if (!queue.length) {\n requestFlush();\n flushing = true;\n }\n // Equivalent to push, but avoids a function call.\n queue[queue.length] = task;\n}\n\nvar queue = [];\n// Once a flush has been requested, no further calls to `requestFlush` are\n// necessary until the next `flush` completes.\nvar flushing = false;\n// `requestFlush` is an implementation-specific method that attempts to kick\n// off a `flush` event as quickly as possible. `flush` will attempt to exhaust\n// the event queue before yielding to the browser's own event loop.\nvar requestFlush;\n// The position of the next task to execute in the task queue. This is\n// preserved between calls to `flush` so that it can be resumed if\n// a task throws an exception.\nvar index = 0;\n// If a task schedules additional tasks recursively, the task queue can grow\n// unbounded. To prevent memory exhaustion, the task queue will periodically\n// truncate already-completed tasks.\nvar capacity = 1024;\n\n// The flush function processes all tasks that have been scheduled with\n// `rawAsap` unless and until one of those tasks throws an exception.\n// If a task throws an exception, `flush` ensures that its state will remain\n// consistent and will resume where it left off when called again.\n// However, `flush` does not make any arrangements to be called again if an\n// exception is thrown.\nfunction flush() {\n while (index < queue.length) {\n var currentIndex = index;\n // Advance the index before calling the task. This ensures that we will\n // begin flushing on the next task the task throws an error.\n index = index + 1;\n queue[currentIndex].call();\n // Prevent leaking memory for long chains of recursive calls to `asap`.\n // If we call `asap` within tasks scheduled by `asap`, the queue will\n // grow, but to avoid an O(n) walk for every task we execute, we don't\n // shift tasks off the queue after they have been executed.\n // Instead, we periodically shift 1024 tasks off the queue.\n if (index > capacity) {\n // Manually shift all values starting at the index back to the\n // beginning of the queue.\n for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) {\n queue[scan] = queue[scan + index];\n }\n queue.length -= index;\n index = 0;\n }\n }\n queue.length = 0;\n index = 0;\n flushing = false;\n}\n\n// `requestFlush` is implemented using a strategy based on data collected from\n// every available SauceLabs Selenium web driver worker at time of writing.\n// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593\n\n// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that\n// have WebKitMutationObserver but not un-prefixed MutationObserver.\n// Must use `global` or `self` instead of `window` to work in both frames and web\n// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.\n\n/* globals self */\nvar scope = typeof global !== \"undefined\" ? global : self;\nvar BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver;\n\n// MutationObservers are desirable because they have high priority and work\n// reliably everywhere they are implemented.\n// They are implemented in all modern browsers.\n//\n// - Android 4-4.3\n// - Chrome 26-34\n// - Firefox 14-29\n// - Internet Explorer 11\n// - iPad Safari 6-7.1\n// - iPhone Safari 7-7.1\n// - Safari 6-7\nif (typeof BrowserMutationObserver === \"function\") {\n requestFlush = makeRequestCallFromMutationObserver(flush);\n\n// MessageChannels are desirable because they give direct access to the HTML\n// task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera\n// 11-12, and in web workers in many engines.\n// Although message channels yield to any queued rendering and IO tasks, they\n// would be better than imposing the 4ms delay of timers.\n// However, they do not work reliably in Internet Explorer or Safari.\n\n// Internet Explorer 10 is the only browser that has setImmediate but does\n// not have MutationObservers.\n// Although setImmediate yields to the browser's renderer, it would be\n// preferrable to falling back to setTimeout since it does not have\n// the minimum 4ms penalty.\n// Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and\n// Desktop to a lesser extent) that renders both setImmediate and\n// MessageChannel useless for the purposes of ASAP.\n// https://github.com/kriskowal/q/issues/396\n\n// Timers are implemented universally.\n// We fall back to timers in workers in most engines, and in foreground\n// contexts in the following browsers.\n// However, note that even this simple case requires nuances to operate in a\n// broad spectrum of browsers.\n//\n// - Firefox 3-13\n// - Internet Explorer 6-9\n// - iPad Safari 4.3\n// - Lynx 2.8.7\n} else {\n requestFlush = makeRequestCallFromTimer(flush);\n}\n\n// `requestFlush` requests that the high priority event queue be flushed as\n// soon as possible.\n// This is useful to prevent an error thrown in a task from stalling the event\n// queue if the exception handled by Node.js’s\n// `process.on(\"uncaughtException\")` or by a domain.\nrawAsap.requestFlush = requestFlush;\n\n// To request a high priority event, we induce a mutation observer by toggling\n// the text of a text node between \"1\" and \"-1\".\nfunction makeRequestCallFromMutationObserver(callback) {\n var toggle = 1;\n var observer = new BrowserMutationObserver(callback);\n var node = document.createTextNode(\"\");\n observer.observe(node, {characterData: true});\n return function requestCall() {\n toggle = -toggle;\n node.data = toggle;\n };\n}\n\n// The message channel technique was discovered by Malte Ubl and was the\n// original foundation for this library.\n// http://www.nonblocking.io/2011/06/windownexttick.html\n\n// Safari 6.0.5 (at least) intermittently fails to create message ports on a\n// page's first load. Thankfully, this version of Safari supports\n// MutationObservers, so we don't need to fall back in that case.\n\n// function makeRequestCallFromMessageChannel(callback) {\n// var channel = new MessageChannel();\n// channel.port1.onmessage = callback;\n// return function requestCall() {\n// channel.port2.postMessage(0);\n// };\n// }\n\n// For reasons explained above, we are also unable to use `setImmediate`\n// under any circumstances.\n// Even if we were, there is another bug in Internet Explorer 10.\n// It is not sufficient to assign `setImmediate` to `requestFlush` because\n// `setImmediate` must be called *by name* and therefore must be wrapped in a\n// closure.\n// Never forget.\n\n// function makeRequestCallFromSetImmediate(callback) {\n// return function requestCall() {\n// setImmediate(callback);\n// };\n// }\n\n// Safari 6.0 has a problem where timers will get lost while the user is\n// scrolling. This problem does not impact ASAP because Safari 6.0 supports\n// mutation observers, so that implementation is used instead.\n// However, if we ever elect to use timers in Safari, the prevalent work-around\n// is to add a scroll event listener that calls for a flush.\n\n// `setTimeout` does not call the passed callback if the delay is less than\n// approximately 7 in web workers in Firefox 8 through 18, and sometimes not\n// even then.\n\nfunction makeRequestCallFromTimer(callback) {\n return function requestCall() {\n // We dispatch a timeout with a specified delay of 0 for engines that\n // can reliably accommodate that request. This will usually be snapped\n // to a 4 milisecond delay, but once we're flushing, there's no delay\n // between events.\n var timeoutHandle = setTimeout(handleTimer, 0);\n // However, since this timer gets frequently dropped in Firefox\n // workers, we enlist an interval handle that will try to fire\n // an event 20 times per second until it succeeds.\n var intervalHandle = setInterval(handleTimer, 50);\n\n function handleTimer() {\n // Whichever timer succeeds will cancel both timers and\n // execute the callback.\n clearTimeout(timeoutHandle);\n clearInterval(intervalHandle);\n callback();\n }\n };\n}\n\n// This is for `asap.js` only.\n// Its name will be periodically randomized to break any code that depends on\n// its existence.\nrawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer;\n\n// ASAP was originally a nextTick shim included in Q. This was factored out\n// into this ASAP package. It was later adapted to RSVP which made further\n// amendments. These decisions, particularly to marginalize MessageChannel and\n// to capture the MutationObserver implementation in a closure, were integrated\n// back into ASAP proper.\n// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/asap/browser-raw.js\n// module id = 13\n// module chunks = 0","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 14\n// module chunks = 0","// MIT license (by Elan Shanker).\n(function(globals) {\n 'use strict';\n\n var executeSync = function(){\n var args = Array.prototype.slice.call(arguments);\n if (typeof args[0] === 'function'){\n args[0].apply(null, args.splice(1));\n }\n };\n\n var executeAsync = function(fn){\n if (typeof setImmediate === 'function') {\n setImmediate(fn);\n } else if (typeof process !== 'undefined' && process.nextTick) {\n process.nextTick(fn);\n } else {\n setTimeout(fn, 0);\n }\n };\n\n var makeIterator = function (tasks) {\n var makeCallback = function (index) {\n var fn = function () {\n if (tasks.length) {\n tasks[index].apply(null, arguments);\n }\n return fn.next();\n };\n fn.next = function () {\n return (index < tasks.length - 1) ? makeCallback(index + 1): null;\n };\n return fn;\n };\n return makeCallback(0);\n };\n \n var _isArray = Array.isArray || function(maybeArray){\n return Object.prototype.toString.call(maybeArray) === '[object Array]';\n };\n\n var waterfall = function (tasks, callback, forceAsync) {\n var nextTick = forceAsync ? executeAsync : executeSync;\n callback = callback || function () {};\n if (!_isArray(tasks)) {\n var err = new Error('First argument to waterfall must be an array of functions');\n return callback(err);\n }\n if (!tasks.length) {\n return callback();\n }\n var wrapIterator = function (iterator) {\n return function (err) {\n if (err) {\n callback.apply(null, arguments);\n callback = function () {};\n } else {\n var args = Array.prototype.slice.call(arguments, 1);\n var next = iterator.next();\n if (next) {\n args.push(wrapIterator(next));\n } else {\n args.push(callback);\n }\n nextTick(function () {\n iterator.apply(null, args);\n });\n }\n };\n };\n wrapIterator(makeIterator(tasks))();\n };\n\n if (typeof define !== 'undefined' && define.amd) {\n define([], function () {\n return waterfall;\n }); // RequireJS\n } else if (typeof module !== 'undefined' && module.exports) {\n module.exports = waterfall; // CommonJS\n } else {\n globals.waterfall = waterfall; // <script>\n }\n})(this);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/a-sync-waterfall/index.js\n// module id = 15\n// module chunks = 0","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/node_modules/events/events.js\n// module id = 16\n// module chunks = 0","'use strict';\n\nvar nodes = require('./nodes');\nvar lib = require('./lib');\n\nvar sym = 0;\nfunction gensym() {\n return 'hole_' + sym++;\n}\n\n// copy-on-write version of map\nfunction mapCOW(arr, func) {\n var res = null;\n for (let i = 0; i < arr.length; i++) {\n const item = func(arr[i]);\n\n if (item !== arr[i]) {\n if (!res) {\n res = arr.slice();\n }\n\n res[i] = item;\n }\n }\n\n return res || arr;\n}\n\nfunction walk(ast, func, depthFirst) {\n if (!(ast instanceof nodes.Node)) {\n return ast;\n }\n\n if (!depthFirst) {\n const astT = func(ast);\n\n if (astT && astT !== ast) {\n return astT;\n }\n }\n\n if (ast instanceof nodes.NodeList) {\n const children = mapCOW(ast.children, (node) => walk(node, func, depthFirst));\n\n if (children !== ast.children) {\n ast = new nodes[ast.typename](ast.lineno, ast.colno, children);\n }\n } else if (ast instanceof nodes.CallExtension) {\n const args = walk(ast.args, func, depthFirst);\n const contentArgs = mapCOW(ast.contentArgs, (node) => walk(node, func, depthFirst));\n\n if (args !== ast.args || contentArgs !== ast.contentArgs) {\n ast = new nodes[ast.typename](ast.extName, ast.prop, args, contentArgs);\n }\n } else {\n const props = ast.fields.map((field) => ast[field]);\n const propsT = mapCOW(props, (prop) => walk(prop, func, depthFirst));\n\n if (propsT !== props) {\n ast = new nodes[ast.typename](ast.lineno, ast.colno);\n propsT.forEach((prop, i) => {\n ast[ast.fields[i]] = prop;\n });\n }\n }\n\n return depthFirst ? (func(ast) || ast) : ast;\n}\n\nfunction depthWalk(ast, func) {\n return walk(ast, func, true);\n}\n\nfunction _liftFilters(node, asyncFilters, prop) {\n var children = [];\n\n var walked = depthWalk(prop ? node[prop] : node, (descNode) => {\n let symbol;\n if (descNode instanceof nodes.Block) {\n return descNode;\n } else if ((descNode instanceof nodes.Filter &&\n lib.indexOf(asyncFilters, descNode.name.value) !== -1) ||\n descNode instanceof nodes.CallExtensionAsync) {\n symbol = new nodes.Symbol(descNode.lineno,\n descNode.colno,\n gensym());\n\n children.push(new nodes.FilterAsync(descNode.lineno,\n descNode.colno,\n descNode.name,\n descNode.args,\n symbol));\n }\n return symbol;\n });\n\n if (prop) {\n node[prop] = walked;\n } else {\n node = walked;\n }\n\n if (children.length) {\n children.push(node);\n\n return new nodes.NodeList(\n node.lineno,\n node.colno,\n children\n );\n } else {\n return node;\n }\n}\n\nfunction liftFilters(ast, asyncFilters) {\n return depthWalk(ast, (node) => {\n if (node instanceof nodes.Output) {\n return _liftFilters(node, asyncFilters);\n } else if (node instanceof nodes.Set) {\n return _liftFilters(node, asyncFilters, 'value');\n } else if (node instanceof nodes.For) {\n return _liftFilters(node, asyncFilters, 'arr');\n } else if (node instanceof nodes.If) {\n return _liftFilters(node, asyncFilters, 'cond');\n } else if (node instanceof nodes.CallExtension) {\n return _liftFilters(node, asyncFilters, 'args');\n } else {\n return undefined;\n }\n });\n}\n\nfunction liftSuper(ast) {\n return walk(ast, (blockNode) => {\n if (!(blockNode instanceof nodes.Block)) {\n return;\n }\n\n let hasSuper = false;\n const symbol = gensym();\n\n blockNode.body = walk(blockNode.body, (node) => { // eslint-disable-line consistent-return\n if (node instanceof nodes.FunCall && node.name.value === 'super') {\n hasSuper = true;\n return new nodes.Symbol(node.lineno, node.colno, symbol);\n }\n });\n\n if (hasSuper) {\n blockNode.body.children.unshift(new nodes.Super(\n 0, 0, blockNode.name, new nodes.Symbol(0, 0, symbol)\n ));\n }\n });\n}\n\nfunction convertStatements(ast) {\n return depthWalk(ast, (node) => {\n if (!(node instanceof nodes.If) && !(node instanceof nodes.For)) {\n return undefined;\n }\n\n let async = false;\n walk(node, (child) => {\n if (child instanceof nodes.FilterAsync ||\n child instanceof nodes.IfAsync ||\n child instanceof nodes.AsyncEach ||\n child instanceof nodes.AsyncAll ||\n child instanceof nodes.CallExtensionAsync) {\n async = true;\n // Stop iterating by returning the node\n return child;\n }\n return undefined;\n });\n\n if (async) {\n if (node instanceof nodes.If) {\n return new nodes.IfAsync(\n node.lineno,\n node.colno,\n node.cond,\n node.body,\n node.else_\n );\n } else if (node instanceof nodes.For && !(node instanceof nodes.AsyncAll)) {\n return new nodes.AsyncEach(\n node.lineno,\n node.colno,\n node.arr,\n node.name,\n node.body,\n node.else_\n );\n }\n }\n return undefined;\n });\n}\n\nfunction cps(ast, asyncFilters) {\n return convertStatements(liftSuper(liftFilters(ast, asyncFilters)));\n}\n\nfunction transform(ast, asyncFilters) {\n return cps(ast, asyncFilters || []);\n}\n\n// var parser = require('./parser');\n// var src = 'hello {% foo %}{% endfoo %} end';\n// var ast = transform(parser.parse(src, [new FooExtension()]), ['bar']);\n// nodes.printNodes(ast);\n\nmodule.exports = {\n transform: transform\n};\n\n\n\n// WEBPACK FOOTER //\n// ./nunjucks/src/transformer.js","'use strict';\n\nvar lib = require('./lib');\nvar r = require('./runtime');\n\nvar exports = module.exports = {};\n\nfunction normalize(value, defaultValue) {\n if (value === null || value === undefined || value === false) {\n return defaultValue;\n }\n return value;\n}\n\nexports.abs = Math.abs;\n\nfunction isNaN(num) {\n return num !== num; // eslint-disable-line no-self-compare\n}\n\nfunction batch(arr, linecount, fillWith) {\n var i;\n var res = [];\n var tmp = [];\n\n for (i = 0; i < arr.length; i++) {\n if (i % linecount === 0 && tmp.length) {\n res.push(tmp);\n tmp = [];\n }\n\n tmp.push(arr[i]);\n }\n\n if (tmp.length) {\n if (fillWith) {\n for (i = tmp.length; i < linecount; i++) {\n tmp.push(fillWith);\n }\n }\n\n res.push(tmp);\n }\n\n return res;\n}\n\nexports.batch = batch;\n\nfunction capitalize(str) {\n str = normalize(str, '');\n const ret = str.toLowerCase();\n return r.copySafeness(str, ret.charAt(0).toUpperCase() + ret.slice(1));\n}\n\nexports.capitalize = capitalize;\n\nfunction center(str, width) {\n str = normalize(str, '');\n width = width || 80;\n\n if (str.length >= width) {\n return str;\n }\n\n const spaces = width - str.length;\n const pre = lib.repeat(' ', (spaces / 2) - (spaces % 2));\n const post = lib.repeat(' ', spaces / 2);\n return r.copySafeness(str, pre + str + post);\n}\n\nexports.center = center;\n\nfunction default_(val, def, bool) {\n if (bool) {\n return val || def;\n } else {\n return (val !== undefined) ? val : def;\n }\n}\n\n// TODO: it is confusing to export something called 'default'\nexports['default'] = default_; // eslint-disable-line dot-notation\n\nfunction dictsort(val, caseSensitive, by) {\n if (!lib.isObject(val)) {\n throw new lib.TemplateError('dictsort filter: val must be an object');\n }\n\n let array = [];\n // deliberately include properties from the object's prototype\n for (let k in val) { // eslint-disable-line guard-for-in, no-restricted-syntax\n array.push([k, val[k]]);\n }\n\n let si;\n if (by === undefined || by === 'key') {\n si = 0;\n } else if (by === 'value') {\n si = 1;\n } else {\n throw new lib.TemplateError(\n 'dictsort filter: You can only sort by either key or value');\n }\n\n array.sort((t1, t2) => {\n var a = t1[si];\n var b = t2[si];\n\n if (!caseSensitive) {\n if (lib.isString(a)) {\n a = a.toUpperCase();\n }\n if (lib.isString(b)) {\n b = b.toUpperCase();\n }\n }\n\n return a > b ? 1 : (a === b ? 0 : -1); // eslint-disable-line no-nested-ternary\n });\n\n return array;\n}\n\nexports.dictsort = dictsort;\n\nfunction dump(obj, spaces) {\n return JSON.stringify(obj, null, spaces);\n}\n\nexports.dump = dump;\n\nfunction escape(str) {\n if (str instanceof r.SafeString) {\n return str;\n }\n str = (str === null || str === undefined) ? '' : str;\n return r.markSafe(lib.escape(str.toString()));\n}\n\nexports.escape = escape;\n\nfunction safe(str) {\n if (str instanceof r.SafeString) {\n return str;\n }\n str = (str === null || str === undefined) ? '' : str;\n return r.markSafe(str.toString());\n}\n\nexports.safe = safe;\n\nfunction first(arr) {\n return arr[0];\n}\n\nexports.first = first;\n\nfunction forceescape(str) {\n str = (str === null || str === undefined) ? '' : str;\n return r.markSafe(lib.escape(str.toString()));\n}\n\nexports.forceescape = forceescape;\n\nfunction groupby(arr, attr) {\n return lib.groupBy(arr, attr, this.env.opts.throwOnUndefined);\n}\n\nexports.groupby = groupby;\n\nfunction indent(str, width, indentfirst) {\n str = normalize(str, '');\n\n if (str === '') {\n return '';\n }\n\n width = width || 4;\n // let res = '';\n const lines = str.split('\\n');\n const sp = lib.repeat(' ', width);\n\n const res = lines.map((l, i) => {\n return (i === 0 && !indentfirst) ? l : `${sp}${l}`;\n }).join('\\n');\n\n return r.copySafeness(str, res);\n}\n\nexports.indent = indent;\n\nfunction join(arr, del, attr) {\n del = del || '';\n\n if (attr) {\n arr = lib.map(arr, (v) => v[attr]);\n }\n\n return arr.join(del);\n}\n\nexports.join = join;\n\nfunction last(arr) {\n return arr[arr.length - 1];\n}\n\nexports.last = last;\n\nfunction lengthFilter(val) {\n var value = normalize(val, '');\n\n if (value !== undefined) {\n if (\n (typeof Map === 'function' && value instanceof Map) ||\n (typeof Set === 'function' && value instanceof Set)\n ) {\n // ECMAScript 2015 Maps and Sets\n return value.size;\n }\n if (lib.isObject(value) && !(value instanceof r.SafeString)) {\n // Objects (besides SafeStrings), non-primative Arrays\n return lib.keys(value).length;\n }\n return value.length;\n }\n return 0;\n}\n\nexports.length = lengthFilter;\n\nfunction list(val) {\n if (lib.isString(val)) {\n return val.split('');\n } else if (lib.isObject(val)) {\n return lib._entries(val || {}).map(([key, value]) => ({key, value}));\n } else if (lib.isArray(val)) {\n return val;\n } else {\n throw new lib.TemplateError('list filter: type not iterable');\n }\n}\n\nexports.list = list;\n\nfunction lower(str) {\n str = normalize(str, '');\n return str.toLowerCase();\n}\n\nexports.lower = lower;\n\nfunction nl2br(str) {\n if (str === null || str === undefined) {\n return '';\n }\n return r.copySafeness(str, str.replace(/\\r\\n|\\n/g, '<br />\\n'));\n}\n\nexports.nl2br = nl2br;\n\nfunction random(arr) {\n return arr[Math.floor(Math.random() * arr.length)];\n}\n\nexports.random = random;\n\n/**\n * Construct select or reject filter\n *\n * @param {boolean} expectedTestResult\n * @returns {function(array, string, *): array}\n */\nfunction getSelectOrReject(expectedTestResult) {\n function filter(arr, testName = 'truthy', secondArg) {\n const context = this;\n const test = context.env.getTest(testName);\n\n return lib.toArray(arr).filter(function examineTestResult(item) {\n return test.call(context, item, secondArg) === expectedTestResult;\n });\n }\n\n return filter;\n}\n\nexports.reject = getSelectOrReject(false);\n\nfunction rejectattr(arr, attr) {\n return arr.filter((item) => !item[attr]);\n}\n\nexports.rejectattr = rejectattr;\n\nexports.select = getSelectOrReject(true);\n\nfunction selectattr(arr, attr) {\n return arr.filter((item) => !!item[attr]);\n}\n\nexports.selectattr = selectattr;\n\nfunction replace(str, old, new_, maxCount) {\n var originalStr = str;\n\n if (old instanceof RegExp) {\n return str.replace(old, new_);\n }\n\n if (typeof maxCount === 'undefined') {\n maxCount = -1;\n }\n\n let res = ''; // Output\n\n // Cast Numbers in the search term to string\n if (typeof old === 'number') {\n old = '' + old;\n } else if (typeof old !== 'string') {\n // If it is something other than number or string,\n // return the original string\n return str;\n }\n\n // Cast numbers in the replacement to string\n if (typeof str === 'number') {\n str = '' + str;\n }\n\n // If by now, we don't have a string, throw it back\n if (typeof str !== 'string' && !(str instanceof r.SafeString)) {\n return str;\n }\n\n // ShortCircuits\n if (old === '') {\n // Mimic the python behaviour: empty string is replaced\n // by replacement e.g. \"abc\"|replace(\"\", \".\") -> .a.b.c.\n res = new_ + str.split('').join(new_) + new_;\n return r.copySafeness(str, res);\n }\n\n let nextIndex = str.indexOf(old);\n // if # of replacements to perform is 0, or the string to does\n // not contain the old value, return the string\n if (maxCount === 0 || nextIndex === -1) {\n return str;\n }\n\n let pos = 0;\n let count = 0; // # of replacements made\n\n while (nextIndex > -1 && (maxCount === -1 || count < maxCount)) {\n // Grab the next chunk of src string and add it with the\n // replacement, to the result\n res += str.substring(pos, nextIndex) + new_;\n // Increment our pointer in the src string\n pos = nextIndex + old.length;\n count++;\n // See if there are any more replacements to be made\n nextIndex = str.indexOf(old, pos);\n }\n\n // We've either reached the end, or done the max # of\n // replacements, tack on any remaining string\n if (pos < str.length) {\n res += str.substring(pos);\n }\n\n return r.copySafeness(originalStr, res);\n}\n\nexports.replace = replace;\n\nfunction reverse(val) {\n var arr;\n if (lib.isString(val)) {\n arr = list(val);\n } else {\n // Copy it\n arr = lib.map(val, v => v);\n }\n\n arr.reverse();\n\n if (lib.isString(val)) {\n return r.copySafeness(val, arr.join(''));\n }\n return arr;\n}\n\nexports.reverse = reverse;\n\nfunction round(val, precision, method) {\n precision = precision || 0;\n const factor = Math.pow(10, precision);\n let rounder;\n\n if (method === 'ceil') {\n rounder = Math.ceil;\n } else if (method === 'floor') {\n rounder = Math.floor;\n } else {\n rounder = Math.round;\n }\n\n return rounder(val * factor) / factor;\n}\n\nexports.round = round;\n\nfunction slice(arr, slices, fillWith) {\n const sliceLength = Math.floor(arr.length / slices);\n const extra = arr.length % slices;\n const res = [];\n let offset = 0;\n\n for (let i = 0; i < slices; i++) {\n const start = offset + (i * sliceLength);\n if (i < extra) {\n offset++;\n }\n const end = offset + ((i + 1) * sliceLength);\n\n const currSlice = arr.slice(start, end);\n if (fillWith && i >= extra) {\n currSlice.push(fillWith);\n }\n res.push(currSlice);\n }\n\n return res;\n}\n\nexports.slice = slice;\n\nfunction sum(arr, attr, start = 0) {\n if (attr) {\n arr = lib.map(arr, (v) => v[attr]);\n }\n\n return start + arr.reduce((a, b) => a + b, 0);\n}\n\nexports.sum = sum;\n\nexports.sort = r.makeMacro(\n ['value', 'reverse', 'case_sensitive', 'attribute'], [],\n function sortFilter(arr, reversed, caseSens, attr) {\n // Copy it\n let array = lib.map(arr, v => v);\n let getAttribute = lib.getAttrGetter(attr);\n\n array.sort((a, b) => {\n let x = (attr) ? getAttribute(a) : a;\n let y = (attr) ? getAttribute(b) : b;\n\n if (\n this.env.opts.throwOnUndefined &&\n attr && (x === undefined || y === undefined)\n ) {\n throw new TypeError(`sort: attribute \"${attr}\" resolved to undefined`);\n }\n\n if (!caseSens && lib.isString(x) && lib.isString(y)) {\n x = x.toLowerCase();\n y = y.toLowerCase();\n }\n\n if (x < y) {\n return reversed ? 1 : -1;\n } else if (x > y) {\n return reversed ? -1 : 1;\n } else {\n return 0;\n }\n });\n\n return array;\n });\n\nfunction string(obj) {\n return r.copySafeness(obj, obj);\n}\n\nexports.string = string;\n\nfunction striptags(input, preserveLinebreaks) {\n input = normalize(input, '');\n let tags = /<\\/?([a-z][a-z0-9]*)\\b[^>]*>|<!--[\\s\\S]*?-->/gi;\n let trimmedInput = trim(input.replace(tags, ''));\n let res = '';\n if (preserveLinebreaks) {\n res = trimmedInput\n .replace(/^ +| +$/gm, '') // remove leading and trailing spaces\n .replace(/ +/g, ' ') // squash adjacent spaces\n .replace(/(\\r\\n)/g, '\\n') // normalize linebreaks (CRLF -> LF)\n .replace(/\\n\\n\\n+/g, '\\n\\n'); // squash abnormal adjacent linebreaks\n } else {\n res = trimmedInput.replace(/\\s+/gi, ' ');\n }\n return r.copySafeness(input, res);\n}\n\nexports.striptags = striptags;\n\nfunction title(str) {\n str = normalize(str, '');\n let words = str.split(' ').map(word => capitalize(word));\n return r.copySafeness(str, words.join(' '));\n}\n\nexports.title = title;\n\nfunction trim(str) {\n return r.copySafeness(str, str.replace(/^\\s*|\\s*$/g, ''));\n}\n\nexports.trim = trim;\n\nfunction truncate(input, length, killwords, end) {\n var orig = input;\n input = normalize(input, '');\n length = length || 255;\n\n if (input.length <= length) {\n return input;\n }\n\n if (killwords) {\n input = input.substring(0, length);\n } else {\n let idx = input.lastIndexOf(' ', length);\n if (idx === -1) {\n idx = length;\n }\n\n input = input.substring(0, idx);\n }\n\n input += (end !== undefined && end !== null) ? end : '...';\n return r.copySafeness(orig, input);\n}\n\nexports.truncate = truncate;\n\nfunction upper(str) {\n str = normalize(str, '');\n return str.toUpperCase();\n}\n\nexports.upper = upper;\n\nfunction urlencode(obj) {\n var enc = encodeURIComponent;\n if (lib.isString(obj)) {\n return enc(obj);\n } else {\n let keyvals = (lib.isArray(obj)) ? obj : lib._entries(obj);\n return keyvals.map(([k, v]) => `${enc(k)}=${enc(v)}`).join('&');\n }\n}\n\nexports.urlencode = urlencode;\n\n// For the jinja regexp, see\n// https://github.com/mitsuhiko/jinja2/blob/f15b814dcba6aa12bc74d1f7d0c881d55f7126be/jinja2/utils.py#L20-L23\nconst puncRe = /^(?:\\(|<|<)?(.*?)(?:\\.|,|\\)|\\n|>)?$/;\n// from http://blog.gerv.net/2011/05/html5_email_address_regexp/\nconst emailRe = /^[\\w.!#$%&'*+\\-\\/=?\\^`{|}~]+@[a-z\\d\\-]+(\\.[a-z\\d\\-]+)+$/i;\nconst httpHttpsRe = /^https?:\\/\\/.*$/;\nconst wwwRe = /^www\\./;\nconst tldRe = /\\.(?:org|net|com)(?:\\:|\\/|$)/;\n\nfunction urlize(str, length, nofollow) {\n if (isNaN(length)) {\n length = Infinity;\n }\n\n const noFollowAttr = (nofollow === true ? ' rel=\"nofollow\"' : '');\n\n const words = str.split(/(\\s+)/).filter((word) => {\n // If the word has no length, bail. This can happen for str with\n // trailing whitespace.\n return word && word.length;\n }).map((word) => {\n var matches = word.match(puncRe);\n var possibleUrl = (matches) ? matches[1] : word;\n var shortUrl = possibleUrl.substr(0, length);\n\n // url that starts with http or https\n if (httpHttpsRe.test(possibleUrl)) {\n return `<a href=\"${possibleUrl}\"${noFollowAttr}>${shortUrl}</a>`;\n }\n\n // url that starts with www.\n if (wwwRe.test(possibleUrl)) {\n return `<a href=\"http://${possibleUrl}\"${noFollowAttr}>${shortUrl}</a>`;\n }\n\n // an email address of the form username@domain.tld\n if (emailRe.test(possibleUrl)) {\n return `<a href=\"mailto:${possibleUrl}\">${possibleUrl}</a>`;\n }\n\n // url that ends in .com, .org or .net that is not an email address\n if (tldRe.test(possibleUrl)) {\n return `<a href=\"http://${possibleUrl}\"${noFollowAttr}>${shortUrl}</a>`;\n }\n\n return word;\n });\n\n return words.join('');\n}\n\nexports.urlize = urlize;\n\nfunction wordcount(str) {\n str = normalize(str, '');\n const words = (str) ? str.match(/\\w+/g) : null;\n return (words) ? words.length : null;\n}\n\nexports.wordcount = wordcount;\n\nfunction float(val, def) {\n var res = parseFloat(val);\n return (isNaN(res)) ? def : res;\n}\n\nexports.float = float;\n\nconst intFilter = r.makeMacro(\n ['value', 'default', 'base'],\n [],\n function doInt(value, defaultValue, base = 10) {\n var res = parseInt(value, base);\n return (isNaN(res)) ? defaultValue : res;\n }\n);\n\nexports.int = intFilter;\n\n// Aliases\nexports.d = exports.default;\nexports.e = exports.escape;\n\n\n\n// WEBPACK FOOTER //\n// ./nunjucks/src/filters.js","'use strict';\n\nconst Loader = require('./loader');\n\nclass PrecompiledLoader extends Loader {\n constructor(compiledTemplates) {\n super();\n this.precompiled = compiledTemplates || {};\n }\n\n getSource(name) {\n if (this.precompiled[name]) {\n return {\n src: {\n type: 'code',\n obj: this.precompiled[name]\n },\n path: name\n };\n }\n return null;\n }\n}\n\nmodule.exports = {\n PrecompiledLoader: PrecompiledLoader,\n};\n\n\n\n// WEBPACK FOOTER //\n// ./nunjucks/src/precompiled-loader.js","'use strict';\n\nvar SafeString = require('./runtime').SafeString;\n\n/**\n * Returns `true` if the object is a function, otherwise `false`.\n * @param { any } value\n * @returns { boolean }\n */\nfunction callable(value) {\n return typeof value === 'function';\n}\n\nexports.callable = callable;\n\n/**\n * Returns `true` if the object is strictly not `undefined`.\n * @param { any } value\n * @returns { boolean }\n */\nfunction defined(value) {\n return value !== undefined;\n}\n\nexports.defined = defined;\n\n/**\n * Returns `true` if the operand (one) is divisble by the test's argument\n * (two).\n * @param { number } one\n * @param { number } two\n * @returns { boolean }\n */\nfunction divisibleby(one, two) {\n return (one % two) === 0;\n}\n\nexports.divisibleby = divisibleby;\n\n/**\n * Returns true if the string has been escaped (i.e., is a SafeString).\n * @param { any } value\n * @returns { boolean }\n */\nfunction escaped(value) {\n return value instanceof SafeString;\n}\n\nexports.escaped = escaped;\n\n/**\n * Returns `true` if the arguments are strictly equal.\n * @param { any } one\n * @param { any } two\n */\nfunction equalto(one, two) {\n return one === two;\n}\n\nexports.equalto = equalto;\n\n// Aliases\nexports.eq = exports.equalto;\nexports.sameas = exports.equalto;\n\n/**\n * Returns `true` if the value is evenly divisible by 2.\n * @param { number } value\n * @returns { boolean }\n */\nfunction even(value) {\n return value % 2 === 0;\n}\n\nexports.even = even;\n\n/**\n * Returns `true` if the value is falsy - if I recall correctly, '', 0, false,\n * undefined, NaN or null. I don't know if we should stick to the default JS\n * behavior or attempt to replicate what Python believes should be falsy (i.e.,\n * empty arrays, empty dicts, not 0...).\n * @param { any } value\n * @returns { boolean }\n */\nfunction falsy(value) {\n return !value;\n}\n\nexports.falsy = falsy;\n\n/**\n * Returns `true` if the operand (one) is greater or equal to the test's\n * argument (two).\n * @param { number } one\n * @param { number } two\n * @returns { boolean }\n */\nfunction ge(one, two) {\n return one >= two;\n}\n\nexports.ge = ge;\n\n/**\n * Returns `true` if the operand (one) is greater than the test's argument\n * (two).\n * @param { number } one\n * @param { number } two\n * @returns { boolean }\n */\nfunction greaterthan(one, two) {\n return one > two;\n}\n\nexports.greaterthan = greaterthan;\n\n// alias\nexports.gt = exports.greaterthan;\n\n/**\n * Returns `true` if the operand (one) is less than or equal to the test's\n * argument (two).\n * @param { number } one\n * @param { number } two\n * @returns { boolean }\n */\nfunction le(one, two) {\n return one <= two;\n}\n\nexports.le = le;\n\n/**\n * Returns `true` if the operand (one) is less than the test's passed argument\n * (two).\n * @param { number } one\n * @param { number } two\n * @returns { boolean }\n */\nfunction lessthan(one, two) {\n return one < two;\n}\n\nexports.lessthan = lessthan;\n\n// alias\nexports.lt = exports.lessthan;\n\n/**\n * Returns `true` if the string is lowercased.\n * @param { string } value\n * @returns { boolean }\n */\nfunction lower(value) {\n return value.toLowerCase() === value;\n}\n\nexports.lower = lower;\n\n/**\n * Returns `true` if the operand (one) is less than or equal to the test's\n * argument (two).\n * @param { number } one\n * @param { number } two\n * @returns { boolean }\n */\nfunction ne(one, two) {\n return one !== two;\n}\n\nexports.ne = ne;\n\n/**\n * Returns true if the value is strictly equal to `null`.\n * @param { any }\n * @returns { boolean }\n */\nfunction nullTest(value) {\n return value === null;\n}\n\nexports.null = nullTest;\n\n/**\n * Returns true if value is a number.\n * @param { any }\n * @returns { boolean }\n */\nfunction number(value) {\n return typeof value === 'number';\n}\n\nexports.number = number;\n\n/**\n * Returns `true` if the value is *not* evenly divisible by 2.\n * @param { number } value\n * @returns { boolean }\n */\nfunction odd(value) {\n return value % 2 === 1;\n}\n\nexports.odd = odd;\n\n/**\n * Returns `true` if the value is a string, `false` if not.\n * @param { any } value\n * @returns { boolean }\n */\nfunction string(value) {\n return typeof value === 'string';\n}\n\nexports.string = string;\n\n/**\n * Returns `true` if the value is not in the list of things considered falsy:\n * '', null, undefined, 0, NaN and false.\n * @param { any } value\n * @returns { boolean }\n */\nfunction truthy(value) {\n return !!value;\n}\n\nexports.truthy = truthy;\n\n/**\n * Returns `true` if the value is undefined.\n * @param { any } value\n * @returns { boolean }\n */\nfunction undefinedTest(value) {\n return value === undefined;\n}\n\nexports.undefined = undefinedTest;\n\n/**\n * Returns `true` if the string is uppercased.\n * @param { string } value\n * @returns { boolean }\n */\nfunction upper(value) {\n return value.toUpperCase() === value;\n}\n\nexports.upper = upper;\n\n/**\n * If ES6 features are available, returns `true` if the value implements the\n * `Symbol.iterator` method. If not, it's a string or Array.\n *\n * Could potentially cause issues if a browser exists that has Set and Map but\n * not Symbol.\n *\n * @param { any } value\n * @returns { boolean }\n */\nfunction iterable(value) {\n if (typeof Symbol !== 'undefined') {\n return !!value[Symbol.iterator];\n } else {\n return Array.isArray(value) || typeof value === 'string';\n }\n}\n\nexports.iterable = iterable;\n\n/**\n * If ES6 features are available, returns `true` if the value is an object hash\n * or an ES6 Map. Otherwise just return if it's an object hash.\n * @param { any } value\n * @returns { boolean }\n */\nfunction mapping(value) {\n // only maps and object hashes\n var bool = value !== null\n && value !== undefined\n && typeof value === 'object'\n && !Array.isArray(value);\n if (Set) {\n return bool && !(value instanceof Set);\n } else {\n return bool;\n }\n}\n\nexports.mapping = mapping;\n\n\n\n// WEBPACK FOOTER //\n// ./nunjucks/src/tests.js","'use strict';\n\nfunction cycler(items) {\n var index = -1;\n\n return {\n current: null,\n reset() {\n index = -1;\n this.current = null;\n },\n\n next() {\n index++;\n if (index >= items.length) {\n index = 0;\n }\n\n this.current = items[index];\n return this.current;\n },\n };\n}\n\nfunction joiner(sep) {\n sep = sep || ',';\n let first = true;\n\n return () => {\n const val = first ? '' : sep;\n first = false;\n return val;\n };\n}\n\n// Making this a function instead so it returns a new object\n// each time it's called. That way, if something like an environment\n// uses it, they will each have their own copy.\nfunction globals() {\n return {\n range(start, stop, step) {\n if (typeof stop === 'undefined') {\n stop = start;\n start = 0;\n step = 1;\n } else if (!step) {\n step = 1;\n }\n\n const arr = [];\n if (step > 0) {\n for (let i = start; i < stop; i += step) {\n arr.push(i);\n }\n } else {\n for (let i = start; i > stop; i += step) { // eslint-disable-line for-direction\n arr.push(i);\n }\n }\n return arr;\n },\n\n cycler() {\n return cycler(Array.prototype.slice.call(arguments));\n },\n\n joiner(sep) {\n return joiner(sep);\n }\n };\n}\n\nmodule.exports = globals;\n\n\n\n// WEBPACK FOOTER //\n// ./nunjucks/src/globals.js","const path = require('path');\n\nmodule.exports = function express(env, app) {\n function NunjucksView(name, opts) {\n this.name = name;\n this.path = name;\n this.defaultEngine = opts.defaultEngine;\n this.ext = path.extname(name);\n if (!this.ext && !this.defaultEngine) {\n throw new Error('No default engine was specified and no extension was provided.');\n }\n if (!this.ext) {\n this.name += (this.ext = (this.defaultEngine[0] !== '.' ? '.' : '') + this.defaultEngine);\n }\n }\n\n NunjucksView.prototype.render = function render(opts, cb) {\n env.render(this.name, opts, cb);\n };\n\n app.set('view', NunjucksView);\n app.set('nunjucksEnv', env);\n return env;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./nunjucks/src/express-app.js","'use strict';\n\nconst fs = require('fs');\nconst path = require('path');\nconst {_prettifyError} = require('./lib');\nconst compiler = require('./compiler');\nconst {Environment} = require('./environment');\nconst precompileGlobal = require('./precompile-global');\n\nfunction match(filename, patterns) {\n if (!Array.isArray(patterns)) {\n return false;\n }\n return patterns.some((pattern) => filename.match(pattern));\n}\n\nfunction precompileString(str, opts) {\n opts = opts || {};\n opts.isString = true;\n const env = opts.env || new Environment([]);\n const wrapper = opts.wrapper || precompileGlobal;\n\n if (!opts.name) {\n throw new Error('the \"name\" option is required when compiling a string');\n }\n return wrapper([_precompile(str, opts.name, env)], opts);\n}\n\nfunction precompile(input, opts) {\n // The following options are available:\n //\n // * name: name of the template (auto-generated when compiling a directory)\n // * isString: input is a string, not a file path\n // * asFunction: generate a callable function\n // * force: keep compiling on error\n // * env: the Environment to use (gets extensions and async filters from it)\n // * include: which file/folders to include (folders are auto-included, files are auto-excluded)\n // * exclude: which file/folders to exclude (folders are auto-included, files are auto-excluded)\n // * wrapper: function(templates, opts) {...}\n // Customize the output format to store the compiled template.\n // By default, templates are stored in a global variable used by the runtime.\n // A custom loader will be necessary to load your custom wrapper.\n\n opts = opts || {};\n const env = opts.env || new Environment([]);\n const wrapper = opts.wrapper || precompileGlobal;\n\n if (opts.isString) {\n return precompileString(input, opts);\n }\n\n const pathStats = fs.existsSync(input) && fs.statSync(input);\n const precompiled = [];\n const templates = [];\n\n function addTemplates(dir) {\n fs.readdirSync(dir).forEach((file) => {\n const filepath = path.join(dir, file);\n let subpath = filepath.substr(path.join(input, '/').length);\n const stat = fs.statSync(filepath);\n\n if (stat && stat.isDirectory()) {\n subpath += '/';\n if (!match(subpath, opts.exclude)) {\n addTemplates(filepath);\n }\n } else if (match(subpath, opts.include)) {\n templates.push(filepath);\n }\n });\n }\n\n if (pathStats.isFile()) {\n precompiled.push(_precompile(\n fs.readFileSync(input, 'utf-8'),\n opts.name || input,\n env\n ));\n } else if (pathStats.isDirectory()) {\n addTemplates(input);\n\n for (let i = 0; i < templates.length; i++) {\n const name = templates[i].replace(path.join(input, '/'), '');\n\n try {\n precompiled.push(_precompile(\n fs.readFileSync(templates[i], 'utf-8'),\n name,\n env\n ));\n } catch (e) {\n if (opts.force) {\n // Don't stop generating the output if we're\n // forcing compilation.\n console.error(e); // eslint-disable-line no-console\n } else {\n throw e;\n }\n }\n }\n }\n\n return wrapper(precompiled, opts);\n}\n\nfunction _precompile(str, name, env) {\n env = env || new Environment([]);\n\n const asyncFilters = env.asyncFilters;\n const extensions = env.extensionsList;\n let template;\n\n name = name.replace(/\\\\/g, '/');\n\n try {\n template = compiler.compile(str,\n asyncFilters,\n extensions,\n name,\n env.opts);\n } catch (err) {\n throw _prettifyError(name, false, err);\n }\n\n return {\n name: name,\n template: template\n };\n}\n\nmodule.exports = {\n precompile: precompile,\n precompileString: precompileString\n};\n\n\n\n// WEBPACK FOOTER //\n// ./nunjucks/src/precompile.js","'use strict';\n\nfunction precompileGlobal(templates, opts) {\n var out = '';\n opts = opts || {};\n\n for (let i = 0; i < templates.length; i++) {\n const name = JSON.stringify(templates[i].name);\n const template = templates[i].template;\n\n out += '(function() {' +\n '(window.nunjucksPrecompiled = window.nunjucksPrecompiled || {})' +\n '[' + name + '] = (function() {\\n' + template + '\\n})();\\n';\n\n if (opts.asFunction) {\n out += 'return function(ctx, cb) { return nunjucks.render(' + name + ', ctx, cb); }\\n';\n }\n\n out += '})();\\n';\n }\n return out;\n}\n\nmodule.exports = precompileGlobal;\n\n\n\n// WEBPACK FOOTER //\n// ./nunjucks/src/precompile-global.js","function installCompat() {\n 'use strict';\n\n /* eslint-disable camelcase */\n\n // This must be called like `nunjucks.installCompat` so that `this`\n // references the nunjucks instance\n var runtime = this.runtime;\n var lib = this.lib;\n // Handle slim case where these 'modules' are excluded from the built source\n var Compiler = this.compiler.Compiler;\n var Parser = this.parser.Parser;\n var nodes = this.nodes;\n var lexer = this.lexer;\n\n var orig_contextOrFrameLookup = runtime.contextOrFrameLookup;\n var orig_memberLookup = runtime.memberLookup;\n var orig_Compiler_assertType;\n var orig_Parser_parseAggregate;\n if (Compiler) {\n orig_Compiler_assertType = Compiler.prototype.assertType;\n }\n if (Parser) {\n orig_Parser_parseAggregate = Parser.prototype.parseAggregate;\n }\n\n function uninstall() {\n runtime.contextOrFrameLookup = orig_contextOrFrameLookup;\n runtime.memberLookup = orig_memberLookup;\n if (Compiler) {\n Compiler.prototype.assertType = orig_Compiler_assertType;\n }\n if (Parser) {\n Parser.prototype.parseAggregate = orig_Parser_parseAggregate;\n }\n }\n\n runtime.contextOrFrameLookup = function contextOrFrameLookup(context, frame, key) {\n var val = orig_contextOrFrameLookup.apply(this, arguments);\n if (val !== undefined) {\n return val;\n }\n switch (key) {\n case 'True':\n return true;\n case 'False':\n return false;\n case 'None':\n return null;\n default:\n return undefined;\n }\n };\n\n function getTokensState(tokens) {\n return {\n index: tokens.index,\n lineno: tokens.lineno,\n colno: tokens.colno\n };\n }\n\n if (process.env.BUILD_TYPE !== 'SLIM' && nodes && Compiler && Parser) { // i.e., not slim mode\n const Slice = nodes.Node.extend('Slice', {\n fields: ['start', 'stop', 'step'],\n init(lineno, colno, start, stop, step) {\n start = start || new nodes.Literal(lineno, colno, null);\n stop = stop || new nodes.Literal(lineno, colno, null);\n step = step || new nodes.Literal(lineno, colno, 1);\n this.parent(lineno, colno, start, stop, step);\n }\n });\n\n Compiler.prototype.assertType = function assertType(node) {\n if (node instanceof Slice) {\n return;\n }\n orig_Compiler_assertType.apply(this, arguments);\n };\n Compiler.prototype.compileSlice = function compileSlice(node, frame) {\n this._emit('(');\n this._compileExpression(node.start, frame);\n this._emit('),(');\n this._compileExpression(node.stop, frame);\n this._emit('),(');\n this._compileExpression(node.step, frame);\n this._emit(')');\n };\n\n Parser.prototype.parseAggregate = function parseAggregate() {\n var origState = getTokensState(this.tokens);\n // Set back one accounting for opening bracket/parens\n origState.colno--;\n origState.index--;\n try {\n return orig_Parser_parseAggregate.apply(this);\n } catch (e) {\n const errState = getTokensState(this.tokens);\n const rethrow = () => {\n lib._assign(this.tokens, errState);\n return e;\n };\n\n // Reset to state before original parseAggregate called\n lib._assign(this.tokens, origState);\n this.peeked = false;\n\n const tok = this.peekToken();\n if (tok.type !== lexer.TOKEN_LEFT_BRACKET) {\n throw rethrow();\n } else {\n this.nextToken();\n }\n\n const node = new Slice(tok.lineno, tok.colno);\n\n // If we don't encounter a colon while parsing, this is not a slice,\n // so re-raise the original exception.\n let isSlice = false;\n\n for (let i = 0; i <= node.fields.length; i++) {\n if (this.skip(lexer.TOKEN_RIGHT_BRACKET)) {\n break;\n }\n if (i === node.fields.length) {\n if (isSlice) {\n this.fail('parseSlice: too many slice components', tok.lineno, tok.colno);\n } else {\n break;\n }\n }\n if (this.skip(lexer.TOKEN_COLON)) {\n isSlice = true;\n } else {\n const field = node.fields[i];\n node[field] = this.parseExpression();\n isSlice = this.skip(lexer.TOKEN_COLON) || isSlice;\n }\n }\n if (!isSlice) {\n throw rethrow();\n }\n return new nodes.Array(tok.lineno, tok.colno, [node]);\n }\n };\n }\n\n function sliceLookup(obj, start, stop, step) {\n obj = obj || [];\n if (start === null) {\n start = (step < 0) ? (obj.length - 1) : 0;\n }\n if (stop === null) {\n stop = (step < 0) ? -1 : obj.length;\n } else if (stop < 0) {\n stop += obj.length;\n }\n\n if (start < 0) {\n start += obj.length;\n }\n\n const results = [];\n\n for (let i = start; ; i += step) {\n if (i < 0 || i > obj.length) {\n break;\n }\n if (step > 0 && i >= stop) {\n break;\n }\n if (step < 0 && i <= stop) {\n break;\n }\n results.push(runtime.memberLookup(obj, i));\n }\n return results;\n }\n\n function hasOwnProp(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n }\n\n const ARRAY_MEMBERS = {\n pop(index) {\n if (index === undefined) {\n return this.pop();\n }\n if (index >= this.length || index < 0) {\n throw new Error('KeyError');\n }\n return this.splice(index, 1);\n },\n append(element) {\n return this.push(element);\n },\n remove(element) {\n for (let i = 0; i < this.length; i++) {\n if (this[i] === element) {\n return this.splice(i, 1);\n }\n }\n throw new Error('ValueError');\n },\n count(element) {\n var count = 0;\n for (let i = 0; i < this.length; i++) {\n if (this[i] === element) {\n count++;\n }\n }\n return count;\n },\n index(element) {\n var i;\n if ((i = this.indexOf(element)) === -1) {\n throw new Error('ValueError');\n }\n return i;\n },\n find(element) {\n return this.indexOf(element);\n },\n insert(index, elem) {\n return this.splice(index, 0, elem);\n }\n };\n const OBJECT_MEMBERS = {\n items() {\n return lib._entries(this);\n },\n values() {\n return lib._values(this);\n },\n keys() {\n return lib.keys(this);\n },\n get(key, def) {\n var output = this[key];\n if (output === undefined) {\n output = def;\n }\n return output;\n },\n has_key(key) {\n return hasOwnProp(this, key);\n },\n pop(key, def) {\n var output = this[key];\n if (output === undefined && def !== undefined) {\n output = def;\n } else if (output === undefined) {\n throw new Error('KeyError');\n } else {\n delete this[key];\n }\n return output;\n },\n popitem() {\n const keys = lib.keys(this);\n if (!keys.length) {\n throw new Error('KeyError');\n }\n const k = keys[0];\n const val = this[k];\n delete this[k];\n return [k, val];\n },\n setdefault(key, def = null) {\n if (!(key in this)) {\n this[key] = def;\n }\n return this[key];\n },\n update(kwargs) {\n lib._assign(this, kwargs);\n return null; // Always returns None\n }\n };\n OBJECT_MEMBERS.iteritems = OBJECT_MEMBERS.items;\n OBJECT_MEMBERS.itervalues = OBJECT_MEMBERS.values;\n OBJECT_MEMBERS.iterkeys = OBJECT_MEMBERS.keys;\n\n runtime.memberLookup = function memberLookup(obj, val, autoescape) {\n if (arguments.length === 4) {\n return sliceLookup.apply(this, arguments);\n }\n obj = obj || {};\n\n // If the object is an object, return any of the methods that Python would\n // otherwise provide.\n if (lib.isArray(obj) && hasOwnProp(ARRAY_MEMBERS, val)) {\n return ARRAY_MEMBERS[val].bind(obj);\n }\n if (lib.isObject(obj) && hasOwnProp(OBJECT_MEMBERS, val)) {\n return OBJECT_MEMBERS[val].bind(obj);\n }\n\n return orig_memberLookup.apply(this, arguments);\n };\n\n return uninstall;\n}\n\nmodule.exports = installCompat;\n\n\n\n// WEBPACK FOOTER //\n// ./nunjucks/src/jinja-compat.js"],"sourceRoot":""} |