@skillsmith/core 0.4.0 → 0.4.2

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 (612) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/src/analysis/CodebaseAnalyzer.d.ts.map +1 -1
  3. package/dist/src/analysis/CodebaseAnalyzer.js.map +1 -1
  4. package/dist/src/analysis/adapters/__tests__/python.test.js.map +1 -1
  5. package/dist/src/analysis/adapters/java-parsers.d.ts +64 -0
  6. package/dist/src/analysis/adapters/java-parsers.d.ts.map +1 -0
  7. package/dist/src/analysis/adapters/java-parsers.js +114 -0
  8. package/dist/src/analysis/adapters/java-parsers.js.map +1 -0
  9. package/dist/src/analysis/adapters/java.d.ts +1 -51
  10. package/dist/src/analysis/adapters/java.d.ts.map +1 -1
  11. package/dist/src/analysis/adapters/java.js +94 -205
  12. package/dist/src/analysis/adapters/java.js.map +1 -1
  13. package/dist/src/analysis/adapters/python-frameworks.d.ts +21 -0
  14. package/dist/src/analysis/adapters/python-frameworks.d.ts.map +1 -0
  15. package/dist/src/analysis/adapters/python-frameworks.js +86 -0
  16. package/dist/src/analysis/adapters/python-frameworks.js.map +1 -0
  17. package/dist/src/analysis/adapters/python.d.ts +0 -50
  18. package/dist/src/analysis/adapters/python.d.ts.map +1 -1
  19. package/dist/src/analysis/adapters/python.js +5 -120
  20. package/dist/src/analysis/adapters/python.js.map +1 -1
  21. package/dist/src/analysis/adapters/rust-parsers.d.ts +33 -0
  22. package/dist/src/analysis/adapters/rust-parsers.d.ts.map +1 -0
  23. package/dist/src/analysis/adapters/rust-parsers.js +94 -0
  24. package/dist/src/analysis/adapters/rust-parsers.js.map +1 -0
  25. package/dist/src/analysis/adapters/rust.d.ts +1 -43
  26. package/dist/src/analysis/adapters/rust.d.ts.map +1 -1
  27. package/dist/src/analysis/adapters/rust.js +74 -173
  28. package/dist/src/analysis/adapters/rust.js.map +1 -1
  29. package/dist/src/analysis/language-detector.d.ts +4 -20
  30. package/dist/src/analysis/language-detector.d.ts.map +1 -1
  31. package/dist/src/analysis/language-detector.js +2 -399
  32. package/dist/src/analysis/language-detector.js.map +1 -1
  33. package/dist/src/analysis/language-detector.patterns.d.ts +17 -0
  34. package/dist/src/analysis/language-detector.patterns.d.ts.map +1 -0
  35. package/dist/src/analysis/language-detector.patterns.js +413 -0
  36. package/dist/src/analysis/language-detector.patterns.js.map +1 -0
  37. package/dist/src/analysis/language-detector.types.d.ts +48 -0
  38. package/dist/src/analysis/language-detector.types.d.ts.map +1 -0
  39. package/dist/src/analysis/language-detector.types.js +6 -0
  40. package/dist/src/analysis/language-detector.types.js.map +1 -0
  41. package/dist/src/analysis/metrics.d.ts +22 -219
  42. package/dist/src/analysis/metrics.d.ts.map +1 -1
  43. package/dist/src/analysis/metrics.implementations.d.ts +39 -0
  44. package/dist/src/analysis/metrics.implementations.d.ts.map +1 -0
  45. package/dist/src/analysis/metrics.implementations.js +114 -0
  46. package/dist/src/analysis/metrics.implementations.js.map +1 -0
  47. package/dist/src/analysis/metrics.js +21 -224
  48. package/dist/src/analysis/metrics.js.map +1 -1
  49. package/dist/src/analysis/metrics.types.d.ts +79 -0
  50. package/dist/src/analysis/metrics.types.d.ts.map +1 -0
  51. package/dist/src/analysis/metrics.types.js +6 -0
  52. package/dist/src/analysis/metrics.types.js.map +1 -0
  53. package/dist/src/analysis/worker-pool.d.ts +25 -52
  54. package/dist/src/analysis/worker-pool.d.ts.map +1 -1
  55. package/dist/src/analysis/worker-pool.js +29 -181
  56. package/dist/src/analysis/worker-pool.js.map +1 -1
  57. package/dist/src/analysis/worker-types.d.ts +64 -0
  58. package/dist/src/analysis/worker-types.d.ts.map +1 -0
  59. package/dist/src/analysis/worker-types.js +11 -0
  60. package/dist/src/analysis/worker-types.js.map +1 -0
  61. package/dist/src/analysis/worker-utils.d.ts +49 -0
  62. package/dist/src/analysis/worker-utils.d.ts.map +1 -0
  63. package/dist/src/analysis/worker-utils.js +206 -0
  64. package/dist/src/analysis/worker-utils.js.map +1 -0
  65. package/dist/src/analytics/AnalyticsRepository.d.ts +1 -5
  66. package/dist/src/analytics/AnalyticsRepository.d.ts.map +1 -1
  67. package/dist/src/analytics/AnalyticsRepository.helpers.d.ts +28 -0
  68. package/dist/src/analytics/AnalyticsRepository.helpers.d.ts.map +1 -0
  69. package/dist/src/analytics/AnalyticsRepository.helpers.js +90 -0
  70. package/dist/src/analytics/AnalyticsRepository.helpers.js.map +1 -0
  71. package/dist/src/analytics/AnalyticsRepository.js +16 -129
  72. package/dist/src/analytics/AnalyticsRepository.js.map +1 -1
  73. package/dist/src/analytics/AnalyticsRepository.types.d.ts +82 -0
  74. package/dist/src/analytics/AnalyticsRepository.types.d.ts.map +1 -0
  75. package/dist/src/analytics/AnalyticsRepository.types.js +8 -0
  76. package/dist/src/analytics/AnalyticsRepository.types.js.map +1 -0
  77. package/dist/src/analytics/ROIDashboardService.js +4 -2
  78. package/dist/src/analytics/ROIDashboardService.js.map +1 -1
  79. package/dist/src/api/cache.d.ts.map +1 -1
  80. package/dist/src/api/cache.js.map +1 -1
  81. package/dist/src/api/client.d.ts +6 -121
  82. package/dist/src/api/client.d.ts.map +1 -1
  83. package/dist/src/api/client.js +29 -129
  84. package/dist/src/api/client.js.map +1 -1
  85. package/dist/src/api/schemas.d.ts +122 -0
  86. package/dist/src/api/schemas.d.ts.map +1 -0
  87. package/dist/src/api/schemas.js +71 -0
  88. package/dist/src/api/schemas.js.map +1 -0
  89. package/dist/src/api/types.d.ts +1 -1
  90. package/dist/src/api/types.d.ts.map +1 -1
  91. package/dist/src/api/utils.d.ts +35 -0
  92. package/dist/src/api/utils.d.ts.map +1 -0
  93. package/dist/src/api/utils.js +86 -0
  94. package/dist/src/api/utils.js.map +1 -0
  95. package/dist/src/benchmarks/BenchmarkRunner.d.ts.map +1 -1
  96. package/dist/src/benchmarks/BenchmarkRunner.js +1 -1
  97. package/dist/src/benchmarks/BenchmarkRunner.js.map +1 -1
  98. package/dist/src/billing/BillingService.d.ts +15 -53
  99. package/dist/src/billing/BillingService.d.ts.map +1 -1
  100. package/dist/src/billing/BillingService.helpers.d.ts +15 -0
  101. package/dist/src/billing/BillingService.helpers.d.ts.map +1 -0
  102. package/dist/src/billing/BillingService.helpers.js +45 -0
  103. package/dist/src/billing/BillingService.helpers.js.map +1 -0
  104. package/dist/src/billing/BillingService.js +49 -179
  105. package/dist/src/billing/BillingService.js.map +1 -1
  106. package/dist/src/billing/BillingService.types.d.ts +52 -0
  107. package/dist/src/billing/BillingService.types.d.ts.map +1 -0
  108. package/dist/src/billing/BillingService.types.js +6 -0
  109. package/dist/src/billing/BillingService.types.js.map +1 -0
  110. package/dist/src/billing/GDPRComplianceService.d.ts +2 -97
  111. package/dist/src/billing/GDPRComplianceService.d.ts.map +1 -1
  112. package/dist/src/billing/GDPRComplianceService.js.map +1 -1
  113. package/dist/src/billing/StripeClient.d.ts +6 -64
  114. package/dist/src/billing/StripeClient.d.ts.map +1 -1
  115. package/dist/src/billing/StripeClient.js +14 -71
  116. package/dist/src/billing/StripeClient.js.map +1 -1
  117. package/dist/src/billing/StripeReconciliationJob.d.ts +2 -47
  118. package/dist/src/billing/StripeReconciliationJob.d.ts.map +1 -1
  119. package/dist/src/billing/StripeReconciliationJob.js +1 -41
  120. package/dist/src/billing/StripeReconciliationJob.js.map +1 -1
  121. package/dist/src/billing/StripeWebhookHandler.d.ts +3 -46
  122. package/dist/src/billing/StripeWebhookHandler.d.ts.map +1 -1
  123. package/dist/src/billing/StripeWebhookHandler.js +14 -261
  124. package/dist/src/billing/StripeWebhookHandler.js.map +1 -1
  125. package/dist/src/billing/gdpr-types.d.ts +103 -0
  126. package/dist/src/billing/gdpr-types.d.ts.map +1 -0
  127. package/dist/src/billing/gdpr-types.js +7 -0
  128. package/dist/src/billing/gdpr-types.js.map +1 -0
  129. package/dist/src/billing/reconciliation-helpers.d.ts +16 -0
  130. package/dist/src/billing/reconciliation-helpers.d.ts.map +1 -0
  131. package/dist/src/billing/reconciliation-helpers.js +53 -0
  132. package/dist/src/billing/reconciliation-helpers.js.map +1 -0
  133. package/dist/src/billing/reconciliation-types.d.ts +71 -0
  134. package/dist/src/billing/reconciliation-types.d.ts.map +1 -0
  135. package/dist/src/billing/reconciliation-types.js +7 -0
  136. package/dist/src/billing/reconciliation-types.js.map +1 -0
  137. package/dist/src/billing/stripe-client-types.d.ts +45 -0
  138. package/dist/src/billing/stripe-client-types.d.ts.map +1 -0
  139. package/dist/src/billing/stripe-client-types.js +7 -0
  140. package/dist/src/billing/stripe-client-types.js.map +1 -0
  141. package/dist/src/billing/stripe-helpers.d.ts +17 -0
  142. package/dist/src/billing/stripe-helpers.d.ts.map +1 -0
  143. package/dist/src/billing/stripe-helpers.js +50 -0
  144. package/dist/src/billing/stripe-helpers.js.map +1 -0
  145. package/dist/src/billing/webhook-handlers.d.ts +56 -0
  146. package/dist/src/billing/webhook-handlers.d.ts.map +1 -0
  147. package/dist/src/billing/webhook-handlers.js +303 -0
  148. package/dist/src/billing/webhook-handlers.js.map +1 -0
  149. package/dist/src/billing/webhook-types.d.ts +42 -0
  150. package/dist/src/billing/webhook-types.d.ts.map +1 -0
  151. package/dist/src/billing/webhook-types.js +7 -0
  152. package/dist/src/billing/webhook-types.js.map +1 -0
  153. package/dist/src/config/index.d.ts +118 -0
  154. package/dist/src/config/index.d.ts.map +1 -0
  155. package/dist/src/config/index.js +172 -0
  156. package/dist/src/config/index.js.map +1 -0
  157. package/dist/src/db/migration-types.d.ts +101 -0
  158. package/dist/src/db/migration-types.d.ts.map +1 -0
  159. package/dist/src/db/migration-types.js +6 -0
  160. package/dist/src/db/migration-types.js.map +1 -0
  161. package/dist/src/db/migration.d.ts +32 -0
  162. package/dist/src/db/migration.d.ts.map +1 -0
  163. package/dist/src/db/migration.js +239 -0
  164. package/dist/src/db/migration.js.map +1 -0
  165. package/dist/src/db/schema.d.ts +2 -2
  166. package/dist/src/db/schema.d.ts.map +1 -1
  167. package/dist/src/db/schema.js +23 -1
  168. package/dist/src/db/schema.js.map +1 -1
  169. package/dist/src/embeddings/embedding-types.d.ts +44 -0
  170. package/dist/src/embeddings/embedding-types.d.ts.map +1 -0
  171. package/dist/src/embeddings/embedding-types.js +6 -0
  172. package/dist/src/embeddings/embedding-types.js.map +1 -0
  173. package/dist/src/embeddings/embedding-utils.d.ts +42 -0
  174. package/dist/src/embeddings/embedding-utils.d.ts.map +1 -0
  175. package/dist/src/embeddings/embedding-utils.js +121 -0
  176. package/dist/src/embeddings/embedding-utils.js.map +1 -0
  177. package/dist/src/embeddings/hnsw-store.d.ts +8 -518
  178. package/dist/src/embeddings/hnsw-store.d.ts.map +1 -1
  179. package/dist/src/embeddings/hnsw-store.helpers.d.ts +83 -0
  180. package/dist/src/embeddings/hnsw-store.helpers.d.ts.map +1 -0
  181. package/dist/src/embeddings/hnsw-store.helpers.js +147 -0
  182. package/dist/src/embeddings/hnsw-store.helpers.js.map +1 -0
  183. package/dist/src/embeddings/hnsw-store.js +66 -517
  184. package/dist/src/embeddings/hnsw-store.js.map +1 -1
  185. package/dist/src/embeddings/hnsw-store.types.d.ts +154 -0
  186. package/dist/src/embeddings/hnsw-store.types.d.ts.map +1 -0
  187. package/dist/src/embeddings/hnsw-store.types.js +26 -0
  188. package/dist/src/embeddings/hnsw-store.types.js.map +1 -0
  189. package/dist/src/embeddings/index.d.ts +36 -112
  190. package/dist/src/embeddings/index.d.ts.map +1 -1
  191. package/dist/src/embeddings/index.js +37 -210
  192. package/dist/src/embeddings/index.js.map +1 -1
  193. package/dist/src/errors.d.ts.map +1 -1
  194. package/dist/src/errors.js +1 -1
  195. package/dist/src/errors.js.map +1 -1
  196. package/dist/src/exports/repositories.d.ts +18 -0
  197. package/dist/src/exports/repositories.d.ts.map +1 -0
  198. package/dist/src/exports/repositories.js +30 -0
  199. package/dist/src/exports/repositories.js.map +1 -0
  200. package/dist/src/exports/services.d.ts +30 -0
  201. package/dist/src/exports/services.d.ts.map +1 -0
  202. package/dist/src/exports/services.js +70 -0
  203. package/dist/src/exports/services.js.map +1 -0
  204. package/dist/src/exports/types.d.ts +21 -0
  205. package/dist/src/exports/types.d.ts.map +1 -0
  206. package/dist/src/exports/types.js +12 -0
  207. package/dist/src/exports/types.js.map +1 -0
  208. package/dist/src/index.d.ts +10 -47
  209. package/dist/src/index.d.ts.map +1 -1
  210. package/dist/src/index.js +31 -48
  211. package/dist/src/index.js.map +1 -1
  212. package/dist/src/indexer/GitHubIndexer.d.ts.map +1 -1
  213. package/dist/src/indexer/GitHubIndexer.js +17 -4
  214. package/dist/src/indexer/GitHubIndexer.js.map +1 -1
  215. package/dist/src/indexer/SwarmIndexer.d.ts.map +1 -1
  216. package/dist/src/indexer/SwarmIndexer.js +1 -1
  217. package/dist/src/indexer/SwarmIndexer.js.map +1 -1
  218. package/dist/src/learning/PatternStore.d.ts +6 -426
  219. package/dist/src/learning/PatternStore.d.ts.map +1 -1
  220. package/dist/src/learning/PatternStore.helpers.d.ts +88 -0
  221. package/dist/src/learning/PatternStore.helpers.d.ts.map +1 -0
  222. package/dist/src/learning/PatternStore.helpers.js +286 -0
  223. package/dist/src/learning/PatternStore.helpers.js.map +1 -0
  224. package/dist/src/learning/PatternStore.js +52 -598
  225. package/dist/src/learning/PatternStore.js.map +1 -1
  226. package/dist/src/learning/PatternStore.queries.d.ts +83 -0
  227. package/dist/src/learning/PatternStore.queries.d.ts.map +1 -0
  228. package/dist/src/learning/PatternStore.queries.js +189 -0
  229. package/dist/src/learning/PatternStore.queries.js.map +1 -0
  230. package/dist/src/learning/PatternStore.types.d.ts +308 -0
  231. package/dist/src/learning/PatternStore.types.d.ts.map +1 -0
  232. package/dist/src/learning/PatternStore.types.js +44 -0
  233. package/dist/src/learning/PatternStore.types.js.map +1 -0
  234. package/dist/src/learning/ReasoningBankIntegration.d.ts +5 -345
  235. package/dist/src/learning/ReasoningBankIntegration.d.ts.map +1 -1
  236. package/dist/src/learning/ReasoningBankIntegration.helpers.d.ts +49 -0
  237. package/dist/src/learning/ReasoningBankIntegration.helpers.d.ts.map +1 -0
  238. package/dist/src/learning/ReasoningBankIntegration.helpers.js +180 -0
  239. package/dist/src/learning/ReasoningBankIntegration.helpers.js.map +1 -0
  240. package/dist/src/learning/ReasoningBankIntegration.js +21 -390
  241. package/dist/src/learning/ReasoningBankIntegration.js.map +1 -1
  242. package/dist/src/learning/ReasoningBankIntegration.types.d.ts +167 -0
  243. package/dist/src/learning/ReasoningBankIntegration.types.d.ts.map +1 -0
  244. package/dist/src/learning/ReasoningBankIntegration.types.js +51 -0
  245. package/dist/src/learning/ReasoningBankIntegration.types.js.map +1 -0
  246. package/dist/src/learning/interfaces.d.ts.map +1 -1
  247. package/dist/src/pipeline/DailyIndexPipeline.d.ts +4 -176
  248. package/dist/src/pipeline/DailyIndexPipeline.d.ts.map +1 -1
  249. package/dist/src/pipeline/DailyIndexPipeline.js +9 -83
  250. package/dist/src/pipeline/DailyIndexPipeline.js.map +1 -1
  251. package/dist/src/pipeline/pipeline-types.d.ts +132 -0
  252. package/dist/src/pipeline/pipeline-types.d.ts.map +1 -0
  253. package/dist/src/pipeline/pipeline-types.js +6 -0
  254. package/dist/src/pipeline/pipeline-types.js.map +1 -0
  255. package/dist/src/repositories/IndexerRepository.d.ts +1 -0
  256. package/dist/src/repositories/IndexerRepository.d.ts.map +1 -1
  257. package/dist/src/repositories/IndexerRepository.js +6 -0
  258. package/dist/src/repositories/IndexerRepository.js.map +1 -1
  259. package/dist/src/repositories/SkillRepository.d.ts.map +1 -1
  260. package/dist/src/repositories/SkillRepository.js +20 -5
  261. package/dist/src/repositories/SkillRepository.js.map +1 -1
  262. package/dist/src/routing/SONARouter.d.ts +3 -101
  263. package/dist/src/routing/SONARouter.d.ts.map +1 -1
  264. package/dist/src/routing/SONARouter.helpers.d.ts +112 -0
  265. package/dist/src/routing/SONARouter.helpers.d.ts.map +1 -0
  266. package/dist/src/routing/SONARouter.helpers.js +184 -0
  267. package/dist/src/routing/SONARouter.helpers.js.map +1 -0
  268. package/dist/src/routing/SONARouter.js +16 -318
  269. package/dist/src/routing/SONARouter.js.map +1 -1
  270. package/dist/src/routing/expert-types.d.ts +109 -0
  271. package/dist/src/routing/expert-types.d.ts.map +1 -0
  272. package/dist/src/routing/expert-types.js +162 -0
  273. package/dist/src/routing/expert-types.js.map +1 -0
  274. package/dist/src/routing/request-types.d.ts +113 -0
  275. package/dist/src/routing/request-types.d.ts.map +1 -0
  276. package/dist/src/routing/request-types.js +9 -0
  277. package/dist/src/routing/request-types.js.map +1 -0
  278. package/dist/src/routing/types.d.ts +5 -207
  279. package/dist/src/routing/types.d.ts.map +1 -1
  280. package/dist/src/routing/types.js +3 -153
  281. package/dist/src/routing/types.js.map +1 -1
  282. package/dist/src/scripts/github-import/github-auth.d.ts +17 -0
  283. package/dist/src/scripts/github-import/github-auth.d.ts.map +1 -0
  284. package/dist/src/scripts/github-import/github-auth.js +201 -0
  285. package/dist/src/scripts/github-import/github-auth.js.map +1 -0
  286. package/dist/src/scripts/github-import/github-client.d.ts +5 -5
  287. package/dist/src/scripts/github-import/github-client.d.ts.map +1 -1
  288. package/dist/src/scripts/github-import/github-client.js +5 -204
  289. package/dist/src/scripts/github-import/github-client.js.map +1 -1
  290. package/dist/src/scripts/ingest-lenny-skills.d.ts +40 -0
  291. package/dist/src/scripts/ingest-lenny-skills.d.ts.map +1 -0
  292. package/dist/src/scripts/ingest-lenny-skills.js +346 -0
  293. package/dist/src/scripts/ingest-lenny-skills.js.map +1 -0
  294. package/dist/src/scripts/merge-skills.d.ts +5 -27
  295. package/dist/src/scripts/merge-skills.d.ts.map +1 -1
  296. package/dist/src/scripts/merge-skills.js +4 -144
  297. package/dist/src/scripts/merge-skills.js.map +1 -1
  298. package/dist/src/scripts/merge-types.d.ts +72 -0
  299. package/dist/src/scripts/merge-types.d.ts.map +1 -0
  300. package/dist/src/scripts/merge-types.js +7 -0
  301. package/dist/src/scripts/merge-types.js.map +1 -0
  302. package/dist/src/scripts/merge-utils.d.ts +23 -0
  303. package/dist/src/scripts/merge-utils.d.ts.map +1 -0
  304. package/dist/src/scripts/merge-utils.js +150 -0
  305. package/dist/src/scripts/merge-utils.js.map +1 -0
  306. package/dist/src/scripts/review-categories.d.ts +41 -0
  307. package/dist/src/scripts/review-categories.d.ts.map +1 -0
  308. package/dist/src/scripts/review-categories.js +316 -0
  309. package/dist/src/scripts/review-categories.js.map +1 -0
  310. package/dist/src/scripts/review-lenny-skills.d.ts +26 -0
  311. package/dist/src/scripts/review-lenny-skills.d.ts.map +1 -0
  312. package/dist/src/scripts/review-lenny-skills.js +215 -0
  313. package/dist/src/scripts/review-lenny-skills.js.map +1 -0
  314. package/dist/src/scripts/sync-to-supabase.d.ts +10 -0
  315. package/dist/src/scripts/sync-to-supabase.d.ts.map +1 -0
  316. package/dist/src/scripts/sync-to-supabase.js +93 -0
  317. package/dist/src/scripts/sync-to-supabase.js.map +1 -0
  318. package/dist/src/security/AuditLogger.d.ts +4 -75
  319. package/dist/src/security/AuditLogger.d.ts.map +1 -1
  320. package/dist/src/security/AuditLogger.js +3 -12
  321. package/dist/src/security/AuditLogger.js.map +1 -1
  322. package/dist/src/security/__tests__/pathValidation.test.js.map +1 -1
  323. package/dist/src/security/audit-types.d.ts +96 -0
  324. package/dist/src/security/audit-types.d.ts.map +1 -0
  325. package/dist/src/security/audit-types.js +15 -0
  326. package/dist/src/security/audit-types.js.map +1 -0
  327. package/dist/src/security/sanitization.d.ts +1 -85
  328. package/dist/src/security/sanitization.d.ts.map +1 -1
  329. package/dist/src/security/sanitization.js +2 -133
  330. package/dist/src/security/sanitization.js.map +1 -1
  331. package/dist/src/security/scanner/SecurityScanner.d.ts +12 -88
  332. package/dist/src/security/scanner/SecurityScanner.d.ts.map +1 -1
  333. package/dist/src/security/scanner/SecurityScanner.formatters.d.ts +49 -0
  334. package/dist/src/security/scanner/SecurityScanner.formatters.d.ts.map +1 -0
  335. package/dist/src/security/scanner/SecurityScanner.formatters.js +139 -0
  336. package/dist/src/security/scanner/SecurityScanner.formatters.js.map +1 -0
  337. package/dist/src/security/scanner/SecurityScanner.helpers.d.ts +40 -0
  338. package/dist/src/security/scanner/SecurityScanner.helpers.d.ts.map +1 -0
  339. package/dist/src/security/scanner/SecurityScanner.helpers.js +142 -0
  340. package/dist/src/security/scanner/SecurityScanner.helpers.js.map +1 -0
  341. package/dist/src/security/scanner/SecurityScanner.js +26 -255
  342. package/dist/src/security/scanner/SecurityScanner.js.map +1 -1
  343. package/dist/src/security/stripe-validators.d.ts +92 -0
  344. package/dist/src/security/stripe-validators.d.ts.map +1 -0
  345. package/dist/src/security/stripe-validators.js +139 -0
  346. package/dist/src/security/stripe-validators.js.map +1 -0
  347. package/dist/src/services/SearchService.d.ts +5 -29
  348. package/dist/src/services/SearchService.d.ts.map +1 -1
  349. package/dist/src/services/SearchService.helpers.d.ts +42 -0
  350. package/dist/src/services/SearchService.helpers.d.ts.map +1 -0
  351. package/dist/src/services/SearchService.helpers.js +128 -0
  352. package/dist/src/services/SearchService.helpers.js.map +1 -0
  353. package/dist/src/services/SearchService.js +142 -128
  354. package/dist/src/services/SearchService.js.map +1 -1
  355. package/dist/src/services/SearchService.types.d.ts +53 -0
  356. package/dist/src/services/SearchService.types.d.ts.map +1 -0
  357. package/dist/src/services/SearchService.types.js +7 -0
  358. package/dist/src/services/SearchService.types.js.map +1 -0
  359. package/dist/src/services/SkillAnalyzer.d.ts +37 -0
  360. package/dist/src/services/SkillAnalyzer.d.ts.map +1 -0
  361. package/dist/src/services/SkillAnalyzer.helpers.d.ts +103 -0
  362. package/dist/src/services/SkillAnalyzer.helpers.d.ts.map +1 -0
  363. package/dist/src/services/SkillAnalyzer.helpers.js +237 -0
  364. package/dist/src/services/SkillAnalyzer.helpers.js.map +1 -0
  365. package/dist/src/services/SkillAnalyzer.js +270 -0
  366. package/dist/src/services/SkillAnalyzer.js.map +1 -0
  367. package/dist/src/services/SkillAnalyzer.types.d.ts +110 -0
  368. package/dist/src/services/SkillAnalyzer.types.d.ts.map +1 -0
  369. package/dist/src/services/SkillAnalyzer.types.js +9 -0
  370. package/dist/src/services/SkillAnalyzer.types.js.map +1 -0
  371. package/dist/src/services/SkillDecomposer.d.ts +37 -0
  372. package/dist/src/services/SkillDecomposer.d.ts.map +1 -0
  373. package/dist/src/services/SkillDecomposer.helpers.d.ts +75 -0
  374. package/dist/src/services/SkillDecomposer.helpers.d.ts.map +1 -0
  375. package/dist/src/services/SkillDecomposer.helpers.js +277 -0
  376. package/dist/src/services/SkillDecomposer.helpers.js.map +1 -0
  377. package/dist/src/services/SkillDecomposer.js +116 -0
  378. package/dist/src/services/SkillDecomposer.js.map +1 -0
  379. package/dist/src/services/SkillDecomposer.types.d.ts +104 -0
  380. package/dist/src/services/SkillDecomposer.types.d.ts.map +1 -0
  381. package/dist/src/services/SkillDecomposer.types.js +9 -0
  382. package/dist/src/services/SkillDecomposer.types.js.map +1 -0
  383. package/dist/src/services/SubagentGenerator.d.ts +77 -0
  384. package/dist/src/services/SubagentGenerator.d.ts.map +1 -0
  385. package/dist/src/services/SubagentGenerator.js +352 -0
  386. package/dist/src/services/SubagentGenerator.js.map +1 -0
  387. package/dist/src/services/TaskRunner.d.ts +227 -0
  388. package/dist/src/services/TaskRunner.d.ts.map +1 -0
  389. package/dist/src/services/TaskRunner.js +423 -0
  390. package/dist/src/services/TaskRunner.js.map +1 -0
  391. package/dist/src/services/TransformationService.d.ts +167 -0
  392. package/dist/src/services/TransformationService.d.ts.map +1 -0
  393. package/dist/src/services/TransformationService.js +315 -0
  394. package/dist/src/services/TransformationService.js.map +1 -0
  395. package/dist/src/services/__tests__/SkillAnalyzer.test.d.ts +6 -0
  396. package/dist/src/services/__tests__/SkillAnalyzer.test.d.ts.map +1 -0
  397. package/dist/src/services/__tests__/SkillAnalyzer.test.js +177 -0
  398. package/dist/src/services/__tests__/SkillAnalyzer.test.js.map +1 -0
  399. package/dist/src/services/__tests__/SkillDecomposer.test.d.ts +6 -0
  400. package/dist/src/services/__tests__/SkillDecomposer.test.d.ts.map +1 -0
  401. package/dist/src/services/__tests__/SkillDecomposer.test.js +235 -0
  402. package/dist/src/services/__tests__/SkillDecomposer.test.js.map +1 -0
  403. package/dist/src/services/__tests__/SubagentGenerator.test.d.ts +6 -0
  404. package/dist/src/services/__tests__/SubagentGenerator.test.d.ts.map +1 -0
  405. package/dist/src/services/__tests__/SubagentGenerator.test.js +174 -0
  406. package/dist/src/services/__tests__/SubagentGenerator.test.js.map +1 -0
  407. package/dist/src/services/__tests__/TaskRunner.test.d.ts +7 -0
  408. package/dist/src/services/__tests__/TaskRunner.test.d.ts.map +1 -0
  409. package/dist/src/services/__tests__/TaskRunner.test.js +316 -0
  410. package/dist/src/services/__tests__/TaskRunner.test.js.map +1 -0
  411. package/dist/src/services/__tests__/TransformationService.test.d.ts +6 -0
  412. package/dist/src/services/__tests__/TransformationService.test.d.ts.map +1 -0
  413. package/dist/src/services/__tests__/TransformationService.test.js +244 -0
  414. package/dist/src/services/__tests__/TransformationService.test.js.map +1 -0
  415. package/dist/src/session/SessionContext.js +1 -1
  416. package/dist/src/session/SessionContext.js.map +1 -1
  417. package/dist/src/session/SessionManager.d.ts +3 -67
  418. package/dist/src/session/SessionManager.d.ts.map +1 -1
  419. package/dist/src/session/SessionManager.helpers.d.ts +68 -0
  420. package/dist/src/session/SessionManager.helpers.d.ts.map +1 -0
  421. package/dist/src/session/SessionManager.helpers.js +152 -0
  422. package/dist/src/session/SessionManager.helpers.js.map +1 -0
  423. package/dist/src/session/SessionManager.js +58 -163
  424. package/dist/src/session/SessionManager.js.map +1 -1
  425. package/dist/src/session/SessionManager.types.d.ts +88 -0
  426. package/dist/src/session/SessionManager.types.d.ts.map +1 -0
  427. package/dist/src/session/SessionManager.types.js +27 -0
  428. package/dist/src/session/SessionManager.types.js.map +1 -0
  429. package/dist/src/session/SessionRecovery.d.ts.map +1 -1
  430. package/dist/src/session/SessionRecovery.js +3 -2
  431. package/dist/src/session/SessionRecovery.js.map +1 -1
  432. package/dist/src/sources/RawUrlSourceAdapter.js.map +1 -1
  433. package/dist/src/sources/SourceAdapterRegistry.js +1 -1
  434. package/dist/src/sources/SourceAdapterRegistry.js.map +1 -1
  435. package/dist/src/telemetry/metric-helpers.d.ts +47 -0
  436. package/dist/src/telemetry/metric-helpers.d.ts.map +1 -0
  437. package/dist/src/telemetry/metric-helpers.js +96 -0
  438. package/dist/src/telemetry/metric-helpers.js.map +1 -0
  439. package/dist/src/telemetry/metric-types.d.ts +73 -0
  440. package/dist/src/telemetry/metric-types.d.ts.map +1 -0
  441. package/dist/src/telemetry/metric-types.js +9 -0
  442. package/dist/src/telemetry/metric-types.js.map +1 -0
  443. package/dist/src/telemetry/metrics.d.ts +8 -119
  444. package/dist/src/telemetry/metrics.d.ts.map +1 -1
  445. package/dist/src/telemetry/metrics.js +20 -193
  446. package/dist/src/telemetry/metrics.js.map +1 -1
  447. package/dist/src/telemetry/span-utils.d.ts +30 -0
  448. package/dist/src/telemetry/span-utils.d.ts.map +1 -0
  449. package/dist/src/telemetry/span-utils.js +62 -0
  450. package/dist/src/telemetry/span-utils.js.map +1 -0
  451. package/dist/src/telemetry/tracer-types.d.ts +91 -0
  452. package/dist/src/telemetry/tracer-types.d.ts.map +1 -0
  453. package/dist/src/telemetry/tracer-types.js +6 -0
  454. package/dist/src/telemetry/tracer-types.js.map +1 -0
  455. package/dist/src/telemetry/tracer.d.ts +5 -122
  456. package/dist/src/telemetry/tracer.d.ts.map +1 -1
  457. package/dist/src/telemetry/tracer.js +24 -170
  458. package/dist/src/telemetry/tracer.js.map +1 -1
  459. package/dist/src/testing/MultiLLMProvider.d.ts +17 -293
  460. package/dist/src/testing/MultiLLMProvider.d.ts.map +1 -1
  461. package/dist/src/testing/MultiLLMProvider.helpers.d.ts +54 -0
  462. package/dist/src/testing/MultiLLMProvider.helpers.d.ts.map +1 -0
  463. package/dist/src/testing/MultiLLMProvider.helpers.js +126 -0
  464. package/dist/src/testing/MultiLLMProvider.helpers.js.map +1 -0
  465. package/dist/src/testing/MultiLLMProvider.js +50 -323
  466. package/dist/src/testing/MultiLLMProvider.js.map +1 -1
  467. package/dist/src/testing/MultiLLMProvider.types.d.ts +253 -0
  468. package/dist/src/testing/MultiLLMProvider.types.d.ts.map +1 -0
  469. package/dist/src/testing/MultiLLMProvider.types.js +111 -0
  470. package/dist/src/testing/MultiLLMProvider.types.js.map +1 -0
  471. package/dist/src/triggers/TriggerDetector.d.ts +6 -142
  472. package/dist/src/triggers/TriggerDetector.d.ts.map +1 -1
  473. package/dist/src/triggers/TriggerDetector.js +15 -247
  474. package/dist/src/triggers/TriggerDetector.js.map +1 -1
  475. package/dist/src/triggers/__tests__/TriggerDetector.test.js +1 -1
  476. package/dist/src/triggers/__tests__/TriggerDetector.test.js.map +1 -1
  477. package/dist/src/triggers/trigger-constants.d.ts +22 -0
  478. package/dist/src/triggers/trigger-constants.d.ts.map +1 -0
  479. package/dist/src/triggers/trigger-constants.js +185 -0
  480. package/dist/src/triggers/trigger-constants.js.map +1 -0
  481. package/dist/src/triggers/trigger-types.d.ts +90 -0
  482. package/dist/src/triggers/trigger-types.d.ts.map +1 -0
  483. package/dist/src/triggers/trigger-types.js +6 -0
  484. package/dist/src/triggers/trigger-types.js.map +1 -0
  485. package/dist/src/types/skill.d.ts +33 -1
  486. package/dist/src/types/skill.d.ts.map +1 -1
  487. package/dist/src/types/skill.js +11 -1
  488. package/dist/src/types/skill.js.map +1 -1
  489. package/dist/src/types.d.ts +28 -2
  490. package/dist/src/types.d.ts.map +1 -1
  491. package/dist/src/types.js +1 -0
  492. package/dist/src/types.js.map +1 -1
  493. package/dist/src/utils/retry.js +2 -2
  494. package/dist/src/utils/retry.js.map +1 -1
  495. package/dist/src/validation/index.d.ts +5 -105
  496. package/dist/src/validation/index.d.ts.map +1 -1
  497. package/dist/src/validation/index.js +9 -421
  498. package/dist/src/validation/index.js.map +1 -1
  499. package/dist/src/validation/input-validators.d.ts +68 -0
  500. package/dist/src/validation/input-validators.d.ts.map +1 -0
  501. package/dist/src/validation/input-validators.js +126 -0
  502. package/dist/src/validation/input-validators.js.map +1 -0
  503. package/dist/src/validation/path-validators.d.ts +23 -0
  504. package/dist/src/validation/path-validators.d.ts.map +1 -0
  505. package/dist/src/validation/path-validators.js +47 -0
  506. package/dist/src/validation/path-validators.js.map +1 -0
  507. package/dist/src/validation/url-validators.d.ts +55 -0
  508. package/dist/src/validation/url-validators.d.ts.map +1 -0
  509. package/dist/src/validation/url-validators.js +267 -0
  510. package/dist/src/validation/url-validators.js.map +1 -0
  511. package/dist/src/validation/validation-error.d.ts +14 -0
  512. package/dist/src/validation/validation-error.d.ts.map +1 -0
  513. package/dist/src/validation/validation-error.js +19 -0
  514. package/dist/src/validation/validation-error.js.map +1 -0
  515. package/dist/src/webhooks/WebhookHandler.d.ts.map +1 -1
  516. package/dist/src/webhooks/WebhookHandler.js.map +1 -1
  517. package/dist/src/webhooks/WebhookPayload.d.ts +4 -215
  518. package/dist/src/webhooks/WebhookPayload.d.ts.map +1 -1
  519. package/dist/src/webhooks/WebhookPayload.js +1 -122
  520. package/dist/src/webhooks/WebhookPayload.js.map +1 -1
  521. package/dist/src/webhooks/WebhookQueue.d.ts +2 -140
  522. package/dist/src/webhooks/WebhookQueue.d.ts.map +1 -1
  523. package/dist/src/webhooks/WebhookQueue.js +4 -11
  524. package/dist/src/webhooks/WebhookQueue.js.map +1 -1
  525. package/dist/src/webhooks/WebhookQueue.types.d.ts +149 -0
  526. package/dist/src/webhooks/WebhookQueue.types.d.ts.map +1 -0
  527. package/dist/src/webhooks/WebhookQueue.types.js +10 -0
  528. package/dist/src/webhooks/WebhookQueue.types.js.map +1 -0
  529. package/dist/src/webhooks/WebhookQueue.utils.d.ts +44 -0
  530. package/dist/src/webhooks/WebhookQueue.utils.d.ts.map +1 -0
  531. package/dist/src/webhooks/WebhookQueue.utils.js +58 -0
  532. package/dist/src/webhooks/WebhookQueue.utils.js.map +1 -0
  533. package/dist/src/webhooks/webhook-schemas.d.ts +213 -0
  534. package/dist/src/webhooks/webhook-schemas.d.ts.map +1 -0
  535. package/dist/src/webhooks/webhook-schemas.js +132 -0
  536. package/dist/src/webhooks/webhook-schemas.js.map +1 -0
  537. package/dist/src/webhooks/webhook-types.d.ts +222 -0
  538. package/dist/src/webhooks/webhook-types.d.ts.map +1 -0
  539. package/dist/src/webhooks/webhook-types.js +10 -0
  540. package/dist/src/webhooks/webhook-types.js.map +1 -0
  541. package/dist/tests/Analytics.integration.test.js +2 -2
  542. package/dist/tests/Analytics.integration.test.js.map +1 -1
  543. package/dist/tests/AnalyticsRepository.test.js +3 -5
  544. package/dist/tests/AnalyticsRepository.test.js.map +1 -1
  545. package/dist/tests/AnalyticsStorage.test.js.map +1 -1
  546. package/dist/tests/ApiPartialResponses.test.d.ts +12 -0
  547. package/dist/tests/ApiPartialResponses.test.d.ts.map +1 -0
  548. package/dist/tests/ApiPartialResponses.test.js +202 -0
  549. package/dist/tests/ApiPartialResponses.test.js.map +1 -0
  550. package/dist/tests/AuditLogger.test.js.map +1 -1
  551. package/dist/tests/BenchmarkRunner.test.js +6 -6
  552. package/dist/tests/BenchmarkRunner.test.js.map +1 -1
  553. package/dist/tests/CacheSecurity.test.js.map +1 -1
  554. package/dist/tests/CodebaseAnalyzer.test.js.map +1 -1
  555. package/dist/tests/DailyIndexPipeline.test.js.map +1 -1
  556. package/dist/tests/EmbeddingService.test.js.map +1 -1
  557. package/dist/tests/GitHubIndexer.test.js +4 -3
  558. package/dist/tests/GitHubIndexer.test.js.map +1 -1
  559. package/dist/tests/MemoryProfiler.test.js +3 -3
  560. package/dist/tests/MemoryProfiler.test.js.map +1 -1
  561. package/dist/tests/QualityScorer.test.js.map +1 -1
  562. package/dist/tests/RateLimiter.test.js.map +1 -1
  563. package/dist/tests/ScraperAdapters.test.js.map +1 -1
  564. package/dist/tests/SecurityScanner.test.js +4 -4
  565. package/dist/tests/SecurityScanner.test.js.map +1 -1
  566. package/dist/tests/SessionManager.security.test.js +1 -1
  567. package/dist/tests/SessionManager.security.test.js.map +1 -1
  568. package/dist/tests/SessionManager.test.js +4 -4
  569. package/dist/tests/SessionManager.test.js.map +1 -1
  570. package/dist/tests/SwarmIndexer.test.js +1 -1
  571. package/dist/tests/SwarmIndexer.test.js.map +1 -1
  572. package/dist/tests/TieredCache.test.js +2 -11
  573. package/dist/tests/TieredCache.test.js.map +1 -1
  574. package/dist/tests/WebhookHandler.test.js.map +1 -1
  575. package/dist/tests/fixtures/api-responses/index.d.ts +119 -0
  576. package/dist/tests/fixtures/api-responses/index.d.ts.map +1 -0
  577. package/dist/tests/fixtures/api-responses/index.js +419 -0
  578. package/dist/tests/fixtures/api-responses/index.js.map +1 -0
  579. package/dist/tests/integration/neural/neural-fixtures.d.ts +19 -0
  580. package/dist/tests/integration/neural/neural-fixtures.d.ts.map +1 -0
  581. package/dist/tests/integration/neural/neural-fixtures.js +49 -0
  582. package/dist/tests/integration/neural/neural-fixtures.js.map +1 -0
  583. package/dist/tests/integration/neural/neural-mocks-privacy.d.ts +78 -0
  584. package/dist/tests/integration/neural/neural-mocks-privacy.d.ts.map +1 -0
  585. package/dist/tests/integration/neural/neural-mocks-privacy.js +146 -0
  586. package/dist/tests/integration/neural/neural-mocks-privacy.js.map +1 -0
  587. package/dist/tests/integration/neural/neural-mocks.d.ts +90 -0
  588. package/dist/tests/integration/neural/neural-mocks.d.ts.map +1 -0
  589. package/dist/tests/integration/neural/neural-mocks.js +288 -0
  590. package/dist/tests/integration/neural/neural-mocks.js.map +1 -0
  591. package/dist/tests/integration/neural/neural-test-utils.d.ts +27 -0
  592. package/dist/tests/integration/neural/neural-test-utils.d.ts.map +1 -0
  593. package/dist/tests/integration/neural/neural-test-utils.js +35 -0
  594. package/dist/tests/integration/neural/neural-test-utils.js.map +1 -0
  595. package/dist/tests/integration/neural/setup.d.ts +6 -165
  596. package/dist/tests/integration/neural/setup.d.ts.map +1 -1
  597. package/dist/tests/integration/neural/setup.js +9 -477
  598. package/dist/tests/integration/neural/setup.js.map +1 -1
  599. package/dist/tests/logger.test.js +1 -1
  600. package/dist/tests/logger.test.js.map +1 -1
  601. package/dist/tests/performance/LargeScalePerformance.test.js +1 -1
  602. package/dist/tests/performance/LargeScalePerformance.test.js.map +1 -1
  603. package/dist/tests/sanitization.test.js.map +1 -1
  604. package/dist/tests/session/SessionManager.helpers.test.d.ts +8 -0
  605. package/dist/tests/session/SessionManager.helpers.test.d.ts.map +1 -0
  606. package/dist/tests/session/SessionManager.helpers.test.js +105 -0
  607. package/dist/tests/session/SessionManager.helpers.test.js.map +1 -0
  608. package/dist/tests/sources.test.js.map +1 -1
  609. package/dist/tests/webhooks/WebhookHandler.idempotency.test.js +1 -1
  610. package/dist/tests/webhooks/WebhookHandler.idempotency.test.js.map +1 -1
  611. package/dist/tests/webhooks/WebhookPayload.security.test.js.map +1 -1
  612. package/package.json +11 -11
