@communecter/cocolight-api-client 1.0.183 → 1.0.184

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.183",
3
+ "version": "1.0.184",
4
4
  "description": "Client Axios simplifié pour l'API cocolight",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1,5 +1,5 @@
1
1
  import type ApiClient from "../ApiClient.js";
2
- import type { DocumentListData, PersonRegisterData, AuthenticateUrlData, RefreshTokenUrlData, PasswordRecoveryData, PasswordResetData, ServerExchangeTokenData, ChangePasswordData, DeleteAccountData, UpdateSettingsData, UpdateBlockDescriptionData, UpdateBlockInfoData, UpdateBlockSocialData, UpdateBlockLocalityData, UpdateBlockSlugData, CheckData, ProfilImageData, ProfilBannerData, GetElementsAboutData, MulticonnectData, RelaunchInvitationData, GetNewsData, GetNewsByIdData, AddNewsData, AddImageNewsData, AddFileNewsData, DeleteNewsData, UpdateNewsData, ShareNewsData, GetCommentsData, AddCommentsData, DeleteCommentsData, UpdateCommentsData, SearchTagsData, ShowVoteData, GlobalAutocompleteData, CityAutocompleteData, CityAutocompleteByCountryData, SuggestionInputData, GetProjectsNoAdminData, GetProjectsAdminData, GetPoisNoAdminData, GetPoisAdminData, GlobalAutocompleteAdminCostumData, GetOrganizationsNoAdminData, GetOrganizationsAdminData, GetUserEligiblePlacesData, GetMembersNoAdminData, GetMembersAdminData, GetFriendsAdminData, GetSubscriptionsData, GetSubscriptionsAdminData, GetSubscribersData, GetSubscribersAdminData, GetContributorsNoAdminData, GetContributorsAdminData, GetBadgesData, GetBadgesFiltersData, ConnectData, CreateInvitationLinkData, ConnectByRefData, DisconnectData, GetElementsKeyData, GetFavorisData, DeleteFavorisData, AddFavorisData, AddOrganizationData, AddProjectData, AddPoiData, AddEventData, DeleteElementData, AddImageElementData, LinkValidateData, SearchMemberAutocompleteData, GetNotificationsData, GetNotificationsCountData, NotificationUpdateData, MarkNotificationAsReadData, ActivitypubSearchData, ActivitypubLinkData, ActivitypubGetCommunityData, GetBadgeData, AddBadgesData, AssignBadgesData, GetEventsData, SearchEventsCostumData, ShareEventsData, InviteMembersData, FollowData, GetCostumJsonData, GlobalAutocompleteCostumData, NavigatorGettlData, CostumEventRequestActorsData, CostumEventRequestSubeventsData, CostumEventRequestElementEventData, CostumEventRequestCategoriesData, CostumEventRequestDatesData, CostumEventRequestEventData, CostumEventRequestLinkTlToEventData, CostumEventRequestLoadContextTagData, GetGalleryData, GetAttendeesNoAdminData, GetAttendeesAdminData, CoformAnswersSearchData, CoformAnswersByIdData, GetCoformByIdData, CoformUploadAnswerFileData, DeleteCoformAnswerFileData, CoformGetAnswerFilesData, GetCoformCatalogsData, SaveCoformAnswerData, GetCoformAnswerHistoryData, GetCoformMultievalDataData, GetCoformCommontableContributorsData, AddVoteData, AddReportAbuseData, UpdatePathValueData, DeleteDocumentByContextData, DeleteDocumentByIdData, DemoteAdminData, CostumFilterCoformData, CostumFilterCoformByPathData, GetCountriesData, SearchZonesData, CoformAnswersByFormsData, CostumToolsCatalogData, CostumToolUsersData, CostumCommunInfoData, CostumSaveToolEnrichmentData, CostumCommunListData, GenerateAnswerFromFormData, FundingEnvelopeData, CoremuOperationData, CostumProjectActionRequestNewData, CostumProjectActionRequestSetStatusData, CostumProjectActionRequestSetDateData, CostumProjectActionRequestSetContributorsData, CostumProjectActionRequestCancelData, CostumProjectActionRequestArchiveData, LinkDiscourseAccountData, UnlinkDiscourseAccountData, DiscourseProfileData, DiscourseCheckEmailData, DiscourseDismissLinkData, LinkMediawikiAccountData, UnlinkMediawikiAccountData, GetMediawikiContributionsData, AddClassifiedData, PersonActivateData, ImportPreviewData, ExportElementsData, ImportElementsData, GeocodageData, ValidateGroupData, SetSourceData, ModerateData, NewsModerateData, CommentModerateData, UploadDocumentData, ZoneGetShapeData, ZoneGetZonirisData, CostumListValuesData, DirectoryProposalData, DirectoryProposalCountData, DirectoryProposalNewCounterData } from "./EndpointApi.types.js";
2
+ import type { DocumentListData, PersonRegisterData, AuthenticateUrlData, RefreshTokenUrlData, PasswordRecoveryData, PasswordResetData, ServerExchangeTokenData, ChangePasswordData, DeleteAccountData, UpdateSettingsData, UpdateBlockDescriptionData, UpdateBlockInfoData, UpdateBlockSocialData, UpdateBlockLocalityData, UpdateBlockSlugData, CheckData, ProfilImageData, ProfilBannerData, GetElementsAboutData, MulticonnectData, RelaunchInvitationData, GetNewsData, GetNewsByIdData, AddNewsData, AddImageNewsData, AddFileNewsData, DeleteNewsData, UpdateNewsData, ShareNewsData, GetCommentsData, AddCommentsData, DeleteCommentsData, UpdateCommentsData, SearchTagsData, ShowVoteData, GlobalAutocompleteData, CityAutocompleteData, CityAutocompleteByCountryData, SuggestionInputData, GetProjectsNoAdminData, GetProjectsAdminData, GetPoisNoAdminData, GetPoisAdminData, GlobalAutocompleteAdminCostumData, GetOrganizationsNoAdminData, GetOrganizationsAdminData, GetUserEligiblePlacesData, GetMembersNoAdminData, GetMembersAdminData, GetFriendsAdminData, GetSubscriptionsData, GetSubscriptionsAdminData, GetSubscribersData, GetSubscribersAdminData, GetContributorsNoAdminData, GetContributorsAdminData, GetBadgesData, GetBadgesFiltersData, ConnectData, CreateInvitationLinkData, ConnectByRefData, DisconnectData, GetElementsKeyData, GetFavorisData, DeleteFavorisData, AddFavorisData, AddOrganizationData, AddProjectData, AddPoiData, AddEventData, DeleteElementData, AddImageElementData, LinkValidateData, SearchMemberAutocompleteData, GetNotificationsData, GetNotificationsCountData, NotificationUpdateData, MarkNotificationAsReadData, ActivitypubSearchData, ActivitypubLinkData, ActivitypubGetCommunityData, GetBadgeData, AddBadgesData, AssignBadgesData, GetEventsData, SearchEventsCostumData, ShareEventsData, InviteMembersData, FollowData, GetCostumJsonData, GlobalAutocompleteCostumData, NavigatorGettlData, CostumEventRequestActorsData, CostumEventRequestSubeventsData, CostumEventRequestElementEventData, CostumEventRequestCategoriesData, CostumEventRequestDatesData, CostumEventRequestEventData, CostumEventRequestLinkTlToEventData, CostumEventRequestLoadContextTagData, GetGalleryData, GetAttendeesNoAdminData, GetAttendeesAdminData, CoformAnswersSearchData, CoformAnswersByIdData, GetCoformByIdData, CoformUploadAnswerFileData, DeleteCoformAnswerFileData, CoformGetAnswerFilesData, GetCoformCatalogsData, SaveCoformAnswerData, GetCoformAnswerHistoryData, GetCoformMultievalDataData, GetCoformCommontableContributorsData, AddVoteData, AddReportAbuseData, UpdatePathValueData, DeleteDocumentByContextData, DeleteDocumentByIdData, DemoteAdminData, CostumFilterCoformData, CostumFilterCoformByPathData, GetCountriesData, SearchZonesData, CoformAnswersByFormsData, CostumToolsCatalogData, CostumToolUsersData, CostumCommunInfoData, CostumSaveToolEnrichmentData, CostumCommunListData, GenerateAnswerFromFormData, FundingEnvelopeData, CoremuOperationData, CostumProjectActionRequestNewData, CostumProjectActionRequestSetStatusData, CostumProjectActionRequestSetDateData, CostumProjectActionRequestSetContributorsData, CostumProjectActionRequestCancelData, CostumProjectActionRequestArchiveData, LinkDiscourseAccountData, UnlinkDiscourseAccountData, DiscourseProfileData, DiscourseCheckEmailData, DiscourseDismissLinkData, LinkMediawikiAccountData, UnlinkMediawikiAccountData, GetMediawikiContributionsData, AddClassifiedData, PersonActivateData, PersonValidateInvitationData, ValidateInvitationByMailData, ImportPreviewData, ExportElementsData, ImportElementsData, GeocodageData, ValidateGroupData, SetSourceData, ModerateData, NewsModerateData, CommentModerateData, UploadDocumentData, ZoneGetShapeData, ZoneGetZonirisData, CostumListValuesData, DirectoryProposalData, DirectoryProposalCountData, DirectoryProposalNewCounterData } from "./EndpointApi.types.js";
3
3
  /**
4
4
  * Classe EndpointApi générée automatiquement depuis endpoints-copie.json
5
5
  */
