@bubltec/mycota-payments 0.1.1-next.18 → 0.3.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,38 @@
1
+ export type ConnectAccountStatus = 'pending' | 'complete' | 'restricted';
2
+ export interface ConnectAccount {
3
+ id: string;
4
+ status: ConnectAccountStatus;
5
+ chargesEnabled: boolean;
6
+ payoutsEnabled: boolean;
7
+ detailsSubmitted: boolean;
8
+ }
9
+ export interface CreateExpressAccountInput {
10
+ email?: string;
11
+ country?: string;
12
+ metadata?: Record<string, string>;
13
+ }
14
+ export interface CreateOnboardingLinkInput {
15
+ accountId: string;
16
+ refreshUrl: string;
17
+ returnUrl: string;
18
+ }
19
+ export interface OnboardingLink {
20
+ url: string;
21
+ }
22
+ /**
23
+ * Stripe Connect Express (or an equivalent facilitator) onboarding. Inner
24
+ * layers ask for an account and a hosted KYC URL — they never import Stripe.
25
+ */
26
+ export interface ConnectOnboarding {
27
+ readonly provider: string;
28
+ createExpressAccount(input: CreateExpressAccountInput): Promise<ConnectAccount>;
29
+ createOnboardingLink(input: CreateOnboardingLinkInput): Promise<OnboardingLink>;
30
+ createLoginLink(accountId: string): Promise<OnboardingLink>;
31
+ getAccount(accountId: string): Promise<ConnectAccount>;
32
+ }
33
+ export declare function connectStatus(input: {
34
+ detailsSubmitted: boolean;
35
+ chargesEnabled: boolean;
36
+ currentlyDue: number;
37
+ }): ConnectAccountStatus;
38
+ //# sourceMappingURL=connect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,CAAC;AAEzE,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,oBAAoB,CAAC;IAC7B,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAChF,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAChF,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC5D,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CACxD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE;IACnC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,oBAAoB,CAIvB"}
@@ -0,0 +1,8 @@
1
+ export function connectStatus(input) {
2
+ if (input.currentlyDue > 0)
3
+ return 'restricted';
4
+ if (input.detailsSubmitted && input.chargesEnabled)
5
+ return 'complete';
6
+ return 'pending';
7
+ }
8
+ //# sourceMappingURL=connect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect.js","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"AAsCA,MAAM,UAAU,aAAa,CAAC,KAI7B;IACC,IAAI,KAAK,CAAC,YAAY,GAAG,CAAC;QAAE,OAAO,YAAY,CAAC;IAChD,IAAI,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,cAAc;QAAE,OAAO,UAAU,CAAC;IACtE,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=connect.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect.spec.d.ts","sourceRoot":"","sources":["../src/connect.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,65 @@
1
+ import { describe, expect, it, vi } from 'vitest';
2
+ import { FakeConnectOnboarding } from './fake.connect.js';
3
+ import { StripeConnectOnboarding } from './stripe.connect.js';
4
+ describe('FakeConnectOnboarding', () => {
5
+ it('creates a pending Express account and completes KYC locally', async () => {
6
+ const connect = new FakeConnectOnboarding();
7
+ const account = await connect.createExpressAccount({ email: 'org@example.com' });
8
+ expect(account.status).toBe('pending');
9
+ expect(account.chargesEnabled).toBe(false);
10
+ const link = await connect.createOnboardingLink({
11
+ accountId: account.id,
12
+ refreshUrl: 'https://app.local/refresh',
13
+ returnUrl: 'https://app.local/return',
14
+ });
15
+ expect(link.url).toContain(account.id);
16
+ const done = connect.complete(account.id);
17
+ expect(done.status).toBe('complete');
18
+ expect((await connect.getAccount(account.id)).payoutsEnabled).toBe(true);
19
+ });
20
+ });
21
+ describe('StripeConnectOnboarding', () => {
22
+ it('requests Express + card_payments/transfers and maps account status', async () => {
23
+ const client = {
24
+ accounts: {
25
+ create: vi.fn(async () => ({
26
+ id: 'acct_1',
27
+ charges_enabled: false,
28
+ payouts_enabled: false,
29
+ details_submitted: false,
30
+ requirements: { currently_due: ['individual.id_number'] },
31
+ })),
32
+ retrieve: vi.fn(async () => ({
33
+ id: 'acct_1',
34
+ charges_enabled: true,
35
+ payouts_enabled: true,
36
+ details_submitted: true,
37
+ requirements: { currently_due: [] },
38
+ })),
39
+ createLoginLink: vi.fn(async () => ({ url: 'https://connect.stripe.com/express/login' })),
40
+ },
41
+ accountLinks: {
42
+ create: vi.fn(async () => ({ url: 'https://connect.stripe.com/setup/e/acct_1' })),
43
+ },
44
+ };
45
+ const connect = new StripeConnectOnboarding(client);
46
+ const created = await connect.createExpressAccount({ email: 'org@example.com', country: 'US' });
47
+ expect(created.status).toBe('restricted');
48
+ expect(client.accounts.create).toHaveBeenCalledWith(expect.objectContaining({
49
+ type: 'express',
50
+ capabilities: {
51
+ card_payments: { requested: true },
52
+ transfers: { requested: true },
53
+ },
54
+ }));
55
+ const onboard = await connect.createOnboardingLink({
56
+ accountId: 'acct_1',
57
+ refreshUrl: 'https://app.local/refresh',
58
+ returnUrl: 'https://app.local/return',
59
+ });
60
+ expect(onboard.url).toContain('connect.stripe.com');
61
+ const retrieved = await connect.getAccount('acct_1');
62
+ expect(retrieved.status).toBe('complete');
63
+ });
64
+ });
65
+ //# sourceMappingURL=connect.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect.spec.js","sourceRoot":"","sources":["../src/connect.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { ConnectAccount, ConnectOnboarding, CreateExpressAccountInput, CreateOnboardingLinkInput, OnboardingLink } from './connect.js';
2
+ /**
3
+ * In-memory Express accounts for local boot. Onboarding links are fake URLs;
4
+ * `complete(accountId)` stands in for the organizer finishing KYC.
5
+ */
6
+ export declare class FakeConnectOnboarding implements ConnectOnboarding {
7
+ readonly provider = "fake";
8
+ private readonly accounts;
9
+ private seq;
10
+ createExpressAccount(_input: CreateExpressAccountInput): Promise<ConnectAccount>;
11
+ createOnboardingLink(input: CreateOnboardingLinkInput): Promise<OnboardingLink>;
12
+ createLoginLink(accountId: string): Promise<OnboardingLink>;
13
+ getAccount(accountId: string): Promise<ConnectAccount>;
14
+ /** Test/local helper — the hosted KYC page does this in production. */
15
+ complete(accountId: string): ConnectAccount;
16
+ private require;
17
+ }
18
+ //# sourceMappingURL=fake.connect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fake.connect.d.ts","sourceRoot":"","sources":["../src/fake.connect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,yBAAyB,EACzB,yBAAyB,EACzB,cAAc,EACf,MAAM,cAAc,CAAC;AAEtB;;;GAGG;AACH,qBAAa,qBAAsB,YAAW,iBAAiB;IAC7D,QAAQ,CAAC,QAAQ,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IAC9D,OAAO,CAAC,GAAG,CAAK;IAEV,oBAAoB,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,cAAc,CAAC;IAahF,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,cAAc,CAAC;IAK/E,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAK3D,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAI5D,uEAAuE;IACvE,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc;IAa3C,OAAO,CAAC,OAAO;CAKhB"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * In-memory Express accounts for local boot. Onboarding links are fake URLs;
3
+ * `complete(accountId)` stands in for the organizer finishing KYC.
4
+ */
5
+ export class FakeConnectOnboarding {
6
+ provider = 'fake';
7
+ accounts = new Map();
8
+ seq = 0;
9
+ async createExpressAccount(_input) {
10
+ this.seq += 1;
11
+ const account = {
12
+ id: `acct_fake_${this.seq}`,
13
+ status: 'pending',
14
+ chargesEnabled: false,
15
+ payoutsEnabled: false,
16
+ detailsSubmitted: false,
17
+ };
18
+ this.accounts.set(account.id, account);
19
+ return account;
20
+ }
21
+ async createOnboardingLink(input) {
22
+ this.require(input.accountId);
23
+ return { url: `https://connect.local/onboard/${input.accountId}` };
24
+ }
25
+ async createLoginLink(accountId) {
26
+ this.require(accountId);
27
+ return { url: `https://connect.local/login/${accountId}` };
28
+ }
29
+ async getAccount(accountId) {
30
+ return this.require(accountId);
31
+ }
32
+ /** Test/local helper — the hosted KYC page does this in production. */
33
+ complete(accountId) {
34
+ const account = this.require(accountId);
35
+ const next = {
36
+ ...account,
37
+ status: 'complete',
38
+ chargesEnabled: true,
39
+ payoutsEnabled: true,
40
+ detailsSubmitted: true,
41
+ };
42
+ this.accounts.set(accountId, next);
43
+ return next;
44
+ }
45
+ require(accountId) {
46
+ const account = this.accounts.get(accountId);
47
+ if (!account)
48
+ throw new Error(`connect account ${accountId} not found`);
49
+ return account;
50
+ }
51
+ }
52
+ //# sourceMappingURL=fake.connect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fake.connect.js","sourceRoot":"","sources":["../src/fake.connect.ts"],"names":[],"mappings":"AAQA;;;GAGG;AACH,MAAM,OAAO,qBAAqB;IACvB,QAAQ,GAAG,MAAM,CAAC;IACV,QAAQ,GAAG,IAAI,GAAG,EAA0B,CAAC;IACtD,GAAG,GAAG,CAAC,CAAC;IAEhB,KAAK,CAAC,oBAAoB,CAAC,MAAiC;QAC1D,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QACd,MAAM,OAAO,GAAmB;YAC9B,EAAE,EAAE,aAAa,IAAI,CAAC,GAAG,EAAE;YAC3B,MAAM,EAAE,SAAS;YACjB,cAAc,EAAE,KAAK;YACrB,cAAc,EAAE,KAAK;YACrB,gBAAgB,EAAE,KAAK;SACxB,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACvC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,KAAgC;QACzD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC9B,OAAO,EAAE,GAAG,EAAE,iCAAiC,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,SAAiB;QACrC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACxB,OAAO,EAAE,GAAG,EAAE,+BAA+B,SAAS,EAAE,EAAE,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,SAAiB;QAChC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;IAED,uEAAuE;IACvE,QAAQ,CAAC,SAAiB;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACxC,MAAM,IAAI,GAAmB;YAC3B,GAAG,OAAO;YACV,MAAM,EAAE,UAAU;YAClB,cAAc,EAAE,IAAI;YACpB,cAAc,EAAE,IAAI;YACpB,gBAAgB,EAAE,IAAI;SACvB,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,OAAO,CAAC,SAAiB;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,SAAS,YAAY,CAAC,CAAC;QACxE,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
package/dist/index.d.ts CHANGED
@@ -2,4 +2,7 @@ export { addMoney, money, type Money } from './money.js';
2
2
  export type { CheckoutLine, CheckoutSession, CreateCheckoutInput, PaymentEvent, PaymentGateway, PaymentGatewayConfig, RefundInput, RefundResult, } from './ports.js';
