binja 0.3.0 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js CHANGED
@@ -367,23 +367,32 @@ class Lexer {
367
367
  return c;
368
368
  }
369
369
  match(expected, offset = 0) {
370
+ const source = this.state.source;
370
371
  const start = this.state.pos + offset;
371
- if (start + expected.length > this.state.source.length)
372
+ const len = expected.length;
373
+ if (start + len > source.length)
372
374
  return false;
373
- if (this.state.source.slice(start, start + expected.length) === expected) {
374
- if (offset === 0) {
375
- this.state.pos += expected.length;
376
- this.state.column += expected.length;
377
- }
378
- return true;
375
+ for (let i = 0;i < len; i++) {
376
+ if (source[start + i] !== expected[i])
377
+ return false;
379
378
  }
380
- return false;
379
+ if (offset === 0) {
380
+ this.state.pos += len;
381
+ this.state.column += len;
382
+ }
383
+ return true;
381
384
  }
382
385
  check(expected, offset = 0) {
386
+ const source = this.state.source;
383
387
  const start = this.state.pos + offset;
384
- if (start + expected.length > this.state.source.length)
388
+ const len = expected.length;
389
+ if (start + len > source.length)
385
390
  return false;
386
- return this.state.source.slice(start, start + expected.length) === expected;
391
+ for (let i = 0;i < len; i++) {
392
+ if (source[start + i] !== expected[i])
393
+ return false;
394
+ }
395
+ return true;
387
396
  }
388
397
  skipWhitespace() {
389
398
  while (!this.isAtEnd() && this.isWhitespace(this.peek())) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/filters/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/filters/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -403,23 +403,32 @@ class Lexer {
403
403
  return c;
404
404
  }
405
405
  match(expected, offset = 0) {
406
+ const source = this.state.source;
406
407
  const start = this.state.pos + offset;
407
- if (start + expected.length > this.state.source.length)
408
+ const len = expected.length;
409
+ if (start + len > source.length)
408
410
  return false;
409
- if (this.state.source.slice(start, start + expected.length) === expected) {
410
- if (offset === 0) {
411
- this.state.pos += expected.length;
412
- this.state.column += expected.length;
413
- }
414
- return true;
411
+ for (let i = 0;i < len; i++) {
412
+ if (source[start + i] !== expected[i])
413
+ return false;
415
414
  }
416
- return false;
415
+ if (offset === 0) {
416
+ this.state.pos += len;
417
+ this.state.column += len;
418
+ }
419
+ return true;
417
420
  }
418
421
  check(expected, offset = 0) {
422
+ const source = this.state.source;
419
423
  const start = this.state.pos + offset;
420
- if (start + expected.length > this.state.source.length)
424
+ const len = expected.length;
425
+ if (start + len > source.length)
421
426
  return false;
422
- return this.state.source.slice(start, start + expected.length) === expected;
427
+ for (let i = 0;i < len; i++) {
428
+ if (source[start + i] !== expected[i])
429
+ return false;
430
+ }
431
+ return true;
423
432
  }
424
433
  skipWhitespace() {
425
434
  while (!this.isAtEnd() && this.isWhitespace(this.peek())) {
@@ -1477,8 +1486,13 @@ var escapejs = (value) => JSON.stringify(String(value)).slice(1, -1);
1477
1486
  var linebreaks = (value) => {
1478
1487
  const str = String(value);
1479
1488
  const paragraphs = str.split(DOUBLE_NEWLINE_REGEX);
1480
- const html = paragraphs.map((p) => `<p>${p.replace(NEWLINE_REGEX, "<br>")}</p>`).join(`
1481
- `);
1489
+ let html = "";
1490
+ for (let i = 0;i < paragraphs.length; i++) {
1491
+ if (i > 0)
1492
+ html += `
1493
+ `;
1494
+ html += `<p>${paragraphs[i].replace(NEWLINE_REGEX, "<br>")}</p>`;
1495
+ }
1482
1496
  const safeString = new String(html);
1483
1497
  safeString.__safe__ = true;
1484
1498
  return safeString;
@@ -1786,18 +1800,19 @@ var batch = (value, size, fillWith = null) => {
1786
1800
  var groupby = (value, attribute) => {
1787
1801
  if (!Array.isArray(value))
1788
1802
  return [];
1789
- const groups = new Map;
1803
+ const groups = {};
1790
1804
  for (const item of value) {
1791
- const key = attribute ? item[attribute] : item;
1792
- if (!groups.has(key)) {
1793
- groups.set(key, []);
1805
+ const key = String(attribute ? item[attribute] : item);
1806
+ if (!(key in groups)) {
1807
+ groups[key] = [];
1794
1808
  }
1795
- groups.get(key).push(item);
1809
+ groups[key].push(item);
1810
+ }
1811
+ const result = [];
1812
+ for (const key in groups) {
1813
+ result.push({ grouper: key, list: groups[key] });
1796
1814
  }
1797
- return Array.from(groups.entries()).map(([grouper, list]) => ({
1798
- grouper,
1799
- list
1800
- }));
1815
+ return result;
1801
1816
  };
1802
1817
  var wordwrap = (value, width = 79, breakLongWords = true, wrapString = `
1803
1818
  `) => {
@@ -1834,14 +1849,21 @@ var indent = (value, width = 4, first2 = false, blank = false) => {
1834
1849
  const indentStr = typeof width === "string" ? width : " ".repeat(Number(width));
1835
1850
  const lines = str.split(`
1836
1851
  `);
1837
- return lines.map((line, i) => {
1838
- if (i === 0 && !first2)
1839
- return line;
1840
- if (!blank && line.trim() === "")
1841
- return line;
1842
- return indentStr + line;
1843
- }).join(`
1844
- `);
1852
+ let result = "";
1853
+ for (let i = 0;i < lines.length; i++) {
1854
+ if (i > 0)
1855
+ result += `
1856
+ `;
1857
+ const line = lines[i];
1858
+ if (i === 0 && !first2) {
1859
+ result += line;
1860
+ } else if (!blank && line.trim() === "") {
1861
+ result += line;
1862
+ } else {
1863
+ result += indentStr + line;
1864
+ }
1865
+ }
1866
+ return result;
1845
1867
  };
1846
1868
  var replace = (value, old, newStr, count) => {
1847
1869
  const str = String(value);
@@ -1858,10 +1880,14 @@ var replace = (value, old, newStr, count) => {
1858
1880
  };
1859
1881
  var format = (value, ...args) => {
1860
1882
  let str = String(value);
1861
- args.forEach((arg, i) => {
1862
- str = str.replace(/%s/, String(arg));
1863
- str = str.replace(new RegExp(`%${i + 1}`, "g"), String(arg));
1864
- });
1883
+ for (let i = 0;i < args.length; i++) {
1884
+ const arg = String(args[i]);
1885
+ str = str.replace(/%s/, arg);
1886
+ const pattern = `%${i + 1}`;
1887
+ if (str.includes(pattern)) {
1888
+ str = str.replaceAll(pattern, arg);
1889
+ }
1890
+ }
1865
1891
  return str;
1866
1892
  };
1867
1893
  var string = (value) => String(value);
@@ -1949,7 +1975,13 @@ var max = (value, attribute, defaultValue) => {
1949
1975
  if (!Array.isArray(value) || value.length === 0)
1950
1976
  return defaultValue;
1951
1977
  if (attribute) {
1952
- return value.reduce((max2, item) => item[attribute] > max2[attribute] ? item : max2);
1978
+ let maxItem = value[0];
1979
+ for (let i = 1;i < value.length; i++) {
1980
+ if (value[i][attribute] > maxItem[attribute]) {
1981
+ maxItem = value[i];
1982
+ }
1983
+ }
1984
+ return maxItem;
1953
1985
  }
1954
1986
  return Math.max(...value);
1955
1987
  };
@@ -1957,17 +1989,25 @@ var min = (value, attribute, defaultValue) => {
1957
1989
  if (!Array.isArray(value) || value.length === 0)
1958
1990
  return defaultValue;
1959
1991
  if (attribute) {
1960
- return value.reduce((min2, item) => item[attribute] < min2[attribute] ? item : min2);
1992
+ let minItem = value[0];
1993
+ for (let i = 1;i < value.length; i++) {
1994
+ if (value[i][attribute] < minItem[attribute]) {
1995
+ minItem = value[i];
1996
+ }
1997
+ }
1998
+ return minItem;
1961
1999
  }
1962
2000
  return Math.min(...value);
1963
2001
  };
1964
2002
  var sum = (value, attribute, start = 0) => {
1965
2003
  if (!Array.isArray(value))
1966
2004
  return start;
1967
- return value.reduce((total, item) => {
1968
- const val = attribute ? item[attribute] : item;
1969
- return total + (Number(val) || 0);
1970
- }, Number(start));
2005
+ let total = Number(start);
2006
+ for (let i = 0;i < value.length; i++) {
2007
+ const val = attribute ? value[i][attribute] : value[i];
2008
+ total += Number(val) || 0;
2009
+ }
2010
+ return total;
1971
2011
  };
1972
2012
  var pprint = (value) => {
1973
2013
  try {
@@ -2014,14 +2054,25 @@ var PHONE_MAP = {
2014
2054
  z: "9"
2015
2055
  };
2016
2056
  var phone2numeric = (value) => {
2017
- return String(value).toLowerCase().split("").map((char) => PHONE_MAP[char] ?? char).join("");
2057
+ const str = String(value).toLowerCase();
2058
+ let result = "";
2059
+ for (let i = 0;i < str.length; i++) {
2060
+ result += PHONE_MAP[str[i]] ?? str[i];
2061
+ }
2062
+ return result;
2018
2063
  };
2019
2064
  var linenumbers = (value) => {
2020
2065
  const lines = String(value).split(`
2021
2066
  `);
2022
2067
  const width = String(lines.length).length;
2023
- return lines.map((line, i) => `${String(i + 1).padStart(width, " ")}. ${line}`).join(`
2024
- `);
2068
+ let result = "";
2069
+ for (let i = 0;i < lines.length; i++) {
2070
+ if (i > 0)
2071
+ result += `
2072
+ `;
2073
+ result += `${String(i + 1).padStart(width, " ")}. ${lines[i]}`;
2074
+ }
2075
+ return result;
2025
2076
  };
2026
2077
  var unordered_list = (value) => {
2027
2078
  if (!Array.isArray(value))
@@ -2522,7 +2573,10 @@ class Runtime {
2522
2573
  }
2523
2574
  renderUrlSync(node, ctx) {
2524
2575
  const name = this.eval(node.name, ctx);
2525
- const args = node.args.map((arg) => this.eval(arg, ctx));
2576
+ const args = [];
2577
+ for (let i = 0;i < node.args.length; i++) {
2578
+ args.push(this.eval(node.args[i], ctx));
2579
+ }
2526
2580
  const kwargs = this.evalObjectSync(node.kwargs, ctx);
2527
2581
  const url = this.options.urlResolver(String(name), args, kwargs);
2528
2582
  if (node.asVar) {
@@ -2685,8 +2739,14 @@ class Runtime {
2685
2739
  return this.evalCompare(node, ctx);
2686
2740
  case "Conditional":
2687
2741
  return this.evalConditional(node, ctx);
2688
- case "Array":
2689
- return node.elements.map((el) => this.eval(el, ctx));
2742
+ case "Array": {
2743
+ const elements = node.elements;
2744
+ const result = [];
2745
+ for (let i = 0;i < elements.length; i++) {
2746
+ result.push(this.eval(elements[i], ctx));
2747
+ }
2748
+ return result;
2749
+ }
2690
2750
  case "Object":
2691
2751
  return this.evalObjectLiteral(node, ctx);
2692
2752
  case "FunctionCall":
@@ -2722,7 +2782,10 @@ class Runtime {
2722
2782
  }
2723
2783
  evalFilter(node, ctx) {
2724
2784
  const value = this.eval(node.node, ctx);
2725
- const args = node.args.map((arg) => this.eval(arg, ctx));
2785
+ const args = [];
2786
+ for (let i = 0;i < node.args.length; i++) {
2787
+ args.push(this.eval(node.args[i], ctx));
2788
+ }
2726
2789
  const kwargs = this.evalObjectSync(node.kwargs, ctx);
2727
2790
  const filter = this.filters[node.filter];
2728
2791
  if (!filter)
@@ -2823,7 +2886,10 @@ class Runtime {
2823
2886
  }
2824
2887
  evalFunctionCall(node, ctx) {
2825
2888
  const callee = this.eval(node.callee, ctx);
2826
- const args = node.args.map((arg) => this.eval(arg, ctx));
2889
+ const args = [];
2890
+ for (let i = 0;i < node.args.length; i++) {
2891
+ args.push(this.eval(node.args[i], ctx));
2892
+ }
2827
2893
  const kwargs = this.evalObjectSync(node.kwargs, ctx);
2828
2894
  return typeof callee === "function" ? callee(...args, kwargs) : undefined;
2829
2895
  }
@@ -2839,7 +2905,10 @@ class Runtime {
2839
2905
  return node.negated ? !result2 : result2;
2840
2906
  }
2841
2907
  const value = this.eval(node.node, ctx);
2842
- const args = node.args.map((arg) => this.eval(arg, ctx));
2908
+ const args = [];
2909
+ for (let i = 0;i < node.args.length; i++) {
2910
+ args.push(this.eval(node.args[i], ctx));
2911
+ }
2843
2912
  const test = this.tests[node.test];
2844
2913
  if (!test)
2845
2914
  throw new Error(`Unknown test: ${node.test}`);
@@ -2848,8 +2917,8 @@ class Runtime {
2848
2917
  }
2849
2918
  evalObjectSync(obj, ctx) {
2850
2919
  const result = {};
2851
- for (const [key, value] of Object.entries(obj)) {
2852
- result[key] = this.eval(value, ctx);
2920
+ for (const key in obj) {
2921
+ result[key] = this.eval(obj[key], ctx);
2853
2922
  }
2854
2923
  return result;
2855
2924
  }
@@ -3055,7 +3124,11 @@ class Runtime {
3055
3124
  if (typeof value[Symbol.iterator] === "function") {
3056
3125
  return Array.from(value);
3057
3126
  }
3058
- return Object.entries(value).map(([k, v]) => ({ key: k, value: v, 0: k, 1: v }));
3127
+ const result = [];
3128
+ for (const key in value) {
3129
+ result.push({ key, value: value[key], 0: key, 1: value[key] });
3130
+ }
3131
+ return result;
3059
3132
  }
3060
3133
  return [value];
3061
3134
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lexer/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,KAAK,EAAmC,MAAM,UAAU,CAAA;AAEjE,qBAAa,KAAK;IAChB,OAAO,CAAC,KAAK,CAAY;IACzB,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,UAAU,CAAQ;gBAGxB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;QACP,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,UAAU,CAAC,EAAE,MAAM,CAAA;KACf;IAmBR,QAAQ,IAAI,KAAK,EAAE;IASnB,OAAO,CAAC,SAAS;IAsCjB,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,YAAY;IA0EpB,OAAO,CAAC,QAAQ;IAmChB,OAAO,CAAC,cAAc;IAwBtB,OAAO,CAAC,mBAAmB;IA6B3B,OAAO,CAAC,UAAU;IAyBlB,OAAO,CAAC,UAAU;IAmBlB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,YAAY;IAuDpB,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,IAAI;IAKZ,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,KAAK;IAcb,OAAO,CAAC,KAAK;IAMb,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,QAAQ;CAQjB;AAED,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAC9C,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lexer/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,KAAK,EAAmC,MAAM,UAAU,CAAA;AAEjE,qBAAa,KAAK;IAChB,OAAO,CAAC,KAAK,CAAY;IACzB,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,UAAU,CAAQ;gBAGxB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;QACP,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,UAAU,CAAC,EAAE,MAAM,CAAA;KACf;IAmBR,QAAQ,IAAI,KAAK,EAAE;IASnB,OAAO,CAAC,SAAS;IAsCjB,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,YAAY;IA0EpB,OAAO,CAAC,QAAQ;IAmChB,OAAO,CAAC,cAAc;IAwBtB,OAAO,CAAC,mBAAmB;IA6B3B,OAAO,CAAC,UAAU;IAyBlB,OAAO,CAAC,UAAU;IAmBlB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,YAAY;IAuDpB,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,IAAI;IAKZ,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,KAAK;IAkBb,OAAO,CAAC,KAAK;IAab,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,QAAQ;CAQjB;AAED,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAC9C,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "binja",
3
- "version": "0.3.0",
3
+ "version": "0.3.2",
4
4
  "description": "High-performance Jinja2/Django template engine for Bun",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",