@plumbus/payments-stripe 0.2.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/CHANGELOG.md +21 -0
- package/README.md +60 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/catalog.d.ts +14 -0
- package/dist/catalog.d.ts.map +1 -0
- package/dist/catalog.js +286 -0
- package/dist/catalog.js.map +1 -0
- package/dist/charges.d.ts +64 -0
- package/dist/charges.d.ts.map +1 -0
- package/dist/charges.js +339 -0
- package/dist/charges.js.map +1 -0
- package/dist/config-rules.d.ts +7 -0
- package/dist/config-rules.d.ts.map +1 -0
- package/dist/config-rules.js +87 -0
- package/dist/config-rules.js.map +1 -0
- package/dist/diagnose.d.ts +17 -0
- package/dist/diagnose.d.ts.map +1 -0
- package/dist/diagnose.js +237 -0
- package/dist/diagnose.js.map +1 -0
- package/dist/errors.d.ts +4 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +45 -0
- package/dist/errors.js.map +1 -0
- package/dist/events.d.ts +38 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +167 -0
- package/dist/events.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/mapping.d.ts +328 -0
- package/dist/mapping.d.ts.map +1 -0
- package/dist/mapping.js +437 -0
- package/dist/mapping.js.map +1 -0
- package/dist/provider.d.ts +33 -0
- package/dist/provider.d.ts.map +1 -0
- package/dist/provider.js +634 -0
- package/dist/provider.js.map +1 -0
- package/dist/resolve.d.ts +10 -0
- package/dist/resolve.d.ts.map +1 -0
- package/dist/resolve.js +171 -0
- package/dist/resolve.js.map +1 -0
- package/dist/secrets.d.ts +7 -0
- package/dist/secrets.d.ts.map +1 -0
- package/dist/secrets.js +33 -0
- package/dist/secrets.js.map +1 -0
- package/dist/testing/index.d.ts +54 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +119 -0
- package/dist/testing/index.js.map +1 -0
- package/instructions/README.md +14 -0
- package/instructions/configure-stripe.md +69 -0
- package/instructions/framework.md +62 -0
- package/instructions/testing.md +41 -0
- package/instructions/webhooks.md +44 -0
- package/package.json +66 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ProviderStateChange, StoredProviderEvent } from '@plumbus/payments';
|
|
2
|
+
import type Stripe from 'stripe';
|
|
3
|
+
export declare const SUBSCRIPTION_EXPAND: readonly ["items.data.price.product"];
|
|
4
|
+
export declare function retrieveSubscription(stripe: Stripe, subscriptionId: string, options: Stripe.RequestOptions): Promise<import("@plumbus/payments").ProviderSubscription>;
|
|
5
|
+
/** Active entitlement feature keys of a customer. */
|
|
6
|
+
export declare function listEntitlementKeys(stripe: Stripe, customerId: string): Promise<string[]>;
|
|
7
|
+
export declare function resolveStripeEvent(stripe: Stripe, event: StoredProviderEvent, retrieveAccount: (accountId: string) => Promise<ProviderStateChange & {
|
|
8
|
+
kind: 'merchant';
|
|
9
|
+
}>): Promise<ProviderStateChange[]>;
|
|
10
|
+
//# sourceMappingURL=resolve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAClF,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAwBjC,eAAO,MAAM,mBAAmB,uCAAwC,CAAC;AAEzE,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,CAAC,cAAc,6DAS/B;AAED,qDAAqD;AACrD,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAS/F;AAaD,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,mBAAmB,EAC1B,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,GAAG;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC,GAC1F,OAAO,CAAC,mBAAmB,EAAE,CAAC,CA4KhC"}
|
package/dist/resolve.js
ADDED
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
// ── Stripe events → state changes ──
|
|
2
|
+
// Events are hints: every change is read fresh from Stripe, on the account the
|
|
3
|
+
// event came from (a seller's, or the platform's when `accountId` is null).
|
|
4
|
+
// A charge is listed before its refunds and disputes, and a subscription before
|
|
5
|
+
// its invoices, because the worker matches them through the rows those create.
|
|
6
|
+
import { featureKeysOf } from './catalog.js';
|
|
7
|
+
import { chargeForPayment, onAccount, SESSION_EXPAND } from './charges.js';
|
|
8
|
+
import { idOf, mapDispute, mapInvoice, mapInvoiceCharge, mapPaymentMethod, mapPayout, mapRefund, mapSession, mapSubscription, mapTransfer, } from './mapping.js';
|
|
9
|
+
export const SUBSCRIPTION_EXPAND = ['items.data.price.product'];
|
|
10
|
+
export async function retrieveSubscription(stripe, subscriptionId, options) {
|
|
11
|
+
return mapSubscription((await stripe.subscriptions.retrieve(subscriptionId, { expand: [...SUBSCRIPTION_EXPAND] }, options)));
|
|
12
|
+
}
|
|
13
|
+
/** Active entitlement feature keys of a customer. */
|
|
14
|
+
export async function listEntitlementKeys(stripe, customerId) {
|
|
15
|
+
const lookupKeys = [];
|
|
16
|
+
for await (const entitlement of stripe.entitlements.activeEntitlements.list({
|
|
17
|
+
customer: customerId,
|
|
18
|
+
limit: 100,
|
|
19
|
+
})) {
|
|
20
|
+
lookupKeys.push(entitlement.lookup_key);
|
|
21
|
+
}
|
|
22
|
+
return featureKeysOf(lookupKeys);
|
|
23
|
+
}
|
|
24
|
+
async function paymentAndThen(stripe, accountId, paymentId) {
|
|
25
|
+
if (!paymentId)
|
|
26
|
+
return { changes: [], reference: null };
|
|
27
|
+
const charge = await chargeForPayment(stripe, paymentId, accountId);
|
|
28
|
+
if (!charge)
|
|
29
|
+
return { changes: [], reference: null };
|
|
30
|
+
return { changes: [{ kind: 'charge', accountId, charge }], reference: charge.reference };
|
|
31
|
+
}
|
|
32
|
+
export async function resolveStripeEvent(stripe, event, retrieveAccount) {
|
|
33
|
+
const accountId = event.accountId;
|
|
34
|
+
const objectId = event.objectId;
|
|
35
|
+
if (!objectId)
|
|
36
|
+
return [];
|
|
37
|
+
if (event.format === 'thin') {
|
|
38
|
+
return event.objectType === 'v2.core.account' ? [await retrieveAccount(objectId)] : [];
|
|
39
|
+
}
|
|
40
|
+
const onIt = onAccount(accountId);
|
|
41
|
+
const type = event.type;
|
|
42
|
+
if (type.startsWith('checkout.session.')) {
|
|
43
|
+
const session = (await stripe.checkout.sessions.retrieve(objectId, { expand: [...SESSION_EXPAND, 'setup_intent.payment_method'] }, onIt));
|
|
44
|
+
if (session.mode === 'subscription') {
|
|
45
|
+
if (session.status === 'expired') {
|
|
46
|
+
return [
|
|
47
|
+
{
|
|
48
|
+
kind: 'subscription_checkout_expired',
|
|
49
|
+
accountId,
|
|
50
|
+
checkoutId: session.id,
|
|
51
|
+
reference: session.client_reference_id ?? null,
|
|
52
|
+
},
|
|
53
|
+
];
|
|
54
|
+
}
|
|
55
|
+
const subscriptionId = idOf(session.subscription);
|
|
56
|
+
if (!subscriptionId)
|
|
57
|
+
return [];
|
|
58
|
+
return [
|
|
59
|
+
{
|
|
60
|
+
kind: 'subscription',
|
|
61
|
+
accountId,
|
|
62
|
+
subscription: await retrieveSubscription(stripe, subscriptionId, onIt),
|
|
63
|
+
},
|
|
64
|
+
];
|
|
65
|
+
}
|
|
66
|
+
if (session.mode === 'setup') {
|
|
67
|
+
const setup = session.setup_intent;
|
|
68
|
+
const method = setup && typeof setup === 'object' ? setup.payment_method : null;
|
|
69
|
+
if (session.status !== 'complete' || !method || typeof method !== 'object')
|
|
70
|
+
return [];
|
|
71
|
+
return [
|
|
72
|
+
{
|
|
73
|
+
kind: 'payment_method',
|
|
74
|
+
accountId,
|
|
75
|
+
method: mapPaymentMethod(method),
|
|
76
|
+
detached: false,
|
|
77
|
+
},
|
|
78
|
+
];
|
|
79
|
+
}
|
|
80
|
+
return [{ kind: 'charge', accountId, charge: mapSession(session) }];
|
|
81
|
+
}
|
|
82
|
+
if (type.startsWith('payment_intent.')) {
|
|
83
|
+
return (await paymentAndThen(stripe, accountId, objectId)).changes;
|
|
84
|
+
}
|
|
85
|
+
if (type === 'charge.refunded' ||
|
|
86
|
+
type === 'charge.refund.updated' ||
|
|
87
|
+
type.startsWith('refund.')) {
|
|
88
|
+
const refunds = event.objectType === 'refund'
|
|
89
|
+
? [(await stripe.refunds.retrieve(objectId, {}, onIt))]
|
|
90
|
+
: (await stripe.refunds.list({ charge: objectId, limit: 100 }, onIt))
|
|
91
|
+
.data;
|
|
92
|
+
const paymentId = refunds[0] ? mapRefund(refunds[0]).paymentId || null : null;
|
|
93
|
+
const { changes, reference } = await paymentAndThen(stripe, accountId, paymentId);
|
|
94
|
+
for (const refund of refunds) {
|
|
95
|
+
changes.push({
|
|
96
|
+
kind: 'refund',
|
|
97
|
+
accountId,
|
|
98
|
+
chargeReference: reference,
|
|
99
|
+
refund: mapRefund(refund),
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
return changes;
|
|
103
|
+
}
|
|
104
|
+
if (type.startsWith('charge.dispute.')) {
|
|
105
|
+
const dispute = mapDispute((await stripe.disputes.retrieve(objectId, {}, onIt)));
|
|
106
|
+
const { changes, reference } = await paymentAndThen(stripe, accountId, dispute.paymentId || null);
|
|
107
|
+
return [...changes, { kind: 'dispute', accountId, chargeReference: reference, dispute }];
|
|
108
|
+
}
|
|
109
|
+
if (type.startsWith('payment_method.')) {
|
|
110
|
+
const method = (await stripe.paymentMethods.retrieve(objectId, {}, onIt));
|
|
111
|
+
return [
|
|
112
|
+
{
|
|
113
|
+
kind: 'payment_method',
|
|
114
|
+
accountId,
|
|
115
|
+
method: mapPaymentMethod(method),
|
|
116
|
+
// Detaching clears the customer.
|
|
117
|
+
detached: idOf(method.customer) === null,
|
|
118
|
+
},
|
|
119
|
+
];
|
|
120
|
+
}
|
|
121
|
+
if (type.startsWith('customer.subscription.')) {
|
|
122
|
+
return [
|
|
123
|
+
{
|
|
124
|
+
kind: 'subscription',
|
|
125
|
+
accountId,
|
|
126
|
+
subscription: await retrieveSubscription(stripe, objectId, onIt),
|
|
127
|
+
},
|
|
128
|
+
];
|
|
129
|
+
}
|
|
130
|
+
if (type.startsWith('invoice.')) {
|
|
131
|
+
const invoice = (await stripe.invoices.retrieve(objectId, { expand: ['payments'] }, onIt));
|
|
132
|
+
const mapped = mapInvoice(invoice);
|
|
133
|
+
if (mapped.subscriptionId) {
|
|
134
|
+
return [
|
|
135
|
+
{
|
|
136
|
+
kind: 'subscription',
|
|
137
|
+
accountId,
|
|
138
|
+
subscription: await retrieveSubscription(stripe, mapped.subscriptionId, onIt),
|
|
139
|
+
},
|
|
140
|
+
{ kind: 'invoice', accountId, invoice: mapped },
|
|
141
|
+
];
|
|
142
|
+
}
|
|
143
|
+
// A one-off invoice sent as a charge.
|
|
144
|
+
if (invoice.metadata?.plumbus_charge_id) {
|
|
145
|
+
return [{ kind: 'charge', accountId, charge: mapInvoiceCharge(invoice) }];
|
|
146
|
+
}
|
|
147
|
+
return [];
|
|
148
|
+
}
|
|
149
|
+
if (type.startsWith('transfer.')) {
|
|
150
|
+
const transfer = (await stripe.transfers.retrieve(objectId));
|
|
151
|
+
return [{ kind: 'transfer', transfer: mapTransfer(transfer) }];
|
|
152
|
+
}
|
|
153
|
+
if (type.startsWith('payout.')) {
|
|
154
|
+
// The platform's own payouts are not a seller's.
|
|
155
|
+
if (!accountId)
|
|
156
|
+
return [];
|
|
157
|
+
const payout = (await stripe.payouts.retrieve(objectId, {}, onIt));
|
|
158
|
+
return [{ kind: 'payout', accountId, payout: mapPayout(payout) }];
|
|
159
|
+
}
|
|
160
|
+
if (type === 'entitlements.active_entitlement_summary.updated') {
|
|
161
|
+
return [
|
|
162
|
+
{
|
|
163
|
+
kind: 'entitlements',
|
|
164
|
+
customerId: objectId,
|
|
165
|
+
features: await listEntitlementKeys(stripe, objectId),
|
|
166
|
+
},
|
|
167
|
+
];
|
|
168
|
+
}
|
|
169
|
+
return [];
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=resolve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** A value, or a function that returns it (e.g. from a secret manager). */
|
|
2
|
+
export type SecretSource<T> = T | (() => T | Promise<T>);
|
|
3
|
+
export declare function lazySecret<T>(source: SecretSource<T>, name: string): () => Promise<T>;
|
|
4
|
+
export type StripeKeyMode = 'live' | 'test';
|
|
5
|
+
/** Live or test, from the key prefix (`sk_live_`, `rk_test_`, …). */
|
|
6
|
+
export declare function keyMode(key: string): StripeKeyMode;
|
|
7
|
+
//# sourceMappingURL=secrets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secrets.d.ts","sourceRoot":"","sources":["../src/secrets.ts"],"names":[],"mappings":"AAMA,2EAA2E;AAC3E,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAEzD,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAqBrF;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,CAAC;AAE5C,qEAAqE;AACrE,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAQlD"}
|
package/dist/secrets.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// ── Secret sources ──
|
|
2
|
+
// Secrets are read on first use, never at import: `plumbus generate` and
|
|
3
|
+
// migrations import app/payments without Stripe keys present.
|
|
4
|
+
import { ErrorCode, PlumbusError } from '@plumbus/core';
|
|
5
|
+
export function lazySecret(source, name) {
|
|
6
|
+
let cached;
|
|
7
|
+
return () => {
|
|
8
|
+
cached ??= Promise.resolve(typeof source === 'function' ? source() : source)
|
|
9
|
+
.then((value) => {
|
|
10
|
+
if (value === undefined || value === null || value === '') {
|
|
11
|
+
throw new PlumbusError(ErrorCode.Internal, `${name} is not configured`, {
|
|
12
|
+
reason: 'payments_secret_missing',
|
|
13
|
+
secret: name,
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
return value;
|
|
17
|
+
})
|
|
18
|
+
.catch((err) => {
|
|
19
|
+
cached = undefined;
|
|
20
|
+
throw err;
|
|
21
|
+
});
|
|
22
|
+
return cached;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/** Live or test, from the key prefix (`sk_live_`, `rk_test_`, …). */
|
|
26
|
+
export function keyMode(key) {
|
|
27
|
+
if (/^(sk|rk)_live_/.test(key))
|
|
28
|
+
return 'live';
|
|
29
|
+
if (/^(sk|rk)_test_/.test(key))
|
|
30
|
+
return 'test';
|
|
31
|
+
throw new PlumbusError(ErrorCode.Validation, 'STRIPE secret key must start with sk_live_, sk_test_, rk_live_, or rk_test_', { reason: 'payments_invalid_stripe_key' });
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=secrets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secrets.js","sourceRoot":"","sources":["../src/secrets.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,yEAAyE;AACzE,8DAA8D;AAE9D,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAKxD,MAAM,UAAU,UAAU,CAAI,MAAuB,EAAE,IAAY;IACjE,IAAI,MAA8B,CAAC;IACnC,OAAO,GAAG,EAAE;QACV,MAAM,KAAK,OAAO,CAAC,OAAO,CACxB,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAE,MAA+B,EAAE,CAAC,CAAC,CAAC,MAAM,CAC3E;aACE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YACd,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;gBAC1D,MAAM,IAAI,YAAY,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,IAAI,oBAAoB,EAAE;oBACtE,MAAM,EAAE,yBAAyB;oBACjC,MAAM,EAAE,IAAI;iBACb,CAAC,CAAC;YACL,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,MAAM,GAAG,SAAS,CAAC;YACnB,MAAM,GAAG,CAAC;QACZ,CAAC,CAAC,CAAC;QACL,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAID,qEAAqE;AACrE,MAAM,UAAU,OAAO,CAAC,GAAW;IACjC,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC;IAC9C,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC;IAC9C,MAAM,IAAI,YAAY,CACpB,SAAS,CAAC,UAAU,EACpB,6EAA6E,EAC7E,EAAE,MAAM,EAAE,6BAA6B,EAAE,CAC1C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import Stripe from 'stripe';
|
|
2
|
+
export interface SignedStripeDelivery {
|
|
3
|
+
rawBody: Buffer;
|
|
4
|
+
headers: Record<string, string>;
|
|
5
|
+
}
|
|
6
|
+
/** Sign a webhook body exactly like Stripe does (`Stripe-Signature: t=…,v1=…`). */
|
|
7
|
+
export declare function signStripeWebhook(input: {
|
|
8
|
+
payload: string | Record<string, unknown>;
|
|
9
|
+
secret: string;
|
|
10
|
+
/** Unix seconds; default now. */
|
|
11
|
+
timestamp?: number;
|
|
12
|
+
}): SignedStripeDelivery;
|
|
13
|
+
/** A v1 snapshot event as a connected-account destination delivers it. */
|
|
14
|
+
export declare function stripeSnapshotEvent(input: {
|
|
15
|
+
type: string;
|
|
16
|
+
account: string | null;
|
|
17
|
+
object: Record<string, unknown> & {
|
|
18
|
+
id: string;
|
|
19
|
+
object: string;
|
|
20
|
+
};
|
|
21
|
+
livemode?: boolean;
|
|
22
|
+
id?: string;
|
|
23
|
+
created?: number;
|
|
24
|
+
}): Record<string, unknown>;
|
|
25
|
+
/** A v2 thin event notification about a v2 Account. */
|
|
26
|
+
export declare function stripeThinAccountEvent(input: {
|
|
27
|
+
type: string;
|
|
28
|
+
accountId: string;
|
|
29
|
+
livemode?: boolean;
|
|
30
|
+
id?: string;
|
|
31
|
+
created?: string;
|
|
32
|
+
}): Record<string, unknown>;
|
|
33
|
+
export interface RecordedStripeRequest {
|
|
34
|
+
method: string;
|
|
35
|
+
/** Path without the query string, e.g. `/v1/checkout/sessions`. */
|
|
36
|
+
path: string;
|
|
37
|
+
query: URLSearchParams;
|
|
38
|
+
headers: Record<string, string>;
|
|
39
|
+
/** Form fields (v1) flattened as `a[b][0]`, or the parsed JSON body (v2). */
|
|
40
|
+
body: Record<string, unknown>;
|
|
41
|
+
}
|
|
42
|
+
export type StripeStubHandler = (request: RecordedStripeRequest) => unknown | {
|
|
43
|
+
status: number;
|
|
44
|
+
body: unknown;
|
|
45
|
+
} | Promise<unknown>;
|
|
46
|
+
export interface StripeHttpStub {
|
|
47
|
+
httpClient: Stripe.HttpClient;
|
|
48
|
+
requests: RecordedStripeRequest[];
|
|
49
|
+
/** Answer `METHOD /path` (path may end in `/*` to match an id segment). */
|
|
50
|
+
on(route: string, handler: StripeStubHandler): StripeHttpStub;
|
|
51
|
+
}
|
|
52
|
+
/** An in-process fake of Stripe's HTTP API for adapter tests. Unmatched calls answer 404. */
|
|
53
|
+
export declare function createStripeHttpStub(): StripeHttpStub;
|
|
54
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAIA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,mFAAmF;AACnF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IACvC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,oBAAoB,CAWvB;AAID,0EAA0E;AAC1E,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAa1B;AAED,uDAAuD;AACvD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAe1B;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,eAAe,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,MAAM,MAAM,iBAAiB,GAAG,CAC9B,OAAO,EAAE,qBAAqB,KAC3B,OAAO,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpE,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;IAC9B,QAAQ,EAAE,qBAAqB,EAAE,CAAC;IAClC,2EAA2E;IAC3E,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,cAAc,CAAC;CAC/D;AAaD,6FAA6F;AAC7F,wBAAgB,oBAAoB,IAAI,cAAc,CA8DrD"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
// ── @plumbus/payments-stripe/testing ──
|
|
2
|
+
// Build and sign Stripe webhook bodies (snapshot and thin), and stub Stripe's
|
|
3
|
+
// HTTP API in-process so adapter code runs without network or keys.
|
|
4
|
+
import Stripe from 'stripe';
|
|
5
|
+
import { STRIPE_API_VERSION } from '../provider.js';
|
|
6
|
+
/** Sign a webhook body exactly like Stripe does (`Stripe-Signature: t=…,v1=…`). */
|
|
7
|
+
export function signStripeWebhook(input) {
|
|
8
|
+
const body = typeof input.payload === 'string' ? input.payload : JSON.stringify(input.payload);
|
|
9
|
+
const header = Stripe.webhooks.generateTestHeaderString({
|
|
10
|
+
payload: body,
|
|
11
|
+
secret: input.secret,
|
|
12
|
+
...(input.timestamp !== undefined ? { timestamp: input.timestamp } : {}),
|
|
13
|
+
});
|
|
14
|
+
return {
|
|
15
|
+
rawBody: Buffer.from(body),
|
|
16
|
+
headers: { 'content-type': 'application/json', 'stripe-signature': header },
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
let eventCounter = 0;
|
|
20
|
+
/** A v1 snapshot event as a connected-account destination delivers it. */
|
|
21
|
+
export function stripeSnapshotEvent(input) {
|
|
22
|
+
return {
|
|
23
|
+
id: input.id ?? `evt_test_${++eventCounter}`,
|
|
24
|
+
object: 'event',
|
|
25
|
+
api_version: STRIPE_API_VERSION,
|
|
26
|
+
created: input.created ?? Math.floor(Date.now() / 1000),
|
|
27
|
+
livemode: input.livemode ?? false,
|
|
28
|
+
account: input.account,
|
|
29
|
+
type: input.type,
|
|
30
|
+
pending_webhooks: 1,
|
|
31
|
+
request: { id: null, idempotency_key: null },
|
|
32
|
+
data: { object: input.object },
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/** A v2 thin event notification about a v2 Account. */
|
|
36
|
+
export function stripeThinAccountEvent(input) {
|
|
37
|
+
return {
|
|
38
|
+
id: input.id ?? `evt_test_thin_${++eventCounter}`,
|
|
39
|
+
object: 'v2.core.event',
|
|
40
|
+
type: input.type,
|
|
41
|
+
livemode: input.livemode ?? false,
|
|
42
|
+
created: input.created ?? new Date().toISOString(),
|
|
43
|
+
context: null,
|
|
44
|
+
reason: null,
|
|
45
|
+
related_object: {
|
|
46
|
+
id: input.accountId,
|
|
47
|
+
type: 'v2.core.account',
|
|
48
|
+
url: `/v2/core/accounts/${input.accountId}`,
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
const isStatusReply = (value) => typeof value === 'object' &&
|
|
53
|
+
value !== null &&
|
|
54
|
+
'status' in value &&
|
|
55
|
+
typeof value.status === 'number' &&
|
|
56
|
+
'body' in value;
|
|
57
|
+
/** An in-process fake of Stripe's HTTP API for adapter tests. Unmatched calls answer 404. */
|
|
58
|
+
export function createStripeHttpStub() {
|
|
59
|
+
const routes = [];
|
|
60
|
+
const requests = [];
|
|
61
|
+
const fakeFetch = (async (url, init) => {
|
|
62
|
+
const target = new URL(String(url));
|
|
63
|
+
const headers = {};
|
|
64
|
+
new Headers(init?.headers).forEach((value, key) => {
|
|
65
|
+
headers[key] = value;
|
|
66
|
+
});
|
|
67
|
+
const raw = typeof init?.body === 'string' ? init.body : '';
|
|
68
|
+
const body = headers['content-type']?.includes('json')
|
|
69
|
+
? raw
|
|
70
|
+
? JSON.parse(raw)
|
|
71
|
+
: {}
|
|
72
|
+
: Object.fromEntries(new URLSearchParams(raw));
|
|
73
|
+
const request = {
|
|
74
|
+
method: (init?.method ?? 'GET').toUpperCase(),
|
|
75
|
+
path: target.pathname,
|
|
76
|
+
query: target.searchParams,
|
|
77
|
+
headers,
|
|
78
|
+
body,
|
|
79
|
+
};
|
|
80
|
+
requests.push(request);
|
|
81
|
+
const route = routes.find((r) => r.method === request.method && r.pattern.test(request.path));
|
|
82
|
+
const reply = route
|
|
83
|
+
? await route.handler(request)
|
|
84
|
+
: {
|
|
85
|
+
status: 404,
|
|
86
|
+
body: {
|
|
87
|
+
error: {
|
|
88
|
+
type: 'invalid_request_error',
|
|
89
|
+
message: `No stub for ${request.method} ${request.path}`,
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
const { status, payload } = isStatusReply(reply)
|
|
94
|
+
? { status: reply.status, payload: reply.body }
|
|
95
|
+
: { status: 200, payload: reply };
|
|
96
|
+
return new Response(JSON.stringify(payload), {
|
|
97
|
+
status,
|
|
98
|
+
headers: { 'content-type': 'application/json', 'request-id': `req_stub_${requests.length}` },
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
const stub = {
|
|
102
|
+
httpClient: Stripe.createFetchHttpClient(fakeFetch),
|
|
103
|
+
requests,
|
|
104
|
+
on(route, handler) {
|
|
105
|
+
const [method, path] = route.split(' ');
|
|
106
|
+
const escaped = (path ?? '')
|
|
107
|
+
.replace(/[.+?^${}()|[\]\\]/g, '\\$&')
|
|
108
|
+
.replace(/\\\*|\*/g, '[^/]+');
|
|
109
|
+
routes.push({
|
|
110
|
+
method: (method ?? 'GET').toUpperCase(),
|
|
111
|
+
pattern: new RegExp(`^${escaped}$`),
|
|
112
|
+
handler,
|
|
113
|
+
});
|
|
114
|
+
return stub;
|
|
115
|
+
},
|
|
116
|
+
};
|
|
117
|
+
return stub;
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# @plumbus/payments-stripe — Agent Instructions
|
|
2
|
+
|
|
3
|
+
Stripe provider for `@plumbus/payments`, on Stripe's newest APIs: Connect for sellers (Accounts v2 with merchant and recipient configurations, direct and destination charges, transfers, payouts through Balance Settings), Checkout (hosted and embedded pages, subscriptions, saved cards), invoices, payment links, Billing for your own plans (prices by lookup key, entitlements, meters), and snapshot + thin webhooks (API version `2026-08-26.dahlia`).
|
|
4
|
+
|
|
5
|
+
| File | When to read |
|
|
6
|
+
|---|---|
|
|
7
|
+
| [framework.md](./framework.md) | First. Boundary, API version, what the adapter calls, critical rules. |
|
|
8
|
+
| [configure-stripe.md](./configure-stripe.md) | Keys, `stripeProvider()` options, Connect dashboards, charge types, liability rules, restricted-key permissions, the billing catalog. |
|
|
9
|
+
| [webhooks.md](./webhooks.md) | Event destinations, signing secrets, upgrades, local forwarding with the Stripe CLI. |
|
|
10
|
+
| [testing.md](./testing.md) | Signed test events, the HTTP stub, and live test-mode runs. |
|
|
11
|
+
|
|
12
|
+
Requires `@plumbus/payments` **`0.2.x`** (wire it first: `node_modules/@plumbus/payments/instructions/wiring.md`).
|
|
13
|
+
|
|
14
|
+
Package quickstart: [../README.md](../README.md) · Human docs: [docs/payments/stripe.md](https://github.com/plumbus-framework/plumbus/blob/main/docs/payments/stripe.md)
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Configuring stripeProvider()
|
|
2
|
+
|
|
3
|
+
## Stripe account prerequisites
|
|
4
|
+
|
|
5
|
+
1. A Stripe account with **Connect** enabled and the platform profile completed (Dashboard → Connect). Test mode works immediately; live mode needs Stripe's review.
|
|
6
|
+
2. Accounts v2 available to the platform (`plumbus payments doctor --live` reports `stripe_accounts_v2_unavailable` otherwise).
|
|
7
|
+
|
|
8
|
+
## Options
|
|
9
|
+
|
|
10
|
+
```ts
|
|
11
|
+
stripeProvider({
|
|
12
|
+
secretKey: () => process.env.STRIPE_SECRET_KEY ?? '', // sk_… or rk_… (required)
|
|
13
|
+
webhookSecrets: () => (process.env.STRIPE_WEBHOOK_SECRETS ?? '').split(',').filter(Boolean), // required
|
|
14
|
+
publishableKey: process.env.STRIPE_PUBLISHABLE_KEY, // only for embedded components
|
|
15
|
+
webhookToleranceSeconds: 300, // signature age limit
|
|
16
|
+
maxNetworkRetries: 2, // SDK retries on network/409/429/5xx
|
|
17
|
+
timeoutMs: 80_000,
|
|
18
|
+
// api: { host: 'localhost', port: 12111, protocol: 'http' }, // stripe-mock
|
|
19
|
+
});
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
- The API **and** worker processes both need `STRIPE_SECRET_KEY` (the worker re-reads Stripe for every webhook) and the API needs `STRIPE_WEBHOOK_SECRETS`.
|
|
23
|
+
- Prefer a **restricted key** (`rk_…`). It needs write access, on connected accounts too, to what your config uses: Connect accounts, account links, account sessions, login links, Checkout Sessions, Customers, Payment Intents (holds, saved cards), Payment Methods, Refunds, Disputes (answering), Invoices and Invoice Items, Payment Links, Prices (custom amounts), Subscriptions, Billing Portal, Transfers, Payouts and Balance Settings; for `billing`, Products, Prices, Entitlement Features, and Billing Meters; event destinations (setup only); and read access to Charges, Balance, Invoice Payments, and Active Entitlements. Run `plumbus payments doctor --live` after creating it.
|
|
24
|
+
- A test key (`sk_test_`/`rk_test_`) with `NODE_ENV=production` is reported as an error by `doctor`.
|
|
25
|
+
- Checkout pages live 31 minutes to 23 h 59 min: `checkout.expiresAfterMinutes` is kept a minute inside Stripe's 30-minute–24-hour window.
|
|
26
|
+
- Embedded payment pages (`checkout.ui: 'embedded'`) need `publishableKey`; the front end mounts them with Stripe.js `initEmbeddedCheckout`, initialised with `stripeAccount: charge.checkout.accountId` when set (direct charges).
|
|
27
|
+
|
|
28
|
+
## Dashboards, fees, and losses (Stripe Accounts v2)
|
|
29
|
+
|
|
30
|
+
`createPayments({ dashboards })` maps to Stripe's `dashboard` and `defaults.responsibilities`:
|
|
31
|
+
|
|
32
|
+
| payments option | Stripe field |
|
|
33
|
+
|---|---|
|
|
34
|
+
| `dashboards.full` / `express` / `none` | `dashboard: 'full' \| 'express' \| 'none'` |
|
|
35
|
+
| `fees: 'provider'` / `'platform'` | `fees_collector: 'stripe'` / `'application'` |
|
|
36
|
+
| `losses: 'provider'` / `'platform'` | `losses_collector: 'stripe'` / `'application'` |
|
|
37
|
+
|
|
38
|
+
What each combination means:
|
|
39
|
+
|
|
40
|
+
- **full + provider/provider** (default): the seller has the full Stripe Dashboard, pays Stripe's fees, and Stripe covers negative balances. No Connect fees for the platform. Lowest risk.
|
|
41
|
+
- **express** (always platform/platform): lighter Stripe-hosted dashboard; your platform pays Stripe's processing fees and Connect fees and covers losses. Set `platformFee` to include Stripe's fee, or you lose money per charge.
|
|
42
|
+
- **none**: no Stripe dashboard; render Stripe's embedded components via `createMerchantSession`. With platform losses you are also responsible for collecting seller identity requirements.
|
|
43
|
+
- `fees: 'platform'` on full/none: Stripe bills your platform; your `platformFee` must include Stripe's processing fee.
|
|
44
|
+
- Sellers on express/none cannot write their own Radar rules, and platform Radar rules do not apply to direct charges — set rules per seller from "View Dashboard as this account".
|
|
45
|
+
|
|
46
|
+
These settings are fixed per seller when the account is created. Ask the app owner before offering `express` or platform liability: it moves financial risk to them.
|
|
47
|
+
|
|
48
|
+
## Charge types
|
|
49
|
+
|
|
50
|
+
| `chargeType` | Stripe | Seller's account asks for |
|
|
51
|
+
|---|---|---|
|
|
52
|
+
| `direct` (default for `full`) | Checkout on the seller's account, `application_fee_amount` | `merchant.card_payments` |
|
|
53
|
+
| `destination` (default for `express`, `none`) | Checkout on the platform, `transfer_data.destination`, `application_fee_amount` | `recipient.stripe_balance.stripe_transfers` (+ `card_payments` with `destination.onBehalfOf`, which sets `on_behalf_of`) |
|
|
54
|
+
|
|
55
|
+
`transfers.enabled` adds `stripe_transfers` for every seller so `payments.platform.transferToSeller` can pay them. Stripe restricts transfers across regions; check Stripe's cross-border payouts before selling internationally.
|
|
56
|
+
|
|
57
|
+
## Payouts
|
|
58
|
+
|
|
59
|
+
`payouts.schedule` is written through Stripe's **Balance Settings** API when an Express or no-dashboard seller's account is created (Stripe lets platforms set payout schedules only for accounts whose losses they cover). Weekly payouts go out Monday to Friday; `delayDays` becomes `settlement_timing.delay_days_override` (0–31, `'minimum'` resets it). Instant payouts need an eligible debit card on the seller's account; `getPayoutSettings` reports `instantAvailable` from the seller's balance.
|
|
60
|
+
|
|
61
|
+
## The billing catalog
|
|
62
|
+
|
|
63
|
+
`plumbus payments catalog sync` creates, for each plan, a product with a stable id (`plumbus_plan_…`, derived from `appId` and the plan key), a price per plan price with lookup key `plumbus:<appId>:<plan>:<price>`, an entitlement feature per feature key (`plumbus:<appId>:feature:<key>`) attached to its plans' products, and for each meter a billing meter (by `eventName`, mapping `stripe_customer_id` and `value`), a product, and a metered price (`plumbus:<appId>:meter:<meter>`). A changed amount makes a new price with `transfer_lookup_key` and archives the old one. A meter's aggregation cannot change at Stripe: use a new `eventName`. `catalog check` and `doctor --live` report differences without changing anything.
|
|
64
|
+
|
|
65
|
+
## Dashboard links
|
|
66
|
+
|
|
67
|
+
- `full`: `openMerchantDashboard` returns `https://dashboard.stripe.com/` (sellers sign in with their own Stripe login).
|
|
68
|
+
- `express`: a one-time Express login link.
|
|
69
|
+
- `none`: not available — use embedded components.
|