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.
Files changed (105) hide show
  1. package/dist/cjs/errors.d.ts +36 -0
  2. package/dist/cjs/errors.d.ts.map +1 -1
  3. package/dist/cjs/errors.js +49 -19
  4. package/dist/cjs/errors.js.map +1 -1
  5. package/dist/cjs/index.d.ts +38 -1
  6. package/dist/cjs/index.d.ts.map +1 -1
  7. package/dist/cjs/index.js +47 -1
  8. package/dist/cjs/index.js.map +1 -1
  9. package/dist/cjs/resources/checkout-sessions.d.ts +85 -0
  10. package/dist/cjs/resources/checkout-sessions.d.ts.map +1 -0
  11. package/dist/cjs/resources/checkout-sessions.js +69 -0
  12. package/dist/cjs/resources/checkout-sessions.js.map +1 -0
  13. package/dist/cjs/resources/customers.d.ts +80 -0
  14. package/dist/cjs/resources/customers.d.ts.map +1 -0
  15. package/dist/cjs/resources/customers.js +77 -0
  16. package/dist/cjs/resources/customers.js.map +1 -0
  17. package/dist/cjs/resources/payment-intents.d.ts +27 -0
  18. package/dist/cjs/resources/payment-intents.d.ts.map +1 -1
  19. package/dist/cjs/resources/payment-intents.js.map +1 -1
  20. package/dist/cjs/resources/payment-links.d.ts +26 -1
  21. package/dist/cjs/resources/payment-links.d.ts.map +1 -1
  22. package/dist/cjs/resources/payment-links.js.map +1 -1
  23. package/dist/cjs/resources/payment-methods.d.ts +76 -0
  24. package/dist/cjs/resources/payment-methods.d.ts.map +1 -0
  25. package/dist/cjs/resources/payment-methods.js +77 -0
  26. package/dist/cjs/resources/payment-methods.js.map +1 -0
  27. package/dist/cjs/resources/prices.d.ts +73 -0
  28. package/dist/cjs/resources/prices.d.ts.map +1 -0
  29. package/dist/cjs/resources/prices.js +78 -0
  30. package/dist/cjs/resources/prices.js.map +1 -0
  31. package/dist/cjs/resources/products.d.ts +56 -0
  32. package/dist/cjs/resources/products.d.ts.map +1 -0
  33. package/dist/cjs/resources/products.js +70 -0
  34. package/dist/cjs/resources/products.js.map +1 -0
  35. package/dist/cjs/resources/receipts.d.ts +40 -0
  36. package/dist/cjs/resources/receipts.d.ts.map +1 -0
  37. package/dist/cjs/resources/receipts.js +49 -0
  38. package/dist/cjs/resources/receipts.js.map +1 -0
  39. package/dist/cjs/resources/setup-intents.d.ts +46 -0
  40. package/dist/cjs/resources/setup-intents.d.ts.map +1 -0
  41. package/dist/cjs/resources/setup-intents.js +62 -0
  42. package/dist/cjs/resources/setup-intents.js.map +1 -0
  43. package/dist/cjs/resources/subscriptions.d.ts +55 -0
  44. package/dist/cjs/resources/subscriptions.d.ts.map +1 -0
  45. package/dist/cjs/resources/subscriptions.js +61 -0
  46. package/dist/cjs/resources/subscriptions.js.map +1 -0
  47. package/dist/cjs/resources/transactions.d.ts +7 -0
  48. package/dist/cjs/resources/transactions.d.ts.map +1 -1
  49. package/dist/cjs/resources/transactions.js +1 -0
  50. package/dist/cjs/resources/transactions.js.map +1 -1
  51. package/dist/cjs/types.d.ts +351 -0
  52. package/dist/cjs/types.d.ts.map +1 -1
  53. package/dist/esm/errors.d.ts +36 -0
  54. package/dist/esm/errors.d.ts.map +1 -1
  55. package/dist/esm/errors.js +47 -18
  56. package/dist/esm/errors.js.map +1 -1
  57. package/dist/esm/index.d.ts +38 -1
  58. package/dist/esm/index.d.ts.map +1 -1
  59. package/dist/esm/index.js +38 -1
  60. package/dist/esm/index.js.map +1 -1
  61. package/dist/esm/resources/checkout-sessions.d.ts +85 -0
  62. package/dist/esm/resources/checkout-sessions.d.ts.map +1 -0
  63. package/dist/esm/resources/checkout-sessions.js +65 -0
  64. package/dist/esm/resources/checkout-sessions.js.map +1 -0
  65. package/dist/esm/resources/customers.d.ts +80 -0
  66. package/dist/esm/resources/customers.d.ts.map +1 -0
  67. package/dist/esm/resources/customers.js +73 -0
  68. package/dist/esm/resources/customers.js.map +1 -0
  69. package/dist/esm/resources/payment-intents.d.ts +27 -0
  70. package/dist/esm/resources/payment-intents.d.ts.map +1 -1
  71. package/dist/esm/resources/payment-intents.js.map +1 -1
  72. package/dist/esm/resources/payment-links.d.ts +26 -1
  73. package/dist/esm/resources/payment-links.d.ts.map +1 -1
  74. package/dist/esm/resources/payment-links.js.map +1 -1
  75. package/dist/esm/resources/payment-methods.d.ts +76 -0
  76. package/dist/esm/resources/payment-methods.d.ts.map +1 -0
  77. package/dist/esm/resources/payment-methods.js +73 -0
  78. package/dist/esm/resources/payment-methods.js.map +1 -0
  79. package/dist/esm/resources/prices.d.ts +73 -0
  80. package/dist/esm/resources/prices.d.ts.map +1 -0
  81. package/dist/esm/resources/prices.js +74 -0
  82. package/dist/esm/resources/prices.js.map +1 -0
  83. package/dist/esm/resources/products.d.ts +56 -0
  84. package/dist/esm/resources/products.d.ts.map +1 -0
  85. package/dist/esm/resources/products.js +66 -0
  86. package/dist/esm/resources/products.js.map +1 -0
  87. package/dist/esm/resources/receipts.d.ts +40 -0
  88. package/dist/esm/resources/receipts.d.ts.map +1 -0
  89. package/dist/esm/resources/receipts.js +45 -0
  90. package/dist/esm/resources/receipts.js.map +1 -0
  91. package/dist/esm/resources/setup-intents.d.ts +46 -0
  92. package/dist/esm/resources/setup-intents.d.ts.map +1 -0
  93. package/dist/esm/resources/setup-intents.js +58 -0
  94. package/dist/esm/resources/setup-intents.js.map +1 -0
  95. package/dist/esm/resources/subscriptions.d.ts +55 -0
  96. package/dist/esm/resources/subscriptions.d.ts.map +1 -0
  97. package/dist/esm/resources/subscriptions.js +57 -0
  98. package/dist/esm/resources/subscriptions.js.map +1 -0
  99. package/dist/esm/resources/transactions.d.ts +7 -0
  100. package/dist/esm/resources/transactions.d.ts.map +1 -1
  101. package/dist/esm/resources/transactions.js +1 -0
  102. package/dist/esm/resources/transactions.js.map +1 -1
  103. package/dist/esm/types.d.ts +351 -0
  104. package/dist/esm/types.d.ts.map +1 -1
  105. 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;CACtB;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;IAcjF;;;;;;;;;;;;OAYG;IACI,cAAc,CACnB,MAAM,GAAE,sBAA2B,GAClC,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE,SAAS,CAAC;CAqBhD"}
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"}
@@ -22,6 +22,7 @@ class Transactions {
22
22
  ...(0, liste_js_1.parametresListe)(params),
23
23
  status: params.status,
24
24
  created_after: params.createdAfter,
25
+ customer: params.customer,
25
26
  },
26
27
  }));
27
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"transactions.js","sourceRoot":"","sources":["../../../src/resources/transactions.ts"],"names":[],"mappings":";;;AAEA,0CAKoB;AAQpB,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;aACnC;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;AA7DD,oCA6DC"}
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"}