@@ -12,10 +12,8 @@
12
12
  * - License key generation on subscription creation
13
13
  * - Status synchronization
14
14
  */
15
- import { createHash, randomUUID } from 'crypto';
16
15
  import { createLogger } from '../utils/logger.js';
17
- import { StripeClient } from './StripeClient.js';
18
- import { BillingError } from './types.js';
16
+ import { handleSubscriptionCreated, handleSubscriptionUpdated, handleSubscriptionDeleted, handleInvoicePaymentSucceeded, handleInvoicePaymentFailed, handleCheckoutSessionCompleted, } from './webhook-handlers.js';
19
17
  const logger = createLogger('StripeWebhookHandler');
20
18
  // ============================================================================
21
19
  // StripeWebhookHandler Class
@@ -130,280 +128,35 @@ export class StripeWebhookHandler {
130
128
  // Event Routing
131
129
  // ==========================================================================
132
130
  async routeEvent(event) {
131
+ const ctx = {
132
+ stripe: this.stripe,
133
+ billing: this.billing,
134
+ db: this.db,
135
+ onLicenseKeyNeeded: this.onLicenseKeyNeeded,
136
+ onEmailNeeded: this.onEmailNeeded,
137
+ };
133
138
  switch (event.type) {
134
139
  case 'customer.subscription.created':
135
- await this.handleSubscriptionCreated(event.data.object);
140
+ await handleSubscriptionCreated(ctx, event.data.object);
136
141
  break;
137
142
  case 'customer.subscription.updated':
138
- await this.handleSubscriptionUpdated(event.data.object);
143
+ await handleSubscriptionUpdated(ctx, event.data.object);
139
144
  break;
140
145
  case 'customer.subscription.deleted':
141
- await this.handleSubscriptionDeleted(event.data.object);
146
+ await handleSubscriptionDeleted(ctx, event.data.object);
142
147
  break;
143
148
  case 'invoice.payment_succeeded':
144
- await this.handleInvoicePaymentSucceeded(event.data.object);
149
+ await handleInvoicePaymentSucceeded(ctx, event.data.object);
145
150
  break;
146
151
  case 'invoice.payment_failed':
147
- await this.handleInvoicePaymentFailed(event.data.object);
152
+ await handleInvoicePaymentFailed(ctx, event.data.object);
148
153
  break;
149
154
  case 'checkout.session.completed':
150
- await this.handleCheckoutSessionCompleted(event.data.object);
155
+ handleCheckoutSessionCompleted(event.data.object);
151
156
  break;
152
157
  default:
153
158
  logger.debug('Unhandled webhook event type', { type: event.type });
154
159
  }
155
160
  }
156
- // ==========================================================================
157
- // Subscription Event Handlers
158
- // ==========================================================================
159
- async handleSubscriptionCreated(subscription) {
160
- logger.info('Processing subscription.created', {
161
- subscriptionId: subscription.id,
162
- customerId: subscription.customer,
163
- status: subscription.status,
164
- });
165
- const customer = await this.stripe.getCustomer(subscription.customer);
166
- if (!customer) {
167
- throw new BillingError('Customer not found', 'CUSTOMER_NOT_FOUND');
168
- }
169
- const tier = this.extractTier(subscription);
170
- const seatCount = this.extractSeatCount(subscription);
171
- // Create/update subscription record
172
- const sub = this.billing.upsertSubscription({
173
- customerId: customer.id,
174
- email: customer.email,
175
- stripeCustomerId: customer.id,
176
- stripeSubscriptionId: subscription.id,
177
- stripePriceId: subscription.items.data[0]?.price.id ?? '',
178
- tier,
179
- status: StripeClient.mapSubscriptionStatus(subscription.status),
180
- seatCount,
181
- currentPeriodStart: new Date(subscription.current_period_start * 1000),
182
- currentPeriodEnd: new Date(subscription.current_period_end * 1000),
183
- });
184
- // Generate license key if subscription is active
185
- if (subscription.status === 'active' && this.onLicenseKeyNeeded) {
186
- const licenseKey = await this.onLicenseKeyNeeded({
187
- customerId: customer.id,
188
- tier,
189
- expiresAt: new Date(subscription.current_period_end * 1000),
190
- subscriptionId: sub.id,
191
- });
192
- // Store license key
193
- this.storeLicenseKey({
194
- subscriptionId: sub.id,
195
- organizationId: customer.id,
196
- keyJwt: licenseKey,
197
- keyExpiry: new Date(subscription.current_period_end * 1000),
198
- });
199
- // Send license key email
200
- if (this.onEmailNeeded) {
201
- await this.onEmailNeeded({
202
- type: 'license_key',
203
- email: customer.email,
204
- data: {
205
- licenseKey,
206
- tier,
207
- expiresAt: new Date(subscription.current_period_end * 1000).toISOString(),
208
- },
209
- });
210
- }
211
- }
212
- }
213
- async handleSubscriptionUpdated(subscription) {
214
- logger.info('Processing subscription.updated', {
215
- subscriptionId: subscription.id,
216
- status: subscription.status,
217
- });
218
- const existingSub = this.billing.getSubscriptionByStripeId(subscription.id);
219
- if (!existingSub) {
220
- // Subscription doesn't exist locally, create it
221
- await this.handleSubscriptionCreated(subscription);
222
- return;
223
- }
224
- // Update status
225
- const newStatus = StripeClient.mapSubscriptionStatus(subscription.status);
226
- const canceledAt = subscription.canceled_at ? new Date(subscription.canceled_at * 1000) : null;
227
- this.billing.updateSubscriptionStatus(subscription.id, newStatus, canceledAt);
228
- // Check if tier changed (regenerate license key)
229
- const newTier = this.extractTier(subscription);
230
- if (existingSub.tier !== newTier && this.onLicenseKeyNeeded) {
231
- const customer = await this.stripe.getCustomer(subscription.customer);
232
- if (customer) {
233
- // Revoke old license key
234
- this.revokeLicenseKey(existingSub.id, 'tier_change');
235
- // Generate new license key
236
- const licenseKey = await this.onLicenseKeyNeeded({
237
- customerId: customer.id,
238
- tier: newTier,
239
- expiresAt: new Date(subscription.current_period_end * 1000),
240
- subscriptionId: existingSub.id,
241
- });
242
- this.storeLicenseKey({
243
- subscriptionId: existingSub.id,
244
- organizationId: customer.id,
245
- keyJwt: licenseKey,
246
- keyExpiry: new Date(subscription.current_period_end * 1000),
247
- });
248
- }
249
- }
250
- }
251
- async handleSubscriptionDeleted(subscription) {
252
- logger.info('Processing subscription.deleted', {
253
- subscriptionId: subscription.id,
254
- });
255
- const existingSub = this.billing.getSubscriptionByStripeId(subscription.id);
256
- if (existingSub) {
257
- // Update status to canceled
258
- this.billing.updateSubscriptionStatus(subscription.id, 'canceled', new Date());
259
- // Revoke license key
260
- this.revokeLicenseKey(existingSub.id, 'subscription_canceled');
261
- // Send cancellation email
262
- if (this.onEmailNeeded) {
263
- const customer = await this.stripe.getCustomer(subscription.customer);
264
- if (customer?.email) {
265
- await this.onEmailNeeded({
266
- type: 'subscription_canceled',
267
- email: customer.email,
268
- data: {
269
- subscriptionId: subscription.id,
270
- canceledAt: new Date().toISOString(),
271
- },
272
- });
273
- }
274
- }
275
- }
276
- }
277
- // ==========================================================================
278
- // Invoice Event Handlers
279
- // ==========================================================================
280
- async handleInvoicePaymentSucceeded(invoice) {
281
- logger.info('Processing invoice.payment_succeeded', {
282
- invoiceId: invoice.id,
283
- customerId: invoice.customer,
284
- amount: invoice.amount_paid,
285
- });
286
- const customerId = typeof invoice.customer === 'string' ? invoice.customer : invoice.customer?.id;
287
- if (!customerId)
288
- return;
289
- // Store invoice
290
- this.billing.storeInvoice({
291
- customerId,
292
- stripeInvoiceId: invoice.id,
293
- subscriptionId: typeof invoice.subscription === 'string' ? invoice.subscription : invoice.subscription?.id,
294
- amountCents: invoice.amount_paid,
295
- currency: invoice.currency,
296
- status: 'paid',
297
- pdfUrl: invoice.invoice_pdf ?? undefined,
298
- hostedInvoiceUrl: invoice.hosted_invoice_url ?? undefined,
299
- invoiceNumber: invoice.number ?? undefined,
300
- paidAt: invoice.status_transitions?.paid_at
301
- ? new Date(invoice.status_transitions.paid_at * 1000)
302
- : new Date(),
303
- periodStart: invoice.period_start ? new Date(invoice.period_start * 1000) : undefined,
304
- periodEnd: invoice.period_end ? new Date(invoice.period_end * 1000) : undefined,
305
- });
306
- }
307
- async handleInvoicePaymentFailed(invoice) {
308
- logger.warn('Processing invoice.payment_failed', {
309
- invoiceId: invoice.id,
310
- customerId: invoice.customer,
311
- amount: invoice.amount_due,
312
- });
313
- const customerId = typeof invoice.customer === 'string' ? invoice.customer : invoice.customer?.id;
314
- if (!customerId)
315
- return;
316
- // Store invoice with failed status
317
- this.billing.storeInvoice({
318
- customerId,
319
- stripeInvoiceId: invoice.id,
320
- subscriptionId: typeof invoice.subscription === 'string' ? invoice.subscription : invoice.subscription?.id,
321
- amountCents: invoice.amount_due,
322
- currency: invoice.currency,
323
- status: 'open',
324
- pdfUrl: invoice.invoice_pdf ?? undefined,
325
- hostedInvoiceUrl: invoice.hosted_invoice_url ?? undefined,
326
- invoiceNumber: invoice.number ?? undefined,
327
- });
328
- // Send payment failed email
329
- if (this.onEmailNeeded) {
330
- const customer = await this.stripe.getCustomer(customerId);
331
- if (customer?.email) {
332
- await this.onEmailNeeded({
333
- type: 'payment_failed',
334
- email: customer.email,
335
- data: {
336
- invoiceId: invoice.id,
337
- amount: invoice.amount_due,
338
- currency: invoice.currency,
339
- hostedInvoiceUrl: invoice.hosted_invoice_url,
340
- },
341
- });
342
- }
343
- }
344
- }
345
- // ==========================================================================
346
- // Checkout Event Handlers
347
- // ==========================================================================
348
- async handleCheckoutSessionCompleted(session) {
349
- logger.info('Processing checkout.session.completed', {
350
- sessionId: session.id,
351
- customerId: session.customer,
352
- subscriptionId: session.subscription,
353
- });
354
- // The subscription.created event will handle the actual subscription setup
355
- // This handler is useful for tracking successful checkouts and analytics
356
- }
357
- // ==========================================================================
358
- // License Key Management
359
- // ==========================================================================
360
- storeLicenseKey(params) {
361
- const id = randomUUID();
362
- const keyHash = createHash('sha256').update(params.keyJwt).digest('hex');
363
- const now = new Date().toISOString();
364
- this.db
365
- .prepare(`INSERT INTO license_keys (
366
- id, subscription_id, organization_id, key_jwt, key_hash,
367
- key_expiry, is_active, generated_at
368
- ) VALUES (?, ?, ?, ?, ?, ?, 1, ?)`)
369
- .run(id, params.subscriptionId, params.organizationId, params.keyJwt, keyHash, params.keyExpiry.toISOString(), now);
370
- logger.info('License key stored', {
371
- subscriptionId: params.subscriptionId,
372
- keyHash: keyHash.slice(0, 16) + '...',
373
- });
374
- }
375
- revokeLicenseKey(subscriptionId, reason) {
376
- const now = new Date().toISOString();
377
- this.db
378
- .prepare(`UPDATE license_keys
379
- SET is_active = 0, revoked_at = ?, revocation_reason = ?
380
- WHERE subscription_id = ? AND is_active = 1`)
381
- .run(now, reason, subscriptionId);
382
- logger.info('License key revoked', { subscriptionId, reason });
383
- }
384
- // ==========================================================================
385
- // Helper Methods
386
- // ==========================================================================
387
- extractTier(subscription) {
388
- // Try to get tier from metadata first
389
- const metadataTier = subscription.metadata?.tier;
390
- if (metadataTier && ['community', 'individual', 'team', 'enterprise'].includes(metadataTier)) {
391
- return metadataTier;
392
- }
393
- // Fallback: infer from price ID or default to individual
394
- return 'individual';
395
- }
396
- extractSeatCount(subscription) {
397
- // Try metadata first
398
- const metadataSeats = subscription.metadata?.seatCount;
399
- if (metadataSeats) {
400
- const count = parseInt(metadataSeats, 10);
401
- if (!isNaN(count) && count > 0) {
402
- return count;
403
- }
404
- }
405
- // Fallback to quantity from first item
406
- return subscription.items.data[0]?.quantity ?? 1;
407
- }
408
161
  }