3
3
  export { FakePaymentGateway, type FakePaymentGatewayOptions } from './fake.adapter.js';
4
4
  export { StripePaymentGateway, type StripeCheckoutClient, type StripeWebhookEvent, } from './stripe.adapter.js';
5
+ export { connectStatus, type ConnectAccount, type ConnectAccountStatus, type ConnectOnboarding, type CreateExpressAccountInput, type CreateOnboardingLinkInput, type OnboardingLink, } from './connect.js';
6
+ export { FakeConnectOnboarding } from './fake.connect.js';
7
+ export { StripeConnectOnboarding, type StripeAccount, type StripeConnectClient, } from './stripe.connect.js';
5
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AACzD,YAAY,EACV,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,cAAc,EACd,oBAAoB,EACpB,WAAW,EACX,YAAY,GACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,kBAAkB,EAAE,KAAK,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AACvF,OAAO,EACL,oBAAoB,EACpB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AACzD,YAAY,EACV,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,cAAc,EACd,oBAAoB,EACpB,WAAW,EACX,YAAY,GACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,kBAAkB,EAAE,KAAK,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AACvF,OAAO,EACL,oBAAoB,EACpB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,aAAa,EACb,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,EAC9B,KAAK,cAAc,GACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EACL,uBAAuB,EACvB,KAAK,aAAa,EAClB,KAAK,mBAAmB,GACzB,MAAM,qBAAqB,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,7 @@
1
1
  export { addMoney, money } from './money.js';
