@communecter/cocolight-api-client 1.0.54 → 1.0.56

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 +29 -17
  19. package/src/{Api.js → Api.ts} +85 -95
  20. package/src/{ApiClient.js → ApiClient.ts} +436 -247
  21. package/src/EJSONType.ts +103 -0
  22. package/src/api/{Badge.js → Badge.ts} +56 -45
  23. package/src/api/BaseEntity.ts +3890 -0
  24. package/src/api/Comment.ts +200 -0
  25. package/src/api/{EndpointApi.js → EndpointApi.ts} +363 -297
  26. package/src/api/EndpointApi.types.ts +4609 -0
  27. package/src/api/EntityRegistry.ts +203 -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} +16 -39
  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 +38 -82
  66. package/types/Api.d.ts.map +1 -0
  67. package/types/ApiClient.d.ts +244 -184
  68. package/types/ApiClient.d.ts.map +1 -0
  69. package/types/EJSONType.d.ts +48 -22
  70. package/types/EJSONType.d.ts.map +1 -0
  71. package/types/api/Badge.d.ts +20 -20
  72. package/types/api/Badge.d.ts.map +1 -0
  73. package/types/api/BaseEntity.d.ts +751 -446
  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 +347 -295
  77. package/types/api/EndpointApi.d.ts.map +1 -0
  78. package/types/api/EndpointApi.types.d.ts +3914 -4133
  79. package/types/api/EntityRegistry.d.ts +18 -16
  80. package/types/api/EntityRegistry.d.ts.map +1 -0
  81. package/types/api/Event.d.ts +119 -35
  82. package/types/api/Event.d.ts.map +1 -0
  83. package/types/api/News.d.ts +52 -20
  84. package/types/api/News.d.ts.map +1 -0
  85. package/types/api/Organization.d.ts +165 -49
  86. package/types/api/Organization.d.ts.map +1 -0
  87. package/types/api/Poi.d.ts +51 -22
  88. package/types/api/Poi.d.ts.map +1 -0
  89. package/types/api/Project.d.ts +151 -52
  90. package/types/api/Project.d.ts.map +1 -0
  91. package/types/api/User.d.ts +222 -93
  92. package/types/api/User.d.ts.map +1 -0
  93. package/types/api/UserApi.d.ts +60 -9
  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 +6922 -1215
  107. package/types/endpoints.module.d.ts.map +1 -0
  108. package/types/error.d.ts +25 -51
  109. package/types/error.d.ts.map +1 -0
  110. package/types/index.d.ts +55 -48
  111. package/types/index.d.ts.map +1 -0
  112. package/types/mixin/UserMixin.d.ts +1 -1
  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 +10 -9
  126. package/types/utils/FileOfflineStorageStrategy.node.d.ts.map +1 -0
  127. package/types/utils/FileStorageStrategy.node.d.ts +9 -20
  128. package/types/utils/FileStorageStrategy.node.d.ts.map +1 -0
  129. package/types/utils/MultiServerFileStorageStrategy.node.d.ts +13 -18
  130. package/types/utils/MultiServerFileStorageStrategy.node.d.ts.map +1 -0
  131. package/types/utils/MultiServerTokenStorageStrategy.d.ts +30 -51
  132. package/types/utils/MultiServerTokenStorageStrategy.d.ts.map +1 -0
  133. package/types/utils/OfflineClientManager.d.ts +52 -88
  134. package/types/utils/OfflineClientManager.d.ts.map +1 -0
  135. package/types/utils/OfflineQueueStorageStrategy.d.ts +12 -9
  136. package/types/utils/OfflineQueueStorageStrategy.d.ts.map +1 -0
  137. package/types/utils/TokenStorage.d.ts +20 -70
  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 -11
  142. package/types/utils/createDefaultMultiServerTokenStorageStrategy.d.ts.map +1 -0
  143. package/types/utils/createDefaultOfflineStrategy.d.ts +2 -3
  144. package/types/utils/createDefaultOfflineStrategy.d.ts.map +1 -0
  145. package/types/utils/createDefaultTokenStorageStrategy.d.ts +2 -12
  146. package/types/utils/createDefaultTokenStorageStrategy.d.ts.map +1 -0
  147. package/types/utils/reactive.d.ts +10 -16
  148. package/types/utils/reactive.d.ts.map +1 -0
  149. package/types/utils/stream-utils.node.d.ts +3 -2
  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 -121
  171. package/src/index.js +0 -97
  172. package/src/mixin/UserMixin.js +0 -8
  173. package/src/utils/MultiServerFileStorageStrategy.node.js +0 -87
  174. package/src/utils/MultiServerTokenStorageStrategy.js +0 -188
  175. package/src/utils/OfflineQueueStorageStrategy.js +0 -51
  176. package/src/utils/TokenStorage.js +0 -153
  177. package/src/utils/createDefaultMultiServerTokenStorageStrategy.js +0 -51
  178. package/src/utils/createDefaultTokenStorageStrategy.js +0 -49
  179. package/src/utils/stream-utils.node.js +0 -10
