observability-toolkit 1.3.0 → 1.5.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.
Files changed (102) hide show
  1. package/README.md +52 -3
  2. package/dist/backends/index.d.ts +108 -1
  3. package/dist/backends/index.d.ts.map +1 -1
  4. package/dist/backends/local-jsonl-boolean-search.test.d.ts +2 -0
  5. package/dist/backends/local-jsonl-boolean-search.test.d.ts.map +1 -0
  6. package/dist/backends/local-jsonl-boolean-search.test.js +154 -0
  7. package/dist/backends/local-jsonl-boolean-search.test.js.map +1 -0
  8. package/dist/backends/local-jsonl.d.ts +73 -2
  9. package/dist/backends/local-jsonl.d.ts.map +1 -1
  10. package/dist/backends/local-jsonl.js +768 -103
  11. package/dist/backends/local-jsonl.js.map +1 -1
  12. package/dist/backends/local-jsonl.test.js +3326 -271
  13. package/dist/backends/local-jsonl.test.js.map +1 -1
  14. package/dist/backends/signoz-api.d.ts +13 -1
  15. package/dist/backends/signoz-api.d.ts.map +1 -1
  16. package/dist/backends/signoz-api.integration.test.d.ts +8 -0
  17. package/dist/backends/signoz-api.integration.test.d.ts.map +1 -0
  18. package/dist/backends/signoz-api.integration.test.js +137 -0
  19. package/dist/backends/signoz-api.integration.test.js.map +1 -0
  20. package/dist/backends/signoz-api.js +384 -42
  21. package/dist/backends/signoz-api.js.map +1 -1
  22. package/dist/backends/signoz-api.test.js +821 -325
  23. package/dist/backends/signoz-api.test.js.map +1 -1
  24. package/dist/lib/cache.d.ts +20 -0
  25. package/dist/lib/cache.d.ts.map +1 -0
  26. package/dist/lib/cache.js +63 -0
  27. package/dist/lib/cache.js.map +1 -0
  28. package/dist/lib/constants.d.ts +27 -0
  29. package/dist/lib/constants.d.ts.map +1 -1
  30. package/dist/lib/constants.js +70 -0
  31. package/dist/lib/constants.js.map +1 -1
  32. package/dist/lib/constants.test.js +183 -1
  33. package/dist/lib/constants.test.js.map +1 -1
  34. package/dist/lib/file-utils.d.ts +53 -1
  35. package/dist/lib/file-utils.d.ts.map +1 -1
  36. package/dist/lib/file-utils.js +142 -3
  37. package/dist/lib/file-utils.js.map +1 -1
  38. package/dist/lib/file-utils.test.js +228 -1
  39. package/dist/lib/file-utils.test.js.map +1 -1
  40. package/dist/lib/indexer.d.ts +78 -0
  41. package/dist/lib/indexer.d.ts.map +1 -0
  42. package/dist/lib/indexer.js +277 -0
  43. package/dist/lib/indexer.js.map +1 -0
  44. package/dist/lib/indexer.test.d.ts +2 -0
  45. package/dist/lib/indexer.test.d.ts.map +1 -0
  46. package/dist/lib/indexer.test.js +392 -0
  47. package/dist/lib/indexer.test.js.map +1 -0
  48. package/dist/lib/otlp-export.d.ts +178 -0
  49. package/dist/lib/otlp-export.d.ts.map +1 -0
  50. package/dist/lib/otlp-export.js +382 -0
  51. package/dist/lib/otlp-export.js.map +1 -0
  52. package/dist/server.js +48 -65
  53. package/dist/server.js.map +1 -1
  54. package/dist/server.test.d.ts +5 -0
  55. package/dist/server.test.d.ts.map +1 -0
  56. package/dist/server.test.js +547 -0
  57. package/dist/server.test.js.map +1 -0
  58. package/dist/tools/context-stats.test.js +126 -0
  59. package/dist/tools/context-stats.test.js.map +1 -1
  60. package/dist/tools/get-trace-url.d.ts.map +1 -1
  61. package/dist/tools/get-trace-url.js +5 -1
  62. package/dist/tools/get-trace-url.js.map +1 -1
  63. package/dist/tools/get-trace-url.test.js +12 -6
  64. package/dist/tools/get-trace-url.test.js.map +1 -1
  65. package/dist/tools/health-check.d.ts +9 -2
  66. package/dist/tools/health-check.d.ts.map +1 -1
  67. package/dist/tools/health-check.js +66 -27
  68. package/dist/tools/health-check.js.map +1 -1
  69. package/dist/tools/health-check.test.js +89 -96
  70. package/dist/tools/health-check.test.js.map +1 -1
  71. package/dist/tools/query-llm-events.d.ts +2 -2
  72. package/dist/tools/query-llm-events.js +3 -3
  73. package/dist/tools/query-llm-events.js.map +1 -1
  74. package/dist/tools/query-logs.d.ts +12 -10
  75. package/dist/tools/query-logs.d.ts.map +1 -1
  76. package/dist/tools/query-logs.js +5 -5
  77. package/dist/tools/query-logs.js.map +1 -1
  78. package/dist/tools/query-logs.test.js +22 -2
  79. package/dist/tools/query-logs.test.js.map +1 -1
  80. package/dist/tools/query-metrics.d.ts +12 -14
  81. package/dist/tools/query-metrics.d.ts.map +1 -1
  82. package/dist/tools/query-metrics.js +11 -13
  83. package/dist/tools/query-metrics.js.map +1 -1
  84. package/dist/tools/query-metrics.test.js +134 -96
  85. package/dist/tools/query-metrics.test.js.map +1 -1
  86. package/dist/tools/query-traces.d.ts +16 -17
  87. package/dist/tools/query-traces.d.ts.map +1 -1
  88. package/dist/tools/query-traces.js +11 -14
  89. package/dist/tools/query-traces.js.map +1 -1
  90. package/dist/tools/query-traces.test.js +144 -48
  91. package/dist/tools/query-traces.test.js.map +1 -1
  92. package/dist/tools/setup-claudeignore.d.ts +36 -10
  93. package/dist/tools/setup-claudeignore.d.ts.map +1 -1
  94. package/dist/tools/setup-claudeignore.js +193 -33
  95. package/dist/tools/setup-claudeignore.js.map +1 -1
  96. package/dist/tools/setup-claudeignore.test.js +286 -41
  97. package/dist/tools/setup-claudeignore.test.js.map +1 -1
  98. package/dist/tools/signoz.integration.test.d.ts +8 -0
  99. package/dist/tools/signoz.integration.test.d.ts.map +1 -0
  100. package/dist/tools/signoz.integration.test.js +141 -0
  101. package/dist/tools/signoz.integration.test.js.map +1 -0
  102. package/package.json +6 -3
