jtlt 0.16.0 → 0.18.0

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/.gitignore ADDED
@@ -0,0 +1,3 @@
1
+ node_modules
2
+ coverage
3
+ .idea
package/.npmignore ADDED
@@ -0,0 +1,3 @@
1
+ test
2
+ coverage
3
+ .idea
package/CHANGES.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # jtlt CHANGES
2
2
 
3
+ ## 0.18.0
4
+
5
+ - feat: `this.if()` / `choose()` / `assert()` accept a simple, non-`eval`
6
+ binary comparison as their test, e.g. `this.if('$name === "x"')` or
7
+ `this.if('$count < 50')` — a bare `$name` parameter (or, for the JSONPath
8
+ engine, a plain dotted/indexed `$...` path) on the left, one of
9
+ `===` / `!==` / `==` / `!=` / `<` / `<=` / `>` / `>=`, and a string,
10
+ number, boolean, `null`, or `undefined` literal on the right; anything
11
+ more complex is left to the JSONPath/XPath engine
12
+
13
+ ## 0.17.0
14
+
15
+ - feat: `this.if('$name', ...)` (and `choose()`/`assert()`) test a parameter
16
+ — local, with-param, or `config.params` runtime — when passed a bare
17
+ `$name` reference rather than a path expression
18
+
3
19
  ## 0.16.0
4
20
 
5
21
  - feat: `this.param(name, default)` (`xsl:param`) declares a parameter whose
