callman-core 1.34.0 → 1.36.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 (266) hide show
  1. package/ai-packs/feature-policy.md +1 -6
  2. package/ai-packs/pm-api.md +246 -97
  3. package/ai-packs/sandbox-globals.md +6 -5
  4. package/dist/ai/prompts/fragments.d.ts.map +1 -1
  5. package/dist/ai/prompts/fragments.js +0 -1
  6. package/dist/ai/prompts/fragments.js.map +1 -1
  7. package/dist/ai/prompts/unified.js +1 -1
  8. package/dist/ai/prompts/unified.js.map +1 -1
  9. package/dist/ai/types.d.ts +1 -1
  10. package/dist/ai/types.d.ts.map +1 -1
  11. package/dist/ai/types.js +1 -1
  12. package/dist/ai/types.js.map +1 -1
  13. package/dist/index.d.ts +7 -2
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +5 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/runner/requestRunner.d.ts.map +1 -1
  18. package/dist/runner/requestRunner.js +339 -1
  19. package/dist/runner/requestRunner.js.map +1 -1
  20. package/dist/runner/runCollection.d.ts +1 -1
  21. package/dist/runner/runCollection.d.ts.map +1 -1
  22. package/dist/runner/runCollection.js +60 -7
  23. package/dist/runner/runCollection.js.map +1 -1
  24. package/dist/runner/runRequestWithDataset.d.ts.map +1 -1
  25. package/dist/runner/runRequestWithDataset.js +5 -0
  26. package/dist/runner/runRequestWithDataset.js.map +1 -1
  27. package/dist/scenario-runner/adapters/request-executor.d.ts.map +1 -1
  28. package/dist/scenario-runner/adapters/request-executor.js +7 -0
  29. package/dist/scenario-runner/adapters/request-executor.js.map +1 -1
  30. package/dist/scenario-runner/runScenario.d.ts.map +1 -1
  31. package/dist/scenario-runner/runScenario.js +4 -0
  32. package/dist/scenario-runner/runScenario.js.map +1 -1
  33. package/dist/scenario-runner/types.d.ts +11 -0
  34. package/dist/scenario-runner/types.d.ts.map +1 -1
  35. package/dist/script/chain.d.ts +56 -0
  36. package/dist/script/chain.d.ts.map +1 -0
  37. package/dist/script/chain.js +121 -0
  38. package/dist/script/chain.js.map +1 -0
  39. package/dist/script/errors.d.ts.map +1 -1
  40. package/dist/script/errors.js +6 -4
  41. package/dist/script/errors.js.map +1 -1
  42. package/dist/script/executor.d.ts.map +1 -1
  43. package/dist/script/executor.js +298 -64
  44. package/dist/script/executor.js.map +1 -1
  45. package/dist/script/features/collectionVariables.d.ts +4 -4
  46. package/dist/script/features/collectionVariables.d.ts.map +1 -1
  47. package/dist/script/features/collectionVariables.js +20 -11
  48. package/dist/script/features/collectionVariables.js.map +1 -1
  49. package/dist/script/features/environment.d.ts +4 -4
  50. package/dist/script/features/environment.d.ts.map +1 -1
  51. package/dist/script/features/environment.js +20 -11
  52. package/dist/script/features/environment.js.map +1 -1
  53. package/dist/script/features/feature-policy.d.ts +1 -1
  54. package/dist/script/features/feature-policy.d.ts.map +1 -1
  55. package/dist/script/features/feature-policy.js +2 -2
  56. package/dist/script/features/feature-policy.js.map +1 -1
  57. package/dist/script/features/info.d.ts.map +1 -1
  58. package/dist/script/features/info.js +6 -3
  59. package/dist/script/features/info.js.map +1 -1
  60. package/dist/script/features/iterationData.d.ts +12 -0
  61. package/dist/script/features/iterationData.d.ts.map +1 -0
  62. package/dist/script/features/iterationData.js +28 -0
  63. package/dist/script/features/iterationData.js.map +1 -0
  64. package/dist/script/features/legacyPostman.d.ts +14 -0
  65. package/dist/script/features/legacyPostman.d.ts.map +1 -0
  66. package/dist/script/features/legacyPostman.js +106 -0
  67. package/dist/script/features/legacyPostman.js.map +1 -0
  68. package/dist/script/features/log.d.ts +35 -8
  69. package/dist/script/features/log.d.ts.map +1 -1
  70. package/dist/script/features/log.js +343 -27
  71. package/dist/script/features/log.js.map +1 -1
  72. package/dist/script/features/tests.d.ts +7 -8
  73. package/dist/script/features/tests.d.ts.map +1 -1
  74. package/dist/script/features/tests.js +90 -64
  75. package/dist/script/features/tests.js.map +1 -1
  76. package/dist/script/features/timers.d.ts +7 -1
  77. package/dist/script/features/timers.d.ts.map +1 -1
  78. package/dist/script/features/timers.js +17 -5
  79. package/dist/script/features/timers.js.map +1 -1
  80. package/dist/script/features/variables.d.ts +25 -4
  81. package/dist/script/features/variables.d.ts.map +1 -1
  82. package/dist/script/features/variables.js +26 -9
  83. package/dist/script/features/variables.js.map +1 -1
  84. package/dist/script/features/visualizer.d.ts +15 -0
  85. package/dist/script/features/visualizer.d.ts.map +1 -0
  86. package/dist/script/features/visualizer.js +52 -0
  87. package/dist/script/features/visualizer.js.map +1 -0
  88. package/dist/script/isolated-runner.d.ts +4 -1
  89. package/dist/script/isolated-runner.d.ts.map +1 -1
  90. package/dist/script/isolated-runner.js +26 -2
  91. package/dist/script/isolated-runner.js.map +1 -1
  92. package/dist/script/layers.d.ts +46 -0
  93. package/dist/script/layers.d.ts.map +1 -0
  94. package/dist/script/layers.js +52 -0
  95. package/dist/script/layers.js.map +1 -0
  96. package/dist/script/legacy.d.ts +6 -1
  97. package/dist/script/legacy.d.ts.map +1 -1
  98. package/dist/script/legacy.js +15 -5
  99. package/dist/script/legacy.js.map +1 -1
  100. package/dist/script/pm-api-declarations.d.ts +45 -0
  101. package/dist/script/pm-api-declarations.d.ts.map +1 -0
  102. package/dist/script/pm-api-declarations.js +1963 -0
  103. package/dist/script/pm-api-declarations.js.map +1 -0
  104. package/dist/script/pm-api-metadata.d.ts +3 -1
  105. package/dist/script/pm-api-metadata.d.ts.map +1 -1
  106. package/dist/script/pm-api-metadata.js +336 -106
  107. package/dist/script/pm-api-metadata.js.map +1 -1
  108. package/dist/script/pm-api-reference.d.ts.map +1 -1
  109. package/dist/script/pm-api-reference.js +32 -7
  110. package/dist/script/pm-api-reference.js.map +1 -1
  111. package/dist/script/postman/chaiCompat.d.ts +4 -0
  112. package/dist/script/postman/chaiCompat.d.ts.map +1 -0
  113. package/dist/script/postman/chaiCompat.js +176 -0
  114. package/dist/script/postman/chaiCompat.js.map +1 -0
  115. package/dist/script/postman/cookies.d.ts +36 -0
  116. package/dist/script/postman/cookies.d.ts.map +1 -0
  117. package/dist/script/postman/cookies.js +163 -0
  118. package/dist/script/postman/cookies.js.map +1 -0
  119. package/dist/script/postman/modules.d.ts +16 -0
  120. package/dist/script/postman/modules.d.ts.map +1 -0
  121. package/dist/script/postman/modules.js +114 -0
  122. package/dist/script/postman/modules.js.map +1 -0
  123. package/dist/script/postman/proxies.d.ts +13 -0
  124. package/dist/script/postman/proxies.d.ts.map +1 -0
  125. package/dist/script/postman/proxies.js +88 -0
  126. package/dist/script/postman/proxies.js.map +1 -0
  127. package/dist/script/postman/requestAdapter.d.ts +7 -0
  128. package/dist/script/postman/requestAdapter.d.ts.map +1 -0
  129. package/dist/script/postman/requestAdapter.js +223 -0
  130. package/dist/script/postman/requestAdapter.js.map +1 -0
  131. package/dist/script/postman/responseAdapter.d.ts +5 -0
  132. package/dist/script/postman/responseAdapter.d.ts.map +1 -0
  133. package/dist/script/postman/responseAdapter.js +78 -0
  134. package/dist/script/postman/responseAdapter.js.map +1 -0
  135. package/dist/script/postman/runtime.d.ts +22 -0
  136. package/dist/script/postman/runtime.d.ts.map +1 -0
  137. package/dist/script/postman/runtime.js +122 -0
  138. package/dist/script/postman/runtime.js.map +1 -0
  139. package/dist/script/scope.d.ts +5 -1
  140. package/dist/script/scope.d.ts.map +1 -1
  141. package/dist/script/scope.js +47 -5
  142. package/dist/script/scope.js.map +1 -1
  143. package/dist/script/types.d.ts +42 -14
  144. package/dist/script/types.d.ts.map +1 -1
  145. package/dist/script/worker-entry.js +9 -0
  146. package/dist/script/worker-entry.js.map +1 -1
  147. package/dist/script/worker-pool.d.ts +3 -1
  148. package/dist/script/worker-pool.d.ts.map +1 -1
  149. package/dist/script/worker-pool.js +23 -2
  150. package/dist/script/worker-pool.js.map +1 -1
  151. package/dist/templating/generator-metadata.d.ts +1 -0
  152. package/dist/templating/generator-metadata.d.ts.map +1 -1
  153. package/dist/templating/generator-metadata.js +14 -0
  154. package/dist/templating/generator-metadata.js.map +1 -1
  155. package/dist/templating/postman-dynamic-catalog.d.ts +7 -0
  156. package/dist/templating/postman-dynamic-catalog.d.ts.map +1 -0
  157. package/dist/templating/postman-dynamic-catalog.js +126 -0
  158. package/dist/templating/postman-dynamic-catalog.js.map +1 -0
  159. package/dist/templating/postman-generators.d.ts +9 -0
  160. package/dist/templating/postman-generators.d.ts.map +1 -1
  161. package/dist/templating/postman-generators.js +10 -1
  162. package/dist/templating/postman-generators.js.map +1 -1
  163. package/dist/types/index.d.ts +44 -2
  164. package/dist/types/index.d.ts.map +1 -1
  165. package/dist/variables/envStore.d.ts +3 -0
  166. package/dist/variables/envStore.d.ts.map +1 -1
  167. package/dist/variables/envStore.js +5 -0
  168. package/dist/variables/envStore.js.map +1 -1
  169. package/dist/variables/replaceIn.d.ts +10 -0
  170. package/dist/variables/replaceIn.d.ts.map +1 -0
  171. package/dist/variables/replaceIn.js +106 -0
  172. package/dist/variables/replaceIn.js.map +1 -0
  173. package/dist/variables/resolver.d.ts.map +1 -1
  174. package/dist/variables/resolver.js +16 -2
  175. package/dist/variables/resolver.js.map +1 -1
  176. package/dist-cjs/ai/prompts/fragments.js +0 -1
  177. package/dist-cjs/ai/prompts/fragments.js.map +1 -1
  178. package/dist-cjs/ai/prompts/unified.js +1 -1
  179. package/dist-cjs/ai/prompts/unified.js.map +1 -1
  180. package/dist-cjs/ai/types.js +1 -1
  181. package/dist-cjs/ai/types.js.map +1 -1
  182. package/dist-cjs/index.js +23 -5
  183. package/dist-cjs/index.js.map +1 -1
  184. package/dist-cjs/runner/requestRunner.js +339 -1
  185. package/dist-cjs/runner/requestRunner.js.map +1 -1
  186. package/dist-cjs/runner/runCollection.js +60 -7
  187. package/dist-cjs/runner/runCollection.js.map +1 -1
  188. package/dist-cjs/runner/runRequestWithDataset.js +5 -0
  189. package/dist-cjs/runner/runRequestWithDataset.js.map +1 -1
  190. package/dist-cjs/scenario-runner/adapters/request-executor.js +7 -0
  191. package/dist-cjs/scenario-runner/adapters/request-executor.js.map +1 -1
  192. package/dist-cjs/scenario-runner/runScenario.js +4 -0
  193. package/dist-cjs/scenario-runner/runScenario.js.map +1 -1
  194. package/dist-cjs/script/chain.js +126 -0
  195. package/dist-cjs/script/chain.js.map +1 -0
  196. package/dist-cjs/script/errors.js +6 -4
  197. package/dist-cjs/script/errors.js.map +1 -1
  198. package/dist-cjs/script/executor.js +298 -64
  199. package/dist-cjs/script/executor.js.map +1 -1
  200. package/dist-cjs/script/features/collectionVariables.js +20 -11
  201. package/dist-cjs/script/features/collectionVariables.js.map +1 -1
  202. package/dist-cjs/script/features/environment.js +20 -11
  203. package/dist-cjs/script/features/environment.js.map +1 -1
  204. package/dist-cjs/script/features/feature-policy.js +2 -2
  205. package/dist-cjs/script/features/feature-policy.js.map +1 -1
  206. package/dist-cjs/script/features/info.js +6 -3
  207. package/dist-cjs/script/features/info.js.map +1 -1
  208. package/dist-cjs/script/features/iterationData.js +32 -0
  209. package/dist-cjs/script/features/iterationData.js.map +1 -0
  210. package/dist-cjs/script/features/legacyPostman.js +112 -0
  211. package/dist-cjs/script/features/legacyPostman.js.map +1 -0
  212. package/dist-cjs/script/features/log.js +347 -28
  213. package/dist-cjs/script/features/log.js.map +1 -1
  214. package/dist-cjs/script/features/tests.js +90 -64
  215. package/dist-cjs/script/features/tests.js.map +1 -1
  216. package/dist-cjs/script/features/timers.js +17 -5
  217. package/dist-cjs/script/features/timers.js.map +1 -1
  218. package/dist-cjs/script/features/variables.js +26 -9
  219. package/dist-cjs/script/features/variables.js.map +1 -1
  220. package/dist-cjs/script/features/visualizer.js +56 -0
  221. package/dist-cjs/script/features/visualizer.js.map +1 -0
  222. package/dist-cjs/script/isolated-runner.js +26 -2
  223. package/dist-cjs/script/isolated-runner.js.map +1 -1
  224. package/dist-cjs/script/layers.js +57 -0
  225. package/dist-cjs/script/layers.js.map +1 -0
  226. package/dist-cjs/script/legacy.js +20 -6
  227. package/dist-cjs/script/legacy.js.map +1 -1
  228. package/dist-cjs/script/pm-api-declarations.js +1969 -0
  229. package/dist-cjs/script/pm-api-declarations.js.map +1 -0
  230. package/dist-cjs/script/pm-api-metadata.js +336 -106
  231. package/dist-cjs/script/pm-api-metadata.js.map +1 -1
  232. package/dist-cjs/script/pm-api-reference.js +32 -7
  233. package/dist-cjs/script/pm-api-reference.js.map +1 -1
  234. package/dist-cjs/script/postman/chaiCompat.js +181 -0
  235. package/dist-cjs/script/postman/chaiCompat.js.map +1 -0
  236. package/dist-cjs/script/postman/cookies.js +170 -0
  237. package/dist-cjs/script/postman/cookies.js.map +1 -0
  238. package/dist-cjs/script/postman/modules.js +123 -0
  239. package/dist-cjs/script/postman/modules.js.map +1 -0
  240. package/dist-cjs/script/postman/proxies.js +93 -0
  241. package/dist-cjs/script/postman/proxies.js.map +1 -0
  242. package/dist-cjs/script/postman/requestAdapter.js +227 -0
  243. package/dist-cjs/script/postman/requestAdapter.js.map +1 -0
  244. package/dist-cjs/script/postman/responseAdapter.js +83 -0
  245. package/dist-cjs/script/postman/responseAdapter.js.map +1 -0
  246. package/dist-cjs/script/postman/runtime.js +132 -0
  247. package/dist-cjs/script/postman/runtime.js.map +1 -0
  248. package/dist-cjs/script/scope.js +47 -5
  249. package/dist-cjs/script/scope.js.map +1 -1
  250. package/dist-cjs/script/worker-entry.js +9 -0
  251. package/dist-cjs/script/worker-entry.js.map +1 -1
  252. package/dist-cjs/script/worker-pool.js +23 -2
  253. package/dist-cjs/script/worker-pool.js.map +1 -1
  254. package/dist-cjs/templating/generator-metadata.js +15 -1
  255. package/dist-cjs/templating/generator-metadata.js.map +1 -1
  256. package/dist-cjs/templating/postman-dynamic-catalog.js +129 -0
  257. package/dist-cjs/templating/postman-dynamic-catalog.js.map +1 -0
  258. package/dist-cjs/templating/postman-generators.js +13 -3
  259. package/dist-cjs/templating/postman-generators.js.map +1 -1
  260. package/dist-cjs/variables/envStore.js +5 -0
  261. package/dist-cjs/variables/envStore.js.map +1 -1
  262. package/dist-cjs/variables/replaceIn.js +111 -0
  263. package/dist-cjs/variables/replaceIn.js.map +1 -0
  264. package/dist-cjs/variables/resolver.js +16 -2
  265. package/dist-cjs/variables/resolver.js.map +1 -1
  266. package/package.json +12 -2