@@ -1,10 +1,23 @@
1
1
  /**
2
2
  * Unit tests for constants.ts
3
3
  */
4
- import { describe, it } from 'node:test';
4
+ import { describe, it, beforeEach, afterEach } from 'node:test';
5
5
  import assert from 'node:assert';
6
6
  import { join } from 'path';
7
+ import * as fs from 'fs';
8
+ import * as os from 'os';
7
9
  import * as constants from './constants.js';
10
+ function createTempDir() {
11
+ return fs.mkdtempSync(join(os.tmpdir(), 'constants-test-'));
12
+ }
13
+ function removeTempDir(dir) {
14
+ try {
15
+ fs.rmSync(dir, { recursive: true, force: true });
16
+ }
17
+ catch {
18
+ // Ignore cleanup errors
19
+ }
20
+ }
8
21
  describe('Constants', () => {
9
22
  describe('CLAUDE_HOME', () => {
10
23
  it('should be a string', () => {
@@ -195,5 +208,174 @@ describe('Constants', () => {
195
208
  assert(constants.METRICS_FILE_PATTERN.includes('*'));
196
209
  });
197
210
  });
211
+ describe('SPAN_KINDS', () => {
212
+ it('should be an array', () => {
213
+ assert.ok(Array.isArray(constants.SPAN_KINDS));
214
+ });
215
+ it('should have 5 span kinds', () => {
216
+ assert.strictEqual(constants.SPAN_KINDS.length, 5);
217
+ });
218
+ it('should have INTERNAL at index 0', () => {
219
+ assert.strictEqual(constants.SPAN_KINDS[0], 'INTERNAL');
220
+ });
221
+ it('should have SERVER at index 1', () => {
222
+ assert.strictEqual(constants.SPAN_KINDS[1], 'SERVER');
223
+ });
224
+ it('should have CLIENT at index 2', () => {
225
+ assert.strictEqual(constants.SPAN_KINDS[2], 'CLIENT');
226
+ });
227
+ it('should have PRODUCER at index 3', () => {
228
+ assert.strictEqual(constants.SPAN_KINDS[3], 'PRODUCER');
229
+ });
230
+ it('should have CONSUMER at index 4', () => {
231
+ assert.strictEqual(constants.SPAN_KINDS[4], 'CONSUMER');
232
+ });
233
+ });
234
+ describe('getSpanKind', () => {
235
+ it('should return INTERNAL for kind 0', () => {
236
+ assert.strictEqual(constants.getSpanKind(0), 'INTERNAL');
237
+ });
238
+ it('should return SERVER for kind 1', () => {
239
+ assert.strictEqual(constants.getSpanKind(1), 'SERVER');
240
+ });
241
+ it('should return CLIENT for kind 2', () => {
242
+ assert.strictEqual(constants.getSpanKind(2), 'CLIENT');
243
+ });
244
+ it('should return PRODUCER for kind 3', () => {
245
+ assert.strictEqual(constants.getSpanKind(3), 'PRODUCER');
246
+ });
247
+ it('should return CONSUMER for kind 4', () => {
248
+ assert.strictEqual(constants.getSpanKind(4), 'CONSUMER');
249
+ });
250
+ it('should return undefined for undefined kind', () => {
251
+ assert.strictEqual(constants.getSpanKind(undefined), undefined);
252
+ });
253
+ it('should return undefined for negative kind', () => {
254
+ assert.strictEqual(constants.getSpanKind(-1), undefined);
255
+ });
256
+ it('should return undefined for out-of-bounds kind', () => {
257
+ assert.strictEqual(constants.getSpanKind(5), undefined);
258
+ assert.strictEqual(constants.getSpanKind(100), undefined);
259
+ });
260
+ });
261
+ describe('STATUS_CODES', () => {
262
+ it('should be an array', () => {
263
+ assert.ok(Array.isArray(constants.STATUS_CODES));
264
+ });
265
+ it('should have 3 status codes', () => {
266
+ assert.strictEqual(constants.STATUS_CODES.length, 3);
267
+ });
268
+ it('should have UNSET at index 0', () => {
269
+ assert.strictEqual(constants.STATUS_CODES[0], 'UNSET');
270
+ });
271
+ it('should have OK at index 1', () => {
272
+ assert.strictEqual(constants.STATUS_CODES[1], 'OK');
273
+ });
274
+ it('should have ERROR at index 2', () => {
275
+ assert.strictEqual(constants.STATUS_CODES[2], 'ERROR');
276
+ });
277
+ });
278
+ describe('getStatusCodeName', () => {
279
+ it('should return UNSET for code 0', () => {
280
+ assert.strictEqual(constants.getStatusCodeName(0), 'UNSET');
281
+ });
282
+ it('should return OK for code 1', () => {
283
+ assert.strictEqual(constants.getStatusCodeName(1), 'OK');
284
+ });
285
+ it('should return ERROR for code 2', () => {
286
+ assert.strictEqual(constants.getStatusCodeName(2), 'ERROR');
287
+ });
288
+ it('should return undefined for undefined code', () => {
289
+ assert.strictEqual(constants.getStatusCodeName(undefined), undefined);
290
+ });
291
+ it('should return undefined for negative code', () => {
292
+ assert.strictEqual(constants.getStatusCodeName(-1), undefined);
293
+ });
294
+ it('should return undefined for out-of-bounds code', () => {
295
+ assert.strictEqual(constants.getStatusCodeName(3), undefined);
296
+ assert.strictEqual(constants.getStatusCodeName(100), undefined);
297
+ });
298
+ });
299
+ describe('getTelemetryDirectories', () => {
300
+ let tempDir;
301
+ beforeEach(() => {
302
+ tempDir = createTempDir();
303
+ });
304
+ afterEach(() => {
305
+ removeTempDir(tempDir);
306
+ });
307
+ it('should return array of directories', () => {
308
+ const dirs = constants.getTelemetryDirectories(tempDir);
309
+ assert.ok(Array.isArray(dirs));
310
+ });
311
+ it('should include global telemetry directory if it exists', () => {
312
+ const dirs = constants.getTelemetryDirectories(tempDir);
313
+ const globalDir = dirs.find(d => d.source === 'global');
314
+ // Global dir is included if TELEMETRY_DIR exists
315
+ if (fs.existsSync(constants.TELEMETRY_DIR)) {
316
+ assert.ok(globalDir);
317
+ assert.strictEqual(globalDir?.path, constants.TELEMETRY_DIR);
318
+ }
319
+ });
320
+ it('should detect .claude/telemetry local directory', () => {
321
+ const localTelemetry = join(tempDir, '.claude', 'telemetry');
322
+ fs.mkdirSync(localTelemetry, { recursive: true });
323
+ const dirs = constants.getTelemetryDirectories(tempDir);
324
+ const localDir = dirs.find(d => d.source === 'local' && d.path.includes('.claude/telemetry'));
325
+ assert.ok(localDir);
326
+ assert.strictEqual(localDir?.path, localTelemetry);
327
+ });
328
+ it('should detect telemetry/ local directory', () => {
329
+ const localTelemetry = join(tempDir, 'telemetry');
330
+ fs.mkdirSync(localTelemetry, { recursive: true });
331
+ const dirs = constants.getTelemetryDirectories(tempDir);
332
+ const localDir = dirs.find(d => d.source === 'local' && d.path === localTelemetry);
333
+ assert.ok(localDir);
334
+ });
335
+ it('should detect .telemetry/ local directory', () => {
336
+ const localTelemetry = join(tempDir, '.telemetry');
337
+ fs.mkdirSync(localTelemetry, { recursive: true });
338
+ const dirs = constants.getTelemetryDirectories(tempDir);
339
+ const localDir = dirs.find(d => d.source === 'local' && d.path === localTelemetry);
340
+ assert.ok(localDir);
341
+ });
342
+ it('should detect multiple local directories', () => {
343
+ // Create multiple local telemetry directories
344
+ fs.mkdirSync(join(tempDir, 'telemetry'), { recursive: true });
345
+ fs.mkdirSync(join(tempDir, '.telemetry'), { recursive: true });
346
+ const dirs = constants.getTelemetryDirectories(tempDir);
347
+ const localDirs = dirs.filter(d => d.source === 'local');
348
+ assert.ok(localDirs.length >= 2);
349
+ });
350
+ it('should not include non-existent local directories', () => {
351
+ // Don't create any local directories
352
+ const dirs = constants.getTelemetryDirectories(tempDir);
353
+ const localDirs = dirs.filter(d => d.source === 'local');
354
+ // Should not include any local dirs for this temp directory
355
+ assert.strictEqual(localDirs.length, 0);
356
+ });
357
+ it('should avoid duplicate paths', () => {
358
+ // Create a telemetry directory
359
+ const localTelemetry = join(tempDir, 'telemetry');
360
+ fs.mkdirSync(localTelemetry, { recursive: true });
361
+ const dirs = constants.getTelemetryDirectories(tempDir);
362
+ const paths = dirs.map(d => d.path);
363
+ const uniquePaths = new Set(paths);
364
+ assert.strictEqual(paths.length, uniquePaths.size, 'Should not have duplicate paths');
365
+ });
366
+ it('should use process.cwd() when cwd not provided', () => {
367
+ const dirs = constants.getTelemetryDirectories();
368
+ assert.ok(Array.isArray(dirs));
369
+ });
370
+ it('should return directories with correct source labels', () => {
371
+ fs.mkdirSync(join(tempDir, 'telemetry'), { recursive: true });
372
+ const dirs = constants.getTelemetryDirectories(tempDir);
373
+ for (const dir of dirs) {
374
+ assert.ok(['global', 'local'].includes(dir.source));
375
+ assert.ok(typeof dir.path === 'string');
376
+ assert.ok(dir.path.length > 0);
377
+ }
378
+ });
379
+ });
198
380
  });
199
381
  //# sourceMappingURL=constants.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.test.js","sourceRoot":"","sources":["../../src/lib/constants.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.test.js","sourceRoot":"","sources":["../../src/lib/constants.test.ts"],"names":[],"mappings":"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"}
@@ -18,18 +18,47 @@ export declare function loadJsonSafe<T>(filePath: string, fallback: T): T;
18
18
  * Get date string in YYYY-MM-DD format
19
19
  */
20
20
  export declare function getDateString(date?: Date): string;
21
+ /**
22
+ * Validate that a path is within allowed base directories
23
+ * Prevents path traversal attacks by resolving symlinks and checking containment
24
+ */
25
+ export declare function isPathWithinAllowed(targetPath: string, allowedBasePaths: string[]): boolean;
21
26
  /**
22
27
  * List files in directory matching a pattern
28
+ * @param dir - Directory to list files from
29
+ * @param pattern - RegExp to filter filenames
30
+ * @param allowedBasePaths - Optional list of allowed base directories (for security validation)
23
31
  */
24
- export declare function listFiles(dir: string, pattern: RegExp): string[];
32
+ export declare function listFiles(dir: string, pattern: RegExp, allowedBasePaths?: string[]): string[];
25
33
  /**
26
34
  * Parse date from filename like traces-2026-01-28.jsonl
27
35
  */
28
36
  export declare function parseDateFromFilename(filename: string): string | null;
37
+ /**
38
+ * Statistics from JSONL parsing
39
+ */
40
+ export interface JsonlParseStats {
41
+ totalLines: number;
42
+ parsedLines: number;
43
+ skippedLines: number;
44
+ emptyLines: number;
45
+ }
46
+ /**
47
+ * Result from readJsonlSyncWithStats
48
+ */
49
+ export interface ReadJsonlResult<T> {
50
+ data: T[];
51
+ stats: JsonlParseStats;
52
+ }
29
53
  /**
30
54
  * Read JSONL file and parse each line
31
55
  */
32
56
  export declare function readJsonlSync<T>(filePath: string, limit?: number): T[];
57
+ /**
58
+ * Read JSONL file with verbose statistics about parse failures
59
+ * Use this for debugging to see how many lines were skipped
60
+ */
61
+ export declare function readJsonlSyncWithStats<T>(filePath: string, limit?: number): ReadJsonlResult<T>;
33
62
  /**
34
63
  * Stream JSONL file line by line (for large files)
35
64
  */
@@ -40,4 +69,27 @@ export declare function streamJsonl<T>(filePath: string): AsyncGenerator<T>;
40
69
  export declare function filterByDateRange<T extends {
41
70
  timestamp?: string;
42
71
  }>(items: T[], startDate?: string, endDate?: string): T[];
72
+ /**
73
+ * Paginate results array with offset and limit
74
+ */
75
+ export declare function paginateResults<T>(results: T[], offset: number, limit: number): T[];
76
+ /**
77
+ * Check if we've collected enough results for early termination
78
+ */
79
+ export declare function hasReachedLimit(resultsLength: number, offset: number, limit: number): boolean;
80
+ /**
81
+ * Result from cleanupOldFiles operation
82
+ */
83
+ export interface CleanupResult {
84
+ deleted: number;
85
+ errors: string[];
86
+ }
87
+ /**
88
+ * Clean up old telemetry files based on retention policy
89
+ * @param dir - Directory containing telemetry files
90
+ * @param retentionDays - Number of days to retain files (default: 7)
91
+ * @param allowedBasePaths - Optional list of allowed base directories (for security validation)
92
+ * @returns Object with count of deleted files and any errors encountered
93
+ */
94
+ export declare function cleanupOldFiles(dir: string, retentionDays?: number, allowedBasePaths?: string[]): CleanupResult;
43
95
  //# sourceMappingURL=file-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-utils.d.ts","sourceRoot":"","sources":["../../src/lib/file-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH;;;GAGG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CASpD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CASpE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAEhE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,GAAE,IAAiB,GAAG,MAAM,CAE7D;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAkBhE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGrE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,CAuBtE;AAED;;GAEG;AACH,wBAAuB,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAiBzE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,EAChE,KAAK,EAAE,CAAC,EAAE,EACV,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,MAAM,GACf,CAAC,EAAE,CAQL"}
1
+ {"version":3,"file":"file-utils.d.ts","sourceRoot":"","sources":["../../src/lib/file-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH;;;GAGG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CASpD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CASpE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAEhE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,GAAE,IAAiB,GAAG,MAAM,CAE7D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,OAAO,CAgB3F;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAyB7F;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGrE;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,KAAK,EAAE,eAAe,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,CAuBtE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,CAyC9F;AAED;;GAEG;AACH,wBAAuB,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAiBzE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,EAChE,KAAK,EAAE,CAAC,EAAE,EACV,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,MAAM,GACf,CAAC,EAAE,CAQL;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,CAEnF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAE7F;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,aAAa,GAAE,MAAU,EACzB,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAC1B,aAAa,CAkDf"}
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * File system utilities for observability-toolkit
3
3
  */
4
- import { existsSync, readFileSync, readdirSync, statSync, createReadStream } from 'fs';
5
- import { join, basename } from 'path';
4
+ import { existsSync, readFileSync, readdirSync, statSync, createReadStream, unlinkSync } from 'fs';
5
+ import { join, basename, resolve, normalize } from 'path';
6
6
  import { homedir } from 'os';
7
7
  import { createInterface } from 'readline';
8
8
  /**
@@ -44,12 +44,42 @@ export function loadJsonSafe(filePath, fallback) {
44
44
  export function getDateString(date = new Date()) {
45
45
  return date.toISOString().split('T')[0];
46
46
  }
47
+ /**
48
+ * Validate that a path is within allowed base directories
49
+ * Prevents path traversal attacks by resolving symlinks and checking containment
50
+ */
51
+ export function isPathWithinAllowed(targetPath, allowedBasePaths) {
52
+ try {
53
+ // Normalize and resolve the target path
54
+ const normalizedTarget = normalize(resolve(targetPath));
55
+ for (const basePath of allowedBasePaths) {
56
+ const normalizedBase = normalize(resolve(basePath));
57
+ // Check if target starts with base path (with trailing separator to prevent partial matches)
58
+ if (normalizedTarget === normalizedBase || normalizedTarget.startsWith(normalizedBase + '/')) {
59
+ return true;
60
+ }
61
+ }
62
+ return false;
63
+ }
64
+ catch {
65
+ return false;
66
+ }
67
+ }
47
68
  /**
48
69
  * List files in directory matching a pattern
70
+ * @param dir - Directory to list files from
71
+ * @param pattern - RegExp to filter filenames
72
+ * @param allowedBasePaths - Optional list of allowed base directories (for security validation)
49
73
  */
50
- export function listFiles(dir, pattern) {
74
+ export function listFiles(dir, pattern, allowedBasePaths) {
51
75
  if (!existsSync(dir))
52
76
  return [];
77
+ // Security: validate directory is within allowed paths if specified
78
+ if (allowedBasePaths && allowedBasePaths.length > 0) {
79
+ if (!isPathWithinAllowed(dir, allowedBasePaths)) {
80
+ return [];
81
+ }
82
+ }
53
83
  try {
54
84
  return readdirSync(dir)
55
85
  .filter(f => pattern.test(f))
@@ -103,6 +133,51 @@ export function readJsonlSync(filePath, limit) {
103
133
  return [];
104
134
  }
105
135
  }
136
+ /**
137
+ * Read JSONL file with verbose statistics about parse failures
138
+ * Use this for debugging to see how many lines were skipped
139
+ */
140
+ export function readJsonlSyncWithStats(filePath, limit) {
141
+ const emptyResult = {
142
+ data: [],
143
+ stats: { totalLines: 0, parsedLines: 0, skippedLines: 0, emptyLines: 0 },
144
+ };
145
+ if (!existsSync(filePath))
146
+ return emptyResult;
147
+ try {
148
+ const content = readFileSync(filePath, 'utf-8');
149
+ const lines = content.trim().split('\n');
150
+ const results = [];
151
+ let skippedLines = 0;
152
+ let emptyLines = 0;
153
+ for (const line of lines) {
154
+ if (limit && results.length >= limit)
155
+ break;
156
+ if (!line.trim()) {
157
+ emptyLines++;
158
+ continue;
159
+ }
160
+ try {
161
+ results.push(JSON.parse(line));
162
+ }
163
+ catch {
164
+ skippedLines++;
165
+ }
166
+ }
167
+ return {
168
+ data: results,
169
+ stats: {
170
+ totalLines: lines.length,
171
+ parsedLines: results.length,
172
+ skippedLines,
173
+ emptyLines,
174
+ },
175
+ };
176
+ }
177
+ catch {
178
+ return emptyResult;
179
+ }
180
+ }
106
181
  /**
107
182
  * Stream JSONL file line by line (for large files)
108
183
  */
@@ -140,4 +215,68 @@ export function filterByDateRange(items, startDate, endDate) {
140
215
  return true;
141
216
  });
142
217
  }
218
+ /**
219
+ * Paginate results array with offset and limit
220
+ */
221
+ export function paginateResults(results, offset, limit) {
222
+ return results.slice(offset, offset + limit);
223
+ }
224
+ /**
225
+ * Check if we've collected enough results for early termination
226
+ */
227
+ export function hasReachedLimit(resultsLength, offset, limit) {
228
+ return resultsLength >= offset + limit;
229
+ }
230
+ /**
231
+ * Clean up old telemetry files based on retention policy
232
+ * @param dir - Directory containing telemetry files
233
+ * @param retentionDays - Number of days to retain files (default: 7)
234
+ * @param allowedBasePaths - Optional list of allowed base directories (for security validation)
235
+ * @returns Object with count of deleted files and any errors encountered
236
+ */
237
+ export function cleanupOldFiles(dir, retentionDays = 7, allowedBasePaths) {
238
+ const result = { deleted: 0, errors: [] };
239
+ if (!existsSync(dir)) {
240
+ return result;
241
+ }
242
+ // Security: validate directory is within allowed paths if specified
243
+ if (allowedBasePaths && allowedBasePaths.length > 0) {
244
+ if (!isPathWithinAllowed(dir, allowedBasePaths)) {
245
+ result.errors.push(`Directory ${dir} is not within allowed paths`);
246
+ return result;
247
+ }
248
+ }
249
+ // Calculate cutoff date
250
+ const now = new Date();
251
+ const cutoffDate = new Date(now.getTime() - retentionDays * 24 * 60 * 60 * 1000);
252
+ const cutoffDateStr = getDateString(cutoffDate);
253
+ try {
254
+ // List all .jsonl files
255
+ const files = readdirSync(dir).filter(f => f.endsWith('.jsonl'));
256
+ for (const file of files) {
257
+ const filePath = join(dir, file);
258
+ const fileDate = parseDateFromFilename(file);
259
+ // Skip files without parseable dates (don't delete unknown files)
260
+ if (!fileDate) {
261
+ continue;
262
+ }
263
+ // Delete files older than retention period
264
+ if (fileDate < cutoffDateStr) {
265
+ try {
266
+ unlinkSync(filePath);
267
+ result.deleted++;
268
+ }
269
+ catch (err) {
270
+ const message = err instanceof Error ? err.message : String(err);
271
+ result.errors.push(`Failed to delete ${filePath}: ${message}`);
272
+ }
273
+ }
274
+ }
275
+ }
276
+ catch (err) {
277
+ const message = err instanceof Error ? err.message : String(err);
278
+ result.errors.push(`Failed to read directory ${dir}: ${message}`);
279
+ }
280
+ return result;
281
+ }
143
282
  //# sourceMappingURL=file-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-utils.js","sourceRoot":"","sources":["../../src/lib/file-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-utils.js","sourceRoot":"","sources":["../../src/lib/file-utils.ts"],"names":[],"mappings":"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"}