@skillsmith/core 0.5.3 → 0.5.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 (276) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/src/activation/ActivationManager.d.ts +7 -0
  4. package/dist/src/activation/ActivationManager.d.ts.map +1 -1
  5. package/dist/src/activation/ActivationManager.js +13 -4
  6. package/dist/src/activation/ActivationManager.js.map +1 -1
  7. package/dist/src/analysis/adapters/python.d.ts +16 -11
  8. package/dist/src/analysis/adapters/python.d.ts.map +1 -1
  9. package/dist/src/analysis/adapters/python.js +46 -61
  10. package/dist/src/analysis/adapters/python.js.map +1 -1
  11. package/dist/src/analysis/router.test.d.ts +2 -0
  12. package/dist/src/analysis/router.test.d.ts.map +1 -0
  13. package/dist/src/analysis/router.test.js +411 -0
  14. package/dist/src/analysis/router.test.js.map +1 -0
  15. package/dist/src/analysis/tree-sitter/manager.d.ts.map +1 -1
  16. package/dist/src/analysis/tree-sitter/manager.js +12 -5
  17. package/dist/src/analysis/tree-sitter/manager.js.map +1 -1
  18. package/dist/src/analysis/tree-sitter/pythonExtractor.d.ts +45 -0
  19. package/dist/src/analysis/tree-sitter/pythonExtractor.d.ts.map +1 -0
  20. package/dist/src/analysis/tree-sitter/pythonExtractor.js +264 -0
  21. package/dist/src/analysis/tree-sitter/pythonExtractor.js.map +1 -0
  22. package/dist/src/analysis/tree-sitter/pythonExtractor.test.d.ts +12 -0
  23. package/dist/src/analysis/tree-sitter/pythonExtractor.test.d.ts.map +1 -0
  24. package/dist/src/analysis/tree-sitter/pythonExtractor.test.js +74 -0
  25. package/dist/src/analysis/tree-sitter/pythonExtractor.test.js.map +1 -0
  26. package/dist/src/analysis/tree-sitter/pythonIncremental.d.ts +93 -0
  27. package/dist/src/analysis/tree-sitter/pythonIncremental.d.ts.map +1 -0
  28. package/dist/src/analysis/tree-sitter/pythonIncremental.hardening.test.d.ts +22 -0
  29. package/dist/src/analysis/tree-sitter/pythonIncremental.hardening.test.d.ts.map +1 -0
  30. package/dist/src/analysis/tree-sitter/pythonIncremental.hardening.test.js +229 -0
  31. package/dist/src/analysis/tree-sitter/pythonIncremental.hardening.test.js.map +1 -0
  32. package/dist/src/analysis/tree-sitter/pythonIncremental.js +287 -0
  33. package/dist/src/analysis/tree-sitter/pythonIncremental.js.map +1 -0
  34. package/dist/src/analysis/tree-sitter/pythonIncremental.test.d.ts +17 -0
  35. package/dist/src/analysis/tree-sitter/pythonIncremental.test.d.ts.map +1 -0
  36. package/dist/src/analysis/tree-sitter/pythonIncremental.test.js +142 -0
  37. package/dist/src/analysis/tree-sitter/pythonIncremental.test.js.map +1 -0
  38. package/dist/src/analysis/tree-sitter/queries/python.d.ts +43 -0
  39. package/dist/src/analysis/tree-sitter/queries/python.d.ts.map +1 -0
  40. package/dist/src/analysis/tree-sitter/queries/python.js +88 -0
  41. package/dist/src/analysis/tree-sitter/queries/python.js.map +1 -0
  42. package/dist/src/analysis/tree-sitter/queryExtractionMatchesOrExceedsRegex.test.d.ts +13 -0
  43. package/dist/src/analysis/tree-sitter/queryExtractionMatchesOrExceedsRegex.test.d.ts.map +1 -0
  44. package/dist/src/analysis/tree-sitter/queryExtractionMatchesOrExceedsRegex.test.js +174 -0
  45. package/dist/src/analysis/tree-sitter/queryExtractionMatchesOrExceedsRegex.test.js.map +1 -0
  46. package/dist/src/analytics/ROIDashboardService.csv.d.ts +11 -0
  47. package/dist/src/analytics/ROIDashboardService.csv.d.ts.map +1 -0
  48. package/dist/src/analytics/ROIDashboardService.csv.js +43 -0
  49. package/dist/src/analytics/ROIDashboardService.csv.js.map +1 -0
  50. package/dist/src/analytics/ROIDashboardService.d.ts +64 -3
  51. package/dist/src/analytics/ROIDashboardService.d.ts.map +1 -1
  52. package/dist/src/analytics/ROIDashboardService.js +116 -45
  53. package/dist/src/analytics/ROIDashboardService.js.map +1 -1
  54. package/dist/src/api/client.d.ts +4 -66
  55. package/dist/src/api/client.d.ts.map +1 -1
  56. package/dist/src/api/client.events.d.ts.map +1 -1
  57. package/dist/src/api/client.events.js +10 -1
  58. package/dist/src/api/client.events.js.map +1 -1
  59. package/dist/src/api/client.js +40 -66
  60. package/dist/src/api/client.js.map +1 -1
  61. package/dist/src/api/client.token-refresh.d.ts +3 -0
  62. package/dist/src/api/client.token-refresh.d.ts.map +1 -0
  63. package/dist/src/api/client.token-refresh.js +19 -0
  64. package/dist/src/api/client.token-refresh.js.map +1 -0
  65. package/dist/src/api/client.token-refresh.test.d.ts +2 -0
  66. package/dist/src/api/client.token-refresh.test.d.ts.map +1 -0
  67. package/dist/src/api/client.token-refresh.test.js +73 -0
  68. package/dist/src/api/client.token-refresh.test.js.map +1 -0
  69. package/dist/src/api/client.types.d.ts +2 -0
  70. package/dist/src/api/client.types.d.ts.map +1 -1
  71. package/dist/src/api/index.d.ts +1 -1
  72. package/dist/src/api/index.d.ts.map +1 -1
  73. package/dist/src/api/index.js +1 -1
  74. package/dist/src/api/index.js.map +1 -1
  75. package/dist/src/api/schemas.d.ts +60 -60
  76. package/dist/src/api/schemas.d.ts.map +1 -1
  77. package/dist/src/benchmarks/incrementalParseBenchmark.d.ts +18 -0
  78. package/dist/src/benchmarks/incrementalParseBenchmark.d.ts.map +1 -0
  79. package/dist/src/benchmarks/incrementalParseBenchmark.js +121 -0
  80. package/dist/src/benchmarks/incrementalParseBenchmark.js.map +1 -0
  81. package/dist/src/billing/GDPRComplianceService.test.d.ts +2 -0
  82. package/dist/src/billing/GDPRComplianceService.test.d.ts.map +1 -0
  83. package/dist/src/billing/GDPRComplianceService.test.js +405 -0
  84. package/dist/src/billing/GDPRComplianceService.test.js.map +1 -0
  85. package/dist/src/config/index.d.ts +4 -0
  86. package/dist/src/config/index.d.ts.map +1 -1
  87. package/dist/src/config/index.js +6 -0
  88. package/dist/src/config/index.js.map +1 -1
  89. package/dist/src/config/token-credentials.d.ts +13 -0
  90. package/dist/src/config/token-credentials.d.ts.map +1 -0
  91. package/dist/src/config/token-credentials.js +126 -0
  92. package/dist/src/config/token-credentials.js.map +1 -0
  93. package/dist/src/config/token-credentials.test.d.ts +10 -0
  94. package/dist/src/config/token-credentials.test.d.ts.map +1 -0
  95. package/dist/src/config/token-credentials.test.js +91 -0
  96. package/dist/src/config/token-credentials.test.js.map +1 -0
  97. package/dist/src/index.d.ts +7 -4
  98. package/dist/src/index.d.ts.map +1 -1
  99. package/dist/src/index.js +6 -3
  100. package/dist/src/index.js.map +1 -1
  101. package/dist/src/indexer/SkillParser.coverage.test.d.ts +10 -0
  102. package/dist/src/indexer/SkillParser.coverage.test.d.ts.map +1 -0
  103. package/dist/src/indexer/SkillParser.coverage.test.js +76 -0
  104. package/dist/src/indexer/SkillParser.coverage.test.js.map +1 -0
  105. package/dist/src/indexer/SkillParser.test.d.ts +2 -0
  106. package/dist/src/indexer/SkillParser.test.d.ts.map +1 -0
  107. package/dist/src/indexer/SkillParser.test.js +375 -0
  108. package/dist/src/indexer/SkillParser.test.js.map +1 -0
  109. package/dist/src/scripts/__tests__/scan-imported-skills.test.js +34 -5
  110. package/dist/src/scripts/__tests__/scan-imported-skills.test.js.map +1 -1
  111. package/dist/src/scripts/github-import/blocklist.d.ts +65 -0
  112. package/dist/src/scripts/github-import/blocklist.d.ts.map +1 -0
  113. package/dist/src/scripts/github-import/blocklist.js +124 -0
  114. package/dist/src/scripts/github-import/blocklist.js.map +1 -0
  115. package/dist/src/scripts/github-import/index.d.ts +1 -0
  116. package/dist/src/scripts/github-import/index.d.ts.map +1 -1
  117. package/dist/src/scripts/github-import/index.js +3 -0
  118. package/dist/src/scripts/github-import/index.js.map +1 -1
  119. package/dist/src/scripts/github-import/signal-of-intent.d.ts +87 -0
  120. package/dist/src/scripts/github-import/signal-of-intent.d.ts.map +1 -0
  121. package/dist/src/scripts/github-import/signal-of-intent.js +213 -0
  122. package/dist/src/scripts/github-import/signal-of-intent.js.map +1 -0
  123. package/dist/src/scripts/github-import/types.d.ts +22 -0
  124. package/dist/src/scripts/github-import/types.d.ts.map +1 -1
  125. package/dist/src/scripts/github-import/types.js.map +1 -1
  126. package/dist/src/scripts/import-github-skills.js +73 -3
  127. package/dist/src/scripts/import-github-skills.js.map +1 -1
  128. package/dist/src/scripts/skill-scanner/allowlist.d.ts +38 -0
  129. package/dist/src/scripts/skill-scanner/allowlist.d.ts.map +1 -0
  130. package/dist/src/scripts/skill-scanner/allowlist.js +178 -0
  131. package/dist/src/scripts/skill-scanner/allowlist.js.map +1 -0
  132. package/dist/src/scripts/skill-scanner/scanner.d.ts +10 -2
  133. package/dist/src/scripts/skill-scanner/scanner.d.ts.map +1 -1
  134. package/dist/src/scripts/skill-scanner/scanner.js +15 -3
  135. package/dist/src/scripts/skill-scanner/scanner.js.map +1 -1
  136. package/dist/src/scripts/skill-scanner/trust-scorer.d.ts +20 -6
  137. package/dist/src/scripts/skill-scanner/trust-scorer.d.ts.map +1 -1
  138. package/dist/src/scripts/skill-scanner/trust-scorer.js +28 -9
  139. package/dist/src/scripts/skill-scanner/trust-scorer.js.map +1 -1
  140. package/dist/src/scripts/skill-scanner/types.d.ts +50 -0
  141. package/dist/src/scripts/skill-scanner/types.d.ts.map +1 -1
  142. package/dist/src/scripts/validation/types.d.ts +14 -24
  143. package/dist/src/scripts/validation/types.d.ts.map +1 -1
  144. package/dist/src/security/scanner/SecurityScanner.helpers.d.ts +18 -0
  145. package/dist/src/security/scanner/SecurityScanner.helpers.d.ts.map +1 -1
  146. package/dist/src/security/scanner/SecurityScanner.helpers.js +54 -6
  147. package/dist/src/security/scanner/SecurityScanner.helpers.js.map +1 -1
  148. package/dist/src/security/scanner/patterns.d.ts.map +1 -1
  149. package/dist/src/security/scanner/patterns.js +45 -5
  150. package/dist/src/security/scanner/patterns.js.map +1 -1
  151. package/dist/src/services/skill-config-schema.d.ts +4 -36
  152. package/dist/src/services/skill-config-schema.d.ts.map +1 -1
  153. package/dist/src/sources/LocalFilesystemAdapter.d.ts +104 -10
  154. package/dist/src/sources/LocalFilesystemAdapter.d.ts.map +1 -1
  155. package/dist/src/sources/LocalFilesystemAdapter.helpers.d.ts +92 -0
  156. package/dist/src/sources/LocalFilesystemAdapter.helpers.d.ts.map +1 -0
  157. package/dist/src/sources/LocalFilesystemAdapter.helpers.js +157 -0
  158. package/dist/src/sources/LocalFilesystemAdapter.helpers.js.map +1 -0
  159. package/dist/src/sources/LocalFilesystemAdapter.js +218 -159
  160. package/dist/src/sources/LocalFilesystemAdapter.js.map +1 -1
  161. package/dist/src/sources/LocalFilesystemAdapter.scan.d.ts +78 -0
  162. package/dist/src/sources/LocalFilesystemAdapter.scan.d.ts.map +1 -0
  163. package/dist/src/sources/LocalFilesystemAdapter.scan.js +118 -0
  164. package/dist/src/sources/LocalFilesystemAdapter.scan.js.map +1 -0
  165. package/dist/src/sources/index.d.ts +1 -1
  166. package/dist/src/sources/index.d.ts.map +1 -1
  167. package/dist/src/sources/index.js.map +1 -1
  168. package/dist/src/sources/types.d.ts +28 -0
  169. package/dist/src/sources/types.d.ts.map +1 -1
  170. package/dist/src/telemetry/tracer-imports.d.ts +13 -0
  171. package/dist/src/telemetry/tracer-imports.d.ts.map +1 -0
  172. package/dist/src/telemetry/tracer-imports.js +26 -0
  173. package/dist/src/telemetry/tracer-imports.js.map +1 -0
  174. package/dist/src/telemetry/tracer.d.ts.map +1 -1
  175. package/dist/src/telemetry/tracer.js +18 -21
  176. package/dist/src/telemetry/tracer.js.map +1 -1
  177. package/dist/src/utils/rate-limit.d.ts +39 -0
  178. package/dist/src/utils/rate-limit.d.ts.map +1 -0
  179. package/dist/src/utils/rate-limit.js +48 -0
  180. package/dist/src/utils/rate-limit.js.map +1 -0
  181. package/dist/src/utils/rate-limit.test.d.ts +11 -0
  182. package/dist/src/utils/rate-limit.test.d.ts.map +1 -0
  183. package/dist/src/utils/rate-limit.test.js +86 -0
  184. package/dist/src/utils/rate-limit.test.js.map +1 -0
  185. package/dist/src/webhooks/WebhookDeadLetterRepository.d.ts +178 -0
  186. package/dist/src/webhooks/WebhookDeadLetterRepository.d.ts.map +1 -0
  187. package/dist/src/webhooks/WebhookDeadLetterRepository.js +196 -0
  188. package/dist/src/webhooks/WebhookDeadLetterRepository.js.map +1 -0
  189. package/dist/src/webhooks/WebhookQueue.d.ts +1 -0
  190. package/dist/src/webhooks/WebhookQueue.d.ts.map +1 -1
  191. package/dist/src/webhooks/WebhookQueue.js +19 -0
  192. package/dist/src/webhooks/WebhookQueue.js.map +1 -1
  193. package/dist/src/webhooks/WebhookQueue.types.d.ts +11 -0
  194. package/dist/src/webhooks/WebhookQueue.types.d.ts.map +1 -1
  195. package/dist/src/webhooks/index.d.ts +1 -0
  196. package/dist/src/webhooks/index.d.ts.map +1 -1
  197. package/dist/src/webhooks/index.js +2 -0
  198. package/dist/src/webhooks/index.js.map +1 -1
  199. package/dist/src/webhooks/webhook-schemas.d.ts +117 -1212
  200. package/dist/src/webhooks/webhook-schemas.d.ts.map +1 -1
  201. package/dist/tests/ActivationManager.test.d.ts +13 -0
  202. package/dist/tests/ActivationManager.test.d.ts.map +1 -0
  203. package/dist/tests/ActivationManager.test.js +218 -0
  204. package/dist/tests/ActivationManager.test.js.map +1 -0
  205. package/dist/tests/LocalFilesystemAdapter.coverage.test.d.ts +13 -0
  206. package/dist/tests/LocalFilesystemAdapter.coverage.test.d.ts.map +1 -0
  207. package/dist/tests/LocalFilesystemAdapter.coverage.test.js +314 -0
  208. package/dist/tests/LocalFilesystemAdapter.coverage.test.js.map +1 -0
  209. package/dist/tests/LocalFilesystemAdapter.security.test.d.ts +18 -0
  210. package/dist/tests/LocalFilesystemAdapter.security.test.d.ts.map +1 -0
  211. package/dist/tests/LocalFilesystemAdapter.security.test.js +344 -0
  212. package/dist/tests/LocalFilesystemAdapter.security.test.js.map +1 -0
  213. package/dist/tests/LocalFilesystemAdapter.test.d.ts +12 -0
  214. package/dist/tests/LocalFilesystemAdapter.test.d.ts.map +1 -0
  215. package/dist/tests/LocalFilesystemAdapter.test.js +301 -0
  216. package/dist/tests/LocalFilesystemAdapter.test.js.map +1 -0
  217. package/dist/tests/ROIDashboardService.coverage.test.d.ts +9 -0
  218. package/dist/tests/ROIDashboardService.coverage.test.d.ts.map +1 -0
  219. package/dist/tests/ROIDashboardService.coverage.test.js +118 -0
  220. package/dist/tests/ROIDashboardService.coverage.test.js.map +1 -0
  221. package/dist/tests/ROIDashboardService.test.js +87 -0
  222. package/dist/tests/ROIDashboardService.test.js.map +1 -1
  223. package/dist/tests/ScraperAdapters.gitlab-coverage.test.d.ts +14 -0
  224. package/dist/tests/ScraperAdapters.gitlab-coverage.test.d.ts.map +1 -0
  225. package/dist/tests/ScraperAdapters.gitlab-coverage.test.js +169 -0
  226. package/dist/tests/ScraperAdapters.gitlab-coverage.test.js.map +1 -0
  227. package/dist/tests/ScraperAdapters.test.d.ts +5 -1
  228. package/dist/tests/ScraperAdapters.test.d.ts.map +1 -1
  229. package/dist/tests/ScraperAdapters.test.js +6 -336
  230. package/dist/tests/ScraperAdapters.test.js.map +1 -1
  231. package/dist/tests/WebhookDeadLetterRepository.test.d.ts +2 -0
  232. package/dist/tests/WebhookDeadLetterRepository.test.d.ts.map +1 -0
  233. package/dist/tests/WebhookDeadLetterRepository.test.js +333 -0
  234. package/dist/tests/WebhookDeadLetterRepository.test.js.map +1 -0
  235. package/dist/tests/WebhookHandler.test.js +93 -1
  236. package/dist/tests/WebhookHandler.test.js.map +1 -1
  237. package/dist/tests/WebhookQueue.coverage.test.d.ts +19 -0
  238. package/dist/tests/WebhookQueue.coverage.test.d.ts.map +1 -0
  239. package/dist/tests/WebhookQueue.coverage.test.js +190 -0
  240. package/dist/tests/WebhookQueue.coverage.test.js.map +1 -0
  241. package/dist/tests/api/client.events.test.d.ts +10 -0
  242. package/dist/tests/api/client.events.test.d.ts.map +1 -0
  243. package/dist/tests/api/client.events.test.js +85 -0
  244. package/dist/tests/api/client.events.test.js.map +1 -0
  245. package/dist/tests/billing/GDPRCompliance.test.d.ts +2 -2
  246. package/dist/tests/billing/GDPRCompliance.test.js +221 -36
  247. package/dist/tests/billing/GDPRCompliance.test.js.map +1 -1
  248. package/dist/tests/github-import/blocklist.test.d.ts +15 -0
  249. package/dist/tests/github-import/blocklist.test.d.ts.map +1 -0
  250. package/dist/tests/github-import/blocklist.test.js +182 -0
  251. package/dist/tests/github-import/blocklist.test.js.map +1 -0
  252. package/dist/tests/github-import/signal-of-intent.test.d.ts +15 -0
  253. package/dist/tests/github-import/signal-of-intent.test.d.ts.map +1 -0
  254. package/dist/tests/github-import/signal-of-intent.test.js +171 -0
  255. package/dist/tests/github-import/signal-of-intent.test.js.map +1 -0
  256. package/dist/tests/security/scanner-regression-guard.test.d.ts +12 -0
  257. package/dist/tests/security/scanner-regression-guard.test.d.ts.map +1 -1
  258. package/dist/tests/security/scanner-regression-guard.test.js +15 -3
  259. package/dist/tests/security/scanner-regression-guard.test.js.map +1 -1
  260. package/dist/tests/security/scanner-wave2-fixtures.test.d.ts +12 -0
  261. package/dist/tests/security/scanner-wave2-fixtures.test.d.ts.map +1 -0
  262. package/dist/tests/security/scanner-wave2-fixtures.test.js +173 -0
  263. package/dist/tests/security/scanner-wave2-fixtures.test.js.map +1 -0
  264. package/dist/tests/security.test.js +1 -0
  265. package/dist/tests/security.test.js.map +1 -1
  266. package/dist/tests/skill-scanner/allowlist.test.d.ts +16 -0
  267. package/dist/tests/skill-scanner/allowlist.test.d.ts.map +1 -0
  268. package/dist/tests/skill-scanner/allowlist.test.js +332 -0
  269. package/dist/tests/skill-scanner/allowlist.test.js.map +1 -0
  270. package/dist/tests/telemetry.test.js +126 -0
  271. package/dist/tests/telemetry.test.js.map +1 -1
  272. package/dist/tests/webhooks/WebhookDeadLetterRepository.test.d.ts +10 -0
  273. package/dist/tests/webhooks/WebhookDeadLetterRepository.test.d.ts.map +1 -0
  274. package/dist/tests/webhooks/WebhookDeadLetterRepository.test.js +109 -0
  275. package/dist/tests/webhooks/WebhookDeadLetterRepository.test.js.map +1 -0
  276. package/package.json +8 -3
