@communecter/cocolight-api-client 1.0.51 → 1.0.55

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 (179) hide show
  1. package/dist/401.cocolight-api-client.browser.js +1 -0
  2. package/dist/401.cocolight-api-client.cjs +1 -0
  3. package/dist/401.cocolight-api-client.mjs.js +1 -0
  4. package/dist/588.cocolight-api-client.browser.js +1 -0
  5. package/dist/588.cocolight-api-client.cjs +1 -0
  6. package/dist/588.cocolight-api-client.mjs.js +1 -0
  7. package/dist/593.cocolight-api-client.browser.js +1 -0
  8. package/dist/593.cocolight-api-client.cjs +1 -0
  9. package/dist/593.cocolight-api-client.mjs.js +1 -0
  10. package/dist/839.cocolight-api-client.browser.js +1 -0
  11. package/dist/839.cocolight-api-client.cjs +1 -0
  12. package/dist/839.cocolight-api-client.mjs.js +1 -0
  13. package/dist/cocolight-api-client.browser.js +3 -3
  14. package/dist/cocolight-api-client.cjs +1 -1
  15. package/dist/cocolight-api-client.mjs.js +1 -1
  16. package/dist/cocolight-api-client.vite.mjs.js +1 -1
  17. package/dist/cocolight-api-client.vite.mjs.js.map +1 -1
  18. package/package.json +28 -10
  19. package/src/{Api.js → Api.ts} +99 -91
  20. package/src/{ApiClient.js → ApiClient.ts} +444 -240
  21. package/src/EJSONType.ts +103 -0
  22. package/src/api/{Badge.js → Badge.ts} +56 -45
  23. package/src/api/BaseEntity.ts +3897 -0
  24. package/src/api/Comment.ts +200 -0
  25. package/src/api/{EndpointApi.js → EndpointApi.ts} +365 -299
  26. package/src/api/{EndpointApi.types.d.ts → EndpointApi.types.ts} +166 -9
  27. package/src/api/EntityRegistry.ts +208 -0
  28. package/src/api/Event.ts +332 -0
  29. package/src/api/News.ts +331 -0
  30. package/src/api/{Organization.js → Organization.ts} +155 -119
  31. package/src/api/{Poi.js → Poi.ts} +68 -60
  32. package/src/api/{Project.js → Project.ts} +150 -127
  33. package/src/api/{User.js → User.ts} +321 -256
  34. package/src/api/UserApi.ts +148 -0
  35. package/src/api/serverDataType/Comment.ts +88 -0
  36. package/src/api/serverDataType/Event.ts +80 -0
  37. package/src/api/serverDataType/News.ts +138 -0
  38. package/src/api/serverDataType/Organization.ts +80 -0
  39. package/src/api/serverDataType/Project.ts +71 -0
  40. package/src/api/serverDataType/User.ts +103 -0
  41. package/src/api/serverDataType/common.ts +80 -0
  42. package/src/endpoints.module.ts +2621 -0
  43. package/src/error.ts +86 -0
  44. package/src/index.ts +86 -0
  45. package/src/mixin/UserMixin.ts +4 -0
  46. package/src/types/api-responses.ts +217 -0
  47. package/src/types/entities.ts +22 -0
  48. package/src/types/error-guards.ts +230 -0
  49. package/src/types/index.ts +39 -0
  50. package/src/types/payloads.ts +21 -0
  51. package/src/types/transforms.ts +110 -0
  52. package/src/utils/{FileOfflineStorageStrategy.node.js → FileOfflineStorageStrategy.node.ts} +15 -12
  53. package/src/utils/{FileStorageStrategy.node.js → FileStorageStrategy.node.ts} +17 -14
  54. package/src/utils/MultiServerFileStorageStrategy.node.ts +67 -0
  55. package/src/utils/MultiServerTokenStorageStrategy.ts +139 -0
  56. package/src/utils/{OfflineClientManager.js → OfflineClientManager.ts} +82 -86
  57. package/src/utils/OfflineQueueStorageStrategy.ts +47 -0
  58. package/src/utils/TokenStorage.ts +77 -0
  59. package/src/utils/compat.ts +12 -0
  60. package/src/utils/createDefaultMultiServerTokenStorageStrategy.ts +35 -0
  61. package/src/utils/{createDefaultOfflineStrategy.js → createDefaultOfflineStrategy.ts} +8 -3
  62. package/src/utils/createDefaultTokenStorageStrategy.ts +33 -0
  63. package/src/utils/{reactive.js → reactive.ts} +49 -40
  64. package/src/utils/stream-utils.node.ts +12 -0
  65. package/types/Api.d.ts +87 -0
  66. package/types/Api.d.ts.map +1 -0
  67. package/types/ApiClient.d.ts +437 -0
  68. package/types/ApiClient.d.ts.map +1 -0
  69. package/types/EJSONType.d.ts +53 -0
  70. package/types/EJSONType.d.ts.map +1 -0
  71. package/types/api/Badge.d.ts +24 -0
  72. package/types/api/Badge.d.ts.map +1 -0
  73. package/types/api/BaseEntity.d.ts +1322 -0
  74. package/types/api/BaseEntity.d.ts.map +1 -0
  75. package/types/api/Comment.d.ts +36 -0
  76. package/types/api/EndpointApi.d.ts +985 -0
  77. package/types/api/EndpointApi.d.ts.map +1 -0
  78. package/types/api/EndpointApi.types.d.ts +4233 -0
  79. package/types/api/EntityRegistry.d.ts +24 -0
  80. package/types/api/EntityRegistry.d.ts.map +1 -0
  81. package/types/api/Event.d.ts +122 -0
  82. package/types/api/Event.d.ts.map +1 -0
  83. package/types/api/News.d.ts +77 -0
  84. package/types/api/News.d.ts.map +1 -0
  85. package/types/api/Organization.d.ts +203 -0
  86. package/types/api/Organization.d.ts.map +1 -0
  87. package/types/api/Poi.d.ts +54 -0
  88. package/types/api/Poi.d.ts.map +1 -0
  89. package/types/api/Project.d.ts +180 -0
  90. package/types/api/Project.d.ts.map +1 -0
  91. package/types/api/User.d.ts +332 -0
  92. package/types/api/User.d.ts.map +1 -0
  93. package/types/api/UserApi.d.ts +64 -0
  94. package/types/api/UserApi.d.ts.map +1 -0
  95. package/types/api/serverDataType/Comment.d.ts +83 -0
  96. package/types/api/serverDataType/Event.d.ts +67 -0
  97. package/types/api/serverDataType/News.d.ts +130 -0
  98. package/types/api/serverDataType/Organization.d.ts +65 -0
  99. package/types/api/serverDataType/Organization.d.ts.map +1 -0
  100. package/types/api/serverDataType/Project.d.ts +58 -0
  101. package/types/api/serverDataType/Project.d.ts.map +1 -0
  102. package/types/api/serverDataType/User.d.ts +86 -0
  103. package/types/api/serverDataType/User.d.ts.map +1 -0
  104. package/types/api/serverDataType/common.d.ts +71 -0
  105. package/types/api/serverDataType/common.d.ts.map +1 -0
  106. package/types/endpoints.module.d.ts +20559 -0
  107. package/types/endpoints.module.d.ts.map +1 -0
  108. package/types/error.d.ts +54 -0
  109. package/types/error.d.ts.map +1 -0
  110. package/types/index.d.ts +59 -0
  111. package/types/index.d.ts.map +1 -0
  112. package/types/mixin/UserMixin.d.ts +1 -0
  113. package/types/mixin/UserMixin.d.ts.map +1 -0
  114. package/types/types/api-responses.d.ts +190 -0
  115. package/types/types/api-responses.d.ts.map +1 -0
  116. package/types/types/entities.d.ts +17 -0
  117. package/types/types/entities.d.ts.map +1 -0
  118. package/types/types/error-guards.d.ts +99 -0
  119. package/types/types/error-guards.d.ts.map +1 -0
  120. package/types/types/index.d.ts +7 -0
  121. package/types/types/payloads.d.ts +17 -0
  122. package/types/types/payloads.d.ts.map +1 -0
  123. package/types/types/transforms.d.ts +79 -0
  124. package/types/types/transforms.d.ts.map +1 -0
  125. package/types/utils/FileOfflineStorageStrategy.node.d.ts +11 -0
  126. package/types/utils/FileOfflineStorageStrategy.node.d.ts.map +1 -0
  127. package/types/utils/FileStorageStrategy.node.d.ts +14 -0
  128. package/types/utils/FileStorageStrategy.node.d.ts.map +1 -0
  129. package/types/utils/MultiServerFileStorageStrategy.node.d.ts +17 -0
  130. package/types/utils/MultiServerFileStorageStrategy.node.d.ts.map +1 -0
  131. package/types/utils/MultiServerTokenStorageStrategy.d.ts +44 -0
  132. package/types/utils/MultiServerTokenStorageStrategy.d.ts.map +1 -0
  133. package/types/utils/OfflineClientManager.d.ts +58 -0
  134. package/types/utils/OfflineClientManager.d.ts.map +1 -0
  135. package/types/utils/OfflineQueueStorageStrategy.d.ts +16 -0
  136. package/types/utils/OfflineQueueStorageStrategy.d.ts.map +1 -0
  137. package/types/utils/TokenStorage.d.ts +26 -0
  138. package/types/utils/TokenStorage.d.ts.map +1 -0
  139. package/types/utils/compat.d.ts +4 -0
  140. package/types/utils/compat.d.ts.map +1 -0
  141. package/types/utils/createDefaultMultiServerTokenStorageStrategy.d.ts +2 -0
  142. package/types/utils/createDefaultMultiServerTokenStorageStrategy.d.ts.map +1 -0
  143. package/types/utils/createDefaultOfflineStrategy.d.ts +2 -0
  144. package/types/utils/createDefaultOfflineStrategy.d.ts.map +1 -0
  145. package/types/utils/createDefaultTokenStorageStrategy.d.ts +2 -0
  146. package/types/utils/createDefaultTokenStorageStrategy.d.ts.map +1 -0
  147. package/types/utils/reactive.d.ts +54 -0
  148. package/types/utils/reactive.d.ts.map +1 -0
  149. package/types/utils/stream-utils.node.d.ts +3 -0
  150. package/types/utils/stream-utils.node.d.ts.map +1 -0
  151. package/dist/123.cocolight-api-client.browser.js +0 -1
  152. package/dist/123.cocolight-api-client.cjs +0 -1
  153. package/dist/22.cocolight-api-client.mjs.js +0 -1
  154. package/dist/339.cocolight-api-client.mjs.js +0 -1
  155. package/dist/394.cocolight-api-client.browser.js +0 -1
  156. package/dist/394.cocolight-api-client.cjs +0 -1
  157. package/dist/405.cocolight-api-client.browser.js +0 -1
  158. package/dist/405.cocolight-api-client.cjs +0 -1
  159. package/dist/774.cocolight-api-client.mjs.js +0 -1
  160. package/dist/790.cocolight-api-client.mjs.js +0 -1
  161. package/dist/931.cocolight-api-client.browser.js +0 -1
  162. package/dist/931.cocolight-api-client.cjs +0 -1
  163. package/src/EJSONType.js +0 -53
  164. package/src/api/BaseEntity.js +0 -2828
  165. package/src/api/EntityRegistry.js +0 -152
  166. package/src/api/Event.js +0 -226
  167. package/src/api/News.js +0 -244
  168. package/src/api/UserApi.js +0 -81
  169. package/src/endpoints.module.js +0 -5
  170. package/src/error.js +0 -68
  171. package/src/index.js +0 -34
  172. package/src/mixin/UserMixin.js +0 -8
  173. package/src/utils/MultiServerFileStorageStrategy.node.js +0 -65
  174. package/src/utils/MultiServerTokenStorageStrategy.js +0 -131
  175. package/src/utils/OfflineQueueStorageStrategy.js +0 -51
  176. package/src/utils/TokenStorage.js +0 -93
  177. package/src/utils/createDefaultMultiServerTokenStorageStrategy.js +0 -45
  178. package/src/utils/createDefaultTokenStorageStrategy.js +0 -43
  179. package/src/utils/stream-utils.node.js +0 -10
