@skillsmith/core 2.0.2 → 2.1.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 (71) hide show
  1. package/README.md +1 -1
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/src/db/schema.d.ts +1 -1
  4. package/dist/src/db/schema.d.ts.map +1 -1
  5. package/dist/src/db/schema.js +41 -1
  6. package/dist/src/db/schema.js.map +1 -1
  7. package/dist/src/index.d.ts +1 -0
  8. package/dist/src/index.d.ts.map +1 -1
  9. package/dist/src/index.js +2 -0
  10. package/dist/src/index.js.map +1 -1
  11. package/dist/src/repositories/SyncConfigRepository.d.ts +91 -0
  12. package/dist/src/repositories/SyncConfigRepository.d.ts.map +1 -0
  13. package/dist/src/repositories/SyncConfigRepository.js +202 -0
  14. package/dist/src/repositories/SyncConfigRepository.js.map +1 -0
  15. package/dist/src/repositories/SyncHistoryRepository.d.ts +104 -0
  16. package/dist/src/repositories/SyncHistoryRepository.d.ts.map +1 -0
  17. package/dist/src/repositories/SyncHistoryRepository.js +235 -0
  18. package/dist/src/repositories/SyncHistoryRepository.js.map +1 -0
  19. package/dist/src/scripts/github-import/github-client.d.ts +24 -0
  20. package/dist/src/scripts/github-import/github-client.d.ts.map +1 -1
  21. package/dist/src/scripts/github-import/github-client.js +103 -0
  22. package/dist/src/scripts/github-import/github-client.js.map +1 -1
  23. package/dist/src/scripts/github-import/index.js +3 -10
  24. package/dist/src/scripts/github-import/index.js.map +1 -1
  25. package/dist/src/scripts/merge-skills.d.ts +56 -0
  26. package/dist/src/scripts/merge-skills.d.ts.map +1 -0
  27. package/dist/src/scripts/merge-skills.js +411 -0
  28. package/dist/src/scripts/merge-skills.js.map +1 -0
  29. package/dist/src/scripts/skill-scanner/index.d.ts +9 -2
  30. package/dist/src/scripts/skill-scanner/index.d.ts.map +1 -1
  31. package/dist/src/scripts/skill-scanner/index.js +98 -7
  32. package/dist/src/scripts/skill-scanner/index.js.map +1 -1
  33. package/dist/src/scripts/skill-scanner/logger.d.ts +51 -0
  34. package/dist/src/scripts/skill-scanner/logger.d.ts.map +1 -1
  35. package/dist/src/scripts/skill-scanner/logger.js +255 -1
  36. package/dist/src/scripts/skill-scanner/logger.js.map +1 -1
  37. package/dist/src/scripts/skill-scanner/reporter.d.ts +1 -1
  38. package/dist/src/scripts/skill-scanner/reporter.d.ts.map +1 -1
  39. package/dist/src/scripts/skill-scanner/reporter.js +67 -15
  40. package/dist/src/scripts/skill-scanner/reporter.js.map +1 -1
  41. package/dist/src/scripts/skill-scanner/scanner.d.ts +5 -2
  42. package/dist/src/scripts/skill-scanner/scanner.d.ts.map +1 -1
  43. package/dist/src/scripts/skill-scanner/scanner.js +156 -39
  44. package/dist/src/scripts/skill-scanner/scanner.js.map +1 -1
  45. package/dist/src/scripts/skill-scanner/types.d.ts +44 -0
  46. package/dist/src/scripts/skill-scanner/types.d.ts.map +1 -1
  47. package/dist/src/sync/BackgroundSyncService.d.ts +90 -0
  48. package/dist/src/sync/BackgroundSyncService.d.ts.map +1 -0
  49. package/dist/src/sync/BackgroundSyncService.js +214 -0
  50. package/dist/src/sync/BackgroundSyncService.js.map +1 -0
  51. package/dist/src/sync/SyncEngine.d.ts +76 -0
  52. package/dist/src/sync/SyncEngine.d.ts.map +1 -0
  53. package/dist/src/sync/SyncEngine.js +272 -0
  54. package/dist/src/sync/SyncEngine.js.map +1 -0
  55. package/dist/src/sync/index.d.ts +11 -0
  56. package/dist/src/sync/index.d.ts.map +1 -0
  57. package/dist/src/sync/index.js +14 -0
  58. package/dist/src/sync/index.js.map +1 -0
  59. package/dist/tests/sync/SyncConfigRepository.test.d.ts +7 -0
  60. package/dist/tests/sync/SyncConfigRepository.test.d.ts.map +1 -0
  61. package/dist/tests/sync/SyncConfigRepository.test.js +154 -0
  62. package/dist/tests/sync/SyncConfigRepository.test.js.map +1 -0
  63. package/dist/tests/sync/SyncEngine.test.d.ts +7 -0
  64. package/dist/tests/sync/SyncEngine.test.d.ts.map +1 -0
  65. package/dist/tests/sync/SyncEngine.test.js +298 -0
  66. package/dist/tests/sync/SyncEngine.test.js.map +1 -0
  67. package/dist/tests/sync/SyncHistoryRepository.test.d.ts +7 -0
  68. package/dist/tests/sync/SyncHistoryRepository.test.d.ts.map +1 -0
  69. package/dist/tests/sync/SyncHistoryRepository.test.js +220 -0
  70. package/dist/tests/sync/SyncHistoryRepository.test.js.map +1 -0
  71. package/package.json +1 -1
