@farm.js/stripe 0.1.0-beta.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.
@@ -0,0 +1,285 @@
1
+ import Stripe from "stripe";
2
+ import { type FarmIntegration, type FarmIntegrationHandlerContext, type FarmIntegrationLogger, type FarmIntegrationSchema } from "@farm.js/core";
3
+ import type { FarmWebhookConfig, FarmWebhookEvent } from "@farm.js/integration-utils/webhooks";
4
+ import { type StripeBillingUpcomingInvoiceLineResult, type StripeBillingUpcomingInvoiceTotalsResult, type StripeBillingUpgradeProrationBehavior, type StripeClientAPI, type StripeDefaultClientAPI, type StripeIntegrationProduct, type StripeSessionLineItemResult, type StripeSessionResult } from "./client.js";
5
+ import { type StripeBillingMeter, type StripeBillingOptions, type StripeBillingProductKind, type StripeBillingUsageProperties } from "./storage.js";
6
+ export type { StripeBillingCurrentChargeLine, StripeBillingCurrentChargesResult, StripeBillingCheckInput, StripeBillingCheckResult, StripeBillingMeterUsageInput, StripeBillingMeterUsageResult, StripeBillingUpcomingInvoiceLineKind, StripeBillingUpcomingInvoiceLineResult, StripeBillingUpcomingInvoiceResult, StripeBillingUpcomingInvoiceTotalsResult, StripeBillingReportUsageInput, StripeBillingReportUsageResult, StripeBillingUpgradeInput, StripeBillingUpgradeProrationBehavior, StripeBillingUpgradeResult, StripeBillingFeaturesResult, StripeBillingLimitsResult, StripeBillingStatusResult, StripeBillingUsageInput, StripeBillingUsageResult, StripeCatalogMeterPrice, StripeCatalogProduct, StripeClientAPI, StripeDefaultClientAPI, StripeCheckoutInput, StripeCheckoutResult, StripeCheckoutTrialBehavior, StripeIntegrationProduct, StripePortalInput, StripePortalResult, StripeSessionLineItemResult, StripeSessionQuery, StripeSessionResult, StripeWebhookResult, } from "./client.js";
7
+ export { drizzleStorageAdapter, ormStorageAdapter, prismaStorageAdapter, sqliteStorageAdapter, } from "./storage.js";
8
+ export type { StripeBillingArgs, StripeBillingFeatures, StripeBillingHookTools, StripeBillingHooks, StripeBillingLimits, StripeBillingMeter, StripeBillingMeterState, StripeBillingOptions, StripeBillingOwner, StripeBillingPlan, StripeBillingProduct, StripeBillingProductKind, StripeBillingSeatLimitSource, StripeBillingSeatsMode, StripeBillingSeatsOptions, StripeBillingSnapshot, StripeBillingStatus, StripeBillingStorageAdapter, StripeBillingTrial, StripeBillingUsageProperties, StripeBillingUsageOptions, } from "./storage.js";
9
+ export interface StripeWebhookEvent extends FarmWebhookEvent<"stripe", string, unknown, unknown> {
10
+ }
11
+ export type StripeWebhookConfig = FarmWebhookConfig<StripeWebhookEvent>;
12
+ interface StripeConstructedWebhookEvent {
13
+ id: string;
14
+ type: string;
15
+ data: unknown;
16
+ raw?: unknown;
17
+ }
18
+ export interface StripeIntegrationAdapter {
19
+ createCheckoutSession(input: {
20
+ product: StripeIntegrationProduct;
21
+ quantity: number;
22
+ lineItems?: Array<{
23
+ product: StripeIntegrationProduct;
24
+ quantity?: number;
25
+ }>;
26
+ customerId?: string;
27
+ customerEmail?: string;
28
+ successUrl: string;
29
+ cancelUrl: string;
30
+ trialDays?: number | null;
31
+ metadata?: Record<string, string>;
32
+ allowPromotionCodes?: boolean;
33
+ automaticTax?: boolean;
34
+ }): Promise<{
35
+ id: string;
36
+ url: string;
37
+ }>;
38
+ createPortalSession(input: {
39
+ customerId: string;
40
+ returnUrl: string;
41
+ }): Promise<{
42
+ url: string;
43
+ }>;
44
+ updateSubscription?(input: {
45
+ subscriptionId: string;
46
+ product: StripeIntegrationProduct;
47
+ lineItems: Array<{
48
+ product: StripeIntegrationProduct;
49
+ quantity?: number;
50
+ }>;
51
+ prorationBehavior?: StripeBillingUpgradeProrationBehavior;
52
+ }): Promise<{
53
+ customerId: string | null;
54
+ subscriptionId: string;
55
+ subscriptionStatus: string | null;
56
+ currentPeriodEnd: string | null;
57
+ trialEndsAt: string | null;
58
+ cancelAtPeriodEnd: boolean;
59
+ lineItems: StripeSessionLineItemResult[];
60
+ }>;
61
+ reportUsage?(input: {
62
+ customerId: string;
63
+ key: string;
64
+ meter: StripeBillingMeter;
65
+ quantity: number;
66
+ idempotencyKey: string;
67
+ occurredAt: string;
68
+ properties?: StripeBillingUsageProperties;
69
+ }): Promise<{
70
+ customerId: string;
71
+ eventName: string;
72
+ identifier: string;
73
+ occurredAt: string;
74
+ }>;
75
+ previewUpcomingInvoice?(input: {
76
+ customerId: string;
77
+ subscriptionId: string;
78
+ product: ResolvedStripeProduct | null;
79
+ }): Promise<{
80
+ currency: string | null;
81
+ totals: StripeBillingUpcomingInvoiceTotalsResult;
82
+ lines: StripeBillingUpcomingInvoiceLineResult[];
83
+ }>;
84
+ retrieveCheckoutSession(sessionId: string): Promise<StripeSessionResult>;
85
+ constructWebhookEvent(input: {
86
+ payload: string;
87
+ signature: string | null;
88
+ secret?: string;
89
+ }): Promise<StripeConstructedWebhookEvent>;
90
+ }
91
+ /**
92
+ * The primary path is passing a real Stripe SDK instance.
93
+ * A custom adapter is still supported for local mocks and tests.
94
+ */
95
+ export type StripeIntegrationInstance = Stripe | StripeIntegrationAdapter;
96
+ export interface StripeIntegrationInput {
97
+ instance?: StripeIntegrationInstance;
98
+ secretKey?: string;
99
+ webhooks?: StripeWebhookConfig;
100
+ webhookSecret?: string;
101
+ appBaseUrl?: string;
102
+ productsPath?: string;
103
+ statusPath?: string;
104
+ currentChargesPath?: string;
105
+ featuresPath?: string;
106
+ limitsPath?: string;
107
+ usagePath?: string;
108
+ meterUsagePath?: string;
109
+ upcomingInvoicePath?: string;
110
+ reportUsagePath?: string;
111
+ checkPath?: string;
112
+ checkoutPath?: string;
113
+ upgradePath?: string;
114
+ portalPath?: string;
115
+ sessionPath?: string;
116
+ webhookPath?: string;
117
+ successPath?: string;
118
+ cancelPath?: string;
119
+ products?: StripeIntegrationProduct[];
120
+ schema?: FarmIntegrationSchema;
121
+ billing?: StripeBillingOptions;
122
+ allowPromotionCodes?: boolean;
123
+ automaticTax?: boolean;
124
+ log?: FarmIntegrationLogger;
125
+ onWebhook?: (event: StripeWebhookEvent, context: FarmIntegrationHandlerContext) => void | Promise<void>;
126
+ }
127
+ type ResolvedStripeIntegrationPath<TPath extends string | undefined, TDefault extends string> = TPath extends string ? TPath : TDefault;
128
+ type StripeResolvedApiInput<TInput extends StripeIntegrationInput> = {
129
+ readonly productsPath: ResolvedStripeIntegrationPath<TInput["productsPath"], "/billing/products">;
130
+ readonly statusPath: ResolvedStripeIntegrationPath<TInput["statusPath"], "/billing/status">;
131
+ readonly currentChargesPath: ResolvedStripeIntegrationPath<TInput["currentChargesPath"], "/billing/current-charges">;
132
+ readonly featuresPath: ResolvedStripeIntegrationPath<TInput["featuresPath"], "/billing/features">;
133
+ readonly limitsPath: ResolvedStripeIntegrationPath<TInput["limitsPath"], "/billing/limits">;
134
+ readonly usagePath: ResolvedStripeIntegrationPath<TInput["usagePath"], "/billing/usage">;
135
+ readonly meterUsagePath: ResolvedStripeIntegrationPath<TInput["meterUsagePath"], "/billing/meter-usage">;
136
+ readonly upcomingInvoicePath: ResolvedStripeIntegrationPath<TInput["upcomingInvoicePath"], "/billing/upcoming-invoice">;
137
+ readonly reportUsagePath: ResolvedStripeIntegrationPath<TInput["reportUsagePath"], "/billing/report-usage">;
138
+ readonly checkPath: ResolvedStripeIntegrationPath<TInput["checkPath"], "/billing/check">;
139
+ readonly checkoutPath: ResolvedStripeIntegrationPath<TInput["checkoutPath"], "/billing/checkout">;
140
+ readonly upgradePath: ResolvedStripeIntegrationPath<TInput["upgradePath"], "/billing/upgrade">;
141
+ readonly portalPath: ResolvedStripeIntegrationPath<TInput["portalPath"], "/billing/portal">;
142
+ readonly sessionPath: ResolvedStripeIntegrationPath<TInput["sessionPath"], "/billing/session">;
143
+ };
144
+ type StripeDefaultPathInput = {
145
+ productsPath?: undefined;
146
+ statusPath?: undefined;
147
+ currentChargesPath?: undefined;
148
+ featuresPath?: undefined;
149
+ limitsPath?: undefined;
150
+ usagePath?: undefined;
151
+ meterUsagePath?: undefined;
152
+ upcomingInvoicePath?: undefined;
153
+ reportUsagePath?: undefined;
154
+ checkPath?: undefined;
155
+ checkoutPath?: undefined;
156
+ upgradePath?: undefined;
157
+ portalPath?: undefined;
158
+ sessionPath?: undefined;
159
+ };
160
+ type StripeIntegrationResult<TApi> = Omit<FarmIntegration, "api"> & {
161
+ api: TApi;
162
+ };
163
+ type ResolvedStripeProduct = StripeIntegrationProduct & {
164
+ id: string;
165
+ kind: StripeBillingProductKind;
166
+ public: boolean;
167
+ planId: string | null;
168
+ seatBilling: "line_item_quantity" | "included_plus_add_on";
169
+ };
170
+ export declare const stripeSchema: {
171
+ models: {
172
+ billingAccount: {
173
+ name: string;
174
+ description: string;
175
+ fields: {
176
+ id: {
177
+ type: "id";
178
+ name: string;
179
+ primaryKey: true;
180
+ };
181
+ ownerId: {
182
+ type: "string";
183
+ name: string;
184
+ required: true;
185
+ index: true;
186
+ };
187
+ ownerKind: {
188
+ type: "enum";
189
+ name: string;
190
+ required: true;
191
+ default: string;
192
+ values: string[];
193
+ index: true;
194
+ };
195
+ stripeCustomerId: {
196
+ type: "string";
197
+ name: string;
198
+ unique: true;
199
+ nullable: true;
200
+ };
201
+ stripeSubscriptionId: {
202
+ type: "string";
203
+ name: string;
204
+ unique: true;
205
+ nullable: true;
206
+ };
207
+ planId: {
208
+ type: "string";
209
+ name: string;
210
+ required: true;
211
+ default: string;
212
+ };
213
+ productId: {
214
+ type: "string";
215
+ name: string;
216
+ nullable: true;
217
+ };
218
+ status: {
219
+ type: "string";
220
+ name: string;
221
+ required: true;
222
+ default: string;
223
+ };
224
+ currentPeriodEnd: {
225
+ type: "datetime";
226
+ name: string;
227
+ nullable: true;
228
+ };
229
+ cancelAtPeriodEnd: {
230
+ type: "boolean";
231
+ name: string;
232
+ required: true;
233
+ default: boolean;
234
+ };
235
+ trialEndsAt: {
236
+ type: "datetime";
237
+ name: string;
238
+ nullable: true;
239
+ };
240
+ trialUsedAt: {
241
+ type: "datetime";
242
+ name: string;
243
+ nullable: true;
244
+ };
245
+ seatQuantity: {
246
+ type: "integer";
247
+ name: string;
248
+ nullable: true;
249
+ };
250
+ seatAllowanceOverride: {
251
+ type: "integer";
252
+ name: string;
253
+ nullable: true;
254
+ };
255
+ createdAt: {
256
+ type: "datetime";
257
+ name: string;
258
+ required: true;
259
+ default: string;
260
+ };
261
+ updatedAt: {
262
+ type: "datetime";
263
+ name: string;
264
+ required: true;
265
+ default: string;
266
+ meta: {
267
+ autoUpdate: boolean;
268
+ };
269
+ };
270
+ };
271
+ constraints: {
272
+ type: "unique";
273
+ fields: string[];
274
+ name: string;
275
+ }[];
276
+ };
277
+ };
278
+ meta: {
279
+ category: string;
280
+ integration: string;
281
+ };
282
+ };
283
+ export declare function stripe<const TInput extends StripeIntegrationInput & StripeDefaultPathInput = {}>(input?: TInput): StripeIntegrationResult<StripeDefaultClientAPI>;
284
+ export declare function stripe<const TInput extends StripeIntegrationInput = {}>(input?: TInput): StripeIntegrationResult<StripeClientAPI<StripeResolvedApiInput<TInput>>>;
285
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}