package/README.md CHANGED
@@ -206,7 +206,7 @@ const out = await jtlt({
206
206
  If you just want to run a single, non-recursive query (similar to an XQuery "for … where … return …"), you can skip defining templates and use `forQuery` to seed a root function that iterates a JSONPath and emits results.
207
207
 
208
208
  - `forQuery` takes the same arguments you’d pass to `this.forEach(select, cb)`: an absolute JSONPath selector and a callback invoked for each match.
209
- - The callback runs once per match with `this` bound to that match, so use plain JavaScript `if` for conditions (there is no dedicated `this.if`).
209
+ - The callback runs once per match with `this` bound to that match, so use plain JavaScript `if` for conditions.
210
210
 
211
211
  Example: collect item names whose price is at least 10.
212
212
 
@@ -419,6 +419,7 @@ Advantages (strong parallels with XSLT):
419
419
  - Built‑in default rules: when no template matches, defaults traverse and render objects, arrays, scalars, property names, and functions, similar to XSLT’s built‑in templates.
420
420
  - applyTemplates/forEach and sorting: `applyTemplates(select, mode, sort)` and `forEach(select, cb, sort)` mirror `xsl:apply-templates`/`xsl:for-each` and `xsl:sort`.
421
421
  - Named templates and parameters: `callTemplate(name, withParam)` reflects `xsl:call-template` + `xsl:with-param`. `this.param(name, default)` mirrors `xsl:param` — the declared default is used unless the caller supplied a value (via `this.withParam(name, value)` before the call, or `callTemplate`'s `withParam` array) or a runtime value was passed as `config.params` (like an XSLT processor's stylesheet parameters). `this.withParam(name, value)` stages a parameter for the next `callTemplate()`/`applyTemplates()`, which consumes and clears the staged set. `config.params` values are also readable as `$name` from any template. In each of `param()`/`withParam()`, the value argument is a selector expression string (or `{select}`), or a literal `{value}`.
422
+ - Conditionals: `this.if(test, cb)`, `this.choose(test, whenCb, otherwiseCb)`, and `this.assert(test, message)` mirror `xsl:if`, `xsl:choose`, and `xsl:assert`. `test` is a JSONPath/XPath expression (a non-empty result set is truthy), a bare `$name` parameter reference, or a simple non-`eval` comparison such as `'$name === "x"'` or `'$count < 50'` — a `$name` parameter (or, for the JSONPath engine, a plain dotted/indexed `$...` path) on the left, one of `===` / `!==` / `==` / `!=` / `<` / `<=` / `>` / `>=`, and a string, number, boolean, `null`, or `undefined` literal on the right.
422
423
  - Keys and lookups: `key(name, match, use)` + `getKey(name, value)` provide `xsl:key`-style indexing for joins and fast lookups.
423
424
  - Multiple output forms: string, DOM, and JSON builders ("joiners") allow emitting different result trees like XSLT’s result tree model.
424
425
 
@@ -850,6 +850,18 @@ declare class JSONPathTransformerContext<T extends "json" | "string" | "dom" = "
850
850
  * to a truthy scalar or a non-empty result set (node set analogue).
851
851
  * Mirrors XSLT's xsl:if semantics where a non-empty node set is truthy.
852
852
  *
853
+ * A bare `$name` reference (not `$.path`) tests a parameter — one declared
854
+ * with `param()`, supplied via `withParam()`, or provided at runtime as
855
+ * `config.params` — rather than a JSONPath expression.
856
+ *
857
+ * The test may also be a simple binary comparison of a reference against a
858
+ * literal, evaluated without `eval`, e.g. `this.if('$name === "x"')` or
859
+ * `this.if('$.count < 50')`. The left side is a bare `$name` parameter or a
860
+ * plain dotted/indexed `$...` path; the operator is one of `===`, `!==`,
861
+ * `==`, `!=`, `<`, `<=`, `>`, `>=`; the right side is a string, number,
862
+ * boolean, `null`, or `undefined` literal. Anything more complex (filter
863
+ * expressions, function calls) is left to the JSONPath engine.
864
+ *
853
865
  * Truthiness rules:
854
866
  * - If the selection (with wrap) yields an array with length > 0, the
855
867
  * condition passes.
@@ -863,13 +875,62 @@ declare class JSONPathTransformerContext<T extends "json" | "string" | "dom" = "
863
875
  */
864
876
  if(select: string, cb: (this: JSONPathTransformerContext<T>) => void): this;
865
877
  /**
866
- * Internal helper: determine if `select` passes truthiness test.
867
- * Non-empty wrapped results => true; single item: objects truthy,
868
- * primitives coerced via Boolean().
878
+ * Apply `if()`/`choose()`/`assert()` truthiness to an already-resolved
879
+ * value: a non-empty result set (or single non-empty item) is truthy, a
880
+ * scalar is coerced with `Boolean()`.
881
+ * @param {any} val
882
+ * @returns {boolean}
883
+ * @private
884
+ */
885
+ private _isTruthyResult;
886
+ /**
887
+ * Internal helper: determine if `select` passes the truthiness test. A
888
+ * bare `$name` reference resolves against the parameter scope (local
889
+ * with-param then runtime `config.params`); anything else is evaluated as
890
+ * a JSONPath expression.
869
891
  * @param {string} select
870
892
  * @returns {boolean}
871
893
  */
872
894
  _passesIf(select: string): boolean;
895
+ /**
896
+ * Parse a simple `<ref> <op> <literal>` comparison test (no `eval`), such
897
+ * as `$name === "x"` or `$.a.b < 50`. The left side must be a bare `$name`
898
+ * parameter reference or a plain dotted/indexed `$...` path — no filter
899
+ * expressions or function calls; the right side a string, number, boolean,
900
+ * `null`, or `undefined` literal. Returns `null` when the string is not
901
+ * such a comparison, so richer JSONPath expressions fall through untouched.
902
+ * @param {string} str
903
+ * @returns {{left: string, op: string, right: unknown}|null}
904
+ * @private
905
+ */
906
+ private _parseComparison;
907
+ /**
908
+ * Parse a JSON-ish scalar literal: a double- or single-quoted string, a
909
+ * number, or `true` / `false` / `null` / `undefined`. Returns `null` when
910
+ * `str` is none of these.
911
+ * @param {string} str
912
+ * @returns {{value: unknown}|null}
913
+ * @private
914
+ */
915
+ private _parseLiteral;
916
+ /**
917
+ * Resolve the left side of a simple comparison: a bare `$name` parameter
918
+ * reference (local, with-param, then runtime `config.params`), otherwise a
919
+ * plain `$...` path evaluated (unwrapped) in the current context.
920
+ * @param {string} ref
921
+ * @returns {unknown}
922
+ * @private
923
+ */
924
+ private _resolveComparand;
925
+ /**
926
+ * Apply a comparison operator to two already-resolved values.
927
+ * @param {any} a - Left operand
928
+ * @param {string} op - One of `===`, `!==`, `==`, `!=`, `<`, `<=`, `>`, `>=`
929
+ * @param {any} b - Right operand
930
+ * @returns {boolean}
931
+ * @private
932
+ */
933
+ private _compareValues;
873
934
  /**
874
935
  * Like `if()`, but also supports an optional fallback callback executed
875
936
  * when the test does not pass (similar to xsl:choose/xsl:otherwise).
@@ -1 +1 @@
1
- {"version":3,"file":"JSONPathTransformerContext.d.ts","sourceRoot":"","sources":["../src/JSONPathTransformerContext.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JSONPathTransformerContext.d.ts","sourceRoot":"","sources":["../src/JSONPathTransformerContext.js"],"names":[],"mappings":"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"}
@@ -730,6 +730,17 @@ declare class XPathTransformerContext<T = "dom", V = DocumentFragment | Element>
730
730
  * Conditionally execute a callback when an XPath evaluates to a truthy
731
731
  * scalar or a non-empty node set (akin to xsl:if semantics).
732
732
  *
733
+ * A bare `$name` reference tests a parameter — one declared with `param()`,
734
+ * supplied via `withParam()`, or provided at runtime as `config.params` —
735
+ * rather than an XPath expression.
736
+ *
737
+ * The test may also be a simple binary comparison of a `$name` parameter
738
+ * against a literal, evaluated without `eval`, e.g.
739
+ * `this.if('$name === "x"')` or `this.if('$count < 50')`. The operator is
740
+ * one of `===`, `!==`, `==`, `!=`, `<`, `<=`, `>`, `>=`; the right side is
741
+ * a string, number, boolean, `null`, or `undefined` literal. Anything else
742
+ * is left to the XPath engine.
743
+ *
733
744
  * Truthiness rules:
734
745
  * - Node set: length > 0 passes.
735
746
  * - Scalar: Boolean(value) must be true.
@@ -741,11 +752,59 @@ declare class XPathTransformerContext<T = "dom", V = DocumentFragment | Element>
741
752
  */
742
753
  if(select: string, cb: (this: XPathTransformerContext) => void): XPathTransformerContext;
743
754
  /**
744
- * Internal helper: evaluate XPath truthiness like if().
755
+ * Apply `if()`/`choose()`/`assert()` truthiness to an already-resolved
756
+ * value: a non-empty node set (array) is truthy, a scalar is coerced with
757
+ * `Boolean()`.
758
+ * @param {any} val
759
+ * @returns {boolean}
760
+ * @private
761
+ */
762
+ private _isTruthyResult;
763
+ /**
764
+ * Internal helper: evaluate XPath truthiness like if(). A bare `$name`
765
+ * reference resolves against the parameter scope (local with-param then
766
+ * runtime `config.params`); anything else is evaluated as XPath.
745
767
  * @param {string} select
746
768
  * @returns {boolean}
747
769
  */
748
770
  _passesIf(select: string): boolean;
771
+ /**
772
+ * Parse a simple `$name <op> <literal>` comparison test (no `eval`), such
773
+ * as `$name === "x"` or `$count < 50`. The left side must be a bare `$name`
774
+ * parameter reference; the right side a string, number, boolean, `null`,
775
+ * or `undefined` literal. Returns `null` when the string is not such a
776
+ * comparison, so richer XPath expressions fall through untouched.
777
+ * @param {string} str
778
+ * @returns {{left: string, op: string, right: unknown}|null}
779
+ * @private
780
+ */
781
+ private _parseComparison;
782
+ /**
783
+ * Parse a JSON-ish scalar literal: a double- or single-quoted string, a
784
+ * number, or `true` / `false` / `null` / `undefined`. Returns `null` when
785
+ * `str` is none of these.
786
+ * @param {string} str
787
+ * @returns {{value: unknown}|null}
788
+ * @private
789
+ */
790
+ private _parseLiteral;
791
+ /**
792
+ * Resolve the left side of a simple comparison: a bare `$name` parameter
793
+ * reference (local, with-param, then runtime `config.params`).
794
+ * @param {string} ref
795
+ * @returns {unknown}
796
+ * @private
797
+ */
798
+ private _resolveComparand;
799
+ /**
800
+ * Apply a comparison operator to two already-resolved values.
801
+ * @param {any} a - Left operand
802
+ * @param {string} op - One of `===`, `!==`, `==`, `!=`, `<`, `<=`, `>`, `>=`
803
+ * @param {any} b - Right operand
804
+ * @returns {boolean}
805
+ * @private
806
+ */
807
+ private _compareValues;
749
808
  /**
750
809
  * Conditional with optional fallback (like choose/otherwise).
751
810
  * Truthiness same as `if()`.
@@ -1 +1 @@
1
- {"version":3,"file":"XPathTransformerContext.d.ts","sourceRoot":"","sources":["../src/XPathTransformerContext.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"XPathTransformerContext.d.ts","sourceRoot":"","sources":["../src/XPathTransformerContext.js"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jtlt",
3
- "version": "0.16.0",
3
+ "version": "0.18.0",
4
4
  "type": "module",
5
5
  "author": "Brett Zamir",
6
6
  "contributors": [],
@@ -2549,6 +2549,18 @@ class JSONPathTransformerContext {
2549
2549
  * to a truthy scalar or a non-empty result set (node set analogue).
2550
2550
  * Mirrors XSLT's xsl:if semantics where a non-empty node set is truthy.
2551
2551
  *
2552
+ * A bare `$name` reference (not `$.path`) tests a parameter — one declared
2553
+ * with `param()`, supplied via `withParam()`, or provided at runtime as
2554
+ * `config.params` — rather than a JSONPath expression.
2555
+ *
2556
+ * The test may also be a simple binary comparison of a reference against a
2557
+ * literal, evaluated without `eval`, e.g. `this.if('$name === "x"')` or
2558
+ * `this.if('$.count < 50')`. The left side is a bare `$name` parameter or a
2559
+ * plain dotted/indexed `$...` path; the operator is one of `===`, `!==`,
2560
+ * `==`, `!=`, `<`, `<=`, `>`, `>=`; the right side is a string, number,
2561
+ * boolean, `null`, or `undefined` literal. Anything more complex (filter
2562
+ * expressions, function calls) is left to the JSONPath engine.
2563
+ *
2552
2564
  * Truthiness rules:
2553
2565
  * - If the selection (with wrap) yields an array with length > 0, the
2554
2566
  * condition passes.
@@ -2569,35 +2581,167 @@ class JSONPathTransformerContext {
2569
2581
  }
2570
2582
 
2571
2583
  /**
2572
- * Internal helper: determine if `select` passes truthiness test.
2573
- * Non-empty wrapped results => true; single item: objects truthy,
2574
- * primitives coerced via Boolean().
2575
- * @param {string} select
2584
+ * Apply `if()`/`choose()`/`assert()` truthiness to an already-resolved
2585
+ * value: a non-empty result set (or single non-empty item) is truthy, a
2586
+ * scalar is coerced with `Boolean()`.
2587
+ * @param {any} val
2576
2588
  * @returns {boolean}
2589
+ * @private
2577
2590
  */
2578
- _passesIf (select) {
2579
- // Evaluate with wrapping to detect non-empty match sets
2580
- /** @type {any} */ const wrapped = this.get(select, true);
2581
- if (Array.isArray(wrapped)) {
2582
- if (wrapped.length === 0) {
2591
+ // eslint-disable-next-line class-methods-use-this -- pure helper
2592
+ _isTruthyResult (val) {
2593
+ if (Array.isArray(val)) {
2594
+ if (val.length === 0) {
2583
2595
  return false;
2584
2596
  }
2585
- if (wrapped.length > 1) {
2597
+ if (val.length > 1) {
2586
2598
  // Multiple matches (node set analogue) => truthy
2587
2599
  return true;
2588
2600
  }
2589
2601
  // Single item; apply scalar truthiness
2590
- const single = wrapped[0];
2591
- // Objects (arrays) always truthy; primitives use Boolean()
2602
+ const single = val[0];
2592
2603
  if (single && typeof single === 'object') {
2593
2604
  return true;
2594
2605
  }
2595
2606
  return Boolean(single);
2596
2607
  }
2597
- /* c8 ignore next 3 -- unreachable defensive non-array branch:
2598
- * jsonpath-plus with wrap:true always returns arrays. */
2599
- // Fallback if library behavior changed in future
2600
- return Boolean(wrapped);
2608
+ if (val && typeof val === 'object') {
2609
+ return true;
2610
+ }
2611
+ return Boolean(val);
2612
+ }
2613
+
2614
+ /**
2615
+ * Internal helper: determine if `select` passes the truthiness test. A
2616
+ * bare `$name` reference resolves against the parameter scope (local
2617
+ * with-param then runtime `config.params`); anything else is evaluated as
2618
+ * a JSONPath expression.
2619
+ * @param {string} select
2620
+ * @returns {boolean}
2621
+ */
2622
+ _passesIf (select) {
2623
+ if (typeof select === 'string') {
2624
+ const trimmed = select.trim();
2625
+ const paramRef = trimmed.match(/^\$(?<name>[\w\-]+)$/v);
2626
+ if (paramRef && paramRef.groups) {
2627
+ const param = this._lookupParam(paramRef.groups.name);
2628
+ if (param.has) {
2629
+ return this._isTruthyResult(param.value);
2630
+ }
2631
+ }
2632
+ const cmp = this._parseComparison(trimmed);
2633
+ if (cmp) {
2634
+ return this._compareValues(
2635
+ this._resolveComparand(cmp.left), cmp.op, cmp.right
2636
+ );
2637
+ }
2638
+ }
2639
+ // Evaluate with wrapping to detect non-empty match sets
2640
+ return this._isTruthyResult(this.get(select, true));
2641
+ }
2642
+
2643
+ /**
2644
+ * Parse a simple `<ref> <op> <literal>` comparison test (no `eval`), such
2645
+ * as `$name === "x"` or `$.a.b < 50`. The left side must be a bare `$name`
2646
+ * parameter reference or a plain dotted/indexed `$...` path — no filter
2647
+ * expressions or function calls; the right side a string, number, boolean,
2648
+ * `null`, or `undefined` literal. Returns `null` when the string is not
2649
+ * such a comparison, so richer JSONPath expressions fall through untouched.
2650
+ * @param {string} str
2651
+ * @returns {{left: string, op: string, right: unknown}|null}
2652
+ * @private
2653
+ */
2654
+ _parseComparison (str) {
2655
+ const m = str.match(
2656
+ /^(?<left>\$[\w$\-]*(?:\.[\w$\-]+|\[\d+\]|\['[^']*'\]|\["[^"]*"\])*)\s*(?<op>===|!==|==|!=|<=|>=|<|>)\s*(?<right>.+)$/v
2657
+ );
2658
+ if (!m || !m.groups) {
2659
+ return null;
2660
+ }
2661
+ const right = this._parseLiteral(m.groups.right.trim());
2662
+ if (!right) {
2663
+ return null;
2664
+ }
2665
+ return {left: m.groups.left, op: m.groups.op, right: right.value};
2666
+ }
2667
+
2668
+ /**
2669
+ * Parse a JSON-ish scalar literal: a double- or single-quoted string, a
2670
+ * number, or `true` / `false` / `null` / `undefined`. Returns `null` when
2671
+ * `str` is none of these.
2672
+ * @param {string} str
2673
+ * @returns {{value: unknown}|null}
2674
+ * @private
2675
+ */
2676
+ // eslint-disable-next-line class-methods-use-this -- pure helper
2677
+ _parseLiteral (str) {
2678
+ if ((/^"(?:[^"\\]|\\.)*"$/v).test(str)) {
2679
+ return {value: JSON.parse(str)};
2680
+ }
2681
+ if ((/^'(?:[^'\\]|\\.)*'$/v).test(str)) {
2682
+ return {value: str.slice(1, -1).replaceAll(/\\(?=['\\])/gv, '')};
2683
+ }
2684
+ if ((/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+\-]?\d+)?$/v).test(str)) {
2685
+ return {value: Number(str)};
2686
+ }
2687
+ if (str === 'true') {
2688
+ return {value: true};
2689
+ }
2690
+ if (str === 'false') {
2691
+ return {value: false};
2692
+ }
2693
+ if (str === 'null') {
2694
+ return {value: null};
2695
+ }
2696
+ if (str === 'undefined') {
2697
+ return {value: undefined};
2698
+ }
2699
+ return null;
2700
+ }
2701
+
2702
+ /**
2703
+ * Resolve the left side of a simple comparison: a bare `$name` parameter
2704
+ * reference (local, with-param, then runtime `config.params`), otherwise a
2705
+ * plain `$...` path evaluated (unwrapped) in the current context.
2706
+ * @param {string} ref
2707
+ * @returns {unknown}
2708
+ * @private
2709
+ */
2710
+ _resolveComparand (ref) {
2711
+ const paramRef = ref.match(/^\$(?<name>[\w\-]+)$/v);
2712
+ if (paramRef && paramRef.groups) {
2713
+ const param = this._lookupParam(paramRef.groups.name);
2714
+ if (param.has) {
2715
+ return param.value;
2716
+ }
2717
+ }
2718
+ return this.get(ref, false);
2719
+ }
2720
+
2721
+ /**
2722
+ * Apply a comparison operator to two already-resolved values.
2723
+ * @param {any} a - Left operand
2724
+ * @param {string} op - One of `===`, `!==`, `==`, `!=`, `<`, `<=`, `>`, `>=`
2725
+ * @param {any} b - Right operand
2726
+ * @returns {boolean}
2727
+ * @private
2728
+ */
2729
+ // eslint-disable-next-line class-methods-use-this -- pure helper
2730
+ _compareValues (a, op, b) {
2731
+ /* eslint-disable eqeqeq -- `==`/`!=` are deliberately offered */
2732
+ switch (op) {
2733
+ case '===': return a === b;
2734
+ case '!==': return a !== b;
2735
+ case '==': return a == b;
2736
+ case '!=': return a != b;
2737
+ case '<': return a < b;
2738
+ case '<=': return a <= b;
2739
+ case '>': return a > b;
2740
+ case '>=': return a >= b;
2741
+ /* c8 ignore next -- the regex only yields the operators handled above */
2742
+ default: return false;
2743
+ }
2744
+ /* eslint-enable eqeqeq -- restore */
2601
2745
  }
2602
2746
 
2603
2747
  /**
@@ -2465,6 +2465,17 @@ class XPathTransformerContext {
2465
2465
  * Conditionally execute a callback when an XPath evaluates to a truthy
2466
2466
  * scalar or a non-empty node set (akin to xsl:if semantics).
2467
2467
  *
2468
+ * A bare `$name` reference tests a parameter — one declared with `param()`,
2469
+ * supplied via `withParam()`, or provided at runtime as `config.params` —
2470
+ * rather than an XPath expression.
2471
+ *
2472
+ * The test may also be a simple binary comparison of a `$name` parameter
2473
+ * against a literal, evaluated without `eval`, e.g.
2474
+ * `this.if('$name === "x"')` or `this.if('$count < 50')`. The operator is
2475
+ * one of `===`, `!==`, `==`, `!=`, `<`, `<=`, `>`, `>=`; the right side is
2476
+ * a string, number, boolean, `null`, or `undefined` literal. Anything else
2477
+ * is left to the XPath engine.
2478
+ *
2468
2479
  * Truthiness rules:
2469
2480
  * - Node set: length > 0 passes.
2470
2481
  * - Scalar: Boolean(value) must be true.
@@ -2483,11 +2494,48 @@ class XPathTransformerContext {
2483
2494
  }
2484
2495
 
2485
2496
  /**
2486
- * Internal helper: evaluate XPath truthiness like if().
2497
+ * Apply `if()`/`choose()`/`assert()` truthiness to an already-resolved
2498
+ * value: a non-empty node set (array) is truthy, a scalar is coerced with
2499
+ * `Boolean()`.
2500
+ * @param {any} val
2501
+ * @returns {boolean}
2502
+ * @private
2503
+ */
2504
+ // eslint-disable-next-line class-methods-use-this -- pure helper
2505
+ _isTruthyResult (val) {
2506
+ if (Array.isArray(val)) {
2507
+ return val.length > 0;
2508
+ }
2509
+ if (val && typeof val === 'object') {
2510
+ return true;
2511
+ }
2512
+ return Boolean(val);
2513
+ }
2514
+
2515
+ /**
2516
+ * Internal helper: evaluate XPath truthiness like if(). A bare `$name`
2517
+ * reference resolves against the parameter scope (local with-param then
2518
+ * runtime `config.params`); anything else is evaluated as XPath.
2487
2519
  * @param {string} select
2488
2520
  * @returns {boolean}
2489
2521
  */
2490
2522
  _passesIf (select) {
2523
+ if (typeof select === 'string') {
2524
+ const trimmed = select.trim();
2525
+ const paramRef = trimmed.match(/^\$(?<name>[\w\-]+)$/v);
2526
+ if (paramRef && paramRef.groups) {
2527
+ const param = this._lookupParam(paramRef.groups.name);
2528
+ if (param.has) {
2529
+ return this._isTruthyResult(param.value);
2530
+ }
2531
+ }
2532
+ const cmp = this._parseComparison(trimmed);
2533
+ if (cmp) {
2534
+ return this._compareValues(
2535
+ this._resolveComparand(cmp.left), cmp.op, cmp.right
2536
+ );
2537
+ }
2538
+ }
2491
2539
  let passes = false;
2492
2540
  // Try scalar evaluation first (handles boolean/comparison expressions)
2493
2541
  try {
@@ -2533,6 +2581,106 @@ class XPathTransformerContext {
2533
2581
  return passes;
2534
2582
  }
2535
2583
 
2584
+ /**
2585
+ * Parse a simple `$name <op> <literal>` comparison test (no `eval`), such
2586
+ * as `$name === "x"` or `$count < 50`. The left side must be a bare `$name`
2587
+ * parameter reference; the right side a string, number, boolean, `null`,
2588
+ * or `undefined` literal. Returns `null` when the string is not such a
2589
+ * comparison, so richer XPath expressions fall through untouched.
2590
+ * @param {string} str
2591
+ * @returns {{left: string, op: string, right: unknown}|null}
2592
+ * @private
2593
+ */
2594
+ _parseComparison (str) {
2595
+ const m = str.match(
2596
+ /^(?<left>\$[\w\-]+)\s*(?<op>===|!==|==|!=|<=|>=|<|>)\s*(?<right>.+)$/v
2597
+ );
2598
+ if (!m || !m.groups) {
2599
+ return null;
2600
+ }
2601
+ const right = this._parseLiteral(m.groups.right.trim());
2602
+ if (!right) {
2603
+ return null;
2604
+ }
2605
+ return {left: m.groups.left, op: m.groups.op, right: right.value};
2606
+ }
2607
+
2608
+ /**
2609
+ * Parse a JSON-ish scalar literal: a double- or single-quoted string, a
2610
+ * number, or `true` / `false` / `null` / `undefined`. Returns `null` when
2611
+ * `str` is none of these.
2612
+ * @param {string} str
2613
+ * @returns {{value: unknown}|null}
2614
+ * @private
2615
+ */
2616
+ // eslint-disable-next-line class-methods-use-this -- pure helper
2617
+ _parseLiteral (str) {
2618
+ if ((/^"(?:[^"\\]|\\.)*"$/v).test(str)) {
2619
+ return {value: JSON.parse(str)};
2620
+ }
2621
+ if ((/^'(?:[^'\\]|\\.)*'$/v).test(str)) {
2622
+ return {value: str.slice(1, -1).replaceAll(/\\(?=['\\])/gv, '')};
2623
+ }
2624
+ if ((/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+\-]?\d+)?$/v).test(str)) {
2625
+ return {value: Number(str)};
2626
+ }
2627
+ if (str === 'true') {
2628
+ return {value: true};
2629
+ }
2630
+ if (str === 'false') {
2631
+ return {value: false};
2632
+ }
2633
+ if (str === 'null') {
2634
+ return {value: null};
2635
+ }
2636
+ if (str === 'undefined') {
2637
+ return {value: undefined};
2638
+ }
2639
+ return null;
2640
+ }
2641
+
2642
+ /**
2643
+ * Resolve the left side of a simple comparison: a bare `$name` parameter
2644
+ * reference (local, with-param, then runtime `config.params`).
2645
+ * @param {string} ref
2646
+ * @returns {unknown}
2647
+ * @private
2648
+ */
2649
+ _resolveComparand (ref) {
2650
+ const paramRef = ref.match(/^\$(?<name>[\w\-]+)$/v);
2651
+ /* c8 ignore next 3 -- `_parseComparison` only yields a `$name` left side */
2652
+ if (!paramRef || !paramRef.groups) {
2653
+ return undefined;
2654
+ }
2655
+ return this._lookupParam(paramRef.groups.name).value;
2656
+ }
2657
+
2658
+ /**
2659
+ * Apply a comparison operator to two already-resolved values.
2660
+ * @param {any} a - Left operand
2661
+ * @param {string} op - One of `===`, `!==`, `==`, `!=`, `<`, `<=`, `>`, `>=`
2662
+ * @param {any} b - Right operand
2663
+ * @returns {boolean}
2664
+ * @private
2665
+ */
2666
+ // eslint-disable-next-line class-methods-use-this -- pure helper
2667
+ _compareValues (a, op, b) {
2668
+ /* eslint-disable eqeqeq -- `==`/`!=` are deliberately offered */
2669
+ switch (op) {
2670
+ case '===': return a === b;
2671
+ case '!==': return a !== b;
2672
+ case '==': return a == b;
2673
+ case '!=': return a != b;
2674
+ case '<': return a < b;
2675
+ case '<=': return a <= b;
2676
+ case '>': return a > b;
2677
+ case '>=': return a >= b;
2678
+ /* c8 ignore next -- the regex only yields the operators handled above */
2679
+ default: return false;
2680
+ }
2681
+ /* eslint-enable eqeqeq -- restore */
2682
+ }
2683
+
2536
2684
  /**
2537
2685
  * Conditional with optional fallback (like choose/otherwise).
2538
2686
  * Truthiness same as `if()`.