2
2
  export { FakePaymentGateway } from './fake.adapter.js';
3
3
  export { StripePaymentGateway, } from './stripe.adapter.js';
4
+ export { connectStatus, } from './connect.js';
5
+ export { FakeConnectOnboarding } from './fake.connect.js';
6
+ export { StripeConnectOnboarding, } from './stripe.connect.js';
4
7
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAc,MAAM,YAAY,CAAC;AAWzD,OAAO,EAAE,kBAAkB,EAAkC,MAAM,mBAAmB,CAAC;AACvF,OAAO,EACL,oBAAoB,GAGrB,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAc,MAAM,YAAY,CAAC;AAWzD,OAAO,EAAE,kBAAkB,EAAkC,MAAM,mBAAmB,CAAC;AACvF,OAAO,EACL,oBAAoB,GAGrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,aAAa,GAOd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EACL,uBAAuB,GAGxB,MAAM,qBAAqB,CAAC"}
package/dist/ports.d.ts CHANGED
@@ -23,6 +23,10 @@ export interface RefundInput {
23
23
  paymentId: string;
24
24
  amount?: Money;
25
25
  reason?: string;
26
+ /** Reverse the platform take. Default true — Eventbrite keeping the service fee is the behavior not to copy. */
27
+ reverseApplicationFee?: boolean;
28
+ /** Pull funds back from the connected account on a destination charge. */
29
+ reverseTransfer?: boolean;
26
30
  }
