observability-toolkit 1.8.4 → 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.
Files changed (164) hide show
  1. package/dist/backends/local-jsonl-boolean-search.test.js +8 -8
  2. package/dist/backends/local-jsonl-boolean-search.test.js.map +1 -1
  3. package/dist/backends/local-jsonl-cache.test.d.ts +2 -0
  4. package/dist/backends/local-jsonl-cache.test.d.ts.map +1 -0
  5. package/dist/backends/local-jsonl-cache.test.js +295 -0
  6. package/dist/backends/local-jsonl-cache.test.js.map +1 -0
  7. package/dist/backends/local-jsonl-circuit-breaker.test.d.ts +2 -0
  8. package/dist/backends/local-jsonl-circuit-breaker.test.d.ts.map +1 -0
  9. package/dist/backends/local-jsonl-circuit-breaker.test.js +180 -0
  10. package/dist/backends/local-jsonl-circuit-breaker.test.js.map +1 -0
  11. package/dist/backends/local-jsonl-export.test.d.ts +2 -0
  12. package/dist/backends/local-jsonl-export.test.d.ts.map +1 -0
  13. package/dist/backends/local-jsonl-export.test.js +704 -0
  14. package/dist/backends/local-jsonl-export.test.js.map +1 -0
  15. package/dist/backends/local-jsonl-index.test.d.ts +2 -0
  16. package/dist/backends/local-jsonl-index.test.d.ts.map +1 -0
  17. package/dist/backends/local-jsonl-index.test.js +554 -0
  18. package/dist/backends/local-jsonl-index.test.js.map +1 -0
  19. package/dist/backends/local-jsonl-logs.test.js +52 -43
  20. package/dist/backends/local-jsonl-logs.test.js.map +1 -1
  21. package/dist/backends/local-jsonl-metrics.test.d.ts +2 -0
  22. package/dist/backends/local-jsonl-metrics.test.d.ts.map +1 -0
  23. package/dist/backends/local-jsonl-metrics.test.js +876 -0
  24. package/dist/backends/local-jsonl-metrics.test.js.map +1 -0
  25. package/dist/backends/local-jsonl-traces.test.js +89 -83
  26. package/dist/backends/local-jsonl-traces.test.js.map +1 -1
  27. package/dist/backends/local-jsonl.d.ts +9 -0
  28. package/dist/backends/local-jsonl.d.ts.map +1 -1
  29. package/dist/backends/local-jsonl.js +348 -227
  30. package/dist/backends/local-jsonl.js.map +1 -1
  31. package/dist/backends/signoz-api-circuit-breaker.test.d.ts +6 -0
  32. package/dist/backends/signoz-api-circuit-breaker.test.d.ts.map +1 -0
  33. package/dist/backends/signoz-api-circuit-breaker.test.js +548 -0
  34. package/dist/backends/signoz-api-circuit-breaker.test.js.map +1 -0
  35. package/dist/backends/signoz-api-rate-limiter.test.d.ts +6 -0
  36. package/dist/backends/signoz-api-rate-limiter.test.d.ts.map +1 -0
  37. package/dist/backends/signoz-api-rate-limiter.test.js +389 -0
  38. package/dist/backends/signoz-api-rate-limiter.test.js.map +1 -0
  39. package/dist/backends/signoz-api-ssrf.test.d.ts +6 -0
  40. package/dist/backends/signoz-api-ssrf.test.d.ts.map +1 -0
  41. package/dist/backends/signoz-api-ssrf.test.js +216 -0
  42. package/dist/backends/signoz-api-ssrf.test.js.map +1 -0
  43. package/dist/backends/signoz-api-test-helpers.d.ts +80 -0
  44. package/dist/backends/signoz-api-test-helpers.d.ts.map +1 -0
  45. package/dist/backends/signoz-api-test-helpers.js +79 -0
  46. package/dist/backends/signoz-api-test-helpers.js.map +1 -0
  47. package/dist/backends/signoz-api.d.ts +16 -0
  48. package/dist/backends/signoz-api.d.ts.map +1 -1
  49. package/dist/backends/signoz-api.js +71 -9
  50. package/dist/backends/signoz-api.js.map +1 -1
  51. package/dist/backends/signoz-api.test.d.ts +9 -0
  52. package/dist/backends/signoz-api.test.d.ts.map +1 -1
  53. package/dist/backends/signoz-api.test.js +14 -1027
  54. package/dist/backends/signoz-api.test.js.map +1 -1
  55. package/dist/lib/cache.d.ts +47 -1
  56. package/dist/lib/cache.d.ts.map +1 -1
  57. package/dist/lib/cache.js +40 -3
  58. package/dist/lib/cache.js.map +1 -1
  59. package/dist/lib/circuit-breaker.d.ts +83 -0
  60. package/dist/lib/circuit-breaker.d.ts.map +1 -0
  61. package/dist/lib/circuit-breaker.js +125 -0
  62. package/dist/lib/circuit-breaker.js.map +1 -0
  63. package/dist/lib/circuit-breaker.test.d.ts +2 -0
  64. package/dist/lib/circuit-breaker.test.d.ts.map +1 -0
  65. package/dist/lib/circuit-breaker.test.js +263 -0
  66. package/dist/lib/circuit-breaker.test.js.map +1 -0
  67. package/dist/lib/constants-symlink.test.d.ts +12 -0
  68. package/dist/lib/constants-symlink.test.d.ts.map +1 -0
  69. package/dist/lib/constants-symlink.test.js +357 -0
  70. package/dist/lib/constants-symlink.test.js.map +1 -0
  71. package/dist/lib/edge-cases.test.js +17 -17
  72. package/dist/lib/edge-cases.test.js.map +1 -1
  73. package/dist/lib/error-sanitizer.d.ts.map +1 -1
  74. package/dist/lib/error-sanitizer.js +29 -3
  75. package/dist/lib/error-sanitizer.js.map +1 -1
  76. package/dist/lib/error-sanitizer.test.js +159 -0
  77. package/dist/lib/error-sanitizer.test.js.map +1 -1
  78. package/dist/lib/error-types.d.ts +54 -0
  79. package/dist/lib/error-types.d.ts.map +1 -0
  80. package/dist/lib/error-types.js +154 -0
  81. package/dist/lib/error-types.js.map +1 -0
  82. package/dist/lib/error-types.test.d.ts +2 -0
  83. package/dist/lib/error-types.test.d.ts.map +1 -0
  84. package/dist/lib/error-types.test.js +196 -0
  85. package/dist/lib/error-types.test.js.map +1 -0
  86. package/dist/lib/indexer.test.js +27 -27
  87. package/dist/lib/indexer.test.js.map +1 -1
  88. package/dist/lib/input-validator.d.ts +12 -0
  89. package/dist/lib/input-validator.d.ts.map +1 -1
  90. package/dist/lib/input-validator.fuzz.test.d.ts +12 -0
  91. package/dist/lib/input-validator.fuzz.test.d.ts.map +1 -0
  92. package/dist/lib/input-validator.fuzz.test.js +290 -0
  93. package/dist/lib/input-validator.fuzz.test.js.map +1 -0
  94. package/dist/lib/input-validator.js +57 -3
  95. package/dist/lib/input-validator.js.map +1 -1
  96. package/dist/lib/input-validator.test.js +129 -1
  97. package/dist/lib/input-validator.test.js.map +1 -1
  98. package/dist/lib/logger.d.ts +46 -0
  99. package/dist/lib/logger.d.ts.map +1 -0
  100. package/dist/lib/logger.js +81 -0
  101. package/dist/lib/logger.js.map +1 -0
  102. package/dist/lib/logger.test.d.ts +2 -0
  103. package/dist/lib/logger.test.d.ts.map +1 -0
  104. package/dist/lib/logger.test.js +122 -0
  105. package/dist/lib/logger.test.js.map +1 -0
  106. package/dist/lib/server-utils.d.ts +8 -0
  107. package/dist/lib/server-utils.d.ts.map +1 -1
  108. package/dist/lib/server-utils.js +34 -2
  109. package/dist/lib/server-utils.js.map +1 -1
  110. package/dist/lib/shared-schemas.d.ts +22 -0
  111. package/dist/lib/shared-schemas.d.ts.map +1 -1
  112. package/dist/lib/shared-schemas.js +22 -0
  113. package/dist/lib/shared-schemas.js.map +1 -1
  114. package/dist/lib/toon-encoder.d.ts +7 -2
  115. package/dist/lib/toon-encoder.d.ts.map +1 -1
  116. package/dist/lib/toon-encoder.js +21 -6
  117. package/dist/lib/toon-encoder.js.map +1 -1
  118. package/dist/lib/toon-encoder.test.d.ts +5 -0
  119. package/dist/lib/toon-encoder.test.d.ts.map +1 -0
  120. package/dist/lib/toon-encoder.test.js +85 -0
  121. package/dist/lib/toon-encoder.test.js.map +1 -0
  122. package/dist/server.js +2 -0
  123. package/dist/server.js.map +1 -1
  124. package/dist/server.test.js +30 -0
  125. package/dist/server.test.js.map +1 -1
  126. package/dist/test-helpers/env-utils.d.ts +22 -0
  127. package/dist/test-helpers/env-utils.d.ts.map +1 -1
  128. package/dist/test-helpers/env-utils.js +38 -0
  129. package/dist/test-helpers/env-utils.js.map +1 -1
  130. package/dist/test-helpers/fuzz-generators.d.ts +58 -0
  131. package/dist/test-helpers/fuzz-generators.d.ts.map +1 -0
  132. package/dist/test-helpers/fuzz-generators.js +216 -0
  133. package/dist/test-helpers/fuzz-generators.js.map +1 -0
  134. package/dist/test-helpers/index.d.ts +1 -0
  135. package/dist/test-helpers/index.d.ts.map +1 -1
  136. package/dist/test-helpers/index.js +2 -0
  137. package/dist/test-helpers/index.js.map +1 -1
  138. package/dist/test-helpers/memfs-utils.d.ts +181 -0
  139. package/dist/test-helpers/memfs-utils.d.ts.map +1 -0
  140. package/dist/test-helpers/memfs-utils.js +292 -0
  141. package/dist/test-helpers/memfs-utils.js.map +1 -0
  142. package/dist/test-helpers/memfs-utils.test.d.ts +5 -0
  143. package/dist/test-helpers/memfs-utils.test.d.ts.map +1 -0
  144. package/dist/test-helpers/memfs-utils.test.js +338 -0
  145. package/dist/test-helpers/memfs-utils.test.js.map +1 -0
  146. package/dist/test-helpers/race-condition-helpers.d.ts +85 -0
  147. package/dist/test-helpers/race-condition-helpers.d.ts.map +1 -0
  148. package/dist/test-helpers/race-condition-helpers.js +279 -0
  149. package/dist/test-helpers/race-condition-helpers.js.map +1 -0
  150. package/dist/test-helpers/test-data-builders.d.ts +40 -3
  151. package/dist/test-helpers/test-data-builders.d.ts.map +1 -1
  152. package/dist/test-helpers/test-data-builders.js +54 -5
  153. package/dist/test-helpers/test-data-builders.js.map +1 -1
  154. package/dist/test-helpers/tool-validators.d.ts.map +1 -1
  155. package/dist/test-helpers/tool-validators.js +16 -1
  156. package/dist/test-helpers/tool-validators.js.map +1 -1
  157. package/dist/tools/query-evaluations.d.ts.map +1 -1
  158. package/dist/tools/query-evaluations.js +16 -2
  159. package/dist/tools/query-evaluations.js.map +1 -1
  160. package/dist/tools/query-evaluations.test.js +53 -46
  161. package/dist/tools/query-evaluations.test.js.map +1 -1
  162. package/dist/tools/query-llm-events.test.js +6 -3
  163. package/dist/tools/query-llm-events.test.js.map +1 -1
  164. package/package.json +2 -1
