callman-core 1.41.0 → 1.43.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 +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/loadtest/from-collection.d.ts +8 -0
- package/dist/loadtest/from-collection.d.ts.map +1 -1
- package/dist/loadtest/from-collection.js +12 -2
- package/dist/loadtest/from-collection.js.map +1 -1
- package/dist/loadtest/index.d.ts +1 -1
- package/dist/loadtest/index.d.ts.map +1 -1
- package/dist/loadtest/index.js +1 -1
- package/dist/loadtest/index.js.map +1 -1
- package/dist/pipeline/config.d.ts +39 -0
- package/dist/pipeline/config.d.ts.map +1 -0
- package/dist/pipeline/config.js +71 -0
- package/dist/pipeline/config.js.map +1 -0
- package/dist/pipeline/index.d.ts +4 -0
- package/dist/pipeline/index.d.ts.map +1 -0
- package/dist/pipeline/index.js +4 -0
- package/dist/pipeline/index.js.map +1 -0
- package/dist/pipeline/passCriteria.d.ts +41 -0
- package/dist/pipeline/passCriteria.d.ts.map +1 -0
- package/dist/pipeline/passCriteria.js +67 -0
- package/dist/pipeline/passCriteria.js.map +1 -0
- package/dist/pipeline/snapshotDiff.d.ts +63 -0
- package/dist/pipeline/snapshotDiff.d.ts.map +1 -0
- package/dist/pipeline/snapshotDiff.js +148 -0
- package/dist/pipeline/snapshotDiff.js.map +1 -0
- package/dist/runner/applyRequestAuth.d.ts.map +1 -1
- package/dist/runner/applyRequestAuth.js +2 -1
- package/dist/runner/applyRequestAuth.js.map +1 -1
- package/dist/runner/requestRunner.d.ts.map +1 -1
- package/dist/runner/requestRunner.js +3 -2
- package/dist/runner/requestRunner.js.map +1 -1
- package/dist/runner/resolveInheritedAuth.d.ts +3 -0
- package/dist/runner/resolveInheritedAuth.d.ts.map +1 -0
- package/dist/runner/resolveInheritedAuth.js +16 -0
- package/dist/runner/resolveInheritedAuth.js.map +1 -0
- package/dist/runner/runCollection.d.ts.map +1 -1
- package/dist/runner/runCollection.js +1 -0
- package/dist/runner/runCollection.js.map +1 -1
- package/dist/script/executor.d.ts.map +1 -1
- package/dist/script/executor.js +28 -1
- package/dist/script/executor.js.map +1 -1
- package/dist/script/features/timers.d.ts +2 -0
- package/dist/script/features/timers.d.ts.map +1 -1
- package/dist/script/features/timers.js +23 -0
- package/dist/script/features/timers.js.map +1 -1
- package/dist/script/pm-api-declarations.js +1 -1
- package/dist/types/index.d.ts +3 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist-cjs/index.js +7 -2
- package/dist-cjs/index.js.map +1 -1
- package/dist-cjs/loadtest/from-collection.js +14 -3
- package/dist-cjs/loadtest/from-collection.js.map +1 -1
- package/dist-cjs/loadtest/index.js +2 -1
- package/dist-cjs/loadtest/index.js.map +1 -1
- package/dist-cjs/pipeline/config.js +78 -0
- package/dist-cjs/pipeline/config.js.map +1 -0
- package/dist-cjs/pipeline/index.js +20 -0
- package/dist-cjs/pipeline/index.js.map +1 -0
- package/dist-cjs/pipeline/passCriteria.js +71 -0
- package/dist-cjs/pipeline/passCriteria.js.map +1 -0
- package/dist-cjs/pipeline/snapshotDiff.js +154 -0
- package/dist-cjs/pipeline/snapshotDiff.js.map +1 -0
- package/dist-cjs/runner/applyRequestAuth.js +2 -1
- package/dist-cjs/runner/applyRequestAuth.js.map +1 -1
- package/dist-cjs/runner/requestRunner.js +3 -2
- package/dist-cjs/runner/requestRunner.js.map +1 -1
- package/dist-cjs/runner/resolveInheritedAuth.js +20 -0
- package/dist-cjs/runner/resolveInheritedAuth.js.map +1 -0
- package/dist-cjs/runner/runCollection.js +1 -0
- package/dist-cjs/runner/runCollection.js.map +1 -1
- package/dist-cjs/script/executor.js +28 -1
- package/dist-cjs/script/executor.js.map +1 -1
- package/dist-cjs/script/features/timers.js +23 -0
- package/dist-cjs/script/features/timers.js.map +1 -1
- package/dist-cjs/script/pm-api-declarations.js +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { runCollection } from "./runner/runCollection.js";
|
|
2
|
+
export { resolveInheritedAuth } from "./runner/resolveInheritedAuth.js";
|
|
2
3
|
export { runRequest } from "./runner/requestRunner.js";
|
|
3
4
|
export { runRequestWithDataset } from "./runner/runRequestWithDataset.js";
|
|
4
5
|
export { executeRequest } from "./request/executeRequest.js";
|
|
@@ -46,5 +47,6 @@ export * from "./ui-test/flow-lint.js";
|
|
|
46
47
|
export * from "./scenario-runner/index.js";
|
|
47
48
|
export * from "./host/index.js";
|
|
48
49
|
export * from "./loadtest/index.js";
|
|
50
|
+
export * from "./pipeline/index.js";
|
|
49
51
|
export * from "./types/index.js";
|
|
50
52
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { runCollection } from "./runner/runCollection.js";
|
|
2
|
+
export { resolveInheritedAuth } from "./runner/resolveInheritedAuth.js";
|
|
2
3
|
export { runRequest } from "./runner/requestRunner.js";
|
|
3
4
|
export { runRequestWithDataset } from "./runner/runRequestWithDataset.js";
|
|
4
5
|
export { executeRequest } from "./request/executeRequest.js";
|
|
@@ -50,5 +51,8 @@ export * from "./ui-test/flow-lint.js";
|
|
|
50
51
|
export * from "./scenario-runner/index.js";
|
|
51
52
|
export * from "./host/index.js";
|
|
52
53
|
export * from "./loadtest/index.js";
|
|
54
|
+
// Pipeline pass criteria (threshold + critical requests) and the collection
|
|
55
|
+
// snapshot diff — shared by the backend, `callme`, the MCP server and the desktop.
|
|
56
|
+
export * from "./pipeline/index.js";
|
|
53
57
|
export * from "./types/index.js";
|
|
54
58
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,8 +22,16 @@ export interface CollectionFolderLike {
|
|
|
22
22
|
export interface CollectionLike {
|
|
23
23
|
requests: CollectionRequestLike[];
|
|
24
24
|
folders?: CollectionFolderLike[] | null;
|
|
25
|
+
/** Collection-level auth: what requests set to "inherit" send. */
|
|
26
|
+
auth?: RequestAuthConfig;
|
|
25
27
|
}
|
|
26
28
|
export declare const requestToLoadStep: (request: CollectionRequestLike) => LoadStep;
|
|
29
|
+
/**
|
|
30
|
+
* `requestToLoadStep` for a collection's requests: a request set to "inherit"
|
|
31
|
+
* takes the collection's auth (the load engine has no collection to inherit
|
|
32
|
+
* from). Use as `requests.map(loadStepsInheriting(collection.auth))`.
|
|
33
|
+
*/
|
|
34
|
+
export declare const loadStepsInheriting: (collectionAuth: RequestAuthConfig | undefined) => (request: CollectionRequestLike) => LoadStep;
|
|
27
35
|
export interface RequestSelection {
|
|
28
36
|
/** Request names or ids. Empty / omitted = every enabled request. */
|
|
29
37
|
requests?: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"from-collection.d.ts","sourceRoot":"","sources":["../../src/loadtest/from-collection.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"from-collection.d.ts","sourceRoot":"","sources":["../../src/loadtest/from-collection.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAgB,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtE,+DAA+D;AAC/D,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,qBAAqB,EAAE,CAAC;IAClC,OAAO,CAAC,EAAE,oBAAoB,EAAE,GAAG,IAAI,CAAC;IACxC,kEAAkE;IAClE,IAAI,CAAC,EAAE,iBAAiB,CAAC;CAC1B;AAKD,eAAO,MAAM,iBAAiB,GAAI,SAAS,qBAAqB,KAAG,QAgBjE,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAC7B,gBAAgB,iBAAiB,GAAG,SAAS,MAC7C,SAAS,qBAAqB,KAAG,QAC2D,CAAC;AAEhG,MAAM,WAAW,gBAAgB;IAC/B,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,uEAAuE;IACvE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM;CAI5B;AAID,uGAAuG;AACvG,eAAO,MAAM,wBAAwB,GACnC,YAAY,cAAc,EAC1B,YAAW,gBAAqB,KAC/B,qBAAqB,EAqCvB,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,YAAY,cAAc,EAAE,YAAW,gBAAqB,KAAG,QAAQ,EAChB,CAAC;AA6B5F,MAAM,MAAM,iBAAiB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAElJ,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,GAC3B,MAAM,MAAM,EACZ,QAAQ,KAAK,GAAG,MAAM,EACtB,OAAM,YAAY,GAAG,QAAuB,KAC3C,iBA8BF,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// Build a load-test flow from a collection export (what the CLI and the MCP
|
|
2
2
|
// server hold) instead of from the desktop's request model. Renderer-safe.
|
|
3
|
+
import { resolveInheritedAuth } from "../runner/resolveInheritedAuth.js";
|
|
3
4
|
const rows = (record) => Object.entries(record ?? {}).map(([key, value]) => ({ key, value, enabled: true }));
|
|
4
5
|
export const requestToLoadStep = (request) => ({
|
|
5
6
|
id: request.id,
|
|
@@ -10,11 +11,20 @@ export const requestToLoadStep = (request) => ({
|
|
|
10
11
|
headers: rows(request.headers),
|
|
11
12
|
query: rows(request.query),
|
|
12
13
|
...(request.body !== undefined && request.body !== null ? { body: request.body } : {}),
|
|
13
|
-
|
|
14
|
+
// An unresolved "inherit" (see loadStepsInheriting) sends nothing.
|
|
15
|
+
...(request.auth && request.auth.type !== "none" && request.auth.type !== "inherit"
|
|
16
|
+
? { auth: request.auth }
|
|
17
|
+
: {}),
|
|
14
18
|
...(request.expectedStatus ? { expectedStatus: request.expectedStatus } : {}),
|
|
15
19
|
extract: [],
|
|
16
20
|
checks: [],
|
|
17
21
|
});
|
|
22
|
+
/**
|
|
23
|
+
* `requestToLoadStep` for a collection's requests: a request set to "inherit"
|
|
24
|
+
* takes the collection's auth (the load engine has no collection to inherit
|
|
25
|
+
* from). Use as `requests.map(loadStepsInheriting(collection.auth))`.
|
|
26
|
+
*/
|
|
27
|
+
export const loadStepsInheriting = (collectionAuth) => (request) => requestToLoadStep({ ...request, auth: resolveInheritedAuth(request.auth, collectionAuth) });
|
|
18
28
|
export class SelectionError extends Error {
|
|
19
29
|
constructor(message) {
|
|
20
30
|
super(message);
|
|
@@ -59,7 +69,7 @@ export const selectCollectionRequests = (collection, selection = {}) => {
|
|
|
59
69
|
}
|
|
60
70
|
return pool;
|
|
61
71
|
};
|
|
62
|
-
export const stepsFromCollection = (collection, selection = {}) => selectCollectionRequests(collection, selection).map(
|
|
72
|
+
export const stepsFromCollection = (collection, selection = {}) => selectCollectionRequests(collection, selection).map(loadStepsInheriting(collection.auth));
|
|
63
73
|
// ── Dataset text → rows ──────────────────────────────────────────────────────
|
|
64
74
|
const parseCsvLine = (line) => {
|
|
65
75
|
const cells = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"from-collection.js","sourceRoot":"","sources":["../../src/loadtest/from-collection.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,2EAA2E;
|
|
1
|
+
{"version":3,"file":"from-collection.js","sourceRoot":"","sources":["../../src/loadtest/from-collection.ts"],"names":[],"mappings":"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"}
|
package/dist/loadtest/index.d.ts
CHANGED
|
@@ -13,6 +13,6 @@ export { applyPlanFlow, buildPlanFlow, configToPlanFile, normalizePlanThresholds
|
|
|
13
13
|
export type { LoadTestPlanFile, PlanFileIssue, PlanFlowStep, PlanStepOverrides } from "./plan-file.js";
|
|
14
14
|
export { DEFAULT_TOLERANCE, compareRuns } from "./compare.js";
|
|
15
15
|
export type { ChangeVerdict, ComparisonRow, RunComparison, StepComparisonRow } from "./compare.js";
|
|
16
|
-
export { SelectionError, parseDatasetText, requestToLoadStep, selectCollectionRequests, stepsFromCollection, } from "./from-collection.js";
|
|
16
|
+
export { SelectionError, parseDatasetText, requestToLoadStep, loadStepsInheriting, selectCollectionRequests, stepsFromCollection, } from "./from-collection.js";
|
|
17
17
|
export type { CollectionFolderLike, CollectionLike, CollectionRequestLike, DatasetTextResult, RequestSelection, } from "./from-collection.js";
|
|
18
18
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/loadtest/index.ts"],"names":[],"mappings":"AAIA,cAAc,YAAY,CAAC;AAC3B,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,uBAAuB,EACvB,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,QAAQ,GACT,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC/D,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,EACzB,4BAA4B,EAC5B,cAAc,EACd,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,qBAAqB,EACrB,UAAU,EACV,aAAa,EACb,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,sBAAsB,GACvB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACvG,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC9D,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACnG,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,oBAAoB,EACpB,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/loadtest/index.ts"],"names":[],"mappings":"AAIA,cAAc,YAAY,CAAC;AAC3B,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,uBAAuB,EACvB,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,QAAQ,GACT,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC/D,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,EACzB,4BAA4B,EAC5B,cAAc,EACd,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,qBAAqB,EACrB,UAAU,EACV,aAAa,EACb,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,sBAAsB,GACvB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACvG,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC9D,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACnG,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,oBAAoB,EACpB,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC"}
|
package/dist/loadtest/index.js
CHANGED
|
@@ -10,5 +10,5 @@ export { evaluateCheck, parseExpectedStatus } from "./flow-eval.js";
|
|
|
10
10
|
export { buildLoadTestReport, formatBytes, formatDuration, renderHtmlReport, renderJUnit, renderTextSummary, } from "./report.js";
|
|
11
11
|
export { applyPlanFlow, buildPlanFlow, configToPlanFile, normalizePlanThresholds, parseLoadTestPlanFile, planFileToConfig, } from "./plan-file.js";
|
|
12
12
|
export { DEFAULT_TOLERANCE, compareRuns } from "./compare.js";
|
|
13
|
-
export { SelectionError, parseDatasetText, requestToLoadStep, selectCollectionRequests, stepsFromCollection, } from "./from-collection.js";
|
|
13
|
+
export { SelectionError, parseDatasetText, requestToLoadStep, loadStepsInheriting, selectCollectionRequests, stepsFromCollection, } from "./from-collection.js";
|
|
14
14
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/loadtest/index.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,6EAA6E;AAC7E,mEAAmE;AAEnE,cAAc,YAAY,CAAC;AAC3B,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,uBAAuB,EACvB,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,QAAQ,GACT,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE/D,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,EACzB,4BAA4B,EAC5B,cAAc,EACd,aAAa,GACd,MAAM,iBAAiB,CAAC;AAUzB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,sBAAsB,GACvB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/loadtest/index.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,6EAA6E;AAC7E,mEAAmE;AAEnE,cAAc,YAAY,CAAC;AAC3B,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,uBAAuB,EACvB,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,QAAQ,GACT,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE/D,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,EACzB,4BAA4B,EAC5B,cAAc,EACd,aAAa,GACd,MAAM,iBAAiB,CAAC;AAUzB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,sBAAsB,GACvB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export type PipelinePassMode = "all" | "percentage";
|
|
2
|
+
export interface PipelinePassCriteria {
|
|
3
|
+
/** "all": every executed request must pass. "percentage": at least
|
|
4
|
+
* `minPassPercent` of them must. */
|
|
5
|
+
mode: PipelinePassMode;
|
|
6
|
+
/** 1..100; only read in "percentage" mode. */
|
|
7
|
+
minPassPercent: number;
|
|
8
|
+
/** Critical requests: they must pass whatever the percentage. */
|
|
9
|
+
requiredRequestIds: string[];
|
|
10
|
+
/** Fewer executed requests than this fails the run (`--min-requests`). */
|
|
11
|
+
minExecuted: number;
|
|
12
|
+
}
|
|
13
|
+
export interface PipelineCollectionConfig {
|
|
14
|
+
passCriteria: PipelinePassCriteria;
|
|
15
|
+
/** Stop at the first failed request. Always false in "percentage" mode —
|
|
16
|
+
* a threshold needs the whole run. */
|
|
17
|
+
bail: boolean;
|
|
18
|
+
/** May CI run a single folder (`--folder-id`) of this collection. */
|
|
19
|
+
allowFolderRuns: boolean;
|
|
20
|
+
}
|
|
21
|
+
export declare const DEFAULT_PIPELINE_PASS_CRITERIA: PipelinePassCriteria;
|
|
22
|
+
export declare const DEFAULT_PIPELINE_COLLECTION_CONFIG: PipelineCollectionConfig;
|
|
23
|
+
/** Stored config carries at most this many critical requests. */
|
|
24
|
+
export declare const MAX_PIPELINE_REQUIRED_REQUESTS = 200;
|
|
25
|
+
/** The percentage a criteria demands: 100 in "all" mode. */
|
|
26
|
+
export declare const passCriteriaThreshold: (criteria: PipelinePassCriteria) => number;
|
|
27
|
+
/**
|
|
28
|
+
* Tolerant reader for stored / bundled / user-supplied criteria: unknown keys
|
|
29
|
+
* are dropped, bad values fall back to the defaults, numbers are clamped and
|
|
30
|
+
* duplicate ids removed. Never throws.
|
|
31
|
+
*/
|
|
32
|
+
export declare const normalizePipelinePassCriteria: (value: unknown) => PipelinePassCriteria;
|
|
33
|
+
export declare const normalizePipelineCollectionConfig: (value: unknown) => PipelineCollectionConfig;
|
|
34
|
+
/**
|
|
35
|
+
* Raise a criteria to an admin-set minimum percentage (on-prem policy). A
|
|
36
|
+
* floor of 0/absent changes nothing; "all" mode is already the strictest.
|
|
37
|
+
*/
|
|
38
|
+
export declare const applyPassPercentFloor: (criteria: PipelinePassCriteria, floor: number | null | undefined) => PipelinePassCriteria;
|
|
39
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/pipeline/config.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,YAAY,CAAC;AAEpD,MAAM,WAAW,oBAAoB;IACnC;wCACoC;IACpC,IAAI,EAAE,gBAAgB,CAAC;IACvB,8CAA8C;IAC9C,cAAc,EAAE,MAAM,CAAC;IACvB,iEAAiE;IACjE,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,0EAA0E;IAC1E,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACvC,YAAY,EAAE,oBAAoB,CAAC;IACnC;0CACsC;IACtC,IAAI,EAAE,OAAO,CAAC;IACd,qEAAqE;IACrE,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,eAAO,MAAM,8BAA8B,EAAE,oBAKnB,CAAC;AAE3B,eAAO,MAAM,kCAAkC,EAAE,wBAInB,CAAC;AAE/B,iEAAiE;AACjE,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAWlD,4DAA4D;AAC5D,eAAO,MAAM,qBAAqB,GAAI,UAAU,oBAAoB,KAAG,MACP,CAAC;AAEjE;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,GAAI,OAAO,OAAO,KAAG,oBAkB9D,CAAC;AAEF,eAAO,MAAM,iCAAiC,GAAI,OAAO,OAAO,KAAG,wBAQlE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAChC,UAAU,oBAAoB,EAC9B,OAAO,MAAM,GAAG,IAAI,GAAG,SAAS,KAC/B,oBAIF,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
// Pipeline pass criteria — when a CI collection run counts as passed.
|
|
2
|
+
//
|
|
3
|
+
// On-prem "pipeline" collections store this on the server (it is reviewed and
|
|
4
|
+
// versioned with the collection); everywhere else `callme run` builds it from
|
|
5
|
+
// `--pass-threshold` / `--critical-request`. Absent config = today's rule:
|
|
6
|
+
// every executed request must pass.
|
|
7
|
+
export const DEFAULT_PIPELINE_PASS_CRITERIA = Object.freeze({
|
|
8
|
+
mode: "all",
|
|
9
|
+
minPassPercent: 100,
|
|
10
|
+
requiredRequestIds: [],
|
|
11
|
+
minExecuted: 1,
|
|
12
|
+
});
|
|
13
|
+
export const DEFAULT_PIPELINE_COLLECTION_CONFIG = Object.freeze({
|
|
14
|
+
passCriteria: DEFAULT_PIPELINE_PASS_CRITERIA,
|
|
15
|
+
bail: false,
|
|
16
|
+
allowFolderRuns: false,
|
|
17
|
+
});
|
|
18
|
+
/** Stored config carries at most this many critical requests. */
|
|
19
|
+
export const MAX_PIPELINE_REQUIRED_REQUESTS = 200;
|
|
20
|
+
const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
21
|
+
const clampInt = (value, min, max, fallback) => {
|
|
22
|
+
const parsed = typeof value === "string" ? Number(value) : value;
|
|
23
|
+
if (typeof parsed !== "number" || !Number.isFinite(parsed))
|
|
24
|
+
return fallback;
|
|
25
|
+
return Math.min(max, Math.max(min, Math.floor(parsed)));
|
|
26
|
+
};
|
|
27
|
+
/** The percentage a criteria demands: 100 in "all" mode. */
|
|
28
|
+
export const passCriteriaThreshold = (criteria) => criteria.mode === "percentage" ? criteria.minPassPercent : 100;
|
|
29
|
+
/**
|
|
30
|
+
* Tolerant reader for stored / bundled / user-supplied criteria: unknown keys
|
|
31
|
+
* are dropped, bad values fall back to the defaults, numbers are clamped and
|
|
32
|
+
* duplicate ids removed. Never throws.
|
|
33
|
+
*/
|
|
34
|
+
export const normalizePipelinePassCriteria = (value) => {
|
|
35
|
+
if (!isRecord(value))
|
|
36
|
+
return { ...DEFAULT_PIPELINE_PASS_CRITERIA, requiredRequestIds: [] };
|
|
37
|
+
const mode = value.mode === "percentage" ? "percentage" : "all";
|
|
38
|
+
const ids = Array.isArray(value.requiredRequestIds) ? value.requiredRequestIds : [];
|
|
39
|
+
const requiredRequestIds = [
|
|
40
|
+
...new Set(ids
|
|
41
|
+
.filter((id) => typeof id === "string")
|
|
42
|
+
.map((id) => id.trim())
|
|
43
|
+
.filter(Boolean)),
|
|
44
|
+
].slice(0, MAX_PIPELINE_REQUIRED_REQUESTS);
|
|
45
|
+
return {
|
|
46
|
+
mode,
|
|
47
|
+
minPassPercent: mode === "percentage" ? clampInt(value.minPassPercent, 1, 100, 100) : 100,
|
|
48
|
+
requiredRequestIds,
|
|
49
|
+
minExecuted: clampInt(value.minExecuted, 1, 100_000, 1),
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
export const normalizePipelineCollectionConfig = (value) => {
|
|
53
|
+
const source = isRecord(value) ? value : {};
|
|
54
|
+
const passCriteria = normalizePipelinePassCriteria(source.passCriteria);
|
|
55
|
+
return {
|
|
56
|
+
passCriteria,
|
|
57
|
+
bail: passCriteria.mode === "percentage" ? false : source.bail === true,
|
|
58
|
+
allowFolderRuns: source.allowFolderRuns === true,
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Raise a criteria to an admin-set minimum percentage (on-prem policy). A
|
|
63
|
+
* floor of 0/absent changes nothing; "all" mode is already the strictest.
|
|
64
|
+
*/
|
|
65
|
+
export const applyPassPercentFloor = (criteria, floor) => {
|
|
66
|
+
const min = clampInt(floor, 0, 100, 0);
|
|
67
|
+
if (criteria.mode !== "percentage" || criteria.minPassPercent >= min)
|
|
68
|
+
return criteria;
|
|
69
|
+
return { ...criteria, minPassPercent: min };
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/pipeline/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pipeline/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pipeline/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { type PipelinePassCriteria } from "./config.js";
|
|
2
|
+
/** One executed (or skipped) request of a run, as the host judged it. A
|
|
3
|
+
* request that ran several times (data rows, `setNextRequest` loops) may
|
|
4
|
+
* appear more than once — it passes only when every execution passed. */
|
|
5
|
+
export interface PassCriteriaOutcome {
|
|
6
|
+
requestId: string;
|
|
7
|
+
passed: boolean;
|
|
8
|
+
/** Skipped by a script or disabled in the runner: counts as neither. */
|
|
9
|
+
skipped?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export type PassVerdictReason = "all_passed" | "threshold_met" | "below_threshold" | "required_failed" | "below_min_executed";
|
|
12
|
+
export interface PassVerdict {
|
|
13
|
+
passed: boolean;
|
|
14
|
+
reason: PassVerdictReason;
|
|
15
|
+
mode: PipelinePassCriteria["mode"];
|
|
16
|
+
/** Percentage the run had to reach (100 in "all" mode). */
|
|
17
|
+
threshold: number;
|
|
18
|
+
executed: number;
|
|
19
|
+
passedCount: number;
|
|
20
|
+
failedCount: number;
|
|
21
|
+
/** passed / executed in percent, one decimal; null when nothing ran. */
|
|
22
|
+
passRate: number | null;
|
|
23
|
+
/** Critical requests that ran and failed. */
|
|
24
|
+
requiredFailed: string[];
|
|
25
|
+
/** Critical requests in scope that did not run (deleted, skipped). */
|
|
26
|
+
requiredMissing: string[];
|
|
27
|
+
}
|
|
28
|
+
export interface EvaluatePassCriteriaOptions {
|
|
29
|
+
/** Ids of every request the run covered (a folder run covers a subset).
|
|
30
|
+
* Critical requests outside it are ignored; without it every critical
|
|
31
|
+
* request is expected to run. */
|
|
32
|
+
scopeRequestIds?: readonly string[];
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Decide a run's verdict from per-request outcomes. The comparison is exact
|
|
36
|
+
* (`passed * 100 >= threshold * executed`), so 79.9% does not reach 80%.
|
|
37
|
+
* Order of failure reasons: too few requests, a critical request, the
|
|
38
|
+
* percentage.
|
|
39
|
+
*/
|
|
40
|
+
export declare const evaluatePassCriteria: (outcomes: readonly PassCriteriaOutcome[], criteria: PipelinePassCriteria, options?: EvaluatePassCriteriaOptions) => PassVerdict;
|
|
41
|
+
//# sourceMappingURL=passCriteria.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"passCriteria.d.ts","sourceRoot":"","sources":["../../src/pipeline/passCriteria.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAE/E;;yEAEyE;AACzE,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,wEAAwE;IACxE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,iBAAiB,GACzB,YAAY,GACZ,eAAe,GACf,iBAAiB,GACjB,iBAAiB,GACjB,oBAAoB,CAAC;AAEzB,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,IAAI,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACnC,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,6CAA6C;IAC7C,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,sEAAsE;IACtE,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,2BAA2B;IAC1C;;qCAEiC;IACjC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAC/B,UAAU,SAAS,mBAAmB,EAAE,EACxC,UAAU,oBAAoB,EAC9B,UAAS,2BAAgC,KACxC,WAwDF,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { passCriteriaThreshold } from "./config.js";
|
|
2
|
+
/**
|
|
3
|
+
* Decide a run's verdict from per-request outcomes. The comparison is exact
|
|
4
|
+
* (`passed * 100 >= threshold * executed`), so 79.9% does not reach 80%.
|
|
5
|
+
* Order of failure reasons: too few requests, a critical request, the
|
|
6
|
+
* percentage.
|
|
7
|
+
*/
|
|
8
|
+
export const evaluatePassCriteria = (outcomes, criteria, options = {}) => {
|
|
9
|
+
const byRequest = new Map();
|
|
10
|
+
for (const outcome of outcomes) {
|
|
11
|
+
const skipped = outcome.skipped === true;
|
|
12
|
+
const current = byRequest.get(outcome.requestId);
|
|
13
|
+
if (!current) {
|
|
14
|
+
byRequest.set(outcome.requestId, { passed: skipped || outcome.passed, skipped });
|
|
15
|
+
continue;
|
|
16
|
+
}
|
|
17
|
+
if (skipped)
|
|
18
|
+
continue;
|
|
19
|
+
current.passed = (current.skipped || current.passed) && outcome.passed;
|
|
20
|
+
current.skipped = false;
|
|
21
|
+
}
|
|
22
|
+
let executed = 0;
|
|
23
|
+
let passedCount = 0;
|
|
24
|
+
for (const entry of byRequest.values()) {
|
|
25
|
+
if (entry.skipped)
|
|
26
|
+
continue;
|
|
27
|
+
executed += 1;
|
|
28
|
+
if (entry.passed)
|
|
29
|
+
passedCount += 1;
|
|
30
|
+
}
|
|
31
|
+
const failedCount = executed - passedCount;
|
|
32
|
+
const scope = options.scopeRequestIds ? new Set(options.scopeRequestIds) : null;
|
|
33
|
+
const requiredFailed = [];
|
|
34
|
+
const requiredMissing = [];
|
|
35
|
+
for (const id of criteria.requiredRequestIds) {
|
|
36
|
+
if (scope && !scope.has(id))
|
|
37
|
+
continue;
|
|
38
|
+
const entry = byRequest.get(id);
|
|
39
|
+
if (!entry || entry.skipped)
|
|
40
|
+
requiredMissing.push(id);
|
|
41
|
+
else if (!entry.passed)
|
|
42
|
+
requiredFailed.push(id);
|
|
43
|
+
}
|
|
44
|
+
const threshold = passCriteriaThreshold(criteria);
|
|
45
|
+
const passRate = executed === 0 ? null : Math.round((passedCount / executed) * 1000) / 10;
|
|
46
|
+
const base = {
|
|
47
|
+
mode: criteria.mode,
|
|
48
|
+
threshold,
|
|
49
|
+
executed,
|
|
50
|
+
passedCount,
|
|
51
|
+
failedCount,
|
|
52
|
+
passRate,
|
|
53
|
+
requiredFailed,
|
|
54
|
+
requiredMissing,
|
|
55
|
+
};
|
|
56
|
+
if (executed < Math.max(1, criteria.minExecuted)) {
|
|
57
|
+
return { ...base, passed: false, reason: "below_min_executed" };
|
|
58
|
+
}
|
|
59
|
+
if (requiredFailed.length > 0 || requiredMissing.length > 0) {
|
|
60
|
+
return { ...base, passed: false, reason: "required_failed" };
|
|
61
|
+
}
|
|
62
|
+
if (passedCount * 100 < threshold * executed) {
|
|
63
|
+
return { ...base, passed: false, reason: "below_threshold" };
|
|
64
|
+
}
|
|
65
|
+
return { ...base, passed: true, reason: failedCount === 0 ? "all_passed" : "threshold_met" };
|
|
66
|
+
};
|
|
67
|
+
//# sourceMappingURL=passCriteria.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"passCriteria.js","sourceRoot":"","sources":["../../src/pipeline/passCriteria.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
type JsonRecord = Record<string, unknown>;
|
|
2
|
+
export interface CollectionSnapshotLike {
|
|
3
|
+
collection: JsonRecord & {
|
|
4
|
+
pipelineConfig?: unknown;
|
|
5
|
+
};
|
|
6
|
+
folders: Array<JsonRecord & {
|
|
7
|
+
id: string;
|
|
8
|
+
}>;
|
|
9
|
+
requests: Array<JsonRecord & {
|
|
10
|
+
id: string;
|
|
11
|
+
}>;
|
|
12
|
+
}
|
|
13
|
+
export type SnapshotChange = "added" | "modified" | "removed";
|
|
14
|
+
export interface SnapshotItemChange {
|
|
15
|
+
id: string;
|
|
16
|
+
name: string;
|
|
17
|
+
change: SnapshotChange;
|
|
18
|
+
/** Top-level keys that differ ("url", "headers", "testsScript", …). Empty
|
|
19
|
+
* for added/removed items. */
|
|
20
|
+
fields: string[];
|
|
21
|
+
}
|
|
22
|
+
export interface PipelineConfigChange {
|
|
23
|
+
thresholdBefore: number | null;
|
|
24
|
+
thresholdAfter: number;
|
|
25
|
+
thresholdLowered: boolean;
|
|
26
|
+
criticalAdded: string[];
|
|
27
|
+
criticalRemoved: string[];
|
|
28
|
+
minExecutedLowered: boolean;
|
|
29
|
+
bailChanged: boolean;
|
|
30
|
+
folderRunsEnabled: boolean;
|
|
31
|
+
}
|
|
32
|
+
export interface CollectionSnapshotDiffStats {
|
|
33
|
+
requestsAdded: number;
|
|
34
|
+
requestsModified: number;
|
|
35
|
+
requestsRemoved: number;
|
|
36
|
+
foldersChanged: number;
|
|
37
|
+
collectionSettingsChanged: boolean;
|
|
38
|
+
scriptsChanged: number;
|
|
39
|
+
pipelineConfigChanged: boolean;
|
|
40
|
+
thresholdLowered: boolean;
|
|
41
|
+
criticalRemoved: number;
|
|
42
|
+
}
|
|
43
|
+
export interface CollectionSnapshotDiff {
|
|
44
|
+
stats: CollectionSnapshotDiffStats;
|
|
45
|
+
requests: SnapshotItemChange[];
|
|
46
|
+
folders: SnapshotItemChange[];
|
|
47
|
+
/** Collection-level keys that differ ("variables", "auth", "scripts", …;
|
|
48
|
+
* "pipelineConfig" is reported separately). */
|
|
49
|
+
collectionFields: string[];
|
|
50
|
+
pipelineConfig: PipelineConfigChange | null;
|
|
51
|
+
}
|
|
52
|
+
/** Deterministic JSON: object keys sorted at every depth. */
|
|
53
|
+
export declare const canonicalJson: (value: unknown) => string;
|
|
54
|
+
/**
|
|
55
|
+
* Compare a proposed snapshot with the active one (`base` null = the first
|
|
56
|
+
* version, so everything is "added"). Items are matched by id.
|
|
57
|
+
*/
|
|
58
|
+
export declare const diffCollectionSnapshots: (base: CollectionSnapshotLike | null, next: CollectionSnapshotLike) => CollectionSnapshotDiff;
|
|
59
|
+
/** Canonical text of a snapshot without bookkeeping — hash it to tell
|
|
60
|
+
* whether two snapshots hold the same content. */
|
|
61
|
+
export declare const canonicalCollectionSnapshot: (snapshot: CollectionSnapshotLike) => string;
|
|
62
|
+
export {};
|
|
63
|
+
//# sourceMappingURL=snapshotDiff.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshotDiff.d.ts","sourceRoot":"","sources":["../../src/pipeline/snapshotDiff.ts"],"names":[],"mappings":"AAWA,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE1C,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,UAAU,GAAG;QAAE,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACtD,OAAO,EAAE,KAAK,CAAC,UAAU,GAAG;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5C,QAAQ,EAAE,KAAK,CAAC,UAAU,GAAG;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC9C;AAED,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;AAE9D,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,cAAc,CAAC;IACvB;kCAC8B;IAC9B,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,WAAW,EAAE,OAAO,CAAC;IACrB,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,2BAA2B;IAC1C,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,yBAAyB,EAAE,OAAO,CAAC;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,2BAA2B,CAAC;IACnC,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B;mDAC+C;IAC/C,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,cAAc,EAAE,oBAAoB,GAAG,IAAI,CAAC;CAC7C;AAmBD,6DAA6D;AAC7D,eAAO,MAAM,aAAa,GAAI,OAAO,OAAO,KAAG,MAU9C,CAAC;AAiFF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,GAClC,MAAM,sBAAsB,GAAG,IAAI,EACnC,MAAM,sBAAsB,KAC3B,sBAiCF,CAAC;AAEF;kDACkD;AAClD,eAAO,MAAM,2BAA2B,GAAI,UAAU,sBAAsB,KAAG,MAY3E,CAAC"}
|