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.1
to
4.1.0
+5
README.md
# @tko/utils.parser
CSP-safe expression parser for data-bind and ko-* attributes
Part of [TKO](https://tko.io) — modern Knockout.js. [Docs](https://tko.io) · [Source](https://github.com/knockout/tko/tree/main/packages/utils.parser)
+1
-1

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

// @tko/utils.parser 🥊 4.0.1 ESM
// @tko/utils.parser 🥊 4.1.0 ESM
"use strict";

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

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

// @tko/utils.parser 🥊 4.0.1 ESM
// @tko/utils.parser 🥊 4.1.0 ESM
"use strict";

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

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

// @tko/utils.parser 🥊 4.0.1 ESM
// @tko/utils.parser 🥊 4.1.0 ESM
"use strict";

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

@@ -1,4 +0,4 @@

// @tko/utils.parser 🥊 4.0.1 ESM
// @tko/utils.parser 🥊 4.1.0 ESM
"use strict";
export const 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 const 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.1 CommonJS
// @tko/utils.parser 🥊 4.1.0 CommonJS
"use strict";

@@ -63,15 +63,15 @@ var __defProp = Object.defineProperty;

}
looseEqual.precedence = 10;
looseEqual.precedence = 8;
function looseNotEqual(a, b) {
return a != b;
}
looseNotEqual.precedence = 10;
looseNotEqual.precedence = 8;
function strictEqual(a, b) {
return a === b;
}
strictEqual.precedence = 10;
strictEqual.precedence = 8;
function strictNotEqual(a, b) {
return a !== b;
}
strictNotEqual.precedence = 10;
strictNotEqual.precedence = 8;
var operators = {

@@ -183,36 +183,36 @@ // unary

operators["#"].precedence = 21;
operators["."].precedence = 19;
operators["["].precedence = 19;
operators["?."].precedence = 19;
operators["!"].precedence = 16;
operators["!!"].precedence = 16;
operators["++"].precedence = 16;
operators["--"].precedence = 16;
operators["&-"].precedence = 16;
operators["**"].precedence = 15;
operators["%"].precedence = 14;
operators["*"].precedence = 14;
operators["/"].precedence = 14;
operators["+"].precedence = 13;
operators["-"].precedence = 13;
operators["|"].precedence = 12;
operators["^"].precedence = 11;
operators["&"].precedence = 10;
operators["<"].precedence = 11;
operators["<="].precedence = 11;
operators[">"].precedence = 11;
operators[">="].precedence = 11;
operators["=="].precedence = 10;
operators["!="].precedence = 10;
operators["==="].precedence = 10;
operators["!=="].precedence = 10;
operators["&&"].precedence = 6;
operators["||"].precedence = 5;
operators["??"].precedence = 5;
operators["."].precedence = 17;
operators["["].precedence = 17;
operators["?."].precedence = 17;
operators["!"].precedence = 14;
operators["!!"].precedence = 14;
operators["++"].precedence = 14;
operators["--"].precedence = 14;
operators["&-"].precedence = 14;
operators["**"].precedence = 13;
operators["%"].precedence = 12;
operators["*"].precedence = 12;
operators["/"].precedence = 12;
operators["+"].precedence = 11;
operators["-"].precedence = 11;
operators["<"].precedence = 9;
operators["<="].precedence = 9;
operators[">"].precedence = 9;
operators[">="].precedence = 9;
operators["=="].precedence = 8;
operators["!="].precedence = 8;
operators["==="].precedence = 8;
operators["!=="].precedence = 8;
operators["&"].precedence = 7;
operators["^"].precedence = 6;
operators["|"].precedence = 5;
operators["&&"].precedence = 4;
operators["||"].precedence = 3;
operators["??"].precedence = 3;
operators["&&"].earlyOut = (a) => !a;
operators["||"].earlyOut = (a) => a;
operators["??"].earlyOut = (a) => a;
operators[","].precedence = 2;
operators["??"].earlyOut = (a) => a !== null && a !== void 0;
operators["=>"].precedence = 2;
operators[","].precedence = 1;
operators["call"].precedence = 1;
operators["=>"].precedence = 1;
(0, import_utils.defineOption)("strictEquality", {

@@ -1340,3 +1340,2 @@ default: false,

// src/preparse.ts
var import_utils4 = require("@tko/utils");
var specials = ",\"'`{}()/:[\\]";

@@ -1370,7 +1369,8 @@ var bindingToken = RegExp(

function parseObjectLiteral(objectLiteralString) {
let str = (0, import_utils4.stringTrim)(objectLiteralString);
var _a, _b;
let str = String(objectLiteralString != null ? objectLiteralString : "").trim();
if (str.charCodeAt(0) === 123) str = str.slice(1, -1);
str += "\n,";
const result = new Array();
let toks = str.match(bindingToken);
let toks = (_a = str.match(bindingToken)) != null ? _a : [];
let key;

@@ -1401,4 +1401,4 @@ let values = new Array();

if (match && !keywordRegexLookBehind[match[0]]) {
str = str.substr(str.indexOf(tok) + 1);
toks = str.match(bindingToken);
str = str.substring(str.indexOf(tok) + 1);
toks = (_b = str.match(bindingToken)) != null ? _b : [];
i = -1;

@@ -1405,0 +1405,0 @@ tok = "/";

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

// @tko/utils.parser 🥊 4.0.1 ESM
// @tko/utils.parser 🥊 4.1.0 ESM
"use strict";

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

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

// @tko/utils.parser 🥊 4.0.1 MJS
// @tko/utils.parser 🥊 4.1.0 MJS
"use strict";

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

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

// @tko/utils.parser 🥊 4.0.1 ESM
// @tko/utils.parser 🥊 4.1.0 ESM
"use strict";

@@ -3,0 +3,0 @@ import { unwrap } from "@tko/observable";

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

// @tko/utils.parser 🥊 4.0.1 ESM
// @tko/utils.parser 🥊 4.1.0 ESM
"use strict";

@@ -16,15 +16,15 @@ import { unwrap } from "@tko/observable";

}
looseEqual.precedence = 10;
looseEqual.precedence = 8;
function looseNotEqual(a, b) {
return a != b;
}
looseNotEqual.precedence = 10;
looseNotEqual.precedence = 8;
function strictEqual(a, b) {
return a === b;
}
strictEqual.precedence = 10;
strictEqual.precedence = 8;
function strictNotEqual(a, b) {
return a !== b;
}
strictNotEqual.precedence = 10;
strictNotEqual.precedence = 8;
const operators = {

@@ -136,36 +136,36 @@ // unary

operators["#"].precedence = 21;
operators["."].precedence = 19;
operators["["].precedence = 19;
operators["?."].precedence = 19;
operators["!"].precedence = 16;
operators["!!"].precedence = 16;
operators["++"].precedence = 16;
operators["--"].precedence = 16;
operators["&-"].precedence = 16;
operators["**"].precedence = 15;
operators["%"].precedence = 14;
operators["*"].precedence = 14;
operators["/"].precedence = 14;
operators["+"].precedence = 13;
operators["-"].precedence = 13;
operators["|"].precedence = 12;
operators["^"].precedence = 11;
operators["&"].precedence = 10;
operators["<"].precedence = 11;
operators["<="].precedence = 11;
operators[">"].precedence = 11;
operators[">="].precedence = 11;
operators["=="].precedence = 10;
operators["!="].precedence = 10;
operators["==="].precedence = 10;
operators["!=="].precedence = 10;
operators["&&"].precedence = 6;
operators["||"].precedence = 5;
operators["??"].precedence = 5;
operators["."].precedence = 17;
operators["["].precedence = 17;
operators["?."].precedence = 17;
operators["!"].precedence = 14;
operators["!!"].precedence = 14;
operators["++"].precedence = 14;
operators["--"].precedence = 14;
operators["&-"].precedence = 14;
operators["**"].precedence = 13;
operators["%"].precedence = 12;
operators["*"].precedence = 12;
operators["/"].precedence = 12;
operators["+"].precedence = 11;
operators["-"].precedence = 11;
operators["<"].precedence = 9;
operators["<="].precedence = 9;
operators[">"].precedence = 9;
operators[">="].precedence = 9;
operators["=="].precedence = 8;
operators["!="].precedence = 8;
operators["==="].precedence = 8;
operators["!=="].precedence = 8;
operators["&"].precedence = 7;
operators["^"].precedence = 6;
operators["|"].precedence = 5;
operators["&&"].precedence = 4;
operators["||"].precedence = 3;
operators["??"].precedence = 3;
operators["&&"].earlyOut = (a) => !a;
operators["||"].earlyOut = (a) => a;
operators["??"].earlyOut = (a) => a;
operators[","].precedence = 2;
operators["??"].earlyOut = (a) => a !== null && a !== void 0;
operators["=>"].precedence = 2;
operators[","].precedence = 1;
operators["call"].precedence = 1;
operators["=>"].precedence = 1;
defineOption("strictEquality", {

@@ -172,0 +172,0 @@ default: false,

{
"version": 3,
"sources": ["../src/operators.ts"],
"sourcesContent": ["import { unwrap } from '@tko/observable'\nimport { defineOption } from '@tko/utils'\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') {\n b = b()\n }\n return b\n}\n\nexport type OperatorFunction = (a: any, b: any, ...args: any[]) => any\n\nexport interface OperatorWithProperties extends OperatorFunction {\n earlyOut?: (a: any) => any\n precedence?: number\n}\n\nexport interface Operators {\n [key: string]: OperatorWithProperties\n}\nfunction looseEqual(a, b) {\n return a == b\n}\nlooseEqual.precedence = 10\n\nfunction looseNotEqual(a, b) {\n return a != b\n}\nlooseNotEqual.precedence = 10\n\nfunction strictEqual(a, b) {\n return a === b\n}\nstrictEqual.precedence = 10\n\nfunction strictNotEqual(a, b) {\n return a !== b\n}\nstrictNotEqual.precedence = 10\n\nconst operators: Operators = {\n // unary\n '@': unwrapOrCall,\n '#': (a, b) => () => unwrap(b), // Convert to read-only.\n '=>': LAMBDA,\n '!': function not(a, b) {\n return !b\n },\n '!!': function notnot(a, b) {\n return !!b\n },\n '++': function preinc(a, b) {\n return ++b\n },\n '--': function preinc(a, b) {\n return --b\n },\n // exponent\n '**': function exp(a, b) {\n return a ** b\n },\n // mul/div\n '*': function mul(a, b) {\n return a * b\n },\n '/': function div(a, b) {\n return a / b\n },\n '%': function mod(a, b) {\n return a % b\n },\n // sub/add\n '+': function add(a, b) {\n return a + b\n },\n '-': function sub(a, b) {\n return (a || 0) - (b || 0)\n },\n '&-': function neg(a, b) {\n return -1 * b\n }, // unary -\n // relational\n '<': function lt(a, b) {\n return a < b\n },\n '<=': function le(a, b) {\n return a <= b\n },\n '>': function gt(a, b) {\n return a > b\n },\n '>=': function ge(a, b) {\n return a >= b\n },\n // TODO: 'in': function (a, b) { return a in b; },\n // TODO: 'instanceof': function (a, b) { return a instanceof b; },\n // TODO: 'typeof': function (a, b) { return typeof b; },\n // equality \u2014 default loose; set options.strictEquality = true for === behavior\n '==': looseEqual,\n '!=': looseNotEqual,\n '===': strictEqual,\n '!==': strictNotEqual,\n // bitwise\n '&': function bitAnd(a, b) {\n return a & b\n },\n '^': function xor(a, b) {\n return a ^ b\n },\n '|': function bitOr(a, b) {\n return a | b\n },\n // logic\n '&&': function logicAnd(a, b) {\n return a && b\n },\n '||': function logicOr(a, b) {\n return a || b\n },\n '??': function nullishCoalesce(a, b) {\n return a ?? b\n },\n // Access\n '.': function member(a, b) {\n return a?.[b]\n },\n '?.': function omember(a, b) {\n return a?.[b]\n },\n '[': function bmember(a, b) {\n return a?.[b]\n },\n ',': function comma(a, b) {\n return b\n },\n // conditional/ternary\n // '?': ternary See Node.js\n // Function-Call\n call: function callOp(a, b) {\n return a.apply(null, b)\n }\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['**'].precedence = 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\n// Extend the Options type so ko.options.strictEquality is strongly typed\ndeclare module '@tko/utils' {\n interface Options {\n strictEquality: boolean\n }\n}\n\n/** Register strictEquality as a configurable option on ko.options */\ndefineOption('strictEquality', {\n default: false,\n set(strict: boolean) {\n operators['=='] = strict ? strictEqual : looseEqual\n operators['!='] = strict ? strictNotEqual : looseNotEqual\n }\n})\n\nexport { operators as default }\n"],
"mappings": "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",
"sourcesContent": ["import { unwrap } from '@tko/observable'\nimport { defineOption } from '@tko/utils'\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') {\n b = b()\n }\n return b\n}\n\nexport type OperatorFunction = (a: any, b: any, ...args: any[]) => any\n\nexport interface OperatorWithProperties extends OperatorFunction {\n earlyOut?: (a: any) => any\n precedence?: number\n}\n\nexport interface Operators {\n [key: string]: OperatorWithProperties\n}\nfunction looseEqual(a, b) {\n return a == b\n}\nlooseEqual.precedence = 8\n\nfunction looseNotEqual(a, b) {\n return a != b\n}\nlooseNotEqual.precedence = 8\n\nfunction strictEqual(a, b) {\n return a === b\n}\nstrictEqual.precedence = 8\n\nfunction strictNotEqual(a, b) {\n return a !== b\n}\nstrictNotEqual.precedence = 8\n\nconst operators: Operators = {\n // unary\n '@': unwrapOrCall,\n '#': (a, b) => () => unwrap(b), // Convert to read-only.\n '=>': LAMBDA,\n '!': function not(a, b) {\n return !b\n },\n '!!': function notnot(a, b) {\n return !!b\n },\n '++': function preinc(a, b) {\n return ++b\n },\n '--': function preinc(a, b) {\n return --b\n },\n // exponent\n '**': function exp(a, b) {\n return a ** b\n },\n // mul/div\n '*': function mul(a, b) {\n return a * b\n },\n '/': function div(a, b) {\n return a / b\n },\n '%': function mod(a, b) {\n return a % b\n },\n // sub/add\n '+': function add(a, b) {\n return a + b\n },\n '-': function sub(a, b) {\n return (a || 0) - (b || 0)\n },\n '&-': function neg(a, b) {\n return -1 * b\n }, // unary -\n // relational\n '<': function lt(a, b) {\n return a < b\n },\n '<=': function le(a, b) {\n return a <= b\n },\n '>': function gt(a, b) {\n return a > b\n },\n '>=': function ge(a, b) {\n return a >= b\n },\n // TODO: 'in': function (a, b) { return a in b; },\n // TODO: 'instanceof': function (a, b) { return a instanceof b; },\n // TODO: 'typeof': function (a, b) { return typeof b; },\n // equality \u2014 default loose; set options.strictEquality = true for === behavior\n '==': looseEqual,\n '!=': looseNotEqual,\n '===': strictEqual,\n '!==': strictNotEqual,\n // bitwise\n '&': function bitAnd(a, b) {\n return a & b\n },\n '^': function xor(a, b) {\n return a ^ b\n },\n '|': function bitOr(a, b) {\n return a | b\n },\n // logic\n '&&': function logicAnd(a, b) {\n return a && b\n },\n '||': function logicOr(a, b) {\n return a || b\n },\n '??': function nullishCoalesce(a, b) {\n return a ?? b\n },\n // Access\n '.': function member(a, b) {\n return a?.[b]\n },\n '?.': function omember(a, b) {\n return a?.[b]\n },\n '[': function bmember(a, b) {\n return a?.[b]\n },\n ',': function comma(a, b) {\n return b\n },\n // conditional/ternary\n // '?': ternary See Node.js\n // Function-Call\n call: function callOp(a, b) {\n return a.apply(null, b)\n }\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 access and call\noperators['.'].precedence = 17\noperators['['].precedence = 17\noperators['?.'].precedence = 17\n\n// Prefix operators\noperators['!'].precedence = 14\noperators['!!'].precedence = 14 // explicit double-negative\n\n// Prefix inc/dec\noperators['++'].precedence = 14\noperators['--'].precedence = 14\noperators['&-'].precedence = 14\n\n// Exponentiation\noperators['**'].precedence = 13\n\n// Multiplicative\noperators['%'].precedence = 12\noperators['*'].precedence = 12\noperators['/'].precedence = 12\n\n// Additive\noperators['+'].precedence = 11\noperators['-'].precedence = 11\n\n// Relational\noperators['<'].precedence = 9\noperators['<='].precedence = 9\noperators['>'].precedence = 9\noperators['>='].precedence = 9\n\n// operators['in'].precedence = 9;\n// operators['instanceof'].precedence = 9;\n\n// Equality\noperators['=='].precedence = 8\noperators['!='].precedence = 8\noperators['==='].precedence = 8\noperators['!=='].precedence = 8\n\n// Bitwise AND\noperators['&'].precedence = 7\n\n// Bitwise XOR\noperators['^'].precedence = 6\n\n// Bitwise OR\noperators['|'].precedence = 5\n\n// Logical AND\noperators['&&'].precedence = 4\n\n// Logical OR / Nullish coalescing\noperators['||'].precedence = 3\noperators['??'].precedence = 3\n\noperators['&&'].earlyOut = a => !a\noperators['||'].earlyOut = a => a\noperators['??'].earlyOut = a => a !== null && a !== undefined\n\n// Assignment and miscellaneous (lamda)\noperators['=>'].precedence = 2\n\n// Comma, multiple values\noperators[','].precedence = 1\n\n// Call a function\noperators['call'].precedence = 1\n\n// Extend the Options type so ko.options.strictEquality is strongly typed\ndeclare module '@tko/utils' {\n interface Options {\n strictEquality: boolean\n }\n}\n\n/** Register strictEquality as a configurable option on ko.options */\ndefineOption('strictEquality', {\n default: false,\n set(strict: boolean) {\n operators['=='] = strict ? strictEqual : looseEqual\n operators['!='] = strict ? strictNotEqual : looseNotEqual\n }\n})\n\nexport { operators as default }\n"],
"mappings": "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",
"names": ["preinc"]
}

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

// @tko/utils.parser 🥊 4.0.1 ESM
// @tko/utils.parser 🥊 4.1.0 ESM
"use strict";

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

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

// @tko/utils.parser 🥊 4.0.1 ESM
// @tko/utils.parser 🥊 4.1.0 ESM
"use strict";

@@ -3,0 +3,0 @@ import { options, objectForEach, clonePlainObjectDeep, extend, hasOwnProperty } from "@tko/utils";

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

// @tko/utils.parser 🥊 4.0.1 ESM
// @tko/utils.parser 🥊 4.1.0 ESM
"use strict";
import { stringTrim } from "@tko/utils";
const specials = ",\"'`{}()/:[\\]";

@@ -32,7 +31,7 @@ const bindingToken = RegExp(

export default function parseObjectLiteral(objectLiteralString) {
let str = stringTrim(objectLiteralString);
let str = String(objectLiteralString ?? "").trim();
if (str.charCodeAt(0) === 123) str = str.slice(1, -1);
str += "\n,";
const result = new Array();
let toks = str.match(bindingToken);
let toks = str.match(bindingToken) ?? [];
let key;

@@ -63,4 +62,4 @@ let values = new Array();

if (match && !keywordRegexLookBehind[match[0]]) {
str = str.substr(str.indexOf(tok) + 1);
toks = str.match(bindingToken);
str = str.substring(str.indexOf(tok) + 1);
toks = str.match(bindingToken) ?? [];
i = -1;

@@ -67,0 +66,0 @@ tok = "/";

{
"version": 3,
"sources": ["../src/preparse.ts"],
"sourcesContent": ["import { stringTrim } from '@tko/utils'\n\n/* eslint no-cond-assign: 0 */\n\n// The following regular expressions will be used to split an object-literal string into tokens\n\n// These characters have special meaning to the parser and must not appear in the middle of a\n// token, except as part of a string.\nconst specials = ',\"\\'`{}()/:[\\\\]'\nconst bindingToken = RegExp(\n [\n // These match strings, either with double quotes, single quotes, or backticks\n '\"(?:\\\\\\\\.|[^\"])*\"',\n \"'(?:\\\\\\\\.|[^'])*'\",\n '`(?:\\\\\\\\.|[^`])*`',\n // Match C style comments\n '/\\\\*(?:[^*]|\\\\*+[^*/])*\\\\*+/',\n // Match C++ style comments\n '//.*\\n',\n // Match a regular expression (text enclosed by slashes), but will also match sets of divisions\n // as a regular expression (this is handled by the parsing loop below).\n '/(?:\\\\\\\\.|[^/])+/\\\\w*',\n // Match text (at least two characters) that does not contain any of the above special characters,\n // although some of the special characters are allowed to start it (all but the colon and comma).\n // The text can contain spaces, but leading or trailing spaces are skipped.\n '[^\\\\s:,/][^' + specials + ']*[^\\\\s' + specials + ']',\n // Match any non-space character not matched already. This will match colons and commas, since they're\n // not matched by \"everyThingElse\", but will also match any other single character that wasn't already\n // matched (for example: in \"a: 1, b: 2\", each of the non-space characters will be matched by oneNotSpace).\n '[^\\\\s]'\n ].join('|'),\n 'g'\n)\n\n// Match end of previous token to determine whether a slash is a division or regex.\nconst divisionLookBehind = /[\\])\"'A-Za-z0-9_$]+$/\nconst keywordRegexLookBehind = { in: 1, return: 1, typeof: 1 }\n\n/**\n * Break a binding string (data-bind='x: val, y: ..') into a stable array\n * of {key: value}.\n */\nexport default function parseObjectLiteral(objectLiteralString) {\n // Trim leading and trailing spaces from the string\n let str = stringTrim(objectLiteralString)\n\n // Trim braces '{' surrounding the whole object literal\n if (str.charCodeAt(0) === 123) str = str.slice(1, -1)\n\n // Add a newline to correctly match a C++ style comment at the end of the string and\n // add a comma so that we don't need a separate code block to deal with the last item\n str += '\\n,'\n\n // Split into tokens\n const result = new Array()\n let toks = str.match(bindingToken)\n let key\n let values = new Array()\n let depth = 0\n\n if (toks.length <= 1) {\n return []\n }\n\n for (let i = 0, tok; (tok = toks[i]); ++i) {\n const c = tok.charCodeAt(0)\n // A comma signals the end of a key/value pair if depth is zero\n if (c === 44) {\n // \",\"\n if (depth <= 0) {\n result.push(key && values.length ? { key: key, value: values.join('') } : { unknown: key || values.join('') })\n key = depth = 0\n values = new Array()\n continue\n }\n // Simply skip the colon that separates the name and value\n } else if (c === 58) {\n // \":\"\n if (!depth && !key && values.length === 1) {\n key = values.pop()\n continue\n }\n // A set of slashes is initially matched as a regular expression, but could be division\n } else if (c === 47 && tok.length > 1 && (tok.charCodeAt(1) === 47 || tok.charCodeAt(1) === 42)) {\n // \"//\" or \"/*\"\n // skip comments\n continue\n } else if (c === 47 && i && tok.length > 1) {\n // \"/\"\n // Look at the end of the previous token to determine if the slash is actually division\n const match = toks[i - 1].match(divisionLookBehind)\n if (match && !keywordRegexLookBehind[match[0]]) {\n // The slash is actually a division punctuator; re-parse the remainder of the string (not including the slash)\n str = str.substr(str.indexOf(tok) + 1)\n toks = str.match(bindingToken)\n i = -1\n // Continue with just the slash\n tok = '/'\n }\n // Increment depth for parentheses, braces, and brackets so that interior commas are ignored\n } else if (c === 40 || c === 123 || c === 91) {\n // '(', '{', '['\n ++depth\n } else if (c === 41 || c === 125 || c === 93) {\n // ')', '}', ']'\n --depth\n // The key will be the first token; if it's a string, trim the quotes\n } else if (!key && !values.length && (c === 34 || c === 39)) {\n // '\"', \"'\"\n tok = tok.slice(1, -1)\n }\n values.push(tok)\n }\n\n return result\n}\n"],
"mappings": ";;AAAA,SAAS,kBAAkB;AAQ3B,MAAM,WAAW;AACjB,MAAM,eAAe;AAAA,EACnB;AAAA;AAAA,IAEE;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA;AAAA,IAEA;AAAA;AAAA;AAAA,IAGA;AAAA;AAAA;AAAA;AAAA,IAIA,gBAAgB,WAAW,YAAY,WAAW;AAAA;AAAA;AAAA;AAAA,IAIlD;AAAA,EACF,EAAE,KAAK,GAAG;AAAA,EACV;AACF;AAGA,MAAM,qBAAqB;AAC3B,MAAM,yBAAyB,EAAE,IAAI,GAAG,QAAQ,GAAG,QAAQ,EAAE;AAM7D,wBAAwB,mBAAmB,qBAAqB;AAE9D,MAAI,MAAM,WAAW,mBAAmB;AAGxC,MAAI,IAAI,WAAW,CAAC,MAAM,IAAK,OAAM,IAAI,MAAM,GAAG,EAAE;AAIpD,SAAO;AAGP,QAAM,SAAS,IAAI,MAAM;AACzB,MAAI,OAAO,IAAI,MAAM,YAAY;AACjC,MAAI;AACJ,MAAI,SAAS,IAAI,MAAM;AACvB,MAAI,QAAQ;AAEZ,MAAI,KAAK,UAAU,GAAG;AACpB,WAAO,CAAC;AAAA,EACV;AAEA,WAAS,IAAI,GAAG,KAAM,MAAM,KAAK,CAAC,GAAI,EAAE,GAAG;AACzC,UAAM,IAAI,IAAI,WAAW,CAAC;AAE1B,QAAI,MAAM,IAAI;AAEZ,UAAI,SAAS,GAAG;AACd,eAAO,KAAK,OAAO,OAAO,SAAS,EAAE,KAAU,OAAO,OAAO,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,OAAO,OAAO,KAAK,EAAE,EAAE,CAAC;AAC7G,cAAM,QAAQ;AACd,iBAAS,IAAI,MAAM;AACnB;AAAA,MACF;AAAA,IAEF,WAAW,MAAM,IAAI;AAEnB,UAAI,CAAC,SAAS,CAAC,OAAO,OAAO,WAAW,GAAG;AACzC,cAAM,OAAO,IAAI;AACjB;AAAA,MACF;AAAA,IAEF,WAAW,MAAM,MAAM,IAAI,SAAS,MAAM,IAAI,WAAW,CAAC,MAAM,MAAM,IAAI,WAAW,CAAC,MAAM,KAAK;AAG/F;AAAA,IACF,WAAW,MAAM,MAAM,KAAK,IAAI,SAAS,GAAG;AAG1C,YAAM,QAAQ,KAAK,IAAI,CAAC,EAAE,MAAM,kBAAkB;AAClD,UAAI,SAAS,CAAC,uBAAuB,MAAM,CAAC,CAAC,GAAG;AAE9C,cAAM,IAAI,OAAO,IAAI,QAAQ,GAAG,IAAI,CAAC;AACrC,eAAO,IAAI,MAAM,YAAY;AAC7B,YAAI;AAEJ,cAAM;AAAA,MACR;AAAA,IAEF,WAAW,MAAM,MAAM,MAAM,OAAO,MAAM,IAAI;AAE5C,QAAE;AAAA,IACJ,WAAW,MAAM,MAAM,MAAM,OAAO,MAAM,IAAI;AAE5C,QAAE;AAAA,IAEJ,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,MAAM,MAAM,MAAM,KAAK;AAE3D,YAAM,IAAI,MAAM,GAAG,EAAE;AAAA,IACvB;AACA,WAAO,KAAK,GAAG;AAAA,EACjB;AAEA,SAAO;AACT;",
"sourcesContent": ["/* eslint no-cond-assign: 0 */\n\n// The following regular expressions will be used to split an object-literal string into tokens\n\n// These characters have special meaning to the parser and must not appear in the middle of a\n// token, except as part of a string.\nconst specials = ',\"\\'`{}()/:[\\\\]'\nconst bindingToken = RegExp(\n [\n // These match strings, either with double quotes, single quotes, or backticks\n '\"(?:\\\\\\\\.|[^\"])*\"',\n \"'(?:\\\\\\\\.|[^'])*'\",\n '`(?:\\\\\\\\.|[^`])*`',\n // Match C style comments\n '/\\\\*(?:[^*]|\\\\*+[^*/])*\\\\*+/',\n // Match C++ style comments\n '//.*\\n',\n // Match a regular expression (text enclosed by slashes), but will also match sets of divisions\n // as a regular expression (this is handled by the parsing loop below).\n '/(?:\\\\\\\\.|[^/])+/\\\\w*',\n // Match text (at least two characters) that does not contain any of the above special characters,\n // although some of the special characters are allowed to start it (all but the colon and comma).\n // The text can contain spaces, but leading or trailing spaces are skipped.\n '[^\\\\s:,/][^' + specials + ']*[^\\\\s' + specials + ']',\n // Match any non-space character not matched already. This will match colons and commas, since they're\n // not matched by \"everyThingElse\", but will also match any other single character that wasn't already\n // matched (for example: in \"a: 1, b: 2\", each of the non-space characters will be matched by oneNotSpace).\n '[^\\\\s]'\n ].join('|'),\n 'g'\n)\n\n// Match end of previous token to determine whether a slash is a division or regex.\nconst divisionLookBehind = /[\\])\"'A-Za-z0-9_$]+$/\nconst keywordRegexLookBehind = { in: 1, return: 1, typeof: 1 }\n\n/**\n * Break a binding string (data-bind='x: val, y: ..') into a stable array\n * of {key: value}.\n */\nexport default function parseObjectLiteral(objectLiteralString) {\n // Trim leading and trailing spaces from the string\n let str = String(objectLiteralString ?? '').trim()\n\n // Trim braces '{' surrounding the whole object literal\n if (str.charCodeAt(0) === 123) str = str.slice(1, -1)\n\n // Add a newline to correctly match a C++ style comment at the end of the string and\n // add a comma so that we don't need a separate code block to deal with the last item\n str += '\\n,'\n\n // Split into tokens\n const result = new Array()\n let toks = str.match(bindingToken) ?? []\n let key\n let values = new Array()\n let depth = 0\n\n if (toks.length <= 1) {\n return []\n }\n\n for (let i = 0, tok; (tok = toks[i]); ++i) {\n const c = tok.charCodeAt(0)\n // A comma signals the end of a key/value pair if depth is zero\n if (c === 44) {\n // \",\"\n if (depth <= 0) {\n result.push(key && values.length ? { key: key, value: values.join('') } : { unknown: key || values.join('') })\n key = depth = 0\n values = new Array()\n continue\n }\n // Simply skip the colon that separates the name and value\n } else if (c === 58) {\n // \":\"\n if (!depth && !key && values.length === 1) {\n key = values.pop()\n continue\n }\n // A set of slashes is initially matched as a regular expression, but could be division\n } else if (c === 47 && tok.length > 1 && (tok.charCodeAt(1) === 47 || tok.charCodeAt(1) === 42)) {\n // \"//\" or \"/*\"\n // skip comments\n continue\n } else if (c === 47 && i && tok.length > 1) {\n // \"/\"\n // Look at the end of the previous token to determine if the slash is actually division\n const match = toks[i - 1].match(divisionLookBehind)\n if (match && !keywordRegexLookBehind[match[0]]) {\n // The slash is actually a division punctuator; re-parse the remainder of the string (not including the slash)\n str = str.substring(str.indexOf(tok) + 1)\n toks = str.match(bindingToken) ?? []\n i = -1\n // Continue with just the slash\n tok = '/'\n }\n // Increment depth for parentheses, braces, and brackets so that interior commas are ignored\n } else if (c === 40 || c === 123 || c === 91) {\n // '(', '{', '['\n ++depth\n } else if (c === 41 || c === 125 || c === 93) {\n // ')', '}', ']'\n --depth\n // The key will be the first token; if it's a string, trim the quotes\n } else if (!key && !values.length && (c === 34 || c === 39)) {\n // '\"', \"'\"\n tok = tok.slice(1, -1)\n }\n values.push(tok)\n }\n\n return result\n}\n"],
"mappings": ";;AAMA,MAAM,WAAW;AACjB,MAAM,eAAe;AAAA,EACnB;AAAA;AAAA,IAEE;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA;AAAA,IAEA;AAAA;AAAA;AAAA,IAGA;AAAA;AAAA;AAAA;AAAA,IAIA,gBAAgB,WAAW,YAAY,WAAW;AAAA;AAAA;AAAA;AAAA,IAIlD;AAAA,EACF,EAAE,KAAK,GAAG;AAAA,EACV;AACF;AAGA,MAAM,qBAAqB;AAC3B,MAAM,yBAAyB,EAAE,IAAI,GAAG,QAAQ,GAAG,QAAQ,EAAE;AAM7D,wBAAwB,mBAAmB,qBAAqB;AAE9D,MAAI,MAAM,OAAO,uBAAuB,EAAE,EAAE,KAAK;AAGjD,MAAI,IAAI,WAAW,CAAC,MAAM,IAAK,OAAM,IAAI,MAAM,GAAG,EAAE;AAIpD,SAAO;AAGP,QAAM,SAAS,IAAI,MAAM;AACzB,MAAI,OAAO,IAAI,MAAM,YAAY,KAAK,CAAC;AACvC,MAAI;AACJ,MAAI,SAAS,IAAI,MAAM;AACvB,MAAI,QAAQ;AAEZ,MAAI,KAAK,UAAU,GAAG;AACpB,WAAO,CAAC;AAAA,EACV;AAEA,WAAS,IAAI,GAAG,KAAM,MAAM,KAAK,CAAC,GAAI,EAAE,GAAG;AACzC,UAAM,IAAI,IAAI,WAAW,CAAC;AAE1B,QAAI,MAAM,IAAI;AAEZ,UAAI,SAAS,GAAG;AACd,eAAO,KAAK,OAAO,OAAO,SAAS,EAAE,KAAU,OAAO,OAAO,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,OAAO,OAAO,KAAK,EAAE,EAAE,CAAC;AAC7G,cAAM,QAAQ;AACd,iBAAS,IAAI,MAAM;AACnB;AAAA,MACF;AAAA,IAEF,WAAW,MAAM,IAAI;AAEnB,UAAI,CAAC,SAAS,CAAC,OAAO,OAAO,WAAW,GAAG;AACzC,cAAM,OAAO,IAAI;AACjB;AAAA,MACF;AAAA,IAEF,WAAW,MAAM,MAAM,IAAI,SAAS,MAAM,IAAI,WAAW,CAAC,MAAM,MAAM,IAAI,WAAW,CAAC,MAAM,KAAK;AAG/F;AAAA,IACF,WAAW,MAAM,MAAM,KAAK,IAAI,SAAS,GAAG;AAG1C,YAAM,QAAQ,KAAK,IAAI,CAAC,EAAE,MAAM,kBAAkB;AAClD,UAAI,SAAS,CAAC,uBAAuB,MAAM,CAAC,CAAC,GAAG;AAE9C,cAAM,IAAI,UAAU,IAAI,QAAQ,GAAG,IAAI,CAAC;AACxC,eAAO,IAAI,MAAM,YAAY,KAAK,CAAC;AACnC,YAAI;AAEJ,cAAM;AAAA,MACR;AAAA,IAEF,WAAW,MAAM,MAAM,MAAM,OAAO,MAAM,IAAI;AAE5C,QAAE;AAAA,IACJ,WAAW,MAAM,MAAM,MAAM,OAAO,MAAM,IAAI;AAE5C,QAAE;AAAA,IAEJ,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,MAAM,MAAM,MAAM,KAAK;AAE3D,YAAM,IAAI,MAAM,GAAG,EAAE;AAAA,IACvB;AACA,WAAO,KAAK,GAAG;AAAA,EACjB;AAEA,SAAO;AACT;",
"names": []
}

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

// @tko/utils.parser 🥊 4.0.1 ESM
// @tko/utils.parser 🥊 4.1.0 ESM
"use strict";

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

{
"version": "4.0.1",
"version": "4.1.0",
"name": "@tko/utils.parser",

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

"dependencies": {
"@tko/observable": "^4.0.1",
"@tko/utils": "^4.0.1",
"tslib": "^2.2.0"
"@tko/observable": "^4.1.0",
"@tko/utils": "^4.1.0"
},
"peerDependencies": {
"@tko/bind": "^4.0.1",
"@tko/binding.core": "^4.0.1",
"@tko/provider.databind": "^4.0.1"
},
"homepage": "https://tko.io",

@@ -44,3 +38,10 @@ "licenses": [

"build": "bun ../../tools/build.ts"
}
},
"keywords": [
"knockout",
"tko",
"parser",
"csp-safe",
"expression"
]
}

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