@feasibleone/blong-chain 1.10.0 → 1.11.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.
@@ -1,379 +0,0 @@
1
- import nodeAssert from 'node:assert';
2
- declare module 'node:assert' {
3
- function snapshot(value?: unknown, name?: string, opts?: {
4
- mask?: string[];
5
- }): void;
6
- }
7
- /**
8
- * Type definitions for the Blong parallel test framework
9
- */
10
- /** Minimal logger interface compatible with the framework's ILogger */
11
- export interface ITestLogger {
12
- trace?: (...args: unknown[]) => void;
13
- debug?: (...args: unknown[]) => void;
14
- info?: (...args: unknown[]) => void;
15
- warn?: (...args: unknown[]) => void;
16
- error?: (...args: unknown[]) => void;
17
- fatal?: (...args: unknown[]) => void;
18
- }
19
- /**
20
- * Context object passed to test step functions.
21
- * All properties except $meta are thenable proxies that must be awaited.
22
- */
23
- export interface ITestContext {
24
- /** Meta information - always available directly (not a thenable proxy) */
25
- $meta: IMeta;
26
- /** Dynamic properties added by completed steps - accessed via thenable proxies */
27
- [key: string]: unknown;
28
- }
29
- /**
30
- * A single test step function
31
- * @param assert - Assertion functions from node:assert or tap
32
- * @param context - Test context with $meta and outputs from previous steps
33
- * @returns The output to be stored in context under the function's name
34
- */
35
- export type StepFunction = (assert: typeof nodeAssert, context: ITestContext) => unknown | Promise<unknown>;
36
- /**
37
- * A snapshot marker — an array of step-name strings placed inside the
38
- * steps array. At runtime, when the executor encounters it the relevant steps
39
- * are awaited and their results snapshotted into the TAP context.
40
- *
41
- * - `['*']` — snapshot ALL completed steps' results into one context object
42
- * - `['step1', 'step2']` — snapshot only those specific steps
43
- * - `[]` — sync barrier only, no snapshot (the empty array is the spelling;
44
- * there is no symbol for it, because inventing one would touch every
45
- * call site for no gain)
46
- *
47
- * The array may carry an optional `.name` to give the snapshot a stable name:
48
- * ```
49
- * const marker = Object.assign(['*'], {name: 'provisioning-complete'});
50
- * ```
51
- */
52
- export type SnapshotMarker = string[] & {
53
- name?: string;
54
- };
55
- /**
56
- * Array of test steps. May contain step functions, nested step groups, or
57
- * snapshot markers (string arrays; `[]` being a sync barrier).
58
- */
59
- export type StepArray = (StepFunction | StepArray | SnapshotMarker)[] & {
60
- name?: string;
61
- };
62
- /**
63
- * Meta information passed through test execution
64
- */
65
- export interface IMeta {
66
- /** Optional concurrency limit for parallel step execution */
67
- concurrency?: number;
68
- /** Additional metadata properties */
69
- [key: string]: unknown;
70
- }
71
- /**
72
- * Test framework context (e.g., from node:test or tap)
73
- * Enables nested test output with automatic indentation
74
- */
75
- export interface ITestFrameworkContext {
76
- /** Creates a nested test scope for proper indentation */
77
- test: (name: string, fn: (t: unknown) => void | Promise<void>) => unknown;
78
- /** Captures a snapshot of a value under the given name */
79
- matchSnapshot?: (value: unknown, name: string) => void;
80
- }
81
- /**
82
- * A thenable proxy that acts as both a Promise and supports property access.
83
- * Used for automatic dependency detection in test steps.
84
- *
85
- * Note: This is a conceptual type. The actual implementation uses Proxy objects
86
- * that intercept property access. TypeScript cannot perfectly represent this pattern.
87
- */
88
- export type IThenableProxy<T = unknown> = Promise<T> & {
89
- /** Access nested properties, returning more thenable proxies */
90
- [key: string]: IThenableProxy<unknown>;
91
- };
92
- /**
93
- * Promise resolution tracking for a specific context path
94
- */
95
- export interface IPromiseEntry<T = unknown> {
96
- /** The actual promise that resolves when the step completes */
97
- promise: Promise<T>;
98
- /** Function to resolve the promise with a value */
99
- resolve: (value: T) => void;
100
- /** Function to reject the promise with an error */
101
- reject: (error: Error) => void;
102
- }
103
- /**
104
- * Complete definition of a test step including metadata
105
- */
106
- export interface IStepDefinition {
107
- /** The step function to execute */
108
- fn: StepFunction;
109
- /** The step's display name (function name or custom name) */
110
- name: string;
111
- /** Source code location where this step was defined */
112
- sourceLocation: ISourceLocation;
113
- /** Parent group hierarchy */
114
- groupPath: string[];
115
- }
116
- /**
117
- * Source code location information
118
- */
119
- export interface ISourceLocation {
120
- /** Absolute file path */
121
- file: string;
122
- /** Line number (1-indexed) */
123
- line: number;
124
- /** Column number (1-indexed) */
125
- column: number;
126
- /** Optional code snippet for context */
127
- snippet?: string;
128
- }
129
- /**
130
- * Graph structure tracking dependencies between test steps
131
- */
132
- export interface IDependencyGraph {
133
- /** All steps in the test as graph nodes */
134
- nodes: Map<string, IDependencyNode>;
135
- /** Dependency relationships between steps */
136
- edges: IDependencyEdge[];
137
- }
138
- /**
139
- * A single node in the dependency graph
140
- */
141
- export interface IDependencyNode {
142
- /** Step name (unique identifier) */
143
- stepName: string;
144
- /** Hierarchy of group names this step belongs to */
145
- groupPath: string[];
146
- /** When step execution started (timestamp) */
147
- startTime?: number;
148
- /** When step execution finished (timestamp) */
149
- endTime?: number;
150
- /** Current execution status */
151
- status: 'pending' | 'running' | 'completed' | 'failed';
152
- /** Error if step failed */
153
- error?: Error;
154
- }
155
- /**
156
- * An edge representing a dependency relationship
157
- */
158
- export interface IDependencyEdge {
159
- /** Step that depends on another step */
160
- from: string;
161
- /** Step being depended on */
162
- to: string;
163
- /** Which context property/path was accessed */
164
- property: string;
165
- }
166
- /**
167
- * Overall test execution progress
168
- */
169
- export interface ITestProgress {
170
- /** Test name */
171
- testName: string;
172
- /** Test start time */
173
- startTime: number;
174
- /** Test end time (when all steps complete) */
175
- endTime?: number;
176
- /** Overall test status */
177
- status: 'pending' | 'running' | 'completed' | 'failed';
178
- /** Total number of steps in the test */
179
- totalSteps: number;
180
- /** Number of completed steps */
181
- completedSteps: number;
182
- /** Number of failed steps */
183
- failedSteps: number;
184
- /** Progress details for each step */
185
- steps: Map<string, IStepProgress>;
186
- /** Group hierarchy information */
187
- groups: IGroupProgress[];
188
- }
189
- /**
190
- * Progress information for a single step
191
- */
192
- export interface IStepProgress {
193
- /** Step name */
194
- stepName: string;
195
- /** Display name (may differ from stepName for reused tests) */
196
- displayName: string;
197
- /** Group hierarchy path */
198
- groupPath: string[];
199
- /** Current step status */
200
- status: 'pending' | 'running' | 'completed' | 'failed';
201
- /** When step started executing */
202
- startTime?: number;
203
- /** When step finished executing */
204
- endTime?: number;
205
- /** Total duration (end - start) */
206
- duration?: number;
207
- /** Time spent waiting in queue before execution */
208
- queueTime?: number;
209
- /** Time spent actually executing the step function */
210
- executionTime?: number;
211
- /** Time spent waiting for dependencies to resolve */
212
- waitTime?: number;
213
- /** Steps this step depends on */
214
- dependencies: string[];
215
- /** Steps that depend on this step */
216
- dependents: string[];
217
- /** Source code location */
218
- sourceLocation?: ISourceLocation;
219
- /** Step output/result */
220
- result?: unknown;
221
- /** Error information if step failed */
222
- error?: IStepError;
223
- }
224
- /**
225
- * Error information with enhanced context
226
- */
227
- export interface IStepError {
228
- /** Error message */
229
- message: string;
230
- /** Stack trace */
231
- stack: string;
232
- /** Context snapshot at time of failure */
233
- context: Record<string, unknown>;
234
- }
235
- /**
236
- * Progress information for a group of steps
237
- */
238
- export interface IGroupProgress {
239
- /** Group name */
240
- groupName: string;
241
- /** Hierarchy path */
242
- path: string[];
243
- /** Group status */
244
- status: 'pending' | 'running' | 'completed' | 'failed';
245
- /** Step names in this group */
246
- steps: string[];
247
- /** Total steps in group */
248
- totalSteps: number;
249
- /** Completed steps in group */
250
- completedSteps: number;
251
- }
252
- /**
253
- * Detailed timing information for a step
254
- */
255
- export interface IStepLatency {
256
- /** Step name */
257
- stepName: string;
258
- /** When step was added to queue */
259
- queuedAt: number;
260
- /** When step execution started */
261
- startedAt?: number;
262
- /** When step execution completed */
263
- completedAt?: number;
264
- /** Time from queue entry to execution start */
265
- queueTime: number;
266
- /** Time spent waiting for dependencies */
267
- waitTime: number;
268
- /** Actual execution time (excludes wait time) */
269
- executionTime: number;
270
- /** Total time from queue to completion */
271
- totalTime: number;
272
- }
273
- /**
274
- * Aggregate latency metrics for entire test
275
- */
276
- export interface ITestLatency {
277
- /** Test name */
278
- testName: string;
279
- /** Total wall-clock duration */
280
- totalDuration: number;
281
- /** Latency details for each step */
282
- steps: Map<string, IStepLatency>;
283
- /** Steps on the critical path (longest dependency chain) */
284
- criticalPath: string[];
285
- /** Ratio of parallel efficiency (total step time / wall clock time) */
286
- parallelEfficiency: number;
287
- /** Steps that blocked the most other steps */
288
- bottlenecks: Array<{
289
- stepName: string;
290
- executionTime: number;
291
- blockedSteps: string[];
292
- }>;
293
- }
294
- /**
295
- * Event emitter interface for progress notifications
296
- */
297
- export interface ITestEvents {
298
- 'test:start': (progress: ITestProgress) => void;
299
- 'test:end': (progress: ITestProgress) => void;
300
- 'step:start': (stepName: string, progress: IStepProgress) => void;
301
- 'step:end': (stepName: string, progress: IStepProgress) => void;
302
- 'step:error': (stepName: string, error: Error, progress: IStepProgress) => void;
303
- }
304
- /**
305
- * Configuration for the parallel test executor
306
- */
307
- export interface ITestExecutorConfig {
308
- /** Maximum number of steps to run in parallel */
309
- concurrency?: number;
310
- /** Whether to capture stack traces (performance impact) */
311
- captureStackTraces?: boolean;
312
- /** Test framework to use (tap, node:test, etc.) */
313
- framework?: unknown;
314
- /** Logger instance for reporting step failures */
315
- log?: ITestLogger;
316
- /**
317
- * Chain-level mask paths. Applied to ALL snapshot operations in this chain:
318
- * `autoSnapshot`, `assert.snapshot()`, and snapshot markers.
319
- *
320
- * Supports:
321
- * - Simple name: `'id'` — masks the `id` field in the snapshotted value
322
- * - Dot-path: `'user.id'` — masks a nested field
323
- * - Wildcard prefix: `'*.id'` — masks `id` inside every direct child of the
324
- * snapshotted object (useful for context-level snapshots where each child
325
- * is a step result)
326
- *
327
- * Per-call `{mask: [...]}` options are merged on top of this chain-level mask.
328
- */
329
- mask?: string[];
330
- /**
331
- * When `true`, automatically snapshot every step's return value under the
332
- * step's function name after it completes. The chain-level `mask` is applied
333
- * before snapshotting. No `assert.snapshot()` calls are needed in step
334
- * functions — the framework captures everything automatically.
335
- *
336
- * Requires a TAP (or compatible) test context to be passed to `execute()`.
337
- */
338
- autoSnapshot?: boolean;
339
- /**
340
- * @deprecated Use `mask` (string array) instead.
341
- * Custom masking function for advanced scenarios not covered by `mask`.
342
- * When both are provided, `maskFn` is used and `mask` is passed to it.
343
- */
344
- maskFn?: (value: unknown, paths: string[]) => unknown;
345
- /**
346
- * Automatic rerun configuration for failing steps (Phase 1).
347
- *
348
- * When enabled, a step that throws an error is retried up to `maxRetries`
349
- * times before being reported as failed. This is useful for flaky tests
350
- * caused by race conditions or transient network issues.
351
- *
352
- * Phase 2 (diagnostic attachment) is not yet implemented.
353
- */
354
- rerun?: {
355
- /** Whether to enable the retry mechanism (default: false) */
356
- enabled?: boolean;
357
- /**
358
- * Maximum number of retry attempts per failing step (default: 1).
359
- * Set to 0 to detect failures without retrying.
360
- */
361
- maxRetries?: number;
362
- };
363
- }
364
- /**
365
- * Test executor interface
366
- */
367
- export interface ITestExecutor {
368
- /** Execute test steps */
369
- execute(steps: StepArray, $meta: IMeta, testContext?: ITestFrameworkContext): Promise<void>;
370
- /** Get current progress snapshot */
371
- getProgress(): ITestProgress;
372
- /** Get dependency graph */
373
- getDependencyGraph(): IDependencyGraph;
374
- /** Get latency metrics */
375
- getLatencyReport(): ITestLatency;
376
- /** Register event listener */
377
- on<E extends keyof ITestEvents>(event: E, handler: ITestEvents[E]): void;
378
- }
379
- //# sourceMappingURL=test-types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-types.d.ts","sourceRoot":"","sources":["../test-types.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=test-types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-types.js","sourceRoot":"","sources":["../test-types.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=timing-analysis.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"timing-analysis.test.d.ts","sourceRoot":"","sources":["../timing-analysis.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"timing-analysis.test.js","sourceRoot":"","sources":["../timing-analysis.test.ts"],"names":[],"mappings":"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"}