@@ -0,0 +1,216 @@
1
+ /**
2
+ * Fuzzing utilities for security testing
3
+ *
4
+ * Provides generators for random inputs to test input validation resilience.
5
+ */
6
+ /**
7
+ * Generate a random Unicode string of specified length
8
+ * Includes various Unicode ranges for thorough testing
9
+ */
10
+ export function generateRandomUnicodeString(length) {
11
+ const ranges = [
12
+ [0x0020, 0x007E], // Basic Latin
13
+ [0x00A0, 0x00FF], // Latin-1 Supplement
14
+ [0x0100, 0x017F], // Latin Extended-A
15
+ [0x0400, 0x04FF], // Cyrillic
16
+ [0x0600, 0x06FF], // Arabic
17
+ [0x4E00, 0x4FFF], // CJK Unified Ideographs (subset)
18
+ [0x1F300, 0x1F3FF], // Misc Symbols and Pictographs
19
+ ];
20
+ let result = '';
21
+ for (let i = 0; i < length; i++) {
22
+ const range = ranges[Math.floor(Math.random() * ranges.length)];
23
+ const codePoint = Math.floor(Math.random() * (range[1] - range[0] + 1)) + range[0];
24
+ result += String.fromCodePoint(codePoint);
25
+ }
26
+ return result;
27
+ }
28
+ /**
29
+ * Generate a random number in the specified range
30
+ */
31
+ export function generateRandomNumber(min, max) {
32
+ return Math.random() * (max - min) + min;
33
+ }
34
+ /**
35
+ * Generate a random integer in the specified range
36
+ */
37
+ export function generateRandomInteger(min, max) {
38
+ return Math.floor(generateRandomNumber(min, max + 1));
39
+ }
40
+ /**
41
+ * Generate a random date string (may be invalid)
42
+ */
43
+ export function generateRandomDateString() {
44
+ const formats = [
45
+ // Valid-ish formats
46
+ () => `${generateRandomInteger(1900, 2100)}-${String(generateRandomInteger(1, 12)).padStart(2, '0')}-${String(generateRandomInteger(1, 31)).padStart(2, '0')}`,
47
+ // Invalid formats
48
+ () => `${generateRandomInteger(1, 9999)}/${generateRandomInteger(1, 12)}/${generateRandomInteger(1, 31)}`,
49
+ () => `${String(generateRandomInteger(1, 31)).padStart(2, '0')}-${String(generateRandomInteger(1, 12)).padStart(2, '0')}-${generateRandomInteger(1900, 2100)}`,
50
+ () => generateRandomUnicodeString(10),
51
+ () => `${generateRandomInteger(-1000, 10000)}-${generateRandomInteger(-5, 15)}-${generateRandomInteger(-5, 40)}`,
52
+ () => '',
53
+ () => 'NaN-NaN-NaN',
54
+ () => '0000-00-00',
55
+ () => '9999-99-99',
56
+ ];
57
+ return formats[Math.floor(Math.random() * formats.length)]();
58
+ }
59
+ /**
60
+ * Get common SQL injection payloads for testing
61
+ */
62
+ export function getSqlInjectionPayloads() {
63
+ return [
64
+ "'; DROP TABLE traces; --",
65
+ "1' OR '1'='1",
66
+ "1; SELECT * FROM users",
67
+ "' UNION SELECT * FROM secrets --",
68
+ "1 AND 1=1",
69
+ "' OR 1=1 --",
70
+ "admin'--",
71
+ "1'1",
72
+ "1' AND '1'='1",
73
+ "'; EXEC xp_cmdshell('dir'); --",
74
+ "1; WAITFOR DELAY '00:00:05'",
75
+ "' OR ''='",
76
+ "1' OR '1'='1' /*",
77
+ "1' ORDER BY 1--",
78
+ "'||'",
79
+ "' HAVING 1=1 --",
80
+ ];
81
+ }
82
+ /**
83
+ * Get common path traversal payloads for testing
84
+ */
85
+ export function getPathTraversalPayloads() {
86
+ return [
87
+ '../../../etc/passwd',
88
+ '..\\..\\..\\windows\\system32\\config\\sam',
89
+ '....//....//....//etc/passwd',
90
+ '..%2f..%2f..%2fetc%2fpasswd',
91
+ '..%252f..%252f..%252fetc%252fpasswd',
92
+ '%2e%2e%2f%2e%2e%2f%2e%2e%2fetc%2fpasswd',
93
+ '..%c0%af..%c0%af..%c0%afetc/passwd',
94
+ '/etc/passwd%00.txt',
95
+ '../../../etc/passwd\0',
96
+ '..\\..\\..\\etc\\passwd',
97
+ '....//....//etc/passwd',
98
+ '..;/..;/..;/etc/passwd',
99
+ '../.../.../.../etc/passwd',
100
+ '/....//....//etc/passwd',
101
+ '..%00/..%00/..%00/etc/passwd',
102
+ ];
103
+ }
104
+ /**
105
+ * Get common XSS payloads for testing
106
+ */
107
+ export function getXssPayloads() {
108
+ return [
109
+ '<script>alert(1)</script>',
110
+ '"><script>alert(1)</script>',
111
+ "javascript:alert('XSS')",
112
+ '<img src=x onerror=alert(1)>',
113
+ '<svg onload=alert(1)>',
114
+ '\'"><img src=x onerror=alert(1)>',
115
+ '<body onload=alert(1)>',
116
+ '<iframe src="javascript:alert(1)">',
117
+ '{{constructor.constructor("alert(1)")()}}',
118
+ '${alert(1)}',
119
+ '<input onfocus=alert(1) autofocus>',
120
+ '<marquee onstart=alert(1)>',
121
+ '<details open ontoggle=alert(1)>',
122
+ '<audio src=x onerror=alert(1)>',
123
+ ];
124
+ }
125
+ /**
126
+ * Get special number edge cases for testing
127
+ */
128
+ export function getSpecialNumbers() {
129
+ return [
130
+ 0,
131
+ -0,
132
+ 1,
133
+ -1,
134
+ Number.MAX_VALUE,
135
+ Number.MIN_VALUE,
136
+ Number.MAX_SAFE_INTEGER,
137
+ Number.MIN_SAFE_INTEGER,
138
+ Number.POSITIVE_INFINITY,
139
+ Number.NEGATIVE_INFINITY,
140
+ Number.NaN,
141
+ Number.EPSILON,
142
+ Math.PI,
143
+ Math.E,
144
+ 0.1 + 0.2, // Floating point precision
145
+ 2 ** 53, // Just beyond MAX_SAFE_INTEGER
146
+ -(2 ** 53), // Negative beyond MIN_SAFE_INTEGER
147
+ 1e308, // Near MAX_VALUE
148
+ 1e-308, // Near MIN_VALUE (denormalized)
149
+ 0.0000001,
150
+ -0.0000001,
151
+ 86400000, // 24 hours in ms (MAX_DURATION_MS)
152
+ 86400001, // Just over MAX_DURATION_MS
153
+ ];
154
+ }
155
+ /**
156
+ * Generate control character strings for testing
157
+ */
158
+ export function getControlCharacterStrings() {
159
+ return [
160
+ '\x00', // null
161
+ '\x01', // start of heading
162
+ '\x07', // bell
163
+ '\x08', // backspace
164
+ '\x09', // tab
165
+ '\x0A', // line feed
166
+ '\x0B', // vertical tab
167
+ '\x0C', // form feed
168
+ '\x0D', // carriage return
169
+ '\x1B', // escape
170
+ '\x7F', // delete
171
+ '\x00\x00\x00', // multiple nulls
172
+ 'test\x00hidden', // null byte injection
173
+ 'test\x0Anewline', // embedded newline
174
+ '\r\n\r\n', // CRLF injection
175
+ ];
176
+ }
177
+ /**
178
+ * Generate regex patterns that could cause ReDoS
179
+ */
180
+ export function getRedosPatterns() {
181
+ return [
182
+ '(a+)+$',
183
+ '([a-zA-Z]+)*',
184
+ '(a|aa)+',
185
+ '(a|a?)+',
186
+ '(.*a){25}',
187
+ '([a-z]+)+\\s',
188
+ '^(a+)+b$',
189
+ '(x+x+)+y',
190
+ '(a+)+ab',
191
+ '([^\\s]+)+\\s',
192
+ '(\\w+)+@',
193
+ '([a-zA-Z0-9]+)+\\.',
194
+ ];
195
+ }
196
+ /**
197
+ * Run a function multiple times with random inputs
198
+ */
199
+ export function fuzz(generator, fn, iterations = 100) {
200
+ let passed = 0;
201
+ let failed = 0;
202
+ const errors = [];
203
+ for (let i = 0; i < iterations; i++) {
204
+ const input = generator();
205
+ try {
206
+ fn(input);
207
+ passed++;
208
+ }
209
+ catch (error) {
210
+ failed++;
211
+ errors.push({ input, error });
212
+ }
213
+ }
214
+ return { passed, failed, errors };
215
+ }
216
+ //# sourceMappingURL=fuzz-generators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fuzz-generators.js","sourceRoot":"","sources":["../../src/test-helpers/fuzz-generators.ts"],"names":[],"mappings":"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"}
@@ -7,4 +7,5 @@ export { type ToolDefinition, validateToolDefinition, validateHandlerExport, } f
7
7
  export { validateBackendSchema, validateLimitSchema, validateDateRangeSchema, } from './schema-validators.js';
