@venturekit/billing 0.0.0-dev.20260307234057
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 +191 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +32 -0
- package/dist/index.js.map +1 -0
- package/dist/local/cashplus.d.ts +75 -0
- package/dist/local/cashplus.d.ts.map +1 -0
- package/dist/local/cashplus.js +101 -0
- package/dist/local/cashplus.js.map +1 -0
- package/dist/local/cmi.d.ts +62 -0
- package/dist/local/cmi.d.ts.map +1 -0
- package/dist/local/cmi.js +90 -0
- package/dist/local/cmi.js.map +1 -0
- package/dist/local/index.d.ts +12 -0
- package/dist/local/index.d.ts.map +1 -0
- package/dist/local/index.js +12 -0
- package/dist/local/index.js.map +1 -0
- package/dist/local/payzone.d.ts +57 -0
- package/dist/local/payzone.d.ts.map +1 -0
- package/dist/local/payzone.js +83 -0
- package/dist/local/payzone.js.map +1 -0
- package/dist/plans/index.d.ts +124 -0
- package/dist/plans/index.d.ts.map +1 -0
- package/dist/plans/index.js +116 -0
- package/dist/plans/index.js.map +1 -0
- package/dist/stripe/client.d.ts +10 -0
- package/dist/stripe/client.d.ts.map +1 -0
- package/dist/stripe/client.js +23 -0
- package/dist/stripe/client.js.map +1 -0
- package/dist/stripe/customers.d.ts +39 -0
- package/dist/stripe/customers.d.ts.map +1 -0
- package/dist/stripe/customers.js +43 -0
- package/dist/stripe/customers.js.map +1 -0
- package/dist/stripe/index.d.ts +8 -0
- package/dist/stripe/index.d.ts.map +1 -0
- package/dist/stripe/index.js +8 -0
- package/dist/stripe/index.js.map +1 -0
- package/dist/stripe/payments.d.ts +29 -0
- package/dist/stripe/payments.d.ts.map +1 -0
- package/dist/stripe/payments.js +59 -0
- package/dist/stripe/payments.js.map +1 -0
- package/dist/stripe/subscriptions.d.ts +30 -0
- package/dist/stripe/subscriptions.d.ts.map +1 -0
- package/dist/stripe/subscriptions.js +72 -0
- package/dist/stripe/subscriptions.js.map +1 -0
- package/dist/types/config.d.ts +109 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +5 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/index.d.ts +8 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +8 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/invoice.d.ts +80 -0
- package/dist/types/invoice.d.ts.map +1 -0
- package/dist/types/invoice.js +5 -0
- package/dist/types/invoice.js.map +1 -0
- package/dist/types/payment.d.ts +104 -0
- package/dist/types/payment.d.ts.map +1 -0
- package/dist/types/payment.js +5 -0
- package/dist/types/payment.js.map +1 -0
- package/dist/types/subscription.d.ts +92 -0
- package/dist/types/subscription.d.ts.map +1 -0
- package/dist/types/subscription.js +5 -0
- package/dist/types/subscription.js.map +1 -0
- package/package.json +48 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payments.js","sourceRoot":"","sources":["../../src/stripe/payments.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,MAAoB,EACpB,KAAwD;IAExD,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;IAE7C,MAAM,iBAAiB,GAAuD;QAC5E,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE;QACtC,QAAQ,EAAE,KAAK,CAAC,gBAAgB;QAChC,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,QAAQ,EAAE,KAAK,CAAC,QAAkC;KACnD,CAAC;IAEF,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;QAC1B,iBAAiB,CAAC,cAAc,GAAG,KAAK,CAAC,eAAe,CAAC;IAC3D,CAAC;IAED,OAAO,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAoB,EACpB,eAAuB,EACvB,eAAwB;IAExB,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;IAE7C,OAAO,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,eAAe,EAAE;QACpD,cAAc,EAAE,eAAe;KAChC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAoB,EACpB,KAAsD;IAEtD,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;IAE7C,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;QAC3B,cAAc,EAAE,KAAK,CAAC,qBAAqB;QAC3C,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM,EAAE,KAAK,CAAC,MAA8D;KAC7E,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,MAAoB,EAAE,eAAuB;IACxF,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;IAC7C,OAAO,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,MAAoB,EACpB,UAAkB,EAClB,OAAmC,MAAM;IAEzC,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;IAC7C,OAAO,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC;QAChC,QAAQ,EAAE,UAAU;QACpB,IAAI;KACL,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stripe Subscriptions
|
|
3
|
+
*/
|
|
4
|
+
import type { StripeConfig, CreateSubscriptionInput, UpdateSubscriptionInput } from '../types';
|
|
5
|
+
/**
|
|
6
|
+
* Create a Stripe subscription
|
|
7
|
+
*/
|
|
8
|
+
export declare function createStripeSubscription(config: StripeConfig, input: CreateSubscriptionInput & {
|
|
9
|
+
stripePriceId: string;
|
|
10
|
+
stripeCustomerId: string;
|
|
11
|
+
}): Promise<import("stripe").Stripe.Response<import("stripe").Stripe.Subscription>>;
|
|
12
|
+
/**
|
|
13
|
+
* Update a Stripe subscription
|
|
14
|
+
*/
|
|
15
|
+
export declare function updateStripeSubscription(config: StripeConfig, subscriptionId: string, input: UpdateSubscriptionInput & {
|
|
16
|
+
stripePriceId?: string;
|
|
17
|
+
}): Promise<import("stripe").Stripe.Response<import("stripe").Stripe.Subscription>>;
|
|
18
|
+
/**
|
|
19
|
+
* Cancel a Stripe subscription
|
|
20
|
+
*/
|
|
21
|
+
export declare function cancelStripeSubscription(config: StripeConfig, subscriptionId: string, immediately?: boolean): Promise<import("stripe").Stripe.Response<import("stripe").Stripe.Subscription>>;
|
|
22
|
+
/**
|
|
23
|
+
* Resume a canceled subscription
|
|
24
|
+
*/
|
|
25
|
+
export declare function resumeStripeSubscription(config: StripeConfig, subscriptionId: string): Promise<import("stripe").Stripe.Response<import("stripe").Stripe.Subscription>>;
|
|
26
|
+
/**
|
|
27
|
+
* Get Stripe subscription
|
|
28
|
+
*/
|
|
29
|
+
export declare function getStripeSubscription(config: StripeConfig, subscriptionId: string): Promise<import("stripe").Stripe.Response<import("stripe").Stripe.Subscription>>;
|
|
30
|
+
//# sourceMappingURL=subscriptions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscriptions.d.ts","sourceRoot":"","sources":["../../src/stripe/subscriptions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAG/F;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,uBAAuB,GAAG;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,mFAmBrF;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,uBAAuB,GAAG;IAAE,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,mFAuB5D;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,MAAM,EACtB,WAAW,UAAQ,mFAWpB;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,MAAM,mFAOvB;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mFAGvF"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stripe Subscriptions
|
|
3
|
+
*/
|
|
4
|
+
import { getStripeClient } from './client';
|
|
5
|
+
/**
|
|
6
|
+
* Create a Stripe subscription
|
|
7
|
+
*/
|
|
8
|
+
export async function createStripeSubscription(config, input) {
|
|
9
|
+
const stripe = await getStripeClient(config);
|
|
10
|
+
const subscriptionData = {
|
|
11
|
+
customer: input.stripeCustomerId,
|
|
12
|
+
items: [{ price: input.stripePriceId }],
|
|
13
|
+
metadata: input.metadata,
|
|
14
|
+
};
|
|
15
|
+
if (input.paymentMethodId) {
|
|
16
|
+
subscriptionData.default_payment_method = input.paymentMethodId;
|
|
17
|
+
}
|
|
18
|
+
if (input.trialDays) {
|
|
19
|
+
subscriptionData.trial_period_days = input.trialDays;
|
|
20
|
+
}
|
|
21
|
+
return stripe.subscriptions.create(subscriptionData);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Update a Stripe subscription
|
|
25
|
+
*/
|
|
26
|
+
export async function updateStripeSubscription(config, subscriptionId, input) {
|
|
27
|
+
const stripe = await getStripeClient(config);
|
|
28
|
+
const updateData = {
|
|
29
|
+
metadata: input.metadata,
|
|
30
|
+
};
|
|
31
|
+
if (input.stripePriceId) {
|
|
32
|
+
// Get current subscription to find item ID
|
|
33
|
+
const subscription = await stripe.subscriptions.retrieve(subscriptionId);
|
|
34
|
+
const itemId = subscription.items.data[0]?.id;
|
|
35
|
+
if (itemId) {
|
|
36
|
+
updateData.items = [{ id: itemId, price: input.stripePriceId }];
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
if (input.cancelAtPeriodEnd !== undefined) {
|
|
40
|
+
updateData.cancel_at_period_end = input.cancelAtPeriodEnd;
|
|
41
|
+
}
|
|
42
|
+
return stripe.subscriptions.update(subscriptionId, updateData);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Cancel a Stripe subscription
|
|
46
|
+
*/
|
|
47
|
+
export async function cancelStripeSubscription(config, subscriptionId, immediately = false) {
|
|
48
|
+
const stripe = await getStripeClient(config);
|
|
49
|
+
if (immediately) {
|
|
50
|
+
return stripe.subscriptions.cancel(subscriptionId);
|
|
51
|
+
}
|
|
52
|
+
return stripe.subscriptions.update(subscriptionId, {
|
|
53
|
+
cancel_at_period_end: true,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Resume a canceled subscription
|
|
58
|
+
*/
|
|
59
|
+
export async function resumeStripeSubscription(config, subscriptionId) {
|
|
60
|
+
const stripe = await getStripeClient(config);
|
|
61
|
+
return stripe.subscriptions.update(subscriptionId, {
|
|
62
|
+
cancel_at_period_end: false,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Get Stripe subscription
|
|
67
|
+
*/
|
|
68
|
+
export async function getStripeSubscription(config, subscriptionId) {
|
|
69
|
+
const stripe = await getStripeClient(config);
|
|
70
|
+
return stripe.subscriptions.retrieve(subscriptionId);
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=subscriptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscriptions.js","sourceRoot":"","sources":["../../src/stripe/subscriptions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Billing Configuration Types
|
|
3
|
+
*/
|
|
4
|
+
import type { PaymentProvider } from './payment';
|
|
5
|
+
import type { SubscriptionPlan } from './subscription';
|
|
6
|
+
/**
|
|
7
|
+
* Stripe configuration
|
|
8
|
+
*/
|
|
9
|
+
export interface StripeConfig {
|
|
10
|
+
/** Stripe secret key */
|
|
11
|
+
secretKey: string;
|
|
12
|
+
/** Stripe publishable key */
|
|
13
|
+
publishableKey?: string;
|
|
14
|
+
/** Webhook secret */
|
|
15
|
+
webhookSecret?: string;
|
|
16
|
+
/** API version */
|
|
17
|
+
apiVersion?: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* CMI (Morocco) configuration
|
|
21
|
+
*/
|
|
22
|
+
export interface CmiConfig {
|
|
23
|
+
/** Merchant ID */
|
|
24
|
+
merchantId: string;
|
|
25
|
+
/** Store key */
|
|
26
|
+
storeKey: string;
|
|
27
|
+
/** Terminal ID */
|
|
28
|
+
terminalId: string;
|
|
29
|
+
/** API URL */
|
|
30
|
+
apiUrl: string;
|
|
31
|
+
/** Callback URL */
|
|
32
|
+
callbackUrl: string;
|
|
33
|
+
/** Test mode */
|
|
34
|
+
testMode?: boolean;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* PayZone (Morocco) configuration
|
|
38
|
+
*/
|
|
39
|
+
export interface PayZoneConfig {
|
|
40
|
+
/** API key */
|
|
41
|
+
apiKey: string;
|
|
42
|
+
/** Merchant ID */
|
|
43
|
+
merchantId: string;
|
|
44
|
+
/** API URL */
|
|
45
|
+
apiUrl: string;
|
|
46
|
+
/** Callback URL */
|
|
47
|
+
callbackUrl: string;
|
|
48
|
+
/** Test mode */
|
|
49
|
+
testMode?: boolean;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* CashPlus (Morocco) configuration
|
|
53
|
+
*/
|
|
54
|
+
export interface CashPlusConfig {
|
|
55
|
+
/** Partner ID */
|
|
56
|
+
partnerId: string;
|
|
57
|
+
/** API key */
|
|
58
|
+
apiKey: string;
|
|
59
|
+
/** API URL */
|
|
60
|
+
apiUrl: string;
|
|
61
|
+
/** Callback URL */
|
|
62
|
+
callbackUrl: string;
|
|
63
|
+
/** Test mode */
|
|
64
|
+
testMode?: boolean;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Billing configuration
|
|
68
|
+
*/
|
|
69
|
+
export interface BillingConfig {
|
|
70
|
+
/** Default payment provider */
|
|
71
|
+
defaultProvider: PaymentProvider;
|
|
72
|
+
/** Default currency */
|
|
73
|
+
defaultCurrency: string;
|
|
74
|
+
/** Stripe configuration */
|
|
75
|
+
stripe?: StripeConfig;
|
|
76
|
+
/** CMI configuration */
|
|
77
|
+
cmi?: CmiConfig;
|
|
78
|
+
/** PayZone configuration */
|
|
79
|
+
payzone?: PayZoneConfig;
|
|
80
|
+
/** CashPlus configuration */
|
|
81
|
+
cashplus?: CashPlusConfig;
|
|
82
|
+
/** Available plans */
|
|
83
|
+
plans?: SubscriptionPlan[];
|
|
84
|
+
/** Tax rate (percentage) */
|
|
85
|
+
taxRate?: number;
|
|
86
|
+
/** Tax ID label (e.g., "ICE" for Morocco) */
|
|
87
|
+
taxIdLabel?: string;
|
|
88
|
+
/** Invoice number prefix */
|
|
89
|
+
invoicePrefix?: string;
|
|
90
|
+
/** Webhook endpoint path */
|
|
91
|
+
webhookPath?: string;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Billing config input (partial for overrides)
|
|
95
|
+
*/
|
|
96
|
+
export interface BillingConfigInput {
|
|
97
|
+
defaultProvider?: PaymentProvider;
|
|
98
|
+
defaultCurrency?: string;
|
|
99
|
+
stripe?: Partial<StripeConfig>;
|
|
100
|
+
cmi?: Partial<CmiConfig>;
|
|
101
|
+
payzone?: Partial<PayZoneConfig>;
|
|
102
|
+
cashplus?: Partial<CashPlusConfig>;
|
|
103
|
+
plans?: SubscriptionPlan[];
|
|
104
|
+
taxRate?: number;
|
|
105
|
+
taxIdLabel?: string;
|
|
106
|
+
invoicePrefix?: string;
|
|
107
|
+
webhookPath?: string;
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Invoice Types
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Invoice status
|
|
6
|
+
*/
|
|
7
|
+
export type InvoiceStatus = 'draft' | 'open' | 'paid' | 'void' | 'uncollectible';
|
|
8
|
+
/**
|
|
9
|
+
* Invoice line item
|
|
10
|
+
*/
|
|
11
|
+
export interface InvoiceLineItem {
|
|
12
|
+
/** Line item ID */
|
|
13
|
+
id: string;
|
|
14
|
+
/** Description */
|
|
15
|
+
description: string;
|
|
16
|
+
/** Quantity */
|
|
17
|
+
quantity: number;
|
|
18
|
+
/** Unit price in smallest currency unit */
|
|
19
|
+
unitPrice: number;
|
|
20
|
+
/** Total amount */
|
|
21
|
+
amount: number;
|
|
22
|
+
/** Tax rate (percentage) */
|
|
23
|
+
taxRate?: number;
|
|
24
|
+
/** Tax amount */
|
|
25
|
+
taxAmount?: number;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Invoice
|
|
29
|
+
*/
|
|
30
|
+
export interface Invoice {
|
|
31
|
+
/** Invoice ID */
|
|
32
|
+
id: string;
|
|
33
|
+
/** Invoice number */
|
|
34
|
+
number: string;
|
|
35
|
+
/** Customer ID */
|
|
36
|
+
customerId: string;
|
|
37
|
+
/** Subscription ID (if subscription invoice) */
|
|
38
|
+
subscriptionId?: string;
|
|
39
|
+
/** Status */
|
|
40
|
+
status: InvoiceStatus;
|
|
41
|
+
/** Currency code */
|
|
42
|
+
currency: string;
|
|
43
|
+
/** Subtotal (before tax) */
|
|
44
|
+
subtotal: number;
|
|
45
|
+
/** Tax amount */
|
|
46
|
+
tax: number;
|
|
47
|
+
/** Total amount */
|
|
48
|
+
total: number;
|
|
49
|
+
/** Amount paid */
|
|
50
|
+
amountPaid: number;
|
|
51
|
+
/** Amount due */
|
|
52
|
+
amountDue: number;
|
|
53
|
+
/** Line items */
|
|
54
|
+
lineItems: InvoiceLineItem[];
|
|
55
|
+
/** Due date */
|
|
56
|
+
dueDate?: Date;
|
|
57
|
+
/** Paid at timestamp */
|
|
58
|
+
paidAt?: Date;
|
|
59
|
+
/** Invoice PDF URL */
|
|
60
|
+
pdfUrl?: string;
|
|
61
|
+
/** Stripe invoice ID */
|
|
62
|
+
stripeInvoiceId?: string;
|
|
63
|
+
/** Created timestamp */
|
|
64
|
+
createdAt: Date;
|
|
65
|
+
/** Updated timestamp */
|
|
66
|
+
updatedAt: Date;
|
|
67
|
+
/** Metadata */
|
|
68
|
+
metadata?: Record<string, unknown>;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Input for creating an invoice
|
|
72
|
+
*/
|
|
73
|
+
export interface CreateInvoiceInput {
|
|
74
|
+
customerId: string;
|
|
75
|
+
currency: string;
|
|
76
|
+
lineItems: Omit<InvoiceLineItem, 'id'>[];
|
|
77
|
+
dueDate?: Date;
|
|
78
|
+
metadata?: Record<string, unknown>;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=invoice.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invoice.d.ts","sourceRoot":"","sources":["../../src/types/invoice.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,OAAO,GACP,MAAM,GACN,MAAM,GACN,MAAM,GACN,eAAe,CAAC;AAEpB;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,mBAAmB;IACnB,EAAE,EAAE,MAAM,CAAC;IAEX,kBAAkB;IAClB,WAAW,EAAE,MAAM,CAAC;IAEpB,eAAe;IACf,QAAQ,EAAE,MAAM,CAAC;IAEjB,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAElB,mBAAmB;IACnB,MAAM,EAAE,MAAM,CAAC;IAEf,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,iBAAiB;IACjB,EAAE,EAAE,MAAM,CAAC;IAEX,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IAEf,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAC;IAEnB,gDAAgD;IAChD,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,aAAa;IACb,MAAM,EAAE,aAAa,CAAC;IAEtB,oBAAoB;IACpB,QAAQ,EAAE,MAAM,CAAC;IAEjB,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IAEjB,iBAAiB;IACjB,GAAG,EAAE,MAAM,CAAC;IAEZ,mBAAmB;IACnB,KAAK,EAAE,MAAM,CAAC;IAEd,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAC;IAEnB,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;IAElB,iBAAiB;IACjB,SAAS,EAAE,eAAe,EAAE,CAAC;IAE7B,eAAe;IACf,OAAO,CAAC,EAAE,IAAI,CAAC;IAEf,wBAAwB;IACxB,MAAM,CAAC,EAAE,IAAI,CAAC;IAEd,sBAAsB;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,wBAAwB;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,wBAAwB;IACxB,SAAS,EAAE,IAAI,CAAC;IAEhB,wBAAwB;IACxB,SAAS,EAAE,IAAI,CAAC;IAEhB,eAAe;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,EAAE,CAAC;IACzC,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invoice.js","sourceRoot":"","sources":["../../src/types/invoice.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Payment Types
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Payment provider
|
|
6
|
+
*/
|
|
7
|
+
export type PaymentProvider = 'stripe' | 'cmi' | 'payzone' | 'cashplus' | 'manual';
|
|
8
|
+
/**
|
|
9
|
+
* Payment status
|
|
10
|
+
*/
|
|
11
|
+
export type PaymentStatus = 'pending' | 'processing' | 'succeeded' | 'failed' | 'canceled' | 'refunded' | 'partially_refunded';
|
|
12
|
+
/**
|
|
13
|
+
* Payment method type
|
|
14
|
+
*/
|
|
15
|
+
export type PaymentMethodType = 'card' | 'bank_transfer' | 'cash' | 'mobile_money' | 'wallet';
|
|
16
|
+
/**
|
|
17
|
+
* Payment method
|
|
18
|
+
*/
|
|
19
|
+
export interface PaymentMethod {
|
|
20
|
+
/** Payment method ID */
|
|
21
|
+
id: string;
|
|
22
|
+
/** Customer ID */
|
|
23
|
+
customerId: string;
|
|
24
|
+
/** Provider */
|
|
25
|
+
provider: PaymentProvider;
|
|
26
|
+
/** Type */
|
|
27
|
+
type: PaymentMethodType;
|
|
28
|
+
/** Is default */
|
|
29
|
+
isDefault: boolean;
|
|
30
|
+
/** Card details (if card) */
|
|
31
|
+
card?: {
|
|
32
|
+
brand: string;
|
|
33
|
+
last4: string;
|
|
34
|
+
expMonth: number;
|
|
35
|
+
expYear: number;
|
|
36
|
+
};
|
|
37
|
+
/** Bank details (if bank transfer) */
|
|
38
|
+
bank?: {
|
|
39
|
+
bankName: string;
|
|
40
|
+
last4: string;
|
|
41
|
+
};
|
|
42
|
+
/** Provider-specific ID */
|
|
43
|
+
providerPaymentMethodId?: string;
|
|
44
|
+
/** Created timestamp */
|
|
45
|
+
createdAt: Date;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Payment
|
|
49
|
+
*/
|
|
50
|
+
export interface Payment {
|
|
51
|
+
/** Payment ID */
|
|
52
|
+
id: string;
|
|
53
|
+
/** Customer ID */
|
|
54
|
+
customerId: string;
|
|
55
|
+
/** Amount in smallest currency unit */
|
|
56
|
+
amount: number;
|
|
57
|
+
/** Currency code */
|
|
58
|
+
currency: string;
|
|
59
|
+
/** Status */
|
|
60
|
+
status: PaymentStatus;
|
|
61
|
+
/** Provider */
|
|
62
|
+
provider: PaymentProvider;
|
|
63
|
+
/** Payment method ID */
|
|
64
|
+
paymentMethodId?: string;
|
|
65
|
+
/** Invoice ID (if for invoice) */
|
|
66
|
+
invoiceId?: string;
|
|
67
|
+
/** Subscription ID (if for subscription) */
|
|
68
|
+
subscriptionId?: string;
|
|
69
|
+
/** Description */
|
|
70
|
+
description?: string;
|
|
71
|
+
/** Provider payment ID */
|
|
72
|
+
providerPaymentId?: string;
|
|
73
|
+
/** Failure reason */
|
|
74
|
+
failureReason?: string;
|
|
75
|
+
/** Refunded amount */
|
|
76
|
+
refundedAmount?: number;
|
|
77
|
+
/** Created timestamp */
|
|
78
|
+
createdAt: Date;
|
|
79
|
+
/** Updated timestamp */
|
|
80
|
+
updatedAt: Date;
|
|
81
|
+
/** Metadata */
|
|
82
|
+
metadata?: Record<string, unknown>;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Input for creating a payment
|
|
86
|
+
*/
|
|
87
|
+
export interface CreatePaymentInput {
|
|
88
|
+
customerId: string;
|
|
89
|
+
amount: number;
|
|
90
|
+
currency: string;
|
|
91
|
+
provider?: PaymentProvider;
|
|
92
|
+
paymentMethodId?: string;
|
|
93
|
+
description?: string;
|
|
94
|
+
metadata?: Record<string, unknown>;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Refund input
|
|
98
|
+
*/
|
|
99
|
+
export interface RefundInput {
|
|
100
|
+
paymentId: string;
|
|
101
|
+
amount?: number;
|
|
102
|
+
reason?: string;
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=payment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["../../src/types/payment.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB,QAAQ,GACR,KAAK,GACL,SAAS,GACT,UAAU,GACV,QAAQ,CAAC;AAEb;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,YAAY,GACZ,WAAW,GACX,QAAQ,GACR,UAAU,GACV,UAAU,GACV,oBAAoB,CAAC;AAEzB;;GAEG;AACH,MAAM,MAAM,iBAAiB,GACzB,MAAM,GACN,eAAe,GACf,MAAM,GACN,cAAc,GACd,QAAQ,CAAC;AAEb;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IAEX,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAC;IAEnB,eAAe;IACf,QAAQ,EAAE,eAAe,CAAC;IAE1B,WAAW;IACX,IAAI,EAAE,iBAAiB,CAAC;IAExB,iBAAiB;IACjB,SAAS,EAAE,OAAO,CAAC;IAEnB,6BAA6B;IAC7B,IAAI,CAAC,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IAEF,sCAAsC;IACtC,IAAI,CAAC,EAAE;QACL,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IAEF,2BAA2B;IAC3B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAEjC,wBAAwB;IACxB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,iBAAiB;IACjB,EAAE,EAAE,MAAM,CAAC;IAEX,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAC;IAEnB,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IAEf,oBAAoB;IACpB,QAAQ,EAAE,MAAM,CAAC;IAEjB,aAAa;IACb,MAAM,EAAE,aAAa,CAAC;IAEtB,eAAe;IACf,QAAQ,EAAE,eAAe,CAAC;IAE1B,wBAAwB;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,4CAA4C;IAC5C,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,kBAAkB;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,0BAA0B;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,qBAAqB;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,sBAAsB;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,wBAAwB;IACxB,SAAS,EAAE,IAAI,CAAC;IAEhB,wBAAwB;IACxB,SAAS,EAAE,IAAI,CAAC;IAEhB,eAAe;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payment.js","sourceRoot":"","sources":["../../src/types/payment.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Subscription Types
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Subscription status
|
|
6
|
+
*/
|
|
7
|
+
export type SubscriptionStatus = 'active' | 'canceled' | 'past_due' | 'unpaid' | 'trialing' | 'paused';
|
|
8
|
+
/**
|
|
9
|
+
* Billing interval
|
|
10
|
+
*/
|
|
11
|
+
export type BillingInterval = 'month' | 'year' | 'week' | 'day';
|
|
12
|
+
/**
|
|
13
|
+
* Subscription plan
|
|
14
|
+
*/
|
|
15
|
+
export interface SubscriptionPlan {
|
|
16
|
+
/** Plan ID */
|
|
17
|
+
id: string;
|
|
18
|
+
/** Plan name */
|
|
19
|
+
name: string;
|
|
20
|
+
/** Plan description */
|
|
21
|
+
description?: string;
|
|
22
|
+
/** Price in smallest currency unit (cents) */
|
|
23
|
+
price: number;
|
|
24
|
+
/** Currency code (ISO 4217) */
|
|
25
|
+
currency: string;
|
|
26
|
+
/** Billing interval */
|
|
27
|
+
interval: BillingInterval;
|
|
28
|
+
/** Interval count (e.g., 3 for quarterly) */
|
|
29
|
+
intervalCount?: number;
|
|
30
|
+
/** Trial period in days */
|
|
31
|
+
trialDays?: number;
|
|
32
|
+
/** Features included */
|
|
33
|
+
features?: string[];
|
|
34
|
+
/** Stripe price ID */
|
|
35
|
+
stripePriceId?: string;
|
|
36
|
+
/** Is active/available */
|
|
37
|
+
active: boolean;
|
|
38
|
+
/** Metadata */
|
|
39
|
+
metadata?: Record<string, unknown>;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Subscription
|
|
43
|
+
*/
|
|
44
|
+
export interface Subscription {
|
|
45
|
+
/** Subscription ID */
|
|
46
|
+
id: string;
|
|
47
|
+
/** Customer/tenant ID */
|
|
48
|
+
customerId: string;
|
|
49
|
+
/** Plan ID */
|
|
50
|
+
planId: string;
|
|
51
|
+
/** Status */
|
|
52
|
+
status: SubscriptionStatus;
|
|
53
|
+
/** Current period start */
|
|
54
|
+
currentPeriodStart: Date;
|
|
55
|
+
/** Current period end */
|
|
56
|
+
currentPeriodEnd: Date;
|
|
57
|
+
/** Cancel at period end */
|
|
58
|
+
cancelAtPeriodEnd: boolean;
|
|
59
|
+
/** Canceled at timestamp */
|
|
60
|
+
canceledAt?: Date;
|
|
61
|
+
/** Trial start */
|
|
62
|
+
trialStart?: Date;
|
|
63
|
+
/** Trial end */
|
|
64
|
+
trialEnd?: Date;
|
|
65
|
+
/** Stripe subscription ID */
|
|
66
|
+
stripeSubscriptionId?: string;
|
|
67
|
+
/** Created timestamp */
|
|
68
|
+
createdAt: Date;
|
|
69
|
+
/** Updated timestamp */
|
|
70
|
+
updatedAt: Date;
|
|
71
|
+
/** Metadata */
|
|
72
|
+
metadata?: Record<string, unknown>;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Input for creating a subscription
|
|
76
|
+
*/
|
|
77
|
+
export interface CreateSubscriptionInput {
|
|
78
|
+
customerId: string;
|
|
79
|
+
planId: string;
|
|
80
|
+
paymentMethodId?: string;
|
|
81
|
+
trialDays?: number;
|
|
82
|
+
metadata?: Record<string, unknown>;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Input for updating a subscription
|
|
86
|
+
*/
|
|
87
|
+
export interface UpdateSubscriptionInput {
|
|
88
|
+
planId?: string;
|
|
89
|
+
cancelAtPeriodEnd?: boolean;
|
|
90
|
+
metadata?: Record<string, unknown>;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=subscription.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscription.d.ts","sourceRoot":"","sources":["../../src/types/subscription.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAC1B,QAAQ,GACR,UAAU,GACV,UAAU,GACV,QAAQ,GACR,UAAU,GACV,QAAQ,CAAC;AAEb;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,cAAc;IACd,EAAE,EAAE,MAAM,CAAC;IAEX,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAC;IAEb,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IAEd,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IAEjB,uBAAuB;IACvB,QAAQ,EAAE,eAAe,CAAC;IAE1B,6CAA6C;IAC7C,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB,sBAAsB;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,0BAA0B;IAC1B,MAAM,EAAE,OAAO,CAAC;IAEhB,eAAe;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,sBAAsB;IACtB,EAAE,EAAE,MAAM,CAAC;IAEX,yBAAyB;IACzB,UAAU,EAAE,MAAM,CAAC;IAEnB,cAAc;IACd,MAAM,EAAE,MAAM,CAAC;IAEf,aAAa;IACb,MAAM,EAAE,kBAAkB,CAAC;IAE3B,2BAA2B;IAC3B,kBAAkB,EAAE,IAAI,CAAC;IAEzB,yBAAyB;IACzB,gBAAgB,EAAE,IAAI,CAAC;IAEvB,2BAA2B;IAC3B,iBAAiB,EAAE,OAAO,CAAC;IAE3B,4BAA4B;IAC5B,UAAU,CAAC,EAAE,IAAI,CAAC;IAElB,kBAAkB;IAClB,UAAU,CAAC,EAAE,IAAI,CAAC;IAElB,gBAAgB;IAChB,QAAQ,CAAC,EAAE,IAAI,CAAC;IAEhB,6BAA6B;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B,wBAAwB;IACxB,SAAS,EAAE,IAAI,CAAC;IAEhB,wBAAwB;IACxB,SAAS,EAAE,IAAI,CAAC;IAEhB,eAAe;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscription.js","sourceRoot":"","sources":["../../src/types/subscription.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
package/package.json
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@venturekit/billing",
|
|
3
|
+
"version": "0.0.0-dev.20260307234057",
|
|
4
|
+
"description": "Billing and invoicing for VentureKit",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"files": [
|
|
9
|
+
"dist"
|
|
10
|
+
],
|
|
11
|
+
"repository": {
|
|
12
|
+
"type": "git",
|
|
13
|
+
"url": "https://github.com/venturekit-dev/venturekit.private.git",
|
|
14
|
+
"directory": "packages/billing"
|
|
15
|
+
},
|
|
16
|
+
"publishConfig": {
|
|
17
|
+
"registry": "https://registry.npmjs.org",
|
|
18
|
+
"access": "public"
|
|
19
|
+
},
|
|
20
|
+
"license": "Apache-2.0",
|
|
21
|
+
"exports": {
|
|
22
|
+
".": {
|
|
23
|
+
"import": "./dist/index.js",
|
|
24
|
+
"types": "./dist/index.d.ts"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"dependencies": {
|
|
28
|
+
"@venturekit/core": "0.0.0-dev.20260307234057"
|
|
29
|
+
},
|
|
30
|
+
"peerDependencies": {
|
|
31
|
+
"stripe": "^14.0.0"
|
|
32
|
+
},
|
|
33
|
+
"peerDependenciesMeta": {
|
|
34
|
+
"stripe": {
|
|
35
|
+
"optional": true
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"devDependencies": {
|
|
39
|
+
"@types/node": "^20.10.0",
|
|
40
|
+
"stripe": "^14.0.0",
|
|
41
|
+
"typescript": "^5.3.0"
|
|
42
|
+
},
|
|
43
|
+
"scripts": {
|
|
44
|
+
"build": "tsc",
|
|
45
|
+
"dev": "tsc --watch",
|
|
46
|
+
"clean": "rm -rf dist"
|
|
47
|
+
}
|
|
48
|
+
}
|