@@ -1,10 +1,3 @@
1
- /**
2
- * Skillsmith API Client
3
- * @module api/client
4
- *
5
- * SMI-1244: API client for Supabase endpoints. SMI-1258: Zod response validation.
6
- * SMI-4119: `recordEvent` batches via EventBatcher (see client.events.ts).
7
- */
8
1
  import { SkillsmithError, ErrorCodes } from '../errors.js';
9
2
  import { ApiClientError, } from './client.types.js';
10
3
  export { ApiClientError, } from './client.types.js';
@@ -15,6 +8,7 @@ import { checkApiHealth } from './client.health.js';
15
8
  import { buildClientEventBatcher } from './client.events.js';
16
9
  import { ApiCache } from './cache.js';
17
10
  import { buildResponseCache, withResponseCache } from './client.cache.js';
11
+ import { tryRefreshToken } from './client.token-refresh.js';
18
12
  // Re-export for backwards compatibility
19
13
  export { generateAnonymousId } from './utils.js';
20
14
  export { checkApiHealth } from './client.health.js';
@@ -22,13 +16,11 @@ export { ApiSearchResultSchema, SearchResponseSchema, SingleSkillResponseSchema,
22
16
  // ============================================================================
23
17
  // API Client Class
24
18
  // ============================================================================
25
- /**
26
- * Skillsmith API Client. See module docstring for SMI refs.
27
- */
28
19
  export class SkillsmithApiClient {
29
20
  baseUrl;
30
21
  anonKey;
31
22
  apiKey;
23
+ jwtToken;
32
24
  timeout;
33
25
  maxRetries;
34
26
  debug;
@@ -49,6 +41,8 @@ export class SkillsmithApiClient {
49
41
  // SMI-1949: Use production anon key as final fallback so users get authenticated access
50
42
  this.anonKey = config.anonKey || process.env.SUPABASE_ANON_KEY || PRODUCTION_ANON_KEY;
51
43
  this.apiKey = config.apiKey || process.env.SKILLSMITH_API_KEY;
44
+ // SMI-4402: JWT Bearer token from device-code flow (takes precedence over apiKey)
45
+ this.jwtToken = config.jwtToken;
52
46
  this.timeout = config.timeout ?? 30000;
53
47
  this.maxRetries = config.maxRetries ?? 3;
54
48
  this.debug = config.debug ?? false;
@@ -58,51 +52,39 @@ export class SkillsmithApiClient {
58
52
  getResponseCache() {
59
53
  return this.responseCache;
60
54
  }
61
- /**
62
- * Check if client is running in offline mode
63
- */
64
55
  isOffline() {
65
56
  return this.offlineMode;
66
57
  }
67
- /**
68
- * Check if a personal API key is configured
69
- * SMI-1953: Allows users to verify their API key is being used
70
- *
71
- * @returns True if SKILLSMITH_API_KEY env var or config.apiKey is set
72
- */
58
+ // SMI-1953: returns true if SKILLSMITH_API_KEY env var or config.apiKey is set
73
59
  hasPersonalApiKey() {
74
60
  return !!this.apiKey;
75
61
  }
76
- /**
77
- * Get the authentication mode being used
78
- * SMI-1953: Helps users understand which auth method is active
79
- *
80
- * @returns 'personal' if API key configured, 'anonymous' if using anon key, 'none' if no auth
81
- */
62
+ // SMI-1953: returns 'jwt' | 'personal' | 'anonymous' | 'none' based on active credential
82
63
  getAuthMode() {
64
+ if (this.jwtToken)
65
+ return 'jwt';
83
66
  if (this.apiKey)
84
67
  return 'personal';
85
68
  if (this.anonKey)
86
69
  return 'anonymous';
87
70
  return 'none';
88
71
  }
89
- /**
90
- * Log debug message
91
- */
72
+ /** SMI-4402: Update the JWT token (e.g. after a refresh). */
73
+ setJwtToken(token) {
74
+ this.jwtToken = token;
75
+ }
92
76
  log(message, data) {
93
77
  if (this.debug) {
94
78
  console.log(`[SkillsmithApiClient] ${message}`, data ?? '');
95
79
  }
96
80
  }
97
- /**
98
- * Make API request with retry logic and optional schema validation
99
- * SMI-1258: Added runtime validation for API responses
100
- */
81
+ // SMI-1258: runtime Zod validation; SMI-4402: refresh-on-401 with refreshAttempted guard
101
82
  async request(endpoint, options = {},
102
83
  // Use structural typing for Zod v3/v4 compatibility
103
84
  schema) {
104
85
  const url = `${this.baseUrl}${endpoint}`;
105
86
  let lastError;
87
+ let refreshAttempted = false;
106
88
  for (let attempt = 0; attempt <= this.maxRetries; attempt++) {
107
89
  try {
108
90
  this.log(`Request attempt ${attempt + 1}:`, {
@@ -112,11 +94,19 @@ export class SkillsmithApiClient {
112
94
  });
113
95
  const controller = new AbortController();
114
96
  const timeoutId = setTimeout(() => controller.abort(), this.timeout);
97
+ // SMI-4402: JWT Bearer takes precedence over X-API-Key (legacy)
98
+ const authHeader = {};
99
+ if (this.jwtToken) {
100
+ authHeader['Authorization'] = `Bearer ${this.jwtToken}`;
101
+ }
102
+ else if (this.apiKey) {
103
+ authHeader['X-API-Key'] = this.apiKey;
104
+ }
115
105
  const response = await fetch(url, {
116
106
  ...options,
117
107
  headers: {
118
108
  ...buildRequestHeaders(this.anonKey),
119
- ...(this.apiKey && { 'X-API-Key': this.apiKey }),
109
+ ...authHeader,
120
110
  ...options.headers,
121
111
  },
122
112
  signal: controller.signal,
@@ -126,6 +116,18 @@ export class SkillsmithApiClient {
126
116
  const errorBody = (await response
127
117
  .json()
128
118
  .catch(() => ({ error: 'Unknown error' })));
119
+ // SMI-4402: Refresh JWT on 401 expired_token, retry once
120
+ if (!refreshAttempted &&
121
+ response.status === 401 &&
122
+ this.jwtToken &&
123
+ (errorBody.error === 'expired_token' || errorBody.error === 'JWT expired')) {
124
+ refreshAttempted = true;
125
+ const newToken = await tryRefreshToken();
126
+ if (newToken) {
127
+ this.jwtToken = newToken;
128
+ continue;
129
+ }
130
+ }
129
131
  // Don't retry on client errors (4xx) - not retryable
130
132
  if (response.status >= 400 && response.status < 500) {
131
133
  throw new ApiClientError(errorBody.error || `API error: ${response.status}`, false, // not retryable
@@ -192,11 +194,7 @@ export class SkillsmithApiClient {
192
194
  }
193
195
  throw lastError || new Error('Request failed after retries');
194
196
  }
195
- /**
196
- * Search for skills
197
- * SMI-1258: Validates response against SearchResponseSchema
198
- * SMI-4120: Client LRU cache; opt-out via `{ cache: 'no-store' }`.
199
- */
197
+ // SMI-1258: validates via SearchResponseSchema. SMI-4120: LRU cache, opt-out via { cache: 'no-store' }
200
198
  async search(options, callOptions) {
201
199
  const params = new URLSearchParams();
202
200
  params.set('query', options.query);
@@ -213,23 +211,14 @@ export class SkillsmithApiClient {
213
211
  const endpoint = `/skills-search?${params.toString()}`;
214
212
  return withResponseCache(this.responseCache, 'search', endpoint, callOptions?.cache === 'no-store', () => this.request(endpoint, {}, SearchResponseSchema));
215
213
  }
216
- /**
217
- * Get skill by ID
218
- * SMI-1258: Validates response against SingleSkillResponseSchema
219
- * SMI-3672: Added includeContent option to fetch SKILL.md content
220
- * SMI-4120: Client LRU cache; opt-out via `{ cache: 'no-store' }`.
221
- */
214
+ // SMI-1258: SingleSkillResponseSchema. SMI-3672: includeContent. SMI-4120: LRU cache.
222
215
  async getSkill(id, options) {
223
216
  const encodedId = encodeURIComponent(id);
224
217
  const contentParam = options?.includeContent ? '&include_content=true' : '';
225
218
  const endpoint = `/skills-get?id=${encodedId}${contentParam}`;
226
219
  return withResponseCache(this.responseCache, 'getSkill', endpoint, options?.cache === 'no-store', () => this.request(endpoint, {}, SingleSkillResponseSchema));
227
220
  }
228
- /**
229
- * Get skill recommendations based on tech stack
230
- * SMI-1258: Validates response against SearchResponseSchema
231
- * SMI-4120: Client LRU cache; opt-out via `{ cache: 'no-store' }`.
232
- */
221
+ // SMI-1258: SearchResponseSchema. SMI-4120: LRU cache.
233
222
  async getRecommendations(request, callOptions) {
234
223
  const cacheKey = ApiCache.createKey('/skills-recommend', {
235
224
  stack: [...request.stack].sort(),
@@ -241,12 +230,7 @@ export class SkillsmithApiClient {
241
230
  body: JSON.stringify(request),
242
231
  }, SearchResponseSchema));
243
232
  }
244
- /**
245
- * Record telemetry event
246
- * SMI-4119: Enqueue to in-memory batcher instead of POSTing immediately.
247
- * Returns `{ ok: true }` synchronously — batcher handles failures silently,
248
- * matching the prior "fail silently" contract for telemetry.
249
- */
233
+ // SMI-4119: enqueues to in-memory batcher; returns { ok: true } synchronously
250
234
  async recordEvent(event) {
251
235
  if (this.offlineMode)
252
236
  return { ok: true };
@@ -276,17 +260,10 @@ export class SkillsmithApiClient {
276
260
  }
277
261
  return this.eventBatcher;
278
262
  }
279
- /**
280
- * Check API health status
281
- */
282
263
  async checkHealth() {
283
264
  return checkApiHealth(this.baseUrl, this.anonKey, this.offlineMode);
284
265
  }
285
- /**
286
- * Convert API result to Skill type
287
- * SMI-1577: Handle optional fields with sensible defaults
288
- * SMI-825: Added security scan fields
289
- */
266
+ // SMI-1577: optional field defaults. SMI-825: security scan fields default to not-scanned.
290
267
  static toSkill(result) {
291
268
  // Sentinel value for missing timestamps - clearly indicates unknown date
292
269
  const UNKNOWN_DATE = '1970-01-01T00:00:00.000Z';
@@ -313,9 +290,6 @@ export class SkillsmithApiClient {
313
290
  // ============================================================================
314
291
  // Factory Function
315
292
  // ============================================================================
316
- /**
317
- * Create a default API client instance
318
- */
319
293
  export function createApiClient(config) {
320
294
  return new SkillsmithApiClient(config);
321
295
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/api/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/api/client.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC1D,OAAO,EACL,cAAc,GAOf,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EACL,cAAc,GAOf,MAAM,mBAAmB,CAAA;AAE1B,gCAAgC;AAChC,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AAC9E,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAyB,MAAM,mBAAmB,CAAA;AAChG,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAI3D,wCAAwC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,EACzB,uBAAuB,EACvB,eAAe,GAChB,MAAM,cAAc,CAAA;AAErB,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,MAAM,OAAO,mBAAmB;IACtB,OAAO,CAAQ;IACf,OAAO,CAAoB;IAC3B,MAAM,CAAoB;IAC1B,QAAQ,CAAoB;IAC5B,OAAO,CAAQ;IACf,UAAU,CAAQ;IAClB,KAAK,CAAS;IACd,WAAW,CAAS;IAC5B,iEAAiE;IACzD,YAAY,GAAwB,IAAI,CAAA;IAChD,qDAAqD;IAC7C,aAAa,GAAoB,IAAI,CAAA;IAE7C,YAAY,SAA0B,EAAE;QACtC,8EAA8E;QAC9E,iFAAiF;QACjF,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,gBAAgB,CAAA;QAElD,oEAAoE;QACpE,0EAA0E;QAC1E,MAAM,mBAAmB,GAAG,MAAM,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,MAAM,CAAA;QAChG,IAAI,CAAC,WAAW,GAAG,mBAAmB,CAAA;QAEtC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,wFAAwF;QACxF,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,mBAAmB,CAAA;QACrF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAA;QAC7D,kFAAkF;QAClF,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;QAC/B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,KAAK,CAAA;QACtC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,CAAC,CAAA;QACxC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,KAAK,CAAA;QAClC,IAAI,CAAC,aAAa,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACvD,CAAC;IAED,gEAAgE;IAChE,gBAAgB;QACd,OAAO,IAAI,CAAC,aAAa,CAAA;IAC3B,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAED,+EAA+E;IAC/E,iBAAiB;QACf,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAA;IACtB,CAAC;IAED,yFAAyF;IACzF,WAAW;QACT,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAA;QAC/B,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,UAAU,CAAA;QAClC,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,WAAW,CAAA;QACpC,OAAO,MAAM,CAAA;IACf,CAAC;IAED,6DAA6D;IAC7D,WAAW,CAAC,KAAa;QACvB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;IACvB,CAAC;IAEO,GAAG,CAAC,OAAe,EAAE,IAAc;QACzC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,yBAAyB,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAA;QAC7D,CAAC;IACH,CAAC;IAED,yFAAyF;IACjF,KAAK,CAAC,OAAO,CACnB,QAAgB,EAChB,UAAuB,EAAE;IACzB,oDAAoD;IACpD,MAEC;QAED,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,EAAE,CAAA;QACxC,IAAI,SAA4B,CAAA;QAChC,IAAI,gBAAgB,GAAG,KAAK,CAAA;QAE5B,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;YAC5D,IAAI,CAAC;gBACH,IAAI,CAAC,GAAG,CAAC,mBAAmB,OAAO,GAAG,CAAC,GAAG,EAAE;oBAC1C,GAAG;oBACH,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;oBAC/B,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE;iBAC7B,CAAC,CAAA;gBAEF,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;gBACxC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;gBAEpE,gEAAgE;gBAChE,MAAM,UAAU,GAA2B,EAAE,CAAA;gBAC7C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClB,UAAU,CAAC,eAAe,CAAC,GAAG,UAAU,IAAI,CAAC,QAAQ,EAAE,CAAA;gBACzD,CAAC;qBAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBACvB,UAAU,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,MAAM,CAAA;gBACvC,CAAC;gBAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;oBAChC,GAAG,OAAO;oBACV,OAAO,EAAE;wBACP,GAAG,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC;wBACpC,GAAG,UAAU;wBACb,GAAG,OAAO,CAAC,OAAO;qBACnB;oBACD,MAAM,EAAE,UAAU,CAAC,MAAM;iBAC1B,CAAC,CAAA;gBAEF,YAAY,CAAC,SAAS,CAAC,CAAA;gBAEvB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,MAAM,SAAS,GAAG,CAAC,MAAM,QAAQ;yBAC9B,IAAI,EAAE;yBACN,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC,CAAqB,CAAA;oBAEjE,yDAAyD;oBACzD,IACE,CAAC,gBAAgB;wBACjB,QAAQ,CAAC,MAAM,KAAK,GAAG;wBACvB,IAAI,CAAC,QAAQ;wBACb,CAAC,SAAS,CAAC,KAAK,KAAK,eAAe,IAAI,SAAS,CAAC,KAAK,KAAK,aAAa,CAAC,EAC1E,CAAC;wBACD,gBAAgB,GAAG,IAAI,CAAA;wBACvB,MAAM,QAAQ,GAAG,MAAM,eAAe,EAAE,CAAA;wBACxC,IAAI,QAAQ,EAAE,CAAC;4BACb,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;4BACxB,SAAQ;wBACV,CAAC;oBACH,CAAC;oBAED,qDAAqD;oBACrD,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;wBACpD,MAAM,IAAI,cAAc,CACtB,SAAS,CAAC,KAAK,IAAI,cAAc,QAAQ,CAAC,MAAM,EAAE,EAClD,KAAK,EAAE,gBAAgB;wBACvB,QAAQ,CAAC,MAAM,CAChB,CAAA;oBACH,CAAC;oBAED,iEAAiE;oBACjE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;wBACtD,MAAM,IAAI,cAAc,CAAC,iBAAiB,QAAQ,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;oBACrF,CAAC;oBAED,yBAAyB;oBACzB,MAAM,IAAI,cAAc,CACtB,SAAS,CAAC,KAAK,IAAI,cAAc,QAAQ,CAAC,MAAM,EAAE,EAClD,KAAK,EACL,QAAQ,CAAC,MAAM,CAChB,CAAA;gBACH,CAAC;gBAED,MAAM,OAAO,GAAY,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;gBAE9C,yDAAyD;gBACzD,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;oBAC3C,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;wBAC1C,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAA;wBACrC,MAAM,YAAY,GAAG,MAAM;6BACxB,GAAG,CAAC,CAAC,KAAiB,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;6BACvE,IAAI,CAAC,IAAI,CAAC,CAAA;wBACb,IAAI,CAAC,GAAG,CAAC,6BAA6B,EAAE,MAAM,CAAC,CAAA;wBAC/C,MAAM,IAAI,eAAe,CACvB,UAAU,CAAC,wBAAwB,EACnC,yBAAyB,YAAY,EAAE,EACvC;4BACE,OAAO,EAAE;gCACP,QAAQ;gCACR,gBAAgB,EAAE,MAAM;6BACzB;yBACF,CACF,CAAA;oBACH,CAAC;oBACD,IAAI,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;wBACxC,IAAI,CAAC,GAAG,CAAC,kCAAkC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;wBACzE,OAAO,SAAS,CAAC,IAAI,CAAA;oBACvB,CAAC;oBACD,8EAA8E;oBAC9E,MAAM,IAAI,eAAe,CACvB,UAAU,CAAC,wBAAwB,EACnC,wCAAwC,EACxC,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,CAC1B,CAAA;gBACH,CAAC;gBAED,kEAAkE;gBAClE,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;gBAC3D,OAAO,OAAyB,CAAA;YAClC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,SAAS,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;gBACrE,IAAI,CAAC,GAAG,CAAC,WAAW,OAAO,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;gBAE7D,8BAA8B;gBAC9B,IAAI,SAAS,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBACpC,MAAM,SAAS,CAAA;gBACjB,CAAC;gBAED,8EAA8E;gBAC9E,IACE,SAAS,YAAY,eAAe;oBACpC,SAAS,CAAC,IAAI,KAAK,UAAU,CAAC,wBAAwB,EACtD,CAAC;oBACD,MAAM,SAAS,CAAA;gBACjB,CAAC;gBAED,8DAA8D;gBAC9D,0CAA0C;gBAC1C,IAAI,SAAS,YAAY,cAAc,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;oBAChE,MAAM,SAAS,CAAA;gBACjB,CAAC;gBAED,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;oBAC9B,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;oBACvC,IAAI,CAAC,GAAG,CAAC,eAAe,KAAK,OAAO,CAAC,CAAA;oBACrC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;gBAC5D,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,SAAS,IAAI,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;IAC9D,CAAC;IAED,uGAAuG;IACvG,KAAK,CAAC,MAAM,CACV,OAAsB,EACtB,WAA8B;QAE9B,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAA;QACpC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;QAElC,IAAI,OAAO,CAAC,KAAK;YAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;QAC7D,IAAI,OAAO,CAAC,MAAM;YAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;QAChE,IAAI,OAAO,CAAC,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;QAClE,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS;YACvC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAA;QAC1D,IAAI,OAAO,CAAC,QAAQ;YAAE,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;QAE9D,MAAM,QAAQ,GAAG,kBAAkB,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAA;QACtD,OAAO,iBAAiB,CACtB,IAAI,CAAC,aAAa,EAClB,QAAQ,EACR,QAAQ,EACR,WAAW,EAAE,KAAK,KAAK,UAAU,EACjC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAoB,QAAQ,EAAE,EAAE,EAAE,oBAAoB,CAAC,CAC1E,CAAA;IACH,CAAC;IAED,sFAAsF;IACtF,KAAK,CAAC,QAAQ,CACZ,EAAU,EACV,OAAyD;QAEzD,MAAM,SAAS,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAA;QACxC,MAAM,YAAY,GAAG,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,CAAA;QAC3E,MAAM,QAAQ,GAAG,kBAAkB,SAAS,GAAG,YAAY,EAAE,CAAA;QAC7D,OAAO,iBAAiB,CACtB,IAAI,CAAC,aAAa,EAClB,UAAU,EACV,QAAQ,EACR,OAAO,EAAE,KAAK,KAAK,UAAU,EAC7B,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAkB,QAAQ,EAAE,EAAE,EAAE,yBAAyB,CAAC,CAC7E,CAAA;IACH,CAAC;IAED,uDAAuD;IACvD,KAAK,CAAC,kBAAkB,CACtB,OAA8B,EAC9B,WAA8B;QAE9B,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,mBAAmB,EAAE;YACvD,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE;YAChC,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,IAAI;YAC1C,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,IAAI;SAC7B,CAAC,CAAA;QACF,OAAO,iBAAiB,CACtB,IAAI,CAAC,aAAa,EAClB,WAAW,EACX,QAAQ,EACR,WAAW,EAAE,KAAK,KAAK,UAAU,EACjC,GAAG,EAAE,CACH,IAAI,CAAC,OAAO,CACV,mBAAmB,EACnB;YACE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;SAC9B,EACD,oBAAoB,CACrB,CACJ,CAAA;IACH,CAAC;IAED,8EAA8E;IAC9E,KAAK,CAAC,WAAW,CAAC,KAAqB;QACrC,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;QACzC,IAAI,CAAC,kBAAkB,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACxC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;IACrB,CAAC;IAED,mEAAmE;IACnE,KAAK,CAAC,WAAW;QACf,IAAI,IAAI,CAAC,YAAY;YAAE,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAA;IACxD,CAAC;IAED,uEAAuE;IACvE,mBAAmB;QACjB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAA;YAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;QAC1B,CAAC;IACH,CAAC;IAEO,kBAAkB;QACxB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,GAAG,uBAAuB,CAAC,GAAG,EAAE,CAAC,CAAC;gBACjD,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAC,CAAA;QACL,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;IAED,KAAK,CAAC,WAAW;QAKf,OAAO,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;IACrE,CAAC;IAED,2FAA2F;IAC3F,MAAM,CAAC,OAAO,CAAC,MAAuB;QACpC,yEAAyE;QACzE,MAAM,YAAY,GAAG,0BAA0B,CAAA;QAC/C,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI;YAChC,YAAY,EAAE,MAAM,CAAC,aAAa;YAClC,SAAS,EAAE,MAAM,CAAC,UAAU;YAC5B,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;YACvB,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,KAAK;YACxC,yEAAyE;YACzE,SAAS,EAAE,IAAI;YACf,qBAAqB,EAAE,CAAC;YACxB,iBAAiB,EAAE,IAAI;YACvB,cAAc,EAAE,IAAI;YACpB,SAAS,EAAE,MAAM,CAAC,UAAU,IAAI,YAAY;YAC5C,SAAS,EAAE,MAAM,CAAC,UAAU,IAAI,YAAY;SAC7C,CAAA;IACH,CAAC;CACF;AAED,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,MAAM,UAAU,eAAe,CAAC,MAAwB;IACtD,OAAO,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAA;AACxC,CAAC;AAED,eAAe,mBAAmB,CAAA"}
@@ -0,0 +1,3 @@
1
+ export declare function tryRefreshToken(): Promise<string | null>;
2
+ export declare function loadStoredAccessToken(): Promise<string | null>;
3
+ //# sourceMappingURL=client.token-refresh.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.token-refresh.d.ts","sourceRoot":"","sources":["../../../src/api/client.token-refresh.ts"],"names":[],"mappings":"AAOA,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAS9D;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAIpE"}
@@ -0,0 +1,19 @@
1
+ // SMI-4402: JWT refresh helpers extracted from client.ts to stay under 500-line limit.
2
+ import { loadCredentials, refreshAccessToken, storeCredentials, } from '../config/token-credentials.js';
3
+ export async function tryRefreshToken() {
4
+ const creds = await loadCredentials();
5
+ if (!creds)
6
+ return null;
7
+ const refreshed = await refreshAccessToken(creds.refreshToken);
8
+ if (!refreshed)
9
+ return null;
10
+ await storeCredentials(refreshed);
11
+ return refreshed.accessToken;
12
+ }
13
+ export async function loadStoredAccessToken() {
14
+ const creds = await loadCredentials();
15
+ if (!creds)
16
+ return null;
17
+ return creds.accessToken;
18
+ }
19
+ //# sourceMappingURL=client.token-refresh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.token-refresh.js","sourceRoot":"","sources":["../../../src/api/client.token-refresh.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,gCAAgC,CAAA;AAEvC,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,MAAM,KAAK,GAAG,MAAM,eAAe,EAAE,CAAA;IACrC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IAEvB,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IAC9D,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAA;IAE3B,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAA;IACjC,OAAO,SAAS,CAAC,WAAW,CAAA;AAC9B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB;IACzC,MAAM,KAAK,GAAG,MAAM,eAAe,EAAE,CAAA;IACrC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IACvB,OAAO,KAAK,CAAC,WAAW,CAAA;AAC1B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=client.token-refresh.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.token-refresh.test.d.ts","sourceRoot":"","sources":["../../../src/api/client.token-refresh.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,73 @@
1
+ // SMI-4402 TR-1..5: tryRefreshToken (success/null-creds/null-refresh) + loadStoredAccessToken (success/null)
2
+ import { describe, it, expect, vi, beforeEach } from 'vitest';
3
+ vi.mock('../config/token-credentials.js', () => ({
4
+ loadCredentials: vi.fn(),
5
+ refreshAccessToken: vi.fn(),
6
+ storeCredentials: vi.fn(),
7
+ }));
8
+ describe('client.token-refresh', () => {
9
+ beforeEach(() => {
10
+ vi.clearAllMocks();
11
+ });
12
+ it('TR-1: tryRefreshToken returns new accessToken on success', async () => {
13
+ const { loadCredentials, refreshAccessToken, storeCredentials } = await import('../config/token-credentials.js');
14
+ const { tryRefreshToken } = await import('./client.token-refresh.js');
15
+ vi.mocked(loadCredentials).mockResolvedValue({
16
+ accessToken: 'old_at',
17
+ refreshToken: 'old_rt',
18
+ expiresAt: Date.now() - 1000,
19
+ version: 2,
20
+ });
21
+ vi.mocked(refreshAccessToken).mockResolvedValue({
22
+ accessToken: 'new_at',
23
+ refreshToken: 'new_rt',
24
+ expiresAt: Date.now() + 3600000,
25
+ version: 2,
26
+ });
27
+ vi.mocked(storeCredentials).mockResolvedValue(undefined);
28
+ const result = await tryRefreshToken();
29
+ expect(result).toBe('new_at');
30
+ expect(refreshAccessToken).toHaveBeenCalledWith('old_rt');
31
+ expect(storeCredentials).toHaveBeenCalledWith(expect.objectContaining({ accessToken: 'new_at', version: 2 }));
32
+ });
33
+ it('TR-2: tryRefreshToken returns null when no credentials stored', async () => {
34
+ const { loadCredentials } = await import('../config/token-credentials.js');
35
+ const { tryRefreshToken } = await import('./client.token-refresh.js');
36
+ vi.mocked(loadCredentials).mockResolvedValue(null);
37
+ const result = await tryRefreshToken();
38
+ expect(result).toBeNull();
39
+ });
40
+ it('TR-3: tryRefreshToken returns null when refreshAccessToken fails', async () => {
41
+ const { loadCredentials, refreshAccessToken } = await import('../config/token-credentials.js');
42
+ const { tryRefreshToken } = await import('./client.token-refresh.js');
43
+ vi.mocked(loadCredentials).mockResolvedValue({
44
+ accessToken: 'old_at',
45
+ refreshToken: 'expired_rt',
46
+ expiresAt: Date.now() - 1000,
47
+ version: 2,
48
+ });
49
+ vi.mocked(refreshAccessToken).mockResolvedValue(null);
50
+ const result = await tryRefreshToken();
51
+ expect(result).toBeNull();
52
+ });
53
+ it('TR-4: loadStoredAccessToken returns accessToken when credentials exist', async () => {
54
+ const { loadCredentials } = await import('../config/token-credentials.js');
55
+ const { loadStoredAccessToken } = await import('./client.token-refresh.js');
56
+ vi.mocked(loadCredentials).mockResolvedValue({
57
+ accessToken: 'stored_at',
58
+ refreshToken: 'stored_rt',
59
+ expiresAt: Date.now() + 3600000,
60
+ version: 2,
61
+ });
62
+ const result = await loadStoredAccessToken();
63
+ expect(result).toBe('stored_at');
64
+ });
65
+ it('TR-5: loadStoredAccessToken returns null when no credentials stored', async () => {
66
+ const { loadCredentials } = await import('../config/token-credentials.js');
67
+ const { loadStoredAccessToken } = await import('./client.token-refresh.js');
68
+ vi.mocked(loadCredentials).mockResolvedValue(null);
69
+ const result = await loadStoredAccessToken();
70
+ expect(result).toBeNull();
71
+ });
72
+ });
73
+ //# sourceMappingURL=client.token-refresh.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.token-refresh.test.js","sourceRoot":"","sources":["../../../src/api/client.token-refresh.test.ts"],"names":[],"mappings":"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"}
@@ -91,6 +91,8 @@ export interface ApiClientConfig {
91
91
  anonKey?: string;
92
92
  /** API key for authenticated requests (X-API-Key header) */
93
93
  apiKey?: string;
94
+ /** SMI-4402: JWT Bearer token from device-code flow (takes precedence over apiKey) */
95
+ jwtToken?: string;
94
96
  /** Request timeout in ms (default 30000) */
95
97
  timeout?: number;
96
98
  /** Max retry attempts (default 3) */
@@ -1 +1 @@
1
- {"version":3,"file":"client.types.d.ts","sourceRoot":"","sources":["../../../src/api/client.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.types.d.ts","sourceRoot":"","sources":["../../../src/api/client.types.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
  * SMI-1245: API response caching
7
7
  * SMI-1300: API types matching OpenAPI spec
8
8
  */
9
- export { SkillsmithApiClient, createApiClient, generateAnonymousId, type ApiClientConfig, type ApiResponse, type ApiErrorResponse, type ApiSearchResult, type RecommendationRequest, type TelemetryEvent, } from './client.js';
9
+ export { SkillsmithApiClient, createApiClient, generateAnonymousId, ApiClientError, type ApiClientConfig, type ApiResponse, type ApiErrorResponse, type ApiSearchResult, type RecommendationRequest, type TelemetryEvent, } from './client.js';
10
10
  export { EventBatcher, createEventBatcher, type EventBatcherOptions, type BatchFlushFn, } from './event-batcher.js';
11
11
  export { ApiCache, createCache, getGlobalCache, DEFAULT_TTL, type CacheConfig, type CacheStats, } from './cache.js';
12
12
  export type { ApiTrustTier, ApiCategory, ApiProjectType, ApiSkill, ApiSearchResult as OpenApiSearchResult, RecommendedSkill, SearchParams, SearchResponse, SearchResponseMeta, RecommendParams, RecommendResponse, RecommendResponseMeta, SkillResponse, HealthStatus, TelemetryEventType, TelemetryMetadata, TelemetryEventPayload, TelemetryResponse, ApiErrorResponse as OpenApiErrorResponse, RateLimitInfo, ApiClientOptions, ApiResponse as OpenApiResponse, } from './types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,GACpB,MAAM,aAAa,CAAA;AAGpB,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,KAAK,YAAY,GAClB,MAAM,oBAAoB,CAAA;AAM3B,OAAO,EACL,QAAQ,EACR,WAAW,EACX,cAAc,EACd,WAAW,EACX,KAAK,WAAW,EAChB,KAAK,UAAU,GAChB,MAAM,YAAY,CAAA;AAMnB,YAAY,EAEV,YAAY,EACZ,WAAW,EACX,cAAc,EAEd,QAAQ,EACR,eAAe,IAAI,mBAAmB,EACtC,gBAAgB,EAEhB,YAAY,EACZ,cAAc,EACd,kBAAkB,EAElB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EAErB,aAAa,EAEb,YAAY,EAEZ,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EAEjB,gBAAgB,IAAI,oBAAoB,EAExC,aAAa,EAEb,gBAAgB,EAEhB,WAAW,IAAI,eAAe,GAC/B,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,GACpB,MAAM,aAAa,CAAA;AAGpB,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,KAAK,YAAY,GAClB,MAAM,oBAAoB,CAAA;AAM3B,OAAO,EACL,QAAQ,EACR,WAAW,EACX,cAAc,EACd,WAAW,EACX,KAAK,WAAW,EAChB,KAAK,UAAU,GAChB,MAAM,YAAY,CAAA;AAMnB,YAAY,EAEV,YAAY,EACZ,WAAW,EACX,cAAc,EAEd,QAAQ,EACR,eAAe,IAAI,mBAAmB,EACtC,gBAAgB,EAEhB,YAAY,EACZ,cAAc,EACd,kBAAkB,EAElB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EAErB,aAAa,EAEb,YAAY,EAEZ,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EAEjB,gBAAgB,IAAI,oBAAoB,EAExC,aAAa,EAEb,gBAAgB,EAEhB,WAAW,IAAI,eAAe,GAC/B,MAAM,YAAY,CAAA"}
@@ -9,7 +9,7 @@
9
9
  // ============================================================================
10
10
  // API Client
11
11
  // ============================================================================
12
- export { SkillsmithApiClient, createApiClient, generateAnonymousId, } from './client.js';
12
+ export { SkillsmithApiClient, createApiClient, generateAnonymousId, ApiClientError, } from './client.js';
13
13
  // SMI-4119: Event batching
14
14
  export { EventBatcher, createEventBatcher, } from './event-batcher.js';
15
15
  // ============================================================================
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AAE/E,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,mBAAmB,GAOpB,MAAM,aAAa,CAAA;AAEpB,2BAA2B;AAC3B,OAAO,EACL,YAAY,EACZ,kBAAkB,GAGnB,MAAM,oBAAoB,CAAA;AAE3B,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E,OAAO,EACL,QAAQ,EACR,WAAW,EACX,cAAc,EACd,WAAW,GAGZ,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AAE/E,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,cAAc,GAOf,MAAM,aAAa,CAAA;AAEpB,2BAA2B;AAC3B,OAAO,EACL,YAAY,EACZ,kBAAkB,GAGnB,MAAM,oBAAoB,CAAA;AAE3B,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E,OAAO,EACL,QAAQ,EACR,WAAW,EACX,cAAc,EACd,WAAW,GAGZ,MAAM,YAAY,CAAA"}