8
8
  export { SIGNOZ_ENV_VARS, type EnvSnapshot, type HomeEnvScope, captureEnv, restoreEnv, clearSigNozEnv, setSigNozEnv, createEnvScope, setHomeEnv, restoreHomeEnv, } from './env-utils.js';
9
9
  export { TEST_TIMESTAMP_BASE, TEST_TIMESTAMP, TEST_TIMESTAMP_ISO, TEST_DURATION, TEST_DURATION_MS, type MockSpan, type MockLog, type MockMetric, type MockLLMEvent, type MockEvaluation, resetBuilderCounters, createMockSpan, createMockSpans, createMockLog, createMockLogs, createMockMetric, createMockMetrics, createMockLLMEvent, createMockLLMEvents, createMockEvaluation, createMockEvaluations, createHttpSpan, createDbSpan, createErrorLog, createCorrelatedLog, createHistogramMetric, createLLMEventWithTokens, createScoredEvaluation, createLabeledEvaluation, } from './test-data-builders.js';
10
+ export { type MemFsInstance, createMemFs, writeJsonlMem, writeFileMem, readFileMem, readJsonlMem, readJsonlMemWithStats, streamJsonlMem, existsMem, mkdirMem, readdirMem, listFilesMem, listFilesInRangeMem, getTestDateMem, getSharedMemFs, resetSharedMemFs, removeSharedMemFs, cleanupAllSharedMemFs, } from './memfs-utils.js';
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/test-helpers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EACvB,cAAc,EACd,mBAAmB,EACnB,WAAW,EAEX,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EAExB,iBAAiB,EACjB,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,eAAe,EAEpB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EAEvB,KAAK,aAAa,EAClB,iBAAiB,EACjB,cAAc,GACf,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,KAAK,cAAc,EACnB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,eAAe,EACf,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,UAAU,EACV,UAAU,EACV,cAAc,EACd,YAAY,EACZ,cAAc,EACd,UAAU,EACV,cAAc,GACf,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAEL,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,gBAAgB,EAEhB,KAAK,QAAQ,EACb,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,cAAc,EAEnB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EAErB,cAAc,EACd,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/test-helpers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EACvB,cAAc,EACd,mBAAmB,EACnB,WAAW,EAEX,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EAExB,iBAAiB,EACjB,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,eAAe,EAEpB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EAEvB,KAAK,aAAa,EAClB,iBAAiB,EACjB,cAAc,GACf,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,KAAK,cAAc,EACnB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,eAAe,EACf,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,UAAU,EACV,UAAU,EACV,cAAc,EACd,YAAY,EACZ,cAAc,EACd,UAAU,EACV,cAAc,GACf,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAEL,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,gBAAgB,EAEhB,KAAK,QAAQ,EACb,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,cAAc,EAEnB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EAErB,cAAc,EACd,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,KAAK,aAAa,EAClB,WAAW,EACX,aAAa,EACb,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,qBAAqB,EACrB,cAAc,EACd,SAAS,EACT,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC"}
@@ -25,4 +25,6 @@ TEST_TIMESTAMP_BASE, TEST_TIMESTAMP, TEST_TIMESTAMP_ISO, TEST_DURATION, TEST_DUR
25
25
  resetBuilderCounters, createMockSpan, createMockSpans, createMockLog, createMockLogs, createMockMetric, createMockMetrics, createMockLLMEvent, createMockLLMEvents, createMockEvaluation, createMockEvaluations,
