callman-core 1.36.0 → 1.38.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.
Files changed (204) hide show
  1. package/dist/assertions/dbAssertions.d.ts +7 -0
  2. package/dist/assertions/dbAssertions.d.ts.map +1 -0
  3. package/dist/assertions/dbAssertions.js +191 -0
  4. package/dist/assertions/dbAssertions.js.map +1 -0
  5. package/dist/assertions/index.d.ts +4 -0
  6. package/dist/assertions/index.d.ts.map +1 -0
  7. package/dist/assertions/index.js +3 -0
  8. package/dist/assertions/index.js.map +1 -0
  9. package/dist/assertions/redisAssertions.d.ts +9 -0
  10. package/dist/assertions/redisAssertions.d.ts.map +1 -0
  11. package/dist/assertions/redisAssertions.js +159 -0
  12. package/dist/assertions/redisAssertions.js.map +1 -0
  13. package/dist/assertions/shared.d.ts +5 -0
  14. package/dist/assertions/shared.d.ts.map +1 -0
  15. package/dist/assertions/shared.js +25 -0
  16. package/dist/assertions/shared.js.map +1 -0
  17. package/dist/assertions/types.d.ts +46 -0
  18. package/dist/assertions/types.d.ts.map +1 -0
  19. package/dist/assertions/types.js +5 -0
  20. package/dist/assertions/types.js.map +1 -0
  21. package/dist/host/connections.d.ts +11 -0
  22. package/dist/host/connections.d.ts.map +1 -1
  23. package/dist/host/connections.js +22 -0
  24. package/dist/host/connections.js.map +1 -1
  25. package/dist/index.d.ts +2 -0
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +2 -0
  28. package/dist/index.js.map +1 -1
  29. package/dist/loadtest/compare.d.ts +32 -0
  30. package/dist/loadtest/compare.d.ts.map +1 -0
  31. package/dist/loadtest/compare.js +55 -0
  32. package/dist/loadtest/compare.js.map +1 -0
  33. package/dist/loadtest/flow-eval.d.ts +21 -0
  34. package/dist/loadtest/flow-eval.d.ts.map +1 -0
  35. package/dist/loadtest/flow-eval.js +199 -0
  36. package/dist/loadtest/flow-eval.js.map +1 -0
  37. package/dist/loadtest/from-collection.d.ts +51 -0
  38. package/dist/loadtest/from-collection.d.ts.map +1 -0
  39. package/dist/loadtest/from-collection.js +131 -0
  40. package/dist/loadtest/from-collection.js.map +1 -0
  41. package/dist/loadtest/histogram.d.ts +41 -0
  42. package/dist/loadtest/histogram.d.ts.map +1 -0
  43. package/dist/loadtest/histogram.js +166 -0
  44. package/dist/loadtest/histogram.js.map +1 -0
  45. package/dist/loadtest/index.d.ts +18 -0
  46. package/dist/loadtest/index.d.ts.map +1 -0
  47. package/dist/loadtest/index.js +14 -0
  48. package/dist/loadtest/index.js.map +1 -0
  49. package/dist/loadtest/node/index.d.ts +4 -0
  50. package/dist/loadtest/node/index.d.ts.map +1 -0
  51. package/dist/loadtest/node/index.js +4 -0
  52. package/dist/loadtest/node/index.js.map +1 -0
  53. package/dist/loadtest/node/metrics.d.ts +84 -0
  54. package/dist/loadtest/node/metrics.d.ts.map +1 -0
  55. package/dist/loadtest/node/metrics.js +396 -0
  56. package/dist/loadtest/node/metrics.js.map +1 -0
  57. package/dist/loadtest/node/orchestrator.d.ts +24 -0
  58. package/dist/loadtest/node/orchestrator.d.ts.map +1 -0
  59. package/dist/loadtest/node/orchestrator.js +363 -0
  60. package/dist/loadtest/node/orchestrator.js.map +1 -0
  61. package/dist/loadtest/node/protocol.d.ts +102 -0
  62. package/dist/loadtest/node/protocol.d.ts.map +1 -0
  63. package/dist/loadtest/node/protocol.js +17 -0
  64. package/dist/loadtest/node/protocol.js.map +1 -0
  65. package/dist/loadtest/node/setup.d.ts +6 -0
  66. package/dist/loadtest/node/setup.d.ts.map +1 -0
  67. package/dist/loadtest/node/setup.js +100 -0
  68. package/dist/loadtest/node/setup.js.map +1 -0
  69. package/dist/loadtest/node/step-compiler.d.ts +29 -0
  70. package/dist/loadtest/node/step-compiler.d.ts.map +1 -0
  71. package/dist/loadtest/node/step-compiler.js +229 -0
  72. package/dist/loadtest/node/step-compiler.js.map +1 -0
  73. package/dist/loadtest/node/transport.d.ts +66 -0
  74. package/dist/loadtest/node/transport.d.ts.map +1 -0
  75. package/dist/loadtest/node/transport.js +414 -0
  76. package/dist/loadtest/node/transport.js.map +1 -0
  77. package/dist/loadtest/node/worker-core.d.ts +77 -0
  78. package/dist/loadtest/node/worker-core.d.ts.map +1 -0
  79. package/dist/loadtest/node/worker-core.js +744 -0
  80. package/dist/loadtest/node/worker-core.js.map +1 -0
  81. package/dist/loadtest/node/worker.d.ts +2 -0
  82. package/dist/loadtest/node/worker.d.ts.map +1 -0
  83. package/dist/loadtest/node/worker.js +28 -0
  84. package/dist/loadtest/node/worker.js.map +1 -0
  85. package/dist/loadtest/plan-file.d.ts +91 -0
  86. package/dist/loadtest/plan-file.d.ts.map +1 -0
  87. package/dist/loadtest/plan-file.js +134 -0
  88. package/dist/loadtest/plan-file.js.map +1 -0
  89. package/dist/loadtest/plan.d.ts +47 -0
  90. package/dist/loadtest/plan.d.ts.map +1 -0
  91. package/dist/loadtest/plan.js +259 -0
  92. package/dist/loadtest/plan.js.map +1 -0
  93. package/dist/loadtest/report.d.ts +8 -0
  94. package/dist/loadtest/report.d.ts.map +1 -0
  95. package/dist/loadtest/report.js +211 -0
  96. package/dist/loadtest/report.js.map +1 -0
  97. package/dist/loadtest/thresholds.d.ts +55 -0
  98. package/dist/loadtest/thresholds.d.ts.map +1 -0
  99. package/dist/loadtest/thresholds.js +203 -0
  100. package/dist/loadtest/thresholds.js.map +1 -0
  101. package/dist/loadtest/types.d.ts +500 -0
  102. package/dist/loadtest/types.d.ts.map +1 -0
  103. package/dist/loadtest/types.js +8 -0
  104. package/dist/loadtest/types.js.map +1 -0
  105. package/dist/loadtest/validate.d.ts +30 -0
  106. package/dist/loadtest/validate.d.ts.map +1 -0
  107. package/dist/loadtest/validate.js +162 -0
  108. package/dist/loadtest/validate.js.map +1 -0
  109. package/dist/runner/requestAssertions.d.ts +19 -0
  110. package/dist/runner/requestAssertions.d.ts.map +1 -0
  111. package/dist/runner/requestAssertions.js +45 -0
  112. package/dist/runner/requestAssertions.js.map +1 -0
  113. package/dist/runner/requestRunner.d.ts.map +1 -1
  114. package/dist/runner/requestRunner.js +25 -0
  115. package/dist/runner/requestRunner.js.map +1 -1
  116. package/dist/runner/runCollection.d.ts.map +1 -1
  117. package/dist/runner/runCollection.js +4 -1
  118. package/dist/runner/runCollection.js.map +1 -1
  119. package/dist/runner/runRequestWithDataset.d.ts.map +1 -1
  120. package/dist/runner/runRequestWithDataset.js +15 -2
  121. package/dist/runner/runRequestWithDataset.js.map +1 -1
  122. package/dist/templating/compile.d.ts +8 -0
  123. package/dist/templating/compile.d.ts.map +1 -0
  124. package/dist/templating/compile.js +110 -0
  125. package/dist/templating/compile.js.map +1 -0
  126. package/dist/templating/index.d.ts +2 -0
  127. package/dist/templating/index.d.ts.map +1 -1
  128. package/dist/templating/index.js +1 -0
  129. package/dist/templating/index.js.map +1 -1
  130. package/dist/templating/template-engine.d.ts +6 -0
  131. package/dist/templating/template-engine.d.ts.map +1 -1
  132. package/dist/templating/template-engine.js +6 -6
  133. package/dist/templating/template-engine.js.map +1 -1
  134. package/dist/types/index.d.ts +10 -0
  135. package/dist/types/index.d.ts.map +1 -1
  136. package/dist-cjs/assertions/dbAssertions.js +195 -0
  137. package/dist-cjs/assertions/dbAssertions.js.map +1 -0
  138. package/dist-cjs/assertions/index.js +8 -0
  139. package/dist-cjs/assertions/index.js.map +1 -0
  140. package/dist-cjs/assertions/redisAssertions.js +163 -0
  141. package/dist-cjs/assertions/redisAssertions.js.map +1 -0
  142. package/dist-cjs/assertions/shared.js +30 -0
  143. package/dist-cjs/assertions/shared.js.map +1 -0
  144. package/dist-cjs/assertions/types.js +6 -0
  145. package/dist-cjs/assertions/types.js.map +1 -0
  146. package/dist-cjs/host/connections.js +24 -1
  147. package/dist-cjs/host/connections.js.map +1 -1
  148. package/dist-cjs/index.js +2 -0
  149. package/dist-cjs/index.js.map +1 -1
  150. package/dist-cjs/loadtest/compare.js +59 -0
  151. package/dist-cjs/loadtest/compare.js.map +1 -0
  152. package/dist-cjs/loadtest/flow-eval.js +205 -0
  153. package/dist-cjs/loadtest/flow-eval.js.map +1 -0
  154. package/dist-cjs/loadtest/from-collection.js +139 -0
  155. package/dist-cjs/loadtest/from-collection.js.map +1 -0
  156. package/dist-cjs/loadtest/histogram.js +171 -0
  157. package/dist-cjs/loadtest/histogram.js.map +1 -0
  158. package/dist-cjs/loadtest/index.js +78 -0
  159. package/dist-cjs/loadtest/index.js.map +1 -0
  160. package/dist-cjs/loadtest/node/index.js +12 -0
  161. package/dist-cjs/loadtest/node/index.js.map +1 -0
  162. package/dist-cjs/loadtest/node/metrics.js +402 -0
  163. package/dist-cjs/loadtest/node/metrics.js.map +1 -0
  164. package/dist-cjs/loadtest/node/orchestrator.js +372 -0
  165. package/dist-cjs/loadtest/node/orchestrator.js.map +1 -0
  166. package/dist-cjs/loadtest/node/protocol.js +20 -0
  167. package/dist-cjs/loadtest/node/protocol.js.map +1 -0
  168. package/dist-cjs/loadtest/node/setup.js +105 -0
  169. package/dist-cjs/loadtest/node/setup.js.map +1 -0
  170. package/dist-cjs/loadtest/node/step-compiler.js +234 -0
  171. package/dist-cjs/loadtest/node/step-compiler.js.map +1 -0
  172. package/dist-cjs/loadtest/node/transport.js +422 -0
  173. package/dist-cjs/loadtest/node/transport.js.map +1 -0
  174. package/dist-cjs/loadtest/node/worker-core.js +749 -0
  175. package/dist-cjs/loadtest/node/worker-core.js.map +1 -0
  176. package/dist-cjs/loadtest/node/worker.js +30 -0
  177. package/dist-cjs/loadtest/node/worker.js.map +1 -0
  178. package/dist-cjs/loadtest/plan-file.js +143 -0
  179. package/dist-cjs/loadtest/plan-file.js.map +1 -0
  180. package/dist-cjs/loadtest/plan.js +271 -0
  181. package/dist-cjs/loadtest/plan.js.map +1 -0
  182. package/dist-cjs/loadtest/report.js +220 -0
  183. package/dist-cjs/loadtest/report.js.map +1 -0
  184. package/dist-cjs/loadtest/thresholds.js +213 -0
  185. package/dist-cjs/loadtest/thresholds.js.map +1 -0
  186. package/dist-cjs/loadtest/types.js +9 -0
  187. package/dist-cjs/loadtest/types.js.map +1 -0
  188. package/dist-cjs/loadtest/validate.js +169 -0
  189. package/dist-cjs/loadtest/validate.js.map +1 -0
  190. package/dist-cjs/runner/requestAssertions.js +49 -0
  191. package/dist-cjs/runner/requestAssertions.js.map +1 -0
  192. package/dist-cjs/runner/requestRunner.js +25 -0
  193. package/dist-cjs/runner/requestRunner.js.map +1 -1
  194. package/dist-cjs/runner/runCollection.js +4 -1
  195. package/dist-cjs/runner/runCollection.js.map +1 -1
  196. package/dist-cjs/runner/runRequestWithDataset.js +15 -2
  197. package/dist-cjs/runner/runRequestWithDataset.js.map +1 -1
  198. package/dist-cjs/templating/compile.js +114 -0
  199. package/dist-cjs/templating/compile.js.map +1 -0
  200. package/dist-cjs/templating/index.js +3 -1
  201. package/dist-cjs/templating/index.js.map +1 -1
  202. package/dist-cjs/templating/template-engine.js +14 -12
  203. package/dist-cjs/templating/template-engine.js.map +1 -1
  204. package/package.json +10 -1