@@ -0,0 +1,180 @@
1
+ import { BaseEntity } from "./BaseEntity.js";
2
+ import type { PaginatorPage } from "./BaseEntity.js";
3
+ import type { AddProjectData, GetContributorsAdminData, GetContributorsNoAdminData } from "./EndpointApi.types.js";
4
+ import type { Organization } from "./Organization.js";
5
+ import type { User } from "./User.js";
6
+ import type { ProjectTransforms } from "../types/transforms.js";
7
+ type ProjectItemNormalized = import("./serverDataType/Project.js").ProjectItemNormalized;
8
+ export declare class Project extends BaseEntity<ProjectItemNormalized> {
9
+ static entityType: string;
10
+ static entityTag: string;
11
+ static SCHEMA_CONSTANTS: string[];
12
+ static ADD_BLOCKS: Map<"PROFIL_IMAGE" | "ADD_PROJECT", "updateImageProfil" | "addProject">;
13
+ static UPDATE_BLOCKS: Map<"UPDATE_BLOCK_DESCRIPTION" | "UPDATE_BLOCK_INFO" | "UPDATE_BLOCK_SOCIAL" | "UPDATE_BLOCK_LOCALITY" | "UPDATE_BLOCK_SLUG" | "PROFIL_IMAGE", "updateImageProfil" | "updateDescription" | "updateSocial" | "updateLocality" | "updateInfo" | "updateSlug">;
14
+ defaultFields: Record<string, any>;
15
+ removeFields: string[];
16
+ transforms: ProjectTransforms;
17
+ _add: (payload: Record<string, any>) => Promise<void>;
18
+ _update: (payload: Record<string, any>) => Promise<boolean>;
19
+ /**
20
+ * Ajoute un projet.
21
+ *
22
+ * @param data - Données du projet à ajouter.
23
+ * @returns - Résultat de l'ajout du projet.
24
+ * @throws {ApiError} - Si l'utilisateur n'est pas connecté ou si l'entité n'est pas enregistrée.
25
+ */
26
+ addProject(data?: Partial<AddProjectData>): Promise<unknown>;
27
+ getOrganizations(): Promise<never>;
28
+ /**
29
+ * {@inheritDoc BaseEntity#getProjects}
30
+ *
31
+ * Récupère les projets du projet.
32
+ */
33
+ getProjects(data?: Parameters<BaseEntity<ProjectItemNormalized>["getProjects"]>[0]): Promise<PaginatorPage<Project>>;
34
+ getEvents(): Promise<never>;
35
+ /**
36
+ * {@inheritDoc BaseEntity#getPois}
37
+ *
38
+ * Récupère les points d'intérêt d'un projet.
39
+ */
40
+ getPois(data?: Parameters<BaseEntity<ProjectItemNormalized>["getPois"]>[0]): Promise<PaginatorPage<import("./Poi.js").Poi>>;
41
+ /**
42
+ * {@inheritDoc BaseEntity#getBadgesIssuer}
43
+ *
44
+ * Récupère les émetteurs de badges d'un projet.
45
+ */
46
+ getBadgesIssuer(data?: Parameters<BaseEntity<ProjectItemNormalized>["getBadgesIssuer"]>[0]): Promise<PaginatorPage<import("./Badge.js").Badge>>;
47
+ /**
48
+ * {@inheritDoc BaseEntity#getNews}
49
+ *
50
+ * Récupère les actualités d'un projet.
51
+ */
52
+ getNews(data?: Parameters<BaseEntity<ProjectItemNormalized>["getNews"]>[0]): Promise<import("./News.js").News[]>;
53
+ /**
54
+ * {@inheritDoc BaseEntity#getSubscribers}
55
+ *
56
+ * Récupère les abonnés d'un projet.
57
+ */
58
+ getSubscribers(data?: Parameters<BaseEntity<ProjectItemNormalized>["getSubscribers"]>[0]): Promise<PaginatorPage<User>>;
59
+ /**
60
+ * Récupérer les contributeurs d'un projet.
61
+ * Constant : GET_CONTRIBUTORS_ADMIN / GET_CONTRIBUTORS_NO_ADMIN
62
+ * @param data - Paramètres (partiels) de recherche/pagination.
63
+ * @param options - Options supplémentaires.
64
+ * @param options.toBeValidated - Indique si les contributeurs doivent être validés.
65
+ * @param options.isAdmin - Indique si l'utilisateur est admin.
66
+ * @param options.isInviting - Indique si l'utilisateur est en attente d'invitation.
67
+ * @param options.roles - Liste des rôles à filtrer.
68
+ * @param isNext - Indique si c'est une recherche suivante (pagination).
69
+ * @returns - Un objet contenant le nombre de contributeurs et la liste des contributeurs.
70
+ * @throws {ApiResponseError} - Si une erreur se produit lors de la récupération des contributeurs.
71
+ *
72
+ * @example
73
+ * // Récupérer tous les contributeurs
74
+ * const contributors = await project.getContributors();
75
+ *
76
+ * // Récupérer les contributeurs avec validation en attente
77
+ * const contributorsToBeValidated = await project.getContributors({}, { toBeValidated: true });
78
+ *
79
+ * // Récupérer les contributeurs avec un rôle spécifique
80
+ * const contributorsWithRole = await project.getContributors({}, { roles: ["admin"] });
81
+ *
82
+ * // Récupérer les contributeurs administrateurs
83
+ * const adminContributors = await project.getContributors({}, { isAdmin: true });
84
+ *
85
+ * // Récupérer les contributeurs en attente d'invitation
86
+ * const invitingContributors = await project.getContributors({}, { isInviting: true });
87
+ *
88
+ */
89
+ getContributors(data?: Partial<GetContributorsAdminData | GetContributorsNoAdminData>, options?: {
90
+ toBeValidated?: boolean;
91
+ isAdmin?: boolean;
92
+ isAdminPending?: boolean;
93
+ isInviting?: boolean;
94
+ roles?: any[];
95
+ }): Promise<PaginatorPage<User | Organization>>;
96
+ /**
97
+ * {@inheritDoc BaseEntity#getGallery}
98
+ *
99
+ * Récupère la galerie d'un projet.
100
+ */
101
+ getGallery(data?: Parameters<BaseEntity<ProjectItemNormalized>["getGallery"]>[0]): Promise<Record<string, any>>;
102
+ /**
103
+ * {@inheritDoc BaseEntity#project}
104
+ *
105
+ * Crée une instance de projet et récupère son profil si nécessaire.
106
+ */
107
+ project(projectData?: Parameters<BaseEntity<ProjectItemNormalized>["project"]>[0]): Promise<Project>;
108
+ /**
109
+ * {@inheritDoc BaseEntity#poi}
110
+ *
111
+ * Crée une instance de POI et la récupère si nécessaire.
112
+ */
113
+ poi(poiData?: Parameters<BaseEntity<ProjectItemNormalized>["poi"]>[0]): Promise<import("./Poi.js").Poi>;
114
+ /**
115
+ * {@inheritDoc BaseEntity#event}
116
+ *
117
+ * Crée une instance d'événement et la récupère si nécessaire.
118
+ */
119
+ event(eventData?: Parameters<BaseEntity<ProjectItemNormalized>["event"]>[0]): Promise<import("./Event.js").Event>;
120
+ /**
121
+ * {@inheritDoc BaseEntity#badge}
122
+ *
123
+ * Crée une instance de badge et la récupère si nécessaire.
124
+ */
125
+ badge(badgeData?: Parameters<BaseEntity<ProjectItemNormalized>["badge"]>[0]): Promise<import("./Badge.js").Badge>;
126
+ /**
127
+ * {@inheritDoc BaseEntity#news}
128
+ *
129
+ * Crée une instance de news et la récupère si nécessaire.
130
+ */
131
+ news(newsData?: Parameters<BaseEntity<ProjectItemNormalized>["news"]>[0]): Promise<import("./News.js").News>;
132
+ /**
133
+ * ───────────────────────────────
134
+ * Lien utilisateur ↔ projet
135
+ * (rejoindre, valider, quitter, devenir admin)
136
+ * ───────────────────────────────
137
+ */
138
+ /**
139
+ * {@inheritDoc BaseEntity#requestToJoin}
140
+ *
141
+ * Envoie une demande pour rejoindre le projet en tant que contributeur.
142
+ * L'action est soumise à validation par un administrateur du projet.
143
+ */
144
+ requestToJoin(): Promise<unknown>;
145
+ /**
146
+ * {@inheritDoc BaseEntity#requestToJoinAdmin}
147
+ *
148
+ * Envoie une demande pour devenir administrateur du projet.
149
+ * L'action est soumise à validation par un administrateur existant.
150
+ */
151
+ requestToJoinAdmin(): Promise<unknown>;
152
+ /**
153
+ * {@inheritDoc BaseEntity#acceptInvitation}
154
+ *
155
+ * Accepte une invitation à rejoindre le projet.
156
+ * Cette action valide un lien en attente avec l'option `isInviting`.
157
+ */
158
+ acceptInvitation(): Promise<unknown>;
159
+ /**
160
+ * {@inheritDoc BaseEntity#leave}
161
+ *
162
+ * Quitte le projet, que ce soit en tant que contributeur ou administrateur.
163
+ * Cette action supprime le lien entre l'utilisateur et le projet.
164
+ */
165
+ leave(): Promise<unknown>;
166
+ /**
167
+ * {@inheritDoc BaseEntity#follow}
168
+ *
169
+ * Suivre un projet.
170
+ * Cette action permet à l'utilisateur de suivre le projet.
171
+ */
172
+ follow(): Promise<unknown>;
173
+ /**
174
+ * {@inheritDoc BaseEntity#unfollow}
175
+ *
176
+ * Se désabonne d'un projet.
177
+ */
178
+ unfollow(): Promise<unknown>;
179
+ }
180
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Project.d.ts","sourceRoot":"","sources":["../../src/api/Project.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,332 @@
1
+ import { BaseEntity } from "./BaseEntity.js";
2
+ import type { Badge } from "./Badge.js";
3
+ import type { PaginatorPage } from "./BaseEntity.js";
4
+ import type { ChangePasswordData, DeleteAccountData, GetSubscriptionsAdminData, GetSubscriptionsData, GetOrganizationsNoAdminData, GetOrganizationsAdminData, GetFriendsAdminData } from "./EndpointApi.types.js";
5
+ import type { Organization } from "./Organization.js";
6
+ type ApiClient = import("../ApiClient.js").default;
7
+ type UserItemNormalized = import("./serverDataType/User.js").UserItemNormalized;
8
+ export declare class User extends BaseEntity<UserItemNormalized> {
9
+ static entityType: "citoyens";
10
+ static entityTag: string;
11
+ static SCHEMA_CONSTANTS: string[];
12
+ static UPDATE_BLOCKS: Map<"UPDATE_BLOCK_DESCRIPTION" | "UPDATE_BLOCK_INFO" | "UPDATE_BLOCK_SOCIAL" | "UPDATE_BLOCK_LOCALITY" | "UPDATE_BLOCK_SLUG" | "PROFIL_IMAGE", "updateImageProfil" | "updateDescription" | "updateSocial" | "updateLocality" | "updateInfo" | "updateSlug">;
13
+ defaultFields: Record<string, any>;
14
+ removeFields: string[];
15
+ transforms: {
16
+ github: (val: any, full: any) => any;
17
+ gitlab: (val: any, full: any) => any;
18
+ facebook: (val: any, full: any) => any;
19
+ twitter: (val: any, full: any) => any;
20
+ instagram: (val: any, full: any) => any;
21
+ diaspora: (val: any, full: any) => any;
22
+ mastodon: (val: any, full: any) => any;
23
+ telegram: (val: any, full: any) => any;
24
+ signal: (val: any, full: any) => any;
25
+ };
26
+ /**
27
+ * Crée une instance de `User`.
28
+ *
29
+ * @param parent
30
+ * L'ApiClient, une entité parente, ou tout objet exposant `apiClient`.
31
+ * @param {{ id?: string, slug?: string }} data Données initiales (il faut au moins `id` OU `slug`).
32
+ * @param {{
33
+ * EndpointApi: EndpointApiDep,
34
+ * Organization: typeof import("./Organization.js").Organization,
35
+ * Project: typeof import("./Project.js").Project,
36
+ * Event: typeof import("./Event.js").Event,
37
+ * Poi: typeof import("./Poi.js").Poi,
38
+ * Badge: typeof import("./Badge.js").Badge,
39
+ * News: typeof import("./News.js").News
40
+ * }} deps
41
+ * @throws {ApiError} Si `EndpointApi` n'est pas injecté, ou si `id`/`slug` manquent,
42
+ * ou si une des classes dépendantes n'est pas injectée.
43
+ */
44
+ constructor(parent: ApiClient | any, data: {
45
+ id?: string;
46
+ slug?: string;
47
+ }, deps: {
48
+ EndpointApi: any;
49
+ Organization: typeof import("./Organization.js").Organization;
50
+ Project: typeof import("./Project.js").Project;
51
+ Event: typeof import("./Event.js").Event;
52
+ Poi: typeof import("./Poi.js").Poi;
53
+ Badge: typeof import("./Badge.js").Badge;
54
+ News: typeof import("./News.js").News;
55
+ Comment: typeof import("./Comment.js").Comment;
56
+ });
57
+ get slug(): any;
58
+ get isMe(): boolean;
59
+ get parentIsMe(): boolean;
60
+ get isActingUser(): boolean;
61
+ /** @returns {"citoyens"} */
62
+ getEntityType(): "citoyens";
63
+ /**
64
+ * Récupère le profil complet de l'utilisateur.
65
+ * Si l'utilisateur est connecté, on appelle le endpoint ME_INFO_URL,
66
+ * sinon, on peut imaginer appeler un endpoint public.
67
+ *
68
+ * @returns Le profil complet.
69
+ */
70
+ get(): Promise<Record<string, any>>;
71
+ /**
72
+ * Changer le mot de passe : Permet de changer le mot de passe d'un utilisateur.
73
+ * Constant : CHANGE_PASSWORD
74
+ * @param data - Données envoyées à l'API
75
+ * @returns - Les données de réponse.
76
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
77
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
78
+ * @throws {Error} - En cas d'erreur inattendue.
79
+ */
80
+ changePassword(data: ChangePasswordData): Promise<unknown>;
81
+ /**
82
+ * Supprimer un compte : Permet de supprimer un compte utilisateur.
83
+ * Constant : DELETE_ACCOUNT
84
+ * @param data - Données envoyées à l'API
85
+ * @returns - Les données de réponse.
86
+ * @throws {ApiResponseError} - En cas d'erreur détectée dans la réponse.
87
+ * @throws {ApiAuthenticationError} - En cas d'erreur d'authentification.
88
+ * @throws {Error} - En cas d'erreur inattendue.
89
+ */
90
+ delete(data: DeleteAccountData): Promise<unknown>;
91
+ /**
92
+ * Sauvegarde les modifications de l'utilisateur en appelant les endpoints correspondants.
93
+ * Seul l'utilisateur connecté peut se modifier lui-même.
94
+ *
95
+ * @returns - Données serveur mises à jour si applicable.
96
+ * @throws {ApiError} - Si l'utilisateur n'est pas autorisé.
97
+ */
98
+ save(): Promise<Record<string, any>>;
99
+ _add: () => Promise<never>;
100
+ /**
101
+ * Met à jour les blocs modifiés de l'utilisateur via les constantes de schéma définies.
102
+ *
103
+ * @param payload - Données courantes à comparer et envoyer.
104
+ * @returns - Indique s'il y a eu une modification réelle.
105
+ * @throws {ApiError} - Si l'utilisateur n'est pas autorisé à effectuer cette action.
106
+ */
107
+ _update: (payload: Record<string, any>) => Promise<boolean>;
108
+ static fromServerData(data: any, parent: any, deps: any): User;
109
+ /**
110
+ * {@inheritDoc BaseEntity#updateSettings}
111
+ *
112
+ * Mettre à jour les paramètres utilisateur : Mise à jour des paramètres spécifiques d'un utilisateur.
113
+ */
114
+ updateSettings(data: Parameters<BaseEntity<UserItemNormalized>["updateSettings"]>[0]): Promise<unknown>;
115
+ /**
116
+ * {@inheritDoc BaseEntity#updateDescription}
117
+ *
118
+ * Mettre à jour la description d'un élément : Permet de mettre à jour la description courte et complète d'un élément.
119
+ */
120
+ updateDescription(data: Parameters<BaseEntity<UserItemNormalized>["updateDescription"]>[0]): Promise<unknown>;
121
+ /**
122
+ * {@inheritDoc BaseEntity#updateInfo}
123
+ *
124
+ * Mettre à jour les informations d'un élément : Permet de mettre à jour les informations générales d'un élément (nom, contacts, etc.).
125
+ */
126
+ updateInfo(data: Parameters<BaseEntity<UserItemNormalized>["updateInfo"]>[0]): Promise<unknown>;
127
+ /**
128
+ * {@inheritDoc BaseEntity#updateSocial}
129
+ *
130
+ * Mettre à jour les réseaux sociaux d'un élément : Permet de mettre à jour les liens vers les réseaux sociaux d'un élément.
131
+ */
132
+ updateSocial(data: Parameters<BaseEntity<UserItemNormalized>["updateSocial"]>[0]): Promise<unknown>;
133
+ /**
134
+ * {@inheritDoc BaseEntity#updateLocality}
135
+ *
136
+ * Mettre à jour les localités d'un élément : Permet de mettre à jour l'adresse et les informations géographiques d'un élément.
137
+ */
138
+ updateLocality(data: Parameters<BaseEntity<UserItemNormalized>["updateLocality"]>[0]): Promise<unknown>;
139
+ /**
140
+ * {@inheritDoc BaseEntity#updateSlug}
141
+ *
142
+ * Mettre à jour le slug d'un élément : Permet de mettre à jour le slug pour une URL simplifiée.
143
+ */
144
+ updateSlug(data: Parameters<BaseEntity<UserItemNormalized>["updateSlug"]>[0]): Promise<unknown>;
145
+ /**
146
+ * {@inheritDoc BaseEntity#updateImageProfil}
147
+ *
148
+ * Mettre à jour l'image de profil : Permet de mettre à jour l'image de profil d'un utilisateur ou d'une entité.
149
+ */
150
+ updateImageProfil(data: Parameters<BaseEntity<UserItemNormalized>["updateImageProfil"]>[0]): Promise<unknown>;
151
+ /**
152
+ * {@inheritDoc BaseEntity#getOrganizations}
153
+ * @param [data]
154
+ *
155
+ * Récupérer les organisations d'un utilisateur : Récupère la liste des organisations auxquelles l'utilisateur appartient.
156
+ * Constant : GET_ORGANIZATIONS_ADMIN | GET_ORGANIZATIONS_NO_ADMIN
157
+ */
158
+ getOrganizations(data?: Partial<GetOrganizationsAdminData | GetOrganizationsNoAdminData>): Promise<PaginatorPage<Organization>>;
159
+ /**
160
+ * {@inheritDoc BaseEntity#getProjects}
161
+ *
162
+ * Récupérer les projets d'un utilisateur : Récupère la liste des projets auxquels l'utilisateur contribue.
163
+ */
164
+ getProjects(data?: Parameters<BaseEntity<UserItemNormalized>["getProjects"]>[0]): Promise<PaginatorPage<import("./Project.js").Project>>;
165
+ /**
166
+ * {@inheritDoc BaseEntity#getPois}
167
+ *
168
+ * Récupérer les POIs
169
+ */
170
+ getPois(data?: Parameters<BaseEntity<UserItemNormalized>["getPois"]>[0]): Promise<PaginatorPage<import("./Poi.js").Poi>>;
171
+ /**
172
+ * {@inheritDoc BaseEntity#getNews}
173
+ *
174
+ * Récupérer les actualités : Récupère la liste des actualités liées à l'utilisateur.
175
+ */
176
+ getNews(data?: Parameters<BaseEntity<UserItemNormalized>["getNews"]>[0]): Promise<import("./News.js").News[]>;
177
+ /**
178
+ * Récupérer les amis administrables : Récupère les amis administrée par l’utilisateur.
179
+ * Constant : GET_FRIENDS_ADMIN
180
+ * question : qui peut voir la liste d'amis, seulement l'utilisateur connecté ? ou tous les utilisateurs connectés ?
181
+ * actuellement, c'est tous les utilisateurs connectés
182
+ */
183
+ getFriends(data?: Partial<GetFriendsAdminData>): Promise<PaginatorPage<User>>;
184
+ /**
185
+ * Récupérer les suivis
186
+ * Constant : GET_SUBSCRIPTIONS / GET_SUBSCRIPTIONS_ADMIN
187
+ */
188
+ getSubscriptions(data?: Partial<GetSubscriptionsAdminData | GetSubscriptionsData>): Promise<PaginatorPage<BaseEntity<any>>>;
189
+ /**
190
+ * {@inheritDoc BaseEntity#getSubscribers}
191
+ *
192
+ * Récupérer les abonnés
193
+ */
194
+ getSubscribers(data?: Parameters<BaseEntity<UserItemNormalized>["getSubscribers"]>[0]): Promise<PaginatorPage<User>>;
195
+ /**
196
+ * Obtenir la liste des événements
197
+ * Constant : GET_EVENTS
198
+ * TODO : il n'est pas fait encore pour GET_EVENTS_ADMIN / GET_EVENTS_NO_ADMIN comme les autres dans endpointApi
199
+ */
200
+ /**
201
+ * {@inheritDoc BaseEntity#getBadgesIssuer}
202
+ *
203
+ * Liste des badges créés par l'utilisateur
204
+ */
205
+ getBadgesIssuer(data?: Parameters<BaseEntity<UserItemNormalized>["getBadgesIssuer"]>[0]): Promise<PaginatorPage<Badge>>;
206
+ /**
207
+ * Liste des badges associés à l'utilisateur
208
+ *
209
+ * TODO : documenté le fonctionnement et sont utilisation avec un exemple
210
+ */
211
+ getBadges(filter?: Record<string, any>): Promise<Badge[]>;
212
+ /**
213
+ * {@inheritDoc BaseEntity#getGallery}
214
+ *
215
+ * Récupérer la galerie de l'utilisateur
216
+ */
217
+ getGallery(data?: Parameters<BaseEntity<UserItemNormalized>["getGallery"]>[0]): Promise<Record<string, any>>;
218
+ user(userData: {
219
+ id?: string;
220
+ slug?: string;
221
+ }): Promise<User>;
222
+ /**
223
+ * {@inheritDoc BaseEntity#organization}
224
+ *
225
+ * Crée une instance d'organisation et récupère son profil si nécessaire.
226
+ */
227
+ organization(organizationData?: Parameters<BaseEntity<UserItemNormalized>["organization"]>[0]): Promise<Organization>;
228
+ /**
229
+ * {@inheritDoc BaseEntity#project}
230
+ *
231
+ * Crée une instance de projet et récupère son profil si nécessaire.
232
+ */
233
+ project(projectData?: Parameters<BaseEntity<UserItemNormalized>["project"]>[0]): Promise<import("./Project.js").Project>;
234
+ /**
235
+ * {@inheritDoc BaseEntity#news}
236
+ *
237
+ * Crée une instance de news et la récupère si nécessaire.
238
+ */
239
+ news(newsData?: Parameters<BaseEntity<UserItemNormalized>["news"]>[0]): Promise<import("./News.js").News>;
240
+ /**
241
+ * {@inheritDoc BaseEntity#poi}
242
+ *
243
+ * Crée une instance de POI et la récupère si nécessaire.
244
+ */
245
+ poi(poiData?: Parameters<BaseEntity<UserItemNormalized>["poi"]>[0]): Promise<import("./Poi.js").Poi>;
246
+ /**
247
+ * {@inheritDoc BaseEntity#event}
248
+ *
249
+ * Crée une instance d'événement et la récupère si nécessaire.
250
+ */
251
+ event(eventData?: Parameters<BaseEntity<UserItemNormalized>["event"]>[0]): Promise<import("./Event.js").Event>;
252
+ /**
253
+ * {@inheritDoc BaseEntity#badge}
254
+ *
255
+ * Crée une instance de badge et la récupère si nécessaire.
256
+ */
257
+ badge(badgeData?: Parameters<BaseEntity<UserItemNormalized>["badge"]>[0]): Promise<Badge>;
258
+ /**
259
+ * ───────────────────────────────
260
+ * Lien utilisateur ↔ utilisateur (ami)
261
+ * (demander, valider, se retirer)
262
+ * ───────────────────────────────
263
+ */
264
+ /**
265
+ * Envoie une demande d'amitié à cet utilisateur.
266
+ * L'utilisateur ciblé devra valider la demande pour établir la relation.
267
+ *
268
+ * @returns - Résultat de la requête.
269
+ * @throws {ApiError} - Si l'utilisateur n'est pas connecté ou si l'action est interdite.
270
+ */
271
+ sendFriendRequest(): Promise<unknown>;
272
+ /**
273
+ * Accepte une demande d'amitié envoyée par cet utilisateur.
274
+ * Cette action établit un lien entre les deux utilisateurs.
275
+ *
276
+ * @returns - Résultat de la validation du lien.
277
+ * @throws {ApiError} - Si aucune invitation n'est en attente ou si l'action est interdite.
278
+ */
279
+ acceptFriendRequest(): Promise<unknown>;
280
+ /**
281
+ * Supprime la relation d'amitié avec cet utilisateur.
282
+ * Cette action annule tout lien existant entre les deux profils.
283
+ *
284
+ * @returns - Résultat de la suppression.
285
+ * @throws {ApiError} - Si aucune relation n'existe.
286
+ */
287
+ removeFriend(): Promise<unknown>;
288
+ requestToJoin(): Promise<never>;
289
+ requestToJoinAdmin(): Promise<never>;
290
+ acceptInvitation(): Promise<never>;
291
+ leave(): Promise<never>;
292
+ /**
293
+ * Suivre un utilisateur
294
+ * Cette action permet à l'utilisateur connecté de suivre un autre utilisateur.
295
+ * Elle nécessite que l'utilisateur soit connecté.
296
+ *
297
+ * @returns - Résultat de la requête.
298
+ * @throws {ApiError} - Si l'utilisateur n'est pas connecté ou si l'action est interdite.
299
+ */
300
+ follow(): Promise<unknown>;
301
+ /**
302
+ * Se désabonner d'un utilisateur
303
+ * Cette action permet à l'utilisateur connecté de se désabonner d'un autre utilisateur.
304
+ * Elle nécessite que l'utilisateur soit connecté.
305
+ *
306
+ * @returns - Résultat de la requête.
307
+ * @throws {ApiError} - Si l'utilisateur n'est pas connecté ou si l'action est interdite.
308
+ */
309
+ unfollow(): Promise<unknown>;
310
+ /**
311
+ * Vérifie si l'utilisateur connecté est ami avec cet utilisateur.
312
+ *
313
+ * @returns - True si l'utilisateur connecté est ami, sinon false.
314
+ * @throws {ApiError} - Si l'utilisateur n'est pas connecté.
315
+ */
316
+ isFriend(): boolean;
317
+ /**
318
+ * Vérifie si l'utilisateur suit l'entité.
319
+ *
320
+ * @returns - `true` si l'utilisateur suit l'entité, `false` sinon.
321
+ * @throws {ApiError}
322
+ */
323
+ isFollower(): boolean;
324
+ /**
325
+ * Vérifie si l'utilisateur est abonné à l'entité.
326
+ *
327
+ * @returns - `true` si l'utilisateur est abonné, `false` sinon.
328
+ * @throws {ApiError}
329
+ */
330
+ isFollowing(): boolean;
331
+ }
332
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"User.d.ts","sourceRoot":"","sources":["../../src/api/User.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import ApiClient from "../ApiClient.js";
2
+ import { User } from "./User.js";
3
+ /**
4
+ * API orientée utilisateur pour gérer l'authentification et
5
+ * récupérer l'utilisateur connecté.
6
+ */
7
+ export declare class UserApi {
8
+ client: ApiClient;
9
+ loggedUser: User | null;
10
+ /**
11
+ * @param clientOrOptions - Soit une instance ApiClient, soit des options pour en créer une
12
+ */
13
+ constructor(clientOrOptions: ApiClient | ConstructorParameters<typeof ApiClient>[0]);
14
+ /**
15
+ * Indique si un utilisateur est connecté.
16
+ */
17
+ get isConnected(): boolean;
18
+ /**
19
+ * Retourne l'ID de l'utilisateur connecté ou `null` s'il n'y a pas de session.
20
+ */
21
+ get userId(): string | null;
22
+ /**
23
+ * Authentifie un utilisateur et retourne l'instance `User` correspondante.
24
+ *
25
+ * @param email - Adresse email de l'utilisateur.
26
+ * @param password - Mot de passe de l'utilisateur.
27
+ * @returns {Promise<User>}
28
+ * @throws {ApiError} En cas d'échec de connexion réseau ou de problème interne.
29
+ * @throws {ApiResponseError} Si l'API retourne une erreur d'authentification.
30
+ */
31
+ login(email: string, password: string): Promise<User>;
32
+ /**
33
+ * Récupère l'instance `User` correspondant à l'utilisateur actuellement connecté.
34
+ *
35
+ * @returns {Promise<User>}
36
+ * @throws {ApiError} Si aucun utilisateur n'est connecté (`isConnected` faux ou `userId` absent).
37
+ */
38
+ meIsconnected(): Promise<User>;
39
+ /**
40
+ * Enregistre un nouvel utilisateur.
41
+ *
42
+ * @param params
43
+ * @param params.name - Nom complet.
44
+ * @param params.username - Nom d'utilisateur.
45
+ * @param params.email - Adresse email.
46
+ * @param params.pwd - Mot de passe.
47
+ * @returns Réponse brute de l'API.
48
+ * @throws {ApiResponseError} Si l'API retourne un échec (`result === false`).
49
+ */
50
+ register({ name, username, email, pwd }: {
51
+ name: string;
52
+ username: string;
53
+ email: string;
54
+ pwd: string;
55
+ }): Promise<any>;
56
+ /**
57
+ * Lance une procédure de récupération de mot de passe.
58
+ *
59
+ * @param email - Adresse email de l'utilisateur.
60
+ * @returns Réponse brute de l'API.
61
+ * @throws {ApiResponseError} Si l'API retourne un échec (`result === false`).
62
+ */
63
+ recoverPassword(email: string): Promise<any>;
64
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserApi.d.ts","sourceRoot":"","sources":["../../src/api/UserApi.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,iBAAiB,CAAC;AASxC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAQjC;;;GAGG;AACH,qBAAa,OAAO;IAClB,MAAM,EAAE,SAAS,CAAC;IAClB,UAAU,EAAE,IAAI,GAAG,IAAI,CAAQ;IAE/B;;OAEG;gBACS,eAAe,EAAE,SAAS,GAAG,qBAAqB,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;IASnF;;OAEG;IACH,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,GAAG,IAAI,CAE1B;IAED;;;;;;;;OAQG;IACG,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa3D;;;;;OAKG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBpC;;;;;;;;;;OAUG;IACG,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAkB5H;;;;;;OAMG;IACG,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;CAenD"}