@skillsmith/core 0.6.2 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +16 -0
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/src/api/client.d.ts.map +1 -1
  5. package/dist/src/api/client.events.d.ts.map +1 -1
  6. package/dist/src/api/client.events.js +10 -1
  7. package/dist/src/api/client.events.js.map +1 -1
  8. package/dist/src/api/client.health.d.ts.map +1 -1
  9. package/dist/src/api/client.health.js +7 -1
  10. package/dist/src/api/client.health.js.map +1 -1
  11. package/dist/src/api/client.js +11 -1
  12. package/dist/src/api/client.js.map +1 -1
  13. package/dist/src/api/utils.d.ts +14 -3
  14. package/dist/src/api/utils.d.ts.map +1 -1
  15. package/dist/src/api/utils.js +14 -4
  16. package/dist/src/api/utils.js.map +1 -1
  17. package/dist/src/db/createDatabase.d.ts.map +1 -1
  18. package/dist/src/db/createDatabase.js +18 -2
  19. package/dist/src/db/createDatabase.js.map +1 -1
  20. package/dist/src/db/drivers/betterSqlite3Driver.d.ts +7 -0
  21. package/dist/src/db/drivers/betterSqlite3Driver.d.ts.map +1 -1
  22. package/dist/src/db/drivers/betterSqlite3Driver.js +21 -1
  23. package/dist/src/db/drivers/betterSqlite3Driver.js.map +1 -1
  24. package/dist/src/db/drivers/corruption.d.ts +31 -0
  25. package/dist/src/db/drivers/corruption.d.ts.map +1 -0
  26. package/dist/src/db/drivers/corruption.js +57 -0
  27. package/dist/src/db/drivers/corruption.js.map +1 -0
  28. package/dist/src/db/drivers/sqljsDriver.d.ts.map +1 -1
  29. package/dist/src/db/drivers/sqljsDriver.js +48 -7
  30. package/dist/src/db/drivers/sqljsDriver.js.map +1 -1
  31. package/dist/src/exports/services.d.ts +0 -1
  32. package/dist/src/exports/services.d.ts.map +1 -1
  33. package/dist/src/exports/services.js +14 -3
  34. package/dist/src/exports/services.js.map +1 -1
  35. package/dist/src/index.d.ts +4 -1
  36. package/dist/src/index.d.ts.map +1 -1
  37. package/dist/src/index.js +8 -1
  38. package/dist/src/index.js.map +1 -1
  39. package/dist/src/indexer/meta-list-filter.d.ts +55 -0
  40. package/dist/src/indexer/meta-list-filter.d.ts.map +1 -0
  41. package/dist/src/indexer/meta-list-filter.js +65 -0
  42. package/dist/src/indexer/meta-list-filter.js.map +1 -0
  43. package/dist/src/indexer/meta-list-filter.test.d.ts +7 -0
  44. package/dist/src/indexer/meta-list-filter.test.d.ts.map +1 -0
  45. package/dist/src/indexer/meta-list-filter.test.js +139 -0
  46. package/dist/src/indexer/meta-list-filter.test.js.map +1 -0
  47. package/dist/src/types.d.ts +12 -0
  48. package/dist/src/types.d.ts.map +1 -1
  49. package/dist/tests/api/client.auth.test.js +50 -0
  50. package/dist/tests/api/client.auth.test.js.map +1 -1
  51. package/dist/tests/api/utils.test.js +7 -3
  52. package/dist/tests/api/utils.test.js.map +1 -1
  53. package/dist/tests/db/corruption.test.d.ts +11 -0
  54. package/dist/tests/db/corruption.test.d.ts.map +1 -0
  55. package/dist/tests/db/corruption.test.js +109 -0
  56. package/dist/tests/db/corruption.test.js.map +1 -0
  57. package/dist/tests/{billing/stripe-validators.test.d.ts → security/sanitization-stripe-ids.test.d.ts} +1 -1
  58. package/dist/tests/security/sanitization-stripe-ids.test.d.ts.map +1 -0
  59. package/dist/tests/{billing/stripe-validators.test.js → security/sanitization-stripe-ids.test.js} +1 -1
  60. package/dist/tests/security/sanitization-stripe-ids.test.js.map +1 -0
  61. package/dist/tests/shared.test.js.map +1 -1
  62. package/dist/tests/skill-scanner/allowlist.test.js +5 -1
  63. package/dist/tests/skill-scanner/allowlist.test.js.map +1 -1
  64. package/package.json +2 -7
  65. package/dist/src/billing/BillingService.d.ts +0 -101
  66. package/dist/src/billing/BillingService.d.ts.map +0 -1
  67. package/dist/src/billing/BillingService.helpers.d.ts +0 -15
  68. package/dist/src/billing/BillingService.helpers.d.ts.map +0 -1
  69. package/dist/src/billing/BillingService.helpers.js +0 -45
  70. package/dist/src/billing/BillingService.helpers.js.map +0 -1
  71. package/dist/src/billing/BillingService.js +0 -263
  72. package/dist/src/billing/BillingService.js.map +0 -1
  73. package/dist/src/billing/BillingService.types.d.ts +0 -52
  74. package/dist/src/billing/BillingService.types.d.ts.map +0 -1
  75. package/dist/src/billing/BillingService.types.js +0 -6
  76. package/dist/src/billing/BillingService.types.js.map +0 -1
  77. package/dist/src/billing/GDPRComplianceService.d.ts +0 -81
  78. package/dist/src/billing/GDPRComplianceService.d.ts.map +0 -1
  79. package/dist/src/billing/GDPRComplianceService.js +0 -361
  80. package/dist/src/billing/GDPRComplianceService.js.map +0 -1
  81. package/dist/src/billing/StripeClient.d.ts +0 -119
  82. package/dist/src/billing/StripeClient.d.ts.map +0 -1
  83. package/dist/src/billing/StripeClient.js +0 -405
  84. package/dist/src/billing/StripeClient.js.map +0 -1
  85. package/dist/src/billing/StripeReconciliationJob.d.ts +0 -50
  86. package/dist/src/billing/StripeReconciliationJob.d.ts.map +0 -1
  87. package/dist/src/billing/StripeReconciliationJob.js +0 -365
  88. package/dist/src/billing/StripeReconciliationJob.js.map +0 -1
  89. package/dist/src/billing/StripeWebhookHandler.d.ts +0 -49
  90. package/dist/src/billing/StripeWebhookHandler.d.ts.map +0 -1
  91. package/dist/src/billing/StripeWebhookHandler.js +0 -162
  92. package/dist/src/billing/StripeWebhookHandler.js.map +0 -1
  93. package/dist/src/billing/gdpr-types.d.ts +0 -103
  94. package/dist/src/billing/gdpr-types.d.ts.map +0 -1
  95. package/dist/src/billing/gdpr-types.js +0 -7
  96. package/dist/src/billing/gdpr-types.js.map +0 -1
  97. package/dist/src/billing/index.d.ts +0 -18
  98. package/dist/src/billing/index.d.ts.map +0 -1
  99. package/dist/src/billing/index.js +0 -19
  100. package/dist/src/billing/index.js.map +0 -1
  101. package/dist/src/billing/reconciliation-helpers.d.ts +0 -16
  102. package/dist/src/billing/reconciliation-helpers.d.ts.map +0 -1
  103. package/dist/src/billing/reconciliation-helpers.js +0 -53
  104. package/dist/src/billing/reconciliation-helpers.js.map +0 -1
  105. package/dist/src/billing/reconciliation-types.d.ts +0 -71
  106. package/dist/src/billing/reconciliation-types.d.ts.map +0 -1
  107. package/dist/src/billing/reconciliation-types.js +0 -7
  108. package/dist/src/billing/reconciliation-types.js.map +0 -1
  109. package/dist/src/billing/stripe-client-types.d.ts +0 -45
  110. package/dist/src/billing/stripe-client-types.d.ts.map +0 -1
  111. package/dist/src/billing/stripe-client-types.js +0 -7
  112. package/dist/src/billing/stripe-client-types.js.map +0 -1
  113. package/dist/src/billing/stripe-helpers.d.ts +0 -17
  114. package/dist/src/billing/stripe-helpers.d.ts.map +0 -1
  115. package/dist/src/billing/stripe-helpers.js +0 -50
  116. package/dist/src/billing/stripe-helpers.js.map +0 -1
  117. package/dist/src/billing/types.d.ts +0 -266
  118. package/dist/src/billing/types.d.ts.map +0 -1
  119. package/dist/src/billing/types.js +0 -23
  120. package/dist/src/billing/types.js.map +0 -1
  121. package/dist/src/billing/webhook-handlers.d.ts +0 -56
  122. package/dist/src/billing/webhook-handlers.d.ts.map +0 -1
  123. package/dist/src/billing/webhook-handlers.js +0 -303
  124. package/dist/src/billing/webhook-handlers.js.map +0 -1
  125. package/dist/src/billing/webhook-types.d.ts +0 -42
  126. package/dist/src/billing/webhook-types.d.ts.map +0 -1
  127. package/dist/src/billing/webhook-types.js +0 -7
  128. package/dist/src/billing/webhook-types.js.map +0 -1
  129. package/dist/tests/billing/BillingService.test.d.ts +0 -7
  130. package/dist/tests/billing/BillingService.test.d.ts.map +0 -1
  131. package/dist/tests/billing/BillingService.test.js +0 -168
  132. package/dist/tests/billing/BillingService.test.js.map +0 -1
  133. package/dist/tests/billing/GDPRCompliance.test.d.ts +0 -7
  134. package/dist/tests/billing/GDPRCompliance.test.d.ts.map +0 -1
  135. package/dist/tests/billing/GDPRCompliance.test.js +0 -380
  136. package/dist/tests/billing/GDPRCompliance.test.js.map +0 -1
  137. package/dist/tests/billing/StripeClient.test.d.ts +0 -18
  138. package/dist/tests/billing/StripeClient.test.d.ts.map +0 -1
  139. package/dist/tests/billing/StripeClient.test.js +0 -566
  140. package/dist/tests/billing/StripeClient.test.js.map +0 -1
  141. package/dist/tests/billing/StripeReconciliation.test.d.ts +0 -7
  142. package/dist/tests/billing/StripeReconciliation.test.d.ts.map +0 -1
  143. package/dist/tests/billing/StripeReconciliation.test.js +0 -266
  144. package/dist/tests/billing/StripeReconciliation.test.js.map +0 -1
  145. package/dist/tests/billing/StripeWebhookHandler.test.d.ts +0 -16
  146. package/dist/tests/billing/StripeWebhookHandler.test.d.ts.map +0 -1
  147. package/dist/tests/billing/StripeWebhookHandler.test.js +0 -240
  148. package/dist/tests/billing/StripeWebhookHandler.test.js.map +0 -1
  149. package/dist/tests/billing/stripe-helpers.test.d.ts +0 -7
  150. package/dist/tests/billing/stripe-helpers.test.d.ts.map +0 -1
  151. package/dist/tests/billing/stripe-helpers.test.js +0 -91
  152. package/dist/tests/billing/stripe-helpers.test.js.map +0 -1
  153. package/dist/tests/billing/stripe-validators.test.d.ts.map +0 -1
  154. package/dist/tests/billing/stripe-validators.test.js.map +0 -1
  155. package/dist/tests/billing/webhook-handlers.test.d.ts +0 -16
  156. package/dist/tests/billing/webhook-handlers.test.d.ts.map +0 -1
  157. package/dist/tests/billing/webhook-handlers.test.js +0 -519
  158. package/dist/tests/billing/webhook-handlers.test.js.map +0 -1
