@timmeck/brain 3.36.59 → 3.36.61

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 (54) hide show
  1. package/dist/brain.js +14 -2
  2. package/dist/brain.js.map +1 -1
  3. package/dist/config.js +1 -1
  4. package/dist/config.js.map +1 -1
  5. package/dist/init/engine-factory.js +9 -1
  6. package/dist/init/engine-factory.js.map +1 -1
  7. package/dist/init/lifecycle.js +18 -0
  8. package/dist/init/lifecycle.js.map +1 -1
  9. package/dist/ipc/router.d.ts +1 -0
  10. package/dist/ipc/router.js +2 -0
  11. package/dist/ipc/router.js.map +1 -1
  12. package/package.json +1 -1
  13. package/dist/cli/commands/__tests__/borg.test.d.ts +0 -1
  14. package/dist/cli/commands/__tests__/borg.test.js +0 -84
  15. package/dist/cli/commands/__tests__/borg.test.js.map +0 -1
  16. package/dist/cli/commands/__tests__/plugins.test.d.ts +0 -1
  17. package/dist/cli/commands/__tests__/plugins.test.js +0 -69
  18. package/dist/cli/commands/__tests__/plugins.test.js.map +0 -1
  19. package/dist/cli/commands/__tests__/watchdog.test.d.ts +0 -1
  20. package/dist/cli/commands/__tests__/watchdog.test.js +0 -63
  21. package/dist/cli/commands/__tests__/watchdog.test.js.map +0 -1
  22. package/dist/hooks/__tests__/prompt-submit.test.d.ts +0 -1
  23. package/dist/hooks/__tests__/prompt-submit.test.js +0 -202
  24. package/dist/hooks/__tests__/prompt-submit.test.js.map +0 -1
  25. package/dist/init/__tests__/lifecycle.test.d.ts +0 -1
  26. package/dist/init/__tests__/lifecycle.test.js +0 -43
  27. package/dist/init/__tests__/lifecycle.test.js.map +0 -1
  28. package/dist/ipc/__tests__/notification-bridge.test.d.ts +0 -1
  29. package/dist/ipc/__tests__/notification-bridge.test.js +0 -155
  30. package/dist/ipc/__tests__/notification-bridge.test.js.map +0 -1
  31. package/dist/ipc/__tests__/protocol.test.d.ts +0 -1
  32. package/dist/ipc/__tests__/protocol.test.js +0 -117
  33. package/dist/ipc/__tests__/protocol.test.js.map +0 -1
  34. package/dist/learning/__tests__/confidence-scorer.test.d.ts +0 -1
  35. package/dist/learning/__tests__/confidence-scorer.test.js +0 -75
  36. package/dist/learning/__tests__/confidence-scorer.test.js.map +0 -1
  37. package/dist/mcp/__tests__/prompts.test.d.ts +0 -1
  38. package/dist/mcp/__tests__/prompts.test.js +0 -419
  39. package/dist/mcp/__tests__/prompts.test.js.map +0 -1
  40. package/dist/services/__tests__/auto-resolution.service.test.d.ts +0 -1
  41. package/dist/services/__tests__/auto-resolution.service.test.js +0 -838
  42. package/dist/services/__tests__/auto-resolution.service.test.js.map +0 -1
  43. package/dist/services/__tests__/error.service.auto-resolution.test.d.ts +0 -1
  44. package/dist/services/__tests__/error.service.auto-resolution.test.js +0 -320
  45. package/dist/services/__tests__/error.service.auto-resolution.test.js.map +0 -1
  46. package/dist/signals/__tests__/fingerprint.test.d.ts +0 -1
  47. package/dist/signals/__tests__/fingerprint.test.js +0 -118
  48. package/dist/signals/__tests__/fingerprint.test.js.map +0 -1
  49. package/dist/utils/__tests__/hash.test.d.ts +0 -1
  50. package/dist/utils/__tests__/hash.test.js +0 -32
  51. package/dist/utils/__tests__/hash.test.js.map +0 -1
  52. package/dist/utils/__tests__/paths.test.d.ts +0 -1
  53. package/dist/utils/__tests__/paths.test.js +0 -75
  54. package/dist/utils/__tests__/paths.test.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"auto-resolution.service.test.js","sourceRoot":"","sources":["../../../src/services/__tests__/auto-resolution.service.test.ts"],"names":[],"mappings":"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"}