@@ -0,0 +1,220 @@
1
+ /**
2
+ * SyncHistoryRepository Tests
3
+ *
4
+ * Tests for sync history tracking.
5
+ */
6
+ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
7
+ import { createDatabase, closeDatabase } from '../../src/db/schema.js';
8
+ import { SyncHistoryRepository } from '../../src/repositories/SyncHistoryRepository.js';
9
+ describe('SyncHistoryRepository', () => {
10
+ let db;
11
+ let repo;
12
+ beforeEach(() => {
13
+ db = createDatabase(':memory:');
14
+ repo = new SyncHistoryRepository(db);
15
+ });
16
+ afterEach(() => {
17
+ closeDatabase(db);
18
+ });
19
+ describe('startRun', () => {
20
+ it('should create a new run with running status', () => {
21
+ const runId = repo.startRun();
22
+ expect(runId).toMatch(/^sync-\d{14}-[a-z0-9]+$/);
23
+ const entry = repo.getById(runId);
24
+ expect(entry).not.toBeNull();
25
+ expect(entry.status).toBe('running');
26
+ expect(entry.startedAt).toBeTruthy();
27
+ expect(entry.completedAt).toBeNull();
28
+ });
29
+ it('should generate unique IDs', () => {
30
+ const id1 = repo.startRun();
31
+ const id2 = repo.startRun();
32
+ expect(id1).not.toBe(id2);
33
+ });
34
+ });
35
+ describe('completeRun', () => {
36
+ it('should mark run as success with results', () => {
37
+ const runId = repo.startRun();
38
+ repo.completeRun(runId, {
39
+ skillsAdded: 10,
40
+ skillsUpdated: 5,
41
+ skillsUnchanged: 100,
42
+ });
43
+ const entry = repo.getById(runId);
44
+ expect(entry.status).toBe('success');
45
+ expect(entry.skillsAdded).toBe(10);
46
+ expect(entry.skillsUpdated).toBe(5);
47
+ expect(entry.skillsUnchanged).toBe(100);
48
+ expect(entry.completedAt).toBeTruthy();
49
+ expect(entry.durationMs).toBeGreaterThanOrEqual(0);
50
+ });
51
+ it('should throw if run not found', () => {
52
+ expect(() => {
53
+ repo.completeRun('nonexistent-id', {
54
+ skillsAdded: 0,
55
+ skillsUpdated: 0,
56
+ skillsUnchanged: 0,
57
+ });
58
+ }).toThrow('Sync run not found');
59
+ });
60
+ });
61
+ describe('completeRunPartial', () => {
62
+ it('should mark run as partial with error message', () => {
63
+ const runId = repo.startRun();
64
+ repo.completeRunPartial(runId, { skillsAdded: 5, skillsUpdated: 2, skillsUnchanged: 50 }, 'Some skills failed to sync');
65
+ const entry = repo.getById(runId);
66
+ expect(entry.status).toBe('partial');
67
+ expect(entry.errorMessage).toBe('Some skills failed to sync');
68
+ expect(entry.skillsAdded).toBe(5);
69
+ });
70
+ });
71
+ describe('failRun', () => {
72
+ it('should mark run as failed with error', () => {
73
+ const runId = repo.startRun();
74
+ repo.failRun(runId, 'Connection timeout');
75
+ const entry = repo.getById(runId);
76
+ expect(entry.status).toBe('failed');
77
+ expect(entry.errorMessage).toBe('Connection timeout');
78
+ expect(entry.completedAt).toBeTruthy();
79
+ });
80
+ it('should throw if run not found', () => {
81
+ expect(() => {
82
+ repo.failRun('nonexistent-id', 'error');
83
+ }).toThrow('Sync run not found');
84
+ });
85
+ });
86
+ describe('getById', () => {
87
+ it('should return entry by ID', () => {
88
+ const runId = repo.startRun();
89
+ const entry = repo.getById(runId);
90
+ expect(entry).not.toBeNull();
91
+ expect(entry.id).toBe(runId);
92
+ });
93
+ it('should return null for nonexistent ID', () => {
94
+ const entry = repo.getById('nonexistent');
95
+ expect(entry).toBeNull();
96
+ });
97
+ });
98
+ describe('getHistory', () => {
99
+ it('should return empty array if no history', () => {
100
+ const history = repo.getHistory();
101
+ expect(history).toEqual([]);
102
+ });
103
+ it('should return entries in reverse chronological order', () => {
104
+ // Create first run with older timestamp
105
+ const id1 = repo.startRun();
106
+ repo.completeRun(id1, { skillsAdded: 1, skillsUpdated: 0, skillsUnchanged: 0 });
107
+ // Manually adjust timestamp to ensure ordering
108
+ const oneSecondAgo = new Date(Date.now() - 1000).toISOString();
109
+ db.prepare('UPDATE sync_history SET started_at = ? WHERE id = ?').run(oneSecondAgo, id1);
110
+ const id2 = repo.startRun();
111
+ repo.completeRun(id2, { skillsAdded: 2, skillsUpdated: 0, skillsUnchanged: 0 });
112
+ const history = repo.getHistory();
113
+ expect(history.length).toBe(2);
114
+ expect(history[0].skillsAdded).toBe(2); // Most recent first
115
+ expect(history[1].skillsAdded).toBe(1);
116
+ });
117
+ it('should respect limit parameter', () => {
118
+ for (let i = 0; i < 5; i++) {
119
+ const id = repo.startRun();
120
+ repo.completeRun(id, { skillsAdded: i, skillsUpdated: 0, skillsUnchanged: 0 });
121
+ }
122
+ const history = repo.getHistory(3);
123
+ expect(history.length).toBe(3);
124
+ });
125
+ });
126
+ describe('getLastSuccessful', () => {
127
+ it('should return null if no successful runs', () => {
128
+ const id = repo.startRun();
129
+ repo.failRun(id, 'error');
130
+ expect(repo.getLastSuccessful()).toBeNull();
131
+ });
132
+ it('should return last successful run', () => {
133
+ const id1 = repo.startRun();
134
+ repo.completeRun(id1, { skillsAdded: 10, skillsUpdated: 0, skillsUnchanged: 0 });
135
+ const id2 = repo.startRun();
136
+ repo.failRun(id2, 'error');
137
+ const last = repo.getLastSuccessful();
138
+ expect(last).not.toBeNull();
139
+ expect(last.id).toBe(id1);
140
+ expect(last.skillsAdded).toBe(10);
141
+ });
142
+ });
143
+ describe('getRunning', () => {
144
+ it('should return empty array if no running', () => {
145
+ expect(repo.getRunning()).toEqual([]);
146
+ });
147
+ it('should return running entries', () => {
148
+ const id1 = repo.startRun();
149
+ const id2 = repo.startRun();
150
+ repo.completeRun(id2, { skillsAdded: 0, skillsUpdated: 0, skillsUnchanged: 0 });
151
+ const running = repo.getRunning();
152
+ expect(running.length).toBe(1);
153
+ expect(running[0].id).toBe(id1);
154
+ });
155
+ });
156
+ describe('isRunning', () => {
157
+ it('should return false if no running syncs', () => {
158
+ expect(repo.isRunning()).toBe(false);
159
+ });
160
+ it('should return true if sync is running', () => {
161
+ repo.startRun();
162
+ expect(repo.isRunning()).toBe(true);
163
+ });
164
+ });
165
+ describe('cleanup', () => {
166
+ it('should remove old entries', () => {
167
+ // Create an entry and manually set old date
168
+ const id = repo.startRun();
169
+ repo.completeRun(id, { skillsAdded: 0, skillsUpdated: 0, skillsUnchanged: 0 });
170
+ // Update started_at to 60 days ago
171
+ const sixtyDaysAgo = new Date();
172
+ sixtyDaysAgo.setDate(sixtyDaysAgo.getDate() - 60);
173
+ db.prepare('UPDATE sync_history SET started_at = ? WHERE id = ?').run(sixtyDaysAgo.toISOString(), id);
174
+ const deleted = repo.cleanup(30);
175
+ expect(deleted).toBe(1);
176
+ expect(repo.getById(id)).toBeNull();
177
+ });
178
+ });
179
+ describe('count', () => {
180
+ it('should return 0 for empty history', () => {
181
+ expect(repo.count()).toBe(0);
182
+ });
183
+ it('should return correct count', () => {
184
+ repo.startRun();
185
+ repo.startRun();
186
+ repo.startRun();
187
+ expect(repo.count()).toBe(3);
188
+ });
189
+ });
190
+ describe('getStats', () => {
191
+ it('should return zeros for empty history', () => {
192
+ const stats = repo.getStats();
193
+ expect(stats.totalRuns).toBe(0);
194
+ // SQLite SUM returns null for empty sets, which is handled by the implementation
195
+ expect(stats.successfulRuns).toBe(0);
196
+ expect(stats.failedRuns).toBe(0);
197
+ expect(stats.lastSuccessAt).toBeNull();
198
+ expect(stats.averageDurationMs).toBeNull();
199
+ });
200
+ it('should calculate stats correctly', () => {
201
+ // Success
202
+ const id1 = repo.startRun();
203
+ repo.completeRun(id1, { skillsAdded: 10, skillsUpdated: 5, skillsUnchanged: 100 });
204
+ // Success
205
+ const id2 = repo.startRun();
206
+ repo.completeRun(id2, { skillsAdded: 5, skillsUpdated: 2, skillsUnchanged: 50 });
207
+ // Failed
208
+ const id3 = repo.startRun();
209
+ repo.failRun(id3, 'error');
210
+ const stats = repo.getStats();
211
+ expect(stats.totalRuns).toBe(3);
212
+ expect(stats.successfulRuns).toBe(2);
213
+ expect(stats.failedRuns).toBe(1);
214
+ expect(stats.lastSuccessAt).toBeTruthy();
215
+ // averageDurationMs may be 0 or a small positive number
216
+ expect(stats.averageDurationMs === null || stats.averageDurationMs >= 0).toBe(true);
217
+ });
218
+ });
219
+ });
220
+ //# sourceMappingURL=SyncHistoryRepository.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SyncHistoryRepository.test.js","sourceRoot":"","sources":["../../../tests/sync/SyncHistoryRepository.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skillsmith/core",
3
- "version": "2.0.2",
3
+ "version": "2.1.0",
4
4
  "description": "Core types and utilities for Skillsmith",
5
5
  "type": "module",
6
6
  "main": "./dist/src/index.js",