@@ -0,0 +1,110 @@
1
+ // Pre-compiled templates for hot paths (the load-test engine resolves the same
2
+ // request template millions of times). `resolveTemplate` re-scans its input
3
+ // with a regex on every call and classifies every `{{ }}` expression again;
4
+ // `compileTemplate` tokenises ONCE and returns a function that only evaluates.
5
+ //
6
+ // Semantics are identical to `resolveTemplate`: same expression order
7
+ // (random → Postman `$` token → counter → variable → scope-prefixed variable),
8
+ // the same per-call counter de-duplication, and the same nested-resolution
9
+ // behaviour (a result that still contains `{{` is resolved again, up to the
10
+ // same number of passes). `resolveTemplate` stays the reference — this file
11
+ // must not diverge from it.
12
+ import { COUNTER_START_PATTERN, POSTMAN_DOLLAR_PATTERN, RANDOM_EXPRESSION_PATTERN, parseTemplateArguments, resolveCounterExpression, resolveRandomExpression, resolveTemplate, } from "./template-engine.js";
13
+ import { resolvePostmanDollarToken } from "./postman-generators.js";
14
+ const TOKEN_PATTERN = /\{\{\s*([^{}]+?)\s*\}\}/g;
15
+ const SCOPE_PREFIXES = ["env.", "globals.", "global."];
16
+ const classify = (rawExpression) => {
17
+ const expression = rawExpression.trim();
18
+ if (!expression)
19
+ return { kind: "empty" };
20
+ const randomMatch = expression.match(RANDOM_EXPRESSION_PATTERN);
21
+ if (randomMatch) {
22
+ return {
23
+ kind: "random",
24
+ name: randomMatch[1] ?? "",
25
+ args: parseTemplateArguments(randomMatch[2] ?? ""),
26
+ };
27
+ }
28
+ const dollarMatch = expression.match(POSTMAN_DOLLAR_PATTERN);
29
+ if (dollarMatch) {
30
+ return { kind: "dollar", name: dollarMatch[1] ?? "", fallback: expression };
31
+ }
32
+ if (expression === "counter" || COUNTER_START_PATTERN.test(expression)) {
33
+ return { kind: "counter", expression };
34
+ }
35
+ let prefixed = null;
36
+ for (const prefix of SCOPE_PREFIXES) {
37
+ if (expression.startsWith(prefix)) {
38
+ prefixed = expression.slice(prefix.length);
39
+ break;
40
+ }
41
+ }
42
+ return { kind: "variable", name: expression, prefixed };
43
+ };
44
+ const evaluate = (token, context) => {
45
+ switch (token.kind) {
46
+ case "text":
47
+ return token.text;
48
+ case "empty":
49
+ return "";
50
+ case "random":
51
+ return resolveRandomExpression(token.name, token.args);
52
+ case "dollar": {
53
+ const value = resolvePostmanDollarToken(token.name);
54
+ if (value !== undefined)
55
+ return value;
56
+ // Same fall-through as the reference: an env variable literally named
57
+ // `$something` still resolves.
58
+ return context.environment[token.fallback] ?? "";
59
+ }
60
+ case "counter":
61
+ return resolveCounterExpression(token.expression, context);
62
+ case "variable": {
63
+ const environment = context.environment;
64
+ if (token.name in environment)
65
+ return environment[token.name] ?? "";
66
+ if (token.prefixed !== null && token.prefixed in environment) {
67
+ return environment[token.prefixed] ?? "";
68
+ }
69
+ return "";
70
+ }
71
+ }
72
+ };
73
+ /**
74
+ * Tokenise `input` once. The returned function is safe to call concurrently
75
+ * and holds no state; counters and variables come from the context.
76
+ */
77
+ export const compileTemplate = (input) => {
78
+ if (!input.includes("{{")) {
79
+ return () => input;
80
+ }
81
+ const tokens = [];
82
+ let cursor = 0;
83
+ for (const match of input.matchAll(TOKEN_PATTERN)) {
84
+ const index = match.index ?? 0;
85
+ if (index > cursor)
86
+ tokens.push({ kind: "text", text: input.slice(cursor, index) });
87
+ tokens.push(classify(match[1] ?? ""));
88
+ cursor = index + match[0].length;
89
+ }
90
+ if (cursor < input.length)
91
+ tokens.push({ kind: "text", text: input.slice(cursor) });
92
+ // One dynamic token and nothing else is the common `{{var}}` case.
93
+ const single = tokens.length === 1 ? tokens[0] : null;
94
+ return (context) => {
95
+ let output;
96
+ if (single) {
97
+ output = evaluate(single, context);
98
+ }
99
+ else {
100
+ output = "";
101
+ for (const token of tokens)
102
+ output += evaluate(token, context);
103
+ }
104
+ // A value that is itself a template (`{{a}}` → `{{random.uuid()}}`):
105
+ // hand the remainder to the reference resolver, which owns the multi-pass
106
+ // rules.
107
+ return output.includes("{{") ? resolveTemplate(output, context) : output;
108
+ };
109
+ };
110
+ //# sourceMappingURL=compile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/templating/compile.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  export { parseTemplateArguments, createTemplateRuntimeContext, resolveTemplate, resolveTemplateKeyValuePairs, } from "./template-engine.js";
2
+ export { compileTemplate } from "./compile.js";
3
+ export type { CompiledTemplate } from "./compile.js";
2
4
  export { generateRandomUuid, generateRandomString, generateRandomEmail, generateRandomInt, generateRandomBigDecimal, generateRandomBoolean, generateRandomPhone, generateRandomDate, generateRandomName, } from "./random-generators.js";
