@communecter/cocolight-api-client 1.0.197 → 1.0.198

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 (34) hide show
  1. package/dist/1641.cocolight-api-client.browser.js +1 -1
  2. package/dist/1641.cocolight-api-client.cjs +1 -1
  3. package/dist/2379.cocolight-api-client.browser.js +1 -1
  4. package/dist/2379.cocolight-api-client.cjs +1 -1
  5. package/dist/3330.cocolight-api-client.browser.js +1 -1
  6. package/dist/3330.cocolight-api-client.cjs +1 -1
  7. package/dist/3464.cocolight-api-client.browser.js +1 -0
  8. package/dist/3464.cocolight-api-client.cjs +1 -0
  9. package/dist/4472.cocolight-api-client.browser.js +1 -1
  10. package/dist/4472.cocolight-api-client.cjs +1 -1
  11. package/dist/4686.cocolight-api-client.browser.js +1 -1
  12. package/dist/4686.cocolight-api-client.cjs +1 -1
  13. package/dist/601.cocolight-api-client.browser.js +1 -1
  14. package/dist/601.cocolight-api-client.cjs +1 -1
  15. package/dist/8264.cocolight-api-client.browser.js +1 -1
  16. package/dist/8264.cocolight-api-client.cjs +1 -1
  17. package/dist/8300.cocolight-api-client.browser.js +1 -1
  18. package/dist/8300.cocolight-api-client.cjs +1 -1
  19. package/dist/8894.cocolight-api-client.browser.js +1 -1
  20. package/dist/8894.cocolight-api-client.cjs +1 -1
  21. package/dist/cocolight-api-client.browser.js +2 -2
  22. package/dist/cocolight-api-client.cjs +1 -1
  23. package/dist/cocolight-api-client.vite.mjs.js +1 -1
  24. package/dist/cocolight-api-client.vite.mjs.js.map +1 -1
  25. package/package.json +1 -1
  26. package/types/api/BaseEntity.d.ts +14 -1
  27. package/types/api/EndpointApi.d.ts +12 -2
  28. package/types/api/EndpointApi.types.d.ts +44 -2
  29. package/types/api/User.d.ts +25 -1
  30. package/types/api/UserApi.d.ts +16 -1
  31. package/types/costum/runtime.d.ts +2 -1
  32. package/types/costum/schemas/EcosystemeSanteReunion.d.ts +3 -0
  33. package/types/costum/types.d.ts +97 -51
  34. package/types/endpoints.module.d.ts +1091 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@communecter/cocolight-api-client",
3
- "version": "1.0.197",
3
+ "version": "1.0.198",
4
4
  "description": "Client Axios simplifié pour l'API cocolight",
