tupay 0.9.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/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/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/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/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/esm/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/esm/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/esm/errors.js
CHANGED
|
@@ -1,21 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Hiérarchie d'erreurs du SDK.
|
|
3
|
-
*
|
|
4
|
-
* Toutes héritent de `TupayError` : un `catch (err)` unique suffit, et
|
|
5
|
-
* `err instanceof TupayRateLimitError` permet d'affiner si besoin.
|
|
6
|
-
*
|
|
7
|
-
* `code` est le code machine renvoyé par l'API (`validation_error`,
|
|
8
|
-
* `livemode_mismatch`, …). C'est lui qu'il faut tester — le `message`
|
|
9
|
-
* est en français, destiné à un humain, et peut changer sans préavis.
|
|
10
|
-
*
|
|
11
|
-
* `type` est la CLASSE de l'erreur : `invalid_request`, `authentication`,
|
|
12
|
-
* `permission`, `not_found`, `conflict`, `idempotency`, `rate_limit`,
|
|
13
|
-
* `provider`, `api`. Elle permet de traiter une famille entière sans
|
|
14
|
-
* énumérer chaque code, et c'est elle qui choisit la sous-classe
|
|
15
|
-
* ci-dessous. Retirer ou renommer un code est un changement cassant,
|
|
16
|
-
* réservé à une version datée ; en ajouter un ne l'est pas, et un code
|
|
17
|
-
* inconnu se traite par sa classe.
|
|
18
|
-
*/
|
|
19
1
|
export class TupayError extends Error {
|
|
20
2
|
/** Code machine stable renvoyé par l'API. */
|
|
21
3
|
code;
|
|
@@ -84,6 +66,40 @@ export class TupaySignatureVerificationError extends TupayError {
|
|
|
84
66
|
super(message, { code: 'signature_verification_failed' });
|
|
85
67
|
}
|
|
86
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* 402 — la banque a REFUSÉ le débit d'une carte enregistrée.
|
|
71
|
+
*
|
|
72
|
+
* Distincte de `TupayBaasError`, dont elle hérite : celle-ci dit « le
|
|
73
|
+
* prestataire n'a pas répondu », un incident dont on se relève en
|
|
74
|
+
* retentant. Celle-là dit « il a répondu, et la réponse est non ».
|
|
75
|
+
* Retenter à l'identique reproduira le refus.
|
|
76
|
+
*
|
|
77
|
+
* ⚠️ `failureCode === 'authentication_required'` n'est **pas** un refus
|
|
78
|
+
* bancaire : le porteur est solvable, il lui manque une authentification
|
|
79
|
+
* forte. Ramenez-le devant son écran plutôt que de lui demander une
|
|
80
|
+
* autre carte.
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* try {
|
|
84
|
+
* await tupay.paymentIntents.create({ …, offSession: true })
|
|
85
|
+
* } catch (err) {
|
|
86
|
+
* if (err instanceof TupayPaymentDeclinedError) {
|
|
87
|
+
* if (err.failureCode === 'authentication_required') ramenerLeClient()
|
|
88
|
+
* else demanderUneAutreCarte(err.message)
|
|
89
|
+
* }
|
|
90
|
+
* }
|
|
91
|
+
*/
|
|
92
|
+
export class TupayPaymentDeclinedError extends TupayBaasError {
|
|
93
|
+
/** La raison, en code machine stable. */
|
|
94
|
+
failureCode;
|
|
95
|
+
/** La transaction refusée. Elle EXISTE, et porte la même raison. */
|
|
96
|
+
transactionId;
|
|
97
|
+
constructor(message, options) {
|
|
98
|
+
super(message, options);
|
|
99
|
+
this.failureCode = options.failureCode;
|
|
100
|
+
this.transactionId = options.transactionId;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
87
103
|
/** La classe d'erreur de l'API vers la sous-classe du SDK. */
|
|
88
104
|
const PAR_TYPE = {
|
|
89
105
|
invalid_request: TupayValidationError,
|
|
@@ -114,6 +130,19 @@ export function errorFromResponse(status, body, requestId) {
|
|
|
114
130
|
const code = body?.error ?? 'server_error';
|
|
115
131
|
const message = body?.message ?? `Requête échouée (HTTP ${status}).`;
|
|
116
132
|
const options = { code, type: body?.type, statusCode: status, requestId };
|
|
133
|
+
// ── Le CODE l'emporte sur le type, pour ce cas-là ────────────────
|
|
134
|
+
// `payment_declined` porte le type `provider`, comme `bad_gateway` :
|
|
135
|
+
// dans les deux cas la faute est chez le prestataire. Mais leurs
|
|
136
|
+
// reprises sont opposées — retenter pour l'un, ne surtout pas pour
|
|
137
|
+
// l'autre — et un client qui ne peut pas les distinguer boucle sur
|
|
138
|
+
// une carte qui ne passera jamais.
|
|
139
|
+
if (code === 'payment_declined') {
|
|
140
|
+
return new TupayPaymentDeclinedError(message, {
|
|
141
|
+
...options,
|
|
142
|
+
failureCode: body?.failureCode,
|
|
143
|
+
transactionId: body?.transactionId,
|
|
144
|
+
});
|
|
145
|
+
}
|
|
117
146
|
const parType = body?.type ? PAR_TYPE[body.type] : undefined;
|
|
118
147
|
if (parType)
|
|
119
148
|
return new parType(message, options);
|
package/dist/esm/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/esm/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/esm/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/esm/index.js
CHANGED
|
@@ -16,6 +16,13 @@
|
|
|
16
16
|
import { TupayClient } 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';
|
|
@@ -27,6 +34,18 @@ export class Tupay {
|
|
|
27
34
|
paymentIntents;
|
|
28
35
|
paymentLinks;
|
|
29
36
|
transactions;
|
|
37
|
+
/** Le carnet d'adresses : reconnaître une personne d'un paiement à l'autre. */
|
|
38
|
+
customers;
|
|
39
|
+
/** Les cartes enregistrées. Tupay ne reçoit jamais de numéro de carte. */
|
|
40
|
+
paymentMethods;
|
|
41
|
+
/** Enregistrer une carte sans débiter, pour prélever plus tard. */
|
|
42
|
+
setupIntents;
|
|
43
|
+
/** Le catalogue : ce que vous vendez. */
|
|
44
|
+
products;
|
|
45
|
+
/** Les prix de votre catalogue. Immuables dès leur création. */
|
|
46
|
+
checkoutSessions;
|
|
47
|
+
receipts;
|
|
48
|
+
prices;
|
|
30
49
|
refunds;
|
|
31
50
|
webhookEndpoints;
|
|
32
51
|
merchants;
|
|
@@ -43,6 +62,13 @@ export class Tupay {
|
|
|
43
62
|
this.paymentIntents = new PaymentIntents(this.#client);
|
|
44
63
|
this.paymentLinks = new PaymentLinks(this.#client);
|
|
45
64
|
this.transactions = new Transactions(this.#client);
|
|
65
|
+
this.customers = new Customers(this.#client);
|
|
66
|
+
this.paymentMethods = new PaymentMethods(this.#client);
|
|
67
|
+
this.setupIntents = new SetupIntents(this.#client);
|
|
68
|
+
this.products = new Products(this.#client);
|
|
69
|
+
this.checkoutSessions = new CheckoutSessions(this.#client);
|
|
70
|
+
this.receipts = new Receipts(this.#client);
|
|
71
|
+
this.prices = new Prices(this.#client);
|
|
46
72
|
this.refunds = new Refunds(this.#client);
|
|
47
73
|
this.webhookEndpoints = new WebhookEndpoints(this.#client);
|
|
48
74
|
this.merchants = new Merchants(this.#client);
|
|
@@ -84,7 +110,14 @@ export class Tupay {
|
|
|
84
110
|
export default Tupay;
|
|
85
111
|
export { TupayClient } from './client.js';
|
|
86
112
|
export { constructEvent, DEFAULT_TOLERANCE_SECONDS } from './webhooks.js';
|
|
87
|
-
export { TupayError, TupayAuthenticationError, TupayPermissionError, TupayNotFoundError, TupayValidationError, TupayConflictError, TupayIdempotencyError, TupayRateLimitError, TupayApiError, TupayBaasError, TupayConnectionError, TupaySignatureVerificationError, } from './errors.js';
|
|
113
|
+
export { TupayError, TupayAuthenticationError, TupayPermissionError, TupayNotFoundError, TupayValidationError, TupayConflictError, TupayIdempotencyError, TupayRateLimitError, TupayApiError, TupayBaasError, TupayPaymentDeclinedError, TupayConnectionError, TupaySignatureVerificationError, } from './errors.js';
|
|
114
|
+
export { Customers } from './resources/customers.js';
|
|
115
|
+
export { PaymentMethods } from './resources/payment-methods.js';
|
|
116
|
+
export { SetupIntents } from './resources/setup-intents.js';
|
|
117
|
+
export { Products } from './resources/products.js';
|
|
118
|
+
export { Prices } from './resources/prices.js';
|
|
119
|
+
export { CheckoutSessions } from './resources/checkout-sessions.js';
|
|
120
|
+
export { Receipts } from './resources/receipts.js';
|
|
88
121
|
export { Events } from './resources/events.js';
|
|
89
122
|
export { TestHelpers } from './resources/test-helpers.js';
|
|
90
123
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,WAAW,EAAqB,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,EAAE,cAAc,EAA8B,MAAM,eAAe,CAAA;AAG1E,MAAM,OAAO,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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"}
|
|
@@ -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,65 @@
|
|
|
1
|
+
import { TupayClient } from '../client.js';
|
|
2
|
+
import { normaliserListe, parametresListe, } from '../liste.js';
|
|
3
|
+
/**
|
|
4
|
+
* Les pages de paiement hébergées par Tupay.
|
|
5
|
+
*
|
|
6
|
+
* Vous n'affichez ni formulaire ni montant : la session porte les deux,
|
|
7
|
+
* et vous n'avez qu'à rediriger.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* const session = await tupay.checkoutSessions.create({
|
|
11
|
+
* lineItems: [{ price: tarif.id, quantity: 2 }],
|
|
12
|
+
* successUrl: 'https://boutique.pf/merci',
|
|
13
|
+
* cancelUrl: 'https://boutique.pf/panier',
|
|
14
|
+
* })
|
|
15
|
+
* redirect(session.url)
|
|
16
|
+
*/
|
|
17
|
+
export class CheckoutSessions {
|
|
18
|
+
client;
|
|
19
|
+
constructor(client) {
|
|
20
|
+
this.client = client;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Ouvre une session. **Le total est figé maintenant** : modifier ou
|
|
24
|
+
* désactiver un tarif ensuite ne change pas ce que la page affiche.
|
|
25
|
+
*
|
|
26
|
+
* Un tarif désactivé lève une `TupayConflictError` — il ne sert plus à
|
|
27
|
+
* composer de nouvelles offres.
|
|
28
|
+
*/
|
|
29
|
+
async create(params) {
|
|
30
|
+
const { idempotencyKey, ...body } = params;
|
|
31
|
+
const { data } = await this.client.request({
|
|
32
|
+
method: 'POST',
|
|
33
|
+
path: '/checkout-sessions',
|
|
34
|
+
body,
|
|
35
|
+
idempotencyKey: idempotencyKey ?? TupayClient.idempotencyKey(),
|
|
36
|
+
});
|
|
37
|
+
return data;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* L'état à jour d'une session.
|
|
41
|
+
*
|
|
42
|
+
* C'est cette lecture qui **matérialise l'expiration** : une session
|
|
43
|
+
* dont l'échéance est passée est rendue `expired`, et l'est désormais
|
|
44
|
+
* pour tout le monde. `list()` ne le fait pas — une liste n'écrit pas.
|
|
45
|
+
*/
|
|
46
|
+
async retrieve(id) {
|
|
47
|
+
const { data } = await this.client.request({
|
|
48
|
+
method: 'GET',
|
|
49
|
+
path: `/checkout-sessions/${encodeURIComponent(id)}`,
|
|
50
|
+
});
|
|
51
|
+
return data;
|
|
52
|
+
}
|
|
53
|
+
async list(params = {}) {
|
|
54
|
+
return normaliserListe(await this.client.request({
|
|
55
|
+
method: 'GET',
|
|
56
|
+
path: '/checkout-sessions',
|
|
57
|
+
query: {
|
|
58
|
+
...parametresListe(params),
|
|
59
|
+
status: params.status,
|
|
60
|
+
customerMatch: params.customerMatch,
|
|
61
|
+
},
|
|
62
|
+
}));
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
//# 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,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAO1C,OAAO,EACL,eAAe,EACf,eAAe,GAGhB,MAAM,aAAa,CAAA;AAqDpB;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,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,WAAW,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,eAAe,CACpB,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAA8B;YACrD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,oBAAoB;YAC1B,KAAK,EAAE;gBACL,GAAG,eAAe,CAAC,MAAM,CAAC;gBAC1B,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,aAAa,EAAE,MAAM,CAAC,aAAa;aACpC;SACF,CAAC,CACH,CAAA;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { TupayClient } from '../client.js';
|
|
2
|
+
import type { Customer, ListResult } from '../types.js';
|
|
3
|
+
import { type ListParams } from '../liste.js';
|
|
4
|
+
export interface CreateCustomerParams {
|
|
5
|
+
/**
|
|
6
|
+
* Clé d'idempotence. Omise, le SDK en génère une (UUID v4) : la
|
|
7
|
+
* requête devient rejouable, et une reprise après timeout ne crée pas
|
|
8
|
+
* une seconde fiche pour la même personne.
|
|
9
|
+
*/
|
|
10
|
+
idempotencyKey?: string;
|
|
11
|
+
email?: string;
|
|
12
|
+
name?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Conservé tel que vous l'écrivez : ni normalisé, ni validé au-delà de
|
|
15
|
+
* sa longueur. Un marchand de Papeete enregistre aussi des numéros
|
|
16
|
+
* métropolitains ou néo-zélandais, qu'une validation stricte
|
|
17
|
+
* refuserait.
|
|
18
|
+
*/
|
|
19
|
+
phone?: string;
|
|
20
|
+
metadata?: Record<string, string>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* `null` EFFACE le champ, l'omettre le laisse inchangé.
|
|
24
|
+
*
|
|
25
|
+
* `undefined` et `null` disent donc deux choses différentes, et le SDK
|
|
26
|
+
* ne les confond pas : `JSON.stringify` retire les `undefined` du corps,
|
|
27
|
+
* et garde les `null`. Une chaîne vide, elle, est refusée par l'API.
|
|
28
|
+
*/
|
|
29
|
+
export interface UpdateCustomerParams {
|
|
30
|
+
email?: string | null;
|
|
31
|
+
name?: string | null;
|
|
32
|
+
phone?: string | null;
|
|
33
|
+
metadata?: Record<string, string | null> | null;
|
|
34
|
+
}
|
|
35
|
+
export interface ListCustomersParams extends ListParams {
|
|
36
|
+
/**
|
|
37
|
+
* Ne rend que les clients portant cette adresse, comparée sans tenir
|
|
38
|
+
* compte de la casse.
|
|
39
|
+
*
|
|
40
|
+
* Tupay n'impose aucune unicité sur l'email — un couple partage une
|
|
41
|
+
* boîte, une entreprise a un `contact@`. Ce filtre rend donc une
|
|
42
|
+
* collection, pas un objet.
|
|
43
|
+
*/
|
|
44
|
+
email?: string;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Le carnet d'adresses du marchand.
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* const client = await tupay.customers.create({
|
|
51
|
+
* email: 'teiva@exemple.pf',
|
|
52
|
+
* name: 'Teiva Tehei',
|
|
53
|
+
* })
|
|
54
|
+
*/
|
|
55
|
+
export declare class Customers {
|
|
56
|
+
private readonly client;
|
|
57
|
+
constructor(client: TupayClient);
|
|
58
|
+
create(params?: CreateCustomerParams): Promise<Customer>;
|
|
59
|
+
/**
|
|
60
|
+
* Rend aussi les clients supprimés, qui portent alors `deleted: true`.
|
|
61
|
+
* Vos paiements passés les désignent : une fiche introuvable rendrait
|
|
62
|
+
* votre historique illisible.
|
|
63
|
+
*/
|
|
64
|
+
retrieve(id: string): Promise<Customer>;
|
|
65
|
+
/** Les clients supprimés ne figurent pas dans la liste. */
|
|
66
|
+
list(params?: ListCustomersParams): Promise<ListResult<Customer>>;
|
|
67
|
+
update(id: string, params: UpdateCustomerParams): Promise<Customer>;
|
|
68
|
+
/**
|
|
69
|
+
* Marque la fiche supprimée **sans rien effacer**. Elle quitte la
|
|
70
|
+
* liste et refuse toute modification, mais reste lisible.
|
|
71
|
+
*
|
|
72
|
+
* `del` et non `delete` : `delete` est un mot réservé de JavaScript.
|
|
73
|
+
* Même contrainte que `webhookEndpoints.del`.
|
|
74
|
+
*
|
|
75
|
+
* Rejouable : un second appel rend le même objet, avec la même date de
|
|
76
|
+
* suppression.
|
|
77
|
+
*/
|
|
78
|
+
del(id: string): Promise<Customer>;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=customers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"customers.d.ts","sourceRoot":"","sources":["../../../src/resources/customers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACvD,OAAO,EAIL,KAAK,UAAU,EAChB,MAAM,aAAa,CAAA;AAEpB,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAClC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAA;CAChD;AAED,MAAM,WAAW,mBAAoB,SAAQ,UAAU;IACrD;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;;GAQG;AACH,qBAAa,SAAS;IACR,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,WAAW;IAE1C,MAAM,CAAC,MAAM,GAAE,oBAAyB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAWlE;;;;OAIG;IACG,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAQ7C,2DAA2D;IACrD,IAAI,CAAC,MAAM,GAAE,mBAAwB,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAUrE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,QAAQ,CAAC;IASzE;;;;;;;;;OASG;IACG,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;CAOzC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { TupayClient } from '../client.js';
|
|
2
|
+
import { normaliserListe, parametresListe, } from '../liste.js';
|
|
3
|
+
/**
|
|
4
|
+
* Le carnet d'adresses du marchand.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* const client = await tupay.customers.create({
|
|
8
|
+
* email: 'teiva@exemple.pf',
|
|
9
|
+
* name: 'Teiva Tehei',
|
|
10
|
+
* })
|
|
11
|
+
*/
|
|
12
|
+
export class Customers {
|
|
13
|
+
client;
|
|
14
|
+
constructor(client) {
|
|
15
|
+
this.client = client;
|
|
16
|
+
}
|
|
17
|
+
async create(params = {}) {
|
|
18
|
+
const { idempotencyKey, ...body } = params;
|
|
19
|
+
const { data } = await this.client.request({
|
|
20
|
+
method: 'POST',
|
|
21
|
+
path: '/customers',
|
|
22
|
+
body,
|
|
23
|
+
idempotencyKey: idempotencyKey ?? TupayClient.idempotencyKey(),
|
|
24
|
+
});
|
|
25
|
+
return data;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Rend aussi les clients supprimés, qui portent alors `deleted: true`.
|
|
29
|
+
* Vos paiements passés les désignent : une fiche introuvable rendrait
|
|
30
|
+
* votre historique illisible.
|
|
31
|
+
*/
|
|
32
|
+
async retrieve(id) {
|
|
33
|
+
const { data } = await this.client.request({
|
|
34
|
+
method: 'GET',
|
|
35
|
+
path: `/customers/${encodeURIComponent(id)}`,
|
|
36
|
+
});
|
|
37
|
+
return data;
|
|
38
|
+
}
|
|
39
|
+
/** Les clients supprimés ne figurent pas dans la liste. */
|
|
40
|
+
async list(params = {}) {
|
|
41
|
+
return normaliserListe(await this.client.request({
|
|
42
|
+
method: 'GET',
|
|
43
|
+
path: '/customers',
|
|
44
|
+
query: { ...parametresListe(params), email: params.email },
|
|
45
|
+
}));
|
|
46
|
+
}
|
|
47
|
+
async update(id, params) {
|
|
48
|
+
const { data } = await this.client.request({
|
|
49
|
+
method: 'PATCH',
|
|
50
|
+
path: `/customers/${encodeURIComponent(id)}`,
|
|
51
|
+
body: params,
|
|
52
|
+
});
|
|
53
|
+
return data;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Marque la fiche supprimée **sans rien effacer**. Elle quitte la
|
|
57
|
+
* liste et refuse toute modification, mais reste lisible.
|
|
58
|
+
*
|
|
59
|
+
* `del` et non `delete` : `delete` est un mot réservé de JavaScript.
|
|
60
|
+
* Même contrainte que `webhookEndpoints.del`.
|
|
61
|
+
*
|
|
62
|
+
* Rejouable : un second appel rend le même objet, avec la même date de
|
|
63
|
+
* suppression.
|
|
64
|
+
*/
|
|
65
|
+
async del(id) {
|
|
66
|
+
const { data } = await this.client.request({
|
|
67
|
+
method: 'DELETE',
|
|
68
|
+
path: `/customers/${encodeURIComponent(id)}`,
|
|
69
|
+
});
|
|
70
|
+
return data;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=customers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"customers.js","sourceRoot":"","sources":["../../../src/resources/customers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE1C,OAAO,EACL,eAAe,EACf,eAAe,GAGhB,MAAM,aAAa,CAAA;AA+CpB;;;;;;;;GAQG;AACH,MAAM,OAAO,SAAS;IACS;IAA7B,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IAEpD,KAAK,CAAC,MAAM,CAAC,SAA+B,EAAE;QAC5C,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAA;QAC1C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAqB;YAC7D,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,YAAY;YAClB,IAAI;YACJ,cAAc,EAAE,cAAc,IAAI,WAAW,CAAC,cAAc,EAAE;SAC/D,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAAQ,CAAC,EAAU;QACvB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAqB;YAC7D,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,cAAc,kBAAkB,CAAC,EAAE,CAAC,EAAE;SAC7C,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAED,2DAA2D;IAC3D,KAAK,CAAC,IAAI,CAAC,SAA8B,EAAE;QACzC,OAAO,eAAe,CACpB,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAuB;YAC9C,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE;SAC3D,CAAC,CACH,CAAA;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,MAA4B;QACnD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAqB;YAC7D,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,cAAc,kBAAkB,CAAC,EAAE,CAAC,EAAE;YAC5C,IAAI,EAAE,MAAM;SACb,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAqB;YAC7D,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,cAAc,kBAAkB,CAAC,EAAE,CAAC,EAAE;SAC7C,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
|