3
5
  export { createCounterStore, getNextCounterValue, resetCounterValue, getCounterSnapshot, hydrateCounterStore, } from "./counter-store.js";
4
6
  export { RANDOM_GENERATOR_METADATA, COUNTER_GENERATOR_METADATA, TEMPLATE_GENERATOR_METADATA, } from "./generator-metadata.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/templating/index.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,sBAAsB,EACtB,4BAA4B,EAC5B,eAAe,EACf,4BAA4B,GAC7B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC;AAEjC,YAAY,EACV,oBAAoB,EACpB,YAAY,EACZ,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/templating/index.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,sBAAsB,EACtB,4BAA4B,EAC5B,eAAe,EACf,4BAA4B,GAC7B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC;AAEjC,YAAY,EACV,oBAAoB,EACpB,YAAY,EACZ,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,YAAY,CAAC"}
@@ -5,6 +5,7 @@
5
5
  // runtime data substitution lives in `scenario-runner/templateResolver.ts`
6
6
  // — a separate API axis with pre-flattened values and condition support.
7
7
  export { parseTemplateArguments, createTemplateRuntimeContext, resolveTemplate, resolveTemplateKeyValuePairs, } from "./template-engine.js";
8
+ export { compileTemplate } from "./compile.js";
8
9
  export { generateRandomUuid, generateRandomString, generateRandomEmail, generateRandomInt, generateRandomBigDecimal, generateRandomBoolean, generateRandomPhone, generateRandomDate, generateRandomName, } from "./random-generators.js";
9
10
  export { createCounterStore, getNextCounterValue, resetCounterValue, getCounterSnapshot, hydrateCounterStore, } from "./counter-store.js";
