callman-core 1.1.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/scenario-runner/condition.d.ts.map +1 -1
- package/dist/scenario-runner/condition.js +87 -78
- package/dist/scenario-runner/condition.js.map +1 -1
- package/dist/scenario-runner/index.d.ts +1 -1
- package/dist/scenario-runner/index.d.ts.map +1 -1
- package/dist/scenario-runner/index.js +6 -1
- package/dist/scenario-runner/index.js.map +1 -1
- package/dist/script/executor.d.ts.map +1 -1
- package/dist/script/executor.js +118 -9
- package/dist/script/executor.js.map +1 -1
- package/dist/script/features/counter.d.ts +11 -0
- package/dist/script/features/counter.d.ts.map +1 -0
- package/dist/script/features/counter.js +43 -0
- package/dist/script/features/counter.js.map +1 -0
- package/dist/script/features/cryptojs.d.ts +13 -0
- package/dist/script/features/cryptojs.d.ts.map +1 -0
- package/dist/script/features/cryptojs.js +63 -0
- package/dist/script/features/cryptojs.js.map +1 -0
- package/dist/script/features/db.d.ts +36 -0
- package/dist/script/features/db.d.ts.map +1 -0
- package/dist/script/features/db.js +165 -0
- package/dist/script/features/db.js.map +1 -0
- package/dist/script/features/feature-policy.d.ts +8 -0
- package/dist/script/features/feature-policy.d.ts.map +1 -0
- package/dist/script/features/feature-policy.js +88 -0
- package/dist/script/features/feature-policy.js.map +1 -0
- package/dist/script/features/kafka.d.ts +11 -0
- package/dist/script/features/kafka.d.ts.map +1 -0
- package/dist/script/features/kafka.js +71 -0
- package/dist/script/features/kafka.js.map +1 -0
- package/dist/script/features/random.d.ts +13 -0
- package/dist/script/features/random.d.ts.map +1 -0
- package/dist/script/features/random.js +111 -0
- package/dist/script/features/random.js.map +1 -0
- package/dist/script/features/redis.d.ts +10 -0
- package/dist/script/features/redis.d.ts.map +1 -0
- package/dist/script/features/redis.js +22 -0
- package/dist/script/features/redis.js.map +1 -0
- package/dist/script/features/tests.d.ts +7 -1
- package/dist/script/features/tests.d.ts.map +1 -1
- package/dist/script/features/tests.js +97 -12
- package/dist/script/features/tests.js.map +1 -1
- package/dist/script/features/variables.d.ts +6 -0
- package/dist/script/features/variables.d.ts.map +1 -0
- package/dist/script/features/variables.js +25 -0
- package/dist/script/features/variables.js.map +1 -0
- package/dist/script/scope.d.ts +7 -0
- package/dist/script/scope.d.ts.map +1 -1
- package/dist/script/scope.js +21 -0
- package/dist/script/scope.js.map +1 -1
- package/dist/script/types.d.ts +73 -0
- package/dist/script/types.d.ts.map +1 -1
- package/dist-cjs/index.js +7 -1
- package/dist-cjs/index.js.map +1 -1
- package/dist-cjs/scenario-runner/condition.js +87 -78
- package/dist-cjs/scenario-runner/condition.js.map +1 -1
- package/dist-cjs/scenario-runner/index.js +7 -5
- package/dist-cjs/scenario-runner/index.js.map +1 -1
- package/dist-cjs/script/executor.js +118 -9
- package/dist-cjs/script/executor.js.map +1 -1
- package/dist-cjs/script/features/counter.js +47 -0
- package/dist-cjs/script/features/counter.js.map +1 -0
- package/dist-cjs/script/features/cryptojs.js +67 -0
- package/dist-cjs/script/features/cryptojs.js.map +1 -0
- package/dist-cjs/script/features/db.js +169 -0
- package/dist-cjs/script/features/db.js.map +1 -0
- package/dist-cjs/script/features/feature-policy.js +94 -0
- package/dist-cjs/script/features/feature-policy.js.map +1 -0
- package/dist-cjs/script/features/kafka.js +77 -0
- package/dist-cjs/script/features/kafka.js.map +1 -0
- package/dist-cjs/script/features/random.js +115 -0
- package/dist-cjs/script/features/random.js.map +1 -0
- package/dist-cjs/script/features/redis.js +26 -0
- package/dist-cjs/script/features/redis.js.map +1 -0
- package/dist-cjs/script/features/tests.js +97 -12
- package/dist-cjs/script/features/tests.js.map +1 -1
- package/dist-cjs/script/features/variables.js +29 -0
- package/dist-cjs/script/features/variables.js.map +1 -0
- package/dist-cjs/script/scope.js +21 -0
- package/dist-cjs/script/scope.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
// Feature policy — disabled-feature handling for collection-runner.
|
|
2
|
+
//
|
|
3
|
+
// When the host disables a feature (e.g., `featurePolicy.database = false`
|
|
4
|
+
// for a collection that has no DB step), user scripts that reach into the
|
|
5
|
+
// disabled API should NOT crash the runner. Instead, accessing the API
|
|
6
|
+
// inside a `pm.test` callback throws DisabledFeatureDependencyError; the
|
|
7
|
+
// test collector recognizes that error class and emits a SKIP result with
|
|
8
|
+
// a descriptive message.
|
|
9
|
+
//
|
|
10
|
+
// Outside test callbacks (e.g., at script top level) the disabled API
|
|
11
|
+
// returns benign no-op values so the script can continue to execute and
|
|
12
|
+
// any errors propagate as normal exceptions.
|
|
13
|
+
export class DisabledFeatureDependencyError extends Error {
|
|
14
|
+
feature;
|
|
15
|
+
constructor(feature) {
|
|
16
|
+
super(feature === "database"
|
|
17
|
+
? "Database-dependent test is disabled for this collection runner."
|
|
18
|
+
: "Kafka-dependent test is disabled for this collection runner.");
|
|
19
|
+
this.feature = feature;
|
|
20
|
+
this.name = "DisabledFeatureDependencyError";
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
const DISABLED_FEATURE_SYMBOL = Symbol.for("callman:disabled-feature");
|
|
24
|
+
export const isDisabledFeatureValue = (value) => {
|
|
25
|
+
if ((typeof value === "object" && value !== null) ||
|
|
26
|
+
typeof value === "function") {
|
|
27
|
+
const tag = value[DISABLED_FEATURE_SYMBOL];
|
|
28
|
+
if (tag === "database" || tag === "kafka") {
|
|
29
|
+
return tag;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return null;
|
|
33
|
+
};
|
|
34
|
+
export const createDisabledFeatureValue = (feature, isInsideTestCallback) => new Proxy(function disabledFeatureValue() {
|
|
35
|
+
return undefined;
|
|
36
|
+
}, {
|
|
37
|
+
get(_target, property) {
|
|
38
|
+
if (property === DISABLED_FEATURE_SYMBOL) {
|
|
39
|
+
return feature;
|
|
40
|
+
}
|
|
41
|
+
if (isInsideTestCallback()) {
|
|
42
|
+
throw new DisabledFeatureDependencyError(feature);
|
|
43
|
+
}
|
|
44
|
+
return undefined;
|
|
45
|
+
},
|
|
46
|
+
apply() {
|
|
47
|
+
if (isInsideTestCallback()) {
|
|
48
|
+
throw new DisabledFeatureDependencyError(feature);
|
|
49
|
+
}
|
|
50
|
+
return undefined;
|
|
51
|
+
},
|
|
52
|
+
set() {
|
|
53
|
+
if (isInsideTestCallback()) {
|
|
54
|
+
throw new DisabledFeatureDependencyError(feature);
|
|
55
|
+
}
|
|
56
|
+
return true;
|
|
57
|
+
},
|
|
58
|
+
has(_target, property) {
|
|
59
|
+
if (property === DISABLED_FEATURE_SYMBOL) {
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
if (isInsideTestCallback()) {
|
|
63
|
+
throw new DisabledFeatureDependencyError(feature);
|
|
64
|
+
}
|
|
65
|
+
return false;
|
|
66
|
+
},
|
|
67
|
+
ownKeys() {
|
|
68
|
+
if (isInsideTestCallback()) {
|
|
69
|
+
throw new DisabledFeatureDependencyError(feature);
|
|
70
|
+
}
|
|
71
|
+
return [];
|
|
72
|
+
},
|
|
73
|
+
getOwnPropertyDescriptor(_target, property) {
|
|
74
|
+
if (property === DISABLED_FEATURE_SYMBOL) {
|
|
75
|
+
return {
|
|
76
|
+
configurable: true,
|
|
77
|
+
enumerable: false,
|
|
78
|
+
writable: false,
|
|
79
|
+
value: feature,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
if (isInsideTestCallback()) {
|
|
83
|
+
throw new DisabledFeatureDependencyError(feature);
|
|
84
|
+
}
|
|
85
|
+
return undefined;
|
|
86
|
+
},
|
|
87
|
+
});
|
|
88
|
+
//# sourceMappingURL=feature-policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feature-policy.js","sourceRoot":"","sources":["../../../src/script/features/feature-policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ScriptKafkaCapability } from "../types.js";
|
|
2
|
+
export declare class PendingKafkaDependencyError extends Error {
|
|
3
|
+
constructor();
|
|
4
|
+
}
|
|
5
|
+
export declare const isPendingKafkaValue: (value: unknown) => boolean;
|
|
6
|
+
export interface KafkaApi {
|
|
7
|
+
event: () => unknown;
|
|
8
|
+
messages: () => unknown[];
|
|
9
|
+
}
|
|
10
|
+
export declare const buildKafkaApi: (kafka: ScriptKafkaCapability | null | undefined, allowDeferredKafkaTests: boolean) => KafkaApi;
|
|
11
|
+
//# sourceMappingURL=kafka.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kafka.d.ts","sourceRoot":"","sources":["../../../src/script/features/kafka.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEzD,qBAAa,2BAA4B,SAAQ,KAAK;;CAKrD;AAID,eAAO,MAAM,mBAAmB,GAAI,OAAO,OAAO,KAAG,OAQpD,CAAC;AA2CF,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,OAAO,EAAE,CAAC;CAC3B;AAED,eAAO,MAAM,aAAa,GACxB,OAAO,qBAAqB,GAAG,IAAI,GAAG,SAAS,EAC/C,yBAAyB,OAAO,KAC/B,QAQF,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
// pm.kafka — collection-runner Kafka data view + deferred-test mechanism.
|
|
2
|
+
//
|
|
3
|
+
// The data view is read-only (event/messages — both functions returning
|
|
4
|
+
// the snapshot value). The deferred-test mechanism uses a Proxy that
|
|
5
|
+
// throws PendingKafkaDependencyError on any property access; the test
|
|
6
|
+
// collector recognizes that error class and routes the test to the
|
|
7
|
+
// `deferredTestNames` output instead of recording PASS/FAIL.
|
|
8
|
+
//
|
|
9
|
+
// IMPORTANT: We preserve the exact CURRENT behavior of Sandbox D, including
|
|
10
|
+
// the latent issue where `allowDeferredKafkaTests && isListening` is the
|
|
11
|
+
// pending condition (it does not check `!event` — so a re-run where the
|
|
12
|
+
// event is now present still produces a pending proxy). Snapshot tests
|
|
13
|
+
// lock this in. Fix is tracked separately.
|
|
14
|
+
export class PendingKafkaDependencyError extends Error {
|
|
15
|
+
constructor() {
|
|
16
|
+
super("Kafka-dependent test is waiting for the matched event.");
|
|
17
|
+
this.name = "PendingKafkaDependencyError";
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
const PENDING_KAFKA_SYMBOL = Symbol.for("callman:pending-kafka");
|
|
21
|
+
export const isPendingKafkaValue = (value) => {
|
|
22
|
+
if ((typeof value === "object" && value !== null) ||
|
|
23
|
+
typeof value === "function") {
|
|
24
|
+
return Boolean(value[PENDING_KAFKA_SYMBOL]);
|
|
25
|
+
}
|
|
26
|
+
return false;
|
|
27
|
+
};
|
|
28
|
+
const createPendingKafkaValue = () => new Proxy(function pendingKafkaValue() {
|
|
29
|
+
return undefined;
|
|
30
|
+
}, {
|
|
31
|
+
get(_target, property) {
|
|
32
|
+
if (property === PENDING_KAFKA_SYMBOL) {
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
throw new PendingKafkaDependencyError();
|
|
36
|
+
},
|
|
37
|
+
apply() {
|
|
38
|
+
throw new PendingKafkaDependencyError();
|
|
39
|
+
},
|
|
40
|
+
set() {
|
|
41
|
+
throw new PendingKafkaDependencyError();
|
|
42
|
+
},
|
|
43
|
+
has(_target, property) {
|
|
44
|
+
if (property === PENDING_KAFKA_SYMBOL) {
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
throw new PendingKafkaDependencyError();
|
|
48
|
+
},
|
|
49
|
+
ownKeys() {
|
|
50
|
+
throw new PendingKafkaDependencyError();
|
|
51
|
+
},
|
|
52
|
+
getOwnPropertyDescriptor(_target, property) {
|
|
53
|
+
if (property === PENDING_KAFKA_SYMBOL) {
|
|
54
|
+
return {
|
|
55
|
+
configurable: true,
|
|
56
|
+
enumerable: false,
|
|
57
|
+
writable: false,
|
|
58
|
+
value: true,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
throw new PendingKafkaDependencyError();
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
export const buildKafkaApi = (kafka, allowDeferredKafkaTests) => {
|
|
65
|
+
const pending = allowDeferredKafkaTests && kafka?.isListening ? createPendingKafkaValue() : null;
|
|
66
|
+
return {
|
|
67
|
+
event: () => pending ?? kafka?.event ?? null,
|
|
68
|
+
messages: () => pending ?? kafka?.messages ?? [],
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=kafka.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kafka.js","sourceRoot":"","sources":["../../../src/script/features/kafka.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,EAAE;AACF,wEAAwE;AACxE,qEAAqE;AACrE,sEAAsE;AACtE,mEAAmE;AACnE,6DAA6D;AAC7D,EAAE;AACF,4EAA4E;AAC5E,yEAAyE;AACzE,wEAAwE;AACxE,uEAAuE;AACvE,2CAA2C;AAI3C,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IACpD;QACE,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;IAC5C,CAAC;CACF;AAED,MAAM,oBAAoB,GAAkB,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AAEhF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAc,EAAW,EAAE;IAC7D,IACE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;QAC7C,OAAO,KAAK,KAAK,UAAU,EAC3B,CAAC;QACD,OAAO,OAAO,CAAE,KAAsC,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,GAAW,EAAE,CAC3C,IAAI,KAAK,CACP,SAAS,iBAAiB;IACxB,OAAO,SAAS,CAAC;AACnB,CAAC,EACD;IACE,GAAG,CAAC,OAAO,EAAE,QAAQ;QACnB,IAAI,QAAQ,KAAK,oBAAoB,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,IAAI,2BAA2B,EAAE,CAAC;IAC1C,CAAC;IACD,KAAK;QACH,MAAM,IAAI,2BAA2B,EAAE,CAAC;IAC1C,CAAC;IACD,GAAG;QACD,MAAM,IAAI,2BAA2B,EAAE,CAAC;IAC1C,CAAC;IACD,GAAG,CAAC,OAAO,EAAE,QAAQ;QACnB,IAAI,QAAQ,KAAK,oBAAoB,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,IAAI,2BAA2B,EAAE,CAAC;IAC1C,CAAC;IACD,OAAO;QACL,MAAM,IAAI,2BAA2B,EAAE,CAAC;IAC1C,CAAC;IACD,wBAAwB,CAAC,OAAO,EAAE,QAAQ;QACxC,IAAI,QAAQ,KAAK,oBAAoB,EAAE,CAAC;YACtC,OAAO;gBACL,YAAY,EAAE,IAAI;gBAClB,UAAU,EAAE,KAAK;gBACjB,QAAQ,EAAE,KAAK;gBACf,KAAK,EAAE,IAAI;aACZ,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,2BAA2B,EAAE,CAAC;IAC1C,CAAC;CACF,CACF,CAAC;AAOJ,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,KAA+C,EAC/C,uBAAgC,EACtB,EAAE;IACZ,MAAM,OAAO,GACX,uBAAuB,IAAI,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAEnF,OAAO;QACL,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,IAAI,KAAK,EAAE,KAAK,IAAI,IAAI;QAC5C,QAAQ,EAAE,GAAG,EAAE,CAAE,OAAgC,IAAI,KAAK,EAAE,QAAQ,IAAI,EAAE;KAC3E,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface RandomApi {
|
|
2
|
+
uuid: () => string;
|
|
3
|
+
int: (min?: number, max?: number) => string;
|
|
4
|
+
string: (length?: number) => string;
|
|
5
|
+
email: () => string;
|
|
6
|
+
phone: () => string;
|
|
7
|
+
name: () => string;
|
|
8
|
+
date: (format?: string) => string;
|
|
9
|
+
boolean: () => string;
|
|
10
|
+
bigdecimal: (min?: number, max?: number, scale?: number) => string;
|
|
11
|
+
}
|
|
12
|
+
export declare const buildRandomApi: (rng?: () => number) => RandomApi;
|
|
13
|
+
//# sourceMappingURL=random.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"random.d.ts","sourceRoot":"","sources":["../../../src/script/features/random.ts"],"names":[],"mappings":"AAyCA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,MAAM,CAAC;IACnB,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5C,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACpC,KAAK,EAAE,MAAM,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,MAAM,CAAC;IACnB,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAClC,OAAO,EAAE,MAAM,MAAM,CAAC;IACtB,UAAU,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CACpE;AAED,eAAO,MAAM,cAAc,GAAI,MAAK,MAAM,MAAmB,KAAG,SAgF/D,CAAC"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
// pm.random — collection-runner random data generators.
|
|
2
|
+
//
|
|
3
|
+
// Lifted from pmanfrontend/electron/script/randomGenerators.ts so all
|
|
4
|
+
// runtimes (CLI, backend, electron) can use the same surface. The host can
|
|
5
|
+
// optionally inject a deterministic RNG (`() => number` returning [0, 1))
|
|
6
|
+
// for testing; the default uses crypto.getRandomValues when available, else
|
|
7
|
+
// Math.random.
|
|
8
|
+
const EMAIL_DOMAINS = ["example.com", "mailinator.com", "test.dev", "pman.dev"];
|
|
9
|
+
const FIRST_NAMES = [
|
|
10
|
+
"Aylin",
|
|
11
|
+
"Murad",
|
|
12
|
+
"Laman",
|
|
13
|
+
"Orxan",
|
|
14
|
+
"Leyla",
|
|
15
|
+
"Kenan",
|
|
16
|
+
"Nigar",
|
|
17
|
+
"Farid",
|
|
18
|
+
];
|
|
19
|
+
const LAST_NAMES = [
|
|
20
|
+
"Aliyev",
|
|
21
|
+
"Mammadov",
|
|
22
|
+
"Rahimova",
|
|
23
|
+
"Hasanli",
|
|
24
|
+
"Rustamov",
|
|
25
|
+
"Asadova",
|
|
26
|
+
"Karimli",
|
|
27
|
+
"Guliyev",
|
|
28
|
+
];
|
|
29
|
+
const STRING_ALPHABET = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
|
|
30
|
+
const defaultRng = () => {
|
|
31
|
+
if (typeof crypto !== "undefined" && typeof crypto.getRandomValues === "function") {
|
|
32
|
+
const values = new Uint32Array(1);
|
|
33
|
+
crypto.getRandomValues(values);
|
|
34
|
+
return values[0] / 0xffffffff;
|
|
35
|
+
}
|
|
36
|
+
return Math.random();
|
|
37
|
+
};
|
|
38
|
+
export const buildRandomApi = (rng = defaultRng) => {
|
|
39
|
+
const intBetween = (min, max) => {
|
|
40
|
+
const lo = Math.ceil(Math.min(min, max));
|
|
41
|
+
const hi = Math.floor(Math.max(min, max));
|
|
42
|
+
return Math.floor(rng() * (hi - lo + 1)) + lo;
|
|
43
|
+
};
|
|
44
|
+
const pick = (items) => items[intBetween(0, Math.max(0, items.length - 1))];
|
|
45
|
+
const pad = (value, length = 2) => String(value).padStart(length, "0");
|
|
46
|
+
const formatDate = (date, format) => {
|
|
47
|
+
const offsetMin = -date.getTimezoneOffset();
|
|
48
|
+
const offsetSign = offsetMin >= 0 ? "+" : "-";
|
|
49
|
+
const offsetH = Math.floor(Math.abs(offsetMin) / 60);
|
|
50
|
+
const offsetM = Math.abs(offsetMin) % 60;
|
|
51
|
+
return format
|
|
52
|
+
.replace(/YYYY/g, String(date.getFullYear()))
|
|
53
|
+
.replace(/MM/g, pad(date.getMonth() + 1))
|
|
54
|
+
.replace(/DD/g, pad(date.getDate()))
|
|
55
|
+
.replace(/HH/g, pad(date.getHours()))
|
|
56
|
+
.replace(/mm/g, pad(date.getMinutes()))
|
|
57
|
+
.replace(/ss/g, pad(date.getSeconds()))
|
|
58
|
+
.replace(/SSS/g, pad(date.getMilliseconds(), 3))
|
|
59
|
+
.replace(/Z/g, `${offsetSign}${pad(offsetH)}:${pad(offsetM)}`);
|
|
60
|
+
};
|
|
61
|
+
const randomString = (length = 12) => {
|
|
62
|
+
const n = Math.max(1, Math.min(128, Math.trunc(length)));
|
|
63
|
+
let out = "";
|
|
64
|
+
for (let i = 0; i < n; i += 1) {
|
|
65
|
+
out += STRING_ALPHABET[intBetween(0, STRING_ALPHABET.length - 1)];
|
|
66
|
+
}
|
|
67
|
+
return out;
|
|
68
|
+
};
|
|
69
|
+
return {
|
|
70
|
+
uuid() {
|
|
71
|
+
if (typeof crypto !== "undefined" && typeof crypto.randomUUID === "function") {
|
|
72
|
+
return crypto.randomUUID();
|
|
73
|
+
}
|
|
74
|
+
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (token) => {
|
|
75
|
+
const v = Math.floor(rng() * 16);
|
|
76
|
+
const r = token === "x" ? v : (v & 0x3) | 0x8;
|
|
77
|
+
return r.toString(16);
|
|
78
|
+
});
|
|
79
|
+
},
|
|
80
|
+
int(min = 0, max = 999_999) {
|
|
81
|
+
return String(intBetween(min, max));
|
|
82
|
+
},
|
|
83
|
+
string: randomString,
|
|
84
|
+
email() {
|
|
85
|
+
const local = `${pick(FIRST_NAMES).toLowerCase()}.${randomString(6).toLowerCase()}`;
|
|
86
|
+
return `${local}@${pick(EMAIL_DOMAINS)}`;
|
|
87
|
+
},
|
|
88
|
+
phone() {
|
|
89
|
+
return `+1${intBetween(2_000_000_000, 9_999_999_999)}`;
|
|
90
|
+
},
|
|
91
|
+
name() {
|
|
92
|
+
return `${pick(FIRST_NAMES)} ${pick(LAST_NAMES)}`;
|
|
93
|
+
},
|
|
94
|
+
date(format = "YYYY-MM-DD") {
|
|
95
|
+
return formatDate(new Date(Date.now() + intBetween(-365, 365) * 24 * 60 * 60 * 1000), format);
|
|
96
|
+
},
|
|
97
|
+
boolean() {
|
|
98
|
+
return rng() >= 0.5 ? "true" : "false";
|
|
99
|
+
},
|
|
100
|
+
bigdecimal(min = 0, max = 100_000, scale = 6) {
|
|
101
|
+
const integer = intBetween(min, max);
|
|
102
|
+
const width = Math.max(1, Math.min(12, scale));
|
|
103
|
+
let fraction = "";
|
|
104
|
+
for (let i = 0; i < width; i += 1) {
|
|
105
|
+
fraction += String(intBetween(0, 9));
|
|
106
|
+
}
|
|
107
|
+
return `${integer}.${fraction}`;
|
|
108
|
+
},
|
|
109
|
+
};
|
|
110
|
+
};
|
|
111
|
+
//# sourceMappingURL=random.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"random.js","sourceRoot":"","sources":["../../../src/script/features/random.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ScriptRedisCapability } from "../types.js";
|
|
2
|
+
export interface RedisApi {
|
|
3
|
+
get: (key: unknown) => unknown;
|
|
4
|
+
results: {
|
|
5
|
+
pre: unknown[];
|
|
6
|
+
post: unknown[];
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
export declare const buildRedisApi: (redis: ScriptRedisCapability | null | undefined) => RedisApi;
|
|
10
|
+
//# sourceMappingURL=redis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../../src/script/features/redis.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEzD,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC;IAC/B,OAAO,EAAE;QAAE,GAAG,EAAE,OAAO,EAAE,CAAC;QAAC,IAAI,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC;CAC9C;AAED,eAAO,MAAM,aAAa,GAAI,OAAO,qBAAqB,GAAG,IAAI,GAAG,SAAS,KAAG,QAgB/E,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// pm.redis — collection-runner Redis data view (read-only).
|
|
2
|
+
//
|
|
3
|
+
// Values come from the host (pre-request Redis command results, populated
|
|
4
|
+
// outside the sandbox). The script can fetch by key via `pm.redis.get(key)`
|
|
5
|
+
// and inspect raw command results via `pm.redis.results.{pre, post}`.
|
|
6
|
+
export const buildRedisApi = (redis) => {
|
|
7
|
+
const values = redis?.values ?? {};
|
|
8
|
+
const pre = Array.isArray(redis?.results?.pre) ? [...redis.results.pre] : [];
|
|
9
|
+
const post = Array.isArray(redis?.results?.post) ? [...redis.results.post] : [];
|
|
10
|
+
return {
|
|
11
|
+
get: (key) => {
|
|
12
|
+
const normalizedKey = String(key ?? "").trim();
|
|
13
|
+
if (!normalizedKey) {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
const value = values[normalizedKey];
|
|
17
|
+
return value === undefined ? null : value;
|
|
18
|
+
},
|
|
19
|
+
results: { pre, post },
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=redis.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redis.js","sourceRoot":"","sources":["../../../src/script/features/redis.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,EAAE;AACF,0EAA0E;AAC1E,4EAA4E;AAC5E,sEAAsE;AAStE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAA+C,EAAY,EAAE;IACzF,MAAM,MAAM,GAAG,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC;IACnC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7E,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEhF,OAAO;QACL,GAAG,EAAE,CAAC,GAAY,EAAW,EAAE;YAC7B,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC/C,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,KAAK,GAAI,MAAkC,CAAC,aAAa,CAAC,CAAC;YACjE,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAC5C,CAAC;QACD,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE;KACvB,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -3,7 +3,13 @@ export interface TestCollector {
|
|
|
3
3
|
test: (name: string, fn: ((() => unknown | Promise<unknown>) | undefined)) => Promise<void>;
|
|
4
4
|
skip: (name: string, reason?: string) => void;
|
|
5
5
|
testResults: ScriptTestResult[];
|
|
6
|
+
deferredTestNames: string[];
|
|
6
7
|
flush: () => Promise<void>;
|
|
8
|
+
isInsideCallback: () => boolean;
|
|
7
9
|
}
|
|
8
|
-
export
|
|
10
|
+
export interface TestCollectorOptions {
|
|
11
|
+
allowDeferredKafkaTests?: boolean;
|
|
12
|
+
selectedTestNames?: string[];
|
|
13
|
+
}
|
|
14
|
+
export declare const buildTestCollector: (_stage: ScriptStage, options?: TestCollectorOptions) => TestCollector;
|
|
9
15
|
//# sourceMappingURL=tests.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../../src/script/features/tests.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../../src/script/features/tests.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AA2DjE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,CACJ,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,CAAC,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,KACjD,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,gBAAgB,EAAE,MAAM,OAAO,CAAC;CACjC;AAOD,MAAM,WAAW,oBAAoB;IACnC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,WAAW,EACnB,UAAS,oBAAyB,KACjC,aA4FF,CAAC"}
|
|
@@ -1,9 +1,18 @@
|
|
|
1
1
|
// pm.test collector — runs each callback as a fire-and-forget Promise that
|
|
2
2
|
// resolves to PASS/FAIL/SKIP and surfaces the result via `flush()`.
|
|
3
3
|
//
|
|
4
|
-
//
|
|
5
|
-
//
|
|
6
|
-
//
|
|
4
|
+
// Two collection-runner extensions:
|
|
5
|
+
// 1. selectedTestNames — when present, only tests whose name appears in
|
|
6
|
+
// the set actually execute. Used for kafka-deferred re-runs where the
|
|
7
|
+
// caller wants to retry only previously-pending tests.
|
|
8
|
+
// 2. allowDeferredKafkaTests — when true, a thrown
|
|
9
|
+
// PendingKafkaDependencyError is caught and routed to deferredTestNames
|
|
10
|
+
// (instead of being recorded as a FAIL). The caller re-invokes the
|
|
11
|
+
// script later with kafka data populated.
|
|
12
|
+
// 3. DisabledFeatureDependencyError is recognized regardless and produces
|
|
13
|
+
// a SKIP test result with a descriptive error message.
|
|
14
|
+
import { DisabledFeatureDependencyError } from "./feature-policy.js";
|
|
15
|
+
import { PendingKafkaDependencyError } from "./kafka.js";
|
|
7
16
|
// Errors thrown inside the vm context cross a realm boundary, which means
|
|
8
17
|
// `error instanceof Error` from the host's perspective is FALSE even when
|
|
9
18
|
// the value has a real .message property. Read the message structurally
|
|
@@ -20,43 +29,119 @@ const extractErrorMessage = (error) => {
|
|
|
20
29
|
}
|
|
21
30
|
return String(error);
|
|
22
31
|
};
|
|
32
|
+
// Cross-realm error name extraction — used to recognize symbolically named
|
|
33
|
+
// errors like PendingKafkaDependencyError that may arrive as cross-realm
|
|
34
|
+
// values failing instanceof checks.
|
|
35
|
+
const extractErrorName = (error) => {
|
|
36
|
+
if (error instanceof Error) {
|
|
37
|
+
return error.name;
|
|
38
|
+
}
|
|
39
|
+
if (error &&
|
|
40
|
+
typeof error === "object" &&
|
|
41
|
+
"name" in error &&
|
|
42
|
+
typeof error.name === "string") {
|
|
43
|
+
return error.name;
|
|
44
|
+
}
|
|
45
|
+
return "";
|
|
46
|
+
};
|
|
47
|
+
const isPendingKafkaError = (error) => error instanceof PendingKafkaDependencyError ||
|
|
48
|
+
extractErrorName(error) === "PendingKafkaDependencyError";
|
|
49
|
+
const isDisabledFeatureError = (error) => {
|
|
50
|
+
if (error instanceof DisabledFeatureDependencyError) {
|
|
51
|
+
return { feature: error.feature };
|
|
52
|
+
}
|
|
53
|
+
if (extractErrorName(error) === "DisabledFeatureDependencyError") {
|
|
54
|
+
const feature = error.feature;
|
|
55
|
+
if (feature === "database" || feature === "kafka") {
|
|
56
|
+
return { feature };
|
|
57
|
+
}
|
|
58
|
+
return { feature: "database" };
|
|
59
|
+
}
|
|
60
|
+
return null;
|
|
61
|
+
};
|
|
23
62
|
const normalizeName = (name) => {
|
|
24
63
|
const trimmed = String(name ?? "").trim();
|
|
25
64
|
return trimmed || "Unnamed test";
|
|
26
65
|
};
|
|
27
|
-
export const buildTestCollector = (_stage) => {
|
|
28
|
-
const
|
|
66
|
+
export const buildTestCollector = (_stage, options = {}) => {
|
|
67
|
+
const orderedResults = [];
|
|
68
|
+
const finalResults = [];
|
|
69
|
+
const deferredTestNames = [];
|
|
29
70
|
const pending = [];
|
|
71
|
+
const selected = options.selectedTestNames ? new Set(options.selectedTestNames) : null;
|
|
72
|
+
let activeCallbackCount = 0;
|
|
30
73
|
const test = (name, fn) => {
|
|
31
74
|
const normalizedName = normalizeName(name);
|
|
75
|
+
if (selected && !selected.has(normalizedName)) {
|
|
76
|
+
return Promise.resolve();
|
|
77
|
+
}
|
|
78
|
+
const resultIndex = orderedResults.push(null) - 1;
|
|
32
79
|
const task = Promise.resolve()
|
|
33
80
|
.then(async () => {
|
|
34
81
|
if (typeof fn !== "function") {
|
|
35
82
|
throw new Error("pm.test requires a callback function");
|
|
36
83
|
}
|
|
37
|
-
|
|
38
|
-
|
|
84
|
+
activeCallbackCount += 1;
|
|
85
|
+
try {
|
|
86
|
+
await fn();
|
|
87
|
+
}
|
|
88
|
+
finally {
|
|
89
|
+
activeCallbackCount = Math.max(0, activeCallbackCount - 1);
|
|
90
|
+
}
|
|
91
|
+
orderedResults[resultIndex] = {
|
|
92
|
+
name: normalizedName,
|
|
93
|
+
status: "PASS",
|
|
94
|
+
};
|
|
39
95
|
})
|
|
40
96
|
.catch((error) => {
|
|
41
|
-
|
|
97
|
+
const disabled = isDisabledFeatureError(error);
|
|
98
|
+
if (disabled) {
|
|
99
|
+
orderedResults[resultIndex] = {
|
|
100
|
+
name: normalizedName,
|
|
101
|
+
status: "SKIP",
|
|
102
|
+
error: disabled.feature === "database"
|
|
103
|
+
? "Skipped because database execution is disabled for this collection runner."
|
|
104
|
+
: "Skipped because Kafka execution is disabled for this collection runner.",
|
|
105
|
+
};
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
if (options.allowDeferredKafkaTests && isPendingKafkaError(error)) {
|
|
109
|
+
orderedResults[resultIndex] = null;
|
|
110
|
+
deferredTestNames.push(normalizedName);
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
orderedResults[resultIndex] = {
|
|
42
114
|
name: normalizedName,
|
|
43
115
|
status: "FAIL",
|
|
44
116
|
error: extractErrorMessage(error),
|
|
45
|
-
}
|
|
117
|
+
};
|
|
46
118
|
});
|
|
47
119
|
pending.push(task);
|
|
48
120
|
return task;
|
|
49
121
|
};
|
|
50
122
|
const skip = (name, reason) => {
|
|
51
|
-
|
|
123
|
+
const result = {
|
|
52
124
|
name: normalizeName(name),
|
|
53
125
|
status: "SKIP",
|
|
54
126
|
...(reason ? { error: reason } : {}),
|
|
55
|
-
}
|
|
127
|
+
};
|
|
128
|
+
orderedResults.push(result);
|
|
56
129
|
};
|
|
57
130
|
const flush = async () => {
|
|
58
131
|
await Promise.allSettled(pending);
|
|
132
|
+
for (const entry of orderedResults) {
|
|
133
|
+
if (entry !== null) {
|
|
134
|
+
finalResults.push(entry);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
return {
|
|
139
|
+
test,
|
|
140
|
+
skip,
|
|
141
|
+
testResults: finalResults,
|
|
142
|
+
deferredTestNames,
|
|
143
|
+
flush,
|
|
144
|
+
isInsideCallback: () => activeCallbackCount > 0,
|
|
59
145
|
};
|
|
60
|
-
return { test, skip, testResults, flush };
|
|
61
146
|
};
|
|
62
147
|
//# sourceMappingURL=tests.js.map
|
|
@@ -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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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export interface VariablesApi {
|
|
2
|
+
resolve: (input: unknown) => string;
|
|
3
|
+
replaceIn: (input: unknown) => string;
|
|
4
|
+
}
|
|
5
|
+
export declare const buildVariablesApi: (environment: Record<string, string>, globals: Record<string, string>) => VariablesApi;
|
|
6
|
+
//# sourceMappingURL=variables.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variables.d.ts","sourceRoot":"","sources":["../../../src/script/features/variables.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IACpC,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;CACvC;AASD,eAAO,MAAM,iBAAiB,GAC5B,aAAa,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACnC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAC9B,YAYF,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// pm.variables — collection-runner template resolver.
|
|
2
|
+
//
|
|
3
|
+
// Bridges the script sandbox to callman-core's existing template resolver
|
|
4
|
+
// (callman_core/src/variables/resolver.ts). Merges env + globals into a
|
|
5
|
+
// single lookup table so user scripts can call:
|
|
6
|
+
// pm.variables.resolve("Hello {{name}}")
|
|
7
|
+
// regardless of which scope `name` lives in.
|
|
8
|
+
import { resolveTemplate } from "../../variables/resolver.js";
|
|
9
|
+
const stringifyInput = (value) => {
|
|
10
|
+
if (value === undefined || value === null) {
|
|
11
|
+
return "";
|
|
12
|
+
}
|
|
13
|
+
return String(value);
|
|
14
|
+
};
|
|
15
|
+
export const buildVariablesApi = (environment, globals) => {
|
|
16
|
+
// Merge with environment taking precedence over globals (matches the
|
|
17
|
+
// electron runtime.ts behavior where env was spread after globals).
|
|
18
|
+
const mergedScope = { ...globals, ...environment };
|
|
19
|
+
const resolve = (input) => resolveTemplate(stringifyInput(input), { env: mergedScope });
|
|
20
|
+
return {
|
|
21
|
+
resolve,
|
|
22
|
+
replaceIn: resolve,
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=variables.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variables.js","sourceRoot":"","sources":["../../../src/script/features/variables.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,EAAE;AACF,0EAA0E;AAC1E,wEAAwE;AACxE,gDAAgD;AAChD,2CAA2C;AAC3C,6CAA6C;AAE7C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAO9D,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;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,WAAmC,EACnC,OAA+B,EACjB,EAAE;IAChB,qEAAqE;IACrE,oEAAoE;IACpE,MAAM,WAAW,GAA2B,EAAE,GAAG,OAAO,EAAE,GAAG,WAAW,EAAE,CAAC;IAE3E,MAAM,OAAO,GAAG,CAAC,KAAc,EAAU,EAAE,CACzC,eAAe,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;IAE/D,OAAO;QACL,OAAO;QACP,SAAS,EAAE,OAAO;KACnB,CAAC;AACJ,CAAC,CAAC"}
|
package/dist/script/scope.d.ts
CHANGED
|
@@ -9,6 +9,13 @@ export interface ScopeBindings {
|
|
|
9
9
|
test?: unknown;
|
|
10
10
|
expect?: unknown;
|
|
11
11
|
console?: Record<string, (...args: unknown[]) => void>;
|
|
12
|
+
db?: unknown;
|
|
13
|
+
kafka?: unknown;
|
|
14
|
+
redis?: unknown;
|
|
15
|
+
random?: unknown;
|
|
16
|
+
counter?: unknown;
|
|
17
|
+
variables?: unknown;
|
|
18
|
+
CryptoJS?: unknown;
|
|
12
19
|
labelGlobals?: Record<string, unknown>;
|
|
13
20
|
}
|
|
14
21
|
export declare const buildScopeTarget: (bindings: ScopeBindings) => Record<string, unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../../src/script/scope.ts"],"names":[],"mappings":"AAiFA,eAAO,MAAM,oBAAoB,aAgB/B,CAAC;AAEH,eAAO,MAAM,8BAA8B,QAAuB,CAAC;AAEnE,MAAM,WAAW,aAAa;IAE5B,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAM5B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../../src/script/scope.ts"],"names":[],"mappings":"AAiFA,eAAO,MAAM,oBAAoB,aAgB/B,CAAC;AAEH,eAAO,MAAM,8BAA8B,QAAuB,CAAC;AAEnE,MAAM,WAAW,aAAa;IAE5B,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAM5B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC;IAIvD,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAGnB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC;AAED,eAAO,MAAM,gBAAgB,GAAI,UAAU,aAAa,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CA4DhF,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAiBrF,CAAC"}
|