@communecter/cocolight-api-client 1.0.167 → 1.0.168

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.167",
3
+ "version": "1.0.168",
4
4
  "description": "Client Axios simplifié pour l'API cocolight",
5
5
  "repository": {
6
6
  "type": "git",
@@ -183,6 +183,21 @@ export type CostumContextFields = {
183
183
  sourceKey: string[];
184
184
  };
185
185
  export type WithCostumContext<T> = T & CostumContextFields;
186
+ /**
187
+ * Exclut les items de FIL (`activityStream`/`activitypub`) d'une recherche `searchType: news`.
188
+ *
189
+ * Invariant de « news éditoriale » : la collection `news` contient AUSSI des items auto-générés
190
+ * ("X a créé Y") que `globalautocomplete` remonte bruts ; un `searchType: ["news"]` veut dire ACTUALITÉS,
191
+ * pour TOUT consommateur. Filtre posé au niveau REQUÊTE → honoré à l'identique par le legacy ET le backend
192
+ * Node (`buildFilters`) → byte-parité préservée. Cohérent avec `getNews` (mur profil, exclut déjà activityStream).
193
+ *
194
+ * NO-OP si `news` absent des types, OU si un filtre `type` explicite est déjà posé (OVERRIDABLE :
195
+ * un outil de modération voulant le fil brut passe son propre `filters.type`).
196
+ */
197
+ export declare function withNewsActivityExclusion<T extends {
198
+ searchType?: string[];
199
+ filters?: unknown;
200
+ }>(data: T): T;
186
201
  /**
187
202
  * Bornes d'agenda acceptant un `Date` (coercé en ISO par la méthode avant l'envoi — le fil reste
188
203
  * `type:string`). Partagé par `searchEventsCostum` et `getEvents`.
@@ -546,6 +546,24 @@ export interface AddNewsData {
546
546
  * Indique que la réponse est au format JSON.
547
547
  */
548
548
  json: true;
549
+ /**
550
+ * Optionnel. Provenance costum (estampille source.key côté backend, cf. News::prepData). Injecté par le scope costum de la lib (me.costum(...).news()) depuis le _costumCtx — l'appelant n'a normalement pas à le fournir. Format canonique {insertOrign, key, keys} (cf. Element.php + données réelles).
551
+ */
552
+ source?: {
553
+ /**
554
+ * Origine de la source (ex: 'costum'). Faute de frappe historique conservée (fait FOI).
555
+ */
556
+ insertOrign?: string;
557
+ /**
558
+ * Slug du costum (= source.key).
559
+ */
560
+ key?: string;
561
+ /**
562
+ * Slugs de costum (= source.keys).
563
+ */
564
+ keys?: string[];
565
+ [k: string]: unknown;
566
+ };
549
567
  /**
550
568
  * Tags : "" pour effacer tous les tags, ou tableau de mots-clés.
551
569
  */
@@ -1438,7 +1456,7 @@ export interface GlobalAutocompleteAdminCostumData {
1438
1456
  /**
1439
1457
  * Types d'entités à inclure dans la recherche
1440
1458
  */
1441
- searchType: ("NGO" | "LocalBusiness" | "Group" | "GovernmentOrganization" | "Cooperative" | "organizations" | "projects" | "events" | "citoyens" | "poi" | "answers" | "forms" | "classifieds")[];
1459
+ searchType: ("NGO" | "LocalBusiness" | "Group" | "GovernmentOrganization" | "Cooperative" | "organizations" | "projects" | "events" | "citoyens" | "poi" | "news" | "answers" | "forms" | "classifieds")[];
1442
1460
  /**
1443
1461
  * Balises (tags) à utiliser pour filtrer la recherche
1444
1462
  */
@@ -1446,7 +1464,7 @@ export interface GlobalAutocompleteAdminCostumData {
1446
1464
  /**
1447
1465
  * Liste fixe des types à compter dans les résultats
1448
1466
  */
1449
- countType?: ("NGO" | "LocalBusiness" | "Group" | "GovernmentOrganization" | "Cooperative" | "organizations" | "projects" | "events" | "citoyens" | "poi" | "answers" | "forms" | "classifieds")[];
1467
+ countType?: ("NGO" | "LocalBusiness" | "Group" | "GovernmentOrganization" | "Cooperative" | "organizations" | "projects" | "events" | "citoyens" | "poi" | "news" | "answers" | "forms" | "classifieds")[];
1450
1468
  /**
1451
1469
  * Sélecteur des champs où chercher le terme `name`. Trois formes acceptées : `"ALL"` (cherche dans name/title/slug/tags/source.keys/sigle/description), chaîne CSV (`"name,slug,tags"`), ou tableau de chemins (`["name", "address.addressLocality"]`).
1452
1470
  */
@@ -3214,6 +3232,18 @@ export interface AddPoiData {
3214
3232
  */
3215
3233
  description?: string;
3216
3234
  tags?: "" | string[];
3235
+ /**
3236
+ * Médias attachés au POI (audio/vidéo…) : [{type, url, …}]. Champ natif du dataBinding POI (Poi.php:64), absent du contrat curé jusqu'ici. Permissif (items objet libre).
3237
+ */
3238
+ medias?: {
3239
+ [k: string]: unknown;
3240
+ }[];
3241
+ /**
3242
+ * Préférences de l'élément (drapeaux legacy : toBeValidated = modération a priori costum {slug:true}, isOpenEdition…). Objet libre, normalisé côté backend (Element::prepData → Costum::prepData).
3243
+ */
3244
+ preferences?: {
3245
+ [k: string]: unknown;
3246
+ };
3217
3247
  /**
3218
3248
  * URLs externes associées
3219
3249
  */
@@ -4180,7 +4210,7 @@ export interface GlobalAutocompleteCostumData {
4180
4210
  /**
4181
4211
  * Types d'entités à inclure dans la recherche
4182
4212
  */
4183
- searchType: ("NGO" | "LocalBusiness" | "Group" | "GovernmentOrganization" | "Cooperative" | "organizations" | "projects" | "events" | "citoyens" | "poi" | "answers" | "forms" | "classifieds")[];
4213
+ searchType: ("NGO" | "LocalBusiness" | "Group" | "GovernmentOrganization" | "Cooperative" | "organizations" | "projects" | "events" | "citoyens" | "poi" | "news" | "answers" | "forms" | "classifieds")[];
4184
4214
  /**
4185
4215
  * Balises (tags) à utiliser pour filtrer la recherche
4186
4216
  */
@@ -4188,7 +4218,7 @@ export interface GlobalAutocompleteCostumData {
4188
4218
  /**
4189
4219
  * Liste fixe des types à compter dans les résultats
4190
4220
  */
4191
- countType: ("NGO" | "LocalBusiness" | "Group" | "GovernmentOrganization" | "Cooperative" | "organizations" | "projects" | "events" | "citoyens" | "poi" | "answers" | "forms" | "classifieds")[];
4221
+ countType: ("NGO" | "LocalBusiness" | "Group" | "GovernmentOrganization" | "Cooperative" | "organizations" | "projects" | "events" | "citoyens" | "poi" | "news" | "answers" | "forms" | "classifieds")[];
4192
4222
  /**
4193
4223
  * Sélecteur des champs où chercher le terme `name`. Trois formes acceptées : `"ALL"` (cherche dans name/title/slug/tags/source.keys/sigle/description), chaîne CSV (`"name,slug,tags"`), ou tableau de chemins (`["name", "address.addressLocality"]`).
4194
4224
  */
@@ -4342,7 +4372,7 @@ export interface NavigatorGettlData {
4342
4372
  /**
4343
4373
  * Types d'entités à inclure dans la recherche
4344
4374
  */
4345
- searchType: ("NGO" | "LocalBusiness" | "Group" | "GovernmentOrganization" | "Cooperative" | "organizations" | "projects" | "events" | "citoyens" | "poi" | "answers" | "forms" | "classifieds")[];
4375
+ searchType: ("NGO" | "LocalBusiness" | "Group" | "GovernmentOrganization" | "Cooperative" | "organizations" | "projects" | "events" | "citoyens" | "poi" | "news" | "answers" | "forms" | "classifieds")[];
4346
4376
  /**
4347
4377
  * Balises (tags) à utiliser pour filtrer la recherche
4348
4378
  */
@@ -4350,7 +4380,7 @@ export interface NavigatorGettlData {
4350
4380
  /**
4351
4381
  * Liste fixe des types à compter dans les résultats
4352
4382
  */
4353
- countType: ("NGO" | "LocalBusiness" | "Group" | "GovernmentOrganization" | "Cooperative" | "organizations" | "projects" | "events" | "citoyens" | "poi" | "answers" | "forms" | "classifieds")[];
4383
+ countType: ("NGO" | "LocalBusiness" | "Group" | "GovernmentOrganization" | "Cooperative" | "organizations" | "projects" | "events" | "citoyens" | "poi" | "news" | "answers" | "forms" | "classifieds")[];
4354
4384
  /**
4355
4385
  * Sélecteur des champs où chercher le terme `name`. Trois formes acceptées : `"ALL"` (cherche dans name/title/slug/tags/source.keys/sigle/description), chaîne CSV (`"name,slug,tags"`), ou tableau de chemins (`["name", "address.addressLocality"]`).
4356
4386
  */
@@ -102,6 +102,14 @@ export declare class CostumScope {
102
102
  organization(data?: Record<string, unknown>): Promise<import("../index.js").Organization>;
103
103
  project(data?: Record<string, unknown>): Promise<import("../index.js").Project>;
104
104
  event(data?: Record<string, unknown>): Promise<import("../index.js").Event>;
105
+ /**
106
+ * Poste une news sous CE costum, sur le mur de `target` : `source.key` = costum du scope (le SITE,
107
+ * comme poi/org — cf. `News::prepData`), `parent` = `target`. News n'est PAS une collection « élément »
108
+ * (pas d'`element/save` ni de champs costum) : on la crée via `target.entity("news", …, {costumCtx})`.
109
+ * Le `costumCtx` EXPLICITE court-circuite l'héritage parent d'`entity()` → la source vient du SITE,
110
+ * jamais du mur. `News._add` lit ce `_costumCtx` et estampille `source` (pendant des uploads costum).
111
+ */
112
+ news(target: BaseEntity, data?: Record<string, unknown>): Promise<import("../index.js").News>;
105
113
  /**
106
114
  * Décrit le FORMULAIRE costum d'une collection (null si non couverte) — projection NEUTRE des
107
115
  * métadonnées runtime (champs typés + enum/multiple, presets, hidden, add, createLabel). Le module