10
11
  export { RANDOM_GENERATOR_METADATA, COUNTER_GENERATOR_METADATA, TEMPLATE_GENERATOR_METADATA, } from "./generator-metadata.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/templating/index.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,EAAE;AACF,+DAA+D;AAC/D,yEAAyE;AACzE,2EAA2E;AAC3E,yEAAyE;AAEzE,OAAO,EACL,sBAAsB,EACtB,4BAA4B,EAC5B,eAAe,EACf,4BAA4B,GAC7B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/templating/index.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,EAAE;AACF,+DAA+D;AAC/D,yEAAyE;AACzE,2EAA2E;AAC3E,yEAAyE;AAEzE,OAAO,EACL,sBAAsB,EACtB,4BAA4B,EAC5B,eAAe,EACf,4BAA4B,GAC7B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC"}
@@ -4,7 +4,13 @@ interface KeyValuePair {
4
4
  value: string;
5
5
  enabled?: boolean;
6
6
  }
7
+ export declare const TEMPLATE_PATTERN: RegExp;
8
+ export declare const RANDOM_EXPRESSION_PATTERN: RegExp;
9
+ export declare const COUNTER_START_PATTERN: RegExp;
10
+ export declare const POSTMAN_DOLLAR_PATTERN: RegExp;
7
11
  export declare const parseTemplateArguments: (input: string) => string[];
12
+ export declare const resolveRandomExpression: (generatorName: string, args: string[]) => string;
13
+ export declare const resolveCounterExpression: (expression: string, context: TemplateRuntimeContext) => string;
8
14
  export declare const createTemplateRuntimeContext: (environment: Record<string, string>, options?: {
9
15
  counterStore?: CounterStore;
10
16
  }) => TemplateRuntimeContext;
