diff --git a/dist/liquid.js b/dist/liquid.js index 67158c5c7..2f396d263 100644 --- a/dist/liquid.js +++ b/dist/liquid.js @@ -1,4 +1,57 @@ (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Liquid = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i":">",'"':""","'":"'"},u={"&":"&","<":"<",">":">",""":'"',"'":"'"},a={abs:function(e){return Math.abs(e)},append:function(e,t){return e+t},capitalize:function(e){return f(e).charAt(0).toUpperCase()+e.slice(1)},ceil:function(e){return Math.ceil(e)},concat:function(e,t){return Array.prototype.concat.call(e,t)},date:function(e,t){var r,n=e;return"now"===e?n=new Date:i.isString(e)&&(n=new Date(e)),(r=n)instanceof Date&&!isNaN(r.getTime())?s(n,t):e},default:function(e,t){return n(e)?e:t},divided_by:function(e,t){return e/t},downcase:function(e){return e.toLowerCase()},escape:c,escape_once:function(e){return c(f(e).replace(/&(amp|lt|gt|#34|#39);/g,function(e){return u[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 i.last(e)},lstrip:function(e){return f(e).replace(/^\s+/,"")},map:function(e,t){return e.map(function(e){return e[t]})},minus:p(function(e,t){return e-t}),modulo:p(function(e,t){return e%t}),newline_to_br:function(e){return e.replace(/\n/g,"
")},plus:p(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 f(e).split(t).join(r)},replace_first:function(e,t,r){return f(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 f(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 f(e).split(t)},strip:function(e){return f(e).trim()},strip_html:function(e){return f(e).replace(/|||<.*?>/g,"")},strip_newlines:function(e){return f(e).replace(/\n/g,"")},times:function(e,t){return e*t},truncate:function(e,t,r){return r=void 0===r?"...":r,t=t||16,(e=f(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)&&(t[e]=!0)})},upcase:function(e){return f(e).toUpperCase()},url_encode:encodeURIComponent};function c(e){return f(e).replace(/&|<|>|"|'/g,function(e){return o[e]})}function l(e){var t=(e+"").split(".");return 1=|<|>|\s+contains\s+/],quotedLine:E,numberLine:w,boolLine:b,rangeLine:T,literalLine:j,filterLine:R,tagLine:y,isLiteral:function(e){return j.test(e)},isVariable:function(e){return x.test(e)},parseLiteral:function(e){var t=e.match(w);if(t)return Number(e);if(t=e.match(b))return"true"===e.toLowerCase();if(t=e.match(E))return e.slice(1,-1);throw new TypeError("cannot parse '"+e+"' as literal")},isRange:function(e){return T.test(e)},matchValue:function(e){return g.exec(e)},isInteger:function(e){return S.test(e)}}},{}],5:[function(e,t,r){"use strict";t.exports=function(r){return{"==":function(e,t){return e===t},"!=":function(e,t){return e!==t},">":function(e,t){return null!==e&&null!==t&&t=":function(e,t){return null!==e&&null!==t&&t<=e},"<=":function(e,t){return null!==e&&null!==t&&e<=t},contains:function(e,t){return!!e&&("function"==typeof e.indexOf&&-1"),s+=''),s+='',r.push(t),f.renderer.renderTemplates(n.templates,r).then(function(e){return r.pop(t),s+=e,s+=""})}).then(function(){return 0"),s})}})}},{"..":3,"../util/assert.js":27,"../util/promise.js":30}],25:[function(e,t,r){"use strict";var n,s=e("../index"),o=(n=s)&&n.__esModule?n:{default:n};t.exports=function(i){i.registerTag("unless",{parse:function(t,e){var r=this;this.templates=[],this.elseTemplates=[];var n=void 0,s=i.parser.parseStream(e).on("start",function(e){n=r.templates,r.cond=t.args}).on("tag:else",function(){return n=r.elseTemplates}).on("tag:endunless",function(e){return s.stop()}).on("template",function(e){return n.push(e)}).on("end",function(e){throw new Error("tag "+t.raw+" not closed")});s.start()},render:function(e,t){var r=o.default.evalExp(this.cond,e);return o.default.isFalsy(r)?i.renderer.renderTemplates(this.templates,e):i.renderer.renderTemplates(this.elseTemplates,e)}})}},{"../index":3}],26:[function(e,t,r){"use strict";var m=e("./lexical.js"),y=e("./util/error.js").TokenizationError,j=e("./util/underscore.js"),x=e("./whitespace-ctrl.js"),w=e("./util/assert.js");r.parse=function(i,o,e){w(j.isString(i),"illegal input");for(var r,n,s,t,u,a,c,l=/({%-?([\s\S]*?)-?%})|({{-?([\s\S]*?)-?}})/g,f=0,p=(r=i,n=0,s=-1,{get:function(e){var t=r.slice(s+1,e).split("\n");return n+=t.length-1,s=e,n+1}}),h=0,d=[];t=l.exec(i);h=l.lastIndex)t.index>h&&d.push(v(h,t.index)),d.push(t[1]?g(t[1],t[2].trim(),t.index):(u=t[3],a=t[4].trim(),c=t.index,{type:"value",line:p.get(c),trim_left:"{{-"===u.slice(0,3),trim_right:"-}}"===u.slice(-3),raw:u,value:a,input:i,file:o}));return i.length>h&&d.push(v(h,i.length)),x(d,e),d;function g(e,t,r){var n=t.match(m.tagLine),s={type:"tag",indent:f,line:p.get(r),trim_left:"{%-"===e.slice(0,3),trim_right:"-%}"===e.slice(-3),raw:e,value:t,input:i,file:o};if(!n)throw new y("illegal tag syntax",s);return s.name=n[1],s.args=n[2],s}function v(e,t){var r=i.slice(e,t);return f=j.last(r.split("\n")).length,{type:"html",raw:r,value:r}}},r.whiteSpaceCtrl=x},{"./lexical.js":4,"./util/assert.js":27,"./util/error.js":28,"./util/underscore.js":32,"./whitespace-ctrl.js":34}],27:[function(e,t,r){"use strict";var n=e("./error.js").AssertionError;t.exports=function(e,t){if(!e)throw new n(t=t||"expect "+e+" to be true")}},{"./error.js":28}],28:[function(e,t,r){"use strict";var n,s=e("./underscore.js"),a=(n=s)&&n.__esModule?n:{default:n};function c(){this.name=this.constructor.name,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}function i(e,t){c.call(this),this.input=t.input,this.line=t.line,this.file=t.file;var r,s,i,n,o,u=(r=t.input,s=t.line,i=r.split("\n"),n=Math.max(s-2,1),o=Math.min(s+3,i.length),a.default.range(n,o+1).map(function(e){return[e===s?">> ":" ",(t=e,r=o,n=t+"",Array((r+"").length-n.length).join(" ")+n),"| ",i[e-1]].join("");var t,r,n}).join("\n"));this.message=function(e,t){e=e||"",t.file&&(e+=", file:"+t.file);t.line&&(e+=", line:"+t.line);return e}(e.message,t),this.stack=u+"\n"+(this.stack||this.message)+(e.stack?"\nFrom "+e.stack:"")}function o(e,t){i.call(this,{message:e},t)}function u(e,t){a.default.assign(this,e),this.originalError=e,i.call(this,e,t)}function l(e,t){if(e instanceof l)return e;a.default.assign(this,e),this.originalError=e,i.call(this,e,t.token)}function f(e){c.call(this),this.message=e+""}function p(e){c.call(this),this.message=e+""}(o.prototype=Object.create(Error.prototype)).constructor=o,(u.prototype=Object.create(Error.prototype)).constructor=u,(l.prototype=Object.create(Error.prototype)).constructor=l,(f.prototype=Object.create(Error.prototype)).constructor=f,(p.prototype=Object.create(Error.prototype)).constructor=p,t.exports={TokenizationError:o,ParseError:u,RenderBreakError:f,AssertionError:p,RenderError:l}},{"./underscore.js":32}],29:[function(e,t,r){"use strict";var s=e("fs");t.exports={readFileAsync:function(e){return new Promise(function(r,n){s.readFile(e,"utf8",function(e,t){e?n(e):r(t)})})},statFileAsync:function(e){return new Promise(function(r,n){s.stat(e,function(e,t){return e?n(e):r(t)})})}}},{fs:35}],30:[function(e,t,r){"use strict";r.anySeries=function(n,s){var e=Promise.reject(new Error("init"));return n.forEach(function(t,r){e=e.catch(function(e){return s(t,r,n)})}),e},r.mapSeries=function(r,n){var s=Promise.resolve("init"),i=[];return r.forEach(function(e,t){s=s.then(function(){return n(e,t,r)}).then(function(e){return i.push(e)})}),s.then(function(){return i})}},{}],31:[function(e,t,r){"use strict";var n=["January","February","March","April","May","June","July","August","September","October","November","December"],s=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],i=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],o=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],u={1:"st",2:"nd",3:"rd",default:"th"},a={daysInMonth:function(e){return[31,a.isLeapYear(e)?29:28,31,30,31,30,31,31,30,31,30,31]},getDayOfYear:function(e){for(var t=0,r=0;r":">",'"':""","'":"'"},u={"&":"&","<":"<",">":">",""":'"',"'":"'"},a={abs:function(e){return Math.abs(e)},append:function(e,t){return e+t},capitalize:function(e){return f(e).charAt(0).toUpperCase()+e.slice(1)},ceil:function(e){return Math.ceil(e)},concat:function(e,t){return Array.prototype.concat.call(e,t)},date:function(e,t){var r,n=e;return"now"===e?n=new Date:i.isString(e)&&(n=new Date(e)),(r=n)instanceof Date&&!isNaN(r.getTime())?s(n,t):e},default:function(e,t){return n(e)?e:t},divided_by:function(e,t){return e/t},downcase:function(e){return e.toLowerCase()},escape:c,escape_once:function(e){return c(f(e).replace(/&(amp|lt|gt|#34|#39);/g,function(e){return u[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 i.last(e)},lstrip:function(e){return f(e).replace(/^\s+/,"")},map:function(e,t){return e.map(function(e){return e[t]})},minus:p(function(e,t){return e-t}),modulo:p(function(e,t){return e%t}),newline_to_br:function(e){return e.replace(/\n/g,"
")},plus:p(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 f(e).split(t).join(r)},replace_first:function(e,t,r){return f(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 f(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 f(e).split(t)},strip:function(e){return f(e).trim()},strip_html:function(e){return f(e).replace(/|||<.*?>/g,"")},strip_newlines:function(e){return f(e).replace(/\n/g,"")},times:function(e,t){return e*t},truncate:function(e,t,r){return r=void 0===r?"...":r,t=t||16,(e=f(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)&&(t[e]=!0)})},upcase:function(e){return f(e).toUpperCase()},url_encode:encodeURIComponent};function c(e){return f(e).replace(/&|<|>|"|'/g,function(e){return o[e]})}function l(e){var t=(e+"").split(".");return 1=|<|>|\s+contains\s+/],quotedLine:E,numberLine:w,boolLine:b,rangeLine:T,literalLine:j,filterLine:R,tagLine:y,isLiteral:function(e){return j.test(e)},isVariable:function(e){return x.test(e)},parseLiteral:function(e){var t=e.match(w);if(t)return Number(e);if(t=e.match(b))return"true"===e.toLowerCase();if(t=e.match(E))return e.slice(1,-1);throw new TypeError("cannot parse '"+e+"' as literal")},isRange:function(e){return T.test(e)},matchValue:function(e){return g.exec(e)},isInteger:function(e){return S.test(e)}}},{}],8:[function(e,t,r){"use strict";t.exports=function(r){return{"==":function(e,t){return e===t},"!=":function(e,t){return e!==t},">":function(e,t){return null!==e&&null!==t&&t=":function(e,t){return null!==e&&null!==t&&t<=e},"<=":function(e,t){return null!==e&&null!==t&&e<=t},contains:function(e,t){return!!e&&("function"==typeof e.indexOf&&-1"),s+=''),s+='',r.push(t),f.renderer.renderTemplates(n.templates,r).then(function(e){return r.pop(t),s+=e,s+=""})}).then(function(){return 0"),s})}})}},{"..":6,"../util/assert.js":30,"../util/promise.js":33}],28:[function(e,t,r){"use strict";var n,s=e("../index"),o=(n=s)&&n.__esModule?n:{default:n};t.exports=function(i){i.registerTag("unless",{parse:function(t,e){var r=this;this.templates=[],this.elseTemplates=[];var n=void 0,s=i.parser.parseStream(e).on("start",function(e){n=r.templates,r.cond=t.args}).on("tag:else",function(){return n=r.elseTemplates}).on("tag:endunless",function(e){return s.stop()}).on("template",function(e){return n.push(e)}).on("end",function(e){throw new Error("tag "+t.raw+" not closed")});s.start()},render:function(e,t){var r=o.default.evalExp(this.cond,e);return o.default.isFalsy(r)?i.renderer.renderTemplates(this.templates,e):i.renderer.renderTemplates(this.elseTemplates,e)}})}},{"../index":6}],29:[function(e,t,r){"use strict";var m=e("./lexical.js"),y=e("./util/error.js").TokenizationError,j=e("./util/underscore.js"),x=e("./whitespace-ctrl.js"),w=e("./util/assert.js");r.parse=function(i,o,e){w(j.isString(i),"illegal input");for(var r,n,s,t,u,a,c,l=/({%-?([\s\S]*?)-?%})|({{-?([\s\S]*?)-?}})/g,f=0,p=(r=i,n=0,s=-1,{get:function(e){var t=r.slice(s+1,e).split("\n");return n+=t.length-1,s=e,n+1}}),h=0,d=[];t=l.exec(i);h=l.lastIndex)t.index>h&&d.push(v(h,t.index)),d.push(t[1]?g(t[1],t[2].trim(),t.index):(u=t[3],a=t[4].trim(),c=t.index,{type:"value",line:p.get(c),trim_left:"{{-"===u.slice(0,3),trim_right:"-}}"===u.slice(-3),raw:u,value:a,input:i,file:o}));return i.length>h&&d.push(v(h,i.length)),x(d,e),d;function g(e,t,r){var n=t.match(m.tagLine),s={type:"tag",indent:f,line:p.get(r),trim_left:"{%-"===e.slice(0,3),trim_right:"-%}"===e.slice(-3),raw:e,value:t,input:i,file:o};if(!n)throw new y("illegal tag syntax",s);return s.name=n[1],s.args=n[2],s}function v(e,t){var r=i.slice(e,t);return f=j.last(r.split("\n")).length,{type:"html",raw:r,value:r}}},r.whiteSpaceCtrl=x},{"./lexical.js":7,"./util/assert.js":30,"./util/error.js":31,"./util/underscore.js":35,"./whitespace-ctrl.js":37}],30:[function(e,t,r){"use strict";var n=e("./error.js").AssertionError;t.exports=function(e,t){if(!e)throw new n(t=t||"expect "+e+" to be true")}},{"./error.js":31}],31:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.TokenizationError=o,r.ParseError=u,r.RenderError=l,r.RenderBreakError=f,r.AssertionError=p;var n,s=e("./underscore.js"),a=(n=s)&&n.__esModule?n:{default:n};function c(){this.name=this.constructor.name,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}function i(e,t){c.call(this),this.input=t.input,this.line=t.line,this.file=t.file;var r,s,i,n,o,u=(r=t.input,s=t.line,i=r.split("\n"),n=Math.max(s-2,1),o=Math.min(s+3,i.length),a.default.range(n,o+1).map(function(e){return[e===s?">> ":" ",(t=e,r=o,n=t+"",Array((r+"").length-n.length).join(" ")+n),"| ",i[e-1]].join("");var t,r,n}).join("\n"));this.message=function(e,t){e=e||"",t.file&&(e+=", file:"+t.file);t.line&&(e+=", line:"+t.line);return e}(e.message,t),this.stack=u+"\n"+(this.stack||this.message)+(e.stack?"\nFrom "+e.stack:"")}function o(e,t){i.call(this,{message:e},t)}function u(e,t){a.default.assign(this,e),this.originalError=e,i.call(this,e,t)}function l(e,t){if(e instanceof l)return e;a.default.assign(this,e),this.originalError=e,i.call(this,e,t.token)}function f(e){c.call(this),this.message=e+""}function p(e){c.call(this),this.message=e+""}(o.prototype=Object.create(Error.prototype)).constructor=o,(u.prototype=Object.create(Error.prototype)).constructor=u,(l.prototype=Object.create(Error.prototype)).constructor=l,(f.prototype=Object.create(Error.prototype)).constructor=f,(p.prototype=Object.create(Error.prototype)).constructor=p},{"./underscore.js":35}],32:[function(e,t,r){"use strict";var s=e("fs");t.exports={readFileAsync:function(e){return new Promise(function(r,n){s.readFile(e,"utf8",function(e,t){e?n(e):r(t)})})},statFileAsync:function(e){return new Promise(function(r,n){s.stat(e,function(e,t){return e?n(e):r(t)})})}}},{fs:1}],33:[function(e,t,r){"use strict";r.anySeries=function(n,s){var e=Promise.reject(new Error("init"));return n.forEach(function(t,r){e=e.catch(function(e){return s(t,r,n)})}),e},r.mapSeries=function(r,n){var s=Promise.resolve("init"),i=[];return r.forEach(function(e,t){s=s.then(function(){return n(e,t,r)}).then(function(e){return i.push(e)})}),s.then(function(){return i})}},{}],34:[function(e,t,r){"use strict";var n=["January","February","March","April","May","June","July","August","September","October","November","December"],s=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],i=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],o=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],u={1:"st",2:"nd",3:"rd",default:"th"},a={daysInMonth:function(e){return[31,a.isLeapYear(e)?29:28,31,30,31,30,31,31,30,31,30,31]},getDayOfYear:function(e){for(var t=0,r=0;r