@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 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;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,gBAAgB,CAQzF"}
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
@@ -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';
@@ -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.4.1",
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",