27
31
  export interface RefundResult {
28
32
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../src/ports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,KAAK,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,uGAAuG;IACvG,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,wDAAwD;IACxD,cAAc,CAAC,EAAE,KAAK,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;CAC5C;AAED,MAAM,MAAM,YAAY,GACpB;IACE,IAAI,EAAE,oBAAoB,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,KAAK,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC,GACD;IACE,IAAI,EAAE,iBAAiB,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC,GACD;IACE,IAAI,EAAE,iBAAiB,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,KAAK,CAAC;CACf,CAAC;AAEN;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACrE,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAClD,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;CAChF;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
1
+ {"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../src/ports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,KAAK,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,uGAAuG;IACvG,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,wDAAwD;IACxD,cAAc,CAAC,EAAE,KAAK,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gHAAgH;IAChH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,0EAA0E;IAC1E,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;CAC5C;AAED,MAAM,MAAM,YAAY,GACpB;IACE,IAAI,EAAE,oBAAoB,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,KAAK,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC,GACD;IACE,IAAI,EAAE,iBAAiB,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC,GACD;IACE,IAAI,EAAE,iBAAiB,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,KAAK,CAAC;CACf,CAAC;AAEN;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACrE,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAClD,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;CAChF;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"stripe.adapter.d.ts","sourceRoot":"","sources":["../src/stripe.adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,cAAc,EACd,oBAAoB,EACpB,WAAW,EACX,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE;QACR,QAAQ,EAAE;YACR,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;gBAAE,EAAE,EAAE,MAAM,CAAC;gBAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;aAAE,CAAC,CAAC;SAC1F,CAAC;KACH,CAAC;IACF,OAAO,EAAE;QACP,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,CAAC,CAAC;KAC7F,CAAC;IACF,QAAQ,EAAE;QACR,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,kBAAkB,CAAC;KACzF,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;CAC3C;AAMD;;;;;GAKG;AACH,qBAAa,oBAAqB,YAAW,cAAc;IAIvD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJzB,QAAQ,CAAC,QAAQ,YAAY;gBAGV,MAAM,EAAE,oBAAoB,EAC5B,MAAM,EAAE,oBAAoB;IAGzC,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC;IAuCpE,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAajD,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;CAgCrF"}
1
+ {"version":3,"file":"stripe.adapter.d.ts","sourceRoot":"","sources":["../src/stripe.adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,cAAc,EACd,oBAAoB,EACpB,WAAW,EACX,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE;QACR,QAAQ,EAAE;YACR,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;gBAAE,EAAE,EAAE,MAAM,CAAC;gBAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;aAAE,CAAC,CAAC;SAC1F,CAAC;KACH,CAAC;IACF,OAAO,EAAE;QACP,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,CAAC,CAAC;KAC7F,CAAC;IACF,QAAQ,EAAE;QACR,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,kBAAkB,CAAC;KACzF,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;CAC3C;AAMD;;;;;GAKG;AACH,qBAAa,oBAAqB,YAAW,cAAc;IAIvD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJzB,QAAQ,CAAC,QAAQ,YAAY;gBAGV,MAAM,EAAE,oBAAoB,EAC5B,MAAM,EAAE,oBAAoB;IAGzC,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC;IAuCpE,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAejD,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;CAgCrF"}
@@ -55,6 +55,8 @@ export class StripePaymentGateway {
55
55
  payment_intent: input.paymentId,
56
56
  amount: input.amount?.amountCents,
57
57
  reason: input.reason,
58
+ refund_application_fee: input.reverseApplicationFee ?? true,
59
+ reverse_transfer: input.reverseTransfer ?? Boolean(input.reverseApplicationFee ?? true),
58
60
  });
59
61
  const status = refund.status === 'succeeded' || refund.status === 'pending' || refund.status === 'failed'
60
62
  ? refund.status
@@ -1 +1 @@
1
- {"version":3,"file":"stripe.adapter.js","sourceRoot":"","sources":["../src/stripe.adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stripe.adapter.js","sourceRoot":"","sources":["../src/stripe.adapter.ts"],"names":[],"mappings":"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"}
@@ -70,5 +70,18 @@ describe('StripePaymentGateway', () => {
70
70
  metadata: { orderId: 'ord_1' },
71
71
  });
72
72
  });
73
+ it('refunds the application fee by default', async () => {
74
+ const client = stubClient();
75
+ const gateway = new StripePaymentGateway(client, {
76
+ secretKey: 'sk_test',
77
+ webhookSecret: 'whsec_test',
78
+ });
79
+ await gateway.refund({ paymentId: 'pi_test_1' });
80
+ expect(client.refunds.create).toHaveBeenCalledWith(expect.objectContaining({
81
+ payment_intent: 'pi_test_1',
82
+ refund_application_fee: true,
83
+ reverse_transfer: true,
84
+ }));
85
+ });
73
86
  });
