@skillsmith/core 2.1.0 → 2.1.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.
- package/dist/.tsbuildinfo +1 -1
- package/dist/src/analysis/types.d.ts +2 -0
- package/dist/src/analysis/types.d.ts.map +1 -1
- package/dist/src/analysis/types.js +13 -1
- package/dist/src/analysis/types.js.map +1 -1
- package/dist/src/analytics/AnalyticsRepository.d.ts +4 -0
- package/dist/src/analytics/AnalyticsRepository.d.ts.map +1 -1
- package/dist/src/analytics/AnalyticsRepository.js +26 -44
- package/dist/src/analytics/AnalyticsRepository.js.map +1 -1
- package/dist/src/analytics/schema.d.ts +1 -1
- package/dist/src/analytics/schema.d.ts.map +1 -1
- package/dist/src/analytics/schema.js +68 -0
- package/dist/src/analytics/schema.js.map +1 -1
- package/dist/src/api/client.d.ts +33 -29
- package/dist/src/api/client.d.ts.map +1 -1
- package/dist/src/api/client.js +15 -10
- package/dist/src/api/client.js.map +1 -1
- package/dist/src/billing/BillingService.d.ts +139 -0
- package/dist/src/billing/BillingService.d.ts.map +1 -0
- package/dist/src/billing/BillingService.js +393 -0
- package/dist/src/billing/BillingService.js.map +1 -0
- package/dist/src/billing/GDPRComplianceService.d.ts +176 -0
- package/dist/src/billing/GDPRComplianceService.d.ts.map +1 -0
- package/dist/src/billing/GDPRComplianceService.js +361 -0
- package/dist/src/billing/GDPRComplianceService.js.map +1 -0
- package/dist/src/billing/StripeClient.d.ts +177 -0
- package/dist/src/billing/StripeClient.d.ts.map +1 -0
- package/dist/src/billing/StripeClient.js +462 -0
- package/dist/src/billing/StripeClient.js.map +1 -0
- package/dist/src/billing/StripeReconciliationJob.d.ts +95 -0
- package/dist/src/billing/StripeReconciliationJob.d.ts.map +1 -0
- package/dist/src/billing/StripeReconciliationJob.js +405 -0
- package/dist/src/billing/StripeReconciliationJob.js.map +1 -0
- package/dist/src/billing/StripeWebhookHandler.d.ts +92 -0
- package/dist/src/billing/StripeWebhookHandler.d.ts.map +1 -0
- package/dist/src/billing/StripeWebhookHandler.js +409 -0
- package/dist/src/billing/StripeWebhookHandler.js.map +1 -0
- package/dist/src/billing/index.d.ts +18 -0
- package/dist/src/billing/index.d.ts.map +1 -0
- package/dist/src/billing/index.js +19 -0
- package/dist/src/billing/index.js.map +1 -0
- package/dist/src/billing/types.d.ts +266 -0
- package/dist/src/billing/types.d.ts.map +1 -0
- package/dist/src/billing/types.js +23 -0
- package/dist/src/billing/types.js.map +1 -0
- package/dist/src/embeddings/hnsw-store.d.ts +568 -0
- package/dist/src/embeddings/hnsw-store.d.ts.map +1 -0
- package/dist/src/embeddings/hnsw-store.js +805 -0
- package/dist/src/embeddings/hnsw-store.js.map +1 -0
- package/dist/src/embeddings/index.d.ts +2 -0
- package/dist/src/embeddings/index.d.ts.map +1 -1
- package/dist/src/embeddings/index.js +2 -0
- package/dist/src/embeddings/index.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/learning/PatternStore.d.ts +457 -0
- package/dist/src/learning/PatternStore.d.ts.map +1 -0
- package/dist/src/learning/PatternStore.js +893 -0
- package/dist/src/learning/PatternStore.js.map +1 -0
- package/dist/src/learning/ReasoningBankIntegration.d.ts +403 -0
- package/dist/src/learning/ReasoningBankIntegration.d.ts.map +1 -0
- package/dist/src/learning/ReasoningBankIntegration.js +627 -0
- package/dist/src/learning/ReasoningBankIntegration.js.map +1 -0
- package/dist/src/learning/index.d.ts +15 -0
- package/dist/src/learning/index.d.ts.map +1 -0
- package/dist/src/learning/index.js +15 -0
- package/dist/src/learning/index.js.map +1 -0
- package/dist/src/routing/SONARouter.d.ts +154 -0
- package/dist/src/routing/SONARouter.d.ts.map +1 -0
- package/dist/src/routing/SONARouter.js +679 -0
- package/dist/src/routing/SONARouter.js.map +1 -0
- package/dist/src/routing/index.d.ts +9 -0
- package/dist/src/routing/index.d.ts.map +1 -0
- package/dist/src/routing/index.js +10 -0
- package/dist/src/routing/index.js.map +1 -0
- package/dist/src/routing/types.d.ts +331 -0
- package/dist/src/routing/types.d.ts.map +1 -0
- package/dist/src/routing/types.js +203 -0
- package/dist/src/routing/types.js.map +1 -0
- package/dist/src/scripts/__tests__/scan-imported-skills.test.js +5 -0
- package/dist/src/scripts/__tests__/scan-imported-skills.test.js.map +1 -1
- package/dist/src/security/SkillSandbox.d.ts +156 -0
- package/dist/src/security/SkillSandbox.d.ts.map +1 -0
- package/dist/src/security/SkillSandbox.js +303 -0
- package/dist/src/security/SkillSandbox.js.map +1 -0
- package/dist/src/security/index.d.ts +3 -1
- package/dist/src/security/index.d.ts.map +1 -1
- package/dist/src/security/index.js +5 -1
- package/dist/src/security/index.js.map +1 -1
- package/dist/src/security/rate-limiter/presets.d.ts +12 -0
- package/dist/src/security/rate-limiter/presets.d.ts.map +1 -1
- package/dist/src/security/rate-limiter/presets.js +12 -0
- package/dist/src/security/rate-limiter/presets.js.map +1 -1
- package/dist/src/security/sanitization.d.ts +85 -0
- package/dist/src/security/sanitization.d.ts.map +1 -1
- package/dist/src/security/sanitization.js +133 -0
- package/dist/src/security/sanitization.js.map +1 -1
- package/dist/src/security/scanner/SecurityScanner.d.ts +23 -0
- package/dist/src/security/scanner/SecurityScanner.d.ts.map +1 -1
- package/dist/src/security/scanner/SecurityScanner.js +232 -28
- package/dist/src/security/scanner/SecurityScanner.js.map +1 -1
- package/dist/src/security/scanner/patterns.d.ts +13 -0
- package/dist/src/security/scanner/patterns.d.ts.map +1 -1
- package/dist/src/security/scanner/patterns.js +51 -0
- package/dist/src/security/scanner/patterns.js.map +1 -1
- package/dist/src/security/scanner/types.d.ts +13 -1
- package/dist/src/security/scanner/types.d.ts.map +1 -1
- package/dist/src/security/scanner/weights.d.ts.map +1 -1
- package/dist/src/security/scanner/weights.js +1 -0
- package/dist/src/security/scanner/weights.js.map +1 -1
- package/dist/src/session/SessionManager.d.ts +7 -0
- package/dist/src/session/SessionManager.d.ts.map +1 -1
- package/dist/src/session/SessionManager.js +117 -10
- package/dist/src/session/SessionManager.js.map +1 -1
- package/dist/src/sync/SyncEngine.d.ts.map +1 -1
- package/dist/src/sync/SyncEngine.js +52 -32
- package/dist/src/sync/SyncEngine.js.map +1 -1
- package/dist/src/testing/MultiLLMProvider.d.ts +374 -0
- package/dist/src/testing/MultiLLMProvider.d.ts.map +1 -0
- package/dist/src/testing/MultiLLMProvider.js +720 -0
- package/dist/src/testing/MultiLLMProvider.js.map +1 -0
- package/dist/src/testing/index.d.ts +8 -0
- package/dist/src/testing/index.d.ts.map +1 -0
- package/dist/src/testing/index.js +9 -0
- package/dist/src/testing/index.js.map +1 -0
- package/dist/src/types.d.ts +3 -0
- package/dist/src/types.d.ts.map +1 -1
- package/dist/tests/SecurityScanner.test.js +337 -1
- package/dist/tests/SecurityScanner.test.js.map +1 -1
- package/dist/tests/billing/BillingService.test.d.ts +7 -0
- package/dist/tests/billing/BillingService.test.d.ts.map +1 -0
- package/dist/tests/billing/BillingService.test.js +168 -0
- package/dist/tests/billing/BillingService.test.js.map +1 -0
- package/dist/tests/billing/GDPRCompliance.test.d.ts +7 -0
- package/dist/tests/billing/GDPRCompliance.test.d.ts.map +1 -0
- package/dist/tests/billing/GDPRCompliance.test.js +195 -0
- package/dist/tests/billing/GDPRCompliance.test.js.map +1 -0
- package/dist/tests/billing/StripeReconciliation.test.d.ts +7 -0
- package/dist/tests/billing/StripeReconciliation.test.d.ts.map +1 -0
- package/dist/tests/billing/StripeReconciliation.test.js +266 -0
- package/dist/tests/billing/StripeReconciliation.test.js.map +1 -0
- package/dist/tests/billing/stripe-validators.test.d.ts +7 -0
- package/dist/tests/billing/stripe-validators.test.d.ts.map +1 -0
- package/dist/tests/billing/stripe-validators.test.js +107 -0
- package/dist/tests/billing/stripe-validators.test.js.map +1 -0
- package/dist/tests/embeddings/hnsw-store.test.d.ts +7 -0
- package/dist/tests/embeddings/hnsw-store.test.d.ts.map +1 -0
- package/dist/tests/embeddings/hnsw-store.test.js +295 -0
- package/dist/tests/embeddings/hnsw-store.test.js.map +1 -0
- package/dist/tests/integration/neural/e2e-learning.test.d.ts +17 -0
- package/dist/tests/integration/neural/e2e-learning.test.d.ts.map +1 -0
- package/dist/tests/integration/neural/e2e-learning.test.js +238 -0
- package/dist/tests/integration/neural/e2e-learning.test.js.map +1 -0
- package/dist/tests/integration/neural/helpers.d.ts +132 -0
- package/dist/tests/integration/neural/helpers.d.ts.map +1 -0
- package/dist/tests/integration/neural/helpers.js +287 -0
- package/dist/tests/integration/neural/helpers.js.map +1 -0
- package/dist/tests/integration/neural/personalization.test.d.ts +21 -0
- package/dist/tests/integration/neural/personalization.test.d.ts.map +1 -0
- package/dist/tests/integration/neural/personalization.test.js +304 -0
- package/dist/tests/integration/neural/personalization.test.js.map +1 -0
- package/dist/tests/integration/neural/preference-learner.test.d.ts +23 -0
- package/dist/tests/integration/neural/preference-learner.test.d.ts.map +1 -0
- package/dist/tests/integration/neural/preference-learner.test.js +289 -0
- package/dist/tests/integration/neural/preference-learner.test.js.map +1 -0
- package/dist/tests/integration/neural/privacy.test.d.ts +19 -0
- package/dist/tests/integration/neural/privacy.test.d.ts.map +1 -0
- package/dist/tests/integration/neural/privacy.test.js +249 -0
- package/dist/tests/integration/neural/privacy.test.js.map +1 -0
- package/dist/tests/integration/neural/setup.d.ts +175 -0
- package/dist/tests/integration/neural/setup.d.ts.map +1 -0
- package/dist/tests/integration/neural/setup.js +487 -0
- package/dist/tests/integration/neural/setup.js.map +1 -0
- package/dist/tests/integration/neural/signal-collection.test.d.ts +21 -0
- package/dist/tests/integration/neural/signal-collection.test.d.ts.map +1 -0
- package/dist/tests/integration/neural/signal-collection.test.js +232 -0
- package/dist/tests/integration/neural/signal-collection.test.js.map +1 -0
- package/dist/tests/learning/PatternStore.test.d.ts +8 -0
- package/dist/tests/learning/PatternStore.test.d.ts.map +1 -0
- package/dist/tests/learning/PatternStore.test.js +589 -0
- package/dist/tests/learning/PatternStore.test.js.map +1 -0
- package/dist/tests/learning/ReasoningBankIntegration.test.d.ts +8 -0
- package/dist/tests/learning/ReasoningBankIntegration.test.d.ts.map +1 -0
- package/dist/tests/learning/ReasoningBankIntegration.test.js +269 -0
- package/dist/tests/learning/ReasoningBankIntegration.test.js.map +1 -0
- package/dist/tests/routing/SONARouter.test.d.ts +8 -0
- package/dist/tests/routing/SONARouter.test.d.ts.map +1 -0
- package/dist/tests/routing/SONARouter.test.js +400 -0
- package/dist/tests/routing/SONARouter.test.js.map +1 -0
- package/dist/tests/security/ContinuousSecurity.test.js +10 -12
- package/dist/tests/security/ContinuousSecurity.test.js.map +1 -1
- package/dist/tests/security/SkillSandbox.test.d.ts +8 -0
- package/dist/tests/security/SkillSandbox.test.d.ts.map +1 -0
- package/dist/tests/security/SkillSandbox.test.js +321 -0
- package/dist/tests/security/SkillSandbox.test.js.map +1 -0
- package/dist/tests/sync/SyncEngine.test.js +4 -2
- package/dist/tests/sync/SyncEngine.test.js.map +1 -1
- package/dist/tests/testing/MultiLLMProvider.test.d.ts +14 -0
- package/dist/tests/testing/MultiLLMProvider.test.d.ts.map +1 -0
- package/dist/tests/testing/MultiLLMProvider.test.js +438 -0
- package/dist/tests/testing/MultiLLMProvider.test.js.map +1 -0
- package/package.json +16 -3
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMI-1062: Billing Types and Interfaces
|
|
3
|
+
*
|
|
4
|
+
* Type definitions for Stripe billing integration including:
|
|
5
|
+
* - Subscription management
|
|
6
|
+
* - Customer management
|
|
7
|
+
* - Invoice handling
|
|
8
|
+
* - Webhook events
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Available license tiers
|
|
12
|
+
* - community: Free tier (1,000 API calls/month)
|
|
13
|
+
* - individual: Solo developers ($9.99/mo, 10,000 API calls/month)
|
|
14
|
+
* - team: Teams ($25/user/mo, 100,000 API calls/month)
|
|
15
|
+
* - enterprise: Full enterprise ($55/user/mo, unlimited)
|
|
16
|
+
*/
|
|
17
|
+
export type LicenseTier = 'community' | 'individual' | 'team' | 'enterprise';
|
|
18
|
+
/**
|
|
19
|
+
* Stripe Customer ID (cus_xxx)
|
|
20
|
+
*/
|
|
21
|
+
export type StripeCustomerId = string & {
|
|
22
|
+
readonly __brand: 'StripeCustomerId';
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Stripe Subscription ID (sub_xxx)
|
|
26
|
+
*/
|
|
27
|
+
export type StripeSubscriptionId = string & {
|
|
28
|
+
readonly __brand: 'StripeSubscriptionId';
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Stripe Price ID (price_xxx)
|
|
32
|
+
*/
|
|
33
|
+
export type StripePriceId = string & {
|
|
34
|
+
readonly __brand: 'StripePriceId';
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Stripe Invoice ID (in_xxx)
|
|
38
|
+
*/
|
|
39
|
+
export type StripeInvoiceId = string & {
|
|
40
|
+
readonly __brand: 'StripeInvoiceId';
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Stripe Checkout Session ID (cs_xxx)
|
|
44
|
+
*/
|
|
45
|
+
export type StripeCheckoutSessionId = string & {
|
|
46
|
+
readonly __brand: 'StripeCheckoutSessionId';
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Stripe Event ID (evt_xxx)
|
|
50
|
+
*/
|
|
51
|
+
export type StripeEventId = string & {
|
|
52
|
+
readonly __brand: 'StripeEventId';
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Subscription status values
|
|
56
|
+
*/
|
|
57
|
+
export type SubscriptionStatus = 'active' | 'past_due' | 'canceled' | 'trialing' | 'paused' | 'incomplete' | 'incomplete_expired' | 'unpaid';
|
|
58
|
+
/**
|
|
59
|
+
* Customer record in our database
|
|
60
|
+
*/
|
|
61
|
+
export interface Customer {
|
|
62
|
+
id: string;
|
|
63
|
+
customerId: string;
|
|
64
|
+
email: string;
|
|
65
|
+
stripeCustomerId: StripeCustomerId | null;
|
|
66
|
+
tier: LicenseTier;
|
|
67
|
+
status: SubscriptionStatus;
|
|
68
|
+
createdAt: Date;
|
|
69
|
+
updatedAt: Date;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Create customer request
|
|
73
|
+
*/
|
|
74
|
+
export interface CreateCustomerRequest {
|
|
75
|
+
email: string;
|
|
76
|
+
name?: string;
|
|
77
|
+
metadata?: Record<string, string>;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Create customer response
|
|
81
|
+
*/
|
|
82
|
+
export interface CreateCustomerResponse {
|
|
83
|
+
customerId: string;
|
|
84
|
+
stripeCustomerId: StripeCustomerId;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Subscription record in our database
|
|
88
|
+
*/
|
|
89
|
+
export interface Subscription {
|
|
90
|
+
id: string;
|
|
91
|
+
customerId: string;
|
|
92
|
+
stripeSubscriptionId: StripeSubscriptionId | null;
|
|
93
|
+
stripePriceId: StripePriceId | null;
|
|
94
|
+
tier: LicenseTier;
|
|
95
|
+
status: SubscriptionStatus;
|
|
96
|
+
seatCount: number;
|
|
97
|
+
currentPeriodStart: Date | null;
|
|
98
|
+
currentPeriodEnd: Date | null;
|
|
99
|
+
canceledAt: Date | null;
|
|
100
|
+
createdAt: Date;
|
|
101
|
+
updatedAt: Date;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Billing period (monthly or annual)
|
|
105
|
+
*/
|
|
106
|
+
export type BillingPeriod = 'monthly' | 'annual';
|
|
107
|
+
/**
|
|
108
|
+
* Create checkout session request
|
|
109
|
+
*/
|
|
110
|
+
export interface CreateCheckoutSessionRequest {
|
|
111
|
+
tier: LicenseTier;
|
|
112
|
+
billingPeriod: BillingPeriod;
|
|
113
|
+
seatCount?: number;
|
|
114
|
+
successUrl: string;
|
|
115
|
+
cancelUrl: string;
|
|
116
|
+
customerId?: string;
|
|
117
|
+
email?: string;
|
|
118
|
+
metadata?: Record<string, string>;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Create checkout session response
|
|
122
|
+
*/
|
|
123
|
+
export interface CreateCheckoutSessionResponse {
|
|
124
|
+
sessionId: StripeCheckoutSessionId;
|
|
125
|
+
url: string;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Update subscription request
|
|
129
|
+
*/
|
|
130
|
+
export interface UpdateSubscriptionRequest {
|
|
131
|
+
subscriptionId: StripeSubscriptionId;
|
|
132
|
+
tier?: LicenseTier;
|
|
133
|
+
seatCount?: number;
|
|
134
|
+
prorate?: boolean;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Cancel subscription request
|
|
138
|
+
*/
|
|
139
|
+
export interface CancelSubscriptionRequest {
|
|
140
|
+
subscriptionId: StripeSubscriptionId;
|
|
141
|
+
immediately?: boolean;
|
|
142
|
+
feedback?: string;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Invoice status values
|
|
146
|
+
*/
|
|
147
|
+
export type InvoiceStatus = 'draft' | 'open' | 'paid' | 'void' | 'uncollectible';
|
|
148
|
+
/**
|
|
149
|
+
* Invoice record in our database
|
|
150
|
+
*/
|
|
151
|
+
export interface Invoice {
|
|
152
|
+
id: string;
|
|
153
|
+
customerId: string;
|
|
154
|
+
stripeInvoiceId: StripeInvoiceId;
|
|
155
|
+
subscriptionId: string | null;
|
|
156
|
+
amountCents: number;
|
|
157
|
+
currency: string;
|
|
158
|
+
status: InvoiceStatus;
|
|
159
|
+
pdfUrl: string | null;
|
|
160
|
+
hostedInvoiceUrl: string | null;
|
|
161
|
+
invoiceNumber: string | null;
|
|
162
|
+
paidAt: Date | null;
|
|
163
|
+
periodStart: Date | null;
|
|
164
|
+
periodEnd: Date | null;
|
|
165
|
+
createdAt: Date;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Invoice list request
|
|
169
|
+
*/
|
|
170
|
+
export interface ListInvoicesRequest {
|
|
171
|
+
customerId: string;
|
|
172
|
+
limit?: number;
|
|
173
|
+
startingAfter?: string;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Invoice list response
|
|
177
|
+
*/
|
|
178
|
+
export interface ListInvoicesResponse {
|
|
179
|
+
invoices: Invoice[];
|
|
180
|
+
hasMore: boolean;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Stripe webhook event types we handle
|
|
184
|
+
*/
|
|
185
|
+
export type StripeWebhookEventType = 'customer.subscription.created' | 'customer.subscription.updated' | 'customer.subscription.deleted' | 'invoice.payment_succeeded' | 'invoice.payment_failed' | 'checkout.session.completed' | 'customer.created' | 'customer.updated';
|
|
186
|
+
/**
|
|
187
|
+
* Webhook event record in our database
|
|
188
|
+
*/
|
|
189
|
+
export interface WebhookEvent {
|
|
190
|
+
id: string;
|
|
191
|
+
stripeEventId: StripeEventId;
|
|
192
|
+
eventType: StripeWebhookEventType;
|
|
193
|
+
processedAt: Date;
|
|
194
|
+
payload: string;
|
|
195
|
+
success: boolean;
|
|
196
|
+
errorMessage: string | null;
|
|
197
|
+
createdAt: Date;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Webhook processing result
|
|
201
|
+
*/
|
|
202
|
+
export interface WebhookProcessResult {
|
|
203
|
+
success: boolean;
|
|
204
|
+
message: string;
|
|
205
|
+
eventId: StripeEventId;
|
|
206
|
+
processed: boolean;
|
|
207
|
+
error?: string;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Create portal session request
|
|
211
|
+
*/
|
|
212
|
+
export interface CreatePortalSessionRequest {
|
|
213
|
+
customerId: string;
|
|
214
|
+
returnUrl: string;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Create portal session response
|
|
218
|
+
*/
|
|
219
|
+
export interface CreatePortalSessionResponse {
|
|
220
|
+
url: string;
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Seat update request
|
|
224
|
+
*/
|
|
225
|
+
export interface UpdateSeatsRequest {
|
|
226
|
+
subscriptionId: StripeSubscriptionId;
|
|
227
|
+
seatCount: number;
|
|
228
|
+
prorate?: boolean;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Seat update response
|
|
232
|
+
*/
|
|
233
|
+
export interface UpdateSeatsResponse {
|
|
234
|
+
success: boolean;
|
|
235
|
+
seatCount: number;
|
|
236
|
+
proratedAmount?: number;
|
|
237
|
+
message: string;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Price configuration for a tier
|
|
241
|
+
*/
|
|
242
|
+
export interface TierPriceConfig {
|
|
243
|
+
tier: LicenseTier;
|
|
244
|
+
monthlyPriceId: StripePriceId;
|
|
245
|
+
annualPriceId: StripePriceId;
|
|
246
|
+
monthlyPrice: number;
|
|
247
|
+
annualPrice: number;
|
|
248
|
+
perUser: boolean;
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* All price configurations
|
|
252
|
+
*/
|
|
253
|
+
export type PriceConfigs = Record<LicenseTier, TierPriceConfig>;
|
|
254
|
+
/**
|
|
255
|
+
* Billing-specific error codes
|
|
256
|
+
*/
|
|
257
|
+
export type BillingErrorCode = 'CUSTOMER_NOT_FOUND' | 'SUBSCRIPTION_NOT_FOUND' | 'INVALID_TIER' | 'PAYMENT_FAILED' | 'WEBHOOK_SIGNATURE_INVALID' | 'WEBHOOK_DUPLICATE_EVENT' | 'STRIPE_API_ERROR' | 'SEAT_LIMIT_EXCEEDED' | 'DOWNGRADE_NOT_ALLOWED';
|
|
258
|
+
/**
|
|
259
|
+
* Billing error class
|
|
260
|
+
*/
|
|
261
|
+
export declare class BillingError extends Error {
|
|
262
|
+
readonly code: BillingErrorCode;
|
|
263
|
+
readonly details?: Record<string, unknown> | undefined;
|
|
264
|
+
constructor(message: string, code: BillingErrorCode, details?: Record<string, unknown> | undefined);
|
|
265
|
+
}
|
|
266
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/billing/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SMI-1062: Billing Types and Interfaces
|
|
3
|
+
*
|
|
4
|
+
* Type definitions for Stripe billing integration including:
|
|
5
|
+
* - Subscription management
|
|
6
|
+
* - Customer management
|
|
7
|
+
* - Invoice handling
|
|
8
|
+
* - Webhook events
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Billing error class
|
|
12
|
+
*/
|
|
13
|
+
export class BillingError extends Error {
|
|
14
|
+
code;
|
|
15
|
+
details;
|
|
16
|
+
constructor(message, code, details) {
|
|
17
|
+
super(message);
|
|
18
|
+
this.code = code;
|
|
19
|
+
this.details = details;
|
|
20
|
+
this.name = 'BillingError';
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/billing/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAkVH;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,KAAK;IAGnB;IACA;IAHlB,YACE,OAAe,EACC,IAAsB,EACtB,OAAiC;QAEjD,KAAK,CAAC,OAAO,CAAC,CAAA;QAHE,SAAI,GAAJ,IAAI,CAAkB;QACtB,YAAO,GAAP,OAAO,CAA0B;QAGjD,IAAI,CAAC,IAAI,GAAG,cAAc,CAAA;IAC5B,CAAC;CACF"}
|