@@ -1499,6 +1499,24 @@ export declare class EndpointApi {
1499
1499
  * @throws {Error} - En cas d'erreur inattendue.
1500
1500
  */
1501
1501
  personActivate(data: PersonActivateData): Promise<any>;
1502
+ /**
1503
+ * Valider une invitation (lien email) — passerelle vers l'inscription : Vérifie la clé d'invitation (sha256(user+email)) et renvoie de quoi ouvrir le bon panneau : REGISTER pré-rempli si l'invité est `pending` (il pose son mot de passe à l'inscription — ≠ activate qui valide un compte existant), LOGIN si le compte est déjà finalisé. PASSERELLE : n'écrit RIEN (port ValidateInvitationAction). Divergence T1 : le legacy répond 302 vers #panel.box-register|login avec les params en query, ici JSON.
1504
+ * Constant : PERSON_VALIDATE_INVITATION
1505
+ * @param data - Données envoyées à l'API
1506
+ * @returns Les données de réponse.
1507
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1508
+ * @throws {Error} - En cas d'erreur inattendue.
1509
+ */
1510
+ personValidateInvitation(data: PersonValidateInvitationData): Promise<any>;
1511
+ /**
1512
+ * Répondre à une invitation par e-mail (Accepter / Refuser) : Répond à une invitation depuis le lien Accepter/Refuser d'un e-mail (l'invité n'est PAS connecté). answer='true' → confirme l'adhésion (retire le flag isInviting des DEUX liens) ; answer='false' → déconnecte les deux liens. Renvoie {result,msg,next?} où next = la cible de redirection legacy : validateinvitation/.../invitation/1 si l'invité est encore tobeactivated (il pose son mot de passe à l'inscription), sinon le deep-link #page.type.<targetType>.id.<targetId>. Port ValidateInvitationByMailAction. Divergence T1 : le legacy répond 302, ici JSON. answer comparé en CHAÎNE. SÉCURITÉ : aucune validationKey sur ce lien (faiblesse legacy, versée au registre sécurité).
1513
+ * Constant : VALIDATE_INVITATION_BY_MAIL
1514
+ * @param data - Données envoyées à l'API
1515
+ * @returns Les données de réponse.
1516
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
1517
+ * @throws {Error} - En cas d'erreur inattendue.
1518
+ */
1519
+ validateInvitationByMail(data: ValidateInvitationByMailData): Promise<any>;
1502
1520
  /**
1503
1521
  * Prévisualiser un import (table de contrôle) : Construit la table d'affichage [name, address, warnings, msgError] d'une liste d'éléments déjà vérifiés (Import::createArrayList), pour prévisualiser un import avant insertion.
1504
1522
  * Constant : IMPORT_PREVIEW
@@ -6001,6 +6001,10 @@ export interface CostumToolUsersData {
6001
6001
  * JSON string[] serialise (optionnel)
6002
6002
  */
6003
6003
  inputKeys?: string;
6004
+ /**
6005
+ * Nom normalise de l'outil (normalizeToolName, la meme fonction que ToolsCatalogListAction utilise pour grouper). Filtre INDISPENSABLE en pratique : un criteriaId identifie une ligne du catalogue de BESOINS partagee par toutes les reponses, pas la saisie d'un lieu. Sans lui, le serveur remonte aussi les lieux ayant repondu au meme besoin avec un TOUT AUTRE outil. Optionnel au contrat (absent => comportement inchange, retrocompatible) ; cle-absente != chaine-vide (chaine vide desactive le filtre).
6006
+ */
6007
+ normalizedName?: string;
6004
6008
  /**
6005
6009
  * Slug du costum
6006
6010
  */
@@ -6544,6 +6548,36 @@ export interface PersonActivateData {
6544
6548
  validationKey: string;
6545
6549
  [k: string]: unknown;
6546
6550
  }
6551
+ export interface PersonValidateInvitationData {
6552
+ /**
6553
+ * Identifiant (_id) de l'invité
6554
+ */
6555
+ user: string;
6556
+ /**
6557
+ * Clé = sha256(user + email)
6558
+ */
6559
+ validationKey: string;
6560
+ [k: string]: unknown;
6561
+ }
6562
+ export interface ValidateInvitationByMailData {
6563
+ /**
6564
+ * Identifiant (_id) de l'invité
6565
+ */
6566
+ userId: string;
6567
+ /**
6568
+ * Type de l'élément cible (organizations/projects/events)
6569
+ */
6570
+ targetType: string;
6571
+ /**
6572
+ * Identifiant (_id) de l'élément cible
6573
+ */
6574
+ targetId: string;
6575
+ /**
6576
+ * Réponse en CHAÎNE : 'true' (accepter) / 'false' (refuser)
6577
+ */
6578
+ answer: "true" | "false";
6579
+ [k: string]: unknown;
6580
+ }
6547
6581
  export interface ImportPreviewData {
6548
6582
  /**
6549
6583
  * Liste d'éléments vérifiés à prévisualiser.
@@ -85,4 +85,48 @@ export declare class UserApi {
85
85
  user: string;
86
86
  validationKey: string;
87
87
  }): Promise<any>;
88
+ /**
89
+ * Valide un lien d'INVITATION reçu par e-mail — PASSERELLE vers l'inscription (ne modifie RIEN,
90
+ * ≠ {@link activateAccount} qui valide un compte existant).
91
+ *
92
+ * Endpoint public (`PERSON_VALIDATE_INVITATION`, aucune auth). Vérifie la clé `sha256(user+email)`
93
+ * puis indique le panneau à ouvrir : `panel:"register"` (invité `pending` — pré-rempli
94
+ * `email`/`name`/`pendingUserId`, il pose son mot de passe à l'inscription) ; `panel:"login"` +
95
+ * `error:"accountAlreadyExists"` (compte déjà finalisé) ; clé fausse → `panel:"register"`,
96
+ * `error:"somethingWrong"`. `error:"unknwonInvitor"` si l'invitant est introuvable.
97
+ *
98
+ * @param params.user - `_id` de l'invité.
99
+ * @param params.validationKey - `sha256(user + email)`.
100
+ * @returns `{ result, panel?, email?, name?, userValidated?, pendingUserId?, invitor?, error?, msg? }`.
101
+ * @throws {ApiResponseError} Si `result === false` (paramètres manquants).
102
+ */
103
+ validateInvitation({ user, validationKey }: {
104
+ user: string;
105
+ validationKey: string;
106
+ }): Promise<any>;
107
+ /**
108
+ * Répond à une invitation depuis le lien Accepter/Refuser d'un e-mail (l'invité n'est PAS connecté).
109
+ *
110
+ * Endpoint public (`VALIDATE_INVITATION_BY_MAIL`, aucune auth). `answer:"true"` confirme l'adhésion
111
+ * (retire le flag `isInviting` des deux liens), `answer:"false"` déconnecte. Renvoie
112
+ * `{ result, msg, next? }` où `next` = la cible de redirection legacy : le lien `validateinvitation`
113
+ * (→ {@link validateInvitation}) si l'invité est encore à activer (il pose alors son mot de passe),
114
+ * sinon le deep-link `#page.type.<targetType>.id.<targetId>`.
115
+ *
116
+ * ⚠️ Contrairement à {@link validateInvitation}, `result:false` n'est PAS levé en erreur : c'est un
117
+ * cas NORMAL (idempotence — un 2ᵉ « Accepter » ne retrouve plus le flag). L'appelant lit
118
+ * `{ result, msg, next }` uniformément et dégrade en « déjà répondu » sur `result:false`.
119
+ *
120
+ * @param params.userId - `_id` de l'invité.
121
+ * @param params.targetType - type de l'élément cible (organizations/projects/events).
122
+ * @param params.targetId - `_id` de l'élément cible.
123
+ * @param params.answer - `"true"` (accepter) / `"false"` (refuser), en CHAÎNE.
124
+ * @returns `{ result: boolean, msg: string, next?: string }`.
125
+ */
126
+ validateInvitationByMail({ userId, targetType, targetId, answer }: {
127
+ userId: string;
128
+ targetType: string;
129
+ targetId: string;
130
+ answer: "true" | "false";
131
+ }): Promise<any>;
88
132
  }
@@ -127,4 +127,11 @@ export interface ToolUsersParams {
127
127
  /** tableau brut ou déjà sérialisé — la méthode le sérialise en JSON si tableau */
128
128
  criteriaIds: string | string[];
129
129
  inputKeys?: string | string[];
130
+ /**
131
+ * Nom normalisé de l'outil (`ToolCatalogItem.normalizedName`) — à TOUJOURS transmettre en pratique :
132
+ * un `criteriaId` désigne une ligne du catalogue de BESOINS partagée par toutes les réponses, pas la
133
+ * saisie d'un lieu. Sans lui, le serveur remonte aussi les lieux ayant répondu au même besoin avec un
134
+ * TOUT AUTRE outil. Optionnel au contrat (rétrocompatible) ; clé-absente ≠ chaîne-vide.
135
+ */
136
+ normalizedName?: string;
130
137
  }