callman-core 1.35.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.
- package/ai-packs/feature-policy.md +1 -6
- package/ai-packs/pm-api.md +238 -98
- package/ai-packs/sandbox-globals.md +6 -5
- package/dist/ai/prompts/fragments.d.ts.map +1 -1
- package/dist/ai/prompts/fragments.js +0 -1
- package/dist/ai/prompts/fragments.js.map +1 -1
- package/dist/ai/prompts/unified.js +1 -1
- package/dist/ai/prompts/unified.js.map +1 -1
- package/dist/ai/types.d.ts +1 -1
- package/dist/ai/types.d.ts.map +1 -1
- package/dist/ai/types.js +1 -1
- package/dist/ai/types.js.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/runner/requestRunner.d.ts.map +1 -1
- package/dist/runner/requestRunner.js +33 -0
- package/dist/runner/requestRunner.js.map +1 -1
- package/dist/runner/runCollection.d.ts.map +1 -1
- package/dist/runner/runCollection.js +46 -9
- package/dist/runner/runCollection.js.map +1 -1
- package/dist/runner/runRequestWithDataset.d.ts.map +1 -1
- package/dist/runner/runRequestWithDataset.js +3 -2
- package/dist/runner/runRequestWithDataset.js.map +1 -1
- package/dist/scenario-runner/adapters/request-executor.d.ts.map +1 -1
- package/dist/scenario-runner/adapters/request-executor.js +7 -0
- package/dist/scenario-runner/adapters/request-executor.js.map +1 -1
- package/dist/scenario-runner/runScenario.d.ts.map +1 -1
- package/dist/scenario-runner/runScenario.js +4 -0
- package/dist/scenario-runner/runScenario.js.map +1 -1
- package/dist/scenario-runner/types.d.ts +11 -0
- package/dist/scenario-runner/types.d.ts.map +1 -1
- package/dist/script/chain.d.ts +2 -0
- package/dist/script/chain.d.ts.map +1 -1
- package/dist/script/chain.js +2 -0
- package/dist/script/chain.js.map +1 -1
- package/dist/script/errors.js +6 -6
- package/dist/script/errors.js.map +1 -1
- package/dist/script/executor.d.ts.map +1 -1
- package/dist/script/executor.js +284 -64
- package/dist/script/executor.js.map +1 -1
- package/dist/script/features/collectionVariables.d.ts +4 -4
- package/dist/script/features/collectionVariables.d.ts.map +1 -1
- package/dist/script/features/collectionVariables.js +20 -11
- package/dist/script/features/collectionVariables.js.map +1 -1
- package/dist/script/features/environment.d.ts +4 -4
- package/dist/script/features/environment.d.ts.map +1 -1
- package/dist/script/features/environment.js +20 -11
- package/dist/script/features/environment.js.map +1 -1
- package/dist/script/features/feature-policy.d.ts +1 -1
- package/dist/script/features/feature-policy.d.ts.map +1 -1
- package/dist/script/features/feature-policy.js +2 -2
- package/dist/script/features/feature-policy.js.map +1 -1
- package/dist/script/features/info.d.ts.map +1 -1
- package/dist/script/features/info.js +6 -3
- package/dist/script/features/info.js.map +1 -1
- package/dist/script/features/iterationData.d.ts +12 -0
- package/dist/script/features/iterationData.d.ts.map +1 -0
- package/dist/script/features/iterationData.js +28 -0
- package/dist/script/features/iterationData.js.map +1 -0
- package/dist/script/features/legacyPostman.d.ts +14 -0
- package/dist/script/features/legacyPostman.d.ts.map +1 -0
- package/dist/script/features/legacyPostman.js +106 -0
- package/dist/script/features/legacyPostman.js.map +1 -0
- package/dist/script/features/log.d.ts +35 -8
- package/dist/script/features/log.d.ts.map +1 -1
- package/dist/script/features/log.js +343 -27
- package/dist/script/features/log.js.map +1 -1
- package/dist/script/features/tests.d.ts +7 -8
- package/dist/script/features/tests.d.ts.map +1 -1
- package/dist/script/features/tests.js +90 -64
- package/dist/script/features/tests.js.map +1 -1
- package/dist/script/features/timers.d.ts +7 -1
- package/dist/script/features/timers.d.ts.map +1 -1
- package/dist/script/features/timers.js +17 -5
- package/dist/script/features/timers.js.map +1 -1
- package/dist/script/features/variables.d.ts +19 -4
- package/dist/script/features/variables.d.ts.map +1 -1
- package/dist/script/features/variables.js +22 -6
- package/dist/script/features/variables.js.map +1 -1
- package/dist/script/features/visualizer.d.ts +15 -0
- package/dist/script/features/visualizer.d.ts.map +1 -0
- package/dist/script/features/visualizer.js +52 -0
- package/dist/script/features/visualizer.js.map +1 -0
- package/dist/script/isolated-runner.d.ts +4 -1
- package/dist/script/isolated-runner.d.ts.map +1 -1
- package/dist/script/isolated-runner.js +26 -2
- package/dist/script/isolated-runner.js.map +1 -1
- package/dist/script/legacy.d.ts +1 -0
- package/dist/script/legacy.d.ts.map +1 -1
- package/dist/script/legacy.js +12 -2
- package/dist/script/legacy.js.map +1 -1
- package/dist/script/pm-api-declarations.d.ts +45 -0
- package/dist/script/pm-api-declarations.d.ts.map +1 -0
- package/dist/script/pm-api-declarations.js +1963 -0
- package/dist/script/pm-api-declarations.js.map +1 -0
- package/dist/script/pm-api-metadata.d.ts +3 -1
- package/dist/script/pm-api-metadata.d.ts.map +1 -1
- package/dist/script/pm-api-metadata.js +336 -106
- package/dist/script/pm-api-metadata.js.map +1 -1
- package/dist/script/pm-api-reference.d.ts.map +1 -1
- package/dist/script/pm-api-reference.js +24 -8
- package/dist/script/pm-api-reference.js.map +1 -1
- package/dist/script/postman/chaiCompat.d.ts +4 -0
- package/dist/script/postman/chaiCompat.d.ts.map +1 -0
- package/dist/script/postman/chaiCompat.js +176 -0
- package/dist/script/postman/chaiCompat.js.map +1 -0
- package/dist/script/postman/cookies.d.ts +36 -0
- package/dist/script/postman/cookies.d.ts.map +1 -0
- package/dist/script/postman/cookies.js +163 -0
- package/dist/script/postman/cookies.js.map +1 -0
- package/dist/script/postman/modules.d.ts +16 -0
- package/dist/script/postman/modules.d.ts.map +1 -0
- package/dist/script/postman/modules.js +114 -0
- package/dist/script/postman/modules.js.map +1 -0
- package/dist/script/postman/proxies.d.ts +13 -0
- package/dist/script/postman/proxies.d.ts.map +1 -0
- package/dist/script/postman/proxies.js +88 -0
- package/dist/script/postman/proxies.js.map +1 -0
- package/dist/script/postman/requestAdapter.d.ts +7 -0
- package/dist/script/postman/requestAdapter.d.ts.map +1 -0
- package/dist/script/postman/requestAdapter.js +223 -0
- package/dist/script/postman/requestAdapter.js.map +1 -0
- package/dist/script/postman/responseAdapter.d.ts +5 -0
- package/dist/script/postman/responseAdapter.d.ts.map +1 -0
- package/dist/script/postman/responseAdapter.js +78 -0
- package/dist/script/postman/responseAdapter.js.map +1 -0
- package/dist/script/postman/runtime.d.ts +22 -0
- package/dist/script/postman/runtime.d.ts.map +1 -0
- package/dist/script/postman/runtime.js +122 -0
- package/dist/script/postman/runtime.js.map +1 -0
- package/dist/script/scope.d.ts +5 -1
- package/dist/script/scope.d.ts.map +1 -1
- package/dist/script/scope.js +47 -5
- package/dist/script/scope.js.map +1 -1
- package/dist/script/types.d.ts +33 -14
- package/dist/script/types.d.ts.map +1 -1
- package/dist/script/worker-entry.js +9 -0
- package/dist/script/worker-entry.js.map +1 -1
- package/dist/script/worker-pool.d.ts +3 -1
- package/dist/script/worker-pool.d.ts.map +1 -1
- package/dist/script/worker-pool.js +23 -2
- package/dist/script/worker-pool.js.map +1 -1
- package/dist/templating/generator-metadata.d.ts +1 -0
- package/dist/templating/generator-metadata.d.ts.map +1 -1
- package/dist/templating/generator-metadata.js +14 -0
- package/dist/templating/generator-metadata.js.map +1 -1
- package/dist/templating/postman-dynamic-catalog.d.ts +7 -0
- package/dist/templating/postman-dynamic-catalog.d.ts.map +1 -0
- package/dist/templating/postman-dynamic-catalog.js +126 -0
- package/dist/templating/postman-dynamic-catalog.js.map +1 -0
- package/dist/templating/postman-generators.d.ts +9 -0
- package/dist/templating/postman-generators.d.ts.map +1 -1
- package/dist/templating/postman-generators.js +10 -1
- package/dist/templating/postman-generators.js.map +1 -1
- package/dist/types/index.d.ts +22 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/variables/replaceIn.d.ts +10 -0
- package/dist/variables/replaceIn.d.ts.map +1 -0
- package/dist/variables/replaceIn.js +106 -0
- package/dist/variables/replaceIn.js.map +1 -0
- package/dist-cjs/ai/prompts/fragments.js +0 -1
- package/dist-cjs/ai/prompts/fragments.js.map +1 -1
- package/dist-cjs/ai/prompts/unified.js +1 -1
- package/dist-cjs/ai/prompts/unified.js.map +1 -1
- package/dist-cjs/ai/types.js +1 -1
- package/dist-cjs/ai/types.js.map +1 -1
- package/dist-cjs/index.js +17 -5
- package/dist-cjs/index.js.map +1 -1
- package/dist-cjs/runner/requestRunner.js +33 -0
- package/dist-cjs/runner/requestRunner.js.map +1 -1
- package/dist-cjs/runner/runCollection.js +46 -9
- package/dist-cjs/runner/runCollection.js.map +1 -1
- package/dist-cjs/runner/runRequestWithDataset.js +3 -2
- package/dist-cjs/runner/runRequestWithDataset.js.map +1 -1
- package/dist-cjs/scenario-runner/adapters/request-executor.js +7 -0
- package/dist-cjs/scenario-runner/adapters/request-executor.js.map +1 -1
- package/dist-cjs/scenario-runner/runScenario.js +4 -0
- package/dist-cjs/scenario-runner/runScenario.js.map +1 -1
- package/dist-cjs/script/chain.js +2 -0
- package/dist-cjs/script/chain.js.map +1 -1
- package/dist-cjs/script/errors.js +6 -6
- package/dist-cjs/script/errors.js.map +1 -1
- package/dist-cjs/script/executor.js +284 -64
- package/dist-cjs/script/executor.js.map +1 -1
- package/dist-cjs/script/features/collectionVariables.js +20 -11
- package/dist-cjs/script/features/collectionVariables.js.map +1 -1
- package/dist-cjs/script/features/environment.js +20 -11
- package/dist-cjs/script/features/environment.js.map +1 -1
- package/dist-cjs/script/features/feature-policy.js +2 -2
- package/dist-cjs/script/features/feature-policy.js.map +1 -1
- package/dist-cjs/script/features/info.js +6 -3
- package/dist-cjs/script/features/info.js.map +1 -1
- package/dist-cjs/script/features/iterationData.js +32 -0
- package/dist-cjs/script/features/iterationData.js.map +1 -0
- package/dist-cjs/script/features/legacyPostman.js +112 -0
- package/dist-cjs/script/features/legacyPostman.js.map +1 -0
- package/dist-cjs/script/features/log.js +347 -28
- package/dist-cjs/script/features/log.js.map +1 -1
- package/dist-cjs/script/features/tests.js +90 -64
- package/dist-cjs/script/features/tests.js.map +1 -1
- package/dist-cjs/script/features/timers.js +17 -5
- package/dist-cjs/script/features/timers.js.map +1 -1
- package/dist-cjs/script/features/variables.js +22 -6
- package/dist-cjs/script/features/variables.js.map +1 -1
- package/dist-cjs/script/features/visualizer.js +56 -0
- package/dist-cjs/script/features/visualizer.js.map +1 -0
- package/dist-cjs/script/isolated-runner.js +26 -2
- package/dist-cjs/script/isolated-runner.js.map +1 -1
- package/dist-cjs/script/legacy.js +14 -3
- package/dist-cjs/script/legacy.js.map +1 -1
- package/dist-cjs/script/pm-api-declarations.js +1969 -0
- package/dist-cjs/script/pm-api-declarations.js.map +1 -0
- package/dist-cjs/script/pm-api-metadata.js +336 -106
- package/dist-cjs/script/pm-api-metadata.js.map +1 -1
- package/dist-cjs/script/pm-api-reference.js +24 -8
- package/dist-cjs/script/pm-api-reference.js.map +1 -1
- package/dist-cjs/script/postman/chaiCompat.js +181 -0
- package/dist-cjs/script/postman/chaiCompat.js.map +1 -0
- package/dist-cjs/script/postman/cookies.js +170 -0
- package/dist-cjs/script/postman/cookies.js.map +1 -0
- package/dist-cjs/script/postman/modules.js +123 -0
- package/dist-cjs/script/postman/modules.js.map +1 -0
- package/dist-cjs/script/postman/proxies.js +93 -0
- package/dist-cjs/script/postman/proxies.js.map +1 -0
- package/dist-cjs/script/postman/requestAdapter.js +227 -0
- package/dist-cjs/script/postman/requestAdapter.js.map +1 -0
- package/dist-cjs/script/postman/responseAdapter.js +83 -0
- package/dist-cjs/script/postman/responseAdapter.js.map +1 -0
- package/dist-cjs/script/postman/runtime.js +132 -0
- package/dist-cjs/script/postman/runtime.js.map +1 -0
- package/dist-cjs/script/scope.js +47 -5
- package/dist-cjs/script/scope.js.map +1 -1
- package/dist-cjs/script/worker-entry.js +9 -0
- package/dist-cjs/script/worker-entry.js.map +1 -1
- package/dist-cjs/script/worker-pool.js +23 -2
- package/dist-cjs/script/worker-pool.js.map +1 -1
- package/dist-cjs/templating/generator-metadata.js +15 -1
- package/dist-cjs/templating/generator-metadata.js.map +1 -1
- package/dist-cjs/templating/postman-dynamic-catalog.js +129 -0
- package/dist-cjs/templating/postman-dynamic-catalog.js.map +1 -0
- package/dist-cjs/templating/postman-generators.js +13 -3
- package/dist-cjs/templating/postman-generators.js.map +1 -1
- package/dist-cjs/variables/replaceIn.js +111 -0
- package/dist-cjs/variables/replaceIn.js.map +1 -0
- 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
|
-
//
|
|
6
|
-
//
|
|
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
|
|
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
|
-
|
|
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,
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
if (
|
|
85
|
-
|
|
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
|
-
|
|
88
|
-
|
|
89
|
-
|
|
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
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
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":";AAAA,2EAA2E;AAC3E,oEAAoE;AACpE,EAAE;AACF,
|
|
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
|
-
|
|
90
|
-
|
|
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
|
-
|
|
125
|
-
|
|
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":";AAAA,2DAA2D;AAC3D,qEAAqE;AACrE,gDAAgD;AAChD,EAAE;AACF,kDAAkD;AAClD,gDAAgD;AAChD,qEAAqE;AACrE,qEAAqE;AACrE,iEAAiE;AACjE,+CAA+C;AAC/C,EAAE;AACF,kDAAkD;AAClD,sCAAsC;AACtC,oEAAoE;AACpE,8BAA8B;AAC9B,qEAAqE;AACrE,8DAA8D;AAC9D,mEAAmE;AACnE,+DAA+D;AAC/D,EAAE;AACF,qEAAqE;AACrE,uEAAuE;AACvE,gCAAgC;;;AAEhC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAClC,MAAM,mBAAmB,GAAG,KAAK,CAAC;
|
|
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 "";
|
|
@@ -29,14 +30,21 @@ const buildVariablesApi = (environment, globals, options = {}) => {
|
|
|
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
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 ?? {};
|
|
37
|
+
const iteration = options.iterationData ?? {};
|
|
33
38
|
// Precedence on read: local > environment > collection > globals —
|
|
34
39
|
// Postman's documented order.
|
|
40
|
+
const live = options.live ?? {};
|
|
35
41
|
const readMerged = () => ({
|
|
36
|
-
...globals,
|
|
37
|
-
...collection,
|
|
38
|
-
...environment,
|
|
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,29 @@ 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:
|
|
87
|
+
replaceIn: (input) => (0, replaceIn_js_1.replaceInValue)(input, (0, replaceIn_js_1.lookupInRecords)(readMerged())),
|
|
72
88
|
localSnapshot: () => ({ ...local }),
|
|
73
89
|
};
|
|
74
90
|
};
|
|
@@ -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;
|
|
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;AAC9D,+DAA+E;AAmB/E,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,UAgBI,EAAE,EACQ,EAAE;IAChB,qEAAqE;IACrE,uEAAuE;IACvE,oEAAoE;IACpE,MAAM,KAAK,GAA2B,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;IACnE,2EAA2E;IAC3E,6EAA6E;IAC7E,MAAM,WAAW,GAA4B,EAAE,CAAC;IAChD,MAAM,UAAU,GAAG,OAAO,CAAC,mBAAmB,IAAI,EAAE,CAAC;IACrD,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;IAE9C,mEAAmE;IACnE,8BAA8B;IAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;IAChC,MAAM,UAAU,GAAG,GAA4B,EAAE,CAAC,CAAC;QACjD,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QAC5C,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;QACrD,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;QACxD,GAAG,SAAS;QACZ,GAAG,KAAK;QACR,GAAG,WAAW;KACf,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,CAAC,KAAc,EAAU,EAAE,CACzC,IAAA,6BAAe,EAAC,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,UAAU,EAA4B,EAAE,CAAC,CAAC;IAE1F,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,KAAK,EAAE,EAAE;YACzB,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,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YACnH,WAAW,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;QACrC,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;YAC5B,OAAO,WAAW,CAAC,aAAa,CAAC,CAAC;QACpC,CAAC;QACD,KAAK,EAAE,GAAG,EAAE;YACV,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;YACxD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;gBAAE,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QACtE,CAAC;QACD,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE;QAC5B,OAAO;QACP,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,6BAAc,EAAC,KAAK,EAAE,IAAA,8BAAe,EAAC,UAAU,EAAE,CAAC,CAAC;QAC1E,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;KACpC,CAAC;AACJ,CAAC,CAAC;AAhFW,QAAA,iBAAiB,qBAgF5B"}
|
|
@@ -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
|
-
|
|
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
|
|
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":";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;
|
|
1
|
+
{"version":3,"file":"isolated-runner.js","sourceRoot":"","sources":["../../src/script/isolated-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
// New code should call `executeScript` directly. This shim exists so
|
|
15
15
|
// callme-cli and `runRequest` keep working without any source changes.
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.runScript = exports.toLegacyTestResult = exports.toResponseState = exports.toRequestState = void 0;
|
|
17
|
+
exports.runScript = exports.toLegacyTestResult = exports.toResponseState = exports.splitSetCookieHeader = exports.toRequestState = void 0;
|
|
18
18
|
const executor_js_1 = require("./executor.js");
|
|
19
19
|
const toEntries = (record) => Object.entries(record ?? {}).map(([key, value]) => ({
|
|
20
20
|
key,
|
|
@@ -52,6 +52,14 @@ const safeJsonStringify = (value) => {
|
|
|
52
52
|
return String(value);
|
|
53
53
|
}
|
|
54
54
|
};
|
|
55
|
+
// "a=1; Path=/, b=2; Expires=Wed, 21 Oct 2026 07:28:00 GMT, c=3" → three cookies.
|
|
56
|
+
// A comma only separates cookies when a new `name=` follows it (an Expires date
|
|
57
|
+
// has no `=` before its next `;`).
|
|
58
|
+
const splitSetCookieHeader = (value) => value
|
|
59
|
+
.split(/\r?\n|,(?=\s*[^;,=\s]+=)/)
|
|
60
|
+
.map((part) => part.trim())
|
|
61
|
+
.filter(Boolean);
|
|
62
|
+
exports.splitSetCookieHeader = splitSetCookieHeader;
|
|
55
63
|
const toResponseState = (response) => {
|
|
56
64
|
if (!response) {
|
|
57
65
|
return undefined;
|
|
@@ -61,9 +69,12 @@ const toResponseState = (response) => {
|
|
|
61
69
|
const isStringBody = typeof data === "string";
|
|
62
70
|
const rawBody = isStringBody ? data : safeJsonStringify(data);
|
|
63
71
|
const contentType = Object.entries(headers).find(([key]) => key.toLowerCase() === "content-type")?.[1] ?? "";
|
|
72
|
+
// A response can carry several Set-Cookie headers. Depending on the host they
|
|
73
|
+
// arrive as an array, newline-joined, or comma-joined (core's executeRequest
|
|
74
|
+
// normalises headers to one string) — split them back into separate cookies.
|
|
64
75
|
const cookies = Object.entries(headers)
|
|
65
76
|
.filter(([key]) => key.toLowerCase() === "set-cookie")
|
|
66
|
-
.
|
|
77
|
+
.flatMap(([, value]) => (Array.isArray(value) ? value.map(String) : (0, exports.splitSetCookieHeader)(String(value))));
|
|
67
78
|
return {
|
|
68
79
|
ok: response.status >= 200 && response.status < 400,
|
|
69
80
|
status: response.status,
|
|
@@ -83,7 +94,7 @@ const toLegacyTestResult = (result) => {
|
|
|
83
94
|
if (result.status === "SKIP") {
|
|
84
95
|
return {
|
|
85
96
|
name: result.name,
|
|
86
|
-
status: "
|
|
97
|
+
status: "SKIP",
|
|
87
98
|
message: result.error ?? "Skipped",
|
|
88
99
|
};
|
|
89
100
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"legacy.js","sourceRoot":"","sources":["../../src/script/legacy.ts"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,2EAA2E;AAC3E,EAAE;AACF,kDAAkD;AAClD,2DAA2D;AAC3D,8DAA8D;AAC9D,sEAAsE;AACtE,yEAAyE;AACzE,qEAAqE;AACrE,mCAAmC;AACnC,sEAAsE;AACtE,EAAE;AACF,qEAAqE;AACrE,uEAAuE;;;AASvE,+CAA8C;AAS9C,MAAM,SAAS,GAAG,CAAC,MAA0C,EAAE,EAAE,CAC/D,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAClD,GAAG;IACH,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;IAC1B,OAAO,EAAE,IAAI;CACd,CAAC,CAAC,CAAC;AAEC,MAAM,cAAc,GAAG,CAC5B,OAAwC,EACR,EAAE;IAClC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAC/B,MAAM,QAAQ,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC;IAC/C,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE;QACrD,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC;QAC9B,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,OAA6C,CAAC;QACzE,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,KAA2C,CAAC;QACrE,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;YACnD,GAAG,EAAE,QAAQ;gBACX,CAAC,CAAE,SAAoB;gBACvB,CAAC,CAAC,SAAS;oBACT,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC;oBAC9B,CAAC,CAAC,EAAE;YACR,WAAW,EAAE,EAAE;SAChB;KACF,CAAC;AACJ,CAAC,CAAC;AAvBW,QAAA,cAAc,kBAuBzB;AAEF,MAAM,iBAAiB,GAAG,CAAC,KAAc,EAAU,EAAE;IACnD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"legacy.js","sourceRoot":"","sources":["../../src/script/legacy.ts"],"names":[],"mappings":"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"}
|