@@ -1 +1 @@
1
- {"version":3,"file":"template-engine.d.ts","sourceRoot":"","sources":["../../src/templating/template-engine.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEvE,UAAU,YAAY;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AA4BD,eAAO,MAAM,sBAAsB,GAAI,OAAO,MAAM,KAAG,MAAM,EA4C5D,CAAC;AA4IF,eAAO,MAAM,4BAA4B,GACvC,aAAa,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACnC,UAAS;IAAE,YAAY,CAAC,EAAE,YAAY,CAAA;CAAO,KAC5C,sBAID,CAAC;AAEH,eAAO,MAAM,eAAe,GAC1B,OAAO,MAAM,EACb,SAAS,sBAAsB,KAC9B,MAkBF,CAAC;AAEF,eAAO,MAAM,4BAA4B,GAAI,CAAC,SAAS,YAAY,EACjE,SAAS,CAAC,EAAE,EACZ,SAAS,sBAAsB,KAC9B,CAAC,EAMC,CAAC"}
1
+ {"version":3,"file":"template-engine.d.ts","sourceRoot":"","sources":["../../src/templating/template-engine.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEvE,UAAU,YAAY;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,gBAAgB,QAA6B,CAAC;AAC3D,eAAO,MAAM,yBAAyB,QAAqC,CAAC;AAC5E,eAAO,MAAM,qBAAqB,QAA8B,CAAC;AAGjE,eAAO,MAAM,sBAAsB,QAA+B,CAAC;AAqBnE,eAAO,MAAM,sBAAsB,GAAI,OAAO,MAAM,KAAG,MAAM,EA4C5D,CAAC;AAWF,eAAO,MAAM,uBAAuB,GAClC,eAAe,MAAM,EACrB,MAAM,MAAM,EAAE,KACb,MA8BF,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,YAAY,MAAM,EAClB,SAAS,sBAAsB,KAC9B,MAiBF,CAAC;AA0EF,eAAO,MAAM,4BAA4B,GACvC,aAAa,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACnC,UAAS;IAAE,YAAY,CAAC,EAAE,YAAY,CAAA;CAAO,KAC5C,sBAID,CAAC;AAEH,eAAO,MAAM,eAAe,GAC1B,OAAO,MAAM,EACb,SAAS,sBAAsB,KAC9B,MAkBF,CAAC;AAEF,eAAO,MAAM,4BAA4B,GAAI,CAAC,SAAS,YAAY,EACjE,SAAS,CAAC,EAAE,EACZ,SAAS,sBAAsB,KAC9B,CAAC,EAMC,CAAC"}
@@ -5,12 +5,12 @@
5
5
  import { generateRandomBigDecimal, generateRandomBoolean, generateRandomDate, generateRandomEmail, generateRandomInt, generateRandomName, generateRandomPhone, generateRandomString, generateRandomUuid, } from "./random-generators.js";
6
6
  import { resolvePostmanDollarToken } from "./postman-generators.js";
7
7
  import { getNextCounterValue as defaultGetNextCounterValue } from "./counter-store.js";
8
- const TEMPLATE_PATTERN = /\{\{\s*([^{}]+?)\s*\}\}/g;
9
- const RANDOM_EXPRESSION_PATTERN = /^random\.([a-z]+)(?:\((.*)\))?$/i;
10
- const COUNTER_START_PATTERN = /^counter\.start\((.*)\)$/i;
8
+ export const TEMPLATE_PATTERN = /\{\{\s*([^{}]+?)\s*\}\}/g;
9
+ export const RANDOM_EXPRESSION_PATTERN = /^random\.([a-z]+)(?:\((.*)\))?$/i;
10
+ export const COUNTER_START_PATTERN = /^counter\.start\((.*)\)$/i;
11
11
  // Postman dynamic variable syntax: `$randomUUID`, `$timestamp`, `$guid`,
12
12
  // `$isoTimestamp`, `$randomFirstName`, etc. — never takes arguments.
13
- const POSTMAN_DOLLAR_PATTERN = /^\$([A-Za-z][A-Za-z0-9]*)$/;
13
+ export const POSTMAN_DOLLAR_PATTERN = /^\$([A-Za-z][A-Za-z0-9]*)$/;
14
14
  const MAX_TEMPLATE_PASSES = 4;
15
15
  const stripWrappingQuotes = (value) => {
16
16
  const trimmed = value.trim();
@@ -68,7 +68,7 @@ const toFiniteNumber = (value, fallback) => {
68
68
  const parsedValue = Number(value);
69
69
  return Number.isFinite(parsedValue) ? parsedValue : fallback;
70
70
  };
71
- const resolveRandomExpression = (generatorName, args) => {
71
+ export const resolveRandomExpression = (generatorName, args) => {
72
72
  switch (generatorName.toLowerCase()) {
73
73
  case "email":
74
74
  return generateRandomEmail();
@@ -92,7 +92,7 @@ const resolveRandomExpression = (generatorName, args) => {
92
92
  return "";
93
93
  }
94
94
  };
95
- const resolveCounterExpression = (expression, context) => {
95
+ export const resolveCounterExpression = (expression, context) => {
96
96
  if (context.requestCounterCache.has(expression)) {
97
97
  return context.requestCounterCache.get(expression) ?? "";
98
98
  }
@@ -1 +1 @@
1
- {"version":3,"file":"template-engine.js","sourceRoot":"","sources":["../../src/templating/template-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template-engine.js","sourceRoot":"","sources":["../../src/templating/template-engine.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,uEAAuE;AACvE,uEAAuE;AACvE,2EAA2E;AAE3E,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,mBAAmB,IAAI,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AASvF,MAAM,CAAC,MAAM,gBAAgB,GAAG,0BAA0B,CAAC;AAC3D,MAAM,CAAC,MAAM,yBAAyB,GAAG,kCAAkC,CAAC;AAC5E,MAAM,CAAC,MAAM,qBAAqB,GAAG,2BAA2B,CAAC;AACjE,yEAAyE;AACzE,qEAAqE;AACrE,MAAM,CAAC,MAAM,sBAAsB,GAAG,4BAA4B,CAAC;AACnE,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B,MAAM,mBAAmB,GAAG,CAAC,KAAa,EAAU,EAAE;IACpD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAE7B,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACxB,MAAM,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAElD,IACE,CAAC,cAAc,KAAK,GAAG,IAAI,cAAc,KAAK,GAAG,CAAC;YAClD,cAAc,KAAK,aAAa,EAChC,CAAC;YACD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,KAAa,EAAY,EAAE;IAChE,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,KAAK,GAAqB,IAAI,CAAC;IACnC,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,KAAK,MAAM,SAAS,IAAI,KAAK,EAAE,CAAC;QAC9B,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,IAAI,SAAS,CAAC;YACrB,SAAS,GAAG,KAAK,CAAC;YAClB,SAAS;QACX,CAAC;QAED,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,SAAS,GAAG,IAAI,CAAC;YACjB,SAAS;QACX,CAAC;QAED,IAAI,CAAC,SAAS,KAAK,GAAG,IAAI,SAAS,KAAK,GAAG,CAAC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC/D,KAAK,GAAG,SAAS,CAAC;YAClB,OAAO,IAAI,SAAS,CAAC;YACrB,SAAS;QACX,CAAC;QAED,IAAI,KAAK,KAAK,IAAI,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;YAC1C,KAAK,GAAG,IAAI,CAAC;YACb,OAAO,IAAI,SAAS,CAAC;YACrB,SAAS;QACX,CAAC;QAED,IAAI,SAAS,KAAK,GAAG,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACxC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;YACxC,OAAO,GAAG,EAAE,CAAC;YACb,SAAS;QACX,CAAC;QAED,OAAO,IAAI,SAAS,CAAC;IACvB,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACxD,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,KAAyB,EAAE,QAAgB,EAAU,EAAE;IAC7E,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAClC,OAAO,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC/D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,aAAqB,EACrB,IAAc,EACN,EAAE;IACV,QAAQ,aAAa,CAAC,WAAW,EAAE,EAAE,CAAC;QACpC,KAAK,OAAO;YACV,OAAO,mBAAmB,EAAE,CAAC;QAC/B,KAAK,QAAQ;YACX,OAAO,oBAAoB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC3D,KAAK,MAAM;YACT,OAAO,kBAAkB,EAAE,CAAC;QAC9B,KAAK,KAAK;YACR,OAAO,iBAAiB,CACtB,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CACjC,CAAC;QACJ,KAAK,YAAY;YACf,OAAO,wBAAwB,CAC7B,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1B,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAChC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAC3B,CAAC;QACJ,KAAK,SAAS;YACZ,OAAO,qBAAqB,EAAE,CAAC;QACjC,KAAK,OAAO;YACV,OAAO,mBAAmB,EAAE,CAAC;QAC/B,KAAK,MAAM;YACT,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC;QACrD,KAAK,MAAM;YACT,OAAO,kBAAkB,EAAE,CAAC;QAC9B;YACE,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,UAAkB,EAClB,OAA+B,EACvB,EAAE;IACV,IAAI,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;QAChD,OAAO,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAC3D,CAAC;IAED,MAAM,iBAAiB,GAAG,UAAU,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG,iBAAiB;QAC/B,CAAC,CAAC,cAAc,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC,CAAC;IACN,MAAM,UAAU,GAAG,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,MAAM,SAAS,GAA8C,OAAO,CAAC,YAAY;QAC/E,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAE,OAAO,CAAC,YAA6B,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC;QACjF,CAAC,CAAC,0BAA0B,CAAC;IAC/B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAEzD,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IACvD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CACxB,UAAkB,EAClB,OAA+B,EACvB,EAAE;IACV,MAAM,oBAAoB,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;IAE/C,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,WAAW,GAAG,oBAAoB,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAE1E,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,uBAAuB,CAC5B,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,EACpB,sBAAsB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAC7C,CAAC;IACJ,CAAC;IAED,qEAAqE;IACrE,8DAA8D;IAC9D,0CAA0C;IAC1C,MAAM,WAAW,GAAG,oBAAoB,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACvE,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,KAAK,GAAG,yBAAyB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,gEAAgE;QAChE,gDAAgD;IAClD,CAAC;IAED,IACE,oBAAoB,KAAK,SAAS;QAClC,qBAAqB,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAChD,CAAC;QACD,OAAO,wBAAwB,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,oBAAoB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QAChD,OAAO,OAAO,CAAC,WAAW,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;IACzD,CAAC;IAED,sEAAsE;IACtE,sEAAsE;IACtE,qEAAqE;IACrE,+DAA+D;IAC/D,qEAAqE;IACrE,oEAAoE;IACpE,uEAAuE;IACvE,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IACvD,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;QACpC,IAAI,oBAAoB,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC3D,IAAI,QAAQ,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;gBACpC,OAAO,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC7C,CAAC;YACD,MAAM;QACR,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAC1B,KAAa,EACb,OAA+B,EACvB,EAAE,CACV,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,MAAM,EAAE,UAAkB,EAAE,EAAE,CAC7D,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CACvC,CAAC;AAEJ,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAC1C,WAAmC,EACnC,UAA2C,EAAE,EACrB,EAAE,CAAC,CAAC;IAC5B,WAAW;IACX,mBAAmB,EAAE,IAAI,GAAG,EAAkB;IAC9C,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;CACxE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,KAAa,EACb,OAA+B,EACvB,EAAE;IACV,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,YAAY,GAAG,KAAK,CAAC;IAEzB,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,mBAAmB,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;QACzD,MAAM,SAAS,GAAG,mBAAmB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAE7D,IAAI,SAAS,KAAK,YAAY,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5D,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,YAAY,GAAG,SAAS,CAAC;IAC3B,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAC1C,OAAY,EACZ,OAA+B,EAC1B,EAAE,CACP,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACtB,GAAG,KAAK;IACR,GAAG,EAAE,eAAe,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC;IACxC,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC;IAC5C,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI;CAC/B,CAAC,CAAC,CAAC"}
@@ -2,6 +2,7 @@ import type { EnvStore } from "../variables/envStore.js";
2
2
  import type { ConnectionRuntimeMap, RequestDatabaseRuntimeConfig, RequestRedisRuntimeConfig } from "../host/connections.js";
3
3
  import type { ScriptDbCapability, ScriptFeaturePolicy, ScriptLogEntry, ScriptRedisCapability } from "../script/types.js";
4
4
  import type { ScriptSource } from "../script/chain.js";
5
+ import type { DbAssertionResult, RedisAssertionResult, RequestDbAssertion } from "../assertions/types.js";
5
6
  import type { ScriptLayer, ScriptLayerFolderInput, ScriptLayerScripts } from "../script/layers.js";
6
7
  export interface Collection {
7
8
  id?: string;
@@ -57,6 +58,7 @@ export interface RequestItem {
57
58
  contracts?: any[];
58
59
  database?: RequestDatabaseRuntimeConfig;
59
60
  redis?: RequestRedisRuntimeConfig;
61
+ dbAssertions?: RequestDbAssertion[];
60
62
  }
61
63
  export interface ExecutionResult {
62
64
  requestId: string;
@@ -67,6 +69,12 @@ export interface ExecutionResult {
67
69
  request?: ExecuteRequestInput;
68
70
  scriptResults: TestResult[];
69
71
  contractResults: TestResult[];
72
+ /**
73
+ * Outcome of the request's DB / Redis assertions (core >= 1.38). Present
74
+ * only when the request carries any; a `FAIL` fails the request.
75
+ */
76
+ dbAssertionResults?: DbAssertionResult[];
77
+ redisAssertionResults?: RedisAssertionResult[];
70
78
  /**
71
79
  * The runner's verdict for this request, expectedStatus included. Optional
72
80
  * only so results produced by an older core still type-check.
@@ -288,6 +296,8 @@ export interface DataDrivenIterationResult {
288
296
  durationMs: number;
289
297
  scriptResults: TestResult[];
290
298
  contractResults: TestResult[];
299
+ dbAssertionResults?: DbAssertionResult[];
300
+ redisAssertionResults?: RedisAssertionResult[];
291
301
  passed: boolean;
292
302
  request?: ExecuteRequestInput;
293
303
  response?: ExecuteRequestResult | null;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EACV,oBAAoB,EACpB,4BAA4B,EAC5B,yBAAyB,EAC1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EACV,WAAW,EACX,sBAAsB,EACtB,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,WAAW,UAAU;IACzB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE;QACf,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;IAEF,OAAO,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAGpC,OAAO,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACnC,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAChF,MAAM,MAAM,eAAe,GAAG,oBAAoB,GAAG,UAAU,GAAG,eAAe,CAAC;AAClF,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,MAAM,CAAC;AAGhD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,eAAe,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,eAAe,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IACpC,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAG/B,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,IAAI,CAAC,EAAE,GAAG,CAAC;IAKX,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IAKf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAK1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;IAIlB,QAAQ,CAAC,EAAE,4BAA4B,CAAC;IACxC,KAAK,CAAC,EAAE,yBAAyB,CAAC;CACnC;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,GAAG,CAAC;IACd,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,aAAa,EAAE,UAAU,EAAE,CAAC;IAC5B,eAAe,EAAE,UAAU,EAAE,CAAC;IAC9B;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,+EAA+E;IAC/E,IAAI,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAC/B;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACtE;8EAC0E;IAC1E,UAAU,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;CACpF;AAED,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IAC3D,KAAK,EAAE,aAAa,GAAG,eAAe,GAAG,OAAO,CAAC;IACjD,mEAAmE;IACnE,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IAGb,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IAQjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AASD,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,KAAK,GAAG,KAAK,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;IAInB,iBAAiB,CAAC,EAAE,uBAAuB,CAAC;IAM5C,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE1D,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IAIf,IAAI,EAAE,GAAG,CAAC;IACV,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IAIjB,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,MAAM,WAAW,sBAAsB;IACrC,GAAG,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAIrC,OAAO,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAIzC,mBAAmB,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrD,cAAc,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChD,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,OAAO,CAAC,EAAE,GAAG,CAAC;IAGd,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,WAAW,CAAC;IACrB,GAAG,EAAE,QAAQ,CAAC;IAId,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,gBAAgB,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAG/C,WAAW,CAAC,EAAE,oBAAoB,CAAC;IAEnC,aAAa,CAAC,EAAE,mBAAmB,CAAC;IAKpC,gBAAgB,CAAC,EAAE,WAAW,EAAE,CAAC;IAGjC,mBAAmB,CAAC,EAAE,QAAQ,CAAC;IAI/B,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,SAAS,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAE7C,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,eAAe,CAAC;IACxB,QAAQ,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACvC;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,UAAU,CAAC;IACvB,GAAG,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAErC,OAAO,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEzC,WAAW,CAAC,EAAE,oBAAoB,CAAC;IACnC,aAAa,CAAC,EAAE,mBAAmB,CAAC;IAGpC,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,mBAAmB,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE;QACvB,OAAO,EAAE,WAAW,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,KAAK,IAAI,CAAC;IACX,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE;QAC1B,OAAO,EAAE,WAAW,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,eAAe,CAAC;KACzB,KAAK,IAAI,CAAC;CACZ;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf;2EACuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,OAAO,EAAE,oBAAoB,CAAC;CAC/B;AAED,MAAM,MAAM,iBAAiB,GACzB,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,QAAQ,GACR,OAAO,GACP,MAAM,GACN,WAAW,CAAC;AAEhB,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,MAAM,CAAC;AAI/C,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,iBAAiB,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,CAAC;AAKrD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAKD,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAIhB,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,UAAU,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAEpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAE5B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB;AAWD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,eAAe,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAE9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7B,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,UAAU,CAAC,EAAE,qBAAqB,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,eAAe,EAAE,CAAC;CACzB;AAGD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,UAAU,EAAE,CAAC;IAC5B,eAAe,EAAE,UAAU,EAAE,CAAC;IAC9B,MAAM,EAAE,OAAO,CAAC;IAGhB,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,QAAQ,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,yBAAyB,EAAE,CAAC;IACxC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5D;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,QAAQ,CAAC;IAEd,OAAO,CAAC,EAAE,QAAQ,CAAC;IAGnB,IAAI,CAAC,EAAE,cAAc,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACvC,OAAO,CAAC,EAAE,mBAAmB,GAAG,WAAW,CAAC;IAE5C,EAAE,CAAC,EAAE,kBAAkB,CAAC;IACxB,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAC9B,aAAa,CAAC,EAAE,mBAAmB,CAAC;CACrC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,195 @@
1
+ "use strict";
2
+ // DB assertion evaluator — a pure port of the desktop's `runDbAssertions`
3
+ // (`features/database/lib/dbAssertions.ts`), so the desktop, the CLI and the MCP
4
+ // server reach the same PASS/FAIL for the same request and the same results.
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.runDbAssertions = void 0;
7
+ const shared_js_1 = require("./shared.js");
8
+ const getByPath = (value, path) => {
9
+ let current = value;
10
+ for (const segment of path) {
11
+ if (current === null || current === undefined) {
12
+ return undefined;
13
+ }
14
+ if (Array.isArray(current)) {
15
+ if (segment === "first") {
16
+ current = current[0];
17
+ continue;
18
+ }
19
+ const index = Number(segment);
20
+ if (!Number.isInteger(index)) {
21
+ return undefined;
22
+ }
23
+ current = current[index];
24
+ continue;
25
+ }
26
+ if (!(0, shared_js_1.isPlainObject)(current)) {
27
+ return undefined;
28
+ }
29
+ current = current[segment];
30
+ }
31
+ return current;
32
+ };
33
+ const createDbSourceRoot = (result) => ({
34
+ success: result?.success ?? false,
35
+ rowCount: result?.rowCount ?? 0,
36
+ rows: result?.rows ?? [],
37
+ firstRow: result?.rows?.[0] ?? null,
38
+ error: result?.error ?? null,
39
+ });
40
+ const resolveExpression = ({ expression, responseRoot, dbResults, }) => {
41
+ const normalizedExpression = expression.trim();
42
+ if (!normalizedExpression) {
43
+ return "";
44
+ }
45
+ if (normalizedExpression.startsWith("response.")) {
46
+ return getByPath(responseRoot, normalizedExpression.slice("response.".length).split("."));
47
+ }
48
+ if (normalizedExpression.startsWith("db_pre.")) {
49
+ return getByPath(createDbSourceRoot(dbResults.pre), normalizedExpression.slice("db_pre.".length).split("."));
50
+ }
51
+ if (normalizedExpression.startsWith("db_post.")) {
52
+ return getByPath(createDbSourceRoot(dbResults.post), normalizedExpression.slice("db_post.".length).split("."));
53
+ }
54
+ return getByPath(responseRoot, normalizedExpression.split("."));
55
+ };
56
+ const resolveExpectedValue = ({ assertion, responseRoot, dbResults, }) => {
57
+ if (assertion.valueType !== "response") {
58
+ return assertion.value;
59
+ }
60
+ const fullMatch = assertion.value.match(shared_js_1.FULL_TEMPLATE_PATTERN);
61
+ if (fullMatch) {
62
+ return resolveExpression({
63
+ expression: fullMatch[1] ?? "",
64
+ responseRoot,
65
+ dbResults,
66
+ });
67
+ }
68
+ return assertion.value.replace(shared_js_1.TEMPLATE_PATTERN, (_match, expression) => (0, shared_js_1.stringifyValue)(resolveExpression({
69
+ expression,
70
+ responseRoot,
71
+ dbResults,
72
+ })));
73
+ };
74
+ const resolveAssertionActualValue = ({ assertion, responseRoot, dbResults, }) => {
75
+ const normalizedField = assertion.field.trim();
76
+ if (!normalizedField) {
77
+ return undefined;
78
+ }
79
+ if (normalizedField.startsWith("response.") ||
80
+ normalizedField.startsWith("db_pre.") ||
81
+ normalizedField.startsWith("db_post.")) {
82
+ return resolveExpression({
83
+ expression: normalizedField,
84
+ responseRoot,
85
+ dbResults,
86
+ });
87
+ }
88
+ const sourceRoot = assertion.source === "db_pre"
89
+ ? createDbSourceRoot(dbResults.pre)
90
+ : createDbSourceRoot(dbResults.post);
91
+ return getByPath(sourceRoot, normalizedField.split("."));
92
+ };
93
+ const deepEquals = (left, right) => {
94
+ if (left === right) {
95
+ return true;
96
+ }
97
+ if (typeof left === "number" &&
98
+ typeof right === "string" &&
99
+ right.trim() !== "" &&
100
+ Number(right) === left) {
101
+ return true;
102
+ }
103
+ if (typeof right === "number" &&
104
+ typeof left === "string" &&
105
+ left.trim() !== "" &&
106
+ Number(left) === right) {
107
+ return true;
108
+ }
109
+ if (typeof left === "boolean" && typeof right === "string") {
110
+ return String(left) === right.toLowerCase();
111
+ }
112
+ if (typeof right === "boolean" && typeof left === "string") {
113
+ return String(right) === left.toLowerCase();
114
+ }
115
+ try {
116
+ return JSON.stringify(left) === JSON.stringify(right);
117
+ }
118
+ catch {
119
+ return false;
120
+ }
121
+ };
122
+ const runDbAssertions = ({ responseRoot, dbResults, assertions, }) => {
123
+ if (assertions.length === 0) {
124
+ return [];
125
+ }
126
+ const failingDbError = (dbResults.pre && !dbResults.pre.success && dbResults.pre.error) ||
127
+ (dbResults.post && !dbResults.post.success && dbResults.post.error) ||
128
+ null;
129
+ if (failingDbError) {
130
+ return assertions.map((assertion) => ({
131
+ id: assertion.id,
132
+ name: assertion.name,
133
+ status: "FAIL",
134
+ message: failingDbError,
135
+ }));
136
+ }
137
+ return assertions.map((assertion) => {
138
+ const actual = resolveAssertionActualValue({
139
+ assertion,
140
+ responseRoot,
141
+ dbResults,
142
+ });
143
+ if (assertion.operator === "exists") {
144
+ const passed = actual !== undefined && actual !== null;
145
+ return {
146
+ id: assertion.id,
147
+ name: assertion.name,
148
+ status: passed ? "PASS" : "FAIL",
149
+ message: passed
150
+ ? `${assertion.field} exists`
151
+ : `${assertion.field} is missing`,
152
+ };
153
+ }
154
+ const expected = resolveExpectedValue({
155
+ assertion,
156
+ responseRoot,
157
+ dbResults,
158
+ });
159
+ if (assertion.operator === "gt" || assertion.operator === "lt") {
160
+ const actualNumber = Number(actual);
161
+ const expectedNumber = Number(expected);
162
+ if (!Number.isFinite(actualNumber) || !Number.isFinite(expectedNumber)) {
163
+ return {
164
+ id: assertion.id,
165
+ name: assertion.name,
166
+ status: "FAIL",
167
+ message: `Numeric comparison failed for ${assertion.field}`,
168
+ };
169
+ }
170
+ const passed = assertion.operator === "gt"
171
+ ? actualNumber > expectedNumber
172
+ : actualNumber < expectedNumber;
173
+ return {
174
+ id: assertion.id,
175
+ name: assertion.name,
176
+ status: passed ? "PASS" : "FAIL",
177
+ message: passed
178
+ ? `${assertion.field} ${assertion.operator} ${expectedNumber}`
179
+ : `Expected ${assertion.field} ${assertion.operator} ${expectedNumber} but got ${actualNumber}`,
180
+ };
181
+ }
182
+ const equals = deepEquals(actual, expected);
183
+ const passed = assertion.operator === "equals" ? equals : !equals;
184
+ return {
185
+ id: assertion.id,
186
+ name: assertion.name,
187
+ status: passed ? "PASS" : "FAIL",
188
+ message: passed
189
+ ? `${assertion.field} ${assertion.operator} check passed`
190
+ : `Expected ${assertion.field} ${assertion.operator === "equals" ? "=" : "!="} ${(0, shared_js_1.stringifyValue)(expected)} but got ${(0, shared_js_1.stringifyValue)(actual)}`,
191
+ };
192
+ });
193
+ };
194
+ exports.runDbAssertions = runDbAssertions;
195
+ //# sourceMappingURL=dbAssertions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dbAssertions.js","sourceRoot":"","sources":["../../src/assertions/dbAssertions.ts"],"names":[],"mappings":";AAAA,0EAA0E;AAC1E,iFAAiF;AACjF,6EAA6E;;;AAE7E,2CAKqB;AAQrB,MAAM,SAAS,GAAG,CAAC,KAAc,EAAE,IAAc,EAAW,EAAE;IAC5D,IAAI,OAAO,GAAY,KAAK,CAAC;IAE7B,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;QAC3B,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC9C,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;gBACxB,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBACrB,SAAS;YACX,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;YAE9B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7B,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;YACzB,SAAS;QACX,CAAC;QAED,IAAI,CAAC,IAAA,yBAAa,EAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,MAAqC,EAAE,EAAE,CAAC,CAAC;IACrE,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,KAAK;IACjC,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,CAAC;IAC/B,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE;IACxB,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI;IACnC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,IAAI;CAC7B,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAG,CAAC,EACzB,UAAU,EACV,YAAY,EACZ,SAAS,GAKV,EAAW,EAAE;IACZ,MAAM,oBAAoB,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;IAE/C,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,oBAAoB,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACjD,OAAO,SAAS,CACd,YAAY,EACZ,oBAAoB,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAC1D,CAAC;IACJ,CAAC;IAED,IAAI,oBAAoB,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/C,OAAO,SAAS,CACd,kBAAkB,CAAC,SAAS,CAAC,GAAG,CAAC,EACjC,oBAAoB,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CACxD,CAAC;IACJ,CAAC;IAED,IAAI,oBAAoB,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAChD,OAAO,SAAS,CACd,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,EAClC,oBAAoB,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CACzD,CAAC;IACJ,CAAC;IAED,OAAO,SAAS,CAAC,YAAY,EAAE,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAClE,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,EAC5B,SAAS,EACT,YAAY,EACZ,SAAS,GAKV,EAAW,EAAE;IACZ,IAAI,SAAS,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;QACvC,OAAO,SAAS,CAAC,KAAK,CAAC;IACzB,CAAC;IAED,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,iCAAqB,CAAC,CAAC;IAE/D,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,iBAAiB,CAAC;YACvB,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE;YAC9B,YAAY;YACZ,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC,KAAK,CAAC,OAAO,CAC5B,4BAAgB,EAChB,CAAC,MAAM,EAAE,UAAkB,EAAE,EAAE,CAC7B,IAAA,0BAAc,EACZ,iBAAiB,CAAC;QAChB,UAAU;QACV,YAAY;QACZ,SAAS;KACV,CAAC,CACH,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,2BAA2B,GAAG,CAAC,EACnC,SAAS,EACT,YAAY,EACZ,SAAS,GAKV,EAAW,EAAE;IACZ,MAAM,eAAe,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAE/C,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IACE,eAAe,CAAC,UAAU,CAAC,WAAW,CAAC;QACvC,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC;QACrC,eAAe,CAAC,UAAU,CAAC,UAAU,CAAC,EACtC,CAAC;QACD,OAAO,iBAAiB,CAAC;YACvB,UAAU,EAAE,eAAe;YAC3B,YAAY;YACZ,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IAED,MAAM,UAAU,GACd,SAAS,CAAC,MAAM,KAAK,QAAQ;QAC3B,CAAC,CAAC,kBAAkB,CAAC,SAAS,CAAC,GAAG,CAAC;QACnC,CAAC,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAEzC,OAAO,SAAS,CAAC,UAAU,EAAE,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3D,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,IAAa,EAAE,KAAc,EAAW,EAAE;IAC5D,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IACE,OAAO,IAAI,KAAK,QAAQ;QACxB,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;QACnB,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,EACtB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,IAAI,KAAK,QAAQ;QACxB,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;QAClB,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,EACtB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC3D,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC;IAC9C,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3D,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;IAC9C,CAAC;IAED,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAEK,MAAM,eAAe,GAAG,CAAC,EAC9B,YAAY,EACZ,SAAS,EACT,UAAU,GAKX,EAAuB,EAAE;IACxB,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,cAAc,GAClB,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;QAChE,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;QACnE,IAAI,CAAC;IAEP,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YACpC,EAAE,EAAE,SAAS,CAAC,EAAE;YAChB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,cAAc;SACxB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;QAClC,MAAM,MAAM,GAAG,2BAA2B,CAAC;YACzC,SAAS;YACT,YAAY;YACZ,SAAS;SACV,CAAC,CAAC;QAEH,IAAI,SAAS,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,CAAC;YAEvD,OAAO;gBACL,EAAE,EAAE,SAAS,CAAC,EAAE;gBAChB,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;gBAChC,OAAO,EAAE,MAAM;oBACb,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,SAAS;oBAC7B,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,aAAa;aACpC,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,oBAAoB,CAAC;YACpC,SAAS;YACT,YAAY;YACZ,SAAS;SACV,CAAC,CAAC;QAEH,IAAI,SAAS,CAAC,QAAQ,KAAK,IAAI,IAAI,SAAS,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC/D,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;YAExC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;gBACvE,OAAO;oBACL,EAAE,EAAE,SAAS,CAAC,EAAE;oBAChB,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,iCAAiC,SAAS,CAAC,KAAK,EAAE;iBAC5D,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GACV,SAAS,CAAC,QAAQ,KAAK,IAAI;gBACzB,CAAC,CAAC,YAAY,GAAG,cAAc;gBAC/B,CAAC,CAAC,YAAY,GAAG,cAAc,CAAC;YAEpC,OAAO;gBACL,EAAE,EAAE,SAAS,CAAC,EAAE;gBAChB,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;gBAChC,OAAO,EAAE,MAAM;oBACb,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,QAAQ,IAAI,cAAc,EAAE;oBAC9D,CAAC,CAAC,YAAY,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,QAAQ,IAAI,cAAc,YAAY,YAAY,EAAE;aAClG,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAElE,OAAO;YACL,EAAE,EAAE,SAAS,CAAC,EAAE;YAChB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;YAChC,OAAO,EAAE,MAAM;gBACb,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,QAAQ,eAAe;gBACzD,CAAC,CAAC,YAAY,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,IAAA,0BAAc,EAAC,QAAQ,CAAC,YAAY,IAAA,0BAAc,EAAC,MAAM,CAAC,EAAE;SAChJ,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AA7FW,QAAA,eAAe,mBA6F1B"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runRedisAssertions = exports.runDbAssertions = void 0;
4
+ var dbAssertions_js_1 = require("./dbAssertions.js");
5
+ Object.defineProperty(exports, "runDbAssertions", { enumerable: true, get: function () { return dbAssertions_js_1.runDbAssertions; } });
6
+ var redisAssertions_js_1 = require("./redisAssertions.js");
7
+ Object.defineProperty(exports, "runRedisAssertions", { enumerable: true, get: function () { return redisAssertions_js_1.runRedisAssertions; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/assertions/index.ts"],"names":[],"mappings":";;;AAAA,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AACxB,2DAA0D;AAAjD,wHAAA,kBAAkB,OAAA"}