callman-core 1.0.5 → 1.1.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 (183) hide show
  1. package/dist/index.d.ts +4 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +3 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/scenario-runner/condition.d.ts.map +1 -1
  6. package/dist/scenario-runner/condition.js +10 -0
  7. package/dist/scenario-runner/condition.js.map +1 -1
  8. package/dist/scenario-runner/index.d.ts +1 -0
  9. package/dist/scenario-runner/index.d.ts.map +1 -1
  10. package/dist/scenario-runner/index.js +1 -0
  11. package/dist/scenario-runner/index.js.map +1 -1
  12. package/dist/scenario-runner/nodePolicy.d.ts +2 -2
  13. package/dist/scenario-runner/nodePolicy.d.ts.map +1 -1
  14. package/dist/scenario-runner/nodePolicy.js +8 -0
  15. package/dist/scenario-runner/nodePolicy.js.map +1 -1
  16. package/dist/scenario-runner/notification/index.d.ts +7 -0
  17. package/dist/scenario-runner/notification/index.d.ts.map +1 -0
  18. package/dist/scenario-runner/notification/index.js +14 -0
  19. package/dist/scenario-runner/notification/index.js.map +1 -0
  20. package/dist/scenario-runner/notification/providers/provider.interface.d.ts +20 -0
  21. package/dist/scenario-runner/notification/providers/provider.interface.d.ts.map +1 -0
  22. package/dist/scenario-runner/notification/providers/provider.interface.js +2 -0
  23. package/dist/scenario-runner/notification/providers/provider.interface.js.map +1 -0
  24. package/dist/scenario-runner/notification/providers/slack.provider.d.ts +3 -0
  25. package/dist/scenario-runner/notification/providers/slack.provider.d.ts.map +1 -0
  26. package/dist/scenario-runner/notification/providers/slack.provider.js +85 -0
  27. package/dist/scenario-runner/notification/providers/slack.provider.js.map +1 -0
  28. package/dist/scenario-runner/notification/template.d.ts +2 -0
  29. package/dist/scenario-runner/notification/template.d.ts.map +1 -0
  30. package/dist/scenario-runner/notification/template.js +9 -0
  31. package/dist/scenario-runner/notification/template.js.map +1 -0
  32. package/dist/scenario-runner/runScenario.d.ts.map +1 -1
  33. package/dist/scenario-runner/runScenario.js +80 -4
  34. package/dist/scenario-runner/runScenario.js.map +1 -1
  35. package/dist/scenario-runner/types.d.ts +49 -3
  36. package/dist/scenario-runner/types.d.ts.map +1 -1
  37. package/dist/script/errors.d.ts +3 -0
  38. package/dist/script/errors.d.ts.map +1 -0
  39. package/dist/script/errors.js +68 -0
  40. package/dist/script/errors.js.map +1 -0
  41. package/dist/script/executor.d.ts +5 -0
  42. package/dist/script/executor.d.ts.map +1 -0
  43. package/dist/script/executor.js +192 -0
  44. package/dist/script/executor.js.map +1 -0
  45. package/dist/script/features/assertions.d.ts +46 -0
  46. package/dist/script/features/assertions.d.ts.map +1 -0
  47. package/dist/script/features/assertions.js +264 -0
  48. package/dist/script/features/assertions.js.map +1 -0
  49. package/dist/script/features/environment.d.ts +11 -0
  50. package/dist/script/features/environment.d.ts.map +1 -0
  51. package/dist/script/features/environment.js +61 -0
  52. package/dist/script/features/environment.js.map +1 -0
  53. package/dist/script/features/log.d.ts +15 -0
  54. package/dist/script/features/log.d.ts.map +1 -0
  55. package/dist/script/features/log.js +59 -0
  56. package/dist/script/features/log.js.map +1 -0
  57. package/dist/script/features/node.d.ts +14 -0
  58. package/dist/script/features/node.d.ts.map +1 -0
  59. package/dist/script/features/node.js +82 -0
  60. package/dist/script/features/node.js.map +1 -0
  61. package/dist/script/features/request.d.ts +23 -0
  62. package/dist/script/features/request.d.ts.map +1 -0
  63. package/dist/script/features/request.js +105 -0
  64. package/dist/script/features/request.js.map +1 -0
  65. package/dist/script/features/response.d.ts +25 -0
  66. package/dist/script/features/response.d.ts.map +1 -0
  67. package/dist/script/features/response.js +43 -0
  68. package/dist/script/features/response.js.map +1 -0
  69. package/dist/script/features/tests.d.ts +9 -0
  70. package/dist/script/features/tests.d.ts.map +1 -0
  71. package/dist/script/features/tests.js +62 -0
  72. package/dist/script/features/tests.js.map +1 -0
  73. package/dist/script/legacy.d.ts +4 -0
  74. package/dist/script/legacy.d.ts.map +1 -0
  75. package/dist/script/legacy.js +128 -0
  76. package/dist/script/legacy.js.map +1 -0
  77. package/dist/script/sandbox.d.ts +16 -0
  78. package/dist/script/sandbox.d.ts.map +1 -0
  79. package/dist/script/sandbox.js +51 -0
  80. package/dist/script/sandbox.js.map +1 -0
  81. package/dist/script/scope.d.ts +16 -0
  82. package/dist/script/scope.d.ts.map +1 -0
  83. package/dist/script/scope.js +151 -0
  84. package/dist/script/scope.js.map +1 -0
  85. package/dist/script/scriptEngine.d.ts +2 -2
  86. package/dist/script/scriptEngine.d.ts.map +1 -1
  87. package/dist/script/scriptEngine.js +7 -105
  88. package/dist/script/scriptEngine.js.map +1 -1
  89. package/dist/script/timeout.d.ts +3 -0
  90. package/dist/script/timeout.d.ts.map +1 -0
  91. package/dist/script/timeout.js +38 -0
  92. package/dist/script/timeout.js.map +1 -0
  93. package/dist/script/types.d.ts +94 -0
  94. package/dist/script/types.d.ts.map +1 -0
  95. package/dist/script/types.js +7 -0
  96. package/dist/script/types.js.map +1 -0
  97. package/dist-cjs/contract/contractValidator.js +236 -0
  98. package/dist-cjs/contract/contractValidator.js.map +1 -0
  99. package/dist-cjs/index.js +41 -0
  100. package/dist-cjs/index.js.map +1 -0
  101. package/dist-cjs/package.json +1 -0
  102. package/dist-cjs/request/executeRequest.js +33 -0
  103. package/dist-cjs/request/executeRequest.js.map +1 -0
  104. package/dist-cjs/runner/requestRunner.js +102 -0
  105. package/dist-cjs/runner/requestRunner.js.map +1 -0
  106. package/dist-cjs/runner/runCollection.js +53 -0
  107. package/dist-cjs/runner/runCollection.js.map +1 -0
  108. package/dist-cjs/scenario-runner/condition.js +1735 -0
  109. package/dist-cjs/scenario-runner/condition.js.map +1 -0
  110. package/dist-cjs/scenario-runner/conditionTypes.js +3 -0
  111. package/dist-cjs/scenario-runner/conditionTypes.js.map +1 -0
  112. package/dist-cjs/scenario-runner/executionPolicyRunner.js +53 -0
  113. package/dist-cjs/scenario-runner/executionPolicyRunner.js.map +1 -0
  114. package/dist-cjs/scenario-runner/graphTraversal.js +27 -0
  115. package/dist-cjs/scenario-runner/graphTraversal.js.map +1 -0
  116. package/dist-cjs/scenario-runner/index.js +39 -0
  117. package/dist-cjs/scenario-runner/index.js.map +1 -0
  118. package/dist-cjs/scenario-runner/nodePolicy.js +127 -0
  119. package/dist-cjs/scenario-runner/nodePolicy.js.map +1 -0
  120. package/dist-cjs/scenario-runner/notification/index.js +18 -0
  121. package/dist-cjs/scenario-runner/notification/index.js.map +1 -0
  122. package/dist-cjs/scenario-runner/notification/providers/provider.interface.js +3 -0
  123. package/dist-cjs/scenario-runner/notification/providers/provider.interface.js.map +1 -0
  124. package/dist-cjs/scenario-runner/notification/providers/slack.provider.js +88 -0
  125. package/dist-cjs/scenario-runner/notification/providers/slack.provider.js.map +1 -0
  126. package/dist-cjs/scenario-runner/notification/template.js +13 -0
  127. package/dist-cjs/scenario-runner/notification/template.js.map +1 -0
  128. package/dist-cjs/scenario-runner/retryExecutor.js +57 -0
  129. package/dist-cjs/scenario-runner/retryExecutor.js.map +1 -0
  130. package/dist-cjs/scenario-runner/runScenario.js +1545 -0
  131. package/dist-cjs/scenario-runner/runScenario.js.map +1 -0
  132. package/dist-cjs/scenario-runner/templateResolver.js +468 -0
  133. package/dist-cjs/scenario-runner/templateResolver.js.map +1 -0
  134. package/dist-cjs/scenario-runner/types.js +3 -0
  135. package/dist-cjs/scenario-runner/types.js.map +1 -0
  136. package/dist-cjs/scenario-runner/waitNodeExecutor.js +71 -0
  137. package/dist-cjs/scenario-runner/waitNodeExecutor.js.map +1 -0
  138. package/dist-cjs/script/errors.js +72 -0
  139. package/dist-cjs/script/errors.js.map +1 -0
  140. package/dist-cjs/script/executor.js +197 -0
  141. package/dist-cjs/script/executor.js.map +1 -0
  142. package/dist-cjs/script/features/assertions.js +269 -0
  143. package/dist-cjs/script/features/assertions.js.map +1 -0
  144. package/dist-cjs/script/features/environment.js +65 -0
  145. package/dist-cjs/script/features/environment.js.map +1 -0
  146. package/dist-cjs/script/features/log.js +64 -0
  147. package/dist-cjs/script/features/log.js.map +1 -0
  148. package/dist-cjs/script/features/node.js +89 -0
  149. package/dist-cjs/script/features/node.js.map +1 -0
  150. package/dist-cjs/script/features/request.js +109 -0
  151. package/dist-cjs/script/features/request.js.map +1 -0
  152. package/dist-cjs/script/features/response.js +47 -0
  153. package/dist-cjs/script/features/response.js.map +1 -0
  154. package/dist-cjs/script/features/tests.js +66 -0
  155. package/dist-cjs/script/features/tests.js.map +1 -0
  156. package/dist-cjs/script/legacy.js +132 -0
  157. package/dist-cjs/script/legacy.js.map +1 -0
  158. package/dist-cjs/script/pmApi.js +353 -0
  159. package/dist-cjs/script/pmApi.js.map +1 -0
  160. package/dist-cjs/script/sandbox.js +91 -0
  161. package/dist-cjs/script/sandbox.js.map +1 -0
  162. package/dist-cjs/script/scope.js +156 -0
  163. package/dist-cjs/script/scope.js.map +1 -0
  164. package/dist-cjs/script/scriptEngine.js +12 -0
  165. package/dist-cjs/script/scriptEngine.js.map +1 -0
  166. package/dist-cjs/script/timeout.js +43 -0
  167. package/dist-cjs/script/timeout.js.map +1 -0
  168. package/dist-cjs/script/types.js +8 -0
  169. package/dist-cjs/script/types.js.map +1 -0
  170. package/dist-cjs/types/index.js +3 -0
  171. package/dist-cjs/types/index.js.map +1 -0
  172. package/dist-cjs/utils/get.js +52 -0
  173. package/dist-cjs/utils/get.js.map +1 -0
  174. package/dist-cjs/utils/random.js +87 -0
  175. package/dist-cjs/utils/random.js.map +1 -0
  176. package/dist-cjs/variables/envStore.js +24 -0
  177. package/dist-cjs/variables/envStore.js.map +1 -0
  178. package/dist-cjs/variables/resolver.js +95 -0
  179. package/dist-cjs/variables/resolver.js.map +1 -0
  180. package/package.json +19 -3
  181. package/samples/runSample.mjs +0 -128
  182. package/tests/waitNode.test.mjs +0 -311
  183. package/tsconfig.json +0 -18