74
87
  //# sourceMappingURL=stripe.adapter.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stripe.adapter.spec.js","sourceRoot":"","sources":["../src/stripe.adapter.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stripe.adapter.spec.js","sourceRoot":"","sources":["../src/stripe.adapter.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAA6B,MAAM,qBAAqB,CAAC;AAEtF,SAAS,UAAU,CAAC,YAA2C,EAAE;IAC/D,OAAO;QACL,QAAQ,EAAE;YACR,QAAQ,EAAE;gBACR,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,6CAA6C,EAAE,CAAC,CAAC;aACrG;SACF;QACD,OAAO,EAAE;YACP,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;SACtE;QACD,QAAQ,EAAE;YACR,cAAc,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC3B,IAAI,EAAE,4BAA4B;gBAClC,IAAI,EAAE;oBACJ,MAAM,EAAE;wBACN,EAAE,EAAE,WAAW;wBACf,cAAc,EAAE,WAAW;wBAC3B,YAAY,EAAE,IAAI;wBAClB,QAAQ,EAAE,KAAK;wBACf,QAAQ,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;qBAC/B;iBACF;aACF,CAAC,CAAC;SACJ;QACD,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;QACxF,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,IAAI,oBAAoB,CAAC,MAAM,EAAE;YAC/C,SAAS,EAAE,SAAS;YACpB,aAAa,EAAE,YAAY;SAC5B,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC;YAC3C,kBAAkB,EAAE,UAAU;YAC9B,cAAc,EAAE,KAAK,CAAC,GAAG,CAAC;YAC1B,UAAU,EAAE,sBAAsB;YAClC,SAAS,EAAE,sBAAsB;YACjC,QAAQ,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;YAC9B,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;SAC9D,CAAC,CAAC;QAEH,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;YACtB,EAAE,EAAE,WAAW;YACf,GAAG,EAAE,6CAA6C;SACnD,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAC1D,MAAM,CAAC,gBAAgB,CAAC;YACtB,IAAI,EAAE,SAAS;YACf,mBAAmB,EAAE;gBACnB,aAAa,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE;gBAC1C,sBAAsB,EAAE,GAAG;gBAC3B,QAAQ,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;aAC/B;SACF,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,IAAI,oBAAoB,CAAC,MAAM,EAAE;YAC/C,SAAS,EAAE,SAAS;YACpB,aAAa,EAAE,YAAY;SAC5B,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACtD,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;YACpB,IAAI,EAAE,oBAAoB;YAC1B,SAAS,EAAE,WAAW;YACtB,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC;YACnB,QAAQ,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;SAC/B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,IAAI,oBAAoB,CAAC,MAAM,EAAE;YAC/C,SAAS,EAAE,SAAS;YACpB,aAAa,EAAE,YAAY;SAC5B,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAChD,MAAM,CAAC,gBAAgB,CAAC;YACtB,cAAc,EAAE,WAAW;YAC3B,sBAAsB,EAAE,IAAI;YAC5B,gBAAgB,EAAE,IAAI;SACvB,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { type ConnectAccount, type ConnectOnboarding, type CreateExpressAccountInput, type CreateOnboardingLinkInput, type OnboardingLink } from './connect.js';
