@mostajs/subscriptions-plan 0.2.0 → 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.
- package/dist/lib/subscribe.d.ts +33 -0
- package/dist/lib/subscribe.d.ts.map +1 -0
- package/dist/lib/subscribe.js +105 -0
- package/dist/lib/subscribe.js.map +1 -0
- package/dist/server.d.ts +2 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +2 -0
- package/dist/server.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { IDialect } from '@mostajs/orm';
|
|
2
|
+
export interface SubscribeParams {
|
|
3
|
+
accountId: string;
|
|
4
|
+
planId: string;
|
|
5
|
+
/** Payment provider: 'direct' (free/manual), 'stripe', 'chargily', 'paypal', 'satim' */
|
|
6
|
+
provider?: string;
|
|
7
|
+
/** URLs for payment redirect */
|
|
8
|
+
successUrl?: string;
|
|
9
|
+
cancelUrl?: string;
|
|
10
|
+
/** Customer info (for provider checkout) */
|
|
11
|
+
customerEmail?: string;
|
|
12
|
+
customerName?: string;
|
|
13
|
+
/** Stripe customer ID (if already exists) */
|
|
14
|
+
stripeCustomerId?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface SubscribeResult {
|
|
17
|
+
ok: boolean;
|
|
18
|
+
/** If payment required, redirect URL */
|
|
19
|
+
url?: string | null;
|
|
20
|
+
/** If direct subscription (free plan), the subscription object */
|
|
21
|
+
subscription?: any;
|
|
22
|
+
/** Error message */
|
|
23
|
+
error?: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Subscribe to a plan — handles free (direct) and paid (via payment provider).
|
|
27
|
+
*
|
|
28
|
+
* - Free plan (price=0): creates subscription directly in DB
|
|
29
|
+
* - Paid plan: delegates to @mostajs/payment provider for checkout redirect
|
|
30
|
+
* - Falls back to direct subscription if no provider available
|
|
31
|
+
*/
|
|
32
|
+
export declare function subscribeToPlan(dialect: IDialect, params: SubscribeParams): Promise<SubscribeResult>;
|
|
33
|
+
//# sourceMappingURL=subscribe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscribe.d.ts","sourceRoot":"","sources":["../../src/lib/subscribe.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAG5C,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,wFAAwF;IACxF,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,4CAA4C;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,6CAA6C;IAC7C,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,OAAO,CAAA;IACX,wCAAwC;IACxC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,kEAAkE;IAClE,YAAY,CAAC,EAAE,GAAG,CAAA;IAClB,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,QAAQ,EACjB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,eAAe,CAAC,CAuC1B"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
// @mostajs/subscriptions-plan — Subscribe to plan (multi-provider)
|
|
2
|
+
// Author: Dr Hamid MADANI drmdh@msn.com
|
|
3
|
+
// Delegates payment to @mostajs/payment providers
|
|
4
|
+
import { getPlanRepo, getSubscriptionRepo } from './plan-factory.js';
|
|
5
|
+
/**
|
|
6
|
+
* Subscribe to a plan — handles free (direct) and paid (via payment provider).
|
|
7
|
+
*
|
|
8
|
+
* - Free plan (price=0): creates subscription directly in DB
|
|
9
|
+
* - Paid plan: delegates to @mostajs/payment provider for checkout redirect
|
|
10
|
+
* - Falls back to direct subscription if no provider available
|
|
11
|
+
*/
|
|
12
|
+
export async function subscribeToPlan(dialect, params) {
|
|
13
|
+
const planRepo = getPlanRepo(dialect);
|
|
14
|
+
const subRepo = getSubscriptionRepo(dialect);
|
|
15
|
+
// Verify plan exists
|
|
16
|
+
const plan = await planRepo.findById(params.planId);
|
|
17
|
+
if (!plan)
|
|
18
|
+
return { ok: false, error: 'Plan non trouve' };
|
|
19
|
+
// Free plan or no provider → direct subscription
|
|
20
|
+
if (!plan.price || plan.price === 0 || !params.provider || params.provider === 'direct') {
|
|
21
|
+
return directSubscribe(subRepo, params.accountId, params.planId);
|
|
22
|
+
}
|
|
23
|
+
// Paid plan → try payment provider
|
|
24
|
+
try {
|
|
25
|
+
const { getProvider, registerProvider } = await import('@mostajs/payment/server');
|
|
26
|
+
// Auto-register provider if not done yet
|
|
27
|
+
await ensureProvider(params.provider);
|
|
28
|
+
const provider = getProvider(params.provider);
|
|
29
|
+
const result = await provider.createCheckout({
|
|
30
|
+
orderId: `sub_${params.accountId}_${params.planId}`,
|
|
31
|
+
amount: plan.price / 100, // cents → units
|
|
32
|
+
currency: plan.currency ?? 'usd',
|
|
33
|
+
description: `Abonnement ${plan.name}`,
|
|
34
|
+
successUrl: params.successUrl ?? '/dashboard/billing?success=1',
|
|
35
|
+
cancelUrl: params.cancelUrl ?? '/dashboard/billing?canceled=1',
|
|
36
|
+
customerId: params.stripeCustomerId,
|
|
37
|
+
priceId: plan.stripePriceId,
|
|
38
|
+
metadata: { accountId: params.accountId, planId: params.planId },
|
|
39
|
+
});
|
|
40
|
+
return { ok: true, url: result.url };
|
|
41
|
+
}
|
|
42
|
+
catch (e) {
|
|
43
|
+
console.warn(`[subscribe] Provider ${params.provider} failed:`, e.message);
|
|
44
|
+
// Fallback to direct subscription
|
|
45
|
+
return directSubscribe(subRepo, params.accountId, params.planId);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Direct subscription — no payment required (free plan or fallback).
|
|
50
|
+
*/
|
|
51
|
+
async function directSubscribe(subRepo, accountId, planId) {
|
|
52
|
+
// Cancel existing active subscriptions
|
|
53
|
+
const existing = await subRepo.findAll({ account: accountId, status: 'active' });
|
|
54
|
+
for (const sub of existing) {
|
|
55
|
+
await subRepo.update(sub.id, { status: 'canceled' });
|
|
56
|
+
}
|
|
57
|
+
// Create new subscription
|
|
58
|
+
const subscription = await subRepo.create({
|
|
59
|
+
account: accountId,
|
|
60
|
+
plan: planId,
|
|
61
|
+
status: 'active',
|
|
62
|
+
});
|
|
63
|
+
return { ok: true, subscription };
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Auto-register a payment provider from environment variables.
|
|
67
|
+
*/
|
|
68
|
+
async function ensureProvider(name) {
|
|
69
|
+
const { listProviders } = await import('@mostajs/payment/server');
|
|
70
|
+
if (listProviders().includes(name))
|
|
71
|
+
return;
|
|
72
|
+
switch (name) {
|
|
73
|
+
case 'stripe': {
|
|
74
|
+
if (!process.env.STRIPE_SECRET_KEY)
|
|
75
|
+
throw new Error('STRIPE_SECRET_KEY not configured');
|
|
76
|
+
const { createStripeProvider, registerProvider } = await import('@mostajs/payment/server');
|
|
77
|
+
registerProvider(createStripeProvider());
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
case 'chargily': {
|
|
81
|
+
if (!process.env.CHARGILY_API_KEY)
|
|
82
|
+
throw new Error('CHARGILY_API_KEY not configured');
|
|
83
|
+
const { createChargilyProvider, registerProvider } = await import('@mostajs/payment/server');
|
|
84
|
+
registerProvider(createChargilyProvider());
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
case 'paypal': {
|
|
88
|
+
if (!process.env.PAYPAL_CLIENT_ID)
|
|
89
|
+
throw new Error('PAYPAL_CLIENT_ID not configured');
|
|
90
|
+
const { createPayPalProvider, registerProvider } = await import('@mostajs/payment/server');
|
|
91
|
+
registerProvider(createPayPalProvider());
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
case 'satim': {
|
|
95
|
+
if (!process.env.SATIM_MERCHANT_ID)
|
|
96
|
+
throw new Error('SATIM_MERCHANT_ID not configured');
|
|
97
|
+
const { createSatimProvider, registerProvider } = await import('@mostajs/payment/server');
|
|
98
|
+
registerProvider(createSatimProvider());
|
|
99
|
+
break;
|
|
100
|
+
}
|
|
101
|
+
default:
|
|
102
|
+
throw new Error(`Unknown payment provider: ${name}`);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=subscribe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscribe.js","sourceRoot":"","sources":["../../src/lib/subscribe.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export { getPlanRepo, getSubscriptionRepo, getInvoiceRepo, getUsageLogRepo, resetRepos, } from './lib/plan-factory.js';
|
|
2
2
|
export { checkQuota, isDialectAllowed, isTransportAllowed, getUsageSummary, incrementUsage, DEFAULT_PLANS, } from './lib/quota-check.js';
|
|
3
3
|
export { createBillingSession, createPortalSession, createStripeCustomer, cancelSubscription, changeSubscriptionPlan, verifyWebhookEvent, parseBillingEvent, } from './lib/stripe-billing.js';
|
|
4
|
+
export { subscribeToPlan } from './lib/subscribe.js';
|
|
5
|
+
export type { SubscribeParams, SubscribeResult } from './lib/subscribe.js';
|
|
4
6
|
export { createPlanHandlers } from './api/plans.route.js';
|
|
5
7
|
export { createSubscriptionHandlers } from './api/subscriptions.route.js';
|
|
6
8
|
export { createUsageHandlers } from './api/usage.route.js';
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,UAAU,GACX,MAAM,uBAAuB,CAAA;AAG9B,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,aAAa,GACd,MAAM,sBAAsB,CAAA;AAG7B,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,yBAAyB,CAAA;AAGhC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAG1D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAG7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAA"}
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,UAAU,GACX,MAAM,uBAAuB,CAAA;AAG9B,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,aAAa,GACd,MAAM,sBAAsB,CAAA;AAG7B,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,yBAAyB,CAAA;AAGhC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAG1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAG1D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAG7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAA"}
|
package/dist/server.js
CHANGED
|
@@ -6,6 +6,8 @@ export { getPlanRepo, getSubscriptionRepo, getInvoiceRepo, getUsageLogRepo, rese
|
|
|
6
6
|
export { checkQuota, isDialectAllowed, isTransportAllowed, getUsageSummary, incrementUsage, DEFAULT_PLANS, } from './lib/quota-check.js';
|
|
7
7
|
// Stripe Billing
|
|
8
8
|
export { createBillingSession, createPortalSession, createStripeCustomer, cancelSubscription, changeSubscriptionPlan, verifyWebhookEvent, parseBillingEvent, } from './lib/stripe-billing.js';
|
|
9
|
+
// Subscribe (multi-provider via @mostajs/payment)
|
|
10
|
+
export { subscribeToPlan } from './lib/subscribe.js';
|
|
9
11
|
// API handlers
|
|
10
12
|
export { createPlanHandlers } from './api/plans.route.js';
|
|
11
13
|
export { createSubscriptionHandlers } from './api/subscriptions.route.js';
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,wCAAwC;AAExC,eAAe;AACf,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,UAAU,GACX,MAAM,uBAAuB,CAAA;AAE9B,oBAAoB;AACpB,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,aAAa,GACd,MAAM,sBAAsB,CAAA;AAE7B,iBAAiB;AACjB,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,yBAAyB,CAAA;AAEhC,eAAe;AACf,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAE1D,wBAAwB;AACxB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAE7D,eAAe;AACf,OAAO,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAA"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,wCAAwC;AAExC,eAAe;AACf,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,UAAU,GACX,MAAM,uBAAuB,CAAA;AAE9B,oBAAoB;AACpB,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,aAAa,GACd,MAAM,sBAAsB,CAAA;AAE7B,iBAAiB;AACjB,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,yBAAyB,CAAA;AAEhC,kDAAkD;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAGpD,eAAe;AACf,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAE1D,wBAAwB;AACxB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAE7D,eAAe;AACf,OAAO,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAA"}
|