@@ -0,0 +1,151 @@
1
+ // Reserved globals + scope target builder for the canonical sandbox.
2
+ //
3
+ // The "allowed" list is intentionally larger than callman-core's legacy
4
+ // scriptEngine — it adopts the union seen in the backend/electron sandboxes
5
+ // (Error subclasses, Map/Set, Symbol, BigInt, TextEncoder/Decoder). This
6
+ // is documented as an intentional behavior change for callers that came
7
+ // from the older A path.
8
+ //
9
+ // The "blocked" set is the safety floor: these names are always undefined
10
+ // in user scripts, regardless of what the caller passes in `bindings`.
11
+ const ALLOWED_GLOBALS = {
12
+ JSON,
13
+ Math,
14
+ Number,
15
+ String,
16
+ Boolean,
17
+ Array,
18
+ Object,
19
+ Date,
20
+ RegExp,
21
+ Promise,
22
+ Error,
23
+ TypeError,
24
+ ReferenceError,
25
+ SyntaxError,
26
+ RangeError,
27
+ EvalError,
28
+ URIError,
29
+ AggregateError,
30
+ Map,
31
+ Set,
32
+ WeakMap,
33
+ WeakSet,
34
+ Symbol,
35
+ BigInt,
36
+ URL,
37
+ URLSearchParams,
38
+ TextEncoder,
39
+ TextDecoder,
40
+ parseInt,
41
+ parseFloat,
42
+ encodeURIComponent,
43
+ decodeURIComponent,
44
+ isFinite,
45
+ isNaN,
46
+ // Sentinel values — these are not constructors but are safe to expose
47
+ undefined,
48
+ NaN,
49
+ Infinity,
50
+ };
51
+ const BLOCKED_GLOBALS = [
52
+ "eval",
53
+ "Function",
54
+ "Buffer",
55
+ "setTimeout",
56
+ "clearTimeout",
57
+ "setInterval",
58
+ "clearInterval",
59
+ "fetch",
60
+ "XMLHttpRequest",
61
+ "WebSocket",
62
+ "Worker",
63
+ "window",
64
+ "document",
65
+ "self",
66
+ "globalThis",
67
+ "global",
68
+ "process",
69
+ "require",
70
+ "module",
71
+ "exports",
72
+ "navigator",
73
+ "importScripts",
74
+ ];
75
+ // Names that the caller cannot use as a "label-as-global" workflow key.
76
+ // Exposing a workflow node named `pm` or `eval` would shadow the built-in
77
+ // API or reintroduce a blocked global, so we reject these reservations
78
+ // when building label globals.
79
+ export const RESERVED_LABEL_NAMES = new Set([
80
+ ...Object.keys(ALLOWED_GLOBALS),
81
+ ...BLOCKED_GLOBALS,
82
+ "pm",
83
+ "env",
84
+ "console",
85
+ "request",
86
+ "response",
87
+ "test",
88
+ "expect",
89
+ "workflow",
90
+ // Backend reserves these specifically to keep label globals from clashing
91
+ // with planned db/kafka/redis runtime APIs (Sandbox D / future).
92
+ "db",
93
+ "kafka",
94
+ "redis",
95
+ ]);
96
+ export const VALID_LABEL_IDENTIFIER_PATTERN = /^[A-Za-z_$][\w$]*$/;
97
+ export const buildScopeTarget = (bindings) => {
98
+ const target = {
99
+ ...ALLOWED_GLOBALS,
100
+ pm: bindings.pm,
101
+ };
102
+ if (bindings.env !== undefined) {
103
+ target.env = bindings.env;
104
+ }
105
+ if (bindings.environment !== undefined) {
106
+ target.environment = bindings.environment;
107
+ }
108
+ if (bindings.request !== undefined) {
109
+ target.request = bindings.request;
110
+ }
111
+ if (bindings.response !== undefined) {
112
+ target.response = bindings.response;
113
+ }
114
+ if (bindings.test !== undefined) {
115
+ target.test = bindings.test;
116
+ }
117
+ if (bindings.expect !== undefined) {
118
+ target.expect = bindings.expect;
119
+ }
120
+ if (bindings.console !== undefined) {
121
+ target.console = bindings.console;
122
+ }
123
+ if (bindings.labelGlobals) {
124
+ for (const [name, value] of Object.entries(bindings.labelGlobals)) {
125
+ target[name] = value;
126
+ }
127
+ }
128
+ // Always blocked — overwrite anything labelGlobals tried to slip in.
129
+ for (const name of BLOCKED_GLOBALS) {
130
+ target[name] = undefined;
131
+ }
132
+ return target;
133
+ };
134
+ export const createScopeProxy = (target) => new Proxy(target, {
135
+ has: () => true,
136
+ get(scopeTarget, property) {
137
+ if (property === Symbol.unscopables) {
138
+ return undefined;
139
+ }
140
+ return scopeTarget[property];
141
+ },
142
+ set(scopeTarget, property, value) {
143
+ scopeTarget[property] = value;
144
+ return true;
145
+ },
146
+ deleteProperty(scopeTarget, property) {
147
+ delete scopeTarget[property];
148
+ return true;
149
+ },
150
+ });
151
+ //# sourceMappingURL=scope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope.js","sourceRoot":"","sources":["../../src/script/scope.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import type { ScriptRunContext, TestResult } from "../types/index.js";
2
- export declare const runScript: (script: string | undefined, context: ScriptRunContext) => Promise<TestResult[]>;
1
+ export { runScript } from "./legacy.js";
2
+ export type { ScriptRunContext } from "./legacy.js";
3
3
  //# sourceMappingURL=scriptEngine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scriptEngine.d.ts","sourceRoot":"","sources":["../../src/script/scriptEngine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AA8EtE,eAAO,MAAM,SAAS,GACpB,QAAQ,MAAM,GAAG,SAAS,EAC1B,SAAS,gBAAgB,KACxB,OAAO,CAAC,UAAU,EAAE,CAuCtB,CAAC"}
