tupay 0.8.0 → 0.10.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/cjs/client.d.ts +1 -1
- package/dist/cjs/client.d.ts.map +1 -1
- package/dist/cjs/client.js +12 -1
- package/dist/cjs/client.js.map +1 -1
- package/dist/cjs/errors.d.ts +36 -0
- package/dist/cjs/errors.d.ts.map +1 -1
- package/dist/cjs/errors.js +49 -19
- package/dist/cjs/errors.js.map +1 -1
- package/dist/cjs/index.d.ts +34 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +42 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/liste.d.ts +11 -1
- package/dist/cjs/liste.d.ts.map +1 -1
- package/dist/cjs/liste.js +3 -0
- package/dist/cjs/liste.js.map +1 -1
- package/dist/cjs/resources/checkout-sessions.d.ts +85 -0
- package/dist/cjs/resources/checkout-sessions.d.ts.map +1 -0
- package/dist/cjs/resources/checkout-sessions.js +69 -0
- package/dist/cjs/resources/checkout-sessions.js.map +1 -0
- package/dist/cjs/resources/customers.d.ts +80 -0
- package/dist/cjs/resources/customers.d.ts.map +1 -0
- package/dist/cjs/resources/customers.js +77 -0
- package/dist/cjs/resources/customers.js.map +1 -0
- package/dist/cjs/resources/payment-intents.d.ts +27 -0
- package/dist/cjs/resources/payment-intents.d.ts.map +1 -1
- package/dist/cjs/resources/payment-intents.js.map +1 -1
- package/dist/cjs/resources/payment-links.d.ts +26 -1
- package/dist/cjs/resources/payment-links.d.ts.map +1 -1
- package/dist/cjs/resources/payment-links.js.map +1 -1
- package/dist/cjs/resources/payment-methods.d.ts +76 -0
- package/dist/cjs/resources/payment-methods.d.ts.map +1 -0
- package/dist/cjs/resources/payment-methods.js +77 -0
- package/dist/cjs/resources/payment-methods.js.map +1 -0
- package/dist/cjs/resources/prices.d.ts +73 -0
- package/dist/cjs/resources/prices.d.ts.map +1 -0
- package/dist/cjs/resources/prices.js +78 -0
- package/dist/cjs/resources/prices.js.map +1 -0
- package/dist/cjs/resources/products.d.ts +56 -0
- package/dist/cjs/resources/products.d.ts.map +1 -0
- package/dist/cjs/resources/products.js +70 -0
- package/dist/cjs/resources/products.js.map +1 -0
- package/dist/cjs/resources/receipts.d.ts +40 -0
- package/dist/cjs/resources/receipts.d.ts.map +1 -0
- package/dist/cjs/resources/receipts.js +49 -0
- package/dist/cjs/resources/receipts.js.map +1 -0
- package/dist/cjs/resources/setup-intents.d.ts +46 -0
- package/dist/cjs/resources/setup-intents.d.ts.map +1 -0
- package/dist/cjs/resources/setup-intents.js +62 -0
- package/dist/cjs/resources/setup-intents.js.map +1 -0
- package/dist/cjs/resources/transactions.d.ts +7 -0
- package/dist/cjs/resources/transactions.d.ts.map +1 -1
- package/dist/cjs/resources/transactions.js +1 -0
- package/dist/cjs/resources/transactions.js.map +1 -1
- package/dist/cjs/types.d.ts +317 -0
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/esm/client.d.ts +1 -1
- package/dist/esm/client.d.ts.map +1 -1
- package/dist/esm/client.js +12 -1
- package/dist/esm/client.js.map +1 -1
- package/dist/esm/errors.d.ts +36 -0
- package/dist/esm/errors.d.ts.map +1 -1
- package/dist/esm/errors.js +47 -18
- package/dist/esm/errors.js.map +1 -1
- package/dist/esm/index.d.ts +34 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +34 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/liste.d.ts +11 -1
- package/dist/esm/liste.d.ts.map +1 -1
- package/dist/esm/liste.js +3 -0
- package/dist/esm/liste.js.map +1 -1
- package/dist/esm/resources/checkout-sessions.d.ts +85 -0
- package/dist/esm/resources/checkout-sessions.d.ts.map +1 -0
- package/dist/esm/resources/checkout-sessions.js +65 -0
- package/dist/esm/resources/checkout-sessions.js.map +1 -0
- package/dist/esm/resources/customers.d.ts +80 -0
- package/dist/esm/resources/customers.d.ts.map +1 -0
- package/dist/esm/resources/customers.js +73 -0
- package/dist/esm/resources/customers.js.map +1 -0
- package/dist/esm/resources/payment-intents.d.ts +27 -0
- package/dist/esm/resources/payment-intents.d.ts.map +1 -1
- package/dist/esm/resources/payment-intents.js.map +1 -1
- package/dist/esm/resources/payment-links.d.ts +26 -1
- package/dist/esm/resources/payment-links.d.ts.map +1 -1
- package/dist/esm/resources/payment-links.js.map +1 -1
- package/dist/esm/resources/payment-methods.d.ts +76 -0
- package/dist/esm/resources/payment-methods.d.ts.map +1 -0
- package/dist/esm/resources/payment-methods.js +73 -0
- package/dist/esm/resources/payment-methods.js.map +1 -0
- package/dist/esm/resources/prices.d.ts +73 -0
- package/dist/esm/resources/prices.d.ts.map +1 -0
- package/dist/esm/resources/prices.js +74 -0
- package/dist/esm/resources/prices.js.map +1 -0
- package/dist/esm/resources/products.d.ts +56 -0
- package/dist/esm/resources/products.d.ts.map +1 -0
- package/dist/esm/resources/products.js +66 -0
- package/dist/esm/resources/products.js.map +1 -0
- package/dist/esm/resources/receipts.d.ts +40 -0
- package/dist/esm/resources/receipts.d.ts.map +1 -0
- package/dist/esm/resources/receipts.js +45 -0
- package/dist/esm/resources/receipts.js.map +1 -0
- package/dist/esm/resources/setup-intents.d.ts +46 -0
- package/dist/esm/resources/setup-intents.d.ts.map +1 -0
- package/dist/esm/resources/setup-intents.js +58 -0
- package/dist/esm/resources/setup-intents.js.map +1 -0
- package/dist/esm/resources/transactions.d.ts +7 -0
- package/dist/esm/resources/transactions.d.ts.map +1 -1
- package/dist/esm/resources/transactions.js +1 -0
- package/dist/esm/resources/transactions.js.map +1 -1
- package/dist/esm/types.d.ts +317 -0
- package/dist/esm/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/cjs/client.d.ts
CHANGED
|
@@ -28,7 +28,7 @@ export interface TupayOptions {
|
|
|
28
28
|
export interface RequestOptions {
|
|
29
29
|
method: 'GET' | 'POST' | 'PATCH' | 'DELETE';
|
|
30
30
|
path: string;
|
|
31
|
-
query?: Record<string, string | number | boolean | undefined>;
|
|
31
|
+
query?: Record<string, string | number | boolean | readonly string[] | undefined>;
|
|
32
32
|
body?: unknown;
|
|
33
33
|
/**
|
|
34
34
|
* Clé d'idempotence. Sa présence rend la requête rejouable en toute
|
package/dist/cjs/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,MAAM,WAAW,YAAY;IAC3B,2FAA2F;IAC3F,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,8DAA8D;IAC9D,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;CAChC;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAA;IAC3C,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,MAAM,WAAW,YAAY;IAC3B,2FAA2F;IAC3F,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,8DAA8D;IAC9D,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;CAChC;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAA;IAC3C,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC,CAAA;IACjF,IAAI,CAAC,EAAE,OAAO,CAAA;IACd;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAsBD,qBAAa,WAAW;;IAQtB,kFAAkF;IAClF,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;gBAEd,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB;IAkCtD,qFAAqF;IACrF,MAAM,CAAC,cAAc,IAAI,MAAM;IAIzB,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;CA4HtD"}
|
package/dist/cjs/client.js
CHANGED
|
@@ -128,8 +128,19 @@ class TupayClient {
|
|
|
128
128
|
#buildUrl(path, query) {
|
|
129
129
|
const url = new URL(`${this.#baseUrl}/api/v1${path}`);
|
|
130
130
|
for (const [key, value] of Object.entries(query ?? {})) {
|
|
131
|
-
if (value
|
|
131
|
+
if (value === undefined)
|
|
132
|
+
continue;
|
|
133
|
+
// Un tableau se sérialise en `cle[]=a&cle[]=b`, la forme que
|
|
134
|
+
// l'API attend pour `expand`. `String(tableau)` aurait produit
|
|
135
|
+
// « a,b » sous une seule clé : accepté par l'API aujourd'hui, mais
|
|
136
|
+
// par tolérance, pas par contrat.
|
|
137
|
+
if (Array.isArray(value)) {
|
|
138
|
+
for (const element of value)
|
|
139
|
+
url.searchParams.append(`${key}[]`, String(element));
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
132
142
|
url.searchParams.set(key, String(value));
|
|
143
|
+
}
|
|
133
144
|
}
|
|
134
145
|
return url.toString();
|
|
135
146
|
}
|
package/dist/cjs/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/errors.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { FailureCode } from './types.js';
|
|
1
2
|
/**
|
|
2
3
|
* Hiérarchie d'erreurs du SDK.
|
|
3
4
|
*
|
|
@@ -81,6 +82,39 @@ export declare class TupayConnectionError extends TupayError {
|
|
|
81
82
|
export declare class TupaySignatureVerificationError extends TupayError {
|
|
82
83
|
constructor(message: string);
|
|
83
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* 402 — la banque a REFUSÉ le débit d'une carte enregistrée.
|
|
87
|
+
*
|
|
88
|
+
* Distincte de `TupayBaasError`, dont elle hérite : celle-ci dit « le
|
|
89
|
+
* prestataire n'a pas répondu », un incident dont on se relève en
|
|
90
|
+
* retentant. Celle-là dit « il a répondu, et la réponse est non ».
|
|
91
|
+
* Retenter à l'identique reproduira le refus.
|
|
92
|
+
*
|
|
93
|
+
* ⚠️ `failureCode === 'authentication_required'` n'est **pas** un refus
|
|
94
|
+
* bancaire : le porteur est solvable, il lui manque une authentification
|
|
95
|
+
* forte. Ramenez-le devant son écran plutôt que de lui demander une
|
|
96
|
+
* autre carte.
|
|
97
|
+
*
|
|
98
|
+
* @example
|
|
99
|
+
* try {
|
|
100
|
+
* await tupay.paymentIntents.create({ …, offSession: true })
|
|
101
|
+
* } catch (err) {
|
|
102
|
+
* if (err instanceof TupayPaymentDeclinedError) {
|
|
103
|
+
* if (err.failureCode === 'authentication_required') ramenerLeClient()
|
|
104
|
+
* else demanderUneAutreCarte(err.message)
|
|
105
|
+
* }
|
|
106
|
+
* }
|
|
107
|
+
*/
|
|
108
|
+
export declare class TupayPaymentDeclinedError extends TupayBaasError {
|
|
109
|
+
/** La raison, en code machine stable. */
|
|
110
|
+
readonly failureCode?: FailureCode;
|
|
111
|
+
/** La transaction refusée. Elle EXISTE, et porte la même raison. */
|
|
112
|
+
readonly transactionId?: string;
|
|
113
|
+
constructor(message: string, options: TupayErrorOptions & {
|
|
114
|
+
failureCode?: FailureCode;
|
|
115
|
+
transactionId?: string;
|
|
116
|
+
});
|
|
117
|
+
}
|
|
84
118
|
/**
|
|
85
119
|
* Construit l'erreur typée correspondant à une réponse HTTP.
|
|
86
120
|
*
|
|
@@ -99,5 +133,7 @@ export declare function errorFromResponse(status: number, body: {
|
|
|
99
133
|
error?: string;
|
|
100
134
|
message?: string;
|
|
101
135
|
type?: string;
|
|
136
|
+
failureCode?: FailureCode;
|
|
137
|
+
transactionId?: string;
|
|
102
138
|
} | null, requestId?: string): TupayError;
|
|
103
139
|
//# sourceMappingURL=errors.d.ts.map
|
package/dist/cjs/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,sEAAsE;IACtE,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,qBAAa,UAAW,SAAQ,KAAK;IACnC,6CAA6C;IAC7C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,iEAAiE;IACjE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,wEAAwE;IACxE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,kDAAkD;IAClD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;gBAEf,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB;CAQxD;AAED,+CAA+C;AAC/C,qBAAa,wBAAyB,SAAQ,UAAU;CAAG;AAE3D,6EAA6E;AAC7E,qBAAa,oBAAqB,SAAQ,UAAU;CAAG;AAEvD,kEAAkE;AAClE,qBAAa,kBAAmB,SAAQ,UAAU;CAAG;AAErD,6CAA6C;AAC7C,qBAAa,oBAAqB,SAAQ,UAAU;CAAG;AAEvD,uEAAuE;AACvE,qBAAa,kBAAmB,SAAQ,UAAU;CAAG;AAErD;;;;;;;;;;;GAWG;AACH,qBAAa,qBAAsB,SAAQ,kBAAkB;CAAG;AAEhE,gDAAgD;AAChD,qBAAa,mBAAoB,SAAQ,UAAU;CAAG;AAEtD,iCAAiC;AACjC,qBAAa,aAAc,SAAQ,UAAU;CAAG;AAEhD,0DAA0D;AAC1D,qBAAa,cAAe,SAAQ,UAAU;CAAG;AAEjD,8EAA8E;AAC9E,qBAAa,oBAAqB,SAAQ,UAAU;gBACtC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAG7C;AAED,0DAA0D;AAC1D,qBAAa,+BAAgC,SAAQ,UAAU;gBACjD,OAAO,EAAE,MAAM;CAG5B;AAeD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,sEAAsE;IACtE,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,qBAAa,UAAW,SAAQ,KAAK;IACnC,6CAA6C;IAC7C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,iEAAiE;IACjE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,wEAAwE;IACxE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,kDAAkD;IAClD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;gBAEf,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB;CAQxD;AAED,+CAA+C;AAC/C,qBAAa,wBAAyB,SAAQ,UAAU;CAAG;AAE3D,6EAA6E;AAC7E,qBAAa,oBAAqB,SAAQ,UAAU;CAAG;AAEvD,kEAAkE;AAClE,qBAAa,kBAAmB,SAAQ,UAAU;CAAG;AAErD,6CAA6C;AAC7C,qBAAa,oBAAqB,SAAQ,UAAU;CAAG;AAEvD,uEAAuE;AACvE,qBAAa,kBAAmB,SAAQ,UAAU;CAAG;AAErD;;;;;;;;;;;GAWG;AACH,qBAAa,qBAAsB,SAAQ,kBAAkB;CAAG;AAEhE,gDAAgD;AAChD,qBAAa,mBAAoB,SAAQ,UAAU;CAAG;AAEtD,iCAAiC;AACjC,qBAAa,aAAc,SAAQ,UAAU;CAAG;AAEhD,0DAA0D;AAC1D,qBAAa,cAAe,SAAQ,UAAU;CAAG;AAEjD,8EAA8E;AAC9E,qBAAa,oBAAqB,SAAQ,UAAU;gBACtC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAG7C;AAED,0DAA0D;AAC1D,qBAAa,+BAAgC,SAAQ,UAAU;gBACjD,OAAO,EAAE,MAAM;CAG5B;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,yBAA0B,SAAQ,cAAc;IAC3D,yCAAyC;IACzC,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAA;IAClC,oEAAoE;IACpE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;gBAG7B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,iBAAiB,GAAG;QAAE,WAAW,CAAC,EAAE,WAAW,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE;CAMrF;AAeD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE;IACJ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,GAAG,IAAI,EACR,SAAS,CAAC,EAAE,MAAM,GACjB,UAAU,CAyCZ"}
|
package/dist/cjs/errors.js
CHANGED
|
@@ -1,24 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Hiérarchie d'erreurs du SDK.
|
|
4
|
-
*
|
|
5
|
-
* Toutes héritent de `TupayError` : un `catch (err)` unique suffit, et
|
|
6
|
-
* `err instanceof TupayRateLimitError` permet d'affiner si besoin.
|
|
7
|
-
*
|
|
8
|
-
* `code` est le code machine renvoyé par l'API (`validation_error`,
|
|
9
|
-
* `livemode_mismatch`, …). C'est lui qu'il faut tester — le `message`
|
|
10
|
-
* est en français, destiné à un humain, et peut changer sans préavis.
|
|
11
|
-
*
|
|
12
|
-
* `type` est la CLASSE de l'erreur : `invalid_request`, `authentication`,
|
|
13
|
-
* `permission`, `not_found`, `conflict`, `idempotency`, `rate_limit`,
|
|
14
|
-
* `provider`, `api`. Elle permet de traiter une famille entière sans
|
|
15
|
-
* énumérer chaque code, et c'est elle qui choisit la sous-classe
|
|
16
|
-
* ci-dessous. Retirer ou renommer un code est un changement cassant,
|
|
17
|
-
* réservé à une version datée ; en ajouter un ne l'est pas, et un code
|
|
18
|
-
* inconnu se traite par sa classe.
|
|
19
|
-
*/
|
|
20
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
-
exports.TupaySignatureVerificationError = exports.TupayConnectionError = exports.TupayBaasError = exports.TupayApiError = exports.TupayRateLimitError = exports.TupayIdempotencyError = exports.TupayConflictError = exports.TupayValidationError = exports.TupayNotFoundError = exports.TupayPermissionError = exports.TupayAuthenticationError = exports.TupayError = void 0;
|
|
3
|
+
exports.TupayPaymentDeclinedError = exports.TupaySignatureVerificationError = exports.TupayConnectionError = exports.TupayBaasError = exports.TupayApiError = exports.TupayRateLimitError = exports.TupayIdempotencyError = exports.TupayConflictError = exports.TupayValidationError = exports.TupayNotFoundError = exports.TupayPermissionError = exports.TupayAuthenticationError = exports.TupayError = void 0;
|
|
22
4
|
exports.errorFromResponse = errorFromResponse;
|
|
23
5
|
class TupayError extends Error {
|
|
24
6
|
/** Code machine stable renvoyé par l'API. */
|
|
@@ -100,6 +82,41 @@ class TupaySignatureVerificationError extends TupayError {
|
|
|
100
82
|
}
|
|
101
83
|
}
|
|
102
84
|
exports.TupaySignatureVerificationError = TupaySignatureVerificationError;
|
|
85
|
+
/**
|
|
86
|
+
* 402 — la banque a REFUSÉ le débit d'une carte enregistrée.
|
|
87
|
+
*
|
|
88
|
+
* Distincte de `TupayBaasError`, dont elle hérite : celle-ci dit « le
|
|
89
|
+
* prestataire n'a pas répondu », un incident dont on se relève en
|
|
90
|
+
* retentant. Celle-là dit « il a répondu, et la réponse est non ».
|
|
91
|
+
* Retenter à l'identique reproduira le refus.
|
|
92
|
+
*
|
|
93
|
+
* ⚠️ `failureCode === 'authentication_required'` n'est **pas** un refus
|
|
94
|
+
* bancaire : le porteur est solvable, il lui manque une authentification
|
|
95
|
+
* forte. Ramenez-le devant son écran plutôt que de lui demander une
|
|
96
|
+
* autre carte.
|
|
97
|
+
*
|
|
98
|
+
* @example
|
|
99
|
+
* try {
|
|
100
|
+
* await tupay.paymentIntents.create({ …, offSession: true })
|
|
101
|
+
* } catch (err) {
|
|
102
|
+
* if (err instanceof TupayPaymentDeclinedError) {
|
|
103
|
+
* if (err.failureCode === 'authentication_required') ramenerLeClient()
|
|
104
|
+
* else demanderUneAutreCarte(err.message)
|
|
105
|
+
* }
|
|
106
|
+
* }
|
|
107
|
+
*/
|
|
108
|
+
class TupayPaymentDeclinedError extends TupayBaasError {
|
|
109
|
+
/** La raison, en code machine stable. */
|
|
110
|
+
failureCode;
|
|
111
|
+
/** La transaction refusée. Elle EXISTE, et porte la même raison. */
|
|
112
|
+
transactionId;
|
|
113
|
+
constructor(message, options) {
|
|
114
|
+
super(message, options);
|
|
115
|
+
this.failureCode = options.failureCode;
|
|
116
|
+
this.transactionId = options.transactionId;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
exports.TupayPaymentDeclinedError = TupayPaymentDeclinedError;
|
|
103
120
|
/** La classe d'erreur de l'API vers la sous-classe du SDK. */
|
|
104
121
|
const PAR_TYPE = {
|
|
105
122
|
invalid_request: TupayValidationError,
|
|
@@ -130,6 +147,19 @@ function errorFromResponse(status, body, requestId) {
|
|
|
130
147
|
const code = body?.error ?? 'server_error';
|
|
131
148
|
const message = body?.message ?? `Requête échouée (HTTP ${status}).`;
|
|
132
149
|
const options = { code, type: body?.type, statusCode: status, requestId };
|
|
150
|
+
// ── Le CODE l'emporte sur le type, pour ce cas-là ────────────────
|
|
151
|
+
// `payment_declined` porte le type `provider`, comme `bad_gateway` :
|
|
152
|
+
// dans les deux cas la faute est chez le prestataire. Mais leurs
|
|
153
|
+
// reprises sont opposées — retenter pour l'un, ne surtout pas pour
|
|
154
|
+
// l'autre — et un client qui ne peut pas les distinguer boucle sur
|
|
155
|
+
// une carte qui ne passera jamais.
|
|
156
|
+
if (code === 'payment_declined') {
|
|
157
|
+
return new TupayPaymentDeclinedError(message, {
|
|
158
|
+
...options,
|
|
159
|
+
failureCode: body?.failureCode,
|
|
160
|
+
transactionId: body?.transactionId,
|
|
161
|
+
});
|
|
162
|
+
}
|
|
133
163
|
const parType = body?.type ? PAR_TYPE[body.type] : undefined;
|
|
134
164
|
if (parType)
|
|
135
165
|
return new parType(message, options);
|
package/dist/cjs/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -16,6 +16,13 @@
|
|
|
16
16
|
import { type TupayOptions } from './client.js';
|
|
17
17
|
import { PaymentIntents } from './resources/payment-intents.js';
|
|
18
18
|
import { PaymentLinks } from './resources/payment-links.js';
|
|
19
|
+
import { Customers } from './resources/customers.js';
|
|
20
|
+
import { PaymentMethods } from './resources/payment-methods.js';
|
|
21
|
+
import { SetupIntents } from './resources/setup-intents.js';
|
|
22
|
+
import { Products } from './resources/products.js';
|
|
23
|
+
import { CheckoutSessions } from './resources/checkout-sessions.js';
|
|
24
|
+
import { Receipts } from './resources/receipts.js';
|
|
25
|
+
import { Prices } from './resources/prices.js';
|
|
19
26
|
import { Transactions } from './resources/transactions.js';
|
|
20
27
|
import { Refunds } from './resources/refunds.js';
|
|
21
28
|
import { WebhookEndpoints } from './resources/webhook-endpoints.js';
|
|
@@ -29,6 +36,18 @@ export declare class Tupay {
|
|
|
29
36
|
readonly paymentIntents: PaymentIntents;
|
|
30
37
|
readonly paymentLinks: PaymentLinks;
|
|
31
38
|
readonly transactions: Transactions;
|
|
39
|
+
/** Le carnet d'adresses : reconnaître une personne d'un paiement à l'autre. */
|
|
40
|
+
readonly customers: Customers;
|
|
41
|
+
/** Les cartes enregistrées. Tupay ne reçoit jamais de numéro de carte. */
|
|
42
|
+
readonly paymentMethods: PaymentMethods;
|
|
43
|
+
/** Enregistrer une carte sans débiter, pour prélever plus tard. */
|
|
44
|
+
readonly setupIntents: SetupIntents;
|
|
45
|
+
/** Le catalogue : ce que vous vendez. */
|
|
46
|
+
readonly products: Products;
|
|
47
|
+
/** Les prix de votre catalogue. Immuables dès leur création. */
|
|
48
|
+
readonly checkoutSessions: CheckoutSessions;
|
|
49
|
+
readonly receipts: Receipts;
|
|
50
|
+
readonly prices: Prices;
|
|
32
51
|
readonly refunds: Refunds;
|
|
33
52
|
readonly webhookEndpoints: WebhookEndpoints;
|
|
34
53
|
readonly merchants: Merchants;
|
|
@@ -72,11 +91,25 @@ export { TupayClient } from './client.js';
|
|
|
72
91
|
export type { TupayOptions, RequestOptions } from './client.js';
|
|
73
92
|
export { constructEvent, DEFAULT_TOLERANCE_SECONDS } from './webhooks.js';
|
|
74
93
|
export type { ConstructEventOptions } from './webhooks.js';
|
|
75
|
-
export { TupayError, TupayAuthenticationError, TupayPermissionError, TupayNotFoundError, TupayValidationError, TupayConflictError, TupayIdempotencyError, TupayRateLimitError, TupayApiError, TupayBaasError, TupayConnectionError, TupaySignatureVerificationError, } from './errors.js';
|
|
94
|
+
export { TupayError, TupayAuthenticationError, TupayPermissionError, TupayNotFoundError, TupayValidationError, TupayConflictError, TupayIdempotencyError, TupayRateLimitError, TupayApiError, TupayBaasError, TupayPaymentDeclinedError, TupayConnectionError, TupaySignatureVerificationError, } from './errors.js';
|
|
76
95
|
export type * from './types.js';
|
|
77
96
|
export type { CreatePaymentIntentParams } from './resources/payment-intents.js';
|
|
78
97
|
export type { CreatePaymentLinkParams } from './resources/payment-links.js';
|
|
79
98
|
export type { ListTransactionsParams } from './resources/transactions.js';
|
|
99
|
+
export type { CreateCustomerParams, UpdateCustomerParams, ListCustomersParams, } from './resources/customers.js';
|
|
100
|
+
export { Customers } from './resources/customers.js';
|
|
101
|
+
export type { CreatePaymentMethodParams, UpdatePaymentMethodParams, ListPaymentMethodsParams, } from './resources/payment-methods.js';
|
|
102
|
+
export { PaymentMethods } from './resources/payment-methods.js';
|
|
103
|
+
export type { CreateSetupIntentParams, ListSetupIntentsParams, } from './resources/setup-intents.js';
|
|
104
|
+
export { SetupIntents } from './resources/setup-intents.js';
|
|
105
|
+
export type { CreateProductParams, UpdateProductParams, ListProductsParams, } from './resources/products.js';
|
|
106
|
+
export { Products } from './resources/products.js';
|
|
107
|
+
export type { CreatePriceParams, UpdatePriceParams, ListPricesParams, } from './resources/prices.js';
|
|
108
|
+
export { Prices } from './resources/prices.js';
|
|
109
|
+
export type { CheckoutLineItem, CreateCheckoutSessionParams, ListCheckoutSessionsParams, } from './resources/checkout-sessions.js';
|
|
110
|
+
export { CheckoutSessions } from './resources/checkout-sessions.js';
|
|
111
|
+
export type { ListReceiptsParams } from './resources/receipts.js';
|
|
112
|
+
export { Receipts } from './resources/receipts.js';
|
|
80
113
|
export type { CreateRefundParams, ListRefundsParams } from './resources/refunds.js';
|
|
81
114
|
export type { CreateWebhookEndpointParams, UpdateWebhookEndpointParams, ListDeliveriesParams, } from './resources/webhook-endpoints.js';
|
|
82
115
|
export type { ListEventsParams } from './resources/events.js';
|
package/dist/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAe,KAAK,YAAY,EAAE,MAAM,aAAa,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,EAAkB,KAAK,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,qBAAa,KAAK;;IAChB,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAA;IACvC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAA;IACnC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAA;IACnC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAA;IAC3C,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,8DAA8D;IAC9D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,sEAAsE;IACtE,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;IAEjC,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;gBAId,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -15,10 +15,17 @@
|
|
|
15
15
|
* console.log(link.url)
|
|
16
16
|
*/
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.TestHelpers = exports.Events = exports.TupaySignatureVerificationError = exports.TupayConnectionError = exports.TupayBaasError = exports.TupayApiError = exports.TupayRateLimitError = exports.TupayIdempotencyError = exports.TupayConflictError = exports.TupayValidationError = exports.TupayNotFoundError = exports.TupayPermissionError = exports.TupayAuthenticationError = exports.TupayError = exports.DEFAULT_TOLERANCE_SECONDS = exports.constructEvent = exports.TupayClient = exports.Tupay = void 0;
|
|
18
|
+
exports.TestHelpers = exports.Events = exports.Receipts = exports.CheckoutSessions = exports.Prices = exports.Products = exports.SetupIntents = exports.PaymentMethods = exports.Customers = exports.TupaySignatureVerificationError = exports.TupayConnectionError = exports.TupayPaymentDeclinedError = exports.TupayBaasError = exports.TupayApiError = exports.TupayRateLimitError = exports.TupayIdempotencyError = exports.TupayConflictError = exports.TupayValidationError = exports.TupayNotFoundError = exports.TupayPermissionError = exports.TupayAuthenticationError = exports.TupayError = exports.DEFAULT_TOLERANCE_SECONDS = exports.constructEvent = exports.TupayClient = exports.Tupay = void 0;
|
|
19
19
|
const client_js_1 = require("./client.js");
|
|
20
20
|
const payment_intents_js_1 = require("./resources/payment-intents.js");
|
|
21
21
|
const payment_links_js_1 = require("./resources/payment-links.js");
|
|
22
|
+
const customers_js_1 = require("./resources/customers.js");
|
|
23
|
+
const payment_methods_js_1 = require("./resources/payment-methods.js");
|
|
24
|
+
const setup_intents_js_1 = require("./resources/setup-intents.js");
|
|
25
|
+
const products_js_1 = require("./resources/products.js");
|
|
26
|
+
const checkout_sessions_js_1 = require("./resources/checkout-sessions.js");
|
|
27
|
+
const receipts_js_1 = require("./resources/receipts.js");
|
|
28
|
+
const prices_js_1 = require("./resources/prices.js");
|
|
22
29
|
const transactions_js_1 = require("./resources/transactions.js");
|
|
23
30
|
const refunds_js_1 = require("./resources/refunds.js");
|
|
24
31
|
const webhook_endpoints_js_1 = require("./resources/webhook-endpoints.js");
|
|
@@ -30,6 +37,18 @@ class Tupay {
|
|
|
30
37
|
paymentIntents;
|
|
31
38
|
paymentLinks;
|
|
32
39
|
transactions;
|
|
40
|
+
/** Le carnet d'adresses : reconnaître une personne d'un paiement à l'autre. */
|
|
41
|
+
customers;
|
|
42
|
+
/** Les cartes enregistrées. Tupay ne reçoit jamais de numéro de carte. */
|
|
43
|
+
paymentMethods;
|
|
44
|
+
/** Enregistrer une carte sans débiter, pour prélever plus tard. */
|
|
45
|
+
setupIntents;
|
|
46
|
+
/** Le catalogue : ce que vous vendez. */
|
|
47
|
+
products;
|
|
48
|
+
/** Les prix de votre catalogue. Immuables dès leur création. */
|
|
49
|
+
checkoutSessions;
|
|
50
|
+
receipts;
|
|
51
|
+
prices;
|
|
33
52
|
refunds;
|
|
34
53
|
webhookEndpoints;
|
|
35
54
|
merchants;
|
|
@@ -46,6 +65,13 @@ class Tupay {
|
|
|
46
65
|
this.paymentIntents = new payment_intents_js_1.PaymentIntents(this.#client);
|
|
47
66
|
this.paymentLinks = new payment_links_js_1.PaymentLinks(this.#client);
|
|
48
67
|
this.transactions = new transactions_js_1.Transactions(this.#client);
|
|
68
|
+
this.customers = new customers_js_1.Customers(this.#client);
|
|
69
|
+
this.paymentMethods = new payment_methods_js_1.PaymentMethods(this.#client);
|
|
70
|
+
this.setupIntents = new setup_intents_js_1.SetupIntents(this.#client);
|
|
71
|
+
this.products = new products_js_1.Products(this.#client);
|
|
72
|
+
this.checkoutSessions = new checkout_sessions_js_1.CheckoutSessions(this.#client);
|
|
73
|
+
this.receipts = new receipts_js_1.Receipts(this.#client);
|
|
74
|
+
this.prices = new prices_js_1.Prices(this.#client);
|
|
49
75
|
this.refunds = new refunds_js_1.Refunds(this.#client);
|
|
50
76
|
this.webhookEndpoints = new webhook_endpoints_js_1.WebhookEndpoints(this.#client);
|
|
51
77
|
this.merchants = new merchants_js_1.Merchants(this.#client);
|
|
@@ -102,8 +128,23 @@ Object.defineProperty(exports, "TupayIdempotencyError", { enumerable: true, get:
|
|
|
102
128
|
Object.defineProperty(exports, "TupayRateLimitError", { enumerable: true, get: function () { return errors_js_1.TupayRateLimitError; } });
|
|
103
129
|
Object.defineProperty(exports, "TupayApiError", { enumerable: true, get: function () { return errors_js_1.TupayApiError; } });
|
|
104
130
|
Object.defineProperty(exports, "TupayBaasError", { enumerable: true, get: function () { return errors_js_1.TupayBaasError; } });
|
|
131
|
+
Object.defineProperty(exports, "TupayPaymentDeclinedError", { enumerable: true, get: function () { return errors_js_1.TupayPaymentDeclinedError; } });
|
|
105
132
|
Object.defineProperty(exports, "TupayConnectionError", { enumerable: true, get: function () { return errors_js_1.TupayConnectionError; } });
|
|
106
133
|
Object.defineProperty(exports, "TupaySignatureVerificationError", { enumerable: true, get: function () { return errors_js_1.TupaySignatureVerificationError; } });
|
|
134
|
+
var customers_js_2 = require("./resources/customers.js");
|
|
135
|
+
Object.defineProperty(exports, "Customers", { enumerable: true, get: function () { return customers_js_2.Customers; } });
|
|
136
|
+
var payment_methods_js_2 = require("./resources/payment-methods.js");
|
|
137
|
+
Object.defineProperty(exports, "PaymentMethods", { enumerable: true, get: function () { return payment_methods_js_2.PaymentMethods; } });
|
|
138
|
+
var setup_intents_js_2 = require("./resources/setup-intents.js");
|
|
139
|
+
Object.defineProperty(exports, "SetupIntents", { enumerable: true, get: function () { return setup_intents_js_2.SetupIntents; } });
|
|
140
|
+
var products_js_2 = require("./resources/products.js");
|
|
141
|
+
Object.defineProperty(exports, "Products", { enumerable: true, get: function () { return products_js_2.Products; } });
|
|
142
|
+
var prices_js_2 = require("./resources/prices.js");
|
|
143
|
+
Object.defineProperty(exports, "Prices", { enumerable: true, get: function () { return prices_js_2.Prices; } });
|
|
144
|
+
var checkout_sessions_js_2 = require("./resources/checkout-sessions.js");
|
|
145
|
+
Object.defineProperty(exports, "CheckoutSessions", { enumerable: true, get: function () { return checkout_sessions_js_2.CheckoutSessions; } });
|
|
146
|
+
var receipts_js_2 = require("./resources/receipts.js");
|
|
147
|
+
Object.defineProperty(exports, "Receipts", { enumerable: true, get: function () { return receipts_js_2.Receipts; } });
|
|
107
148
|
var events_js_2 = require("./resources/events.js");
|
|
108
149
|
Object.defineProperty(exports, "Events", { enumerable: true, get: function () { return events_js_2.Events; } });
|
|
109
150
|
var test_helpers_js_2 = require("./resources/test-helpers.js");
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,2CAA4D;AAC5D,uEAA+D;AAC/D,mEAA2D;AAC3D,iEAA0D;AAC1D,uDAAgD;AAChD,2EAAmE;AACnE,2DAAoD;AACpD,qDAA8C;AAC9C,iEAAyD;AACzD,+CAA0E;AAG1E,MAAa,KAAK;IACP,cAAc,CAAgB;IAC9B,YAAY,CAAc;IAC1B,YAAY,CAAc;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/liste.d.ts
CHANGED
|
@@ -26,6 +26,16 @@ export interface ListeBrute<T> {
|
|
|
26
26
|
export declare function normaliserListe<T>(brut: ListeBrute<T>): ListResult<T>;
|
|
27
27
|
/** Ce qui est commun aux six collections. */
|
|
28
28
|
export interface ListParams {
|
|
29
|
+
/**
|
|
30
|
+
* Développe des références : le champ porte l'objet complet au lieu de
|
|
31
|
+
* son seul identifiant, qui reste servi.
|
|
32
|
+
*
|
|
33
|
+
* Profondeur maximale 2. Un chemin inconnu ou trop profond est refusé
|
|
34
|
+
* en 400 : un expand sans borne est une attaque par amplification.
|
|
35
|
+
*
|
|
36
|
+
* @example ['transaction', 'transaction.payment_link']
|
|
37
|
+
*/
|
|
38
|
+
expand?: string[];
|
|
29
39
|
/** Entre 1 et 100. Défaut 25. Une valeur hors bornes est refusée en 400. */
|
|
30
40
|
limit?: number;
|
|
31
41
|
/**
|
|
@@ -50,5 +60,5 @@ export interface ListParams {
|
|
|
50
60
|
offset?: number;
|
|
51
61
|
}
|
|
52
62
|
/** Traduit les paramètres communs en chaîne de requête. */
|
|
53
|
-
export declare function parametresListe(params: ListParams): Record<string, string | number | boolean | undefined>;
|
|
63
|
+
export declare function parametresListe(params: ListParams): Record<string, string | number | boolean | readonly string[] | undefined>;
|
|
54
64
|
//# sourceMappingURL=liste.d.ts.map
|
package/dist/cjs/liste.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"liste.d.ts","sourceRoot":"","sources":["../../src/liste.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE5C,0EAA0E;AAC1E,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,IAAI,CAAC,EAAE,CAAC,EAAE,CAAA;IACV,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAGrE;AAED,6CAA6C;AAC7C,MAAM,WAAW,UAAU;IACzB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,2DAA2D;AAC3D,wBAAgB,eAAe,CAC7B,MAAM,EAAE,UAAU,GACjB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"liste.d.ts","sourceRoot":"","sources":["../../src/liste.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE5C,0EAA0E;AAC1E,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,IAAI,CAAC,EAAE,CAAC,EAAE,CAAA;IACV,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAGrE;AAED,6CAA6C;AAC7C,MAAM,WAAW,UAAU;IACzB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,2DAA2D;AAC3D,wBAAgB,eAAe,CAC7B,MAAM,EAAE,UAAU,GACjB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC,CAU3E"}
|
package/dist/cjs/liste.js
CHANGED
|
@@ -31,6 +31,9 @@ function parametresListe(params) {
|
|
|
31
31
|
starting_after: params.startingAfter,
|
|
32
32
|
ending_before: params.endingBefore,
|
|
33
33
|
offset: params.offset,
|
|
34
|
+
// Émis sous `expand[]`, la forme canonique. Le client sérialise les
|
|
35
|
+
// tableaux ainsi ; c'est lui qui ajoute les crochets.
|
|
36
|
+
expand: params.expand,
|
|
34
37
|
};
|
|
35
38
|
}
|
|
36
39
|
//# sourceMappingURL=liste.js.map
|
package/dist/cjs/liste.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"liste.js","sourceRoot":"","sources":["../../src/liste.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;AAWH,0CAGC;
|
|
1
|
+
{"version":3,"file":"liste.js","sourceRoot":"","sources":["../../src/liste.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;AAWH,0CAGC;AAuCD,0CAYC;AAtDD,SAAgB,eAAe,CAAI,IAAmB;IACpD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,IAAI,KAAK,CAAA;IACrD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAA;AACrE,CAAC;AAsCD,2DAA2D;AAC3D,SAAgB,eAAe,CAC7B,MAAkB;IAElB,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,cAAc,EAAE,MAAM,CAAC,aAAa;QACpC,aAAa,EAAE,MAAM,CAAC,YAAY;QAClC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,oEAAoE;QACpE,sDAAsD;QACtD,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { TupayClient } from '../client.js';
|
|
2
|
+
import type { CheckoutCustomerMatch, CheckoutSession, CheckoutSessionStatus, ListResult } from '../types.js';
|
|
3
|
+
import { type ListParams } from '../liste.js';
|
|
4
|
+
/**
|
|
5
|
+
* Une ligne du récapitulatif affiché au client.
|
|
6
|
+
*
|
|
7
|
+
* `price` **ou** `amountXpf`, exactement l'un des deux. Avec `price`, le
|
|
8
|
+
* libellé vient du tarif — passer `description` en plus est refusé.
|
|
9
|
+
*/
|
|
10
|
+
export type CheckoutLineItem = {
|
|
11
|
+
/** Tarif du catalogue — `<uuid>` ou `price_<uuid>`. */
|
|
12
|
+
price: string;
|
|
13
|
+
quantity?: number;
|
|
14
|
+
description?: never;
|
|
15
|
+
amountXpf?: never;
|
|
16
|
+
} | {
|
|
17
|
+
description: string;
|
|
18
|
+
/** Entier XPF. Le franc pacifique n'a pas de centimes. */
|
|
19
|
+
amountXpf: number;
|
|
20
|
+
quantity?: number;
|
|
21
|
+
price?: never;
|
|
22
|
+
};
|
|
23
|
+
export interface CreateCheckoutSessionParams {
|
|
24
|
+
lineItems: CheckoutLineItem[];
|
|
25
|
+
/** Où renvoyer le client une fois payé. HTTPS exigé en mode live. */
|
|
26
|
+
successUrl: string;
|
|
27
|
+
cancelUrl?: string;
|
|
28
|
+
/** Entre 30 et 1440. Défaut : 1440 (24 h). */
|
|
29
|
+
expiresInMinutes?: number;
|
|
30
|
+
/** Fiche client — `<uuid>` ou `cus_<uuid>`. */
|
|
31
|
+
customer?: string;
|
|
32
|
+
/**
|
|
33
|
+
* Constitue votre fichier client tout seul : au règlement, la fiche
|
|
34
|
+
* est retrouvée ou créée, et le résultat est lisible dans
|
|
35
|
+
* `customerMatch`. Ignoré si `customer` est fourni.
|
|
36
|
+
*/
|
|
37
|
+
customerEmail?: string;
|
|
38
|
+
metadata?: Record<string, string>;
|
|
39
|
+
/** Omise, le SDK en génère une (UUID v4) : la requête devient rejouable. */
|
|
40
|
+
idempotencyKey?: string;
|
|
41
|
+
}
|
|
42
|
+
export interface ListCheckoutSessionsParams extends ListParams {
|
|
43
|
+
status?: CheckoutSessionStatus;
|
|
44
|
+
/**
|
|
45
|
+
* `'ambiguous'` est la liste à ouvrir pour réconcilier : plusieurs
|
|
46
|
+
* fiches portaient l'email, une neuve a été créée.
|
|
47
|
+
*/
|
|
48
|
+
customerMatch?: CheckoutCustomerMatch;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Les pages de paiement hébergées par Tupay.
|
|
52
|
+
*
|
|
53
|
+
* Vous n'affichez ni formulaire ni montant : la session porte les deux,
|
|
54
|
+
* et vous n'avez qu'à rediriger.
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* const session = await tupay.checkoutSessions.create({
|
|
58
|
+
* lineItems: [{ price: tarif.id, quantity: 2 }],
|
|
59
|
+
* successUrl: 'https://boutique.pf/merci',
|
|
60
|
+
* cancelUrl: 'https://boutique.pf/panier',
|
|
61
|
+
* })
|
|
62
|
+
* redirect(session.url)
|
|
63
|
+
*/
|
|
64
|
+
export declare class CheckoutSessions {
|
|
65
|
+
private readonly client;
|
|
66
|
+
constructor(client: TupayClient);
|
|
67
|
+
/**
|
|
68
|
+
* Ouvre une session. **Le total est figé maintenant** : modifier ou
|
|
69
|
+
* désactiver un tarif ensuite ne change pas ce que la page affiche.
|
|
70
|
+
*
|
|
71
|
+
* Un tarif désactivé lève une `TupayConflictError` — il ne sert plus à
|
|
72
|
+
* composer de nouvelles offres.
|
|
73
|
+
*/
|
|
74
|
+
create(params: CreateCheckoutSessionParams): Promise<CheckoutSession>;
|
|
75
|
+
/**
|
|
76
|
+
* L'état à jour d'une session.
|
|
77
|
+
*
|
|
78
|
+
* C'est cette lecture qui **matérialise l'expiration** : une session
|
|
79
|
+
* dont l'échéance est passée est rendue `expired`, et l'est désormais
|
|
80
|
+
* pour tout le monde. `list()` ne le fait pas — une liste n'écrit pas.
|
|
81
|
+
*/
|
|
82
|
+
retrieve(id: string): Promise<CheckoutSession>;
|
|
83
|
+
list(params?: ListCheckoutSessionsParams): Promise<ListResult<CheckoutSession>>;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=checkout-sessions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkout-sessions.d.ts","sourceRoot":"","sources":["../../../src/resources/checkout-sessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EACV,qBAAqB,EACrB,eAAe,EACf,qBAAqB,EACrB,UAAU,EACX,MAAM,aAAa,CAAA;AACpB,OAAO,EAIL,KAAK,UAAU,EAChB,MAAM,aAAa,CAAA;AAEpB;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GACxB;IACE,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,KAAK,CAAA;IACnB,SAAS,CAAC,EAAE,KAAK,CAAA;CAClB,GACD;IACE,WAAW,EAAE,MAAM,CAAA;IACnB,0DAA0D;IAC1D,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAAA;AAEL,MAAM,WAAW,2BAA2B;IAC1C,SAAS,EAAE,gBAAgB,EAAE,CAAA;IAC7B,qEAAqE;IACrE,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,8CAA8C;IAC9C,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,4EAA4E;IAC5E,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,0BAA2B,SAAQ,UAAU;IAC5D,MAAM,CAAC,EAAE,qBAAqB,CAAA;IAC9B;;;OAGG;IACH,aAAa,CAAC,EAAE,qBAAqB,CAAA;CACtC;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,WAAW;IAEhD;;;;;;OAMG;IACG,MAAM,CAAC,MAAM,EAAE,2BAA2B,GAAG,OAAO,CAAC,eAAe,CAAC;IAW3E;;;;;;OAMG;IACG,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAQ9C,IAAI,CACR,MAAM,GAAE,0BAA+B,GACtC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;CAaxC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CheckoutSessions = void 0;
|
|
4
|
+
const client_js_1 = require("../client.js");
|
|
5
|
+
const liste_js_1 = require("../liste.js");
|
|
6
|
+
/**
|
|
7
|
+
* Les pages de paiement hébergées par Tupay.
|
|
8
|
+
*
|
|
9
|
+
* Vous n'affichez ni formulaire ni montant : la session porte les deux,
|
|
10
|
+
* et vous n'avez qu'à rediriger.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* const session = await tupay.checkoutSessions.create({
|
|
14
|
+
* lineItems: [{ price: tarif.id, quantity: 2 }],
|
|
15
|
+
* successUrl: 'https://boutique.pf/merci',
|
|
16
|
+
* cancelUrl: 'https://boutique.pf/panier',
|
|
17
|
+
* })
|
|
18
|
+
* redirect(session.url)
|
|
19
|
+
*/
|
|
20
|
+
class CheckoutSessions {
|
|
21
|
+
client;
|
|
22
|
+
constructor(client) {
|
|
23
|
+
this.client = client;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Ouvre une session. **Le total est figé maintenant** : modifier ou
|
|
27
|
+
* désactiver un tarif ensuite ne change pas ce que la page affiche.
|
|
28
|
+
*
|
|
29
|
+
* Un tarif désactivé lève une `TupayConflictError` — il ne sert plus à
|
|
30
|
+
* composer de nouvelles offres.
|
|
31
|
+
*/
|
|
32
|
+
async create(params) {
|
|
33
|
+
const { idempotencyKey, ...body } = params;
|
|
34
|
+
const { data } = await this.client.request({
|
|
35
|
+
method: 'POST',
|
|
36
|
+
path: '/checkout-sessions',
|
|
37
|
+
body,
|
|
38
|
+
idempotencyKey: idempotencyKey ?? client_js_1.TupayClient.idempotencyKey(),
|
|
39
|
+
});
|
|
40
|
+
return data;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* L'état à jour d'une session.
|
|
44
|
+
*
|
|
45
|
+
* C'est cette lecture qui **matérialise l'expiration** : une session
|
|
46
|
+
* dont l'échéance est passée est rendue `expired`, et l'est désormais
|
|
47
|
+
* pour tout le monde. `list()` ne le fait pas — une liste n'écrit pas.
|
|
48
|
+
*/
|
|
49
|
+
async retrieve(id) {
|
|
50
|
+
const { data } = await this.client.request({
|
|
51
|
+
method: 'GET',
|
|
52
|
+
path: `/checkout-sessions/${encodeURIComponent(id)}`,
|
|
53
|
+
});
|
|
54
|
+
return data;
|
|
55
|
+
}
|
|
56
|
+
async list(params = {}) {
|
|
57
|
+
return (0, liste_js_1.normaliserListe)(await this.client.request({
|
|
58
|
+
method: 'GET',
|
|
59
|
+
path: '/checkout-sessions',
|
|
60
|
+
query: {
|
|
61
|
+
...(0, liste_js_1.parametresListe)(params),
|
|
62
|
+
status: params.status,
|
|
63
|
+
customerMatch: params.customerMatch,
|
|
64
|
+
},
|
|
65
|
+
}));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
exports.CheckoutSessions = CheckoutSessions;
|
|
69
|
+
//# sourceMappingURL=checkout-sessions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkout-sessions.js","sourceRoot":"","sources":["../../../src/resources/checkout-sessions.ts"],"names":[],"mappings":";;;AAAA,4CAA0C;AAO1C,0CAKoB;AAqDpB;;;;;;;;;;;;;GAaG;AACH,MAAa,gBAAgB;IACE;IAA7B,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IAEpD;;;;;;OAMG;IACH,KAAK,CAAC,MAAM,CAAC,MAAmC;QAC9C,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAA;QAC1C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAA4B;YACpE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,oBAAoB;YAC1B,IAAI;YACJ,cAAc,EAAE,cAAc,IAAI,uBAAW,CAAC,cAAc,EAAE;SAC/D,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,QAAQ,CAAC,EAAU;QACvB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAA4B;YACpE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,sBAAsB,kBAAkB,CAAC,EAAE,CAAC,EAAE;SACrD,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,IAAI,CACR,SAAqC,EAAE;QAEvC,OAAO,IAAA,0BAAe,EACpB,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAA8B;YACrD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,oBAAoB;YAC1B,KAAK,EAAE;gBACL,GAAG,IAAA,0BAAe,EAAC,MAAM,CAAC;gBAC1B,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,aAAa,EAAE,MAAM,CAAC,aAAa;aACpC;SACF,CAAC,CACH,CAAA;IACH,CAAC;CACF;AAnDD,4CAmDC"}
|