2
+ /**
3
+ * Narrow Stripe Connect surface so this package does not take a `stripe`
4
+ * SDK dependency. Same injection style as StripePaymentGateway.
5
+ */
6
+ export interface StripeConnectClient {
7
+ accounts: {
8
+ create: (params: Record<string, unknown>) => Promise<StripeAccount>;
9
+ retrieve: (id: string) => Promise<StripeAccount>;
10
+ createLoginLink: (id: string) => Promise<{
11
+ url: string;
12
+ }>;
13
+ };
14
+ accountLinks: {
15
+ create: (params: Record<string, unknown>) => Promise<{
16
+ url: string;
17
+ }>;
18
+ };
19
+ }
20
+ export interface StripeAccount {
21
+ id: string;
22
+ charges_enabled?: boolean;
23
+ payouts_enabled?: boolean;
24
+ details_submitted?: boolean;
25
+ requirements?: {
26
+ currently_due?: string[];
27
+ };
28
+ }
29
+ export declare class StripeConnectOnboarding implements ConnectOnboarding {
30
+ private readonly stripe;
31
+ readonly provider = "stripe";
32
+ constructor(stripe: StripeConnectClient);
33
+ createExpressAccount(input: CreateExpressAccountInput): Promise<ConnectAccount>;
34
+ createOnboardingLink(input: CreateOnboardingLinkInput): Promise<OnboardingLink>;
35
+ createLoginLink(accountId: string): Promise<OnboardingLink>;
36
+ getAccount(accountId: string): Promise<ConnectAccount>;
37
+ }
38
+ //# sourceMappingURL=stripe.connect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stripe.connect.d.ts","sourceRoot":"","sources":["../src/stripe.connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,KAAK,iBAAiB,EAAE,KAAK,yBAAyB,EAAE,KAAK,yBAAyB,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAE/K;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE;QACR,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;QACpE,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;QACjD,eAAe,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;YAAE,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC3D,CAAC;IACF,YAAY,EAAE;QACZ,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;YAAE,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACvE,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CAC7C;AAgBD,qBAAa,uBAAwB,YAAW,iBAAiB;IAGnD,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,QAAQ,CAAC,QAAQ,YAAY;gBAEA,MAAM,EAAE,mBAAmB;IAElD,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,cAAc,CAAC;IAc/E,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,cAAc,CAAC;IAU/E,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAK3D,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;CAG7D"}
@@ -0,0 +1,51 @@
1
+ import { connectStatus } from './connect.js';
2
+ function toAccount(raw) {
3
+ const chargesEnabled = Boolean(raw.charges_enabled);
4
+ const payoutsEnabled = Boolean(raw.payouts_enabled);
5
+ const detailsSubmitted = Boolean(raw.details_submitted);
6
+ const currentlyDue = raw.requirements?.currently_due?.length ?? 0;
7
+ return {
8
+ id: raw.id,
9
+ chargesEnabled,
10
+ payoutsEnabled,
11
+ detailsSubmitted,
12
+ status: connectStatus({ detailsSubmitted, chargesEnabled, currentlyDue }),
13
+ };
14
+ }
15
+ export class StripeConnectOnboarding {
16
+ stripe;
17
+ provider = 'stripe';
18
+ constructor(stripe) {
19
+ this.stripe = stripe;
20
+ }
21
+ async createExpressAccount(input) {
22
+ const raw = await this.stripe.accounts.create({
23
+ type: 'express',
24
+ country: input.country ?? 'US',
25
+ email: input.email,
26
+ metadata: input.metadata,
27
+ capabilities: {
28
+ card_payments: { requested: true },
29
+ transfers: { requested: true },
30
+ },
31
+ });
32
+ return toAccount(raw);
33
+ }
34
+ async createOnboardingLink(input) {
35
+ const link = await this.stripe.accountLinks.create({
36
+ account: input.accountId,
37
+ refresh_url: input.refreshUrl,
38
+ return_url: input.returnUrl,
39
+ type: 'account_onboarding',
40
+ });
41
+ return { url: link.url };
42
+ }
43
+ async createLoginLink(accountId) {
44
+ const link = await this.stripe.accounts.createLoginLink(accountId);
45
+ return { url: link.url };
46
+ }
47
+ async getAccount(accountId) {
48
+ return toAccount(await this.stripe.accounts.retrieve(accountId));
49
+ }
50
+ }
51
+ //# sourceMappingURL=stripe.connect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stripe.connect.js","sourceRoot":"","sources":["../src/stripe.connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAoI,MAAM,cAAc,CAAC;AAyB/K,SAAS,SAAS,CAAC,GAAkB;IACnC,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACpD,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACpD,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC,CAAC;IAClE,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,cAAc;QACd,cAAc;QACd,gBAAgB;QAChB,MAAM,EAAE,aAAa,CAAC,EAAE,gBAAgB,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC;KAC1E,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,uBAAuB;IAGL;IAFpB,QAAQ,GAAG,QAAQ,CAAC;IAE7B,YAA6B,MAA2B;QAA3B,WAAM,GAAN,MAAM,CAAqB;IAAG,CAAC;IAE5D,KAAK,CAAC,oBAAoB,CAAC,KAAgC;QACzD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC5C,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI;YAC9B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,YAAY,EAAE;gBACZ,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;gBAClC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;aAC/B;SACF,CAAC,CAAC;QACH,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,KAAgC;QACzD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC;YACjD,OAAO,EAAE,KAAK,CAAC,SAAS;YACxB,WAAW,EAAE,KAAK,CAAC,UAAU;YAC7B,UAAU,EAAE,KAAK,CAAC,SAAS;YAC3B,IAAI,EAAE,oBAAoB;SAC3B,CAAC,CAAC;QACH,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,SAAiB;QACrC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QACnE,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,SAAiB;QAChC,OAAO,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IACnE,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bubltec/mycota-payments",
3
- "version": "0.1.1-next.18",
3
+ "version": "0.3.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -21,6 +21,11 @@
21
21
  "typescript": "^5.8.0",
22
22
  "vitest": "^2.1.0"
23
23
  },
24
+ "repository": {
25
+ "type": "git",
26
+ "url": "https://github.com/bubltec/mycota",
27
+ "directory": "packages/payments"
28
+ },
24
29
  "scripts": {
25
30
  "build": "tsc -b",
26
31
  "typecheck": "tsc -b --noEmit",