@@ -2,20 +2,11 @@
2
2
  // pm.test collector — runs each callback as a fire-and-forget Promise that
3
3
  // resolves to PASS/FAIL/SKIP and surfaces the result via `flush()`.
4
4
  //
5
- // Two collection-runner extensions:
6
- // 1. selectedTestNames — when present, only tests whose name appears in
7
- // the set actually execute. Used for kafka-deferred re-runs where the
8
- // caller wants to retry only previously-pending tests.
9
- // 2. allowDeferredKafkaTests — when true, a thrown
10
- // PendingKafkaDependencyError is caught and routed to deferredTestNames
11
- // (instead of being recorded as a FAIL). The caller re-invokes the
12
- // script later with kafka data populated.
13
- // 3. DisabledFeatureDependencyError is recognized regardless and produces
14
- // a SKIP test result with a descriptive error message.
5
+ // DisabledFeatureDependencyError is recognized and produces a SKIP test
6
+ // result with a descriptive error message.
15
7
  Object.defineProperty(exports, "__esModule", { value: true });
16
8
  exports.buildTestCollector = void 0;
17
9
  const feature_policy_js_1 = require("./feature-policy.js");
18
- const kafka_js_1 = require("./kafka.js");
19
10
  // Errors thrown inside the vm context cross a realm boundary, which means
