@mostajs/subscriptions-plan 0.6.0 → 0.7.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 CHANGED
@@ -3,6 +3,23 @@
3
3
  **Auteur** : Dr Hamid MADANI <drmdh@msn.com>
4
4
 
5
5
 
6
+ ## 0.7.0 — 2026-10-08
7
+
8
+ - **Vente prépayée multi-banques** : `createPrepaidSale({ billing, providers, urls, payment?, metadataKeys?, clock? })` —
9
+ un mois ou un an de palier, payé d'avance chez une banque qui ne prélève pas (Chargily : CIB et Edahabia en dinars ;
10
+ PayPal ; SATIM…), par `@mostajs/payment` (`createPaymentCheckout`, `settlePaymentFromWebhook`). Mêmes règles que la
11
+ vente Stripe : le palier ne monte qu'au webhook ; rejeu sans effet (journal `BillingEvent`, marqué avant d'appliquer —
12
+ `settlePaymentFromWebhook` remet « paid » à chaque appel) ; remboursement ou contestation → palier gratuit (si le
13
+ palier en cours est bien ce prépayé) ; une nouvelle période s'ajoute à la fin de la période en cours ; un abonnement
14
+ Stripe en cours n'est pas doublé. `offers(planSlug)`, `openCheckout`, `handleWebhook` (200/400/404/500), `addPeriod`.
15
+ - **Expiration** : `billing.activePlan` passe une période prépayée échue en `expired` et rend le palier gratuit. Une
16
+ période Stripe n'est pas touchée (elle finit par son webhook).
17
+ - Schémas (additifs) : `Plan.prepaid` (prix par devise et période, unités mineures) ; `Subscription.provider`,
18
+ `Subscription.prepaidOrderId`. T-UNIT : `Plan` a 11 champs.
19
+ - Peer dep `@mostajs/payment` : `>=2.5.0` (jeton `{provider}` du webhook, orchestration). Dev dep 2.5.3.
20
+ - Essais T-SP-15 à 20, écrits avant le code ; T-SP-20 avec la VRAIE vérification HMAC de Chargily. Quatre sabotages
21
+ détectés : rejeu appliqué deux fois, expiration retirée, remboursement ignoré, palier activé à l'ouverture.
22
+
6
23
  ## 0.6.0 — 2026-10-02
7
24
 
8
25
  - **Portail client Stripe** : `openPortal({ accountId, returnUrl, locale? })` — le client change de palier ou de
package/README.md CHANGED
@@ -56,6 +56,26 @@ const v = await billing.consume(accountId, 'signature')
56
56
  const sale = createStripeSale({ billing, stripe, webhookSecret, customers, urls })
57
57
  ```
58
58
 
59
+ ## Prepaid sale *(v0.7.0)* — Chargily (CIB, Edahabia), PayPal, SATIM…
60
+
61
+ For banks that do not charge recurrently: one month or one year of a tier, paid in advance, that **expires**.
62
+ The payment goes through `@mostajs/payment` (≥ 2.5); the tier only rises on the **webhook**, a replayed webhook
63
+ never extends twice (`BillingEvent` journal), a refund or a dispute returns to the free tier, a new period is
64
+ added to the end of the current one, and a running Stripe subscription is never doubled. Prices live on the plan:
65
+ `plan.prepaid = { DZD: { month: 150000, year: 1500000 }, EUR: { month: 999, year: 9990 } }` (minor units).
66
+
67
+ ```js
68
+ const prepaye = createPrepaidSale({ billing, providers: { chargily: 'DZD', paypal: 'EUR' },
69
+ urls: { success, cancel, webhook: 'https://site/api/paiement/webhook/{provider}' } })
70
+ await prepaye.offers('premium') // → [{ provider, currency, period, amount }]
71
+ await prepaye.openCheckout({ accountId, planSlug: 'premium', provider: 'chargily', period: 'year' }) // → { ok, url }
72
+ await prepaye.handleWebhook('chargily', corpsBrut, headers) // → { status, result }
73
+ ```
74
+
75
+ Bank keys come from the `.env` (`CHARGILY_SECRET_KEY`, `PAYPAL_CLIENT_ID`/`PAYPAL_SECRET`/`PAYPAL_WEBHOOK_ID`…):
76
+ `@mostajs/payment` rebuilds the bank dialect from the environment to verify a webhook. `billing.activePlan` now
77
+ expires a prepaid period that has ended (status `expired`, back to the free tier).
78
+
59
79
  ## Install
60
80
 
61
81
  ```bash