@@ -1,320 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { describe, it, expect, vi, beforeEach } from 'vitest';
3
- import { ErrorService } from '../error.service.js';
4
- import { matchError } from '../../matching/error-matcher.js';
5
- // Mock dependencies — same pattern as existing error.service.test.ts
6
- vi.mock('../../utils/logger.js', () => ({
7
- getLogger: () => ({
8
- info: vi.fn(),
9
- warn: vi.fn(),
10
- debug: vi.fn(),
11
- error: vi.fn(),
12
- }),
13
- }));
14
- vi.mock('../../utils/events.js', () => ({
15
- getEventBus: () => ({
16
- emit: vi.fn(),
17
- }),
18
- }));
19
- vi.mock('../../parsing/error-parser.js', () => ({
20
- parseError: vi.fn((output) => {
21
- if (output.includes('UNPARSEABLE'))
22
- return null;
23
- return {
24
- errorType: 'TypeError',
25
- message: output.split('\n')[0] ?? output,
26
- frames: [],
27
- sourceFile: 'test.ts',
28
- sourceLine: 10,
29
- };
30
- }),
31
- }));
32
- vi.mock('../../matching/fingerprint.js', () => ({
33
- generateFingerprint: vi.fn(() => 'fp-mock-123'),
34
- }));
35
- vi.mock('../../matching/error-matcher.js', () => ({
36
- matchError: vi.fn(() => []),
37
- }));
38
- const matchErrorMock = vi.mocked(matchError);
39
- function createMockErrorRepo() {
40
- return {
41
- create: vi.fn().mockReturnValue(1),
42
- getById: vi.fn().mockReturnValue({
43
- id: 1,
44
- project_id: 1,
45
- terminal_id: null,
46
- fingerprint: 'fp-mock-123',
47
- type: 'TypeError',
48
- message: 'test error',
49
- raw_output: 'TypeError: test error',
50
- context: null,
51
- file_path: 'test.ts',
52
- line_number: 10,
53
- column_number: null,
54
- occurrence_count: 1,
55
- first_seen: '2025-01-01T00:00:00Z',
56
- last_seen: '2025-01-01T00:00:00Z',
57
- resolved: 0,
58
- resolved_at: null,
59
- }),
60
- update: vi.fn(),
61
- delete: vi.fn(),
62
- findByFingerprint: vi.fn().mockReturnValue([]),
63
- findByProject: vi.fn().mockReturnValue([]),
64
- findUnresolved: vi.fn().mockReturnValue([]),
65
- countSince: vi.fn().mockReturnValue(0),
66
- search: vi.fn().mockReturnValue([]),
67
- incrementOccurrence: vi.fn(),
68
- createChain: vi.fn(),
69
- findChainChildren: vi.fn().mockReturnValue([]),
70
- findChainParents: vi.fn().mockReturnValue([]),
71
- findRecentByProject: vi.fn().mockReturnValue([]),
72
- findAll: vi.fn().mockReturnValue([]),
73
- };
74
- }
75
- function createMockProjectRepo() {
76
- return {
77
- findByName: vi.fn().mockReturnValue({ id: 1, name: 'test-project' }),
78
- create: vi.fn().mockReturnValue(1),
79
- getById: vi.fn().mockReturnValue({ id: 1, name: 'test-project' }),
80
- getAll: vi.fn().mockReturnValue([]),
81
- };
82
- }
83
- function createMockSynapseManager() {
84
- return {
85
- strengthen: vi.fn(),
86
- weaken: vi.fn(),
87
- find: vi.fn(),
88
- activate: vi.fn(),
89
- runDecay: vi.fn(),
90
- };
91
- }
92
- function createMockAutoResolution() {
93
- return {
94
- getSuggestions: vi.fn().mockReturnValue({
95
- errorId: 1,
96
- suggestions: [
97
- {
98
- solution: { id: 10, description: 'Fix it' },
99
- score: 0.9,
100
- category: 'auto',
101
- matchedErrorId: 2,
102
- matchScore: 0.95,
103
- successRate: 1.0,
104
- reasoning: 'High confidence match',
105
- },
106
- ],
107
- autoApply: null,
108
- totalConsidered: 1,
109
- }),
110
- getSuggestionsForError: vi.fn(),
111
- };
112
- }
113
- function createMockEmbeddingEngine(ready = true) {
114
- return {
115
- isReady: vi.fn().mockReturnValue(ready),
116
- computeErrorVectorScores: vi.fn().mockReturnValue(new Map([[2, 0.85]])),
117
- };
118
- }
119
- describe('ErrorService — Auto-Resolution Integration', () => {
120
- let service;
121
- let errorRepo;
122
- let projectRepo;
123
- let synapseManager;
124
- let autoResolution;
125
- beforeEach(() => {
126
- vi.clearAllMocks();
127
- errorRepo = createMockErrorRepo();
128
- projectRepo = createMockProjectRepo();
129
- synapseManager = createMockSynapseManager();
130
- autoResolution = createMockAutoResolution();
131
- service = new ErrorService(errorRepo, projectRepo, synapseManager);
132
- });
133
- it('report() calls auto-resolution when matches exist', () => {
134
- const matches = [
135
- { errorId: 2, score: 0.95, isStrong: true, signals: [] },
136
- ];
137
- matchErrorMock.mockReturnValue(matches);
138
- service.setAutoResolution(autoResolution);
139
- const result = service.report({
140
- project: 'test-project',
141
- errorOutput: 'TypeError: cannot read property of undefined',
142
- });
143
- expect(autoResolution.getSuggestions).toHaveBeenCalledTimes(1);
144
- expect(autoResolution.getSuggestions).toHaveBeenCalledWith(result.errorId, matches, []);
145
- expect(result.suggestions).toBeDefined();
146
- expect(result.suggestions.suggestions).toHaveLength(1);
147
- });
148
- it('report() does not call auto-resolution when no matches', () => {
149
- matchErrorMock.mockReturnValue([]);
150
- service.setAutoResolution(autoResolution);
151
- const result = service.report({
152
- project: 'test-project',
153
- errorOutput: 'TypeError: no matches here',
154
- });
155
- expect(autoResolution.getSuggestions).not.toHaveBeenCalled();
156
- expect(result.suggestions).toBeUndefined();
157
- });
158
- it('report() does not call auto-resolution when service not set', () => {
159
- const matches = [
160
- { errorId: 2, score: 0.95, isStrong: true, signals: [] },
161
- ];
162
- matchErrorMock.mockReturnValue(matches);
163
- // Do NOT call service.setAutoResolution()
164
- const result = service.report({
165
- project: 'test-project',
166
- errorOutput: 'TypeError: auto-resolution not configured',
167
- });
168
- expect(result.suggestions).toBeUndefined();
169
- });
170
- it('report() includes suggestions in return value', () => {
171
- const matches = [
172
- { errorId: 2, score: 0.88, isStrong: true, signals: [] },
173
- ];
174
- matchErrorMock.mockReturnValue(matches);
175
- const expectedSuggestions = {
176
- errorId: 1,
177
- suggestions: [
178
- {
179
- solution: { id: 10, description: 'Fix it' },
180
- score: 0.9,
181
- category: 'auto',
182
- matchedErrorId: 2,
183
- matchScore: 0.95,
184
- successRate: 1.0,
185
- reasoning: 'High confidence match',
186
- },
187
- ],
188
- autoApply: null,
189
- totalConsidered: 1,
190
- };
191
- autoResolution.getSuggestions.mockReturnValue(expectedSuggestions);
192
- service.setAutoResolution(autoResolution);
193
- const result = service.report({
194
- project: 'test-project',
195
- errorOutput: 'TypeError: test',
196
- });
197
- expect(result.suggestions).toEqual(expectedSuggestions);
198
- expect(result.suggestions.errorId).toBe(1);
199
- expect(result.suggestions.suggestions[0].solution.id).toBe(10);
200
- expect(result.suggestions.totalConsidered).toBe(1);
201
- });
202
- it('setAutoResolution() wires the service correctly', () => {
203
- // First, verify no auto-resolution without wiring
204
- const matches = [{ errorId: 2, score: 0.9, isStrong: true, signals: [] }];
205
- matchErrorMock.mockReturnValue(matches);
206
- const result1 = service.report({
207
- project: 'test-project',
208
- errorOutput: 'TypeError: before wiring',
209
- });
210
- expect(result1.suggestions).toBeUndefined();
211
- // Wire the service
212
- service.setAutoResolution(autoResolution);
213
- // Reset fingerprint mock so we get a new error (not a duplicate)
214
- errorRepo.findByFingerprint.mockReturnValue([]);
215
- matchErrorMock.mockReturnValue(matches);
216
- const result2 = service.report({
217
- project: 'test-project',
218
- errorOutput: 'TypeError: after wiring',
219
- });
220
- expect(result2.suggestions).toBeDefined();
221
- expect(autoResolution.getSuggestions).toHaveBeenCalledTimes(1);
222
- });
223
- it('report() passes vector scores to matchError when embedding engine is available', () => {
224
- const embeddingEngine = createMockEmbeddingEngine(true);
225
- service.setEmbeddingEngine(embeddingEngine);
226
- service.report({
227
- project: 'test-project',
228
- errorOutput: 'TypeError: with embeddings',
229
- });
230
- expect(embeddingEngine.isReady).toHaveBeenCalled();
231
- expect(embeddingEngine.computeErrorVectorScores).toHaveBeenCalledWith(1, 1);
232
- // matchError should receive the vector scores map as third argument
233
- expect(matchErrorMock).toHaveBeenCalledWith(expect.any(Object), // newError
234
- expect.any(Array), // candidates
235
- expect.any(Map));
236
- const vectorScoresArg = matchErrorMock.mock.calls[0][2];
237
- expect(vectorScoresArg).toBeInstanceOf(Map);
238
- expect(vectorScoresArg.get(2)).toBe(0.85);
239
- });
240
- it('report() does not pass vector scores when embedding engine is not ready', () => {
241
- const embeddingEngine = createMockEmbeddingEngine(false);
242
- service.setEmbeddingEngine(embeddingEngine);
243
- service.report({
244
- project: 'test-project',
245
- errorOutput: 'TypeError: embeddings not ready',
246
- });
247
- expect(embeddingEngine.isReady).toHaveBeenCalled();
248
- expect(embeddingEngine.computeErrorVectorScores).not.toHaveBeenCalled();
249
- // matchError should receive undefined for vectorScores
250
- expect(matchErrorMock).toHaveBeenCalledWith(expect.any(Object), expect.any(Array), undefined);
251
- });
252
- it('report() does not pass vector scores when no embedding engine is set', () => {
253
- // No call to setEmbeddingEngine
254
- service.report({
255
- project: 'test-project',
256
- errorOutput: 'TypeError: no embedding engine',
257
- });
258
- expect(matchErrorMock).toHaveBeenCalledWith(expect.any(Object), expect.any(Array), undefined);
259
- });
260
- it('report() calls auto-resolution with cross-project matches when configured', () => {
261
- const matchingConfig = { crossProjectMatching: true, crossProjectWeight: 0.7 };
262
- service = new ErrorService(errorRepo, projectRepo, synapseManager, matchingConfig);
263
- service.setAutoResolution(autoResolution);
264
- // Set up other projects with resolved errors
265
- projectRepo.getAll.mockReturnValue([
266
- { id: 1, name: 'test-project' },
267
- { id: 2, name: 'other-project' },
268
- ]);
269
- const otherProjectErrors = [
270
- {
271
- id: 50, project_id: 2, fingerprint: 'fp-other', type: 'TypeError',
272
- message: 'similar error in other project', resolved: 1,
273
- },
274
- ];
275
- errorRepo.findByProject.mockImplementation((projectId) => {
276
- if (projectId === 2)
277
- return otherProjectErrors;
278
- return [];
279
- });
280
- const inProjectMatches = [{ errorId: 3, score: 0.8, isStrong: false, signals: [] }];
281
- const crossMatches = [{ errorId: 50, score: 0.7, isStrong: false, signals: [] }];
282
- matchErrorMock
283
- .mockReturnValueOnce(inProjectMatches) // in-project matchError call
284
- .mockReturnValueOnce(crossMatches); // cross-project matchError call
285
- const result = service.report({
286
- project: 'test-project',
287
- errorOutput: 'TypeError: cross project test',
288
- });
289
- expect(autoResolution.getSuggestions).toHaveBeenCalledTimes(1);
290
- // Should be called with errorId, in-project matches, and cross-project matches
291
- const callArgs = autoResolution.getSuggestions.mock.calls[0];
292
- expect(callArgs[0]).toBe(1); // errorId
293
- expect(callArgs[1]).toEqual(inProjectMatches);
294
- // Cross-project matches will have discounted scores
295
- expect(callArgs[2]).toHaveLength(1);
296
- expect(result.crossProjectMatches).toHaveLength(1);
297
- });
298
- it('report() skips auto-resolution for duplicate (existing fingerprint) errors', () => {
299
- errorRepo.findByFingerprint.mockReturnValue([{
300
- id: 42,
301
- project_id: 1,
302
- fingerprint: 'fp-mock-123',
303
- type: 'TypeError',
304
- message: 'old error',
305
- context: null,
306
- resolved: 0,
307
- occurrence_count: 3,
308
- }]);
309
- service.setAutoResolution(autoResolution);
310
- const result = service.report({
311
- project: 'test-project',
312
- errorOutput: 'TypeError: old error',
313
- });
314
- // Duplicate errors return early — no matchError, no auto-resolution
315
- expect(result.isNew).toBe(false);
316
- expect(autoResolution.getSuggestions).not.toHaveBeenCalled();
317
- expect(result.suggestions).toBeUndefined();
318
- });
319
- });
320
- //# sourceMappingURL=error.service.auto-resolution.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error.service.auto-resolution.test.js","sourceRoot":"","sources":["../../../src/services/__tests__/error.service.auto-resolution.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,118 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { templateMessage, generateFingerprint } from '../../matching/fingerprint.js';
3
- function frame(overrides = {}) {
4
- return {
5
- function_name: null,
6
- file_path: null,
7
- line_number: null,
8
- column_number: null,
9
- normalized: null,
10
- ...overrides,
11
- };
12
- }
13
- describe('templateMessage', () => {
14
- it('replaces Unix file paths with <PATH>', () => {
15
- const result = templateMessage('Error in /app/src/main.ts');
16
- expect(result).toContain('<PATH>');
17
- expect(result).not.toContain('/app/src/main.ts');
18
- });
19
- it('replaces Windows file paths with <PATH>', () => {
20
- const result = templateMessage('Error in C:\\Users\\test\\file.ts');
21
- expect(result).toContain('<PATH>');
22
- expect(result).not.toContain('C:\\Users\\test\\file.ts');
23
- });
24
- it('replaces line:col references with <LINE>:<COL>', () => {
25
- const result = templateMessage('at file.ts:42:10');
26
- expect(result).toContain('<LINE>:<COL>');
27
- expect(result).not.toContain(':42:10');
28
- });
29
- it('replaces "line N" with "line <LINE>"', () => {
30
- const result = templateMessage('Syntax error on line 55');
31
- expect(result).toContain('line <LINE>');
32
- expect(result).not.toContain('line 55');
33
- });
34
- it('replaces hex addresses with <ADDR>', () => {
35
- const result = templateMessage('Segfault at 0x7fff5fbff8c0');
36
- expect(result).toContain('<ADDR>');
37
- expect(result).not.toContain('0x7fff5fbff8c0');
38
- });
39
- it('replaces UUIDs with <UUID>', () => {
40
- const result = templateMessage('Request 550e8400-e29b-41d4-a716-446655440000 failed');
41
- expect(result).toContain('<UUID>');
42
- expect(result).not.toContain('550e8400-e29b-41d4-a716-446655440000');
43
- });
44
- it('normalizes timestamps (line:col regex fires first on HH:MM:SS)', () => {
45
- const result = templateMessage('Event at 2024-01-15T10:30:00 crashed');
46
- // The :30:00 portion is caught by the line:col regex before the timestamp regex,
47
- // so the timestamp is still normalized -- just not as <TIMESTAMP>
48
- expect(result).not.toContain('2024-01-15T10:30:00');
49
- expect(result).toContain('<LINE>:<COL>');
50
- });
51
- it('normalizes property access patterns', () => {
52
- const a = templateMessage("Cannot read properties of undefined (reading 'map')");
53
- const b = templateMessage("Cannot read properties of undefined (reading 'forEach')");
54
- expect(a).toBe(b);
55
- });
56
- it('normalizes quoted identifiers', () => {
57
- const a = templateMessage("'myVariable' is not defined");
58
- const b = templateMessage("'otherVariable' is not defined");
59
- expect(a).toBe(b);
60
- });
61
- it('produces identical templates for errors differing only in paths and lines', () => {
62
- const a = templateMessage("TypeError at /home/user/app.js:10:5");
63
- const b = templateMessage("TypeError at /var/deploy/app.js:99:12");
64
- expect(a).toBe(b);
65
- });
66
- });
67
- describe('generateFingerprint', () => {
68
- it('returns a 64-char hex string', () => {
69
- const fp = generateFingerprint('Error', 'test message', []);
70
- expect(fp).toMatch(/^[a-f0-9]{64}$/);
71
- });
72
- it('is deterministic for the same input', () => {
73
- const frames = [frame({ function_name: 'foo', file_path: '/a/b.ts' })];
74
- const fp1 = generateFingerprint('TypeError', 'msg', frames);
75
- const fp2 = generateFingerprint('TypeError', 'msg', frames);
76
- expect(fp1).toBe(fp2);
77
- });
78
- it('differs by error type', () => {
79
- const fp1 = generateFingerprint('TypeError', 'msg', []);
80
- const fp2 = generateFingerprint('RangeError', 'msg', []);
81
- expect(fp1).not.toBe(fp2);
82
- });
83
- it('differs by message content', () => {
84
- const fp1 = generateFingerprint('Error', 'cannot read property', []);
85
- const fp2 = generateFingerprint('Error', 'null pointer exception', []);
86
- expect(fp1).not.toBe(fp2);
87
- });
88
- it('uses only top 3 stack frames', () => {
89
- const manyFrames = Array.from({ length: 10 }, (_, i) => frame({ function_name: `fn${i}`, file_path: `/src/file${i}.ts` }));
90
- const threeFrames = manyFrames.slice(0, 3);
91
- const fpMany = generateFingerprint('Error', 'msg', manyFrames);
92
- const fpThree = generateFingerprint('Error', 'msg', threeFrames);
93
- expect(fpMany).toBe(fpThree);
94
- });
95
- it('handles frames with null function names', () => {
96
- const frames = [frame({ function_name: null, file_path: '/src/app.ts' })];
97
- const fp = generateFingerprint('Error', 'msg', frames);
98
- expect(fp).toMatch(/^[a-f0-9]{64}$/);
99
- });
100
- it('handles frames with null file paths', () => {
101
- const frames = [frame({ function_name: 'foo', file_path: null })];
102
- const fp = generateFingerprint('Error', 'msg', frames);
103
- expect(fp).toMatch(/^[a-f0-9]{64}$/);
104
- });
105
- it('same error at different file locations produces the same fingerprint', () => {
106
- const frames1 = [frame({ function_name: 'handler', file_path: '/app/v1/server.ts' })];
107
- const frames2 = [frame({ function_name: 'handler', file_path: '/deploy/v2/server.ts' })];
108
- const fp1 = generateFingerprint('TypeError', "Cannot read properties of undefined (reading 'name')", frames1);
109
- const fp2 = generateFingerprint('TypeError', "Cannot read properties of undefined (reading 'name')", frames2);
110
- // basename of file_path is 'server.ts' in both cases, so fingerprints should match
111
- expect(fp1).toBe(fp2);
112
- });
113
- it('empty frames still produces a valid fingerprint', () => {
114
- const fp = generateFingerprint('SyntaxError', 'Unexpected token', []);
115
- expect(fp).toMatch(/^[a-f0-9]{64}$/);
116
- });
117
- });
118
- //# sourceMappingURL=fingerprint.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fingerprint.test.js","sourceRoot":"","sources":["../../../src/signals/__tests__/fingerprint.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAGrF,SAAS,KAAK,CAAC,YAAiC,EAAE;IAChD,OAAO;QACL,aAAa,EAAE,IAAI;QACnB,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,IAAI;QACjB,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,IAAI;QAChB,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,MAAM,GAAG,eAAe,CAAC,2BAA2B,CAAC,CAAC;QAC5D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,MAAM,GAAG,eAAe,CAAC,mCAAmC,CAAC,CAAC;QACpE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,MAAM,GAAG,eAAe,CAAC,kBAAkB,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,MAAM,GAAG,eAAe,CAAC,yBAAyB,CAAC,CAAC;QAC1D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,MAAM,GAAG,eAAe,CAAC,4BAA4B,CAAC,CAAC;QAC7D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,MAAM,GAAG,eAAe,CAAC,qDAAqD,CAAC,CAAC;QACtF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,sCAAsC,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,MAAM,MAAM,GAAG,eAAe,CAAC,sCAAsC,CAAC,CAAC;QACvE,iFAAiF;QACjF,kEAAkE;QAClE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;QACpD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,CAAC,GAAG,eAAe,CAAC,qDAAqD,CAAC,CAAC;QACjF,MAAM,CAAC,GAAG,eAAe,CAAC,yDAAyD,CAAC,CAAC;QACrF,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,CAAC,GAAG,eAAe,CAAC,6BAA6B,CAAC,CAAC;QACzD,MAAM,CAAC,GAAG,eAAe,CAAC,gCAAgC,CAAC,CAAC;QAC5D,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2EAA2E,EAAE,GAAG,EAAE;QACnF,MAAM,CAAC,GAAG,eAAe,CAAC,qCAAqC,CAAC,CAAC;QACjE,MAAM,CAAC,GAAG,eAAe,CAAC,uCAAuC,CAAC,CAAC;QACnE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,EAAE,GAAG,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;QAC5D,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QACvE,MAAM,GAAG,GAAG,mBAAmB,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC5D,MAAM,GAAG,GAAG,mBAAmB,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC5D,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC/B,MAAM,GAAG,GAAG,mBAAmB,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACxD,MAAM,GAAG,GAAG,mBAAmB,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACzD,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,GAAG,GAAG,mBAAmB,CAAC,OAAO,EAAE,sBAAsB,EAAE,EAAE,CAAC,CAAC;QACrE,MAAM,GAAG,GAAG,mBAAmB,CAAC,OAAO,EAAE,wBAAwB,EAAE,EAAE,CAAC,CAAC;QACvE,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACrD,KAAK,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,KAAK,EAAE,CAAC,CAClE,CAAC;QACF,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAE3C,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,mBAAmB,CAAC,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QACjE,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;QAC1E,MAAM,EAAE,GAAG,mBAAmB,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACvD,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAClE,MAAM,EAAE,GAAG,mBAAmB,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACvD,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC9E,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC;QACtF,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC;QACzF,MAAM,GAAG,GAAG,mBAAmB,CAAC,WAAW,EAAE,sDAAsD,EAAE,OAAO,CAAC,CAAC;QAC9G,MAAM,GAAG,GAAG,mBAAmB,CAAC,WAAW,EAAE,sDAAsD,EAAE,OAAO,CAAC,CAAC;QAC9G,mFAAmF;QACnF,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,EAAE,GAAG,mBAAmB,CAAC,aAAa,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;QACtE,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,32 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { sha256 } from '../hash.js';
3
- describe('sha256', () => {
4
- it('returns a 64-character hex string', () => {
5
- const hash = sha256('hello');
6
- expect(hash).toHaveLength(64);
7
- expect(hash).toMatch(/^[a-f0-9]{64}$/);
8
- });
9
- it('produces consistent output for same input', () => {
10
- expect(sha256('test')).toBe(sha256('test'));
11
- });
12
- it('produces different output for different inputs', () => {
13
- expect(sha256('a')).not.toBe(sha256('b'));
14
- });
15
- it('matches known SHA-256 digest for empty string', () => {
16
- // SHA-256 of "" is well-known
17
- expect(sha256('')).toBe('e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855');
18
- });
19
- it('matches known SHA-256 digest for "hello"', () => {
20
- expect(sha256('hello')).toBe('2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824');
21
- });
22
- it('handles unicode input', () => {
23
- const hash = sha256('\u00fc\u00f6\u00e4');
24
- expect(hash).toMatch(/^[a-f0-9]{64}$/);
25
- });
26
- it('handles long input', () => {
27
- const long = 'x'.repeat(10_000);
28
- const hash = sha256(long);
29
- expect(hash).toMatch(/^[a-f0-9]{64}$/);
30
- });
31
- });
32
- //# sourceMappingURL=hash.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hash.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/hash.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEpC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,8BAA8B;QAC9B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CACrB,kEAAkE,CACnE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAC1B,kEAAkE,CACnE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC5B,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAChC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- export {};