@communecter/cocolight-api-client 1.0.198 → 1.0.200

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@communecter/cocolight-api-client",
3
- "version": "1.0.198",
3
+ "version": "1.0.200",
4
4
  "description": "Client Axios simplifié pour l'API cocolight",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1392,7 +1392,7 @@ export declare class EndpointApi {
1392
1392
  */
1393
1393
  generateMilestoneFromDepense(data: GenerateMilestoneFromDepenseData): Promise<any>;
1394
1394
  /**
1395
- * Trouver les informations sur les enveloppes d’un formulaire : Trouver les informations sur les enveloppes d’un formulaire
1395
+ * Trouver les informations sur les enveloppes d’un formulaire : Trouver les informations sur les enveloppes d’un formulaire et payer une cagnotte (stripePay, helloassoPay, helloassoStatus, cagnotteSettle, cagnotteBills). `order` : contribution `{answerId, financerId, fundings:[{milestoneId|depenseKey, amount}]}` ou promesses `{pledges:[{answerId, depenseKey, financerId, finkey|finIndex, amount}]}`, éventuellement avec un crédit d'enveloppe `envelope:{formId[, amount]}` (seul : `{financerId, envelope:{formId, amount}}`) ; obligatoire pour stripePay et helloassoPay ; son montant est débité, puis le serveur enregistre engagements et versements une fois le paiement vérifié. stripePay et helloassoPay exigent un utilisateur connecté. stripePay exige aussi `amount` (> 0, remplacé par le montant de la commande) et `payment_method_id`, à renvoyer au rejeu ; il prend `key`, clé de la tentative (16 à 64 caractères `[A-Za-z0-9-]`) : rejouée, la requête retrouve la même facture et la même clé d'idempotence Stripe, sans second débit. helloassoStatus prend `checkoutIntentId`, cagnotteSettle `bill`, cagnotteBills `filter` (`attention` | `all`) : toutes les factures pour un admin de l'entité, les siennes pour un autre utilisateur connecté. getEnvelopeData annonce `paymentMethods.serverSettlement` (paiements facturés et enregistrés par le serveur) ; il règle d'abord au plus deux factures de la cagnotte restées en attente (vérification chez Stripe ou HelloAsso, puis écriture des engagements et versements).
1396
1396
  * Constant : FUNDING_ENVELOPE
1397
1397
  * @param data - Données envoyées à l'API
1398
1398
  * @returns Les données de réponse.
@@ -4,6 +4,20 @@ import type { Event } from "../api/Event.js";
4
4
  import type { Organization } from "../api/Organization.js";
5
5
  import type { Poi } from "../api/Poi.js";
6
6
  import type { Project } from "../api/Project.js";
7
+ /**
8
+ * Forme d'un slug de costum, celle qu'exige la requête de `COSTUM_RESOLVED` (`costum/co/resolved`).
9
+ * Recopiée du contrat : `tests/unit/costum-prefetch-slug.test.ts` la compare au `pattern` du module d'endpoints.
10
+ */
11
+ export declare const COSTUM_SLUG_RE: RegExp;
12
+ /**
13
+ * Slug de costum d'un document CHARGÉ : `source.key`, repli sur `source.keys[0]` — la préséance des trois
14
+ * lecteurs d'avant (`get()`, finalizer de `searchCostum`, `_setData`) — retenu SEULEMENT s'il a la forme
15
+ * d'un slug. Ces lecteurs typaient la donnée `{ key?: string; keys?: string[] }`, ce qu'elle n'est pas
16
+ * toujours (cf. `prefetchCostums`) : `_setData` passait un tableau à `resolveCostumCtxFromSource`, où
17
+ * `COSTUM_RUNTIME[sourceKey]` le convertissait en chaîne (`["x"]` → `"x"`). Une clé invalide ne se rabat
18
+ * PAS sur `keys[0]` : seule une clé absente le fait, comme avant.
19
+ */
20
+ export declare function sourceKeyOf(doc: unknown): string | undefined;
7
21
  /** Active/désactive FORCE-LIVE (cf. `COSTUM_FORCE_LIVE`). */
8
22
  export declare function setCostumForceLive(actif: boolean): void;
9
23
  /** État courant de FORCE-LIVE. */
@@ -25,8 +39,18 @@ export declare function describeCostumForms(user: BaseEntity, slug: string): Pro
25
39
  * Pré-charge EN BATCH les costums (par slug) manquants/périmés du cache live, AVANT un revive synchrone
26
40
  * (finalizer de `searchCostum`, `get()`, `entitySlug`). Dédup + TTL : un slug déjà frais est ignoré.
27
41
  * Chaque fetch qui échoue est avalé (offline → le revive retombera sur le bundle). Concurrence bornée.
42
+ *
43
+ * Seules les clés à la forme d'un slug de costum partent. La base porte des `source.key` qui n'en sont pas
44
+ * (mesuré le 2026-10-15) : des TABLEAUX sur 820 éléments — `["crowdfunder"]` d'un import de 2016 sur un
45
+ * membre d'Open Atlas, mais aussi 5 organisations créées en 2024-2025 avec `insertOrign: "costum"` — et des
46
+ * chaînes hors format (`"MCZD33 Import2"`, `"<id>@organizations"`). La validation de `COSTUM_RESOLVED`
47
+ * refusait ces clés avant tout envoi : les écarter ne perd aucune résolution, et `safeCall` ne journalise
48
+ * plus une ERREUR à chaque recherche qui liste l'élément.
49
+ * Certaines nomment pourtant un vrai site (`["reunion10"]`, `["occitanie1"]`), et le legacy les y compte :
50
+ * MongoDB fait correspondre `{"source.key": "reunion10"}` à un tableau qui contient la valeur. La lib ne
51
+ * leur résolvait déjà aucun costum ; les rattacher relève de la normalisation des données, pas de ce filtre.
28
52
  */
29
- export declare function prefetchCostums(user: BaseEntity, sourceKeys: (string | null | undefined)[]): Promise<void>;
53
+ export declare function prefetchCostums(user: BaseEntity, sourceKeys: readonly unknown[]): Promise<void>;
30
54
  /**
31
55
  * Contexte costum résolu, attaché à une instance d'entité via `config.costumCtx`.
32
56
  * Porté tel quel par `BaseEntity._costumCtx` et consommé par les 3 couches de filtrage.