@@ -1 +1 @@
1
- {"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../../src/lib/billing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../../src/lib/billing.ts"],"names":[],"mappings":"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"}
@@ -137,6 +137,14 @@ export function createBilling(opts) {
137
137
  const subs = await d.find(SubscriptionSchema, { account: accountId, status: 'active' });
138
138
  if (!subs.length)
139
139
  return null;
140
+ // 0.7 — une période PRÉPAYÉE échue (pas d'abonnement Stripe : Stripe signale lui-même sa fin) repasse au gratuit.
141
+ const s0 = subs[0];
142
+ if (s0.currentPeriodEnd && !s0.stripeSubId && new Date(s0.currentPeriodEnd).getTime() <= clock().getTime()) {
143
+ await d.update(SubscriptionSchema, String(s0.id), { status: 'expired' });
144
+ if (await d.findOne(PlanSchema, { slug: freePlan }))
145
+ await setPlan(accountId, freePlan);
146
+ return activePlan(accountId);
147
+ }
140
148
  const plan = await d.findById(PlanSchema, String(subs[0].plan ?? subs[0].planId));
141
149
  return plan ? { subscription: subs[0], plan, limits: limitsOf(plan) } : null;
142
150
  }
@@ -1 +1 @@
1
- {"version":3,"file":"billing.js","sourceRoot":"","sources":["../../src/lib/billing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"billing.js","sourceRoot":"","sources":["../../src/lib/billing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ import { type Billing } from './billing.js';
2
+ type Dialect = any;
3
+ export type PrepaidPeriod = 'month' | 'year';
4
+ /** Le port de paiement — par défaut @mostajs/payment/server ; injectable (essais, autre orchestrateur). */
5
+ export interface PaymentPort {
6
+ createPaymentCheckout(input: {
7
+ dialect: Dialect;
8
+ providerName: string;
9
+ orderId: string;
10
+ amount: number;
11
+ currency: string;
12
+ description?: string;
13
+ successUrl: string;
14
+ cancelUrl: string;
15
+ webhookUrl?: string;
16
+ metadata?: Record<string, string>;
17
+ }): Promise<{
18
+ checkout: {
19
+ url?: string | null;
20
+ sessionId?: string;
21
+ };
22
+ payment?: unknown;
23
+ provider?: string;
24
+ }>;
25
+ settlePaymentFromWebhook(input: {
26
+ dialect: Dialect;
27
+ providerName: string;
28
+ body: string;
29
+ headers: Record<string, string> | Headers;
30
+ }): Promise<{
31
+ ok: boolean;
32
+ reason?: string;
33
+ orderId?: string | null;
34
+ status?: string;
35
+ payment?: any;
36
+ }>;
37
+ }
38
+ export interface PrepaidSaleOptions {
39
+ billing: Billing;
40
+ /** Les banques proposées et la devise de chacune : `{ chargily: 'DZD', paypal: 'EUR' }`. */
41
+ providers: Record<string, string>;
42
+ /** `webhook` peut porter `{provider}` (routage par segment, @mostajs/payment ≥ 2.1). */
43
+ urls: {
44
+ success: string;
45
+ cancel: string;
46
+ webhook?: string;
47
+ };
48
+ payment?: PaymentPort;
49
+ metadataKeys?: {
50
+ account: string;
51
+ plan: string;
52
+ period: string;
53
+ };
54
+ clock?: () => Date;
55
+ }
56
+ /** Ajoute un mois ou un an CALENDAIRE (8 oct. → 8 nov., pas 30 jours). */
57
+ export declare function addPeriod(from: Date, periode: PrepaidPeriod): Date;
58
+ export declare function createPrepaidSale(opts: PrepaidSaleOptions): {
59
+ offers: (planSlug: string) => Promise<{
60
+ provider: string;
61
+ currency: string;
62
+ period: PrepaidPeriod;
63
+ amount: number;
64
+ }[]>;
65
+ openCheckout: ({ accountId, planSlug, provider, period }: {
66
+ accountId: string;
67
+ planSlug: string;
68
+ provider: string;
69
+ period: string;
70
+ }) => Promise<{
71
+ ok: false;
72
+ reason: string;
73
+ url?: undefined;
74
+ orderId?: undefined;
75
+ } | {
76
+ ok: true;
77
+ url: string;
78
+ orderId: string;
79
+ reason?: undefined;
80
+ }>;
81
+ handleWebhook: (provider: string, body: string, headers: Record<string, string> | Headers) => Promise<{
82
+ status: number;
83
+ result: string;
84
+ }>;
85
+ providers: Readonly<{
86
+ [x: string]: string;
87
+ }>;
88
+ };
89
+ export type PrepaidSale = ReturnType<typeof createPrepaidSale>;
90
+ export {};
91
+ //# sourceMappingURL=prepaid-sale.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepaid-sale.d.ts","sourceRoot":"","sources":["../../src/lib/prepaid-sale.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAsB,KAAK,OAAO,EAAE,MAAM,cAAc,CAAA;AAE/D,KAAK,OAAO,GAAG,GAAG,CAAA;AAClB,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,CAAA;AAG5C,2GAA2G;AAC3G,MAAM,WAAW,WAAW;IAC1B,qBAAqB,CAAC,KAAK,EAAE;QAC3B,OAAO,EAAE,OAAO,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;QAC/G,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAC9F,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE;YAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC5G,wBAAwB,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAA;KAAE,GACjI,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC,CAAA;CACrG;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAA;IAChB,4FAA4F;IAC5F,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,wFAAwF;IACxF,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC3D,OAAO,CAAC,EAAE,WAAW,CAAA;IACrB,YAAY,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IAChE,KAAK,CAAC,EAAE,MAAM,IAAI,CAAA;CACnB;AASD,0EAA0E;AAC1E,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAKlE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,kBAAkB;uBAkBxB,MAAM;kBAGP,MAAM;kBAAY,MAAM;gBAAU,aAAa;gBAAU,MAAM;;8DAUvB;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;;;;;;;;;;;8BAgCzG,MAAM,QAAQ,MAAM,WAAW,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO;;;;;;;EAoDvG;AAED,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAA"}
@@ -0,0 +1,168 @@
1
+ // @mostajs/subscriptions-plan 0.7 — LA VENTE PRÉPAYÉE : un mois ou un an de palier, payé d'avance, qui EXPIRE.
2
+ // Author: Dr Hamid MADANI drmdh@msn.com
3
+ //
4
+ // Pour les banques qui ne prélèvent pas d'elles-mêmes (Chargily — CIB et Edahabia en dinars —, PayPal, SATIM…),
5
+ // à côté de `createStripeSale` qui vend l'abonnement récurrent. Le paiement passe par @mostajs/payment
6
+ // (`createPaymentCheckout` → la banque ; `settlePaymentFromWebhook` → signature vérifiée, `Payment` réglée) ;
7
+ // ce fichier relie ce paiement au PALIER, avec les règles de la vente Stripe :
8
+ //
9
+ // - le compte ne monte qu'au WEBHOOK — ouvrir un paiement ne donne rien (à l'inverse de `subscribeToPlan`,
10
+ // qui active un plan payant sans paiement quand aucun fournisseur n'est indiqué) ;
11
+ // - un webhook rejoué ne prolonge pas deux fois : journal `BillingEvent`, marqué AVANT d'appliquer
12
+ // (`settlePaymentFromWebhook` remet « paid » à chaque appel, sans dire s'il l'était déjà) ;
13
+ // - remboursement ou contestation : retour au palier gratuit ;
14
+ // - la période s'AJOUTE à la fin d'une période en cours du même palier (on ne perd pas ce qu'on a payé) ;
15
+ // - un abonnement Stripe en cours ne se double pas d'un prépayé : il se gère au portail.
16
+ //
17
+ // L'expiration elle-même vit dans `createBilling().activePlan` : une période prépayée échue y repasse au gratuit.
18
+ import { PlanSchema } from '../schemas/plan.schema.js';
19
+ import { BillingEventSchema } from './billing.js';
20
+ const PERIODES = ['month', 'year'];
21
+ /** Les prix prépayés d'un plan : `plan.prepaid = { DZD: { month: 150000, year: 1500000 } }`, en unités MINEURES. */
22
+ function prixDe(plan, devise, periode) {
23
+ const p = typeof plan?.prepaid === 'string' ? JSON.parse(plan.prepaid) : plan?.prepaid;
24
+ const v = Number(p?.[devise]?.[periode] ?? p?.[devise.toLowerCase()]?.[periode] ?? 0);
25
+ return Number.isFinite(v) && v > 0 ? v : 0;
26
+ }
27
+ /** Ajoute un mois ou un an CALENDAIRE (8 oct. → 8 nov., pas 30 jours). */
28
+ export function addPeriod(from, periode) {
29
+ const d = new Date(from.getTime());
30
+ if (periode === 'year')
31
+ d.setUTCFullYear(d.getUTCFullYear() + 1);
32
+ else
33
+ d.setUTCMonth(d.getUTCMonth() + 1);
34
+ return d;
35
+ }
36
+ export function createPrepaidSale(opts) {
37
+ const { billing } = opts;
38
+ const K = opts.metadataKeys ?? { account: 'account', plan: 'plan', period: 'period' };
39
+ const clock = opts.clock ?? (() => new Date());
40
+ const D = () => billing.dialect;
41
+ const port = async () => opts.payment ?? (await import('@mostajs/payment/server'));
42
+ // Sérialisation par compte : lire la fin en cours puis l'étendre ne doit pas se croiser avec un autre webhook.
43
+ const files = new Map();
44
+ function enFile(cle, f) {
45
+ const p = (files.get(cle) ?? Promise.resolve()).then(f, f);
46
+ const fin = p.catch(() => { });
47
+ files.set(cle, fin);
48
+ fin.then(() => { if (files.get(cle) === fin)
49
+ files.delete(cle); });
50
+ return p;
51
+ }
52
+ /** Ce qui peut s'acheter d'avance pour un plan : une ligne par banque × période qui a un prix. */
53
+ async function offers(planSlug) {
54
+ const plan = await D().findOne(PlanSchema, { slug: planSlug });
55
+ if (!plan || plan.active === false || !plan.price)
56
+ return [];
57
+ const out = [];
58
+ for (const [provider, currency] of Object.entries(opts.providers)) {
59
+ for (const period of PERIODES) {
60
+ const amount = prixDe(plan, currency, period);
61
+ if (amount)
62
+ out.push({ provider, currency, period, amount });
63
+ }
64
+ }
65
+ return out;
66
+ }
67
+ async function openCheckout({ accountId, planSlug, provider, period }) {
68
+ const currency = opts.providers[provider];
69
+ if (!currency)
70
+ return { ok: false, reason: `banque non proposée : ${provider}` };
71
+ if (!PERIODES.includes(period))
72
+ return { ok: false, reason: `période inconnue : ${period} (month | year)` };
73
+ const plan = await D().findOne(PlanSchema, { slug: planSlug });
74
+ if (!plan || plan.active === false)
75
+ return { ok: false, reason: `plan inconnu : ${planSlug}` };
76
+ if (!plan.price)
77
+ return { ok: false, reason: 'plan gratuit : il ne passe pas par le paiement' };
78
+ const amount = prixDe(plan, currency, period);
79
+ if (!amount)
80
+ return { ok: false, reason: `pas de prix ${currency} au ${period} pour « ${planSlug} »` };
81
+ const actif = await billing.activePlan(accountId);
82
+ if (actif?.subscription?.stripeSubId && Number(actif.plan?.price) > 0) {
83
+ return { ok: false, reason: 'un abonnement Stripe est en cours : il se gère au portail' };
84
+ }
85
+ const orderId = `pp_${accountId}_${planSlug}_${period}_${clock().getTime()}_${Math.random().toString(36).slice(2, 8)}`;
86
+ try {
87
+ const r = await (await port()).createPaymentCheckout({
88
+ dialect: D(), providerName: provider, orderId, amount: amount / 100, currency,
89
+ description: `${plan.name} — ${period === 'year' ? '1 an' : '1 mois'}`,
90
+ successUrl: opts.urls.success, cancelUrl: opts.urls.cancel, webhookUrl: opts.urls.webhook,
91
+ metadata: { [K.account]: String(accountId), [K.plan]: planSlug, [K.period]: period },
92
+ });
93
+ if (!r.checkout?.url)
94
+ return { ok: false, reason: 'la banque n’a pas rendu d’adresse de paiement' };
95
+ return { ok: true, url: r.checkout.url, orderId };
96
+ }
97
+ catch (e) {
98
+ return { ok: false, reason: e.message };
99
+ }
100
+ }
101
+ /**
102
+ * Le webhook d'une banque. 400 : signature ou corps refusés (la banque réessaiera en vain — c'est voulu).
103
+ * 200 : authentique et traité, y compris « rien à faire » (ordre inconnu, échec, rejeu). 404 : banque non proposée.
104
+ */
105
+ async function handleWebhook(provider, body, headers) {
106
+ if (!opts.providers[provider])
107
+ return { status: 404, result: `banque non proposée : ${provider}` };
108
+ const s = await (await port()).settlePaymentFromWebhook({ dialect: D(), providerName: provider, body, headers });
109
+ if (!s.ok)
110
+ return { status: 400, result: s.reason ?? 'refusé' };
111
+ const pay = s.payment;
112
+ if (!pay || !s.status)
113
+ return { status: 200, result: 'ignoré : ordre inconnu ou événement neutre' };
114
+ const meta = typeof pay.metadata === 'string' ? JSON.parse(pay.metadata) : (pay.metadata ?? {});
115
+ const accountId = meta[K.account];
116
+ const planSlug = meta[K.plan];
117
+ const period = meta[K.period];
118
+ if (!accountId || !planSlug || !PERIODES.includes(period))
119
+ return { status: 200, result: 'ignoré : pas une vente prépayée' };
120
+ const orderId = String(s.orderId ?? pay.orderId);
121
+ const eventId = `prepaid:${provider}:${orderId}:${s.status}`;
122
+ return enFile(`compte:${accountId}`, async () => {
123
+ // Marqué AVANT d'appliquer : deux livraisons simultanées du même webhook n'appliquent qu'une fois.
124
+ let marque;
125
+ try {
126
+ marque = await D().create(BillingEventSchema, { eventId, type: `prepaid.${s.status}`, result: 'pending' });
127
+ }
128
+ catch {
129
+ return { status: 200, result: 'rejeu : déjà appliqué' };
130
+ }
131
+ try {
132
+ let result;
133
+ if (s.status === 'paid') {
134
+ const actif = await billing.activePlan(accountId);
135
+ const fin = actif?.subscription?.currentPeriodEnd ? new Date(actif.subscription.currentPeriodEnd) : null;
136
+ const memePrepaye = !!(actif && actif.plan?.slug === planSlug && !actif.subscription?.stripeSubId && fin && fin > clock());
137
+ const depart = memePrepaye && fin ? fin : clock();
138
+ const nouvelleFin = addPeriod(depart, period);
139
+ await billing.setPlan(accountId, planSlug, {
140
+ provider, prepaidOrderId: orderId, currentPeriodStart: memePrepaye ? actif?.subscription?.currentPeriodStart ?? clock() : clock(), currentPeriodEnd: nouvelleFin,
141
+ });
142
+ result = `payé : ${planSlug} jusqu’au ${nouvelleFin.toISOString()}`;
143
+ }
144
+ else if (s.status === 'refunded' || s.status === 'conteste') {
145
+ // Seulement si le palier en cours est CE prépayé : un abonnement Stripe pris depuis n'est pas touché.
146
+ const actif = await billing.activePlan(accountId);
147
+ if (actif && actif.plan?.slug === planSlug && !actif.subscription?.stripeSubId) {
148
+ await billing.setPlan(accountId, billing.freePlan);
149
+ result = `${s.status} : retour au palier gratuit`;
150
+ }
151
+ else
152
+ result = `${s.status} : palier en cours inchangé (${actif?.plan?.slug ?? 'aucun'})`;
153
+ }
154
+ else {
155
+ result = `ignoré : ${s.status}`;
156
+ }
157
+ await D().update(BillingEventSchema, String(marque.id), { result });
158
+ return { status: 200, result };
159
+ }
160
+ catch (e) {
161
+ await D().delete(BillingEventSchema, String(marque.id)).catch(() => { });
162
+ return { status: 500, result: e.message };
163
+ }
164
+ });
165
+ }
166
+ return { offers, openCheckout, handleWebhook, providers: Object.freeze({ ...opts.providers }) };
167
+ }
168
+ //# sourceMappingURL=prepaid-sale.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepaid-sale.js","sourceRoot":"","sources":["../../src/lib/prepaid-sale.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"plan.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/plan.schema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEtD,eAAO,MAAM,UAAU,EAAE,YAwBxB,CAAA"}
1
+ {"version":3,"file":"plan.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/plan.schema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEtD,eAAO,MAAM,UAAU,EAAE,YA0BxB,CAAA"}
@@ -12,6 +12,8 @@ export const PlanSchema = {
12
12
  interval: { type: 'string', default: 'month' }, // month | year
13
13
  stripePriceId: { type: 'string' },
14
14
  limits: { type: 'json', required: true },
15
+ // 0.7 — prix PRÉPAYÉS par devise et période, en unités mineures : { DZD: { month: 150000, year: 1500000 } }
16
+ prepaid: { type: 'json' },
15
17
  features: { type: 'json' },
16
18
  active: { type: 'boolean', default: true },
17
19
  sortOrder: { type: 'number', default: 0 },
@@ -1 +1 @@
1
- {"version":3,"file":"plan.schema.js","sourceRoot":"","sources":["../../src/schemas/plan.schema.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,wCAAwC;AAIxC,MAAM,CAAC,MAAM,UAAU,GAAiB;IACtC,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,OAAO;IACnB,UAAU,EAAE,IAAI;IAEhB,MAAM,EAAE;QACN,IAAI,EAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QACjD,IAAI,EAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QACjD,KAAK,EAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAM,wBAAwB;QAC/E,QAAQ,EAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE;QACjD,QAAQ,EAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,EAAI,eAAe;QACtE,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACjC,MAAM,EAAS,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC/C,QAAQ,EAAO,EAAE,IAAI,EAAE,MAAM,EAAE;QAC/B,MAAM,EAAS,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;QACjD,SAAS,EAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;KAC9C;IAED,SAAS,EAAE,EAAE;IAEb,OAAO,EAAE;QACP,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;QACzC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE;KAChD;CACF,CAAA"}
1
+ {"version":3,"file":"plan.schema.js","sourceRoot":"","sources":["../../src/schemas/plan.schema.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,wCAAwC;AAIxC,MAAM,CAAC,MAAM,UAAU,GAAiB;IACtC,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,OAAO;IACnB,UAAU,EAAE,IAAI;IAEhB,MAAM,EAAE;QACN,IAAI,EAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QACjD,IAAI,EAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QACjD,KAAK,EAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAM,wBAAwB;QAC/E,QAAQ,EAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE;QACjD,QAAQ,EAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,EAAI,eAAe;QACtE,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACjC,MAAM,EAAS,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC/C,4GAA4G;QAC5G,OAAO,EAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;QAC/B,QAAQ,EAAO,EAAE,IAAI,EAAE,MAAM,EAAE;QAC/B,MAAM,EAAS,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;QACjD,SAAS,EAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;KAC9C;IAED,SAAS,EAAE,EAAE;IAEb,OAAO,EAAE;QACP,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;QACzC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE;KAChD;CACF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"subscription.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/subscription.schema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEtD,eAAO,MAAM,kBAAkB,EAAE,YAkChC,CAAA"}
1
+ {"version":3,"file":"subscription.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/subscription.schema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEtD,eAAO,MAAM,kBAAkB,EAAE,YAqChC,CAAA"}
@@ -20,6 +20,9 @@ export const SubscriptionSchema = {
20
20
  // 0.5 — ordre d'arrivée des webhooks : `created` (s) du dernier événement appliqué, et de la fin.
21
21
  stripeEventAt: { type: 'number' },
22
22
  stripeEndedAt: { type: 'number' },
23
+ // 0.7 — vente prépayée : la banque, et l'ordre qui a ouvert (ou prolongé en dernier) la période.
24
+ provider: { type: 'string' },
25
+ prepaidOrderId: { type: 'string' },
23
26
  },
24
27
  relations: {
25
28
  account: { type: 'many-to-one', target: 'Account', required: true },
@@ -1 +1 @@
1
- {"version":3,"file":"subscription.schema.js","sourceRoot":"","sources":["../../src/schemas/subscription.schema.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,wCAAwC;AAIxC,MAAM,CAAC,MAAM,kBAAkB,GAAiB;IAC9C,IAAI,EAAE,cAAc;IACpB,UAAU,EAAE,eAAe;IAC3B,UAAU,EAAE,IAAI;IAEhB,MAAM,EAAE;QACN,MAAM,EAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE;QACzE,WAAW,EAAS,EAAE,IAAI,EAAE,QAAQ,EAAE;QACtC,kBAAkB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;QACpC,gBAAgB,EAAI,EAAE,IAAI,EAAE,MAAM,EAAE;QACpC,QAAQ,EAAY,EAAE,IAAI,EAAE,MAAM,EAAE;QACpC,QAAQ,EAAY,EAAE,IAAI,EAAE,MAAM,EAAE;QACpC,mFAAmF;QACnF,oFAAoF;QACpF,iFAAiF;QACjF,sDAAsD;QACtD,SAAS,EAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE;QAC1D,OAAO,EAAa,EAAE,IAAI,EAAE,QAAQ,EAAE;QACtC,kGAAkG;QAClG,aAAa,EAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;QACtC,aAAa,EAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;KACvC;IAED,SAAS,EAAE;QACT,OAAO,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QACnE,IAAI,EAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;KACjE;IAED,OAAO,EAAE;QACP,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;QAC7B,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;QAChD,qDAAqD;QACrD,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;KACjD;CACF,CAAA"}
1
+ {"version":3,"file":"subscription.schema.js","sourceRoot":"","sources":["../../src/schemas/subscription.schema.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,wCAAwC;AAIxC,MAAM,CAAC,MAAM,kBAAkB,GAAiB;IAC9C,IAAI,EAAE,cAAc;IACpB,UAAU,EAAE,eAAe;IAC3B,UAAU,EAAE,IAAI;IAEhB,MAAM,EAAE;QACN,MAAM,EAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE;QACzE,WAAW,EAAS,EAAE,IAAI,EAAE,QAAQ,EAAE;QACtC,kBAAkB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;QACpC,gBAAgB,EAAI,EAAE,IAAI,EAAE,MAAM,EAAE;QACpC,QAAQ,EAAY,EAAE,IAAI,EAAE,MAAM,EAAE;QACpC,QAAQ,EAAY,EAAE,IAAI,EAAE,MAAM,EAAE;QACpC,mFAAmF;QACnF,oFAAoF;QACpF,iFAAiF;QACjF,sDAAsD;QACtD,SAAS,EAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE;QAC1D,OAAO,EAAa,EAAE,IAAI,EAAE,QAAQ,EAAE;QACtC,kGAAkG;QAClG,aAAa,EAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;QACtC,aAAa,EAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;QACtC,iGAAiG;QACjG,QAAQ,EAAY,EAAE,IAAI,EAAE,QAAQ,EAAE;QACtC,cAAc,EAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;KACvC;IAED,SAAS,EAAE;QACT,OAAO,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QACnE,IAAI,EAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;KACjE;IAED,OAAO,EAAE;QACP,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;QAC7B,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;QAChD,qDAAqD;QACrD,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;KACjD;CACF,CAAA"}
package/dist/server.d.ts CHANGED
@@ -10,4 +10,6 @@ export { getSchemas, moduleInfo } from './lib/module-info.js';
10
10
  export { subscriptionPlanRegistration } from './register.js';
11
11
  export { createBilling, createStripeSale, checkLimits, assertMonotonicPlans, secondsUntilReset, billingSchemas, UsageCounterSchema, BillingEventSchema, BillingError, UNLIMITED, } from './lib/billing.js';
12
12
  export type { Billing, BillingOptions, ResourceDef, Verdict, Period, CustomerPort, StripeSaleOptions } from './lib/billing.js';
13
+ export { createPrepaidSale, addPeriod } from './lib/prepaid-sale.js';
14
+ export type { PrepaidSale, PrepaidSaleOptions, PrepaidPeriod, PaymentPort } from './lib/prepaid-sale.js';
13
15
  //# sourceMappingURL=server.d.ts.map
@@ -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,eAAe,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AACvG,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;AAG5D,OAAO,EACL,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,oBAAoB,EAAE,iBAAiB,EACrF,cAAc,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,YAAY,EAAE,SAAS,GAChF,MAAM,kBAAkB,CAAA;AACzB,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,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,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AACvG,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;AAG5D,OAAO,EACL,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,oBAAoB,EAAE,iBAAiB,EACrF,cAAc,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,YAAY,EAAE,SAAS,GAChF,MAAM,kBAAkB,CAAA;AACzB,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAG9H,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACpE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA"}
package/dist/server.js CHANGED
@@ -18,4 +18,6 @@ export { getSchemas, moduleInfo } from './lib/module-info.js';
18
18
  export { subscriptionPlanRegistration } from './register.js';
19
19
  // 0.5 — quotas déclarés, compteur atomique, paliers, vente et webhooks Stripe idempotents
20
20
  export { createBilling, createStripeSale, checkLimits, assertMonotonicPlans, secondsUntilReset, billingSchemas, UsageCounterSchema, BillingEventSchema, BillingError, UNLIMITED, } from './lib/billing.js';
21
+ // 0.7 — vente prépayée multi-banques (Chargily, PayPal, SATIM…) par @mostajs/payment
22
+ export { createPrepaidSale, addPeriod } from './lib/prepaid-sale.js';
21
23
  //# sourceMappingURL=server.js.map
@@ -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,kDAAkD;AAClD,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAGvG,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;AAE5D,0FAA0F;AAC1F,OAAO,EACL,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,oBAAoB,EAAE,iBAAiB,EACrF,cAAc,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,YAAY,EAAE,SAAS,GAChF,MAAM,kBAAkB,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,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAGvG,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;AAE5D,0FAA0F;AAC1F,OAAO,EACL,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,oBAAoB,EAAE,iBAAiB,EACrF,cAAc,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,YAAY,EAAE,SAAS,GAChF,MAAM,kBAAkB,CAAA;AAGzB,qFAAqF;AACrF,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA"}
package/llms.txt CHANGED
@@ -91,10 +91,29 @@ const r = await vente.handleWebhook(corpsBrutBuffer, req.headers['stripe-signatu
91
91
  - `updatePlanLimits(slug, limits)` lève `PLAN_SCALE_INVERTED` si un palier supérieur donnerait moins.
92
92
  - PIÈGES : le compteur est exact DANS un processus ; entre processus il ne dépasse jamais la borne mais une rafale peut être refusée en entier → router un même compte vers un même processus. Le webhook se vérifie sur le corps BRUT. Le plan n'est changé QUE par le webhook (jamais au retour de la page de paiement).
93
93
 
94
+ ## 0.7 — VENTE PRÉPAYÉE (`createPrepaidSale`) — banques sans prélèvement : Chargily (CIB, Edahabia, DZD), PayPal, SATIM
95
+ ```js
96
+ const prepaye = createPrepaidSale({ billing, providers: { chargily: 'DZD', paypal: 'EUR' },
97
+ urls: { success, cancel, webhook: 'https://site/api/paiement/webhook/{provider}' },
98
+ metadataKeys: { account: 'account', plan: 'plan', period: 'period' } /* défaut */, payment /* port, défaut @mostajs/payment/server */ })
99
+ await prepaye.offers(planSlug) // [{ provider, currency, period, amount (mineures) }]
100
+ await prepaye.openCheckout({ accountId, planSlug, provider, period: 'month' | 'year' }) // { ok, url, orderId } | { ok:false, reason }
101
+ await prepaye.handleWebhook(provider, corpsBrut, headers) // { status: 200|400|404|500, result }
102
+ ```
103
+ - Prix : `plan.prepaid = { DZD: { month, year }, EUR: { month, year } }` en unités MINEURES (envoyées /100 à la banque).
104
+ - Le palier ne monte qu'au webhook ; rejeu sans effet (`BillingEvent` `prepaid:<banque>:<ordre>:<statut>`) ; la période
105
+ s'ajoute à la fin d'une période en cours du même palier (mois/an calendaires) ; remboursement/contestation → gratuit ;
106
+ abonnement Stripe en cours → refus (portail).
107
+ - `billing.activePlan` EXPIRE une période prépayée échue (`status: 'expired'`, retour au gratuit). Une période Stripe,
108
+ elle, n'expire que par son webhook (`stripeSubId`).
109
+ - PIÈGE : `@mostajs/payment` reconstruit la banque depuis le `.env` pour vérifier le webhook — un fournisseur
110
+ enregistré à la main ne suffit pas : poser `CHARGILY_SECRET_KEY`, `PAYPAL_*` dans l'environnement.
111
+ - PIÈGE : `subscribeToPlan` active un plan payant SANS paiement quand `provider` manque — ne pas l'employer pour vendre.
112
+
94
113
  ## DÉPEND DE
95
114
  - `@mostajs/data-plug` (peer dep `^1.2.4`) — façade ORM : `BaseRepository`, `IDialect`, `EntitySchema`.
96
115
  - `@mostajs/config` (peer dep) — résolution env.
97
- - `@mostajs/payment` (peer dep optionnelle `>=0.4.2`) — checkout des plans payants ; `subscribeToPlan` lui délègue.
116
+ - `@mostajs/payment` (peer dep optionnelle `>=2.5.0`) — `createPrepaidSale` (orchestration, jeton `{provider}`) ; `subscribeToPlan` lui délègue.
98
117
  - `stripe` (peer dep optionnelle), `next`/`react` (peer deps optionnelles).
99
118
 
100
119
  ## PIÈGES
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mostajs/subscriptions-plan",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "Subscription plans, billing, invoices and usage tracking for @mostajs",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -34,7 +34,7 @@
34
34
  "peerDependencies": {
35
35
  "@mostajs/config": "^1.0.0",
36
36
  "@mostajs/data-plug": "^1.2.4",
37
- "@mostajs/payment": ">=0.4.2",
37
+ "@mostajs/payment": ">=2.5.0",
38
38
  "next": ">=14.0.0",
39
39
  "react": ">=18.0.0",
40
40
  "stripe": ">=17.0.0"
@@ -57,7 +57,7 @@
57
57
  "@mostajs/data-plug": "^1.2.4",
58
58
  "@mostajs/mjs-unit": "^0.7.0",
59
59
  "@mostajs/orm": "^1.13.1",
60
- "@mostajs/payment": "^0.4.1",
60
+ "@mostajs/payment": "^2.5.3",
61
61
  "@types/node": "^22.0.0",
62
62
  "better-sqlite3": "^12.0.0",
63
63
  "tsx": "^4.0.0",