@mostajs/payment 0.4.1 → 0.5.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/README.md +40 -0
- package/dist/lib/webhook-helpers.d.ts +62 -0
- package/dist/lib/webhook-helpers.d.ts.map +1 -0
- package/dist/lib/webhook-helpers.js +135 -0
- package/dist/lib/webhook-helpers.js.map +1 -0
- package/dist/providers/chargily.provider.d.ts +8 -0
- package/dist/providers/chargily.provider.d.ts.map +1 -1
- package/dist/providers/chargily.provider.js +9 -1
- package/dist/providers/chargily.provider.js.map +1 -1
- 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
package/README.md
CHANGED
|
@@ -162,6 +162,46 @@ etc. keep working unchanged — the cascade is fully backward-compatible.
|
|
|
162
162
|
|
|
163
163
|
## Changelog
|
|
164
164
|
|
|
165
|
+
### v0.4.1 — 2026-05-04 — Découplage `@mostajs/orm` via façade `data-plug` + WeakMap repo
|
|
166
|
+
|
|
167
|
+
Étape 3 du chantier *« system dialect séparé »* — applique deux fix qui se combinent.
|
|
168
|
+
|
|
169
|
+
#### 1. Migration `@mostajs/orm` → `@mostajs/data-plug` *(façade)*
|
|
170
|
+
|
|
171
|
+
Conformément au principe **« les modules @mostajs passent par data-plug, jamais hardcoder un dialect ou importer @mostajs/orm directement »**, `payment` ne dépend plus de `@mostajs/orm` en `peerDependency`. Tous les imports de production passent désormais par `@mostajs/data-plug v1.2.4` *(qui ré-exporte `BaseRepository`, `IDialect`, `EntitySchema`, …)*.
|
|
172
|
+
|
|
173
|
+
**4 fichiers migrés** :
|
|
174
|
+
|
|
175
|
+
| Fichier | Symboles |
|
|
176
|
+
|---------|----------|
|
|
177
|
+
| `src/api/payments.route.ts` | `IDialect` |
|
|
178
|
+
| `src/lib/module-info.ts` | `EntitySchema` |
|
|
179
|
+
| `src/lib/payment-factory.ts` | `BaseRepository` + `IDialect` |
|
|
180
|
+
| `src/schemas/payment.schema.ts` | `EntitySchema` |
|
|
181
|
+
| `package.json` | `peerDep` `orm` → `data-plug` |
|
|
182
|
+
|
|
183
|
+
`@mostajs/orm` reste en `devDependency` uniquement *(cohérence avec le `test-unit` qui pourrait l'instancier — sera revu plus tard)*.
|
|
184
|
+
|
|
185
|
+
#### 2. WeakMap dans `payment-factory.ts`
|
|
186
|
+
|
|
187
|
+
```ts
|
|
188
|
+
// Avant — capture la référence du PREMIER dialect, ignore les suivants
|
|
189
|
+
let cachedRepo: BaseRepository<PaymentDTO> | null = null
|
|
190
|
+
|
|
191
|
+
// Après — keyed par identité du dialect
|
|
192
|
+
const cache = new WeakMap<IDialect, BaseRepository<PaymentDTO>>()
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
Évite que le repo capture la référence du PREMIER dialect passé et ignore tous les suivants. Lorsque `/api/change-dialect` *(ou rotation système ↔ métier)* modifie le dialect courant, le cache miss force la reconstruction du repo avec la **nouvelle** instance dialect — au lieu de réutiliser un repo pointant vers une connexion morte.
|
|
196
|
+
|
|
197
|
+
`resetPaymentRepo()` conservé en no-op pour rétro-compat *(la WeakMap auto-libère naturellement les entrées dont le dialect n'est plus référencé)*.
|
|
198
|
+
|
|
199
|
+
#### Bump
|
|
200
|
+
|
|
201
|
+
`0.4.0 → 0.4.1` *(patch — découplage interne, signatures publiques inchangées)*.
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
165
205
|
### v0.4.0 — 2026-04-21
|
|
166
206
|
|
|
167
207
|
**Added** : all four provider factories (`createStripeProvider`,
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { PaymentProvider, WebhookEvent } from '../core/provider.interface.js';
|
|
2
|
+
export type ProviderName = 'chargily' | 'stripe' | 'satim' | 'paypal' | 'manual';
|
|
3
|
+
/**
|
|
4
|
+
* Sélectionne le header signature attendu pour chaque provider.
|
|
5
|
+
* Headers normalisés en lowercase (Headers.get est case-insensitive).
|
|
6
|
+
*/
|
|
7
|
+
export declare function pickSignatureHeader(headers: Headers | Record<string, string>, providerName: ProviderName): string;
|
|
8
|
+
/**
|
|
9
|
+
* Instancie un PaymentProvider à partir de son nom (lit env via le constructor).
|
|
10
|
+
* Utile pour le webhook handler qui n'a pas besoin de connaître la config.
|
|
11
|
+
*/
|
|
12
|
+
export declare function getProviderByName(name: ProviderName): PaymentProvider;
|
|
13
|
+
export interface HandleProviderWebhookArgs {
|
|
14
|
+
/** Body brut de la requête (req.text() avant parse). Crucial : signature
|
|
15
|
+
* computed sur les bytes exacts envoyés par le provider. */
|
|
16
|
+
body: string;
|
|
17
|
+
/** Headers de la requête HTTP. */
|
|
18
|
+
headers: Headers | Record<string, string>;
|
|
19
|
+
/** Nom du provider. */
|
|
20
|
+
providerName: ProviderName;
|
|
21
|
+
}
|
|
22
|
+
export type HandleProviderWebhookResult = {
|
|
23
|
+
ok: true;
|
|
24
|
+
event: WebhookEvent;
|
|
25
|
+
} | {
|
|
26
|
+
ok: false;
|
|
27
|
+
reason: 'bad_signature' | 'malformed' | 'unknown_provider';
|
|
28
|
+
error: string;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Vérifie le webhook reçu d'un provider de paiement et retourne l'event
|
|
32
|
+
* normalisé. La logique métier (créer une Subscription, marquer une
|
|
33
|
+
* Registration, etc.) reste à la charge du caller.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* const r = await handleProviderWebhook({
|
|
37
|
+
* body: await req.text(),
|
|
38
|
+
* headers: req.headers,
|
|
39
|
+
* providerName: 'chargily',
|
|
40
|
+
* })
|
|
41
|
+
* if (!r.ok) return NextResponse.json({ error: r.error }, { status: 400 })
|
|
42
|
+
* if (isPaidEvent(r.event)) {
|
|
43
|
+
* // ... mettre à jour DB métier ...
|
|
44
|
+
* }
|
|
45
|
+
*/
|
|
46
|
+
export declare function handleProviderWebhook(args: HandleProviderWebhookArgs): Promise<HandleProviderWebhookResult>;
|
|
47
|
+
/**
|
|
48
|
+
* Vrai si l'event indique un paiement réussi, peu importe le provider.
|
|
49
|
+
* Couvre les variantes de naming entre Chargily / Stripe / Satim / PayPal.
|
|
50
|
+
*/
|
|
51
|
+
export declare function isPaidEvent(event: WebhookEvent): boolean;
|
|
52
|
+
/** Vrai si l'event indique un échec ou une annulation de paiement. */
|
|
53
|
+
export declare function isFailedEvent(event: WebhookEvent): boolean;
|
|
54
|
+
/** Vrai si l'event indique un remboursement. */
|
|
55
|
+
export declare function isRefundedEvent(event: WebhookEvent): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Extrait l'`orderId` (= clef de matching côté app, ex: registrationId)
|
|
58
|
+
* depuis le payload event, peu importe le provider. Cherche dans plusieurs
|
|
59
|
+
* positions usuelles.
|
|
60
|
+
*/
|
|
61
|
+
export declare function extractOrderId(event: WebhookEvent): string | null;
|
|
62
|
+
//# sourceMappingURL=webhook-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook-helpers.d.ts","sourceRoot":"","sources":["../../src/lib/webhook-helpers.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAElF,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAEhF;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,YAAY,GAAG,MAAM,CAsBjH;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,eAAe,CAQrE;AAED,MAAM,WAAW,yBAAyB;IACxC;iEAC6D;IAC7D,IAAI,EAAE,MAAM,CAAA;IACZ,kCAAkC;IAClC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACzC,uBAAuB;IACvB,YAAY,EAAE,YAAY,CAAA;CAC3B;AAED,MAAM,MAAM,2BAA2B,GACnC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,GACjC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,eAAe,GAAG,WAAW,GAAG,kBAAkB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAE5F;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAgBjH;AAID;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAOxD;AAED,sEAAsE;AACtE,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAS1D;AAED,gDAAgD;AAChD,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAK5D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI,CASjE"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
// @mostajs/payment — Webhook helpers (provider-agnostic) — v0.5.0+
|
|
2
|
+
// Author: Dr Hamid MADANI <drmdh@msn.com>
|
|
3
|
+
//
|
|
4
|
+
// Mutualise le code de vérification signature + normalisation event
|
|
5
|
+
// type entre les apps consumers (octonet-cloud, iquesta, etc.).
|
|
6
|
+
// Chaque app garde sa logique métier (Subscription / Registration / …)
|
|
7
|
+
// dans son route handler, mais la vérif HMAC et le mapping
|
|
8
|
+
// event-type sont centralisés ici.
|
|
9
|
+
import { createChargilyProvider } from '../providers/chargily.provider.js';
|
|
10
|
+
import { createStripeProvider } from '../providers/stripe.provider.js';
|
|
11
|
+
import { createSatimProvider } from '../providers/satim.provider.js';
|
|
12
|
+
import { createPayPalProvider } from '../providers/paypal.provider.js';
|
|
13
|
+
import { createManualProvider } from '../providers/manual.provider.js';
|
|
14
|
+
/**
|
|
15
|
+
* Sélectionne le header signature attendu pour chaque provider.
|
|
16
|
+
* Headers normalisés en lowercase (Headers.get est case-insensitive).
|
|
17
|
+
*/
|
|
18
|
+
export function pickSignatureHeader(headers, providerName) {
|
|
19
|
+
const get = (key) => {
|
|
20
|
+
if (headers instanceof Headers)
|
|
21
|
+
return headers.get(key) ?? '';
|
|
22
|
+
return headers[key] ?? headers[key.toLowerCase()] ?? '';
|
|
23
|
+
};
|
|
24
|
+
switch (providerName) {
|
|
25
|
+
case 'chargily':
|
|
26
|
+
// Chargily envoie `signature` (header officiel docs) ;
|
|
27
|
+
// certains proxies passent `chargily-signature` (legacy).
|
|
28
|
+
return get('chargily-signature') || get('signature') || '';
|
|
29
|
+
case 'stripe':
|
|
30
|
+
return get('stripe-signature') || '';
|
|
31
|
+
case 'satim':
|
|
32
|
+
return get('x-satim-signature') || get('signature') || '';
|
|
33
|
+
case 'paypal':
|
|
34
|
+
// PayPal utilise plusieurs headers ; le caller doit traiter à part.
|
|
35
|
+
return get('paypal-transmission-sig') || '';
|
|
36
|
+
case 'manual':
|
|
37
|
+
return get('x-signature') || '';
|
|
38
|
+
default:
|
|
39
|
+
return '';
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Instancie un PaymentProvider à partir de son nom (lit env via le constructor).
|
|
44
|
+
* Utile pour le webhook handler qui n'a pas besoin de connaître la config.
|
|
45
|
+
*/
|
|
46
|
+
export function getProviderByName(name) {
|
|
47
|
+
switch (name) {
|
|
48
|
+
case 'chargily': return createChargilyProvider();
|
|
49
|
+
case 'stripe': return createStripeProvider();
|
|
50
|
+
case 'satim': return createSatimProvider();
|
|
51
|
+
case 'paypal': return createPayPalProvider();
|
|
52
|
+
case 'manual': return createManualProvider();
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Vérifie le webhook reçu d'un provider de paiement et retourne l'event
|
|
57
|
+
* normalisé. La logique métier (créer une Subscription, marquer une
|
|
58
|
+
* Registration, etc.) reste à la charge du caller.
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* const r = await handleProviderWebhook({
|
|
62
|
+
* body: await req.text(),
|
|
63
|
+
* headers: req.headers,
|
|
64
|
+
* providerName: 'chargily',
|
|
65
|
+
* })
|
|
66
|
+
* if (!r.ok) return NextResponse.json({ error: r.error }, { status: 400 })
|
|
67
|
+
* if (isPaidEvent(r.event)) {
|
|
68
|
+
* // ... mettre à jour DB métier ...
|
|
69
|
+
* }
|
|
70
|
+
*/
|
|
71
|
+
export async function handleProviderWebhook(args) {
|
|
72
|
+
let provider;
|
|
73
|
+
try {
|
|
74
|
+
provider = getProviderByName(args.providerName);
|
|
75
|
+
}
|
|
76
|
+
catch (e) {
|
|
77
|
+
return { ok: false, reason: 'unknown_provider', error: e?.message ?? String(e) };
|
|
78
|
+
}
|
|
79
|
+
const signature = pickSignatureHeader(args.headers, args.providerName);
|
|
80
|
+
try {
|
|
81
|
+
const event = await provider.verifyWebhook(args.body, signature);
|
|
82
|
+
return { ok: true, event };
|
|
83
|
+
}
|
|
84
|
+
catch (e) {
|
|
85
|
+
const msg = String(e?.message ?? e);
|
|
86
|
+
if (/signature/i.test(msg))
|
|
87
|
+
return { ok: false, reason: 'bad_signature', error: msg };
|
|
88
|
+
return { ok: false, reason: 'malformed', error: msg };
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
// ─── Event type normalization ─────────────────────────────────────────
|
|
92
|
+
/**
|
|
93
|
+
* Vrai si l'event indique un paiement réussi, peu importe le provider.
|
|
94
|
+
* Couvre les variantes de naming entre Chargily / Stripe / Satim / PayPal.
|
|
95
|
+
*/
|
|
96
|
+
export function isPaidEvent(event) {
|
|
97
|
+
const t = String(event?.type ?? '');
|
|
98
|
+
return t === 'payment.success' // Chargily, Satim
|
|
99
|
+
|| t === 'checkout.paid' // legacy alias
|
|
100
|
+
|| t === 'checkout.session.completed' // Stripe Checkout
|
|
101
|
+
|| t === 'payment_intent.succeeded' // Stripe PaymentIntent
|
|
102
|
+
|| t === 'PAYMENT.CAPTURE.COMPLETED'; // PayPal
|
|
103
|
+
}
|
|
104
|
+
/** Vrai si l'event indique un échec ou une annulation de paiement. */
|
|
105
|
+
export function isFailedEvent(event) {
|
|
106
|
+
const t = String(event?.type ?? '');
|
|
107
|
+
return t === 'payment.failed'
|
|
108
|
+
|| t === 'payment.canceled'
|
|
109
|
+
|| t === 'checkout.failed'
|
|
110
|
+
|| t === 'checkout.session.expired'
|
|
111
|
+
|| t === 'payment_intent.payment_failed'
|
|
112
|
+
|| t === 'PAYMENT.CAPTURE.DENIED'
|
|
113
|
+
|| t === 'PAYMENT.CAPTURE.REFUNDED';
|
|
114
|
+
}
|
|
115
|
+
/** Vrai si l'event indique un remboursement. */
|
|
116
|
+
export function isRefundedEvent(event) {
|
|
117
|
+
const t = String(event?.type ?? '');
|
|
118
|
+
return t === 'payment.refunded'
|
|
119
|
+
|| t === 'charge.refunded'
|
|
120
|
+
|| t === 'PAYMENT.CAPTURE.REFUNDED';
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Extrait l'`orderId` (= clef de matching côté app, ex: registrationId)
|
|
124
|
+
* depuis le payload event, peu importe le provider. Cherche dans plusieurs
|
|
125
|
+
* positions usuelles.
|
|
126
|
+
*/
|
|
127
|
+
export function extractOrderId(event) {
|
|
128
|
+
const data = event?.data ?? {};
|
|
129
|
+
return String(data?.metadata?.orderId
|
|
130
|
+
?? data?.metadata?.registrationId
|
|
131
|
+
?? data?.orderId
|
|
132
|
+
?? data?.client_reference_id
|
|
133
|
+
?? '') || null;
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=webhook-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook-helpers.js","sourceRoot":"","sources":["../../src/lib/webhook-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,6 +25,14 @@ export declare class ChargilyProvider implements PaymentProvider {
|
|
|
25
25
|
}
|
|
26
26
|
/**
|
|
27
27
|
* Create a Chargily provider from environment variables.
|
|
28
|
+
*
|
|
29
|
+
* Convention env (cohérence avec Stripe `STRIPE_SECRET_KEY`) :
|
|
30
|
+
* - `CHARGILY_SECRET_KEY` (recommandé) — clé secrète côté serveur
|
|
31
|
+
* - `CHARGILY_API_KEY` (legacy alias) — gardé pour rétro-compat des
|
|
32
|
+
* déploiements existants. À retirer dans une future major version.
|
|
33
|
+
*
|
|
34
|
+
* `getEnv()` résout la cascade @mostajs/config (`PROD_*`/`TEST_*`/`DEV_*`
|
|
35
|
+
* selon `MOSTA_ENV`) puis fallback non-préfixé.
|
|
28
36
|
*/
|
|
29
37
|
export declare function createChargilyProvider(config?: Partial<ChargilyConfig>): ChargilyProvider;
|
|
30
38
|
//# sourceMappingURL=chargily.provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chargily.provider.d.ts","sourceRoot":"","sources":["../../src/providers/chargily.provider.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAIlI,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,qBAAa,gBAAiB,YAAW,eAAe;IAO1C,OAAO,CAAC,MAAM;IAN1B,QAAQ,CAAC,IAAI,cAAa;IAC1B,QAAQ,CAAC,mBAAmB,WAAU;IACtC,QAAQ,CAAC,gBAAgB,WAAsB;IAE/C,OAAO,CAAC,OAAO,CAAQ;gBAEH,MAAM,EAAE,cAAc;IAM1C,OAAO,CAAC,OAAO;IAOT,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAwB/D,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBvD,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAMvE;;OAEG;IACG,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAMhE,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CA0B5E;AAED
|
|
1
|
+
{"version":3,"file":"chargily.provider.d.ts","sourceRoot":"","sources":["../../src/providers/chargily.provider.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAIlI,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,qBAAa,gBAAiB,YAAW,eAAe;IAO1C,OAAO,CAAC,MAAM;IAN1B,QAAQ,CAAC,IAAI,cAAa;IAC1B,QAAQ,CAAC,mBAAmB,WAAU;IACtC,QAAQ,CAAC,gBAAgB,WAAsB;IAE/C,OAAO,CAAC,OAAO,CAAQ;gBAEH,MAAM,EAAE,cAAc;IAM1C,OAAO,CAAC,OAAO;IAOT,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAwB/D,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBvD,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAMvE;;OAEG;IACG,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAMhE,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CA0B5E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,gBAAgB,CAQzF"}
|
|
@@ -100,10 +100,18 @@ export class ChargilyProvider {
|
|
|
100
100
|
}
|
|
101
101
|
/**
|
|
102
102
|
* Create a Chargily provider from environment variables.
|
|
103
|
+
*
|
|
104
|
+
* Convention env (cohérence avec Stripe `STRIPE_SECRET_KEY`) :
|
|
105
|
+
* - `CHARGILY_SECRET_KEY` (recommandé) — clé secrète côté serveur
|
|
106
|
+
* - `CHARGILY_API_KEY` (legacy alias) — gardé pour rétro-compat des
|
|
107
|
+
* déploiements existants. À retirer dans une future major version.
|
|
108
|
+
*
|
|
109
|
+
* `getEnv()` résout la cascade @mostajs/config (`PROD_*`/`TEST_*`/`DEV_*`
|
|
110
|
+
* selon `MOSTA_ENV`) puis fallback non-préfixé.
|
|
103
111
|
*/
|
|
104
112
|
export function createChargilyProvider(config) {
|
|
105
113
|
return new ChargilyProvider({
|
|
106
|
-
apiKey: config?.apiKey ?? getEnv('CHARGILY_API_KEY', ''),
|
|
114
|
+
apiKey: config?.apiKey ?? getEnv('CHARGILY_SECRET_KEY') ?? getEnv('CHARGILY_API_KEY', ''),
|
|
107
115
|
testMode: config?.testMode ?? getEnv('CHARGILY_TEST_MODE') !== 'false',
|
|
108
116
|
successUrl: config?.successUrl ?? getEnv('CHARGILY_SUCCESS_URL', '/payment/success'),
|
|
109
117
|
failureUrl: config?.failureUrl ?? getEnv('CHARGILY_FAILURE_URL', '/payment/failed'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chargily.provider.js","sourceRoot":"","sources":["../../src/providers/chargily.provider.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"chargily.provider.js","sourceRoot":"","sources":["../../src/providers/chargily.provider.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
CHANGED
|
@@ -15,6 +15,8 @@ export type { WebhookHandlers } from './lib/stripe.js';
|
|
|
15
15
|
export { getPaymentRepo, resetPaymentRepo } from './lib/payment-factory.js';
|
|
16
16
|
export { createCheckoutHandler } from './api/checkout.route.js';
|
|
17
17
|
export { createPaymentHandlers } from './api/payments.route.js';
|
|
18
|
+
export { handleProviderWebhook, pickSignatureHeader, getProviderByName, isPaidEvent, isFailedEvent, isRefundedEvent, extractOrderId, } from './lib/webhook-helpers.js';
|
|
19
|
+
export type { ProviderName, HandleProviderWebhookArgs, HandleProviderWebhookResult, } from './lib/webhook-helpers.js';
|
|
18
20
|
export { getSchemas, moduleInfo } from './lib/module-info.js';
|
|
19
21
|
export { paymentModuleRegistration } from './register.js';
|
|
20
22
|
//# sourceMappingURL=server.d.ts.map
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAIA,YAAY,EACV,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAC/D,kBAAkB,EAAE,kBAAkB,EAAE,YAAY,EAAE,YAAY,EAClE,aAAa,EAAE,YAAY,GAC5B,MAAM,8BAA8B,CAAA;AAErC,OAAO,EACL,gBAAgB,EAAE,kBAAkB,EAAE,WAAW,EACjD,aAAa,EAAE,sBAAsB,EAAE,cAAc,GACtD,MAAM,0BAA0B,CAAA;AAGjC,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AAClF,YAAY,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAEhE,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AAC3F,YAAY,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AAEtE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AACrF,YAAY,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAElE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AACrF,YAAY,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAElE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AACrF,YAAY,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAGlE,OAAO,EACL,kBAAkB,EAAE,qBAAqB,EAAE,aAAa,EACxD,oBAAoB,EAAE,mBAAmB,EAAE,oBAAoB,GAChE,MAAM,iBAAiB,CAAA;AACxB,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAGtD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAG3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAG/D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA"}
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAIA,YAAY,EACV,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAC/D,kBAAkB,EAAE,kBAAkB,EAAE,YAAY,EAAE,YAAY,EAClE,aAAa,EAAE,YAAY,GAC5B,MAAM,8BAA8B,CAAA;AAErC,OAAO,EACL,gBAAgB,EAAE,kBAAkB,EAAE,WAAW,EACjD,aAAa,EAAE,sBAAsB,EAAE,cAAc,GACtD,MAAM,0BAA0B,CAAA;AAGjC,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AAClF,YAAY,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAEhE,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AAC3F,YAAY,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AAEtE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AACrF,YAAY,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAElE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AACrF,YAAY,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAElE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AACrF,YAAY,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAGlE,OAAO,EACL,kBAAkB,EAAE,qBAAqB,EAAE,aAAa,EACxD,oBAAoB,EAAE,mBAAmB,EAAE,oBAAoB,GAChE,MAAM,iBAAiB,CAAA;AACxB,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAGtD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAG3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAG/D,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,eAAe,EACf,cAAc,GACf,MAAM,0BAA0B,CAAA;AACjC,YAAY,EACV,YAAY,EACZ,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,0BAA0B,CAAA;AAGjC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA"}
|
package/dist/server.js
CHANGED
|
@@ -14,6 +14,8 @@ export { getPaymentRepo, resetPaymentRepo } from './lib/payment-factory.js';
|
|
|
14
14
|
// ─── API handlers ───────────────────────────────
|
|
15
15
|
export { createCheckoutHandler } from './api/checkout.route.js';
|
|
16
16
|
export { createPaymentHandlers } from './api/payments.route.js';
|
|
17
|
+
// ─── Webhook helpers (provider-agnostic) — v0.5.0+ ───
|
|
18
|
+
export { handleProviderWebhook, pickSignatureHeader, getProviderByName, isPaidEvent, isFailedEvent, isRefundedEvent, extractOrderId, } from './lib/webhook-helpers.js';
|
|
17
19
|
// ─── Module info ────────────────────────────────
|
|
18
20
|
export { getSchemas, moduleInfo } from './lib/module-info.js';
|
|
19
21
|
export { paymentModuleRegistration } from './register.js';
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,wCAAwC;AASxC,OAAO,EACL,gBAAgB,EAAE,kBAAkB,EAAE,WAAW,EACjD,aAAa,EAAE,sBAAsB,EAAE,cAAc,GACtD,MAAM,0BAA0B,CAAA;AAEjC,mDAAmD;AACnD,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AAGlF,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AAG3F,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AAGrF,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AAGrF,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AAGrF,kDAAkD;AAClD,OAAO,EACL,kBAAkB,EAAE,qBAAqB,EAAE,aAAa,EACxD,oBAAoB,EAAE,mBAAmB,EAAE,oBAAoB,GAChE,MAAM,iBAAiB,CAAA;AAGxB,mDAAmD;AACnD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAE3E,mDAAmD;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAE/D,mDAAmD;AACnD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,wCAAwC;AASxC,OAAO,EACL,gBAAgB,EAAE,kBAAkB,EAAE,WAAW,EACjD,aAAa,EAAE,sBAAsB,EAAE,cAAc,GACtD,MAAM,0BAA0B,CAAA;AAEjC,mDAAmD;AACnD,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AAGlF,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AAG3F,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AAGrF,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AAGrF,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AAGrF,kDAAkD;AAClD,OAAO,EACL,kBAAkB,EAAE,qBAAqB,EAAE,aAAa,EACxD,oBAAoB,EAAE,mBAAmB,EAAE,oBAAoB,GAChE,MAAM,iBAAiB,CAAA;AAGxB,mDAAmD;AACnD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAE3E,mDAAmD;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAE/D,wDAAwD;AACxD,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,eAAe,EACf,cAAc,GACf,MAAM,0BAA0B,CAAA;AAOjC,mDAAmD;AACnD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mostajs/payment",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Payment module for @mostajs — Multi-provider (Stripe, Satim/CIB, Chargily, PayPal), multi-method, multi-currency",
|
|
5
5
|
"author": "Dr Hamid MADANI <drmdh@msn.com>",
|
|
6
6
|
"license": "AGPL-3.0-or-later",
|