409
162
  //# sourceMappingURL=StripeWebhookHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StripeWebhookHandler.js","sourceRoot":"","sources":["../../../src/billing/StripeWebhookHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StripeWebhookHandler.js","sourceRoot":"","sources":["../../../src/billing/StripeWebhookHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ /**
2
+ * SMI-1068: GDPR Compliance Types
3
+ *
4
+ * Type definitions for GDPR data export and deletion operations.
5
+ */
6
+ import type { Database as BetterSqliteDatabase } from 'better-sqlite3';
7
+ import type { StripeClient } from './StripeClient.js';
8
+ export interface GDPRComplianceServiceConfig {
9
+ /**
10
+ * Database connection (better-sqlite3)
11
+ */
12
+ db: BetterSqliteDatabase;
13
+ /**
14
+ * Optional StripeClient for Stripe data operations
15
+ */
16
+ stripeClient?: StripeClient;
17
+ }
18
+ /**
19
+ * Exported customer data format
20
+ */
21
+ export interface CustomerDataExport {
22
+ /**
23
+ * Export metadata
24
+ */
25
+ metadata: {
26
+ exportedAt: string;
27
+ customerId: string;
28
+ format: 'json';
29
+ version: '1.0';
30
+ };
31
+ /**
32
+ * Subscription data
33
+ */
34
+ subscriptions: SubscriptionExportData[];
35
+ /**
36
+ * Invoice data
37
+ */
38
+ invoices: InvoiceExportData[];
39
+ /**
40
+ * License key data (without the actual JWT for security)
41
+ */
42
+ licenseKeys: LicenseKeyExportData[];
43
+ /**
44
+ * Webhook events related to this customer
45
+ */
46
+ webhookEvents: WebhookEventExportData[];
47
+ }
48
+ export interface SubscriptionExportData {
49
+ id: string;
50
+ stripeSubscriptionId: string | null;
51
+ tier: string;
52
+ status: string;
53
+ seatCount: number;
54
+ currentPeriodStart: string | null;
55
+ currentPeriodEnd: string | null;
56
+ canceledAt: string | null;
57
+ createdAt: string;
58
+ updatedAt: string;
59
+ }
60
+ export interface InvoiceExportData {
61
+ id: string;
62
+ stripeInvoiceId: string;
63
+ amountCents: number;
64
+ currency: string;
65
+ status: string;
66
+ invoiceNumber: string | null;
67
+ paidAt: string | null;
68
+ periodStart: string | null;
69
+ periodEnd: string | null;
70
+ createdAt: string;
71
+ }
72
+ export interface LicenseKeyExportData {
73
+ id: string;
74
+ keyExpiry: string;
75
+ isActive: boolean;
76
+ generatedAt: string;
77
+ revokedAt: string | null;
78
+ revocationReason: string | null;
79
+ }
80
+ export interface WebhookEventExportData {
81
+ id: string;
82
+ stripeEventId: string;
83
+ eventType: string;
84
+ processedAt: string;
85
+ success: boolean;
86
+ }
87
+ /**
88
+ * Result of a data deletion operation
89
+ */
90
+ export interface DeletionResult {
91
+ success: boolean;
92
+ customerId: string;
93
+ deletedAt: string;
94
+ counts: {
95
+ subscriptions: number;
96
+ invoices: number;
97
+ licenseKeys: number;
98
+ webhookEvents: number;
99
+ };
100
+ stripeDeleted: boolean;
101
+ errors: string[];
102
+ }
103
+ //# sourceMappingURL=gdpr-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gdpr-types.d.ts","sourceRoot":"","sources":["../../../src/billing/gdpr-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,IAAI,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAMrD,MAAM,WAAW,2BAA2B;IAC1C;;OAEG;IACH,EAAE,EAAE,oBAAoB,CAAA;IAExB;;OAEG;IACH,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B;AAMD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,QAAQ,EAAE;QACR,UAAU,EAAE,MAAM,CAAA;QAClB,UAAU,EAAE,MAAM,CAAA;QAClB,MAAM,EAAE,MAAM,CAAA;QACd,OAAO,EAAE,KAAK,CAAA;KACf,CAAA;IAED;;OAEG;IACH,aAAa,EAAE,sBAAsB,EAAE,CAAA;IAEvC;;OAEG;IACH,QAAQ,EAAE,iBAAiB,EAAE,CAAA;IAE7B;;OAEG;IACH,WAAW,EAAE,oBAAoB,EAAE,CAAA;IAEnC;;OAEG;IACH,aAAa,EAAE,sBAAsB,EAAE,CAAA;CACxC;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAA;IACV,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,eAAe,EAAE,MAAM,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,OAAO,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;CAChC;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAA;IACV,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;CACjB;AAMD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE;QACN,aAAa,EAAE,MAAM,CAAA;QACrB,QAAQ,EAAE,MAAM,CAAA;QAChB,WAAW,EAAE,MAAM,CAAA;QACnB,aAAa,EAAE,MAAM,CAAA;KACtB,CAAA;IACD,aAAa,EAAE,OAAO,CAAA;IACtB,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * SMI-1068: GDPR Compliance Types
3
+ *
4
+ * Type definitions for GDPR data export and deletion operations.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=gdpr-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gdpr-types.js","sourceRoot":"","sources":["../../../src/billing/gdpr-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * SMI-1069: Stripe Reconciliation Helpers
3
+ *
4
+ * Helper functions for mapping Stripe statuses to local statuses.
5
+ */
6
+ import type Stripe from 'stripe';
7
+ import type { SubscriptionStatus } from './types.js';
8
+ /**
9
+ * Map Stripe subscription status to local subscription status
10
+ */
11
+ export declare function mapStripeStatus(stripeStatus: Stripe.Subscription.Status): SubscriptionStatus;
12
+ /**
13
+ * Map Stripe invoice status to local invoice status
14
+ */
15
+ export declare function mapInvoiceStatus(stripeStatus: Stripe.Invoice.Status | null): string;
16
+ //# sourceMappingURL=reconciliation-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reconciliation-helpers.d.ts","sourceRoot":"","sources":["../../../src/billing/reconciliation-helpers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAA;AAChC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAMpD;;GAEG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,kBAAkB,CAqB5F;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,MAAM,CAenF"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * SMI-1069: Stripe Reconciliation Helpers
3
+ *
4
+ * Helper functions for mapping Stripe statuses to local statuses.
5
+ */
6
+ // ============================================================================
7
+ // Status Mapping Functions
8
+ // ============================================================================
9
+ /**
10
+ * Map Stripe subscription status to local subscription status
11
+ */
12
+ export function mapStripeStatus(stripeStatus) {
13
+ switch (stripeStatus) {
14
+ case 'active':
15
+ return 'active';
16
+ case 'past_due':
17
+ return 'past_due';
18
+ case 'canceled':
19
+ return 'canceled';
20
+ case 'trialing':
21
+ return 'trialing';
22
+ case 'paused':
23
+ return 'paused';
24
+ case 'incomplete':
25
+ return 'incomplete';
26
+ case 'incomplete_expired':
27
+ return 'incomplete_expired';
28
+ case 'unpaid':
29
+ return 'unpaid';
30
+ default:
31
+ return 'active';
32
+ }
33
+ }
34
+ /**
35
+ * Map Stripe invoice status to local invoice status
36
+ */
37
+ export function mapInvoiceStatus(stripeStatus) {
38
+ switch (stripeStatus) {
39
+ case 'paid':
40
+ return 'paid';
41
+ case 'open':
42
+ return 'open';
43
+ case 'draft':
44
+ return 'draft';
45
+ case 'void':
46
+ return 'void';
47
+ case 'uncollectible':
48
+ return 'uncollectible';
49
+ default:
50
+ return 'open';
51
+ }
52
+ }
53
+ //# sourceMappingURL=reconciliation-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reconciliation-helpers.js","sourceRoot":"","sources":["../../../src/billing/reconciliation-helpers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,YAAwC;IACtE,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAA;QACjB,KAAK,UAAU;YACb,OAAO,UAAU,CAAA;QACnB,KAAK,UAAU;YACb,OAAO,UAAU,CAAA;QACnB,KAAK,UAAU;YACb,OAAO,UAAU,CAAA;QACnB,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAA;QACjB,KAAK,YAAY;YACf,OAAO,YAAY,CAAA;QACrB,KAAK,oBAAoB;YACvB,OAAO,oBAAoB,CAAA;QAC7B,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAA;QACjB;YACE,OAAO,QAAQ,CAAA;IACnB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,YAA0C;IACzE,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,MAAM;YACT,OAAO,MAAM,CAAA;QACf,KAAK,MAAM;YACT,OAAO,MAAM,CAAA;QACf,KAAK,OAAO;YACV,OAAO,OAAO,CAAA;QAChB,KAAK,MAAM;YACT,OAAO,MAAM,CAAA;QACf,KAAK,eAAe;YAClB,OAAO,eAAe,CAAA;QACxB;YACE,OAAO,MAAM,CAAA;IACjB,CAAC;AACH,CAAC"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * SMI-1069: Stripe Reconciliation Types
3
+ *
4
+ * Type definitions for the reconciliation job.
5
+ */
6
+ import type { Database as BetterSqliteDatabase } from 'better-sqlite3';
7
+ import type { StripeClient } from './StripeClient.js';
8
+ export interface StripeReconciliationJobConfig {
9
+ /**
10
+ * StripeClient for API calls
11
+ */
12
+ stripeClient: StripeClient;
13
+ /**
14
+ * Database connection
15
+ */
16
+ db: BetterSqliteDatabase;
17
+ /**
18
+ * Whether to automatically fix discrepancies
19
+ * @default false
20
+ */
21
+ autoFix?: boolean;
22
+ /**
23
+ * Maximum subscriptions to process per run
24
+ * @default 100
25
+ */
26
+ batchSize?: number;
27
+ }
28
+ export type DiscrepancyType = 'status_mismatch' | 'missing_local' | 'missing_stripe' | 'tier_mismatch' | 'seat_count_mismatch' | 'period_mismatch' | 'invoice_status_mismatch' | 'invoice_amount_mismatch';
29
+ export interface Discrepancy {
30
+ type: DiscrepancyType;
31
+ entityType: 'subscription' | 'invoice';
32
+ entityId: string;
33
+ stripeId: string;
34
+ localValue: string | number | null;
35
+ stripeValue: string | number | null;
36
+ description: string;
37
+ fixed: boolean;
38
+ }
39
+ export interface ReconciliationResult {
40
+ success: boolean;
41
+ startedAt: string;
42
+ completedAt: string;
43
+ durationMs: number;
44
+ stats: {
45
+ subscriptionsChecked: number;
46
+ invoicesChecked: number;
47
+ discrepanciesFound: number;
48
+ discrepanciesFixed: number;
49
+ };
50
+ discrepancies: Discrepancy[];
51
+ errors: string[];
52
+ }
53
+ export interface LocalSubscription {
54
+ id: string;
55
+ customerId: string;
56
+ stripeSubscriptionId: string;
57
+ stripeCustomerId: string;
58
+ tier: string;
59
+ status: string;
60
+ seatCount: number;
61
+ currentPeriodStart: string | null;
62
+ currentPeriodEnd: string | null;
63
+ }
64
+ export interface LocalInvoice {
65
+ id: string;
66
+ customerId: string;
67
+ stripeInvoiceId: string;
68
+ amountCents: number;
69
+ status: string;
70
+ }
71
+ //# sourceMappingURL=reconciliation-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reconciliation-types.d.ts","sourceRoot":"","sources":["../../../src/billing/reconciliation-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,IAAI,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAMrD,MAAM,WAAW,6BAA6B;IAC5C;;OAEG;IACH,YAAY,EAAE,YAAY,CAAA;IAE1B;;OAEG;IACH,EAAE,EAAE,oBAAoB,CAAA;IAExB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAMD,MAAM,MAAM,eAAe,GACvB,iBAAiB,GACjB,eAAe,GACf,gBAAgB,GAChB,eAAe,GACf,qBAAqB,GACrB,iBAAiB,GACjB,yBAAyB,GACzB,yBAAyB,CAAA;AAE7B,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,eAAe,CAAA;IACrB,UAAU,EAAE,cAAc,GAAG,SAAS,CAAA;IACtC,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;IAClC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;IACnC,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,OAAO,CAAA;CACf;AAMD,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE;QACL,oBAAoB,EAAE,MAAM,CAAA;QAC5B,eAAe,EAAE,MAAM,CAAA;QACvB,kBAAkB,EAAE,MAAM,CAAA;QAC1B,kBAAkB,EAAE,MAAM,CAAA;KAC3B,CAAA;IACD,aAAa,EAAE,WAAW,EAAE,CAAA;IAC5B,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB;AAMD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,gBAAgB,EAAE,MAAM,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,MAAM,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;CACf"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * SMI-1069: Stripe Reconciliation Types
3
+ *
4
+ * Type definitions for the reconciliation job.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=reconciliation-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reconciliation-types.js","sourceRoot":"","sources":["../../../src/billing/reconciliation-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}