5
5
  "repository": {
6
6
  "type": "git",
@@ -534,9 +534,22 @@ export declare class BaseEntity<TServerData = any> {
534
534
  *
535
535
  * L'univers des champs éditables = `_allowedFieldsCache` (union writable des SCHEMA_CONSTANTS + schéma costum,
536
536
  * calculée au build du draft) ∪ champs DATA costum déclarés (robuste si le cache est antérieur au costum).
537
+ *
538
+ * `opts.onlyKeys` (chemin HYBRIDE, cf. `User._update`) : restreint l'univers à CES clés — l'`element/save`
539
+ * ne porte alors que les champs costum, les blocs `updateblock` standards gardant les leurs. L'image
540
+ * (`profil_avatar`) suit la même règle : elle n'est traitée ici que si elle fait partie des clés demandées.
537
541
  * @returns true si au moins un champ a été envoyé (donc refresh ensuite).
538
542
  */
539
- protected _saveCostumViaElementSave(payload: Record<string, any>): Promise<boolean>;
543
+ protected _saveCostumViaElementSave(payload: Record<string, any>, opts?: {
544
+ onlyKeys?: Iterable<string>;
545
+ }): Promise<boolean>;
546
+ /**
547
+ * Clés WRITABLE d'une constante de schéma (contrat, ⊕ `VIRTUAL_SCHEMAS` de l'entité), évaluées pour
548
+ * `data` (les branches `if/then` sur `typeElement` sont résolues comme au build du draft). Sert au
549
+ * chemin hybride (`User._update`) à séparer ce que les blocs standards savent envoyer de ce qui ne
550
+ * peut partir que par `element/save`. Constante inconnue → `[]`.
551
+ */
552
+ protected _writableFieldsOf(constant: string, data?: Record<string, unknown>): string[];
540
553
  /** Recherche le schéma d'une propriété dans un schéma combiné `{ allOf: [...] }` (1er match). */
541
554
  private _lookupPropSchema;
542
555
  /**
@@ -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, ContactSendData, 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, LinkSetRolesData, 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, NavigatorGetRessourceTlData, CostumEventRequestActorsData, CostumEventRequestSubeventsData, CostumEventRequestElementEventData, CostumEventRequestCategoriesData, CostumEventRequestDatesData, CostumEventRequestEventData, CostumEventRequestLinkTlToEventData, CostumEventRequestLoadContextTagData, AgendaGetPdfData, 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, GenerateProjectFromAnswerData, GenerateMilestoneFromDepenseData, FundingEnvelopeData, CoremuOperationData, CoremuAddFinancerData, CoremuPayFinancerData, CoremuValidateFinancerPaymentData, CoremuDeleteFinancerData, CostumProjectActionRequestNewData, CostumProjectActionRequestSetStatusData, CostumProjectActionRequestSetDateData, CostumProjectActionRequestSetContributorsData, CostumProjectActionRequestCancelData, CostumProjectActionRequestArchiveData, LinkDiscourseAccountData, UnlinkDiscourseAccountData, DiscourseProfileData, DiscourseCheckEmailData, DiscourseDismissLinkData, LinkMediawikiAccountData, UnlinkMediawikiAccountData, GetMediawikiContributionsData, AddClassifiedData, PersonActivateData, PersonValidateInvitationData, ValidateInvitationByMailData, ImportPreviewData, ExportElementsData, ImportElementsData, GeocodageData, ValidateGroupData, SetSourceData, TransferSourceCheckData, TransferSourceApplyData, TransferSourceRollbackData, TransferSourceHistoryData, ModerateData, NewsModerateData, CommentModerateData, UploadDocumentData, ZoneGetShapeData, ZoneGetZonirisData, CostumListValuesData, CostumResolvedData, DirectoryProposalData, DirectoryProposalCountData, DirectoryProposalNewCounterData, CostumCreateAmpliData, CostumRemoveAmpliData } 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, ContactSendData, 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, LinkSetRolesData, CreateInvitationLinkData, ConnectByRefData, DisconnectData, GetElementsKeyData, GetFavorisData, DeleteFavorisData, AddFavorisData, AddOrganizationData, SaveCitoyenData, 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, NavigatorGetRessourceTlData, CostumEventRequestActorsData, CostumEventRequestSubeventsData, CostumEventRequestElementEventData, CostumEventRequestCategoriesData, CostumEventRequestDatesData, CostumEventRequestEventData, CostumEventRequestLinkTlToEventData, CostumEventRequestLoadContextTagData, AgendaGetPdfData, 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, GenerateProjectFromAnswerData, GenerateMilestoneFromDepenseData, FundingEnvelopeData, CoremuOperationData, CoremuAddFinancerData, CoremuPayFinancerData, CoremuValidateFinancerPaymentData, CoremuDeleteFinancerData, CostumProjectActionRequestNewData, CostumProjectActionRequestSetStatusData, CostumProjectActionRequestSetDateData, CostumProjectActionRequestSetContributorsData, CostumProjectActionRequestCancelData, CostumProjectActionRequestArchiveData, LinkDiscourseAccountData, UnlinkDiscourseAccountData, DiscourseProfileData, DiscourseCheckEmailData, DiscourseDismissLinkData, LinkMediawikiAccountData, UnlinkMediawikiAccountData, GetMediawikiContributionsData, AddClassifiedData, PersonActivateData, PersonValidateInvitationData, ValidateInvitationByMailData, ImportPreviewData, ExportElementsData, ImportElementsData, GeocodageData, ValidateGroupData, SetSourceData, TransferSourceCheckData, TransferSourceApplyData, TransferSourceRollbackData, TransferSourceHistoryData, ModerateData, NewsModerateData, CommentModerateData, UploadDocumentData, ZoneGetShapeData, ZoneGetZonirisData, CostumListValuesData, CostumResolvedData, DirectoryProposalData, DirectoryProposalCountData, DirectoryProposalNewCounterData, CostumCreateAmpliData, CostumRemoveAmpliData } from "./EndpointApi.types.js";
3
3
  /**
4
4
  * Classe EndpointApi générée automatiquement depuis endpoints-copie.json
5
5
  */
@@ -57,7 +57,7 @@ export declare class EndpointApi {
57
57
  */
58
58
  documentList(data: DocumentListData): Promise<any>;
59
59
  /**
60
- * Enregistrement d'un utilisateur : Permet d’enregistrer un nouvel utilisateur avec ses informations personnelles.
60
+ * Enregistrement d'un utilisateur : Permet d’enregistrer un nouvel utilisateur avec ses informations personnelles. Accepte des champs supplémentaires validés côté serveur (règle costum citoyens, cf. $comment de la requête) et le mode `single_step_register` (compte actif d'emblée).
61
61
  * Constant : PERSON_REGISTER
62
62
  * @param data - Données envoyées à l'API
63
63
  * @returns Les données de réponse.
@@ -719,6 +719,16 @@ export declare class EndpointApi {
719
719
  * @throws {Error} - En cas d'erreur inattendue.
720
720
  */
721
721
  addOrganization(data: AddOrganizationData): Promise<any>;
722
+ /**
723
+ * Sauvegarder un citoyen (profil + champs costum) : Met à jour un citoyen EXISTANT via element/save (collection=citoyens) : le SEUL chemin legacy qui accepte les champs costum d'une personne (DataValidator::validate étend Person::$dataBinding avec typeObj person/persons/citoyens du costum posté). Droit : soi-même ou super-admin (jamais un admin de costum : Authorisation.php:271). JAMAIS de création : `id` est requis (la lib refuse User._add). Les champs sont écrits à la RACINE du citoyen. cf. cocolight-backend docs/33.
724
+ * Constant : SAVE_CITOYEN
725
+ * @param data - Données envoyées à l'API
726
+ * @returns Les données de réponse.
727
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
728
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
729
+ * @throws {Error} - En cas d'erreur inattendue.
730
+ */
731
+ saveCitoyen(data: SaveCitoyenData): Promise<any>;
722
732
  /**
723
733
  * Créer un projet : Crée un nouveau projet avec des informations de base et des options supplémentaires.
724
734
  * Constant : ADD_PROJECT
@@ -38,9 +38,9 @@ export interface PersonRegisterData {
38
38
  */
39
39
  pendingUserId?: string;
40
40
  /**
41
- * Mode d’enregistrement
41
+ * Mode d'inscription (Person::REGISTER_MODE_*). `normal` (défaut) : le compte est créé avec `roles.tobeactivated` et ne peut se connecter qu'après validation de l'e-mail. `single_step_register` : compte ACTIF immédiatement (pas de tobeactivated ; un username déjà pris est suffixé d'un nombre au lieu d'être refusé) ; le mail de confirmation d'adresse part quand même (variante « compte déjà actif »). Les autres modes legacy (two_steps_register, email, service, minimal) ne sont pas exposés.
42
42
  */
43
- mode?: string;
43
+ mode?: "normal" | "single_step_register";
44
44
  /**
45
45
  * Indique s’il s’agit d’une invitation (facultatif)
46
46
  */
@@ -3436,6 +3436,48 @@ export interface AddOrganizationData {
3436
3436
  };
3437
3437
  [k: string]: unknown;
3438
3438
  }
3439
+ export interface SaveCitoyenData {
3440
+ /**
3441
+ * ID du citoyen (requis : mise à jour seule)
3442
+ */
3443
+ id: string;
3444
+ collection: "citoyens";
3445
+ key?: "person";
3446
+ name?: string;
3447
+ username?: string;
3448
+ email?: string;
3449
+ shortDescription?: string;
3450
+ description?: string;
3451
+ url?: string;
3452
+ tags?: "" | string[];
3453
+ birthDate?: string;
3454
+ mobile?: string;
3455
+ fixe?: string;
3456
+ telephone?: {
3457
+ [k: string]: unknown;
3458
+ };
3459
+ address?: {
3460
+ [k: string]: unknown;
3461
+ } | string;
3462
+ geo?: {
3463
+ [k: string]: unknown;
3464
+ };
3465
+ geoPosition?: {
3466
+ [k: string]: unknown;
3467
+ };
3468
+ /**
3469
+ * Type de professionnel (champ du modèle Person, cf. docs/33)
3470
+ */
3471
+ typepro?: string;
3472
+ /**
3473
+ * Précision quand typepro vaut « autres »
3474
+ */
3475
+ othersTypepro?: string;
3476
+ costumSlug?: string;
3477
+ costumId?: string;
3478
+ costumType?: string;
3479
+ [k: string]: unknown;
3480
+ }
3439
3481
  export interface AddProjectData {
3440
3482
  /**
3441
3483
  * ID
@@ -13,6 +13,14 @@ type UserItemNormalized = import("./serverDataType/User.js").UserItemNormalized;
13
13
  export declare class User extends BaseEntity<UserItemNormalized> {
14
14
  static entityType: "citoyens";
15
15
  static entityTag: string;
16
+ /**
17
+ * UN SEUL chemin d'écriture pour les champs COSTUM d'un citoyen : `element/save` collection=citoyens
18
+ * (`SAVE_CITOYEN`, mise à jour seule) — le seul que le legacy fasse passer par `DataValidator::validate`
19
+ * avec le costum posté (`updateblock`/`updatefield` rejettent ou ignorent). Mise à jour UNIQUEMENT :
20
+ * `_add` reste 403, aucune création de citoyen par la lib (docs/33 backend §2). Lu par
21
+ * `_saveCostumViaElementSave` (appelée par `_update` en HYBRIDE, pas pour tout l'update).
22
+ */
23
+ static COSTUM_ADD_CONSTANT: string;
16
24
  static SCHEMA_CONSTANTS: string[];
17
25
  static UPDATE_BLOCKS: Map<"UPDATE_BLOCK_SLUG" | "PROFIL_IMAGE" | "UPDATE_BLOCK_DESCRIPTION" | "UPDATE_BLOCK_INFO" | "UPDATE_BLOCK_LOCALITY" | "UPDATE_BLOCK_SOCIAL", "updateImageProfil" | "updateSlug" | "updateDescription" | "updateLocality" | "updateInfo" | "updateSocial">;
18
26
  defaultFields: Record<string, any>;
@@ -128,7 +136,23 @@ export declare class User extends BaseEntity<UserItemNormalized> {
128
136
  save(): Promise<Record<string, any>>;
129
137
  _add: () => Promise<never>;
130
138
  /**
131
- * Met à jour les blocs modifiés de l'utilisateur via les constantes de schéma définies.
139
+ * Clés que SEUL le costum sait écrire : les champs déclarés par le contexte costum (`_costumCtx.schema.
140
+ * properties` ∪ `fields`) MOINS ceux qu'un bloc `updateblock` standard porte déjà (`UPDATE_BLOCKS`,
141
+ * évalués pour `typeElement:"citoyens"`). Un costum legacy redéclare volontiers `name`/`email`/`tags`
142
+ * (widget du form) : ces clés restent aux blocs standards, dont la sémantique est propre. Vide sans
143
+ * contexte costum à champs.
144
+ */
145
+ private _costumOnlyKeys;
146
+ /**
147
+ * Met à jour l'utilisateur — chemin HYBRIDE (docs/33 backend) :
148
+ * 1. les champs COSTUM modifiés (`_costumOnlyKeys`) partent en UN `element/save` collection=citoyens
149
+ * (`SAVE_CITOYEN`, enveloppe costum `isUpdate`, même règle d'effacement → `""` que
150
+ * `_saveCostumViaElementSave`, dont c'est l'appel filtré) ;
151
+ * 2. PUIS les blocs `updateblock` standards (description, social, locality, info, slug, image) portent
152
+ * les champs standards, en EXCLUANT les clés costum.
153
+ * Contrairement à `Organization`, l'update entier n'est PAS routé vers `element/save` : les blocs du
154
+ * citoyen (slug, locality, social, image) ont une sémantique propre. Sans contexte costum, comportement
155
+ * historique inchangé (blocs seuls).
132
156
  *
133
157
  * @param payload - Données courantes à comparer et envoyer.
134
158
  * @returns - Indique s'il y a eu une modification réelle.
@@ -47,10 +47,23 @@ export declare class UserApi {
47
47
  * @param params.costumSlug - (option) slug du costum de déploiement → estampille `source.key` du citoyen
48
48
  * côté backend (port Person::insert). `costumId`/`costumType` = entité porteuse (requis si le slug n'est
49
49
  * pas un doc `costum`, ex. un site porté par une org).
50
+ * @param params.fields - (option) champs SUPPLÉMENTAIRES du citoyen, envoyés À PLAT dans le body (le legacy
51
+ * lit `$_POST` à la racine, pas un sous-objet). La règle d'acceptation vit côté SERVEUR et n'est pas
52
+ * rejouée ici. L'inscription étant anonyme, c'est une LISTE BLANCHE : champs déclarés pour les personnes
53
+ * par le costum posté (`typeObj` citoyens/person/alias `sameAs:"person"`), ou champs du modèle créés pour
54
+ * les inscriptions costum (`typepro`, `othersTypepro`, `profession`…) ; valeur simple (scalaire ou liste de
55
+ * scalaires). Tout autre champ fait ÉCHOUER l'inscription (`{result:false, msg:"Contenu Invalide <clé> :
56
+ * Person"}` → `ApiResponseError`). Aucun schéma de champ
57
+ * n'est rejoué côté client (le contrat PERSON_REGISTER est `additionalProperties:true`) : le schéma digéré
58
+ * d'un champ costum (objet pour un finder/une adresse, date…) refuserait une valeur que le serveur
59
+ * accepte. Le serveur seul tranche. cf. cocolight-backend docs/33.
60
+ * @param params.mode - (option) `"normal"` (défaut legacy : compte à activer par e-mail) ou
61
+ * `"single_step_register"` : activation IMMÉDIATE (`roles.tobeactivated` retiré, `username` suffixé s'il
62
+ * est pris) — l'e-mail de validation part quand même (texte « déjà actif »).
50
63
  * @returns Réponse brute de l'API.
51
64
  * @throws {ApiResponseError} Si l'API retourne un échec (`result === false`).
52
65
  */
53
- register({ name, username, email, pwd, costumSlug, costumId, costumType }: {
66
+ register({ name, username, email, pwd, costumSlug, costumId, costumType, fields, mode }: {
54
67
  name: string;
55
68
  username: string;
56
69
  email: string;
@@ -58,6 +71,8 @@ export declare class UserApi {
58
71
  costumSlug?: string;
59
72
  costumId?: string;
60
73
  costumType?: string;
74
+ fields?: Record<string, unknown>;
75
+ mode?: "normal" | "single_step_register";
61
76
  }): Promise<any>;
62
77
  /**
63
78
  * Lance une procédure de récupération de mot de passe.
@@ -17,7 +17,8 @@ export declare function invalidateCostumCache(slug?: string): void;
17
17
  * Énumère TOUS les formulaires costum d'un slug (UN descripteur PAR SOUS-TYPE = clé `typeObj`) via
18
18
  * getcostumjson — pour l'assistant config (génération multi-form + routage `editModalMatch`). Distinct de
19
19
  * `CostumScope.describeForm(collection)` qui n'en renvoie qu'UN par collection. Seuls les sous-types dont la
20
- * collection de base est gérée par les fabriques (poi/organizations/projects/events) sont retournés.
20
+ * collection de base est dans `SCOPE_COLLECTIONS` (poi/organizations/projects/events/citoyens) sont retournés —
21
+ * pour `citoyens`, le form décrit l'ÉDITION du profil (et les champs d'inscription), jamais une création.
21
22
  */
22
23
  export declare function describeCostumForms(user: BaseEntity, slug: string): Promise<CostumFormDescriptor[]>;
23
24
  /**
@@ -0,0 +1,3 @@
1
+ import type { CostumExtensionModule } from "../types.js";
2
+ declare const mod: CostumExtensionModule;
3
+ export default mod;
@@ -1,5 +1,5 @@
1
- export type KnownCostumSlug = "CercleTravailleursSociauxLiberauxLaPlumeSociale" | "FabEn" | "LaReunionDesTiersLieux" | "LivingLabInnovationSocialeBraspanon" | "RoseLab" | "Santeentransition" | "alfph" | "ambitionTiersLieuxValDeLoire" | "assoKosasa" | "associationEkilibre" | "boclLe" | "bretagneTierslieux" | "caDuBassinDeThauTiersLieux" | "caDuBassinDeThauTiersLieux1" | "campagne" | "capTierslieux" | "catalyst" | "ccDesCaussesALaubracTiersLieux" | "chtitube" | "circuitCourt" | "cmcasHB" | "cmcasHauteBretagne" | "coFinancementTierslieux" | "coeurNumerique" | "communLundi" | "consortiumIledefranceTierslieux" | "copHautsdefrance" | "createchFablabDeLaMjcDeSaintjean" | "cressDeLaReunion1" | "cressReunion" | "cressReunionNetwork" | "ctenat" | "cyberReunion" | "daLocu" | "ecocentre" | "ekisphere" | "equipementsSportifs974" | "fabLimagne" | "fabdulys1" | "fablab3dplant" | "fablabChauxdefonds" | "federationDesCae" | "fianarantsoaAlimentation" | "formationGenerique" | "franceTierslieux" | "heraultTiersLieux" | "hinaura" | "hubmayotte" | "hubnouvellecaledonie" | "hubpolynesiefrancaise" | "hubreunion" | "hubterritoires" | "hubwallisetfutuna" | "hva" | "ibv2" | "institutBleu" | "journalInsoumisChambery" | "kpacite" | "laCompagnieDesTierslieux" | "laCooperativeTierslieux" | "laMaisonDesFaiseurs" | "laMinoterie1" | "laMyne" | "laReunionPourUnNumeriqueInclusif" | "laRosee" | "laSemaineDesTierslieux" | "laTresseTierslieu" | "labEnCommuns" | "labboite" | "lakou" | "lapossession" | "lattesTiersLieux" | "leFaugaTiersLieux" | "leTamponTiersLieux" | "lesCommunsDesTierslieux" | "lesImaginationsFertiles" | "lidairesTiersLieux" | "littoralHautsDeFrance" | "lotetgaronneTiersLieux" | "mayottePourUnNumeriqueInclusif" | "meir" | "montpellierMediterraneeMetropoleTiersLieux" | "montpellierTiersLieux" | "navigatorDesTierslieux" | "notragora" | "nouvellecaledoniePourUnNumeriqueInclusif" | "openAtlas" | "parent62" | "polynesieFrancaisePourUnNumeriqueInclusif" | "prdr" | "pyreneesatlantiquesTiersLieux" | "redlab" | "relief" | "reseauDesTierslieuxDeGuyane" | "reseauDesTierslieuxDeMayotte" | "reseauDesTierslieuxDuGrandEst" | "reseauNormandDesTierslieux" | "reseauRegionalDesTierslieuxGuadeloupe" | "reseauRegionalDesTierslieuxMartinique" | "reseauTierslieux" | "rfflabs" | "ries" | "sLieux" | "saintJosephTiersLieux" | "saintbenoitTiersLieux" | "saintbenoitTiersLieux1" | "saintbenoitTiersLieux2" | "saintpaulSport1" | "saintpaulTiersLieux" | "saintpierreTiersLieux" | "savoieTiersLieux" | "siteDuPactePourLaTransition" | "sportSanteBienetre" | "sudTierslieux" | "suppa" | "terramies" | "testeTplFormation" | "tiersLieuxGenerique" | "tierslieuxBfc" | "tierslieuxbelgique" | "tierslieuxorg" | "tierslieuxorg1" | "transiter" | "vhelioPeiTour2025" | "wallisetfutunaPourUnNumeriqueInclusif";
2
- export type Collection = "addPhoto" | "badges" | "classifieds" | "crowdfunding" | "events" | "organizations" | "person" | "poi" | "projects" | "proposal" | "ressources";
1
+ export type KnownCostumSlug = "CercleTravailleursSociauxLiberauxLaPlumeSociale" | "EcosystemeSanteReunion" | "FabEn" | "LaReunionDesTiersLieux" | "LivingLabInnovationSocialeBraspanon" | "RoseLab" | "Santeentransition" | "alfph" | "ambitionTiersLieuxValDeLoire" | "assoKosasa" | "associationEkilibre" | "boclLe" | "bretagneTierslieux" | "caDuBassinDeThauTiersLieux" | "caDuBassinDeThauTiersLieux1" | "campagne" | "capTierslieux" | "catalyst" | "ccDesCaussesALaubracTiersLieux" | "chtitube" | "circuitCourt" | "cmcasHB" | "cmcasHauteBretagne" | "coFinancementTierslieux" | "coeurNumerique" | "communLundi" | "consortiumIledefranceTierslieux" | "copHautsdefrance" | "createchFablabDeLaMjcDeSaintjean" | "cressDeLaReunion1" | "cressReunion" | "cressReunionNetwork" | "ctenat" | "cyberReunion" | "daLocu" | "ecocentre" | "ekisphere" | "equipementsSportifs974" | "fabLimagne" | "fabdulys1" | "fablab3dplant" | "fablabChauxdefonds" | "federationDesCae" | "fianarantsoaAlimentation" | "formationGenerique" | "franceTierslieux" | "heraultTiersLieux" | "hinaura" | "hubmayotte" | "hubnouvellecaledonie" | "hubpolynesiefrancaise" | "hubreunion" | "hubterritoires" | "hubwallisetfutuna" | "hva" | "ibv2" | "institutBleu" | "journalInsoumisChambery" | "kpacite" | "laCompagnieDesTierslieux" | "laCooperativeTierslieux" | "laMaisonDesFaiseurs" | "laMinoterie1" | "laMyne" | "laReunionPourUnNumeriqueInclusif" | "laRosee" | "laSemaineDesTierslieux" | "laTresseTierslieu" | "labEnCommuns" | "labboite" | "lakou" | "lapossession" | "lattesTiersLieux" | "leFaugaTiersLieux" | "leTamponTiersLieux" | "lesCommunsDesTierslieux" | "lesImaginationsFertiles" | "lidairesTiersLieux" | "littoralHautsDeFrance" | "lotetgaronneTiersLieux" | "mayottePourUnNumeriqueInclusif" | "meir" | "montpellierMediterraneeMetropoleTiersLieux" | "montpellierTiersLieux" | "navigatorDesTierslieux" | "notragora" | "nouvellecaledoniePourUnNumeriqueInclusif" | "openAtlas" | "parent62" | "polynesieFrancaisePourUnNumeriqueInclusif" | "prdr" | "pyreneesatlantiquesTiersLieux" | "redlab" | "relief" | "reseauDesTierslieuxDeGuyane" | "reseauDesTierslieuxDeMayotte" | "reseauDesTierslieuxDuGrandEst" | "reseauNormandDesTierslieux" | "reseauRegionalDesTierslieuxGuadeloupe" | "reseauRegionalDesTierslieuxMartinique" | "reseauTierslieux" | "rfflabs" | "ries" | "sLieux" | "saintJosephTiersLieux" | "saintbenoitTiersLieux" | "saintbenoitTiersLieux1" | "saintbenoitTiersLieux2" | "saintpaulSport1" | "saintpaulTiersLieux" | "saintpierreTiersLieux" | "savoieTiersLieux" | "siteDuPactePourLaTransition" | "sportSanteBienetre" | "sudTierslieux" | "suppa" | "terramies" | "testeTplFormation" | "tiersLieuxGenerique" | "tierslieuxBfc" | "tierslieuxbelgique" | "tierslieuxorg" | "tierslieuxorg1" | "transiter" | "vhelioPeiTour2025" | "wallisetfutunaPourUnNumeriqueInclusif";
2
+ export type Collection = "addPhoto" | "badges" | "citoyens" | "classifieds" | "crowdfunding" | "events" | "organizations" | "poi" | "projects" | "proposal" | "ressources";
3
3
  export interface CostumExtensionField {
4
4
  name: string;
5
5
  path: string;
@@ -62,6 +62,15 @@ export interface CostumFieldMap {
62
62
  userSurname?: string;
63
63
  };
64
64
  };
65
+ EcosystemeSanteReunion: {
66
+ poi: {
67
+ thematic?: ("Nutrition" | "Activité physique" | "Sommeil" | "Addictions" | "Bien-être mental" | "Culture & Santé")[];
68
+ };
69
+ projects: {
70
+ beneficiaires?: ("0 à 3 ans" | "3 à 6 ans" | "6 à 12 ans" | "12 à 18 ans" | "Enfants (2-9 ans)" | "Pré-adolescents/Adolescents (10-17 ans)" | "Personnes en perte d’autonomie" | "Femmes enceintes" | "Personnes en situation de handicap" | "Personnes de plus de 55 ans")[];
71
+ thematic?: ("Nutrition" | "Activité physique" | "Sommeil" | "Addictions" | "Bien-être mental" | "Culture & Santé")[];
72
+ };
73
+ };
65
74
  FabEn: {
66
75
  organizations: {
67
76
  group?: string | string[];
@@ -806,6 +815,15 @@ export interface CostumFieldMap {
806
815
  };
807
816
  };
808
817
  formationGenerique: {
818
+ citoyens: {
819
+ documentation?: Record<string, unknown>;
820
+ firstName?: string;
821
+ formLocality?: string;
822
+ image?: string;
823
+ link?: string;
824
+ surname?: string;
825
+ thematic?: string | string[];
826
+ };
809
827
  events: {
810
828
  description?: string;
811
829
  duration?: string | number;
@@ -819,11 +837,6 @@ export interface CostumFieldMap {
819
837
  organizations: {
820
838
  trainingQualification?: ("Qualiopi")[];
821
839
  };
822
- person: {
823
- documentation?: Record<string, unknown>;
824
- firstName?: string;
825
- formLocality?: string;
826
- };
827
840
  projects: {
828
841
  certificationTraining?: string | boolean;
829
842
  certificationsAwards?: string;
@@ -1028,31 +1041,7 @@ export interface CostumFieldMap {
1028
1041
  };
1029
1042
  };
1030
1043
  laCompagnieDesTierslieux: {
1031
- events: {
1032
- description?: string;
1033
- duration?: string | number;
1034
- image?: string;
1035
- trainer?: Record<string, unknown>;
1036
- };
1037
- organizations: {
1038
- buildingSurfaceArea?: string | number;
1039
- compagnon?: "Compagnon France Tiers-Lieux";
1040
- extraManageModel?: string;
1041
- extraTags?: string;
1042
- extraTypePlace?: string;
1043
- formLocality?: string;
1044
- holderOrganization?: string;
1045
- image?: string;
1046
- location?: string;
1047
- manageModel?: "Association" | "Collectif citoyen" | "Universités / Écoles d’ingénieurs ou de commerce / EPST" | "Établissements scolaires (Lycée, Collège, Ecole)" | "Collectivités (Département, Intercommunalité, Région, etc)" | "SARL-SA-SAS" | "SCIC" | "SCOP" | "Autre mode de gestion";
1048
- openingDate?: string;
1049
- photo?: Record<string, unknown>;
1050
- similarLink?: string;
1051
- siteSurfaceArea?: string | number;
1052
- territorialCercle?: ("Cercle Littoral" | "Cercle Pévèle Douaisis" | "Cercle Valenciennois-Hainaut-Cambresis" | "Cercle Avesnois - Thierache" | "Cercle Bassin Minier du Pas-de-Calais" | "Cercle MEL" | "Cercle Aisne" | "Cercle Oise" | "Cercle Somme" | "Cercle Coeur Pas de Calais" | "Equipe support MEL" | "Cercle Arrageois" | "Cercle Audomarois" | "Cercle Flandres" | "Cercle Sud-Aisne" | "Cercle Valenciennes")[];
1053
- typePlace?: ("Ateliers artisanaux partagés" | "Bureaux partagés / Coworking" | "Cuisine partagée / Foodlab" | "Fablab / Makerspace / Hackerspace (Espaces du Faire)" | "LivingLab / Laboratoire d'innovation sociale" | "Tiers-lieu nourricier" | "Tiers-lieu culturel / Lieux intermédiaires et indépendants" | "Autre famille de tiers-lieux")[];
1054
- };
1055
- person: {
1044
+ citoyens: {
1056
1045
  actionContributor?: string | boolean;
1057
1046
  addressCie?: Record<string, unknown>;
1058
1047
  adherent?: ("Adhérent Cie 2021" | "Adhérent Cie 2022" | "Adhérent Cie 2023" | "Adhérent Cie 2024" | "Adhérent Cie 2025")[];
@@ -1083,11 +1072,38 @@ export interface CostumFieldMap {
1083
1072
  referentTerritorialCercle?: string | boolean;
1084
1073
  reportingMember?: Record<string, unknown>;
1085
1074
  shortDescriptionCie?: string;
1075
+ status?: ("Salarié" | "Indépendant" | "Etudiant" | "Chercheur" | "Sans Emploi" | "Porteur de projet" | "Pilote de tiers-lieu" | "Reconversion" | "Élu" | "Référent autre réseau régional")[];
1086
1076
  supportCercle?: string | boolean;
1087
1077
  supportedStructures?: Record<string, unknown>;
1078
+ surname?: string;
1088
1079
  tagsCie?: string | string[];
1089
1080
  telephoneCie?: string | number;
1090
1081
  territorialCercle?: ("Cercle Littoral" | "Cercle Pévèle Douaisis" | "Cercle Valenciennois-Hainaut-Cambresis" | "Cercle Avesnois - Thierache" | "Cercle Bassin Minier du Pas-de-Calais" | "Cercle MEL" | "Cercle Aisne" | "Cercle Oise" | "Cercle Somme" | "Cercle Coeur Pas de Calais" | "Equipe support MEL" | "Cercle Arrageois" | "Cercle Audomarois" | "Cercle Flandres" | "Cercle Sud-Aisne" | "Cercle Valenciennes")[];
1082
+ trainer?: string | boolean;
1083
+ };
1084
+ events: {
1085
+ description?: string;
1086
+ duration?: string | number;
1087
+ image?: string;
1088
+ trainer?: Record<string, unknown>;
1089
+ };
1090
+ organizations: {
1091
+ buildingSurfaceArea?: string | number;
1092
+ compagnon?: "Compagnon France Tiers-Lieux";
1093
+ extraManageModel?: string;
1094
+ extraTags?: string;
1095
+ extraTypePlace?: string;
1096
+ formLocality?: string;
1097
+ holderOrganization?: string;
1098
+ image?: string;
1099
+ location?: string;
1100
+ manageModel?: "Association" | "Collectif citoyen" | "Universités / Écoles d’ingénieurs ou de commerce / EPST" | "Établissements scolaires (Lycée, Collège, Ecole)" | "Collectivités (Département, Intercommunalité, Région, etc)" | "SARL-SA-SAS" | "SCIC" | "SCOP" | "Autre mode de gestion";
1101
+ openingDate?: string;
1102
+ photo?: Record<string, unknown>;
1103
+ similarLink?: string;
1104
+ siteSurfaceArea?: string | number;
1105
+ territorialCercle?: ("Cercle Littoral" | "Cercle Pévèle Douaisis" | "Cercle Valenciennois-Hainaut-Cambresis" | "Cercle Avesnois - Thierache" | "Cercle Bassin Minier du Pas-de-Calais" | "Cercle MEL" | "Cercle Aisne" | "Cercle Oise" | "Cercle Somme" | "Cercle Coeur Pas de Calais" | "Equipe support MEL" | "Cercle Arrageois" | "Cercle Audomarois" | "Cercle Flandres" | "Cercle Sud-Aisne" | "Cercle Valenciennes")[];
1106
+ typePlace?: ("Ateliers artisanaux partagés" | "Bureaux partagés / Coworking" | "Cuisine partagée / Foodlab" | "Fablab / Makerspace / Hackerspace (Espaces du Faire)" | "LivingLab / Laboratoire d'innovation sociale" | "Tiers-lieu nourricier" | "Tiers-lieu culturel / Lieux intermédiaires et indépendants" | "Autre famille de tiers-lieux")[];
1091
1107
  };
1092
1108
  projects: {
1093
1109
  competence?: ("Suivi et gestion FEDER" | "Comptabilité" | "Gestion des paies" | "Recrutement" | "Gestion RH" | "Qualiopi" | "Graphisme" | "Developpement web" | "Hébergement web" | "Permaculture" | "Open data" | "Photographie" | "Conception Rédaction" | "Architecte" | "Facilitation" | "Médiation et gestion de crise" | "Restauration collective")[];
@@ -1498,6 +1514,9 @@ export interface CostumFieldMap {
1498
1514
  };
1499
1515
  };
1500
1516
  navigatorDesTierslieux: {
1517
+ events: {
1518
+ description?: string;
1519
+ };
1501
1520
  organizations: {
1502
1521
  buildingSurfaceArea?: string | number;
1503
1522
  extraManageModel?: string;
@@ -1552,9 +1571,15 @@ export interface CostumFieldMap {
1552
1571
  territoires?: ("Arrageois" | "Artois" | "Audomarois" | "Boulonnais" | "Calaisis" | "Entre Mer et Terres" | "Familles en sol mineur" | "Familles en sol mineur Hénin Carvin" | "Familles en sol mineur Lens Liévin" | "Ternois Bruaysis")[];
1553
1572
  themes?: ("La citoyenneté" | "La communication" | "La culture" | "La petite enfance" | "La santé" | "L’adolescence" | "L’arrivée d’un enfant" | "Le deuil" | "Le handicap" | "Le répit" | "L’école" | "L’éducation" | "Les activités supports à la relation" | "Les écrans – Le numérique" | "Les émotions" | "Les jeux" | "Les situations de séparation" | "Les violences")[];
1554
1573
  };
1574
+ organizations: {
1575
+ publics?: ("Bénévoles" | "En famille" | "Enfance" | "Futurs parents" | "Parents" | "Parents-enfants" | "Professionnels")[];
1576
+ territoires?: ("Arrageois" | "Artois" | "Audomarois" | "Boulonnais" | "Calaisis" | "Entre Mer et Terres" | "Familles en sol mineur" | "Familles en sol mineur Hénin Carvin" | "Familles en sol mineur Lens Liévin" | "Ternois Bruaysis")[];
1577
+ themes?: ("La citoyenneté" | "La communication" | "La culture" | "La petite enfance" | "La santé" | "L’adolescence" | "L’arrivée d’un enfant" | "Le deuil" | "Le handicap" | "Le répit" | "L’école" | "L’éducation" | "Les activités supports à la relation" | "Les écrans – Le numérique" | "Les émotions" | "Les jeux" | "Les situations de séparation" | "Les violences")[];
1578
+ };
1555
1579
  poi: {
1556
1580
  ages?: ("0-3 ans" | "3-6 ans" | "6-11 ans" | "adolescence" | "jeune adulte")[];
1557
- category?: "Compliqué" | "Difficile" | "À changer";
1581
+ annee?: string | number;
1582
+ category?: "actualite" | "appel-projet" | "offre-emploi" | "a-la-une" | "zoom";
1558
1583
  paroleConsentement?: string | boolean;
1559
1584
  publics?: ("Bénévoles" | "En famille" | "Enfance" | "Futurs parents" | "Parents" | "Parents-enfants" | "Professionnels")[];
1560
1585
  territoires?: ("Arrageois" | "Artois" | "Audomarois" | "Boulonnais" | "Calaisis" | "Entre Mer et Terres" | "Familles en sol mineur" | "Familles en sol mineur Hénin Carvin" | "Familles en sol mineur Lens Liévin" | "Ternois Bruaysis")[];
@@ -2035,7 +2060,8 @@ export interface CostumFieldMap {
2035
2060
  link?: string;
2036
2061
  linkedin?: string;
2037
2062
  location?: string;
2038
- mobile?: string;
2063
+ mobile?: string | number;
2064
+ mss?: string | boolean;
2039
2065
  personInChargeCivility?: string;
2040
2066
  personInChargeEmail?: string;
2041
2067
  personInChargeFirstName?: string;
@@ -2056,9 +2082,9 @@ export interface CostumFieldMap {
2056
2082
  sigle?: string;
2057
2083
  similarLink?: Record<string, unknown>;
2058
2084
  siren?: string | number;
2059
- statusCommunale?: string | string[];
2085
+ statusCommunale?: string;
2060
2086
  statusFile?: Record<string, unknown>;
2061
- statusPrimaire?: string | string[];
2087
+ statusPrimaire?: string;
2062
2088
  statusSecondaire?: string | string[];
2063
2089
  youtube?: string;
2064
2090
  };
@@ -2078,8 +2104,10 @@ export interface CostumFieldMap {
2078
2104
  restaurant?: string | boolean;
2079
2105
  sole?: "Synthétique (hors gazon)" | "Bitume" | "Gazon naturel" | "Carrelage" | "Stabilisé/cendrée" | "Gazon synthétique" | "Béton" | "Surface naturelle" | "Terre battue" | "Sable" | "Parquet" | "Non précisé" | "Autre" | "Bois" | "Synthétique";
2080
2106
  sportPratiquer?: string;
2107
+ status?: string | string[];
2081
2108
  subCategory?: string;
2082
2109
  surface?: string;
2110
+ thematique?: string;
2083
2111
  transportCommun?: string | boolean;
2084
2112
  typeAccessiblHandicap?: string;
2085
2113
  typePartenariat?: string;
@@ -2135,6 +2163,15 @@ export interface CostumFieldMap {
2135
2163
  };
2136
2164
  };
2137
2165
  testeTplFormation: {
2166
+ citoyens: {
2167
+ documentation?: Record<string, unknown>;
2168
+ firstName?: string;
2169
+ formLocality?: string;
2170
+ image?: string;
2171
+ link?: string;
2172
+ surname?: string;
2173
+ thematic?: string | string[];
2174
+ };
2138
2175
  events: {
2139
2176
  description?: string;
2140
2177
  duration?: string | number;
@@ -2148,11 +2185,6 @@ export interface CostumFieldMap {
2148
2185
  organizations: {
2149
2186
  trainingQualification?: ("Qualiopi")[];
2150
2187
  };
2151
- person: {
2152
- documentation?: Record<string, unknown>;
2153
- firstName?: string;
2154
- formLocality?: string;
2155
- };
2156
2188
  projects: {
2157
2189
  certificationTraining?: string | boolean;
2158
2190
  certificationsAwards?: string;
@@ -2259,6 +2291,15 @@ export interface CostumFieldMap {
2259
2291
  };
2260
2292
  };
2261
2293
  tierslieuxorg1: {
2294
+ citoyens: {
2295
+ documentation?: Record<string, unknown>;
2296
+ firstName?: string;
2297
+ formLocality?: string;
2298
+ image?: string;
2299
+ link?: string;
2300
+ surname?: string;
2301
+ thematic?: string | string[];
2302
+ };
2262
2303
  events: {
2263
2304
  description?: string;
2264
2305
  duration?: string | number;
@@ -2272,11 +2313,6 @@ export interface CostumFieldMap {
2272
2313
  organizations: {
2273
2314
  trainingQualification?: ("Qualiopi")[];
2274
2315
  };
2275
- person: {
2276
- documentation?: Record<string, unknown>;
2277
- firstName?: string;
2278
- formLocality?: string;
2279
- };
2280
2316
  projects: {
2281
2317
  certificationTraining?: string | boolean;
2282
2318
  certificationsAwards?: string;
@@ -2295,6 +2331,21 @@ export interface CostumFieldMap {
2295
2331
  };
2296
2332
  };
2297
2333
  transiter: {
2334
+ citoyens: {
2335
+ activity?: string;
2336
+ activityHelp?: string;
2337
+ challenge?: string;
2338
+ documentation?: Record<string, unknown>;
2339
+ firstName?: string;
2340
+ formLocality?: string;
2341
+ idea?: string;
2342
+ image?: string;
2343
+ link?: string;
2344
+ newsletter?: string | boolean;
2345
+ profession?: string;
2346
+ surname?: string;
2347
+ thematic?: string | string[];
2348
+ };
2298
2349
  events: {
2299
2350
  description?: string;
2300
2351
  duration?: string | number;
@@ -2314,11 +2365,6 @@ export interface CostumFieldMap {
2314
2365
  placeAndCome?: string;
2315
2366
  trainingQualification?: ("Qualiopi")[];
2316
2367
  };
2317
- person: {
2318
- documentation?: Record<string, unknown>;
2319
- firstName?: string;
2320
- formLocality?: string;
2321
- };
2322
2368
  projects: {
2323
2369
  beneficiaries?: string;
2324
2370
  certificationTraining?: string | boolean;