26
26
  // Specialized builders
27
27
  createHttpSpan, createDbSpan, createErrorLog, createCorrelatedLog, createHistogramMetric, createLLMEventWithTokens, createScoredEvaluation, createLabeledEvaluation, } from './test-data-builders.js';
28
+ // In-memory file system utilities (memfs)
29
+ export { createMemFs, writeJsonlMem, writeFileMem, readFileMem, readJsonlMem, readJsonlMemWithStats, streamJsonlMem, existsMem, mkdirMem, readdirMem, listFilesMem, listFilesInRangeMem, getTestDateMem, getSharedMemFs, resetSharedMemFs, removeSharedMemFs, cleanupAllSharedMemFs, } from './memfs-utils.js';
28
30
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/test-helpers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,iBAAiB;AACjB,OAAO,EACL,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EACvB,cAAc,EACd,mBAAmB,EACnB,WAAW;AACX,gDAAgD;AAChD,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB;AACxB,4BAA4B;AAC5B,iBAAiB,EACjB,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AAEzB,gBAAgB;AAChB,OAAO;AAKL,wCAAwC;AACxC,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EAGvB,iBAAiB,EACjB,cAAc,GACf,MAAM,oBAAoB,CAAC;AAE5B,kBAAkB;AAClB,OAAO,EAEL,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAE9B,oBAAoB;AACpB,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAEhC,wBAAwB;AACxB,OAAO,EACL,eAAe,EAGf,UAAU,EACV,UAAU,EACV,cAAc,EACd,YAAY,EACZ,cAAc,EACd,UAAU,EACV,cAAc,GACf,MAAM,gBAAgB,CAAC;AAExB,qBAAqB;AACrB,OAAO;AACL,YAAY;AACZ,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,gBAAgB;AAOhB,gBAAgB;AAChB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB;AACrB,uBAAuB;AACvB,cAAc,EACd,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/test-helpers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,iBAAiB;AACjB,OAAO,EACL,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EACvB,cAAc,EACd,mBAAmB,EACnB,WAAW;AACX,gDAAgD;AAChD,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB;AACxB,4BAA4B;AAC5B,iBAAiB,EACjB,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AAEzB,gBAAgB;AAChB,OAAO;AAKL,wCAAwC;AACxC,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EAGvB,iBAAiB,EACjB,cAAc,GACf,MAAM,oBAAoB,CAAC;AAE5B,kBAAkB;AAClB,OAAO,EAEL,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAE9B,oBAAoB;AACpB,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAEhC,wBAAwB;AACxB,OAAO,EACL,eAAe,EAGf,UAAU,EACV,UAAU,EACV,cAAc,EACd,YAAY,EACZ,cAAc,EACd,UAAU,EACV,cAAc,GACf,MAAM,gBAAgB,CAAC;AAExB,qBAAqB;AACrB,OAAO;AACL,YAAY;AACZ,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,gBAAgB;AAOhB,gBAAgB;AAChB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB;AACrB,uBAAuB;AACvB,cAAc,EACd,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAEjC,0CAA0C;AAC1C,OAAO,EAEL,WAAW,EACX,aAAa,EACb,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,qBAAqB,EACrB,cAAc,EACd,SAAS,EACT,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC"}
@@ -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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"}