1
+ {"version":3,"file":"scriptEngine.d.ts","sourceRoot":"","sources":["../../src/script/scriptEngine.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC"}
@@ -1,106 +1,8 @@
1
- import { createPmApi } from "./pmApi.js";
2
- const AsyncFunction = Object.getPrototypeOf(async function () {
3
- return undefined;
4
- }).constructor;
5
- const noopConsole = {
6
- log: () => undefined,
7
- info: () => undefined,
8
- warn: () => undefined,
9
- error: () => undefined,
10
- debug: () => undefined,
11
- };
12
- const buildScriptScope = (pm) => {
13
- const scopeTarget = {
14
- pm,
15
- request: pm.request,
16
- response: pm.response,
17
- test: pm.test,
18
- expect: pm.expect,
19
- environment: pm.environment,
20
- JSON,
21
- Math,
22
- Number,
23
- String,
24
- Boolean,
25
- Array,
26
- Object,
27
- Date,
28
- RegExp,
29
- Promise,
30
- parseInt,
31
- parseFloat,
32
- encodeURIComponent,
33
- decodeURIComponent,
34
- URL,
35
- URLSearchParams,
36
- setTimeout: undefined,
37
- clearTimeout: undefined,
38
- setInterval: undefined,
39
- clearInterval: undefined,
40
- fetch: undefined,
41
- XMLHttpRequest: undefined,
42
- WebSocket: undefined,
43
- Worker: undefined,
44
- Function: undefined,
45
- eval: undefined,
46
- console: noopConsole,
47
- window: undefined,
48
- document: undefined,
49
- self: undefined,
50
- globalThis: undefined,
51
- global: undefined,
52
- process: undefined,
53
- require: undefined,
54
- module: undefined,
55
- exports: undefined,
56
- navigator: undefined,
57
- };
58
- return new Proxy(scopeTarget, {
59
- has: () => true,
60
- get(target, property) {
61
- if (property === Symbol.unscopables) {
62
- return undefined;
63
- }
64
- return target[property];
65
- },
66
- set(target, property, value) {
67
- target[property] = value;
68
- return true;
69
- },
70
- });
71
- };
72
- export const runScript = async (script, context) => {
73
- if (!script?.trim()) {
74
- return [];
75
- }
76
- const results = [];
77
- const pendingTests = [];
78
- const pm = createPmApi(context, {
79
- addResult: (result) => {
80
- results.push(result);
81
- },
82
- addPending: (promise) => {
83
- pendingTests.push(promise);
84
- },
85
- });
86
- const scope = buildScriptScope(pm);
87
- const runner = new AsyncFunction("scope", "context", `return (async function () {
88
- with (scope) {
89
- ${script}
90
- }
91
- }).call(context);
92
- //# sourceURL=callman-script.js`);
93
- try {
94
- await runner(scope, Object.create(null));
95
- }
96
- catch (error) {
97
- results.push({
98
- name: "Script execution",
99
- status: "FAIL",
100
- message: error instanceof Error ? error.message : String(error),
101
- });
102
- }
103
- await Promise.allSettled(pendingTests);
104
- return results;
105
- };
1
+ // Backwards-compatibility re-export. The real implementation now lives in
2
+ // `legacy.ts` (which calls the canonical `executeScript`). Direct imports
3
+ // from this path stay working for any consumer that pinned to the
4
+ // pre-1.1.0 module layout.
5
+ //
6
+ // Prefer the package entry: `import { runScript } from "callman-core";`
7
+ export { runScript } from "./legacy.js";
106
8
  //# sourceMappingURL=scriptEngine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scriptEngine.js","sourceRoot":"","sources":["../../src/script/scriptEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scriptEngine.js","sourceRoot":"","sources":["../../src/script/scriptEngine.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,0EAA0E;AAC1E,kEAAkE;AAClE,2BAA2B;AAC3B,EAAE;AACF,wEAAwE;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const toHostPromise: <T>(value: T | PromiseLike<T>) => Promise<T>;
2
+ export declare const withAsyncTimeout: <T>(promise: Promise<T>, timeoutMs: number) => Promise<T>;
3
+ //# sourceMappingURL=timeout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeout.d.ts","sourceRoot":"","sources":["../../src/script/timeout.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,aAAa,GAAI,CAAC,EAAE,OAAO,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,CAAC,CAgBrE,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAU,CAAC,EACtC,SAAS,OAAO,CAAC,CAAC,CAAC,EACnB,WAAW,MAAM,KAChB,OAAO,CAAC,CAAC,CAgBR,CAAC"}
@@ -0,0 +1,38 @@
1
+ // Timeout utilities for the canonical script sandbox.
2
+ //
3
+ // vm.Script.runInContext exposes a `timeout` option that only enforces
4
+ // synchronous execution time — async loops bypass it. The outer
5
+ // withAsyncTimeout enforces the deadline against the awaited completion
6
+ // of the host promise, so an unresolved `await new Promise(() => {})`
7
+ // is rejected as a timeout instead of hanging indefinitely.
8
+ //
9
+ // toHostPromise re-wraps a thenable from the sandbox's vm context so
10
+ // that `Promise.race` and host-side `await` see a real host promise.
11
+ export const toHostPromise = (value) => {
12
+ if ((typeof value === "object" || typeof value === "function") &&
13
+ value !== null &&
14
+ typeof value.then === "function") {
15
+ return new Promise((resolve, reject) => {
16
+ try {
17
+ value.then(resolve, reject);
18
+ }
19
+ catch (error) {
20
+ reject(error);
21
+ }
22
+ });
23
+ }
24
+ return Promise.resolve(value);
25
+ };
26
+ export const withAsyncTimeout = async (promise, timeoutMs) => await new Promise((resolve, reject) => {
27
+ const timer = setTimeout(() => {
28
+ reject(new Error(`Script timed out after ${timeoutMs}ms`));
29
+ }, timeoutMs);
30
+ promise.then((value) => {
31
+ clearTimeout(timer);
32
+ resolve(value);
33
+ }, (error) => {
34
+ clearTimeout(timer);
35
+ reject(error);
36
+ });
37
+ });
38
+ //# sourceMappingURL=timeout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeout.js","sourceRoot":"","sources":["../../src/script/timeout.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,EAAE;AACF,uEAAuE;AACvE,gEAAgE;AAChE,wEAAwE;AACxE,sEAAsE;AACtE,4DAA4D;AAC5D,EAAE;AACF,qEAAqE;AACrE,qEAAqE;AAErE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAI,KAAyB,EAAc,EAAE;IACxE,IACE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU,CAAC;QAC1D,KAAK,KAAK,IAAI;QACd,OAAQ,KAAwB,CAAC,IAAI,KAAK,UAAU,EACpD,CAAC;QACD,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxC,IAAI,CAAC;gBACF,KAAwB,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAClD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC,OAAO,CAAC,KAAU,CAAC,CAAC;AACrC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,OAAmB,EACnB,SAAiB,EACL,EAAE,CACd,MAAM,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IACvC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;QAC5B,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,SAAS,IAAI,CAAC,CAAC,CAAC;IAC7D,CAAC,EAAE,SAAS,CAAC,CAAC;IAEd,OAAO,CAAC,IAAI,CACV,CAAC,KAAK,EAAE,EAAE;QACR,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC,EACD,CAAC,KAAc,EAAE,EAAE;QACjB,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,MAAM,CAAC,KAAK,CAAC,CAAC;IAChB,CAAC,CACF,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,94 @@
1
+ import type { ScenarioNodeExecutionMeta } from "../scenario-runner/types.js";
2
+ export type ScriptStage = "script" | "pre-request" | "tests" | "post-response";
3
+ export interface ScriptKeyValuePair {
4
+ key: string;
5
+ value: string;
6
+ enabled?: boolean;
7
+ }
8
+ export interface ScriptRequestBodyState {
9
+ mode: string;
10
+ raw: string;
11
+ formEntries: ScriptKeyValuePair[];
12
+ }
13
+ export interface ScriptRequestState {
14
+ method: string;
15
+ url: string;
16
+ headers: ScriptKeyValuePair[];
17
+ query: ScriptKeyValuePair[];
18
+ body: ScriptRequestBodyState;
19
+ }
20
+ export interface ScriptResponseState {
21
+ ok: boolean;
22
+ status: number;
23
+ statusText: string;
24
+ headers: Record<string, string>;
25
+ body: unknown;
26
+ jsonBody: unknown | null;
27
+ rawBody: string;
28
+ contentType: string;
29
+ durationMs: number;
30
+ sizeBytes: number;
31
+ cookies: string[];
32
+ }
33
+ export interface ScriptVariableMutation {
34
+ scope: "environment" | "global";
35
+ type: "set" | "unset";
36
+ key: string;
37
+ value?: string;
38
+ }
39
+ export interface ScriptLogEntry {
40
+ level: "log" | "info" | "warn" | "error" | "debug";
41
+ message: string;
42
+ }
43
+ export interface ScriptTestResult {
44
+ name: string;
45
+ status: "PASS" | "FAIL" | "SKIP";
46
+ error?: string;
47
+ lineNumber?: number | null;
48
+ column?: number | null;
49
+ }
50
+ export interface ScriptError {
51
+ stage: ScriptStage;
52
+ message: string;
53
+ lineNumber: number | null;
54
+ column: number | null;
55
+ stack: string | null;
56
+ }
57
+ export interface ScriptCapabilities {
58
+ environment?: {
59
+ values: Record<string, string>;
60
+ emitMutations?: boolean;
61
+ };
62
+ globals?: {
63
+ values: Record<string, string>;
64
+ emitMutations?: boolean;
65
+ };
66
+ request?: ScriptRequestState;
67
+ response?: ScriptResponseState;
68
+ trackRequestMutations?: boolean;
69
+ workflowContext?: Record<string, unknown>;
70
+ nodeMetaByLabel?: Record<string, ScenarioNodeExecutionMeta>;
71
+ exposeLabelsAsGlobals?: boolean;
72
+ extensions?: {
73
+ log?: boolean;
74
+ node?: boolean;
75
+ };
76
+ }
77
+ export interface ExecuteScriptInput {
78
+ script: string;
79
+ timeoutMs?: number;
80
+ filename?: string;
81
+ stage?: ScriptStage;
82
+ capabilities: ScriptCapabilities;
83
+ }
84
+ export interface ExecuteScriptResult {
85
+ success: boolean;
86
+ error: ScriptError | null;
87
+ testResults: ScriptTestResult[];
88
+ variableMutations: ScriptVariableMutation[];
89
+ logs: ScriptLogEntry[];
90
+ returnValue?: unknown;
91
+ hasReturnValue: boolean;
92
+ request?: ScriptRequestState;
93
+ }
94
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/script/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ // Public types for the canonical script sandbox.
2
+ //
3
+ // These types are the contract that backend, electron, and CLI consumers all
4
+ // share. Adding a new field is non-breaking; renaming or removing one is a
5
+ // breaking change that must bump the major version.
6
+ export {};
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/script/types.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,EAAE;AACF,6EAA6E;AAC7E,2EAA2E;AAC3E,oDAAoD"}