@@ -1,12 +1,14 @@
1
1
  import { ApiError } from "../error.js";
2
- import BaseEntity from "./BaseEntity.js";
2
+ import { BaseEntity } from "./BaseEntity.js";
3
3
 
4
- export class Poi extends BaseEntity {
5
- static entityType = "poi";
4
+ import type { AddPoiData } from "./EndpointApi.types.js";
6
5
 
7
- static entityTag = "Poi";
6
+ export class Poi extends BaseEntity<any> {
7
+ static override entityType = "poi";
8
8
 
9
- static SCHEMA_CONSTANTS = [
9
+ static override entityTag = "Poi";
10
+
11
+ static override SCHEMA_CONSTANTS: string[] = [
10
12
  "ADD_POI",
11
13
  "UPDATE_BLOCK_DESCRIPTION",
12
14
  "UPDATE_BLOCK_INFO",
@@ -18,7 +20,7 @@ export class Poi extends BaseEntity {
18
20
  static ADD_BLOCKS = new Map([
19
21
  ["ADD_POI", "addPoi"],
20
22
  ["PROFIL_IMAGE", "updateImageProfil"]
21
- ]);
23
+ ] as const);
22
24
 
23
25
  static UPDATE_BLOCKS = new Map([
24
26
  ["UPDATE_BLOCK_DESCRIPTION", "updateDescription"],
@@ -26,29 +28,29 @@ export class Poi extends BaseEntity {
26
28
  ["UPDATE_BLOCK_INFO", "updateInfo"],
27
29
  ["UPDATE_BLOCK_SLUG", "updateSlug"],
28
30
  ["PROFIL_IMAGE", "updateImageProfil"]
29
- ]);
31
+ ] as const);
30
32
 
31
- defaultFields = {
33
+ override defaultFields: Record<string, any> = {
32
34
  typeElement: this.getEntityType()
33
35
  };
34
36
 
35
- removeFields = [
37
+ override removeFields: string[] = [
36
38
  "typeElement"
37
39
  ];
38
40
 
39
- transforms = {
41
+ // transforms = {
40
42
 
41
- };
43
+ // };
42
44
 
43
- async _add(payload) {
45
+ override _add = async (payload: Record<string, any>): Promise<void> => {
44
46
  if (!this._calledFromSave) {
45
- throw new ApiError("utilisation invalide de _add, utilisez save");
47
+ throw new ApiError("utilisation invalide de _add, utilisez save", 400);
46
48
  }
47
49
 
48
50
  payload.id = this._newId?.();
49
51
  if (payload.slug) delete payload.slug;
50
52
 
51
- for (const [constant, methodName] of Poi.ADD_BLOCKS) {
53
+ for (const [constant, methodName] of Array.from(Poi.ADD_BLOCKS)) {
52
54
  const blockData = this._extractChangedFieldsFromSchema(
53
55
  this.apiClient,
54
56
  constant,
@@ -56,27 +58,27 @@ export class Poi extends BaseEntity {
56
58
  () => {}
57
59
  );
58
60
  if (blockData && Object.keys(blockData).length > 0) {
59
- const data = await this[methodName](blockData);
61
+ const data = await this._invokeBlockMethod(Poi.ADD_BLOCKS, methodName, blockData);
60
62
  if (!this.id && data?.map?.id) {
61
63
  this._draftData.id = data.map.id;
62
64
  this._draftData.slug = data.map.slug;
63
65
  }
64
66
  }
65
67
  }
66
- }
68
+ };
67
69
 
68
- async _update(payload) {
70
+ override _update = async (payload: Record<string, any>): Promise<boolean> => {
69
71
  if(!this.isAuthor()){
70
72
  throw new ApiError("Vous n'avez pas les droits pour modifier ce POI", 403);
71
73
  }
72
74
  if (!this._calledFromSave) {
73
- throw new ApiError("utilisation invalide de _update, utilisez save");
75
+ throw new ApiError("utilisation invalide de _update, utilisez save", 400);
74
76
  }
75
77
 
76
78
  if (payload.id) delete payload.id;
77
79
  let hasChanged = false;
78
80
 
79
- for (const [constant, methodName] of Poi.UPDATE_BLOCKS) {
81
+ for (const [constant, methodName] of Array.from(Poi.UPDATE_BLOCKS)) {
80
82
  const blockData = this._extractChangedFieldsFromSchema(
81
83
  this.apiClient,
82
84
  constant,
@@ -85,100 +87,106 @@ export class Poi extends BaseEntity {
85
87
  this.removeFields
86
88
  );
87
89
  if (blockData && Object.keys(blockData).length > 0) {
88
- await this[methodName](blockData);
90
+ await this._invokeBlockMethod(Poi.UPDATE_BLOCKS, methodName, blockData);
89
91
  hasChanged = true;
90
92
  }
91
93
  }
92
94
 
93
95
  return hasChanged;
94
- }
96
+ };
95
97
 
96
- async addPoi(data = {}) {
98
+ async addPoi(data: Partial<AddPoiData> = {}): Promise<unknown> {
97
99
 
98
- if (!this.isMe) {
99
- data.parent = {};
100
- data.parent[`${this.parent.id}`] = {
100
+ if (!this.isMe && this.parent) {
101
+ (data as any).parent = {};
102
+ (data as any).parent[`${this.parent.id}`] = {
101
103
  type: this.parent.getEntityType(),
102
- name: this.parent.name
104
+ name: (this.parent as any).name
103
105
  };
104
106
  }
105
107
 
106
- return this.callIsConnected(() => this.endpointApi.addPoi(data));
108
+ return this.callIsConnected(() => this.endpointApi.addPoi(data as AddPoiData));
107
109
  }
108
110
 
109
- async getOrganizations() {
110
- throw new ApiError(`getOrganizations n'existe pas dans ${this.constructor.name}`);
111
+ override async getOrganizations(): Promise<never> {
112
+ throw new ApiError(`getOrganizations n'existe pas dans ${this.constructor.name}`, 501);
111
113
  }
112
114
 
113
- async getProjects() {
114
- throw new ApiError(`getProjects n'existe pas dans ${this.constructor.name}`);
115
+ override async getProjects(): Promise<never> {
116
+ throw new ApiError(`getProjects n'existe pas dans ${this.constructor.name}`, 501);
115
117
  }
116
118
 
117
- async getEvents() {
118
- throw new ApiError(`getEvents n'existe pas dans${this.constructor.name}`);
119
+ async getEvents(): Promise<never> {
120
+ throw new ApiError(`getEvents n'existe pas dans ${this.constructor.name}`, 501);
119
121
  }
120
122
 
121
- async getPois() {
122
- throw new ApiError(`getPois n'existe pas dans ${this.constructor.name}`);
123
+ override async getPois(): Promise<never> {
124
+ throw new ApiError(`getPois n'existe pas dans ${this.constructor.name}`, 501);
123
125
  }
124
126
 
125
- async getBadgesIssuer() {
126
- throw new ApiError(`getBadgesIssuer n'existe pas dans ${this.constructor.name}`);
127
+ override async getBadgesIssuer(): Promise<never> {
128
+ throw new ApiError(`getBadgesIssuer n'existe pas dans ${this.constructor.name}`, 501);
127
129
  }
128
130
 
129
- async getNews(data = {}) {
131
+ /**
132
+ * {@inheritDoc BaseEntity#getNews}
133
+ *
134
+ * Récupère les actualités du POI.
135
+ */
136
+ override async getNews(data: Parameters<BaseEntity<any>["getNews"]>[0] = {}) {
130
137
  return super.getNews(data);
131
138
  }
132
139
 
133
- async getSubscribers(data = {}) {
140
+ /**
141
+ * {@inheritDoc BaseEntity#getSubscribers}
142
+ *
143
+ * Récupère les abonnés du POI.
144
+ */
145
+ override async getSubscribers(data: Parameters<BaseEntity<any>["getSubscribers"]>[0] = {}) {
134
146
  return super.getSubscribers(data);
135
147
  }
136
148
 
137
- async project() {
138
- throw new ApiError(`project n'existe pas dans ${this.constructor.name}`);
149
+ override async project(): Promise<never> {
150
+ throw new ApiError(`project n'existe pas dans ${this.constructor.name}`, 501);
139
151
  }
140
152
 
141
- async poi() {
142
- throw new ApiError(`poi n'existe pas dans ${this.constructor.name}`);
153
+ override async poi(): Promise<never> {
154
+ throw new ApiError(`poi n'existe pas dans ${this.constructor.name}`, 501);
143
155
  }
144
156
 
145
- async event() {
146
- throw new ApiError(`event n'existe pas dans ${this.constructor.name}`);
157
+ override async event(): Promise<never> {
158
+ throw new ApiError(`event n'existe pas dans ${this.constructor.name}`, 501);
147
159
  }
148
160
 
149
- async badge() {
150
- throw new ApiError(`badge n'existe pas dans ${this.constructor.name}`);
161
+ override async badge(): Promise<never> {
162
+ throw new ApiError(`badge n'existe pas dans ${this.constructor.name}`, 501);
151
163
  }
152
164
 
153
165
  /**
166
+ * {@inheritDoc BaseEntity#news}
167
+ *
154
168
  * Crée une instance de news et la récupère si nécessaire.
155
- *
156
- * @param {Object} newsData - Les données nécessaires pour initialiser la news.
157
- * @returns {Promise<News>} Une promesse qui résout l'objet News créé.
158
- * @throws {ApiError} Si une erreur se produit lors de la création de la news.
159
169
  */
160
- async news(newsData = {}) {
170
+ override async news(newsData: Parameters<BaseEntity<any>["news"]>[0] = {}) {
161
171
  return super.news(newsData);
162
172
  }
163
173
 
164
174
  /**
175
+ * {@inheritDoc BaseEntity#follow}
176
+ *
165
177
  * Suivre un POI.
166
178
  * Cette action permet à l'utilisateur de suivre un POI.
167
- *
168
- * @returns {Promise<Object>} - Résultat de l'action de suivi.
169
- * @throws {ApiError} - Si l'utilisateur n'est pas connecté ou si l'entité ne supporte pas l'action.
170
179
  */
171
- async follow() {
180
+ override async follow() {
172
181
  return super.follow();
173
182
  }
174
183
 
175
184
  /**
185
+ * {@inheritDoc BaseEntity#unfollow}
186
+ *
176
187
  * Se désabonne d'un POI.
177
- *
178
- * @returns {Promise<Object>} - Résultat de la désinscription.
179
- * @throws {ApiError} - Si l'utilisateur n'est pas connecté ou si l'entité n'est pas enregistrée.
180
188
  */
181
- async unfollow() {
189
+ override async unfollow() {
182
190
  return super.unfollow();
183
191
  }
184
192