observability-toolkit 1.8.2 → 1.8.5
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/README.md +60 -0
- package/dist/backends/index.d.ts +43 -0
- package/dist/backends/index.d.ts.map +1 -1
- package/dist/backends/index.js +41 -0
- package/dist/backends/index.js.map +1 -1
- package/dist/backends/index.test.d.ts +5 -0
- package/dist/backends/index.test.d.ts.map +1 -0
- package/dist/backends/index.test.js +156 -0
- package/dist/backends/index.test.js.map +1 -0
- package/dist/backends/local-jsonl-boolean-search.test.js +15 -12
- package/dist/backends/local-jsonl-boolean-search.test.js.map +1 -1
- package/dist/backends/local-jsonl-cache.test.d.ts +2 -0
- package/dist/backends/local-jsonl-cache.test.d.ts.map +1 -0
- package/dist/backends/local-jsonl-cache.test.js +295 -0
- package/dist/backends/local-jsonl-cache.test.js.map +1 -0
- package/dist/backends/local-jsonl-circuit-breaker.test.d.ts +2 -0
- package/dist/backends/local-jsonl-circuit-breaker.test.d.ts.map +1 -0
- package/dist/backends/local-jsonl-circuit-breaker.test.js +180 -0
- package/dist/backends/local-jsonl-circuit-breaker.test.js.map +1 -0
- package/dist/backends/local-jsonl-export.test.d.ts +2 -0
- package/dist/backends/local-jsonl-export.test.d.ts.map +1 -0
- package/dist/backends/local-jsonl-export.test.js +704 -0
- package/dist/backends/local-jsonl-export.test.js.map +1 -0
- package/dist/backends/local-jsonl-index.test.d.ts +2 -0
- package/dist/backends/local-jsonl-index.test.d.ts.map +1 -0
- package/dist/backends/local-jsonl-index.test.js +554 -0
- package/dist/backends/local-jsonl-index.test.js.map +1 -0
- package/dist/backends/local-jsonl-logs.test.d.ts +2 -0
- package/dist/backends/local-jsonl-logs.test.d.ts.map +1 -0
- package/dist/backends/local-jsonl-logs.test.js +612 -0
- package/dist/backends/local-jsonl-logs.test.js.map +1 -0
- package/dist/backends/local-jsonl-metrics.test.d.ts +2 -0
- package/dist/backends/local-jsonl-metrics.test.d.ts.map +1 -0
- package/dist/backends/local-jsonl-metrics.test.js +876 -0
- package/dist/backends/local-jsonl-metrics.test.js.map +1 -0
- package/dist/backends/local-jsonl-traces.test.d.ts +2 -0
- package/dist/backends/local-jsonl-traces.test.d.ts.map +1 -0
- package/dist/backends/local-jsonl-traces.test.js +1729 -0
- package/dist/backends/local-jsonl-traces.test.js.map +1 -0
- package/dist/backends/local-jsonl.d.ts +9 -0
- package/dist/backends/local-jsonl.d.ts.map +1 -1
- package/dist/backends/local-jsonl.js +348 -227
- package/dist/backends/local-jsonl.js.map +1 -1
- package/dist/backends/local-jsonl.test.js +290 -21
- package/dist/backends/local-jsonl.test.js.map +1 -1
- package/dist/backends/signoz-api-circuit-breaker.test.d.ts +6 -0
- package/dist/backends/signoz-api-circuit-breaker.test.d.ts.map +1 -0
- package/dist/backends/signoz-api-circuit-breaker.test.js +548 -0
- package/dist/backends/signoz-api-circuit-breaker.test.js.map +1 -0
- package/dist/backends/signoz-api-rate-limiter.test.d.ts +6 -0
- package/dist/backends/signoz-api-rate-limiter.test.d.ts.map +1 -0
- package/dist/backends/signoz-api-rate-limiter.test.js +389 -0
- package/dist/backends/signoz-api-rate-limiter.test.js.map +1 -0
- package/dist/backends/signoz-api-ssrf.test.d.ts +6 -0
- package/dist/backends/signoz-api-ssrf.test.d.ts.map +1 -0
- package/dist/backends/signoz-api-ssrf.test.js +216 -0
- package/dist/backends/signoz-api-ssrf.test.js.map +1 -0
- package/dist/backends/signoz-api-test-helpers.d.ts +80 -0
- package/dist/backends/signoz-api-test-helpers.d.ts.map +1 -0
- package/dist/backends/signoz-api-test-helpers.js +79 -0
- package/dist/backends/signoz-api-test-helpers.js.map +1 -0
- package/dist/backends/signoz-api.d.ts +16 -0
- package/dist/backends/signoz-api.d.ts.map +1 -1
- package/dist/backends/signoz-api.js +71 -9
- package/dist/backends/signoz-api.js.map +1 -1
- package/dist/backends/signoz-api.test.d.ts +9 -0
- package/dist/backends/signoz-api.test.d.ts.map +1 -1
- package/dist/backends/signoz-api.test.js +14 -1027
- package/dist/backends/signoz-api.test.js.map +1 -1
- package/dist/lib/cache.d.ts +47 -1
- package/dist/lib/cache.d.ts.map +1 -1
- package/dist/lib/cache.js +40 -3
- package/dist/lib/cache.js.map +1 -1
- package/dist/lib/circuit-breaker.d.ts +83 -0
- package/dist/lib/circuit-breaker.d.ts.map +1 -0
- package/dist/lib/circuit-breaker.js +125 -0
- package/dist/lib/circuit-breaker.js.map +1 -0
- package/dist/lib/circuit-breaker.test.d.ts +2 -0
- package/dist/lib/circuit-breaker.test.d.ts.map +1 -0
- package/dist/lib/circuit-breaker.test.js +263 -0
- package/dist/lib/circuit-breaker.test.js.map +1 -0
- package/dist/lib/constants-symlink.test.d.ts +12 -0
- package/dist/lib/constants-symlink.test.d.ts.map +1 -0
- package/dist/lib/constants-symlink.test.js +357 -0
- package/dist/lib/constants-symlink.test.js.map +1 -0
- package/dist/lib/constants.d.ts +43 -0
- package/dist/lib/constants.d.ts.map +1 -1
- package/dist/lib/constants.js +154 -24
- package/dist/lib/constants.js.map +1 -1
- package/dist/lib/constants.test.js +156 -7
- package/dist/lib/constants.test.js.map +1 -1
- package/dist/lib/edge-cases.test.d.ts +11 -0
- package/dist/lib/edge-cases.test.d.ts.map +1 -0
- package/dist/lib/edge-cases.test.js +634 -0
- package/dist/lib/edge-cases.test.js.map +1 -0
- package/dist/lib/error-sanitizer.d.ts.map +1 -1
- package/dist/lib/error-sanitizer.js +62 -26
- package/dist/lib/error-sanitizer.js.map +1 -1
- package/dist/lib/error-sanitizer.test.js +186 -0
- package/dist/lib/error-sanitizer.test.js.map +1 -1
- package/dist/lib/error-types.d.ts +54 -0
- package/dist/lib/error-types.d.ts.map +1 -0
- package/dist/lib/error-types.js +154 -0
- package/dist/lib/error-types.js.map +1 -0
- package/dist/lib/error-types.test.d.ts +2 -0
- package/dist/lib/error-types.test.d.ts.map +1 -0
- package/dist/lib/error-types.test.js +196 -0
- package/dist/lib/error-types.test.js.map +1 -0
- package/dist/lib/file-utils.test.js +3 -3
- package/dist/lib/file-utils.test.js.map +1 -1
- package/dist/lib/indexer.test.js +157 -24
- package/dist/lib/indexer.test.js.map +1 -1
- package/dist/lib/input-validator.d.ts +17 -0
- package/dist/lib/input-validator.d.ts.map +1 -1
- package/dist/lib/input-validator.fuzz.test.d.ts +12 -0
- package/dist/lib/input-validator.fuzz.test.d.ts.map +1 -0
- package/dist/lib/input-validator.fuzz.test.js +290 -0
- package/dist/lib/input-validator.fuzz.test.js.map +1 -0
- package/dist/lib/input-validator.js +62 -3
- package/dist/lib/input-validator.js.map +1 -1
- package/dist/lib/input-validator.test.js +129 -1
- package/dist/lib/input-validator.test.js.map +1 -1
- package/dist/lib/logger.d.ts +46 -0
- package/dist/lib/logger.d.ts.map +1 -0
- package/dist/lib/logger.js +81 -0
- package/dist/lib/logger.js.map +1 -0
- package/dist/lib/logger.test.d.ts +2 -0
- package/dist/lib/logger.test.d.ts.map +1 -0
- package/dist/lib/logger.test.js +122 -0
- package/dist/lib/logger.test.js.map +1 -0
- package/dist/lib/query-sanitizer.d.ts +51 -3
- package/dist/lib/query-sanitizer.d.ts.map +1 -1
- package/dist/lib/query-sanitizer.js +105 -31
- package/dist/lib/query-sanitizer.js.map +1 -1
- package/dist/lib/query-sanitizer.test.js +102 -1
- package/dist/lib/query-sanitizer.test.js.map +1 -1
- package/dist/lib/server-utils.d.ts +88 -0
- package/dist/lib/server-utils.d.ts.map +1 -0
- package/dist/lib/server-utils.js +173 -0
- package/dist/lib/server-utils.js.map +1 -0
- package/dist/lib/shared-schemas.d.ts +81 -0
- package/dist/lib/shared-schemas.d.ts.map +1 -0
- package/dist/lib/shared-schemas.js +80 -0
- package/dist/lib/shared-schemas.js.map +1 -0
- package/dist/lib/shared-schemas.test.d.ts +5 -0
- package/dist/lib/shared-schemas.test.d.ts.map +1 -0
- package/dist/lib/shared-schemas.test.js +106 -0
- package/dist/lib/shared-schemas.test.js.map +1 -0
- package/dist/lib/toon-encoder.d.ts +26 -0
- package/dist/lib/toon-encoder.d.ts.map +1 -0
- package/dist/lib/toon-encoder.js +61 -0
- package/dist/lib/toon-encoder.js.map +1 -0
- package/dist/lib/toon-encoder.test.d.ts +5 -0
- package/dist/lib/toon-encoder.test.d.ts.map +1 -0
- package/dist/lib/toon-encoder.test.js +85 -0
- package/dist/lib/toon-encoder.test.js.map +1 -0
- package/dist/server.d.ts +1 -49
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +154 -162
- package/dist/server.js.map +1 -1
- package/dist/server.test.js +198 -7
- package/dist/server.test.js.map +1 -1
- package/dist/test-helpers/env-utils.d.ts +87 -0
- package/dist/test-helpers/env-utils.d.ts.map +1 -0
- package/dist/test-helpers/env-utils.js +132 -0
- package/dist/test-helpers/env-utils.js.map +1 -0
- package/dist/test-helpers/file-utils.d.ts +67 -0
- package/dist/test-helpers/file-utils.d.ts.map +1 -1
- package/dist/test-helpers/file-utils.js +165 -2
- package/dist/test-helpers/file-utils.js.map +1 -1
- package/dist/test-helpers/fuzz-generators.d.ts +58 -0
- package/dist/test-helpers/fuzz-generators.d.ts.map +1 -0
- package/dist/test-helpers/fuzz-generators.js +216 -0
- package/dist/test-helpers/fuzz-generators.js.map +1 -0
- package/dist/test-helpers/index.d.ts +11 -0
- package/dist/test-helpers/index.d.ts.map +1 -0
- package/dist/test-helpers/index.js +30 -0
- package/dist/test-helpers/index.js.map +1 -0
- package/dist/test-helpers/memfs-utils.d.ts +181 -0
- package/dist/test-helpers/memfs-utils.d.ts.map +1 -0
- package/dist/test-helpers/memfs-utils.js +292 -0
- package/dist/test-helpers/memfs-utils.js.map +1 -0
- package/dist/test-helpers/memfs-utils.test.d.ts +5 -0
- package/dist/test-helpers/memfs-utils.test.d.ts.map +1 -0
- package/dist/test-helpers/memfs-utils.test.js +338 -0
- package/dist/test-helpers/memfs-utils.test.js.map +1 -0
- package/dist/test-helpers/mock-backends.d.ts +113 -2
- package/dist/test-helpers/mock-backends.d.ts.map +1 -1
- package/dist/test-helpers/mock-backends.js +199 -3
- package/dist/test-helpers/mock-backends.js.map +1 -1
- package/dist/test-helpers/mock-backends.test.d.ts +5 -0
- package/dist/test-helpers/mock-backends.test.d.ts.map +1 -0
- package/dist/test-helpers/mock-backends.test.js +368 -0
- package/dist/test-helpers/mock-backends.test.js.map +1 -0
- package/dist/test-helpers/race-condition-helpers.d.ts +85 -0
- package/dist/test-helpers/race-condition-helpers.d.ts.map +1 -0
- package/dist/test-helpers/race-condition-helpers.js +279 -0
- package/dist/test-helpers/race-condition-helpers.js.map +1 -0
- package/dist/test-helpers/schema-validators.d.ts +32 -0
- package/dist/test-helpers/schema-validators.d.ts.map +1 -0
- package/dist/test-helpers/schema-validators.js +125 -0
- package/dist/test-helpers/schema-validators.js.map +1 -0
- package/dist/test-helpers/test-data-builders.d.ts +260 -0
- package/dist/test-helpers/test-data-builders.d.ts.map +1 -0
- package/dist/test-helpers/test-data-builders.js +337 -0
- package/dist/test-helpers/test-data-builders.js.map +1 -0
- package/dist/test-helpers/test-data-builders.test.d.ts +2 -0
- package/dist/test-helpers/test-data-builders.test.d.ts.map +1 -0
- package/dist/test-helpers/test-data-builders.test.js +306 -0
- package/dist/test-helpers/test-data-builders.test.js.map +1 -0
- package/dist/test-helpers/tool-validators.d.ts +28 -0
- package/dist/test-helpers/tool-validators.d.ts.map +1 -0
- package/dist/test-helpers/tool-validators.js +71 -0
- package/dist/test-helpers/tool-validators.js.map +1 -0
- package/dist/tools/context-stats.d.ts +1 -0
- package/dist/tools/context-stats.d.ts.map +1 -1
- package/dist/tools/context-stats.js +9 -5
- package/dist/tools/context-stats.js.map +1 -1
- package/dist/tools/context-stats.test.js +24 -10
- package/dist/tools/context-stats.test.js.map +1 -1
- package/dist/tools/get-trace-url.js +2 -2
- package/dist/tools/get-trace-url.js.map +1 -1
- package/dist/tools/health-check.js +2 -2
- package/dist/tools/health-check.js.map +1 -1
- package/dist/tools/query-evaluations.d.ts +21 -18
- package/dist/tools/query-evaluations.d.ts.map +1 -1
- package/dist/tools/query-evaluations.js +33 -19
- package/dist/tools/query-evaluations.js.map +1 -1
- package/dist/tools/query-evaluations.test.js +60 -63
- package/dist/tools/query-evaluations.test.js.map +1 -1
- package/dist/tools/query-llm-events.d.ts +19 -15
- package/dist/tools/query-llm-events.d.ts.map +1 -1
- package/dist/tools/query-llm-events.js +31 -15
- package/dist/tools/query-llm-events.js.map +1 -1
- package/dist/tools/query-llm-events.test.js +277 -12
- package/dist/tools/query-llm-events.test.js.map +1 -1
- package/dist/tools/query-logs.d.ts +22 -22
- package/dist/tools/query-logs.d.ts.map +1 -1
- package/dist/tools/query-logs.js +9 -9
- package/dist/tools/query-logs.js.map +1 -1
- package/dist/tools/query-logs.test.js +19 -72
- package/dist/tools/query-logs.test.js.map +1 -1
- package/dist/tools/query-metrics.d.ts +14 -14
- package/dist/tools/query-metrics.d.ts.map +1 -1
- package/dist/tools/query-metrics.js +9 -9
- package/dist/tools/query-metrics.js.map +1 -1
- package/dist/tools/query-metrics.test.js +12 -25
- package/dist/tools/query-metrics.test.js.map +1 -1
- package/dist/tools/query-traces.d.ts +28 -28
- package/dist/tools/query-traces.d.ts.map +1 -1
- package/dist/tools/query-traces.js +18 -18
- package/dist/tools/query-traces.js.map +1 -1
- package/dist/tools/query-traces.test.js +58 -54
- package/dist/tools/query-traces.test.js.map +1 -1
- package/dist/tools/setup-claudeignore.js +7 -7
- package/dist/tools/setup-claudeignore.js.map +1 -1
- package/dist/tools/setup-claudeignore.test.js +4 -25
- package/dist/tools/setup-claudeignore.test.js.map +1 -1
- package/package.json +4 -2
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-memory file system utilities for tests
|
|
3
|
+
*
|
|
4
|
+
* Uses memfs to provide a virtual file system that avoids disk I/O.
|
|
5
|
+
* Tests can use createMemFs() to get an isolated fs instance and directory.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* import { createMemFs, writeJsonlMem } from '../test-helpers/memfs-utils.js';
|
|
10
|
+
*
|
|
11
|
+
* describe('MyTest', () => {
|
|
12
|
+
* let mfs: MemFsInstance;
|
|
13
|
+
*
|
|
14
|
+
* beforeEach(() => {
|
|
15
|
+
* mfs = createMemFs();
|
|
16
|
+
* });
|
|
17
|
+
*
|
|
18
|
+
* it('should work', async () => {
|
|
19
|
+
* writeJsonlMem(mfs, 'traces-2026-01-31.jsonl', [{ traceId: 't1' }]);
|
|
20
|
+
* // mfs.dir contains the path prefix to use
|
|
21
|
+
* const backend = new LocalJsonlBackend(mfs.dir, { fs: mfs.fs });
|
|
22
|
+
* });
|
|
23
|
+
* });
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
import { Volume, type IFs } from 'memfs';
|
|
27
|
+
/** Memfs instance with isolated volume */
|
|
28
|
+
export interface MemFsInstance {
|
|
29
|
+
/** The memfs filesystem interface (compatible with node:fs) */
|
|
30
|
+
fs: IFs;
|
|
31
|
+
/** The underlying volume (for advanced operations) */
|
|
32
|
+
vol: InstanceType<typeof Volume>;
|
|
33
|
+
/** The base directory path (e.g., '/test-data') */
|
|
34
|
+
dir: string;
|
|
35
|
+
/** Reset the volume (clear all files) */
|
|
36
|
+
reset: () => void;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Create a new in-memory file system instance
|
|
40
|
+
*
|
|
41
|
+
* Each call creates an isolated volume with its own directory.
|
|
42
|
+
* The returned fs object is compatible with node:fs operations.
|
|
43
|
+
*
|
|
44
|
+
* @param prefix - Optional prefix for the directory name
|
|
45
|
+
* @returns MemFsInstance with fs, vol, dir, and reset function
|
|
46
|
+
*/
|
|
47
|
+
export declare function createMemFs(prefix?: string): MemFsInstance;
|
|
48
|
+
/**
|
|
49
|
+
* Write JSONL data to an in-memory file
|
|
50
|
+
*
|
|
51
|
+
* @param mfs - MemFsInstance from createMemFs()
|
|
52
|
+
* @param filename - Filename (not full path) to write
|
|
53
|
+
* @param data - Array of objects to write as JSONL
|
|
54
|
+
*/
|
|
55
|
+
export declare function writeJsonlMem(mfs: MemFsInstance, filename: string, data: unknown[]): void;
|
|
56
|
+
/**
|
|
57
|
+
* Write raw content to an in-memory file
|
|
58
|
+
*
|
|
59
|
+
* @param mfs - MemFsInstance from createMemFs()
|
|
60
|
+
* @param filename - Filename (not full path) to write
|
|
61
|
+
* @param content - Content to write (string or Buffer)
|
|
62
|
+
*/
|
|
63
|
+
export declare function writeFileMem(mfs: MemFsInstance, filename: string, content: string | Buffer): void;
|
|
64
|
+
/**
|
|
65
|
+
* Read file content from in-memory file system
|
|
66
|
+
*
|
|
67
|
+
* @param mfs - MemFsInstance from createMemFs()
|
|
68
|
+
* @param filename - Filename (not full path) to read
|
|
69
|
+
* @returns File content as string
|
|
70
|
+
*/
|
|
71
|
+
export declare function readFileMem(mfs: MemFsInstance, filename: string): string;
|
|
72
|
+
/**
|
|
73
|
+
* Check if a file exists in the in-memory file system
|
|
74
|
+
*
|
|
75
|
+
* @param mfs - MemFsInstance from createMemFs()
|
|
76
|
+
* @param filename - Filename (not full path) to check
|
|
77
|
+
* @returns true if file exists
|
|
78
|
+
*/
|
|
79
|
+
export declare function existsMem(mfs: MemFsInstance, filename: string): boolean;
|
|
80
|
+
/**
|
|
81
|
+
* Create a subdirectory in the in-memory file system
|
|
82
|
+
*
|
|
83
|
+
* @param mfs - MemFsInstance from createMemFs()
|
|
84
|
+
* @param dirname - Directory name to create (relative to mfs.dir)
|
|
85
|
+
*/
|
|
86
|
+
export declare function mkdirMem(mfs: MemFsInstance, dirname: string): void;
|
|
87
|
+
/**
|
|
88
|
+
* List files in a directory in the in-memory file system
|
|
89
|
+
*
|
|
90
|
+
* @param mfs - MemFsInstance from createMemFs()
|
|
91
|
+
* @param dirname - Optional subdirectory (defaults to mfs.dir)
|
|
92
|
+
* @returns Array of filenames
|
|
93
|
+
*/
|
|
94
|
+
export declare function readdirMem(mfs: MemFsInstance, dirname?: string): string[];
|
|
95
|
+
/**
|
|
96
|
+
* Get today's date in YYYY-MM-DD format
|
|
97
|
+
* @returns Today's date string
|
|
98
|
+
*/
|
|
99
|
+
export declare function getTestDateMem(): string;
|
|
100
|
+
/**
|
|
101
|
+
* Get or create a shared memfs instance for a test suite
|
|
102
|
+
*
|
|
103
|
+
* Use this when multiple tests in a suite can share the same in-memory fs.
|
|
104
|
+
* Call resetSharedMemFs() in beforeEach to clear files between tests.
|
|
105
|
+
*
|
|
106
|
+
* @param suiteId - Unique identifier for the test suite
|
|
107
|
+
* @returns Shared MemFsInstance
|
|
108
|
+
*/
|
|
109
|
+
export declare function getSharedMemFs(suiteId: string): MemFsInstance;
|
|
110
|
+
/**
|
|
111
|
+
* Reset (clear) a shared memfs instance
|
|
112
|
+
*
|
|
113
|
+
* Call this in beforeEach to ensure clean state between tests.
|
|
114
|
+
*
|
|
115
|
+
* @param suiteId - Unique identifier for the test suite
|
|
116
|
+
*/
|
|
117
|
+
export declare function resetSharedMemFs(suiteId: string): void;
|
|
118
|
+
/**
|
|
119
|
+
* Remove a shared memfs instance
|
|
120
|
+
*
|
|
121
|
+
* Call this in after() to clean up suite-level resources.
|
|
122
|
+
*
|
|
123
|
+
* @param suiteId - Unique identifier for the test suite
|
|
124
|
+
*/
|
|
125
|
+
export declare function removeSharedMemFs(suiteId: string): void;
|
|
126
|
+
/**
|
|
127
|
+
* Clean up all shared memfs instances
|
|
128
|
+
*
|
|
129
|
+
* Useful for global test teardown.
|
|
130
|
+
*/
|
|
131
|
+
export declare function cleanupAllSharedMemFs(): void;
|
|
132
|
+
/**
|
|
133
|
+
* Read JSONL content from in-memory file and parse to objects
|
|
134
|
+
*
|
|
135
|
+
* @param mfs - MemFsInstance from createMemFs()
|
|
136
|
+
* @param filename - Filename (not full path) to read
|
|
137
|
+
* @returns Array of parsed objects (skips invalid lines)
|
|
138
|
+
*/
|
|
139
|
+
export declare function readJsonlMem<T = unknown>(mfs: MemFsInstance, filename: string): T[];
|
|
140
|
+
/**
|
|
141
|
+
* Read JSONL content with stats (mirrors readJsonlSyncWithStats)
|
|
142
|
+
*
|
|
143
|
+
* @param mfs - MemFsInstance from createMemFs()
|
|
144
|
+
* @param filename - Filename (not full path) to read
|
|
145
|
+
* @returns Object with data array and stats
|
|
146
|
+
*/
|
|
147
|
+
export declare function readJsonlMemWithStats<T = unknown>(mfs: MemFsInstance, filename: string): {
|
|
148
|
+
data: T[];
|
|
149
|
+
stats: {
|
|
150
|
+
totalLines: number;
|
|
151
|
+
skippedLines: number;
|
|
152
|
+
emptyLines: number;
|
|
153
|
+
};
|
|
154
|
+
};
|
|
155
|
+
/**
|
|
156
|
+
* Async generator for streaming JSONL from memfs (mirrors streamJsonl)
|
|
157
|
+
*
|
|
158
|
+
* @param mfs - MemFsInstance from createMemFs()
|
|
159
|
+
* @param filename - Filename (not full path) to read
|
|
160
|
+
* @yields Parsed objects from each line
|
|
161
|
+
*/
|
|
162
|
+
export declare function streamJsonlMem<T = unknown>(mfs: MemFsInstance, filename: string): AsyncGenerator<T, void, unknown>;
|
|
163
|
+
/**
|
|
164
|
+
* List files matching a pattern prefix in the memfs directory
|
|
165
|
+
*
|
|
166
|
+
* @param mfs - MemFsInstance from createMemFs()
|
|
167
|
+
* @param prefix - Filename prefix to match (e.g., 'traces-')
|
|
168
|
+
* @returns Array of matching filenames
|
|
169
|
+
*/
|
|
170
|
+
export declare function listFilesMem(mfs: MemFsInstance, prefix: string): string[];
|
|
171
|
+
/**
|
|
172
|
+
* List files matching a date range pattern
|
|
173
|
+
*
|
|
174
|
+
* @param mfs - MemFsInstance from createMemFs()
|
|
175
|
+
* @param type - Telemetry type prefix (e.g., 'traces', 'logs')
|
|
176
|
+
* @param startDate - Optional start date (YYYY-MM-DD)
|
|
177
|
+
* @param endDate - Optional end date (YYYY-MM-DD)
|
|
178
|
+
* @returns Array of matching full paths
|
|
179
|
+
*/
|
|
180
|
+
export declare function listFilesInRangeMem(mfs: MemFsInstance, type: string, startDate?: string, endDate?: string): string[];
|
|
181
|
+
//# sourceMappingURL=memfs-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memfs-utils.d.ts","sourceRoot":"","sources":["../../src/test-helpers/memfs-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-memory file system utilities for tests
|
|
3
|
+
*
|
|
4
|
+
* Uses memfs to provide a virtual file system that avoids disk I/O.
|
|
5
|
+
* Tests can use createMemFs() to get an isolated fs instance and directory.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* import { createMemFs, writeJsonlMem } from '../test-helpers/memfs-utils.js';
|
|
10
|
+
*
|
|
11
|
+
* describe('MyTest', () => {
|
|
12
|
+
* let mfs: MemFsInstance;
|
|
13
|
+
*
|
|
14
|
+
* beforeEach(() => {
|
|
15
|
+
* mfs = createMemFs();
|
|
16
|
+
* });
|
|
17
|
+
*
|
|
18
|
+
* it('should work', async () => {
|
|
19
|
+
* writeJsonlMem(mfs, 'traces-2026-01-31.jsonl', [{ traceId: 't1' }]);
|
|
20
|
+
* // mfs.dir contains the path prefix to use
|
|
21
|
+
* const backend = new LocalJsonlBackend(mfs.dir, { fs: mfs.fs });
|
|
22
|
+
* });
|
|
23
|
+
* });
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
import { createFsFromVolume, Volume } from 'memfs';
|
|
27
|
+
import * as path from 'path';
|
|
28
|
+
/** Counter for unique directory names */
|
|
29
|
+
let memFsCounter = 0;
|
|
30
|
+
/**
|
|
31
|
+
* Create a new in-memory file system instance
|
|
32
|
+
*
|
|
33
|
+
* Each call creates an isolated volume with its own directory.
|
|
34
|
+
* The returned fs object is compatible with node:fs operations.
|
|
35
|
+
*
|
|
36
|
+
* @param prefix - Optional prefix for the directory name
|
|
37
|
+
* @returns MemFsInstance with fs, vol, dir, and reset function
|
|
38
|
+
*/
|
|
39
|
+
export function createMemFs(prefix = 'test') {
|
|
40
|
+
const vol = new Volume();
|
|
41
|
+
const fs = createFsFromVolume(vol);
|
|
42
|
+
const dir = `/memfs-${prefix}-${++memFsCounter}`;
|
|
43
|
+
// Create the base directory
|
|
44
|
+
vol.mkdirSync(dir, { recursive: true });
|
|
45
|
+
return {
|
|
46
|
+
fs: fs,
|
|
47
|
+
vol,
|
|
48
|
+
dir,
|
|
49
|
+
reset: () => {
|
|
50
|
+
// Clear volume and recreate base directory
|
|
51
|
+
vol.reset();
|
|
52
|
+
vol.mkdirSync(dir, { recursive: true });
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Write JSONL data to an in-memory file
|
|
58
|
+
*
|
|
59
|
+
* @param mfs - MemFsInstance from createMemFs()
|
|
60
|
+
* @param filename - Filename (not full path) to write
|
|
61
|
+
* @param data - Array of objects to write as JSONL
|
|
62
|
+
*/
|
|
63
|
+
export function writeJsonlMem(mfs, filename, data) {
|
|
64
|
+
const content = data.map(item => JSON.stringify(item)).join('\n');
|
|
65
|
+
const filePath = path.join(mfs.dir, filename);
|
|
66
|
+
mfs.vol.writeFileSync(filePath, content, { encoding: 'utf-8' });
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Write raw content to an in-memory file
|
|
70
|
+
*
|
|
71
|
+
* @param mfs - MemFsInstance from createMemFs()
|
|
72
|
+
* @param filename - Filename (not full path) to write
|
|
73
|
+
* @param content - Content to write (string or Buffer)
|
|
74
|
+
*/
|
|
75
|
+
export function writeFileMem(mfs, filename, content) {
|
|
76
|
+
const filePath = path.join(mfs.dir, filename);
|
|
77
|
+
mfs.vol.writeFileSync(filePath, content);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Read file content from in-memory file system
|
|
81
|
+
*
|
|
82
|
+
* @param mfs - MemFsInstance from createMemFs()
|
|
83
|
+
* @param filename - Filename (not full path) to read
|
|
84
|
+
* @returns File content as string
|
|
85
|
+
*/
|
|
86
|
+
export function readFileMem(mfs, filename) {
|
|
87
|
+
const filePath = path.join(mfs.dir, filename);
|
|
88
|
+
return mfs.vol.readFileSync(filePath, 'utf-8');
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Check if a file exists in the in-memory file system
|
|
92
|
+
*
|
|
93
|
+
* @param mfs - MemFsInstance from createMemFs()
|
|
94
|
+
* @param filename - Filename (not full path) to check
|
|
95
|
+
* @returns true if file exists
|
|
96
|
+
*/
|
|
97
|
+
export function existsMem(mfs, filename) {
|
|
98
|
+
const filePath = path.join(mfs.dir, filename);
|
|
99
|
+
return mfs.vol.existsSync(filePath);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Create a subdirectory in the in-memory file system
|
|
103
|
+
*
|
|
104
|
+
* @param mfs - MemFsInstance from createMemFs()
|
|
105
|
+
* @param dirname - Directory name to create (relative to mfs.dir)
|
|
106
|
+
*/
|
|
107
|
+
export function mkdirMem(mfs, dirname) {
|
|
108
|
+
const dirPath = path.join(mfs.dir, dirname);
|
|
109
|
+
mfs.vol.mkdirSync(dirPath, { recursive: true });
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* List files in a directory in the in-memory file system
|
|
113
|
+
*
|
|
114
|
+
* @param mfs - MemFsInstance from createMemFs()
|
|
115
|
+
* @param dirname - Optional subdirectory (defaults to mfs.dir)
|
|
116
|
+
* @returns Array of filenames
|
|
117
|
+
*/
|
|
118
|
+
export function readdirMem(mfs, dirname = '') {
|
|
119
|
+
const dirPath = dirname ? path.join(mfs.dir, dirname) : mfs.dir;
|
|
120
|
+
return mfs.vol.readdirSync(dirPath);
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Get today's date in YYYY-MM-DD format
|
|
124
|
+
* @returns Today's date string
|
|
125
|
+
*/
|
|
126
|
+
export function getTestDateMem() {
|
|
127
|
+
return new Date().toISOString().split('T')[0];
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Shared memfs instances for test suites
|
|
131
|
+
* Use getSharedMemFs() to get/create a shared instance by ID
|
|
132
|
+
*/
|
|
133
|
+
const sharedMemFsInstances = new Map();
|
|
134
|
+
/**
|
|
135
|
+
* Get or create a shared memfs instance for a test suite
|
|
136
|
+
*
|
|
137
|
+
* Use this when multiple tests in a suite can share the same in-memory fs.
|
|
138
|
+
* Call resetSharedMemFs() in beforeEach to clear files between tests.
|
|
139
|
+
*
|
|
140
|
+
* @param suiteId - Unique identifier for the test suite
|
|
141
|
+
* @returns Shared MemFsInstance
|
|
142
|
+
*/
|
|
143
|
+
export function getSharedMemFs(suiteId) {
|
|
144
|
+
let mfs = sharedMemFsInstances.get(suiteId);
|
|
145
|
+
if (!mfs) {
|
|
146
|
+
mfs = createMemFs(suiteId);
|
|
147
|
+
sharedMemFsInstances.set(suiteId, mfs);
|
|
148
|
+
}
|
|
149
|
+
return mfs;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Reset (clear) a shared memfs instance
|
|
153
|
+
*
|
|
154
|
+
* Call this in beforeEach to ensure clean state between tests.
|
|
155
|
+
*
|
|
156
|
+
* @param suiteId - Unique identifier for the test suite
|
|
157
|
+
*/
|
|
158
|
+
export function resetSharedMemFs(suiteId) {
|
|
159
|
+
const mfs = sharedMemFsInstances.get(suiteId);
|
|
160
|
+
if (mfs) {
|
|
161
|
+
mfs.reset();
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Remove a shared memfs instance
|
|
166
|
+
*
|
|
167
|
+
* Call this in after() to clean up suite-level resources.
|
|
168
|
+
*
|
|
169
|
+
* @param suiteId - Unique identifier for the test suite
|
|
170
|
+
*/
|
|
171
|
+
export function removeSharedMemFs(suiteId) {
|
|
172
|
+
sharedMemFsInstances.delete(suiteId);
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Clean up all shared memfs instances
|
|
176
|
+
*
|
|
177
|
+
* Useful for global test teardown.
|
|
178
|
+
*/
|
|
179
|
+
export function cleanupAllSharedMemFs() {
|
|
180
|
+
sharedMemFsInstances.clear();
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Read JSONL content from in-memory file and parse to objects
|
|
184
|
+
*
|
|
185
|
+
* @param mfs - MemFsInstance from createMemFs()
|
|
186
|
+
* @param filename - Filename (not full path) to read
|
|
187
|
+
* @returns Array of parsed objects (skips invalid lines)
|
|
188
|
+
*/
|
|
189
|
+
export function readJsonlMem(mfs, filename) {
|
|
190
|
+
const content = readFileMem(mfs, filename);
|
|
191
|
+
const results = [];
|
|
192
|
+
for (const line of content.split('\n')) {
|
|
193
|
+
const trimmed = line.trim();
|
|
194
|
+
if (!trimmed)
|
|
195
|
+
continue;
|
|
196
|
+
try {
|
|
197
|
+
results.push(JSON.parse(trimmed));
|
|
198
|
+
}
|
|
199
|
+
catch {
|
|
200
|
+
// Skip invalid JSON lines
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
return results;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Read JSONL content with stats (mirrors readJsonlSyncWithStats)
|
|
207
|
+
*
|
|
208
|
+
* @param mfs - MemFsInstance from createMemFs()
|
|
209
|
+
* @param filename - Filename (not full path) to read
|
|
210
|
+
* @returns Object with data array and stats
|
|
211
|
+
*/
|
|
212
|
+
export function readJsonlMemWithStats(mfs, filename) {
|
|
213
|
+
const content = readFileMem(mfs, filename);
|
|
214
|
+
const data = [];
|
|
215
|
+
let totalLines = 0;
|
|
216
|
+
let skippedLines = 0;
|
|
217
|
+
let emptyLines = 0;
|
|
218
|
+
for (const line of content.split('\n')) {
|
|
219
|
+
totalLines++;
|
|
220
|
+
const trimmed = line.trim();
|
|
221
|
+
if (!trimmed) {
|
|
222
|
+
emptyLines++;
|
|
223
|
+
continue;
|
|
224
|
+
}
|
|
225
|
+
try {
|
|
226
|
+
data.push(JSON.parse(trimmed));
|
|
227
|
+
}
|
|
228
|
+
catch {
|
|
229
|
+
skippedLines++;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
return { data, stats: { totalLines, skippedLines, emptyLines } };
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Async generator for streaming JSONL from memfs (mirrors streamJsonl)
|
|
236
|
+
*
|
|
237
|
+
* @param mfs - MemFsInstance from createMemFs()
|
|
238
|
+
* @param filename - Filename (not full path) to read
|
|
239
|
+
* @yields Parsed objects from each line
|
|
240
|
+
*/
|
|
241
|
+
export async function* streamJsonlMem(mfs, filename) {
|
|
242
|
+
const content = readFileMem(mfs, filename);
|
|
243
|
+
for (const line of content.split('\n')) {
|
|
244
|
+
const trimmed = line.trim();
|
|
245
|
+
if (!trimmed)
|
|
246
|
+
continue;
|
|
247
|
+
try {
|
|
248
|
+
yield JSON.parse(trimmed);
|
|
249
|
+
}
|
|
250
|
+
catch {
|
|
251
|
+
// Skip invalid JSON lines
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* List files matching a pattern prefix in the memfs directory
|
|
257
|
+
*
|
|
258
|
+
* @param mfs - MemFsInstance from createMemFs()
|
|
259
|
+
* @param prefix - Filename prefix to match (e.g., 'traces-')
|
|
260
|
+
* @returns Array of matching filenames
|
|
261
|
+
*/
|
|
262
|
+
export function listFilesMem(mfs, prefix) {
|
|
263
|
+
const files = readdirMem(mfs);
|
|
264
|
+
return files.filter(f => f.startsWith(prefix)).sort();
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* List files matching a date range pattern
|
|
268
|
+
*
|
|
269
|
+
* @param mfs - MemFsInstance from createMemFs()
|
|
270
|
+
* @param type - Telemetry type prefix (e.g., 'traces', 'logs')
|
|
271
|
+
* @param startDate - Optional start date (YYYY-MM-DD)
|
|
272
|
+
* @param endDate - Optional end date (YYYY-MM-DD)
|
|
273
|
+
* @returns Array of matching full paths
|
|
274
|
+
*/
|
|
275
|
+
export function listFilesInRangeMem(mfs, type, startDate, endDate) {
|
|
276
|
+
const allFiles = listFilesMem(mfs, `${type}-`);
|
|
277
|
+
const result = [];
|
|
278
|
+
for (const filename of allFiles) {
|
|
279
|
+
// Extract date from filename (e.g., traces-2026-01-31.jsonl -> 2026-01-31)
|
|
280
|
+
const match = filename.match(/\d{4}-\d{2}-\d{2}/);
|
|
281
|
+
if (!match)
|
|
282
|
+
continue;
|
|
283
|
+
const fileDate = match[0];
|
|
284
|
+
if (startDate && fileDate < startDate)
|
|
285
|
+
continue;
|
|
286
|
+
if (endDate && fileDate > endDate)
|
|
287
|
+
continue;
|
|
288
|
+
result.push(path.join(mfs.dir, filename));
|
|
289
|
+
}
|
|
290
|
+
return result;
|
|
291
|
+
}
|
|
292
|
+
//# sourceMappingURL=memfs-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memfs-utils.js","sourceRoot":"","sources":["../../src/test-helpers/memfs-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memfs-utils.test.d.ts","sourceRoot":"","sources":["../../src/test-helpers/memfs-utils.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|