tupay 0.9.0 → 0.11.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 +38 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +47 -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/subscriptions.d.ts +55 -0
- package/dist/cjs/resources/subscriptions.d.ts.map +1 -0
- package/dist/cjs/resources/subscriptions.js +61 -0
- package/dist/cjs/resources/subscriptions.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 +351 -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 +38 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +38 -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/subscriptions.d.ts +55 -0
- package/dist/esm/resources/subscriptions.d.ts.map +1 -0
- package/dist/esm/resources/subscriptions.js +57 -0
- package/dist/esm/resources/subscriptions.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 +351 -0
- package/dist/esm/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { ListResult, Receipt, ReceiptStatus } from '../types.js';
|
|
2
|
+
import { TupayClient } from '../client.js';
|
|
3
|
+
import { type ListParams } from '../liste.js';
|
|
4
|
+
export interface ListReceiptsParams extends ListParams {
|
|
5
|
+
/**
|
|
6
|
+
* `'failed'` et `'exhausted'` sont les deux à surveiller : votre
|
|
7
|
+
* client n'a rien reçu, et vous êtes le seul à pouvoir le savoir.
|
|
8
|
+
*/
|
|
9
|
+
status?: ReceiptStatus;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Les reçus envoyés à vos clients.
|
|
13
|
+
*
|
|
14
|
+
* Vous n'avez rien à déclencher : un reçu part tout seul dès qu'un
|
|
15
|
+
* paiement aboutit avec une adresse connue. Ces méthodes sont le
|
|
16
|
+
* **journal** — à quelle adresse, quand, et ce qui a échoué.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* const aTraiter = await tupay.receipts.list({ status: 'exhausted' })
|
|
20
|
+
* for (const recu of aTraiter.data) {
|
|
21
|
+
* console.log(recu.email, recu.lastError)
|
|
22
|
+
* }
|
|
23
|
+
*/
|
|
24
|
+
export declare class Receipts {
|
|
25
|
+
private readonly client;
|
|
26
|
+
constructor(client: TupayClient);
|
|
27
|
+
list(params?: ListReceiptsParams): Promise<ListResult<Receipt>>;
|
|
28
|
+
/**
|
|
29
|
+
* Remet un reçu en file.
|
|
30
|
+
*
|
|
31
|
+
* Le rejeu automatique s'arrête au bout de sept tentatives (~34 h).
|
|
32
|
+
* Passé ce délai, vous seul savez si la cause a disparu.
|
|
33
|
+
*
|
|
34
|
+
* **Aucun second reçu n'est créé** : la ligne existante repart à zéro.
|
|
35
|
+
* Un reçu déjà parti lève une `TupayConflictError` — le renvoyer ferait
|
|
36
|
+
* douter votre client d'un second débit.
|
|
37
|
+
*/
|
|
38
|
+
resend(id: string): Promise<Receipt>;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=receipts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"receipts.d.ts","sourceRoot":"","sources":["../../../src/resources/receipts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAIL,KAAK,UAAU,EAChB,MAAM,aAAa,CAAA;AAEpB,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IACpD;;;OAGG;IACH,MAAM,CAAC,EAAE,aAAa,CAAA;CACvB;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,QAAQ;IACP,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,WAAW;IAE1C,IAAI,CAAC,MAAM,GAAE,kBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAUzE;;;;;;;;;OASG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAO3C"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Receipts = void 0;
|
|
4
|
+
const liste_js_1 = require("../liste.js");
|
|
5
|
+
/**
|
|
6
|
+
* Les reçus envoyés à vos clients.
|
|
7
|
+
*
|
|
8
|
+
* Vous n'avez rien à déclencher : un reçu part tout seul dès qu'un
|
|
9
|
+
* paiement aboutit avec une adresse connue. Ces méthodes sont le
|
|
10
|
+
* **journal** — à quelle adresse, quand, et ce qui a échoué.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* const aTraiter = await tupay.receipts.list({ status: 'exhausted' })
|
|
14
|
+
* for (const recu of aTraiter.data) {
|
|
15
|
+
* console.log(recu.email, recu.lastError)
|
|
16
|
+
* }
|
|
17
|
+
*/
|
|
18
|
+
class Receipts {
|
|
19
|
+
client;
|
|
20
|
+
constructor(client) {
|
|
21
|
+
this.client = client;
|
|
22
|
+
}
|
|
23
|
+
async list(params = {}) {
|
|
24
|
+
return (0, liste_js_1.normaliserListe)(await this.client.request({
|
|
25
|
+
method: 'GET',
|
|
26
|
+
path: '/receipts',
|
|
27
|
+
query: { ...(0, liste_js_1.parametresListe)(params), status: params.status },
|
|
28
|
+
}));
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Remet un reçu en file.
|
|
32
|
+
*
|
|
33
|
+
* Le rejeu automatique s'arrête au bout de sept tentatives (~34 h).
|
|
34
|
+
* Passé ce délai, vous seul savez si la cause a disparu.
|
|
35
|
+
*
|
|
36
|
+
* **Aucun second reçu n'est créé** : la ligne existante repart à zéro.
|
|
37
|
+
* Un reçu déjà parti lève une `TupayConflictError` — le renvoyer ferait
|
|
38
|
+
* douter votre client d'un second débit.
|
|
39
|
+
*/
|
|
40
|
+
async resend(id) {
|
|
41
|
+
const { data } = await this.client.request({
|
|
42
|
+
method: 'POST',
|
|
43
|
+
path: `/receipts/${encodeURIComponent(id)}/resend`,
|
|
44
|
+
});
|
|
45
|
+
return data;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.Receipts = Receipts;
|
|
49
|
+
//# sourceMappingURL=receipts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"receipts.js","sourceRoot":"","sources":["../../../src/resources/receipts.ts"],"names":[],"mappings":";;;AAEA,0CAKoB;AAUpB;;;;;;;;;;;;GAYG;AACH,MAAa,QAAQ;IACU;IAA7B,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IAEpD,KAAK,CAAC,IAAI,CAAC,SAA6B,EAAE;QACxC,OAAO,IAAA,0BAAe,EACpB,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAsB;YAC7C,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,EAAE,GAAG,IAAA,0BAAe,EAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;SAC7D,CAAC,CACH,CAAA;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAoB;YAC5D,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,aAAa,kBAAkB,CAAC,EAAE,CAAC,SAAS;SACnD,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AA9BD,4BA8BC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { TupayClient } from '../client.js';
|
|
2
|
+
import type { ListResult, SetupIntent, SetupIntentWithSecret } from '../types.js';
|
|
3
|
+
import { type ListParams } from '../liste.js';
|
|
4
|
+
export interface CreateSetupIntentParams {
|
|
5
|
+
/** Client pour lequel enregistrer la carte — `<uuid>` ou `cus_<uuid>`. */
|
|
6
|
+
customer: string;
|
|
7
|
+
metadata?: Record<string, string>;
|
|
8
|
+
/** Omise, le SDK en génère une (UUID v4) : la requête devient rejouable. */
|
|
9
|
+
idempotencyKey?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface ListSetupIntentsParams extends ListParams {
|
|
12
|
+
customer?: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Enregistrer une carte sans débiter.
|
|
16
|
+
*
|
|
17
|
+
* ⚠️ **Aucun montant n'est accepté ni débité par ce chemin.** Pour
|
|
18
|
+
* encaisser, c'est `tupay.paymentIntents.create()`.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* const intention = await tupay.setupIntents.create({ customer: client.id })
|
|
22
|
+
* // Transmettez `intention.clientSecret` au navigateur du porteur :
|
|
23
|
+
* // il y saisit sa carte, chez le prestataire, sans passer par vous.
|
|
24
|
+
*/
|
|
25
|
+
export declare class SetupIntents {
|
|
26
|
+
private readonly client;
|
|
27
|
+
constructor(client: TupayClient);
|
|
28
|
+
/**
|
|
29
|
+
* Ouvre l'enregistrement et rend le secret de session.
|
|
30
|
+
*
|
|
31
|
+
* ⚠️ `clientSecret` n'est servi qu'ICI. Ni `retrieve()` ni `list()` ne
|
|
32
|
+
* le rendent : un secret relisible à volonté, avec n'importe quelle
|
|
33
|
+
* clé, n'en est plus un. Transmettez-le au navigateur tout de suite,
|
|
34
|
+
* ou rouvrez un enregistrement.
|
|
35
|
+
*/
|
|
36
|
+
create(params: CreateSetupIntentParams): Promise<SetupIntentWithSecret>;
|
|
37
|
+
/**
|
|
38
|
+
* Le statut de l'enregistrement.
|
|
39
|
+
*
|
|
40
|
+
* Sur un échec, `failureCode` porte un code machine stable et
|
|
41
|
+
* `failureMessage` une phrase française montrable au porteur.
|
|
42
|
+
*/
|
|
43
|
+
retrieve(id: string): Promise<SetupIntent>;
|
|
44
|
+
list(params?: ListSetupIntentsParams): Promise<ListResult<SetupIntent>>;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=setup-intents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-intents.d.ts","sourceRoot":"","sources":["../../../src/resources/setup-intents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACjF,OAAO,EAIL,KAAK,UAAU,EAChB,MAAM,aAAa,CAAA;AAEpB,MAAM,WAAW,uBAAuB;IACtC,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,4EAA4E;IAC5E,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,sBAAuB,SAAQ,UAAU;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;;;;;;;;;GAUG;AACH,qBAAa,YAAY;IACX,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,WAAW;IAEhD;;;;;;;OAOG;IACG,MAAM,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAW7E;;;;;OAKG;IACG,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ1C,IAAI,CAAC,MAAM,GAAE,sBAA2B,GAAG,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;CASlF"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SetupIntents = void 0;
|
|
4
|
+
const client_js_1 = require("../client.js");
|
|
5
|
+
const liste_js_1 = require("../liste.js");
|
|
6
|
+
/**
|
|
7
|
+
* Enregistrer une carte sans débiter.
|
|
8
|
+
*
|
|
9
|
+
* ⚠️ **Aucun montant n'est accepté ni débité par ce chemin.** Pour
|
|
10
|
+
* encaisser, c'est `tupay.paymentIntents.create()`.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* const intention = await tupay.setupIntents.create({ customer: client.id })
|
|
14
|
+
* // Transmettez `intention.clientSecret` au navigateur du porteur :
|
|
15
|
+
* // il y saisit sa carte, chez le prestataire, sans passer par vous.
|
|
16
|
+
*/
|
|
17
|
+
class SetupIntents {
|
|
18
|
+
client;
|
|
19
|
+
constructor(client) {
|
|
20
|
+
this.client = client;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Ouvre l'enregistrement et rend le secret de session.
|
|
24
|
+
*
|
|
25
|
+
* ⚠️ `clientSecret` n'est servi qu'ICI. Ni `retrieve()` ni `list()` ne
|
|
26
|
+
* le rendent : un secret relisible à volonté, avec n'importe quelle
|
|
27
|
+
* clé, n'en est plus un. Transmettez-le au navigateur tout de suite,
|
|
28
|
+
* ou rouvrez un enregistrement.
|
|
29
|
+
*/
|
|
30
|
+
async create(params) {
|
|
31
|
+
const { idempotencyKey, ...body } = params;
|
|
32
|
+
const { data } = await this.client.request({
|
|
33
|
+
method: 'POST',
|
|
34
|
+
path: '/setup-intents',
|
|
35
|
+
body,
|
|
36
|
+
idempotencyKey: idempotencyKey ?? client_js_1.TupayClient.idempotencyKey(),
|
|
37
|
+
});
|
|
38
|
+
return data;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Le statut de l'enregistrement.
|
|
42
|
+
*
|
|
43
|
+
* Sur un échec, `failureCode` porte un code machine stable et
|
|
44
|
+
* `failureMessage` une phrase française montrable au porteur.
|
|
45
|
+
*/
|
|
46
|
+
async retrieve(id) {
|
|
47
|
+
const { data } = await this.client.request({
|
|
48
|
+
method: 'GET',
|
|
49
|
+
path: `/setup-intents/${encodeURIComponent(id)}`,
|
|
50
|
+
});
|
|
51
|
+
return data;
|
|
52
|
+
}
|
|
53
|
+
async list(params = {}) {
|
|
54
|
+
return (0, liste_js_1.normaliserListe)(await this.client.request({
|
|
55
|
+
method: 'GET',
|
|
56
|
+
path: '/setup-intents',
|
|
57
|
+
query: { ...(0, liste_js_1.parametresListe)(params), customer: params.customer },
|
|
58
|
+
}));
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
exports.SetupIntents = SetupIntents;
|
|
62
|
+
//# sourceMappingURL=setup-intents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-intents.js","sourceRoot":"","sources":["../../../src/resources/setup-intents.ts"],"names":[],"mappings":";;;AAAA,4CAA0C;AAE1C,0CAKoB;AAcpB;;;;;;;;;;GAUG;AACH,MAAa,YAAY;IACM;IAA7B,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IAEpD;;;;;;;OAOG;IACH,KAAK,CAAC,MAAM,CAAC,MAA+B;QAC1C,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAA;QAC1C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAkC;YAC1E,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,gBAAgB;YACtB,IAAI;YACJ,cAAc,EAAE,cAAc,IAAI,uBAAW,CAAC,cAAc,EAAE;SAC/D,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,CAAC,EAAU;QACvB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAwB;YAChE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,kBAAkB,kBAAkB,CAAC,EAAE,CAAC,EAAE;SACjD,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAiC,EAAE;QAC5C,OAAO,IAAA,0BAAe,EACpB,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAA0B;YACjD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,gBAAgB;YACtB,KAAK,EAAE,EAAE,GAAG,IAAA,0BAAe,EAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE;SACjE,CAAC,CACH,CAAA;IACH,CAAC;CACF;AA7CD,oCA6CC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { TupayClient } from '../client.js';
|
|
2
|
+
import type { ListResult, Subscription, SubscriptionStatus } from '../types.js';
|
|
3
|
+
import { type ListParams } from '../liste.js';
|
|
4
|
+
export interface CreateSubscriptionParams {
|
|
5
|
+
/** Fiche client — `<uuid>` ou `cus_<uuid>`. */
|
|
6
|
+
customer: string;
|
|
7
|
+
/**
|
|
8
|
+
* Tarif **récurrent** — `<uuid>` ou `price_<uuid>`.
|
|
9
|
+
*
|
|
10
|
+
* Un tarif ponctuel lève une `TupayValidationError` : il prélèverait
|
|
11
|
+
* indéfiniment pour un achat unique.
|
|
12
|
+
*/
|
|
13
|
+
price: string;
|
|
14
|
+
/**
|
|
15
|
+
* Carte à utiliser. Absente, la carte **par défaut** du client est
|
|
16
|
+
* retenue. Une carte détachée n'est jamais retenue.
|
|
17
|
+
*/
|
|
18
|
+
paymentMethod?: string;
|
|
19
|
+
metadata?: Record<string, string>;
|
|
20
|
+
/** Omise, le SDK en génère une (UUID v4) : la requête devient rejouable. */
|
|
21
|
+
idempotencyKey?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface ListSubscriptionsParams extends ListParams {
|
|
24
|
+
status?: SubscriptionStatus;
|
|
25
|
+
/** N'obtenir que les abonnements de ce client. */
|
|
26
|
+
customer?: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Les abonnements : un client lié à un tarif récurrent.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* const abo = await tupay.subscriptions.create({
|
|
33
|
+
* customer: client.id,
|
|
34
|
+
* price: tarifMensuel.id,
|
|
35
|
+
* })
|
|
36
|
+
* abo.currentPeriodEnd // la prochaine échéance
|
|
37
|
+
*/
|
|
38
|
+
export declare class Subscriptions {
|
|
39
|
+
private readonly client;
|
|
40
|
+
constructor(client: TupayClient);
|
|
41
|
+
/**
|
|
42
|
+
* Lie un client à un tarif récurrent.
|
|
43
|
+
*
|
|
44
|
+
* **Un abonnement qui ne peut pas aboutir n'est pas créé** — c'est
|
|
45
|
+
* délibéré, et ça vous évite de l'apprendre à la première échéance :
|
|
46
|
+
*
|
|
47
|
+
* - client sans carte enregistrée → `TupayConflictError` ;
|
|
48
|
+
* - tarif ponctuel → `TupayValidationError` ;
|
|
49
|
+
* - tarif désactivé → `TupayConflictError`.
|
|
50
|
+
*/
|
|
51
|
+
create(params: CreateSubscriptionParams): Promise<Subscription>;
|
|
52
|
+
retrieve(id: string): Promise<Subscription>;
|
|
53
|
+
list(params?: ListSubscriptionsParams): Promise<ListResult<Subscription>>;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=subscriptions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscriptions.d.ts","sourceRoot":"","sources":["../../../src/resources/subscriptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAC/E,OAAO,EAIL,KAAK,UAAU,EAChB,MAAM,aAAa,CAAA;AAEpB,MAAM,WAAW,wBAAwB;IACvC,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAA;IAChB;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;;OAGG;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,uBAAwB,SAAQ,UAAU;IACzD,MAAM,CAAC,EAAE,kBAAkB,CAAA;IAC3B,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;;;;;;;;GASG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,WAAW;IAEhD;;;;;;;;;OASG;IACG,MAAM,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,YAAY,CAAC;IAW/D,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAQ3C,IAAI,CACR,MAAM,GAAE,uBAA4B,GACnC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;CAarC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Subscriptions = void 0;
|
|
4
|
+
const client_js_1 = require("../client.js");
|
|
5
|
+
const liste_js_1 = require("../liste.js");
|
|
6
|
+
/**
|
|
7
|
+
* Les abonnements : un client lié à un tarif récurrent.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* const abo = await tupay.subscriptions.create({
|
|
11
|
+
* customer: client.id,
|
|
12
|
+
* price: tarifMensuel.id,
|
|
13
|
+
* })
|
|
14
|
+
* abo.currentPeriodEnd // la prochaine échéance
|
|
15
|
+
*/
|
|
16
|
+
class Subscriptions {
|
|
17
|
+
client;
|
|
18
|
+
constructor(client) {
|
|
19
|
+
this.client = client;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Lie un client à un tarif récurrent.
|
|
23
|
+
*
|
|
24
|
+
* **Un abonnement qui ne peut pas aboutir n'est pas créé** — c'est
|
|
25
|
+
* délibéré, et ça vous évite de l'apprendre à la première échéance :
|
|
26
|
+
*
|
|
27
|
+
* - client sans carte enregistrée → `TupayConflictError` ;
|
|
28
|
+
* - tarif ponctuel → `TupayValidationError` ;
|
|
29
|
+
* - tarif désactivé → `TupayConflictError`.
|
|
30
|
+
*/
|
|
31
|
+
async create(params) {
|
|
32
|
+
const { idempotencyKey, ...body } = params;
|
|
33
|
+
const { data } = await this.client.request({
|
|
34
|
+
method: 'POST',
|
|
35
|
+
path: '/subscriptions',
|
|
36
|
+
body,
|
|
37
|
+
idempotencyKey: idempotencyKey ?? client_js_1.TupayClient.idempotencyKey(),
|
|
38
|
+
});
|
|
39
|
+
return data;
|
|
40
|
+
}
|
|
41
|
+
async retrieve(id) {
|
|
42
|
+
const { data } = await this.client.request({
|
|
43
|
+
method: 'GET',
|
|
44
|
+
path: `/subscriptions/${encodeURIComponent(id)}`,
|
|
45
|
+
});
|
|
46
|
+
return data;
|
|
47
|
+
}
|
|
48
|
+
async list(params = {}) {
|
|
49
|
+
return (0, liste_js_1.normaliserListe)(await this.client.request({
|
|
50
|
+
method: 'GET',
|
|
51
|
+
path: '/subscriptions',
|
|
52
|
+
query: {
|
|
53
|
+
...(0, liste_js_1.parametresListe)(params),
|
|
54
|
+
status: params.status,
|
|
55
|
+
customer: params.customer,
|
|
56
|
+
},
|
|
57
|
+
}));
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
exports.Subscriptions = Subscriptions;
|
|
61
|
+
//# sourceMappingURL=subscriptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscriptions.js","sourceRoot":"","sources":["../../../src/resources/subscriptions.ts"],"names":[],"mappings":";;;AAAA,4CAA0C;AAE1C,0CAKoB;AA4BpB;;;;;;;;;GASG;AACH,MAAa,aAAa;IACK;IAA7B,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IAEpD;;;;;;;;;OASG;IACH,KAAK,CAAC,MAAM,CAAC,MAAgC;QAC3C,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAA;QAC1C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAyB;YACjE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,gBAAgB;YACtB,IAAI;YACJ,cAAc,EAAE,cAAc,IAAI,uBAAW,CAAC,cAAc,EAAE;SAC/D,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAU;QACvB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAyB;YACjE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,kBAAkB,kBAAkB,CAAC,EAAE,CAAC,EAAE;SACjD,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,IAAI,CACR,SAAkC,EAAE;QAEpC,OAAO,IAAA,0BAAe,EACpB,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAA2B;YAClD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,gBAAgB;YACtB,KAAK,EAAE;gBACL,GAAG,IAAA,0BAAe,EAAC,MAAM,CAAC;gBAC1B,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B;SACF,CAAC,CACH,CAAA;IACH,CAAC;CACF;AA/CD,sCA+CC"}
|
|
@@ -5,6 +5,13 @@ export interface ListTransactionsParams extends ListParams {
|
|
|
5
5
|
status?: TransactionStatus;
|
|
6
6
|
/** Date ISO 8601 — ne renvoie que les transactions postérieures. */
|
|
7
7
|
createdAfter?: string;
|
|
8
|
+
/**
|
|
9
|
+
* N'obtenir que les paiements de ce client — `<uuid>` ou `cus_<uuid>`.
|
|
10
|
+
*
|
|
11
|
+
* Un identifiant inconnu rend une page **vide**, pas une erreur : c'est
|
|
12
|
+
* un critère de recherche, pas une ressource adressée.
|
|
13
|
+
*/
|
|
14
|
+
customer?: string;
|
|
8
15
|
}
|
|
9
16
|
export declare class Transactions {
|
|
10
17
|
private readonly client;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactions.d.ts","sourceRoot":"","sources":["../../../src/resources/transactions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC7E,OAAO,EAIL,KAAK,UAAU,EAChB,MAAM,aAAa,CAAA;AAEpB,MAAM,WAAW,sBAAuB,SAAQ,UAAU;IACxD,MAAM,CAAC,EAAE,iBAAiB,CAAA;IAC1B,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"transactions.d.ts","sourceRoot":"","sources":["../../../src/resources/transactions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC7E,OAAO,EAIL,KAAK,UAAU,EAChB,MAAM,aAAa,CAAA;AAEpB,MAAM,WAAW,sBAAuB,SAAQ,UAAU;IACxD,MAAM,CAAC,EAAE,iBAAiB,CAAA;IAC1B,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,qBAAa,YAAY;IACX,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,WAAW;IAE1C,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ1C,IAAI,CAAC,MAAM,GAAE,sBAA2B,GAAG,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAejF;;;;;;;;;;;;OAYG;IACI,cAAc,CACnB,MAAM,GAAE,sBAA2B,GAClC,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE,SAAS,CAAC;CAqBhD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactions.js","sourceRoot":"","sources":["../../../src/resources/transactions.ts"],"names":[],"mappings":";;;AAEA,0CAKoB;
|
|
1
|
+
{"version":3,"file":"transactions.js","sourceRoot":"","sources":["../../../src/resources/transactions.ts"],"names":[],"mappings":";;;AAEA,0CAKoB;AAepB,MAAa,YAAY;IACM;IAA7B,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IAEpD,KAAK,CAAC,QAAQ,CAAC,EAAU;QACvB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAwB;YAChE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,iBAAiB,kBAAkB,CAAC,EAAE,CAAC,EAAE;SAChD,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAiC,EAAE;QAC5C,OAAO,IAAA,0BAAe,EACpB,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAA0B;YACjD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE;gBACL,GAAG,IAAA,0BAAe,EAAC,MAAM,CAAC;gBAC1B,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,aAAa,EAAE,MAAM,CAAC,YAAY;gBAClC,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B;SACF,CAAC,CACH,CAAA;IACH,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,CAAC,cAAc,CACnB,SAAiC,EAAE;QAEnC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,GAAG,CAAA;QACjC,IAAI,aAAa,GAAG,MAAM,CAAC,aAAa,CAAA;QACxC,IAAI,SAA6B,CAAA;QAEjC,SAAS,CAAC;YACR,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAA;YACpF,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,IAAI;gBAAE,MAAM,WAAW,CAAA;YAEtD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;YAC/C,8DAA8D;YAC9D,+DAA+D;YAC/D,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO;gBAAE,OAAM;YACrC,iEAAiE;YACjE,8DAA8D;YAC9D,iCAAiC;YACjC,IAAI,OAAO,CAAC,EAAE,KAAK,SAAS;gBAAE,OAAM;YACpC,SAAS,GAAG,OAAO,CAAC,EAAE,CAAA;YACtB,aAAa,GAAG,OAAO,CAAC,EAAE,CAAA;QAC5B,CAAC;IACH,CAAC;CACF;AA9DD,oCA8DC"}
|