tupay 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/errors.d.ts +39 -2
- package/dist/cjs/errors.d.ts.map +1 -1
- package/dist/cjs/errors.js +55 -4
- package/dist/cjs/errors.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/errors.d.ts +39 -2
- package/dist/esm/errors.d.ts.map +1 -1
- package/dist/esm/errors.js +53 -3
- package/dist/esm/errors.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/package.json +1 -1
package/dist/cjs/errors.d.ts
CHANGED
|
@@ -7,9 +7,19 @@
|
|
|
7
7
|
* `code` est le code machine renvoyé par l'API (`validation_error`,
|
|
8
8
|
* `livemode_mismatch`, …). C'est lui qu'il faut tester — le `message`
|
|
9
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.
|
|
10
18
|
*/
|
|
11
19
|
export interface TupayErrorOptions {
|
|
12
20
|
code: string;
|
|
21
|
+
/** Classe d'erreur. Absente sur une API antérieure à la story 2.4. */
|
|
22
|
+
type?: string;
|
|
13
23
|
statusCode?: number;
|
|
14
24
|
requestId?: string;
|
|
15
25
|
cause?: unknown;
|
|
@@ -17,6 +27,8 @@ export interface TupayErrorOptions {
|
|
|
17
27
|
export declare class TupayError extends Error {
|
|
18
28
|
/** Code machine stable renvoyé par l'API. */
|
|
19
29
|
readonly code: string;
|
|
30
|
+
/** Classe d'erreur. `undefined` si l'API ne l'a pas renvoyée. */
|
|
31
|
+
readonly type?: string;
|
|
20
32
|
/** Statut HTTP, absent si l'erreur est survenue avant toute réponse. */
|
|
21
33
|
readonly statusCode?: number;
|
|
22
34
|
/** Identifiant de requête, à citer au support. */
|
|
@@ -35,9 +47,23 @@ export declare class TupayNotFoundError extends TupayError {
|
|
|
35
47
|
/** 400 / 422 — corps de requête invalide. */
|
|
36
48
|
export declare class TupayValidationError extends TupayError {
|
|
37
49
|
}
|
|
38
|
-
/** 409 — état incompatible (déjà remboursé,
|
|
50
|
+
/** 409 / 422 — état incompatible (déjà remboursé, plafond atteint). */
|
|
39
51
|
export declare class TupayConflictError extends TupayError {
|
|
40
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* 409 — le refus porte sur la clé d'idempotence, pas sur la requête.
|
|
55
|
+
*
|
|
56
|
+
* Hérite de `TupayConflictError` à dessein : ces deux codes sortaient
|
|
57
|
+
* déjà en 409, et tout `catch (err) { if (err instanceof
|
|
58
|
+
* TupayConflictError) }` existant doit continuer de les attraper. La
|
|
59
|
+
* sous-classe ajoute de la précision, elle n'en retire pas.
|
|
60
|
+
*
|
|
61
|
+
* `code` distingue les deux reprises, et elles sont opposées :
|
|
62
|
+
* `idempotency_key_reuse` → changez de clé, celle-ci a servi ailleurs
|
|
63
|
+
* `idempotency_in_progress` → retentez LE MÊME appel dans un instant
|
|
64
|
+
*/
|
|
65
|
+
export declare class TupayIdempotencyError extends TupayConflictError {
|
|
66
|
+
}
|
|
41
67
|
/** 429 — 100 req/min par marchand dépassées. */
|
|
42
68
|
export declare class TupayRateLimitError extends TupayError {
|
|
43
69
|
}
|
|
@@ -57,10 +83,21 @@ export declare class TupaySignatureVerificationError extends TupayError {
|
|
|
57
83
|
}
|
|
58
84
|
/**
|
|
59
85
|
* Construit l'erreur typée correspondant à une réponse HTTP.
|
|
60
|
-
*
|
|
86
|
+
*
|
|
87
|
+
* ── `type` d'abord, statut ensuite ─────────────────────────────────
|
|
88
|
+
* Le choix se faisait sur le seul statut HTTP. C'est une règle de forme,
|
|
89
|
+
* et elle se trompait : un 422 `limit_reached` devenait une
|
|
90
|
+
* `TupayValidationError`, alors que rien n'est invalide dans la requête
|
|
91
|
+
* — c'est une place qu'il faut libérer. Un 409 `idempotency_in_progress`
|
|
92
|
+
* devenait un `TupayConflictError` générique, alors que sa reprise est
|
|
93
|
+
* l'inverse de celle d'un conflit : retenter à l'identique.
|
|
94
|
+
*
|
|
95
|
+
* Le statut reste le repli, pour une API antérieure à la story 2.4 qui
|
|
96
|
+
* ne renverrait pas encore `type`.
|
|
61
97
|
*/
|
|
62
98
|
export declare function errorFromResponse(status: number, body: {
|
|
63
99
|
error?: string;
|
|
64
100
|
message?: string;
|
|
101
|
+
type?: string;
|
|
65
102
|
} | null, requestId?: string): TupayError;
|
|
66
103
|
//# 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
|
|
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;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,EAChE,SAAS,CAAC,EAAE,MAAM,GACjB,UAAU,CA2BZ"}
|
package/dist/cjs/errors.js
CHANGED
|
@@ -8,13 +8,23 @@
|
|
|
8
8
|
* `code` est le code machine renvoyé par l'API (`validation_error`,
|
|
9
9
|
* `livemode_mismatch`, …). C'est lui qu'il faut tester — le `message`
|
|
10
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.
|
|
11
19
|
*/
|
|
12
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.TupaySignatureVerificationError = exports.TupayConnectionError = exports.TupayBaasError = exports.TupayApiError = exports.TupayRateLimitError = exports.TupayConflictError = exports.TupayValidationError = exports.TupayNotFoundError = exports.TupayPermissionError = exports.TupayAuthenticationError = exports.TupayError = void 0;
|
|
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;
|
|
14
22
|
exports.errorFromResponse = errorFromResponse;
|
|
15
23
|
class TupayError extends Error {
|
|
16
24
|
/** Code machine stable renvoyé par l'API. */
|
|
17
25
|
code;
|
|
26
|
+
/** Classe d'erreur. `undefined` si l'API ne l'a pas renvoyée. */
|
|
27
|
+
type;
|
|
18
28
|
/** Statut HTTP, absent si l'erreur est survenue avant toute réponse. */
|
|
19
29
|
statusCode;
|
|
20
30
|
/** Identifiant de requête, à citer au support. */
|
|
@@ -23,6 +33,7 @@ class TupayError extends Error {
|
|
|
23
33
|
super(message, { cause: options.cause });
|
|
24
34
|
this.name = new.target.name;
|
|
25
35
|
this.code = options.code;
|
|
36
|
+
this.type = options.type;
|
|
26
37
|
this.statusCode = options.statusCode;
|
|
27
38
|
this.requestId = options.requestId;
|
|
28
39
|
}
|
|
@@ -44,10 +55,25 @@ exports.TupayNotFoundError = TupayNotFoundError;
|
|
|
44
55
|
class TupayValidationError extends TupayError {
|
|
45
56
|
}
|
|
46
57
|
exports.TupayValidationError = TupayValidationError;
|
|
47
|
-
/** 409 — état incompatible (déjà remboursé,
|
|
58
|
+
/** 409 / 422 — état incompatible (déjà remboursé, plafond atteint). */
|
|
48
59
|
class TupayConflictError extends TupayError {
|
|
49
60
|
}
|
|
50
61
|
exports.TupayConflictError = TupayConflictError;
|
|
62
|
+
/**
|
|
63
|
+
* 409 — le refus porte sur la clé d'idempotence, pas sur la requête.
|
|
64
|
+
*
|
|
65
|
+
* Hérite de `TupayConflictError` à dessein : ces deux codes sortaient
|
|
66
|
+
* déjà en 409, et tout `catch (err) { if (err instanceof
|
|
67
|
+
* TupayConflictError) }` existant doit continuer de les attraper. La
|
|
68
|
+
* sous-classe ajoute de la précision, elle n'en retire pas.
|
|
69
|
+
*
|
|
70
|
+
* `code` distingue les deux reprises, et elles sont opposées :
|
|
71
|
+
* `idempotency_key_reuse` → changez de clé, celle-ci a servi ailleurs
|
|
72
|
+
* `idempotency_in_progress` → retentez LE MÊME appel dans un instant
|
|
73
|
+
*/
|
|
74
|
+
class TupayIdempotencyError extends TupayConflictError {
|
|
75
|
+
}
|
|
76
|
+
exports.TupayIdempotencyError = TupayIdempotencyError;
|
|
51
77
|
/** 429 — 100 req/min par marchand dépassées. */
|
|
52
78
|
class TupayRateLimitError extends TupayError {
|
|
53
79
|
}
|
|
@@ -74,14 +100,39 @@ class TupaySignatureVerificationError extends TupayError {
|
|
|
74
100
|
}
|
|
75
101
|
}
|
|
76
102
|
exports.TupaySignatureVerificationError = TupaySignatureVerificationError;
|
|
103
|
+
/** La classe d'erreur de l'API vers la sous-classe du SDK. */
|
|
104
|
+
const PAR_TYPE = {
|
|
105
|
+
invalid_request: TupayValidationError,
|
|
106
|
+
authentication: TupayAuthenticationError,
|
|
107
|
+
permission: TupayPermissionError,
|
|
108
|
+
not_found: TupayNotFoundError,
|
|
109
|
+
conflict: TupayConflictError,
|
|
110
|
+
idempotency: TupayIdempotencyError,
|
|
111
|
+
rate_limit: TupayRateLimitError,
|
|
112
|
+
provider: TupayBaasError,
|
|
113
|
+
api: TupayApiError,
|
|
114
|
+
};
|
|
77
115
|
/**
|
|
78
116
|
* Construit l'erreur typée correspondant à une réponse HTTP.
|
|
79
|
-
*
|
|
117
|
+
*
|
|
118
|
+
* ── `type` d'abord, statut ensuite ─────────────────────────────────
|
|
119
|
+
* Le choix se faisait sur le seul statut HTTP. C'est une règle de forme,
|
|
120
|
+
* et elle se trompait : un 422 `limit_reached` devenait une
|
|
121
|
+
* `TupayValidationError`, alors que rien n'est invalide dans la requête
|
|
122
|
+
* — c'est une place qu'il faut libérer. Un 409 `idempotency_in_progress`
|
|
123
|
+
* devenait un `TupayConflictError` générique, alors que sa reprise est
|
|
124
|
+
* l'inverse de celle d'un conflit : retenter à l'identique.
|
|
125
|
+
*
|
|
126
|
+
* Le statut reste le repli, pour une API antérieure à la story 2.4 qui
|
|
127
|
+
* ne renverrait pas encore `type`.
|
|
80
128
|
*/
|
|
81
129
|
function errorFromResponse(status, body, requestId) {
|
|
82
130
|
const code = body?.error ?? 'server_error';
|
|
83
131
|
const message = body?.message ?? `Requête échouée (HTTP ${status}).`;
|
|
84
|
-
const options = { code, statusCode: status, requestId };
|
|
132
|
+
const options = { code, type: body?.type, statusCode: status, requestId };
|
|
133
|
+
const parType = body?.type ? PAR_TYPE[body.type] : undefined;
|
|
134
|
+
if (parType)
|
|
135
|
+
return new parType(message, options);
|
|
85
136
|
switch (status) {
|
|
86
137
|
case 400:
|
|
87
138
|
case 422:
|
package/dist/cjs/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -72,7 +72,7 @@ export { TupayClient } from './client.js';
|
|
|
72
72
|
export type { TupayOptions, RequestOptions } from './client.js';
|
|
73
73
|
export { constructEvent, DEFAULT_TOLERANCE_SECONDS } from './webhooks.js';
|
|
74
74
|
export type { ConstructEventOptions } from './webhooks.js';
|
|
75
|
-
export { TupayError, TupayAuthenticationError, TupayPermissionError, TupayNotFoundError, TupayValidationError, TupayConflictError, TupayRateLimitError, TupayApiError, TupayBaasError, TupayConnectionError, TupaySignatureVerificationError, } from './errors.js';
|
|
75
|
+
export { TupayError, TupayAuthenticationError, TupayPermissionError, TupayNotFoundError, TupayValidationError, TupayConflictError, TupayIdempotencyError, TupayRateLimitError, TupayApiError, TupayBaasError, TupayConnectionError, TupaySignatureVerificationError, } from './errors.js';
|
|
76
76
|
export type * from './types.js';
|
|
77
77
|
export type { CreatePaymentIntentParams } from './resources/payment-intents.js';
|
|
78
78
|
export type { CreatePaymentLinkParams } from './resources/payment-links.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;IActD;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,QAAQ,CAAC,QAAQ;gCAEJ,MAAM,GAAG,MAAM,UAChB,MAAM,GAAG,IAAI,GAAG,SAAS,UACzB,MAAM,YACJ,qBAAqB,GAC9B,YAAY;MAGhB;IAED,8CAA8C;IAC9C,MAAM,CAAC,cAAc,IAAI,MAAM;CAGhC;AAED,eAAe,KAAK,CAAA;AAEpB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA;AACzE,YAAY,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAE1D,OAAO,EACL,UAAU,EACV,wBAAwB,EACxB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,+BAA+B,GAChC,MAAM,aAAa,CAAA;AAEpB,mBAAmB,YAAY,CAAA;AAE/B,YAAY,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAC/E,YAAY,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AAC3E,YAAY,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACzE,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AACnF,YAAY,EACV,2BAA2B,EAC3B,2BAA2B,EAC3B,oBAAoB,GACrB,MAAM,kCAAkC,CAAA;AACzC,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA"}
|
|
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;IActD;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,QAAQ,CAAC,QAAQ;gCAEJ,MAAM,GAAG,MAAM,UAChB,MAAM,GAAG,IAAI,GAAG,SAAS,UACzB,MAAM,YACJ,qBAAqB,GAC9B,YAAY;MAGhB;IAED,8CAA8C;IAC9C,MAAM,CAAC,cAAc,IAAI,MAAM;CAGhC;AAED,eAAe,KAAK,CAAA;AAEpB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA;AACzE,YAAY,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAE1D,OAAO,EACL,UAAU,EACV,wBAAwB,EACxB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,+BAA+B,GAChC,MAAM,aAAa,CAAA;AAEpB,mBAAmB,YAAY,CAAA;AAE/B,YAAY,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAC/E,YAAY,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AAC3E,YAAY,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACzE,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AACnF,YAAY,EACV,2BAA2B,EAC3B,2BAA2B,EAC3B,oBAAoB,GACrB,MAAM,kCAAkC,CAAA;AACzC,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
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.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.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;
|
|
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");
|
|
@@ -98,6 +98,7 @@ Object.defineProperty(exports, "TupayPermissionError", { enumerable: true, get:
|
|
|
98
98
|
Object.defineProperty(exports, "TupayNotFoundError", { enumerable: true, get: function () { return errors_js_1.TupayNotFoundError; } });
|
|
99
99
|
Object.defineProperty(exports, "TupayValidationError", { enumerable: true, get: function () { return errors_js_1.TupayValidationError; } });
|
|
100
100
|
Object.defineProperty(exports, "TupayConflictError", { enumerable: true, get: function () { return errors_js_1.TupayConflictError; } });
|
|
101
|
+
Object.defineProperty(exports, "TupayIdempotencyError", { enumerable: true, get: function () { return errors_js_1.TupayIdempotencyError; } });
|
|
101
102
|
Object.defineProperty(exports, "TupayRateLimitError", { enumerable: true, get: function () { return errors_js_1.TupayRateLimitError; } });
|
|
102
103
|
Object.defineProperty(exports, "TupayApiError", { enumerable: true, get: function () { return errors_js_1.TupayApiError; } });
|
|
103
104
|
Object.defineProperty(exports, "TupayBaasError", { enumerable: true, get: function () { return errors_js_1.TupayBaasError; } });
|
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;IAC1B,OAAO,CAAS;IAChB,gBAAgB,CAAkB;IAClC,SAAS,CAAW;IAC7B,8DAA8D;IACrD,MAAM,CAAQ;IACvB,sEAAsE;IAC7D,WAAW,CAAa;IAEjC,uEAAuE;IAC9D,QAAQ,CAAS;IAEjB,OAAO,CAAa;IAE7B,YAAY,MAAc,EAAE,UAAwB,EAAE;QACpD,IAAI,CAAC,OAAO,GAAG,IAAI,uBAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAC/C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAA;QAErC,IAAI,CAAC,cAAc,GAAG,IAAI,mCAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACtD,IAAI,CAAC,YAAY,GAAG,IAAI,+BAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAClD,IAAI,CAAC,YAAY,GAAG,IAAI,8BAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAClD,IAAI,CAAC,OAAO,GAAG,IAAI,oBAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACxC,IAAI,CAAC,gBAAgB,GAAG,IAAI,uCAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC1D,IAAI,CAAC,SAAS,GAAG,IAAI,wBAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC5C,IAAI,CAAC,MAAM,GAAG,IAAI,kBAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACtC,IAAI,CAAC,WAAW,GAAG,IAAI,6BAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAClD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACM,QAAQ,GAAG;QAClB,cAAc,CACZ,OAAwB,EACxB,MAAiC,EACjC,MAAc,EACd,OAA+B;YAE/B,OAAO,IAAA,4BAAc,EAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QACzD,CAAC;KACF,CAAA;IAED,8CAA8C;IAC9C,MAAM,CAAC,cAAc;QACnB,OAAO,uBAAW,CAAC,cAAc,EAAE,CAAA;IACrC,CAAC;CACF;AApED,sBAoEC;AAED,kBAAe,KAAK,CAAA;AAEpB,yCAAyC;AAAhC,wGAAA,WAAW,OAAA;AAEpB,6CAAyE;AAAhE,6GAAA,cAAc,OAAA;AAAE,wHAAA,yBAAyB,OAAA;AAGlD,
|
|
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;IAC1B,OAAO,CAAS;IAChB,gBAAgB,CAAkB;IAClC,SAAS,CAAW;IAC7B,8DAA8D;IACrD,MAAM,CAAQ;IACvB,sEAAsE;IAC7D,WAAW,CAAa;IAEjC,uEAAuE;IAC9D,QAAQ,CAAS;IAEjB,OAAO,CAAa;IAE7B,YAAY,MAAc,EAAE,UAAwB,EAAE;QACpD,IAAI,CAAC,OAAO,GAAG,IAAI,uBAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAC/C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAA;QAErC,IAAI,CAAC,cAAc,GAAG,IAAI,mCAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACtD,IAAI,CAAC,YAAY,GAAG,IAAI,+BAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAClD,IAAI,CAAC,YAAY,GAAG,IAAI,8BAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAClD,IAAI,CAAC,OAAO,GAAG,IAAI,oBAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACxC,IAAI,CAAC,gBAAgB,GAAG,IAAI,uCAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC1D,IAAI,CAAC,SAAS,GAAG,IAAI,wBAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC5C,IAAI,CAAC,MAAM,GAAG,IAAI,kBAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACtC,IAAI,CAAC,WAAW,GAAG,IAAI,6BAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAClD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACM,QAAQ,GAAG;QAClB,cAAc,CACZ,OAAwB,EACxB,MAAiC,EACjC,MAAc,EACd,OAA+B;YAE/B,OAAO,IAAA,4BAAc,EAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QACzD,CAAC;KACF,CAAA;IAED,8CAA8C;IAC9C,MAAM,CAAC,cAAc;QACnB,OAAO,uBAAW,CAAC,cAAc,EAAE,CAAA;IACrC,CAAC;CACF;AApED,sBAoEC;AAED,kBAAe,KAAK,CAAA;AAEpB,yCAAyC;AAAhC,wGAAA,WAAW,OAAA;AAEpB,6CAAyE;AAAhE,6GAAA,cAAc,OAAA;AAAE,wHAAA,yBAAyB,OAAA;AAGlD,yCAaoB;AAZlB,uGAAA,UAAU,OAAA;AACV,qHAAA,wBAAwB,OAAA;AACxB,iHAAA,oBAAoB,OAAA;AACpB,+GAAA,kBAAkB,OAAA;AAClB,iHAAA,oBAAoB,OAAA;AACpB,+GAAA,kBAAkB,OAAA;AAClB,kHAAA,qBAAqB,OAAA;AACrB,gHAAA,mBAAmB,OAAA;AACnB,0GAAA,aAAa,OAAA;AACb,2GAAA,cAAc,OAAA;AACd,iHAAA,oBAAoB,OAAA;AACpB,4HAAA,+BAA+B,OAAA;AAejC,mDAA8C;AAArC,mGAAA,MAAM,OAAA;AAEf,+DAAyD;AAAhD,8GAAA,WAAW,OAAA"}
|
package/dist/esm/errors.d.ts
CHANGED
|
@@ -7,9 +7,19 @@
|
|
|
7
7
|
* `code` est le code machine renvoyé par l'API (`validation_error`,
|
|
8
8
|
* `livemode_mismatch`, …). C'est lui qu'il faut tester — le `message`
|
|
9
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.
|
|
10
18
|
*/
|
|
11
19
|
export interface TupayErrorOptions {
|
|
12
20
|
code: string;
|
|
21
|
+
/** Classe d'erreur. Absente sur une API antérieure à la story 2.4. */
|
|
22
|
+
type?: string;
|
|
13
23
|
statusCode?: number;
|
|
14
24
|
requestId?: string;
|
|
15
25
|
cause?: unknown;
|
|
@@ -17,6 +27,8 @@ export interface TupayErrorOptions {
|
|
|
17
27
|
export declare class TupayError extends Error {
|
|
18
28
|
/** Code machine stable renvoyé par l'API. */
|
|
19
29
|
readonly code: string;
|
|
30
|
+
/** Classe d'erreur. `undefined` si l'API ne l'a pas renvoyée. */
|
|
31
|
+
readonly type?: string;
|
|
20
32
|
/** Statut HTTP, absent si l'erreur est survenue avant toute réponse. */
|
|
21
33
|
readonly statusCode?: number;
|
|
22
34
|
/** Identifiant de requête, à citer au support. */
|
|
@@ -35,9 +47,23 @@ export declare class TupayNotFoundError extends TupayError {
|
|
|
35
47
|
/** 400 / 422 — corps de requête invalide. */
|
|
36
48
|
export declare class TupayValidationError extends TupayError {
|
|
37
49
|
}
|
|
38
|
-
/** 409 — état incompatible (déjà remboursé,
|
|
50
|
+
/** 409 / 422 — état incompatible (déjà remboursé, plafond atteint). */
|
|
39
51
|
export declare class TupayConflictError extends TupayError {
|
|
40
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* 409 — le refus porte sur la clé d'idempotence, pas sur la requête.
|
|
55
|
+
*
|
|
56
|
+
* Hérite de `TupayConflictError` à dessein : ces deux codes sortaient
|
|
57
|
+
* déjà en 409, et tout `catch (err) { if (err instanceof
|
|
58
|
+
* TupayConflictError) }` existant doit continuer de les attraper. La
|
|
59
|
+
* sous-classe ajoute de la précision, elle n'en retire pas.
|
|
60
|
+
*
|
|
61
|
+
* `code` distingue les deux reprises, et elles sont opposées :
|
|
62
|
+
* `idempotency_key_reuse` → changez de clé, celle-ci a servi ailleurs
|
|
63
|
+
* `idempotency_in_progress` → retentez LE MÊME appel dans un instant
|
|
64
|
+
*/
|
|
65
|
+
export declare class TupayIdempotencyError extends TupayConflictError {
|
|
66
|
+
}
|
|
41
67
|
/** 429 — 100 req/min par marchand dépassées. */
|
|
42
68
|
export declare class TupayRateLimitError extends TupayError {
|
|
43
69
|
}
|
|
@@ -57,10 +83,21 @@ export declare class TupaySignatureVerificationError extends TupayError {
|
|
|
57
83
|
}
|
|
58
84
|
/**
|
|
59
85
|
* Construit l'erreur typée correspondant à une réponse HTTP.
|
|
60
|
-
*
|
|
86
|
+
*
|
|
87
|
+
* ── `type` d'abord, statut ensuite ─────────────────────────────────
|
|
88
|
+
* Le choix se faisait sur le seul statut HTTP. C'est une règle de forme,
|
|
89
|
+
* et elle se trompait : un 422 `limit_reached` devenait une
|
|
90
|
+
* `TupayValidationError`, alors que rien n'est invalide dans la requête
|
|
91
|
+
* — c'est une place qu'il faut libérer. Un 409 `idempotency_in_progress`
|
|
92
|
+
* devenait un `TupayConflictError` générique, alors que sa reprise est
|
|
93
|
+
* l'inverse de celle d'un conflit : retenter à l'identique.
|
|
94
|
+
*
|
|
95
|
+
* Le statut reste le repli, pour une API antérieure à la story 2.4 qui
|
|
96
|
+
* ne renverrait pas encore `type`.
|
|
61
97
|
*/
|
|
62
98
|
export declare function errorFromResponse(status: number, body: {
|
|
63
99
|
error?: string;
|
|
64
100
|
message?: string;
|
|
101
|
+
type?: string;
|
|
65
102
|
} | null, requestId?: string): TupayError;
|
|
66
103
|
//# 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
|
|
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;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,EAChE,SAAS,CAAC,EAAE,MAAM,GACjB,UAAU,CA2BZ"}
|
package/dist/esm/errors.js
CHANGED
|
@@ -7,10 +7,20 @@
|
|
|
7
7
|
* `code` est le code machine renvoyé par l'API (`validation_error`,
|
|
8
8
|
* `livemode_mismatch`, …). C'est lui qu'il faut tester — le `message`
|
|
9
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.
|
|
10
18
|
*/
|
|
11
19
|
export class TupayError extends Error {
|
|
12
20
|
/** Code machine stable renvoyé par l'API. */
|
|
13
21
|
code;
|
|
22
|
+
/** Classe d'erreur. `undefined` si l'API ne l'a pas renvoyée. */
|
|
23
|
+
type;
|
|
14
24
|
/** Statut HTTP, absent si l'erreur est survenue avant toute réponse. */
|
|
15
25
|
statusCode;
|
|
16
26
|
/** Identifiant de requête, à citer au support. */
|
|
@@ -19,6 +29,7 @@ export class TupayError extends Error {
|
|
|
19
29
|
super(message, { cause: options.cause });
|
|
20
30
|
this.name = new.target.name;
|
|
21
31
|
this.code = options.code;
|
|
32
|
+
this.type = options.type;
|
|
22
33
|
this.statusCode = options.statusCode;
|
|
23
34
|
this.requestId = options.requestId;
|
|
24
35
|
}
|
|
@@ -35,9 +46,23 @@ export class TupayNotFoundError extends TupayError {
|
|
|
35
46
|
/** 400 / 422 — corps de requête invalide. */
|
|
36
47
|
export class TupayValidationError extends TupayError {
|
|
37
48
|
}
|
|
38
|
-
/** 409 — état incompatible (déjà remboursé,
|
|
49
|
+
/** 409 / 422 — état incompatible (déjà remboursé, plafond atteint). */
|
|
39
50
|
export class TupayConflictError extends TupayError {
|
|
40
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* 409 — le refus porte sur la clé d'idempotence, pas sur la requête.
|
|
54
|
+
*
|
|
55
|
+
* Hérite de `TupayConflictError` à dessein : ces deux codes sortaient
|
|
56
|
+
* déjà en 409, et tout `catch (err) { if (err instanceof
|
|
57
|
+
* TupayConflictError) }` existant doit continuer de les attraper. La
|
|
58
|
+
* sous-classe ajoute de la précision, elle n'en retire pas.
|
|
59
|
+
*
|
|
60
|
+
* `code` distingue les deux reprises, et elles sont opposées :
|
|
61
|
+
* `idempotency_key_reuse` → changez de clé, celle-ci a servi ailleurs
|
|
62
|
+
* `idempotency_in_progress` → retentez LE MÊME appel dans un instant
|
|
63
|
+
*/
|
|
64
|
+
export class TupayIdempotencyError extends TupayConflictError {
|
|
65
|
+
}
|
|
41
66
|
/** 429 — 100 req/min par marchand dépassées. */
|
|
42
67
|
export class TupayRateLimitError extends TupayError {
|
|
43
68
|
}
|
|
@@ -59,14 +84,39 @@ export class TupaySignatureVerificationError extends TupayError {
|
|
|
59
84
|
super(message, { code: 'signature_verification_failed' });
|
|
60
85
|
}
|
|
61
86
|
}
|
|
87
|
+
/** La classe d'erreur de l'API vers la sous-classe du SDK. */
|
|
88
|
+
const PAR_TYPE = {
|
|
89
|
+
invalid_request: TupayValidationError,
|
|
90
|
+
authentication: TupayAuthenticationError,
|
|
91
|
+
permission: TupayPermissionError,
|
|
92
|
+
not_found: TupayNotFoundError,
|
|
93
|
+
conflict: TupayConflictError,
|
|
94
|
+
idempotency: TupayIdempotencyError,
|
|
95
|
+
rate_limit: TupayRateLimitError,
|
|
96
|
+
provider: TupayBaasError,
|
|
97
|
+
api: TupayApiError,
|
|
98
|
+
};
|
|
62
99
|
/**
|
|
63
100
|
* Construit l'erreur typée correspondant à une réponse HTTP.
|
|
64
|
-
*
|
|
101
|
+
*
|
|
102
|
+
* ── `type` d'abord, statut ensuite ─────────────────────────────────
|
|
103
|
+
* Le choix se faisait sur le seul statut HTTP. C'est une règle de forme,
|
|
104
|
+
* et elle se trompait : un 422 `limit_reached` devenait une
|
|
105
|
+
* `TupayValidationError`, alors que rien n'est invalide dans la requête
|
|
106
|
+
* — c'est une place qu'il faut libérer. Un 409 `idempotency_in_progress`
|
|
107
|
+
* devenait un `TupayConflictError` générique, alors que sa reprise est
|
|
108
|
+
* l'inverse de celle d'un conflit : retenter à l'identique.
|
|
109
|
+
*
|
|
110
|
+
* Le statut reste le repli, pour une API antérieure à la story 2.4 qui
|
|
111
|
+
* ne renverrait pas encore `type`.
|
|
65
112
|
*/
|
|
66
113
|
export function errorFromResponse(status, body, requestId) {
|
|
67
114
|
const code = body?.error ?? 'server_error';
|
|
68
115
|
const message = body?.message ?? `Requête échouée (HTTP ${status}).`;
|
|
69
|
-
const options = { code, statusCode: status, requestId };
|
|
116
|
+
const options = { code, type: body?.type, statusCode: status, requestId };
|
|
117
|
+
const parType = body?.type ? PAR_TYPE[body.type] : undefined;
|
|
118
|
+
if (parType)
|
|
119
|
+
return new parType(message, options);
|
|
70
120
|
switch (status) {
|
|
71
121
|
case 400:
|
|
72
122
|
case 422:
|
package/dist/esm/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -72,7 +72,7 @@ export { TupayClient } from './client.js';
|
|
|
72
72
|
export type { TupayOptions, RequestOptions } from './client.js';
|
|
73
73
|
export { constructEvent, DEFAULT_TOLERANCE_SECONDS } from './webhooks.js';
|
|
74
74
|
export type { ConstructEventOptions } from './webhooks.js';
|
|
75
|
-
export { TupayError, TupayAuthenticationError, TupayPermissionError, TupayNotFoundError, TupayValidationError, TupayConflictError, TupayRateLimitError, TupayApiError, TupayBaasError, TupayConnectionError, TupaySignatureVerificationError, } from './errors.js';
|
|
75
|
+
export { TupayError, TupayAuthenticationError, TupayPermissionError, TupayNotFoundError, TupayValidationError, TupayConflictError, TupayIdempotencyError, TupayRateLimitError, TupayApiError, TupayBaasError, TupayConnectionError, TupaySignatureVerificationError, } from './errors.js';
|
|
76
76
|
export type * from './types.js';
|
|
77
77
|
export type { CreatePaymentIntentParams } from './resources/payment-intents.js';
|
|
78
78
|
export type { CreatePaymentLinkParams } from './resources/payment-links.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;IActD;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,QAAQ,CAAC,QAAQ;gCAEJ,MAAM,GAAG,MAAM,UAChB,MAAM,GAAG,IAAI,GAAG,SAAS,UACzB,MAAM,YACJ,qBAAqB,GAC9B,YAAY;MAGhB;IAED,8CAA8C;IAC9C,MAAM,CAAC,cAAc,IAAI,MAAM;CAGhC;AAED,eAAe,KAAK,CAAA;AAEpB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA;AACzE,YAAY,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAE1D,OAAO,EACL,UAAU,EACV,wBAAwB,EACxB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,+BAA+B,GAChC,MAAM,aAAa,CAAA;AAEpB,mBAAmB,YAAY,CAAA;AAE/B,YAAY,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAC/E,YAAY,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AAC3E,YAAY,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACzE,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AACnF,YAAY,EACV,2BAA2B,EAC3B,2BAA2B,EAC3B,oBAAoB,GACrB,MAAM,kCAAkC,CAAA;AACzC,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA"}
|
|
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;IActD;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,QAAQ,CAAC,QAAQ;gCAEJ,MAAM,GAAG,MAAM,UAChB,MAAM,GAAG,IAAI,GAAG,SAAS,UACzB,MAAM,YACJ,qBAAqB,GAC9B,YAAY;MAGhB;IAED,8CAA8C;IAC9C,MAAM,CAAC,cAAc,IAAI,MAAM;CAGhC;AAED,eAAe,KAAK,CAAA;AAEpB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA;AACzE,YAAY,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAE1D,OAAO,EACL,UAAU,EACV,wBAAwB,EACxB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,+BAA+B,GAChC,MAAM,aAAa,CAAA;AAEpB,mBAAmB,YAAY,CAAA;AAE/B,YAAY,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAC/E,YAAY,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AAC3E,YAAY,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACzE,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AACnF,YAAY,EACV,2BAA2B,EAC3B,2BAA2B,EAC3B,oBAAoB,GACrB,MAAM,kCAAkC,CAAA;AACzC,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA"}
|
package/dist/esm/index.js
CHANGED
|
@@ -84,7 +84,7 @@ export class Tupay {
|
|
|
84
84
|
export default Tupay;
|
|
85
85
|
export { TupayClient } from './client.js';
|
|
86
86
|
export { constructEvent, DEFAULT_TOLERANCE_SECONDS } from './webhooks.js';
|
|
87
|
-
export { TupayError, TupayAuthenticationError, TupayPermissionError, TupayNotFoundError, TupayValidationError, TupayConflictError, TupayRateLimitError, TupayApiError, TupayBaasError, TupayConnectionError, TupaySignatureVerificationError, } from './errors.js';
|
|
87
|
+
export { TupayError, TupayAuthenticationError, TupayPermissionError, TupayNotFoundError, TupayValidationError, TupayConflictError, TupayIdempotencyError, TupayRateLimitError, TupayApiError, TupayBaasError, TupayConnectionError, TupaySignatureVerificationError, } from './errors.js';
|
|
88
88
|
export { Events } from './resources/events.js';
|
|
89
89
|
export { TestHelpers } from './resources/test-helpers.js';
|
|
90
90
|
//# 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":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|