@@ -1,405 +0,0 @@
1
- /**
2
- * SMI-1062: Stripe Client Wrapper
3
- *
4
- * Provides a type-safe wrapper around the Stripe SDK with:
5
- * - Customer management
6
- * - Subscription management
7
- * - Checkout session creation
8
- * - Customer portal sessions
9
- * - Invoice retrieval
10
- * - Webhook signature verification
11
- */
12
- import Stripe from 'stripe';
13
- import { createLogger } from '../utils/logger.js';
14
- import { BillingError } from './types.js';
15
- import { mapSubscriptionStatus as mapStripeSubscriptionStatus } from './stripe-helpers.js';
16
- const logger = createLogger('StripeClient');
17
- /** Stripe API client wrapper for subscription management and billing operations */
18
- export class StripeClient {
19
- stripe;
20
- webhookSecret;
21
- prices;
22
- appUrl;
23
- constructor(config) {
24
- this.stripe = new Stripe(config.secretKey, {
25
- // Use SDK default API version (2025-11-17.clover for v20)
26
- typescript: true,
27
- });
28
- this.webhookSecret = config.webhookSecret;
29
- this.prices = config.prices;
30
- this.appUrl = config.appUrl ?? 'https://skillsmith.app';
31
- logger.info('Stripe client initialized');
32
- }
33
- // --- Customer Management ---
34
- /**
35
- * Create a new Stripe customer
36
- */
37
- async createCustomer(params) {
38
- try {
39
- const customer = await this.stripe.customers.create({
40
- email: params.email,
41
- name: params.name,
42
- metadata: {
43
- ...params.metadata,
44
- source: 'skillsmith',
45
- },
46
- });
47
- logger.info('Customer created', { customerId: customer.id });
48
- return customer.id;
49
- }
50
- catch (error) {
51
- const errorMsg = error instanceof Error ? error.message : String(error);
52
- logger.error('Failed to create customer', undefined, {
53
- errorDetails: errorMsg,
54
- email: params.email,
55
- });
56
- throw new BillingError('Failed to create customer', 'STRIPE_API_ERROR', {
57
- originalError: errorMsg,
58
- });
59
- }
60
- }
61
- /**
62
- * Get a Stripe customer by ID
63
- */
64
- async getCustomer(customerId) {
65
- try {
66
- const customer = await this.stripe.customers.retrieve(customerId);
67
- if (customer.deleted) {
68
- return null;
69
- }
70
- return customer;
71
- }
72
- catch (error) {
73
- if (error instanceof Stripe.errors.StripeError && error.code === 'resource_missing') {
74
- return null;
75
- }
76
- throw error;
77
- }
78
- }
79
- /**
80
- * Update a Stripe customer
81
- */
82
- async updateCustomer(customerId, params) {
83
- return this.stripe.customers.update(customerId, params);
84
- }
85
- // --- Checkout Session ---
86
- /**
87
- * Create a Stripe Checkout session for subscription
88
- */
89
- async createCheckoutSession(request) {
90
- const priceId = this.getPriceId(request.tier, request.billingPeriod);
91
- if (!priceId) {
92
- throw new BillingError(`No price configured for tier: ${request.tier}`, 'INVALID_TIER', {
93
- tier: request.tier,
94
- billingPeriod: request.billingPeriod,
95
- });
96
- }
97
- const lineItems = [
98
- {
99
- price: priceId,
100
- quantity: request.seatCount ?? 1,
101
- },
102
- ];
103
- const sessionParams = {
104
- mode: 'subscription',
105
- line_items: lineItems,
106
- success_url: request.successUrl,
107
- cancel_url: request.cancelUrl,
108
- metadata: {
109
- tier: request.tier,
110
- billingPeriod: request.billingPeriod,
111
- seatCount: String(request.seatCount ?? 1),
112
- ...request.metadata,
113
- },
114
- subscription_data: {
115
- metadata: {
116
- tier: request.tier,
117
- seatCount: String(request.seatCount ?? 1),
118
- },
119
- },
120
- };
121
- // Attach to existing customer or create new
122
- if (request.customerId) {
123
- sessionParams.customer = request.customerId;
124
- }
125
- else if (request.email) {
126
- sessionParams.customer_email = request.email;
127
- }
128
- // Allow seat quantity changes for team/enterprise
129
- if (request.tier === 'team' || request.tier === 'enterprise') {
130
- sessionParams.line_items[0].adjustable_quantity = {
131
- enabled: true,
132
- minimum: 1,
133
- maximum: 1000,
134
- };
135
- }
136
- try {
137
- const session = await this.stripe.checkout.sessions.create(sessionParams);
138
- logger.info('Checkout session created', {
139
- sessionId: session.id,
140
- tier: request.tier,
141
- seatCount: request.seatCount,
142
- });
143
- return {
144
- sessionId: session.id,
145
- url: session.url,
146
- };
147
- }
148
- catch (error) {
149
- const errorMsg = error instanceof Error ? error.message : String(error);
150
- logger.error('Failed to create checkout session', undefined, { errorDetails: errorMsg });
151
- throw new BillingError('Failed to create checkout session', 'STRIPE_API_ERROR', {
152
- originalError: errorMsg,
153
- });
154
- }
155
- }
156
- /**
157
- * Retrieve a checkout session
158
- */
159
- async getCheckoutSession(sessionId) {
160
- return this.stripe.checkout.sessions.retrieve(sessionId, {
161
- expand: ['subscription', 'customer'],
162
- });
163
- }
164
- // --- Subscription Management ---
165
- /**
166
- * Get a subscription by ID
167
- */
168
- async getSubscription(subscriptionId) {
169
- try {
170
- return await this.stripe.subscriptions.retrieve(subscriptionId);
171
- }
172
- catch (error) {
173
- if (error instanceof Stripe.errors.StripeError && error.code === 'resource_missing') {
174
- return null;
175
- }
176
- throw error;
177
- }
178
- }
179
- /**
180
- * List subscriptions for a customer
181
- */
182
- async listSubscriptions(customerId) {
183
- const subscriptions = await this.stripe.subscriptions.list({
184
- customer: customerId,
185
- status: 'all',
186
- expand: ['data.default_payment_method'],
187
- });
188
- return subscriptions.data;
189
- }
190
- /**
191
- * Update a subscription (tier change or seat count)
192
- */
193
- async updateSubscription(subscriptionId, params) {
194
- const subscription = await this.getSubscription(subscriptionId);
195
- if (!subscription) {
196
- throw new BillingError('Subscription not found', 'SUBSCRIPTION_NOT_FOUND');
197
- }
198
- const updateParams = {
199
- proration_behavior: params.prorate !== false ? 'create_prorations' : 'none',
200
- };
201
- // Update price if tier or billing period changed
202
- if (params.tier && params.billingPeriod) {
203
- const newPriceId = this.getPriceId(params.tier, params.billingPeriod);
204
- if (newPriceId) {
205
- updateParams.items = [
206
- {
207
- id: subscription.items.data[0].id,
208
- price: newPriceId,
209
- quantity: params.seatCount ?? subscription.items.data[0].quantity,
210
- },
211
- ];
212
- updateParams.metadata = {
213
- ...subscription.metadata,
214
- tier: params.tier,
215
- seatCount: String(params.seatCount ?? subscription.items.data[0].quantity),
216
- };
217
- }
218
- }
219
- else if (params.seatCount !== undefined) {
220
- // Just update seat count
221
- updateParams.items = [
222
- {
223
- id: subscription.items.data[0].id,
224
- quantity: params.seatCount,
225
- },
226
- ];
227
- updateParams.metadata = {
228
- ...subscription.metadata,
229
- seatCount: String(params.seatCount),
230
- };
231
- }
232
- try {
233
- const updated = await this.stripe.subscriptions.update(subscriptionId, updateParams);
234
- logger.info('Subscription updated', { subscriptionId, params });
235
- return updated;
236
- }
237
- catch (error) {
238
- const errorMsg = error instanceof Error ? error.message : String(error);
239
- logger.error('Failed to update subscription', undefined, {
240
- errorDetails: errorMsg,
241
- subscriptionId,
242
- });
243
- throw new BillingError('Failed to update subscription', 'STRIPE_API_ERROR', {
244
- originalError: errorMsg,
245
- });
246
- }
247
- }
248
- /**
249
- * Cancel a subscription
250
- */
251
- async cancelSubscription(subscriptionId, options) {
252
- try {
253
- if (options?.immediately) {
254
- return await this.stripe.subscriptions.cancel(subscriptionId, {
255
- cancellation_details: {
256
- comment: options.feedback,
257
- },
258
- });
259
- }
260
- else {
261
- // Cancel at period end
262
- return await this.stripe.subscriptions.update(subscriptionId, {
263
- cancel_at_period_end: true,
264
- cancellation_details: {
265
- comment: options?.feedback,
266
- },
267
- });
268
- }
269
- }
270
- catch (error) {
271
- const errorMsg = error instanceof Error ? error.message : String(error);
272
- logger.error('Failed to cancel subscription', undefined, {
273
- errorDetails: errorMsg,
274
- subscriptionId,
275
- });
276
- throw new BillingError('Failed to cancel subscription', 'STRIPE_API_ERROR', {
277
- originalError: errorMsg,
278
- });
279
- }
280
- }
281
- /**
282
- * Reactivate a canceled subscription (before period end)
283
- */
284
- async reactivateSubscription(subscriptionId) {
285
- return this.stripe.subscriptions.update(subscriptionId, {
286
- cancel_at_period_end: false,
287
- });
288
- }
289
- // --- Customer Portal ---
290
- /**
291
- * Create a Stripe Customer Portal session
292
- */
293
- async createPortalSession(request) {
294
- try {
295
- // Need to get Stripe customer ID from our customer ID
296
- // This assumes customerId is the Stripe customer ID
297
- const session = await this.stripe.billingPortal.sessions.create({
298
- customer: request.customerId,
299
- return_url: request.returnUrl,
300
- });
301
- logger.info('Portal session created', { customerId: request.customerId });
302
- return {
303
- url: session.url,
304
- };
305
- }
306
- catch (error) {
307
- const errorMsg = error instanceof Error ? error.message : String(error);
308
- logger.error('Failed to create portal session', undefined, {
309
- errorDetails: errorMsg,
310
- customerId: request.customerId,
311
- });
312
- throw new BillingError('Failed to create portal session', 'STRIPE_API_ERROR', {
313
- originalError: errorMsg,
314
- });
315
- }
316
- }
317
- // --- Invoice Management ---
318
- /**
319
- * List invoices for a customer
320
- */
321
- async listInvoices(customerId, options) {
322
- const invoices = await this.stripe.invoices.list({
323
- customer: customerId,
324
- limit: options?.limit ?? 10,
325
- starting_after: options?.startingAfter,
326
- });
327
- return {
328
- invoices: invoices.data,
329
- hasMore: invoices.has_more,
330
- };
331
- }
332
- /**
333
- * Get a specific invoice
334
- */
335
- async getInvoice(invoiceId) {
336
- try {
337
- return await this.stripe.invoices.retrieve(invoiceId);
338
- }
339
- catch (error) {
340
- if (error instanceof Stripe.errors.StripeError && error.code === 'resource_missing') {
341
- return null;
342
- }
343
- throw error;
344
- }
345
- }
346
- /**
347
- * Get upcoming invoice preview (preview of next charge)
348
- * Note: Stripe v20+ uses createPreview instead of retrieveUpcoming
349
- */
350
- async getUpcomingInvoice(customerId) {
351
- try {
352
- return await this.stripe.invoices.createPreview({
353
- customer: customerId,
354
- });
355
- }
356
- catch (error) {
357
- if (error instanceof Stripe.errors.StripeError && error.code === 'invoice_upcoming_none') {
358
- return null;
359
- }
360
- throw error;
361
- }
362
- }
363
- // --- Webhook Handling ---
364
- /**
365
- * Verify and parse a webhook event
366
- */
367
- verifyWebhookSignature(payload, signature) {
368
- try {
369
- return this.stripe.webhooks.constructEvent(payload, signature, this.webhookSecret);
370
- }
371
- catch (error) {
372
- logger.warn('Webhook signature verification failed', {
373
- error: error instanceof Error ? error.message : String(error),
374
- });
375
- throw new BillingError('Invalid webhook signature', 'WEBHOOK_SIGNATURE_INVALID');
376
- }
377
- }
378
- // --- Helper Methods ---
379
- /**
380
- * Get the price ID for a tier and billing period
381
- */
382
- getPriceId(tier, billingPeriod) {
383
- if (tier === 'community') {
384
- return null; // Community tier is free, no Stripe price
385
- }
386
- const tierPrices = this.prices[tier];
387
- if (!tierPrices) {
388
- return null;
389
- }
390
- return tierPrices[billingPeriod];
391
- }
392
- /**
393
- * Map Stripe subscription status to our status
394
- */
395
- static mapSubscriptionStatus(stripeStatus) {
396
- return mapStripeSubscriptionStatus(stripeStatus);
397
- }
398
- /**
399
- * Get the underlying Stripe instance (for advanced operations)
400
- */
401
- getStripeInstance() {
402
- return this.stripe;
403
- }
404
- }
405
- //# sourceMappingURL=StripeClient.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StripeClient.js","sourceRoot":"","sources":["../../../src/billing/StripeClient.ts"],"names":[],"mappings":"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"}
@@ -1,50 +0,0 @@
1
- /**
2
- * SMI-1069: Stripe Reconciliation Job
3
- *
4
- * Periodically reconciles local subscription and invoice data with Stripe.
5
- * Identifies and reports discrepancies to ensure data consistency.
6
- *
7
- * Features:
8
- * - Subscription status sync
9
- * - Invoice status verification
10
- * - Missing data detection
11
- * - Automatic correction (optional)
12
- * - Detailed reporting
13
- */
14
- import type { StripeReconciliationJobConfig, ReconciliationResult } from './reconciliation-types.js';
15
- export type { StripeReconciliationJobConfig, DiscrepancyType, Discrepancy, ReconciliationResult, } from './reconciliation-types.js';
16
- /**
17
- * Stripe Reconciliation Job
18
- *
19
- * @example
20
- * ```typescript
21
- * const job = new StripeReconciliationJob({
22
- * stripeClient,
23
- * db,
24
- * autoFix: true,
25
- * });
26
- *
27
- * // Run reconciliation
28
- * const result = await job.run();
29
- * console.log(`Found ${result.discrepancies.length} discrepancies`);
30
- * ```
31
- */
32
- export declare class StripeReconciliationJob {
33
- private readonly stripe;
34
- private readonly db;
35
- private readonly autoFix;
36
- private readonly batchSize;
37
- constructor(config: StripeReconciliationJobConfig);
38
- /**
39
- * Run the reconciliation job
40
- */
41
- run(): Promise<ReconciliationResult>;
42
- private getLocalSubscriptions;
43
- private reconcileSubscription;
44
- private getLocalInvoices;
45
- private reconcileInvoice;
46
- private fixDiscrepancy;
47
- private fixSubscriptionDiscrepancy;
48
- private fixInvoiceDiscrepancy;
49
- }
50
- //# sourceMappingURL=StripeReconciliationJob.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StripeReconciliationJob.d.ts","sourceRoot":"","sources":["../../../src/billing/StripeReconciliationJob.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,OAAO,KAAK,EACV,6BAA6B,EAE7B,oBAAoB,EAGrB,MAAM,2BAA2B,CAAA;AAGlC,YAAY,EACV,6BAA6B,EAC7B,eAAe,EACf,WAAW,EACX,oBAAoB,GACrB,MAAM,2BAA2B,CAAA;AAQlC;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAc;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;gBAEtB,MAAM,EAAE,6BAA6B;IAgBjD;;OAEG;IACG,GAAG,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAuF1C,OAAO,CAAC,qBAAqB;YAoBf,qBAAqB;IA0EnC,OAAO,CAAC,gBAAgB;YAgBV,gBAAgB;IAyD9B,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,0BAA0B;IA+ClC,OAAO,CAAC,qBAAqB;CA0B9B"}