20
11
  // `error instanceof Error` from the host's perspective is FALSE even when
21
12
  // the value has a real .message property. Read the message structurally
@@ -33,7 +24,7 @@ const extractErrorMessage = (error) => {
33
24
  return String(error);
34
25
  };
35
26
  // Cross-realm error name extraction — used to recognize symbolically named
36
- // errors like PendingKafkaDependencyError that may arrive as cross-realm
27
+ // errors (DisabledFeatureDependencyError) that may arrive as cross-realm
37
28
  // values failing instanceof checks.
38
29
  const extractErrorName = (error) => {
39
30
  if (error instanceof Error) {
@@ -47,17 +38,13 @@ const extractErrorName = (error) => {
47
38
  }
48
39
  return "";
49
40
  };
50
- const isPendingKafkaError = (error) => error instanceof kafka_js_1.PendingKafkaDependencyError ||
51
- extractErrorName(error) === "PendingKafkaDependencyError";
52
41
  const isDisabledFeatureError = (error) => {
53
42
  if (error instanceof feature_policy_js_1.DisabledFeatureDependencyError) {
54
43
  return { feature: error.feature };
55
44
  }
56
45
  if (extractErrorName(error) === "DisabledFeatureDependencyError") {
57
46
  const feature = error.feature;
58
- if (feature === "database" || feature === "kafka") {
59
- return { feature };
60
- }
47
+ void feature;
61
48
  return { feature: "database" };
62
49
  }
63
50
  return null;
@@ -66,70 +53,110 @@ const normalizeName = (name) => {
66
53
  const trimmed = String(name ?? "").trim();
67
54
  return trimmed || "Unnamed test";
68
55
  };
69
- const buildTestCollector = (_stage, options = {}) => {
56
+ const buildTestCollector = (_stage, _options = {}) => {
70
57
  const orderedResults = [];
71
58
  const finalResults = [];
72
- const deferredTestNames = [];
73
59
  const pending = [];
74
- const selected = options.selectedTestNames ? new Set(options.selectedTestNames) : null;
75
60
  let activeCallbackCount = 0;
76
- const test = (name, fn) => {
61
+ const record = (index, name, error) => {
62
+ const disabled = isDisabledFeatureError(error);
63
+ if (disabled) {
64
+ orderedResults[index] = {
65
+ name,
66
+ status: "SKIP",
67
+ error: "Skipped because database execution is disabled for this collection runner.",
68
+ };
69
+ return;
70
+ }
71
+ orderedResults[index] = {
72
+ name,
73
+ status: "FAIL",
74
+ error: extractErrorMessage(error),
75
+ };
76
+ };
77
+ const isThenable = (value) => value !== null &&
78
+ (typeof value === "object" || typeof value === "function") &&
79
+ typeof value.then === "function";
80
+ // Postman runs the callback SYNCHRONOUSLY at the pm.test() call, so code
81
+ // after it observes whatever the test did; an async callback (returns a
82
+ // Promise) or a `done` callback (`function (done) {…}`) is tracked and
83
+ // awaited at flush time. The result keeps the call order either way.
84
+ const test = ((name, fn) => {
77
85
  const normalizedName = normalizeName(name);
78
- if (selected && !selected.has(normalizedName)) {
86
+ const resultIndex = orderedResults.push(null) - 1;
87
+ const pass = () => {
88
+ orderedResults[resultIndex] = { name: normalizedName, status: "PASS" };
89
+ };
90
+ if (typeof fn !== "function") {
91
+ record(resultIndex, normalizedName, new Error("pm.test requires a callback function"));
79
92
  return Promise.resolve();
80
93
  }
81
- const resultIndex = orderedResults.push(null) - 1;
82
- const task = Promise.resolve()
83
- .then(async () => {
84
- if (typeof fn !== "function") {
85
- throw new Error("pm.test requires a callback function");
94
+ activeCallbackCount += 1;
95
+ let task;
96
+ try {
97
+ if (fn.length > 0) {
98
+ // done-callback style.
99
+ task = new Promise((resolve) => {
100
+ let finished = false;
101
+ const done = (error) => {
102
+ if (finished)
103
+ return;
104
+ finished = true;
105
+ activeCallbackCount = Math.max(0, activeCallbackCount - 1);
106
+ if (error) {
107
+ record(resultIndex, normalizedName, error);
108
+ }
109
+ else {
110
+ pass();
111
+ }
112
+ resolve();
113
+ };
114
+ try {
115
+ fn(done);
116
+ }
117
+ catch (error) {
118
+ done(error ?? new Error("Test failed"));
119
+ }
120
+ });
86
121
  }
87
- activeCallbackCount += 1;
88
- try {
89
- await fn();
122
+ else {
123
+ const out = fn();
124
+ if (isThenable(out)) {
125
+ task = Promise.resolve(out).then(() => {
126
+ activeCallbackCount = Math.max(0, activeCallbackCount - 1);
127
+ pass();
128
+ }, (error) => {
129
+ activeCallbackCount = Math.max(0, activeCallbackCount - 1);
130
+ record(resultIndex, normalizedName, error);
131
+ });
132
+ }
133
+ else {
134
+ activeCallbackCount = Math.max(0, activeCallbackCount - 1);
135
+ pass();
136
+ task = Promise.resolve();
137
+ }
90
138
  }
91
- finally {
92
- activeCallbackCount = Math.max(0, activeCallbackCount - 1);
93
- }
94
- orderedResults[resultIndex] = {
95
- name: normalizedName,
96
- status: "PASS",
97
- };
98
- })
99
- .catch((error) => {
100
- const disabled = isDisabledFeatureError(error);
101
- if (disabled) {
102
- orderedResults[resultIndex] = {
103
- name: normalizedName,
104
- status: "SKIP",
105
- error: disabled.feature === "database"
106
- ? "Skipped because database execution is disabled for this collection runner."
107
- : "Skipped because Kafka execution is disabled for this collection runner.",
108
- };
109
- return;
110
- }
111
- if (options.allowDeferredKafkaTests && isPendingKafkaError(error)) {
112
- orderedResults[resultIndex] = null;
113
- deferredTestNames.push(normalizedName);
114
- return;
115
- }
116
- orderedResults[resultIndex] = {
117
- name: normalizedName,
118
- status: "FAIL",
119
- error: extractErrorMessage(error),
120
- };
121
- });
139
+ }
140
+ catch (error) {
141
+ activeCallbackCount = Math.max(0, activeCallbackCount - 1);
142
+ record(resultIndex, normalizedName, error);
143
+ task = Promise.resolve();
144
+ }
122
145
  pending.push(task);
123
146
  return task;
124
- };
147
+ });
148
+ // pm.test.skip(name[, fn]) — recorded as SKIP, the callback never runs.
125
149
  const skip = (name, reason) => {
126
150
  const result = {
127
151
  name: normalizeName(name),
128
152
  status: "SKIP",
129
- ...(reason ? { error: reason } : {}),
153
+ ...(typeof reason === "string" && reason ? { error: reason } : {}),
130
154
  };
131
155
  orderedResults.push(result);
132
156
  };
157
+ // pm.test.index() — how many tests the script has recorded so far.
158
+ const index = () => orderedResults.length;
159
+ Object.assign(test, { skip, index });
133
160
  const flush = async () => {
134
161
  await Promise.allSettled(pending);
135
162
  for (const entry of orderedResults) {
@@ -142,7 +169,6 @@ const buildTestCollector = (_stage, options = {}) => {
142
169
  test,
143
170
  skip,
144
171
  testResults: finalResults,
145
- deferredTestNames,
146
172
  flush,
147
173
  isInsideCallback: () => activeCallbackCount > 0,
148
174
  };
@@ -1 +1 @@
1
- {"version":3,"file":"tests.js","sourceRoot":"","sources":["../../../src/script/features/tests.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tests.js","sourceRoot":"","sources":["../../../src/script/features/tests.ts"],"names":[],"mappings":"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"}
@@ -32,7 +32,7 @@ const clampDelay = (raw) => {
32
32
  return 0;
33
33
  return Math.min(n, MAX_TIMER_DELAY_MS);
34
34
  };
35
- const buildTimerFeature = () => {
35
+ const buildTimerFeature = (onError) => {
36
36
  const handles = new Map();
37
37
  let nextId = 1;
38
38
  let totalCreated = 0;
@@ -86,8 +86,13 @@ const buildTimerFeature = () => {
86
86
  // to the executor's catch via Promise rejection. A timer
87
87
  // callback that throws after the script's main promise has
88
88
  // resolved is logged but doesn't blow up the host.
89
- // eslint-disable-next-line no-console
90
- console.error("Script timer callback threw:", error);
89
+ if (onError) {
90
+ onError("timeout", error);
91
+ }
92
+ else {
93
+ // eslint-disable-next-line no-console
94
+ console.error("Script timer callback threw:", error);
95
+ }
91
96
  }
92
97
  }, ms);
93
98
  handles.set(id, { hostId, kind: "timeout" });
@@ -121,8 +126,13 @@ const buildTimerFeature = () => {
121
126
  handler(...args);
122
127
  }
123
128
  catch (error) {
124
- // eslint-disable-next-line no-console
125
- console.error("Script interval callback threw:", error);
129
+ if (onError) {
130
+ onError("interval", error);
131
+ }
132
+ else {
133
+ // eslint-disable-next-line no-console
134
+ console.error("Script interval callback threw:", error);
135
+ }
126
136
  }
127
137
  }, ms);
128
138
  handles.set(id, { hostId, kind: "interval" });
@@ -136,6 +146,8 @@ const buildTimerFeature = () => {
136
146
  return;
137
147
  clear(numeric);
138
148
  },
149
+ setImmediate: (handler, ...args) => api.setTimeout(handler, 0, ...args),
150
+ clearImmediate: (id) => api.clearTimeout(id),
139
151
  };
140
152
  const dispose = () => {
141
153
  if (disposed)
@@ -1 +1 @@
1
- {"version":3,"file":"timers.js","sourceRoot":"","sources":["../../../src/script/features/timers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"timers.js","sourceRoot":"","sources":["../../../src/script/features/timers.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,7 @@
18
18
  Object.defineProperty(exports, "__esModule", { value: true });
19
19
  exports.buildVariablesApi = void 0;
20
20
  const resolver_js_1 = require("../../variables/resolver.js");
21
+ const replaceIn_js_1 = require("../../variables/replaceIn.js");
21
22
  const stringifyInput = (value) => {
22
23
  if (value === undefined || value === null) {
23
24
  return "";
@@ -28,15 +29,22 @@ const buildVariablesApi = (environment, globals, options = {}) => {
28
29
  // Local (request-scoped) overlay. Writes via `pm.variables.set` land
29
30
  // here so they take precedence over env / globals for subsequent reads
30
31
  // in the same script execution, without polluting persistent state.
31
- const local = {};
32
+ const local = { ...(options.local ?? {}) };
33
+ // Values as the script wrote them (numbers, objects…) — `get` returns them
34
+ // unchanged inside the run; `local` is the string form handed back to hosts.
35
+ const localNative = {};
32
36
  const collection = options.collectionVariables ?? {};
33
- // Precedence on read: local > collection > environment > globals.
34
- // This mirrors Postman's documented order.
37
+ const iteration = options.iterationData ?? {};
38
+ // Precedence on read: local > environment > collection > globals —
39
+ // Postman's documented order.
40
+ const live = options.live ?? {};
35
41
  const readMerged = () => ({
36
- ...globals,
37
- ...environment,
38
- ...collection,
42
+ ...(live.globals ? live.globals() : globals),
43
+ ...(live.collection ? live.collection() : collection),
44
+ ...(live.environment ? live.environment() : environment),
45
+ ...iteration,
39
46
  ...local,
47
+ ...localNative,
40
48
  });
41
49
  const resolve = (input) => (0, resolver_js_1.resolveTemplate)(stringifyInput(input), { env: readMerged() });
42
50
  return {
@@ -54,21 +62,30 @@ const buildVariablesApi = (environment, globals, options = {}) => {
54
62
  const merged = readMerged();
55
63
  return merged[normalisedKey];
56
64
  },
57
- set: (key, value) => {
65
+ set: (key, value, _type) => {
58
66
  const normalisedKey = String(key ?? "").trim();
59
67
  if (!normalisedKey)
60
68
  return;
61
- local[normalisedKey] = stringifyInput(value);
69
+ local[normalisedKey] = typeof value === "object" && value !== null ? JSON.stringify(value) : stringifyInput(value);
70
+ localNative[normalisedKey] = value;
62
71
  },
63
72
  unset: (key) => {
64
73
  const normalisedKey = String(key ?? "").trim();
65
74
  if (!normalisedKey)
66
75
  return;
67
76
  delete local[normalisedKey];
77
+ delete localNative[normalisedKey];
78
+ },
79
+ clear: () => {
80
+ for (const key of Object.keys(local))
81
+ delete local[key];
82
+ for (const key of Object.keys(localNative))
83
+ delete localNative[key];
68
84
  },
69
85
  toObject: () => readMerged(),
70
86
  resolve,
71
- replaceIn: resolve,
87
+ replaceIn: (input) => (0, replaceIn_js_1.replaceInValue)(input, (0, replaceIn_js_1.lookupInRecords)(readMerged())),
88
+ localSnapshot: () => ({ ...local }),
72
89
  };
73
90
  };
74
91
  exports.buildVariablesApi = buildVariablesApi;
@@ -1 +1 @@
1
- {"version":3,"file":"variables.js","sourceRoot":"","sources":["../../../src/script/features/variables.ts"],"names":[],"mappings":";AAAA,oDAAoD;AACpD,EAAE;AACF,oCAAoC;AACpC,uEAAuE;AACvE,mEAAmE;AACnE,wEAAwE;AACxE,2EAA2E;AAC3E,yDAAyD;AACzD,2EAA2E;AAC3E,wEAAwE;AACxE,0EAA0E;AAC1E,EAAE;AACF,uEAAuE;AACvE,uEAAuE;AACvE,qEAAqE;AACrE,0CAA0C;;;AAE1C,6DAA8D;AAY9D,MAAM,cAAc,GAAG,CAAC,KAAc,EAAU,EAAE;IAChD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1C,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC,CAAC;AAEK,MAAM,iBAAiB,GAAG,CAC/B,WAAmC,EACnC,OAA+B,EAC/B,UAA4D,EAAE,EAChD,EAAE;IAChB,qEAAqE;IACrE,uEAAuE;IACvE,oEAAoE;IACpE,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,MAAM,UAAU,GAAG,OAAO,CAAC,mBAAmB,IAAI,EAAE,CAAC;IAErD,kEAAkE;IAClE,2CAA2C;IAC3C,MAAM,UAAU,GAAG,GAA2B,EAAE,CAAC,CAAC;QAChD,GAAG,OAAO;QACV,GAAG,WAAW;QACd,GAAG,UAAU;QACb,GAAG,KAAK;KACT,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,CAAC,KAAc,EAAU,EAAE,CACzC,IAAA,6BAAe,EAAC,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IAEhE,OAAO;QACL,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE;YACX,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC/C,IAAI,CAAC,aAAa;gBAAE,OAAO,KAAK,CAAC;YACjC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;YAC5B,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QACrE,CAAC;QACD,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE;YACX,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC/C,IAAI,CAAC,aAAa;gBAAE,OAAO,SAAS,CAAC;YACrC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;YAC5B,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC;QAC/B,CAAC;QACD,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAClB,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC/C,IAAI,CAAC,aAAa;gBAAE,OAAO;YAC3B,KAAK,CAAC,aAAa,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QAC/C,CAAC;QACD,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE;YACb,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC/C,IAAI,CAAC,aAAa;gBAAE,OAAO;YAC3B,OAAO,KAAK,CAAC,aAAa,CAAC,CAAC;QAC9B,CAAC;QACD,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE;QAC5B,OAAO;QACP,SAAS,EAAE,OAAO;KACnB,CAAC;AACJ,CAAC,CAAC;AAlDW,QAAA,iBAAiB,qBAkD5B"}
1
+ {"version":3,"file":"variables.js","sourceRoot":"","sources":["../../../src/script/features/variables.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ // pm.visualizer — Postman's "Visualize" hook. A post-response/test script
3
+ // calls `pm.visualizer.set(template, data, options)` with a Handlebars HTML
4
+ // template and its data; the HOST renders the template (sandboxed) in a
5
+ // Visualize tab. Inside a visualizer template, `pm.getData(cb)` hands the data
6
+ // back to the template's own script — that part runs in the host's renderer,
7
+ // here `pm.getData` only exists so a copied script does not throw.
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.buildVisualizerFeature = void 0;
10
+ const MAX_TEMPLATE_BYTES = 2 * 1024 * 1024;
11
+ const cloneJson = (value) => {
12
+ if (value === undefined)
13
+ return undefined;
14
+ try {
15
+ return JSON.parse(JSON.stringify(value));
16
+ }
17
+ catch {
18
+ throw new Error("pm.visualizer.set: data must be JSON-serializable");
19
+ }
20
+ };
21
+ const buildVisualizerFeature = () => {
22
+ let current;
23
+ return {
24
+ api: {
25
+ set: (template, data, options) => {
26
+ if (typeof template !== "string") {
27
+ throw new TypeError("pm.visualizer.set: template must be a string");
28
+ }
29
+ if (data !== undefined && (data === null || typeof data !== "object")) {
30
+ throw new TypeError("pm.visualizer.set: data must be an object");
31
+ }
32
+ if (options !== undefined && (options === null || typeof options !== "object")) {
33
+ throw new TypeError("pm.visualizer.set: options must be an object");
34
+ }
35
+ if (template.length > MAX_TEMPLATE_BYTES) {
36
+ throw new RangeError("pm.visualizer.set: template is too large (2 MB limit)");
37
+ }
38
+ current = {
39
+ template,
40
+ data: cloneJson(data) ?? {},
41
+ options: cloneJson(options) ?? {},
42
+ };
43
+ },
44
+ clear: () => {
45
+ current = undefined;
46
+ },
47
+ },
48
+ getData: (callback) => {
49
+ if (typeof callback === "function")
50
+ callback(null, current?.data ?? {});
51
+ },
52
+ payload: () => current,
53
+ };
54
+ };
55
+ exports.buildVisualizerFeature = buildVisualizerFeature;
56
+ //# sourceMappingURL=visualizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visualizer.js","sourceRoot":"","sources":["../../../src/script/features/visualizer.ts"],"names":[],"mappings":";AAAA,0EAA0E;AAC1E,4EAA4E;AAC5E,wEAAwE;AACxE,+EAA+E;AAC/E,6EAA6E;AAC7E,mEAAmE;;;AAiBnE,MAAM,kBAAkB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAE3C,MAAM,SAAS,GAAG,CAAC,KAAc,EAAW,EAAE;IAC5C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;AACH,CAAC,CAAC;AAEK,MAAM,sBAAsB,GAAG,GAAsB,EAAE;IAC5D,IAAI,OAA4C,CAAC;IACjD,OAAO;QACL,GAAG,EAAE;YACH,GAAG,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;gBAC/B,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;oBACjC,MAAM,IAAI,SAAS,CAAC,8CAA8C,CAAC,CAAC;gBACtE,CAAC;gBACD,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;oBACtE,MAAM,IAAI,SAAS,CAAC,2CAA2C,CAAC,CAAC;gBACnE,CAAC;gBACD,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,CAAC,EAAE,CAAC;oBAC/E,MAAM,IAAI,SAAS,CAAC,8CAA8C,CAAC,CAAC;gBACtE,CAAC;gBACD,IAAI,QAAQ,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;oBACzC,MAAM,IAAI,UAAU,CAAC,uDAAuD,CAAC,CAAC;gBAChF,CAAC;gBACD,OAAO,GAAG;oBACR,QAAQ;oBACR,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE;oBAC3B,OAAO,EAAG,SAAS,CAAC,OAAO,CAAyC,IAAI,EAAE;iBAC3E,CAAC;YACJ,CAAC;YACD,KAAK,EAAE,GAAG,EAAE;gBACV,OAAO,GAAG,SAAS,CAAC;YACtB,CAAC;SACF;QACD,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE;YACpB,IAAI,OAAO,QAAQ,KAAK,UAAU;gBAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO;KACvB,CAAC;AACJ,CAAC,CAAC;AAhCW,QAAA,sBAAsB,0BAgCjC"}
@@ -72,8 +72,13 @@ const toWorkerCapabilities = (capabilities) => {
72
72
  const extensions = capabilities.extensions ?? {};
73
73
  return {
74
74
  ...capabilities,
75
+ // The jar is a set of functions — workers get the cookie snapshot only and
76
+ // fall back to the in-memory jar.
77
+ cookies: capabilities.cookies?.snapshot ? { snapshot: capabilities.cookies.snapshot } : undefined,
75
78
  extensions: {
76
- log: extensions.log,
79
+ // `{ onEntry }` carries a function — the worker always streams entries
80
+ // back over the port instead, the host re-emits them to `onEntry`.
81
+ log: extensions.log ? true : extensions.log,
77
82
  node: extensions.node,
78
83
  cryptojs: extensions.cryptojs,
79
84
  variables: extensions.variables,
@@ -123,10 +128,13 @@ const runScriptIsolated = async (input, options = {}) => {
123
128
  ...input,
124
129
  capabilities: (0, exports.toWorkerCapabilities)(input.capabilities),
125
130
  };
131
+ const logOption = input.capabilities.extensions?.log;
132
+ const onLog = options.onLog ?? (typeof logOption === "object" && logOption ? logOption.onEntry : undefined);
126
133
  if (options.pool) {
127
134
  return options.pool.run(workerInput, {
128
135
  onSendRequest: options.onSendRequest,
129
136
  signal: options.signal,
137
+ onLog,
130
138
  });
131
139
  }
132
140
  // Lazy node-builtin imports — only reached in the CJS Node hosts, never in
@@ -137,11 +145,15 @@ const runScriptIsolated = async (input, options = {}) => {
137
145
  return await new Promise((resolve) => {
138
146
  let settled = false;
139
147
  let worker;
140
- const finish = (result) => {
148
+ const streamedLogs = [];
149
+ const finish = (rawResult) => {
141
150
  if (settled) {
142
151
  return;
143
152
  }
144
153
  settled = true;
154
+ const result = !rawResult.success && rawResult.logs.length === 0 && streamedLogs.length > 0
155
+ ? { ...rawResult, logs: streamedLogs }
156
+ : rawResult;
145
157
  clearTimeout(killTimer);
146
158
  options.signal?.removeEventListener?.("abort", onAbort);
147
159
  void worker?.terminate();
@@ -176,6 +188,18 @@ const runScriptIsolated = async (input, options = {}) => {
176
188
  finish(message.result);
177
189
  return;
178
190
  }
191
+ if (message.type === "log") {
192
+ const entry = message.entry;
193
+ if (streamedLogs.length < 1001)
194
+ streamedLogs.push(entry);
195
+ try {
196
+ onLog?.(entry);
197
+ }
198
+ catch {
199
+ // a broken sink must not affect the script
200
+ }
201
+ return;
202
+ }
179
203
  if (message.type === "sendRequest") {
180
204
  const id = message.id;
181
205
  const requestInput = message.input;
@@ -1 +1 @@
1
- {"version":3,"file":"isolated-runner.js","sourceRoot":"","sources":["../../src/script/isolated-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"isolated-runner.js","sourceRoot":"","sources":["../../src/script/isolated-runner.ts"],"names":[],"mappings":";AAAA,iCAAiC;AACjC,EAAE;AACF,0EAA0E;AAC1E,8EAA8E;AAC9E,gFAAgF;AAChF,gFAAgF;AAChF,gFAAgF;AAChF,+EAA+E;AAC/E,EAAE;AACF,sEAAsE;AACtE,6EAA6E;AAC7E,gFAAgF;AAChF,8DAA8D;AAC9D,EAAE;AACF,4EAA4E;AAC5E,yEAAyE;AACzE,6EAA6E;AAC7E,8DAA8D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE9D,4EAA4E;AAC5E,gFAAgF;AAChF,8EAA8E;AAC9E,8EAA8E;AAC9E,6EAA6E;AAC7E,iDAAiD;AACjD,+CAA8C;AAC9C,2CAAkD;AAWlD,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAClC,+EAA+E;AAC/E,2EAA2E;AAC3E,kEAAkE;AAClE,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAiBlC,2EAA2E;AAC3E,6EAA6E;AAC7E,yEAAyE;AAClE,MAAM,oBAAoB,GAAG,CAAC,YAAgC,EAAsB,EAAE;IAC3F,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,IAAI,EAAE,CAAC;IACjD,OAAO;QACL,GAAG,YAAY;QACf,2EAA2E;QAC3E,kCAAkC;QAClC,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;QACjG,UAAU,EAAE;YACV,uEAAuE;YACvE,mEAAmE;YACnE,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG;YAC3C,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,wEAAwE;YACxE,MAAM,EAAE,OAAO,UAAU,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM;SACzE;KACF,CAAC;AACJ,CAAC,CAAC;AAnBW,QAAA,oBAAoB,wBAmB/B;AAEF,MAAM,mBAAmB,GAAG,CAC1B,KAAyB,EACzB,OAAe,EACf,KAAe,EACM,EAAE,CAAC,CAAC;IACzB,OAAO,EAAE,KAAK;IACd,KAAK,EACH,OAAO,KAAK,KAAK,WAAW;QAC1B,CAAC,CAAC,IAAA,+BAAmB,EAAC,KAAK,CAAC,KAAK,IAAI,QAAQ,EAAE,KAAK,CAAC;QACrD,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;IAC9F,WAAW,EAAE,EAAE;IACf,iBAAiB,EAAE,EAAE;IACrB,IAAI,EAAE,EAAE;IACR,cAAc,EAAE,KAAK;CACtB,CAAC,CAAC;AAEI,MAAM,iBAAiB,GAAG,KAAK,EACpC,KAAyB,EACzB,UAAoC,EAAE,EACR,EAAE;IAChC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,kBAAkB,CAAC;IAExD,6EAA6E;IAC7E,6EAA6E;IAC7E,uEAAuE;IACvE,4EAA4E;IAC5E,yEAAyE;IACzE,wEAAwE;IACxE,yEAAyE;IACzE,mCAAmC;IACnC,MAAM,SAAS,GAAG,IAAI,CAAC,0DAA0D,CAEpE,CAAC;IAEd,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,IAAA,2BAAa,EAClB,OAAO,CAAC,aAAa;YACnB,CAAC,CAAC;gBACE,GAAG,KAAK;gBACR,YAAY,EAAE;oBACZ,GAAG,KAAK,CAAC,YAAY;oBACrB,UAAU,EAAE;wBACV,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,IAAI,EAAE,CAAC;wBACxC,WAAW,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,EAAE;qBAChD;iBACF;aACF;YACH,CAAC,CAAC,KAAK,CACV,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAuB;QACtC,GAAG,KAAK;QACR,YAAY,EAAE,IAAA,4BAAoB,EAAC,KAAK,CAAC,YAAY,CAAC;KACvD,CAAC;IAEF,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC;IACrD,MAAM,KAAK,GACT,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAEhG,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE;YACnC,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED,2EAA2E;IAC3E,kDAAkD;IAClD,MAAM,EAAE,MAAM,EAAE,GAAG,wDAAa,qBAAqB,GAAC,CAAC;IACvD,MAAM,EAAE,IAAI,EAAE,GAAG,wDAAa,WAAW,GAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;IAEtD,OAAO,MAAM,IAAI,OAAO,CAAsB,CAAC,OAAO,EAAE,EAAE;QACxD,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,MAAwD,CAAC;QAC7D,MAAM,YAAY,GAAqB,EAAE,CAAC;QAE1C,MAAM,MAAM,GAAG,CAAC,SAA8B,EAAQ,EAAE;YACtD,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO;YACT,CAAC;YACD,OAAO,GAAG,IAAI,CAAC;YACf,MAAM,MAAM,GACV,CAAC,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC;gBAC1E,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE;gBACtC,CAAC,CAAC,SAAS,CAAC;YAChB,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,OAAO,CAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACxD,KAAK,MAAM,EAAE,SAAS,EAAE,CAAC;YACzB,OAAO,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC,CAAC;QAEF,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YAChC,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,0BAA0B,SAAS,IAAI,CAAC,CAAC,CAAC;QAC9E,CAAC,EAAE,SAAS,GAAG,mBAAmB,CAAC,CAAC;QAEpC,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,0BAA0B,CAAC,CAAC,CAAC;QACjE,CAAC,CAAC;QAEF,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;YAC5B,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,0BAA0B,CAAC,CAAC,CAAC;YAChE,OAAO;QACT,CAAC;QACD,OAAO,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAErE,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE;gBAC9B,UAAU,EAAE;oBACV,KAAK,EAAE,WAAW;oBAClB,iBAAiB,EAAE,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;iBAClD;aACF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,+BAA+B,EAAE,KAAK,CAAC,CAAC,CAAC;YAC3E,OAAO;QACT,CAAC;QAED,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAiD,EAAE,EAAE;YACzE,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC5B,MAAM,CAAC,OAAO,CAAC,MAA6B,CAAC,CAAC;gBAC9C,OAAO;YACT,CAAC;YACD,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAuB,CAAC;gBAC9C,IAAI,YAAY,CAAC,MAAM,GAAG,IAAI;oBAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACzD,IAAI,CAAC;oBACH,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC;gBACjB,CAAC;gBAAC,MAAM,CAAC;oBACP,2CAA2C;gBAC7C,CAAC;gBACD,OAAO;YACT,CAAC;YACD,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;gBACnC,MAAM,EAAE,GAAG,OAAO,CAAC,EAAY,CAAC;gBAChC,MAAM,YAAY,GAAG,OAAO,CAAC,KAA2C,CAAC;gBACzE,KAAK,CAAC,KAAK,IAAI,EAAE;oBACf,IAAI,CAAC;wBACH,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;4BAC3B,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;wBACtE,CAAC;wBACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;wBACzD,IAAI,CAAC,OAAO,EAAE,CAAC;4BACb,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;wBAC1E,CAAC;oBACH,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,IAAI,CAAC,OAAO,EAAE,CAAC;4BACb,MAAM,CAAC,WAAW,CAAC;gCACjB,IAAI,EAAE,mBAAmB;gCACzB,EAAE;gCACF,EAAE,EAAE,KAAK;gCACT,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;6BAC9D,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC3B,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,uBAAuB,EAAE,KAAK,CAAC,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,2CAA2C,IAAI,GAAG,CAAC,CAAC,CAAC;YACzF,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AA5JW,QAAA,iBAAiB,qBA4J5B"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ // Collection- and folder-level scripts ("layers").
3
+ //
4
+ // Postman runs a collection's scripts and every enclosing folder's scripts
5
+ // around each request, in addition to — never instead of — the request's own:
6
+ //
7
+ // pre-request: collection → folder (root → leaf) → request
8
+ // post-response: collection → folder (root → leaf) → request
9
+ // tests: collection → folder (root → leaf) → request
10
+ //
11
+ // `buildScriptLayers` turns a collection, its folders and a request's folder
12
+ // into that ordered chain. Every host (desktop, runner, CLI, MCP) calls this
13
+ // one helper so the order can never drift between them.
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.describeScriptLayer = exports.buildScriptLayers = void 0;
16
+ const hasAnyScript = (scripts) => Boolean(scripts?.preRequest?.trim() || scripts?.postResponse?.trim() || scripts?.tests?.trim());
17
+ const toLayer = (scope, source) => ({
18
+ scope,
19
+ ...(source.id ? { id: source.id } : {}),
20
+ name: source.name,
21
+ preRequestScript: source.scripts?.preRequest ?? "",
22
+ postResponseScript: source.scripts?.postResponse ?? "",
23
+ testsScript: source.scripts?.tests ?? "",
24
+ });
25
+ /**
26
+ * The inherited layers for a request in `folderId` (or at the collection root
27
+ * when it is null/unknown), outermost first. Levels without any script are
28
+ * left out. Never includes the request itself.
29
+ *
30
+ * Defensive by design: a missing folder (moved / deleted mid-run) stops the
31
+ * walk at the collection, and a `parentId` cycle is cut instead of looping.
32
+ */
33
+ const buildScriptLayers = (input) => {
34
+ const byId = new Map((input.folders ?? []).map((folder) => [folder.id, folder]));
35
+ const chain = [];
36
+ const seen = new Set();
37
+ let cursor = input.folderId ? byId.get(input.folderId) : undefined;
38
+ while (cursor && !seen.has(cursor.id)) {
39
+ seen.add(cursor.id);
40
+ chain.unshift(cursor);
41
+ cursor = cursor.parentId ? byId.get(cursor.parentId) : undefined;
42
+ }
43
+ const layers = [];
44
+ if (input.collection && hasAnyScript(input.collection.scripts)) {
45
+ layers.push(toLayer("collection", input.collection));
46
+ }
47
+ for (const folder of chain) {
48
+ if (hasAnyScript(folder.scripts))
49
+ layers.push(toLayer("folder", folder));
50
+ }
51
+ return layers;
52
+ };
53
+ exports.buildScriptLayers = buildScriptLayers;
54
+ /** "Collection · Auth" / "Folder · Orders" — the label hosts show for a layer. */
55
+ const describeScriptLayer = (layer) => `${layer.scope === "collection" ? "Collection" : "Folder"} · ${layer.name}`;
56
+ exports.describeScriptLayer = describeScriptLayer;
57
+ //# sourceMappingURL=layers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layers.js","sourceRoot":"","sources":["../../src/script/layers.ts"],"names":[],"mappings":"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"}