jtlt 0.14.0 → 0.16.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/dist/index.d.ts CHANGED
@@ -34,7 +34,7 @@ export type TemplateObject<T, U, TCtx> = {
34
34
  */
35
35
  template: TemplateFunction<T, U, TCtx>;
36
36
  };
37
- export type TemplateFunction<T, U, TCtx> = (this: TCtx, value: ResultType<U>, cfg?: {
37
+ export type TemplateFunction<T, U, TCtx> = (this: TCtx & import('./context-extensions.js').ContextExtensions, value: ResultType<U>, cfg?: {
38
38
  mode?: string;
39
39
  }) => ResultType<T> | void | Promise<ResultType<T> | void>;
40
40
  export type JSONPathTemplateObject<T extends "json" | "string" | "dom"> = TemplateObject<T, "json", import('./JSONPathTransformerContext.js').default<T>>;
@@ -165,12 +165,21 @@ export type BaseJTLTOptions<T, E extends boolean | undefined = false> = {
165
165
  * Parent property name for context
166
166
  */
167
167
  parentProperty?: string;
168
+ /**
169
+ * Parameter values supplied at
170
+ * runtime, mirroring the stylesheet parameters an XSLT processor is handed.
171
+ * A `this.param(name, default)` declaration whose name appears here resolves
172
+ * to this value instead of its default, and `$name` references such a
173
+ * parameter from any template.
174
+ */
175
+ params?: Record<string, unknown>;
168
176
  };
169
177
  export type JSONPathJTLTOptions<T extends "json" | "string" | "dom" = "json", E extends boolean | undefined = false> = BaseJTLTOptions<T, E> & {
170
178
  templates?: JSONPathTemplateArray<T>[] | TemplateFunction<T, "json", import('./JSONPathTransformerContext.js').default<T>>;
171
179
  template?: JSONPathTemplateObject<T> | TemplateFunction<T, "json", import('./JSONPathTransformerContext.js').default>;
172
180
  query?: TemplateFunction<T, "json", import('./JSONPathTransformerContext.js').default>;
173
181
  forQuery?: [string, TemplateFunction<T, "json", import('./XPathTransformerContext.js').default>];
182
+ extensions?: Record<string, unknown> & ThisType<import('./JSONPathTransformerContext.js').default<T> & import('./context-extensions.js').ContextExtensions>;
174
183
  engineType?: 'jsonpath';
175
184
  outputType?: T;
176
185
  };
@@ -179,6 +188,7 @@ export type XPathJTLTOptions<T extends "json" | "string" | "dom", E extends bool
179
188
  template?: XPathTemplateObject<T> | TemplateFunction<T, "dom", import('./XPathTransformerContext.js').default>;
180
189
  query?: TemplateFunction<T, "dom", import('./XPathTransformerContext.js').default>;
181
190
  forQuery?: [string, TemplateFunction<T, "dom", import('./JSONPathTransformerContext.js').default>];
191
+ extensions?: Record<string, unknown> & ThisType<import('./XPathTransformerContext.js').default & import('./context-extensions.js').ContextExtensions>;
182
192
  engineType: 'xpath';
183
193
  xpathVersion?: 1 | 2 | 3.1;
184
194
  outputType?: T;
@@ -208,11 +218,15 @@ export type JTLTOptions<E extends boolean | undefined = boolean | undefined> = J
208
218
  * @property {TemplateFunction<T, U, TCtx>} template - Template function
209
219
  */
210
220
  /**
211
- * A callable template function with an engine-specific `this`.
221
+ * A callable template function with an engine-specific `this`. The `this`
222
+ * type is intersected with {@link ContextExtensions} so helpers registered
223
+ * through the `extensions` option are visible once a consumer augments that
224
+ * interface.
212
225
  * @template T
213
226
  * @template U
214
227
  * @template TCtx
215
- * @typedef {(this: TCtx,
228
+ * @typedef {(this: TCtx &
229
+ * import('./context-extensions.js').ContextExtensions,
216
230
  * value: ResultType<U>,
217
231
  * cfg?: {mode?: string}
218
232
  * ) => ResultType<T>|void|Promise<ResultType<T>|void>} TemplateFunction
@@ -371,6 +385,11 @@ export type JTLTOptions<E extends boolean | undefined = boolean | undefined> = J
371
385
  * transformer.
372
386
  * @property {object} [parent] Parent object for context
373
387
  * @property {string} [parentProperty] Parent property name for context
388
+ * @property {Record<string, unknown>} [params] Parameter values supplied at
389
+ * runtime, mirroring the stylesheet parameters an XSLT processor is handed.
390
+ * A `this.param(name, default)` declaration whose name appears here resolves
391
+ * to this value instead of its default, and `$name` references such a
392
+ * parameter from any template.
374
393
  */
375
394
  /**
376
395
  * JSONPath engine options with context-aware template typing.
@@ -389,6 +408,10 @@ export type JTLTOptions<E extends boolean | undefined = boolean | undefined> = J
389
408
  * forQuery?: [string, TemplateFunction<T, "json",
390
409
  * import('./XPathTransformerContext.js').default
391
410
  * >],
411
+ * extensions?: Record<string, unknown> & ThisType<
412
+ * import('./JSONPathTransformerContext.js').default<T> &
413
+ * import('./context-extensions.js').ContextExtensions
414
+ * >,
392
415
  * engineType?: 'jsonpath',
393
416
  * outputType?: T
394
417
  * }} JSONPathJTLTOptions
@@ -410,6 +433,10 @@ export type JTLTOptions<E extends boolean | undefined = boolean | undefined> = J
410
433
  * forQuery?: [string, TemplateFunction<T, "dom",
411
434
  * import('./JSONPathTransformerContext.js').default
412
435
  * >],
436
+ * extensions?: Record<string, unknown> & ThisType<
437
+ * import('./XPathTransformerContext.js').default &
438
+ * import('./context-extensions.js').ContextExtensions
439
+ * >,
413
440
  * engineType: 'xpath',
414
441
  * xpathVersion?: 1|2|3.1,
415
442
  * outputType?: T
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.js"],"names":[],"mappings":"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"}
package/docs/TO-DO.md CHANGED
@@ -88,7 +88,21 @@
88
88
 
89
89
  8. jtlt as templating engine (including zodexy-aware path expressions like @blob() for jsonpath-plus with `copyOf`/`valueOf` `document(...url...)`; work on **schema-driven** search forms too
90
90
 
91
- 9. Consider implementing the following elements from <https://www.w3.org/TR/xslt-30/>
91
+ 9. Note that while we could allow `template` to act as a sync function with sync calls to `this.valueOf` even when indexedDB was used within that latter call, the problem is that with the easy solution, it would require adding content to output after subsequent synchronous calls within the function did so.
92
+
93
+ ```js
94
+ const args = {
95
+ template () {
96
+ this.valueOf({select: "indexedDB('db','store').*.name"}); // resolves later
97
+ this.string('!'); // appends NOW
98
+ }
99
+ };
100
+ // -> "!Alice,Bob,Charlie" (not "Alice,Bob,Charlie!")
101
+ ```
102
+
103
+ We'd otherwise have to refactor a great deal to maintain a buffer.
104
+
105
+ 10. Consider implementing the following elements from <https://www.w3.org/TR/xslt-30/>
92
106
  which are not yet implemented.
93
107
 
94
108
  xsl:accept
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jtlt",
3
- "version": "0.14.0",
3
+ "version": "0.16.0",
4
4
  "type": "module",
5
5
  "author": "Brett Zamir",
6
6
  "contributors": [],
@@ -8,12 +8,17 @@
8
8
  "types": "./dist/index.d.ts",
9
9
  "main": "src/index-node.js",
10
10
  "exports": {
11
- "types": "./dist/index.d.ts",
12
- "browser": {
13
- "import": "./src/index-browser.js"
11
+ ".": {
12
+ "types": "./dist/index.d.ts",
13
+ "browser": {
14
+ "import": "./src/index-browser.js"
15
+ },
16
+ "node": {
17
+ "import": "./src/index-node.js"
18
+ }
14
19
  },
15
- "node": {
16
- "import": "./src/index-node.js"
20
+ "./context-extensions": {
21
+ "types": "./dist/context-extensions.d.ts"
17
22
  }
18
23
  },
19
24
  "engines": {
@@ -29,12 +34,12 @@
29
34
  "@codemirror/lang-json": "^6.0.2",
30
35
  "@codemirror/lang-xml": "^6.1.0",
31
36
  "@codemirror/language": "^6.12.4",
32
- "@codemirror/state": "^6.7.1",
37
+ "@codemirror/state": "^6.7.4",
33
38
  "@lezer/highlight": "^1.2.3",
34
39
  "codemirror": "^6.0.2",
35
40
  "fontoxpath": "^3.34.0",
36
41
  "idb": "^8.0.3",
37
- "jamilih": "0.69.0",
42
+ "jamilih": "0.69.1",
38
43
  "jhtml": "0.7.3",
39
44
  "jsdom": "30.0.1",
40
45
  "jsonpath-plus": "10.4.0",
@@ -51,13 +56,13 @@
51
56
  "@types/chai": "^5.2.3",
52
57
  "@types/jsdom": "^30.0.0",
53
58
  "@types/mocha": "^10.0.10",
54
- "baseline-browser-mapping": "^2.11.20",
59
+ "baseline-browser-mapping": "^2.11.21",
55
60
  "c8": "^12.0.0",
56
61
  "chai": "^6.2.2",
57
- "eslint": "^10.9.1",
58
- "eslint-config-ash-nazg": "^43.1.0",
59
- "indexeddbshim": "^17.4.3",
60
- "mocha": "^11.8.0",
62
+ "eslint": "^10.10.0",
63
+ "eslint-config-ash-nazg": "^43.1.7",
64
+ "indexeddbshim": "^19.0.1",
65
+ "mocha": "^12.0.0",
61
66
  "open": "^11.0.2",
62
67
  "rollup": "^4.63.1",
63
68
  "typescript": "^7.0.2"
@@ -74,7 +79,7 @@
74
79
  "start": "open http://localhost:8021/demo/ && static -p 8021",
75
80
  "attw": "attw --pack . --profile esm-only",
76
81
  "tsc": "tsc",
77
- "build": "tsc -p tsconfig-prod.json && npm run rollup",
82
+ "build": "tsc -p tsconfig-prod.json && cp src/context-extensions.d.ts dist/context-extensions.d.ts && npm run rollup",
78
83
  "rollup": "rollup -c",
79
84
  "copy-simple-get-json": "cp -r node_modules/simple-get-json/dist/index-es.js demo/vendor/simple-get-json/dist/index-es.js",
80
85
  "copy-jhtml": "cp -Rf node_modules/jhtml/src demo/vendor/jhtml",
@@ -3,7 +3,6 @@ allowBuilds:
3
3
  canvas: true
4
4
  is-hidden-file: true
5
5
  libxmljs: true
6
- sqlite3: true
7
6
  unrs-resolver: true
8
7
  minimumReleaseAgeExclude:
9
8
  - '@rollup/rollup-android-arm-eabi@4.63.0'
@@ -33,9 +32,10 @@ minimumReleaseAgeExclude:
33
32
  - '@rollup/rollup-win32-x64-msvc@4.63.0'
34
33
  - rollup@4.63.0
35
34
  - jhtml@0.7.2 || 0.7.3
36
- - eslint-config-ash-nazg@43.1.0
35
+ - eslint-config-ash-nazg@43.1.0 || 43.1.6
37
36
  - eslint-plugin-escompat@3.12.0
38
- - eslint-plugin-jsdoc@64.3.0
39
- - indexeddbshim@17.4.1 || 17.4.2 || 17.4.3
37
+ - eslint-plugin-jsdoc@64.3.0 || 64.3.3
38
+ - indexeddbshim@17.4.1 || 17.4.2 || 17.4.3 || 17.5.0 || 17.6.0
40
39
  - open@11.0.2
41
40
  - powershell-utils@0.2.1
41
+ - websql-configurable@4.0.0
@@ -171,7 +171,9 @@ class JSONPathTransformer {
171
171
  */
172
172
  const ret = /** @type {import('./index.js').JSONPathTemplateObject<T>} */ (
173
173
  templateObj
174
- ).template.call(jte, undefined, {mode});
174
+ // `this` carries runtime `extensions`; a consumer's `ContextExtensions`
175
+ // augmentation would otherwise reject the bare context here.
176
+ ).template.call(/** @type {any} */ (jte), undefined, {mode});
175
177
 
176
178
  if (ret !== null && typeof ret !== 'undefined' &&
177
179
  typeof ret.then === 'function') {
@@ -1,6 +1,7 @@
1
1
  import {JSONPath as jsonpath} from 'jsonpath-plus';
2
2
  import JSONPathTransformer from './JSONPathTransformer.js';
3
3
  import {maybeAsyncLoop} from './maybeAsync.js';
4
+ import applyExtensions from './extendContext.js';
4
5
  import {
5
6
  parseIndexedDBExpression, queryIndexedDB, resolveIndexedDBQuery
6
7
  } from './indexedDB.js';
@@ -98,6 +99,14 @@ const escapeRegexReplacement = (string) => {
98
99
  * Priority resolver function
99
100
  * @property {import('./index.js').JSONPathTemplateObject<T>[]|
100
101
  * import('./index.js').JSONPathTemplateArray<T>[]} [templates]
102
+ * @property {Record<string, unknown>} [params] Runtime parameter values
103
+ * (like an XSLT processor's stylesheet parameters); a `param()` with a
104
+ * matching name uses this value instead of its declared default
105
+ * @property {Record<string, unknown> & ThisType<
106
+ * import('./JSONPathTransformerContext.js').default<T> &
107
+ * import('./context-extensions.js').ContextExtensions
108
+ * >} [extensions] Extra methods/values
109
+ * merged onto this context so templates can call `this.myHelper()`
101
110
  */
102
111
 
103
112
  /**
@@ -145,10 +154,26 @@ class JSONPathTransformerContext {
145
154
  this._currPath = undefined;
146
155
  /** @type {Record<string, any> | undefined} */
147
156
  this._params = undefined;
157
+ /**
158
+ * Parameter values supplied at runtime via `config.params`, mirroring the
159
+ * stylesheet parameters an XSLT processor is handed. A `param()` whose
160
+ * name appears here takes this value instead of its declared default.
161
+ * @type {Record<string, unknown>}
162
+ */
163
+ this._runtimeParams = /** @type {any} */ (config).params || {};
164
+ /**
165
+ * Parameters staged by `withParam()` and consumed (then cleared) by the
166
+ * next `callTemplate()` or `applyTemplates()` call.
167
+ * @type {{name: string, select?: string, value?: unknown}[] | undefined}
168
+ */
169
+ this._pendingParams = undefined;
148
170
  /** @type {string[]} */
149
171
  this._preserveSpaceElements = [];
150
172
  /** @type {string[]} */
151
173
  this._stripSpaceElements = [];
174
+ if (config.extensions) {
175
+ applyExtensions(this, config.extensions);
176
+ }
152
177
  }
153
178
 
154
179
  /**
@@ -264,6 +289,12 @@ class JSONPathTransformerContext {
264
289
  mode = select.mode ?? mode;
265
290
  select = select.select ?? select;
266
291
  }
292
+ // Resolve params staged via `this.withParam()` in the calling context,
293
+ // once, before iterating; each matched template receives them
294
+ // (`xsl:apply-templates` / `xsl:with-param`).
295
+ /** @type {Record<string, unknown>} */
296
+ const appliedParams = {};
297
+ this._drainPendingParams(appliedParams);
267
298
  if (!this._initialized) {
268
299
  select ||= '$';
269
300
  this._currPath = '$';
@@ -580,7 +611,7 @@ class JSONPathTransformerContext {
580
611
 
581
612
  // Set up parameter context for valueOf() access in templates
582
613
  const prevTemplateParams = that._params;
583
- that._params = {0: value};
614
+ that._params = {0: value, ...appliedParams};
584
615
 
585
616
  /**
586
617
  * The template may return synchronously or return a Promise (e.g. from
@@ -591,7 +622,9 @@ class JSONPathTransformerContext {
591
622
  /** @type {import('./index.js').JSONPathTemplateObject<T>} */ (
592
623
  templateObj
593
624
  ).template.call(
594
- that, value, {mode, parent, parentProperty}
625
+ // `this` carries runtime `extensions`; a consumer's
626
+ // `ContextExtensions` augmentation would otherwise reject `that`.
627
+ /** @type {any} */ (that), value, {mode, parent, parentProperty}
595
628
  );
596
629
 
597
630
  // Restore previous parameter context
@@ -699,6 +732,10 @@ class JSONPathTransformerContext {
699
732
  const params = {};
700
733
  this._params = params;
701
734
 
735
+ // Params staged via `this.withParam()` seed the set; explicit `withParam`
736
+ // entries below override any of the same name (`xsl:with-param`).
737
+ this._drainPendingParams(params);
738
+
702
739
  withParams.forEach((withParam, index) => {
703
740
  const value = withParam.value !== undefined
704
741
  ? withParam.value
@@ -722,7 +759,11 @@ class JSONPathTransformerContext {
722
759
  );
723
760
  }
724
761
 
725
- const result = templateObj.template.call(this, this._contextObj, {});
762
+ const result = templateObj.template.call(
763
+ // `this` carries runtime `extensions`; a consumer's `ContextExtensions`
764
+ // augmentation would otherwise reject the bare context.
765
+ /** @type {any} */ (this), this._contextObj, {}
766
+ );
726
767
  if (typeof result !== 'undefined') {
727
768
  /** @type {any} */ (results).append(result);
728
769
  }
@@ -1155,7 +1196,7 @@ class JSONPathTransformerContext {
1155
1196
  return 0;
1156
1197
  }
1157
1198
  if (Number.isNaN(an)) {
1158
- return Number(order);
1199
+ return order;
1159
1200
  }
1160
1201
  if (Number.isNaN(bn)) {
1161
1202
  return -order;
@@ -1305,9 +1346,8 @@ class JSONPathTransformerContext {
1305
1346
  // Check if it's a parameter reference ($param, not $.jsonpath)
1306
1347
  if (trimmed.startsWith('$') && !trimmed.startsWith('$.')) {
1307
1348
  const paramName = trimmed.slice(1);
1308
- return this._params && Object.hasOwn(this._params, paramName)
1309
- ? this._params[paramName]
1310
- : undefined;
1349
+ const {has, value} = this._lookupParam(paramName);
1350
+ return has ? value : undefined;
1311
1351
  }
1312
1352
  // Check if it's a string literal
1313
1353
  if ((trimmed.startsWith("'") && trimmed.endsWith("'")) ||
@@ -1346,9 +1386,8 @@ class JSONPathTransformerContext {
1346
1386
  !valueExpr.includes('.') && !valueExpr.includes('[')) {
1347
1387
  // Parameter reference (no path components)
1348
1388
  const paramName = valueExpr.trim().slice(1);
1349
- numValue = this._params && Object.hasOwn(this._params, paramName)
1350
- ? this._params[paramName]
1351
- : 0;
1389
+ const {has, value} = this._lookupParam(paramName);
1390
+ numValue = has ? value : 0;
1352
1391
  } else {
1353
1392
  // Try to parse as number or evaluate as JSONPath
1354
1393
  const trimmed = valueExpr.trim();
@@ -1376,8 +1415,9 @@ class JSONPathTransformerContext {
1376
1415
  // Check if this is a parameter reference (starts with $)
1377
1416
  if (selectStr && selectStr.startsWith('$')) {
1378
1417
  const paramName = selectStr.slice(1);
1379
- result = (this._params && Object.hasOwn(this._params, paramName))
1380
- ? this._params[paramName]
1418
+ const {has, value} = this._lookupParam(paramName);
1419
+ result = has
1420
+ ? value
1381
1421
  : this.get(/** @type {string} */ (selectStr), false);
1382
1422
  } else {
1383
1423
  result = this.get(/** @type {string} */ (select), false);
@@ -1614,6 +1654,116 @@ class JSONPathTransformerContext {
1614
1654
  return this;
1615
1655
  }
1616
1656
 
1657
+ /**
1658
+ * Normalize a `param()`/`withParam()` default/value argument to `{select}`
1659
+ * or `{value}`: a bare string is a JSONPath expression, `{value}` is a
1660
+ * literal, and `{select}` (or an omitted argument) is an expression.
1661
+ * @param {string|{select?: string, value?: unknown}|undefined} arg
1662
+ * @returns {{select?: string, value?: unknown}}
1663
+ * @private
1664
+ */
1665
+ // eslint-disable-next-line class-methods-use-this -- pure helper
1666
+ _paramSpec (arg) {
1667
+ if (typeof arg === 'string') {
1668
+ return {select: arg};
1669
+ }
1670
+ if (arg && 'value' in arg) {
1671
+ return {value: arg.value};
1672
+ }
1673
+ // `{select}` object, or omitted (a default of `undefined`).
1674
+ return {select: arg && arg.select};
1675
+ }
1676
+
1677
+ /**
1678
+ * Look up a parameter by name across the active with-param scope and the
1679
+ * runtime `config.params`, so runtime-supplied params act like XSLT global
1680
+ * parameters (visible to every template and expression).
1681
+ * @param {string} name
1682
+ * @returns {{has: boolean, value: any}}
1683
+ * @private
1684
+ */
1685
+ _lookupParam (name) {
1686
+ if (this._params && Object.hasOwn(this._params, name)) {
1687
+ return {has: true, value: this._params[name]};
1688
+ }
1689
+ if (Object.hasOwn(this._runtimeParams, name)) {
1690
+ return {has: true, value: this._runtimeParams[name]};
1691
+ }
1692
+ return {has: false, value: undefined};
1693
+ }
1694
+
1695
+ /**
1696
+ * Resolve a `{select}` or `{value}` parameter spec to its value in the
1697
+ * current context.
1698
+ * @param {{select?: string, value?: unknown}} spec
1699
+ * @returns {any}
1700
+ * @private
1701
+ */
1702
+ _resolveParam (spec) {
1703
+ if ('value' in spec) {
1704
+ return spec.value;
1705
+ }
1706
+ return spec.select === undefined ? undefined : this.get(spec.select, false);
1707
+ }
1708
+
1709
+ /**
1710
+ * Resolve staged `withParam()` entries into `target` (in the calling
1711
+ * context) and clear the staged set. Shared by `callTemplate()` and
1712
+ * `applyTemplates()`.
1713
+ * @param {Record<string, unknown>} target
1714
+ * @returns {void}
1715
+ * @private
1716
+ */
1717
+ _drainPendingParams (target) {
1718
+ const pending = this._pendingParams;
1719
+ this._pendingParams = undefined;
1720
+ if (!pending) {
1721
+ return;
1722
+ }
1723
+ for (const entry of pending) {
1724
+ target[entry.name] = this._resolveParam(entry);
1725
+ }
1726
+ }
1727
+
1728
+ /**
1729
+ * Declare a template parameter, equivalent to `xsl:param`. Binds `name` to
1730
+ * the given default, unless a value was supplied by the caller (via
1731
+ * `this.withParam()` or `callTemplate`'s `withParam`) or at runtime (via
1732
+ * `config.params`), in which case the supplied value wins.
1733
+ * @param {string} name - Parameter name
1734
+ * @param {string|{select: string}|{value: unknown}} [select] - The default:
1735
+ * a JSONPath expression string, an explicit `{select}`, or a literal
1736
+ * `{value}`. Omitted means a default of `undefined`.
1737
+ * @returns {this}
1738
+ */
1739
+ param (name, select) {
1740
+ this._params ||= {};
1741
+ const supplied = this._lookupParam(name);
1742
+ // A caller's with-param or a `config.params` value overrides the default.
1743
+ const resolved = supplied.has
1744
+ ? supplied.value
1745
+ : this._resolveParam(this._paramSpec(select));
1746
+ this._params[name] = resolved;
1747
+ this.vars[name] = resolved;
1748
+ return this;
1749
+ }
1750
+
1751
+ /**
1752
+ * Stage a parameter for the next `callTemplate()` or `applyTemplates()`
1753
+ * call, equivalent to `xsl:with-param`. The staged set is consumed and
1754
+ * cleared by that call; entries are evaluated in the current (calling)
1755
+ * context.
1756
+ * @param {string} name - Parameter name
1757
+ * @param {string|{select: string}|{value: unknown}} [select] - A JSONPath
1758
+ * expression string, an explicit `{select}`, or a literal `{value}`.
1759
+ * @returns {this}
1760
+ */
1761
+ withParam (name, select) {
1762
+ this._pendingParams ||= [];
1763
+ this._pendingParams.push({name, ...this._paramSpec(select)});
1764
+ return this;
1765
+ }
1766
+
1617
1767
  /**
1618
1768
  * @param {unknown} json - JSON data to log
1619
1769
  * @returns {void}