@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.
- package/LICENSE +22 -0
- package/README.md +11 -0
- package/dist/client.d.ts +369 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +100 -0
- package/dist/index.d.ts +285 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3396 -0
- package/dist/storage.d.ts +231 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +645 -0
- package/package.json +46 -0
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
import type Stripe from "stripe";
|
|
2
|
+
import type { FarmIntegrationHandlerContext } from "@farm.js/core";
|
|
3
|
+
export type StripeBillingOwner = {
|
|
4
|
+
kind: "user" | "organization";
|
|
5
|
+
id: string;
|
|
6
|
+
email?: string;
|
|
7
|
+
};
|
|
8
|
+
export type StripeBillingStatus = "free" | "trialing" | "active" | "past_due" | "canceled" | "unpaid" | "incomplete";
|
|
9
|
+
export type StripeBillingEntitlements = Record<string, unknown>;
|
|
10
|
+
export type StripeBillingFeatures = Record<string, boolean>;
|
|
11
|
+
export type StripeBillingLimits = Record<string, number>;
|
|
12
|
+
export type StripeBillingProductKind = "subscription" | "one_time";
|
|
13
|
+
export type StripeBillingSeatsMode = "plan_limit" | "subscription_quantity";
|
|
14
|
+
export type StripeBillingSeatLimitSource = "plan_limit" | "subscription_quantity" | "override" | "none";
|
|
15
|
+
export type StripeBillingUsageProperties = Record<string, string | number | boolean>;
|
|
16
|
+
export type StripeBillingMeterAggregation = "sum" | "count" | "last";
|
|
17
|
+
export type StripeBillingMeterIngestion = "raw" | "pre_aggregated";
|
|
18
|
+
export type StripeBillingMeterState = "ok" | "soft_limit_reached" | "hard_limit_reached" | "blocked_past_due" | "subscription_missing_meter_price";
|
|
19
|
+
export interface StripeBillingPlanLimitReference {
|
|
20
|
+
planId: string;
|
|
21
|
+
key?: string;
|
|
22
|
+
}
|
|
23
|
+
export type StripeBillingSoftLimit = "plan_limit" | number | StripeBillingPlanLimitReference | `plans.${string}.limit.${string}` | `plans.${string}.limits.${string}`;
|
|
24
|
+
export interface StripeBillingSeatsOptions {
|
|
25
|
+
mode?: StripeBillingSeatsMode;
|
|
26
|
+
}
|
|
27
|
+
export interface StripeBillingMeterGuard {
|
|
28
|
+
softLimit?: StripeBillingSoftLimit;
|
|
29
|
+
hardLimit?: number;
|
|
30
|
+
hardOverage?: number;
|
|
31
|
+
hardLimitByPlan?: Record<string, number>;
|
|
32
|
+
hardOverageByPlan?: Record<string, number>;
|
|
33
|
+
blockOnPastDue?: boolean;
|
|
34
|
+
}
|
|
35
|
+
export interface StripeBillingMeter {
|
|
36
|
+
aggregation: StripeBillingMeterAggregation;
|
|
37
|
+
ingestion: StripeBillingMeterIngestion;
|
|
38
|
+
window?: "hour" | "day";
|
|
39
|
+
eventName: string;
|
|
40
|
+
unit?: string;
|
|
41
|
+
guard?: StripeBillingMeterGuard;
|
|
42
|
+
}
|
|
43
|
+
export interface StripeBillingTrialEligibilityInput {
|
|
44
|
+
owner: StripeBillingOwner;
|
|
45
|
+
planId: string;
|
|
46
|
+
productId: string;
|
|
47
|
+
existingSnapshot: StripeBillingSnapshot | null;
|
|
48
|
+
hasUsedTrial: boolean;
|
|
49
|
+
}
|
|
50
|
+
export interface StripeBillingTrial {
|
|
51
|
+
days: number;
|
|
52
|
+
oncePerOwner?: boolean;
|
|
53
|
+
eligible?(input: StripeBillingTrialEligibilityInput, args: StripeBillingArgs): Promise<boolean> | boolean;
|
|
54
|
+
}
|
|
55
|
+
export interface StripeBillingProductStripeOptions {
|
|
56
|
+
priceId?: string;
|
|
57
|
+
seatPriceId?: string;
|
|
58
|
+
meterPriceIds?: Record<string, string>;
|
|
59
|
+
lookupKey?: string;
|
|
60
|
+
}
|
|
61
|
+
export interface StripeBillingProductPolarOptions {
|
|
62
|
+
productId?: string;
|
|
63
|
+
}
|
|
64
|
+
export interface StripeBillingPlan {
|
|
65
|
+
public?: boolean;
|
|
66
|
+
features?: StripeBillingFeatures;
|
|
67
|
+
limits?: StripeBillingLimits;
|
|
68
|
+
entitlements?: StripeBillingEntitlements;
|
|
69
|
+
trial?: StripeBillingTrial;
|
|
70
|
+
}
|
|
71
|
+
export interface StripeBillingProduct {
|
|
72
|
+
public?: boolean;
|
|
73
|
+
name?: string;
|
|
74
|
+
description?: string;
|
|
75
|
+
kind: StripeBillingProductKind;
|
|
76
|
+
planId?: string;
|
|
77
|
+
stripe?: StripeBillingProductStripeOptions;
|
|
78
|
+
polar?: StripeBillingProductPolarOptions;
|
|
79
|
+
priceId?: string;
|
|
80
|
+
seatPriceId?: string;
|
|
81
|
+
meterPriceIds?: Record<string, string>;
|
|
82
|
+
lookupKey?: string;
|
|
83
|
+
currency?: string;
|
|
84
|
+
unitAmount?: number;
|
|
85
|
+
interval?: "day" | "week" | "month" | "year";
|
|
86
|
+
intervalCount?: number;
|
|
87
|
+
quantity?: number;
|
|
88
|
+
seatBilling?: "line_item_quantity" | "included_plus_add_on";
|
|
89
|
+
imageUrl?: string;
|
|
90
|
+
metadata?: Record<string, string>;
|
|
91
|
+
}
|
|
92
|
+
export interface StripeBillingSnapshot {
|
|
93
|
+
owner: StripeBillingOwner;
|
|
94
|
+
planId: string;
|
|
95
|
+
productId: string | null;
|
|
96
|
+
status: StripeBillingStatus;
|
|
97
|
+
stripeCustomerId: string | null;
|
|
98
|
+
stripeSubscriptionId: string | null;
|
|
99
|
+
currentPeriodEnd: Date | null;
|
|
100
|
+
cancelAtPeriodEnd: boolean;
|
|
101
|
+
trialEndsAt: Date | null;
|
|
102
|
+
trialUsedAt: Date | null;
|
|
103
|
+
seatQuantity: number | null;
|
|
104
|
+
seatAllowanceOverride: number | null;
|
|
105
|
+
metadata?: Record<string, string>;
|
|
106
|
+
}
|
|
107
|
+
export interface StripeBillingStorageAdapter {
|
|
108
|
+
getBillingAccount(owner: StripeBillingOwner): Promise<StripeBillingSnapshot | null>;
|
|
109
|
+
getBillingAccountByStripeCustomerId(customerId: string): Promise<StripeBillingSnapshot | null>;
|
|
110
|
+
ensureCustomer(input: {
|
|
111
|
+
owner: StripeBillingOwner;
|
|
112
|
+
stripe: Stripe;
|
|
113
|
+
}): Promise<{
|
|
114
|
+
customerId: string;
|
|
115
|
+
}>;
|
|
116
|
+
saveBillingSnapshot(snapshot: StripeBillingSnapshot): Promise<void>;
|
|
117
|
+
clearBillingSnapshot(owner: StripeBillingOwner): Promise<void>;
|
|
118
|
+
}
|
|
119
|
+
export interface StripeBillingStorageTools {
|
|
120
|
+
getClient(): Promise<unknown | undefined>;
|
|
121
|
+
getOrm(): Promise<unknown>;
|
|
122
|
+
}
|
|
123
|
+
export interface StripeBillingArgs {
|
|
124
|
+
ctx: FarmIntegrationHandlerContext;
|
|
125
|
+
stripe: Stripe | null;
|
|
126
|
+
storage: StripeBillingStorageTools;
|
|
127
|
+
}
|
|
128
|
+
export type StripeBillingHookTools = StripeBillingArgs;
|
|
129
|
+
export interface StripeBillingUsageOptions {
|
|
130
|
+
resolve(owner: StripeBillingOwner, key: string, args: StripeBillingArgs): Promise<number | null> | number | null;
|
|
131
|
+
}
|
|
132
|
+
export interface StripeBillingHooks {
|
|
133
|
+
getBillingAccount?(owner: StripeBillingOwner, args: StripeBillingArgs): Promise<StripeBillingSnapshot | null>;
|
|
134
|
+
getBillingAccountByStripeCustomerId?(customerId: string, args: StripeBillingArgs): Promise<StripeBillingSnapshot | null>;
|
|
135
|
+
ensureCustomer?(owner: StripeBillingOwner, args: StripeBillingArgs): Promise<{
|
|
136
|
+
customerId: string;
|
|
137
|
+
}>;
|
|
138
|
+
saveBillingSnapshot?(snapshot: StripeBillingSnapshot, args: StripeBillingArgs): Promise<void>;
|
|
139
|
+
clearBillingSnapshot?(owner: StripeBillingOwner, args: StripeBillingArgs): Promise<void>;
|
|
140
|
+
onCheckoutCreated?(payload: {
|
|
141
|
+
owner: StripeBillingOwner;
|
|
142
|
+
planId: string;
|
|
143
|
+
productId: string;
|
|
144
|
+
sessionId: string;
|
|
145
|
+
redirectTo: string;
|
|
146
|
+
trialApplied: boolean;
|
|
147
|
+
trialDays: number | null;
|
|
148
|
+
}, args: StripeBillingArgs): Promise<void> | void;
|
|
149
|
+
onCheckoutCompleted?(snapshot: StripeBillingSnapshot & {
|
|
150
|
+
sessionId: string;
|
|
151
|
+
}, args: StripeBillingArgs): Promise<void> | void;
|
|
152
|
+
onTrialStarted?(snapshot: StripeBillingSnapshot & {
|
|
153
|
+
trialDays: number;
|
|
154
|
+
}, args: StripeBillingArgs): Promise<void> | void;
|
|
155
|
+
onTrialWillEnd?(snapshot: StripeBillingSnapshot, args: StripeBillingArgs): Promise<void> | void;
|
|
156
|
+
onTrialEnded?(snapshot: StripeBillingSnapshot, args: StripeBillingArgs): Promise<void> | void;
|
|
157
|
+
onTrialExpired?(snapshot: StripeBillingSnapshot, args: StripeBillingArgs): Promise<void> | void;
|
|
158
|
+
onBillingSync?(snapshot: StripeBillingSnapshot, args: StripeBillingArgs): Promise<void> | void;
|
|
159
|
+
onPaymentSucceeded?(snapshot: StripeBillingSnapshot, args: StripeBillingArgs): Promise<void> | void;
|
|
160
|
+
onPaymentFailed?(snapshot: StripeBillingSnapshot, args: StripeBillingArgs): Promise<void> | void;
|
|
161
|
+
onUsageReported?(payload: {
|
|
162
|
+
owner: StripeBillingOwner;
|
|
163
|
+
key: string;
|
|
164
|
+
quantity: number;
|
|
165
|
+
idempotencyKey: string;
|
|
166
|
+
occurredAt: string;
|
|
167
|
+
stripeCustomerId: string;
|
|
168
|
+
stripeEventName: string;
|
|
169
|
+
stripeEventIdentifier: string;
|
|
170
|
+
properties?: StripeBillingUsageProperties;
|
|
171
|
+
}, args: StripeBillingArgs): Promise<void> | void;
|
|
172
|
+
}
|
|
173
|
+
export interface StripeBillingOptions {
|
|
174
|
+
resolveOwner(context: FarmIntegrationHandlerContext, args?: StripeBillingArgs): Promise<StripeBillingOwner | null> | StripeBillingOwner | null;
|
|
175
|
+
plans?: Record<string, StripeBillingPlan>;
|
|
176
|
+
products?: Record<string, StripeBillingProduct>;
|
|
177
|
+
seats?: StripeBillingSeatsOptions;
|
|
178
|
+
usage?: StripeBillingUsageOptions;
|
|
179
|
+
meters?: Record<string, StripeBillingMeter>;
|
|
180
|
+
storage?: StripeBillingStorageAdapter;
|
|
181
|
+
hooks?: StripeBillingHooks;
|
|
182
|
+
}
|
|
183
|
+
type PrismaStorageOptions = {
|
|
184
|
+
prisma: unknown;
|
|
185
|
+
model?: string;
|
|
186
|
+
};
|
|
187
|
+
type StripeOrmStorageOptions = {
|
|
188
|
+
orm: unknown | Promise<unknown> | (() => unknown | Promise<unknown>);
|
|
189
|
+
model?: string;
|
|
190
|
+
};
|
|
191
|
+
export declare function prismaStorageAdapter(options: PrismaStorageOptions): StripeBillingStorageAdapter;
|
|
192
|
+
export declare function ormStorageAdapter(options: StripeOrmStorageOptions): StripeBillingStorageAdapter;
|
|
193
|
+
type SqliteDatabase = {
|
|
194
|
+
prepare(sql: string): {
|
|
195
|
+
get(...params: readonly unknown[]): Record<string, unknown> | undefined;
|
|
196
|
+
run(...params: readonly unknown[]): {
|
|
197
|
+
changes: number;
|
|
198
|
+
};
|
|
199
|
+
all?(...params: readonly unknown[]): Record<string, unknown>[];
|
|
200
|
+
};
|
|
201
|
+
};
|
|
202
|
+
type SqliteStorageOptions = {
|
|
203
|
+
db: SqliteDatabase;
|
|
204
|
+
tableName?: string;
|
|
205
|
+
};
|
|
206
|
+
export declare function sqliteStorageAdapter(options: SqliteStorageOptions): StripeBillingStorageAdapter;
|
|
207
|
+
type DrizzleStorageOptions = {
|
|
208
|
+
db: {
|
|
209
|
+
select(): {
|
|
210
|
+
from(table: unknown): {
|
|
211
|
+
where(condition: unknown): {
|
|
212
|
+
limit(count: number): Promise<Record<string, unknown>[]> | Record<string, unknown>[];
|
|
213
|
+
};
|
|
214
|
+
};
|
|
215
|
+
};
|
|
216
|
+
insert(table: unknown): {
|
|
217
|
+
values(input: Record<string, unknown>): Promise<unknown> | unknown;
|
|
218
|
+
};
|
|
219
|
+
update(table: unknown): {
|
|
220
|
+
set(input: Record<string, unknown>): {
|
|
221
|
+
where(condition: unknown): Promise<unknown> | unknown;
|
|
222
|
+
};
|
|
223
|
+
};
|
|
224
|
+
};
|
|
225
|
+
table: Record<string, unknown>;
|
|
226
|
+
eq(left: unknown, right: unknown): unknown;
|
|
227
|
+
and(...conditions: unknown[]): unknown;
|
|
228
|
+
};
|
|
229
|
+
export declare function drizzleStorageAdapter(options: DrizzleStorageOptions): StripeBillingStorageAdapter;
|
|
230
|
+
export {};
|
|
231
|
+
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
|