Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@tko/utils.parser

Package Overview
Dependencies
Maintainers
1
Versions
27
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@tko/utils.parser - npm Package Compare versions

Comparing version
4.0.0-beta1.3
to
4.0.0-beta1.4
+1
-1
dist/Arguments.js

@@ -1,2 +0,2 @@

// @tko/utils.parser 🥊 4.0.0-beta1.3 ESM
// @tko/utils.parser 🥊 4.0.0-beta1.4 ESM
import Node from "./Node";

@@ -3,0 +3,0 @@ export default class Arguments {

@@ -1,2 +0,2 @@

// @tko/utils.parser 🥊 4.0.0-beta1.3 ESM
// @tko/utils.parser 🥊 4.0.0-beta1.4 ESM
import Node from "./Node";

@@ -3,0 +3,0 @@ export default class Expression {

@@ -1,2 +0,2 @@

// @tko/utils.parser 🥊 4.0.0-beta1.3 ESM
// @tko/utils.parser 🥊 4.0.0-beta1.4 ESM
import Node from "./Node";

@@ -3,0 +3,0 @@ import Arguments from "./Arguments";

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

// @tko/utils.parser 🥊 4.0.0-beta1.3 ESM
// @tko/utils.parser 🥊 4.0.0-beta1.4 ESM
export var IDStart = /[\$A-Z_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/;
export var IDContinue = /[\$0-9A-Z_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/;

@@ -1,2 +0,2 @@

// @tko/utils.parser 🥊 4.0.0-beta1.3 ESM
// @tko/utils.parser 🥊 4.0.0-beta1.4 ESM
export { default as Parser } from "./Parser";

@@ -3,0 +3,0 @@ export { default as Identifier } from "./Identifier";

@@ -1,2 +0,2 @@

// @tko/utils.parser 🥊 4.0.0-beta1.3 MJS
// @tko/utils.parser 🥊 4.0.0-beta1.4 MJS
export { default as Parser } from "./Parser";

@@ -3,0 +3,0 @@ export { default as Identifier } from "./Identifier";

@@ -1,2 +0,2 @@

// @tko/utils.parser 🥊 4.0.0-beta1.3 ESM
// @tko/utils.parser 🥊 4.0.0-beta1.4 ESM
import {

@@ -3,0 +3,0 @@ unwrap

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

// @tko/utils.parser 🥊 4.0.0-beta1.3 ESM
// @tko/utils.parser 🥊 4.0.0-beta1.4 ESM
var __pow = Math.pow;
import {

@@ -29,2 +30,5 @@ unwrap

},
"**": function exp(a, b) {
return __pow(a, b);
},
"*": function mul(a, b) {

@@ -87,5 +91,11 @@ return a * b;

},
"??": function nullishCoalesce(a, b) {
return a != null ? a : b;
},
".": function member(a, b) {
return a[b];
},
"?.": function optionalMember(a, b) {
return a == null ? void 0 : a[b];
},
"[": function member2(a, b) {

@@ -105,2 +115,3 @@ return a[b];

operators["["].precedence = 19;
operators["?."].precedence = 19;
operators["!"].precedence = 16;

@@ -111,2 +122,3 @@ operators["!!"].precedence = 16;

operators["&-"].precedence = 16;
operators["**"].precedent = 15;
operators["%"].precedence = 14;

@@ -130,4 +142,6 @@ operators["*"].precedence = 14;

operators["||"].precedence = 5;
operators["??"].precedence = 5;
operators["&&"].earlyOut = (a) => !a;
operators["||"].earlyOut = (a) => a;
operators["??"].earlyOut = (a) => a;
operators[","].precedence = 2;

@@ -134,0 +148,0 @@ operators["call"].precedence = 1;

{
"version": 3,
"sources": ["../src/operators.ts"],
"sourcesContent": ["import {\n unwrap\n} from '@tko/observable'\n\nexport function LAMBDA () {}\n\n/**\n * @ operator - recursively call the identifier if it's a function\n * @param {operand} a ignored\n * @param {operand} b The variable to be called (if a function) and unwrapped\n * @return {value} The result.\n */\nfunction unwrapOrCall (a, b) {\n while (typeof b === 'function') { b = b() }\n return b\n}\n\nconst operators = {\n // unary\n '@': unwrapOrCall,\n '#': (a, b) => () => unwrap(b), // Convert to read-only.\n '=>': LAMBDA,\n '!': function not (a, b) { return !b },\n '!!': function notnot (a, b) { return !!b },\n '++': function preinc (a, b) { return ++b },\n '--': function preinc (a, b) { return --b },\n // mul/div\n '*': function mul (a, b) { return a * b },\n '/': function div (a, b) { return a / b },\n '%': function mod (a, b) { return a % b },\n // sub/add\n '+': function add (a, b) { return a + b },\n '-': function sub (a, b) { return (a || 0) - (b || 0) },\n '&-': function neg (a, b) { return -1 * b },\n // relational\n '<': function lt (a, b) { return a < b },\n '<=': function le (a, b) { return a <= b },\n '>': function gt (a, b) { return a > b },\n '>=': function ge (a, b) { return a >= b },\n // TODO: 'in': function (a, b) { return a in b; },\n // TODO: 'instanceof': function (a, b) { return a instanceof b; },\n // equality\n '==': function equal (a, b) { return a === b },\n '!=': function ne (a, b) { return a !== b },\n '===': function sequal (a, b) { return a === b },\n '!==': function sne (a, b) { return a !== b },\n // bitwise\n '&': function bitAnd (a, b) { return a & b },\n '^': function xor (a, b) { return a ^ b },\n '|': function bitOr (a, b) { return a | b },\n // logic\n '&&': function logicAnd (a, b) { return a && b },\n '||': function logicOr (a, b) { return a || b },\n // Access\n '.': function member (a, b) { return a[b] },\n '[': function member (a, b) { return a[b] },\n ',': function comma (a, b) { return b },\n // conditional/ternary\n // '?': ternary See Node.js\n // Function-Call\n 'call': function callOp (a, b) { return a.apply(null, b) }\n}\n\n/* Order of precedence from:\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence#Table\n*/\n\n // Our operator - unwrap/call\noperators['@'].precedence = 21\noperators['#'].precedence = 21\n\n // Member\noperators['.'].precedence = 19\noperators['['].precedence = 19\n\n // Logical not\noperators['!'].precedence = 16\noperators['!!'].precedence = 16 // explicit double-negative\n\n // Prefix inc/dec\noperators['++'].precedence = 16\noperators['--'].precedence = 16\noperators['&-'].precedence = 16\n\n // mul/div/remainder\noperators['%'].precedence = 14\noperators['*'].precedence = 14\noperators['/'].precedence = 14\n\n // add/sub\noperators['+'].precedence = 13\noperators['-'].precedence = 13\n\n // bitwise\noperators['|'].precedence = 12\noperators['^'].precedence = 11\noperators['&'].precedence = 10\n\n // comparison\noperators['<'].precedence = 11\noperators['<='].precedence = 11\noperators['>'].precedence = 11\noperators['>='].precedence = 11\n\n // operators['in'].precedence = 8;\n // operators['instanceof'].precedence = 8;\n // equality\noperators['=='].precedence = 10\noperators['!='].precedence = 10\noperators['==='].precedence = 10\noperators['!=='].precedence = 10\n\n // logic\noperators['&&'].precedence = 6\noperators['||'].precedence = 5\n\noperators['&&'].earlyOut = (a) => !a\noperators['||'].earlyOut = (a) => a\n\n // multiple values\noperators[','].precedence = 2\n\n // Call a function\noperators['call'].precedence = 1\n\n // lambda\noperators['=>'].precedence = 1\n\nexport { operators as default }\n"],
"mappings": "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",
"sourcesContent": ["import {\n unwrap\n} from '@tko/observable'\n\nexport function LAMBDA () {}\n\n/**\n * @ operator - recursively call the identifier if it's a function\n * @param {operand} a ignored\n * @param {operand} b The variable to be called (if a function) and unwrapped\n * @return {value} The result.\n */\nfunction unwrapOrCall (a, b) {\n while (typeof b === 'function') { b = b() }\n return b\n}\n\nconst operators = {\n // unary\n '@': unwrapOrCall,\n '#': (a, b) => () => unwrap(b), // Convert to read-only.\n '=>': LAMBDA,\n '!': function not (a, b) { return !b },\n '!!': function notnot (a, b) { return !!b },\n '++': function preinc (a, b) { return ++b },\n '--': function preinc (a, b) { return --b },\n // exponent\n '**': function exp (a, b) { return a ** b },\n // mul/div\n '*': function mul (a, b) { return a * b },\n '/': function div (a, b) { return a / b },\n '%': function mod (a, b) { return a % b },\n // sub/add\n '+': function add (a, b) { return a + b },\n '-': function sub (a, b) { return (a || 0) - (b || 0) },\n '&-': function neg (a, b) { return -1 * b }, // unary -\n // relational\n '<': function lt (a, b) { return a < b },\n '<=': function le (a, b) { return a <= b },\n '>': function gt (a, b) { return a > b },\n '>=': function ge (a, b) { return a >= b },\n // TODO: 'in': function (a, b) { return a in b; },\n // TODO: 'instanceof': function (a, b) { return a instanceof b; },\n // equality\n '==': function equal (a, b) { return a === b },\n '!=': function ne (a, b) { return a !== b },\n '===': function sequal (a, b) { return a === b },\n '!==': function sne (a, b) { return a !== b },\n // bitwise\n '&': function bitAnd (a, b) { return a & b },\n '^': function xor (a, b) { return a ^ b },\n '|': function bitOr (a, b) { return a | b },\n // logic\n '&&': function logicAnd (a, b) { return a && b },\n '||': function logicOr (a, b) { return a || b },\n '??': function nullishCoalesce (a, b) { return a ?? b },\n // Access\n '.': function member (a, b) { return a[b] },\n '?.': function optionalMember (a, b) { return a?.[b] },\n '[': function member (a, b) { return a[b] },\n ',': function comma (a, b) { return b },\n // conditional/ternary\n // '?': ternary See Node.js\n // Function-Call\n 'call': function callOp (a, b) { return a.apply(null, b) }\n}\n\n/* Order of precedence from:\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence#Table\n*/\n\n // Our operator - unwrap/call\noperators['@'].precedence = 21\noperators['#'].precedence = 21\n\n // Member\noperators['.'].precedence = 19\noperators['['].precedence = 19\noperators['?.'].precedence = 19\n\n // Logical not\noperators['!'].precedence = 16\noperators['!!'].precedence = 16 // explicit double-negative\n\n // Prefix inc/dec\noperators['++'].precedence = 16\noperators['--'].precedence = 16\noperators['&-'].precedence = 16\n\n // exponent\noperators['**'].precedent = 15\n\n // mul/div/remainder\noperators['%'].precedence = 14\noperators['*'].precedence = 14\noperators['/'].precedence = 14\n\n // add/sub\noperators['+'].precedence = 13\noperators['-'].precedence = 13\n\n // bitwise\noperators['|'].precedence = 12\noperators['^'].precedence = 11\noperators['&'].precedence = 10\n\n // comparison\noperators['<'].precedence = 11\noperators['<='].precedence = 11\noperators['>'].precedence = 11\noperators['>='].precedence = 11\n\n // operators['in'].precedence = 8;\n // operators['instanceof'].precedence = 8;\n // equality\noperators['=='].precedence = 10\noperators['!='].precedence = 10\noperators['==='].precedence = 10\noperators['!=='].precedence = 10\n\n // logic\noperators['&&'].precedence = 6\noperators['||'].precedence = 5\noperators['??'].precedence = 5\n\noperators['&&'].earlyOut = (a) => !a\noperators['||'].earlyOut = (a) => a\noperators['??'].earlyOut = (a) => a\n\n // multiple values\noperators[','].precedence = 2\n\n // Call a function\noperators['call'].precedence = 1\n\n // lambda\noperators['=>'].precedence = 1\n\nexport { operators as default }\n"],
"mappings": "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",
"names": []
}

@@ -1,2 +0,2 @@

// @tko/utils.parser 🥊 4.0.0-beta1.3 ESM
// @tko/utils.parser 🥊 4.0.0-beta1.4 ESM
import operators from "./operators";

@@ -3,0 +3,0 @@ import Node from "./Node";

@@ -1,2 +0,2 @@

// @tko/utils.parser 🥊 4.0.0-beta1.3 ESM
// @tko/utils.parser 🥊 4.0.0-beta1.4 ESM
import {

@@ -376,3 +376,3 @@ options,

}
return nextFilter(options.filters[name].apply(null, argValues));
return nextFilter(options.filters[name].apply(context, argValues));
};

@@ -379,0 +379,0 @@ filter.precedence = 1;

{
"version": 3,
"sources": ["../src/Parser.ts"],
"sourcesContent": ["/**\n * Originally based on (public domain):\n * https://github.com/douglascrockford/JSON-js/blob/master/json_parse.js\n */\n\nimport {\n options, objectForEach, clonePlainObjectDeep, extend, hasOwnProperty\n} from '@tko/utils'\n\nimport {default as Expression} from './Expression'\nimport {default as Identifier} from './Identifier'\nimport {default as Arguments} from './Arguments'\nimport {default as Parameters} from './Parameters'\nimport {default as Ternary} from './Ternary'\nimport {default as Node} from './Node'\nimport {default as operators} from './operators'\n\nconst escapee = {\n \"'\": \"'\",\n '\"': '\"',\n '`': '`',\n '\\\\': '\\\\',\n '/': '/',\n '$': '$',\n b: '\\b',\n f: '\\f',\n n: '\\n',\n r: '\\r',\n t: '\\t'\n}\n\n/**\n * Construct a new Parser instance with new Parser(node, context)\n * @param {Node} node The DOM element from which we parsed the\n * content.\n * @param {object} context The Knockout context.\n * @param {object} globals An object containing any desired globals.\n */\nexport default class Parser {\n white () {\n var ch = this.ch\n while (ch && ch <= ' ') {\n ch = this.next()\n }\n return this.comment(ch)\n }\n\n/**\n * Slurp any C or C++ style comments\n */\n comment (ch) {\n if (ch !== '/') { return ch }\n var p = this.at\n var second = this.lookahead()\n if (second === '/') {\n while (ch) {\n ch = this.next()\n if (ch === '\\n' || ch === '\\r') { break }\n }\n ch = this.next()\n } else if (second === '*') {\n while (ch) {\n ch = this.next()\n if (ch === '*' && this.lookahead() === '/') {\n this.next()\n break\n }\n }\n if (!ch) {\n this.error('Unclosed comment, starting at character ' + p)\n }\n this.next()\n return this.white()\n }\n return ch\n };\n\n next (c) {\n if (c && c !== this.ch) {\n this.error(\"Expected '\" + c + \"' but got '\" + this.ch + \"'\")\n }\n this.ch = this.text.charAt(this.at)\n this.at += 1\n return this.ch\n }\n\n lookahead () {\n return this.text[this.at]\n }\n\n error (m) {\n if (m instanceof Error) { throw m }\n let [name, msg] = m.name ? [m.name, m.message] : [m, '']\n const message = `\\n${name} ${msg} of\n ${this.text}\\n` + Array(this.at).join(' ') + '_/ \uD83D\uDD25 \\\\_\\n'\n throw new Error(message)\n }\n\n name () {\n // A name of a binding\n var name = ''\n var enclosedBy\n this.white()\n\n var ch = this.ch\n\n if (ch === \"'\" || ch === '\"') {\n enclosedBy = ch\n ch = this.next()\n }\n\n while (ch) {\n if (enclosedBy && ch === enclosedBy) {\n this.white()\n ch = this.next()\n if (ch !== ':' && ch !== ',') {\n this.error(\n 'Object name: ' + name + ' missing closing ' + enclosedBy\n )\n }\n return name\n } else if (ch === ':' || ch <= ' ' || ch === ',' || ch === '|') {\n return name\n }\n name += ch\n ch = this.next()\n }\n\n return name\n }\n\n number () {\n let number\n let string = ''\n let ch = this.ch\n\n if (ch === '-') {\n string = '-'\n ch = this.next('-')\n }\n while (ch >= '0' && ch <= '9') {\n string += ch\n ch = this.next()\n }\n if (ch === '.') {\n string += '.'\n ch = this.next()\n while (ch && ch >= '0' && ch <= '9') {\n string += ch\n ch = this.next()\n }\n }\n if (ch === 'e' || ch === 'E') {\n string += ch\n ch = this.next()\n if (ch === '-' || ch === '+') {\n string += ch\n ch = this.next()\n }\n while (ch >= '0' && ch <= '9') {\n string += ch\n ch = this.next()\n }\n }\n number = +string\n if (!isFinite(number)) {\n options.onError(new Error('Bad number: ' + number + ' in ' + string))\n } else {\n return number\n }\n }\n\n/**\n * Add a property to 'object' that equals the given value.\n * @param {Object} object The object to add the value to.\n * @param {String} key object[key] is set to the given value.\n * @param {mixed} value The value, may be a primitive or a function. If a\n * function it is unwrapped as a property.\n */\n objectAddValue (object, key, value) {\n if (value && value[Node.isExpressionOrIdentifierSymbol]) {\n Object.defineProperty(object, key, {\n get: () => Node.value_of(value, ...this.currentContextGlobals),\n enumerable: true\n })\n } else if (Array.isArray(value)) {\n Object.defineProperty(object, key, {\n get: () => value.map(v => Node.value_of(v, ...this.currentContextGlobals)),\n enumerable: true\n })\n } else {\n // primitives\n object[key] = value\n }\n }\n\n object () {\n let key\n let object = {}\n let ch = this.ch\n\n if (ch === '{') {\n this.next('{')\n ch = this.white()\n if (ch === '}') {\n ch = this.next('}')\n return object\n }\n while (ch) {\n if (ch === '\"' || ch === \"'\" || ch === '`') {\n key = this.string()\n } else {\n key = this.name()\n }\n if (hasOwnProperty(object, key)) {\n this.error('Duplicate key \"' + key + '\"')\n }\n if (this.white() === ':') {\n ch = this.next(':')\n this.objectAddValue(object, key, this.singleValueExpression())\n } else {\n const objectKeyIsValue = new Identifier(this, key, [])\n this.objectAddValue(object, key, objectKeyIsValue)\n }\n\n ch = this.white()\n if (ch === '}') {\n ch = this.next('}')\n return object\n }\n\n this.next(',')\n ch = this.white()\n if (ch === '}') {\n ch = this.next('}')\n return object\n }\n }\n }\n this.error('Bad object')\n }\n\n/**\n * Read up to delim and return the string\n * @param {string} delim The delimiter, either ' or \"\n * @return {string} The string read.\n */\n readString (delim) {\n let string = ''\n let nodes = ['']\n let plusOp = operators['+']\n let hex\n let i\n let uffff\n let interpolate = delim === '`'\n let ch = this.next()\n\n while (ch) {\n if (ch === delim) {\n ch = this.next()\n if (interpolate) { nodes.push(plusOp) }\n nodes.push(string)\n return nodes\n }\n if (ch === '\\\\') {\n ch = this.next()\n if (ch === 'u') {\n uffff = 0\n for (i = 0; i < 4; i += 1) {\n hex = parseInt(ch = this.next(), 16)\n if (!isFinite(hex)) {\n break\n }\n uffff = uffff * 16 + hex\n }\n string += String.fromCharCode(uffff)\n } else if (typeof escapee[ch] === 'string') {\n string += escapee[ch]\n } else {\n break\n }\n } else if (interpolate && ch === '$') {\n ch = this.next()\n if (ch === '{') {\n this.next('{')\n nodes.push(plusOp)\n nodes.push(string)\n nodes.push(plusOp)\n nodes.push(this.expression())\n string = ''\n // this.next('}');\n } else {\n string += '$' + ch\n }\n } else {\n string += ch\n }\n ch = this.next()\n }\n\n this.error('Bad string')\n }\n\n string () {\n var ch = this.ch\n if (ch === '\"') {\n return this.readString('\"').join('')\n } else if (ch === \"'\") {\n return this.readString(\"'\").join('')\n } else if (ch === '`') {\n return Node.create_root(this.readString('`'))\n }\n\n this.error('Bad string')\n }\n\n array () {\n let array = []\n let ch = this.ch\n\n if (ch === '[') {\n ch = this.next('[')\n this.white()\n if (ch === ']') {\n ch = this.next(']')\n return array\n }\n while (ch) {\n array.push(this.singleValueExpression())\n ch = this.white()\n if (ch === ']') {\n ch = this.next(']')\n return array\n }\n this.next(',')\n ch = this.white()\n }\n }\n this.error('Bad array')\n }\n\n value () {\n this.white()\n let ch = this.ch\n switch (ch) {\n case '{': return this.object()\n case '[': return this.array()\n case '\"': case \"'\": case '`': return this.string()\n case '-': return this.number()\n default:\n return ch >= '0' && ch <= '9' ? this.number() : this.identifier()\n }\n }\n\n/**\n * Get the function for the given operator.\n * A `.precedence` value is added to the function, with increasing\n * precedence having a higher number.\n * @return {function} The function that performs the infix operation\n */\n operator (opts) {\n let op = ''\n let opFn\n let ch = this.white()\n let isIdentifierChar = Identifier.is_valid_start_char\n\n while (ch) {\n if (isIdentifierChar(ch) || ch <= ' ' || ch === '' ||\n ch === '\"' || ch === \"'\" || ch === '{' || ch === '(' ||\n ch === '`' || ch === ')' || (ch <= '9' && ch >= '0')) {\n break\n }\n\n if (!opts.not_an_array && ch === '[') {\n break\n }\n\n op += ch\n ch = this.next()\n\n // An infix followed by the prefix e.g. a + @b\n // TODO: other prefix unary operators\n if (ch === '@') {\n break\n }\n\n isIdentifierChar = Identifier.is_valid_continue_char\n }\n\n if (op !== '') {\n if (opts.prefix && op === '-') { op = '&-' }\n opFn = operators[op]\n\n if (!opFn) {\n this.error(\"Bad operator: '\" + op + \"'.\")\n }\n }\n\n return opFn\n }\n\n/**\n * Filters\n * Returns what the Node interprets as an \"operator\".\n * e.g.\n * <span data-bind=\"text: name | fit:20 | uppercase\"></span>\n */\n filter () {\n let ch = this.next()\n let args = []\n let nextFilter = function (v) { return v }\n let name = this.name()\n\n if (!options.filters[name]) {\n options.onError('Cannot find filter by the name of: ' + name)\n }\n\n ch = this.white()\n\n while (ch) {\n if (ch === ':') {\n ch = this.next()\n args.push(this.singleValueExpression('|'))\n }\n\n if (ch === '|') {\n nextFilter = this.filter()\n break\n }\n\n if (ch === ',') { break }\n\n ch = this.white()\n }\n\n var filter = function filter (value, ignored, context, globals, node) {\n var argValues = [value]\n\n for (var i = 0, j = args.length; i < j; ++i) {\n argValues.push(Node.value_of(args[i], context, globals, node))\n }\n\n return nextFilter(options.filters[name].apply(null, argValues))\n }\n\n // Lowest precedence.\n filter.precedence = 1\n return filter\n }\n\n/**\n * Parse an expression \u2013 builds an operator tree, in something like\n * Shunting-Yard.\n * See: http://en.wikipedia.org/wiki/Shunting-yard_algorithm\n *\n * @param filterable - Whether the expression can include jinga-style filters.\n * An argument of '|' is used only by the filter() method to parse subsequent\n * filters.\n * @param allowMultipleValues - Whether multiple values separated by commas are\n * allowed in this expression. When true (default), this method consumes\n * subsequent comma-separated values.\n * @see {@link Parser.singleValueExpression}\n * \n * @returns a function that computes the value of the expression\n * when called or a primitive.\n */\n expression (filterable: string | bool = false, allowMultipleValues: bool = true) {\n let op\n let nodes = []\n let ch = this.white()\n\n while (ch) {\n // unary prefix operators\n op = this.operator({ prefix: true })\n if (op) {\n nodes.push(undefined) // LHS Tree node.\n nodes.push(op)\n ch = this.white()\n }\n\n if (ch === '(') {\n this.next()\n nodes.push(this.expression())\n this.next(')')\n } else {\n nodes.push(this.value())\n }\n ch = this.white()\n\n if (ch === ':' || ch === '}' || ch === ']' ||\n ch === ')' || ch === '' || ch === '`' ||\n (ch === '|' && filterable === '|') ||\n (ch === ',' && !allowMultipleValues)) {\n break\n }\n\n // filters\n if (ch === '|' && this.lookahead() !== '|' && filterable) {\n nodes.push(this.filter())\n nodes.push(undefined)\n break\n }\n\n // infix or postfix operators\n op = this.operator({ not_an_array: true })\n\n if (op === operators['?']) {\n this.ternary(nodes)\n break\n } else if (op === operators['.']) {\n nodes.push(op)\n nodes.push(this.member())\n op = null\n } else if (op === operators['[']) {\n nodes.push(op)\n nodes.push(this.expression())\n ch = this.next(']')\n op = null\n } else if (op === operators['=>']) {\n // convert the last node to Parameters\n nodes[nodes.length-1] = new Parameters(this, nodes[nodes.length-1])\n nodes.push(op)\n } else if (op) {\n nodes.push(op)\n }\n\n ch = this.white()\n\n if (ch === ']' || (!op && ch === '(')) { break }\n }\n\n if (nodes.length === 0) {\n return undefined\n }\n\n var dereferences = this.dereferences()\n\n if (nodes.length === 1 && !dereferences.length) {\n return nodes[0]\n }\n\n for (var i = 0, j = dereferences.length; i < j; ++i) {\n var deref = dereferences[i]\n if (deref.constructor === Arguments) {\n nodes.push(operators.call)\n } else {\n nodes.push(operators['.'])\n }\n nodes.push(deref)\n }\n\n return new Expression(nodes)\n }\n\n/**\n * Use this method to parse expressions that can be followed by additional markup\n * seperated by a comma, such as in bindings strings.\n * \n * @returns an expression that cannot contain multiple values separated by commas.\n * @see {@link Parser.expression}\n */\n singleValueExpression (filterable: bool | string) {\n return this.expression(filterable, false)\n }\n\n ternary (nodes) {\n var ternary = new Ternary()\n ternary.yes = this.singleValueExpression()\n this.next(':')\n ternary.no = this.singleValueExpression()\n nodes.push(operators['?'])\n nodes.push(ternary)\n }\n\n/**\n * Parse the arguments to a function, returning an Array.\n *\n */\n funcArguments () {\n let args = []\n let ch = this.next('(')\n\n while (ch) {\n ch = this.white()\n if (ch === ')') {\n this.next(')')\n return new Arguments(this, args)\n } else {\n args.push(this.singleValueExpression())\n ch = this.white()\n }\n if (ch !== ')') { this.next(',') }\n }\n\n this.error('Bad arguments to function')\n }\n\n/**\n * The literal string reference `abc` in an `x.abc` expression.\n */\n member () {\n let member = ''\n let ch = this.white()\n let isIdentifierChar = Identifier.is_valid_start_char\n\n while (ch) {\n if (!isIdentifierChar(ch)) {\n break\n }\n member += ch\n ch = this.next()\n isIdentifierChar = Identifier.is_valid_continue_char\n }\n return member\n }\n\n/**\n * A dereference applies to an identifer, being either a function\n * call \"()\" or a membership lookup with square brackets \"[member]\".\n * @return {fn or undefined} Dereference function to be applied to the\n * Identifier\n */\n dereference () {\n let member\n let ch = this.white()\n\n while (ch) {\n if (ch === '(') {\n // a(...) function call\n return this.funcArguments()\n } else if (ch === '[') {\n // a[x] membership\n this.next('[')\n member = this.expression()\n this.white()\n this.next(']')\n\n return member\n } else if (ch === '.') {\n // a.x membership\n this.next('.')\n return this.member()\n } else {\n break\n }\n }\n }\n\n dereferences () {\n let ch = this.white()\n let dereferences = []\n let deref\n\n while (ch) {\n deref = this.dereference()\n if (deref !== undefined) {\n dereferences.push(deref)\n } else {\n break\n }\n }\n return dereferences\n }\n\n identifier () {\n let token = ''\n let isIdentifierChar = Identifier.is_valid_start_char\n let ch = this.white()\n\n while (ch) {\n if (!isIdentifierChar(ch)) {\n break\n }\n token += ch\n ch = this.next()\n isIdentifierChar = Identifier.is_valid_continue_char\n }\n switch (token) {\n case 'true': return true\n case 'false': return false\n case 'null': return null\n case 'undefined': return void 0\n case 'function':\n throw new Error('Knockout: Anonymous functions are no longer supported, but `=>` lambdas are. In: ' + this.text)\n // return this.anonymous_fn();\n }\n return new Identifier(this, token, this.dereferences())\n }\n\n readBindings () {\n let key\n let bindings = {}\n let sep\n let expr\n let ch = this.ch\n\n while (ch) {\n key = this.name()\n sep = this.white()\n\n if (!sep || sep === ',') {\n if (sep) {\n ch = this.next(',')\n } else {\n ch = ''\n }\n // A \"bare\" binding e.g. \"text\"; substitute value of 'null'\n // so it becomes \"text: null\".\n bindings[key] = null\n } else {\n if (key.indexOf('.') !== -1) {\n // Namespaced \u2013 i.e.\n // `attr.css: x` becomes `attr: { css: x }`\n // ^^^ - key\n key = key.split('.')\n bindings[key[0]] = bindings[key[0]] || {}\n\n if (key.length !== 2) {\n options.onError('Binding ' + key + ' should have two parts (a.b).')\n } else if (bindings[key[0]].constructor !== Object) {\n options.onError('Binding ' + key[0] + '.' + key[1] + ' paired with a non-object.')\n }\n\n ch = this.next(':')\n this.objectAddValue(bindings[key[0]], key[1], this.singleValueExpression(true))\n } else {\n ch = this.next(':')\n if (bindings[key] && typeof bindings[key] === 'object' && bindings[key].constructor === Object) {\n // Extend a namespaced bindings e.g. we've previously seen\n // on.x, now we're seeing on: { 'abc' }.\n expr = this.singleValueExpression(true)\n if (typeof expr !== 'object' || expr.constructor !== Object) {\n options.onError('Expected plain object for ' + key + ' value.')\n } else {\n extend(bindings[key], expr)\n }\n } else {\n bindings[key] = this.singleValueExpression(true)\n }\n }\n\n this.white()\n if (this.ch) {\n ch = this.next(',')\n } else {\n ch = ''\n }\n }\n }\n return bindings\n }\n\n valueAsAccessor (value, context, globals, node) {\n if (!value) { return () => value }\n if (typeof value === 'function') { return value }\n\n if (value[Node.isExpressionOrIdentifierSymbol]) {\n return () => Node.value_of(value, context, globals, node)\n }\n\n if (Array.isArray(value)) {\n return () => value.map(v => Node.value_of(v, context, globals, node))\n }\n\n if (typeof (value) !== 'function') {\n return () => clonePlainObjectDeep(value)\n }\n\n throw new Error('Value has cannot be converted to accessor: ' + value)\n }\n\n /**\n * Convert result[name] from a value to a function (i.e. `valueAccessor()`)\n * @param {object} result [Map of top-level names to values]\n * @return {object} [Map of top-level names to functions]\n *\n * Accessors may be one of (below) constAccessor, identifierAccessor,\n * expressionAccessor, or nodeAccessor.\n */\n convertToAccessors (result, context, globals, node) {\n objectForEach(result, (name, value) => {\n if (value instanceof Identifier) {\n // Return a function that, with no arguments returns\n // the value of the identifier, otherwise sets the\n // value of the identifier to the first given argument.\n Object.defineProperty(result, name, {\n value: function (optionalValue, options) {\n const currentValue = value.get_value(undefined, context, globals, node)\n if (arguments.length === 0) { return currentValue }\n const unchanged = optionalValue === currentValue\n if (options && options.onlyIfChanged && unchanged) { return }\n return value.set_value(optionalValue, context, globals)\n }\n })\n } else {\n result[name] = this.valueAsAccessor(value, context, globals, node)\n }\n })\n return result\n }\n\n preparse (source = '') {\n const preparsers = options.bindingStringPreparsers || []\n return preparsers.reduce((acc, fn) => fn(acc), source.trim())\n }\n\n runParse (source, fn) {\n this.text = this.preparse(source)\n this.at = 0\n this.ch = ' '\n\n try {\n var result = fn()\n this.white()\n if (this.ch) {\n this.error('Syntax Error')\n }\n return result\n } catch (e) {\n options.onError(e)\n }\n }\n\n /**\n * Get the bindings as name: accessor()\n * @param {string} source The binding string to parse.\n * @return {object} Map of name to accessor function.\n */\n parse (source, context = {}, globals = {}, node) {\n if (!source) { return () => null }\n this.currentContextGlobals = [context, globals, node]\n const parseFn = () => this.readBindings()\n const bindingAccessors = this.runParse(source, parseFn)\n return this.convertToAccessors(bindingAccessors, context, globals, node)\n }\n\n /**\n * Return a function that evaluates and returns the result of the expression.\n */\n parseExpression (source, context = {}, globals = {}, node) {\n if (!source) { return () => '' }\n this.currentContextGlobals = [context, globals, node]\n const parseFn = () => this.singleValueExpression(true)\n const bindingAccessors = this.runParse(source, parseFn)\n return this.valueAsAccessor(bindingAccessors, context, globals, node)\n }\n}\n"],
"mappings": "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",
"sourcesContent": ["/**\n * Originally based on (public domain):\n * https://github.com/douglascrockford/JSON-js/blob/master/json_parse.js\n */\n\nimport {\n options, objectForEach, clonePlainObjectDeep, extend, hasOwnProperty\n} from '@tko/utils'\n\nimport {default as Expression} from './Expression'\nimport {default as Identifier} from './Identifier'\nimport {default as Arguments} from './Arguments'\nimport {default as Parameters} from './Parameters'\nimport {default as Ternary} from './Ternary'\nimport {default as Node} from './Node'\nimport {default as operators} from './operators'\n\nconst escapee = {\n \"'\": \"'\",\n '\"': '\"',\n '`': '`',\n '\\\\': '\\\\',\n '/': '/',\n '$': '$',\n b: '\\b',\n f: '\\f',\n n: '\\n',\n r: '\\r',\n t: '\\t'\n}\n\n/**\n * Construct a new Parser instance with new Parser(node, context)\n * @param {Node} node The DOM element from which we parsed the\n * content.\n * @param {object} context The Knockout context.\n * @param {object} globals An object containing any desired globals.\n */\nexport default class Parser {\n white () {\n var ch = this.ch\n while (ch && ch <= ' ') {\n ch = this.next()\n }\n return this.comment(ch)\n }\n\n/**\n * Slurp any C or C++ style comments\n */\n comment (ch) {\n if (ch !== '/') { return ch }\n var p = this.at\n var second = this.lookahead()\n if (second === '/') {\n while (ch) {\n ch = this.next()\n if (ch === '\\n' || ch === '\\r') { break }\n }\n ch = this.next()\n } else if (second === '*') {\n while (ch) {\n ch = this.next()\n if (ch === '*' && this.lookahead() === '/') {\n this.next()\n break\n }\n }\n if (!ch) {\n this.error('Unclosed comment, starting at character ' + p)\n }\n this.next()\n return this.white()\n }\n return ch\n };\n\n next (c) {\n if (c && c !== this.ch) {\n this.error(\"Expected '\" + c + \"' but got '\" + this.ch + \"'\")\n }\n this.ch = this.text.charAt(this.at)\n this.at += 1\n return this.ch\n }\n\n lookahead () {\n return this.text[this.at]\n }\n\n error (m) {\n if (m instanceof Error) { throw m }\n let [name, msg] = m.name ? [m.name, m.message] : [m, '']\n const message = `\\n${name} ${msg} of\n ${this.text}\\n` + Array(this.at).join(' ') + '_/ \uD83D\uDD25 \\\\_\\n'\n throw new Error(message)\n }\n\n name () {\n // A name of a binding\n var name = ''\n var enclosedBy\n this.white()\n\n var ch = this.ch\n\n if (ch === \"'\" || ch === '\"') {\n enclosedBy = ch\n ch = this.next()\n }\n\n while (ch) {\n if (enclosedBy && ch === enclosedBy) {\n this.white()\n ch = this.next()\n if (ch !== ':' && ch !== ',') {\n this.error(\n 'Object name: ' + name + ' missing closing ' + enclosedBy\n )\n }\n return name\n } else if (ch === ':' || ch <= ' ' || ch === ',' || ch === '|') {\n return name\n }\n name += ch\n ch = this.next()\n }\n\n return name\n }\n\n number () {\n let number\n let string = ''\n let ch = this.ch\n\n if (ch === '-') {\n string = '-'\n ch = this.next('-')\n }\n while (ch >= '0' && ch <= '9') {\n string += ch\n ch = this.next()\n }\n if (ch === '.') {\n string += '.'\n ch = this.next()\n while (ch && ch >= '0' && ch <= '9') {\n string += ch\n ch = this.next()\n }\n }\n if (ch === 'e' || ch === 'E') {\n string += ch\n ch = this.next()\n if (ch === '-' || ch === '+') {\n string += ch\n ch = this.next()\n }\n while (ch >= '0' && ch <= '9') {\n string += ch\n ch = this.next()\n }\n }\n number = +string\n if (!isFinite(number)) {\n options.onError(new Error('Bad number: ' + number + ' in ' + string))\n } else {\n return number\n }\n }\n\n/**\n * Add a property to 'object' that equals the given value.\n * @param {Object} object The object to add the value to.\n * @param {String} key object[key] is set to the given value.\n * @param {mixed} value The value, may be a primitive or a function. If a\n * function it is unwrapped as a property.\n */\n objectAddValue (object, key, value) {\n if (value && value[Node.isExpressionOrIdentifierSymbol]) {\n Object.defineProperty(object, key, {\n get: () => Node.value_of(value, ...this.currentContextGlobals),\n enumerable: true\n })\n } else if (Array.isArray(value)) {\n Object.defineProperty(object, key, {\n get: () => value.map(v => Node.value_of(v, ...this.currentContextGlobals)),\n enumerable: true\n })\n } else {\n // primitives\n object[key] = value\n }\n }\n\n object () {\n let key\n let object = {}\n let ch = this.ch\n\n if (ch === '{') {\n this.next('{')\n ch = this.white()\n if (ch === '}') {\n ch = this.next('}')\n return object\n }\n while (ch) {\n if (ch === '\"' || ch === \"'\" || ch === '`') {\n key = this.string()\n } else {\n key = this.name()\n }\n if (hasOwnProperty(object, key)) {\n this.error('Duplicate key \"' + key + '\"')\n }\n if (this.white() === ':') {\n ch = this.next(':')\n this.objectAddValue(object, key, this.singleValueExpression())\n } else {\n const objectKeyIsValue = new Identifier(this, key, [])\n this.objectAddValue(object, key, objectKeyIsValue)\n }\n\n ch = this.white()\n if (ch === '}') {\n ch = this.next('}')\n return object\n }\n\n this.next(',')\n ch = this.white()\n if (ch === '}') {\n ch = this.next('}')\n return object\n }\n }\n }\n this.error('Bad object')\n }\n\n/**\n * Read up to delim and return the string\n * @param {string} delim The delimiter, either ' or \"\n * @return {string} The string read.\n */\n readString (delim) {\n let string = ''\n let nodes = ['']\n let plusOp = operators['+']\n let hex\n let i\n let uffff\n let interpolate = delim === '`'\n let ch = this.next()\n\n while (ch) {\n if (ch === delim) {\n ch = this.next()\n if (interpolate) { nodes.push(plusOp) }\n nodes.push(string)\n return nodes\n }\n if (ch === '\\\\') {\n ch = this.next()\n if (ch === 'u') {\n uffff = 0\n for (i = 0; i < 4; i += 1) {\n hex = parseInt(ch = this.next(), 16)\n if (!isFinite(hex)) {\n break\n }\n uffff = uffff * 16 + hex\n }\n string += String.fromCharCode(uffff)\n } else if (typeof escapee[ch] === 'string') {\n string += escapee[ch]\n } else {\n break\n }\n } else if (interpolate && ch === '$') {\n ch = this.next()\n if (ch === '{') {\n this.next('{')\n nodes.push(plusOp)\n nodes.push(string)\n nodes.push(plusOp)\n nodes.push(this.expression())\n string = ''\n // this.next('}');\n } else {\n string += '$' + ch\n }\n } else {\n string += ch\n }\n ch = this.next()\n }\n\n this.error('Bad string')\n }\n\n string () {\n var ch = this.ch\n if (ch === '\"') {\n return this.readString('\"').join('')\n } else if (ch === \"'\") {\n return this.readString(\"'\").join('')\n } else if (ch === '`') {\n return Node.create_root(this.readString('`'))\n }\n\n this.error('Bad string')\n }\n\n array () {\n let array = []\n let ch = this.ch\n\n if (ch === '[') {\n ch = this.next('[')\n this.white()\n if (ch === ']') {\n ch = this.next(']')\n return array\n }\n while (ch) {\n array.push(this.singleValueExpression())\n ch = this.white()\n if (ch === ']') {\n ch = this.next(']')\n return array\n }\n this.next(',')\n ch = this.white()\n }\n }\n this.error('Bad array')\n }\n\n value () {\n this.white()\n let ch = this.ch\n switch (ch) {\n case '{': return this.object()\n case '[': return this.array()\n case '\"': case \"'\": case '`': return this.string()\n case '-': return this.number()\n default:\n return ch >= '0' && ch <= '9' ? this.number() : this.identifier()\n }\n }\n\n/**\n * Get the function for the given operator.\n * A `.precedence` value is added to the function, with increasing\n * precedence having a higher number.\n * @return {function} The function that performs the infix operation\n */\n operator (opts) {\n let op = ''\n let opFn\n let ch = this.white()\n let isIdentifierChar = Identifier.is_valid_start_char\n\n while (ch) {\n if (isIdentifierChar(ch) || ch <= ' ' || ch === '' ||\n ch === '\"' || ch === \"'\" || ch === '{' || ch === '(' ||\n ch === '`' || ch === ')' || (ch <= '9' && ch >= '0')) {\n break\n }\n\n if (!opts.not_an_array && ch === '[') {\n break\n }\n\n op += ch\n ch = this.next()\n\n // An infix followed by the prefix e.g. a + @b\n // TODO: other prefix unary operators\n if (ch === '@') {\n break\n }\n\n isIdentifierChar = Identifier.is_valid_continue_char\n }\n\n if (op !== '') {\n if (opts.prefix && op === '-') { op = '&-' }\n opFn = operators[op]\n\n if (!opFn) {\n this.error(\"Bad operator: '\" + op + \"'.\")\n }\n }\n\n return opFn\n }\n\n/**\n * Filters\n * Returns what the Node interprets as an \"operator\".\n * e.g.\n * <span data-bind=\"text: name | fit:20 | uppercase\"></span>\n */\n filter () {\n let ch = this.next()\n let args = []\n let nextFilter = function (v) { return v }\n let name = this.name()\n\n if (!options.filters[name]) {\n options.onError('Cannot find filter by the name of: ' + name)\n }\n\n ch = this.white()\n\n while (ch) {\n if (ch === ':') {\n ch = this.next()\n args.push(this.singleValueExpression('|'))\n }\n\n if (ch === '|') {\n nextFilter = this.filter()\n break\n }\n\n if (ch === ',') { break }\n\n ch = this.white()\n }\n\n var filter = function filter (value, ignored, context, globals, node) {\n var argValues = [value]\n\n for (var i = 0, j = args.length; i < j; ++i) {\n argValues.push(Node.value_of(args[i], context, globals, node))\n }\n\n return nextFilter(options.filters[name].apply(context, argValues))\n }\n\n // Lowest precedence.\n filter.precedence = 1\n return filter\n }\n\n/**\n * Parse an expression \u2013 builds an operator tree, in something like\n * Shunting-Yard.\n * See: http://en.wikipedia.org/wiki/Shunting-yard_algorithm\n *\n * @param filterable - Whether the expression can include jinga-style filters.\n * An argument of '|' is used only by the filter() method to parse subsequent\n * filters.\n * @param allowMultipleValues - Whether multiple values separated by commas are\n * allowed in this expression. When true (default), this method consumes\n * subsequent comma-separated values.\n * @see {@link Parser.singleValueExpression}\n * \n * @returns a function that computes the value of the expression\n * when called or a primitive.\n */\n expression (filterable: string | bool = false, allowMultipleValues: bool = true) {\n let op\n let nodes = []\n let ch = this.white()\n\n while (ch) {\n // unary prefix operators\n op = this.operator({ prefix: true })\n if (op) {\n nodes.push(undefined) // LHS Tree node.\n nodes.push(op)\n ch = this.white()\n }\n\n if (ch === '(') {\n this.next()\n nodes.push(this.expression())\n this.next(')')\n } else {\n nodes.push(this.value())\n }\n ch = this.white()\n\n if (ch === ':' || ch === '}' || ch === ']' ||\n ch === ')' || ch === '' || ch === '`' ||\n (ch === '|' && filterable === '|') ||\n (ch === ',' && !allowMultipleValues)) {\n break\n }\n\n // filters\n if (ch === '|' && this.lookahead() !== '|' && filterable) {\n nodes.push(this.filter())\n nodes.push(undefined)\n break\n }\n\n // infix or postfix operators\n op = this.operator({ not_an_array: true })\n\n if (op === operators['?']) {\n this.ternary(nodes)\n break\n } else if (op === operators['.']) {\n nodes.push(op)\n nodes.push(this.member())\n op = null\n } else if (op === operators['[']) {\n nodes.push(op)\n nodes.push(this.expression())\n ch = this.next(']')\n op = null\n } else if (op === operators['=>']) {\n // convert the last node to Parameters\n nodes[nodes.length-1] = new Parameters(this, nodes[nodes.length-1])\n nodes.push(op)\n } else if (op) {\n nodes.push(op)\n }\n\n ch = this.white()\n\n if (ch === ']' || (!op && ch === '(')) { break }\n }\n\n if (nodes.length === 0) {\n return undefined\n }\n\n var dereferences = this.dereferences()\n\n if (nodes.length === 1 && !dereferences.length) {\n return nodes[0]\n }\n\n for (var i = 0, j = dereferences.length; i < j; ++i) {\n var deref = dereferences[i]\n if (deref.constructor === Arguments) {\n nodes.push(operators.call)\n } else {\n nodes.push(operators['.'])\n }\n nodes.push(deref)\n }\n\n return new Expression(nodes)\n }\n\n/**\n * Use this method to parse expressions that can be followed by additional markup\n * seperated by a comma, such as in bindings strings.\n * \n * @returns an expression that cannot contain multiple values separated by commas.\n * @see {@link Parser.expression}\n */\n singleValueExpression (filterable: bool | string) {\n return this.expression(filterable, false)\n }\n\n ternary (nodes) {\n var ternary = new Ternary()\n ternary.yes = this.singleValueExpression()\n this.next(':')\n ternary.no = this.singleValueExpression()\n nodes.push(operators['?'])\n nodes.push(ternary)\n }\n\n/**\n * Parse the arguments to a function, returning an Array.\n *\n */\n funcArguments () {\n let args = []\n let ch = this.next('(')\n\n while (ch) {\n ch = this.white()\n if (ch === ')') {\n this.next(')')\n return new Arguments(this, args)\n } else {\n args.push(this.singleValueExpression())\n ch = this.white()\n }\n if (ch !== ')') { this.next(',') }\n }\n\n this.error('Bad arguments to function')\n }\n\n/**\n * The literal string reference `abc` in an `x.abc` expression.\n */\n member () {\n let member = ''\n let ch = this.white()\n let isIdentifierChar = Identifier.is_valid_start_char\n\n while (ch) {\n if (!isIdentifierChar(ch)) {\n break\n }\n member += ch\n ch = this.next()\n isIdentifierChar = Identifier.is_valid_continue_char\n }\n return member\n }\n\n/**\n * A dereference applies to an identifer, being either a function\n * call \"()\" or a membership lookup with square brackets \"[member]\".\n * @return {fn or undefined} Dereference function to be applied to the\n * Identifier\n */\n dereference () {\n let member\n let ch = this.white()\n\n while (ch) {\n if (ch === '(') {\n // a(...) function call\n return this.funcArguments()\n } else if (ch === '[') {\n // a[x] membership\n this.next('[')\n member = this.expression()\n this.white()\n this.next(']')\n\n return member\n } else if (ch === '.') {\n // a.x membership\n this.next('.')\n return this.member()\n } else {\n break\n }\n }\n }\n\n dereferences () {\n let ch = this.white()\n let dereferences = []\n let deref\n\n while (ch) {\n deref = this.dereference()\n if (deref !== undefined) {\n dereferences.push(deref)\n } else {\n break\n }\n }\n return dereferences\n }\n\n identifier () {\n let token = ''\n let isIdentifierChar = Identifier.is_valid_start_char\n let ch = this.white()\n\n while (ch) {\n if (!isIdentifierChar(ch)) {\n break\n }\n token += ch\n ch = this.next()\n isIdentifierChar = Identifier.is_valid_continue_char\n }\n switch (token) {\n case 'true': return true\n case 'false': return false\n case 'null': return null\n case 'undefined': return void 0\n case 'function':\n throw new Error('Knockout: Anonymous functions are no longer supported, but `=>` lambdas are. In: ' + this.text)\n // return this.anonymous_fn();\n }\n return new Identifier(this, token, this.dereferences())\n }\n\n readBindings () {\n let key\n let bindings = {}\n let sep\n let expr\n let ch = this.ch\n\n while (ch) {\n key = this.name()\n sep = this.white()\n\n if (!sep || sep === ',') {\n if (sep) {\n ch = this.next(',')\n } else {\n ch = ''\n }\n // A \"bare\" binding e.g. \"text\"; substitute value of 'null'\n // so it becomes \"text: null\".\n bindings[key] = null\n } else {\n if (key.indexOf('.') !== -1) {\n // Namespaced \u2013 i.e.\n // `attr.css: x` becomes `attr: { css: x }`\n // ^^^ - key\n key = key.split('.')\n bindings[key[0]] = bindings[key[0]] || {}\n\n if (key.length !== 2) {\n options.onError('Binding ' + key + ' should have two parts (a.b).')\n } else if (bindings[key[0]].constructor !== Object) {\n options.onError('Binding ' + key[0] + '.' + key[1] + ' paired with a non-object.')\n }\n\n ch = this.next(':')\n this.objectAddValue(bindings[key[0]], key[1], this.singleValueExpression(true))\n } else {\n ch = this.next(':')\n if (bindings[key] && typeof bindings[key] === 'object' && bindings[key].constructor === Object) {\n // Extend a namespaced bindings e.g. we've previously seen\n // on.x, now we're seeing on: { 'abc' }.\n expr = this.singleValueExpression(true)\n if (typeof expr !== 'object' || expr.constructor !== Object) {\n options.onError('Expected plain object for ' + key + ' value.')\n } else {\n extend(bindings[key], expr)\n }\n } else {\n bindings[key] = this.singleValueExpression(true)\n }\n }\n\n this.white()\n if (this.ch) {\n ch = this.next(',')\n } else {\n ch = ''\n }\n }\n }\n return bindings\n }\n\n valueAsAccessor (value, context, globals, node) {\n if (!value) { return () => value }\n if (typeof value === 'function') { return value }\n\n if (value[Node.isExpressionOrIdentifierSymbol]) {\n return () => Node.value_of(value, context, globals, node)\n }\n\n if (Array.isArray(value)) {\n return () => value.map(v => Node.value_of(v, context, globals, node))\n }\n\n if (typeof (value) !== 'function') {\n return () => clonePlainObjectDeep(value)\n }\n\n throw new Error('Value has cannot be converted to accessor: ' + value)\n }\n\n /**\n * Convert result[name] from a value to a function (i.e. `valueAccessor()`)\n * @param {object} result [Map of top-level names to values]\n * @return {object} [Map of top-level names to functions]\n *\n * Accessors may be one of (below) constAccessor, identifierAccessor,\n * expressionAccessor, or nodeAccessor.\n */\n convertToAccessors (result, context, globals, node) {\n objectForEach(result, (name, value) => {\n if (value instanceof Identifier) {\n // Return a function that, with no arguments returns\n // the value of the identifier, otherwise sets the\n // value of the identifier to the first given argument.\n Object.defineProperty(result, name, {\n value: function (optionalValue, options) {\n const currentValue = value.get_value(undefined, context, globals, node)\n if (arguments.length === 0) { return currentValue }\n const unchanged = optionalValue === currentValue\n if (options && options.onlyIfChanged && unchanged) { return }\n return value.set_value(optionalValue, context, globals)\n }\n })\n } else {\n result[name] = this.valueAsAccessor(value, context, globals, node)\n }\n })\n return result\n }\n\n preparse (source = '') {\n const preparsers = options.bindingStringPreparsers || []\n return preparsers.reduce((acc, fn) => fn(acc), source.trim())\n }\n\n runParse (source, fn) {\n this.text = this.preparse(source)\n this.at = 0\n this.ch = ' '\n\n try {\n var result = fn()\n this.white()\n if (this.ch) {\n this.error('Syntax Error')\n }\n return result\n } catch (e) {\n options.onError(e)\n }\n }\n\n /**\n * Get the bindings as name: accessor()\n * @param {string} source The binding string to parse.\n * @return {object} Map of name to accessor function.\n */\n parse (source, context = {}, globals = {}, node) {\n if (!source) { return () => null }\n this.currentContextGlobals = [context, globals, node]\n const parseFn = () => this.readBindings()\n const bindingAccessors = this.runParse(source, parseFn)\n return this.convertToAccessors(bindingAccessors, context, globals, node)\n }\n\n /**\n * Return a function that evaluates and returns the result of the expression.\n */\n parseExpression (source, context = {}, globals = {}, node) {\n if (!source) { return () => '' }\n this.currentContextGlobals = [context, globals, node]\n const parseFn = () => this.singleValueExpression(true)\n const bindingAccessors = this.runParse(source, parseFn)\n return this.valueAsAccessor(bindingAccessors, context, globals, node)\n }\n}\n"],
"mappings": "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",
"names": []
}

@@ -1,2 +0,2 @@

// @tko/utils.parser 🥊 4.0.0-beta1.3 ESM
// @tko/utils.parser 🥊 4.0.0-beta1.4 ESM
import {

@@ -3,0 +3,0 @@ stringTrim

@@ -1,2 +0,2 @@

// @tko/utils.parser 🥊 4.0.0-beta1.3 ESM
// @tko/utils.parser 🥊 4.0.0-beta1.4 ESM
import Node from "./Node";

@@ -3,0 +3,0 @@ export default class Ternary {

{
"version": "4.0.0-beta1.3",
"version": "4.0.0-beta1.4",
"name": "@tko/utils.parser",

@@ -50,3 +50,3 @@ "description": "Parse the Javascript-like language used in data-bind and other HTML attributes (CSP-safe)",

},
"gitHead": "a8843acb8ae085915115e53a4e057b30731c635e"
"gitHead": "7496e89dfd0f39a030f6ed9c371b82f1c359bb6d"
}

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

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