Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

shopify-liquid

Package Overview
Dependencies
Maintainers
1
Versions
50
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

shopify-liquid - npm Package Compare versions

Comparing version 1.7.3 to 1.7.4

4

dist/liquid.min.js

@@ -1,3 +0,3 @@

!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.Liquid=e()}}(function(){return function e(t,r,n){function s(o,u){if(!r[o]){if(!t[o]){var a="function"==typeof require&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var c=new Error("Cannot find module '"+o+"'");throw c.code="MODULE_NOT_FOUND",c}var l=r[o]={exports:{}};t[o][0].call(l.exports,function(e){var r=t[o][1][e];return s(r?r:e)},l,l.exports,e,t,r,n)}return r[o].exports}for(var i="function"==typeof require&&require,o=0;o<n.length;o++)s(n[o]);return s}({1:[function(e,t){"use strict";function r(e){return o(e).replace(/&|<|>|"|'/g,function(e){return f[e]})}function n(e){return o(e).replace(/&(amp|lt|gt|#34|#39);/g,function(e){return p[e]})}function s(e){var t=(e+"").split(".");return t.length>1?t[1].length:0}function i(e,t){return Math.max(s(e),s(t))}function o(e){return e=e||"",e+""}function u(e){return function(t,r){var n=i(t,r);return e(t,r).toFixed(n)}}function a(e){return l.forOwn(h,function(t,r){return e.registerFilter(r,t)})}var c=e("./src/util/strftime.js"),l=e("./src/util/underscore.js"),f={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&#34;","'":"&#39;"},p={"&amp;":"&","&lt;":"<","&gt;":">","&#34;":'"',"&#39;":"'"},h={abs:function(e){return Math.abs(e)},append:function(e,t){return e+t},capitalize:function(e){return o(e).charAt(0).toUpperCase()+e.slice(1)},ceil:function(e){return Math.ceil(e)},date:function(e,t){return"now"===e&&(e=new Date),e instanceof Date?c(e,t):""},"default":function(e,t){return e||t},divided_by:function(e,t){return Math.floor(e/t)},downcase:function(e){return e.toLowerCase()},escape:r,escape_once:function(e){return r(n(e))},first:function(e){return e[0]},floor:function(e){return Math.floor(e)},join:function(e,t){return e.join(t)},last:function(e){return e[e.length-1]},lstrip:function(e){return o(e).replace(/^\s+/,"")},map:function(e,t){return e.map(function(e){return e[t]})},minus:u(function(e,t){return e-t}),modulo:u(function(e,t){return e%t}),newline_to_br:function(e){return e.replace(/\n/g,"<br />")},plus:u(function(e,t){return Number(e)+Number(t)}),prepend:function(e,t){return t+e},remove:function(e,t){return e.split(t).join("")},remove_first:function(e,t){return e.replace(t,"")},replace:function(e,t,r){return o(e).split(t).join(r)},replace_first:function(e,t,r){return o(e).replace(t,r)},reverse:function(e){return e.reverse()},round:function(e,t){var r=Math.pow(10,t||0);return Math.round(e*r,t)/r},rstrip:function(e){return o(e).replace(/\s+$/,"")},size:function(e){return e.length},slice:function(e,t,r){return e.substr(t,void 0===r?1:r)},sort:function(e,t){return e.sort(t)},split:function(e,t){return o(e).split(t)},strip:function(e){return o(e).trim()},strip_html:function(e){return o(e).replace(/<\/?\s*\w+\s*\/?>/g,"")},strip_newlines:function(e){return o(e).replace(/\n/g,"")},times:function(e,t){return e*t},truncate:function(e,t,r){return e=o(e),r=void 0===r?"...":r,t=t||16,e.length<=t?e:e.substr(0,t-r.length)+r},truncatewords:function(e,t,r){void 0===r&&(r="...");var n=e.split(" "),s=n.slice(0,t).join(" ");return n.length>t&&(s+=r),s},uniq:function(e){var t={};return(e||[]).filter(function(e){return t.hasOwnProperty(e)?!1:(t[e]=!0,!0)})},upcase:function(e){return o(e).toUpperCase()},url_encode:encodeURIComponent};a.filters=h,t.exports=a},{"./src/util/strftime.js":20,"./src/util/underscore.js":21}],2:[function(e,t){"use strict";function r(e){e=i.assign({root:["."],cache:!1,extname:".liquid",trim_right:!1,trim_left:!1,strict_filters:!1,strict_variables:!1},e),e.root=n(e.root);var t=Object.create(b);return t.init(h(),g(e),e),t}function n(e){return i.isArray(e)?e:i.isString(e)?[e]:[]}var s=e("./src/scope"),i=e("./src/util/underscore.js"),o=e("./src/util/assert.js"),u=e("./src/tokenizer.js"),a=e("./src/util/fs.js").statFileAsync,c=e("./src/util/fs.js").readFileAsync,l=e("path"),f=e("./src/render.js"),p=e("./src/lexical.js"),h=e("./src/tag.js"),g=e("./src/filter.js"),d=e("./src/parser"),v=e("./src/syntax.js"),m=e("./tags"),y=e("./filters"),j=e("any-promise"),w=e("./src/util/promise.js").anySeries,x=e("./src/util/error.js"),b={init:function(e,t,r){return r.cache&&(this.cache={}),this.options=r,this.tag=e,this.filter=t,this.parser=d(e,t),this.renderer=f(),m(this),y(this),this},parse:function(e,t){var r=u.parse(e,t,this.options);return this.parser.parse(r)},render:function(e,t,r){r=i.assign({},this.options,r);var n=s.factory(t,r);return this.renderer.renderTemplates(e,n)},parseAndRender:function(e,t,r){var n=this;return j.resolve().then(function(){return n.parse(e)}).then(function(e){return n.render(e,t,r)})["catch"](function(e){if(e instanceof x.RenderBreakError)return e.html;throw e})},renderFile:function(e,t,r){var n=this;return r=i.assign({},r),this.getTemplate(e,r.root).then(function(e){return n.render(e,t,r)})},evalOutput:function(e,t){var r=this.parser.parseOutput(e.trim());return this.renderer.evalOutput(r,t)},registerFilter:function(e,t){return this.filter.register(e,t)},registerTag:function(e,t){return this.tag.register(e,t)},lookup:function(e,t){t=this.options.root.concat(t||[]),t=i.uniq(t);var r=t.map(function(t){return l.resolve(t,e)});return w(r,function(e){return a(e).then(function(){return e})})["catch"](function(r){throw"ENOENT"===r.code&&(r.message="Failed to lookup "+e+" in: "+t),r})},getTemplate:function(e,t){var r=this;return l.extname(e)||(e+=this.options.extname),this.lookup(e,t).then(function(e){if(r.options.cache){var t=r.cache[e];return t?j.resolve(t):c(e).then(function(e){return r.parse(e)}).then(function(t){return r.cache[e]=t})}return c(e).then(function(t){return r.parse(t,e)})})},express:function(e){e=e||{};var t=this;return function(r,n,s){o(i.isArray(this.root)||i.isString(this.root),"illegal views root, are you using express.js?"),e.root=this.root,t.renderFile(r,n,e).then(function(e){return s(null,e)})["catch"](function(e){return s(e)})}}};r.lexical=p,r.isTruthy=v.isTruthy,r.isFalsy=v.isFalsy,r.evalExp=v.evalExp,r.evalValue=v.evalValue,r.Types={ParseError:x.ParseError,TokenizationEroor:x.TokenizationError,RenderBreakError:x.RenderBreakError,AssertionError:x.AssertionError},t.exports=r},{"./filters":1,"./src/filter.js":7,"./src/lexical.js":8,"./src/parser":10,"./src/render.js":11,"./src/scope":12,"./src/syntax.js":13,"./src/tag.js":14,"./src/tokenizer.js":15,"./src/util/assert.js":16,"./src/util/error.js":17,"./src/util/fs.js":18,"./src/util/promise.js":19,"./src/util/underscore.js":21,"./tags":32,"any-promise":3,path:6}],3:[function(e,t){"use strict";t.exports=e("./register")().Promise},{"./register":5}],4:[function(e,t){"use strict";var r="@@any-promise/REGISTRATION",n=null;t.exports=function(e,t){return function(s,i){s=s||null,i=i||{};var o=i.global!==!1;if(null===n&&o&&(n=e[r]||null),null!==n&&null!==s&&n.implementation!==s)throw new Error('any-promise already defined as "'+n.implementation+'". You can only register an implementation before the first call to require("any-promise") and an implementation cannot be changed');return null===n&&(n=null!==s&&"undefined"!=typeof i.Promise?{Promise:i.Promise,implementation:s}:t(s),o&&(e[r]=n)),n}}},{}],5:[function(e,t){"use strict";function r(){if("undefined"==typeof window.Promise)throw new Error("any-promise browser requires a polyfill or explicit registration e.g: require('any-promise/register/bluebird')");return{Promise:window.Promise,implementation:"window.Promise"}}t.exports=e("./loader")(window,r)},{"./loader":4}],6:[function(){"use strict"},{}],7:[function(e,t){"use strict";var r=e("./lexical.js"),n=e("./syntax.js"),s=e("./util/assert.js"),i=e("./util/underscore.js"),o=new RegExp(""+r.value.source,"g");t.exports=function(e){function t(e){var t=Object.create(l);return t.parse(e)}function u(e,t){c[e]=t}function a(){c={}}e=i.assign({},e);var c={},l={render:function(e,t){var r=this.args.map(function(e){return n.evalValue(e,t)});return r.unshift(e),this.filter.apply(null,r)},parse:function(t){var n=r.filterLine.exec(t);s(n,"illegal filter: "+t);var i=n[1],u=n[2]||"",a=c[i];if("function"!=typeof a){if(e.strict_filters)throw new TypeError("undefined filter: "+i);return this.name=i,this.filter=function(e){return e},this.args=[],this}for(var l=[];n=o.exec(u.trim());)l.push(n[0]);return this.name=i,this.filter=a,this.args=l,this}};return{construct:t,register:u,clear:a}}},{"./lexical.js":8,"./syntax.js":13,"./util/assert.js":16,"./util/underscore.js":21}],8:[function(e,t){"use strict";function r(e){return A.test(e)}function n(e){return S.test(e)}function s(e){return q.test(e)}function i(e){return R.test(e)}function o(e){return b.exec(e)}function u(e){var t;return(t=e.match(O))?Number(e):(t=e.match(M))?"true"===e.toLowerCase():(t=e.match(P))?e.slice(1,-1):void 0}var a=/'[^']*'/,c=/"[^"]*"/,l=new RegExp(a.source+"|"+c.source),f=new RegExp("(?:"+l.source+"|[^'\"])*"),p=/-?\d+/,h=/-?\d+\.?\d*|\.?\d+/,g=/true|false/,d=/[\w-]+/,v=new RegExp("\\[(?:"+l.source+"|[\\w-\\.]+)\\]"),m=new RegExp("(?:"+l.source+"|"+g.source+"|"+h.source+")"),y=new RegExp(d.source+"(?:\\."+d.source+"|"+v.source+")*"),j=new RegExp("(?:"+y.source+"|"+h.source+")"),w=new RegExp("\\("+j.source+"\\.\\."+j.source+"\\)"),x=new RegExp("\\(("+j.source+")\\.\\.("+j.source+")\\)"),b=new RegExp("(?:"+y.source+"|"+m.source+"|"+w.source+")"),E=new RegExp("(?:"+d.source+")\\s*:\\s*(?:"+b.source+")"),T=new RegExp("("+d.source+")\\s*:\\s*("+b.source+")","g"),k=new RegExp("^\\s*("+d.source+")\\s*(.*)\\s*$"),S=new RegExp("^"+m.source+"$","i"),R=new RegExp("^"+y.source+"$"),O=new RegExp("^"+h.source+"$"),M=new RegExp("^"+g.source+"$","i"),P=new RegExp("^"+l.source+"$"),q=new RegExp("^"+x.source+"$"),A=new RegExp("^"+p.source+"$"),L=new RegExp(b.source+"(\\s*,\\s*"+b.source+")*"),F=new RegExp(d.source+"(?:\\s*:\\s*"+L.source+")?","g"),_=new RegExp("("+d.source+")(?:\\s*:\\s*("+L.source+"))?"),D=new RegExp("^"+_.source+"$"),I=[/\s+or\s+/,/\s+and\s+/,/==|!=|<=|>=|<|>|\s+contains\s+/];t.exports={quoted:l,number:h,bool:g,literal:m,filter:F,integer:p,hash:E,hashCapture:T,range:w,rangeCapture:x,identifier:d,value:b,quoteBalanced:f,operators:I,quotedLine:P,numberLine:O,boolLine:M,rangeLine:q,literalLine:S,filterLine:D,tagLine:k,isLiteral:n,isVariable:i,parseLiteral:u,isRange:s,matchValue:o,isInteger:r}},{}],9:[function(e,t){"use strict";var r={"==":function(e,t){return e==t},"!=":function(e,t){return e!=t},">":function(e,t){return e>t},"<":function(e,t){return t>e},">=":function(e,t){return e>=t},"<=":function(e,t){return t>=e},contains:function(e,t){return e?"function"!=typeof e.indexOf?!1:e.indexOf(t)>-1:!1},and:function(e,t){return e&&t},or:function(e,t){return e||t}};t.exports=r},{}],10:[function(e,t){"use strict";var r=e("./lexical.js"),n=e("./util/error.js").ParseError,s=e("./util/assert.js");t.exports=function(e,t){function i(e){for(var t,r=[];t=e.shift();)r.push(o(t,e));return r}function o(e,t){try{var r=null;return r="tag"===e.type?u(e,t):"output"===e.type?a(e.value):e,r.token=e,r}catch(s){throw new n(s,e)}}function u(t,r){return"continue"===t.name||"break"===t.name?t:e.construct(t,r)}function a(e){var n=r.matchValue(e);s(n,"illegal output string: "+e);var i=n[0];e=e.substr(n.index+n[0].length);for(var o=[];n=r.filter.exec(e);)o.push([n[0].trim()]);return{type:"output",initial:i,filters:o.map(function(e){return t.construct(e)})}}function c(e){var t=Object.create(l);return t.init(e)}var l={init:function(e){return this.tokens=e,this.handlers={},this},on:function(e,t){return this.handlers[e]=t,this},trigger:function(e,t){var r=this.handlers[e];return"function"==typeof r?(r(t),!0):void 0},start:function(){this.trigger("start");for(var e;!this.stopRequested&&(e=this.tokens.shift());)if(!(this.trigger("token",e)||"tag"==e.type&&this.trigger("tag:"+e.name,e))){var t=o(e,this.tokens);this.trigger("template",t)}return this.stopRequested||this.trigger("end"),this},stop:function(){return this.stopRequested=!0,this}};return{parse:i,parseTag:u,parseStream:c,parseOutput:a}}},{"./lexical.js":8,"./util/assert.js":16,"./util/error.js":17}],11:[function(e,t){"use strict";function r(){var e=Object.create(l);return e}function n(e){return"string"==typeof e?e:JSON.stringify(e)}var s=e("./syntax.js"),i=e("any-promise"),o=e("./util/promise.js").mapSeries,u=e("./util/error.js").RenderBreakError,a=e("./util/error.js").RenderError,c=e("./util/assert.js"),l={renderTemplates:function(e,t){function r(e){var r=this;return"tag"===e.type?this.renderTag(e,t).then(function(e){return void 0===e?"":e}):"output"===e.type?i.resolve().then(function(){return r.evalOutput(e,t)}).then(function(e){return void 0===e?"":n(e)}):i.resolve(e.value)}var s=this;c(t,"unable to evalTemplates: scope undefined");var l="";return o(e,function(e){return r.call(s,e).then(function(e){return l+=e})["catch"](function(t){if(t instanceof u)throw t.resolvedHTML=l,t;throw new a(t,e)})}).then(function(){return l})},renderTag:function(e,t){return"continue"===e.name?i.reject(new u("continue")):"break"===e.name?i.reject(new u("break")):e.render(t)},evalOutput:function(e,t){return c(t,"unable to evalOutput: scope undefined"),e.filters.reduce(function(e,r){return r.render(e,t)},s.evalExp(e.initial,t))}};t.exports=r},{"./syntax.js":13,"./util/assert.js":16,"./util/error.js":17,"./util/promise.js":19,"any-promise":3}],12:[function(e,t,r){"use strict";function n(e,t){for(var r=1,n=t;n<e.length;n++)if("["===e[n]&&r++,"]"===e[n]&&(r--,0===r))return n;return-1}var s=e("./util/underscore.js"),i=e("./lexical.js"),o=e("./util/assert.js"),u={getAll:function(){for(var e={},t=this.scopes.length-1;t>=0;t--)s.assign(e,this.scopes[t]);return e},get:function(e){for(var t=this.scopes.length-1;t>=0;t--)try{return this.getPropertyByPath(this.scopes[t],e)}catch(r){if(/undefined variable/.test(r.message))continue;if(/Cannot read property/.test(r.message)){if(this.opts.strict_variables)throw r.message+=": "+e,r;continue}throw r.message+=": "+e,r}if(this.opts.strict_variables)throw new TypeError("undefined variable: "+e)},set:function(e,t){return this.setPropertyByPath(this.scopes[this.scopes.length-1],e,t),this},push:function(e){return o(e,"trying to push "+e+" into scopes"),this.scopes.push(e)},pop:function(){return this.scopes.pop()},unshift:function(e){return o(e,"trying to push "+e+" into scopes"),this.scopes.unshift(e)},shift:function(){return this.scopes.shift()},setPropertyByPath:function(e,t,r){if(s.isString(t))for(var n=t.replace(/\[/g,".").replace(/\]/g,"").split("."),i=0;i<n.length;i++){var o=n[i];if(i===n.length-1)return e[o]=r;void 0===e[o]&&(e[o]={}),e=e[o]||{}}},getPropertyByPath:function(e,t){var r=this.propertyAccessSeq(t+""),n=r.shift();if(!e.hasOwnProperty(n))throw new TypeError("undefined variable");var s=e[n];return r.forEach(function(e){return s=s[e]}),s},propertyAccessSeq:function(e){for(var t=[],r="",s=0;s<e.length;s++)if("["===e[s]){t.push(r),r="";var u=e[s+1];if("'"!==u&&'"'!==u){var a=n(e,s+1);o(-1!==a,"unbalanced []: "+e),r=e.slice(s+1,a),t.push(i.isInteger(r)?r:this.get(r)),r="",s=a}else a=e.indexOf(u,s+2),o(-1!==a,"unbalanced "+u+": "+e),r=e.slice(s+2,a),t.push(r),r="",s=a+1}else"."===e[s]?(t.push(r),r=""):r+=e[s];return r.length&&t.push(r),t}};r.factory=function(e,t){t=s.assign({strict_variables:!1,strict_filters:!1,blocks:{},root:[]},t),e=s.assign(e,{liquid:t});var r=Object.create(u);return r.opts=t,r.scopes=[e],r}},{"./lexical.js":8,"./util/assert.js":16,"./util/underscore.js":21}],13:[function(e,t){"use strict";function r(e,t){a(t,"unable to evalExp: scope undefined");for(var s,i=u.operators,c=0;c<i.length;c++){var l=i[c],f=new RegExp("^("+u.quoteBalanced.source+")("+l.source+")("+u.quoteBalanced.source+")$");if(s=e.match(f)){var p=r(s[1],t),h=o[s[2].trim()],g=r(s[3],t);return h(p,g)}}if(s=e.match(u.rangeLine)){for(var d=n(s[1],t),v=n(s[2],t),m=[],y=d;v>=y;y++)m.push(y);return m}return n(e,t)}function n(e,t){return e=e&&e.trim(),e?u.isLiteral(e)?u.parseLiteral(e):u.isVariable(e)?t.get(e):void 0:void 0}function s(e){return e instanceof Array?!!e.length:!!e}function i(e){return!s(e)}var o=e("./operators.js"),u=e("./lexical.js"),a=e("../src/util/assert.js");t.exports={evalExp:r,evalValue:n,isTruthy:s,isFalsy:i}},{"../src/util/assert.js":16,"./lexical.js":8,"./operators.js":9}],14:[function(e,t){"use strict";function r(e,t){var r,s={};for(n.hashCapture.lastIndex=0;r=n.hashCapture.exec(e);){var i=r[1],u=r[2];s[i]=o.evalValue(u,t)}return s}var n=e("./lexical.js"),s=e("./util/underscore.js"),i=e("any-promise"),o=e("./syntax.js"),u=e("./util/assert.js");t.exports=function(){function e(e,t){o[e]=t}function t(e,t){var r=Object.create(a);return r.parse(e,t),r}function n(){o={}}var o={},a={render:function(e){var t=r(this.token.args,e),n=this.tagImpl;return"function"!=typeof n.render?i.resolve(""):i.resolve().then(function(){return"function"==typeof n.render?n.render(e,t):""})["catch"](function(e){if(s.isError(e))throw e;var t="Please reject with an Error in "+n.render+", got "+e;throw new Error(t)})},parse:function(e,t){this.type="tag",this.token=e,this.name=e.name;var r=o[this.name];u(r,"tag "+this.name+" not found"),this.tagImpl=Object.create(r),this.tagImpl.parse&&this.tagImpl.parse(e,t)}};return{construct:t,register:e,clear:n}}},{"./lexical.js":8,"./syntax.js":13,"./util/assert.js":16,"./util/underscore.js":21,"any-promise":3}],15:[function(e,t,r){"use strict";function n(e,t,r){function n(r,n,s){return{type:r,raw:s[n],value:s[n+1].trim(),line:c(s),input:e,file:t}}function c(e){var t=e.input.slice(v+1,e.index).split("\n");return m+=t.length-1,v=e.index,m+1}a(u.isString(e),"illegal input type"),e=s(e,r);for(var l,f,p,h=[],g=/({%-?(.*?)-?%})|({{(.*?)}})/g,d=0,v=-1,m=0;null!==(l=g.exec(e));){if(l.index>d&&(f=e.slice(d,l.index),h.push({type:"html",raw:f,value:f})),l[1]){p=n("tag",1,l);var y=p.value.match(i.tagLine);if(!y)throw new o("illegal tag syntax",p);p.name=y[1],p.args=y[2],h.push(p)}else p=n("output",3,l),h.push(p);d=g.lastIndex}return e.length>d&&(f=e.slice(d,e.length),h.push({type:"html",raw:f,value:f})),h}function s(e,t){t=t||{},t.trim_left&&(e=e.replace(/{%-?/g,"{%-")),t.trim_right&&(e=e.replace(/-?%}/g,"-%}"));var r=t.greedy?/\s+({%-)/g:/[\t\r ]*({%-)/g,n=t.greedy?/(-%})\s+/g:/(-%})[\t\r ]*\n?/g;return e.replace(r,"$1").replace(n,"$1")}var i=e("./lexical.js"),o=e("./util/error.js").TokenizationError,u=e("./util/underscore.js"),a=e("../src/util/assert.js");r.parse=n,r.whiteSpaceCtrl=s},{"../src/util/assert.js":16,"./lexical.js":8,"./util/error.js":17,"./util/underscore.js":21}],16:[function(e,t){"use strict";function r(e,t){if(!e){if(t instanceof Error)throw t;var t=t||"expect "+e+" to be true";throw new n(t)}}var n=e("./error.js").AssertionError;t.exports=r},{"./error.js":17}],17:[function(e,t){"use strict";function r(e,t){Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.input=t.input,this.line=t.line,this.file=t.file;var r=u(t.input,t.line);this.message=c(e,t),this.stack=r+"\n"+(this.stack||"")}function n(e,t){l.assign(this,e),this.originalError=e,this.name=this.constructor.name,this.input=t.input,this.line=t.line,this.file=t.file;var r=u(t.input,t.line);this.message=c(e.message||"Unkown Error",t),this.stack=r+"\n"+(e.stack||"")}function s(e,t){if(e instanceof s)return e;l.assign(this,e),this.originalError=e,this.name=this.constructor.name,this.input=t.token.input,this.line=t.token.line,this.file=t.token.file;var r=u(t.token.input,t.token.line);this.message=c(e.message||"Unkown Error",t.token),this.stack=r+"\n"+(e.stack||"")}function i(e){Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.message=e||""}function o(e){Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.message=e}function u(e,t){var r=e.split("\n"),n=Math.max(t-2,1),s=Math.min(t+3,r.length),i=l.range(n,s+1).map(function(e){return[e===t?">> ":" ",a(e,s),"| ",r[e-1]].join("")}).join("\n");return i}function a(e,t){var r=(t+"").length,n=e+"",s=Array(r-n.length).join(" ");return s+n}function c(e,t){return e=e||"",t.file&&(e+=", file:"+t.file),t.line&&(e+=", line:"+t.line),e}var l=e("./underscore.js");r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,s.prototype=Object.create(Error.prototype),s.prototype.constructor=s,i.prototype=Object.create(Error.prototype),i.prototype.constructor=i,o.prototype=Object.create(Error.prototype),o.prototype.constructor=o,t.exports={TokenizationError:r,ParseError:n,RenderBreakError:i,AssertionError:o,RenderError:s}},{"./underscore.js":21}],18:[function(e,t){"use strict";function r(e){return new Promise(function(t,r){s.readFile(e,"utf8",function(e,n){e?r(e):t(n)})})}function n(e){return new Promise(function(t,r){s.stat(e,function(e,n){return e?r(e):t(n)})})}var s=e("fs");t.exports={readFileAsync:r,statFileAsync:n}},{fs:6}],19:[function(e,t,r){"use strict";function n(e,t){var r=i.reject(new Error("init"));return e.forEach(function(n,s){r=r["catch"](function(){return t(n,s,e)})}),r}function s(e,t){var r=i.resolve("init"),n=[];return e.forEach(function(s,i){r=r.then(function(){return t(s,i,e)}).then(function(e){return n.push(e)})}),r.then(function(){return n})}var i=e("any-promise");r.anySeries=n,r.mapSeries=s},{"any-promise":3}],20:[function(e,t){"use strict";var r=["January","February","March","April","May","June","July","August","September","October","November","December"],n=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],s=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],i=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],o={1:"st",2:"nd",3:"rd","default":"th"},u={daysInMonth:function(e){var t=u.isLeapYear(e)?29:28;return[31,t,31,30,31,30,31,31,30,31,30,31]},getDayOfYear:function(e){for(var t=0,r=0;r<e.getMonth();++r)t+=u.daysInMonth(e)[r];return t+e.getDate()},getWeekOfYear:function(e,t){var r=this.getDayOfYear(e)+(t-e.getDay()),n=new Date(e.getFullYear(),0,1),s=7-n.getDay()+t;return a.pad(Math.floor((r-s)/7)+1,2)},isLeapYear:function(e){var t=e.getFullYear();return!(0!==(3&t)||!(t%100||t%400===0&&t))},getSuffix:function(e){var t=e.getDate().toString(),r=parseInt(t.slice(-1));return o[r]||o["default"]},century:function(e){return parseInt(e.getFullYear().toString().substring(0,2),10)}},a={pad:function f(e,t,r){r||(r="0");for(var n=e.toString(),f=t-n.length;f-->0;)n=r+n;return n}},c={a:function(e){return i[e.getDay()]},A:function(e){return s[e.getDay()]},b:function(e){return n[e.getMonth()]},B:function(e){return r[e.getMonth()]},c:function(e){return e.toLocaleString()},C:function(e){return u.century(e)},d:function(e){return a.pad(e.getDate(),2)},e:function(e){return a.pad(e.getDate(),2," ")},H:function(e){return a.pad(e.getHours(),2)},I:function(e){return a.pad(e.getHours()%12||12,2)},j:function(e){return a.pad(u.getDayOfYear(e),3)},k:function(e){return a.pad(e.getHours(),2," ")},l:function(e){return a.pad(e.getHours()%12||12,2," ")},L:function(e){return a.pad(e.getMilliseconds(),3)},m:function(e){return a.pad(e.getMonth()+1,2)},M:function(e){return a.pad(e.getMinutes(),2)},p:function(e){return e.getHours()<12?"AM":"PM"},P:function(e){return e.getHours()<12?"am":"pm"},q:function(e){return u.getSuffix(e)},s:function(e){return Math.round(e.valueOf()/1e3)},S:function(e){return a.pad(e.getSeconds(),2)},u:function(e){return e.getDay()||7},U:function(e){return u.getWeekOfYear(e,0)},w:function(e){return e.getDay()},W:function(e){return u.getWeekOfYear(e,1)},x:function(e){return e.toLocaleDateString()},X:function(e){return e.toLocaleTimeString()},y:function(e){return e.getFullYear().toString().substring(2,4)},Y:function(e){return e.getFullYear()},z:function(e){var t=e.getTimezoneOffset()/60*100;return(t>0?"-":"+")+a.pad(Math.abs(t),4)},"%":function(){return"%"}};c.h=c.b,c.N=c.L;var l=function(e,t){for(var r="",n=t;;){var s=/%./g,i=s.exec(n);if(!i)return r+n;r+=n.slice(0,s.lastIndex-2),n=n.slice(s.lastIndex);var o=i[0].charAt(1),u=c[o];r+=u?u.call(this,e):"%"+o}};t.exports=l},{}],21:[function(e,t,r){"use strict";function n(e){return e instanceof String||"string"==typeof e}function s(e){var t=Object.prototype.toString.call(e);return"Error"===t.substr(-6,5)||"string"==typeof e.message&&"string"==typeof e.name}function i(e,t){e=e||{};for(var r in e)if(e.hasOwnProperty(r)&&t(e[r],r,e)===!1)break;return e}function o(e){e=f(e)?e:{};var t=Array.prototype.slice.call(arguments,1);return t.forEach(function(t){u(e,t)}),e}function u(e,t){return e?(i(t,function(t,r){e[r]=t}),e):e}function a(e){return e instanceof Array}function c(e){return function(t){return console.log("["+e+"]",t),t}}function l(e){for(var t={},r=[],n=0,s=e.length;s>n;++n)t.hasOwnProperty(e[n])||(r.push(e[n]),t[e[n]]=1);return r}function f(e){return null!==e&&"object"===("undefined"==typeof e?"undefined":h(e))}function p(e,t,r){1===arguments.length&&(t=e,e=0),r=r||1;for(var n=[],s=e;t>s;s+=r)n.push(s);return n}var h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e};r.isString=n,r.isArray=a,r.isObject=f,r.isError=s,r.range=p,r.forOwn=i,r.assign=o,r.uniq=l,r.echo=c},{}],22:[function(e,t){"use strict";var r=e(".."),n=r.lexical,s=e("any-promise"),i=new RegExp("("+n.identifier.source+")\\s*=(.*)"),o=e("../src/util/assert.js");t.exports=function(e){e.registerTag("assign",{parse:function(e){var t=e.args.match(i);o(t,"illegal token "+e.raw),this.key=t[1],this.value=t[2]},render:function(t){return t.set(this.key,e.evalOutput(this.value,t)),s.resolve("")}})}},{"..":2,"../src/util/assert.js":16,"any-promise":3}],23:[function(e,t){"use strict";var r=e(".."),n=r.lexical,s=new RegExp("("+n.identifier.source+")"),i=e("../src/util/assert.js");t.exports=function(e){e.registerTag("capture",{parse:function(t,r){var n=this,o=t.args.match(s);i(o,t.args+" not valid identifier"),this.variable=o[1],this.templates=[];var u=e.parser.parseStream(r);u.on("tag:endcapture",function(){return u.stop()}).on("template",function(e){return n.templates.push(e)}).on("end",function(){throw new Error("tag "+t.raw+" not closed")}),u.start()},render:function(t){var r=this;return e.renderer.renderTemplates(this.templates,t).then(function(e){t.set(r.variable,e)})}})}},{"..":2,"../src/util/assert.js":16}],24:[function(e,t){"use strict";{var r=e("..");e("../src/util/assert.js")}t.exports=function(e){e.registerTag("case",{parse:function(t,r){var n=this;this.cond=t.args,this.cases=[],this.elseTemplates=[];var s=[],i=e.parser.parseStream(r).on("tag:when",function(e){n.cases[e.args]||n.cases.push({val:e.args,templates:s=[]})}).on("tag:else",function(){return s=n.elseTemplates}).on("tag:endcase",function(){return i.stop()}).on("template",function(e){return s.push(e)}).on("end",function(){throw new Error("tag "+t.raw+" not closed")});i.start()},render:function(t){for(var n=0;n<this.cases.length;n++){var s=this.cases[n],i=r.evalExp(s.val,t),o=r.evalExp(this.cond,t);if(i===o)return e.renderer.renderTemplates(s.templates,t)}return e.renderer.renderTemplates(this.elseTemplates,t)}})}},{"..":2,"../src/util/assert.js":16}],25:[function(e,t){"use strict";t.exports=function(e){e.registerTag("comment",{parse:function(t,r){var n=e.parser.parseStream(r);n.on("token",function(e){"endcomment"===e.name&&n.stop()}).on("end",function(){throw new Error("tag "+t.raw+" not closed")}),n.start()}})}},{}],26:[function(e,t){"use strict";var r=e(".."),n=e("any-promise"),s=r.lexical,i=new RegExp("^(?:("+s.value.source+")\\s*:\\s*)?(.*)$"),o=new RegExp(s.value.source,"g"),u=e("../src/util/assert.js");t.exports=function(e){e.registerTag("cycle",{parse:function(e){var t=i.exec(e.args);u(t,"illegal tag: "+e.raw),this.group=t[1]||"";var r=t[2];for(this.candidates=[];t=o.exec(r);)this.candidates.push(t[0]);u(this.candidates.length,"empty candidates: "+e.raw)},render:function(e){var t=r.evalValue(this.group,e),s="cycle:"+t+":"+this.candidates.join(","),i=e.get("liquid"),o=i[s];void 0===o&&(o=i[s]=0);var u=this.candidates[o];return o=(o+1)%this.candidates.length,i[s]=o,n.resolve(r.evalValue(u,e))}})}},{"..":2,"../src/util/assert.js":16,"any-promise":3}],27:[function(e,t){"use strict";var r=e(".."),n=r.lexical,s=e("../src/util/assert.js");t.exports=function(e){e.registerTag("decrement",{parse:function(e){var t=e.args.match(n.identifier);s(t,"illegal identifier "+e.args),this.variable=t[0]},render:function(e){var t=e.get(this.variable);"number"!=typeof t&&(t=0),e.set(this.variable,t-1)}})}},{"..":2,"../src/util/assert.js":16}],28:[function(e,t){"use strict";var r=e(".."),n=r.lexical,s=e("../src/util/promise.js").mapSeries,i=r.Types.RenderBreakError,o=e("../src/util/assert.js"),u=new RegExp("^("+n.identifier.source+")\\s+in\\s+"+("("+n.value.source+")")+("(?:\\s+"+n.hash.source+")*")+"(?:\\s+(reversed))?"+("(?:\\s+"+n.hash.source+")*$"));t.exports=function(e){e.registerTag("for",{parse:function(t,r){var n=this,s=u.exec(t.args);o(s,"illegal tag: "+t.raw),this.variable=s[1],this.collection=s[2],this.reversed=!!s[3],this.templates=[],this.elseTemplates=[];var i,a=e.parser.parseStream(r).on("start",function(){return i=n.templates}).on("tag:else",function(){return i=n.elseTemplates}).on("tag:endfor",function(){return a.stop()}).on("template",function(e){return i.push(e)}).on("end",function(){throw new Error("tag "+t.raw+" not closed")});a.start()},render:function(t,n){var o=this,u=r.evalExp(this.collection,t);if(r.isFalsy(u))return e.renderer.renderTemplates(this.elseTemplates,t);var a=u.length,c=n.offset||0,l=void 0===n.limit?u.length:n.limit;u=u.slice(c,c+l),this.reversed&&u.reverse();var f=u.map(function(e,t){var r={};return r[o.variable]=e,r.forloop={first:0===t,index:t+1,index0:t,last:t===a-1,length:a,rindex:a-t,rindex0:a-t-1,stop:!1,skip:!1},r}),p="";return s(f,function(r){return t.push(r),e.renderer.renderTemplates(o.templates,t).then(function(e){return p+=e})["catch"](function(e){if(!(e instanceof i&&(p+=e.resolvedHTML,"continue"===e.message)))throw e}).then(function(){return t.pop()})})["catch"](function(e){if(!(e instanceof i&&"break"===e.message))throw e}).then(function(){return p})}})}},{"..":2,"../src/util/assert.js":16,"../src/util/promise.js":19}],29:[function(e,t){"use strict";var r=e("..");t.exports=function(e){e.registerTag("if",{parse:function(t,r){var n=this;this.branches=[],this.elseTemplates=[];var s,i=e.parser.parseStream(r).on("start",function(){return n.branches.push({cond:t.args,templates:s=[]})}).on("tag:elsif",function(e){n.branches[e.args]||n.branches.push({cond:e.args,templates:s=[]})}).on("tag:else",function(){return s=n.elseTemplates}).on("tag:endif",function(){return i.stop()}).on("template",function(e){return s.push(e)}).on("end",function(){throw new Error("tag "+t.raw+" not closed")});i.start()},render:function(t){for(var n=0;n<this.branches.length;n++){var s=this.branches[n],i=r.evalExp(s.cond,t);if(r.isTruthy(i))return e.renderer.renderTemplates(s.templates,t)}return e.renderer.renderTemplates(this.elseTemplates,t)}})}},{"..":2}],30:[function(e,t){"use strict";var r=e(".."),n=r.lexical,s=new RegExp("with\\s+("+n.value.source+")"),i=e("../src/util/assert.js");t.exports=function(e){e.registerTag("include",{parse:function(e){var t=n.value.exec(e.args);i(t,"illegal token "+e.raw),this.value=t[0],t=s.exec(e.args),t&&(this["with"]=t[1])},render:function(t,n){var s=r.evalValue(this.value,t),i=t.get("liquid"),o=i.blocks;return i.blocks={},this["with"]&&(n[s]=r.evalValue(this["with"],t)),e.getTemplate(s,i.root).then(function(r){return t.push(n),e.renderer.renderTemplates(r,t)}).then(function(e){return t.pop(),i.blocks=o,e})}})}},{"..":2,"../src/util/assert.js":16}],31:[function(e,t){"use strict";var r=e(".."),n=e("../src/util/assert.js"),s=r.lexical;t.exports=function(e){e.registerTag("increment",{parse:function(e){var t=e.args.match(s.identifier);
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.Liquid=e()}}(function(){return function e(t,r,n){function s(o,u){if(!r[o]){if(!t[o]){var a="function"==typeof require&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var c=new Error("Cannot find module '"+o+"'");throw c.code="MODULE_NOT_FOUND",c}var l=r[o]={exports:{}};t[o][0].call(l.exports,function(e){var r=t[o][1][e];return s(r?r:e)},l,l.exports,e,t,r,n)}return r[o].exports}for(var i="function"==typeof require&&require,o=0;o<n.length;o++)s(n[o]);return s}({1:[function(e,t){"use strict";function r(e){return o(e).replace(/&|<|>|"|'/g,function(e){return f[e]})}function n(e){return o(e).replace(/&(amp|lt|gt|#34|#39);/g,function(e){return p[e]})}function s(e){var t=(e+"").split(".");return t.length>1?t[1].length:0}function i(e,t){return Math.max(s(e),s(t))}function o(e){return e=e||"",e+""}function u(e){return function(t,r){var n=i(t,r);return e(t,r).toFixed(n)}}function a(e){return l.forOwn(h,function(t,r){return e.registerFilter(r,t)})}var c=e("./src/util/strftime.js"),l=e("./src/util/underscore.js"),f={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&#34;","'":"&#39;"},p={"&amp;":"&","&lt;":"<","&gt;":">","&#34;":'"',"&#39;":"'"},h={abs:function(e){return Math.abs(e)},append:function(e,t){return e+t},capitalize:function(e){return o(e).charAt(0).toUpperCase()+e.slice(1)},ceil:function(e){return Math.ceil(e)},date:function(e,t){return"now"===e&&(e=new Date),e instanceof Date?c(e,t):""},"default":function(e,t){return e||t},divided_by:function(e,t){return Math.floor(e/t)},downcase:function(e){return e.toLowerCase()},escape:r,escape_once:function(e){return r(n(e))},first:function(e){return e[0]},floor:function(e){return Math.floor(e)},join:function(e,t){return e.join(t)},last:function(e){return e[e.length-1]},lstrip:function(e){return o(e).replace(/^\s+/,"")},map:function(e,t){return e.map(function(e){return e[t]})},minus:u(function(e,t){return e-t}),modulo:u(function(e,t){return e%t}),newline_to_br:function(e){return e.replace(/\n/g,"<br />")},plus:u(function(e,t){return Number(e)+Number(t)}),prepend:function(e,t){return t+e},remove:function(e,t){return e.split(t).join("")},remove_first:function(e,t){return e.replace(t,"")},replace:function(e,t,r){return o(e).split(t).join(r)},replace_first:function(e,t,r){return o(e).replace(t,r)},reverse:function(e){return e.reverse()},round:function(e,t){var r=Math.pow(10,t||0);return Math.round(e*r,t)/r},rstrip:function(e){return o(e).replace(/\s+$/,"")},size:function(e){return e.length},slice:function(e,t,r){return e.substr(t,void 0===r?1:r)},sort:function(e,t){return e.sort(t)},split:function(e,t){return o(e).split(t)},strip:function(e){return o(e).trim()},strip_html:function(e){return o(e).replace(/<\/?\s*\w+\s*\/?>/g,"")},strip_newlines:function(e){return o(e).replace(/\n/g,"")},times:function(e,t){return e*t},truncate:function(e,t,r){return e=o(e),r=void 0===r?"...":r,t=t||16,e.length<=t?e:e.substr(0,t-r.length)+r},truncatewords:function(e,t,r){void 0===r&&(r="...");var n=e.split(" "),s=n.slice(0,t).join(" ");return n.length>t&&(s+=r),s},uniq:function(e){var t={};return(e||[]).filter(function(e){return t.hasOwnProperty(e)?!1:(t[e]=!0,!0)})},upcase:function(e){return o(e).toUpperCase()},url_encode:encodeURIComponent};a.filters=h,t.exports=a},{"./src/util/strftime.js":20,"./src/util/underscore.js":21}],2:[function(e,t){"use strict";function r(e){e=i.assign({root:["."],cache:!1,extname:".liquid",trim_right:!1,trim_left:!1,strict_filters:!1,strict_variables:!1},e),e.root=n(e.root);var t=Object.create(b);return t.init(h(),g(e),e),t}function n(e){return i.isArray(e)?e:i.isString(e)?[e]:[]}var s=e("./src/scope"),i=e("./src/util/underscore.js"),o=e("./src/util/assert.js"),u=e("./src/tokenizer.js"),a=e("./src/util/fs.js").statFileAsync,c=e("./src/util/fs.js").readFileAsync,l=e("path"),f=e("./src/render.js"),p=e("./src/lexical.js"),h=e("./src/tag.js"),g=e("./src/filter.js"),d=e("./src/parser"),v=e("./src/syntax.js"),m=e("./tags"),y=e("./filters"),j=e("any-promise"),w=e("./src/util/promise.js").anySeries,x=e("./src/util/error.js"),b={init:function(e,t,r){return r.cache&&(this.cache={}),this.options=r,this.tag=e,this.filter=t,this.parser=d(e,t),this.renderer=f(),m(this),y(this),this},parse:function(e,t){var r=u.parse(e,t,this.options);return this.parser.parse(r)},render:function(e,t,r){r=i.assign({},this.options,r);var n=s.factory(t,r);return this.renderer.renderTemplates(e,n)},parseAndRender:function(e,t,r){var n=this;return j.resolve().then(function(){return n.parse(e)}).then(function(e){return n.render(e,t,r)})["catch"](function(e){if(e instanceof x.RenderBreakError)return e.html;throw e})},renderFile:function(e,t,r){var n=this;return r=i.assign({},r),this.getTemplate(e,r.root).then(function(e){return n.render(e,t,r)})},evalOutput:function(e,t){var r=this.parser.parseOutput(e.trim());return this.renderer.evalOutput(r,t)},registerFilter:function(e,t){return this.filter.register(e,t)},registerTag:function(e,t){return this.tag.register(e,t)},lookup:function(e,t){t=this.options.root.concat(t||[]),t=i.uniq(t);var r=t.map(function(t){return l.resolve(t,e)});return w(r,function(e){return a(e).then(function(){return e})})["catch"](function(r){throw"ENOENT"===r.code&&(r.message="Failed to lookup "+e+" in: "+t),r})},getTemplate:function(e,t){var r=this;return l.extname(e)||(e+=this.options.extname),this.lookup(e,t).then(function(e){if(r.options.cache){var t=r.cache[e];return t?j.resolve(t):c(e).then(function(e){return r.parse(e)}).then(function(t){return r.cache[e]=t})}return c(e).then(function(t){return r.parse(t,e)})})},express:function(e){e=e||{};var t=this;return function(r,n,s){o(i.isArray(this.root)||i.isString(this.root),"illegal views root, are you using express.js?"),e.root=this.root,t.renderFile(r,n,e).then(function(e){return s(null,e)})["catch"](function(e){return s(e)})}}};r.lexical=p,r.isTruthy=v.isTruthy,r.isFalsy=v.isFalsy,r.evalExp=v.evalExp,r.evalValue=v.evalValue,r.Types={ParseError:x.ParseError,TokenizationEroor:x.TokenizationError,RenderBreakError:x.RenderBreakError,AssertionError:x.AssertionError},t.exports=r},{"./filters":1,"./src/filter.js":7,"./src/lexical.js":8,"./src/parser":10,"./src/render.js":11,"./src/scope":12,"./src/syntax.js":13,"./src/tag.js":14,"./src/tokenizer.js":15,"./src/util/assert.js":16,"./src/util/error.js":17,"./src/util/fs.js":18,"./src/util/promise.js":19,"./src/util/underscore.js":21,"./tags":32,"any-promise":3,path:6}],3:[function(e,t){"use strict";t.exports=e("./register")().Promise},{"./register":5}],4:[function(e,t){"use strict";var r="@@any-promise/REGISTRATION",n=null;t.exports=function(e,t){return function(s,i){s=s||null,i=i||{};var o=i.global!==!1;if(null===n&&o&&(n=e[r]||null),null!==n&&null!==s&&n.implementation!==s)throw new Error('any-promise already defined as "'+n.implementation+'". You can only register an implementation before the first call to require("any-promise") and an implementation cannot be changed');return null===n&&(n=null!==s&&"undefined"!=typeof i.Promise?{Promise:i.Promise,implementation:s}:t(s),o&&(e[r]=n)),n}}},{}],5:[function(e,t){"use strict";function r(){if("undefined"==typeof window.Promise)throw new Error("any-promise browser requires a polyfill or explicit registration e.g: require('any-promise/register/bluebird')");return{Promise:window.Promise,implementation:"window.Promise"}}t.exports=e("./loader")(window,r)},{"./loader":4}],6:[function(){"use strict"},{}],7:[function(e,t){"use strict";var r=e("./lexical.js"),n=e("./syntax.js"),s=e("./util/assert.js"),i=e("./util/underscore.js"),o=new RegExp(""+r.value.source,"g");t.exports=function(e){function t(e){var t=Object.create(l);return t.parse(e)}function u(e,t){c[e]=t}function a(){c={}}e=i.assign({},e);var c={},l={render:function(e,t){var r=this.args.map(function(e){return n.evalValue(e,t)});return r.unshift(e),this.filter.apply(null,r)},parse:function(t){var n=r.filterLine.exec(t);s(n,"illegal filter: "+t);var i=n[1],u=n[2]||"",a=c[i];if("function"!=typeof a){if(e.strict_filters)throw new TypeError("undefined filter: "+i);return this.name=i,this.filter=function(e){return e},this.args=[],this}for(var l=[];n=o.exec(u.trim());){var f=n[0],p=new RegExp(f+"\\s*:","g");l.push(p.test(n.input)?"'"+f+"'":f)}return this.name=i,this.filter=a,this.args=l,this}};return{construct:t,register:u,clear:a}}},{"./lexical.js":8,"./syntax.js":13,"./util/assert.js":16,"./util/underscore.js":21}],8:[function(e,t){"use strict";function r(e){return A.test(e)}function n(e){return S.test(e)}function s(e){return q.test(e)}function i(e){return R.test(e)}function o(e){return b.exec(e)}function u(e){var t;return(t=e.match(O))?Number(e):(t=e.match(M))?"true"===e.toLowerCase():(t=e.match(P))?e.slice(1,-1):void 0}var a=/'[^']*'/,c=/"[^"]*"/,l=new RegExp(a.source+"|"+c.source),f=new RegExp("(?:"+l.source+"|[^'\"])*"),p=/-?\d+/,h=/-?\d+\.?\d*|\.?\d+/,g=/true|false/,d=/[\w-]+/,v=new RegExp("\\[(?:"+l.source+"|[\\w-\\.]+)\\]"),m=new RegExp("(?:"+l.source+"|"+g.source+"|"+h.source+")"),y=new RegExp(d.source+"(?:\\."+d.source+"|"+v.source+")*"),j=new RegExp("(?:"+y.source+"|"+h.source+")"),w=new RegExp("\\("+j.source+"\\.\\."+j.source+"\\)"),x=new RegExp("\\(("+j.source+")\\.\\.("+j.source+")\\)"),b=new RegExp("(?:"+y.source+"|"+m.source+"|"+w.source+")"),E=new RegExp("(?:"+d.source+")\\s*:\\s*(?:"+b.source+")"),T=new RegExp("("+d.source+")\\s*:\\s*("+b.source+")","g"),k=new RegExp("^\\s*("+d.source+")\\s*(.*)\\s*$"),S=new RegExp("^"+m.source+"$","i"),R=new RegExp("^"+y.source+"$"),O=new RegExp("^"+h.source+"$"),M=new RegExp("^"+g.source+"$","i"),P=new RegExp("^"+l.source+"$"),q=new RegExp("^"+x.source+"$"),A=new RegExp("^"+p.source+"$"),L=new RegExp("(?:"+d.source+"\\s*:\\s*)?"+b.source),F=new RegExp(L.source+"(\\s*,\\s*"+L.source+")*"),_=new RegExp(d.source+"(?:\\s*:\\s*"+F.source+")?","g"),D=new RegExp("("+d.source+")(?:\\s*:\\s*("+F.source+"))?"),I=new RegExp("^"+D.source+"$"),$=[/\s+or\s+/,/\s+and\s+/,/==|!=|<=|>=|<|>|\s+contains\s+/];t.exports={quoted:l,number:h,bool:g,literal:m,filter:_,integer:p,hash:E,hashCapture:T,range:w,rangeCapture:x,identifier:d,value:b,quoteBalanced:f,operators:$,quotedLine:P,numberLine:O,boolLine:M,rangeLine:q,literalLine:S,filterLine:I,tagLine:k,isLiteral:n,isVariable:i,parseLiteral:u,isRange:s,matchValue:o,isInteger:r}},{}],9:[function(e,t){"use strict";var r={"==":function(e,t){return e==t},"!=":function(e,t){return e!=t},">":function(e,t){return e>t},"<":function(e,t){return t>e},">=":function(e,t){return e>=t},"<=":function(e,t){return t>=e},contains:function(e,t){return e?"function"!=typeof e.indexOf?!1:e.indexOf(t)>-1:!1},and:function(e,t){return e&&t},or:function(e,t){return e||t}};t.exports=r},{}],10:[function(e,t){"use strict";var r=e("./lexical.js"),n=e("./util/error.js").ParseError,s=e("./util/assert.js");t.exports=function(e,t){function i(e){for(var t,r=[];t=e.shift();)r.push(o(t,e));return r}function o(e,t){try{var r=null;return r="tag"===e.type?u(e,t):"output"===e.type?a(e.value):e,r.token=e,r}catch(s){throw new n(s,e)}}function u(t,r){return"continue"===t.name||"break"===t.name?t:e.construct(t,r)}function a(e){var n=r.matchValue(e);s(n,"illegal output string: "+e);var i=n[0];e=e.substr(n.index+n[0].length);for(var o=[];n=r.filter.exec(e);)o.push([n[0].trim()]);return{type:"output",initial:i,filters:o.map(function(e){return t.construct(e)})}}function c(e){var t=Object.create(l);return t.init(e)}var l={init:function(e){return this.tokens=e,this.handlers={},this},on:function(e,t){return this.handlers[e]=t,this},trigger:function(e,t){var r=this.handlers[e];return"function"==typeof r?(r(t),!0):void 0},start:function(){this.trigger("start");for(var e;!this.stopRequested&&(e=this.tokens.shift());)if(!(this.trigger("token",e)||"tag"==e.type&&this.trigger("tag:"+e.name,e))){var t=o(e,this.tokens);this.trigger("template",t)}return this.stopRequested||this.trigger("end"),this},stop:function(){return this.stopRequested=!0,this}};return{parse:i,parseTag:u,parseStream:c,parseOutput:a}}},{"./lexical.js":8,"./util/assert.js":16,"./util/error.js":17}],11:[function(e,t){"use strict";function r(){var e=Object.create(l);return e}function n(e){return"string"==typeof e?e:JSON.stringify(e)}var s=e("./syntax.js"),i=e("any-promise"),o=e("./util/promise.js").mapSeries,u=e("./util/error.js").RenderBreakError,a=e("./util/error.js").RenderError,c=e("./util/assert.js"),l={renderTemplates:function(e,t){function r(e){var r=this;return"tag"===e.type?this.renderTag(e,t).then(function(e){return void 0===e?"":e}):"output"===e.type?i.resolve().then(function(){return r.evalOutput(e,t)}).then(function(e){return void 0===e?"":n(e)}):i.resolve(e.value)}var s=this;c(t,"unable to evalTemplates: scope undefined");var l="";return o(e,function(e){return r.call(s,e).then(function(e){return l+=e})["catch"](function(t){if(t instanceof u)throw t.resolvedHTML=l,t;throw new a(t,e)})}).then(function(){return l})},renderTag:function(e,t){return"continue"===e.name?i.reject(new u("continue")):"break"===e.name?i.reject(new u("break")):e.render(t)},evalOutput:function(e,t){return c(t,"unable to evalOutput: scope undefined"),e.filters.reduce(function(e,r){return r.render(e,t)},s.evalExp(e.initial,t))}};t.exports=r},{"./syntax.js":13,"./util/assert.js":16,"./util/error.js":17,"./util/promise.js":19,"any-promise":3}],12:[function(e,t,r){"use strict";function n(e,t){for(var r=1,n=t;n<e.length;n++)if("["===e[n]&&r++,"]"===e[n]&&(r--,0===r))return n;return-1}var s=e("./util/underscore.js"),i=e("./lexical.js"),o=e("./util/assert.js"),u={getAll:function(){for(var e={},t=this.scopes.length-1;t>=0;t--)s.assign(e,this.scopes[t]);return e},get:function(e){for(var t=this.scopes.length-1;t>=0;t--)try{return this.getPropertyByPath(this.scopes[t],e)}catch(r){if(/undefined variable/.test(r.message))continue;if(/Cannot read property/.test(r.message)){if(this.opts.strict_variables)throw r.message+=": "+e,r;continue}throw r.message+=": "+e,r}if(this.opts.strict_variables)throw new TypeError("undefined variable: "+e)},set:function(e,t){return this.setPropertyByPath(this.scopes[this.scopes.length-1],e,t),this},push:function(e){return o(e,"trying to push "+e+" into scopes"),this.scopes.push(e)},pop:function(){return this.scopes.pop()},unshift:function(e){return o(e,"trying to push "+e+" into scopes"),this.scopes.unshift(e)},shift:function(){return this.scopes.shift()},setPropertyByPath:function(e,t,r){if(s.isString(t))for(var n=t.replace(/\[/g,".").replace(/\]/g,"").split("."),i=0;i<n.length;i++){var o=n[i];if(i===n.length-1)return e[o]=r;void 0===e[o]&&(e[o]={}),e=e[o]||{}}},getPropertyByPath:function(e,t){var r=this.propertyAccessSeq(t+""),n=r.shift();if(!e.hasOwnProperty(n))throw new TypeError("undefined variable");var s=e[n];return r.forEach(function(e){return s=s[e]}),s},propertyAccessSeq:function(e){for(var t=[],r="",s=0;s<e.length;s++)if("["===e[s]){t.push(r),r="";var u=e[s+1];if("'"!==u&&'"'!==u){var a=n(e,s+1);o(-1!==a,"unbalanced []: "+e),r=e.slice(s+1,a),t.push(i.isInteger(r)?r:this.get(r)),r="",s=a}else a=e.indexOf(u,s+2),o(-1!==a,"unbalanced "+u+": "+e),r=e.slice(s+2,a),t.push(r),r="",s=a+1}else"."===e[s]?(t.push(r),r=""):r+=e[s];return r.length&&t.push(r),t}};r.factory=function(e,t){t=s.assign({strict_variables:!1,strict_filters:!1,blocks:{},root:[]},t),e=s.assign(e,{liquid:t});var r=Object.create(u);return r.opts=t,r.scopes=[e],r}},{"./lexical.js":8,"./util/assert.js":16,"./util/underscore.js":21}],13:[function(e,t){"use strict";function r(e,t){a(t,"unable to evalExp: scope undefined");for(var s,i=u.operators,c=0;c<i.length;c++){var l=i[c],f=new RegExp("^("+u.quoteBalanced.source+")("+l.source+")("+u.quoteBalanced.source+")$");if(s=e.match(f)){var p=r(s[1],t),h=o[s[2].trim()],g=r(s[3],t);return h(p,g)}}if(s=e.match(u.rangeLine)){for(var d=n(s[1],t),v=n(s[2],t),m=[],y=d;v>=y;y++)m.push(y);return m}return n(e,t)}function n(e,t){return e=e&&e.trim(),e?u.isLiteral(e)?u.parseLiteral(e):u.isVariable(e)?t.get(e):void 0:void 0}function s(e){return e instanceof Array?!!e.length:!!e}function i(e){return!s(e)}var o=e("./operators.js"),u=e("./lexical.js"),a=e("../src/util/assert.js");t.exports={evalExp:r,evalValue:n,isTruthy:s,isFalsy:i}},{"../src/util/assert.js":16,"./lexical.js":8,"./operators.js":9}],14:[function(e,t){"use strict";function r(e,t){var r,s={};for(n.hashCapture.lastIndex=0;r=n.hashCapture.exec(e);){var i=r[1],u=r[2];s[i]=o.evalValue(u,t)}return s}var n=e("./lexical.js"),s=e("./util/underscore.js"),i=e("any-promise"),o=e("./syntax.js"),u=e("./util/assert.js");t.exports=function(){function e(e,t){o[e]=t}function t(e,t){var r=Object.create(a);return r.parse(e,t),r}function n(){o={}}var o={},a={render:function(e){var t=r(this.token.args,e),n=this.tagImpl;return"function"!=typeof n.render?i.resolve(""):i.resolve().then(function(){return"function"==typeof n.render?n.render(e,t):""})["catch"](function(e){if(s.isError(e))throw e;var t="Please reject with an Error in "+n.render+", got "+e;throw new Error(t)})},parse:function(e,t){this.type="tag",this.token=e,this.name=e.name;var r=o[this.name];u(r,"tag "+this.name+" not found"),this.tagImpl=Object.create(r),this.tagImpl.parse&&this.tagImpl.parse(e,t)}};return{construct:t,register:e,clear:n}}},{"./lexical.js":8,"./syntax.js":13,"./util/assert.js":16,"./util/underscore.js":21,"any-promise":3}],15:[function(e,t,r){"use strict";function n(e,t,r){function n(r,n,s){return{type:r,raw:s[n],value:s[n+1].trim(),line:c(s),input:e,file:t}}function c(e){var t=e.input.slice(v+1,e.index).split("\n");return m+=t.length-1,v=e.index,m+1}a(u.isString(e),"illegal input type"),e=s(e,r);for(var l,f,p,h=[],g=/({%-?(.*?)-?%})|({{(.*?)}})/g,d=0,v=-1,m=0;null!==(l=g.exec(e));){if(l.index>d&&(f=e.slice(d,l.index),h.push({type:"html",raw:f,value:f})),l[1]){p=n("tag",1,l);var y=p.value.match(i.tagLine);if(!y)throw new o("illegal tag syntax",p);p.name=y[1],p.args=y[2],h.push(p)}else p=n("output",3,l),h.push(p);d=g.lastIndex}return e.length>d&&(f=e.slice(d,e.length),h.push({type:"html",raw:f,value:f})),h}function s(e,t){t=t||{},t.trim_left&&(e=e.replace(/{%-?/g,"{%-")),t.trim_right&&(e=e.replace(/-?%}/g,"-%}"));var r=t.greedy?/\s+({%-)/g:/[\t\r ]*({%-)/g,n=t.greedy?/(-%})\s+/g:/(-%})[\t\r ]*\n?/g;return e.replace(r,"$1").replace(n,"$1")}var i=e("./lexical.js"),o=e("./util/error.js").TokenizationError,u=e("./util/underscore.js"),a=e("../src/util/assert.js");r.parse=n,r.whiteSpaceCtrl=s},{"../src/util/assert.js":16,"./lexical.js":8,"./util/error.js":17,"./util/underscore.js":21}],16:[function(e,t){"use strict";function r(e,t){if(!e){if(t instanceof Error)throw t;var t=t||"expect "+e+" to be true";throw new n(t)}}var n=e("./error.js").AssertionError;t.exports=r},{"./error.js":17}],17:[function(e,t){"use strict";function r(e,t){Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.input=t.input,this.line=t.line,this.file=t.file;var r=u(t.input,t.line);this.message=c(e,t),this.stack=r+"\n"+(this.stack||"")}function n(e,t){l.assign(this,e),this.originalError=e,this.name=this.constructor.name,this.input=t.input,this.line=t.line,this.file=t.file;var r=u(t.input,t.line);this.message=c(e.message||"Unkown Error",t),this.stack=r+"\n"+(e.stack||"")}function s(e,t){if(e instanceof s)return e;l.assign(this,e),this.originalError=e,this.name=this.constructor.name,this.input=t.token.input,this.line=t.token.line,this.file=t.token.file;var r=u(t.token.input,t.token.line);this.message=c(e.message||"Unkown Error",t.token),this.stack=r+"\n"+(e.stack||"")}function i(e){Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.message=e||""}function o(e){Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.message=e}function u(e,t){var r=e.split("\n"),n=Math.max(t-2,1),s=Math.min(t+3,r.length),i=l.range(n,s+1).map(function(e){return[e===t?">> ":" ",a(e,s),"| ",r[e-1]].join("")}).join("\n");return i}function a(e,t){var r=(t+"").length,n=e+"",s=Array(r-n.length).join(" ");return s+n}function c(e,t){return e=e||"",t.file&&(e+=", file:"+t.file),t.line&&(e+=", line:"+t.line),e}var l=e("./underscore.js");r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,s.prototype=Object.create(Error.prototype),s.prototype.constructor=s,i.prototype=Object.create(Error.prototype),i.prototype.constructor=i,o.prototype=Object.create(Error.prototype),o.prototype.constructor=o,t.exports={TokenizationError:r,ParseError:n,RenderBreakError:i,AssertionError:o,RenderError:s}},{"./underscore.js":21}],18:[function(e,t){"use strict";function r(e){return new Promise(function(t,r){s.readFile(e,"utf8",function(e,n){e?r(e):t(n)})})}function n(e){return new Promise(function(t,r){s.stat(e,function(e,n){return e?r(e):t(n)})})}var s=e("fs");t.exports={readFileAsync:r,statFileAsync:n}},{fs:6}],19:[function(e,t,r){"use strict";function n(e,t){var r=i.reject(new Error("init"));return e.forEach(function(n,s){r=r["catch"](function(){return t(n,s,e)})}),r}function s(e,t){var r=i.resolve("init"),n=[];return e.forEach(function(s,i){r=r.then(function(){return t(s,i,e)}).then(function(e){return n.push(e)})}),r.then(function(){return n})}var i=e("any-promise");r.anySeries=n,r.mapSeries=s},{"any-promise":3}],20:[function(e,t){"use strict";var r=["January","February","March","April","May","June","July","August","September","October","November","December"],n=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],s=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],i=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],o={1:"st",2:"nd",3:"rd","default":"th"},u={daysInMonth:function(e){var t=u.isLeapYear(e)?29:28;return[31,t,31,30,31,30,31,31,30,31,30,31]},getDayOfYear:function(e){for(var t=0,r=0;r<e.getMonth();++r)t+=u.daysInMonth(e)[r];return t+e.getDate()},getWeekOfYear:function(e,t){var r=this.getDayOfYear(e)+(t-e.getDay()),n=new Date(e.getFullYear(),0,1),s=7-n.getDay()+t;return a.pad(Math.floor((r-s)/7)+1,2)},isLeapYear:function(e){var t=e.getFullYear();return!(0!==(3&t)||!(t%100||t%400===0&&t))},getSuffix:function(e){var t=e.getDate().toString(),r=parseInt(t.slice(-1));return o[r]||o["default"]},century:function(e){return parseInt(e.getFullYear().toString().substring(0,2),10)}},a={pad:function f(e,t,r){r||(r="0");for(var n=e.toString(),f=t-n.length;f-->0;)n=r+n;return n}},c={a:function(e){return i[e.getDay()]},A:function(e){return s[e.getDay()]},b:function(e){return n[e.getMonth()]},B:function(e){return r[e.getMonth()]},c:function(e){return e.toLocaleString()},C:function(e){return u.century(e)},d:function(e){return a.pad(e.getDate(),2)},e:function(e){return a.pad(e.getDate(),2," ")},H:function(e){return a.pad(e.getHours(),2)},I:function(e){return a.pad(e.getHours()%12||12,2)},j:function(e){return a.pad(u.getDayOfYear(e),3)},k:function(e){return a.pad(e.getHours(),2," ")},l:function(e){return a.pad(e.getHours()%12||12,2," ")},L:function(e){return a.pad(e.getMilliseconds(),3)},m:function(e){return a.pad(e.getMonth()+1,2)},M:function(e){return a.pad(e.getMinutes(),2)},p:function(e){return e.getHours()<12?"AM":"PM"},P:function(e){return e.getHours()<12?"am":"pm"},q:function(e){return u.getSuffix(e)},s:function(e){return Math.round(e.valueOf()/1e3)},S:function(e){return a.pad(e.getSeconds(),2)},u:function(e){return e.getDay()||7},U:function(e){return u.getWeekOfYear(e,0)},w:function(e){return e.getDay()},W:function(e){return u.getWeekOfYear(e,1)},x:function(e){return e.toLocaleDateString()},X:function(e){return e.toLocaleTimeString()},y:function(e){return e.getFullYear().toString().substring(2,4)},Y:function(e){return e.getFullYear()},z:function(e){var t=e.getTimezoneOffset()/60*100;return(t>0?"-":"+")+a.pad(Math.abs(t),4)},"%":function(){return"%"}};c.h=c.b,c.N=c.L;var l=function(e,t){for(var r="",n=t;;){var s=/%./g,i=s.exec(n);if(!i)return r+n;r+=n.slice(0,s.lastIndex-2),n=n.slice(s.lastIndex);var o=i[0].charAt(1),u=c[o];r+=u?u.call(this,e):"%"+o}};t.exports=l},{}],21:[function(e,t,r){"use strict";function n(e){return e instanceof String||"string"==typeof e}function s(e){var t=Object.prototype.toString.call(e);return"Error"===t.substr(-6,5)||"string"==typeof e.message&&"string"==typeof e.name}function i(e,t){e=e||{};for(var r in e)if(e.hasOwnProperty(r)&&t(e[r],r,e)===!1)break;return e}function o(e){e=f(e)?e:{};var t=Array.prototype.slice.call(arguments,1);return t.forEach(function(t){u(e,t)}),e}function u(e,t){return e?(i(t,function(t,r){e[r]=t}),e):e}function a(e){return e instanceof Array}function c(e){return function(t){return console.log("["+e+"]",t),t}}function l(e){for(var t={},r=[],n=0,s=e.length;s>n;++n)t.hasOwnProperty(e[n])||(r.push(e[n]),t[e[n]]=1);return r}function f(e){return null!==e&&"object"===("undefined"==typeof e?"undefined":h(e))}function p(e,t,r){1===arguments.length&&(t=e,e=0),r=r||1;for(var n=[],s=e;t>s;s+=r)n.push(s);return n}var h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e};r.isString=n,r.isArray=a,r.isObject=f,r.isError=s,r.range=p,r.forOwn=i,r.assign=o,r.uniq=l,r.echo=c},{}],22:[function(e,t){"use strict";var r=e(".."),n=r.lexical,s=e("any-promise"),i=new RegExp("("+n.identifier.source+")\\s*=(.*)"),o=e("../src/util/assert.js");t.exports=function(e){e.registerTag("assign",{parse:function(e){var t=e.args.match(i);o(t,"illegal token "+e.raw),this.key=t[1],this.value=t[2]},render:function(t){return t.set(this.key,e.evalOutput(this.value,t)),s.resolve("")}})}},{"..":2,"../src/util/assert.js":16,"any-promise":3}],23:[function(e,t){"use strict";var r=e(".."),n=r.lexical,s=new RegExp("("+n.identifier.source+")"),i=e("../src/util/assert.js");t.exports=function(e){e.registerTag("capture",{parse:function(t,r){var n=this,o=t.args.match(s);i(o,t.args+" not valid identifier"),this.variable=o[1],this.templates=[];var u=e.parser.parseStream(r);u.on("tag:endcapture",function(){return u.stop()}).on("template",function(e){return n.templates.push(e)}).on("end",function(){throw new Error("tag "+t.raw+" not closed")}),u.start()},render:function(t){var r=this;return e.renderer.renderTemplates(this.templates,t).then(function(e){t.set(r.variable,e)})}})}},{"..":2,"../src/util/assert.js":16}],24:[function(e,t){"use strict";{var r=e("..");e("../src/util/assert.js")}t.exports=function(e){e.registerTag("case",{parse:function(t,r){var n=this;this.cond=t.args,this.cases=[],this.elseTemplates=[];var s=[],i=e.parser.parseStream(r).on("tag:when",function(e){n.cases[e.args]||n.cases.push({val:e.args,templates:s=[]})}).on("tag:else",function(){return s=n.elseTemplates}).on("tag:endcase",function(){return i.stop()}).on("template",function(e){return s.push(e)}).on("end",function(){throw new Error("tag "+t.raw+" not closed")});i.start()},render:function(t){for(var n=0;n<this.cases.length;n++){var s=this.cases[n],i=r.evalExp(s.val,t),o=r.evalExp(this.cond,t);if(i===o)return e.renderer.renderTemplates(s.templates,t)}return e.renderer.renderTemplates(this.elseTemplates,t)}})}},{"..":2,"../src/util/assert.js":16}],25:[function(e,t){"use strict";t.exports=function(e){e.registerTag("comment",{parse:function(t,r){var n=e.parser.parseStream(r);n.on("token",function(e){"endcomment"===e.name&&n.stop()}).on("end",function(){throw new Error("tag "+t.raw+" not closed")}),n.start()}})}},{}],26:[function(e,t){"use strict";var r=e(".."),n=e("any-promise"),s=r.lexical,i=new RegExp("^(?:("+s.value.source+")\\s*:\\s*)?(.*)$"),o=new RegExp(s.value.source,"g"),u=e("../src/util/assert.js");t.exports=function(e){e.registerTag("cycle",{parse:function(e){var t=i.exec(e.args);u(t,"illegal tag: "+e.raw),this.group=t[1]||"";var r=t[2];for(this.candidates=[];t=o.exec(r);)this.candidates.push(t[0]);u(this.candidates.length,"empty candidates: "+e.raw)},render:function(e){var t=r.evalValue(this.group,e),s="cycle:"+t+":"+this.candidates.join(","),i=e.get("liquid"),o=i[s];void 0===o&&(o=i[s]=0);var u=this.candidates[o];return o=(o+1)%this.candidates.length,i[s]=o,n.resolve(r.evalValue(u,e))}})}},{"..":2,"../src/util/assert.js":16,"any-promise":3}],27:[function(e,t){"use strict";var r=e(".."),n=r.lexical,s=e("../src/util/assert.js");t.exports=function(e){e.registerTag("decrement",{parse:function(e){var t=e.args.match(n.identifier);s(t,"illegal identifier "+e.args),this.variable=t[0]},render:function(e){var t=e.get(this.variable);"number"!=typeof t&&(t=0),e.set(this.variable,t-1)}})}},{"..":2,"../src/util/assert.js":16}],28:[function(e,t){"use strict";var r=e(".."),n=r.lexical,s=e("../src/util/promise.js").mapSeries,i=r.Types.RenderBreakError,o=e("../src/util/assert.js"),u=new RegExp("^("+n.identifier.source+")\\s+in\\s+"+("("+n.value.source+")")+("(?:\\s+"+n.hash.source+")*")+"(?:\\s+(reversed))?"+("(?:\\s+"+n.hash.source+")*$"));t.exports=function(e){e.registerTag("for",{parse:function(t,r){var n=this,s=u.exec(t.args);o(s,"illegal tag: "+t.raw),this.variable=s[1],this.collection=s[2],this.reversed=!!s[3],this.templates=[],this.elseTemplates=[];var i,a=e.parser.parseStream(r).on("start",function(){return i=n.templates}).on("tag:else",function(){return i=n.elseTemplates}).on("tag:endfor",function(){return a.stop()}).on("template",function(e){return i.push(e)}).on("end",function(){throw new Error("tag "+t.raw+" not closed")});a.start()},render:function(t,n){var o=this,u=r.evalExp(this.collection,t);if(r.isFalsy(u))return e.renderer.renderTemplates(this.elseTemplates,t);var a=u.length,c=n.offset||0,l=void 0===n.limit?u.length:n.limit;u=u.slice(c,c+l),this.reversed&&u.reverse();var f=u.map(function(e,t){var r={};return r[o.variable]=e,r.forloop={first:0===t,index:t+1,index0:t,last:t===a-1,length:a,rindex:a-t,rindex0:a-t-1,stop:!1,skip:!1},r}),p="";return s(f,function(r){return t.push(r),e.renderer.renderTemplates(o.templates,t).then(function(e){return p+=e})["catch"](function(e){if(!(e instanceof i&&(p+=e.resolvedHTML,"continue"===e.message)))throw e}).then(function(){return t.pop()})})["catch"](function(e){if(!(e instanceof i&&"break"===e.message))throw e}).then(function(){return p})}})}},{"..":2,"../src/util/assert.js":16,"../src/util/promise.js":19}],29:[function(e,t){"use strict";var r=e("..");t.exports=function(e){e.registerTag("if",{parse:function(t,r){var n=this;this.branches=[],this.elseTemplates=[];var s,i=e.parser.parseStream(r).on("start",function(){return n.branches.push({cond:t.args,templates:s=[]})}).on("tag:elsif",function(e){n.branches[e.args]||n.branches.push({cond:e.args,templates:s=[]})}).on("tag:else",function(){return s=n.elseTemplates}).on("tag:endif",function(){return i.stop()}).on("template",function(e){return s.push(e)}).on("end",function(){throw new Error("tag "+t.raw+" not closed")});i.start()},render:function(t){for(var n=0;n<this.branches.length;n++){var s=this.branches[n],i=r.evalExp(s.cond,t);if(r.isTruthy(i))return e.renderer.renderTemplates(s.templates,t)}return e.renderer.renderTemplates(this.elseTemplates,t)}})}},{"..":2}],30:[function(e,t){"use strict";var r=e(".."),n=r.lexical,s=new RegExp("with\\s+("+n.value.source+")"),i=e("../src/util/assert.js");t.exports=function(e){e.registerTag("include",{parse:function(e){var t=n.value.exec(e.args);i(t,"illegal token "+e.raw),this.value=t[0],t=s.exec(e.args),t&&(this["with"]=t[1])},render:function(t,n){var s=r.evalValue(this.value,t),i=t.get("liquid"),o=i.blocks;return i.blocks={},this["with"]&&(n[s]=r.evalValue(this["with"],t)),e.getTemplate(s,i.root).then(function(r){return t.push(n),e.renderer.renderTemplates(r,t)}).then(function(e){return t.pop(),i.blocks=o,e})}})}},{"..":2,"../src/util/assert.js":16}],31:[function(e,t){"use strict";var r=e(".."),n=e("../src/util/assert.js"),s=r.lexical;
n(t,"illegal identifier "+e.args),this.variable=t[0]},render:function(e){var t=e.get(this.variable);"number"!=typeof t&&(t=0),e.set(this.variable,t+1)}})}},{"..":2,"../src/util/assert.js":16}],32:[function(e,t){"use strict";t.exports=function(t){e("./assign.js")(t),e("./capture.js")(t),e("./case.js")(t),e("./comment.js")(t),e("./cycle.js")(t),e("./decrement.js")(t),e("./for.js")(t),e("./if.js")(t),e("./include.js")(t),e("./increment.js")(t),e("./layout.js")(t),e("./raw.js")(t),e("./tablerow.js")(t),e("./unless.js")(t)}},{"./assign.js":22,"./capture.js":23,"./case.js":24,"./comment.js":25,"./cycle.js":26,"./decrement.js":27,"./for.js":28,"./if.js":29,"./include.js":30,"./increment.js":31,"./layout.js":33,"./raw.js":34,"./tablerow.js":35,"./unless.js":36}],33:[function(e,t){"use strict";var r=e(".."),n=e("any-promise"),s=r.lexical,i=e("../src/util/assert.js");t.exports=function(e){e.registerTag("layout",{parse:function(t,r){var n=s.value.exec(t.args);i(n,"illegal token "+t.raw),this.layout=n[0],this.tpls=e.parser.parse(r)},render:function(t,n){var s=r.evalValue(this.layout,t),i=t.get("liquid");return e.renderer.renderTemplates(this.tpls,t).then(function(){return e.getTemplate(s,i.root)}).then(function(e){return t.push(n),e}).then(function(r){return e.renderer.renderTemplates(r,t)}).then(function(e){return t.pop(),e})}}),e.registerTag("block",{parse:function(t,r){var n=this,s=/\w+/.exec(t.args);this.block=s?s[0]:"anonymous",this.tpls=[];var i=e.parser.parseStream(r).on("tag:endblock",function(){return i.stop()}).on("template",function(e){return n.tpls.push(e)}).on("end",function(){throw new Error("tag "+t.raw+" not closed")});i.start()},render:function(t){var r=this,s=t.get("liquid"),i=s.blocks[this.block];return void 0===i?e.renderer.renderTemplates(this.tpls,t).then(function(e){return s.blocks[r.block]=e,e}):(s.blocks[this.block]=i,n.resolve(i))}})}},{"..":2,"../src/util/assert.js":16,"any-promise":3}],34:[function(e,t){"use strict";var r=e("any-promise");t.exports=function(e){e.registerTag("raw",{parse:function(t,r){var n=this;this.tokens=[];var s=e.parser.parseStream(r);s.on("token",function(e){"endraw"===e.name?s.stop():n.tokens.push(e)}).on("end",function(){throw new Error("tag "+t.raw+" not closed")}),s.start()},render:function(){var e=this.tokens.map(function(e){return e.raw}).join("");return r.resolve(e)}})}},{"any-promise":3}],35:[function(e,t){"use strict";var r=e(".."),n=e("any-promise"),s=r.lexical,i=e("../src/util/assert.js"),o=new RegExp("^("+s.identifier.source+")\\s+in\\s+"+("("+s.value.source+")")+("(?:\\s+"+s.hash.source+")*$"));t.exports=function(e){e.registerTag("tablerow",{parse:function(t,r){var n=this,s=o.exec(t.args);i(s,"illegal tag: "+t.raw),this.variable=s[1],this.collection=s[2],this.templates=[];var u,a=e.parser.parseStream(r).on("start",function(){return u=n.templates}).on("tag:endtablerow",function(){return a.stop()}).on("template",function(e){return u.push(e)}).on("end",function(){throw new Error("tag "+t.raw+" not closed")});a.start()},render:function(t,s){var i,o,u=this,a=r.evalExp(this.collection,t)||[],c="<table>",l=s.offset||0,f=void 0===s.limit?a.length:s.limit,p=s.cols;if(!p)throw new Error("illegal cols: "+p);a=a.slice(l,l+f);var h=[];a.some(function(e){var t={};t[u.variable]=e,h.push(t)});var g=h.reduce(function(r,n,s){return r.then(function(){return i=Math.floor(s/p)+1,o=s%p+1,1===o&&(1!==i&&(c+="</tr>"),c+='<tr class="row'+i+'">'),c+='<td class="col'+o+'">'}).then(function(){return t.push(n),e.renderer.renderTemplates(u.templates,t)}).then(function(e){return t.pop(n),c+=e,c+="</td>"})},n.resolve(""));return g.then(function(){return i>0&&(c+="</tr>"),c+="</table>"})["catch"](function(e){throw e})}})}},{"..":2,"../src/util/assert.js":16,"any-promise":3}],36:[function(e,t){"use strict";var r=e("..");t.exports=function(e){e.registerTag("unless",{parse:function(t,r){var n=this;this.templates=[],this.elseTemplates=[];var s,i=e.parser.parseStream(r).on("start",function(){s=n.templates,n.cond=t.args}).on("tag:else",function(){return s=n.elseTemplates}).on("tag:endunless",function(){return i.stop()}).on("template",function(e){return s.push(e)}).on("end",function(){throw new Error("tag "+t.raw+" not closed")});i.start()},render:function(t){var n=r.evalExp(this.cond,t);return r.isFalsy(n)?e.renderer.renderTemplates(this.templates,t):e.renderer.renderTemplates(this.elseTemplates,t)}})}},{"..":2}]},{},[2])(2)});
t.exports=function(e){e.registerTag("increment",{parse:function(e){var t=e.args.match(s.identifier);n(t,"illegal identifier "+e.args),this.variable=t[0]},render:function(e){var t=e.get(this.variable);"number"!=typeof t&&(t=0),e.set(this.variable,t+1)}})}},{"..":2,"../src/util/assert.js":16}],32:[function(e,t){"use strict";t.exports=function(t){e("./assign.js")(t),e("./capture.js")(t),e("./case.js")(t),e("./comment.js")(t),e("./cycle.js")(t),e("./decrement.js")(t),e("./for.js")(t),e("./if.js")(t),e("./include.js")(t),e("./increment.js")(t),e("./layout.js")(t),e("./raw.js")(t),e("./tablerow.js")(t),e("./unless.js")(t)}},{"./assign.js":22,"./capture.js":23,"./case.js":24,"./comment.js":25,"./cycle.js":26,"./decrement.js":27,"./for.js":28,"./if.js":29,"./include.js":30,"./increment.js":31,"./layout.js":33,"./raw.js":34,"./tablerow.js":35,"./unless.js":36}],33:[function(e,t){"use strict";var r=e(".."),n=e("any-promise"),s=r.lexical,i=e("../src/util/assert.js");t.exports=function(e){e.registerTag("layout",{parse:function(t,r){var n=s.value.exec(t.args);i(n,"illegal token "+t.raw),this.layout=n[0],this.tpls=e.parser.parse(r)},render:function(t,n){var s=r.evalValue(this.layout,t),i=t.get("liquid");return e.renderer.renderTemplates(this.tpls,t).then(function(){return e.getTemplate(s,i.root)}).then(function(e){return t.push(n),e}).then(function(r){return e.renderer.renderTemplates(r,t)}).then(function(e){return t.pop(),e})}}),e.registerTag("block",{parse:function(t,r){var n=this,s=/\w+/.exec(t.args);this.block=s?s[0]:"anonymous",this.tpls=[];var i=e.parser.parseStream(r).on("tag:endblock",function(){return i.stop()}).on("template",function(e){return n.tpls.push(e)}).on("end",function(){throw new Error("tag "+t.raw+" not closed")});i.start()},render:function(t){var r=this,s=t.get("liquid"),i=s.blocks[this.block];return void 0===i?e.renderer.renderTemplates(this.tpls,t).then(function(e){return s.blocks[r.block]=e,e}):(s.blocks[this.block]=i,n.resolve(i))}})}},{"..":2,"../src/util/assert.js":16,"any-promise":3}],34:[function(e,t){"use strict";var r=e("any-promise");t.exports=function(e){e.registerTag("raw",{parse:function(t,r){var n=this;this.tokens=[];var s=e.parser.parseStream(r);s.on("token",function(e){"endraw"===e.name?s.stop():n.tokens.push(e)}).on("end",function(){throw new Error("tag "+t.raw+" not closed")}),s.start()},render:function(){var e=this.tokens.map(function(e){return e.raw}).join("");return r.resolve(e)}})}},{"any-promise":3}],35:[function(e,t){"use strict";var r=e(".."),n=e("any-promise"),s=r.lexical,i=e("../src/util/assert.js"),o=new RegExp("^("+s.identifier.source+")\\s+in\\s+"+("("+s.value.source+")")+("(?:\\s+"+s.hash.source+")*$"));t.exports=function(e){e.registerTag("tablerow",{parse:function(t,r){var n=this,s=o.exec(t.args);i(s,"illegal tag: "+t.raw),this.variable=s[1],this.collection=s[2],this.templates=[];var u,a=e.parser.parseStream(r).on("start",function(){return u=n.templates}).on("tag:endtablerow",function(){return a.stop()}).on("template",function(e){return u.push(e)}).on("end",function(){throw new Error("tag "+t.raw+" not closed")});a.start()},render:function(t,s){var i,o,u=this,a=r.evalExp(this.collection,t)||[],c="<table>",l=s.offset||0,f=void 0===s.limit?a.length:s.limit,p=s.cols;if(!p)throw new Error("illegal cols: "+p);a=a.slice(l,l+f);var h=[];a.some(function(e){var t={};t[u.variable]=e,h.push(t)});var g=h.reduce(function(r,n,s){return r.then(function(){return i=Math.floor(s/p)+1,o=s%p+1,1===o&&(1!==i&&(c+="</tr>"),c+='<tr class="row'+i+'">'),c+='<td class="col'+o+'">'}).then(function(){return t.push(n),e.renderer.renderTemplates(u.templates,t)}).then(function(e){return t.pop(n),c+=e,c+="</td>"})},n.resolve(""));return g.then(function(){return i>0&&(c+="</tr>"),c+="</table>"})["catch"](function(e){throw e})}})}},{"..":2,"../src/util/assert.js":16,"any-promise":3}],36:[function(e,t){"use strict";var r=e("..");t.exports=function(e){e.registerTag("unless",{parse:function(t,r){var n=this;this.templates=[],this.elseTemplates=[];var s,i=e.parser.parseStream(r).on("start",function(){s=n.templates,n.cond=t.args}).on("tag:else",function(){return s=n.elseTemplates}).on("tag:endunless",function(){return i.stop()}).on("template",function(e){return s.push(e)}).on("end",function(){throw new Error("tag "+t.raw+" not closed")});i.start()},render:function(t){var n=r.evalExp(this.cond,t);return r.isFalsy(n)?e.renderer.renderTemplates(this.templates,t):e.renderer.renderTemplates(this.elseTemplates,t)}})}},{"..":2}]},{},[2])(2)});
{
"name": "shopify-liquid",
"version": "1.7.3",
"version": "1.7.4",
"description": "A feature-rich Liquid template engine for Node.js and browsers, with compliance with the Ruby version.",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -21,2 +21,9 @@ # shopify-liquid

API Reference:
* Builtin Tags: <https://github.com/harttle/shopify-liquid/wiki/Builtin-Tags>
* Builtin Filters: <https://github.com/harttle/shopify-liquid/wiki/Builtin-Filters>
* Operators: <https://github.com/harttle/shopify-liquid/wiki/Operators>
* Whitespace Control: <https://github.com/harttle/shopify-liquid/wiki/Whitespace-Control>
Installation:

@@ -23,0 +30,0 @@

@@ -39,3 +39,5 @@ const lexical = require('./lexical.js');

while(match = valueRE.exec(argList.trim())){
args.push(match[0]);
var v = match[0];
var re = new RegExp(`${v}\\s*:`, 'g');
re.test(match.input) ? args.push(`'${v}'`) : args.push(v);
}

@@ -42,0 +44,0 @@

@@ -40,3 +40,4 @@ // quote related

// filter related
var valueList = new RegExp(`${value.source}(\\s*,\\s*${value.source})*`);
var valueDeclaration = new RegExp(`(?:${identifier.source}\\s*:\\s*)?${value.source}`)
var valueList = new RegExp(`${valueDeclaration.source}(\\s*,\\s*${valueDeclaration.source})*`);
var filter = new RegExp(`${identifier.source}(?:\\s*:\\s*${valueList.source})?`, 'g');

@@ -43,0 +44,0 @@ var filterCapture = new RegExp(`(${identifier.source})(?:\\s*:\\s*(${valueList.source}))?`);

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc