@postmate/core 0.2.16 → 0.2.17

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.
@@ -0,0 +1,15 @@
1
+ import type { ExecuteRequestResult } from './apiEngine.js';
2
+ export interface BodyDiffEntry {
3
+ path: string;
4
+ value1: any;
5
+ value2: any;
6
+ }
7
+ export interface ResponseDiff {
8
+ statusMatch: boolean;
9
+ status1: number;
10
+ status2: number;
11
+ hasBodyDiff: boolean;
12
+ bodyDiff: BodyDiffEntry[];
13
+ }
14
+ export declare function computeDiff(r1: ExecuteRequestResult, r2: ExecuteRequestResult): ResponseDiff;
15
+ //# sourceMappingURL=jsonCompare.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonCompare.d.ts","sourceRoot":"","sources":["../../src/engine/jsonCompare.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE3D,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAI,MAAM,CAAC;IACf,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,GAAG,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAM,MAAM,CAAC;IACpB,OAAO,EAAM,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAK,aAAa,EAAE,CAAC;CAChC;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,oBAAoB,EAAE,EAAE,EAAE,oBAAoB,GAAG,YAAY,CAmB5F"}
@@ -0,0 +1,136 @@
1
+ export function computeDiff(r1, r2) {
2
+ const status1 = r1.result.status;
3
+ const status2 = r2.result.status;
4
+ let body1 = parseIfString(r1.result.body);
5
+ let body2 = parseIfString(r2.result.body);
6
+ // unwrap a parsedBody envelope so paths start at $ instead of parsedBody.xxx
7
+ if (body1 !== null && typeof body1 === 'object' && 'parsedBody' in body1)
8
+ body1 = body1.parsedBody;
9
+ if (body2 !== null && typeof body2 === 'object' && 'parsedBody' in body2)
10
+ body2 = body2.parsedBody;
11
+ const bodyDiff = diffValues(body1, body2, '$');
12
+ return {
13
+ statusMatch: status1 === status2,
14
+ status1,
15
+ status2,
16
+ hasBodyDiff: bodyDiff.length > 0,
17
+ bodyDiff,
18
+ };
19
+ }
20
+ // Try to parse a string body as JSON; return as-is if it isn't valid JSON.
21
+ function parseIfString(v) {
22
+ if (typeof v !== 'string')
23
+ return v;
24
+ try {
25
+ return JSON.parse(v);
26
+ }
27
+ catch {
28
+ return v;
29
+ }
30
+ }
31
+ // Score how well two values match. Higher = better match.
32
+ // Used by diffArray to pair elements from arr1 with the closest element in arr2.
33
+ function matchScore(a, b) {
34
+ if (a === b)
35
+ return Number.MAX_SAFE_INTEGER;
36
+ if (a === null || b === null)
37
+ return 0;
38
+ if (typeof a !== 'object' || typeof b !== 'object')
39
+ return 0;
40
+ if (Array.isArray(a) !== Array.isArray(b))
41
+ return 0;
42
+ if (Array.isArray(a))
43
+ return 0; // don't recurse into nested arrays for scoring
44
+ const keys = Object.keys(a);
45
+ if (keys.length === 0)
46
+ return Object.keys(b).length === 0 ? 1 : 0;
47
+ let score = 0;
48
+ for (const key of keys) {
49
+ if (key in b) {
50
+ // exact value match scores higher than key-only match
51
+ score += a[key] === b[key] ? 2 : 1;
52
+ }
53
+ }
54
+ return score;
55
+ }
56
+ // Compare two arrays. Each element in arr1 is paired with the best-matching
57
+ // element in arr2 (by matchScore) so that reordered arrays compare cleanly.
58
+ function diffArray(arr1, arr2, path) {
59
+ const diffs = [];
60
+ const used = new Set();
61
+ for (let i = 0; i < arr1.length; i++) {
62
+ const elem = arr1[i];
63
+ let bestIndex = -1;
64
+ let bestScore = -1;
65
+ for (let j = 0; j < arr2.length; j++) {
66
+ if (used.has(j))
67
+ continue;
68
+ const score = matchScore(elem, arr2[j]);
69
+ if (score > bestScore) {
70
+ bestScore = score;
71
+ bestIndex = j;
72
+ }
73
+ }
74
+ if (bestIndex === -1) {
75
+ // arr2 is shorter — element has no counterpart
76
+ diffs.push({ path: `${path}[${i}-?]`, value1: elem, value2: undefined });
77
+ }
78
+ else {
79
+ used.add(bestIndex);
80
+ diffs.push(...diffValues(elem, arr2[bestIndex], `${path}[${i}-${bestIndex}]`));
81
+ }
82
+ }
83
+ // Elements in arr2 that were never matched — extra items not in arr1
84
+ for (let j = 0; j < arr2.length; j++) {
85
+ if (!used.has(j)) {
86
+ diffs.push({ path: `${path}[?-${j}]`, value1: undefined, value2: arr2[j] });
87
+ }
88
+ }
89
+ return diffs;
90
+ }
91
+ // Deep-compare v1 (response 1) against v2 (response 2).
92
+ // Iterates every key in v1 and looks it up in v2:
93
+ // - found, same value → no entry
94
+ // - found, diff value → entry with both values
95
+ // - missing in v2 → entry with value2: undefined
96
+ // Keys present in v2 but absent in v1 are also reported (value1: undefined).
97
+ function diffValues(v1, v2, path) {
98
+ // both strings could be JSON — parse before comparing
99
+ v1 = parseIfString(v1);
100
+ v2 = parseIfString(v2);
101
+ if (v1 === v2)
102
+ return [];
103
+ const type1 = typeof v1;
104
+ const type2 = typeof v2;
105
+ // different types, or one is null, or both are primitives that differ
106
+ if (type1 !== type2 || v1 === null || v2 === null || type1 !== 'object') {
107
+ return [{ path: path || 'root', value1: v1, value2: v2 }];
108
+ }
109
+ const isArr1 = Array.isArray(v1);
110
+ const isArr2 = Array.isArray(v2);
111
+ if (isArr1 !== isArr2) {
112
+ return [{ path: path || 'root', value1: v1, value2: v2 }];
113
+ }
114
+ if (isArr1) {
115
+ return diffArray(v1, v2, path || 'root');
116
+ }
117
+ // both are plain objects — iterate all keys from either side
118
+ const diffs = [];
119
+ const keys = new Set([...Object.keys(v1), ...Object.keys(v2)]);
120
+ for (const key of keys) {
121
+ const childPath = path ? `${path}.${key}` : key;
122
+ const hasKey1 = Object.prototype.hasOwnProperty.call(v1, key);
123
+ const hasKey2 = Object.prototype.hasOwnProperty.call(v2, key);
124
+ if (!hasKey1) {
125
+ diffs.push({ path: childPath, value1: undefined, value2: v2[key] });
126
+ }
127
+ else if (!hasKey2) {
128
+ diffs.push({ path: childPath, value1: v1[key], value2: undefined });
129
+ }
130
+ else {
131
+ diffs.push(...diffValues(v1[key], v2[key], childPath));
132
+ }
133
+ }
134
+ return diffs;
135
+ }
136
+ //# sourceMappingURL=jsonCompare.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonCompare.js","sourceRoot":"","sources":["../../src/engine/jsonCompare.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,8 @@ import { ApiEngine, ExecuteRequestResult } from './apiEngine.js';
2
2
  import { CollectionManager } from './collectionHelper.js';
3
3
  import { EnvManager } from './envHelper.js';
4
4
  import type { PostmateRequest } from '../types/types.js';
5
+ export type { BodyDiffEntry, ResponseDiff } from './jsonCompare.js';
6
+ import type { ResponseDiff } from './jsonCompare.js';
5
7
  export interface ParallelRequestItem {
6
8
  collectionName: string;
7
9
  requestId: string;
@@ -12,6 +14,11 @@ export interface ParallelRequestOptions {
12
14
  request1: ParallelRequestItem;
13
15
  request2: ParallelRequestItem;
14
16
  }
17
+ export interface ParallelTableOptions {
18
+ request1: ParallelRequestItem;
19
+ request2: ParallelRequestItem;
20
+ dataTableName: string;
21
+ }
15
22
  export interface ParallelRequestItemResult {
16
23
  request: PostmateRequest;
17
24
  response: {
@@ -27,11 +34,33 @@ export interface ParallelRequestResult {
27
34
  result1: ExecuteRequestResult;
28
35
  result2: ExecuteRequestResult;
29
36
  }
37
+ export interface ParallelTableRowResult {
38
+ rowIndex: number;
39
+ row: Record<string, any>;
40
+ result1?: ExecuteRequestResult;
41
+ result2?: ExecuteRequestResult;
42
+ diff?: ResponseDiff;
43
+ error?: string;
44
+ }
45
+ export interface ParallelTableRunEvents {
46
+ onRowStart?: (info: {
47
+ rowIndex: number;
48
+ row: Record<string, any>;
49
+ totalRows: number;
50
+ }) => void;
51
+ onRowComplete?: (info: ParallelTableRowResult) => void;
52
+ onComplete?: (info: {
53
+ totalRows: number;
54
+ completedRows: number;
55
+ failedRows: number;
56
+ }) => void;
57
+ }
30
58
  export declare class ParallelRequestEngine {
31
59
  private apiEngine;
32
60
  private collectionManager;
33
61
  private envManager;
34
62
  constructor(apiEngine: ApiEngine, collectionManager: CollectionManager, envManager: EnvManager);
35
63
  execute(options: ParallelRequestOptions): Promise<ParallelRequestResult>;
64
+ executeTable(options: ParallelTableOptions, events?: ParallelTableRunEvents): Promise<void>;
36
65
  }
37
66
  //# sourceMappingURL=parallelRequest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parallelRequest.d.ts","sourceRoot":"","sources":["../../src/engine/parallelRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,MAAM,WAAW,mBAAmB;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAK,MAAM,CAAC;IACrB,GAAG,EAAW,MAAM,CAAC;IACrB,OAAO,CAAC,EAAM,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,sBAAsB;IACnC,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,QAAQ,EAAE,mBAAmB,CAAC;CACjC;AAED,MAAM,WAAW,yBAAyB;IACtC,OAAO,EAAG,eAAe,CAAC;IAC1B,QAAQ,EAAE;QACN,MAAM,EAAQ,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,IAAI,EAAU,GAAG,CAAC;QAClB,OAAO,EAAO,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACrC,UAAU,CAAC,EAAG,GAAG,EAAE,CAAC;KACvB,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IAClC,OAAO,EAAE,oBAAoB,CAAC;IAC9B,OAAO,EAAE,oBAAoB,CAAC;CACjC;AAED,qBAAa,qBAAqB;IAG1B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,iBAAiB;IACzB,OAAO,CAAC,UAAU;gBAFV,SAAS,EAAU,SAAS,EAC5B,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAS,UAAU;IAGnC,OAAO,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAmBjF"}
1
+ {"version":3,"file":"parallelRequest.d.ts","sourceRoot":"","sources":["../../src/engine/parallelRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,WAAW,mBAAmB;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,sBAAsB;IACnC,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,QAAQ,EAAE,mBAAmB,CAAC;CACjC;AAED,MAAM,WAAW,oBAAoB;IACjC,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,yBAAyB;IACtC,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,IAAI,EAAE,GAAG,CAAC;QACV,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC;KACtB,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IAClC,OAAO,EAAE,oBAAoB,CAAC;IAC9B,OAAO,EAAE,oBAAoB,CAAC;CACjC;AAED,MAAM,WAAW,sBAAsB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACzB,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACnC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC/F,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACvD,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CACjG;AAED,qBAAa,qBAAqB;IAG1B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,iBAAiB;IACzB,OAAO,CAAC,UAAU;gBAFV,SAAS,EAAE,SAAS,EACpB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,UAAU;IAG5B,OAAO,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAiBxE,YAAY,CACd,OAAO,EAAE,oBAAoB,EAC7B,MAAM,GAAE,sBAA2B,GACpC,OAAO,CAAC,IAAI,CAAC;CA2CnB"}
@@ -1,3 +1,4 @@
1
+ import { computeDiff } from './jsonCompare.js';
1
2
  export class ParallelRequestEngine {
2
3
  apiEngine;
3
4
  collectionManager;
@@ -21,5 +22,38 @@ export class ParallelRequestEngine {
21
22
  }
22
23
  throw 'Either request1 or request2 not found in collection manager';
23
24
  }
25
+ async executeTable(options, events = {}) {
26
+ const rows = await this.envManager.loadDataTable(options.dataTableName);
27
+ const totalRows = rows.length;
28
+ let completedRows = 0;
29
+ let failedRows = 0;
30
+ for (let rowIndex = 0; rowIndex < rows.length; rowIndex++) {
31
+ const row = rows[rowIndex];
32
+ events.onRowStart?.({ rowIndex, row, totalRows });
33
+ try {
34
+ const [req1, req2] = await Promise.all([
35
+ this.collectionManager.getRequest(options.request1.collectionName, options.request1.requestId),
36
+ this.collectionManager.getRequest(options.request2.collectionName, options.request2.requestId),
37
+ ]);
38
+ if (!req1 || !req2) {
39
+ throw new Error('Either request1 or request2 not found in collection manager');
40
+ }
41
+ req1.env = options.request1.env;
42
+ req2.env = options.request2.env;
43
+ const [result1, result2] = await Promise.all([
44
+ this.apiEngine.executeRequestWithPrerequests(req1, row),
45
+ this.apiEngine.executeRequestWithPrerequests(req2, row),
46
+ ]);
47
+ const diff = computeDiff(result1, result2);
48
+ completedRows++;
49
+ events.onRowComplete?.({ rowIndex, row, result1, result2, diff });
50
+ }
51
+ catch (err) {
52
+ failedRows++;
53
+ events.onRowComplete?.({ rowIndex, row, error: String(err?.message ?? err) });
54
+ }
55
+ }
56
+ events.onComplete?.({ totalRows, completedRows, failedRows });
57
+ }
24
58
  }
25
59
  //# sourceMappingURL=parallelRequest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parallelRequest.js","sourceRoot":"","sources":["../../src/engine/parallelRequest.ts"],"names":[],"mappings":"AAkCA,MAAM,OAAO,qBAAqB;IAGlB;IACA;IACA;IAHZ,YACY,SAA4B,EAC5B,iBAAoC,EACpC,UAA6B;QAF7B,cAAS,GAAT,SAAS,CAAmB;QAC5B,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,eAAU,GAAV,UAAU,CAAmB;IACrC,CAAC;IAEL,KAAK,CAAC,OAAO,CAAC,OAA+B;QAEzC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACtH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAEtH,IAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC;YACtB,QAAQ,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;YACpC,QAAQ,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;YACpC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACzC,IAAI,CAAC,SAAS,CAAC,6BAA6B,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAChF,IAAI,CAAC,SAAS,CAAC,6BAA6B,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;aAEnF,CAAC,CAAC;YACH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAChC,CAAC;QACF,MAAM,6DAA6D,CAAC;IAEvE,CAAC;CAEJ"}
1
+ {"version":3,"file":"parallelRequest.js","sourceRoot":"","sources":["../../src/engine/parallelRequest.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -5,4 +5,5 @@ export type { CoreLogger } from './types/logger.js';
5
5
  export type { CollectionRunOptions, CollectionRunEvents } from './types/collectionRunnerTypes.js';
6
6
  export { CollectionRunner } from './engine/collectionRunner.js';
7
7
  export { ParallelRequestEngine } from './engine/parallelRequest.js';
8
+ export type { ParallelRequestItem, ParallelRequestOptions, ParallelRequestResult, ParallelTableOptions, ParallelTableRunEvents, ParallelTableRowResult, ResponseDiff, BodyDiffEntry, } from './engine/parallelRequest.js';
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAClG,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAClG,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,YAAY,EACR,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,YAAY,EACZ,aAAa,GAChB,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=responseCompareDataTable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responseCompareDataTable.d.ts","sourceRoot":"","sources":["../../src/tests/responseCompareDataTable.ts"],"names":[],"mappings":""}
@@ -0,0 +1,85 @@
1
+ // postmate-core/src/tests/responseCompareDataTable.ts
2
+ // Run: npx ts-node src/tests/responseCompareDataTable.ts
3
+ import { CoreContext } from '../coreContext.js';
4
+ import { ParallelRequestEngine } from '../engine/parallelRequest.js';
5
+ const BASE_DIR = 'C:\\Users\\11shy\\AppData\\Roaming\\Code\\User\\globalStorage\\.postmate';
6
+ const DATA_TABLE_NAME = 'person';
7
+ const REQUEST_1 = {
8
+ collectionName: 'random',
9
+ requestId: 'a4f75e7e-d922-4f3a-a83f-18ec8dd9a512',
10
+ env: 'Dev',
11
+ };
12
+ const REQUEST_2 = {
13
+ collectionName: 'random',
14
+ requestId: '7de9fb32-4a32-422d-8350-5458d6e8e0c7',
15
+ env: 'Dev',
16
+ };
17
+ // ─────────────────────────────────────────────
18
+ // Logger
19
+ // ─────────────────────────────────────────────
20
+ const coreLogger = {
21
+ onRequestStart(info) {
22
+ console.log(' → Request :', info.method, info.url);
23
+ },
24
+ onRequestEnd(info) {
25
+ console.log(' ← Response:', info.status, `(${info.responseTime} ms)`);
26
+ },
27
+ onScriptLog: (msg) => console.log('[script] ', msg),
28
+ onScriptWarn: (msg) => console.warn('[script:warn] ', msg),
29
+ onScriptError: (msg) => console.error('[script:error]', msg),
30
+ };
31
+ // ─────────────────────────────────────────────
32
+ // Main
33
+ // ─────────────────────────────────────────────
34
+ async function main() {
35
+ const context = new CoreContext({ baseDir: BASE_DIR, logger: coreLogger });
36
+ const parallelEngine = new ParallelRequestEngine(context.apiEngine, context.collectionManager, context.envManager);
37
+ console.log('\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
38
+ console.log(' Response Compare — Data Table Run');
39
+ console.log(` Table : ${DATA_TABLE_NAME}`);
40
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n');
41
+ let totalRows = 0;
42
+ let completedRows = 0;
43
+ let failedRows = 0;
44
+ const events = {
45
+ onRowStart({ rowIndex, row, totalRows: total }) {
46
+ totalRows = total;
47
+ console.log(`\n┌─ Row ${rowIndex + 1} / ${total}`);
48
+ console.log('│ Data:', JSON.stringify(row));
49
+ },
50
+ onRowComplete({ rowIndex, row, result1, result2, diff, error }) {
51
+ if (error) {
52
+ console.log(`└─ ERROR: ${error}`);
53
+ return;
54
+ }
55
+ console.log(`│ Result 1 — status: ${result1.result.status} time: ${result1.result.responseTime} ms`);
56
+ console.log(`│ Result 2 — status: ${result2.result.status} time: ${result2.result.responseTime} ms`);
57
+ if (!diff.statusMatch) {
58
+ console.log(`│ ⚠ Status mismatch: ${diff.status1} vs ${diff.status2}`);
59
+ }
60
+ if (diff.hasBodyDiff) {
61
+ console.log(`│ Body differences (${diff.bodyDiff.length}):`);
62
+ for (const entry of diff.bodyDiff) {
63
+ if (JSON.stringify(entry.value1) === JSON.stringify(entry.value2))
64
+ continue;
65
+ console.log(`│ ${entry.path}: ${JSON.stringify(entry.value1)} | ${JSON.stringify(entry.value2)}`);
66
+ }
67
+ }
68
+ else {
69
+ console.log('│ ✓ Bodies match');
70
+ }
71
+ console.log('└─────────────────────────────────────────');
72
+ },
73
+ onComplete(stats) {
74
+ console.log('\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
75
+ console.log(' Summary');
76
+ console.log(` Total rows : ${stats.totalRows}`);
77
+ console.log(` Completed : ${stats.completedRows}`);
78
+ console.log(` Failed : ${stats.failedRows}`);
79
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n');
80
+ },
81
+ };
82
+ await parallelEngine.executeTable({ request1: REQUEST_1, request2: REQUEST_2, dataTableName: DATA_TABLE_NAME }, events);
83
+ }
84
+ main().catch(console.error);
85
+ //# sourceMappingURL=responseCompareDataTable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responseCompareDataTable.js","sourceRoot":"","sources":["../../src/tests/responseCompareDataTable.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@postmate/core",
3
- "version": "0.2.16",
3
+ "version": "0.2.17",
4
4
  "type": "module",
5
5
  "description": "Internal core execution engine for Postmate Client",
6
6
  "main": "dist/index.js",